"use strict"; let setImmediate = globalThis.setImmediate; let clearImmediate = globalThis.clearImmediate; let baseName, fpcGOT, dyncallGOT, fpVal, dcVal; var _createPyodideModule = (function() { var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined; if (typeof __filename !== 'undefined') _scriptDir = _scriptDir || __filename; return ( function(_createPyodideModule) { _createPyodideModule = _createPyodideModule || {}; var Module=typeof _createPyodideModule!=="undefined"?_createPyodideModule:{};var readyPromiseResolve,readyPromiseReject;Module["ready"]=new Promise(function(resolve,reject){readyPromiseResolve=resolve;readyPromiseReject=reject});if(!Module.expectedDataFileDownloads){Module.expectedDataFileDownloads=0}Module.expectedDataFileDownloads++;(function(){var loadPackage=function(metadata){var PACKAGE_PATH="";if(typeof window==="object"){PACKAGE_PATH=window["encodeURIComponent"](window.location.pathname.toString().substring(0,window.location.pathname.toString().lastIndexOf("/"))+"/")}else if(typeof process==="undefined"&&typeof location!=="undefined"){PACKAGE_PATH=encodeURIComponent(location.pathname.toString().substring(0,location.pathname.toString().lastIndexOf("/"))+"/")}var PACKAGE_NAME="build/pyodide.asm.data";var REMOTE_PACKAGE_BASE="pyodide.asm.data";if(typeof Module["locateFilePackage"]==="function"&&!Module["locateFile"]){Module["locateFile"]=Module["locateFilePackage"];err("warning: you defined Module.locateFilePackage, that has been renamed to Module.locateFile (using your locateFilePackage for now)")}var REMOTE_PACKAGE_NAME=Module["locateFile"]?Module["locateFile"](REMOTE_PACKAGE_BASE,""):REMOTE_PACKAGE_BASE;var REMOTE_PACKAGE_SIZE=metadata["remote_package_size"];var PACKAGE_UUID=metadata["package_uuid"];function fetchRemotePackage(packageName,packageSize,callback,errback){if(typeof process==="object"){require("fs").readFile(packageName,function(err,contents){if(err){errback(err)}else{callback(contents.buffer)}});return}var xhr=new XMLHttpRequest;xhr.open("GET",packageName,true);xhr.responseType="arraybuffer";xhr.onprogress=function(event){var url=packageName;var size=packageSize;if(event.total)size=event.total;if(event.loaded){if(!xhr.addedTotal){xhr.addedTotal=true;if(!Module.dataFileDownloads)Module.dataFileDownloads={};Module.dataFileDownloads[url]={loaded:event.loaded,total:size}}else{Module.dataFileDownloads[url].loaded=event.loaded}var total=0;var loaded=0;var num=0;for(var download in Module.dataFileDownloads){var data=Module.dataFileDownloads[download];total+=data.total;loaded+=data.loaded;num++}total=Math.ceil(total*Module.expectedDataFileDownloads/num);if(Module["setStatus"])Module["setStatus"]("Downloading data... ("+loaded+"/"+total+")")}else if(!Module.dataFileDownloads){if(Module["setStatus"])Module["setStatus"]("Downloading data...")}};xhr.onerror=function(event){throw new Error("NetworkError for: "+packageName)};xhr.onload=function(event){if(xhr.status==200||xhr.status==304||xhr.status==206||xhr.status==0&&xhr.response){var packageData=xhr.response;callback(packageData)}else{throw new Error(xhr.statusText+" : "+xhr.responseURL)}};xhr.send(null)}function handleError(error){console.error("package error:",error)}var fetchedCallback=null;var fetched=Module["getPreloadedPackage"]?Module["getPreloadedPackage"](REMOTE_PACKAGE_NAME,REMOTE_PACKAGE_SIZE):null;if(!fetched)fetchRemotePackage(REMOTE_PACKAGE_NAME,REMOTE_PACKAGE_SIZE,function(data){if(fetchedCallback){fetchedCallback(data);fetchedCallback=null}else{fetched=data}},handleError);function runWithFS(){function assert(check,msg){if(!check)throw msg+(new Error).stack}Module["FS_createPath"]("/","lib",true,true);Module["FS_createPath"]("/lib","python3.10",true,true);Module["FS_createPath"]("/lib/python3.10","asyncio",true,true);Module["FS_createPath"]("/lib/python3.10","collections",true,true);Module["FS_createPath"]("/lib/python3.10","concurrent",true,true);Module["FS_createPath"]("/lib/python3.10/concurrent","futures",true,true);Module["FS_createPath"]("/lib/python3.10","ctypes",true,true);Module["FS_createPath"]("/lib/python3.10/ctypes","macholib",true,true);Module["FS_createPath"]("/lib/python3.10","tzdata-2022.1.dist-info",true,true);Module["FS_createPath"]("/lib/python3.10","email",true,true);Module["FS_createPath"]("/lib/python3.10/email","mime",true,true);Module["FS_createPath"]("/lib/python3.10","encodings",true,true);Module["FS_createPath"]("/lib/python3.10","html",true,true);Module["FS_createPath"]("/lib/python3.10","http",true,true);Module["FS_createPath"]("/lib/python3.10","importlib",true,true);Module["FS_createPath"]("/lib/python3.10/importlib","metadata",true,true);Module["FS_createPath"]("/lib/python3.10","json",true,true);Module["FS_createPath"]("/lib/python3.10","logging",true,true);Module["FS_createPath"]("/lib/python3.10","multiprocessing",true,true);Module["FS_createPath"]("/lib/python3.10/multiprocessing","dummy",true,true);Module["FS_createPath"]("/lib/python3.10","pydoc_data",true,true);Module["FS_createPath"]("/lib/python3.10","site-packages",true,true);Module["FS_createPath"]("/lib/python3.10","sqlite3",true,true);Module["FS_createPath"]("/lib/python3.10","tzdata",true,true);Module["FS_createPath"]("/lib/python3.10/tzdata","zoneinfo",true,true);Module["FS_createPath"]("/lib/python3.10/tzdata/zoneinfo","Africa",true,true);Module["FS_createPath"]("/lib/python3.10/tzdata/zoneinfo","America",true,true);Module["FS_createPath"]("/lib/python3.10/tzdata/zoneinfo/America","Argentina",true,true);Module["FS_createPath"]("/lib/python3.10/tzdata/zoneinfo/America","Indiana",true,true);Module["FS_createPath"]("/lib/python3.10/tzdata/zoneinfo/America","Kentucky",true,true);Module["FS_createPath"]("/lib/python3.10/tzdata/zoneinfo/America","North_Dakota",true,true);Module["FS_createPath"]("/lib/python3.10/tzdata/zoneinfo","Antarctica",true,true);Module["FS_createPath"]("/lib/python3.10/tzdata/zoneinfo","Arctic",true,true);Module["FS_createPath"]("/lib/python3.10/tzdata/zoneinfo","Asia",true,true);Module["FS_createPath"]("/lib/python3.10/tzdata/zoneinfo","Atlantic",true,true);Module["FS_createPath"]("/lib/python3.10/tzdata/zoneinfo","Australia",true,true);Module["FS_createPath"]("/lib/python3.10/tzdata/zoneinfo","Brazil",true,true);Module["FS_createPath"]("/lib/python3.10/tzdata/zoneinfo","Canada",true,true);Module["FS_createPath"]("/lib/python3.10/tzdata/zoneinfo","Chile",true,true);Module["FS_createPath"]("/lib/python3.10/tzdata/zoneinfo","Etc",true,true);Module["FS_createPath"]("/lib/python3.10/tzdata/zoneinfo","Europe",true,true);Module["FS_createPath"]("/lib/python3.10/tzdata/zoneinfo","Indian",true,true);Module["FS_createPath"]("/lib/python3.10/tzdata/zoneinfo","Mexico",true,true);Module["FS_createPath"]("/lib/python3.10/tzdata/zoneinfo","Pacific",true,true);Module["FS_createPath"]("/lib/python3.10/tzdata/zoneinfo","US",true,true);Module["FS_createPath"]("/lib/python3.10","unittest",true,true);Module["FS_createPath"]("/lib/python3.10","urllib",true,true);Module["FS_createPath"]("/lib/python3.10","wsgiref",true,true);Module["FS_createPath"]("/lib/python3.10","xml",true,true);Module["FS_createPath"]("/lib/python3.10/xml","dom",true,true);Module["FS_createPath"]("/lib/python3.10/xml","etree",true,true);Module["FS_createPath"]("/lib/python3.10/xml","parsers",true,true);Module["FS_createPath"]("/lib/python3.10/xml","sax",true,true);Module["FS_createPath"]("/lib/python3.10","xmlrpc",true,true);Module["FS_createPath"]("/lib/python3.10","zoneinfo",true,true);function processPackageData(arrayBuffer){assert(arrayBuffer,"Loading data file failed.");assert(arrayBuffer instanceof ArrayBuffer,"bad input to processPackageData");var byteArray=new Uint8Array(arrayBuffer);var curr;var compressedData={"data":null,"cachedOffset":5390149,"cachedIndexes":[-1,-1],"cachedChunks":[null,null],"offsets":[0,1427,2589,3776,5322,6637,8053,9276,10176,11137,12037,13094,14287,15472,16494,17323,18687,19737,20743,21819,23063,24239,25564,26462,27523,28434,29550,30720,31889,33260,34562,35714,36757,37642,38556,39405,40881,42064,43063,44511,45497,46782,48199,49345,50556,51705,52993,54186,55445,56403,57319,58451,59379,60319,61186,62220,63435,64443,65350,66410,67290,68152,69248,70240,70978,72073,73044,74230,75235,76159,77200,78140,79045,79823,81151,82438,83559,84511,85683,86886,87862,88983,90211,91364,92318,93465,94498,95846,97112,97969,99164,99954,101058,102163,103080,104391,105594,106853,107597,108449,109217,110251,111158,112222,113491,114697,115935,116752,117792,118857,120082,121036,121961,122714,123447,124077,124771,125704,126285,126853,127634,128257,128767,129516,130347,131218,132051,132685,133827,134670,135352,136305,137212,137913,138757,139639,140404,141476,142880,144347,145447,146812,148275,149759,151035,152365,153818,155039,156248,157580,158904,160457,161772,163231,164657,165771,166740,168099,169547,170802,171678,172949,174299,175657,176688,177894,178942,179971,180976,182125,183331,184479,185632,186701,187802,188819,190113,191113,192241,193335,194561,195558,196718,197809,199167,200293,201409,202328,203387,204599,205864,206896,208016,209064,210096,210963,212164,213454,214797,216111,217205,218323,219455,220622,221904,223178,224320,225196,226346,227347,228599,230007,231429,232655,233807,234810,235532,236763,237939,238968,240353,241680,243024,244070,245249,246365,247345,248336,249377,250475,251332,252127,253112,254067,254818,255713,257145,258394,259698,260873,261858,262885,263781,264697,265605,266793,267875,268833,269948,270897,272095,273214,274147,274800,275551,276257,277314,278561,279770,280747,281817,282862,283938,284994,285982,286950,288083,289170,290196,291255,292336,293438,294291,295302,296315,297405,298488,299556,300404,301418,302454,303415,304427,305458,306686,308063,309083,310073,311333,312450,313776,315160,316388,317578,318615,319791,321046,322218,323363,324099,324837,325621,326554,327696,328859,329930,330716,331743,332623,333675,334571,335423,336286,337591,339188,340471,341374,342388,343446,345026,346586,347470,348703,349798,350777,351908,352990,354121,355451,356852,358009,359255,360509,361780,363165,364490,365769,367115,368258,369681,370881,371831,372875,374112,375288,376404,377670,378639,379566,380757,381718,383076,384217,385466,386597,388240,389307,390442,391536,392636,393826,394797,396024,397312,398622,399711,400760,401906,403141,404316,405520,406687,408039,409203,410389,411278,412215,413156,414155,415232,416153,417307,418578,419560,420718,422230,423604,424850,426253,427724,429046,430069,431130,432244,433256,434404,435525,436486,437487,438762,439928,441431,442524,443879,445181,446477,447678,449156,450211,451294,452741,454156,455070,456239,457435,458447,459517,460942,462208,463398,464577,465951,467319,468502,469760,470919,472123,473397,474650,476010,477191,478368,479361,480585,481739,482748,484116,485334,486032,487222,488810,490141,491382,492824,494024,495379,496720,497642,498940,500062,500960,502053,502940,504060,504942,506226,507562,508770,509943,510840,511766,512881,514058,515151,516095,517210,518226,519229,520426,521534,522584,523644,524748,525759,527062,528066,528992,530014,531274,532461,533547,534754,535698,536840,537943,539093,540196,541206,542471,543658,544989,546213,547358,548499,549769,551207,552359,553500,554713,556034,557358,558619,560022,561329,562662,563734,564915,566028,567061,568330,569364,570636,571730,572448,573517,574893,576013,577280,578587,579976,581138,582434,583657,584765,586101,587554,588755,589914,590994,592367,593576,594777,595712,597082,598407,599705,600961,602247,603544,604958,606195,607481,608840,609922,610972,612145,613236,614738,615817,616754,617559,618292,619114,620329,621554,622788,623678,624883,626021,627193,628240,629094,630186,631448,632584,633801,634992,636022,637147,638126,639350,640493,641275,642351,643422,644643,645574,646664,648087,649543,651012,652618,654063,655473,656895,658245,659461,660737,662145,663447,664719,666047,667264,668491,669694,670835,672174,673531,674719,676011,677312,678447,679732,681017,682399,683664,684853,686135,687550,688817,690082,691347,692060,693274,694341,695471,696764,698056,699237,700377,701630,702902,704040,705481,706683,708037,709047,710123,711344,712504,713651,714861,715946,717452,718833,719764,721042,722484,723908,725212,726438,727644,728759,730029,731460,732712,734007,735256,736406,737691,738830,739961,741010,742098,743208,744362,745647,746530,747750,748875,749923,751184,752329,753509,754852,756098,757197,758272,759326,760679,762063,763314,764729,765988,767020,768212,769249,770502,771795,773001,774006,775123,776090,777254,778449,779782,780831,782072,783336,784288,785401,786754,787996,789154,790372,791545,792720,793884,795020,796308,797418,798254,799148,800407,801786,802972,803891,804848,806260,807745,809198,810062,811352,812461,813399,814258,815508,816838,817972,819458,820779,821736,822711,823912,825093,826132,827281,828579,829566,830534,831354,832648,833832,834967,836537,837898,839133,840254,841420,842634,843695,844829,845879,847123,848420,849587,850595,851702,852900,854179,855492,856709,857852,858299,859270,860309,861462,862702,863913,865447,866700,867675,868809,870091,871403,872706,873913,875021,876102,877284,878583,879963,881485,882847,883983,885335,886599,887836,889356,890921,892072,893254,894372,895003,896250,897361,898497,899294,900575,901549,902208,903318,904374,905560,906565,907931,909291,910545,911742,912807,914268,915482,916883,918146,919327,920300,921360,922626,923779,925079,926247,927695,928946,930103,931359,932602,933902,935534,937207,938503,940024,941473,942834,943866,945106,946479,947567,948911,949916,951037,952276,953813,954618,956014,957391,958478,959695,960939,962226,963240,964209,965233,966204,967326,968411,969471,970621,971735,972793,973780,974935,976050,977098,978206,979591,980924,982268,983571,984475,985762,986978,988283,989506,990681,992047,993531,994822,995890,997035,997937,999087,1000089,1001210,1002499,1003829,1005064,1006199,1007549,1008624,1009791,1011032,1012176,1013398,1014564,1015572,1016762,1018138,1019273,1020478,1021604,1022677,1023827,1025013,1026232,1027462,1028715,1029794,1030908,1031986,1033193,1034310,1035491,1036758,1037877,1039005,1040150,1041256,1042096,1043129,1044233,1045256,1046448,1047508,1048585,1049625,1050554,1051662,1052773,1053628,1054641,1055582,1056560,1057677,1058762,1060007,1061493,1062824,1063982,1064949,1066179,1067300,1068382,1069719,1070673,1071685,1072893,1074060,1075125,1076004,1077121,1078173,1079287,1080329,1081378,1082041,1083268,1084403,1085619,1086478,1087394,1088573,1089552,1090819,1091897,1092916,1093989,1095127,1096307,1097246,1098150,1099225,1100240,1101361,1102457,1103689,1104836,1106047,1107472,1108672,1109882,1111002,1112251,1113385,1114491,1115475,1116836,1118060,1119256,1120099,1121302,1122092,1122815,1123570,1124084,1124657,1125219,1125722,1126242,1126812,1127367,1127916,1128503,1129085,1129625,1130175,1130774,1131328,1131921,1132512,1133127,1134411,1135563,1136845,1137970,1138967,1140384,1141678,1142715,1143762,1144995,1146232,1147523,1148503,1149275,1150359,1151297,1152512,1153627,1154667,1155712,1156904,1158140,1159340,1160485,1161451,1162594,1163634,1164589,1165681,1166502,1167160,1168155,1169217,1170211,1171183,1172238,1173173,1173985,1174744,1175672,1176694,1177587,1178496,1179362,1180095,1181100,1181902,1182844,1184009,1185086,1186509,1187751,1189020,1190192,1191391,1192659,1193724,1194701,1195794,1197001,1198290,1199237,1199908,1200717,1201903,1203391,1204524,1205495,1206277,1207370,1208305,1209308,1210360,1211446,1212517,1213603,1214779,1216058,1217004,1218092,1219550,1220942,1222299,1223653,1225091,1226481,1227813,1229028,1230156,1231127,1232284,1233554,1234727,1235661,1236588,1237671,1238823,1239971,1241138,1242421,1243854,1245037,1246280,1247612,1249009,1250253,1251071,1252180,1253445,1254569,1255762,1256942,1258253,1259640,1260919,1262498,1263147,1264193,1265131,1265929,1267287,1268376,1269495,1270728,1271694,1272955,1273888,1274911,1276206,1277780,1278884,1280125,1281099,1282271,1283266,1284519,1285490,1286796,1287882,1288874,1289759,1290713,1291687,1292854,1294014,1294953,1295877,1297126,1298541,1299678,1300811,1301870,1303090,1304260,1305440,1306561,1307531,1308902,1310310,1311361,1312819,1314130,1315562,1317055,1318144,1319525,1320688,1321567,1322867,1323889,1324936,1325967,1327090,1327847,1328926,1330200,1331402,1332768,1333880,1335278,1336456,1337785,1338878,1339973,1340841,1342117,1343392,1344487,1345374,1346442,1347579,1348698,1349823,1351113,1352241,1353383,1354470,1355340,1356333,1357124,1357793,1359222,1360804,1362226,1363338,1364571,1365749,1366974,1368162,1369385,1370719,1372014,1373242,1374216,1375419,1376689,1377667,1378739,1379745,1380898,1382204,1383397,1384401,1385581,1386614,1387688,1388998,1390206,1391422,1392848,1394253,1395524,1396817,1398238,1399481,1400775,1401853,1402707,1403935,1405306,1406544,1407736,1408776,1409923,1411075,1412344,1413278,1414216,1415236,1416335,1417275,1418379,1419480,1420822,1421905,1422882,1423715,1424680,1425791,1426730,1427735,1428722,1429772,1431002,1432587,1434125,1435653,1437060,1438096,1438896,1439963,1440987,1441836,1442692,1443889,1444801,1445916,1446971,1448245,1449591,1450493,1451743,1453060,1454104,1454980,1455807,1456534,1457794,1458706,1459712,1460737,1461833,1462664,1463864,1465171,1466543,1467897,1469132,1470469,1471566,1472817,1474027,1475530,1476545,1477809,1478854,1479906,1480863,1482147,1483528,1484916,1485794,1486857,1488028,1489453,1490624,1491867,1492962,1494016,1495047,1496325,1497626,1499129,1500481,1501941,1503349,1504940,1506366,1507965,1509286,1510495,1511716,1512842,1514140,1515314,1516498,1517874,1519167,1520500,1521738,1522770,1524028,1524815,1525715,1526965,1528229,1529622,1531109,1532440,1533441,1534499,1535530,1536705,1537874,1538872,1540013,1541112,1541964,1542816,1543939,1545527,1546850,1547951,1549046,1550326,1551639,1552711,1554196,1555634,1556838,1558083,1559295,1560619,1561779,1563096,1564618,1565708,1566927,1567928,1568720,1569753,1570688,1571576,1572573,1573303,1574197,1575151,1576678,1577744,1579108,1580282,1581283,1582177,1583421,1584653,1586123,1587362,1588649,1590100,1591528,1592878,1594055,1594968,1595972,1597093,1598168,1598971,1599978,1601207,1602319,1603178,1604059,1605255,1606490,1607729,1608982,1610274,1611662,1612881,1614182,1615400,1616619,1617817,1618725,1620029,1621565,1622641,1623879,1625244,1626599,1627831,1629030,1630301,1631510,1632742,1633920,1635094,1636241,1637385,1638509,1639484,1640563,1641380,1642281,1643453,1644656,1645969,1647175,1648245,1649135,1650250,1651035,1651976,1653091,1654244,1655545,1656785,1657909,1659095,1660306,1661432,1662495,1663620,1664825,1666037,1667057,1668376,1669509,1670823,1672052,1673150,1674342,1675522,1676424,1677425,1678610,1679841,1681010,1682410,1683564,1684679,1685696,1686923,1688147,1689462,1690694,1691914,1693220,1694651,1695902,1697135,1698221,1699357,1700435,1701698,1702957,1704164,1705466,1706781,1708132,1709301,1710615,1711809,1712990,1714264,1715285,1716718,1717981,1719022,1720199,1721388,1722548,1723493,1724540,1726099,1727266,1728463,1729661,1730833,1732087,1733316,1734624,1735977,1737384,1738806,1740001,1741333,1742561,1743818,1744941,1746155,1747191,1748297,1749243,1750240,1751044,1752172,1753570,1755050,1756105,1757296,1758669,1759823,1760831,1761621,1762417,1763078,1764352,1765710,1767052,1768478,1769726,1770836,1772030,1773321,1774483,1775553,1776938,1778017,1779005,1780157,1781365,1782710,1783874,1784941,1785915,1787216,1788479,1789819,1791001,1792066,1793375,1794725,1796013,1797067,1798391,1799879,1801199,1802351,1803661,1804858,1806131,1807440,1808737,1809754,1811019,1812523,1813993,1815189,1815758,1816327,1817423,1818383,1819490,1820342,1821394,1822491,1823763,1825004,1826204,1827460,1828523,1829607,1831213,1832435,1833683,1834965,1836142,1837360,1838507,1839708,1840950,1842136,1843373,1844560,1845634,1846865,1848006,1849307,1850561,1851817,1853037,1854330,1855371,1856653,1858129,1859389,1860521,1861740,1863133,1864346,1865344,1866326,1867485,1868752,1869926,1870948,1872049,1873201,1874326,1875500,1876915,1877872,1879276,1880557,1881805,1883307,1884421,1885452,1886313,1887341,1888298,1889105,1890091,1891284,1892288,1893091,1893993,1894927,1895637,1896428,1897405,1898472,1899390,1900659,1901477,1902920,1904330,1905870,1907066,1908364,1909457,1910518,1911569,1912742,1913817,1914877,1916031,1917339,1918749,1919866,1920690,1921441,1922284,1923169,1924269,1925707,1926880,1927978,1929259,1930158,1930912,1932222,1933478,1934385,1935620,1936854,1938038,1939125,1940644,1941842,1943173,1944312,1945500,1946484,1947530,1948701,1949694,1950916,1952292,1953517,1954552,1955839,1956899,1958037,1958814,1959825,1960620,1961709,1962789,1964191,1965560,1966538,1967740,1968943,1969972,1971351,1972703,1974017,1975352,1976659,1977718,1979117,1980668,1981999,1983481,1984676,1985771,1986970,1988428,1989614,1990964,1992196,1993389,1994218,1995390,1996753,1997609,1998718,1999749,2001180,2002048,2003282,2004284,2005302,2006332,2007353,2008683,2009656,2010747,2012087,2013350,2014540,2015931,2017196,2018454,2019723,2020915,2022327,2023633,2024671,2025955,2026806,2027728,2028766,2030022,2031229,2032350,2033458,2034374,2035024,2036098,2037035,2038087,2039139,2040119,2041141,2042047,2043036,2044089,2045074,2046077,2047167,2048237,2049274,2050140,2051129,2052234,2053558,2054809,2055929,2056738,2057648,2058620,2059613,2060395,2061563,2062522,2063487,2064347,2065163,2066452,2067406,2068134,2069389,2070622,2071777,2072884,2074186,2075553,2076732,2077866,2079172,2080555,2081956,2083461,2084648,2085818,2087051,2088268,2089588,2091123,2092145,2093380,2094784,2095856,2096992,2098118,2099162,2100197,2101284,2102321,2103541,2104664,2105578,2106721,2107770,2109021,2110228,2111443,2112596,2113888,2115066,2116099,2117173,2118318,2119469,2120592,2121537,2122518,2123376,2124233,2125399,2126633,2127681,2128783,2130045,2131225,2132379,2133403,2134432,2135522,2136507,2137492,2138722,2139955,2140881,2142498,2143760,2145245,2146461,2147676,2148615,2149462,2150414,2151345,2152285,2153561,2154980,2156335,2157656,2158974,2160186,2161397,2162772,2164046,2165384,2166704,2167843,2168894,2169845,2171003,2172498,2173835,2175071,2176135,2177468,2178835,2179919,2180900,2182217,2183506,2185084,2186227,2187400,2188637,2189782,2191026,2192121,2193422,2194681,2195963,2197332,2198584,2199647,2201032,2202371,2203598,2204914,2206046,2207414,2208677,2209818,2210817,2211915,2213064,2214261,2215408,2216793,2218122,2219565,2221086,2222220,2223570,2224804,2226043,2227283,2228595,2230101,2231412,2232640,2233637,2234823,2236215,2237250,2238639,2239619,2240614,2241578,2242764,2244002,2245511,2246624,2247751,2248834,2249962,2251214,2252508,2253491,2254573,2255543,2256377,2257440,2258655,2259800,2261018,2262401,2263639,2264838,2266042,2267257,2268435,2269464,2270575,2271670,2272737,2273903,2275145,2276107,2277005,2278035,2279121,2280145,2281121,2282118,2282843,2284037,2285483,2286754,2288013,2288973,2290213,2291652,2293001,2294307,2295547,2296761,2297848,2299128,2300374,2301798,2303240,2304429,2305416,2306798,2307916,2309233,2310532,2311759,2312902,2314101,2315150,2316189,2317439,2318444,2319781,2321065,2322317,2323525,2324703,2325908,2327330,2328759,2329907,2330996,2332136,2333373,2334540,2335720,2336820,2337889,2339198,2340326,2341708,2343129,2343972,2345298,2346634,2347811,2349086,2350531,2351761,2352988,2354117,2355086,2355995,2357193,2358675,2359957,2361026,2362211,2363614,2364912,2366141,2367279,2368430,2369683,2370827,2372061,2373272,2374471,2375656,2376976,2378173,2379410,2380490,2381464,2382590,2383563,2384394,2385367,2386567,2387751,2389010,2389764,2390691,2391878,2393141,2394062,2395173,2396367,2397482,2398720,2399724,2400532,2401934,2403208,2404600,2405799,2407253,2408367,2409652,2410933,2412209,2413423,2414493,2415462,2416796,2418118,2419138,2420095,2421253,2422473,2423503,2424499,2425463,2426537,2427512,2428794,2430005,2430997,2432127,2433307,2434533,2435777,2436820,2438090,2439282,2440369,2441474,2442568,2443453,2444340,2445529,2446255,2447251,2447900,2449032,2450288,2451658,2452755,2453759,2455092,2456312,2457436,2458612,2459688,2460842,2462114,2463345,2464170,2465035,2466635,2467661,2468987,2470287,2471632,2472998,2474434,2475996,2477601,2479178,2480716,2482037,2483016,2484054,2485059,2485939,2486837,2487718,2488595,2489437,2490617,2491497,2492680,2493414,2494736,2495857,2496924,2498324,2499696,2500935,2502187,2503229,2504188,2505360,2506546,2507462,2508573,2509730,2510902,2512022,2513064,2514150,2515190,2516230,2517448,2518493,2519639,2520882,2521841,2522978,2524109,2525148,2526128,2527206,2528383,2529513,2530400,2531338,2532378,2533513,2534554,2535674,2536775,2537920,2539195,2540211,2541318,2542185,2543321,2544435,2545830,2547112,2548389,2549648,2550687,2551801,2553005,2553950,2555025,2556010,2557372,2558482,2559735,2560582,2561436,2562621,2563692,2564646,2565840,2567060,2568435,2569772,2570943,2571938,2572959,2574092,2575125,2576474,2577668,2578994,2580299,2581459,2582809,2584054,2585319,2586322,2587431,2588604,2589579,2590695,2591880,2592937,2594206,2595210,2596141,2597195,2598126,2599125,2600400,2601369,2602634,2604050,2605433,2606801,2607903,2608990,2610192,2611536,2612772,2613803,2614948,2616231,2617206,2617994,2619e3,2620065,2621280,2622529,2623690,2624851,2625871,2627007,2628092,2628733,2629918,2630884,2632107,2633106,2634532,2635581,2636772,2637852,2639099,2640217,2641446,2642672,2643744,2644775,2645787,2646957,2647982,2649355,2650684,2651987,2653256,2654313,2655354,2656533,2657460,2658615,2659786,2660843,2662197,2663517,2664731,2666002,2667159,2667925,2668997,2669942,2671304,2672626,2673799,2675143,2676256,2677167,2678554,2679781,2680949,2682314,2683568,2684938,2686103,2687313,2688534,2689724,2690892,2692135,2693372,2694387,2695239,2696462,2697180,2697741,2698973,2700160,2701172,2702110,2703122,2704280,2705344,2706382,2707532,2708556,2709724,2710869,2711920,2712964,2714229,2715382,2716610,2717784,2719019,2720232,2721341,2722604,2723808,2725027,2726194,2727419,2728585,2729639,2730753,2732005,2733163,2734168,2735348,2735953,2736854,2737993,2739217,2740520,2741817,2742981,2744173,2745442,2746548,2747606,2748667,2749980,2751050,2752146,2753218,2754483,2755652,2756911,2758207,2759502,2760906,2762013,2762829,2764092,2764722,2765559,2766832,2768006,2768994,2769949,2770615,2771404,2772164,2772956,2773769,2774743,2775706,2776618,2777981,2779132,2780358,2781171,2782230,2783312,2784324,2785649,2786938,2788096,2789470,2790528,2791733,2793008,2794172,2795278,2796454,2797572,2798718,2800062,2801165,2802345,2803561,2804821,2806018,2807274,2808347,2809400,2810603,2811649,2812792,2813754,2815071,2816245,2817501,2818629,2819973,2821483,2822841,2824243,2825628,2826972,2828485,2829702,2830898,2832310,2833322,2834366,2835487,2836600,2837599,2838550,2839305,2840604,2841621,2842662,2843714,2844653,2846066,2847418,2848709,2849910,2851395,2852943,2854391,2855276,2856036,2857238,2858575,2859894,2861216,2862436,2863737,2865066,2866194,2867393,2868759,2870188,2871561,2872950,2874261,2875310,2876621,2877868,2879123,2880384,2881649,2882845,2884277,2885618,2886911,2888242,2889429,2890965,2892366,2893650,2894970,2896535,2897965,2899429,2900451,2901216,2901808,2902495,2903461,2904525,2905562,2906637,2907842,2908882,2910271,2911597,2912932,2914177,2915351,2916426,2917374,2918326,2919657,2920629,2921478,2922636,2923641,2924680,2925702,2926756,2927919,2928872,2930070,2931352,2932232,2933258,2934499,2935173,2936450,2937500,2938731,2939976,2941047,2942012,2943208,2944295,2945306,2946217,2947655,2948815,2950044,2951223,2952580,2954016,2955370,2956613,2958070,2959015,2959907,2960953,2962071,2963012,2964377,2965541,2966921,2968197,2969394,2970606,2971634,2972964,2974502,2975764,2977220,2978577,2980136,2981549,2982658,2983875,2985272,2986476,2987628,2988713,2990052,2991107,2992138,2993239,2994494,2995587,2996727,2997991,2999282,3000500,3002076,3003377,3004664,3005875,3007086,3008050,3009220,3010151,3011125,3012302,3013472,3014963,3016223,3017508,3018822,3020048,3021274,3022541,3023956,3025335,3026424,3027886,3029136,3030270,3031547,3032727,3033994,3035464,3036597,3037698,3038990,3040348,3041479,3042763,3043860,3045137,3046516,3047856,3048962,3050015,3051023,3051876,3052991,3054352,3055893,3057176,3058508,3059685,3060882,3062020,3063071,3064269,3065111,3066269,3067521,3068573,3069717,3071015,3071921,3073145,3074290,3075444,3076738,3077848,3079079,3080188,3081137,3082544,3083777,3085014,3086175,3087478,3088783,3090084,3091468,3092877,3094185,3095490,3096725,3098169,3099632,3101082,3102519,3103819,3105106,3106516,3107796,3109206,3110484,3111751,3113e3,3114424,3115873,3116951,3118259,3119027,3119825,3120612,3121333,3122e3,3122951,3123767,3124926,3125787,3126817,3127978,3128813,3129830,3130666,3131520,3132307,3133193,3133948,3135064,3136072,3136748,3137467,3138192,3138799,3139660,3140691,3141569,3142424,3143265,3144192,3144988,3145935,3146572,3147194,3147968,3148996,3149821,3150509,3151122,3151798,3152508,3153382,3154360,3155022,3155744,3156354,3157074,3157802,3158825,3159673,3160516,3161341,3162266,3162969,3164022,3165037,3165804,3166600,3167568,3168334,3169074,3170180,3171178,3171850,3172696,3173594,3174176,3175019,3176111,3176885,3177695,3178676,3179462,3180092,3181168,3182195,3182868,3183666,3184620,3185296,3186193,3187280,3188043,3188863,3189837,3190620,3191286,3192395,3193420,3194086,3194926,3195904,3196680,3197747,3198790,3199507,3200366,3201422,3202166,3203260,3204302,3205054,3205862,3206838,3207630,3208351,3209464,3210463,3211144,3211993,3212926,3213676,3214624,3215756,3216817,3217650,3218450,3219355,3220078,3221124,3222217,3223249,3224134,3224964,3225610,3226655,3227311,3228128,3228879,3229958,3230894,3231560,3232238,3233101,3233722,3234777,3235740,3236489,3237265,3237982,3238827,3239496,3240581,3241439,3242227,3243082,3243957,3244693,3245666,3246392,3247241,3247931,3248776,3249482,3250264,3251405,3252027,3252722,3253468,3254511,3255438,3256103,3256810,3257505,3258160,3258997,3259962,3260710,3261431,3262060,3262809,3263483,3264564,3265290,3266094,3266848,3267961,3268838,3269503,3270261,3271132,3271839,3272814,3273793,3274493,3275286,3275977,3276596,3277318,3278341,3279087,3279837,3280666,3281699,3282478,3283182,3283813,3284673,3285451,3286498,3287435,3288111,3289038,3289673,3290361,3291186,3292092,3292852,3293573,3294430,3295409,3296135,3296847,3297586,3298381,3299188,3300232,3301146,3301822,3302605,3303247,3303870,3304694,3305561,3306274,3306989,3307762,3308751,3309486,3310171,3310789,3311510,3312207,3313219,3314010,3314755,3315374,3315978,3316653,3317664,3318683,3319441,3320181,3320980,3321637,3322743,3323443,3324253,3325051,3326131,3327044,3327712,3328420,3329281,3330079,3331048,3332029,3332739,3333562,3334356,3334989,3335732,3336627,3337436,3338161,3339029,3340052,3340768,3341502,3342141,3342996,3343743,3344821,3345710,3346385,3347338,3347966,3348655,3349522,3350324,3351180,3351859,3352880,3353861,3354549,3355224,3355974,3356602,3357484,3358555,3359367,3360089,3360878,3361663,3362374,3363316,3364081,3364896,3365589,3366624,3367587,3368238,3368924,3369747,3370360,3371282,3372335,3373100,3373881,3374651,3375511,3376195,3377155,3377965,3378732,3379514,3380615,3381494,3382160,3382952,3383780,3384516,3385595,3386568,3387232,3388083,3388833,3389664,3390545,3391451,3392352,3392992,3394e3,3394997,3395716,3396397,3397211,3397842,3398726,3399799,3400612,3401334,3402144,3402975,3403661,3404619,3405574,3406328,3407025,3407970,3408891,3409561,3410481,3411307,3411978,3412735,3413712,3414406,3415237,3416028,3416640,3417376,3418249,3419106,3419725,3420668,3421694,3422417,3423156,3423794,3424618,3425370,3426479,3427398,3428079,3428974,3429670,3430523,3431392,3432215,3432927,3433559,3434406,3435378,3436115,3436786,3437367,3438019,3438741,3439779,3440638,3441323,3441992,3442571,3443322,3444219,3445105,3445868,3446609,3447575,3448535,3449194,3449986,3450780,3451498,3452376,3453362,3454041,3454870,3455499,3456210,3457060,3458162,3459009,3459760,3460454,3461191,3462141,3463144,3464046,3464879,3465657,3466405,3467315,3468031,3468610,3469180,3469756,3470304,3471320,3472373,3473347,3474031,3474734,3475581,3476242,3477358,3478415,3479390,3480467,3481440,3482312,3482895,3483484,3484084,3485135,3486141,3486820,3487541,3488413,3489067,3490002,3491045,3491795,3492510,3493254,3493986,3494701,3495818,3496835,3497502,3498183,3498902,3499666,3500755,3501769,3502428,3503090,3504043,3504776,3505713,3506799,3507598,3508343,3509079,3509752,3510402,3511414,3512451,3513184,3513845,3514788,3515408,3516238,3517327,3518202,3518912,3519703,3520552,3521255,3522274,3523291,3524053,3524720,3525510,3526222,3527065,3528090,3529027,3529709,3530493,3531317,3532021,3533061,3534098,3534835,3535496,3536308,3537037,3537954,3539005,3539917,3540606,3541342,3541943,3542545,3543624,3544650,3545327,3545987,3546711,3547634,3548682,3549442,3550149,3551055,3551716,3552577,3553666,3554538,3555246,3556025,3556756,3557856,3558867,3559529,3560205,3561114,3561776,3562684,3563734,3564732,3565410,3566256,3567011,3567670,3568464,3569518,3570415,3571098,3571966,3572814,3573416,3574449,3575480,3576181,3576930,3577821,3578536,3579225,3580233,3581190,3581864,3582711,3583604,3584173,3585070,3586006,3586728,3587512,3588279,3588928,3589691,3590441,3591158,3591922,3592721,3593465,3594095,3594831,3595551,3596231,3596957,3597710,3598421,3599384,3600215,3600877,3601598,3602508,3603472,3604433,3605184,3606081,3606772,3607460,3608407,3609124,3610092,3610790,3611510,3612201,3613018,3613819,3614699,3615648,3616398,3617279,3617983,3618882,3619811,3620562,3621548,3622227,3622986,3623720,3624427,3625496,3626407,3627550,3628550,3629229,3629980,3630884,3631721,3632618,3633388,3634251,3634936,3635643,3636651,3637550,3638617,3639322,3640069,3640838,3641541,3642598,3643501,3644492,3645288,3645977,3646694,3647567,3648558,3649661,3650576,3651623,3652523,3653208,3654256,3655111,3655765,3656774,3657823,3658582,3659380,3660142,3660982,3661583,3662767,3663994,3665167,3666118,3667093,3668120,3668943,3669760,3670830,3671711,3672415,3673149,3673882,3674938,3675875,3676909,3677883,3678889,3679771,3680736,3681665,3682259,3683010,3684034,3685019,3686255,3687230,3688578,3689741,3691024,3691901,3692811,3694064,3695217,3696475,3697704,3698940,3700125,3701272,3702176,3703024,3703986,3704898,3705823,3706734,3707695,3708577,3709525,3710412,3711339,3712227,3713168,3714086,3714927,3715724,3716571,3717515,3718430,3719335,3720247,3721147,3721996,3722901,3723832,3724731,3725595,3726860,3728219,3729526,3730508,3731254,3732275,3733323,3734405,3735397,3736786,3738124,3739529,3740817,3742170,3743609,3745124,3746565,3747784,3749e3,3750204,3751336,3752565,3753578,3754687,3755735,3757035,3758370,3759543,3760899,3762027,3763230,3764453,3765750,3766823,3767826,3769043,3770230,3771393,3772393,3773438,3774831,3776179,3777542,3778882,3780169,3781546,3782683,3784057,3785354,3786572,3788084,3789544,3790669,3791873,3792817,3793901,3794804,3795879,3797026,3797865,3798909,3800194,3801423,3802448,3803616,3804548,3805640,3806717,3807834,3808858,3809850,3810920,3812133,3813334,3814184,3815606,3816567,3817716,3819282,3820621,3822127,3823533,3824619,3825762,3826952,3828150,3829500,3830591,3832078,3833508,3834965,3836439,3837794,3838731,3839923,3841098,3842288,3843454,3844802,3846075,3847251,3848413,3849653,3850966,3852342,3853599,3854774,3855765,3857012,3858166,3859416,3860448,3861731,3862887,3864182,3865492,3866898,3867993,3869137,3870352,3871618,3872822,3873778,3874849,3875840,3876958,3878019,3879323,3880314,3881399,3882590,3883759,3884958,3886308,3887552,3888726,3890104,3891206,3892442,3893839,3894902,3896106,3897388,3898869,3900185,3901360,3902728,3904169,3905202,3906416,3907733,3908763,3909963,3911114,3912057,3912993,3914267,3915477,3916626,3917768,3918933,3920026,3921127,3922428,3923621,3924819,3926026,3927332,3928690,3929830,3930982,3932169,3933290,3934427,3935536,3936581,3937729,3938924,3940177,3941400,3942501,3943729,3944846,3945863,3947170,3948431,3949647,3950839,3952042,3953002,3954134,3955297,3956495,3957727,3958851,3960116,3961401,3962522,3963685,3964746,3966030,3967333,3968702,3970063,3971240,3972552,3973864,3975316,3976633,3977928,3978935,3980122,3981452,3982638,3983935,3984822,3985923,3987112,3988287,3989458,3990786,3992034,3993075,3994023,3995014,3995698,3996801,3997950,3999094,4000676,4001891,4003290,4004640,4005867,4007169,4008405,4009421,4010474,4011746,4013107,4014391,4015591,4016737,4017921,4019207,4020233,4021594,4022730,4024017,4025220,4026427,4027736,4028725,4030053,4030858,4031927,4033156,4034295,4035411,4036681,4037676,4038649,4039933,4041104,4042026,4042846,4043954,4045208,4046751,4048077,4049417,4050708,4052038,4052969,4054190,4055146,4056272,4056888,4057786,4058843,4059912,4060918,4062025,4063282,4064366,4065433,4066989,4068079,4069445,4070590,4071651,4072934,4074110,4075247,4076461,4077714,4078994,4080314,4081503,4082735,4084124,4085241,4086467,4087548,4088818,4090011,4091119,4092306,4093488,4094714,4095965,4097237,4098436,4099710,4100845,4102231,4103617,4104717,4105650,4106811,4107755,4108838,4110104,4111144,4112294,4113460,4114549,4115640,4116848,4117844,4119043,4120068,4120983,4121864,4123097,4124079,4125080,4126295,4127469,4128581,4129800,4130701,4131832,4133163,4134480,4135700,4136605,4137866,4139165,4140513,4141840,4142893,4143920,4144900,4146054,4147129,4148338,4149449,4150492,4151586,4152748,4153922,4155048,4156268,4157551,4158542,4159329,4160457,4161549,4162648,4163791,4164840,4166165,4167444,4168755,4169703,4170711,4171820,4172885,4173689,4174826,4175769,4176752,4177860,4178915,4179926,4180892,4182073,4183110,4184380,4185538,4186951,4188007,4189296,4190320,4191374,4192436,4193600,4194943,4196048,4197034,4198082,4199107,4200351,4201613,4202738,4203812,4204912,4206115,4207323,4208414,4209485,4210915,4212126,4213214,4214359,4215747,4216853,4217789,4218859,4220258,4221262,4222155,4223085,4224066,4225328,4226315,4227484,4228734,4229985,4231361,4232556,4233803,4235126,4236168,4236990,4238041,4239001,4240335,4241484,4242793,4243824,4245009,4246298,4247547,4248823,4250131,4251261,4252337,4253405,4254354,4255381,4256412,4257471,4258459,4259476,4260418,4261495,4262433,4263461,4264227,4265265,4266306,4267216,4268086,4268914,4269833,4270694,4271600,4272534,4273469,4274392,4275304,4276123,4277086,4278044,4279059,4280151,4281198,4282319,4283248,4284204,4285227,4286288,4287275,4288482,4289515,4290642,4291727,4292868,4294020,4295098,4296124,4297191,4298262,4299262,4300285,4301242,4302274,4303309,4304237,4305254,4306239,4307241,4308183,4309226,4310103,4311006,4311992,4312974,4313817,4314752,4315820,4316802,4317708,4318591,4319500,4320508,4321502,4322457,4323299,4324184,4325135,4326075,4327003,4327797,4328677,4329654,4330791,4331760,4332872,4333885,4334882,4335928,4336900,4337766,4338703,4339633,4340569,4341599,4342618,4343590,4344531,4345526,4346529,4347452,4348365,4349404,4350392,4351384,4352410,4353484,4354541,4355518,4356556,4357643,4358707,4359861,4360915,4361923,4362869,4363955,4364938,4365872,4366710,4367744,4368954,4370183,4371373,4372504,4373605,4374620,4375562,4376579,4377613,4378713,4379758,4380865,4381948,4383048,4384279,4385466,4386487,4387484,4388482,4389425,4390461,4391249,4391990,4392986,4393947,4394696,4395210,4395951,4396687,4397501,4398346,4399105,4400015,4400858,4401686,4402624,4403434,4404478,4405597,4406615,4407684,4408765,4409863,4411009,4411931,4412958,4413973,4415088,4416107,4417269,4418287,4419469,4420545,4421707,4422825,4424033,4425095,4426142,4427199,4428288,4429349,4430427,4431486,4432364,4433182,4434121,4435046,4435883,4437020,4438144,4439253,4440285,4440826,4441242,4441733,4442749,4443728,4444899,4446040,4446933,4447958,4449039,4450025,4450964,4451896,4452644,4453532,4454552,4455579,4456485,4457529,4458651,4459601,4460632,4461632,4462642,4463613,4464570,4465536,4466559,4467608,4468622,4469753,4470681,4471692,4472520,4473488,4474442,4475386,4476419,4477371,4478361,4479271,4480260,4481236,4482209,4483125,4483988,4484892,4485837,4486836,4487884,4488918,4489783,4490723,4491706,4492594,4493493,4494543,4495528,4496521,4497461,4498245,4499233,4500062,4500880,4501719,4502711,4503635,4504634,4505639,4506699,4507648,4508676,4509676,4510665,4511641,4512602,4513594,4514453,4515269,4516088,4517015,4517812,4518688,4519585,4520418,4521329,4522255,4523061,4523627,4524267,4525117,4526064,4527019,4527978,4528837,4529967,4530950,4531374,4532142,4533254,4534203,4535379,4536435,4537628,4538615,4539643,4540831,4541922,4543021,4544199,4545276,4546385,4547543,4548724,4549604,4550257,4550956,4551979,4552890,4553962,4554861,4555933,4557014,4558207,4559184,4560280,4561465,4562412,4563533,4564696,4565768,4566905,4567891,4569001,4569976,4570910,4571774,4572639,4573458,4574324,4575194,4576126,4576994,4577977,4578997,4580025,4581122,4581961,4582493,4583582,4584561,4585724,4586758,4587508,4588095,4588727,4589752,4590804,4591916,4593e3,4594086,4595100,4596038,4597027,4597781,4598276,4598842,4599468,4600498,4601623,4602675,4603655,4604864,4606387,4607822,4609189,4610404,4611855,4613174,4614435,4615543,4616962,4618309,4619655,4621002,4622182,4623192,4624563,4625962,4627221,4628544,4629819,4631152,4632402,4633739,4634904,4636720,4638605,4640238,4641300,4642473,4643533,4644369,4645266,4646410,4647609,4648705,4649920,4650548,4651523,4652565,4653381,4654562,4655738,4656864,4657933,4658795,4660037,4661099,4662378,4663243,4664297,4665350,4666587,4667672,4668878,4669982,4671092,4672180,4673340,4674236,4674965,4675870,4677001,4678118,4679142,4680226,4681214,4682275,4683278,4684268,4685257,4686227,4687347,4688482,4689570,4690450,4691141,4692176,4693091,4694131,4695276,4696392,4697545,4698979,4700576,4702149,4703541,4705164,4706880,4708440,4710047,4711680,4713025,4714646,4716185,4717668,4719236,4720955,4722517,4724142,4725761,4727106,4727793,4729147,4730375,4731591,4732338,4732669,4733402,4734772,4735905,4737245,4738369,4739674,4740785,4742094,4743483,4744623,4745957,4747348,4748668,4749906,4751298,4752669,4754030,4755319,4756539,4757808,4759206,4760540,4761829,4763021,4764341,4765661,4767073,4768462,4769801,4770976,4772327,4773598,4774773,4776009,4777216,4778580,4779906,4781268,4782596,4783828,4785007,4786429,4787800,4789073,4790350,4791140,4791748,4792369,4793011,4793968,4794971,4795697,4796985,4798005,4799132,4800432,4801743,4802882,4804208,4804917,4806115,4807345,4808463,4809553,4810924,4812090,4813380,4814723,4816038,4817214,4818354,4819600,4820715,4821922,4822870,4824143,4825505,4826884,4828124,4828961,4830283,4831587,4833033,4833749,4834987,4836252,4837238,4838329,4839387,4840297,4841217,4842453,4843454,4844737,4846136,4847481,4848830,4850338,4851630,4853067,4853973,4854334,4854812,4855994,4857337,4858125,4859493,4860478,4861620,4862795,4864114,4865443,4866856,4868260,4869461,4870695,4871697,4873016,4874412,4875416,4876610,4877782,4879149,4880416,4881695,4882777,4884110,4885211,4885878,4887176,4888139,4889342,4890299,4891130,4892038,4893126,4894590,4895904,4897224,4898526,4900003,4901530,4902970,4903986,4905464,4906485,4907474,4908747,4909919,4911029,4912138,4913285,4914771,4915969,4917068,4918302,4919252,4920054,4921125,4922283,4923398,4924575,4925697,4926616,4927707,4928565,4929518,4930488,4931299,4932407,4933307,4934148,4935222,4936396,4937368,4938545,4939927,4941165,4942180,4943290,4944665,4945712,4946698,4947835,4948876,4949959,4951138,4952427,4953424,4954278,4955252,4956219,4957600,4958847,4959875,4960955,4962088,4963340,4964408,4965431,4966464,4967632,4968704,4969749,4970965,4972212,4973162,4974283,4975533,4976844,4977836,4979111,4980444,4981560,4982631,4983701,4984592,4985557,4986581,4987926,4989198,4990613,4992108,4993281,4994400,4995715,4996662,4997767,4999007,5000050,5001021,5002123,5003318,5004459,5005424,5006410,5007761,5009067,5010172,5011360,5012494,5013923,5015045,5016081,5017335,5018582,5019157,5020345,5021407,5022548,5023683,5025031,5026034,5026897,5027746,5028450,5029675,5030847,5032027,5033329,5034662,5036008,5037437,5038669,5039390,5040390,5041331,5042719,5044133,5045321,5046496,5047897,5049128,5050420,5051768,5053223,5054514,5055753,5056845,5057742,5058695,5060077,5061522,5062944,5064382,5065655,5066960,5068051,5069210,5070301,5071283,5072575,5073912,5075310,5076634,5077912,5079093,5080142,5081439,5082526,5083779,5085126,5086278,5087357,5088416,5089696,5090875,5092072,5093234,5094401,5095699,5097162,5098336,5099382,5100595,5101701,5102803,5103949,5105150,5106453,5107504,5108175,5108896,5109690,5110792,5111847,5113248,5114613,5115730,5116838,5117965,5119161,5120448,5121476,5122610,5123538,5124842,5126359,5127576,5129021,5130301,5131578,5132850,5134103,5135470,5136602,5138047,5139630,5140828,5141629,5142963,5144222,5145423,5146872,5148091,5149382,5150857,5152263,5153538,5154449,5155596,5156720,5157944,5159423,5160681,5161680,5162988,5164250,5165707,5166687,5167859,5168791,5169813,5170768,5171741,5172847,5173994,5174954,5175976,5177083,5178011,5179120,5180102,5181257,5182211,5183410,5184471,5185865,5186866,5187789,5188708,5189936,5191072,5192161,5193158,5194205,5194985,5196095,5197233,5198141,5199017,5200202,5201372,5202527,5203170,5204082,5205197,5206163,5207158,5208067,5209203,5210392,5211502,5212505,5213406,5214232,5215354,5216426,5217245,5218386,5219543,5220565,5221316,5222392,5223492,5224390,5225620,5226545,5227232,5228394,5229451,5230621,5232073,5233458,5234656,5235795,5237374,5238451,5239337,5240390,5241148,5242338,5243608,5245058,5246412,5247675,5248855,5249659,5250781,5251912,5252880,5254039,5254778,5255781,5256878,5257927,5259005,5259967,5260993,5262276,5263148,5264146,5265487,5266735,5268041,5269055,5270080,5271210,5272317,5273014,5274147,5275171,5276440,5277391,5278463,5279518,5280636,5281627,5282909,5284345,5285536,5286844,5288086,5289244,5290332,5291423,5292200,5293362,5294147,5295177,5296184,5297499,5298768,5299982,5301078,5302331,5303167,5304227,5305436,5306445,5307658,5308736,5309770,5310539,5311565,5312727,5313909,5315089,5316251,5317351,5318140,5319614,5321082,5322505,5323838,5325043,5325854,5327058,5328353,5329554,5330479,5331777,5332732,5333648,5334828,5335988,5337201,5338335,5339653,5340838,5342096,5343195,5344423,5345815,5346934,5348229,5349461,5350792,5352052,5353221,5354259,5355408,5356607,5357888,5359061,5360324,5361457,5362584,5363824,5365012,5366130,5367122,5368214,5369539,5370798,5372206,5373470,5374815,5376198,5377328,5378337,5379502,5380702,5382013,5383134,5384252,5385442,5386603,5388042,5389105],"sizes":[1427,1162,1187,1546,1315,1416,1223,900,961,900,1057,1193,1185,1022,829,1364,1050,1006,1076,1244,1176,1325,898,1061,911,1116,1170,1169,1371,1302,1152,1043,885,914,849,1476,1183,999,1448,986,1285,1417,1146,1211,1149,1288,1193,1259,958,916,1132,928,940,867,1034,1215,1008,907,1060,880,862,1096,992,738,1095,971,1186,1005,924,1041,940,905,778,1328,1287,1121,952,1172,1203,976,1121,1228,1153,954,1147,1033,1348,1266,857,1195,790,1104,1105,917,1311,1203,1259,744,852,768,1034,907,1064,1269,1206,1238,817,1040,1065,1225,954,925,753,733,630,694,933,581,568,781,623,510,749,831,871,833,634,1142,843,682,953,907,701,844,882,765,1072,1404,1467,1100,1365,1463,1484,1276,1330,1453,1221,1209,1332,1324,1553,1315,1459,1426,1114,969,1359,1448,1255,876,1271,1350,1358,1031,1206,1048,1029,1005,1149,1206,1148,1153,1069,1101,1017,1294,1e3,1128,1094,1226,997,1160,1091,1358,1126,1116,919,1059,1212,1265,1032,1120,1048,1032,867,1201,1290,1343,1314,1094,1118,1132,1167,1282,1274,1142,876,1150,1001,1252,1408,1422,1226,1152,1003,722,1231,1176,1029,1385,1327,1344,1046,1179,1116,980,991,1041,1098,857,795,985,955,751,895,1432,1249,1304,1175,985,1027,896,916,908,1188,1082,958,1115,949,1198,1119,933,653,751,706,1057,1247,1209,977,1070,1045,1076,1056,988,968,1133,1087,1026,1059,1081,1102,853,1011,1013,1090,1083,1068,848,1014,1036,961,1012,1031,1228,1377,1020,990,1260,1117,1326,1384,1228,1190,1037,1176,1255,1172,1145,736,738,784,933,1142,1163,1071,786,1027,880,1052,896,852,863,1305,1597,1283,903,1014,1058,1580,1560,884,1233,1095,979,1131,1082,1131,1330,1401,1157,1246,1254,1271,1385,1325,1279,1346,1143,1423,1200,950,1044,1237,1176,1116,1266,969,927,1191,961,1358,1141,1249,1131,1643,1067,1135,1094,1100,1190,971,1227,1288,1310,1089,1049,1146,1235,1175,1204,1167,1352,1164,1186,889,937,941,999,1077,921,1154,1271,982,1158,1512,1374,1246,1403,1471,1322,1023,1061,1114,1012,1148,1121,961,1001,1275,1166,1503,1093,1355,1302,1296,1201,1478,1055,1083,1447,1415,914,1169,1196,1012,1070,1425,1266,1190,1179,1374,1368,1183,1258,1159,1204,1274,1253,1360,1181,1177,993,1224,1154,1009,1368,1218,698,1190,1588,1331,1241,1442,1200,1355,1341,922,1298,1122,898,1093,887,1120,882,1284,1336,1208,1173,897,926,1115,1177,1093,944,1115,1016,1003,1197,1108,1050,1060,1104,1011,1303,1004,926,1022,1260,1187,1086,1207,944,1142,1103,1150,1103,1010,1265,1187,1331,1224,1145,1141,1270,1438,1152,1141,1213,1321,1324,1261,1403,1307,1333,1072,1181,1113,1033,1269,1034,1272,1094,718,1069,1376,1120,1267,1307,1389,1162,1296,1223,1108,1336,1453,1201,1159,1080,1373,1209,1201,935,1370,1325,1298,1256,1286,1297,1414,1237,1286,1359,1082,1050,1173,1091,1502,1079,937,805,733,822,1215,1225,1234,890,1205,1138,1172,1047,854,1092,1262,1136,1217,1191,1030,1125,979,1224,1143,782,1076,1071,1221,931,1090,1423,1456,1469,1606,1445,1410,1422,1350,1216,1276,1408,1302,1272,1328,1217,1227,1203,1141,1339,1357,1188,1292,1301,1135,1285,1285,1382,1265,1189,1282,1415,1267,1265,1265,713,1214,1067,1130,1293,1292,1181,1140,1253,1272,1138,1441,1202,1354,1010,1076,1221,1160,1147,1210,1085,1506,1381,931,1278,1442,1424,1304,1226,1206,1115,1270,1431,1252,1295,1249,1150,1285,1139,1131,1049,1088,1110,1154,1285,883,1220,1125,1048,1261,1145,1180,1343,1246,1099,1075,1054,1353,1384,1251,1415,1259,1032,1192,1037,1253,1293,1206,1005,1117,967,1164,1195,1333,1049,1241,1264,952,1113,1353,1242,1158,1218,1173,1175,1164,1136,1288,1110,836,894,1259,1379,1186,919,957,1412,1485,1453,864,1290,1109,938,859,1250,1330,1134,1486,1321,957,975,1201,1181,1039,1149,1298,987,968,820,1294,1184,1135,1570,1361,1235,1121,1166,1214,1061,1134,1050,1244,1297,1167,1008,1107,1198,1279,1313,1217,1143,447,971,1039,1153,1240,1211,1534,1253,975,1134,1282,1312,1303,1207,1108,1081,1182,1299,1380,1522,1362,1136,1352,1264,1237,1520,1565,1151,1182,1118,631,1247,1111,1136,797,1281,974,659,1110,1056,1186,1005,1366,1360,1254,1197,1065,1461,1214,1401,1263,1181,973,1060,1266,1153,1300,1168,1448,1251,1157,1256,1243,1300,1632,1673,1296,1521,1449,1361,1032,1240,1373,1088,1344,1005,1121,1239,1537,805,1396,1377,1087,1217,1244,1287,1014,969,1024,971,1122,1085,1060,1150,1114,1058,987,1155,1115,1048,1108,1385,1333,1344,1303,904,1287,1216,1305,1223,1175,1366,1484,1291,1068,1145,902,1150,1002,1121,1289,1330,1235,1135,1350,1075,1167,1241,1144,1222,1166,1008,1190,1376,1135,1205,1126,1073,1150,1186,1219,1230,1253,1079,1114,1078,1207,1117,1181,1267,1119,1128,1145,1106,840,1033,1104,1023,1192,1060,1077,1040,929,1108,1111,855,1013,941,978,1117,1085,1245,1486,1331,1158,967,1230,1121,1082,1337,954,1012,1208,1167,1065,879,1117,1052,1114,1042,1049,663,1227,1135,1216,859,916,1179,979,1267,1078,1019,1073,1138,1180,939,904,1075,1015,1121,1096,1232,1147,1211,1425,1200,1210,1120,1249,1134,1106,984,1361,1224,1196,843,1203,790,723,755,514,573,562,503,520,570,555,549,587,582,540,550,599,554,593,591,615,1284,1152,1282,1125,997,1417,1294,1037,1047,1233,1237,1291,980,772,1084,938,1215,1115,1040,1045,1192,1236,1200,1145,966,1143,1040,955,1092,821,658,995,1062,994,972,1055,935,812,759,928,1022,893,909,866,733,1005,802,942,1165,1077,1423,1242,1269,1172,1199,1268,1065,977,1093,1207,1289,947,671,809,1186,1488,1133,971,782,1093,935,1003,1052,1086,1071,1086,1176,1279,946,1088,1458,1392,1357,1354,1438,1390,1332,1215,1128,971,1157,1270,1173,934,927,1083,1152,1148,1167,1283,1433,1183,1243,1332,1397,1244,818,1109,1265,1124,1193,1180,1311,1387,1279,1579,649,1046,938,798,1358,1089,1119,1233,966,1261,933,1023,1295,1574,1104,1241,974,1172,995,1253,971,1306,1086,992,885,954,974,1167,1160,939,924,1249,1415,1137,1133,1059,1220,1170,1180,1121,970,1371,1408,1051,1458,1311,1432,1493,1089,1381,1163,879,1300,1022,1047,1031,1123,757,1079,1274,1202,1366,1112,1398,1178,1329,1093,1095,868,1276,1275,1095,887,1068,1137,1119,1125,1290,1128,1142,1087,870,993,791,669,1429,1582,1422,1112,1233,1178,1225,1188,1223,1334,1295,1228,974,1203,1270,978,1072,1006,1153,1306,1193,1004,1180,1033,1074,1310,1208,1216,1426,1405,1271,1293,1421,1243,1294,1078,854,1228,1371,1238,1192,1040,1147,1152,1269,934,938,1020,1099,940,1104,1101,1342,1083,977,833,965,1111,939,1005,987,1050,1230,1585,1538,1528,1407,1036,800,1067,1024,849,856,1197,912,1115,1055,1274,1346,902,1250,1317,1044,876,827,727,1260,912,1006,1025,1096,831,1200,1307,1372,1354,1235,1337,1097,1251,1210,1503,1015,1264,1045,1052,957,1284,1381,1388,878,1063,1171,1425,1171,1243,1095,1054,1031,1278,1301,1503,1352,1460,1408,1591,1426,1599,1321,1209,1221,1126,1298,1174,1184,1376,1293,1333,1238,1032,1258,787,900,1250,1264,1393,1487,1331,1001,1058,1031,1175,1169,998,1141,1099,852,852,1123,1588,1323,1101,1095,1280,1313,1072,1485,1438,1204,1245,1212,1324,1160,1317,1522,1090,1219,1001,792,1033,935,888,997,730,894,954,1527,1066,1364,1174,1001,894,1244,1232,1470,1239,1287,1451,1428,1350,1177,913,1004,1121,1075,803,1007,1229,1112,859,881,1196,1235,1239,1253,1292,1388,1219,1301,1218,1219,1198,908,1304,1536,1076,1238,1365,1355,1232,1199,1271,1209,1232,1178,1174,1147,1144,1124,975,1079,817,901,1172,1203,1313,1206,1070,890,1115,785,941,1115,1153,1301,1240,1124,1186,1211,1126,1063,1125,1205,1212,1020,1319,1133,1314,1229,1098,1192,1180,902,1001,1185,1231,1169,1400,1154,1115,1017,1227,1224,1315,1232,1220,1306,1431,1251,1233,1086,1136,1078,1263,1259,1207,1302,1315,1351,1169,1314,1194,1181,1274,1021,1433,1263,1041,1177,1189,1160,945,1047,1559,1167,1197,1198,1172,1254,1229,1308,1353,1407,1422,1195,1332,1228,1257,1123,1214,1036,1106,946,997,804,1128,1398,1480,1055,1191,1373,1154,1008,790,796,661,1274,1358,1342,1426,1248,1110,1194,1291,1162,1070,1385,1079,988,1152,1208,1345,1164,1067,974,1301,1263,1340,1182,1065,1309,1350,1288,1054,1324,1488,1320,1152,1310,1197,1273,1309,1297,1017,1265,1504,1470,1196,569,569,1096,960,1107,852,1052,1097,1272,1241,1200,1256,1063,1084,1606,1222,1248,1282,1177,1218,1147,1201,1242,1186,1237,1187,1074,1231,1141,1301,1254,1256,1220,1293,1041,1282,1476,1260,1132,1219,1393,1213,998,982,1159,1267,1174,1022,1101,1152,1125,1174,1415,957,1404,1281,1248,1502,1114,1031,861,1028,957,807,986,1193,1004,803,902,934,710,791,977,1067,918,1269,818,1443,1410,1540,1196,1298,1093,1061,1051,1173,1075,1060,1154,1308,1410,1117,824,751,843,885,1100,1438,1173,1098,1281,899,754,1310,1256,907,1235,1234,1184,1087,1519,1198,1331,1139,1188,984,1046,1171,993,1222,1376,1225,1035,1287,1060,1138,777,1011,795,1089,1080,1402,1369,978,1202,1203,1029,1379,1352,1314,1335,1307,1059,1399,1551,1331,1482,1195,1095,1199,1458,1186,1350,1232,1193,829,1172,1363,856,1109,1031,1431,868,1234,1002,1018,1030,1021,1330,973,1091,1340,1263,1190,1391,1265,1258,1269,1192,1412,1306,1038,1284,851,922,1038,1256,1207,1121,1108,916,650,1074,937,1052,1052,980,1022,906,989,1053,985,1003,1090,1070,1037,866,989,1105,1324,1251,1120,809,910,972,993,782,1168,959,965,860,816,1289,954,728,1255,1233,1155,1107,1302,1367,1179,1134,1306,1383,1401,1505,1187,1170,1233,1217,1320,1535,1022,1235,1404,1072,1136,1126,1044,1035,1087,1037,1220,1123,914,1143,1049,1251,1207,1215,1153,1292,1178,1033,1074,1145,1151,1123,945,981,858,857,1166,1234,1048,1102,1262,1180,1154,1024,1029,1090,985,985,1230,1233,926,1617,1262,1485,1216,1215,939,847,952,931,940,1276,1419,1355,1321,1318,1212,1211,1375,1274,1338,1320,1139,1051,951,1158,1495,1337,1236,1064,1333,1367,1084,981,1317,1289,1578,1143,1173,1237,1145,1244,1095,1301,1259,1282,1369,1252,1063,1385,1339,1227,1316,1132,1368,1263,1141,999,1098,1149,1197,1147,1385,1329,1443,1521,1134,1350,1234,1239,1240,1312,1506,1311,1228,997,1186,1392,1035,1389,980,995,964,1186,1238,1509,1113,1127,1083,1128,1252,1294,983,1082,970,834,1063,1215,1145,1218,1383,1238,1199,1204,1215,1178,1029,1111,1095,1067,1166,1242,962,898,1030,1086,1024,976,997,725,1194,1446,1271,1259,960,1240,1439,1349,1306,1240,1214,1087,1280,1246,1424,1442,1189,987,1382,1118,1317,1299,1227,1143,1199,1049,1039,1250,1005,1337,1284,1252,1208,1178,1205,1422,1429,1148,1089,1140,1237,1167,1180,1100,1069,1309,1128,1382,1421,843,1326,1336,1177,1275,1445,1230,1227,1129,969,909,1198,1482,1282,1069,1185,1403,1298,1229,1138,1151,1253,1144,1234,1211,1199,1185,1320,1197,1237,1080,974,1126,973,831,973,1200,1184,1259,754,927,1187,1263,921,1111,1194,1115,1238,1004,808,1402,1274,1392,1199,1454,1114,1285,1281,1276,1214,1070,969,1334,1322,1020,957,1158,1220,1030,996,964,1074,975,1282,1211,992,1130,1180,1226,1244,1043,1270,1192,1087,1105,1094,885,887,1189,726,996,649,1132,1256,1370,1097,1004,1333,1220,1124,1176,1076,1154,1272,1231,825,865,1600,1026,1326,1300,1345,1366,1436,1562,1605,1577,1538,1321,979,1038,1005,880,898,881,877,842,1180,880,1183,734,1322,1121,1067,1400,1372,1239,1252,1042,959,1172,1186,916,1111,1157,1172,1120,1042,1086,1040,1040,1218,1045,1146,1243,959,1137,1131,1039,980,1078,1177,1130,887,938,1040,1135,1041,1120,1101,1145,1275,1016,1107,867,1136,1114,1395,1282,1277,1259,1039,1114,1204,945,1075,985,1362,1110,1253,847,854,1185,1071,954,1194,1220,1375,1337,1171,995,1021,1133,1033,1349,1194,1326,1305,1160,1350,1245,1265,1003,1109,1173,975,1116,1185,1057,1269,1004,931,1054,931,999,1275,969,1265,1416,1383,1368,1102,1087,1202,1344,1236,1031,1145,1283,975,788,1006,1065,1215,1249,1161,1161,1020,1136,1085,641,1185,966,1223,999,1426,1049,1191,1080,1247,1118,1229,1226,1072,1031,1012,1170,1025,1373,1329,1303,1269,1057,1041,1179,927,1155,1171,1057,1354,1320,1214,1271,1157,766,1072,945,1362,1322,1173,1344,1113,911,1387,1227,1168,1365,1254,1370,1165,1210,1221,1190,1168,1243,1237,1015,852,1223,718,561,1232,1187,1012,938,1012,1158,1064,1038,1150,1024,1168,1145,1051,1044,1265,1153,1228,1174,1235,1213,1109,1263,1204,1219,1167,1225,1166,1054,1114,1252,1158,1005,1180,605,901,1139,1224,1303,1297,1164,1192,1269,1106,1058,1061,1313,1070,1096,1072,1265,1169,1259,1296,1295,1404,1107,816,1263,630,837,1273,1174,988,955,666,789,760,792,813,974,963,912,1363,1151,1226,813,1059,1082,1012,1325,1289,1158,1374,1058,1205,1275,1164,1106,1176,1118,1146,1344,1103,1180,1216,1260,1197,1256,1073,1053,1203,1046,1143,962,1317,1174,1256,1128,1344,1510,1358,1402,1385,1344,1513,1217,1196,1412,1012,1044,1121,1113,999,951,755,1299,1017,1041,1052,939,1413,1352,1291,1201,1485,1548,1448,885,760,1202,1337,1319,1322,1220,1301,1329,1128,1199,1366,1429,1373,1389,1311,1049,1311,1247,1255,1261,1265,1196,1432,1341,1293,1331,1187,1536,1401,1284,1320,1565,1430,1464,1022,765,592,687,966,1064,1037,1075,1205,1040,1389,1326,1335,1245,1174,1075,948,952,1331,972,849,1158,1005,1039,1022,1054,1163,953,1198,1282,880,1026,1241,674,1277,1050,1231,1245,1071,965,1196,1087,1011,911,1438,1160,1229,1179,1357,1436,1354,1243,1457,945,892,1046,1118,941,1365,1164,1380,1276,1197,1212,1028,1330,1538,1262,1456,1357,1559,1413,1109,1217,1397,1204,1152,1085,1339,1055,1031,1101,1255,1093,1140,1264,1291,1218,1576,1301,1287,1211,1211,964,1170,931,974,1177,1170,1491,1260,1285,1314,1226,1226,1267,1415,1379,1089,1462,1250,1134,1277,1180,1267,1470,1133,1101,1292,1358,1131,1284,1097,1277,1379,1340,1106,1053,1008,853,1115,1361,1541,1283,1332,1177,1197,1138,1051,1198,842,1158,1252,1052,1144,1298,906,1224,1145,1154,1294,1110,1231,1109,949,1407,1233,1237,1161,1303,1305,1301,1384,1409,1308,1305,1235,1444,1463,1450,1437,1300,1287,1410,1280,1410,1278,1267,1249,1424,1449,1078,1308,768,798,787,721,667,951,816,1159,861,1030,1161,835,1017,836,854,787,886,755,1116,1008,676,719,725,607,861,1031,878,855,841,927,796,947,637,622,774,1028,825,688,613,676,710,874,978,662,722,610,720,728,1023,848,843,825,925,703,1053,1015,767,796,968,766,740,1106,998,672,846,898,582,843,1092,774,810,981,786,630,1076,1027,673,798,954,676,897,1087,763,820,974,783,666,1109,1025,666,840,978,776,1067,1043,717,859,1056,744,1094,1042,752,808,976,792,721,1113,999,681,849,933,750,948,1132,1061,833,800,905,723,1046,1093,1032,885,830,646,1045,656,817,751,1079,936,666,678,863,621,1055,963,749,776,717,845,669,1085,858,788,855,875,736,973,726,849,690,845,706,782,1141,622,695,746,1043,927,665,707,695,655,837,965,748,721,629,749,674,1081,726,804,754,1113,877,665,758,871,707,975,979,700,793,691,619,722,1023,746,750,829,1033,779,704,631,860,778,1047,937,676,927,635,688,825,906,760,721,857,979,726,712,739,795,807,1044,914,676,783,642,623,824,867,713,715,773,989,735,685,618,721,697,1012,791,745,619,604,675,1011,1019,758,740,799,657,1106,700,810,798,1080,913,668,708,861,798,969,981,710,823,794,633,743,895,809,725,868,1023,716,734,639,855,747,1078,889,675,953,628,689,867,802,856,679,1021,981,688,675,750,628,882,1071,812,722,789,785,711,942,765,815,693,1035,963,651,686,823,613,922,1053,765,781,770,860,684,960,810,767,782,1101,879,666,792,828,736,1079,973,664,851,750,831,881,906,901,640,1008,997,719,681,814,631,884,1073,813,722,810,831,686,958,955,754,697,945,921,670,920,826,671,757,977,694,831,791,612,736,873,857,619,943,1026,723,739,638,824,752,1109,919,681,895,696,853,869,823,712,632,847,972,737,671,581,652,722,1038,859,685,669,579,751,897,886,763,741,966,960,659,792,794,718,878,986,679,829,629,711,850,1102,847,751,694,737,950,1003,902,833,778,748,910,716,579,570,576,548,1016,1053,974,684,703,847,661,1116,1057,975,1077,973,872,583,589,600,1051,1006,679,721,872,654,935,1043,750,715,744,732,715,1117,1017,667,681,719,764,1089,1014,659,662,953,733,937,1086,799,745,736,673,650,1012,1037,733,661,943,620,830,1089,875,710,791,849,703,1019,1017,762,667,790,712,843,1025,937,682,784,824,704,1040,1037,737,661,812,729,917,1051,912,689,736,601,602,1079,1026,677,660,724,923,1048,760,707,906,661,861,1089,872,708,779,731,1100,1011,662,676,909,662,908,1050,998,678,846,755,659,794,1054,897,683,868,848,602,1033,1031,701,749,891,715,689,1008,957,674,847,893,569,897,936,722,784,767,649,763,750,717,764,799,744,630,736,720,680,726,753,711,963,831,662,721,910,964,961,751,897,691,688,947,717,968,698,720,691,817,801,880,949,750,881,704,899,929,751,986,679,759,734,707,1069,911,1143,1e3,679,751,904,837,897,770,863,685,707,1008,899,1067,705,747,769,703,1057,903,991,796,689,717,873,991,1103,915,1047,900,685,1048,855,654,1009,1049,759,798,762,840,601,1184,1227,1173,951,975,1027,823,817,1070,881,704,734,733,1056,937,1034,974,1006,882,965,929,594,751,1024,985,1236,975,1348,1163,1283,877,910,1253,1153,1258,1229,1236,1185,1147,904,848,962,912,925,911,961,882,948,887,927,888,941,918,841,797,847,944,915,905,912,900,849,905,931,899,864,1265,1359,1307,982,746,1021,1048,1082,992,1389,1338,1405,1288,1353,1439,1515,1441,1219,1216,1204,1132,1229,1013,1109,1048,1300,1335,1173,1356,1128,1203,1223,1297,1073,1003,1217,1187,1163,1e3,1045,1393,1348,1363,1340,1287,1377,1137,1374,1297,1218,1512,1460,1125,1204,944,1084,903,1075,1147,839,1044,1285,1229,1025,1168,932,1092,1077,1117,1024,992,1070,1213,1201,850,1422,961,1149,1566,1339,1506,1406,1086,1143,1190,1198,1350,1091,1487,1430,1457,1474,1355,937,1192,1175,1190,1166,1348,1273,1176,1162,1240,1313,1376,1257,1175,991,1247,1154,1250,1032,1283,1156,1295,1310,1406,1095,1144,1215,1266,1204,956,1071,991,1118,1061,1304,991,1085,1191,1169,1199,1350,1244,1174,1378,1102,1236,1397,1063,1204,1282,1481,1316,1175,1368,1441,1033,1214,1317,1030,1200,1151,943,936,1274,1210,1149,1142,1165,1093,1101,1301,1193,1198,1207,1306,1358,1140,1152,1187,1121,1137,1109,1045,1148,1195,1253,1223,1101,1228,1117,1017,1307,1261,1216,1192,1203,960,1132,1163,1198,1232,1124,1265,1285,1121,1163,1061,1284,1303,1369,1361,1177,1312,1312,1452,1317,1295,1007,1187,1330,1186,1297,887,1101,1189,1175,1171,1328,1248,1041,948,991,684,1103,1149,1144,1582,1215,1399,1350,1227,1302,1236,1016,1053,1272,1361,1284,1200,1146,1184,1286,1026,1361,1136,1287,1203,1207,1309,989,1328,805,1069,1229,1139,1116,1270,995,973,1284,1171,922,820,1108,1254,1543,1326,1340,1291,1330,931,1221,956,1126,616,898,1057,1069,1006,1107,1257,1084,1067,1556,1090,1366,1145,1061,1283,1176,1137,1214,1253,1280,1320,1189,1232,1389,1117,1226,1081,1270,1193,1108,1187,1182,1226,1251,1272,1199,1274,1135,1386,1386,1100,933,1161,944,1083,1266,1040,1150,1166,1089,1091,1208,996,1199,1025,915,881,1233,982,1001,1215,1174,1112,1219,901,1131,1331,1317,1220,905,1261,1299,1348,1327,1053,1027,980,1154,1075,1209,1111,1043,1094,1162,1174,1126,1220,1283,991,787,1128,1092,1099,1143,1049,1325,1279,1311,948,1008,1109,1065,804,1137,943,983,1108,1055,1011,966,1181,1037,1270,1158,1413,1056,1289,1024,1054,1062,1164,1343,1105,986,1048,1025,1244,1262,1125,1074,1100,1203,1208,1091,1071,1430,1211,1088,1145,1388,1106,936,1070,1399,1004,893,930,981,1262,987,1169,1250,1251,1376,1195,1247,1323,1042,822,1051,960,1334,1149,1309,1031,1185,1289,1249,1276,1308,1130,1076,1068,949,1027,1031,1059,988,1017,942,1077,938,1028,766,1038,1041,910,870,828,919,861,906,934,935,923,912,819,963,958,1015,1092,1047,1121,929,956,1023,1061,987,1207,1033,1127,1085,1141,1152,1078,1026,1067,1071,1e3,1023,957,1032,1035,928,1017,985,1002,942,1043,877,903,986,982,843,935,1068,982,906,883,909,1008,994,955,842,885,951,940,928,794,880,977,1137,969,1112,1013,997,1046,972,866,937,930,936,1030,1019,972,941,995,1003,923,913,1039,988,992,1026,1074,1057,977,1038,1087,1064,1154,1054,1008,946,1086,983,934,838,1034,1210,1229,1190,1131,1101,1015,942,1017,1034,1100,1045,1107,1083,1100,1231,1187,1021,997,998,943,1036,788,741,996,961,749,514,741,736,814,845,759,910,843,828,938,810,1044,1119,1018,1069,1081,1098,1146,922,1027,1015,1115,1019,1162,1018,1182,1076,1162,1118,1208,1062,1047,1057,1089,1061,1078,1059,878,818,939,925,837,1137,1124,1109,1032,541,416,491,1016,979,1171,1141,893,1025,1081,986,939,932,748,888,1020,1027,906,1044,1122,950,1031,1e3,1010,971,957,966,1023,1049,1014,1131,928,1011,828,968,954,944,1033,952,990,910,989,976,973,916,863,904,945,999,1048,1034,865,940,983,888,899,1050,985,993,940,784,988,829,818,839,992,924,999,1005,1060,949,1028,1e3,989,976,961,992,859,816,819,927,797,876,897,833,911,926,806,566,640,850,947,955,959,859,1130,983,424,768,1112,949,1176,1056,1193,987,1028,1188,1091,1099,1178,1077,1109,1158,1181,880,653,699,1023,911,1072,899,1072,1081,1193,977,1096,1185,947,1121,1163,1072,1137,986,1110,975,934,864,865,819,866,870,932,868,983,1020,1028,1097,839,532,1089,979,1163,1034,750,587,632,1025,1052,1112,1084,1086,1014,938,989,754,495,566,626,1030,1125,1052,980,1209,1523,1435,1367,1215,1451,1319,1261,1108,1419,1347,1346,1347,1180,1010,1371,1399,1259,1323,1275,1333,1250,1337,1165,1816,1885,1633,1062,1173,1060,836,897,1144,1199,1096,1215,628,975,1042,816,1181,1176,1126,1069,862,1242,1062,1279,865,1054,1053,1237,1085,1206,1104,1110,1088,1160,896,729,905,1131,1117,1024,1084,988,1061,1003,990,989,970,1120,1135,1088,880,691,1035,915,1040,1145,1116,1153,1434,1597,1573,1392,1623,1716,1560,1607,1633,1345,1621,1539,1483,1568,1719,1562,1625,1619,1345,687,1354,1228,1216,747,331,733,1370,1133,1340,1124,1305,1111,1309,1389,1140,1334,1391,1320,1238,1392,1371,1361,1289,1220,1269,1398,1334,1289,1192,1320,1320,1412,1389,1339,1175,1351,1271,1175,1236,1207,1364,1326,1362,1328,1232,1179,1422,1371,1273,1277,790,608,621,642,957,1003,726,1288,1020,1127,1300,1311,1139,1326,709,1198,1230,1118,1090,1371,1166,1290,1343,1315,1176,1140,1246,1115,1207,948,1273,1362,1379,1240,837,1322,1304,1446,716,1238,1265,986,1091,1058,910,920,1236,1001,1283,1399,1345,1349,1508,1292,1437,906,361,478,1182,1343,788,1368,985,1142,1175,1319,1329,1413,1404,1201,1234,1002,1319,1396,1004,1194,1172,1367,1267,1279,1082,1333,1101,667,1298,963,1203,957,831,908,1088,1464,1314,1320,1302,1477,1527,1440,1016,1478,1021,989,1273,1172,1110,1109,1147,1486,1198,1099,1234,950,802,1071,1158,1115,1177,1122,919,1091,858,953,970,811,1108,900,841,1074,1174,972,1177,1382,1238,1015,1110,1375,1047,986,1137,1041,1083,1179,1289,997,854,974,967,1381,1247,1028,1080,1133,1252,1068,1023,1033,1168,1072,1045,1216,1247,950,1121,1250,1311,992,1275,1333,1116,1071,1070,891,965,1024,1345,1272,1415,1495,1173,1119,1315,947,1105,1240,1043,971,1102,1195,1141,965,986,1351,1306,1105,1188,1134,1429,1122,1036,1254,1247,575,1188,1062,1141,1135,1348,1003,863,849,704,1225,1172,1180,1302,1333,1346,1429,1232,721,1e3,941,1388,1414,1188,1175,1401,1231,1292,1348,1455,1291,1239,1092,897,953,1382,1445,1422,1438,1273,1305,1091,1159,1091,982,1292,1337,1398,1324,1278,1181,1049,1297,1087,1253,1347,1152,1079,1059,1280,1179,1197,1162,1167,1298,1463,1174,1046,1213,1106,1102,1146,1201,1303,1051,671,721,794,1102,1055,1401,1365,1117,1108,1127,1196,1287,1028,1134,928,1304,1517,1217,1445,1280,1277,1272,1253,1367,1132,1445,1583,1198,801,1334,1259,1201,1449,1219,1291,1475,1406,1275,911,1147,1124,1224,1479,1258,999,1308,1262,1457,980,1172,932,1022,955,973,1106,1147,960,1022,1107,928,1109,982,1155,954,1199,1061,1394,1001,923,919,1228,1136,1089,997,1047,780,1110,1138,908,876,1185,1170,1155,643,912,1115,966,995,909,1136,1189,1110,1003,901,826,1122,1072,819,1141,1157,1022,751,1076,1100,898,1230,925,687,1162,1057,1170,1452,1385,1198,1139,1579,1077,886,1053,758,1190,1270,1450,1354,1263,1180,804,1122,1131,968,1159,739,1003,1097,1049,1078,962,1026,1283,872,998,1341,1248,1306,1014,1025,1130,1107,697,1133,1024,1269,951,1072,1055,1118,991,1282,1436,1191,1308,1242,1158,1088,1091,777,1162,785,1030,1007,1315,1269,1214,1096,1253,836,1060,1209,1009,1213,1078,1034,769,1026,1162,1182,1180,1162,1100,789,1474,1468,1423,1333,1205,811,1204,1295,1201,925,1298,955,916,1180,1160,1213,1134,1318,1185,1258,1099,1228,1392,1119,1295,1232,1331,1260,1169,1038,1149,1199,1281,1173,1263,1133,1127,1240,1188,1118,992,1092,1325,1259,1408,1264,1345,1383,1130,1009,1165,1200,1311,1121,1118,1190,1161,1439,1063,1044],"successes":[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]};compressedData["data"]=byteArray;assert(typeof Module["LZ4"]==="object","LZ4 not present - was your app build with -s LZ4=1 ?");Module["LZ4"].loadPackage({"metadata":metadata,"compressedData":compressedData},true);Module["removeRunDependency"]("datafile_build/pyodide.asm.data")}Module["addRunDependency"]("datafile_build/pyodide.asm.data");if(!Module.preloadResults)Module.preloadResults={};Module.preloadResults[PACKAGE_NAME]={fromCache:false};if(fetched){processPackageData(fetched);fetched=null}else{fetchedCallback=processPackageData}}if(Module["calledRun"]){runWithFS()}else{if(!Module["preRun"])Module["preRun"]=[];Module["preRun"].push(runWithFS)}};loadPackage({"files":[{"filename":"/lib/python3.10/__future__.py","start":0,"end":5155},{"filename":"/lib/python3.10/__phello__.foo.py","start":5155,"end":5219},{"filename":"/lib/python3.10/_aix_support.py","start":5219,"end":8489},{"filename":"/lib/python3.10/_bootsubprocess.py","start":8489,"end":11164},{"filename":"/lib/python3.10/_collections_abc.py","start":11164,"end":43113},{"filename":"/lib/python3.10/_compat_pickle.py","start":43113,"end":51862},{"filename":"/lib/python3.10/_compression.py","start":51862,"end":57543},{"filename":"/lib/python3.10/_markupbase.py","start":57543,"end":72196},{"filename":"/lib/python3.10/_py_abc.py","start":72196,"end":78385},{"filename":"/lib/python3.10/_pydecimal.py","start":78385,"end":307061},{"filename":"/lib/python3.10/_pyio.py","start":307061,"end":401624},{"filename":"/lib/python3.10/_sitebuiltins.py","start":401624,"end":404752},{"filename":"/lib/python3.10/_strptime.py","start":404752,"end":430029},{"filename":"/lib/python3.10/_threading_local.py","start":430029,"end":437249},{"filename":"/lib/python3.10/_weakrefset.py","start":437249,"end":443172},{"filename":"/lib/python3.10/abc.py","start":443172,"end":449694},{"filename":"/lib/python3.10/aifc.py","start":449694,"end":482299},{"filename":"/lib/python3.10/antigravity.py","start":482299,"end":482799},{"filename":"/lib/python3.10/argparse.py","start":482799,"end":580783},{"filename":"/lib/python3.10/ast.py","start":580783,"end":640355},{"filename":"/lib/python3.10/asynchat.py","start":640355,"end":651840},{"filename":"/lib/python3.10/asyncore.py","start":651840,"end":672073},{"filename":"/lib/python3.10/base64.py","start":672073,"end":692920},{"filename":"/lib/python3.10/bdb.py","start":692920,"end":725147},{"filename":"/lib/python3.10/binhex.py","start":725147,"end":739931},{"filename":"/lib/python3.10/bisect.py","start":739931,"end":743066},{"filename":"/lib/python3.10/bz2.py","start":743066,"end":754913},{"filename":"/lib/python3.10/cProfile.py","start":754913,"end":761248},{"filename":"/lib/python3.10/calendar.py","start":761248,"end":785723},{"filename":"/lib/python3.10/cgi.py","start":785723,"end":819822},{"filename":"/lib/python3.10/cgitb.py","start":819822,"end":831918},{"filename":"/lib/python3.10/chunk.py","start":831918,"end":837353},{"filename":"/lib/python3.10/cmd.py","start":837353,"end":852213},{"filename":"/lib/python3.10/code.py","start":852213,"end":862835},{"filename":"/lib/python3.10/codecs.py","start":862835,"end":899507},{"filename":"/lib/python3.10/codeop.py","start":899507,"end":906075},{"filename":"/lib/python3.10/colorsys.py","start":906075,"end":910092},{"filename":"/lib/python3.10/compileall.py","start":910092,"end":930335},{"filename":"/lib/python3.10/configparser.py","start":930335,"end":984965},{"filename":"/lib/python3.10/contextlib.py","start":984965,"end":1010847},{"filename":"/lib/python3.10/contextvars.py","start":1010847,"end":1010976},{"filename":"/lib/python3.10/copy.py","start":1010976,"end":1019654},{"filename":"/lib/python3.10/copyreg.py","start":1019654,"end":1027080},{"filename":"/lib/python3.10/crypt.py","start":1027080,"end":1030899},{"filename":"/lib/python3.10/csv.py","start":1030899,"end":1046929},{"filename":"/lib/python3.10/dataclasses.py","start":1046929,"end":1103316},{"filename":"/lib/python3.10/datetime.py","start":1103316,"end":1191375},{"filename":"/lib/python3.10/decimal.py","start":1191375,"end":1191695},{"filename":"/lib/python3.10/difflib.py","start":1191695,"end":1275002},{"filename":"/lib/python3.10/dis.py","start":1275002,"end":1295022},{"filename":"/lib/python3.10/doctest.py","start":1295022,"end":1399813},{"filename":"/lib/python3.10/enum.py","start":1399813,"end":1439644},{"filename":"/lib/python3.10/filecmp.py","start":1439644,"end":1449822},{"filename":"/lib/python3.10/fileinput.py","start":1449822,"end":1466062},{"filename":"/lib/python3.10/fnmatch.py","start":1466062,"end":1472066},{"filename":"/lib/python3.10/fractions.py","start":1472066,"end":1500308},{"filename":"/lib/python3.10/ftplib.py","start":1500308,"end":1535804},{"filename":"/lib/python3.10/functools.py","start":1535804,"end":1573880},{"filename":"/lib/python3.10/genericpath.py","start":1573880,"end":1578855},{"filename":"/lib/python3.10/getopt.py","start":1578855,"end":1586344},{"filename":"/lib/python3.10/getpass.py","start":1586344,"end":1592334},{"filename":"/lib/python3.10/gettext.py","start":1592334,"end":1619600},{"filename":"/lib/python3.10/glob.py","start":1619600,"end":1627488},{"filename":"/lib/python3.10/graphlib.py","start":1627488,"end":1637061},{"filename":"/lib/python3.10/gzip.py","start":1637061,"end":1658910},{"filename":"/lib/python3.10/hashlib.py","start":1658910,"end":1669139},{"filename":"/lib/python3.10/heapq.py","start":1669139,"end":1692016},{"filename":"/lib/python3.10/hmac.py","start":1692016,"end":1699733},{"filename":"/lib/python3.10/imaplib.py","start":1699733,"end":1754599},{"filename":"/lib/python3.10/imghdr.py","start":1754599,"end":1758407},{"filename":"/lib/python3.10/imp.py","start":1758407,"end":1768998},{"filename":"/lib/python3.10/inspect.py","start":1768998,"end":1892738},{"filename":"/lib/python3.10/io.py","start":1892738,"end":1896934},{"filename":"/lib/python3.10/ipaddress.py","start":1896934,"end":1971720},{"filename":"/lib/python3.10/keyword.py","start":1971720,"end":1972781},{"filename":"/lib/python3.10/linecache.py","start":1972781,"end":1978436},{"filename":"/lib/python3.10/locale.py","start":1978436,"end":2056560},{"filename":"/lib/python3.10/lzma.py","start":2056560,"end":2069837},{"filename":"/lib/python3.10/mailbox.py","start":2069837,"end":2148631},{"filename":"/lib/python3.10/mailcap.py","start":2148631,"end":2156784},{"filename":"/lib/python3.10/mimetypes.py","start":2156784,"end":2179408},{"filename":"/lib/python3.10/modulefinder.py","start":2179408,"end":2203809},{"filename":"/lib/python3.10/netrc.py","start":2203809,"end":2209556},{"filename":"/lib/python3.10/nntplib.py","start":2209556,"end":2250579},{"filename":"/lib/python3.10/ntpath.py","start":2250579,"end":2278985},{"filename":"/lib/python3.10/nturl2path.py","start":2278985,"end":2281872},{"filename":"/lib/python3.10/numbers.py","start":2281872,"end":2292210},{"filename":"/lib/python3.10/opcode.py","start":2292210,"end":2298112},{"filename":"/lib/python3.10/operator.py","start":2298112,"end":2308863},{"filename":"/lib/python3.10/optparse.py","start":2308863,"end":2369232},{"filename":"/lib/python3.10/os.py","start":2369232,"end":2408746},{"filename":"/lib/python3.10/pathlib.py","start":2408746,"end":2458272},{"filename":"/lib/python3.10/pdb.py","start":2458272,"end":2521373},{"filename":"/lib/python3.10/pickle.py","start":2521373,"end":2586319},{"filename":"/lib/python3.10/pickletools.py","start":2586319,"end":2679805},{"filename":"/lib/python3.10/pipes.py","start":2679805,"end":2688719},{"filename":"/lib/python3.10/pkgutil.py","start":2688719,"end":2713295},{"filename":"/lib/python3.10/platform.py","start":2713295,"end":2755243},{"filename":"/lib/python3.10/plistlib.py","start":2755243,"end":2783491},{"filename":"/lib/python3.10/poplib.py","start":2783491,"end":2798689},{"filename":"/lib/python3.10/posixpath.py","start":2798689,"end":2814911},{"filename":"/lib/python3.10/pprint.py","start":2814911,"end":2839355},{"filename":"/lib/python3.10/profile.py","start":2839355,"end":2862226},{"filename":"/lib/python3.10/pstats.py","start":2862226,"end":2891552},{"filename":"/lib/python3.10/pty.py","start":2891552,"end":2896765},{"filename":"/lib/python3.10/py_compile.py","start":2896765,"end":2904602},{"filename":"/lib/python3.10/pyclbr.py","start":2904602,"end":2915998},{"filename":"/lib/python3.10/pydoc.py","start":2915998,"end":3025532},{"filename":"/lib/python3.10/queue.py","start":3025532,"end":3037015},{"filename":"/lib/python3.10/quopri.py","start":3037015,"end":3044283},{"filename":"/lib/python3.10/random.py","start":3044283,"end":3077504},{"filename":"/lib/python3.10/re.py","start":3077504,"end":3093364},{"filename":"/lib/python3.10/reprlib.py","start":3093364,"end":3098631},{"filename":"/lib/python3.10/rlcompleter.py","start":3098631,"end":3106448},{"filename":"/lib/python3.10/runpy.py","start":3106448,"end":3118686},{"filename":"/lib/python3.10/sched.py","start":3118686,"end":3125037},{"filename":"/lib/python3.10/secrets.py","start":3125037,"end":3127073},{"filename":"/lib/python3.10/selectors.py","start":3127073,"end":3146609},{"filename":"/lib/python3.10/shelve.py","start":3146609,"end":3155169},{"filename":"/lib/python3.10/shlex.py","start":3155169,"end":3168670},{"filename":"/lib/python3.10/shutil.py","start":3168670,"end":3220918},{"filename":"/lib/python3.10/signal.py","start":3220918,"end":3223356},{"filename":"/lib/python3.10/site.py","start":3223356,"end":3245943},{"filename":"/lib/python3.10/smtpd.py","start":3245943,"end":3281066},{"filename":"/lib/python3.10/smtplib.py","start":3281066,"end":3326484},{"filename":"/lib/python3.10/sndhdr.py","start":3326484,"end":3333583},{"filename":"/lib/python3.10/socket.py","start":3333583,"end":3370316},{"filename":"/lib/python3.10/sre_parse.py","start":3370316,"end":3410546},{"filename":"/lib/python3.10/socketserver.py","start":3410546,"end":3437842},{"filename":"/lib/python3.10/sre_compile.py","start":3437842,"end":3464537},{"filename":"/lib/python3.10/sre_constants.py","start":3464537,"end":3471691},{"filename":"/lib/python3.10/ssl.py","start":3471691,"end":3523807},{"filename":"/lib/python3.10/stat.py","start":3523807,"end":3529292},{"filename":"/lib/python3.10/statistics.py","start":3529292,"end":3572357},{"filename":"/lib/python3.10/string.py","start":3572357,"end":3582923},{"filename":"/lib/python3.10/stringprep.py","start":3582923,"end":3595840},{"filename":"/lib/python3.10/struct.py","start":3595840,"end":3596097},{"filename":"/lib/python3.10/subprocess.py","start":3596097,"end":3679831},{"filename":"/lib/python3.10/sunau.py","start":3679831,"end":3697989},{"filename":"/lib/python3.10/symtable.py","start":3697989,"end":3708187},{"filename":"/lib/python3.10/sysconfig.py","start":3708187,"end":3735796},{"filename":"/lib/python3.10/tabnanny.py","start":3735796,"end":3747204},{"filename":"/lib/python3.10/tarfile.py","start":3747204,"end":3842378},{"filename":"/lib/python3.10/telnetlib.py","start":3842378,"end":3865632},{"filename":"/lib/python3.10/tempfile.py","start":3865632,"end":3894089},{"filename":"/lib/python3.10/textwrap.py","start":3894089,"end":3913861},{"filename":"/lib/python3.10/this.py","start":3913861,"end":3914864},{"filename":"/lib/python3.10/threading.py","start":3914864,"end":3971764},{"filename":"/lib/python3.10/timeit.py","start":3971764,"end":3985259},{"filename":"/lib/python3.10/token.py","start":3985259,"end":3987645},{"filename":"/lib/python3.10/tokenize.py","start":3987645,"end":4013566},{"filename":"/lib/python3.10/trace.py","start":4013566,"end":4042761},{"filename":"/lib/python3.10/traceback.py","start":4042761,"end":4068979},{"filename":"/lib/python3.10/tracemalloc.py","start":4068979,"end":4087026},{"filename":"/lib/python3.10/tty.py","start":4087026,"end":4087905},{"filename":"/lib/python3.10/types.py","start":4087905,"end":4098022},{"filename":"/lib/python3.10/typing.py","start":4098022,"end":4189299},{"filename":"/lib/python3.10/uu.py","start":4189299,"end":4196258},{"filename":"/lib/python3.10/uuid.py","start":4196258,"end":4223582},{"filename":"/lib/python3.10/warnings.py","start":4223582,"end":4243270},{"filename":"/lib/python3.10/wave.py","start":4243270,"end":4261274},{"filename":"/lib/python3.10/weakref.py","start":4261274,"end":4282834},{"filename":"/lib/python3.10/xdrlib.py","start":4282834,"end":4288747},{"filename":"/lib/python3.10/zipapp.py","start":4288747,"end":4296282},{"filename":"/lib/python3.10/zipfile.py","start":4296282,"end":4384813},{"filename":"/lib/python3.10/zipimport.py","start":4384813,"end":4414954},{"filename":"/lib/python3.10/LICENSE.txt","start":4414954,"end":4428885},{"filename":"/lib/python3.10/_sysconfigdata__emscripten_wasm32-emscripten.py","start":4428885,"end":4457667},{"filename":"/lib/python3.10/asyncio/__init__.py","start":4457667,"end":4458775},{"filename":"/lib/python3.10/asyncio/__main__.py","start":4458775,"end":4462118},{"filename":"/lib/python3.10/asyncio/base_events.py","start":4462118,"end":4535569},{"filename":"/lib/python3.10/asyncio/base_futures.py","start":4535569,"end":4538143},{"filename":"/lib/python3.10/asyncio/base_subprocess.py","start":4538143,"end":4546986},{"filename":"/lib/python3.10/asyncio/base_tasks.py","start":4546986,"end":4549453},{"filename":"/lib/python3.10/asyncio/constants.py","start":4549453,"end":4550341},{"filename":"/lib/python3.10/asyncio/coroutines.py","start":4550341,"end":4559138},{"filename":"/lib/python3.10/asyncio/events.py","start":4559138,"end":4586362},{"filename":"/lib/python3.10/asyncio/exceptions.py","start":4586362,"end":4587995},{"filename":"/lib/python3.10/asyncio/format_helpers.py","start":4587995,"end":4590399},{"filename":"/lib/python3.10/asyncio/futures.py","start":4590399,"end":4604413},{"filename":"/lib/python3.10/asyncio/locks.py","start":4604413,"end":4618e3},{"filename":"/lib/python3.10/asyncio/log.py","start":4618e3,"end":4618124},{"filename":"/lib/python3.10/asyncio/mixins.py","start":4618124,"end":4618927},{"filename":"/lib/python3.10/asyncio/proactor_events.py","start":4618927,"end":4651183},{"filename":"/lib/python3.10/asyncio/protocols.py","start":4651183,"end":4658319},{"filename":"/lib/python3.10/asyncio/queues.py","start":4658319,"end":4666329},{"filename":"/lib/python3.10/asyncio/runners.py","start":4666329,"end":4668433},{"filename":"/lib/python3.10/asyncio/selector_events.py","start":4668433,"end":4707935},{"filename":"/lib/python3.10/asyncio/sslproto.py","start":4707935,"end":4735119},{"filename":"/lib/python3.10/asyncio/staggered.py","start":4735119,"end":4741111},{"filename":"/lib/python3.10/asyncio/streams.py","start":4741111,"end":4766883},{"filename":"/lib/python3.10/asyncio/subprocess.py","start":4766883,"end":4774288},{"filename":"/lib/python3.10/asyncio/tasks.py","start":4774288,"end":4806128},{"filename":"/lib/python3.10/asyncio/threads.py","start":4806128,"end":4806918},{"filename":"/lib/python3.10/asyncio/transports.py","start":4806918,"end":4817404},{"filename":"/lib/python3.10/asyncio/trsock.py","start":4817404,"end":4823280},{"filename":"/lib/python3.10/asyncio/unix_events.py","start":4823280,"end":4874880},{"filename":"/lib/python3.10/asyncio/windows_events.py","start":4874880,"end":4907884},{"filename":"/lib/python3.10/asyncio/windows_utils.py","start":4907884,"end":4912944},{"filename":"/lib/python3.10/collections/__init__.py","start":4912944,"end":4964172},{"filename":"/lib/python3.10/collections/abc.py","start":4964172,"end":4964291},{"filename":"/lib/python3.10/concurrent/__init__.py","start":4964291,"end":4964329},{"filename":"/lib/python3.10/concurrent/futures/__init__.py","start":4964329,"end":4965883},{"filename":"/lib/python3.10/concurrent/futures/_base.py","start":4965883,"end":4988460},{"filename":"/lib/python3.10/concurrent/futures/process.py","start":4988460,"end":5018667},{"filename":"/lib/python3.10/concurrent/futures/thread.py","start":5018667,"end":5027438},{"filename":"/lib/python3.10/ctypes/__init__.py","start":5027438,"end":5045426},{"filename":"/lib/python3.10/ctypes/_aix.py","start":5045426,"end":5058001},{"filename":"/lib/python3.10/ctypes/_endian.py","start":5058001,"end":5060001},{"filename":"/lib/python3.10/ctypes/util.py","start":5060001,"end":5073880},{"filename":"/lib/python3.10/ctypes/wintypes.py","start":5073880,"end":5079508},{"filename":"/lib/python3.10/ctypes/macholib/README.ctypes","start":5079508,"end":5079804},{"filename":"/lib/python3.10/ctypes/macholib/__init__.py","start":5079804,"end":5079958},{"filename":"/lib/python3.10/ctypes/macholib/dyld.py","start":5079958,"end":5085241},{"filename":"/lib/python3.10/ctypes/macholib/dylib.py","start":5085241,"end":5087069},{"filename":"/lib/python3.10/ctypes/macholib/fetch_macholib","start":5087069,"end":5087153},{"filename":"/lib/python3.10/ctypes/macholib/fetch_macholib.bat","start":5087153,"end":5087228},{"filename":"/lib/python3.10/ctypes/macholib/framework.py","start":5087228,"end":5089429},{"filename":"/lib/python3.10/tzdata-2022.1.dist-info/LICENSE","start":5089429,"end":5090021},{"filename":"/lib/python3.10/tzdata-2022.1.dist-info/LICENSE_APACHE","start":5090021,"end":5101378},{"filename":"/lib/python3.10/tzdata-2022.1.dist-info/METADATA","start":5101378,"end":5102791},{"filename":"/lib/python3.10/tzdata-2022.1.dist-info/WHEEL","start":5102791,"end":5102901},{"filename":"/lib/python3.10/tzdata-2022.1.dist-info/top_level.txt","start":5102901,"end":5102908},{"filename":"/lib/python3.10/tzdata-2022.1.dist-info/RECORD","start":5102908,"end":5159434},{"filename":"/lib/python3.10/tzdata-2022.1.dist-info/INSTALLER","start":5159434,"end":5159438},{"filename":"/lib/python3.10/tzdata-2022.1.dist-info/REQUESTED","start":5159438,"end":5159438},{"filename":"/lib/python3.10/email/__init__.py","start":5159438,"end":5161204},{"filename":"/lib/python3.10/email/_encoded_words.py","start":5161204,"end":5169728},{"filename":"/lib/python3.10/email/_header_value_parser.py","start":5169728,"end":5276687},{"filename":"/lib/python3.10/email/_parseaddr.py","start":5276687,"end":5294414},{"filename":"/lib/python3.10/email/_policybase.py","start":5294414,"end":5309487},{"filename":"/lib/python3.10/email/architecture.rst","start":5309487,"end":5319048},{"filename":"/lib/python3.10/email/base64mime.py","start":5319048,"end":5322607},{"filename":"/lib/python3.10/email/charset.py","start":5322607,"end":5339735},{"filename":"/lib/python3.10/email/contentmanager.py","start":5339735,"end":5350290},{"filename":"/lib/python3.10/email/encoders.py","start":5350290,"end":5352076},{"filename":"/lib/python3.10/email/errors.py","start":5352076,"end":5355811},{"filename":"/lib/python3.10/email/feedparser.py","start":5355811,"end":5378591},{"filename":"/lib/python3.10/email/generator.py","start":5378591,"end":5398787},{"filename":"/lib/python3.10/email/header.py","start":5398787,"end":5422889},{"filename":"/lib/python3.10/email/headerregistry.py","start":5422889,"end":5443702},{"filename":"/lib/python3.10/email/iterators.py","start":5443702,"end":5445837},{"filename":"/lib/python3.10/email/message.py","start":5445837,"end":5492897},{"filename":"/lib/python3.10/email/parser.py","start":5492897,"end":5497938},{"filename":"/lib/python3.10/email/policy.py","start":5497938,"end":5508321},{"filename":"/lib/python3.10/email/quoprimime.py","start":5508321,"end":5518179},{"filename":"/lib/python3.10/email/utils.py","start":5518179,"end":5531601},{"filename":"/lib/python3.10/email/mime/__init__.py","start":5531601,"end":5531601},{"filename":"/lib/python3.10/email/mime/application.py","start":5531601,"end":5532922},{"filename":"/lib/python3.10/email/mime/audio.py","start":5532922,"end":5535661},{"filename":"/lib/python3.10/email/mime/base.py","start":5535661,"end":5536577},{"filename":"/lib/python3.10/email/mime/image.py","start":5536577,"end":5538406},{"filename":"/lib/python3.10/email/mime/message.py","start":5538406,"end":5539723},{"filename":"/lib/python3.10/email/mime/multipart.py","start":5539723,"end":5541344},{"filename":"/lib/python3.10/email/mime/nonmultipart.py","start":5541344,"end":5542035},{"filename":"/lib/python3.10/email/mime/text.py","start":5542035,"end":5543472},{"filename":"/lib/python3.10/encodings/__init__.py","start":5543472,"end":5549092},{"filename":"/lib/python3.10/encodings/aliases.py","start":5549092,"end":5564769},{"filename":"/lib/python3.10/encodings/ascii.py","start":5564769,"end":5566017},{"filename":"/lib/python3.10/encodings/base64_codec.py","start":5566017,"end":5567550},{"filename":"/lib/python3.10/encodings/big5.py","start":5567550,"end":5568569},{"filename":"/lib/python3.10/encodings/big5hkscs.py","start":5568569,"end":5569608},{"filename":"/lib/python3.10/encodings/bz2_codec.py","start":5569608,"end":5571857},{"filename":"/lib/python3.10/encodings/charmap.py","start":5571857,"end":5573941},{"filename":"/lib/python3.10/encodings/cp037.py","start":5573941,"end":5587062},{"filename":"/lib/python3.10/encodings/cp1006.py","start":5587062,"end":5600630},{"filename":"/lib/python3.10/encodings/cp1026.py","start":5600630,"end":5613743},{"filename":"/lib/python3.10/encodings/cp1125.py","start":5613743,"end":5648340},{"filename":"/lib/python3.10/encodings/cp1140.py","start":5648340,"end":5661445},{"filename":"/lib/python3.10/encodings/cp1250.py","start":5661445,"end":5675131},{"filename":"/lib/python3.10/encodings/cp1251.py","start":5675131,"end":5688492},{"filename":"/lib/python3.10/encodings/cp1252.py","start":5688492,"end":5702003},{"filename":"/lib/python3.10/encodings/cp1253.py","start":5702003,"end":5715097},{"filename":"/lib/python3.10/encodings/cp1254.py","start":5715097,"end":5728599},{"filename":"/lib/python3.10/encodings/cp1255.py","start":5728599,"end":5741065},{"filename":"/lib/python3.10/encodings/cp1256.py","start":5741065,"end":5753879},{"filename":"/lib/python3.10/encodings/cp1257.py","start":5753879,"end":5767253},{"filename":"/lib/python3.10/encodings/cp1258.py","start":5767253,"end":5780617},{"filename":"/lib/python3.10/encodings/cp273.py","start":5780617,"end":5794749},{"filename":"/lib/python3.10/encodings/cp424.py","start":5794749,"end":5806804},{"filename":"/lib/python3.10/encodings/cp437.py","start":5806804,"end":5841368},{"filename":"/lib/python3.10/encodings/cp500.py","start":5841368,"end":5854489},{"filename":"/lib/python3.10/encodings/cp720.py","start":5854489,"end":5868175},{"filename":"/lib/python3.10/encodings/cp737.py","start":5868175,"end":5902856},{"filename":"/lib/python3.10/encodings/cp775.py","start":5902856,"end":5937332},{"filename":"/lib/python3.10/encodings/cp850.py","start":5937332,"end":5971437},{"filename":"/lib/python3.10/encodings/cp852.py","start":5971437,"end":6006439},{"filename":"/lib/python3.10/encodings/cp855.py","start":6006439,"end":6040289},{"filename":"/lib/python3.10/encodings/cp856.py","start":6040289,"end":6052712},{"filename":"/lib/python3.10/encodings/cp857.py","start":6052712,"end":6086620},{"filename":"/lib/python3.10/encodings/cp858.py","start":6086620,"end":6120635},{"filename":"/lib/python3.10/encodings/cp860.py","start":6120635,"end":6155316},{"filename":"/lib/python3.10/encodings/cp861.py","start":6155316,"end":6189949},{"filename":"/lib/python3.10/encodings/cp862.py","start":6189949,"end":6223319},{"filename":"/lib/python3.10/encodings/cp863.py","start":6223319,"end":6257571},{"filename":"/lib/python3.10/encodings/cp864.py","start":6257571,"end":6291234},{"filename":"/lib/python3.10/encodings/cp865.py","start":6291234,"end":6325852},{"filename":"/lib/python3.10/encodings/cp866.py","start":6325852,"end":6360248},{"filename":"/lib/python3.10/encodings/cp869.py","start":6360248,"end":6393213},{"filename":"/lib/python3.10/encodings/cp874.py","start":6393213,"end":6405808},{"filename":"/lib/python3.10/encodings/cp875.py","start":6405808,"end":6418662},{"filename":"/lib/python3.10/encodings/cp932.py","start":6418662,"end":6419685},{"filename":"/lib/python3.10/encodings/cp949.py","start":6419685,"end":6420708},{"filename":"/lib/python3.10/encodings/cp950.py","start":6420708,"end":6421731},{"filename":"/lib/python3.10/encodings/euc_jis_2004.py","start":6421731,"end":6422782},{"filename":"/lib/python3.10/encodings/euc_jisx0213.py","start":6422782,"end":6423833},{"filename":"/lib/python3.10/encodings/euc_jp.py","start":6423833,"end":6424860},{"filename":"/lib/python3.10/encodings/euc_kr.py","start":6424860,"end":6425887},{"filename":"/lib/python3.10/encodings/gb18030.py","start":6425887,"end":6426918},{"filename":"/lib/python3.10/encodings/gb2312.py","start":6426918,"end":6427945},{"filename":"/lib/python3.10/encodings/gbk.py","start":6427945,"end":6428960},{"filename":"/lib/python3.10/encodings/hex_codec.py","start":6428960,"end":6430468},{"filename":"/lib/python3.10/encodings/hp_roman8.py","start":6430468,"end":6443943},{"filename":"/lib/python3.10/encodings/hz.py","start":6443943,"end":6444954},{"filename":"/lib/python3.10/encodings/idna.py","start":6444954,"end":6454124},{"filename":"/lib/python3.10/encodings/iso2022_jp.py","start":6454124,"end":6455177},{"filename":"/lib/python3.10/encodings/iso2022_jp_1.py","start":6455177,"end":6456238},{"filename":"/lib/python3.10/encodings/iso2022_jp_2.py","start":6456238,"end":6457299},{"filename":"/lib/python3.10/encodings/iso2022_jp_2004.py","start":6457299,"end":6458372},{"filename":"/lib/python3.10/encodings/iso2022_jp_3.py","start":6458372,"end":6459433},{"filename":"/lib/python3.10/encodings/iso2022_jp_ext.py","start":6459433,"end":6460502},{"filename":"/lib/python3.10/encodings/iso2022_kr.py","start":6460502,"end":6461555},{"filename":"/lib/python3.10/encodings/iso8859_1.py","start":6461555,"end":6474731},{"filename":"/lib/python3.10/encodings/iso8859_10.py","start":6474731,"end":6488320},{"filename":"/lib/python3.10/encodings/iso8859_11.py","start":6488320,"end":6500655},{"filename":"/lib/python3.10/encodings/iso8859_13.py","start":6500655,"end":6513926},{"filename":"/lib/python3.10/encodings/iso8859_14.py","start":6513926,"end":6527578},{"filename":"/lib/python3.10/encodings/iso8859_15.py","start":6527578,"end":6540790},{"filename":"/lib/python3.10/encodings/iso8859_16.py","start":6540790,"end":6554347},{"filename":"/lib/python3.10/encodings/iso8859_2.py","start":6554347,"end":6567751},{"filename":"/lib/python3.10/encodings/iso8859_3.py","start":6567751,"end":6580840},{"filename":"/lib/python3.10/encodings/iso8859_4.py","start":6580840,"end":6594216},{"filename":"/lib/python3.10/encodings/iso8859_5.py","start":6594216,"end":6607231},{"filename":"/lib/python3.10/encodings/iso8859_6.py","start":6607231,"end":6618064},{"filename":"/lib/python3.10/encodings/iso8859_7.py","start":6618064,"end":6630908},{"filename":"/lib/python3.10/encodings/iso8859_8.py","start":6630908,"end":6641944},{"filename":"/lib/python3.10/encodings/iso8859_9.py","start":6641944,"end":6655100},{"filename":"/lib/python3.10/encodings/johab.py","start":6655100,"end":6656123},{"filename":"/lib/python3.10/encodings/koi8_r.py","start":6656123,"end":6669902},{"filename":"/lib/python3.10/encodings/koi8_t.py","start":6669902,"end":6683095},{"filename":"/lib/python3.10/encodings/koi8_u.py","start":6683095,"end":6696857},{"filename":"/lib/python3.10/encodings/kz1048.py","start":6696857,"end":6710580},{"filename":"/lib/python3.10/encodings/latin_1.py","start":6710580,"end":6711844},{"filename":"/lib/python3.10/encodings/mac_arabic.py","start":6711844,"end":6748311},{"filename":"/lib/python3.10/encodings/mac_croatian.py","start":6748311,"end":6761944},{"filename":"/lib/python3.10/encodings/mac_cyrillic.py","start":6761944,"end":6775398},{"filename":"/lib/python3.10/encodings/mac_farsi.py","start":6775398,"end":6790568},{"filename":"/lib/python3.10/encodings/mac_greek.py","start":6790568,"end":6804289},{"filename":"/lib/python3.10/encodings/mac_iceland.py","start":6804289,"end":6817787},{"filename":"/lib/python3.10/encodings/mac_latin2.py","start":6817787,"end":6831905},{"filename":"/lib/python3.10/encodings/mac_roman.py","start":6831905,"end":6845385},{"filename":"/lib/python3.10/encodings/mac_romanian.py","start":6845385,"end":6859046},{"filename":"/lib/python3.10/encodings/mac_turkish.py","start":6859046,"end":6872559},{"filename":"/lib/python3.10/encodings/mbcs.py","start":6872559,"end":6873770},{"filename":"/lib/python3.10/encodings/oem.py","start":6873770,"end":6874789},{"filename":"/lib/python3.10/encodings/palmos.py","start":6874789,"end":6888308},{"filename":"/lib/python3.10/encodings/ptcp154.py","start":6888308,"end":6902323},{"filename":"/lib/python3.10/encodings/punycode.py","start":6902323,"end":6909206},{"filename":"/lib/python3.10/encodings/quopri_codec.py","start":6909206,"end":6910731},{"filename":"/lib/python3.10/encodings/raw_unicode_escape.py","start":6910731,"end":6912063},{"filename":"/lib/python3.10/encodings/rot_13.py","start":6912063,"end":6914511},{"filename":"/lib/python3.10/encodings/shift_jis.py","start":6914511,"end":6915550},{"filename":"/lib/python3.10/encodings/shift_jis_2004.py","start":6915550,"end":6916609},{"filename":"/lib/python3.10/encodings/shift_jisx0213.py","start":6916609,"end":6917668},{"filename":"/lib/python3.10/encodings/tis_620.py","start":6917668,"end":6929968},{"filename":"/lib/python3.10/encodings/undefined.py","start":6929968,"end":6931267},{"filename":"/lib/python3.10/encodings/unicode_escape.py","start":6931267,"end":6932571},{"filename":"/lib/python3.10/encodings/utf_16.py","start":6932571,"end":6937807},{"filename":"/lib/python3.10/encodings/utf_16_be.py","start":6937807,"end":6938844},{"filename":"/lib/python3.10/encodings/utf_16_le.py","start":6938844,"end":6939881},{"filename":"/lib/python3.10/encodings/utf_32.py","start":6939881,"end":6945010},{"filename":"/lib/python3.10/encodings/utf_32_be.py","start":6945010,"end":6945940},{"filename":"/lib/python3.10/encodings/utf_32_le.py","start":6945940,"end":6946870},{"filename":"/lib/python3.10/encodings/utf_7.py","start":6946870,"end":6947816},{"filename":"/lib/python3.10/encodings/utf_8.py","start":6947816,"end":6948821},{"filename":"/lib/python3.10/encodings/utf_8_sig.py","start":6948821,"end":6952954},{"filename":"/lib/python3.10/encodings/uu_codec.py","start":6952954,"end":6955805},{"filename":"/lib/python3.10/encodings/zlib_codec.py","start":6955805,"end":6958009},{"filename":"/lib/python3.10/html/__init__.py","start":6958009,"end":6962765},{"filename":"/lib/python3.10/html/entities.py","start":6962765,"end":7038080},{"filename":"/lib/python3.10/html/parser.py","start":7038080,"end":7055472},{"filename":"/lib/python3.10/http/__init__.py","start":7055472,"end":7062205},{"filename":"/lib/python3.10/http/client.py","start":7062205,"end":7118923},{"filename":"/lib/python3.10/http/cookiejar.py","start":7118923,"end":7196330},{"filename":"/lib/python3.10/http/cookies.py","start":7196330,"end":7216812},{"filename":"/lib/python3.10/http/server.py","start":7216812,"end":7264083},{"filename":"/lib/python3.10/importlib/__init__.py","start":7264083,"end":7270172},{"filename":"/lib/python3.10/importlib/_abc.py","start":7270172,"end":7272024},{"filename":"/lib/python3.10/importlib/_adapters.py","start":7272024,"end":7273932},{"filename":"/lib/python3.10/importlib/_bootstrap.py","start":7273932,"end":7315399},{"filename":"/lib/python3.10/importlib/_bootstrap_external.py","start":7315399,"end":7379871},{"filename":"/lib/python3.10/importlib/_common.py","start":7379871,"end":7382945},{"filename":"/lib/python3.10/importlib/abc.py","start":7382945,"end":7397366},{"filename":"/lib/python3.10/importlib/machinery.py","start":7397366,"end":7398197},{"filename":"/lib/python3.10/importlib/readers.py","start":7398197,"end":7401784},{"filename":"/lib/python3.10/importlib/resources.py","start":7401784,"end":7407489},{"filename":"/lib/python3.10/importlib/util.py","start":7407489,"end":7418976},{"filename":"/lib/python3.10/importlib/metadata/__init__.py","start":7418976,"end":7448449},{"filename":"/lib/python3.10/importlib/metadata/_adapters.py","start":7448449,"end":7450311},{"filename":"/lib/python3.10/importlib/metadata/_collections.py","start":7450311,"end":7451054},{"filename":"/lib/python3.10/importlib/metadata/_functools.py","start":7451054,"end":7453555},{"filename":"/lib/python3.10/importlib/metadata/_itertools.py","start":7453555,"end":7454162},{"filename":"/lib/python3.10/importlib/metadata/_meta.py","start":7454162,"end":7455292},{"filename":"/lib/python3.10/importlib/metadata/_text.py","start":7455292,"end":7457490},{"filename":"/lib/python3.10/json/__init__.py","start":7457490,"end":7471509},{"filename":"/lib/python3.10/json/decoder.py","start":7471509,"end":7483981},{"filename":"/lib/python3.10/json/encoder.py","start":7483981,"end":7500054},{"filename":"/lib/python3.10/json/scanner.py","start":7500054,"end":7502479},{"filename":"/lib/python3.10/json/tool.py","start":7502479,"end":7505818},{"filename":"/lib/python3.10/logging/__init__.py","start":7505818,"end":7586023},{"filename":"/lib/python3.10/logging/config.py","start":7586023,"end":7622486},{"filename":"/lib/python3.10/logging/handlers.py","start":7622486,"end":7683115},{"filename":"/lib/python3.10/multiprocessing/__init__.py","start":7683115,"end":7684031},{"filename":"/lib/python3.10/multiprocessing/connection.py","start":7684031,"end":7716055},{"filename":"/lib/python3.10/multiprocessing/context.py","start":7716055,"end":7727312},{"filename":"/lib/python3.10/multiprocessing/forkserver.py","start":7727312,"end":7739454},{"filename":"/lib/python3.10/multiprocessing/heap.py","start":7739454,"end":7751080},{"filename":"/lib/python3.10/multiprocessing/managers.py","start":7751080,"end":7798582},{"filename":"/lib/python3.10/multiprocessing/pool.py","start":7798582,"end":7831137},{"filename":"/lib/python3.10/multiprocessing/popen_fork.py","start":7831137,"end":7833514},{"filename":"/lib/python3.10/multiprocessing/popen_forkserver.py","start":7833514,"end":7835744},{"filename":"/lib/python3.10/multiprocessing/popen_spawn_posix.py","start":7835744,"end":7837773},{"filename":"/lib/python3.10/multiprocessing/popen_spawn_win32.py","start":7837773,"end":7841784},{"filename":"/lib/python3.10/multiprocessing/process.py","start":7841784,"end":7853784},{"filename":"/lib/python3.10/multiprocessing/queues.py","start":7853784,"end":7865777},{"filename":"/lib/python3.10/multiprocessing/reduction.py","start":7865777,"end":7875289},{"filename":"/lib/python3.10/multiprocessing/resource_sharer.py","start":7875289,"end":7880421},{"filename":"/lib/python3.10/multiprocessing/resource_tracker.py","start":7880421,"end":7889396},{"filename":"/lib/python3.10/multiprocessing/shared_memory.py","start":7889396,"end":7907792},{"filename":"/lib/python3.10/multiprocessing/sharedctypes.py","start":7907792,"end":7914098},{"filename":"/lib/python3.10/multiprocessing/spawn.py","start":7914098,"end":7923394},{"filename":"/lib/python3.10/multiprocessing/synchronize.py","start":7923394,"end":7935004},{"filename":"/lib/python3.10/multiprocessing/util.py","start":7935004,"end":7949027},{"filename":"/lib/python3.10/multiprocessing/dummy/__init__.py","start":7949027,"end":7952088},{"filename":"/lib/python3.10/multiprocessing/dummy/connection.py","start":7952088,"end":7953686},{"filename":"/lib/python3.10/pydoc_data/__init__.py","start":7953686,"end":7953686},{"filename":"/lib/python3.10/pydoc_data/_pydoc.css","start":7953686,"end":7953782},{"filename":"/lib/python3.10/pydoc_data/topics.py","start":7953782,"end":8697388},{"filename":"/lib/python3.10/site-packages/README.txt","start":8697388,"end":8697507},{"filename":"/lib/python3.10/sqlite3/__init__.py","start":8697507,"end":8700043},{"filename":"/lib/python3.10/sqlite3/dbapi2.py","start":8700043,"end":8703366},{"filename":"/lib/python3.10/sqlite3/dump.py","start":8703366,"end":8706191},{"filename":"/lib/python3.10/tzdata/__init__.py","start":8706191,"end":8706443},{"filename":"/lib/python3.10/tzdata/zones","start":8706443,"end":8715493},{"filename":"/lib/python3.10/tzdata/zoneinfo/CET","start":8715493,"end":8716114},{"filename":"/lib/python3.10/tzdata/zoneinfo/CST6CDT","start":8716114,"end":8717065},{"filename":"/lib/python3.10/tzdata/zoneinfo/Cuba","start":8717065,"end":8718182},{"filename":"/lib/python3.10/tzdata/zoneinfo/EET","start":8718182,"end":8718679},{"filename":"/lib/python3.10/tzdata/zoneinfo/EST","start":8718679,"end":8718790},{"filename":"/lib/python3.10/tzdata/zoneinfo/EST5EDT","start":8718790,"end":8719741},{"filename":"/lib/python3.10/tzdata/zoneinfo/Egypt","start":8719741,"end":8721017},{"filename":"/lib/python3.10/tzdata/zoneinfo/Eire","start":8721017,"end":8722513},{"filename":"/lib/python3.10/tzdata/zoneinfo/Factory","start":8722513,"end":8722626},{"filename":"/lib/python3.10/tzdata/zoneinfo/GB","start":8722626,"end":8724225},{"filename":"/lib/python3.10/tzdata/zoneinfo/GB-Eire","start":8724225,"end":8725824},{"filename":"/lib/python3.10/tzdata/zoneinfo/GMT","start":8725824,"end":8725935},{"filename":"/lib/python3.10/tzdata/zoneinfo/GMT+0","start":8725935,"end":8726046},{"filename":"/lib/python3.10/tzdata/zoneinfo/GMT-0","start":8726046,"end":8726157},{"filename":"/lib/python3.10/tzdata/zoneinfo/GMT0","start":8726157,"end":8726268},{"filename":"/lib/python3.10/tzdata/zoneinfo/Greenwich","start":8726268,"end":8726379},{"filename":"/lib/python3.10/tzdata/zoneinfo/HST","start":8726379,"end":8726491},{"filename":"/lib/python3.10/tzdata/zoneinfo/Hongkong","start":8726491,"end":8727266},{"filename":"/lib/python3.10/tzdata/zoneinfo/Iceland","start":8727266,"end":8728019},{"filename":"/lib/python3.10/tzdata/zoneinfo/Iran","start":8728019,"end":8730023},{"filename":"/lib/python3.10/tzdata/zoneinfo/Israel","start":8730023,"end":8731097},{"filename":"/lib/python3.10/tzdata/zoneinfo/Jamaica","start":8731097,"end":8731436},{"filename":"/lib/python3.10/tzdata/zoneinfo/Japan","start":8731436,"end":8731649},{"filename":"/lib/python3.10/tzdata/zoneinfo/Kwajalein","start":8731649,"end":8731868},{"filename":"/lib/python3.10/tzdata/zoneinfo/Libya","start":8731868,"end":8732299},{"filename":"/lib/python3.10/tzdata/zoneinfo/MET","start":8732299,"end":8732920},{"filename":"/lib/python3.10/tzdata/zoneinfo/MST","start":8732920,"end":8733031},{"filename":"/lib/python3.10/tzdata/zoneinfo/MST7MDT","start":8733031,"end":8733982},{"filename":"/lib/python3.10/tzdata/zoneinfo/NZ","start":8733982,"end":8735025},{"filename":"/lib/python3.10/tzdata/zoneinfo/NZ-CHAT","start":8735025,"end":8735833},{"filename":"/lib/python3.10/tzdata/zoneinfo/Navajo","start":8735833,"end":8736875},{"filename":"/lib/python3.10/tzdata/zoneinfo/PRC","start":8736875,"end":8737268},{"filename":"/lib/python3.10/tzdata/zoneinfo/PST8PDT","start":8737268,"end":8738219},{"filename":"/lib/python3.10/tzdata/zoneinfo/Poland","start":8738219,"end":8739142},{"filename":"/lib/python3.10/tzdata/zoneinfo/Portugal","start":8739142,"end":8740596},{"filename":"/lib/python3.10/tzdata/zoneinfo/ROC","start":8740596,"end":8741107},{"filename":"/lib/python3.10/tzdata/zoneinfo/ROK","start":8741107,"end":8741522},{"filename":"/lib/python3.10/tzdata/zoneinfo/Singapore","start":8741522,"end":8741778},{"filename":"/lib/python3.10/tzdata/zoneinfo/Turkey","start":8741778,"end":8742978},{"filename":"/lib/python3.10/tzdata/zoneinfo/UCT","start":8742978,"end":8743089},{"filename":"/lib/python3.10/tzdata/zoneinfo/UTC","start":8743089,"end":8743200},{"filename":"/lib/python3.10/tzdata/zoneinfo/Universal","start":8743200,"end":8743311},{"filename":"/lib/python3.10/tzdata/zoneinfo/W-SU","start":8743311,"end":8744219},{"filename":"/lib/python3.10/tzdata/zoneinfo/WET","start":8744219,"end":8744713},{"filename":"/lib/python3.10/tzdata/zoneinfo/Zulu","start":8744713,"end":8744824},{"filename":"/lib/python3.10/tzdata/zoneinfo/__init__.py","start":8744824,"end":8744824},{"filename":"/lib/python3.10/tzdata/zoneinfo/iso3166.tab","start":8744824,"end":8749287},{"filename":"/lib/python3.10/tzdata/zoneinfo/leapseconds","start":8749287,"end":8752679},{"filename":"/lib/python3.10/tzdata/zoneinfo/tzdata.zi","start":8752679,"end":8865464},{"filename":"/lib/python3.10/tzdata/zoneinfo/zone.tab","start":8865464,"end":8884883},{"filename":"/lib/python3.10/tzdata/zoneinfo/zone1970.tab","start":8884883,"end":8902476},{"filename":"/lib/python3.10/tzdata/zoneinfo/Africa/Abidjan","start":8902476,"end":8902606},{"filename":"/lib/python3.10/tzdata/zoneinfo/Africa/Accra","start":8902606,"end":8902736},{"filename":"/lib/python3.10/tzdata/zoneinfo/Africa/Addis_Ababa","start":8902736,"end":8902927},{"filename":"/lib/python3.10/tzdata/zoneinfo/Africa/Algiers","start":8902927,"end":8903397},{"filename":"/lib/python3.10/tzdata/zoneinfo/Africa/Asmara","start":8903397,"end":8903588},{"filename":"/lib/python3.10/tzdata/zoneinfo/Africa/Asmera","start":8903588,"end":8903779},{"filename":"/lib/python3.10/tzdata/zoneinfo/Africa/Bamako","start":8903779,"end":8903909},{"filename":"/lib/python3.10/tzdata/zoneinfo/Africa/Bangui","start":8903909,"end":8904089},{"filename":"/lib/python3.10/tzdata/zoneinfo/Africa/Banjul","start":8904089,"end":8904219},{"filename":"/lib/python3.10/tzdata/zoneinfo/Africa/Bissau","start":8904219,"end":8904368},{"filename":"/lib/python3.10/tzdata/zoneinfo/Africa/Blantyre","start":8904368,"end":8904499},{"filename":"/lib/python3.10/tzdata/zoneinfo/Africa/Brazzaville","start":8904499,"end":8904679},{"filename":"/lib/python3.10/tzdata/zoneinfo/Africa/Bujumbura","start":8904679,"end":8904810},{"filename":"/lib/python3.10/tzdata/zoneinfo/Africa/Cairo","start":8904810,"end":8906086},{"filename":"/lib/python3.10/tzdata/zoneinfo/Africa/Casablanca","start":8906086,"end":8908005},{"filename":"/lib/python3.10/tzdata/zoneinfo/Africa/Ceuta","start":8908005,"end":8908567},{"filename":"/lib/python3.10/tzdata/zoneinfo/Africa/Conakry","start":8908567,"end":8908697},{"filename":"/lib/python3.10/tzdata/zoneinfo/Africa/Dakar","start":8908697,"end":8908827},{"filename":"/lib/python3.10/tzdata/zoneinfo/Africa/Dar_es_Salaam","start":8908827,"end":8909018},{"filename":"/lib/python3.10/tzdata/zoneinfo/Africa/Djibouti","start":8909018,"end":8909209},{"filename":"/lib/python3.10/tzdata/zoneinfo/Africa/Douala","start":8909209,"end":8909389},{"filename":"/lib/python3.10/tzdata/zoneinfo/Africa/El_Aaiun","start":8909389,"end":8911219},{"filename":"/lib/python3.10/tzdata/zoneinfo/Africa/Freetown","start":8911219,"end":8911349},{"filename":"/lib/python3.10/tzdata/zoneinfo/Africa/Gaborone","start":8911349,"end":8911480},{"filename":"/lib/python3.10/tzdata/zoneinfo/Africa/Harare","start":8911480,"end":8911611},{"filename":"/lib/python3.10/tzdata/zoneinfo/Africa/Johannesburg","start":8911611,"end":8911801},{"filename":"/lib/python3.10/tzdata/zoneinfo/Africa/Juba","start":8911801,"end":8912259},{"filename":"/lib/python3.10/tzdata/zoneinfo/Africa/Kampala","start":8912259,"end":8912450},{"filename":"/lib/python3.10/tzdata/zoneinfo/Africa/Khartoum","start":8912450,"end":8912908},{"filename":"/lib/python3.10/tzdata/zoneinfo/Africa/Kigali","start":8912908,"end":8913039},{"filename":"/lib/python3.10/tzdata/zoneinfo/Africa/Kinshasa","start":8913039,"end":8913219},{"filename":"/lib/python3.10/tzdata/zoneinfo/Africa/Lagos","start":8913219,"end":8913399},{"filename":"/lib/python3.10/tzdata/zoneinfo/Africa/Libreville","start":8913399,"end":8913579},{"filename":"/lib/python3.10/tzdata/zoneinfo/Africa/Lome","start":8913579,"end":8913709},{"filename":"/lib/python3.10/tzdata/zoneinfo/Africa/Luanda","start":8913709,"end":8913889},{"filename":"/lib/python3.10/tzdata/zoneinfo/Africa/Lubumbashi","start":8913889,"end":8914020},{"filename":"/lib/python3.10/tzdata/zoneinfo/Africa/Lusaka","start":8914020,"end":8914151},{"filename":"/lib/python3.10/tzdata/zoneinfo/Africa/Malabo","start":8914151,"end":8914331},{"filename":"/lib/python3.10/tzdata/zoneinfo/Africa/Maputo","start":8914331,"end":8914462},{"filename":"/lib/python3.10/tzdata/zoneinfo/Africa/Maseru","start":8914462,"end":8914652},{"filename":"/lib/python3.10/tzdata/zoneinfo/Africa/Mbabane","start":8914652,"end":8914842},{"filename":"/lib/python3.10/tzdata/zoneinfo/Africa/Mogadishu","start":8914842,"end":8915033},{"filename":"/lib/python3.10/tzdata/zoneinfo/Africa/Monrovia","start":8915033,"end":8915197},{"filename":"/lib/python3.10/tzdata/zoneinfo/Africa/Nairobi","start":8915197,"end":8915388},{"filename":"/lib/python3.10/tzdata/zoneinfo/Africa/Ndjamena","start":8915388,"end":8915548},{"filename":"/lib/python3.10/tzdata/zoneinfo/Africa/Niamey","start":8915548,"end":8915728},{"filename":"/lib/python3.10/tzdata/zoneinfo/Africa/Nouakchott","start":8915728,"end":8915858},{"filename":"/lib/python3.10/tzdata/zoneinfo/Africa/Ouagadougou","start":8915858,"end":8915988},{"filename":"/lib/python3.10/tzdata/zoneinfo/Africa/Porto-Novo","start":8915988,"end":8916168},{"filename":"/lib/python3.10/tzdata/zoneinfo/Africa/Sao_Tome","start":8916168,"end":8916341},{"filename":"/lib/python3.10/tzdata/zoneinfo/Africa/Timbuktu","start":8916341,"end":8916471},{"filename":"/lib/python3.10/tzdata/zoneinfo/Africa/Tripoli","start":8916471,"end":8916902},{"filename":"/lib/python3.10/tzdata/zoneinfo/Africa/Tunis","start":8916902,"end":8917351},{"filename":"/lib/python3.10/tzdata/zoneinfo/Africa/Windhoek","start":8917351,"end":8917989},{"filename":"/lib/python3.10/tzdata/zoneinfo/Africa/__init__.py","start":8917989,"end":8917989},{"filename":"/lib/python3.10/tzdata/zoneinfo/America/Adak","start":8917989,"end":8918958},{"filename":"/lib/python3.10/tzdata/zoneinfo/America/Anchorage","start":8918958,"end":8919935},{"filename":"/lib/python3.10/tzdata/zoneinfo/America/Anguilla","start":8919935,"end":8920112},{"filename":"/lib/python3.10/tzdata/zoneinfo/America/Antigua","start":8920112,"end":8920289},{"filename":"/lib/python3.10/tzdata/zoneinfo/America/Araguaina","start":8920289,"end":8920881},{"filename":"/lib/python3.10/tzdata/zoneinfo/America/Aruba","start":8920881,"end":8921058},{"filename":"/lib/python3.10/tzdata/zoneinfo/America/Asuncion","start":8921058,"end":8921942},{"filename":"/lib/python3.10/tzdata/zoneinfo/America/Atikokan","start":8921942,"end":8922091},{"filename":"/lib/python3.10/tzdata/zoneinfo/America/Atka","start":8922091,"end":8923060},{"filename":"/lib/python3.10/tzdata/zoneinfo/America/Bahia","start":8923060,"end":8923742},{"filename":"/lib/python3.10/tzdata/zoneinfo/America/Bahia_Banderas","start":8923742,"end":8924272},{"filename":"/lib/python3.10/tzdata/zoneinfo/America/Barbados","start":8924272,"end":8924550},{"filename":"/lib/python3.10/tzdata/zoneinfo/America/Belem","start":8924550,"end":8924944},{"filename":"/lib/python3.10/tzdata/zoneinfo/America/Belize","start":8924944,"end":8925989},{"filename":"/lib/python3.10/tzdata/zoneinfo/America/Blanc-Sablon","start":8925989,"end":8926166},{"filename":"/lib/python3.10/tzdata/zoneinfo/America/Boa_Vista","start":8926166,"end":8926596},{"filename":"/lib/python3.10/tzdata/zoneinfo/America/Bogota","start":8926596,"end":8926775},{"filename":"/lib/python3.10/tzdata/zoneinfo/America/Boise","start":8926775,"end":8927774},{"filename":"/lib/python3.10/tzdata/zoneinfo/America/Buenos_Aires","start":8927774,"end":8928482},{"filename":"/lib/python3.10/tzdata/zoneinfo/America/Cambridge_Bay","start":8928482,"end":8929250},{"filename":"/lib/python3.10/tzdata/zoneinfo/America/Campo_Grande","start":8929250,"end":8930202},{"filename":"/lib/python3.10/tzdata/zoneinfo/America/Cancun","start":8930202,"end":8930731},{"filename":"/lib/python3.10/tzdata/zoneinfo/America/Caracas","start":8930731,"end":8930921},{"filename":"/lib/python3.10/tzdata/zoneinfo/America/Catamarca","start":8930921,"end":8931629},{"filename":"/lib/python3.10/tzdata/zoneinfo/America/Cayenne","start":8931629,"end":8931780},{"filename":"/lib/python3.10/tzdata/zoneinfo/America/Cayman","start":8931780,"end":8931929},{"filename":"/lib/python3.10/tzdata/zoneinfo/America/Chicago","start":8931929,"end":8933683},{"filename":"/lib/python3.10/tzdata/zoneinfo/America/Chihuahua","start":8933683,"end":8934023},{"filename":"/lib/python3.10/tzdata/zoneinfo/America/Coral_Harbour","start":8934023,"end":8934172},{"filename":"/lib/python3.10/tzdata/zoneinfo/America/Cordoba","start":8934172,"end":8934880},{"filename":"/lib/python3.10/tzdata/zoneinfo/America/Costa_Rica","start":8934880,"end":8935112},{"filename":"/lib/python3.10/tzdata/zoneinfo/America/Creston","start":8935112,"end":8935352},{"filename":"/lib/python3.10/tzdata/zoneinfo/America/Cuiaba","start":8935352,"end":8936286},{"filename":"/lib/python3.10/tzdata/zoneinfo/America/Curacao","start":8936286,"end":8936463},{"filename":"/lib/python3.10/tzdata/zoneinfo/America/Danmarkshavn","start":8936463,"end":8936910},{"filename":"/lib/python3.10/tzdata/zoneinfo/America/Dawson","start":8936910,"end":8937939},{"filename":"/lib/python3.10/tzdata/zoneinfo/America/Dawson_Creek","start":8937939,"end":8938622},{"filename":"/lib/python3.10/tzdata/zoneinfo/America/Denver","start":8938622,"end":8939664},{"filename":"/lib/python3.10/tzdata/zoneinfo/America/Detroit","start":8939664,"end":8940563},{"filename":"/lib/python3.10/tzdata/zoneinfo/America/Dominica","start":8940563,"end":8940740},{"filename":"/lib/python3.10/tzdata/zoneinfo/America/Edmonton","start":8940740,"end":8941710},{"filename":"/lib/python3.10/tzdata/zoneinfo/America/Eirunepe","start":8941710,"end":8942146},{"filename":"/lib/python3.10/tzdata/zoneinfo/America/El_Salvador","start":8942146,"end":8942322},{"filename":"/lib/python3.10/tzdata/zoneinfo/America/Ensenada","start":8942322,"end":8943347},{"filename":"/lib/python3.10/tzdata/zoneinfo/America/Fort_Nelson","start":8943347,"end":8944795},{"filename":"/lib/python3.10/tzdata/zoneinfo/America/Fort_Wayne","start":8944795,"end":8945326},{"filename":"/lib/python3.10/tzdata/zoneinfo/America/Fortaleza","start":8945326,"end":8945810},{"filename":"/lib/python3.10/tzdata/zoneinfo/America/Glace_Bay","start":8945810,"end":8946690},{"filename":"/lib/python3.10/tzdata/zoneinfo/America/Godthab","start":8946690,"end":8947155},{"filename":"/lib/python3.10/tzdata/zoneinfo/America/Goose_Bay","start":8947155,"end":8948735},{"filename":"/lib/python3.10/tzdata/zoneinfo/America/Grand_Turk","start":8948735,"end":8949588},{"filename":"/lib/python3.10/tzdata/zoneinfo/America/Grenada","start":8949588,"end":8949765},{"filename":"/lib/python3.10/tzdata/zoneinfo/America/Guadeloupe","start":8949765,"end":8949942},{"filename":"/lib/python3.10/tzdata/zoneinfo/America/Guatemala","start":8949942,"end":8950154},{"filename":"/lib/python3.10/tzdata/zoneinfo/America/Guayaquil","start":8950154,"end":8950333},{"filename":"/lib/python3.10/tzdata/zoneinfo/America/Guyana","start":8950333,"end":8950514},{"filename":"/lib/python3.10/tzdata/zoneinfo/America/Halifax","start":8950514,"end":8952186},{"filename":"/lib/python3.10/tzdata/zoneinfo/America/Havana","start":8952186,"end":8953303},{"filename":"/lib/python3.10/tzdata/zoneinfo/America/Hermosillo","start":8953303,"end":8953589},{"filename":"/lib/python3.10/tzdata/zoneinfo/America/Indianapolis","start":8953589,"end":8954120},{"filename":"/lib/python3.10/tzdata/zoneinfo/America/Inuvik","start":8954120,"end":8954821},{"filename":"/lib/python3.10/tzdata/zoneinfo/America/Iqaluit","start":8954821,"end":8955561},{"filename":"/lib/python3.10/tzdata/zoneinfo/America/Jamaica","start":8955561,"end":8955900},{"filename":"/lib/python3.10/tzdata/zoneinfo/America/Jujuy","start":8955900,"end":8956590},{"filename":"/lib/python3.10/tzdata/zoneinfo/America/Juneau","start":8956590,"end":8957556},{"filename":"/lib/python3.10/tzdata/zoneinfo/America/Knox_IN","start":8957556,"end":8958572},{"filename":"/lib/python3.10/tzdata/zoneinfo/America/Kralendijk","start":8958572,"end":8958749},{"filename":"/lib/python3.10/tzdata/zoneinfo/America/La_Paz","start":8958749,"end":8958919},{"filename":"/lib/python3.10/tzdata/zoneinfo/America/Lima","start":8958919,"end":8959202},{"filename":"/lib/python3.10/tzdata/zoneinfo/America/Los_Angeles","start":8959202,"end":8960496},{"filename":"/lib/python3.10/tzdata/zoneinfo/America/Louisville","start":8960496,"end":8961738},{"filename":"/lib/python3.10/tzdata/zoneinfo/America/Lower_Princes","start":8961738,"end":8961915},{"filename":"/lib/python3.10/tzdata/zoneinfo/America/Maceio","start":8961915,"end":8962417},{"filename":"/lib/python3.10/tzdata/zoneinfo/America/Managua","start":8962417,"end":8962712},{"filename":"/lib/python3.10/tzdata/zoneinfo/America/Manaus","start":8962712,"end":8963124},{"filename":"/lib/python3.10/tzdata/zoneinfo/America/Marigot","start":8963124,"end":8963301},{"filename":"/lib/python3.10/tzdata/zoneinfo/America/Martinique","start":8963301,"end":8963479},{"filename":"/lib/python3.10/tzdata/zoneinfo/America/Matamoros","start":8963479,"end":8963916},{"filename":"/lib/python3.10/tzdata/zoneinfo/America/Mazatlan","start":8963916,"end":8964283},{"filename":"/lib/python3.10/tzdata/zoneinfo/America/Mendoza","start":8964283,"end":8964991},{"filename":"/lib/python3.10/tzdata/zoneinfo/America/Menominee","start":8964991,"end":8965908},{"filename":"/lib/python3.10/tzdata/zoneinfo/America/Merida","start":8965908,"end":8966211},{"filename":"/lib/python3.10/tzdata/zoneinfo/America/Metlakatla","start":8966211,"end":8966806},{"filename":"/lib/python3.10/tzdata/zoneinfo/America/Mexico_City","start":8966806,"end":8967218},{"filename":"/lib/python3.10/tzdata/zoneinfo/America/Miquelon","start":8967218,"end":8967768},{"filename":"/lib/python3.10/tzdata/zoneinfo/America/Moncton","start":8967768,"end":8969261},{"filename":"/lib/python3.10/tzdata/zoneinfo/America/Monterrey","start":8969261,"end":8969554},{"filename":"/lib/python3.10/tzdata/zoneinfo/America/Montevideo","start":8969554,"end":8970523},{"filename":"/lib/python3.10/tzdata/zoneinfo/America/Montreal","start":8970523,"end":8972240},{"filename":"/lib/python3.10/tzdata/zoneinfo/America/Montserrat","start":8972240,"end":8972417},{"filename":"/lib/python3.10/tzdata/zoneinfo/America/Nassau","start":8972417,"end":8974134},{"filename":"/lib/python3.10/tzdata/zoneinfo/America/New_York","start":8974134,"end":8975878},{"filename":"/lib/python3.10/tzdata/zoneinfo/America/Nipigon","start":8975878,"end":8976713},{"filename":"/lib/python3.10/tzdata/zoneinfo/America/Nome","start":8976713,"end":8977688},{"filename":"/lib/python3.10/tzdata/zoneinfo/America/Noronha","start":8977688,"end":8978172},{"filename":"/lib/python3.10/tzdata/zoneinfo/America/Nuuk","start":8978172,"end":8978637},{"filename":"/lib/python3.10/tzdata/zoneinfo/America/Ojinaga","start":8978637,"end":8979121},{"filename":"/lib/python3.10/tzdata/zoneinfo/America/Panama","start":8979121,"end":8979270},{"filename":"/lib/python3.10/tzdata/zoneinfo/America/Pangnirtung","start":8979270,"end":8980039},{"filename":"/lib/python3.10/tzdata/zoneinfo/America/Paramaribo","start":8980039,"end":8980226},{"filename":"/lib/python3.10/tzdata/zoneinfo/America/Phoenix","start":8980226,"end":8980466},{"filename":"/lib/python3.10/tzdata/zoneinfo/America/Port-au-Prince","start":8980466,"end":8981031},{"filename":"/lib/python3.10/tzdata/zoneinfo/America/Port_of_Spain","start":8981031,"end":8981208},{"filename":"/lib/python3.10/tzdata/zoneinfo/America/Porto_Acre","start":8981208,"end":8981626},{"filename":"/lib/python3.10/tzdata/zoneinfo/America/Porto_Velho","start":8981626,"end":8982020},{"filename":"/lib/python3.10/tzdata/zoneinfo/America/Puerto_Rico","start":8982020,"end":8982197},{"filename":"/lib/python3.10/tzdata/zoneinfo/America/Punta_Arenas","start":8982197,"end":8983406},{"filename":"/lib/python3.10/tzdata/zoneinfo/America/Rainy_River","start":8983406,"end":8984241},{"filename":"/lib/python3.10/tzdata/zoneinfo/America/Rankin_Inlet","start":8984241,"end":8984933},{"filename":"/lib/python3.10/tzdata/zoneinfo/America/Recife","start":8984933,"end":8985417},{"filename":"/lib/python3.10/tzdata/zoneinfo/America/Regina","start":8985417,"end":8986055},{"filename":"/lib/python3.10/tzdata/zoneinfo/America/Resolute","start":8986055,"end":8986747},{"filename":"/lib/python3.10/tzdata/zoneinfo/America/Rio_Branco","start":8986747,"end":8987165},{"filename":"/lib/python3.10/tzdata/zoneinfo/America/Rosario","start":8987165,"end":8987873},{"filename":"/lib/python3.10/tzdata/zoneinfo/America/Santa_Isabel","start":8987873,"end":8988898},{"filename":"/lib/python3.10/tzdata/zoneinfo/America/Santarem","start":8988898,"end":8989307},{"filename":"/lib/python3.10/tzdata/zoneinfo/America/Santiago","start":8989307,"end":8990589},{"filename":"/lib/python3.10/tzdata/zoneinfo/America/Santo_Domingo","start":8990589,"end":8990906},{"filename":"/lib/python3.10/tzdata/zoneinfo/America/Sao_Paulo","start":8990906,"end":8991858},{"filename":"/lib/python3.10/tzdata/zoneinfo/America/Scoresbysund","start":8991858,"end":8992337},{"filename":"/lib/python3.10/tzdata/zoneinfo/America/Shiprock","start":8992337,"end":8993379},{"filename":"/lib/python3.10/tzdata/zoneinfo/America/Sitka","start":8993379,"end":8994335},{"filename":"/lib/python3.10/tzdata/zoneinfo/America/St_Barthelemy","start":8994335,"end":8994512},{"filename":"/lib/python3.10/tzdata/zoneinfo/America/St_Johns","start":8994512,"end":8996390},{"filename":"/lib/python3.10/tzdata/zoneinfo/America/St_Kitts","start":8996390,"end":8996567},{"filename":"/lib/python3.10/tzdata/zoneinfo/America/St_Lucia","start":8996567,"end":8996744},{"filename":"/lib/python3.10/tzdata/zoneinfo/America/St_Thomas","start":8996744,"end":8996921},{"filename":"/lib/python3.10/tzdata/zoneinfo/America/St_Vincent","start":8996921,"end":8997098},{"filename":"/lib/python3.10/tzdata/zoneinfo/America/Swift_Current","start":8997098,"end":8997466},{"filename":"/lib/python3.10/tzdata/zoneinfo/America/Tegucigalpa","start":8997466,"end":8997660},{"filename":"/lib/python3.10/tzdata/zoneinfo/America/Thule","start":8997660,"end":8998115},{"filename":"/lib/python3.10/tzdata/zoneinfo/America/Thunder_Bay","start":8998115,"end":8998996},{"filename":"/lib/python3.10/tzdata/zoneinfo/America/Tijuana","start":8998996,"end":9000021},{"filename":"/lib/python3.10/tzdata/zoneinfo/America/Toronto","start":9000021,"end":9001738},{"filename":"/lib/python3.10/tzdata/zoneinfo/America/Tortola","start":9001738,"end":9001915},{"filename":"/lib/python3.10/tzdata/zoneinfo/America/Vancouver","start":9001915,"end":9003245},{"filename":"/lib/python3.10/tzdata/zoneinfo/America/Virgin","start":9003245,"end":9003422},{"filename":"/lib/python3.10/tzdata/zoneinfo/America/Whitehorse","start":9003422,"end":9004451},{"filename":"/lib/python3.10/tzdata/zoneinfo/America/Winnipeg","start":9004451,"end":9005745},{"filename":"/lib/python3.10/tzdata/zoneinfo/America/Yakutat","start":9005745,"end":9006691},{"filename":"/lib/python3.10/tzdata/zoneinfo/America/Yellowknife","start":9006691,"end":9007420},{"filename":"/lib/python3.10/tzdata/zoneinfo/America/__init__.py","start":9007420,"end":9007420},{"filename":"/lib/python3.10/tzdata/zoneinfo/America/Argentina/Buenos_Aires","start":9007420,"end":9008128},{"filename":"/lib/python3.10/tzdata/zoneinfo/America/Argentina/Catamarca","start":9008128,"end":9008836},{"filename":"/lib/python3.10/tzdata/zoneinfo/America/Argentina/ComodRivadavia","start":9008836,"end":9009544},{"filename":"/lib/python3.10/tzdata/zoneinfo/America/Argentina/Cordoba","start":9009544,"end":9010252},{"filename":"/lib/python3.10/tzdata/zoneinfo/America/Argentina/Jujuy","start":9010252,"end":9010942},{"filename":"/lib/python3.10/tzdata/zoneinfo/America/Argentina/La_Rioja","start":9010942,"end":9011659},{"filename":"/lib/python3.10/tzdata/zoneinfo/America/Argentina/Mendoza","start":9011659,"end":9012367},{"filename":"/lib/python3.10/tzdata/zoneinfo/America/Argentina/Rio_Gallegos","start":9012367,"end":9013075},{"filename":"/lib/python3.10/tzdata/zoneinfo/America/Argentina/Salta","start":9013075,"end":9013765},{"filename":"/lib/python3.10/tzdata/zoneinfo/America/Argentina/San_Juan","start":9013765,"end":9014482},{"filename":"/lib/python3.10/tzdata/zoneinfo/America/Argentina/San_Luis","start":9014482,"end":9015199},{"filename":"/lib/python3.10/tzdata/zoneinfo/America/Argentina/Tucuman","start":9015199,"end":9015925},{"filename":"/lib/python3.10/tzdata/zoneinfo/America/Argentina/Ushuaia","start":9015925,"end":9016633},{"filename":"/lib/python3.10/tzdata/zoneinfo/America/Argentina/__init__.py","start":9016633,"end":9016633},{"filename":"/lib/python3.10/tzdata/zoneinfo/America/Indiana/Indianapolis","start":9016633,"end":9017164},{"filename":"/lib/python3.10/tzdata/zoneinfo/America/Indiana/Knox","start":9017164,"end":9018180},{"filename":"/lib/python3.10/tzdata/zoneinfo/America/Indiana/Marengo","start":9018180,"end":9018747},{"filename":"/lib/python3.10/tzdata/zoneinfo/America/Indiana/Petersburg","start":9018747,"end":9019430},{"filename":"/lib/python3.10/tzdata/zoneinfo/America/Indiana/Tell_City","start":9019430,"end":9019952},{"filename":"/lib/python3.10/tzdata/zoneinfo/America/Indiana/Vevay","start":9019952,"end":9020321},{"filename":"/lib/python3.10/tzdata/zoneinfo/America/Indiana/Vincennes","start":9020321,"end":9020879},{"filename":"/lib/python3.10/tzdata/zoneinfo/America/Indiana/Winamac","start":9020879,"end":9021491},{"filename":"/lib/python3.10/tzdata/zoneinfo/America/Indiana/__init__.py","start":9021491,"end":9021491},{"filename":"/lib/python3.10/tzdata/zoneinfo/America/Kentucky/Louisville","start":9021491,"end":9022733},{"filename":"/lib/python3.10/tzdata/zoneinfo/America/Kentucky/Monticello","start":9022733,"end":9023705},{"filename":"/lib/python3.10/tzdata/zoneinfo/America/Kentucky/__init__.py","start":9023705,"end":9023705},{"filename":"/lib/python3.10/tzdata/zoneinfo/America/North_Dakota/Beulah","start":9023705,"end":9024748},{"filename":"/lib/python3.10/tzdata/zoneinfo/America/North_Dakota/Center","start":9024748,"end":9025738},{"filename":"/lib/python3.10/tzdata/zoneinfo/America/North_Dakota/New_Salem","start":9025738,"end":9026728},{"filename":"/lib/python3.10/tzdata/zoneinfo/America/North_Dakota/__init__.py","start":9026728,"end":9026728},{"filename":"/lib/python3.10/tzdata/zoneinfo/Antarctica/Casey","start":9026728,"end":9026971},{"filename":"/lib/python3.10/tzdata/zoneinfo/Antarctica/Davis","start":9026971,"end":9027168},{"filename":"/lib/python3.10/tzdata/zoneinfo/Antarctica/DumontDUrville","start":9027168,"end":9027322},{"filename":"/lib/python3.10/tzdata/zoneinfo/Antarctica/Macquarie","start":9027322,"end":9028298},{"filename":"/lib/python3.10/tzdata/zoneinfo/Antarctica/Mawson","start":9028298,"end":9028450},{"filename":"/lib/python3.10/tzdata/zoneinfo/Antarctica/McMurdo","start":9028450,"end":9029493},{"filename":"/lib/python3.10/tzdata/zoneinfo/Antarctica/Palmer","start":9029493,"end":9030380},{"filename":"/lib/python3.10/tzdata/zoneinfo/Antarctica/Rothera","start":9030380,"end":9030512},{"filename":"/lib/python3.10/tzdata/zoneinfo/Antarctica/South_Pole","start":9030512,"end":9031555},{"filename":"/lib/python3.10/tzdata/zoneinfo/Antarctica/Syowa","start":9031555,"end":9031688},{"filename":"/lib/python3.10/tzdata/zoneinfo/Antarctica/Troll","start":9031688,"end":9031865},{"filename":"/lib/python3.10/tzdata/zoneinfo/Antarctica/Vostok","start":9031865,"end":9031998},{"filename":"/lib/python3.10/tzdata/zoneinfo/Antarctica/__init__.py","start":9031998,"end":9031998},{"filename":"/lib/python3.10/tzdata/zoneinfo/Arctic/Longyearbyen","start":9031998,"end":9032674},{"filename":"/lib/python3.10/tzdata/zoneinfo/Arctic/__init__.py","start":9032674,"end":9032674},{"filename":"/lib/python3.10/tzdata/zoneinfo/Asia/Aden","start":9032674,"end":9032807},{"filename":"/lib/python3.10/tzdata/zoneinfo/Asia/Almaty","start":9032807,"end":9033416},{"filename":"/lib/python3.10/tzdata/zoneinfo/Asia/Amman","start":9033416,"end":9034338},{"filename":"/lib/python3.10/tzdata/zoneinfo/Asia/Anadyr","start":9034338,"end":9035081},{"filename":"/lib/python3.10/tzdata/zoneinfo/Asia/Aqtau","start":9035081,"end":9035687},{"filename":"/lib/python3.10/tzdata/zoneinfo/Asia/Aqtobe","start":9035687,"end":9036302},{"filename":"/lib/python3.10/tzdata/zoneinfo/Asia/Ashgabat","start":9036302,"end":9036677},{"filename":"/lib/python3.10/tzdata/zoneinfo/Asia/Ashkhabad","start":9036677,"end":9037052},{"filename":"/lib/python3.10/tzdata/zoneinfo/Asia/Atyrau","start":9037052,"end":9037668},{"filename":"/lib/python3.10/tzdata/zoneinfo/Asia/Baghdad","start":9037668,"end":9038298},{"filename":"/lib/python3.10/tzdata/zoneinfo/Asia/Bahrain","start":9038298,"end":9038450},{"filename":"/lib/python3.10/tzdata/zoneinfo/Asia/Baku","start":9038450,"end":9039194},{"filename":"/lib/python3.10/tzdata/zoneinfo/Asia/Bangkok","start":9039194,"end":9039346},{"filename":"/lib/python3.10/tzdata/zoneinfo/Asia/Barnaul","start":9039346,"end":9040099},{"filename":"/lib/python3.10/tzdata/zoneinfo/Asia/Beirut","start":9040099,"end":9040831},{"filename":"/lib/python3.10/tzdata/zoneinfo/Asia/Bishkek","start":9040831,"end":9041449},{"filename":"/lib/python3.10/tzdata/zoneinfo/Asia/Brunei","start":9041449,"end":9041603},{"filename":"/lib/python3.10/tzdata/zoneinfo/Asia/Calcutta","start":9041603,"end":9041823},{"filename":"/lib/python3.10/tzdata/zoneinfo/Asia/Chita","start":9041823,"end":9042573},{"filename":"/lib/python3.10/tzdata/zoneinfo/Asia/Choibalsan","start":9042573,"end":9043192},{"filename":"/lib/python3.10/tzdata/zoneinfo/Asia/Chongqing","start":9043192,"end":9043585},{"filename":"/lib/python3.10/tzdata/zoneinfo/Asia/Chungking","start":9043585,"end":9043978},{"filename":"/lib/python3.10/tzdata/zoneinfo/Asia/Colombo","start":9043978,"end":9044225},{"filename":"/lib/python3.10/tzdata/zoneinfo/Asia/Dacca","start":9044225,"end":9044456},{"filename":"/lib/python3.10/tzdata/zoneinfo/Asia/Damascus","start":9044456,"end":9045503},{"filename":"/lib/python3.10/tzdata/zoneinfo/Asia/Dhaka","start":9045503,"end":9045734},{"filename":"/lib/python3.10/tzdata/zoneinfo/Asia/Dili","start":9045734,"end":9045904},{"filename":"/lib/python3.10/tzdata/zoneinfo/Asia/Dubai","start":9045904,"end":9046037},{"filename":"/lib/python3.10/tzdata/zoneinfo/Asia/Dushanbe","start":9046037,"end":9046403},{"filename":"/lib/python3.10/tzdata/zoneinfo/Asia/Famagusta","start":9046403,"end":9047343},{"filename":"/lib/python3.10/tzdata/zoneinfo/Asia/Gaza","start":9047343,"end":9048583},{"filename":"/lib/python3.10/tzdata/zoneinfo/Asia/Harbin","start":9048583,"end":9048976},{"filename":"/lib/python3.10/tzdata/zoneinfo/Asia/Hebron","start":9048976,"end":9050234},{"filename":"/lib/python3.10/tzdata/zoneinfo/Asia/Ho_Chi_Minh","start":9050234,"end":9050470},{"filename":"/lib/python3.10/tzdata/zoneinfo/Asia/Hong_Kong","start":9050470,"end":9051245},{"filename":"/lib/python3.10/tzdata/zoneinfo/Asia/Hovd","start":9051245,"end":9051839},{"filename":"/lib/python3.10/tzdata/zoneinfo/Asia/Irkutsk","start":9051839,"end":9052599},{"filename":"/lib/python3.10/tzdata/zoneinfo/Asia/Istanbul","start":9052599,"end":9053799},{"filename":"/lib/python3.10/tzdata/zoneinfo/Asia/Jakarta","start":9053799,"end":9054047},{"filename":"/lib/python3.10/tzdata/zoneinfo/Asia/Jayapura","start":9054047,"end":9054218},{"filename":"/lib/python3.10/tzdata/zoneinfo/Asia/Jerusalem","start":9054218,"end":9055292},{"filename":"/lib/python3.10/tzdata/zoneinfo/Asia/Kabul","start":9055292,"end":9055451},{"filename":"/lib/python3.10/tzdata/zoneinfo/Asia/Kamchatka","start":9055451,"end":9056178},{"filename":"/lib/python3.10/tzdata/zoneinfo/Asia/Karachi","start":9056178,"end":9056444},{"filename":"/lib/python3.10/tzdata/zoneinfo/Asia/Kashgar","start":9056444,"end":9056577},{"filename":"/lib/python3.10/tzdata/zoneinfo/Asia/Kathmandu","start":9056577,"end":9056738},{"filename":"/lib/python3.10/tzdata/zoneinfo/Asia/Katmandu","start":9056738,"end":9056899},{"filename":"/lib/python3.10/tzdata/zoneinfo/Asia/Khandyga","start":9056899,"end":9057674},{"filename":"/lib/python3.10/tzdata/zoneinfo/Asia/Kolkata","start":9057674,"end":9057894},{"filename":"/lib/python3.10/tzdata/zoneinfo/Asia/Krasnoyarsk","start":9057894,"end":9058635},{"filename":"/lib/python3.10/tzdata/zoneinfo/Asia/Kuala_Lumpur","start":9058635,"end":9058891},{"filename":"/lib/python3.10/tzdata/zoneinfo/Asia/Kuching","start":9058891,"end":9059211},{"filename":"/lib/python3.10/tzdata/zoneinfo/Asia/Kuwait","start":9059211,"end":9059344},{"filename":"/lib/python3.10/tzdata/zoneinfo/Asia/Macao","start":9059344,"end":9060135},{"filename":"/lib/python3.10/tzdata/zoneinfo/Asia/Macau","start":9060135,"end":9060926},{"filename":"/lib/python3.10/tzdata/zoneinfo/Asia/Magadan","start":9060926,"end":9061677},{"filename":"/lib/python3.10/tzdata/zoneinfo/Asia/Makassar","start":9061677,"end":9061867},{"filename":"/lib/python3.10/tzdata/zoneinfo/Asia/Manila","start":9061867,"end":9062105},{"filename":"/lib/python3.10/tzdata/zoneinfo/Asia/Muscat","start":9062105,"end":9062238},{"filename":"/lib/python3.10/tzdata/zoneinfo/Asia/Nicosia","start":9062238,"end":9062835},{"filename":"/lib/python3.10/tzdata/zoneinfo/Asia/Novokuznetsk","start":9062835,"end":9063561},{"filename":"/lib/python3.10/tzdata/zoneinfo/Asia/Novosibirsk","start":9063561,"end":9064314},{"filename":"/lib/python3.10/tzdata/zoneinfo/Asia/Omsk","start":9064314,"end":9065055},{"filename":"/lib/python3.10/tzdata/zoneinfo/Asia/Oral","start":9065055,"end":9065680},{"filename":"/lib/python3.10/tzdata/zoneinfo/Asia/Phnom_Penh","start":9065680,"end":9065832},{"filename":"/lib/python3.10/tzdata/zoneinfo/Asia/Pontianak","start":9065832,"end":9066079},{"filename":"/lib/python3.10/tzdata/zoneinfo/Asia/Pyongyang","start":9066079,"end":9066262},{"filename":"/lib/python3.10/tzdata/zoneinfo/Asia/Qatar","start":9066262,"end":9066414},{"filename":"/lib/python3.10/tzdata/zoneinfo/Asia/Qostanay","start":9066414,"end":9067029},{"filename":"/lib/python3.10/tzdata/zoneinfo/Asia/Qyzylorda","start":9067029,"end":9067653},{"filename":"/lib/python3.10/tzdata/zoneinfo/Asia/Rangoon","start":9067653,"end":9067840},{"filename":"/lib/python3.10/tzdata/zoneinfo/Asia/Riyadh","start":9067840,"end":9067973},{"filename":"/lib/python3.10/tzdata/zoneinfo/Asia/Saigon","start":9067973,"end":9068209},{"filename":"/lib/python3.10/tzdata/zoneinfo/Asia/Sakhalin","start":9068209,"end":9068964},{"filename":"/lib/python3.10/tzdata/zoneinfo/Asia/Samarkand","start":9068964,"end":9069330},{"filename":"/lib/python3.10/tzdata/zoneinfo/Asia/Seoul","start":9069330,"end":9069745},{"filename":"/lib/python3.10/tzdata/zoneinfo/Asia/Shanghai","start":9069745,"end":9070138},{"filename":"/lib/python3.10/tzdata/zoneinfo/Asia/Singapore","start":9070138,"end":9070394},{"filename":"/lib/python3.10/tzdata/zoneinfo/Asia/Srednekolymsk","start":9070394,"end":9071136},{"filename":"/lib/python3.10/tzdata/zoneinfo/Asia/Taipei","start":9071136,"end":9071647},{"filename":"/lib/python3.10/tzdata/zoneinfo/Asia/Tashkent","start":9071647,"end":9072013},{"filename":"/lib/python3.10/tzdata/zoneinfo/Asia/Tbilisi","start":9072013,"end":9072642},{"filename":"/lib/python3.10/tzdata/zoneinfo/Asia/Tehran","start":9072642,"end":9074646},{"filename":"/lib/python3.10/tzdata/zoneinfo/Asia/Tel_Aviv","start":9074646,"end":9075720},{"filename":"/lib/python3.10/tzdata/zoneinfo/Asia/Thimbu","start":9075720,"end":9075874},{"filename":"/lib/python3.10/tzdata/zoneinfo/Asia/Thimphu","start":9075874,"end":9076028},{"filename":"/lib/python3.10/tzdata/zoneinfo/Asia/Tokyo","start":9076028,"end":9076241},{"filename":"/lib/python3.10/tzdata/zoneinfo/Asia/Tomsk","start":9076241,"end":9076994},{"filename":"/lib/python3.10/tzdata/zoneinfo/Asia/Ujung_Pandang","start":9076994,"end":9077184},{"filename":"/lib/python3.10/tzdata/zoneinfo/Asia/Ulaanbaatar","start":9077184,"end":9077778},{"filename":"/lib/python3.10/tzdata/zoneinfo/Asia/Ulan_Bator","start":9077778,"end":9078372},{"filename":"/lib/python3.10/tzdata/zoneinfo/Asia/Urumqi","start":9078372,"end":9078505},{"filename":"/lib/python3.10/tzdata/zoneinfo/Asia/Ust-Nera","start":9078505,"end":9079276},{"filename":"/lib/python3.10/tzdata/zoneinfo/Asia/Vientiane","start":9079276,"end":9079428},{"filename":"/lib/python3.10/tzdata/zoneinfo/Asia/Vladivostok","start":9079428,"end":9080170},{"filename":"/lib/python3.10/tzdata/zoneinfo/Asia/Yakutsk","start":9080170,"end":9080911},{"filename":"/lib/python3.10/tzdata/zoneinfo/Asia/Yangon","start":9080911,"end":9081098},{"filename":"/lib/python3.10/tzdata/zoneinfo/Asia/Yekaterinburg","start":9081098,"end":9081858},{"filename":"/lib/python3.10/tzdata/zoneinfo/Asia/Yerevan","start":9081858,"end":9082566},{"filename":"/lib/python3.10/tzdata/zoneinfo/Asia/__init__.py","start":9082566,"end":9082566},{"filename":"/lib/python3.10/tzdata/zoneinfo/Atlantic/Azores","start":9082566,"end":9084019},{"filename":"/lib/python3.10/tzdata/zoneinfo/Atlantic/Bermuda","start":9084019,"end":9085043},{"filename":"/lib/python3.10/tzdata/zoneinfo/Atlantic/Canary","start":9085043,"end":9085521},{"filename":"/lib/python3.10/tzdata/zoneinfo/Atlantic/Cape_Verde","start":9085521,"end":9085696},{"filename":"/lib/python3.10/tzdata/zoneinfo/Atlantic/Faeroe","start":9085696,"end":9086137},{"filename":"/lib/python3.10/tzdata/zoneinfo/Atlantic/Faroe","start":9086137,"end":9086578},{"filename":"/lib/python3.10/tzdata/zoneinfo/Atlantic/Jan_Mayen","start":9086578,"end":9087254},{"filename":"/lib/python3.10/tzdata/zoneinfo/Atlantic/Madeira","start":9087254,"end":9088707},{"filename":"/lib/python3.10/tzdata/zoneinfo/Atlantic/Reykjavik","start":9088707,"end":9089460},{"filename":"/lib/python3.10/tzdata/zoneinfo/Atlantic/South_Georgia","start":9089460,"end":9089592},{"filename":"/lib/python3.10/tzdata/zoneinfo/Atlantic/St_Helena","start":9089592,"end":9089722},{"filename":"/lib/python3.10/tzdata/zoneinfo/Atlantic/Stanley","start":9089722,"end":9090511},{"filename":"/lib/python3.10/tzdata/zoneinfo/Atlantic/__init__.py","start":9090511,"end":9090511},{"filename":"/lib/python3.10/tzdata/zoneinfo/Australia/ACT","start":9090511,"end":9091415},{"filename":"/lib/python3.10/tzdata/zoneinfo/Australia/Adelaide","start":9091415,"end":9092336},{"filename":"/lib/python3.10/tzdata/zoneinfo/Australia/Brisbane","start":9092336,"end":9092625},{"filename":"/lib/python3.10/tzdata/zoneinfo/Australia/Broken_Hill","start":9092625,"end":9093566},{"filename":"/lib/python3.10/tzdata/zoneinfo/Australia/Canberra","start":9093566,"end":9094470},{"filename":"/lib/python3.10/tzdata/zoneinfo/Australia/Currie","start":9094470,"end":9095473},{"filename":"/lib/python3.10/tzdata/zoneinfo/Australia/Darwin","start":9095473,"end":9095707},{"filename":"/lib/python3.10/tzdata/zoneinfo/Australia/Eucla","start":9095707,"end":9096021},{"filename":"/lib/python3.10/tzdata/zoneinfo/Australia/Hobart","start":9096021,"end":9097024},{"filename":"/lib/python3.10/tzdata/zoneinfo/Australia/LHI","start":9097024,"end":9097716},{"filename":"/lib/python3.10/tzdata/zoneinfo/Australia/Lindeman","start":9097716,"end":9098041},{"filename":"/lib/python3.10/tzdata/zoneinfo/Australia/Lord_Howe","start":9098041,"end":9098733},{"filename":"/lib/python3.10/tzdata/zoneinfo/Australia/Melbourne","start":9098733,"end":9099637},{"filename":"/lib/python3.10/tzdata/zoneinfo/Australia/NSW","start":9099637,"end":9100541},{"filename":"/lib/python3.10/tzdata/zoneinfo/Australia/North","start":9100541,"end":9100775},{"filename":"/lib/python3.10/tzdata/zoneinfo/Australia/Perth","start":9100775,"end":9101081},{"filename":"/lib/python3.10/tzdata/zoneinfo/Australia/Queensland","start":9101081,"end":9101370},{"filename":"/lib/python3.10/tzdata/zoneinfo/Australia/South","start":9101370,"end":9102291},{"filename":"/lib/python3.10/tzdata/zoneinfo/Australia/Sydney","start":9102291,"end":9103195},{"filename":"/lib/python3.10/tzdata/zoneinfo/Australia/Tasmania","start":9103195,"end":9104198},{"filename":"/lib/python3.10/tzdata/zoneinfo/Australia/Victoria","start":9104198,"end":9105102},{"filename":"/lib/python3.10/tzdata/zoneinfo/Australia/West","start":9105102,"end":9105408},{"filename":"/lib/python3.10/tzdata/zoneinfo/Australia/Yancowinna","start":9105408,"end":9106349},{"filename":"/lib/python3.10/tzdata/zoneinfo/Australia/__init__.py","start":9106349,"end":9106349},{"filename":"/lib/python3.10/tzdata/zoneinfo/Brazil/Acre","start":9106349,"end":9106767},{"filename":"/lib/python3.10/tzdata/zoneinfo/Brazil/DeNoronha","start":9106767,"end":9107251},{"filename":"/lib/python3.10/tzdata/zoneinfo/Brazil/East","start":9107251,"end":9108203},{"filename":"/lib/python3.10/tzdata/zoneinfo/Brazil/West","start":9108203,"end":9108615},{"filename":"/lib/python3.10/tzdata/zoneinfo/Brazil/__init__.py","start":9108615,"end":9108615},{"filename":"/lib/python3.10/tzdata/zoneinfo/Canada/Atlantic","start":9108615,"end":9110287},{"filename":"/lib/python3.10/tzdata/zoneinfo/Canada/Central","start":9110287,"end":9111581},{"filename":"/lib/python3.10/tzdata/zoneinfo/Canada/Eastern","start":9111581,"end":9113298},{"filename":"/lib/python3.10/tzdata/zoneinfo/Canada/Mountain","start":9113298,"end":9114268},{"filename":"/lib/python3.10/tzdata/zoneinfo/Canada/Newfoundland","start":9114268,"end":9116146},{"filename":"/lib/python3.10/tzdata/zoneinfo/Canada/Pacific","start":9116146,"end":9117476},{"filename":"/lib/python3.10/tzdata/zoneinfo/Canada/Saskatchewan","start":9117476,"end":9118114},{"filename":"/lib/python3.10/tzdata/zoneinfo/Canada/Yukon","start":9118114,"end":9119143},{"filename":"/lib/python3.10/tzdata/zoneinfo/Canada/__init__.py","start":9119143,"end":9119143},{"filename":"/lib/python3.10/tzdata/zoneinfo/Chile/Continental","start":9119143,"end":9120425},{"filename":"/lib/python3.10/tzdata/zoneinfo/Chile/EasterIsland","start":9120425,"end":9121527},{"filename":"/lib/python3.10/tzdata/zoneinfo/Chile/__init__.py","start":9121527,"end":9121527},{"filename":"/lib/python3.10/tzdata/zoneinfo/Etc/GMT","start":9121527,"end":9121638},{"filename":"/lib/python3.10/tzdata/zoneinfo/Etc/GMT+0","start":9121638,"end":9121749},{"filename":"/lib/python3.10/tzdata/zoneinfo/Etc/GMT+1","start":9121749,"end":9121862},{"filename":"/lib/python3.10/tzdata/zoneinfo/Etc/GMT+10","start":9121862,"end":9121976},{"filename":"/lib/python3.10/tzdata/zoneinfo/Etc/GMT+11","start":9121976,"end":9122090},{"filename":"/lib/python3.10/tzdata/zoneinfo/Etc/GMT+12","start":9122090,"end":9122204},{"filename":"/lib/python3.10/tzdata/zoneinfo/Etc/GMT+2","start":9122204,"end":9122317},{"filename":"/lib/python3.10/tzdata/zoneinfo/Etc/GMT+3","start":9122317,"end":9122430},{"filename":"/lib/python3.10/tzdata/zoneinfo/Etc/GMT+4","start":9122430,"end":9122543},{"filename":"/lib/python3.10/tzdata/zoneinfo/Etc/GMT+5","start":9122543,"end":9122656},{"filename":"/lib/python3.10/tzdata/zoneinfo/Etc/GMT+6","start":9122656,"end":9122769},{"filename":"/lib/python3.10/tzdata/zoneinfo/Etc/GMT+7","start":9122769,"end":9122882},{"filename":"/lib/python3.10/tzdata/zoneinfo/Etc/GMT+8","start":9122882,"end":9122995},{"filename":"/lib/python3.10/tzdata/zoneinfo/Etc/GMT+9","start":9122995,"end":9123108},{"filename":"/lib/python3.10/tzdata/zoneinfo/Etc/GMT-0","start":9123108,"end":9123219},{"filename":"/lib/python3.10/tzdata/zoneinfo/Etc/GMT-1","start":9123219,"end":9123333},{"filename":"/lib/python3.10/tzdata/zoneinfo/Etc/GMT-10","start":9123333,"end":9123448},{"filename":"/lib/python3.10/tzdata/zoneinfo/Etc/GMT-11","start":9123448,"end":9123563},{"filename":"/lib/python3.10/tzdata/zoneinfo/Etc/GMT-12","start":9123563,"end":9123678},{"filename":"/lib/python3.10/tzdata/zoneinfo/Etc/GMT-13","start":9123678,"end":9123793},{"filename":"/lib/python3.10/tzdata/zoneinfo/Etc/GMT-14","start":9123793,"end":9123908},{"filename":"/lib/python3.10/tzdata/zoneinfo/Etc/GMT-2","start":9123908,"end":9124022},{"filename":"/lib/python3.10/tzdata/zoneinfo/Etc/GMT-3","start":9124022,"end":9124136},{"filename":"/lib/python3.10/tzdata/zoneinfo/Etc/GMT-4","start":9124136,"end":9124250},{"filename":"/lib/python3.10/tzdata/zoneinfo/Etc/GMT-5","start":9124250,"end":9124364},{"filename":"/lib/python3.10/tzdata/zoneinfo/Etc/GMT-6","start":9124364,"end":9124478},{"filename":"/lib/python3.10/tzdata/zoneinfo/Etc/GMT-7","start":9124478,"end":9124592},{"filename":"/lib/python3.10/tzdata/zoneinfo/Etc/GMT-8","start":9124592,"end":9124706},{"filename":"/lib/python3.10/tzdata/zoneinfo/Etc/GMT-9","start":9124706,"end":9124820},{"filename":"/lib/python3.10/tzdata/zoneinfo/Etc/GMT0","start":9124820,"end":9124931},{"filename":"/lib/python3.10/tzdata/zoneinfo/Etc/Greenwich","start":9124931,"end":9125042},{"filename":"/lib/python3.10/tzdata/zoneinfo/Etc/UCT","start":9125042,"end":9125153},{"filename":"/lib/python3.10/tzdata/zoneinfo/Etc/UTC","start":9125153,"end":9125264},{"filename":"/lib/python3.10/tzdata/zoneinfo/Etc/Universal","start":9125264,"end":9125375},{"filename":"/lib/python3.10/tzdata/zoneinfo/Etc/Zulu","start":9125375,"end":9125486},{"filename":"/lib/python3.10/tzdata/zoneinfo/Etc/__init__.py","start":9125486,"end":9125486},{"filename":"/lib/python3.10/tzdata/zoneinfo/Europe/Amsterdam","start":9125486,"end":9126557},{"filename":"/lib/python3.10/tzdata/zoneinfo/Europe/Andorra","start":9126557,"end":9126946},{"filename":"/lib/python3.10/tzdata/zoneinfo/Europe/Astrakhan","start":9126946,"end":9127672},{"filename":"/lib/python3.10/tzdata/zoneinfo/Europe/Athens","start":9127672,"end":9128354},{"filename":"/lib/python3.10/tzdata/zoneinfo/Europe/Belfast","start":9128354,"end":9129953},{"filename":"/lib/python3.10/tzdata/zoneinfo/Europe/Belgrade","start":9129953,"end":9130431},{"filename":"/lib/python3.10/tzdata/zoneinfo/Europe/Berlin","start":9130431,"end":9131136},{"filename":"/lib/python3.10/tzdata/zoneinfo/Europe/Bratislava","start":9131136,"end":9131859},{"filename":"/lib/python3.10/tzdata/zoneinfo/Europe/Brussels","start":9131859,"end":9132962},{"filename":"/lib/python3.10/tzdata/zoneinfo/Europe/Bucharest","start":9132962,"end":9133623},{"filename":"/lib/python3.10/tzdata/zoneinfo/Europe/Budapest","start":9133623,"end":9134389},{"filename":"/lib/python3.10/tzdata/zoneinfo/Europe/Busingen","start":9134389,"end":9134886},{"filename":"/lib/python3.10/tzdata/zoneinfo/Europe/Chisinau","start":9134886,"end":9135641},{"filename":"/lib/python3.10/tzdata/zoneinfo/Europe/Copenhagen","start":9135641,"end":9136264},{"filename":"/lib/python3.10/tzdata/zoneinfo/Europe/Dublin","start":9136264,"end":9137760},{"filename":"/lib/python3.10/tzdata/zoneinfo/Europe/Gibraltar","start":9137760,"end":9138980},{"filename":"/lib/python3.10/tzdata/zoneinfo/Europe/Guernsey","start":9138980,"end":9140579},{"filename":"/lib/python3.10/tzdata/zoneinfo/Europe/Helsinki","start":9140579,"end":9141060},{"filename":"/lib/python3.10/tzdata/zoneinfo/Europe/Isle_of_Man","start":9141060,"end":9142659},{"filename":"/lib/python3.10/tzdata/zoneinfo/Europe/Istanbul","start":9142659,"end":9143859},{"filename":"/lib/python3.10/tzdata/zoneinfo/Europe/Jersey","start":9143859,"end":9145458},{"filename":"/lib/python3.10/tzdata/zoneinfo/Europe/Kaliningrad","start":9145458,"end":9146362},{"filename":"/lib/python3.10/tzdata/zoneinfo/Europe/Kiev","start":9146362,"end":9146920},{"filename":"/lib/python3.10/tzdata/zoneinfo/Europe/Kirov","start":9146920,"end":9147637},{"filename":"/lib/python3.10/tzdata/zoneinfo/Europe/Lisbon","start":9147637,"end":9149091},{"filename":"/lib/python3.10/tzdata/zoneinfo/Europe/Ljubljana","start":9149091,"end":9149569},{"filename":"/lib/python3.10/tzdata/zoneinfo/Europe/London","start":9149569,"end":9151168},{"filename":"/lib/python3.10/tzdata/zoneinfo/Europe/Luxembourg","start":9151168,"end":9152255},{"filename":"/lib/python3.10/tzdata/zoneinfo/Europe/Madrid","start":9152255,"end":9153152},{"filename":"/lib/python3.10/tzdata/zoneinfo/Europe/Malta","start":9153152,"end":9154080},{"filename":"/lib/python3.10/tzdata/zoneinfo/Europe/Mariehamn","start":9154080,"end":9154561},{"filename":"/lib/python3.10/tzdata/zoneinfo/Europe/Minsk","start":9154561,"end":9155369},{"filename":"/lib/python3.10/tzdata/zoneinfo/Europe/Monaco","start":9155369,"end":9156483},{"filename":"/lib/python3.10/tzdata/zoneinfo/Europe/Moscow","start":9156483,"end":9157391},{"filename":"/lib/python3.10/tzdata/zoneinfo/Europe/Nicosia","start":9157391,"end":9157988},{"filename":"/lib/python3.10/tzdata/zoneinfo/Europe/Oslo","start":9157988,"end":9158664},{"filename":"/lib/python3.10/tzdata/zoneinfo/Europe/Paris","start":9158664,"end":9159769},{"filename":"/lib/python3.10/tzdata/zoneinfo/Europe/Podgorica","start":9159769,"end":9160247},{"filename":"/lib/python3.10/tzdata/zoneinfo/Europe/Prague","start":9160247,"end":9160970},{"filename":"/lib/python3.10/tzdata/zoneinfo/Europe/Riga","start":9160970,"end":9161664},{"filename":"/lib/python3.10/tzdata/zoneinfo/Europe/Rome","start":9161664,"end":9162611},{"filename":"/lib/python3.10/tzdata/zoneinfo/Europe/Samara","start":9162611,"end":9163343},{"filename":"/lib/python3.10/tzdata/zoneinfo/Europe/San_Marino","start":9163343,"end":9164290},{"filename":"/lib/python3.10/tzdata/zoneinfo/Europe/Sarajevo","start":9164290,"end":9164768},{"filename":"/lib/python3.10/tzdata/zoneinfo/Europe/Saratov","start":9164768,"end":9165494},{"filename":"/lib/python3.10/tzdata/zoneinfo/Europe/Simferopol","start":9165494,"end":9166359},{"filename":"/lib/python3.10/tzdata/zoneinfo/Europe/Skopje","start":9166359,"end":9166837},{"filename":"/lib/python3.10/tzdata/zoneinfo/Europe/Sofia","start":9166837,"end":9167429},{"filename":"/lib/python3.10/tzdata/zoneinfo/Europe/Stockholm","start":9167429,"end":9167926},{"filename":"/lib/python3.10/tzdata/zoneinfo/Europe/Tallinn","start":9167926,"end":9168601},{"filename":"/lib/python3.10/tzdata/zoneinfo/Europe/Tirane","start":9168601,"end":9169205},{"filename":"/lib/python3.10/tzdata/zoneinfo/Europe/Tiraspol","start":9169205,"end":9169960},{"filename":"/lib/python3.10/tzdata/zoneinfo/Europe/Ulyanovsk","start":9169960,"end":9170720},{"filename":"/lib/python3.10/tzdata/zoneinfo/Europe/Uzhgorod","start":9170720,"end":9171259},{"filename":"/lib/python3.10/tzdata/zoneinfo/Europe/Vaduz","start":9171259,"end":9171756},{"filename":"/lib/python3.10/tzdata/zoneinfo/Europe/Vatican","start":9171756,"end":9172703},{"filename":"/lib/python3.10/tzdata/zoneinfo/Europe/Vienna","start":9172703,"end":9173361},{"filename":"/lib/python3.10/tzdata/zoneinfo/Europe/Vilnius","start":9173361,"end":9174037},{"filename":"/lib/python3.10/tzdata/zoneinfo/Europe/Volgograd","start":9174037,"end":9174772},{"filename":"/lib/python3.10/tzdata/zoneinfo/Europe/Warsaw","start":9174772,"end":9175695},{"filename":"/lib/python3.10/tzdata/zoneinfo/Europe/Zagreb","start":9175695,"end":9176173},{"filename":"/lib/python3.10/tzdata/zoneinfo/Europe/Zaporozhye","start":9176173,"end":9176742},{"filename":"/lib/python3.10/tzdata/zoneinfo/Europe/Zurich","start":9176742,"end":9177239},{"filename":"/lib/python3.10/tzdata/zoneinfo/Europe/__init__.py","start":9177239,"end":9177239},{"filename":"/lib/python3.10/tzdata/zoneinfo/Indian/Antananarivo","start":9177239,"end":9177430},{"filename":"/lib/python3.10/tzdata/zoneinfo/Indian/Chagos","start":9177430,"end":9177582},{"filename":"/lib/python3.10/tzdata/zoneinfo/Indian/Christmas","start":9177582,"end":9177715},{"filename":"/lib/python3.10/tzdata/zoneinfo/Indian/Cocos","start":9177715,"end":9177855},{"filename":"/lib/python3.10/tzdata/zoneinfo/Indian/Comoro","start":9177855,"end":9178046},{"filename":"/lib/python3.10/tzdata/zoneinfo/Indian/Kerguelen","start":9178046,"end":9178179},{"filename":"/lib/python3.10/tzdata/zoneinfo/Indian/Mahe","start":9178179,"end":9178312},{"filename":"/lib/python3.10/tzdata/zoneinfo/Indian/Maldives","start":9178312,"end":9178464},{"filename":"/lib/python3.10/tzdata/zoneinfo/Indian/Mauritius","start":9178464,"end":9178643},{"filename":"/lib/python3.10/tzdata/zoneinfo/Indian/Mayotte","start":9178643,"end":9178834},{"filename":"/lib/python3.10/tzdata/zoneinfo/Indian/Reunion","start":9178834,"end":9178967},{"filename":"/lib/python3.10/tzdata/zoneinfo/Indian/__init__.py","start":9178967,"end":9178967},{"filename":"/lib/python3.10/tzdata/zoneinfo/Mexico/BajaNorte","start":9178967,"end":9179992},{"filename":"/lib/python3.10/tzdata/zoneinfo/Mexico/BajaSur","start":9179992,"end":9180359},{"filename":"/lib/python3.10/tzdata/zoneinfo/Mexico/General","start":9180359,"end":9180771},{"filename":"/lib/python3.10/tzdata/zoneinfo/Mexico/__init__.py","start":9180771,"end":9180771},{"filename":"/lib/python3.10/tzdata/zoneinfo/Pacific/Apia","start":9180771,"end":9181178},{"filename":"/lib/python3.10/tzdata/zoneinfo/Pacific/Auckland","start":9181178,"end":9182221},{"filename":"/lib/python3.10/tzdata/zoneinfo/Pacific/Bougainville","start":9182221,"end":9182422},{"filename":"/lib/python3.10/tzdata/zoneinfo/Pacific/Chatham","start":9182422,"end":9183230},{"filename":"/lib/python3.10/tzdata/zoneinfo/Pacific/Chuuk","start":9183230,"end":9183425},{"filename":"/lib/python3.10/tzdata/zoneinfo/Pacific/Easter","start":9183425,"end":9184527},{"filename":"/lib/python3.10/tzdata/zoneinfo/Pacific/Efate","start":9184527,"end":9184869},{"filename":"/lib/python3.10/tzdata/zoneinfo/Pacific/Enderbury","start":9184869,"end":9185041},{"filename":"/lib/python3.10/tzdata/zoneinfo/Pacific/Fakaofo","start":9185041,"end":9185194},{"filename":"/lib/python3.10/tzdata/zoneinfo/Pacific/Fiji","start":9185194,"end":9185622},{"filename":"/lib/python3.10/tzdata/zoneinfo/Pacific/Funafuti","start":9185622,"end":9185756},{"filename":"/lib/python3.10/tzdata/zoneinfo/Pacific/Galapagos","start":9185756,"end":9185931},{"filename":"/lib/python3.10/tzdata/zoneinfo/Pacific/Gambier","start":9185931,"end":9186063},{"filename":"/lib/python3.10/tzdata/zoneinfo/Pacific/Guadalcanal","start":9186063,"end":9186197},{"filename":"/lib/python3.10/tzdata/zoneinfo/Pacific/Guam","start":9186197,"end":9186547},{"filename":"/lib/python3.10/tzdata/zoneinfo/Pacific/Honolulu","start":9186547,"end":9186768},{"filename":"/lib/python3.10/tzdata/zoneinfo/Pacific/Johnston","start":9186768,"end":9186989},{"filename":"/lib/python3.10/tzdata/zoneinfo/Pacific/Kanton","start":9186989,"end":9187161},{"filename":"/lib/python3.10/tzdata/zoneinfo/Pacific/Kiritimati","start":9187161,"end":9187335},{"filename":"/lib/python3.10/tzdata/zoneinfo/Pacific/Kosrae","start":9187335,"end":9187577},{"filename":"/lib/python3.10/tzdata/zoneinfo/Pacific/Kwajalein","start":9187577,"end":9187796},{"filename":"/lib/python3.10/tzdata/zoneinfo/Pacific/Majuro","start":9187796,"end":9188014},{"filename":"/lib/python3.10/tzdata/zoneinfo/Pacific/Marquesas","start":9188014,"end":9188153},{"filename":"/lib/python3.10/tzdata/zoneinfo/Pacific/Midway","start":9188153,"end":9188299},{"filename":"/lib/python3.10/tzdata/zoneinfo/Pacific/Nauru","start":9188299,"end":9188482},{"filename":"/lib/python3.10/tzdata/zoneinfo/Pacific/Niue","start":9188482,"end":9188636},{"filename":"/lib/python3.10/tzdata/zoneinfo/Pacific/Norfolk","start":9188636,"end":9188883},{"filename":"/lib/python3.10/tzdata/zoneinfo/Pacific/Noumea","start":9188883,"end":9189081},{"filename":"/lib/python3.10/tzdata/zoneinfo/Pacific/Pago_Pago","start":9189081,"end":9189227},{"filename":"/lib/python3.10/tzdata/zoneinfo/Pacific/Palau","start":9189227,"end":9189375},{"filename":"/lib/python3.10/tzdata/zoneinfo/Pacific/Pitcairn","start":9189375,"end":9189528},{"filename":"/lib/python3.10/tzdata/zoneinfo/Pacific/Pohnpei","start":9189528,"end":9189742},{"filename":"/lib/python3.10/tzdata/zoneinfo/Pacific/Ponape","start":9189742,"end":9189956},{"filename":"/lib/python3.10/tzdata/zoneinfo/Pacific/Port_Moresby","start":9189956,"end":9190110},{"filename":"/lib/python3.10/tzdata/zoneinfo/Pacific/Rarotonga","start":9190110,"end":9190516},{"filename":"/lib/python3.10/tzdata/zoneinfo/Pacific/Saipan","start":9190516,"end":9190866},{"filename":"/lib/python3.10/tzdata/zoneinfo/Pacific/Samoa","start":9190866,"end":9191012},{"filename":"/lib/python3.10/tzdata/zoneinfo/Pacific/Tahiti","start":9191012,"end":9191145},{"filename":"/lib/python3.10/tzdata/zoneinfo/Pacific/Tarawa","start":9191145,"end":9191279},{"filename":"/lib/python3.10/tzdata/zoneinfo/Pacific/Tongatapu","start":9191279,"end":9191516},{"filename":"/lib/python3.10/tzdata/zoneinfo/Pacific/Truk","start":9191516,"end":9191711},{"filename":"/lib/python3.10/tzdata/zoneinfo/Pacific/Wake","start":9191711,"end":9191845},{"filename":"/lib/python3.10/tzdata/zoneinfo/Pacific/Wallis","start":9191845,"end":9191979},{"filename":"/lib/python3.10/tzdata/zoneinfo/Pacific/Yap","start":9191979,"end":9192174},{"filename":"/lib/python3.10/tzdata/zoneinfo/Pacific/__init__.py","start":9192174,"end":9192174},{"filename":"/lib/python3.10/tzdata/zoneinfo/US/Alaska","start":9192174,"end":9193151},{"filename":"/lib/python3.10/tzdata/zoneinfo/US/Aleutian","start":9193151,"end":9194120},{"filename":"/lib/python3.10/tzdata/zoneinfo/US/Arizona","start":9194120,"end":9194360},{"filename":"/lib/python3.10/tzdata/zoneinfo/US/Central","start":9194360,"end":9196114},{"filename":"/lib/python3.10/tzdata/zoneinfo/US/East-Indiana","start":9196114,"end":9196645},{"filename":"/lib/python3.10/tzdata/zoneinfo/US/Eastern","start":9196645,"end":9198389},{"filename":"/lib/python3.10/tzdata/zoneinfo/US/Hawaii","start":9198389,"end":9198610},{"filename":"/lib/python3.10/tzdata/zoneinfo/US/Indiana-Starke","start":9198610,"end":9199626},{"filename":"/lib/python3.10/tzdata/zoneinfo/US/Michigan","start":9199626,"end":9200525},{"filename":"/lib/python3.10/tzdata/zoneinfo/US/Mountain","start":9200525,"end":9201567},{"filename":"/lib/python3.10/tzdata/zoneinfo/US/Pacific","start":9201567,"end":9202861},{"filename":"/lib/python3.10/tzdata/zoneinfo/US/Samoa","start":9202861,"end":9203007},{"filename":"/lib/python3.10/tzdata/zoneinfo/US/__init__.py","start":9203007,"end":9203007},{"filename":"/lib/python3.10/unittest/__init__.py","start":9203007,"end":9206768},{"filename":"/lib/python3.10/unittest/__main__.py","start":9206768,"end":9207240},{"filename":"/lib/python3.10/unittest/_log.py","start":9207240,"end":9209986},{"filename":"/lib/python3.10/unittest/async_case.py","start":9209986,"end":9216207},{"filename":"/lib/python3.10/unittest/case.py","start":9216207,"end":9273769},{"filename":"/lib/python3.10/unittest/loader.py","start":9273769,"end":9296471},{"filename":"/lib/python3.10/unittest/main.py","start":9296471,"end":9307709},{"filename":"/lib/python3.10/unittest/mock.py","start":9307709,"end":9409795},{"filename":"/lib/python3.10/unittest/result.py","start":9409795,"end":9417264},{"filename":"/lib/python3.10/unittest/runner.py","start":9417264,"end":9425315},{"filename":"/lib/python3.10/unittest/signals.py","start":9425315,"end":9427718},{"filename":"/lib/python3.10/unittest/suite.py","start":9427718,"end":9441230},{"filename":"/lib/python3.10/unittest/util.py","start":9441230,"end":9446445},{"filename":"/lib/python3.10/urllib/__init__.py","start":9446445,"end":9446445},{"filename":"/lib/python3.10/urllib/error.py","start":9446445,"end":9449077},{"filename":"/lib/python3.10/urllib/parse.py","start":9449077,"end":9491355},{"filename":"/lib/python3.10/urllib/request.py","start":9491355,"end":9592745},{"filename":"/lib/python3.10/urllib/response.py","start":9592745,"end":9595106},{"filename":"/lib/python3.10/urllib/robotparser.py","start":9595106,"end":9604530},{"filename":"/lib/python3.10/wsgiref/__init__.py","start":9604530,"end":9605117},{"filename":"/lib/python3.10/wsgiref/handlers.py","start":9605117,"end":9626786},{"filename":"/lib/python3.10/wsgiref/headers.py","start":9626786,"end":9633552},{"filename":"/lib/python3.10/wsgiref/simple_server.py","start":9633552,"end":9638723},{"filename":"/lib/python3.10/wsgiref/util.py","start":9638723,"end":9644574},{"filename":"/lib/python3.10/wsgiref/validate.py","start":9644574,"end":9659673},{"filename":"/lib/python3.10/xml/__init__.py","start":9659673,"end":9660230},{"filename":"/lib/python3.10/xml/dom/NodeFilter.py","start":9660230,"end":9661166},{"filename":"/lib/python3.10/xml/dom/__init__.py","start":9661166,"end":9665185},{"filename":"/lib/python3.10/xml/dom/domreg.py","start":9665185,"end":9668636},{"filename":"/lib/python3.10/xml/dom/expatbuilder.py","start":9668636,"end":9704403},{"filename":"/lib/python3.10/xml/dom/minicompat.py","start":9704403,"end":9707770},{"filename":"/lib/python3.10/xml/dom/minidom.py","start":9707770,"end":9775836},{"filename":"/lib/python3.10/xml/dom/pulldom.py","start":9775836,"end":9787833},{"filename":"/lib/python3.10/xml/dom/xmlbuilder.py","start":9787833,"end":9800220},{"filename":"/lib/python3.10/xml/etree/ElementInclude.py","start":9800220,"end":9807102},{"filename":"/lib/python3.10/xml/etree/ElementPath.py","start":9807102,"end":9821109},{"filename":"/lib/python3.10/xml/etree/ElementTree.py","start":9821109,"end":9895045},{"filename":"/lib/python3.10/xml/etree/__init__.py","start":9895045,"end":9896650},{"filename":"/lib/python3.10/xml/etree/cElementTree.py","start":9896650,"end":9896732},{"filename":"/lib/python3.10/xml/parsers/__init__.py","start":9896732,"end":9896899},{"filename":"/lib/python3.10/xml/parsers/expat.py","start":9896899,"end":9897147},{"filename":"/lib/python3.10/xml/sax/__init__.py","start":9897147,"end":9900789},{"filename":"/lib/python3.10/xml/sax/_exceptions.py","start":9900789,"end":9905574},{"filename":"/lib/python3.10/xml/sax/expatreader.py","start":9905574,"end":9921301},{"filename":"/lib/python3.10/xml/sax/handler.py","start":9921301,"end":9936918},{"filename":"/lib/python3.10/xml/sax/saxutils.py","start":9936918,"end":9949173},{"filename":"/lib/python3.10/xml/sax/xmlreader.py","start":9949173,"end":9961857},{"filename":"/lib/python3.10/xmlrpc/__init__.py","start":9961857,"end":9961895},{"filename":"/lib/python3.10/xmlrpc/client.py","start":9961895,"end":10011286},{"filename":"/lib/python3.10/xmlrpc/server.py","start":10011286,"end":10047958},{"filename":"/lib/python3.10/zoneinfo/__init__.py","start":10047958,"end":10048661},{"filename":"/lib/python3.10/zoneinfo/_common.py","start":10048661,"end":10053946},{"filename":"/lib/python3.10/zoneinfo/_tzpath.py","start":10053946,"end":10059027},{"filename":"/lib/python3.10/zoneinfo/_zoneinfo.py","start":10059027,"end":10083345},{"filename":"/lib/python3.10/webbrowser.py","start":10083345,"end":10083712}],"remote_package_size":5394245,"package_uuid":"b90888e8-366e-4159-955c-b9020d3ab63f"})})();const API=Module.API;const Hiwire=Module.hiwire;const Tests=API.tests;var moduleOverrides={};var key;for(key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var arguments_=[];var thisProgram="./this.program";var quit_=function(status,toThrow){throw toThrow};var ENVIRONMENT_IS_WEB=typeof window==="object";var ENVIRONMENT_IS_WORKER=typeof importScripts==="function";var ENVIRONMENT_IS_NODE=typeof process==="object"&&typeof process.versions==="object"&&typeof process.versions.node==="string";var ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;var nodeFS;var nodePath;if(ENVIRONMENT_IS_NODE){if(ENVIRONMENT_IS_WORKER){scriptDirectory=require("path").dirname(scriptDirectory)+"/"}else{scriptDirectory=__dirname+"/"}read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);return nodeFS["readFileSync"](filename,binary?null:"utf8")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};readAsync=function readAsync(filename,onload,onerror){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);nodeFS["readFile"](filename,function(err,data){if(err)onerror(err);else onload(data.buffer)})};if(process["argv"].length>1){thisProgram=process["argv"][1].replace(/\\/g,"/")}arguments_=process["argv"].slice(2);process["on"]("uncaughtException",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process["on"]("unhandledRejection",abort);quit_=function(status,toThrow){if(keepRuntimeAlive()){process["exitCode"]=status;throw toThrow}process["exit"](status)};Module["inspect"]=function(){return"[Emscripten Module object]"}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!=="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(_scriptDir){scriptDirectory=_scriptDir}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf("/")+1)}else{scriptDirectory=""}{read_=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];var STACK_ALIGN=16;function getNativeTypeSize(type){switch(type){case"i1":case"i8":return 1;case"i16":return 2;case"i32":return 4;case"i64":return 8;case"float":return 4;case"double":return 8;default:{if(type[type.length-1]==="*"){return 4}else if(type[0]==="i"){var bits=Number(type.substr(1));assert(bits%8===0,"getNativeTypeSize invalid bits "+bits+", type "+type);return bits/8}else{return 0}}}}function warnOnce(text){if(!warnOnce.shown)warnOnce.shown={};if(!warnOnce.shown[text]){warnOnce.shown[text]=1;err(text)}}function convertJsFunctionToWasm(func,sig){if(typeof WebAssembly.Function==="function"){var typeNames={"i":"i32","j":"i64","f":"f32","d":"f64"};var type={parameters:[],results:sig[0]=="v"?[]:[typeNames[sig[0]]]};for(var i=1;i>0]=value;break;case"i8":HEAP8[ptr>>0]=value;break;case"i16":HEAP16[ptr>>1]=value;break;case"i32":HEAP32[ptr>>2]=value;break;case"i64":tempI64=[value>>>0,(tempDouble=value,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[ptr>>2]=tempI64[0],HEAP32[ptr+4>>2]=tempI64[1];break;case"float":HEAPF32[ptr>>2]=value;break;case"double":HEAPF64[ptr>>3]=value;break;default:abort("invalid type for setValue: "+type)}}function getValue(ptr,type,noSafe){type=type||"i8";if(type.charAt(type.length-1)==="*")type="i32";switch(type){case"i1":return HEAP8[ptr>>0];case"i8":return HEAP8[ptr>>0];case"i16":return HEAP16[ptr>>1];case"i32":return HEAP32[ptr>>2];case"i64":return HEAP32[ptr>>2];case"float":return HEAPF32[ptr>>2];case"double":return HEAPF64[ptr>>3];default:abort("invalid type for getValue: "+type)}return null}var wasmMemory;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}function getCFunc(ident){var func=Module["_"+ident];assert(func,"Cannot call unknown function "+ident+", make sure it is exported");return func}function ccall(ident,returnType,argTypes,args,opts){var toC={"string":function(str){var ret=0;if(str!==null&&str!==undefined&&str!==0){var len=(str.length<<2)+1;ret=stackAlloc(len);stringToUTF8(str,ret,len)}return ret},"array":function(arr){var ret=stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret}};function convertReturnValue(ret){if(returnType==="string")return UTF8ToString(ret);if(returnType==="boolean")return Boolean(ret);return ret}var func=getCFunc(ident);var cArgs=[];var stack=0;if(args){for(var i=0;i=endIdx))++endPtr;if(endPtr-idx>16&&heap.subarray&&UTF8Decoder){return UTF8Decoder.decode(heap.subarray(idx,endPtr))}else{var str="";while(idx>10,56320|ch&1023)}}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}function AsciiToString(ptr){var str="";while(1){var ch=HEAPU8[ptr++>>0];if(!ch)return str;str+=String.fromCharCode(ch)}}function stringToAscii(str,outPtr){return writeAsciiToMemory(str,outPtr,false)}var UTF16Decoder=typeof TextDecoder!=="undefined"?new TextDecoder("utf-16le"):undefined;function UTF16ToString(ptr,maxBytesToRead){var endPtr=ptr;var idx=endPtr>>1;var maxIdx=idx+maxBytesToRead/2;while(!(idx>=maxIdx)&&HEAPU16[idx])++idx;endPtr=idx<<1;if(endPtr-ptr>32&&UTF16Decoder){return UTF16Decoder.decode(HEAPU8.subarray(ptr,endPtr))}else{var str="";for(var i=0;!(i>=maxBytesToRead/2);++i){var codeUnit=HEAP16[ptr+i*2>>1];if(codeUnit==0)break;str+=String.fromCharCode(codeUnit)}return str}}function stringToUTF16(str,outPtr,maxBytesToWrite){if(maxBytesToWrite===undefined){maxBytesToWrite=2147483647}if(maxBytesToWrite<2)return 0;maxBytesToWrite-=2;var startPtr=outPtr;var numCharsToWrite=maxBytesToWrite>1]=codeUnit;outPtr+=2}HEAP16[outPtr>>1]=0;return outPtr-startPtr}function lengthBytesUTF16(str){return str.length*2}function UTF32ToString(ptr,maxBytesToRead){var i=0;var str="";while(!(i>=maxBytesToRead/4)){var utf32=HEAP32[ptr+i*4>>2];if(utf32==0)break;++i;if(utf32>=65536){var ch=utf32-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}else{str+=String.fromCharCode(utf32)}}return str}function stringToUTF32(str,outPtr,maxBytesToWrite){if(maxBytesToWrite===undefined){maxBytesToWrite=2147483647}if(maxBytesToWrite<4)return 0;var startPtr=outPtr;var endPtr=startPtr+maxBytesToWrite-4;for(var i=0;i=55296&&codeUnit<=57343){var trailSurrogate=str.charCodeAt(++i);codeUnit=65536+((codeUnit&1023)<<10)|trailSurrogate&1023}HEAP32[outPtr>>2]=codeUnit;outPtr+=4;if(outPtr+4>endPtr)break}HEAP32[outPtr>>2]=0;return outPtr-startPtr}function lengthBytesUTF32(str){var len=0;for(var i=0;i=55296&&codeUnit<=57343)++i;len+=4}return len}function allocateUTF8(str){var size=lengthBytesUTF8(str)+1;var ret=_malloc(size);if(ret)stringToUTF8Array(str,HEAP8,ret,size);return ret}function allocateUTF8OnStack(str){var size=lengthBytesUTF8(str)+1;var ret=stackAlloc(size);stringToUTF8Array(str,HEAP8,ret,size);return ret}function writeStringToMemory(string,buffer,dontAddNull){warnOnce("writeStringToMemory is deprecated and should not be called! Use stringToUTF8() instead!");var lastChar,end;if(dontAddNull){end=buffer+lengthBytesUTF8(string);lastChar=HEAP8[end]}stringToUTF8(string,buffer,Infinity);if(dontAddNull)HEAP8[end]=lastChar}function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}function alignUp(x,multiple){if(x%multiple>0){x+=multiple-x%multiple}return x}var HEAP,buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferAndViews(buf){buffer=buf;Module["HEAP8"]=HEAP8=new Int8Array(buf);Module["HEAP16"]=HEAP16=new Int16Array(buf);Module["HEAP32"]=HEAP32=new Int32Array(buf);Module["HEAPU8"]=HEAPU8=new Uint8Array(buf);Module["HEAPU16"]=HEAPU16=new Uint16Array(buf);Module["HEAPU32"]=HEAPU32=new Uint32Array(buf);Module["HEAPF32"]=HEAPF32=new Float32Array(buf);Module["HEAPF64"]=HEAPF64=new Float64Array(buf)}var TOTAL_STACK=5242880;var INITIAL_MEMORY=Module["INITIAL_MEMORY"]||20971520;if(Module["wasmMemory"]){wasmMemory=Module["wasmMemory"]}else{wasmMemory=new WebAssembly.Memory({"initial":INITIAL_MEMORY/65536,"maximum":2147483648/65536})}if(wasmMemory){buffer=wasmMemory.buffer}INITIAL_MEMORY=buffer.byteLength;updateGlobalBufferAndViews(buffer);var wasmTable=new WebAssembly.Table({"initial":7364,"element":"anyfunc"});var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;var runtimeKeepaliveCounter=0;function keepRuntimeAlive(){return noExitRuntime||runtimeKeepaliveCounter>0}function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;if(!Module["noFSInit"]&&!FS.init.initialized)FS.init();FS.ignorePermissions=false;TTY.init();SOCKFS.root=FS.mount(SOCKFS,{},null);PIPEFS.root=FS.mount(PIPEFS,{},null);callRuntimeCallbacks(__ATINIT__)}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){runtimeExited=true}function postRun(){if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPreMain(cb){__ATMAIN__.unshift(cb)}function addOnExit(cb){}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module["preloadedImages"]={};Module["preloadedAudios"]={};Module["preloadedWasm"]={};function abort(what){if(Module["onAbort"]){Module["onAbort"](what)}what+="";err(what);ABORT=true;EXITSTATUS=1;what="abort("+what+"). Build with -s ASSERTIONS=1 for more info.";var e=new WebAssembly.RuntimeError(what);readyPromiseReject(e);throw e}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}function isFileURI(filename){return filename.startsWith("file://")}var wasmBinaryFile;wasmBinaryFile="pyodide.asm.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}else{throw"both async and sync fetching of the wasm failed"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch==="function"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response["ok"]){throw"failed to load wasm binary file at '"+wasmBinaryFile+"'"}return response["arrayBuffer"]()}).catch(function(){return getBinary(wasmBinaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(wasmBinaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={"env":asmLibraryArg,"wasi_snapshot_preview1":asmLibraryArg,"GOT.mem":new Proxy(asmLibraryArg,GOTHandler),"GOT.func":new Proxy(asmLibraryArg,GOTHandler)};function receiveInstance(instance,module){var exports=instance.exports;exports=relocateExports(exports,1024);Module["asm"]=exports;var metadata=getDylinkMetadata(module);if(metadata.neededDynlibs){dynamicLibraries=metadata.neededDynlibs.concat(dynamicLibraries)}mergeLibSymbols(exports,"main");addOnInit(Module["asm"]["__wasm_call_ctors"]);removeRunDependency("wasm-instantiate")}addRunDependency("wasm-instantiate");function receiveInstantiationResult(result){receiveInstance(result["instance"],result["module"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(function(instance){return instance}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming==="function"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch==="function"){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiationResult,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(receiveInstantiationResult)})})}else{return instantiateArrayBuffer(receiveInstantiationResult)}}if(Module["instantiateWasm"]){try{var exports=Module["instantiateWasm"](info,receiveInstance);return exports}catch(e){err("Module.instantiateWasm callback failed with error: "+e);return false}}instantiateAsync().catch(readyPromiseReject);return{}}var tempDouble;var tempI64;var ASM_CONSTS={3106167:function(){throw new Error("intentionally triggered fatal error!")},3106224:function($0){Hiwire.get_value($0)()},3106247:function(){Module.UTF8ToString=UTF8ToString;Module.wasmTable=wasmTable},3106317:function(){throw new Error("Fatal pyodide error")},3106356:function(){throw new Error("Fatal pyodide error")},3106395:function(){throw new Error("Fatal pyodide error")},3106434:function(){throw new Error("Fatal pyodide error")},3106473:function(){throw new Error("Fatal pyodide error")},3106512:function(){throw new Error("Fatal pyodide error")},3106551:function(){throw new Error("Fatal pyodide error")},3106590:function(){throw new Error("Fatal pyodide error")},3106629:function(){throw new Error("Fatal pyodide error")},3106668:function(){throw new Error("Fatal pyodide error")},3106707:function(){throw new Error("Fatal pyodide error")},3106746:function(){throw new Error("Fatal pyodide error")},3106785:function($0){API._pyodide=Hiwire.pop_value($0)},3106826:function($0){if(!$0){AL.alcErr=40964;return 1}},3106874:function($0){err("bad name in alcGetProcAddress: "+UTF8ToString($0))},3106937:function($0){if(!AL.currentCtx){err("alGetProcAddress() called without a valid context");return 1}if(!$0){AL.currentCtx.err=40963;return 1}},3107085:function($0){err("bad name in alGetProcAddress: "+UTF8ToString($0))}};function JsArray_Check(idobj){let obj=Hiwire.get_value(idobj);if(Array.isArray(obj)){return true}let typeTag=Object.prototype.toString.call(obj);if(typeTag==="[object HTMLCollection]"||typeTag==="[object NodeList]"){return true}if(ArrayBuffer.isView(obj)&&obj.constructor.name!=="DataView"){return true}return false}function JsArray_Delete(idobj,idx){"use strict";try{let obj=Hiwire.get_value(idobj);if(idx<0||idx>=obj.length){return-1}obj.splice(idx,1)}catch(e){Module.handle_js_error(e);return-1}return 0}function JsArray_Get(idobj,idx){"use strict";try{let obj=Hiwire.get_value(idobj);let result=obj[idx];if(result===undefined&&!(idx in obj)){return 0}return Hiwire.new_value(result)}catch(e){Module.handle_js_error(e);return 0}throw new Error("Assertion error: control reached end of function without return")}function JsArray_New(){"use strict";try{return Hiwire.new_value([])}catch(e){Module.handle_js_error(e);return 0}throw new Error("Assertion error: control reached end of function without return")}function JsArray_Push(idarr,idval){"use strict";try{Hiwire.get_value(idarr).push(Hiwire.get_value(idval))}catch(e){Module.handle_js_error(e);return-1}return 0}function JsArray_Push_unchecked(idarr,idval){Hiwire.get_value(idarr).push(Hiwire.get_value(idval))}function JsArray_Set(idobj,idx,idval){"use strict";try{Hiwire.get_value(idobj)[idx]=Hiwire.get_value(idval)}catch(e){Module.handle_js_error(e);return-1}return 0}function JsBuffer_DecodeString_js(jsbuffer_id,encoding){"use strict";try{let buffer=Hiwire.get_value(jsbuffer_id);let encoding_js;if(encoding){encoding_js=UTF8ToString(encoding)}let decoder=new TextDecoder(encoding_js,{fatal:!!1});let res;try{res=decoder.decode(buffer)}catch(e){if(e instanceof TypeError){return 0}throw e}return Hiwire.new_value(res)}catch(e){Module.handle_js_error(e);return 0}throw new Error("Assertion error: control reached end of function without return")}function JsMap_New(){"use strict";try{return Hiwire.new_value(new Map)}catch(e){Module.handle_js_error(e);return 0}throw new Error("Assertion error: control reached end of function without return")}function JsMap_Set(mapid,keyid,valueid){"use strict";try{let map=Hiwire.get_value(mapid);let key=Hiwire.get_value(keyid);let value=Hiwire.get_value(valueid);map.set(key,value)}catch(e){Module.handle_js_error(e);return-1}return 0}function JsObject_DeleteString(idobj,ptrkey){"use strict";try{let jsobj=Hiwire.get_value(idobj);let jskey=UTF8ToString(ptrkey);delete jsobj[jskey]}catch(e){Module.handle_js_error(e);return-1}return 0}function JsObject_Dir(idobj){"use strict";try{let jsobj=Hiwire.get_value(idobj);let result=[];do{result.push(...Object.getOwnPropertyNames(jsobj).filter(s=>{let c=s.charCodeAt(0);return c<48||c>57}))}while(jsobj=Object.getPrototypeOf(jsobj));return Hiwire.new_value(result)}catch(e){Module.handle_js_error(e);return 0}throw new Error("Assertion error: control reached end of function without return")}function JsObject_Entries(idobj){"use strict";try{let jsobj=Hiwire.get_value(idobj);return Hiwire.new_value(Object.entries(jsobj))}catch(e){Module.handle_js_error(e);return 0}throw new Error("Assertion error: control reached end of function without return")}function JsObject_GetString(idobj,ptrkey){"use strict";try{let jsobj=Hiwire.get_value(idobj);let jskey=UTF8ToString(ptrkey);let result=jsobj[jskey];if(result===undefined&&!(jskey in jsobj)){return 0}return Hiwire.new_value(result)}catch(e){Module.handle_js_error(e);return 0}throw new Error("Assertion error: control reached end of function without return")}function JsObject_Keys(idobj){"use strict";try{let jsobj=Hiwire.get_value(idobj);return Hiwire.new_value(Object.keys(jsobj))}catch(e){Module.handle_js_error(e);return 0}throw new Error("Assertion error: control reached end of function without return")}function JsObject_New(){"use strict";try{return Hiwire.new_value({})}catch(e){Module.handle_js_error(e);return 0}throw new Error("Assertion error: control reached end of function without return")}function JsObject_SetString(idobj,ptrkey,idval){"use strict";try{let jsobj=Hiwire.get_value(idobj);let jskey=UTF8ToString(ptrkey);let jsval=Hiwire.get_value(idval);jsobj[jskey]=jsval}catch(e){Module.handle_js_error(e);return-1}return 0}function JsObject_Values(idobj){"use strict";try{let jsobj=Hiwire.get_value(idobj);return Hiwire.new_value(Object.values(jsobj))}catch(e){Module.handle_js_error(e);return 0}throw new Error("Assertion error: control reached end of function without return")}function JsProxy_subscript_js(idobj,idkey){"use strict";try{let obj=Hiwire.get_value(idobj);let key=Hiwire.get_value(idkey);let result=obj.get(key);if(result===undefined){if(obj.has&&typeof obj.has==="function"&&!obj.has(key)){return 0}}return Hiwire.new_value(result)}catch(e){Module.handle_js_error(e);return 0}throw new Error("Assertion error: control reached end of function without return")}function JsSet_Add(mapid,keyid){"use strict";try{let set=Hiwire.get_value(mapid);let key=Hiwire.get_value(keyid);set.add(key)}catch(e){Module.handle_js_error(e);return-1}return 0}function JsSet_New(){"use strict";try{return Hiwire.new_value(new Set)}catch(e){Module.handle_js_error(e);return 0}throw new Error("Assertion error: control reached end of function without return")}function JsString_InternFromCString(str){"use strict";try{let jsstring=UTF8ToString(str);return Hiwire.intern_object(jsstring)}catch(e){Module.handle_js_error(e);return 0}throw new Error("Assertion error: control reached end of function without return")}function _JsArray_PostProcess_helper(jscontext,array){"use strict";try{return Hiwire.new_value(Hiwire.get_value(jscontext).dict_converter(Hiwire.get_value(array)))}catch(e){Module.handle_js_error(e);return 0}throw new Error("Assertion error: control reached end of function without return")}function _JsArray_PushEntry_helper(array,key,value){"use strict";try{Hiwire.get_value(array).push([Hiwire.get_value(key),Hiwire.get_value(value)])}catch(e){Module.handle_js_error(e);return-1}return 0}function _Py_CheckEmscriptenSignals_Helper(){if(!Module.Py_EmscriptenSignalBuffer){return 0}try{let result=Module.Py_EmscriptenSignalBuffer[0];Module.Py_EmscriptenSignalBuffer[0]=0;return result}catch(e){return 0}}function _python2js_buffer_inner(buf,itemsize,ndim,format,shape,strides,suboffsets){"use strict";try{let converter=Module.get_converter(format,itemsize);let result=Module._python2js_buffer_recursive(buf,0,{ndim:ndim,format:format,itemsize:itemsize,shape:shape,strides:strides,suboffsets:suboffsets,converter:converter});return Hiwire.new_value(result)}catch(e){Module.handle_js_error(e);return 0}throw new Error("Assertion error: control reached end of function without return")}function array_to_js(array,len){"use strict";try{return Hiwire.new_value(Array.from(HEAP32.subarray(array/4,array/4+len)))}catch(e){Module.handle_js_error(e);return 0}throw new Error("Assertion error: control reached end of function without return")}function console_error(msg){let jsmsg=UTF8ToString(msg);console.error(jsmsg)}function console_error_obj(obj){console.error(Hiwire.get_value(obj))}function create_once_callable(obj){"use strict";try{_Py_IncRef(obj);let alreadyCalled=!!0;function wrapper(...args){if(alreadyCalled){throw new Error("OnceProxy can only be called once")}try{return Module.callPyObject(obj,...args)}finally{wrapper.destroy()}}wrapper.destroy=function(){if(alreadyCalled){throw new Error("OnceProxy has already been destroyed")}alreadyCalled=!!1;Module.finalizationRegistry.unregister(wrapper);_Py_DecRef(obj)};Module.finalizationRegistry.register(wrapper,[obj,undefined],wrapper);return Hiwire.new_value(wrapper)}catch(e){Module.handle_js_error(e);return 0}throw new Error("Assertion error: control reached end of function without return")}function create_promise_handles(handle_result,handle_exception,done_callback_id){"use strict";try{if(handle_result){_Py_IncRef(handle_result)}if(handle_exception){_Py_IncRef(handle_exception)}let done_callback=x=>{};if(done_callback_id){done_callback=Hiwire.get_value(done_callback_id)}let used=!!0;function checkUsed(){if(used){throw new Error("One of the promise handles has already been called.")}}function destroy(){checkUsed();used=!!1;if(handle_result){_Py_DecRef(handle_result)}if(handle_exception){_Py_DecRef(handle_exception)}}function onFulfilled(res){checkUsed();try{if(handle_result){return Module.callPyObject(handle_result,res)}}finally{done_callback(res);destroy()}}function onRejected(err){checkUsed();try{if(handle_exception){return Module.callPyObject(handle_exception,err)}}finally{done_callback(undefined);destroy()}}onFulfilled.destroy=destroy;onRejected.destroy=destroy;return Hiwire.new_value([onFulfilled,onRejected])}catch(e){Module.handle_js_error(e);return 0}throw new Error("Assertion error: control reached end of function without return")}function destroy_proxies(proxies_id,msg_ptr){let msg=undefined;if(msg_ptr){msg=UTF8ToString(msg_ptr)}let proxies=Hiwire.get_value(proxies_id);for(let px of proxies){Module.pyproxy_destroy(px,msg)}}function destroy_proxies_js(proxies_id){"use strict";try{for(let proxy of Hiwire.get_value(proxies_id)){proxy.destroy()}}catch(e){Module.handle_js_error(e);return-1}return 0}function destroy_proxy(proxy_id,msg_ptr){let msg=undefined;if(msg_ptr){msg=UTF8ToString(msg_ptr)}Module.pyproxy_destroy(Module.hiwire.get_value(proxy_id),msg)}function em_call_init_function(f){return Module.wasmTable.get(f)()}function fail_test(){API.fail_test=true}function ffi_call(cif,fn,rvalue,avalue){var abi=HEAPU32[(cif>>2)+0];var nargs=HEAPU32[(cif>>2)+1];var nfixedargs=HEAPU32[(cif>>2)+6];var arg_types_ptr=HEAPU32[(cif>>2)+2];var rtype_unboxed=unbox_small_structs(HEAPU32[(cif>>2)+3]);var rtype_ptr=rtype_unboxed[0];var rtype_id=rtype_unboxed[1];var orig_stack_ptr=stackSave();var cur_stack_ptr=orig_stack_ptr;var args=[];var ret_by_arg=false;if(rtype_id===15){throw new Error("complex ret marshalling nyi")}if(rtype_id<0||rtype_id>15){throw new Error("Unexpected rtype "+rtype_id)}if(rtype_id===4||rtype_id===13){args.push(rvalue);ret_by_arg=true}for(var i=0;i>2)+i];var arg_unboxed=unbox_small_structs(HEAPU32[(arg_types_ptr>>2)+i]);var arg_type_ptr=arg_unboxed[0];var arg_type_id=arg_unboxed[1];switch(arg_type_id){case 1:case 10:case 9:case 14:args.push(HEAPU32[(arg_ptr>>2)+0]);break;case 2:args.push(HEAPF32[(arg_ptr>>2)+0]);break;case 3:args.push(HEAPF64[(arg_ptr>>3)+0]);break;case 5:args.push(HEAPU8[arg_ptr+0]);break;case 6:args.push(HEAP8[arg_ptr+0]);break;case 7:args.push(HEAPU16[(arg_ptr>>1)+0]);break;case 8:args.push(HEAP16[(arg_ptr>>1)+0]);break;case 11:case 12:args.push(BigInt(HEAPU32[(arg_ptr>>2)+0*2])|BigInt(HEAPU32[(arg_ptr>>2)+0*2+1])<>2)+0*2])|BigInt(HEAPU32[(arg_ptr>>2)+0*2+1])<>2)+1*2])|BigInt(HEAPU32[(arg_ptr>>2)+1*2+1])<>2)+0];var align=HEAPU16[(arg_type_ptr+4>>1)+0];cur_stack_ptr-=size,cur_stack_ptr&=~(align-1);HEAP8.subarray(cur_stack_ptr,cur_stack_ptr+size).set(HEAP8.subarray(arg_ptr,arg_ptr+size));args.push(cur_stack_ptr);break;case 15:throw new Error("complex marshalling nyi");default:throw new Error("Unexpected type "+arg_type_id)}}if(nfixedargs!=nargs){var struct_arg_info=[];for(var i=nargs-1;i>=nfixedargs;i--){var arg_ptr=HEAPU32[(avalue>>2)+i];var arg_unboxed=unbox_small_structs(HEAPU32[(arg_types_ptr>>2)+i]);var arg_type_ptr=arg_unboxed[0];var arg_type_id=arg_unboxed[1];switch(arg_type_id){case 5:case 6:cur_stack_ptr-=1,cur_stack_ptr&=~(1-1);HEAPU8[cur_stack_ptr+0]=HEAPU8[arg_ptr+0];break;case 7:case 8:cur_stack_ptr-=2,cur_stack_ptr&=~(2-1);HEAPU16[(cur_stack_ptr>>1)+0]=HEAPU16[(arg_ptr>>1)+0];break;case 1:case 9:case 10:case 14:case 2:cur_stack_ptr-=4,cur_stack_ptr&=~(4-1);HEAPU32[(cur_stack_ptr>>2)+0]=HEAPU32[(arg_ptr>>2)+0];break;case 3:case 11:case 12:cur_stack_ptr-=8,cur_stack_ptr&=~(8-1);HEAPU32[(cur_stack_ptr>>2)+0]=HEAPU32[(arg_ptr>>2)+0];HEAPU32[(cur_stack_ptr>>2)+1]=HEAPU32[(arg_ptr>>2)+1];break;case 4:cur_stack_ptr-=16,cur_stack_ptr&=~(8-1);HEAPU32[(cur_stack_ptr>>2)+0]=HEAPU32[(arg_ptr>>2)+0];HEAPU32[(cur_stack_ptr>>2)+1]=HEAPU32[(arg_ptr>>2)+1];HEAPU32[(cur_stack_ptr>>2)+2]=HEAPU32[(arg_ptr>>2)+1];HEAPU32[(cur_stack_ptr>>2)+3]=HEAPU32[(arg_ptr>>2)+1];break;case 13:cur_stack_ptr-=4,cur_stack_ptr&=~(4-1);struct_arg_info.push([cur_stack_ptr,arg_ptr,HEAPU32[(arg_type_ptr>>2)+0],HEAPU16[(arg_type_ptr+4>>1)+0]]);break;case 15:throw new Error("complex arg marshalling nyi");default:throw new Error("Unexpected argtype "+arg_type_id)}}args.push(cur_stack_ptr);for(var i=0;i>2)+0]=cur_stack_ptr}}cur_stack_ptr-=0,cur_stack_ptr&=~(8-1);stackRestore(cur_stack_ptr);var result=wasmTable.get(fn).apply(null,args);stackRestore(orig_stack_ptr);if(ret_by_arg){return}switch(rtype_id){case 0:break;case 1:case 9:case 10:case 14:HEAPU32[(rvalue>>2)+0]=result;break;case 2:HEAPF32[(rvalue>>2)+0]=result;break;case 3:HEAPF64[(rvalue>>3)+0]=result;break;case 5:case 6:HEAPU8[rvalue+0]=result;break;case 7:case 8:HEAPU16[(rvalue>>1)+0]=result;break;case 11:case 12:HEAPU32[(rvalue>>2)+0*2]=Number(result&BigInt(4294967295))|0,HEAPU32[(rvalue>>2)+0*2+1]=Number(result>>BigInt(32))|0;break;case 15:throw new Error("complex ret marshalling nyi");default:throw new Error("Unexpected rtype "+rtype_id)}}function ffi_closure_alloc_helper(size,code){var closure=_malloc(size);var index=getEmptyTableSlot();HEAPU32[(code>>2)+0]=index;HEAPU32[(closure>>2)+0]=index;return closure}function ffi_closure_free_helper(closure){var index=HEAPU32[(closure>>2)+0];freeTableIndexes.push(index);_free(closure)}function ffi_prep_closure_loc_helper(closure,cif,fun,user_data,codeloc){var abi=HEAPU32[(cif>>2)+0];var nargs=HEAPU32[(cif>>2)+1];var nfixedargs=HEAPU32[(cif>>2)+6];var arg_types_ptr=HEAPU32[(cif>>2)+2];var rtype_unboxed=unbox_small_structs(HEAPU32[(cif>>2)+3]);var rtype_ptr=rtype_unboxed[0];var rtype_id=rtype_unboxed[1];var sig;var ret_by_arg=false;switch(rtype_id){case 0:sig="v";break;case 13:case 4:sig="vi";ret_by_arg=true;break;case 1:case 5:case 6:case 7:case 8:case 9:case 10:case 14:sig="i";break;case 2:sig="f";break;case 3:sig="d";break;case 11:case 12:sig="j";break;case 15:throw new Error("complex ret marshalling nyi");default:throw new Error("Unexpected rtype "+rtype_id)}var unboxed_arg_type_id_list=[];var unboxed_arg_type_info_list=[];for(var i=0;i>2)+i]);var arg_type_ptr=arg_unboxed[0];var arg_type_id=arg_unboxed[1];unboxed_arg_type_id_list.push(arg_type_id);unboxed_arg_type_info_list.push([HEAPU32[(arg_type_ptr>>2)+0],HEAPU16[(arg_type_ptr+4>>1)+0]])}for(var i=0;i>2)+carg_idx]=cur_ptr;HEAPU8[cur_ptr+0]=cur_arg;break;case 7:case 8:cur_ptr-=2,cur_ptr&=~(4-1);HEAPU32[(args_ptr>>2)+carg_idx]=cur_ptr;HEAPU16[(cur_ptr>>1)+0]=cur_arg;break;case 1:case 9:case 10:case 14:cur_ptr-=4,cur_ptr&=~(4-1);HEAPU32[(args_ptr>>2)+carg_idx]=cur_ptr;HEAPU32[(cur_ptr>>2)+0]=cur_arg;break;case 13:cur_ptr-=arg_size,cur_ptr&=~(arg_align-1);HEAP8.subarray(cur_ptr,cur_ptr+arg_size).set(HEAP8.subarray(cur_arg,cur_arg+arg_size));HEAPU32[(args_ptr>>2)+carg_idx]=cur_ptr;break;case 2:cur_ptr-=4,cur_ptr&=~(4-1);HEAPU32[(args_ptr>>2)+carg_idx]=cur_ptr;HEAPF32[(cur_ptr>>2)+0]=cur_arg;break;case 3:cur_ptr-=8,cur_ptr&=~(8-1);HEAPU32[(args_ptr>>2)+carg_idx]=cur_ptr;HEAPF64[(cur_ptr>>3)+0]=cur_arg;break;case 11:case 12:cur_ptr-=8,cur_ptr&=~(8-1);HEAPU32[(args_ptr>>2)+carg_idx]=cur_ptr;HEAPU32[(cur_ptr>>2)+0*2]=Number(cur_arg&BigInt(4294967295))|0,HEAPU32[(cur_ptr>>2)+0*2+1]=Number(cur_arg>>BigInt(32))|0;break;case 4:cur_ptr-=16,cur_ptr&=~(8-1);HEAPU32[(args_ptr>>2)+carg_idx]=cur_ptr;HEAPU32[(cur_ptr>>2)+0*2]=Number(cur_arg&BigInt(4294967295))|0,HEAPU32[(cur_ptr>>2)+0*2+1]=Number(cur_arg>>BigInt(32))|0;cur_arg=args[jsarg_idx++];HEAPU32[(cur_ptr>>2)+1*2]=Number(cur_arg&BigInt(4294967295))|0,HEAPU32[(cur_ptr>>2)+1*2+1]=Number(cur_arg>>BigInt(32))|0;break}}var varargs=args[args.length-1];for(var carg_idx=nfixedargs;carg_idx>2)+0];cur_ptr-=arg_size,cur_ptr&=~(arg_align-1);HEAP8.subarray(cur_ptr,cur_ptr+arg_size).set(HEAP8.subarray(struct_ptr,struct_ptr+arg_size));HEAPU32[(args_ptr>>2)+carg_idx]=cur_ptr}else{HEAPU32[(args_ptr>>2)+carg_idx]=varargs}varargs+=4}cur_ptr-=0,cur_ptr&=~(8-1);stackRestore(cur_ptr);wasmTable.get(HEAPU32[(closure>>2)+2]).apply(null,[HEAPU32[(closure>>2)+1],ret_ptr,args_ptr,HEAPU32[(closure>>2)+3]]);stackRestore(orig_stack_ptr);if(!ret_by_arg){switch(sig[0]){case"i":return HEAPU32[(ret_ptr>>2)+0];case"j":return BigInt(HEAPU32[(ret_ptr>>2)+0*2])|BigInt(HEAPU32[(ret_ptr>>2)+0*2+1])<>3)+0];case"f":return HEAPF32[(ret_ptr>>2)+0]}}}try{var wasm_trampoline=convertJsFunctionToWasm(trampoline,sig)}catch(e){return FFI_BAD_TYPEDEF}wasmTable.set(codeloc,wasm_trampoline);HEAPU32[(closure>>2)+1]=cif;HEAPU32[(closure>>2)+2]=fun;HEAPU32[(closure>>2)+3]=user_data;return 0}function get_async_js_call_done_callback(proxies_id){"use strict";try{let proxies=Hiwire.get_value(proxies_id);return Hiwire.new_value(function(result){let msg="This borrowed proxy was automatically destroyed "+"at the end of an asynchronous function call. Try "+"using create_proxy or create_once_callable.";for(let px of proxies){Module.pyproxy_destroy(px,msg)}if(API.isPyProxy(result)){Module.pyproxy_destroy(result,msg)}})}catch(e){Module.handle_js_error(e);return 0}throw new Error("Assertion error: control reached end of function without return")}function getter_call_trampoline(get,obj,closure){return wasmTable.get(get)(obj,closure)}function hiwire_CallMethod(idobj,name,idargs){"use strict";try{let jsobj=Hiwire.get_value(idobj);let jsname=Hiwire.get_value(name);let jsargs=Hiwire.get_value(idargs);return Hiwire.new_value(jsobj[jsname](...jsargs))}catch(e){Module.handle_js_error(e);return 0}throw new Error("Assertion error: control reached end of function without return")}function hiwire_CallMethodString(idobj,name,idargs){"use strict";try{let jsobj=Hiwire.get_value(idobj);let jsname=UTF8ToString(name);let jsargs=Hiwire.get_value(idargs);return Hiwire.new_value(jsobj[jsname](...jsargs))}catch(e){Module.handle_js_error(e);return 0}throw new Error("Assertion error: control reached end of function without return")}function hiwire_CallMethod_OneArg(idobj,name,idarg){"use strict";try{let jsobj=Hiwire.get_value(idobj);let jsname=Hiwire.get_value(name);let jsarg=Hiwire.get_value(idarg);return Hiwire.new_value(jsobj[jsname](jsarg))}catch(e){Module.handle_js_error(e);return 0}throw new Error("Assertion error: control reached end of function without return")}function hiwire_HasMethod(obj_id,name){let obj=Hiwire.get_value(obj_id);return obj&&typeof obj[Hiwire.get_value(name)]==="function"}function hiwire_assign_from_ptr(idobj,ptr){"use strict";try{let jsobj=Hiwire.get_value(idobj);Module.typedArrayAsUint8Array(jsobj).set(Module.HEAPU8.subarray(ptr,ptr+jsobj.byteLength))}catch(e){Module.handle_js_error(e);return-1}return 0}function hiwire_assign_to_ptr(idobj,ptr){"use strict";try{let jsobj=Hiwire.get_value(idobj);Module.HEAPU8.set(Module.typedArrayAsUint8Array(jsobj),ptr)}catch(e){Module.handle_js_error(e);return-1}return 0}function hiwire_call(idfunc,idargs){"use strict";try{let jsfunc=Hiwire.get_value(idfunc);let jsargs=Hiwire.get_value(idargs);return Hiwire.new_value(jsfunc(...jsargs))}catch(e){Module.handle_js_error(e);return 0}throw new Error("Assertion error: control reached end of function without return")}function hiwire_call_OneArg(idfunc,idarg){"use strict";try{let jsfunc=Hiwire.get_value(idfunc);let jsarg=Hiwire.get_value(idarg);return Hiwire.new_value(jsfunc(jsarg))}catch(e){Module.handle_js_error(e);return 0}throw new Error("Assertion error: control reached end of function without return")}function hiwire_call_bound(idfunc,idthis,idargs){"use strict";try{let func=Hiwire.get_value(idfunc);let this_;if(idthis===0){this_=null}else{this_=Hiwire.get_value(idthis)}let args=Hiwire.get_value(idargs);return Hiwire.new_value(func.apply(this_,args))}catch(e){Module.handle_js_error(e);return 0}throw new Error("Assertion error: control reached end of function without return")}function hiwire_construct(idobj,idargs){"use strict";try{let jsobj=Hiwire.get_value(idobj);let jsargs=Hiwire.get_value(idargs);return Hiwire.new_value(Reflect.construct(jsobj,jsargs))}catch(e){Module.handle_js_error(e);return 0}throw new Error("Assertion error: control reached end of function without return")}function hiwire_constructor_name(idobj){"use strict";try{return stringToNewUTF8(Hiwire.get_value(idobj).constructor.name)}catch(e){Module.handle_js_error(e);return 0}throw new Error("Assertion error: control reached end of function without return")}function hiwire_decref(idval){Hiwire.decref(idval)}function hiwire_double(val){"use strict";try{return Hiwire.new_value(val)}catch(e){Module.handle_js_error(e);return 0}throw new Error("Assertion error: control reached end of function without return")}function hiwire_equal(ida,idb){return!!(Hiwire.get_value(ida)===Hiwire.get_value(idb))}function hiwire_get_bool(idobj){let val=Hiwire.get_value(idobj);if(!val){return false}if(val.size===0){return false}if(Array.isArray(val)&&val.length===0){return false}return true}function hiwire_get_buffer_info(idobj,byteLength_ptr,format_ptr,size_ptr,checked_ptr){let jsobj=Hiwire.get_value(idobj);let byteLength=jsobj.byteLength;let[format_utf8,size,checked]=Module.get_buffer_datatype(jsobj);HEAPU32[(byteLength_ptr>>2)+0]=byteLength;HEAPU32[(format_ptr>>2)+0]=format_utf8;HEAPU32[(size_ptr>>2)+0]=size;HEAPU8[checked_ptr+0]=checked}function hiwire_get_iterator(idobj){"use strict";try{let jsobj=Hiwire.get_value(idobj);return Hiwire.new_value(jsobj[Symbol.iterator]())}catch(e){Module.handle_js_error(e);return 0}throw new Error("Assertion error: control reached end of function without return")}function hiwire_get_length(idobj){"use strict";try{let val=Hiwire.get_value(idobj);if(typeof val.size==="number"){return val.size}if(typeof val.length==="number"){return val.length}return-1}catch(e){Module.handle_js_error(e);return-1}return 0}function hiwire_greater_than(ida,idb){return!!(Hiwire.get_value(ida)>Hiwire.get_value(idb))}function hiwire_greater_than_equal(ida,idb){return!!(Hiwire.get_value(ida)>=Hiwire.get_value(idb))}function hiwire_has_length(idobj){let val=Hiwire.get_value(idobj);return typeof val.size==="number"||typeof val.length==="number"&&typeof val!=="function"}function hiwire_incref(idval){if(idval&1){Hiwire.incref(idval)}return idval}function hiwire_init(){"use strict";try{let _hiwire={objects:new Map,counter:new Uint32Array([1])};Hiwire.UNDEFINED=HEAPU8[_Js_undefined+0];Hiwire.JSNULL=HEAPU8[_Js_null+0];Hiwire.TRUE=HEAPU8[_Js_true+0];Hiwire.FALSE=HEAPU8[_Js_false+0];_hiwire.objects.set(Hiwire.UNDEFINED,[undefined,-1]);_hiwire.objects.set(Hiwire.JSNULL,[null,-1]);_hiwire.objects.set(Hiwire.TRUE,[!!1,-1]);_hiwire.objects.set(Hiwire.FALSE,[!!0,-1]);let hiwire_next_permanent=Hiwire.FALSE+2;Hiwire.new_value=function(jsval){while(_hiwire.objects.has(_hiwire.counter[0])){_hiwire.counter[0]+=2}let idval=_hiwire.counter[0];_hiwire.objects.set(idval,[jsval,1]);_hiwire.counter[0]+=2;return idval};Hiwire.intern_object=function(obj){let id=hiwire_next_permanent;hiwire_next_permanent+=2;_hiwire.objects.set(id,[obj,-1]);return id};Hiwire.num_keys=function(){return Array.from(_hiwire.objects.keys()).filter(x=>x%2).length};Hiwire.get_value=function(idval){if(!idval){API.fail_test=!!1;if(_PyErr_Occurred()){let exc=_wrap_exception();let e=Hiwire.pop_value(exc);console.error(`Internal error: Argument '${idval}' to hiwire.get_value is falsy. `+"This was probably because the Python error indicator was set when get_value was called. "+"The Python error that caused this was:",e);throw e}else{console.error(`Internal error: Argument '${idval}' to hiwire.get_value is falsy`+" (but error indicator is not set).");throw new Error(`Internal error: Argument '${idval}' to hiwire.get_value is falsy`+" (but error indicator is not set).")}}if(!_hiwire.objects.has(idval)){console.error(`Undefined id ${idval}`);throw new Error(`Undefined id ${idval}`)}return _hiwire.objects.get(idval)[0]};Hiwire.decref=function(idval){if((idval&1)===0){return}let new_refcnt=--_hiwire.objects.get(idval)[1];if(new_refcnt===0){_hiwire.objects.delete(idval)}};Hiwire.incref=function(idval){_hiwire.objects.get(idval)[1]++};Hiwire.pop_value=function(idval){let result=Hiwire.get_value(idval);Hiwire.decref(idval);return result};Hiwire.isPromise=function(obj){try{return!!obj&&typeof obj.then==="function"}catch(e){return!!0}};Module.typedArrayAsUint8Array=function(arg){if(arg.buffer!==undefined){return new Uint8Array(arg.buffer,arg.byteOffset,arg.byteLength)}else{return new Uint8Array(arg)}};{let dtypes_str=["b","B","h","H","i","I","f","d"].join(String.fromCharCode(0));let dtypes_ptr=stringToNewUTF8(dtypes_str);let dtypes_map={};for(let[idx,val]of Object.entries(dtypes_str)){dtypes_map[val]=dtypes_ptr+Number(idx)}let buffer_datatype_map=new Map([["Int8Array",[dtypes_map["b"],1,!!1]],["Uint8Array",[dtypes_map["B"],1,!!1]],["Uint8ClampedArray",[dtypes_map["B"],1,!!1]],["Int16Array",[dtypes_map["h"],2,!!1]],["Uint16Array",[dtypes_map["H"],2,!!1]],["Int32Array",[dtypes_map["i"],4,!!1]],["Uint32Array",[dtypes_map["I"],4,!!1]],["Float32Array",[dtypes_map["f"],4,!!1]],["Float64Array",[dtypes_map["d"],8,!!1]],["DataView",[dtypes_map["B"],1,!!0]],["ArrayBuffer",[dtypes_map["B"],1,!!0]]]);Module.get_buffer_datatype=function(jsobj){return buffer_datatype_map.get(jsobj.constructor.name)||[0,0,!!0]}}if(globalThis.BigInt){Module.BigInt=BigInt}else{Module.BigInt=Number}return 0}catch(e){Module.handle_js_error(e);return-1}return 0}function hiwire_int(val){"use strict";try{return Hiwire.new_value(val)}catch(e){Module.handle_js_error(e);return 0}throw new Error("Assertion error: control reached end of function without return")}function hiwire_int_from_digits(digits,ndigits){"use strict";try{let result=BigInt(0);for(let i=0;i>2)+i])<>2)+ndigits-1]&2147483648)<>2)+0]=result_id;return done}catch(e){Module.handle_js_error(e);return-1}return 0}function hiwire_not_equal(ida,idb){return!!(Hiwire.get_value(ida)!==Hiwire.get_value(idb))}function hiwire_read_from_file(idobj,fd){"use strict";try{let jsobj=Hiwire.get_value(idobj);let uint8_buffer=Module.typedArrayAsUint8Array(jsobj);let stream=Module.FS.streams[fd];Module.FS.read(stream,uint8_buffer,0,uint8_buffer.byteLength)}catch(e){Module.handle_js_error(e);return-1}return 0}function hiwire_resolve_promise(idobj){"use strict";try{let obj=Hiwire.get_value(idobj);let result=Promise.resolve(obj);return Hiwire.new_value(result)}catch(e){Module.handle_js_error(e);return 0}throw new Error("Assertion error: control reached end of function without return")}function hiwire_string_ascii(ptr){"use strict";try{return Hiwire.new_value(AsciiToString(ptr))}catch(e){Module.handle_js_error(e);return 0}throw new Error("Assertion error: control reached end of function without return")}function hiwire_string_ucs1(ptr,len){"use strict";try{let jsstr="";for(let i=0;i>1)+i])}return Hiwire.new_value(jsstr)}catch(e){Module.handle_js_error(e);return 0}throw new Error("Assertion error: control reached end of function without return")}function hiwire_string_ucs4(ptr,len){"use strict";try{let jsstr="";for(let i=0;i>2)+i])}return Hiwire.new_value(jsstr)}catch(e){Module.handle_js_error(e);return 0}throw new Error("Assertion error: control reached end of function without return")}function hiwire_string_utf8(ptr){"use strict";try{return Hiwire.new_value(UTF8ToString(ptr))}catch(e){Module.handle_js_error(e);return 0}throw new Error("Assertion error: control reached end of function without return")}function hiwire_subarray(idarr,start,end){"use strict";try{let jsarr=Hiwire.get_value(idarr);let jssub=jsarr.subarray(start,end);return Hiwire.new_value(jssub)}catch(e){Module.handle_js_error(e);return 0}throw new Error("Assertion error: control reached end of function without return")}function hiwire_throw_error(iderr){throw Hiwire.pop_value(iderr)}function hiwire_to_bool(val){return!!Hiwire.get_value(val)}function hiwire_to_string(idobj){"use strict";try{return Hiwire.new_value(Hiwire.get_value(idobj).toString())}catch(e){Module.handle_js_error(e);return 0}throw new Error("Assertion error: control reached end of function without return")}function hiwire_typeof(idobj){"use strict";try{return Hiwire.new_value(typeof Hiwire.get_value(idobj))}catch(e){Module.handle_js_error(e);return 0}throw new Error("Assertion error: control reached end of function without return")}function hiwire_write_to_file(idobj,fd){"use strict";try{let jsobj=Hiwire.get_value(idobj);let uint8_buffer=Module.typedArrayAsUint8Array(jsobj);let stream=Module.FS.streams[fd];Module.FS.write(stream,uint8_buffer,0,uint8_buffer.byteLength)}catch(e){Module.handle_js_error(e);return-1}return 0}function js2python(id){"use strict";try{let value=Hiwire.get_value(id);let result=Module.js2python_convertImmutable(value);if(result!==undefined){return result}return _JsProxy_create(id)}catch(e){Module.handle_js_error(e);return 0}throw new Error("Assertion error: control reached end of function without return")}function js2python_convert(id,depth,default_converter){"use strict";try{let defaultConverter=default_converter?Module.hiwire.get_value(default_converter):undefined;return Module.js2python_convert(id,{depth:depth,defaultConverter:defaultConverter})}catch(e){Module.handle_js_error(e);return 0}throw new Error("Assertion error: control reached end of function without return")}function js2python_init(){"use strict";try{{0;let PropagateError=Module._PropagatePythonError;function js2python_string(value){let max_code_point=0;let num_code_points=0;for(let c of value){num_code_points++;let code_point=c.codePointAt(0);max_code_point=code_point>max_code_point?code_point:max_code_point}let result=_PyUnicode_New(num_code_points,max_code_point);if(result===0){throw new PropagateError}let ptr=_PyUnicode_Data(result);if(max_code_point>65535){for(let c of value){HEAPU32[ptr/4]=c.codePointAt(0);ptr+=4}}else if(max_code_point>255){for(let c of value){HEAPU16[ptr/2]=c.codePointAt(0);ptr+=2}}else{for(let c of value){HEAPU8[ptr]=c.codePointAt(0);ptr+=1}}return result}function js2python_bigint(value){let value_orig=value;let length=0;if(value<0){value=-value}while(value){length++;value>>=BigInt(32)}let stackTop=stackSave();let ptr=stackAlloc(length*4);value=value_orig;for(let i=0;i>2)+i]=Number(value&BigInt(4294967295));value>>=BigInt(32)}let result=__PyLong_FromByteArray(ptr,length*4,!!1,!!1);stackRestore(stackTop);return result}function js2python_convertImmutable(value){let result=js2python_convertImmutableInner(value);if(result===0){throw new PropagateError}return result}Module.js2python_convertImmutable=js2python_convertImmutable;function js2python_convertImmutableInner(value){let type=typeof value;if(type==="string"){return js2python_string(value)}else if(type==="number"){if(Number.isSafeInteger(value)){return _PyLong_FromDouble(value)}else{return _PyFloat_FromDouble(value)}}else if(type==="bigint"){return js2python_bigint(value)}else if(value===undefined||value===null){return __js2python_none()}else if(value===!!1){return __js2python_true()}else if(value===!!0){return __js2python_false()}else if(API.isPyProxy(value)){return __js2python_pyproxy(Module.PyProxy_getPtr(value))}return undefined}function js2python_convertList(obj,context){let list=_PyList_New(obj.length);if(list===0){return 0}let entryid=0;let item=0;try{context.cache.set(obj,list);for(let i=0;i2){throw new Error("Expected format string to have length <= 2, "+`got '${formatStr}'.`+errorMessage)}let formatChar=formatStr.slice(-1);let alignChar=formatStr.slice(0,-1);let bigEndian;switch(alignChar){case"!":case">":bigEndian=!!1;break;case"<":case"@":case"=":case"":bigEndian=!!0;break;default:throw new Error(`Unrecognized alignment character ${alignChar}.`+errorMessage)}let arrayType;switch(formatChar){case"b":arrayType=Int8Array;break;case"s":case"p":case"c":case"B":case"?":arrayType=Uint8Array;break;case"h":arrayType=Int16Array;break;case"H":arrayType=Uint16Array;break;case"i":case"l":case"n":arrayType=Int32Array;break;case"I":case"L":case"N":case"P":arrayType=Uint32Array;break;case"q":if(globalThis.BigInt64Array===undefined){throw new Error("BigInt64Array is not supported on this browser."+errorMessage)}arrayType=BigInt64Array;break;case"Q":if(globalThis.BigUint64Array===undefined){throw new Error("BigUint64Array is not supported on this browser."+errorMessage)}arrayType=BigUint64Array;break;case"f":arrayType=Float32Array;break;case"d":arrayType=Float64Array;break;case"e":throw new Error("Javascript has no Float16 support.");default:throw new Error(`Unrecognized format character '${formatChar}'.`+errorMessage)}return[arrayType,bigEndian]};Module.python2js_buffer_1d_contiguous=function(ptr,stride,n){"use strict";let byteLength=stride*n;return HEAP8.slice(ptr,ptr+byteLength).buffer};Module.python2js_buffer_1d_noncontiguous=function(ptr,stride,suboffset,n,itemsize){"use strict";let byteLength=itemsize*n;let buffer=new Uint8Array(byteLength);for(let i=0;i=0){curptr=HEAPU32[(curptr>>2)+0]+suboffset}buffer.set(HEAP8.subarray(curptr,curptr+itemsize),i*itemsize)}return buffer.buffer};Module._python2js_buffer_recursive=function(ptr,curdim,bufferData){"use strict";let n=HEAPU32[(bufferData.shape>>2)+curdim];let stride=HEAP32[(bufferData.strides>>2)+curdim];let suboffset=-1;if(bufferData.suboffsets!==0){suboffset=HEAP32[(bufferData.suboffsets>>2)+curdim]}if(curdim===bufferData.ndim-1){let arraybuffer;if(stride===bufferData.itemsize&&suboffset<0){arraybuffer=Module.python2js_buffer_1d_contiguous(ptr,stride,n)}else{arraybuffer=Module.python2js_buffer_1d_noncontiguous(ptr,stride,suboffset,n,bufferData.itemsize)}return bufferData.converter(arraybuffer)}let result=[];for(let i=0;i=0){curptr=HEAPU32[(curptr>>2)+0]+suboffset}result.push(Module._python2js_buffer_recursive(curPtr,curdim+1,bufferData))}return result};Module.get_converter=function(format,itemsize){"use strict";let formatStr=UTF8ToString(format);let[ArrayType,bigEndian]=Module.processBufferFormatString(formatStr);let formatChar=formatStr.slice(-1);switch(formatChar){case"s":let decoder=new TextDecoder("utf8");return buff=>decoder.decode(buff);case"?":return buff=>Array.from(new Uint8Array(buff),x=>!!x)}if(!bigEndian){return buff=>new ArrayType(buff)}let getFuncName;let setFuncName;switch(itemsize){case 2:getFuncName="getUint16";setFuncName="setUint16";break;case 4:getFuncName="getUint32";setFuncName="setUint32";break;case 8:getFuncName="getFloat64";setFuncName="setFloat64";break;default:throw new Error(`Unexpected size ${itemsize}`)}function swapFunc(buff){let dataview=new DataView(buff);let getFunc=dataview[getFuncName].bind(dataview);let setFunc=dataview[setFuncName].bind(dataview);for(let byte=0;bytenew ArrayType(swapFunc(buff))}}return 0}catch(e){Module.handle_js_error(e);return-1}return 0}function python2js_custom__create_jscontext(context,cache,dict_converter,default_converter){"use strict";try{let jscontext={};if(dict_converter!==0){jscontext.dict_converter=Hiwire.get_value(dict_converter)}if(default_converter!==0){jscontext.default_converter=Hiwire.get_value(default_converter);jscontext.cacheConversion=function(input,output){if(!API.isPyProxy(input)){throw new TypeError("The first argument to cacheConversion must be a PyProxy.")}let input_ptr=Module.PyProxy_getPtr(input);let output_key=Hiwire.new_value(output);__python2js_add_to_cache(cache,input_ptr,output_key);Hiwire.decref(output_key)};jscontext.converter=function(x){if(!API.isPyProxy(x)){return x}let ptr=Module.PyProxy_getPtr(x);let res=__python2js(context,ptr);return Hiwire.pop_value(res)}}return Hiwire.new_value(jscontext)}catch(e){Module.handle_js_error(e);return 0}throw new Error("Assertion error: control reached end of function without return")}function setter_call_trampoline(set,obj,value,closure){return wasmTable.get(set)(obj,value,closure)}function unbox_small_structs(type_ptr){var type_id=HEAPU16[(type_ptr+6>>1)+0];while(type_id===13){var elements=HEAPU32[(type_ptr+8>>2)+0];var first_element=HEAPU32[(elements>>2)+0];if(first_element===0){type_id=0;break}else if(HEAPU32[(elements>>2)+1]===0){type_ptr=first_element;type_id=HEAPU16[(first_element+6>>1)+0]}else{break}}return[type_ptr,type_id]}function _emscripten_set_main_loop_timing(mode,value){Browser.mainLoop.timingMode=mode;Browser.mainLoop.timingValue=value;if(!Browser.mainLoop.func){return 1}if(!Browser.mainLoop.running){Browser.mainLoop.running=true}if(mode==0){Browser.mainLoop.scheduler=function Browser_mainLoop_scheduler_setTimeout(){var timeUntilNextTick=Math.max(0,Browser.mainLoop.tickStartTime+value-_emscripten_get_now())|0;setTimeout(Browser.mainLoop.runner,timeUntilNextTick)};Browser.mainLoop.method="timeout"}else if(mode==1){Browser.mainLoop.scheduler=function Browser_mainLoop_scheduler_rAF(){Browser.requestAnimationFrame(Browser.mainLoop.runner)};Browser.mainLoop.method="rAF"}else if(mode==2){if(typeof setImmediate==="undefined"){var setImmediates=[];var emscriptenMainLoopMessageId="setimmediate";var Browser_setImmediate_messageHandler=function(event){if(event.data===emscriptenMainLoopMessageId||event.data.target===emscriptenMainLoopMessageId){event.stopPropagation();setImmediates.shift()()}};addEventListener("message",Browser_setImmediate_messageHandler,true);setImmediate=function Browser_emulated_setImmediate(func){setImmediates.push(func);if(ENVIRONMENT_IS_WORKER){if(Module["setImmediates"]===undefined)Module["setImmediates"]=[];Module["setImmediates"].push(func);postMessage({target:emscriptenMainLoopMessageId})}else postMessage(emscriptenMainLoopMessageId,"*")}}Browser.mainLoop.scheduler=function Browser_mainLoop_scheduler_setImmediate(){setImmediate(Browser.mainLoop.runner)};Browser.mainLoop.method="immediate"}return 0}Module["_emscripten_set_main_loop_timing"]=_emscripten_set_main_loop_timing;_emscripten_set_main_loop_timing.sig="iii";var _emscripten_get_now;if(ENVIRONMENT_IS_NODE){_emscripten_get_now=function(){var t=process["hrtime"]();return t[0]*1e3+t[1]/1e6}}else _emscripten_get_now=function(){return performance.now()};Module["_emscripten_get_now"]=_emscripten_get_now;function runtimeKeepalivePush(){runtimeKeepaliveCounter+=1}Module["runtimeKeepalivePush"]=runtimeKeepalivePush;runtimeKeepalivePush.sig="v";function _exit(status){exit(status)}Module["_exit"]=_exit;_exit.sig="vi";function handleException(e){if(e instanceof ExitStatus||e==="unwind"){return}if(e&&typeof e==="object"&&e.stack)err("exception thrown: "+[e,e.stack]);throw e}Module["handleException"]=handleException;function maybeExit(){if(!keepRuntimeAlive()){try{_exit(EXITSTATUS)}catch(e){handleException(e)}}}Module["maybeExit"]=maybeExit;function setMainLoop(browserIterationFunc,fps,simulateInfiniteLoop,arg,noSetTiming){assert(!Browser.mainLoop.func,"emscripten_set_main_loop: there can only be one main loop function at once: call emscripten_cancel_main_loop to cancel the previous one before setting a new one with different parameters.");Browser.mainLoop.func=browserIterationFunc;Browser.mainLoop.arg=arg;var thisMainLoopId=Browser.mainLoop.currentlyRunningMainloop;function checkIsRunning(){if(thisMainLoopId0){var start=Date.now();var blocker=Browser.mainLoop.queue.shift();blocker.func(blocker.arg);if(Browser.mainLoop.remainingBlockers){var remaining=Browser.mainLoop.remainingBlockers;var next=remaining%1==0?remaining-1:Math.floor(remaining);if(blocker.counted){Browser.mainLoop.remainingBlockers=next}else{next=next+.5;Browser.mainLoop.remainingBlockers=(8*remaining+next)/9}}out('main loop blocker "'+blocker.name+'" took '+(Date.now()-start)+" ms");Browser.mainLoop.updateStatus();if(!checkIsRunning())return;setTimeout(Browser.mainLoop.runner,0);return}if(!checkIsRunning())return;Browser.mainLoop.currentFrameNumber=Browser.mainLoop.currentFrameNumber+1|0;if(Browser.mainLoop.timingMode==1&&Browser.mainLoop.timingValue>1&&Browser.mainLoop.currentFrameNumber%Browser.mainLoop.timingValue!=0){Browser.mainLoop.scheduler();return}else if(Browser.mainLoop.timingMode==0){Browser.mainLoop.tickStartTime=_emscripten_get_now()}Browser.mainLoop.runIter(browserIterationFunc);if(!checkIsRunning())return;if(typeof SDL==="object"&&SDL.audio&&SDL.audio.queueNewAudioData)SDL.audio.queueNewAudioData();Browser.mainLoop.scheduler()};if(!noSetTiming){if(fps&&fps>0)_emscripten_set_main_loop_timing(0,1e3/fps);else _emscripten_set_main_loop_timing(1,1);Browser.mainLoop.scheduler()}if(simulateInfiniteLoop){throw"unwind"}}Module["setMainLoop"]=setMainLoop;function callUserCallback(func,synchronous){if(ABORT){return}if(synchronous){func();return}try{func()}catch(e){handleException(e)}}Module["callUserCallback"]=callUserCallback;function safeSetTimeout(func,timeout){return setTimeout(function(){callUserCallback(func)},timeout)}Module["safeSetTimeout"]=safeSetTimeout;function runtimeKeepalivePop(){runtimeKeepaliveCounter-=1}Module["runtimeKeepalivePop"]=runtimeKeepalivePop;runtimeKeepalivePop.sig="v";var Browser={mainLoop:{running:false,scheduler:null,method:"",currentlyRunningMainloop:0,func:null,arg:0,timingMode:0,timingValue:0,currentFrameNumber:0,queue:[],pause:function(){Browser.mainLoop.scheduler=null;Browser.mainLoop.currentlyRunningMainloop++},resume:function(){Browser.mainLoop.currentlyRunningMainloop++;var timingMode=Browser.mainLoop.timingMode;var timingValue=Browser.mainLoop.timingValue;var func=Browser.mainLoop.func;Browser.mainLoop.func=null;setMainLoop(func,0,false,Browser.mainLoop.arg,true);_emscripten_set_main_loop_timing(timingMode,timingValue);Browser.mainLoop.scheduler()},updateStatus:function(){if(Module["setStatus"]){var message=Module["statusMessage"]||"Please wait...";var remaining=Browser.mainLoop.remainingBlockers;var expected=Browser.mainLoop.expectedBlockers;if(remaining){if(remaining=6){var curr=leftchar>>leftbits-6&63;leftbits-=6;ret+=BASE[curr]}}if(leftbits==2){ret+=BASE[(leftchar&3)<<4];ret+=PAD+PAD}else if(leftbits==4){ret+=BASE[(leftchar&15)<<2];ret+=PAD}return ret}audio.src="data:audio/x-"+name.substr(-3)+";base64,"+encode64(byteArray);finish(audio)};audio.src=url;safeSetTimeout(function(){finish(audio)},1e4)}else{return fail()}};Module["preloadPlugins"].push(audioPlugin);var wasmPlugin={"asyncWasmLoadPromise":new Promise(function(resolve,reject){return resolve()}),"canHandle":function(name){return!Module.noWasmDecoding&&name.endsWith(".so")},"handle":function(byteArray,name,onload,onerror){this["asyncWasmLoadPromise"]=this["asyncWasmLoadPromise"].then(function(){return loadWebAssemblyModule(byteArray,{loadAsync:true,nodelete:true})}).then(function(module){Module["preloadedWasm"][name]=module;onload()},function(err){console.warn("Couldn't instantiate wasm: "+name+" '"+err+"'");onerror()})}};Module["preloadPlugins"].push(wasmPlugin);function pointerLockChange(){Browser.pointerLock=document["pointerLockElement"]===Module["canvas"]||document["mozPointerLockElement"]===Module["canvas"]||document["webkitPointerLockElement"]===Module["canvas"]||document["msPointerLockElement"]===Module["canvas"]}var canvas=Module["canvas"];if(canvas){canvas.requestPointerLock=canvas["requestPointerLock"]||canvas["mozRequestPointerLock"]||canvas["webkitRequestPointerLock"]||canvas["msRequestPointerLock"]||function(){};canvas.exitPointerLock=document["exitPointerLock"]||document["mozExitPointerLock"]||document["webkitExitPointerLock"]||document["msExitPointerLock"]||function(){};canvas.exitPointerLock=canvas.exitPointerLock.bind(document);document.addEventListener("pointerlockchange",pointerLockChange,false);document.addEventListener("mozpointerlockchange",pointerLockChange,false);document.addEventListener("webkitpointerlockchange",pointerLockChange,false);document.addEventListener("mspointerlockchange",pointerLockChange,false);if(Module["elementPointerLock"]){canvas.addEventListener("click",function(ev){if(!Browser.pointerLock&&Module["canvas"].requestPointerLock){Module["canvas"].requestPointerLock();ev.preventDefault()}},false)}}},createContext:function(canvas,useWebGL,setInModule,webGLContextAttributes){if(useWebGL&&Module.ctx&&canvas==Module.canvas)return Module.ctx;var ctx;var contextHandle;if(useWebGL){var contextAttributes={antialias:false,alpha:false,majorVersion:1};if(webGLContextAttributes){for(var attribute in webGLContextAttributes){contextAttributes[attribute]=webGLContextAttributes[attribute]}}if(typeof GL!=="undefined"){contextHandle=GL.createContext(canvas,contextAttributes);if(contextHandle){ctx=GL.getContext(contextHandle).GLctx}}}else{ctx=canvas.getContext("2d")}if(!ctx)return null;if(setInModule){if(!useWebGL)assert(typeof GLctx==="undefined","cannot set in module if GLctx is used, but we are a non-GL context that would replace it");Module.ctx=ctx;if(useWebGL)GL.makeContextCurrent(contextHandle);Module.useWebGL=useWebGL;Browser.moduleContextCreatedCallbacks.forEach(function(callback){callback()});Browser.init()}return ctx},destroyContext:function(canvas,useWebGL,setInModule){},fullscreenHandlersInstalled:false,lockPointer:undefined,resizeCanvas:undefined,requestFullscreen:function(lockPointer,resizeCanvas){Browser.lockPointer=lockPointer;Browser.resizeCanvas=resizeCanvas;if(typeof Browser.lockPointer==="undefined")Browser.lockPointer=true;if(typeof Browser.resizeCanvas==="undefined")Browser.resizeCanvas=false;var canvas=Module["canvas"];function fullscreenChange(){Browser.isFullscreen=false;var canvasContainer=canvas.parentNode;if((document["fullscreenElement"]||document["mozFullScreenElement"]||document["msFullscreenElement"]||document["webkitFullscreenElement"]||document["webkitCurrentFullScreenElement"])===canvasContainer){canvas.exitFullscreen=Browser.exitFullscreen;if(Browser.lockPointer)canvas.requestPointerLock();Browser.isFullscreen=true;if(Browser.resizeCanvas){Browser.setFullscreenCanvasSize()}else{Browser.updateCanvasDimensions(canvas)}}else{canvasContainer.parentNode.insertBefore(canvas,canvasContainer);canvasContainer.parentNode.removeChild(canvasContainer);if(Browser.resizeCanvas){Browser.setWindowedCanvasSize()}else{Browser.updateCanvasDimensions(canvas)}}if(Module["onFullScreen"])Module["onFullScreen"](Browser.isFullscreen);if(Module["onFullscreen"])Module["onFullscreen"](Browser.isFullscreen)}if(!Browser.fullscreenHandlersInstalled){Browser.fullscreenHandlersInstalled=true;document.addEventListener("fullscreenchange",fullscreenChange,false);document.addEventListener("mozfullscreenchange",fullscreenChange,false);document.addEventListener("webkitfullscreenchange",fullscreenChange,false);document.addEventListener("MSFullscreenChange",fullscreenChange,false)}var canvasContainer=document.createElement("div");canvas.parentNode.insertBefore(canvasContainer,canvas);canvasContainer.appendChild(canvas);canvasContainer.requestFullscreen=canvasContainer["requestFullscreen"]||canvasContainer["mozRequestFullScreen"]||canvasContainer["msRequestFullscreen"]||(canvasContainer["webkitRequestFullscreen"]?function(){canvasContainer["webkitRequestFullscreen"](Element["ALLOW_KEYBOARD_INPUT"])}:null)||(canvasContainer["webkitRequestFullScreen"]?function(){canvasContainer["webkitRequestFullScreen"](Element["ALLOW_KEYBOARD_INPUT"])}:null);canvasContainer.requestFullscreen()},exitFullscreen:function(){if(!Browser.isFullscreen){return false}var CFS=document["exitFullscreen"]||document["cancelFullScreen"]||document["mozCancelFullScreen"]||document["msExitFullscreen"]||document["webkitCancelFullScreen"]||function(){};CFS.apply(document,[]);return true},nextRAF:0,fakeRequestAnimationFrame:function(func){var now=Date.now();if(Browser.nextRAF===0){Browser.nextRAF=now+1e3/60}else{while(now+2>=Browser.nextRAF){Browser.nextRAF+=1e3/60}}var delay=Math.max(Browser.nextRAF-now,0);setTimeout(func,delay)},requestAnimationFrame:function(func){if(typeof requestAnimationFrame==="function"){requestAnimationFrame(func);return}var RAF=Browser.fakeRequestAnimationFrame;RAF(func)},safeSetTimeout:function(func){return safeSetTimeout(func)},safeRequestAnimationFrame:function(func){return Browser.requestAnimationFrame(function(){callUserCallback(func)})},getMimetype:function(name){return{"jpg":"image/jpeg","jpeg":"image/jpeg","png":"image/png","bmp":"image/bmp","ogg":"audio/ogg","wav":"audio/wav","mp3":"audio/mpeg"}[name.substr(name.lastIndexOf(".")+1)]},getUserMedia:function(func){if(!window.getUserMedia){window.getUserMedia=navigator["getUserMedia"]||navigator["mozGetUserMedia"]}window.getUserMedia(func)},getMovementX:function(event){return event["movementX"]||event["mozMovementX"]||event["webkitMovementX"]||0},getMovementY:function(event){return event["movementY"]||event["mozMovementY"]||event["webkitMovementY"]||0},getMouseWheelDelta:function(event){var delta=0;switch(event.type){case"DOMMouseScroll":delta=event.detail/3;break;case"mousewheel":delta=event.wheelDelta/120;break;case"wheel":delta=event.deltaY;switch(event.deltaMode){case 0:delta/=100;break;case 1:delta/=3;break;case 2:delta*=80;break;default:throw"unrecognized mouse wheel delta mode: "+event.deltaMode}break;default:throw"unrecognized mouse wheel event: "+event.type}return delta},mouseX:0,mouseY:0,mouseMovementX:0,mouseMovementY:0,touches:{},lastTouches:{},calculateMouseEvent:function(event){if(Browser.pointerLock){if(event.type!="mousemove"&&"mozMovementX"in event){Browser.mouseMovementX=Browser.mouseMovementY=0}else{Browser.mouseMovementX=Browser.getMovementX(event);Browser.mouseMovementY=Browser.getMovementY(event)}if(typeof SDL!="undefined"){Browser.mouseX=SDL.mouseX+Browser.mouseMovementX;Browser.mouseY=SDL.mouseY+Browser.mouseMovementY}else{Browser.mouseX+=Browser.mouseMovementX;Browser.mouseY+=Browser.mouseMovementY}}else{var rect=Module["canvas"].getBoundingClientRect();var cw=Module["canvas"].width;var ch=Module["canvas"].height;var scrollX=typeof window.scrollX!=="undefined"?window.scrollX:window.pageXOffset;var scrollY=typeof window.scrollY!=="undefined"?window.scrollY:window.pageYOffset;if(event.type==="touchstart"||event.type==="touchend"||event.type==="touchmove"){var touch=event.touch;if(touch===undefined){return}var adjustedX=touch.pageX-(scrollX+rect.left);var adjustedY=touch.pageY-(scrollY+rect.top);adjustedX=adjustedX*(cw/rect.width);adjustedY=adjustedY*(ch/rect.height);var coords={x:adjustedX,y:adjustedY};if(event.type==="touchstart"){Browser.lastTouches[touch.identifier]=coords;Browser.touches[touch.identifier]=coords}else if(event.type==="touchend"||event.type==="touchmove"){var last=Browser.touches[touch.identifier];if(!last)last=coords;Browser.lastTouches[touch.identifier]=last;Browser.touches[touch.identifier]=coords}return}var x=event.pageX-(scrollX+rect.left);var y=event.pageY-(scrollY+rect.top);x=x*(cw/rect.width);y=y*(ch/rect.height);Browser.mouseMovementX=x-Browser.mouseX;Browser.mouseMovementY=y-Browser.mouseY;Browser.mouseX=x;Browser.mouseY=y}},resizeListeners:[],updateResizeListeners:function(){var canvas=Module["canvas"];Browser.resizeListeners.forEach(function(listener){listener(canvas.width,canvas.height)})},setCanvasSize:function(width,height,noUpdates){var canvas=Module["canvas"];Browser.updateCanvasDimensions(canvas,width,height);if(!noUpdates)Browser.updateResizeListeners()},windowedWidth:0,windowedHeight:0,setFullscreenCanvasSize:function(){if(typeof SDL!="undefined"){var flags=HEAPU32[SDL.screen>>2];flags=flags|8388608;HEAP32[SDL.screen>>2]=flags}Browser.updateCanvasDimensions(Module["canvas"]);Browser.updateResizeListeners()},setWindowedCanvasSize:function(){if(typeof SDL!="undefined"){var flags=HEAPU32[SDL.screen>>2];flags=flags&~8388608;HEAP32[SDL.screen>>2]=flags}Browser.updateCanvasDimensions(Module["canvas"]);Browser.updateResizeListeners()},updateCanvasDimensions:function(canvas,wNative,hNative){if(wNative&&hNative){canvas.widthNative=wNative;canvas.heightNative=hNative}else{wNative=canvas.widthNative;hNative=canvas.heightNative}var w=wNative;var h=hNative;if(Module["forcedAspectRatio"]&&Module["forcedAspectRatio"]>0){if(w/h0){var callback=callbacks.shift();if(typeof callback=="function"){callback(Module);continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){wasmTable.get(func)()}else{wasmTable.get(func)(callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}Module["callRuntimeCallbacks"]=callRuntimeCallbacks;function demangle(func){demangle.recursionGuard=(demangle.recursionGuard|0)+1;if(demangle.recursionGuard>1)return func;var __cxa_demangle_func=Module["___cxa_demangle"]||Module["__cxa_demangle"];assert(__cxa_demangle_func);var stackTop=stackSave();try{var s=func;if(s.startsWith("__Z"))s=s.substr(1);var len=lengthBytesUTF8(s)+1;var buf=stackAlloc(len);stringToUTF8(s,buf,len);var status=stackAlloc(4);var ret=__cxa_demangle_func(buf,0,0,status);if(HEAP32[status>>2]===0&&ret){return UTF8ToString(ret)}}catch(e){}finally{_free(ret);stackRestore(stackTop);if(demangle.recursionGuard<2)--demangle.recursionGuard}return func}Module["demangle"]=demangle;function demangleAll(text){var regex=/\b_Z[\w\d_]+/g;return text.replace(regex,function(x){var y=demangle(x);return x===y?x:y+" ["+x+"]"})}Module["demangleAll"]=demangleAll;function getDylinkMetadata(binary){var next=0;function getLEB(){var ret=0;var mul=1;while(1){var byte=binary[next++];ret+=(byte&127)*mul;mul*=128;if(!(byte&128))break}return ret}if(binary instanceof WebAssembly.Module){var dylinkSection=WebAssembly.Module.customSections(binary,"dylink");assert(dylinkSection.length!=0,"need dylink section");binary=new Int8Array(dylinkSection[0])}else{var int32View=new Uint32Array(new Uint8Array(binary.subarray(0,24)).buffer);assert(int32View[0]==1836278016,"need to see wasm magic number");assert(binary[8]===0,"need the dylink section to be first");next=9;getLEB();assert(binary[next]===6);next++;assert(binary[next]==="d".charCodeAt(0));next++;assert(binary[next]==="y".charCodeAt(0));next++;assert(binary[next]==="l".charCodeAt(0));next++;assert(binary[next]==="i".charCodeAt(0));next++;assert(binary[next]==="n".charCodeAt(0));next++;assert(binary[next]==="k".charCodeAt(0));next++}var customSection={};customSection.memorySize=getLEB();customSection.memoryAlign=getLEB();customSection.tableSize=getLEB();customSection.tableAlign=getLEB();var neededDynlibsCount=getLEB();customSection.neededDynlibs=[];for(var i=0;i>2]=stdTimezoneOffset*60;HEAP32[__get_daylight()>>2]=Number(winterOffset!=summerOffset);function extractZone(date){var match=date.toTimeString().match(/\(([A-Za-z ]+)\)$/);return match?match[1]:"GMT"}var winterName=extractZone(winter);var summerName=extractZone(summer);var winterNamePtr=allocateUTF8(winterName);var summerNamePtr=allocateUTF8(summerName);if(summerOffset>2]=winterNamePtr;HEAP32[__get_tzname()+4>>2]=summerNamePtr}else{HEAP32[__get_tzname()>>2]=summerNamePtr;HEAP32[__get_tzname()+4>>2]=winterNamePtr}}Module["_tzset_impl"]=_tzset_impl;_tzset_impl.sig="v";function _tzset(){if(_tzset.called)return;_tzset.called=true;_tzset_impl()}Module["_tzset"]=_tzset;_tzset.sig="v";function _mktime(tmPtr){_tzset();var date=new Date(HEAP32[tmPtr+20>>2]+1900,HEAP32[tmPtr+16>>2],HEAP32[tmPtr+12>>2],HEAP32[tmPtr+8>>2],HEAP32[tmPtr+4>>2],HEAP32[tmPtr>>2],0);var dst=HEAP32[tmPtr+32>>2];var guessedOffset=date.getTimezoneOffset();var start=new Date(date.getFullYear(),0,1);var summerOffset=new Date(date.getFullYear(),6,1).getTimezoneOffset();var winterOffset=start.getTimezoneOffset();var dstOffset=Math.min(winterOffset,summerOffset);if(dst<0){HEAP32[tmPtr+32>>2]=Number(summerOffset!=winterOffset&&dstOffset==guessedOffset)}else if(dst>0!=(dstOffset==guessedOffset)){var nonDstOffset=Math.max(winterOffset,summerOffset);var trueOffset=dst>0?dstOffset:nonDstOffset;date.setTime(date.getTime()+(trueOffset-guessedOffset)*6e4)}HEAP32[tmPtr+24>>2]=date.getDay();var yday=(date.getTime()-start.getTime())/(1e3*60*60*24)|0;HEAP32[tmPtr+28>>2]=yday;HEAP32[tmPtr>>2]=date.getSeconds();HEAP32[tmPtr+4>>2]=date.getMinutes();HEAP32[tmPtr+8>>2]=date.getHours();HEAP32[tmPtr+12>>2]=date.getDate();HEAP32[tmPtr+16>>2]=date.getMonth();return date.getTime()/1e3|0}Module["_mktime"]=_mktime;_mktime.sig="ii";function ___asctime(tmPtr,buf){var date={tm_sec:HEAP32[tmPtr>>2],tm_min:HEAP32[tmPtr+4>>2],tm_hour:HEAP32[tmPtr+8>>2],tm_mday:HEAP32[tmPtr+12>>2],tm_mon:HEAP32[tmPtr+16>>2],tm_year:HEAP32[tmPtr+20>>2],tm_wday:HEAP32[tmPtr+24>>2]};var days=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"];var months=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];var s=days[date.tm_wday]+" "+months[date.tm_mon]+(date.tm_mday<10?" ":" ")+date.tm_mday+(date.tm_hour<10?" 0":" ")+date.tm_hour+(date.tm_min<10?":0":":")+date.tm_min+(date.tm_sec<10?":0":":")+date.tm_sec+" "+(1900+date.tm_year)+"\n";stringToUTF8(s,buf,26);return buf}Module["___asctime"]=___asctime;___asctime.sig="iii";function ___assert_fail(condition,filename,line,func){abort("Assertion failed: "+UTF8ToString(condition)+", at: "+[filename?UTF8ToString(filename):"unknown filename",line,func?UTF8ToString(func):"unknown function"])}Module["___assert_fail"]=___assert_fail;___assert_fail.sig="viiii";var _emscripten_get_now_is_monotonic=true;Module["_emscripten_get_now_is_monotonic"]=_emscripten_get_now_is_monotonic;function setErrNo(value){HEAP32[___errno_location()>>2]=value;return value}Module["setErrNo"]=setErrNo;function _clock_gettime(clk_id,tp){var now;if(clk_id===0){now=Date.now()}else if((clk_id===1||clk_id===4)&&_emscripten_get_now_is_monotonic){now=_emscripten_get_now()}else{setErrNo(28);return-1}HEAP32[tp>>2]=now/1e3|0;HEAP32[tp+4>>2]=now%1e3*1e3*1e3|0;return 0}Module["_clock_gettime"]=_clock_gettime;_clock_gettime.sig="iii";function ___clock_gettime(a0,a1){return _clock_gettime(a0,a1)}Module["___clock_gettime"]=___clock_gettime;___clock_gettime.sig="iii";function ___cxa_allocate_exception(size){return _malloc(size+16)+16}Module["___cxa_allocate_exception"]=___cxa_allocate_exception;___cxa_allocate_exception.sig="vi";function _atexit(func,arg){}Module["_atexit"]=_atexit;_atexit.sig="iii";function ___cxa_atexit(a0,a1){return _atexit(a0,a1)}Module["___cxa_atexit"]=___cxa_atexit;___cxa_atexit.sig="iii";function ExceptionInfo(excPtr){this.excPtr=excPtr;this.ptr=excPtr-16;this.set_type=function(type){HEAP32[this.ptr+4>>2]=type};this.get_type=function(){return HEAP32[this.ptr+4>>2]};this.set_destructor=function(destructor){HEAP32[this.ptr+8>>2]=destructor};this.get_destructor=function(){return HEAP32[this.ptr+8>>2]};this.set_refcount=function(refcount){HEAP32[this.ptr>>2]=refcount};this.set_caught=function(caught){caught=caught?1:0;HEAP8[this.ptr+12>>0]=caught};this.get_caught=function(){return HEAP8[this.ptr+12>>0]!=0};this.set_rethrown=function(rethrown){rethrown=rethrown?1:0;HEAP8[this.ptr+13>>0]=rethrown};this.get_rethrown=function(){return HEAP8[this.ptr+13>>0]!=0};this.init=function(type,destructor){this.set_type(type);this.set_destructor(destructor);this.set_refcount(0);this.set_caught(false);this.set_rethrown(false)};this.add_ref=function(){var value=HEAP32[this.ptr>>2];HEAP32[this.ptr>>2]=value+1};this.release_ref=function(){var prev=HEAP32[this.ptr>>2];HEAP32[this.ptr>>2]=prev-1;return prev===1}}Module["ExceptionInfo"]=ExceptionInfo;function CatchInfo(ptr){this.free=function(){_free(this.ptr);this.ptr=0};this.set_base_ptr=function(basePtr){HEAP32[this.ptr>>2]=basePtr};this.get_base_ptr=function(){return HEAP32[this.ptr>>2]};this.set_adjusted_ptr=function(adjustedPtr){HEAP32[this.ptr+4>>2]=adjustedPtr};this.get_adjusted_ptr_addr=function(){return this.ptr+4};this.get_adjusted_ptr=function(){return HEAP32[this.ptr+4>>2]};this.get_exception_ptr=function(){var isPointer=Module["___cxa_is_pointer_type"](this.get_exception_info().get_type());if(isPointer){return HEAP32[this.get_base_ptr()>>2]}var adjusted=this.get_adjusted_ptr();if(adjusted!==0)return adjusted;return this.get_base_ptr()};this.get_exception_info=function(){return new ExceptionInfo(this.get_base_ptr())};if(ptr===undefined){this.ptr=_malloc(8);this.set_adjusted_ptr(0)}else{this.ptr=ptr}}Module["CatchInfo"]=CatchInfo;var exceptionCaught=[];Module["exceptionCaught"]=exceptionCaught;function exception_addRef(info){info.add_ref()}Module["exception_addRef"]=exception_addRef;var uncaughtExceptionCount=0;Module["uncaughtExceptionCount"]=uncaughtExceptionCount;function ___cxa_begin_catch(ptr){var catchInfo=new CatchInfo(ptr);var info=catchInfo.get_exception_info();if(!info.get_caught()){info.set_caught(true);uncaughtExceptionCount--}info.set_rethrown(false);exceptionCaught.push(catchInfo);exception_addRef(info);return catchInfo.get_exception_ptr()}Module["___cxa_begin_catch"]=___cxa_begin_catch;function ___cxa_current_primary_exception(){if(!exceptionCaught.length){return 0}var catchInfo=exceptionCaught[exceptionCaught.length-1];exception_addRef(catchInfo.get_exception_info());return catchInfo.get_base_ptr()}Module["___cxa_current_primary_exception"]=___cxa_current_primary_exception;function ___cxa_free_exception(ptr){return _free(new ExceptionInfo(ptr).ptr)}Module["___cxa_free_exception"]=___cxa_free_exception;___cxa_free_exception.sig="vi";function exception_decRef(info){if(info.release_ref()&&!info.get_rethrown()){var destructor=info.get_destructor();if(destructor){wasmTable.get(destructor)(info.excPtr)}___cxa_free_exception(info.excPtr)}}Module["exception_decRef"]=exception_decRef;function ___cxa_decrement_exception_refcount(ptr){if(!ptr)return;exception_decRef(new ExceptionInfo(ptr))}Module["___cxa_decrement_exception_refcount"]=___cxa_decrement_exception_refcount;var exceptionLast=0;Module["exceptionLast"]=exceptionLast;function ___cxa_end_catch(){_setThrew(0);var catchInfo=exceptionCaught.pop();exception_decRef(catchInfo.get_exception_info());catchInfo.free();exceptionLast=0}Module["___cxa_end_catch"]=___cxa_end_catch;___cxa_end_catch.sig="v";function ___resumeException(catchInfoPtr){var catchInfo=new CatchInfo(catchInfoPtr);var ptr=catchInfo.get_base_ptr();if(!exceptionLast){exceptionLast=ptr}catchInfo.free();throw ptr}Module["___resumeException"]=___resumeException;function ___cxa_find_matching_catch_2(){var thrown=exceptionLast;if(!thrown){setTempRet0(0);return 0|0}var info=new ExceptionInfo(thrown);var thrownType=info.get_type();var catchInfo=new CatchInfo;catchInfo.set_base_ptr(thrown);catchInfo.set_adjusted_ptr(thrown);if(!thrownType){setTempRet0(0);return catchInfo.ptr|0}var typeArray=Array.prototype.slice.call(arguments);for(var i=0;i>2]*1e3);HEAP32[tmPtr>>2]=date.getUTCSeconds();HEAP32[tmPtr+4>>2]=date.getUTCMinutes();HEAP32[tmPtr+8>>2]=date.getUTCHours();HEAP32[tmPtr+12>>2]=date.getUTCDate();HEAP32[tmPtr+16>>2]=date.getUTCMonth();HEAP32[tmPtr+20>>2]=date.getUTCFullYear()-1900;HEAP32[tmPtr+24>>2]=date.getUTCDay();HEAP32[tmPtr+36>>2]=0;HEAP32[tmPtr+32>>2]=0;var start=Date.UTC(date.getUTCFullYear(),0,1,0,0,0,0);var yday=(date.getTime()-start)/(1e3*60*60*24)|0;HEAP32[tmPtr+28>>2]=yday;if(!_gmtime_r.GMTString)_gmtime_r.GMTString=allocateUTF8("GMT");HEAP32[tmPtr+40>>2]=_gmtime_r.GMTString;return tmPtr}Module["_gmtime_r"]=_gmtime_r;_gmtime_r.sig="iii";function ___gmtime_r(a0,a1){return _gmtime_r(a0,a1)}Module["___gmtime_r"]=___gmtime_r;___gmtime_r.sig="iii";function _localtime_r(time,tmPtr){_tzset();var date=new Date(HEAP32[time>>2]*1e3);HEAP32[tmPtr>>2]=date.getSeconds();HEAP32[tmPtr+4>>2]=date.getMinutes();HEAP32[tmPtr+8>>2]=date.getHours();HEAP32[tmPtr+12>>2]=date.getDate();HEAP32[tmPtr+16>>2]=date.getMonth();HEAP32[tmPtr+20>>2]=date.getFullYear()-1900;HEAP32[tmPtr+24>>2]=date.getDay();var start=new Date(date.getFullYear(),0,1);var yday=(date.getTime()-start.getTime())/(1e3*60*60*24)|0;HEAP32[tmPtr+28>>2]=yday;HEAP32[tmPtr+36>>2]=-(date.getTimezoneOffset()*60);var summerOffset=new Date(date.getFullYear(),6,1).getTimezoneOffset();var winterOffset=start.getTimezoneOffset();var dst=(summerOffset!=winterOffset&&date.getTimezoneOffset()==Math.min(winterOffset,summerOffset))|0;HEAP32[tmPtr+32>>2]=dst;var zonePtr=HEAP32[__get_tzname()+(dst?4:0)>>2];HEAP32[tmPtr+40>>2]=zonePtr;return tmPtr}Module["_localtime_r"]=_localtime_r;_localtime_r.sig="iii";function ___localtime_r(a0,a1){return _localtime_r(a0,a1)}Module["___localtime_r"]=___localtime_r;___localtime_r.sig="iii";function ___map_file(pathname,size){setErrNo(63);return-1}Module["___map_file"]=___map_file;var __sigalrm_handler=0;Module["__sigalrm_handler"]=__sigalrm_handler;function ___sigaction(sig,act,oldact){if(sig==14){__sigalrm_handler=HEAP32[act>>2];return 0}return 0}Module["___sigaction"]=___sigaction;___sigaction.sig="viii";var ___stack_pointer=new WebAssembly.Global({"value":"i32","mutable":true},8404752);Module["___stack_pointer"]=___stack_pointer;var PATH={splitPath:function(filename){var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts},normalize:function(path){var isAbsolute=path.charAt(0)==="/",trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:function(path){if(path==="/")return"/";path=PATH.normalize(path);path=path.replace(/\/$/,"");var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join("/"))},join2:function(l,r){return PATH.normalize(l+"/"+r)}};Module["PATH"]=PATH;function getRandomDevice(){if(typeof crypto==="object"&&typeof crypto["getRandomValues"]==="function"){var randomBuffer=new Uint8Array(1);return function(){crypto.getRandomValues(randomBuffer);return randomBuffer[0]}}else if(ENVIRONMENT_IS_NODE){try{var crypto_module=require("crypto");return function(){return crypto_module["randomBytes"](1)[0]}}catch(e){}}return function(){abort("randomDevice")}}Module["getRandomDevice"]=getRandomDevice;var PATH_FS={resolve:function(){var resolvedPath="",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:FS.cwd();if(typeof path!=="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=path.charAt(0)==="/"}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(function(p){return!!p}),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:function(from,to){from=PATH_FS.resolve(from).substr(1);to=PATH_FS.resolve(to).substr(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i0){result=buf.slice(0,bytesRead).toString("utf-8")}else{result=null}}else if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else if(typeof readline=="function"){result=readline();if(result!==null){result+="\n"}}if(!result){return null}tty.input=intArrayFromString(result,true)}return tty.input.shift()},put_char:function(tty,val){if(val===null||val===10){out(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){out(UTF8ArrayToString(tty.output,0));tty.output=[]}}},default_tty1_ops:{put_char:function(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output,0));tty.output=[]}}}};Module["TTY"]=TTY;function zeroMemory(address,size){HEAPU8.fill(0,address,address+size)}Module["zeroMemory"]=zeroMemory;function mmapAlloc(size){size=alignMemory(size,65536);var ptr=_memalign(65536,size);if(!ptr)return 0;zeroMemory(ptr,size);return ptr}Module["mmapAlloc"]=mmapAlloc;var MEMFS={ops_table:null,mount:function(mount){return MEMFS.createNode(null,"/",16384|511,0)},createNode:function(parent,name,mode,dev){if(FS.isBlkdev(mode)||FS.isFIFO(mode)){throw new FS.ErrnoError(63)}if(!MEMFS.ops_table){MEMFS.ops_table={dir:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,lookup:MEMFS.node_ops.lookup,mknod:MEMFS.node_ops.mknod,rename:MEMFS.node_ops.rename,unlink:MEMFS.node_ops.unlink,rmdir:MEMFS.node_ops.rmdir,readdir:MEMFS.node_ops.readdir,symlink:MEMFS.node_ops.symlink},stream:{llseek:MEMFS.stream_ops.llseek}},file:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:{llseek:MEMFS.stream_ops.llseek,read:MEMFS.stream_ops.read,write:MEMFS.stream_ops.write,allocate:MEMFS.stream_ops.allocate,mmap:MEMFS.stream_ops.mmap,msync:MEMFS.stream_ops.msync}},link:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,readlink:MEMFS.node_ops.readlink},stream:{}},chrdev:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:FS.chrdev_stream_ops}}}var node=FS.createNode(parent,name,mode,dev);if(FS.isDir(node.mode)){node.node_ops=MEMFS.ops_table.dir.node;node.stream_ops=MEMFS.ops_table.dir.stream;node.contents={}}else if(FS.isFile(node.mode)){node.node_ops=MEMFS.ops_table.file.node;node.stream_ops=MEMFS.ops_table.file.stream;node.usedBytes=0;node.contents=null}else if(FS.isLink(node.mode)){node.node_ops=MEMFS.ops_table.link.node;node.stream_ops=MEMFS.ops_table.link.stream}else if(FS.isChrdev(node.mode)){node.node_ops=MEMFS.ops_table.chrdev.node;node.stream_ops=MEMFS.ops_table.chrdev.stream}node.timestamp=Date.now();if(parent){parent.contents[name]=node;parent.timestamp=node.timestamp}return node},getFileDataAsTypedArray:function(node){if(!node.contents)return new Uint8Array(0);if(node.contents.subarray)return node.contents.subarray(0,node.usedBytes);return new Uint8Array(node.contents)},expandFileStorage:function(node,newCapacity){var prevCapacity=node.contents?node.contents.length:0;if(prevCapacity>=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity>>0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0)},resizeFileStorage:function(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0}else{var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize}},node_ops:{getattr:function(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.timestamp);attr.mtime=new Date(node.timestamp);attr.ctime=new Date(node.timestamp);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr:function(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup:function(parent,name){throw FS.genericErrors[44]},mknod:function(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename:function(old_node,new_dir,new_name){if(FS.isDir(old_node.mode)){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){for(var i in new_node.contents){throw new FS.ErrnoError(55)}}}delete old_node.parent.contents[old_node.name];old_node.parent.timestamp=Date.now();old_node.name=new_name;new_dir.contents[new_name]=old_node;new_dir.timestamp=old_node.parent.timestamp;old_node.parent=new_dir},unlink:function(parent,name){delete parent.contents[name];parent.timestamp=Date.now()},rmdir:function(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55)}delete parent.contents[name];parent.timestamp=Date.now()},readdir:function(node){var entries=[".",".."];for(var key in node.contents){if(!node.contents.hasOwnProperty(key)){continue}entries.push(key)}return entries},symlink:function(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink:function(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read:function(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+length>2}}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(NODEFS.convertNodeCode(e))}return stat.mode},realPath:function(node){var parts=[];while(node.parent!==node){parts.push(node.name);node=node.parent}parts.push(node.mount.opts.root);parts.reverse();return PATH.join.apply(null,parts)},flagsForNode:function(flags){flags&=~2097152;flags&=~2048;flags&=~32768;flags&=~524288;var newFlags=0;for(var k in NODEFS.flagsForNodeMap){if(flags&k){newFlags|=NODEFS.flagsForNodeMap[k];flags^=k}}if(!flags){return newFlags}else{throw new FS.ErrnoError(28)}},node_ops:{getattr:function(node){var path=NODEFS.realPath(node);var stat;try{stat=fs.lstatSync(path)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(NODEFS.convertNodeCode(e))}if(NODEFS.isWindows&&!stat.blksize){stat.blksize=4096}if(NODEFS.isWindows&&!stat.blocks){stat.blocks=(stat.size+stat.blksize-1)/stat.blksize|0}return{dev:stat.dev,ino:stat.ino,mode:stat.mode,nlink:stat.nlink,uid:stat.uid,gid:stat.gid,rdev:stat.rdev,size:stat.size,atime:stat.atime,mtime:stat.mtime,ctime:stat.ctime,blksize:stat.blksize,blocks:stat.blocks}},setattr:function(node,attr){var path=NODEFS.realPath(node);try{if(attr.mode!==undefined){fs.chmodSync(path,attr.mode);node.mode=attr.mode}if(attr.timestamp!==undefined){var date=new Date(attr.timestamp);fs.utimesSync(path,date,date)}if(attr.size!==undefined){fs.truncateSync(path,attr.size)}}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(NODEFS.convertNodeCode(e))}},lookup:function(parent,name){var path=PATH.join2(NODEFS.realPath(parent),name);var mode=NODEFS.getMode(path);return NODEFS.createNode(parent,name,mode)},mknod:function(parent,name,mode,dev){var node=NODEFS.createNode(parent,name,mode,dev);var path=NODEFS.realPath(node);try{if(FS.isDir(node.mode)){fs.mkdirSync(path,node.mode)}else{fs.writeFileSync(path,"",{mode:node.mode})}}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(NODEFS.convertNodeCode(e))}return node},rename:function(oldNode,newDir,newName){var oldPath=NODEFS.realPath(oldNode);var newPath=PATH.join2(NODEFS.realPath(newDir),newName);try{fs.renameSync(oldPath,newPath)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(NODEFS.convertNodeCode(e))}oldNode.name=newName},unlink:function(parent,name){var path=PATH.join2(NODEFS.realPath(parent),name);try{fs.unlinkSync(path)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(NODEFS.convertNodeCode(e))}},rmdir:function(parent,name){var path=PATH.join2(NODEFS.realPath(parent),name);try{fs.rmdirSync(path)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(NODEFS.convertNodeCode(e))}},readdir:function(node){var path=NODEFS.realPath(node);try{return fs.readdirSync(path)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(NODEFS.convertNodeCode(e))}},symlink:function(parent,newName,oldPath){var newPath=PATH.join2(NODEFS.realPath(parent),newName);try{fs.symlinkSync(oldPath,newPath)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(NODEFS.convertNodeCode(e))}},readlink:function(node){var path=NODEFS.realPath(node);try{path=fs.readlinkSync(path);path=NODEJS_PATH.relative(NODEJS_PATH.resolve(node.mount.opts.root),path);return path}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(NODEFS.convertNodeCode(e))}}},stream_ops:{open:function(stream){var path=NODEFS.realPath(stream.node);try{if(FS.isFile(stream.node.mode)){stream.nfd=fs.openSync(path,NODEFS.flagsForNode(stream.flags))}}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(NODEFS.convertNodeCode(e))}},close:function(stream){try{if(FS.isFile(stream.node.mode)&&stream.nfd){fs.closeSync(stream.nfd)}}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(NODEFS.convertNodeCode(e))}},read:function(stream,buffer,offset,length,position){if(length===0)return 0;try{return fs.readSync(stream.nfd,Buffer.from(buffer.buffer),offset,length,position)}catch(e){throw new FS.ErrnoError(NODEFS.convertNodeCode(e))}},write:function(stream,buffer,offset,length,position){try{return fs.writeSync(stream.nfd,Buffer.from(buffer.buffer),offset,length,position)}catch(e){throw new FS.ErrnoError(NODEFS.convertNodeCode(e))}},llseek:function(stream,offset,whence){var position=offset;if(whence===1){position+=stream.position}else if(whence===2){if(FS.isFile(stream.node.mode)){try{var stat=fs.fstatSync(stream.nfd);position+=stat.size}catch(e){throw new FS.ErrnoError(NODEFS.convertNodeCode(e))}}}if(position<0){throw new FS.ErrnoError(28)}return position},mmap:function(stream,address,length,position,prot,flags){if(address!==0){throw new FS.ErrnoError(28)}if(!FS.isFile(stream.node.mode)){throw new FS.ErrnoError(43)}var ptr=mmapAlloc(length);NODEFS.stream_ops.read(stream,HEAP8,ptr,length,position);return{ptr:ptr,allocated:true}},msync:function(stream,buffer,offset,length,mmapFlags){if(!FS.isFile(stream.node.mode)){throw new FS.ErrnoError(43)}if(mmapFlags&2){return 0}var bytesWritten=NODEFS.stream_ops.write(stream,buffer,0,length,offset,false);return 0}}};Module["NODEFS"]=NODEFS;var WORKERFS={DIR_MODE:16895,FILE_MODE:33279,reader:null,mount:function(mount){assert(ENVIRONMENT_IS_WORKER);if(!WORKERFS.reader)WORKERFS.reader=new FileReaderSync;var root=WORKERFS.createNode(null,"/",WORKERFS.DIR_MODE,0);var createdParents={};function ensureParent(path){var parts=path.split("/");var parent=root;for(var i=0;i=stream.node.size)return 0;var chunk=stream.node.contents.slice(position,position+length);var ab=WORKERFS.reader.readAsArrayBuffer(chunk);buffer.set(new Uint8Array(ab),offset);return chunk.size},write:function(stream,buffer,offset,length,position){throw new FS.ErrnoError(29)},llseek:function(stream,offset,whence){var position=offset;if(whence===1){position+=stream.position}else if(whence===2){if(FS.isFile(stream.node.mode)){position+=stream.node.size}}if(position<0){throw new FS.ErrnoError(28)}return position}}};Module["WORKERFS"]=WORKERFS;var PROXYFS={mount:function(mount){return PROXYFS.createNode(null,"/",mount.opts.fs.lstat(mount.opts.root).mode,0)},createNode:function(parent,name,mode,dev){if(!FS.isDir(mode)&&!FS.isFile(mode)&&!FS.isLink(mode)){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}var node=FS.createNode(parent,name,mode);node.node_ops=PROXYFS.node_ops;node.stream_ops=PROXYFS.stream_ops;return node},realPath:function(node){var parts=[];while(node.parent!==node){parts.push(node.name);node=node.parent}parts.push(node.mount.opts.root);parts.reverse();return PATH.join.apply(null,parts)},node_ops:{getattr:function(node){var path=PROXYFS.realPath(node);var stat;try{stat=node.mount.opts.fs.lstat(path)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}return{dev:stat.dev,ino:stat.ino,mode:stat.mode,nlink:stat.nlink,uid:stat.uid,gid:stat.gid,rdev:stat.rdev,size:stat.size,atime:stat.atime,mtime:stat.mtime,ctime:stat.ctime,blksize:stat.blksize,blocks:stat.blocks}},setattr:function(node,attr){var path=PROXYFS.realPath(node);try{if(attr.mode!==undefined){node.mount.opts.fs.chmod(path,attr.mode);node.mode=attr.mode}if(attr.timestamp!==undefined){var date=new Date(attr.timestamp);node.mount.opts.fs.utime(path,date,date)}if(attr.size!==undefined){node.mount.opts.fs.truncate(path,attr.size)}}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}},lookup:function(parent,name){try{var path=PATH.join2(PROXYFS.realPath(parent),name);var mode=parent.mount.opts.fs.lstat(path).mode;var node=PROXYFS.createNode(parent,name,mode);return node}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}},mknod:function(parent,name,mode,dev){var node=PROXYFS.createNode(parent,name,mode,dev);var path=PROXYFS.realPath(node);try{if(FS.isDir(node.mode)){node.mount.opts.fs.mkdir(path,node.mode)}else{node.mount.opts.fs.writeFile(path,"",{mode:node.mode})}}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}return node},rename:function(oldNode,newDir,newName){var oldPath=PROXYFS.realPath(oldNode);var newPath=PATH.join2(PROXYFS.realPath(newDir),newName);try{oldNode.mount.opts.fs.rename(oldPath,newPath)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}},unlink:function(parent,name){var path=PATH.join2(PROXYFS.realPath(parent),name);try{parent.mount.opts.fs.unlink(path)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}},rmdir:function(parent,name){var path=PATH.join2(PROXYFS.realPath(parent),name);try{parent.mount.opts.fs.rmdir(path)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}},readdir:function(node){var path=PROXYFS.realPath(node);try{return node.mount.opts.fs.readdir(path)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}},symlink:function(parent,newName,oldPath){var newPath=PATH.join2(PROXYFS.realPath(parent),newName);try{parent.mount.opts.fs.symlink(oldPath,newPath)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}},readlink:function(node){var path=PROXYFS.realPath(node);try{return node.mount.opts.fs.readlink(path)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}},stream_ops:{open:function(stream){var path=PROXYFS.realPath(stream.node);try{stream.nfd=stream.node.mount.opts.fs.open(path,stream.flags)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}},close:function(stream){try{stream.node.mount.opts.fs.close(stream.nfd)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}},read:function(stream,buffer,offset,length,position){try{return stream.node.mount.opts.fs.read(stream.nfd,buffer,offset,length,position)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}},write:function(stream,buffer,offset,length,position){try{return stream.node.mount.opts.fs.write(stream.nfd,buffer,offset,length,position)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}},llseek:function(stream,offset,whence){var position=offset;if(whence===1){position+=stream.position}else if(whence===2){if(FS.isFile(stream.node.mode)){try{var stat=stream.node.node_ops.getattr(stream.node);position+=stat.size}catch(e){throw new FS.ErrnoError(ERRNO_CODES[e.code])}}}if(position<0){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}return position}}};Module["PROXYFS"]=PROXYFS;var LZ4={DIR_MODE:16895,FILE_MODE:33279,CHUNK_SIZE:-1,codec:null,init:function(){if(LZ4.codec)return;LZ4.codec=function(){var MiniLZ4=function(){var exports={};exports.uncompress=function(input,output,sIdx,eIdx){sIdx=sIdx||0;eIdx=eIdx||input.length-sIdx;for(var i=sIdx,n=eIdx,j=0;i>4;if(literals_length>0){var l=literals_length+240;while(l===255){l=input[i++];literals_length+=l}var end=i+literals_length;while(ij)return-(i-2);var match_length=token&15;var l=match_length+240;while(l===255){l=input[i++];match_length+=l}var pos=j-offset;var end=j+match_length+4;while(jmaxInputSize?0:isize+isize/255+16|0};exports.compress=function(src,dst,sIdx,eIdx){hashTable.set(empty);return compressBlock(src,dst,0,sIdx||0,eIdx||dst.length)};function compressBlock(src,dst,pos,sIdx,eIdx){var dpos=sIdx;var dlen=eIdx-sIdx;var anchor=0;if(src.length>=maxInputSize)throw new Error("input too large");if(src.length>mfLimit){var n=exports.compressBound(src.length);if(dlen>>hashShift;var ref=hashTable[hash]-1;hashTable[hash]=pos+1;if(ref<0||pos-ref>>>16>0||((src[ref+3]<<8|src[ref+2])!=sequenceHighBits||(src[ref+1]<<8|src[ref])!=sequenceLowBits)){step=findMatchAttempts++>>skipStrength;pos+=step;continue}findMatchAttempts=(1<=runMask){dst[dpos++]=(runMask<254;len-=255){dst[dpos++]=255}dst[dpos++]=len}else{dst[dpos++]=(literals_length<>8;if(match_length>=mlMask){match_length-=mlMask;while(match_length>=255){match_length-=255;dst[dpos++]=255}dst[dpos++]=match_length}anchor=pos}}if(anchor==0)return 0;literals_length=src.length-anchor;if(literals_length>=runMask){dst[dpos++]=runMask<254;ln-=255){dst[dpos++]=255}dst[dpos++]=ln}else{dst[dpos++]=literals_length<0){assert(compressedSize<=bound);compressed=compressed.subarray(0,compressedSize);compressedChunks.push(compressed);total+=compressedSize;successes.push(1);if(verify){var back=exports.uncompress(compressed,temp);assert(back===chunk.length,[back,chunk.length]);for(var i=0;i=0){currChunk=compressedData["cachedChunks"][found]}else{compressedData["cachedIndexes"].pop();compressedData["cachedIndexes"].unshift(chunkIndex);currChunk=compressedData["cachedChunks"].pop();compressedData["cachedChunks"].unshift(currChunk);if(compressedData["debug"]){out("decompressing chunk "+chunkIndex);Module["decompressedChunks"]=(Module["decompressedChunks"]||0)+1}var compressed=compressedData["data"].subarray(compressedStart,compressedStart+compressedSize);var originalSize=LZ4.codec.uncompress(compressed,currChunk);if(chunkIndex8){throw new FS.ErrnoError(32)}var parts=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),false);var current=FS.root;var current_path="/";for(var i=0;i40){throw new FS.ErrnoError(32)}}}}return{path:current_path,node:current}},getPath:function(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?mount+"/"+path:mount+path}path=path?node.name+"/"+path:node.name;node=node.parent}},hashName:function(parentid,name){var hash=0;for(var i=0;i>>0)%FS.nameTable.length},hashAddNode:function(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode:function(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode:function(parent,name){var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode,parent)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode:function(parent,name,mode,rdev){var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode:function(node){FS.hashRemoveNode(node)},isRoot:function(node){return node===node.parent},isMountpoint:function(node){return!!node.mounted},isFile:function(mode){return(mode&61440)===32768},isDir:function(mode){return(mode&61440)===16384},isLink:function(mode){return(mode&61440)===40960},isChrdev:function(mode){return(mode&61440)===8192},isBlkdev:function(mode){return(mode&61440)===24576},isFIFO:function(mode){return(mode&61440)===4096},isSocket:function(mode){return(mode&49152)===49152},flagModes:{"r":0,"r+":2,"w":577,"w+":578,"a":1089,"a+":1090},modeStringToFlags:function(str){var flags=FS.flagModes[str];if(typeof flags==="undefined"){throw new Error("Unknown file open mode: "+str)}return flags},flagsToPermissionString:function(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms},nodePermissions:function(node,perms){if(FS.ignorePermissions){return 0}if(perms.includes("r")&&!(node.mode&292)){return 2}else if(perms.includes("w")&&!(node.mode&146)){return 2}else if(perms.includes("x")&&!(node.mode&73)){return 2}return 0},mayLookup:function(dir){var errCode=FS.nodePermissions(dir,"x");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate:function(dir,name){try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete:function(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,"wx");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen:function(node,flags){if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&512){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},MAX_OPEN_FDS:4096,nextfd:function(fd_start,fd_end){fd_start=fd_start||0;fd_end=fd_end||FS.MAX_OPEN_FDS;for(var fd=fd_start;fd<=fd_end;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStream:function(fd){return FS.streams[fd]},createStream:function(stream,fd_start,fd_end){if(!FS.FSStream){FS.FSStream=function(){};FS.FSStream.prototype={object:{get:function(){return this.node},set:function(val){this.node=val}},isRead:{get:function(){return(this.flags&2097155)!==1}},isWrite:{get:function(){return(this.flags&2097155)!==0}},isAppend:{get:function(){return this.flags&1024}},get flags(){return this.shared.flags},set flags(value){this.shared.flags=value},get position(){return this.shared.position},set position(value){this.shared.position=value}}}var newStream=new FS.FSStream;newStream.shared={};for(var p in stream){newStream[p]=stream[p]}stream=newStream;var fd=FS.nextfd(fd_start,fd_end);stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream:function(fd){FS.streams[fd]=null},chrdev_stream_ops:{open:function(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;if(stream.stream_ops.open){stream.stream_ops.open(stream)}},llseek:function(){throw new FS.ErrnoError(70)}},major:function(dev){return dev>>8},minor:function(dev){return dev&255},makedev:function(ma,mi){return ma<<8|mi},registerDevice:function(dev,ops){FS.devices[dev]={stream_ops:ops}},getDevice:function(dev){return FS.devices[dev]},getMounts:function(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push.apply(check,m.mounts)}return mounts},syncfs:function(populate,callback){if(typeof populate==="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err("warning: "+FS.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work")}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach(function(mount){if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount:function(type,opts,mountpoint){var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount:function(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach(function(hash){var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.includes(current.mount)){FS.destroyNode(current)}current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup:function(parent,name){return parent.node_ops.lookup(parent,name)},mknod:function(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(28)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},create:function(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir:function(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree:function(path,mode){var dirs=path.split("/");var d="";for(var i=0;ithis.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=function(from,to){if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);if(typeof Uint8Array!="undefined")xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}else{return intArrayFromString(xhr.responseText||"",true)}};var lazyArray=this;lazyArray.setDataGetter(function(chunkNum){var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]==="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]==="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true};if(typeof XMLHttpRequest!=="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array;Object.defineProperties(lazyArray,{length:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._length}},chunkSize:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}});var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach(function(key){var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){FS.forceLoadFile(node);return fn.apply(null,arguments)}});stream_ops.read=function stream_ops_read(stream,buffer,offset,length,position){FS.forceLoadFile(node);var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i>2]=stat.dev;HEAP32[buf+4>>2]=0;HEAP32[buf+8>>2]=stat.ino;HEAP32[buf+12>>2]=stat.mode;HEAP32[buf+16>>2]=stat.nlink;HEAP32[buf+20>>2]=stat.uid;HEAP32[buf+24>>2]=stat.gid;HEAP32[buf+28>>2]=stat.rdev;HEAP32[buf+32>>2]=0;tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+40>>2]=tempI64[0],HEAP32[buf+44>>2]=tempI64[1];HEAP32[buf+48>>2]=4096;HEAP32[buf+52>>2]=stat.blocks;HEAP32[buf+56>>2]=stat.atime.getTime()/1e3|0;HEAP32[buf+60>>2]=0;HEAP32[buf+64>>2]=stat.mtime.getTime()/1e3|0;HEAP32[buf+68>>2]=0;HEAP32[buf+72>>2]=stat.ctime.getTime()/1e3|0;HEAP32[buf+76>>2]=0;tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+80>>2]=tempI64[0],HEAP32[buf+84>>2]=tempI64[1];return 0},doMsync:function(addr,stream,len,flags,offset){var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},doMkdir:function(path,mode){path=PATH.normalize(path);if(path[path.length-1]==="/")path=path.substr(0,path.length-1);FS.mkdir(path,mode,0);return 0},doMknod:function(path,mode,dev){switch(mode&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}FS.mknod(path,mode,dev);return 0},doReadlink:function(path,buf,bufsize){if(bufsize<=0)return-28;var ret=FS.readlink(path);var len=Math.min(bufsize,lengthBytesUTF8(ret));var endChar=HEAP8[buf+len];stringToUTF8(ret,buf,bufsize+1);HEAP8[buf+len]=endChar;return len},doAccess:function(path,amode){if(amode&~7){return-28}var node;var lookup=FS.lookupPath(path,{follow:true});node=lookup.node;if(!node){return-44}var perms="";if(amode&4)perms+="r";if(amode&2)perms+="w";if(amode&1)perms+="x";if(perms&&FS.nodePermissions(node,perms)){return-2}return 0},doDup:function(stream,suggestFD){var suggest=FS.getStream(suggestFD);if(suggest)FS.close(suggest);return FS.createStream(stream,suggestFD,suggestFD).fd},doReadv:function(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr}return ret},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},getStreamFromFD:function(fd){var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);return stream},get64:function(low,high){return low}};Module["SYSCALLS"]=SYSCALLS;function ___sys__newselect(nfds,readfds,writefds,exceptfds,timeout){try{var total=0;var srcReadLow=readfds?HEAP32[readfds>>2]:0,srcReadHigh=readfds?HEAP32[readfds+4>>2]:0;var srcWriteLow=writefds?HEAP32[writefds>>2]:0,srcWriteHigh=writefds?HEAP32[writefds+4>>2]:0;var srcExceptLow=exceptfds?HEAP32[exceptfds>>2]:0,srcExceptHigh=exceptfds?HEAP32[exceptfds+4>>2]:0;var dstReadLow=0,dstReadHigh=0;var dstWriteLow=0,dstWriteHigh=0;var dstExceptLow=0,dstExceptHigh=0;var allLow=(readfds?HEAP32[readfds>>2]:0)|(writefds?HEAP32[writefds>>2]:0)|(exceptfds?HEAP32[exceptfds>>2]:0);var allHigh=(readfds?HEAP32[readfds+4>>2]:0)|(writefds?HEAP32[writefds+4>>2]:0)|(exceptfds?HEAP32[exceptfds+4>>2]:0);var check=function(fd,low,high,val){return fd<32?low&val:high&val};for(var fd=0;fd>2]=dstReadLow;HEAP32[readfds+4>>2]=dstReadHigh}if(writefds){HEAP32[writefds>>2]=dstWriteLow;HEAP32[writefds+4>>2]=dstWriteHigh}if(exceptfds){HEAP32[exceptfds>>2]=dstExceptLow;HEAP32[exceptfds+4>>2]=dstExceptHigh}return total}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}Module["___sys__newselect"]=___sys__newselect;var SOCKFS={mount:function(mount){Module["websocket"]=Module["websocket"]&&"object"===typeof Module["websocket"]?Module["websocket"]:{};Module["websocket"]._callbacks={};Module["websocket"]["on"]=function(event,callback){if("function"===typeof callback){this._callbacks[event]=callback}return this};Module["websocket"].emit=function(event,param){if("function"===typeof this._callbacks[event]){this._callbacks[event].call(this,param)}};return FS.createNode(null,"/",16384|511,0)},createSocket:function(family,type,protocol){type&=~526336;var streaming=type==1;if(protocol){assert(streaming==(protocol==6))}var sock={family:family,type:type,protocol:protocol,server:null,error:null,peers:{},pending:[],recv_queue:[],sock_ops:SOCKFS.websocket_sock_ops};var name=SOCKFS.nextname();var node=FS.createNode(SOCKFS.root,name,49152,0);node.sock=sock;var stream=FS.createStream({path:name,node:node,flags:2,seekable:false,stream_ops:SOCKFS.stream_ops});sock.stream=stream;return sock},getSocket:function(fd){var stream=FS.getStream(fd);if(!stream||!FS.isSocket(stream.node.mode)){return null}return stream.node.sock},stream_ops:{poll:function(stream){var sock=stream.node.sock;return sock.sock_ops.poll(sock)},ioctl:function(stream,request,varargs){var sock=stream.node.sock;return sock.sock_ops.ioctl(sock,request,varargs)},read:function(stream,buffer,offset,length,position){var sock=stream.node.sock;var msg=sock.sock_ops.recvmsg(sock,length);if(!msg){return 0}buffer.set(msg.buffer,offset);return msg.buffer.length},write:function(stream,buffer,offset,length,position){var sock=stream.node.sock;return sock.sock_ops.sendmsg(sock,buffer,offset,length)},close:function(stream){var sock=stream.node.sock;sock.sock_ops.close(sock)}},nextname:function(){if(!SOCKFS.nextname.current){SOCKFS.nextname.current=0}return"socket["+SOCKFS.nextname.current+++"]"},websocket_sock_ops:{createPeer:function(sock,addr,port){var ws;if(typeof addr==="object"){ws=addr;addr=null;port=null}if(ws){if(ws._socket){addr=ws._socket.remoteAddress;port=ws._socket.remotePort}else{var result=/ws[s]?:\/\/([^:]+):(\d+)/.exec(ws.url);if(!result){throw new Error("WebSocket URL must be in the format ws(s)://address:port")}addr=result[1];port=parseInt(result[2],10)}}else{try{var runtimeConfig=Module["websocket"]&&"object"===typeof Module["websocket"];var url="ws:#".replace("#","//");if(runtimeConfig){if("string"===typeof Module["websocket"]["url"]){url=Module["websocket"]["url"]}}if(url==="ws://"||url==="wss://"){var parts=addr.split("/");url=url+parts[0]+":"+port+"/"+parts.slice(1).join("/")}var subProtocols="binary";if(runtimeConfig){if("string"===typeof Module["websocket"]["subprotocol"]){subProtocols=Module["websocket"]["subprotocol"]}}var opts=undefined;if(subProtocols!=="null"){subProtocols=subProtocols.replace(/^ +| +$/g,"").split(/ *, */);opts=ENVIRONMENT_IS_NODE?{"protocol":subProtocols.toString()}:subProtocols}if(runtimeConfig&&null===Module["websocket"]["subprotocol"]){subProtocols="null";opts=undefined}var WebSocketConstructor;if(ENVIRONMENT_IS_NODE){WebSocketConstructor=require("ws")}else{WebSocketConstructor=WebSocket}ws=new WebSocketConstructor(url,opts);ws.binaryType="arraybuffer"}catch(e){throw new FS.ErrnoError(23)}}var peer={addr:addr,port:port,socket:ws,dgram_send_queue:[]};SOCKFS.websocket_sock_ops.addPeer(sock,peer);SOCKFS.websocket_sock_ops.handlePeerEvents(sock,peer);if(sock.type===2&&typeof sock.sport!=="undefined"){peer.dgram_send_queue.push(new Uint8Array([255,255,255,255,"p".charCodeAt(0),"o".charCodeAt(0),"r".charCodeAt(0),"t".charCodeAt(0),(sock.sport&65280)>>8,sock.sport&255]))}return peer},getPeer:function(sock,addr,port){return sock.peers[addr+":"+port]},addPeer:function(sock,peer){sock.peers[peer.addr+":"+peer.port]=peer},removePeer:function(sock,peer){delete sock.peers[peer.addr+":"+peer.port]},handlePeerEvents:function(sock,peer){var first=true;var handleOpen=function(){Module["websocket"].emit("open",sock.stream.fd);try{var queued=peer.dgram_send_queue.shift();while(queued){peer.socket.send(queued);queued=peer.dgram_send_queue.shift()}}catch(e){peer.socket.close()}};function handleMessage(data){if(typeof data==="string"){var encoder=new TextEncoder;data=encoder.encode(data)}else{assert(data.byteLength!==undefined);if(data.byteLength==0){return}else{data=new Uint8Array(data)}}var wasfirst=first;first=false;if(wasfirst&&data.length===10&&data[0]===255&&data[1]===255&&data[2]===255&&data[3]===255&&data[4]==="p".charCodeAt(0)&&data[5]==="o".charCodeAt(0)&&data[6]==="r".charCodeAt(0)&&data[7]==="t".charCodeAt(0)){var newport=data[8]<<8|data[9];SOCKFS.websocket_sock_ops.removePeer(sock,peer);peer.port=newport;SOCKFS.websocket_sock_ops.addPeer(sock,peer);return}sock.recv_queue.push({addr:peer.addr,port:peer.port,data:data});Module["websocket"].emit("message",sock.stream.fd)}if(ENVIRONMENT_IS_NODE){peer.socket.on("open",handleOpen);peer.socket.on("message",function(data,flags){if(!flags.binary){return}handleMessage(new Uint8Array(data).buffer)});peer.socket.on("close",function(){Module["websocket"].emit("close",sock.stream.fd)});peer.socket.on("error",function(error){sock.error=14;Module["websocket"].emit("error",[sock.stream.fd,sock.error,"ECONNREFUSED: Connection refused"])})}else{peer.socket.onopen=handleOpen;peer.socket.onclose=function(){Module["websocket"].emit("close",sock.stream.fd)};peer.socket.onmessage=function peer_socket_onmessage(event){handleMessage(event.data)};peer.socket.onerror=function(error){sock.error=14;Module["websocket"].emit("error",[sock.stream.fd,sock.error,"ECONNREFUSED: Connection refused"])}}},poll:function(sock){if(sock.type===1&&sock.server){return sock.pending.length?64|1:0}var mask=0;var dest=sock.type===1?SOCKFS.websocket_sock_ops.getPeer(sock,sock.daddr,sock.dport):null;if(sock.recv_queue.length||!dest||dest&&dest.socket.readyState===dest.socket.CLOSING||dest&&dest.socket.readyState===dest.socket.CLOSED){mask|=64|1}if(!dest||dest&&dest.socket.readyState===dest.socket.OPEN){mask|=4}if(dest&&dest.socket.readyState===dest.socket.CLOSING||dest&&dest.socket.readyState===dest.socket.CLOSED){mask|=16}return mask},ioctl:function(sock,request,arg){switch(request){case 21531:var bytes=0;if(sock.recv_queue.length){bytes=sock.recv_queue[0].data.length}HEAP32[arg>>2]=bytes;return 0;default:return 28}},close:function(sock){if(sock.server){try{sock.server.close()}catch(e){}sock.server=null}var peers=Object.keys(sock.peers);for(var i=0;i>>0}Module["inetPton4"]=inetPton4;function jstoi_q(str){return parseInt(str)}Module["jstoi_q"]=jstoi_q;function inetPton6(str){var words;var w,offset,z,i;var valid6regx=/^((?=.*::)(?!.*::.+::)(::)?([\dA-F]{1,4}:(:|\b)|){5}|([\dA-F]{1,4}:){6})((([\dA-F]{1,4}((?!\3)::|:\b|$))|(?!\2\3)){2}|(((2[0-4]|1\d|[1-9])?\d|25[0-5])\.?\b){4})$/i;var parts=[];if(!valid6regx.test(str)){return null}if(str==="::"){return[0,0,0,0,0,0,0,0]}if(str.startsWith("::")){str=str.replace("::","Z:")}else{str=str.replace("::",":Z:")}if(str.indexOf(".")>0){str=str.replace(new RegExp("[.]","g"),":");words=str.split(":");words[words.length-4]=jstoi_q(words[words.length-4])+jstoi_q(words[words.length-3])*256;words[words.length-3]=jstoi_q(words[words.length-2])+jstoi_q(words[words.length-1])*256;words=words.slice(0,words.length-2)}else{words=str.split(":")}offset=0;z=0;for(w=0;w>2]=16}HEAP16[sa>>1]=family;HEAP32[sa+4>>2]=addr;HEAP16[sa+2>>1]=_htons(port);break;case 10:addr=inetPton6(addr);zeroMemory(sa,28);if(addrlen){HEAP32[addrlen>>2]=28}HEAP32[sa>>2]=family;HEAP32[sa+8>>2]=addr[0];HEAP32[sa+12>>2]=addr[1];HEAP32[sa+16>>2]=addr[2];HEAP32[sa+20>>2]=addr[3];HEAP16[sa+2>>1]=_htons(port);break;default:return 5}return 0}Module["writeSockaddr"]=writeSockaddr;var DNS={address_map:{id:1,addrs:{},names:{}},lookup_name:function(name){var res=inetPton4(name);if(res!==null){return name}res=inetPton6(name);if(res!==null){return name}var addr;if(DNS.address_map.addrs[name]){addr=DNS.address_map.addrs[name]}else{var id=DNS.address_map.id++;assert(id<65535,"exceeded max address mappings of 65535");addr="172.29."+(id&255)+"."+(id&65280);DNS.address_map.names[addr]=name;DNS.address_map.addrs[name]=addr}return addr},lookup_addr:function(addr){if(DNS.address_map.names[addr]){return DNS.address_map.names[addr]}return null}};Module["DNS"]=DNS;function ___sys_accept4(fd,addr,addrlen,flags){try{var sock=getSocketFromFD(fd);var newsock=sock.sock_ops.accept(sock);if(addr){var errno=writeSockaddr(addr,newsock.family,DNS.lookup_name(newsock.daddr),newsock.dport,addrlen)}return newsock.stream.fd}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}Module["___sys_accept4"]=___sys_accept4;function ___sys_access(path,amode){try{path=SYSCALLS.getStr(path);return SYSCALLS.doAccess(path,amode)}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}Module["___sys_access"]=___sys_access;var ___sys_acct=function(){return-52};Module["___sys_acct"]=___sys_acct;function inetNtop4(addr){return(addr&255)+"."+(addr>>8&255)+"."+(addr>>16&255)+"."+(addr>>24&255)}Module["inetNtop4"]=inetNtop4;function inetNtop6(ints){var str="";var word=0;var longest=0;var lastzero=0;var zstart=0;var len=0;var i=0;var parts=[ints[0]&65535,ints[0]>>16,ints[1]&65535,ints[1]>>16,ints[2]&65535,ints[2]>>16,ints[3]&65535,ints[3]>>16];var hasipv4=true;var v4part="";for(i=0;i<5;i++){if(parts[i]!==0){hasipv4=false;break}}if(hasipv4){v4part=inetNtop4(parts[6]|parts[7]<<16);if(parts[5]===-1){str="::ffff:";str+=v4part;return str}if(parts[5]===0){str="::";if(v4part==="0.0.0.0")v4part="";if(v4part==="0.0.0.1")v4part="1";str+=v4part;return str}}for(word=0;word<8;word++){if(parts[word]===0){if(word-lastzero>1){len=0}lastzero=word;len++}if(len>longest){longest=len;zstart=word-longest+1}}for(word=0;word<8;word++){if(longest>1){if(parts[word]===0&&word>=zstart&&word>1];var port=_ntohs(HEAPU16[sa+2>>1]);var addr;switch(family){case 2:if(salen!==16){return{errno:28}}addr=HEAP32[sa+4>>2];addr=inetNtop4(addr);break;case 10:if(salen!==28){return{errno:28}}addr=[HEAP32[sa+8>>2],HEAP32[sa+12>>2],HEAP32[sa+16>>2],HEAP32[sa+20>>2]];addr=inetNtop6(addr);break;default:return{errno:5}}return{family:family,addr:addr,port:port}}Module["readSockaddr"]=readSockaddr;function getSocketAddress(addrp,addrlen,allowNull){if(allowNull&&addrp===0)return null;var info=readSockaddr(addrp,addrlen);if(info.errno)throw new FS.ErrnoError(info.errno);info.addr=DNS.lookup_addr(info.addr)||info.addr;return info}Module["getSocketAddress"]=getSocketAddress;function ___sys_bind(fd,addr,addrlen){try{var sock=getSocketFromFD(fd);var info=getSocketAddress(addr,addrlen);sock.sock_ops.bind(sock,info.addr,info.port);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}Module["___sys_bind"]=___sys_bind;function ___sys_chdir(path){try{path=SYSCALLS.getStr(path);FS.chdir(path);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}Module["___sys_chdir"]=___sys_chdir;function ___sys_chmod(path,mode){try{path=SYSCALLS.getStr(path);FS.chmod(path,mode);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}Module["___sys_chmod"]=___sys_chmod;function ___sys_chown32(path,owner,group){try{path=SYSCALLS.getStr(path);FS.chown(path,owner,group);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}Module["___sys_chown32"]=___sys_chown32;function ___sys_connect(fd,addr,addrlen){try{var sock=getSocketFromFD(fd);var info=getSocketAddress(addr,addrlen);sock.sock_ops.connect(sock,info.addr,info.port);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}Module["___sys_connect"]=___sys_connect;function ___sys_dup(fd){try{var old=SYSCALLS.getStreamFromFD(fd);return FS.createStream(old,0).fd}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}Module["___sys_dup"]=___sys_dup;function ___sys_dup2(oldfd,suggestFD){try{var old=SYSCALLS.getStreamFromFD(oldfd);if(old.fd===suggestFD)return suggestFD;return SYSCALLS.doDup(old,suggestFD)}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}Module["___sys_dup2"]=___sys_dup2;function ___sys_dup3(fd,suggestFD,flags){try{var old=SYSCALLS.getStreamFromFD(fd);if(old.fd===suggestFD)return-28;return SYSCALLS.doDup(old,suggestFD)}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}Module["___sys_dup3"]=___sys_dup3;function ___sys_fadvise64_64(fd,offset,len,advice){return 0}Module["___sys_fadvise64_64"]=___sys_fadvise64_64;function ___sys_fallocate(fd,mode,off_low,off_high,len_low,len_high){try{var stream=SYSCALLS.getStreamFromFD(fd);var offset=SYSCALLS.get64(off_low,off_high);var len=SYSCALLS.get64(len_low,len_high);FS.allocate(stream,offset,len);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}Module["___sys_fallocate"]=___sys_fallocate;function ___sys_fchdir(fd){try{var stream=SYSCALLS.getStreamFromFD(fd);FS.chdir(stream.path);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}Module["___sys_fchdir"]=___sys_fchdir;function ___sys_fchmod(fd,mode){try{FS.fchmod(fd,mode);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}Module["___sys_fchmod"]=___sys_fchmod;function ___sys_fchmodat(dirfd,path,mode,varargs){SYSCALLS.varargs=varargs;try{path=SYSCALLS.getStr(path);path=SYSCALLS.calculateAt(dirfd,path);FS.chmod(path,mode);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}Module["___sys_fchmodat"]=___sys_fchmodat;function ___sys_fchown32(fd,owner,group){try{FS.fchown(fd,owner,group);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}Module["___sys_fchown32"]=___sys_fchown32;function ___sys_fchownat(dirfd,path,owner,group,flags){try{path=SYSCALLS.getStr(path);path=SYSCALLS.calculateAt(dirfd,path);FS.chown(path,owner,group);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}Module["___sys_fchownat"]=___sys_fchownat;function ___sys_fcntl64(fd,cmd,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(cmd){case 0:{var arg=SYSCALLS.get();if(arg<0){return-28}var newStream;newStream=FS.createStream(stream,arg);return newStream.fd}case 1:case 2:return 0;case 3:return stream.flags;case 4:{var arg=SYSCALLS.get();stream.flags|=arg;return 0}case 12:{var arg=SYSCALLS.get();var offset=0;HEAP16[arg+offset>>1]=2;return 0}case 13:case 14:return 0;case 16:case 8:return-28;case 9:setErrNo(28);return-1;default:{return-28}}}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}Module["___sys_fcntl64"]=___sys_fcntl64;function ___sys_fdatasync(fd){try{var stream=SYSCALLS.getStreamFromFD(fd);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}Module["___sys_fdatasync"]=___sys_fdatasync;function ___sys_fstat64(fd,buf){try{var stream=SYSCALLS.getStreamFromFD(fd);return SYSCALLS.doStat(FS.stat,stream.path,buf)}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}Module["___sys_fstat64"]=___sys_fstat64;function ___sys_fstatat64(dirfd,path,buf,flags){try{path=SYSCALLS.getStr(path);var nofollow=flags&256;var allowEmpty=flags&4096;flags=flags&~4352;path=SYSCALLS.calculateAt(dirfd,path,allowEmpty);return SYSCALLS.doStat(nofollow?FS.lstat:FS.stat,path,buf)}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}Module["___sys_fstatat64"]=___sys_fstatat64;function ___sys_statfs64(path,size,buf){try{path=SYSCALLS.getStr(path);HEAP32[buf+4>>2]=4096;HEAP32[buf+40>>2]=4096;HEAP32[buf+8>>2]=1e6;HEAP32[buf+12>>2]=5e5;HEAP32[buf+16>>2]=5e5;HEAP32[buf+20>>2]=FS.nextInode;HEAP32[buf+24>>2]=1e6;HEAP32[buf+28>>2]=42;HEAP32[buf+44>>2]=2;HEAP32[buf+36>>2]=255;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}Module["___sys_statfs64"]=___sys_statfs64;function ___sys_fstatfs64(fd,size,buf){try{var stream=SYSCALLS.getStreamFromFD(fd);return ___sys_statfs64(0,size,buf)}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}Module["___sys_fstatfs64"]=___sys_fstatfs64;function ___sys_ftruncate64(fd,zero,low,high){try{var length=SYSCALLS.get64(low,high);FS.ftruncate(fd,length);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}Module["___sys_ftruncate64"]=___sys_ftruncate64;function ___sys_getcwd(buf,size){try{if(size===0)return-28;var cwd=FS.cwd();var cwdLengthInBytes=lengthBytesUTF8(cwd);if(size>>0,(tempDouble=id,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[dirp+pos>>2]=tempI64[0],HEAP32[dirp+pos+4>>2]=tempI64[1];tempI64=[(idx+1)*struct_size>>>0,(tempDouble=(idx+1)*struct_size,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[dirp+pos+8>>2]=tempI64[0],HEAP32[dirp+pos+12>>2]=tempI64[1];HEAP16[dirp+pos+16>>1]=280;HEAP8[dirp+pos+18>>0]=type;stringToUTF8(name,dirp+pos+19,256);pos+=struct_size;idx+=1}FS.llseek(stream,idx*struct_size,0);return pos}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}Module["___sys_getdents64"]=___sys_getdents64;function ___sys_getegid32(){return 0}Module["___sys_getegid32"]=___sys_getegid32;___sys_getegid32.sig="i";function ___sys_geteuid32(){return ___sys_getegid32()}Module["___sys_geteuid32"]=___sys_geteuid32;___sys_geteuid32.sig="i";function ___sys_getgid32(){return ___sys_getegid32()}Module["___sys_getgid32"]=___sys_getgid32;___sys_getgid32.sig="i";function ___sys_getgroups32(size,list){if(size<1)return-28;HEAP32[list>>2]=0;return 1}Module["___sys_getgroups32"]=___sys_getgroups32;var ___sys_getitimer=function(){return-52};Module["___sys_getitimer"]=___sys_getitimer;function ___sys_getpeername(fd,addr,addrlen){try{var sock=getSocketFromFD(fd);if(!sock.daddr){return-53}var errno=writeSockaddr(addr,sock.family,DNS.lookup_name(sock.daddr),sock.dport,addrlen);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}Module["___sys_getpeername"]=___sys_getpeername;function ___sys_getpgid(pid){if(pid&&pid!==42)return-71;return 42}Module["___sys_getpgid"]=___sys_getpgid;function ___sys_getpid(){return 42}Module["___sys_getpid"]=___sys_getpid;function ___sys_getppid(){return 1}Module["___sys_getppid"]=___sys_getppid;function ___sys_getpriority(){return 0}Module["___sys_getpriority"]=___sys_getpriority;function ___sys_getresgid32(ruid,euid,suid){try{HEAP32[ruid>>2]=0;HEAP32[euid>>2]=0;HEAP32[suid>>2]=0;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}Module["___sys_getresgid32"]=___sys_getresgid32;___sys_getresgid32.sig="iiii";function ___sys_getresuid32(a0,a1,a2){return ___sys_getresgid32(a0,a1,a2)}Module["___sys_getresuid32"]=___sys_getresuid32;___sys_getresuid32.sig="iiii";function ___sys_getrusage(who,usage){try{zeroMemory(usage,136);HEAP32[usage>>2]=1;HEAP32[usage+4>>2]=2;HEAP32[usage+8>>2]=3;HEAP32[usage+12>>2]=4;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}Module["___sys_getrusage"]=___sys_getrusage;function ___sys_getsid(pid){if(pid&&pid!==42)return-71;return 42}Module["___sys_getsid"]=___sys_getsid;function ___sys_getsockname(fd,addr,addrlen){try{err("__sys_getsockname "+fd);var sock=getSocketFromFD(fd);var errno=writeSockaddr(addr,sock.family,DNS.lookup_name(sock.saddr||"0.0.0.0"),sock.sport,addrlen);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}Module["___sys_getsockname"]=___sys_getsockname;function ___sys_getsockopt(fd,level,optname,optval,optlen){try{var sock=getSocketFromFD(fd);if(level===1){if(optname===4){HEAP32[optval>>2]=sock.error;HEAP32[optlen>>2]=4;sock.error=null;return 0}}return-50}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}Module["___sys_getsockopt"]=___sys_getsockopt;function ___sys_getuid32(){return ___sys_getegid32()}Module["___sys_getuid32"]=___sys_getuid32;___sys_getuid32.sig="i";function ___sys_ioctl(fd,op,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(op){case 21509:case 21505:{if(!stream.tty)return-59;return 0}case 21510:case 21511:case 21512:case 21506:case 21507:case 21508:{if(!stream.tty)return-59;return 0}case 21519:{if(!stream.tty)return-59;var argp=SYSCALLS.get();HEAP32[argp>>2]=0;return 0}case 21520:{if(!stream.tty)return-59;return-28}case 21531:{var argp=SYSCALLS.get();return FS.ioctl(stream,op,argp)}case 21523:{if(!stream.tty)return-59;return 0}case 21524:{if(!stream.tty)return-59;return 0}default:abort("bad ioctl syscall "+op)}}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}Module["___sys_ioctl"]=___sys_ioctl;function ___sys_lchown32(path,owner,group){try{path=SYSCALLS.getStr(path);FS.chown(path,owner,group);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}Module["___sys_lchown32"]=___sys_lchown32;function ___sys_link(oldpath,newpath){return-34}Module["___sys_link"]=___sys_link;function ___sys_linkat(olddirfd,oldpath,newdirfd,newpath,flags){return-34}Module["___sys_linkat"]=___sys_linkat;function ___sys_listen(fd,backlog){try{var sock=getSocketFromFD(fd);sock.sock_ops.listen(sock,backlog);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}Module["___sys_listen"]=___sys_listen;function ___sys_lstat64(path,buf){try{path=SYSCALLS.getStr(path);return SYSCALLS.doStat(FS.lstat,path,buf)}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}Module["___sys_lstat64"]=___sys_lstat64;function ___sys_madvise1(addr,length,advice){try{return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}Module["___sys_madvise1"]=___sys_madvise1;var ___sys_mincore=function(){return-52};Module["___sys_mincore"]=___sys_mincore;function ___sys_mkdir(path,mode){try{path=SYSCALLS.getStr(path);return SYSCALLS.doMkdir(path,mode)}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}Module["___sys_mkdir"]=___sys_mkdir;function ___sys_mkdirat(dirfd,path,mode){try{path=SYSCALLS.getStr(path);path=SYSCALLS.calculateAt(dirfd,path);return SYSCALLS.doMkdir(path,mode)}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}Module["___sys_mkdirat"]=___sys_mkdirat;function ___sys_mknod(path,mode,dev){try{path=SYSCALLS.getStr(path);return SYSCALLS.doMknod(path,mode,dev)}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}Module["___sys_mknod"]=___sys_mknod;function ___sys_mknodat(dirfd,path,mode,dev){try{path=SYSCALLS.getStr(path);path=SYSCALLS.calculateAt(dirfd,path);return SYSCALLS.doMknod(path,mode,dev)}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}Module["___sys_mknodat"]=___sys_mknodat;function ___sys_mlock(addr,len){try{return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}Module["___sys_mlock"]=___sys_mlock;___sys_mlock.sig="iii";function ___sys_mlockall(flags){try{return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}Module["___sys_mlockall"]=___sys_mlockall;___sys_mlockall.sig="ii";function syscallMmap2(addr,len,prot,flags,fd,off){off<<=12;var ptr;var allocated=false;if((flags&16)!==0&&addr%65536!==0){return-28}if((flags&32)!==0){ptr=mmapAlloc(len);if(!ptr)return-48;allocated=true}else{var info=FS.getStream(fd);if(!info)return-8;var res=FS.mmap(info,addr,len,off,prot,flags);ptr=res.ptr;allocated=res.allocated}SYSCALLS.mappings[ptr]={malloc:ptr,len:len,allocated:allocated,fd:fd,prot:prot,flags:flags,offset:off};return ptr}Module["syscallMmap2"]=syscallMmap2;function ___sys_mmap2(addr,len,prot,flags,fd,off){try{return syscallMmap2(addr,len,prot,flags,fd,off)}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}Module["___sys_mmap2"]=___sys_mmap2;function ___sys_mprotect(addr,len,size){try{return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}Module["___sys_mprotect"]=___sys_mprotect;function ___sys_mremap(old_addr,old_size,new_size,flags){try{return-48}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}Module["___sys_mremap"]=___sys_mremap;function ___sys_msync(addr,len,flags){try{var info=SYSCALLS.mappings[addr];if(!info)return 0;SYSCALLS.doMsync(addr,FS.getStream(info.fd),len,info.flags,0);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}Module["___sys_msync"]=___sys_msync;function ___sys_munlock(addr,len){try{return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}Module["___sys_munlock"]=___sys_munlock;___sys_munlock.sig="iii";function ___sys_munlockall(){try{return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}Module["___sys_munlockall"]=___sys_munlockall;___sys_munlockall.sig="i";function syscallMunmap(addr,len){var info=SYSCALLS.mappings[addr];if(len===0||!info){return-28}if(len===info.len){var stream=FS.getStream(info.fd);if(stream){if(info.prot&2){SYSCALLS.doMsync(addr,stream,len,info.flags,info.offset)}FS.munmap(stream)}SYSCALLS.mappings[addr]=null;if(info.allocated){_free(info.malloc)}}return 0}Module["syscallMunmap"]=syscallMunmap;function ___sys_munmap(addr,len){try{return syscallMunmap(addr,len)}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}Module["___sys_munmap"]=___sys_munmap;function ___sys_nice(inc){return-63}Module["___sys_nice"]=___sys_nice;function ___sys_open(path,flags,varargs){SYSCALLS.varargs=varargs;try{var pathname=SYSCALLS.getStr(path);var mode=varargs?SYSCALLS.get():0;var stream=FS.open(pathname,flags,mode);return stream.fd}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}Module["___sys_open"]=___sys_open;function ___sys_openat(dirfd,path,flags,varargs){SYSCALLS.varargs=varargs;try{path=SYSCALLS.getStr(path);path=SYSCALLS.calculateAt(dirfd,path);var mode=varargs?SYSCALLS.get():0;return FS.open(path,flags,mode).fd}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}Module["___sys_openat"]=___sys_openat;function ___sys_pause(){return-27}Module["___sys_pause"]=___sys_pause;var PIPEFS={BUCKET_BUFFER_SIZE:8192,mount:function(mount){return FS.createNode(null,"/",16384|511,0)},createPipe:function(){var pipe={buckets:[],refcnt:2};pipe.buckets.push({buffer:new Uint8Array(PIPEFS.BUCKET_BUFFER_SIZE),offset:0,roffset:0});var rName=PIPEFS.nextname();var wName=PIPEFS.nextname();var rNode=FS.createNode(PIPEFS.root,rName,4096,0);var wNode=FS.createNode(PIPEFS.root,wName,4096,0);rNode.pipe=pipe;wNode.pipe=pipe;var readableStream=FS.createStream({path:rName,node:rNode,flags:0,seekable:false,stream_ops:PIPEFS.stream_ops});rNode.stream=readableStream;var writableStream=FS.createStream({path:wName,node:wNode,flags:1,seekable:false,stream_ops:PIPEFS.stream_ops});wNode.stream=writableStream;return{readable_fd:readableStream.fd,writable_fd:writableStream.fd}},stream_ops:{poll:function(stream){var pipe=stream.node.pipe;if((stream.flags&2097155)===1){return 256|4}else{if(pipe.buckets.length>0){for(var i=0;i0){return 64|1}}}}return 0},ioctl:function(stream,request,varargs){return 28},fsync:function(stream){return 28},read:function(stream,buffer,offset,length,position){var pipe=stream.node.pipe;var currentLength=0;for(var i=0;i=dataLen){currBucket.buffer.set(data,currBucket.offset);currBucket.offset+=dataLen;return dataLen}else if(freeBytesInCurrBuffer>0){currBucket.buffer.set(data.subarray(0,freeBytesInCurrBuffer),currBucket.offset);currBucket.offset+=freeBytesInCurrBuffer;data=data.subarray(freeBytesInCurrBuffer,data.byteLength)}var numBuckets=data.byteLength/PIPEFS.BUCKET_BUFFER_SIZE|0;var remElements=data.byteLength%PIPEFS.BUCKET_BUFFER_SIZE;for(var i=0;i0){var newBucket={buffer:new Uint8Array(PIPEFS.BUCKET_BUFFER_SIZE),offset:data.byteLength,roffset:0};pipe.buckets.push(newBucket);newBucket.buffer.set(data)}return dataLen},close:function(stream){var pipe=stream.node.pipe;pipe.refcnt--;if(pipe.refcnt===0){pipe.buckets=null}}},nextname:function(){if(!PIPEFS.nextname.current){PIPEFS.nextname.current=0}return"pipe["+PIPEFS.nextname.current+++"]"}};Module["PIPEFS"]=PIPEFS;function ___sys_pipe(fdPtr){try{if(fdPtr==0){throw new FS.ErrnoError(21)}var res=PIPEFS.createPipe();HEAP32[fdPtr>>2]=res.readable_fd;HEAP32[fdPtr+4>>2]=res.writable_fd;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}Module["___sys_pipe"]=___sys_pipe;var ___sys_pipe2=function(){return-52};Module["___sys_pipe2"]=___sys_pipe2;function ___sys_poll(fds,nfds,timeout){try{var nonzero=0;for(var i=0;i>2];var events=HEAP16[pollfd+4>>1];var mask=32;var stream=FS.getStream(fd);if(stream){mask=SYSCALLS.DEFAULT_POLLMASK;if(stream.stream_ops.poll){mask=stream.stream_ops.poll(stream)}}mask&=events|8|16;if(mask)nonzero++;HEAP16[pollfd+6>>1]=mask}return nonzero}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}Module["___sys_poll"]=___sys_poll;function ___sys_prlimit64(pid,resource,new_limit,old_limit){try{if(old_limit){HEAP32[old_limit>>2]=-1;HEAP32[old_limit+4>>2]=-1;HEAP32[old_limit+8>>2]=-1;HEAP32[old_limit+12>>2]=-1}return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}Module["___sys_prlimit64"]=___sys_prlimit64;var ___sys_pselect6=function(){return-52};Module["___sys_pselect6"]=___sys_pselect6;function ___sys_readlink(path,buf,bufsize){try{path=SYSCALLS.getStr(path);return SYSCALLS.doReadlink(path,buf,bufsize)}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}Module["___sys_readlink"]=___sys_readlink;function ___sys_readlinkat(dirfd,path,buf,bufsize){try{path=SYSCALLS.getStr(path);path=SYSCALLS.calculateAt(dirfd,path);return SYSCALLS.doReadlink(path,buf,bufsize)}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}Module["___sys_readlinkat"]=___sys_readlinkat;function ___sys_recvfrom(fd,buf,len,flags,addr,addrlen){try{var sock=getSocketFromFD(fd);var msg=sock.sock_ops.recvmsg(sock,len);if(!msg)return 0;if(addr){var errno=writeSockaddr(addr,sock.family,DNS.lookup_name(msg.addr),msg.port,addrlen)}HEAPU8.set(msg.buffer,buf);return msg.buffer.byteLength}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}Module["___sys_recvfrom"]=___sys_recvfrom;var ___sys_recvmmsg=function(){return-52};Module["___sys_recvmmsg"]=___sys_recvmmsg;function ___sys_recvmsg(fd,message,flags){try{var sock=getSocketFromFD(fd);var iov=HEAP32[message+8>>2];var num=HEAP32[message+12>>2];var total=0;for(var i=0;i>2]}var msg=sock.sock_ops.recvmsg(sock,total);if(!msg)return 0;var name=HEAP32[message>>2];if(name){var errno=writeSockaddr(name,sock.family,DNS.lookup_name(msg.addr),msg.port)}var bytesRead=0;var bytesRemaining=msg.buffer.byteLength;for(var i=0;bytesRemaining>0&&i>2];var iovlen=HEAP32[iov+(8*i+4)>>2];if(!iovlen){continue}var length=Math.min(iovlen,bytesRemaining);var buf=msg.buffer.subarray(bytesRead,bytesRead+length);HEAPU8.set(buf,iovbase+bytesRead);bytesRead+=length;bytesRemaining-=length}return bytesRead}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}Module["___sys_recvmsg"]=___sys_recvmsg;function ___sys_rename(old_path,new_path){try{old_path=SYSCALLS.getStr(old_path);new_path=SYSCALLS.getStr(new_path);FS.rename(old_path,new_path);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}Module["___sys_rename"]=___sys_rename;function ___sys_renameat(olddirfd,oldpath,newdirfd,newpath){try{oldpath=SYSCALLS.getStr(oldpath);newpath=SYSCALLS.getStr(newpath);oldpath=SYSCALLS.calculateAt(olddirfd,oldpath);newpath=SYSCALLS.calculateAt(newdirfd,newpath);FS.rename(oldpath,newpath);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}Module["___sys_renameat"]=___sys_renameat;function ___sys_rmdir(path){try{path=SYSCALLS.getStr(path);FS.rmdir(path);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}Module["___sys_rmdir"]=___sys_rmdir;var ___sys_sendmmsg=function(){return-52};Module["___sys_sendmmsg"]=___sys_sendmmsg;function ___sys_sendmsg(fd,message,flags){try{var sock=getSocketFromFD(fd);var iov=HEAP32[message+8>>2];var num=HEAP32[message+12>>2];var addr,port;var name=HEAP32[message>>2];var namelen=HEAP32[message+4>>2];if(name){var info=readSockaddr(name,namelen);if(info.errno)return-info.errno;port=info.port;addr=DNS.lookup_addr(info.addr)||info.addr}var total=0;for(var i=0;i>2]}var view=new Uint8Array(total);var offset=0;for(var i=0;i>2];var iovlen=HEAP32[iov+(8*i+4)>>2];for(var j=0;j>0]}}return sock.sock_ops.sendmsg(sock,view,0,total,addr,port)}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}Module["___sys_sendmsg"]=___sys_sendmsg;function ___sys_sendto(fd,message,length,flags,addr,addr_len){try{var sock=getSocketFromFD(fd);var dest=getSocketAddress(addr,addr_len,true);if(!dest){return FS.write(sock.stream,HEAP8,message,length)}else{return sock.sock_ops.sendmsg(sock,HEAP8,message,length,dest.addr,dest.port)}}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}Module["___sys_sendto"]=___sys_sendto;function ___sys_setdomainname(name,size){return-63}Module["___sys_setdomainname"]=___sys_setdomainname;var ___sys_setitimer=function(){return-52};Module["___sys_setitimer"]=___sys_setitimer;function ___sys_setpgid(pid,pgid){if(pid&&pid!==42)return-71;if(pgid&&pgid!==42)return-63;return 0}Module["___sys_setpgid"]=___sys_setpgid;function ___sys_setpriority(){return-63}Module["___sys_setpriority"]=___sys_setpriority;function ___sys_setrlimit(varargs){return 0}Module["___sys_setrlimit"]=___sys_setrlimit;function ___sys_setsid(){return 0}Module["___sys_setsid"]=___sys_setsid;function ___sys_setsockopt(fd){try{return-50}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}Module["___sys_setsockopt"]=___sys_setsockopt;function ___sys_shutdown(fd,how){try{getSocketFromFD(fd);return-52}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}Module["___sys_shutdown"]=___sys_shutdown;function ___sys_socket(domain,type,protocol){try{var sock=SOCKFS.createSocket(domain,type,protocol);return sock.stream.fd}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}Module["___sys_socket"]=___sys_socket;var ___sys_socketpair=function(){return-52};Module["___sys_socketpair"]=___sys_socketpair;function ___sys_stat64(path,buf){try{path=SYSCALLS.getStr(path);return SYSCALLS.doStat(FS.stat,path,buf)}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}Module["___sys_stat64"]=___sys_stat64;function ___sys_symlink(target,linkpath){try{target=SYSCALLS.getStr(target);linkpath=SYSCALLS.getStr(linkpath);FS.symlink(target,linkpath);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}Module["___sys_symlink"]=___sys_symlink;function ___sys_symlinkat(target,newdirfd,linkpath){try{linkpath=SYSCALLS.calculateAt(newdirfd,linkpath);FS.symlink(target,linkpath);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}Module["___sys_symlinkat"]=___sys_symlinkat;function ___sys_sync(){return 0}Module["___sys_sync"]=___sys_sync;function ___sys_truncate64(path,zero,low,high){try{path=SYSCALLS.getStr(path);var length=SYSCALLS.get64(low,high);FS.truncate(path,length);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}Module["___sys_truncate64"]=___sys_truncate64;function ___sys_ugetrlimit(resource,rlim){try{HEAP32[rlim>>2]=-1;HEAP32[rlim+4>>2]=-1;HEAP32[rlim+8>>2]=-1;HEAP32[rlim+12>>2]=-1;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}Module["___sys_ugetrlimit"]=___sys_ugetrlimit;function ___sys_umask(mask){try{var old=SYSCALLS.umask;SYSCALLS.umask=mask;return old}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}Module["___sys_umask"]=___sys_umask;function ___sys_uname(buf){try{if(!buf)return-21;var layout={"__size__":390,"domainname":325,"machine":260,"nodename":65,"release":130,"sysname":0,"version":195};var copyString=function(element,value){var offset=layout[element];writeAsciiToMemory(value,buf+offset)};copyString("sysname","Emscripten");copyString("nodename","emscripten");copyString("release","1.0");copyString("version","#1");copyString("machine","wasm32");return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}Module["___sys_uname"]=___sys_uname;function ___sys_unlink(path){try{path=SYSCALLS.getStr(path);FS.unlink(path);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}Module["___sys_unlink"]=___sys_unlink;function ___sys_unlinkat(dirfd,path,flags){try{path=SYSCALLS.getStr(path);path=SYSCALLS.calculateAt(dirfd,path);if(flags===0){FS.unlink(path)}else if(flags===512){FS.rmdir(path)}else{abort("Invalid flags passed to unlinkat")}return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}Module["___sys_unlinkat"]=___sys_unlinkat;function ___sys_utimensat(dirfd,path,times,flags){try{path=SYSCALLS.getStr(path);path=SYSCALLS.calculateAt(dirfd,path,true);var seconds=HEAP32[times>>2];var nanoseconds=HEAP32[times+4>>2];var atime=seconds*1e3+nanoseconds/(1e3*1e3);times+=8;seconds=HEAP32[times>>2];nanoseconds=HEAP32[times+4>>2];var mtime=seconds*1e3+nanoseconds/(1e3*1e3);FS.utime(path,atime,mtime);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}Module["___sys_utimensat"]=___sys_utimensat;var ___sys_wait4=function(){return-52};Module["___sys_wait4"]=___sys_wait4;function __emscripten_throw_longjmp(){throw"longjmp"}Module["__emscripten_throw_longjmp"]=__emscripten_throw_longjmp;__emscripten_throw_longjmp.sig="v";function _abort(){abort()}Module["_abort"]=_abort;_abort.sig="v";var AL={QUEUE_INTERVAL:25,QUEUE_LOOKAHEAD:.1,DEVICE_NAME:"Emscripten OpenAL",CAPTURE_DEVICE_NAME:"Emscripten OpenAL capture",ALC_EXTENSIONS:{ALC_SOFT_pause_device:true,ALC_SOFT_HRTF:true},AL_EXTENSIONS:{AL_EXT_float32:true,AL_SOFT_loop_points:true,AL_SOFT_source_length:true,AL_EXT_source_distance_model:true,AL_SOFT_source_spatialize:true},_alcErr:0,alcErr:0,deviceRefCounts:{},alcStringCache:{},paused:false,stringCache:{},contexts:{},currentCtx:null,buffers:{0:{id:0,refCount:0,audioBuf:null,frequency:0,bytesPerSample:2,channels:1,length:0}},paramArray:[],_nextId:1,newId:function(){return AL.freeIds.length>0?AL.freeIds.pop():AL._nextId++},freeIds:[],scheduleContextAudio:function(ctx){if(Browser.mainLoop.timingMode===1&&document["visibilityState"]!="visible"){return}for(var i in ctx.sources){AL.scheduleSourceAudio(ctx.sources[i])}},scheduleSourceAudio:function(src,lookahead){if(Browser.mainLoop.timingMode===1&&document["visibilityState"]!="visible"){return}if(src.state!==4114){return}var currentTime=AL.updateSourceTime(src);var startTime=src.bufStartTime;var startOffset=src.bufOffset;var bufCursor=src.bufsProcessed;for(var i=0;i=src.bufQueue.length){if(src.looping){bufCursor%=src.bufQueue.length}else{break}}var buf=src.bufQueue[bufCursor%src.bufQueue.length];if(buf.length===0){skipCount++;if(skipCount===src.bufQueue.length){break}}else{var audioSrc=src.context.audioCtx.createBufferSource();audioSrc.buffer=buf.audioBuf;audioSrc.playbackRate.value=src.playbackRate;if(buf.audioBuf._loopStart||buf.audioBuf._loopEnd){audioSrc.loopStart=buf.audioBuf._loopStart;audioSrc.loopEnd=buf.audioBuf._loopEnd}var duration=0;if(src.type===4136&&src.looping){duration=Number.POSITIVE_INFINITY;audioSrc.loop=true;if(buf.audioBuf._loopStart){audioSrc.loopStart=buf.audioBuf._loopStart}if(buf.audioBuf._loopEnd){audioSrc.loopEnd=buf.audioBuf._loopEnd}}else{duration=(buf.audioBuf.duration-startOffset)/src.playbackRate}audioSrc._startOffset=startOffset;audioSrc._duration=duration;audioSrc._skipCount=skipCount;skipCount=0;audioSrc.connect(src.gain);if(typeof audioSrc.start!=="undefined"){startTime=Math.max(startTime,src.context.audioCtx.currentTime);audioSrc.start(startTime,startOffset)}else if(typeof audioSrc.noteOn!=="undefined"){startTime=Math.max(startTime,src.context.audioCtx.currentTime);audioSrc.noteOn(startTime)}audioSrc._startTime=startTime;src.audioQueue.push(audioSrc);startTime+=duration}startOffset=0;bufCursor++}},updateSourceTime:function(src){var currentTime=src.context.audioCtx.currentTime;if(src.state!==4114){return currentTime}if(!isFinite(src.bufStartTime)){src.bufStartTime=currentTime-src.bufOffset/src.playbackRate;src.bufOffset=0}var nextStartTime=0;while(src.audioQueue.length){var audioSrc=src.audioQueue[0];src.bufsProcessed+=audioSrc._skipCount;nextStartTime=audioSrc._startTime+audioSrc._duration;if(currentTime=src.bufQueue.length&&!src.looping){AL.setSourceState(src,4116)}else if(src.type===4136&&src.looping){var buf=src.bufQueue[0];if(buf.length===0){src.bufOffset=0}else{var delta=(currentTime-src.bufStartTime)*src.playbackRate;var loopStart=buf.audioBuf._loopStart||0;var loopEnd=buf.audioBuf._loopEnd||buf.audioBuf.duration;if(loopEnd<=loopStart){loopEnd=buf.audioBuf.duration}if(delta0){src.bufStartTime+=Math.floor((currentTime-src.bufStartTime)/srcDuration)*srcDuration}}for(var i=0;i=src.bufQueue.length){if(src.looping){src.bufsProcessed%=src.bufQueue.length}else{AL.setSourceState(src,4116);break}}var buf=src.bufQueue[src.bufsProcessed];if(buf.length>0){nextStartTime=src.bufStartTime+buf.audioBuf.duration/src.playbackRate;if(currentTime1){src.audioQueue.length=1}},stopSourceAudio:function(src){for(var i=0;isrc.bufQueue[src.bufsProcessed].audioBuf.duration){offset-=src.bufQueue[src.bufsProcessed].audiobuf.duration;src.bufsProcessed++}src.bufOffset=offset}if(playing){AL.setSourceState(src,4114)}},getGlobalParam:function(funcname,param){if(!AL.currentCtx){return null}switch(param){case 49152:return AL.currentCtx.dopplerFactor;case 49155:return AL.currentCtx.speedOfSound;case 53248:return AL.currentCtx.distanceModel;default:AL.currentCtx.err=40962;return null}},setGlobalParam:function(funcname,param,value){if(!AL.currentCtx){return}switch(param){case 49152:if(!Number.isFinite(value)||value<0){AL.currentCtx.err=40963;return}AL.currentCtx.dopplerFactor=value;AL.updateListenerSpace(AL.currentCtx);break;case 49155:if(!Number.isFinite(value)||value<=0){AL.currentCtx.err=40963;return}AL.currentCtx.speedOfSound=value;AL.updateListenerSpace(AL.currentCtx);break;case 53248:switch(value){case 0:case 53249:case 53250:case 53251:case 53252:case 53253:case 53254:AL.currentCtx.distanceModel=value;AL.updateContextGlobal(AL.currentCtx);break;default:AL.currentCtx.err=40963;return}break;default:AL.currentCtx.err=40962;return}},getListenerParam:function(funcname,param){if(!AL.currentCtx){return null}switch(param){case 4100:return AL.currentCtx.listener.position;case 4102:return AL.currentCtx.listener.velocity;case 4111:return AL.currentCtx.listener.direction.concat(AL.currentCtx.listener.up);case 4106:return AL.currentCtx.gain.gain.value;default:AL.currentCtx.err=40962;return null}},setListenerParam:function(funcname,param,value){if(!AL.currentCtx){return}if(value===null){AL.currentCtx.err=40962;return}var listener=AL.currentCtx.listener;switch(param){case 4100:if(!Number.isFinite(value[0])||!Number.isFinite(value[1])||!Number.isFinite(value[2])){AL.currentCtx.err=40963;return}listener.position[0]=value[0];listener.position[1]=value[1];listener.position[2]=value[2];AL.updateListenerSpace(AL.currentCtx);break;case 4102:if(!Number.isFinite(value[0])||!Number.isFinite(value[1])||!Number.isFinite(value[2])){AL.currentCtx.err=40963;return}listener.velocity[0]=value[0];listener.velocity[1]=value[1];listener.velocity[2]=value[2];AL.updateListenerSpace(AL.currentCtx);break;case 4106:if(!Number.isFinite(value)||value<0){AL.currentCtx.err=40963;return}AL.currentCtx.gain.gain.value=value;break;case 4111:if(!Number.isFinite(value[0])||!Number.isFinite(value[1])||!Number.isFinite(value[2])||!Number.isFinite(value[3])||!Number.isFinite(value[4])||!Number.isFinite(value[5])){AL.currentCtx.err=40963;return}listener.direction[0]=value[0];listener.direction[1]=value[1];listener.direction[2]=value[2];listener.up[0]=value[3];listener.up[1]=value[4];listener.up[2]=value[5];AL.updateListenerSpace(AL.currentCtx);break;default:AL.currentCtx.err=40962;return}},getBufferParam:function(funcname,bufferId,param){if(!AL.currentCtx){return}var buf=AL.buffers[bufferId];if(!buf||bufferId===0){AL.currentCtx.err=40961;return}switch(param){case 8193:return buf.frequency;case 8194:return buf.bytesPerSample*8;case 8195:return buf.channels;case 8196:return buf.length*buf.bytesPerSample*buf.channels;case 8213:if(buf.length===0){return[0,0]}else{return[(buf.audioBuf._loopStart||0)*buf.frequency,(buf.audioBuf._loopEnd||buf.length)*buf.frequency]}default:AL.currentCtx.err=40962;return null}},setBufferParam:function(funcname,bufferId,param,value){if(!AL.currentCtx){return}var buf=AL.buffers[bufferId];if(!buf||bufferId===0){AL.currentCtx.err=40961;return}if(value===null){AL.currentCtx.err=40962;return}switch(param){case 8196:if(value!==0){AL.currentCtx.err=40963;return}break;case 8213:if(value[0]<0||value[0]>buf.length||value[1]<0||value[1]>buf.Length||value[0]>=value[1]){AL.currentCtx.err=40963;return}if(buf.refCount>0){AL.currentCtx.err=40964;return}if(buf.audioBuf){buf.audioBuf._loopStart=value[0]/buf.frequency;buf.audioBuf._loopEnd=value[1]/buf.frequency}break;default:AL.currentCtx.err=40962;return}},getSourceParam:function(funcname,sourceId,param){if(!AL.currentCtx){return null}var src=AL.currentCtx.sources[sourceId];if(!src){AL.currentCtx.err=40961;return null}switch(param){case 514:return src.relative;case 4097:return src.coneInnerAngle;case 4098:return src.coneOuterAngle;case 4099:return src.pitch;case 4100:return src.position;case 4101:return src.direction;case 4102:return src.velocity;case 4103:return src.looping;case 4105:if(src.type===4136){return src.bufQueue[0].id}else{return 0}case 4106:return src.gain.gain.value;case 4109:return src.minGain;case 4110:return src.maxGain;case 4112:return src.state;case 4117:if(src.bufQueue.length===1&&src.bufQueue[0].id===0){return 0}else{return src.bufQueue.length}case 4118:if(src.bufQueue.length===1&&src.bufQueue[0].id===0||src.looping){return 0}else{return src.bufsProcessed}case 4128:return src.refDistance;case 4129:return src.rolloffFactor;case 4130:return src.coneOuterGain;case 4131:return src.maxDistance;case 4132:return AL.sourceTell(src);case 4133:var offset=AL.sourceTell(src);if(offset>0){offset*=src.bufQueue[0].frequency}return offset;case 4134:var offset=AL.sourceTell(src);if(offset>0){offset*=src.bufQueue[0].frequency*src.bufQueue[0].bytesPerSample}return offset;case 4135:return src.type;case 4628:return src.spatialize;case 8201:var length=0;var bytesPerFrame=0;for(var i=0;i0){var audioSrc=src.audioQueue[0];audioSrc.loop=true;audioSrc._duration=Number.POSITIVE_INFINITY}}else if(value===0){src.looping=false;var currentTime=AL.updateSourceTime(src);if(src.type===4136&&src.audioQueue.length>0){var audioSrc=src.audioQueue[0];audioSrc.loop=false;audioSrc._duration=src.bufQueue[0].audioBuf.duration/src.playbackRate;audioSrc._startTime=currentTime-src.bufOffset/src.playbackRate}}else{AL.currentCtx.err=40963;return}break;case 4105:if(src.state===4114||src.state===4115){AL.currentCtx.err=40964;return}if(value===0){for(var i in src.bufQueue){src.bufQueue[i].refCount--}src.bufQueue.length=1;src.bufQueue[0]=AL.buffers[0];src.bufsProcessed=0;src.type=4144}else{var buf=AL.buffers[value];if(!buf){AL.currentCtx.err=40963;return}for(var i in src.bufQueue){src.bufQueue[i].refCount--}src.bufQueue.length=0;buf.refCount++;src.bufQueue=[buf];src.bufsProcessed=0;src.type=4136}AL.initSourcePanner(src);AL.scheduleSourceAudio(src);break;case 4106:if(!Number.isFinite(value)||value<0){AL.currentCtx.err=40963;return}src.gain.gain.value=value;break;case 4109:if(!Number.isFinite(value)||value<0||value>Math.min(src.maxGain,1)){AL.currentCtx.err=40963;return}src.minGain=value;break;case 4110:if(!Number.isFinite(value)||value1){AL.currentCtx.err=40963;return}src.maxGain=value;break;case 4128:if(!Number.isFinite(value)||value<0){AL.currentCtx.err=40963;return}src.refDistance=value;if(src.panner){src.panner.refDistance=value}break;case 4129:if(!Number.isFinite(value)||value<0){AL.currentCtx.err=40963;return}src.rolloffFactor=value;if(src.panner){src.panner.rolloffFactor=value}break;case 4130:if(!Number.isFinite(value)||value<0||value>1){AL.currentCtx.err=40963;return}src.coneOuterGain=value;if(src.panner){src.panner.coneOuterGain=value}break;case 4131:if(!Number.isFinite(value)||value<0){AL.currentCtx.err=40963;return}src.maxDistance=value;if(src.panner){src.panner.maxDistance=value}break;case 4132:if(value<0||value>AL.sourceDuration(src)){AL.currentCtx.err=40963;return}AL.sourceSeek(src,value);break;case 4133:var srcLen=AL.sourceDuration(src);if(srcLen>0){var frequency;for(var bufId in src.bufQueue){if(bufId){frequency=src.bufQueue[bufId].frequency;break}}value/=frequency}if(value<0||value>srcLen){AL.currentCtx.err=40963;return}AL.sourceSeek(src,value);break;case 4134:var srcLen=AL.sourceDuration(src);if(srcLen>0){var bytesPerSec;for(var bufId in src.bufQueue){if(bufId){var buf=src.bufQueue[bufId];bytesPerSec=buf.frequency*buf.bytesPerSample*buf.channels;break}}value/=bytesPerSec}if(value<0||value>srcLen){AL.currentCtx.err=40963;return}AL.sourceSeek(src,value);break;case 4628:if(value!==0&&value!==1&&value!==2){AL.currentCtx.err=40963;return}src.spatialize=value;AL.initSourcePanner(src);break;case 8201:case 8202:case 8203:AL.currentCtx.err=40964;break;case 53248:switch(value){case 0:case 53249:case 53250:case 53251:case 53252:case 53253:case 53254:src.distanceModel=value;if(AL.currentCtx.sourceDistanceModel){AL.updateContextGlobal(AL.currentCtx)}break;default:AL.currentCtx.err=40963;return}break;default:AL.currentCtx.err=40962;return}},captures:{},sharedCaptureAudioCtx:null,requireValidCaptureDevice:function(deviceId,funcname){if(deviceId===0){AL.alcErr=40961;return null}var c=AL.captures[deviceId];if(!c){AL.alcErr=40961;return null}var err=c.mediaStreamError;if(err){AL.alcErr=40961;return null}return c}};Module["AL"]=AL;function _alBuffer3f(bufferId,param,value0,value1,value2){AL.setBufferParam("alBuffer3f",bufferId,param,null)}Module["_alBuffer3f"]=_alBuffer3f;_alBuffer3f.sig="viifff";function _alBuffer3i(bufferId,param,value0,value1,value2){AL.setBufferParam("alBuffer3i",bufferId,param,null)}Module["_alBuffer3i"]=_alBuffer3i;_alBuffer3i.sig="viiiii";function _alBufferData(bufferId,format,pData,size,freq){if(!AL.currentCtx){return}var buf=AL.buffers[bufferId];if(!buf){AL.currentCtx.err=40963;return}if(freq<=0){AL.currentCtx.err=40963;return}var audioBuf=null;try{switch(format){case 4352:if(size>0){audioBuf=AL.currentCtx.audioCtx.createBuffer(1,size,freq);var channel0=audioBuf.getChannelData(0);for(var i=0;i0){audioBuf=AL.currentCtx.audioCtx.createBuffer(1,size>>1,freq);var channel0=audioBuf.getChannelData(0);pData>>=1;for(var i=0;i>1;++i){channel0[i]=HEAP16[pData++]*30517578125e-15}}buf.bytesPerSample=2;buf.channels=1;buf.length=size>>1;break;case 4354:if(size>0){audioBuf=AL.currentCtx.audioCtx.createBuffer(2,size>>1,freq);var channel0=audioBuf.getChannelData(0);var channel1=audioBuf.getChannelData(1);for(var i=0;i>1;++i){channel0[i]=HEAPU8[pData++]*.0078125-1;channel1[i]=HEAPU8[pData++]*.0078125-1}}buf.bytesPerSample=1;buf.channels=2;buf.length=size>>1;break;case 4355:if(size>0){audioBuf=AL.currentCtx.audioCtx.createBuffer(2,size>>2,freq);var channel0=audioBuf.getChannelData(0);var channel1=audioBuf.getChannelData(1);pData>>=1;for(var i=0;i>2;++i){channel0[i]=HEAP16[pData++]*30517578125e-15;channel1[i]=HEAP16[pData++]*30517578125e-15}}buf.bytesPerSample=2;buf.channels=2;buf.length=size>>2;break;case 65552:if(size>0){audioBuf=AL.currentCtx.audioCtx.createBuffer(1,size>>2,freq);var channel0=audioBuf.getChannelData(0);pData>>=2;for(var i=0;i>2;++i){channel0[i]=HEAPF32[pData++]}}buf.bytesPerSample=4;buf.channels=1;buf.length=size>>2;break;case 65553:if(size>0){audioBuf=AL.currentCtx.audioCtx.createBuffer(2,size>>3,freq);var channel0=audioBuf.getChannelData(0);var channel1=audioBuf.getChannelData(1);pData>>=2;for(var i=0;i>3;++i){channel0[i]=HEAPF32[pData++];channel1[i]=HEAPF32[pData++]}}buf.bytesPerSample=4;buf.channels=2;buf.length=size>>3;break;default:AL.currentCtx.err=40963;return}buf.frequency=freq;buf.audioBuf=audioBuf}catch(e){AL.currentCtx.err=40963;return}}Module["_alBufferData"]=_alBufferData;_alBufferData.sig="viiiii";function _alBufferf(bufferId,param,value){AL.setBufferParam("alBufferf",bufferId,param,null)}Module["_alBufferf"]=_alBufferf;_alBufferf.sig="viif";function _alBufferfv(bufferId,param,pValues){if(!AL.currentCtx){return}if(!pValues){AL.currentCtx.err=40963;return}AL.setBufferParam("alBufferfv",bufferId,param,null)}Module["_alBufferfv"]=_alBufferfv;_alBufferfv.sig="viii";function _alBufferi(bufferId,param,value){AL.setBufferParam("alBufferi",bufferId,param,null)}Module["_alBufferi"]=_alBufferi;_alBufferi.sig="viii";function _alBufferiv(bufferId,param,pValues){if(!AL.currentCtx){return}if(!pValues){AL.currentCtx.err=40963;return}switch(param){case 8213:AL.paramArray[0]=HEAP32[pValues>>2];AL.paramArray[1]=HEAP32[pValues+4>>2];AL.setBufferParam("alBufferiv",bufferId,param,AL.paramArray);break;default:AL.setBufferParam("alBufferiv",bufferId,param,null);break}}Module["_alBufferiv"]=_alBufferiv;_alBufferiv.sig="viii";function _alDeleteBuffers(count,pBufferIds){if(!AL.currentCtx){return}for(var i=0;i>2];if(bufId===0){continue}if(!AL.buffers[bufId]){AL.currentCtx.err=40961;return}if(AL.buffers[bufId].refCount){AL.currentCtx.err=40964;return}}for(var i=0;i>2];if(bufId===0){continue}AL.deviceRefCounts[AL.buffers[bufId].deviceId]--;delete AL.buffers[bufId];AL.freeIds.push(bufId)}}Module["_alDeleteBuffers"]=_alDeleteBuffers;_alDeleteBuffers.sig="vii";function _alSourcei(sourceId,param,value){switch(param){case 514:case 4097:case 4098:case 4103:case 4105:case 4128:case 4129:case 4131:case 4132:case 4133:case 4134:case 4628:case 8201:case 8202:case 53248:AL.setSourceParam("alSourcei",sourceId,param,value);break;default:AL.setSourceParam("alSourcei",sourceId,param,null);break}}Module["_alSourcei"]=_alSourcei;_alSourcei.sig="viii";function _alDeleteSources(count,pSourceIds){if(!AL.currentCtx){return}for(var i=0;i>2];if(!AL.currentCtx.sources[srcId]){AL.currentCtx.err=40961;return}}for(var i=0;i>2];AL.setSourceState(AL.currentCtx.sources[srcId],4116);_alSourcei(srcId,4105,0);delete AL.currentCtx.sources[srcId];AL.freeIds.push(srcId)}}Module["_alDeleteSources"]=_alDeleteSources;_alDeleteSources.sig="vii";function _alDisable(param){if(!AL.currentCtx){return}switch(param){case"AL_SOURCE_DISTANCE_MODEL":AL.currentCtx.sourceDistanceModel=false;AL.updateContextGlobal(AL.currentCtx);break;default:AL.currentCtx.err=40962;return}}Module["_alDisable"]=_alDisable;_alDisable.sig="vi";function _alDistanceModel(model){AL.setGlobalParam("alDistanceModel",53248,model)}Module["_alDistanceModel"]=_alDistanceModel;_alDistanceModel.sig="vi";function _alDopplerFactor(value){AL.setGlobalParam("alDopplerFactor",49152,value)}Module["_alDopplerFactor"]=_alDopplerFactor;_alDopplerFactor.sig="vi";function _alDopplerVelocity(value){warnOnce("alDopplerVelocity() is deprecated, and only kept for compatibility with OpenAL 1.0. Use alSpeedOfSound() instead.");if(!AL.currentCtx){return}if(value<=0){AL.currentCtx.err=40963;return}}Module["_alDopplerVelocity"]=_alDopplerVelocity;_alDopplerVelocity.sig="vi";function _alEnable(param){if(!AL.currentCtx){return}switch(param){case"AL_SOURCE_DISTANCE_MODEL":AL.currentCtx.sourceDistanceModel=true;AL.updateContextGlobal(AL.currentCtx);break;default:AL.currentCtx.err=40962;return}}Module["_alEnable"]=_alEnable;_alEnable.sig="vi";function _alGenBuffers(count,pBufferIds){if(!AL.currentCtx){return}for(var i=0;i>2]=buf.id}}Module["_alGenBuffers"]=_alGenBuffers;_alGenBuffers.sig="vii";function _alGenSources(count,pSourceIds){if(!AL.currentCtx){return}for(var i=0;i>2]=src.id}}Module["_alGenSources"]=_alGenSources;_alGenSources.sig="vii";function _alGetBoolean(param){var val=AL.getGlobalParam("alGetBoolean",param);if(val===null){return 0}switch(param){case 49152:case 49155:case 53248:return val!==0?1:0;default:AL.currentCtx.err=40962;return 0}}Module["_alGetBoolean"]=_alGetBoolean;_alGetBoolean.sig="ii";function _alGetBooleanv(param,pValues){var val=AL.getGlobalParam("alGetBooleanv",param);if(val===null||!pValues){return}switch(param){case 49152:case 49155:case 53248:HEAP8[pValues>>0]=val;break;default:AL.currentCtx.err=40962;return}}Module["_alGetBooleanv"]=_alGetBooleanv;_alGetBooleanv.sig="vii";function _alGetBuffer3f(bufferId,param,pValue0,pValue1,pValue2){var val=AL.getBufferParam("alGetBuffer3f",bufferId,param);if(val===null){return}if(!pValue0||!pValue1||!pValue2){AL.currentCtx.err=40963;return}AL.currentCtx.err=40962}Module["_alGetBuffer3f"]=_alGetBuffer3f;_alGetBuffer3f.sig="viiiii";function _alGetBuffer3i(bufferId,param,pValue0,pValue1,pValue2){var val=AL.getBufferParam("alGetBuffer3i",bufferId,param);if(val===null){return}if(!pValue0||!pValue1||!pValue2){AL.currentCtx.err=40963;return}AL.currentCtx.err=40962}Module["_alGetBuffer3i"]=_alGetBuffer3i;_alGetBuffer3i.sig="viiiii";function _alGetBufferf(bufferId,param,pValue){var val=AL.getBufferParam("alGetBufferf",bufferId,param);if(val===null){return}if(!pValue){AL.currentCtx.err=40963;return}AL.currentCtx.err=40962}Module["_alGetBufferf"]=_alGetBufferf;_alGetBufferf.sig="viii";function _alGetBufferfv(bufferId,param,pValues){var val=AL.getBufferParam("alGetBufferfv",bufferId,param);if(val===null){return}if(!pValues){AL.currentCtx.err=40963;return}AL.currentCtx.err=40962}Module["_alGetBufferfv"]=_alGetBufferfv;_alGetBufferfv.sig="viii";function _alGetBufferi(bufferId,param,pValue){var val=AL.getBufferParam("alGetBufferi",bufferId,param);if(val===null){return}if(!pValue){AL.currentCtx.err=40963;return}switch(param){case 8193:case 8194:case 8195:case 8196:HEAP32[pValue>>2]=val;break;default:AL.currentCtx.err=40962;return}}Module["_alGetBufferi"]=_alGetBufferi;_alGetBufferi.sig="viii";function _alGetBufferiv(bufferId,param,pValues){var val=AL.getBufferParam("alGetBufferiv",bufferId,param);if(val===null){return}if(!pValues){AL.currentCtx.err=40963;return}switch(param){case 8193:case 8194:case 8195:case 8196:HEAP32[pValues>>2]=val;break;case 8213:HEAP32[pValues>>2]=val[0];HEAP32[pValues+4>>2]=val[1];break;default:AL.currentCtx.err=40962;return}}Module["_alGetBufferiv"]=_alGetBufferiv;_alGetBufferiv.sig="viii";function _alGetDouble(param){var val=AL.getGlobalParam("alGetDouble",param);if(val===null){return 0}switch(param){case 49152:case 49155:case 53248:return val;default:AL.currentCtx.err=40962;return 0}}Module["_alGetDouble"]=_alGetDouble;_alGetDouble.sig="di";function _alGetDoublev(param,pValues){var val=AL.getGlobalParam("alGetDoublev",param);if(val===null||!pValues){return}switch(param){case 49152:case 49155:case 53248:HEAPF64[pValues>>3]=val;break;default:AL.currentCtx.err=40962;return}}Module["_alGetDoublev"]=_alGetDoublev;_alGetDoublev.sig="vii";function _alGetEnumValue(pEnumName){if(!AL.currentCtx){return 0}if(!pEnumName){AL.currentCtx.err=40963;return 0}var name=UTF8ToString(pEnumName);switch(name){case"AL_BITS":return 8194;case"AL_BUFFER":return 4105;case"AL_BUFFERS_PROCESSED":return 4118;case"AL_BUFFERS_QUEUED":return 4117;case"AL_BYTE_OFFSET":return 4134;case"AL_CHANNELS":return 8195;case"AL_CONE_INNER_ANGLE":return 4097;case"AL_CONE_OUTER_ANGLE":return 4098;case"AL_CONE_OUTER_GAIN":return 4130;case"AL_DIRECTION":return 4101;case"AL_DISTANCE_MODEL":return 53248;case"AL_DOPPLER_FACTOR":return 49152;case"AL_DOPPLER_VELOCITY":return 49153;case"AL_EXPONENT_DISTANCE":return 53253;case"AL_EXPONENT_DISTANCE_CLAMPED":return 53254;case"AL_EXTENSIONS":return 45060;case"AL_FORMAT_MONO16":return 4353;case"AL_FORMAT_MONO8":return 4352;case"AL_FORMAT_STEREO16":return 4355;case"AL_FORMAT_STEREO8":return 4354;case"AL_FREQUENCY":return 8193;case"AL_GAIN":return 4106;case"AL_INITIAL":return 4113;case"AL_INVALID":return-1;case"AL_ILLEGAL_ENUM":case"AL_INVALID_ENUM":return 40962;case"AL_INVALID_NAME":return 40961;case"AL_ILLEGAL_COMMAND":case"AL_INVALID_OPERATION":return 40964;case"AL_INVALID_VALUE":return 40963;case"AL_INVERSE_DISTANCE":return 53249;case"AL_INVERSE_DISTANCE_CLAMPED":return 53250;case"AL_LINEAR_DISTANCE":return 53251;case"AL_LINEAR_DISTANCE_CLAMPED":return 53252;case"AL_LOOPING":return 4103;case"AL_MAX_DISTANCE":return 4131;case"AL_MAX_GAIN":return 4110;case"AL_MIN_GAIN":return 4109;case"AL_NONE":return 0;case"AL_NO_ERROR":return 0;case"AL_ORIENTATION":return 4111;case"AL_OUT_OF_MEMORY":return 40965;case"AL_PAUSED":return 4115;case"AL_PENDING":return 8209;case"AL_PITCH":return 4099;case"AL_PLAYING":return 4114;case"AL_POSITION":return 4100;case"AL_PROCESSED":return 8210;case"AL_REFERENCE_DISTANCE":return 4128;case"AL_RENDERER":return 45059;case"AL_ROLLOFF_FACTOR":return 4129;case"AL_SAMPLE_OFFSET":return 4133;case"AL_SEC_OFFSET":return 4132;case"AL_SIZE":return 8196;case"AL_SOURCE_RELATIVE":return 514;case"AL_SOURCE_STATE":return 4112;case"AL_SOURCE_TYPE":return 4135;case"AL_SPEED_OF_SOUND":return 49155;case"AL_STATIC":return 4136;case"AL_STOPPED":return 4116;case"AL_STREAMING":return 4137;case"AL_UNDETERMINED":return 4144;case"AL_UNUSED":return 8208;case"AL_VELOCITY":return 4102;case"AL_VENDOR":return 45057;case"AL_VERSION":return 45058;case"AL_AUTO_SOFT":return 2;case"AL_SOURCE_DISTANCE_MODEL":return 512;case"AL_SOURCE_SPATIALIZE_SOFT":return 4628;case"AL_LOOP_POINTS_SOFT":return 8213;case"AL_BYTE_LENGTH_SOFT":return 8201;case"AL_SAMPLE_LENGTH_SOFT":return 8202;case"AL_SEC_LENGTH_SOFT":return 8203;case"AL_FORMAT_MONO_FLOAT32":return 65552;case"AL_FORMAT_STEREO_FLOAT32":return 65553;default:AL.currentCtx.err=40963;return 0}}Module["_alGetEnumValue"]=_alGetEnumValue;_alGetEnumValue.sig="ii";function _alGetError(){if(!AL.currentCtx){return 40964}else{var err=AL.currentCtx.err;AL.currentCtx.err=0;return err}}Module["_alGetError"]=_alGetError;_alGetError.sig="i";function _alGetFloat(param){var val=AL.getGlobalParam("alGetFloat",param);if(val===null){return 0}switch(param){case 49152:case 49155:case 53248:return val;default:return 0}}Module["_alGetFloat"]=_alGetFloat;_alGetFloat.sig="fi";function _alGetFloatv(param,pValues){var val=AL.getGlobalParam("alGetFloatv",param);if(val===null||!pValues){return}switch(param){case 49152:case 49155:case 53248:HEAPF32[pValues>>2]=val;break;default:AL.currentCtx.err=40962;return}}Module["_alGetFloatv"]=_alGetFloatv;_alGetFloatv.sig="vii";function _alGetInteger(param){var val=AL.getGlobalParam("alGetInteger",param);if(val===null){return 0}switch(param){case 49152:case 49155:case 53248:return val;default:AL.currentCtx.err=40962;return 0}}Module["_alGetInteger"]=_alGetInteger;_alGetInteger.sig="ii";function _alGetIntegerv(param,pValues){var val=AL.getGlobalParam("alGetIntegerv",param);if(val===null||!pValues){return}switch(param){case 49152:case 49155:case 53248:HEAP32[pValues>>2]=val;break;default:AL.currentCtx.err=40962;return}}Module["_alGetIntegerv"]=_alGetIntegerv;_alGetIntegerv.sig="vii";function _alGetListener3f(param,pValue0,pValue1,pValue2){var val=AL.getListenerParam("alGetListener3f",param);if(val===null){return}if(!pValue0||!pValue1||!pValue2){AL.currentCtx.err=40963;return}switch(param){case 4100:case 4102:HEAPF32[pValue0>>2]=val[0];HEAPF32[pValue1>>2]=val[1];HEAPF32[pValue2>>2]=val[2];break;default:AL.currentCtx.err=40962;return}}Module["_alGetListener3f"]=_alGetListener3f;_alGetListener3f.sig="viiii";function _alGetListener3i(param,pValue0,pValue1,pValue2){var val=AL.getListenerParam("alGetListener3i",param);if(val===null){return}if(!pValue0||!pValue1||!pValue2){AL.currentCtx.err=40963;return}switch(param){case 4100:case 4102:HEAP32[pValue0>>2]=val[0];HEAP32[pValue1>>2]=val[1];HEAP32[pValue2>>2]=val[2];break;default:AL.currentCtx.err=40962;return}}Module["_alGetListener3i"]=_alGetListener3i;_alGetListener3i.sig="viiii";function _alGetListenerf(param,pValue){var val=AL.getListenerParam("alGetListenerf",param);if(val===null){return}if(!pValue){AL.currentCtx.err=40963;return}switch(param){case 4106:HEAPF32[pValue>>2]=val;break;default:AL.currentCtx.err=40962;return}}Module["_alGetListenerf"]=_alGetListenerf;_alGetListenerf.sig="vii";function _alGetListenerfv(param,pValues){var val=AL.getListenerParam("alGetListenerfv",param);if(val===null){return}if(!pValues){AL.currentCtx.err=40963;return}switch(param){case 4100:case 4102:HEAPF32[pValues>>2]=val[0];HEAPF32[pValues+4>>2]=val[1];HEAPF32[pValues+8>>2]=val[2];break;case 4111:HEAPF32[pValues>>2]=val[0];HEAPF32[pValues+4>>2]=val[1];HEAPF32[pValues+8>>2]=val[2];HEAPF32[pValues+12>>2]=val[3];HEAPF32[pValues+16>>2]=val[4];HEAPF32[pValues+20>>2]=val[5];break;default:AL.currentCtx.err=40962;return}}Module["_alGetListenerfv"]=_alGetListenerfv;_alGetListenerfv.sig="vii";function _alGetListeneri(param,pValue){var val=AL.getListenerParam("alGetListeneri",param);if(val===null){return}if(!pValue){AL.currentCtx.err=40963;return}AL.currentCtx.err=40962}Module["_alGetListeneri"]=_alGetListeneri;_alGetListeneri.sig="vii";function _alGetListeneriv(param,pValues){var val=AL.getListenerParam("alGetListeneriv",param);if(val===null){return}if(!pValues){AL.currentCtx.err=40963;return}switch(param){case 4100:case 4102:HEAP32[pValues>>2]=val[0];HEAP32[pValues+4>>2]=val[1];HEAP32[pValues+8>>2]=val[2];break;case 4111:HEAP32[pValues>>2]=val[0];HEAP32[pValues+4>>2]=val[1];HEAP32[pValues+8>>2]=val[2];HEAP32[pValues+12>>2]=val[3];HEAP32[pValues+16>>2]=val[4];HEAP32[pValues+20>>2]=val[5];break;default:AL.currentCtx.err=40962;return}}Module["_alGetListeneriv"]=_alGetListeneriv;_alGetListeneriv.sig="vii";function _alGetSource3f(sourceId,param,pValue0,pValue1,pValue2){var val=AL.getSourceParam("alGetSource3f",sourceId,param);if(val===null){return}if(!pValue0||!pValue1||!pValue2){AL.currentCtx.err=40963;return}switch(param){case 4100:case 4101:case 4102:HEAPF32[pValue0>>2]=val[0];HEAPF32[pValue1>>2]=val[1];HEAPF32[pValue2>>2]=val[2];break;default:AL.currentCtx.err=40962;return}}Module["_alGetSource3f"]=_alGetSource3f;_alGetSource3f.sig="viiiii";function _alGetSource3i(sourceId,param,pValue0,pValue1,pValue2){var val=AL.getSourceParam("alGetSource3i",sourceId,param);if(val===null){return}if(!pValue0||!pValue1||!pValue2){AL.currentCtx.err=40963;return}switch(param){case 4100:case 4101:case 4102:HEAP32[pValue0>>2]=val[0];HEAP32[pValue1>>2]=val[1];HEAP32[pValue2>>2]=val[2];break;default:AL.currentCtx.err=40962;return}}Module["_alGetSource3i"]=_alGetSource3i;_alGetSource3i.sig="viiiii";function _alGetSourcef(sourceId,param,pValue){var val=AL.getSourceParam("alGetSourcef",sourceId,param);if(val===null){return}if(!pValue){AL.currentCtx.err=40963;return}switch(param){case 4097:case 4098:case 4099:case 4106:case 4109:case 4110:case 4128:case 4129:case 4130:case 4131:case 4132:case 4133:case 4134:case 8203:HEAPF32[pValue>>2]=val;break;default:AL.currentCtx.err=40962;return}}Module["_alGetSourcef"]=_alGetSourcef;_alGetSourcef.sig="viii";function _alGetSourcefv(sourceId,param,pValues){var val=AL.getSourceParam("alGetSourcefv",sourceId,param);if(val===null){return}if(!pValues){AL.currentCtx.err=40963;return}switch(param){case 4097:case 4098:case 4099:case 4106:case 4109:case 4110:case 4128:case 4129:case 4130:case 4131:case 4132:case 4133:case 4134:case 8203:HEAPF32[pValues>>2]=val[0];break;case 4100:case 4101:case 4102:HEAPF32[pValues>>2]=val[0];HEAPF32[pValues+4>>2]=val[1];HEAPF32[pValues+8>>2]=val[2];break;default:AL.currentCtx.err=40962;return}}Module["_alGetSourcefv"]=_alGetSourcefv;_alGetSourcefv.sig="viii";function _alGetSourcei(sourceId,param,pValue){var val=AL.getSourceParam("alGetSourcei",sourceId,param);if(val===null){return}if(!pValue){AL.currentCtx.err=40963;return}switch(param){case 514:case 4097:case 4098:case 4103:case 4105:case 4112:case 4117:case 4118:case 4128:case 4129:case 4131:case 4132:case 4133:case 4134:case 4135:case 4628:case 8201:case 8202:case 53248:HEAP32[pValue>>2]=val;break;default:AL.currentCtx.err=40962;return}}Module["_alGetSourcei"]=_alGetSourcei;_alGetSourcei.sig="viii";function _alGetSourceiv(sourceId,param,pValues){var val=AL.getSourceParam("alGetSourceiv",sourceId,param);if(val===null){return}if(!pValues){AL.currentCtx.err=40963;return}switch(param){case 514:case 4097:case 4098:case 4103:case 4105:case 4112:case 4117:case 4118:case 4128:case 4129:case 4131:case 4132:case 4133:case 4134:case 4135:case 4628:case 8201:case 8202:case 53248:HEAP32[pValues>>2]=val;break;case 4100:case 4101:case 4102:HEAP32[pValues>>2]=val[0];HEAP32[pValues+4>>2]=val[1];HEAP32[pValues+8>>2]=val[2];break;default:AL.currentCtx.err=40962;return}}Module["_alGetSourceiv"]=_alGetSourceiv;_alGetSourceiv.sig="viii";function _alGetString(param){if(!AL.currentCtx){return 0}if(AL.stringCache[param]){return AL.stringCache[param]}var ret;switch(param){case 0:ret="No Error";break;case 40961:ret="Invalid Name";break;case 40962:ret="Invalid Enum";break;case 40963:ret="Invalid Value";break;case 40964:ret="Invalid Operation";break;case 40965:ret="Out of Memory";break;case 45057:ret="Emscripten";break;case 45058:ret="1.1";break;case 45059:ret="WebAudio";break;case 45060:ret="";for(var ext in AL.AL_EXTENSIONS){ret=ret.concat(ext);ret=ret.concat(" ")}ret=ret.trim();break;default:AL.currentCtx.err=40962;return 0}ret=allocate(intArrayFromString(ret),ALLOC_NORMAL);AL.stringCache[param]=ret;return ret}Module["_alGetString"]=_alGetString;_alGetString.sig="ii";function _alIsBuffer(bufferId){if(!AL.currentCtx){return false}if(bufferId>AL.buffers.length){return false}if(!AL.buffers[bufferId]){return false}else{return true}}Module["_alIsBuffer"]=_alIsBuffer;_alIsBuffer.sig="ii";function _alIsEnabled(param){if(!AL.currentCtx){return 0}switch(param){case"AL_SOURCE_DISTANCE_MODEL":return AL.currentCtx.sourceDistanceModel?0:1;default:AL.currentCtx.err=40962;return 0}}Module["_alIsEnabled"]=_alIsEnabled;_alIsEnabled.sig="ii";function _alIsExtensionPresent(pExtName){var name=UTF8ToString(pExtName);return AL.AL_EXTENSIONS[name]?1:0}Module["_alIsExtensionPresent"]=_alIsExtensionPresent;_alIsExtensionPresent.sig="ii";function _alIsSource(sourceId){if(!AL.currentCtx){return false}if(!AL.currentCtx.sources[sourceId]){return false}else{return true}}Module["_alIsSource"]=_alIsSource;_alIsSource.sig="ii";function _alListener3f(param,value0,value1,value2){switch(param){case 4100:case 4102:AL.paramArray[0]=value0;AL.paramArray[1]=value1;AL.paramArray[2]=value2;AL.setListenerParam("alListener3f",param,AL.paramArray);break;default:AL.setListenerParam("alListener3f",param,null);break}}Module["_alListener3f"]=_alListener3f;_alListener3f.sig="vifff";function _alListener3i(param,value0,value1,value2){switch(param){case 4100:case 4102:AL.paramArray[0]=value0;AL.paramArray[1]=value1;AL.paramArray[2]=value2;AL.setListenerParam("alListener3i",param,AL.paramArray);break;default:AL.setListenerParam("alListener3i",param,null);break}}Module["_alListener3i"]=_alListener3i;_alListener3i.sig="viiii";function _alListenerf(param,value){switch(param){case 4106:AL.setListenerParam("alListenerf",param,value);break;default:AL.setListenerParam("alListenerf",param,null);break}}Module["_alListenerf"]=_alListenerf;_alListenerf.sig="vif";function _alListenerfv(param,pValues){if(!AL.currentCtx){return}if(!pValues){AL.currentCtx.err=40963;return}switch(param){case 4100:case 4102:AL.paramArray[0]=HEAPF32[pValues>>2];AL.paramArray[1]=HEAPF32[pValues+4>>2];AL.paramArray[2]=HEAPF32[pValues+8>>2];AL.setListenerParam("alListenerfv",param,AL.paramArray);break;case 4111:AL.paramArray[0]=HEAPF32[pValues>>2];AL.paramArray[1]=HEAPF32[pValues+4>>2];AL.paramArray[2]=HEAPF32[pValues+8>>2];AL.paramArray[3]=HEAPF32[pValues+12>>2];AL.paramArray[4]=HEAPF32[pValues+16>>2];AL.paramArray[5]=HEAPF32[pValues+20>>2];AL.setListenerParam("alListenerfv",param,AL.paramArray);break;default:AL.setListenerParam("alListenerfv",param,null);break}}Module["_alListenerfv"]=_alListenerfv;_alListenerfv.sig="vii";function _alListeneri(param,value){AL.setListenerParam("alListeneri",param,null)}Module["_alListeneri"]=_alListeneri;_alListeneri.sig="vii";function _alListeneriv(param,pValues){if(!AL.currentCtx){return}if(!pValues){AL.currentCtx.err=40963;return}switch(param){case 4100:case 4102:AL.paramArray[0]=HEAP32[pValues>>2];AL.paramArray[1]=HEAP32[pValues+4>>2];AL.paramArray[2]=HEAP32[pValues+8>>2];AL.setListenerParam("alListeneriv",param,AL.paramArray);break;case 4111:AL.paramArray[0]=HEAP32[pValues>>2];AL.paramArray[1]=HEAP32[pValues+4>>2];AL.paramArray[2]=HEAP32[pValues+8>>2];AL.paramArray[3]=HEAP32[pValues+12>>2];AL.paramArray[4]=HEAP32[pValues+16>>2];AL.paramArray[5]=HEAP32[pValues+20>>2];AL.setListenerParam("alListeneriv",param,AL.paramArray);break;default:AL.setListenerParam("alListeneriv",param,null);break}}Module["_alListeneriv"]=_alListeneriv;_alListeneriv.sig="vii";function _alSource3f(sourceId,param,value0,value1,value2){switch(param){case 4100:case 4101:case 4102:AL.paramArray[0]=value0;AL.paramArray[1]=value1;AL.paramArray[2]=value2;AL.setSourceParam("alSource3f",sourceId,param,AL.paramArray);break;default:AL.setSourceParam("alSource3f",sourceId,param,null);break}}Module["_alSource3f"]=_alSource3f;_alSource3f.sig="viifff";function _alSource3i(sourceId,param,value0,value1,value2){switch(param){case 4100:case 4101:case 4102:AL.paramArray[0]=value0;AL.paramArray[1]=value1;AL.paramArray[2]=value2;AL.setSourceParam("alSource3i",sourceId,param,AL.paramArray);break;default:AL.setSourceParam("alSource3i",sourceId,param,null);break}}Module["_alSource3i"]=_alSource3i;_alSource3i.sig="viiiii";function _alSourcePause(sourceId){if(!AL.currentCtx){return}var src=AL.currentCtx.sources[sourceId];if(!src){AL.currentCtx.err=40961;return}AL.setSourceState(src,4115)}Module["_alSourcePause"]=_alSourcePause;_alSourcePause.sig="vi";function _alSourcePausev(count,pSourceIds){if(!AL.currentCtx){return}if(!pSourceIds){AL.currentCtx.err=40963}for(var i=0;i>2]]){AL.currentCtx.err=40961;return}}for(var i=0;i>2],4115)}}Module["_alSourcePausev"]=_alSourcePausev;_alSourcePausev.sig="vii";function _alSourcePlay(sourceId){if(!AL.currentCtx){return}var src=AL.currentCtx.sources[sourceId];if(!src){AL.currentCtx.err=40961;return}AL.setSourceState(src,4114)}Module["_alSourcePlay"]=_alSourcePlay;_alSourcePlay.sig="vi";function _alSourcePlayv(count,pSourceIds){if(!AL.currentCtx){return}if(!pSourceIds){AL.currentCtx.err=40963}for(var i=0;i>2]]){AL.currentCtx.err=40961;return}}for(var i=0;i>2],4114)}}Module["_alSourcePlayv"]=_alSourcePlayv;_alSourcePlayv.sig="vii";function _alSourceQueueBuffers(sourceId,count,pBufferIds){if(!AL.currentCtx){return}var src=AL.currentCtx.sources[sourceId];if(!src){AL.currentCtx.err=40961;return}if(src.type===4136){AL.currentCtx.err=40964;return}if(count===0){return}var templateBuf=AL.buffers[0];for(var i=0;i>2];var buf=AL.buffers[bufId];if(!buf){AL.currentCtx.err=40961;return}if(templateBuf.id!==0&&(buf.frequency!==templateBuf.frequency||buf.bytesPerSample!==templateBuf.bytesPerSample||buf.channels!==templateBuf.channels)){AL.currentCtx.err=40964}}if(src.bufQueue.length===1&&src.bufQueue[0].id===0){src.bufQueue.length=0}src.type=4137;for(var i=0;i>2];var buf=AL.buffers[bufId];buf.refCount++;src.bufQueue.push(buf)}if(src.looping){AL.cancelPendingSourceAudio(src)}AL.initSourcePanner(src);AL.scheduleSourceAudio(src)}Module["_alSourceQueueBuffers"]=_alSourceQueueBuffers;_alSourceQueueBuffers.sig="viii";function _alSourceRewind(sourceId){if(!AL.currentCtx){return}var src=AL.currentCtx.sources[sourceId];if(!src){AL.currentCtx.err=40961;return}AL.setSourceState(src,4116);AL.setSourceState(src,4113)}Module["_alSourceRewind"]=_alSourceRewind;_alSourceRewind.sig="vi";function _alSourceRewindv(count,pSourceIds){if(!AL.currentCtx){return}if(!pSourceIds){AL.currentCtx.err=40963}for(var i=0;i>2]]){AL.currentCtx.err=40961;return}}for(var i=0;i>2],4113)}}Module["_alSourceRewindv"]=_alSourceRewindv;_alSourceRewindv.sig="vii";function _alSourceStop(sourceId){if(!AL.currentCtx){return}var src=AL.currentCtx.sources[sourceId];if(!src){AL.currentCtx.err=40961;return}AL.setSourceState(src,4116)}Module["_alSourceStop"]=_alSourceStop;_alSourceStop.sig="vi";function _alSourceStopv(count,pSourceIds){if(!AL.currentCtx){return}if(!pSourceIds){AL.currentCtx.err=40963}for(var i=0;i>2]]){AL.currentCtx.err=40961;return}}for(var i=0;i>2],4116)}}Module["_alSourceStopv"]=_alSourceStopv;_alSourceStopv.sig="vii";function _alSourceUnqueueBuffers(sourceId,count,pBufferIds){if(!AL.currentCtx){return}var src=AL.currentCtx.sources[sourceId];if(!src){AL.currentCtx.err=40961;return}if(count>(src.bufQueue.length===1&&src.bufQueue[0].id===0?0:src.bufsProcessed)){AL.currentCtx.err=40963;return}if(count===0){return}for(var i=0;i>2]=buf.id;src.bufsProcessed--}if(src.bufQueue.length===0){src.bufQueue.push(AL.buffers[0])}AL.initSourcePanner(src);AL.scheduleSourceAudio(src)}Module["_alSourceUnqueueBuffers"]=_alSourceUnqueueBuffers;_alSourceUnqueueBuffers.sig="viii";function _alSourcef(sourceId,param,value){switch(param){case 4097:case 4098:case 4099:case 4106:case 4109:case 4110:case 4128:case 4129:case 4130:case 4131:case 4132:case 4133:case 4134:case 8203:AL.setSourceParam("alSourcef",sourceId,param,value);break;default:AL.setSourceParam("alSourcef",sourceId,param,null);break}}Module["_alSourcef"]=_alSourcef;_alSourcef.sig="viif";function _alSourcefv(sourceId,param,pValues){if(!AL.currentCtx){return}if(!pValues){AL.currentCtx.err=40963;return}switch(param){case 4097:case 4098:case 4099:case 4106:case 4109:case 4110:case 4128:case 4129:case 4130:case 4131:case 4132:case 4133:case 4134:case 8203:var val=HEAPF32[pValues>>2];AL.setSourceParam("alSourcefv",sourceId,param,val);break;case 4100:case 4101:case 4102:AL.paramArray[0]=HEAPF32[pValues>>2];AL.paramArray[1]=HEAPF32[pValues+4>>2];AL.paramArray[2]=HEAPF32[pValues+8>>2];AL.setSourceParam("alSourcefv",sourceId,param,AL.paramArray);break;default:AL.setSourceParam("alSourcefv",sourceId,param,null);break}}Module["_alSourcefv"]=_alSourcefv;_alSourcefv.sig="viii";function _alSourceiv(sourceId,param,pValues){if(!AL.currentCtx){return}if(!pValues){AL.currentCtx.err=40963;return}switch(param){case 514:case 4097:case 4098:case 4103:case 4105:case 4128:case 4129:case 4131:case 4132:case 4133:case 4134:case 4628:case 8201:case 8202:case 53248:var val=HEAP32[pValues>>2];AL.setSourceParam("alSourceiv",sourceId,param,val);break;case 4100:case 4101:case 4102:AL.paramArray[0]=HEAP32[pValues>>2];AL.paramArray[1]=HEAP32[pValues+4>>2];AL.paramArray[2]=HEAP32[pValues+8>>2];AL.setSourceParam("alSourceiv",sourceId,param,AL.paramArray);break;default:AL.setSourceParam("alSourceiv",sourceId,param,null);break}}Module["_alSourceiv"]=_alSourceiv;_alSourceiv.sig="viii";function _alSpeedOfSound(value){AL.setGlobalParam("alSpeedOfSound",49155,value)}Module["_alSpeedOfSound"]=_alSpeedOfSound;_alSpeedOfSound.sig="vi";function _alarm(seconds){setTimeout(function(){if(__sigalrm_handler)wasmTable.get(__sigalrm_handler)(0)},seconds*1e3)}Module["_alarm"]=_alarm;function _alcCaptureCloseDevice(deviceId){var c=AL.requireValidCaptureDevice(deviceId,"alcCaptureCloseDevice");if(!c)return false;delete AL.captures[deviceId];AL.freeIds.push(deviceId);if(c.mediaStreamSourceNode)c.mediaStreamSourceNode.disconnect();if(c.mergerNode)c.mergerNode.disconnect();if(c.splitterNode)c.splitterNode.disconnect();if(c.scriptProcessorNode)c.scriptProcessorNode.disconnect();if(c.mediaStream){c.mediaStream.getTracks().forEach(function(track){track.stop()})}delete c.buffers;c.capturedFrameCount=0;c.isCapturing=false;return true}Module["_alcCaptureCloseDevice"]=_alcCaptureCloseDevice;_alcCaptureCloseDevice.sig="ii";function listenOnce(object,event,func){object.addEventListener(event,func,{"once":true})}Module["listenOnce"]=listenOnce;function autoResumeAudioContext(ctx,elements){if(!elements){elements=[document,document.getElementById("canvas")]}["keydown","mousedown","touchstart"].forEach(function(event){elements.forEach(function(element){if(element){listenOnce(element,event,function(){if(ctx.state==="suspended")ctx.resume()})}})})}Module["autoResumeAudioContext"]=autoResumeAudioContext;function _alcCaptureOpenDevice(pDeviceName,requestedSampleRate,format,bufferFrameCapacity){var resolvedDeviceName=AL.CAPTURE_DEVICE_NAME;if(pDeviceName!==0){resolvedDeviceName=UTF8ToString(pDeviceName);if(resolvedDeviceName!==AL.CAPTURE_DEVICE_NAME){AL.alcErr=40965;return 0}}if(bufferFrameCapacity<0){AL.alcErr=40964;return 0}navigator.getUserMedia=navigator.getUserMedia||navigator.webkitGetUserMedia||navigator.mozGetUserMedia||navigator.msGetUserMedia;var has_getUserMedia=navigator.getUserMedia||navigator.mediaDevices&&navigator.mediaDevices.getUserMedia;if(!has_getUserMedia){AL.alcErr=40965;return 0}var AudioContext=window.AudioContext||window.webkitAudioContext;if(!AL.sharedCaptureAudioCtx){try{AL.sharedCaptureAudioCtx=new AudioContext}catch(e){AL.alcErr=40965;return 0}}autoResumeAudioContext(AL.sharedCaptureAudioCtx);var outputChannelCount;switch(format){case 65552:case 4353:case 4352:outputChannelCount=1;break;case 65553:case 4355:case 4354:outputChannelCount=2;break;default:AL.alcErr=40964;return 0}function newF32Array(cap){return new Float32Array(cap)}function newI16Array(cap){return new Int16Array(cap)}function newU8Array(cap){return new Uint8Array(cap)}var requestedSampleType;var newSampleArray;switch(format){case 65552:case 65553:requestedSampleType="f32";newSampleArray=newF32Array;break;case 4353:case 4355:requestedSampleType="i16";newSampleArray=newI16Array;break;case 4352:case 4354:requestedSampleType="u8";newSampleArray=newU8Array;break}var buffers=[];try{for(var chan=0;chanoutputChannelCount){newCapture.mergerNode=newCapture.audioCtx.createChannelMerger(inputChannelCount);newCapture.mediaStreamSourceNode.connect(newCapture.mergerNode);newCapture.mergerNode.connect(newCapture.scriptProcessorNode)}else if(inputChannelCountc.capturedFrameCount/fratio){err("alcCaptureSamples() with invalid bufferSize");AL.alcErr=40964;return}function setF32Sample(i,sample){HEAPF32[pFrames+4*i>>2]=sample}function setI16Sample(i,sample){HEAP16[pFrames+2*i>>1]=sample}function setU8Sample(i,sample){HEAP8[pFrames+i>>0]=sample}var setSample;switch(c.requestedSampleType){case"f32":setSample=setF32Sample;break;case"i16":setSample=setI16Sample;break;case"u8":setSample=setU8Sample;break;default:return}if(Math.floor(fratio)==fratio){for(var i=0,frame_i=0;frame_i0){return 0}delete AL.deviceRefCounts[deviceId];AL.freeIds.push(deviceId);return 1}Module["_alcCloseDevice"]=_alcCloseDevice;_alcCloseDevice.sig="ii";function _alcCreateContext(deviceId,pAttrList){if(!(deviceId in AL.deviceRefCounts)){AL.alcErr=40961;return 0}var options=null;var attrs=[];var hrtf=null;pAttrList>>=2;if(pAttrList){var attr=0;var val=0;while(true){attr=HEAP32[pAttrList++];attrs.push(attr);if(attr===0){break}val=HEAP32[pAttrList++];attrs.push(val);switch(attr){case 4103:if(!options){options={}}options.sampleRate=val;break;case 4112:case 4113:break;case 6546:switch(val){case 0:hrtf=false;break;case 1:hrtf=true;break;case 2:break;default:AL.alcErr=40964;return 0}break;case 6550:if(val!==0){AL.alcErr=40964;return 0}break;default:AL.alcErr=40964;return 0}}}var AudioContext=window.AudioContext||window.webkitAudioContext;var ac=null;try{if(options){ac=new AudioContext(options)}else{ac=new AudioContext}}catch(e){if(e.name==="NotSupportedError"){AL.alcErr=40964}else{AL.alcErr=40961}return 0}autoResumeAudioContext(ac);if(typeof ac.createGain==="undefined"){ac.createGain=ac.createGainNode}var gain=ac.createGain();gain.connect(ac.destination);var ctx={deviceId:deviceId,id:AL.newId(),attrs:attrs,audioCtx:ac,listener:{position:[0,0,0],velocity:[0,0,0],direction:[0,0,0],up:[0,0,0]},sources:[],interval:setInterval(function(){AL.scheduleContextAudio(ctx)},AL.QUEUE_INTERVAL),gain:gain,distanceModel:53250,speedOfSound:343.3,dopplerFactor:1,sourceDistanceModel:false,hrtf:hrtf||false,_err:0,get err(){return this._err},set err(val){if(this._err===0||val===0){this._err=val}}};AL.deviceRefCounts[deviceId]++;AL.contexts[ctx.id]=ctx;if(hrtf!==null){for(var ctxId in AL.contexts){var c=AL.contexts[ctxId];if(c.deviceId===deviceId){c.hrtf=hrtf;AL.updateContextGlobal(c)}}}return ctx.id}Module["_alcCreateContext"]=_alcCreateContext;_alcCreateContext.sig="iii";function _alcDestroyContext(contextId){var ctx=AL.contexts[contextId];if(AL.currentCtx===ctx){AL.alcErr=40962;return}if(AL.contexts[contextId].interval){clearInterval(AL.contexts[contextId].interval)}AL.deviceRefCounts[ctx.deviceId]--;delete AL.contexts[contextId];AL.freeIds.push(contextId)}Module["_alcDestroyContext"]=_alcDestroyContext;_alcDestroyContext.sig="vi";function _alcGetContextsDevice(contextId){if(contextId in AL.contexts){return AL.contexts[contextId].deviceId}else{return 0}}Module["_alcGetContextsDevice"]=_alcGetContextsDevice;_alcGetContextsDevice.sig="ii";function _alcGetCurrentContext(){if(AL.currentCtx!==null){return AL.currentCtx.id}else{return 0}}Module["_alcGetCurrentContext"]=_alcGetCurrentContext;_alcGetCurrentContext.sig="i";function _alcGetEnumValue(deviceId,pEnumName){if(deviceId!==0&&!(deviceId in AL.deviceRefCounts)){return 0}else if(!pEnumName){AL.alcErr=40964;return 0}var name=UTF8ToString(pEnumName);switch(name){case"ALC_NO_ERROR":return 0;case"ALC_INVALID_DEVICE":return 40961;case"ALC_INVALID_CONTEXT":return 40962;case"ALC_INVALID_ENUM":return 40963;case"ALC_INVALID_VALUE":return 40964;case"ALC_OUT_OF_MEMORY":return 40965;case"ALC_MAJOR_VERSION":return 4096;case"ALC_MINOR_VERSION":return 4097;case"ALC_ATTRIBUTES_SIZE":return 4098;case"ALC_ALL_ATTRIBUTES":return 4099;case"ALC_DEFAULT_DEVICE_SPECIFIER":return 4100;case"ALC_DEVICE_SPECIFIER":return 4101;case"ALC_EXTENSIONS":return 4102;case"ALC_FREQUENCY":return 4103;case"ALC_REFRESH":return 4104;case"ALC_SYNC":return 4105;case"ALC_MONO_SOURCES":return 4112;case"ALC_STEREO_SOURCES":return 4113;case"ALC_CAPTURE_DEVICE_SPECIFIER":return 784;case"ALC_CAPTURE_DEFAULT_DEVICE_SPECIFIER":return 785;case"ALC_CAPTURE_SAMPLES":return 786;case"ALC_HRTF_SOFT":return 6546;case"ALC_HRTF_ID_SOFT":return 6550;case"ALC_DONT_CARE_SOFT":return 2;case"ALC_HRTF_STATUS_SOFT":return 6547;case"ALC_NUM_HRTF_SPECIFIERS_SOFT":return 6548;case"ALC_HRTF_SPECIFIER_SOFT":return 6549;case"ALC_HRTF_DISABLED_SOFT":return 0;case"ALC_HRTF_ENABLED_SOFT":return 1;case"ALC_HRTF_DENIED_SOFT":return 2;case"ALC_HRTF_REQUIRED_SOFT":return 3;case"ALC_HRTF_HEADPHONES_DETECTED_SOFT":return 4;case"ALC_HRTF_UNSUPPORTED_FORMAT_SOFT":return 5;default:AL.alcErr=40964;return 0}}Module["_alcGetEnumValue"]=_alcGetEnumValue;_alcGetEnumValue.sig="iii";function _alcGetError(deviceId){var err=AL.alcErr;AL.alcErr=0;return err}Module["_alcGetError"]=_alcGetError;_alcGetError.sig="ii";function _alcGetIntegerv(deviceId,param,size,pValues){if(size===0||!pValues){return}switch(param){case 4096:HEAP32[pValues>>2]=1;break;case 4097:HEAP32[pValues>>2]=1;break;case 4098:if(!(deviceId in AL.deviceRefCounts)){AL.alcErr=40961;return}if(!AL.currentCtx){AL.alcErr=40962;return}HEAP32[pValues>>2]=AL.currentCtx.attrs.length;break;case 4099:if(!(deviceId in AL.deviceRefCounts)){AL.alcErr=40961;return}if(!AL.currentCtx){AL.alcErr=40962;return}for(var i=0;i>2]=AL.currentCtx.attrs[i]}break;case 4103:if(!(deviceId in AL.deviceRefCounts)){AL.alcErr=40961;return}if(!AL.currentCtx){AL.alcErr=40962;return}HEAP32[pValues>>2]=AL.currentCtx.audioCtx.sampleRate;break;case 4112:case 4113:if(!(deviceId in AL.deviceRefCounts)){AL.alcErr=40961;return}if(!AL.currentCtx){AL.alcErr=40962;return}HEAP32[pValues>>2]=2147483647;break;case 6546:case 6547:if(!(deviceId in AL.deviceRefCounts)){AL.alcErr=40961;return}var hrtfStatus=0;for(var ctxId in AL.contexts){var ctx=AL.contexts[ctxId];if(ctx.deviceId===deviceId){hrtfStatus=ctx.hrtf?1:0}}HEAP32[pValues>>2]=hrtfStatus;break;case 6548:if(!(deviceId in AL.deviceRefCounts)){AL.alcErr=40961;return}HEAP32[pValues>>2]=1;break;case 131075:if(!(deviceId in AL.deviceRefCounts)){AL.alcErr=40961;return}if(!AL.currentCtx){AL.alcErr=40962;return}HEAP32[pValues>>2]=1;case 786:var c=AL.requireValidCaptureDevice(deviceId,"alcGetIntegerv");if(!c){return}var n=c.capturedFrameCount;var dstfreq=c.requestedSampleRate;var srcfreq=c.audioCtx.sampleRate;var nsamples=Math.floor(n*(dstfreq/srcfreq));HEAP32[pValues>>2]=nsamples;break;default:AL.alcErr=40963;return}}Module["_alcGetIntegerv"]=_alcGetIntegerv;_alcGetIntegerv.sig="viiii";function _alcGetString(deviceId,param){if(AL.alcStringCache[param]){return AL.alcStringCache[param]}var ret;switch(param){case 0:ret="No Error";break;case 40961:ret="Invalid Device";break;case 40962:ret="Invalid Context";break;case 40963:ret="Invalid Enum";break;case 40964:ret="Invalid Value";break;case 40965:ret="Out of Memory";break;case 4100:if(typeof AudioContext!=="undefined"||typeof webkitAudioContext!=="undefined"){ret=AL.DEVICE_NAME}else{return 0}break;case 4101:if(typeof AudioContext!=="undefined"||typeof webkitAudioContext!=="undefined"){ret=AL.DEVICE_NAME.concat("\0")}else{ret="\0"}break;case 785:ret=AL.CAPTURE_DEVICE_NAME;break;case 784:if(deviceId===0)ret=AL.CAPTURE_DEVICE_NAME.concat("\0");else{var c=AL.requireValidCaptureDevice(deviceId,"alcGetString");if(!c){return 0}ret=c.deviceName}break;case 4102:if(!deviceId){AL.alcErr=40961;return 0}ret="";for(var ext in AL.ALC_EXTENSIONS){ret=ret.concat(ext);ret=ret.concat(" ")}ret=ret.trim();break;default:AL.alcErr=40963;return 0}ret=allocate(intArrayFromString(ret),ALLOC_NORMAL);AL.alcStringCache[param]=ret;return ret}Module["_alcGetString"]=_alcGetString;_alcGetString.sig="iii";function _alcIsExtensionPresent(deviceId,pExtName){var name=UTF8ToString(pExtName);return AL.ALC_EXTENSIONS[name]?1:0}Module["_alcIsExtensionPresent"]=_alcIsExtensionPresent;_alcIsExtensionPresent.sig="iii";function _alcMakeContextCurrent(contextId){if(contextId===0){AL.currentCtx=null;return 0}else{AL.currentCtx=AL.contexts[contextId];return 1}}Module["_alcMakeContextCurrent"]=_alcMakeContextCurrent;_alcMakeContextCurrent.sig="ii";function _alcOpenDevice(pDeviceName){if(pDeviceName){var name=UTF8ToString(pDeviceName);if(name!==AL.DEVICE_NAME){return 0}}if(typeof AudioContext!=="undefined"||typeof webkitAudioContext!=="undefined"){var deviceId=AL.newId();AL.deviceRefCounts[deviceId]=0;return deviceId}else{return 0}}Module["_alcOpenDevice"]=_alcOpenDevice;_alcOpenDevice.sig="ii";function _alcProcessContext(contextId){}Module["_alcProcessContext"]=_alcProcessContext;_alcProcessContext.sig="vi";function _alcSuspendContext(contextId){}Module["_alcSuspendContext"]=_alcSuspendContext;_alcSuspendContext.sig="vi";function _chroot(path){setErrNo(2);return-1}Module["_chroot"]=_chroot;_chroot.sig="ii";function _clock(){if(_clock.start===undefined)_clock.start=Date.now();return(Date.now()-_clock.start)*(1e6/1e3)|0}Module["_clock"]=_clock;_clock.sig="i";function _emscripten_get_now_res(){if(ENVIRONMENT_IS_NODE){return 1}else return 1e3}Module["_emscripten_get_now_res"]=_emscripten_get_now_res;function _clock_getres(clk_id,res){var nsec;if(clk_id===0){nsec=1e3*1e3}else if(clk_id===1&&_emscripten_get_now_is_monotonic){nsec=_emscripten_get_now_res()}else{setErrNo(28);return-1}HEAP32[res>>2]=nsec/1e9|0;HEAP32[res+4>>2]=nsec;return 0}Module["_clock_getres"]=_clock_getres;var DLFCN={error:null,errorMsg:null};Module["DLFCN"]=DLFCN;function _dlclose(handle){var lib=LDSO.loadedLibs[handle];if(!lib){DLFCN.errorMsg="Tried to dlclose() unopened handle: "+handle;return 1}if(--lib.refcount==0){delete LDSO.loadedLibNames[lib.name];delete LDSO.loadedLibs[handle]}return 0}Module["_dlclose"]=_dlclose;_dlclose.sig="ii";function stringToNewUTF8(jsString){var length=lengthBytesUTF8(jsString)+1;var cString=_malloc(length);stringToUTF8(jsString,cString,length);return cString}Module["stringToNewUTF8"]=stringToNewUTF8;function _dlerror(){if(DLFCN.errorMsg===null){return 0}if(DLFCN.error)_free(DLFCN.error);DLFCN.error=stringToNewUTF8(DLFCN.errorMsg);DLFCN.errorMsg=null;return DLFCN.error}Module["_dlerror"]=_dlerror;_dlerror.sig="i";var ENV={};Module["ENV"]=ENV;function dlopenInternal(filenameAddr,flags,jsflags){var searchpaths=[];var filename;if(filenameAddr===0){filename="__main__"}else{filename=UTF8ToString(filenameAddr);var isValidFile=function(filename){var target=FS.findObject(filename);return target&&!target.isFolder&&!target.isDevice};if(!isValidFile(filename)){if(ENV["LD_LIBRARY_PATH"]){searchpaths=ENV["LD_LIBRARY_PATH"].split(":")}for(var ident in searchpaths){var searchfile=PATH.join2(searchpaths[ident],filename);if(isValidFile(searchfile)){filename=searchfile;break}}}}if(!(flags&(1|2))){DLFCN.errorMsg="invalid mode for dlopen(): Either RTLD_LAZY or RTLD_NOW is required";return 0}var combinedFlags={global:Boolean(flags&256),nodelete:Boolean(flags&4096),loadAsync:jsflags.loadAsync,fs:jsflags.fs};if(jsflags.loadAsync){return loadDynamicLibrary(filename,combinedFlags)}try{return loadDynamicLibrary(filename,combinedFlags)}catch(e){DLFCN.errorMsg="Could not load dynamic lib: "+filename+"\n"+e;return 0}}Module["dlopenInternal"]=dlopenInternal;function _dlopen(filename,flags){var jsflags={loadAsync:false,fs:FS};return dlopenInternal(filename,flags,jsflags)}Module["_dlopen"]=_dlopen;_dlopen.sig="iii";function _dlsym(handle,symbol){symbol=UTF8ToString(symbol);var result;if(handle==0){result=resolveGlobalSymbol(symbol,true);if(!result){DLFCN.errorMsg='Tried to lookup unknown symbol "'+symbol+'" in dynamic lib: RTLD_DEFAULT';return 0}}else{var lib=LDSO.loadedLibs[handle];if(!lib){DLFCN.errorMsg="Tried to dlsym() from an unopened handle: "+handle;return 0}if(!lib.module.hasOwnProperty(symbol)){DLFCN.errorMsg='Tried to lookup unknown symbol "'+symbol+'" in dynamic lib: '+lib.name;return 0}result=lib.module["orig$"+symbol];if(!result)result=lib.module[symbol]}if(typeof result==="function"){return addFunctionWasm(result,result.sig)}else{return result}}Module["_dlsym"]=_dlsym;_dlsym.sig="iii";function _emscripten_alcDevicePauseSOFT(deviceId){if(!(deviceId in AL.deviceRefCounts)){AL.alcErr=40961;return}if(AL.paused){return}AL.paused=true;for(var ctxId in AL.contexts){var ctx=AL.contexts[ctxId];if(ctx.deviceId!==deviceId){continue}ctx.audioCtx.suspend();clearInterval(ctx.interval);ctx.interval=null}}Module["_emscripten_alcDevicePauseSOFT"]=_emscripten_alcDevicePauseSOFT;_emscripten_alcDevicePauseSOFT.sig="vi";function _emscripten_alcDeviceResumeSOFT(deviceId){if(!(deviceId in AL.deviceRefCounts)){AL.alcErr=40961;return}if(!AL.paused){return}AL.paused=false;for(var ctxId in AL.contexts){var ctx=AL.contexts[ctxId];if(ctx.deviceId!==deviceId){continue}ctx.interval=setInterval(function(){AL.scheduleContextAudio(ctx)},AL.QUEUE_INTERVAL);ctx.audioCtx.resume()}}Module["_emscripten_alcDeviceResumeSOFT"]=_emscripten_alcDeviceResumeSOFT;_emscripten_alcDeviceResumeSOFT.sig="vi";function _emscripten_alcGetStringiSOFT(deviceId,param,index){if(!(deviceId in AL.deviceRefCounts)){AL.alcErr=40961;return 0}if(AL.alcStringCache[param]){return AL.alcStringCache[param]}var ret;switch(param){case 6549:if(index===0){ret="Web Audio HRTF"}else{AL.alcErr=40964;return 0}break;default:if(index===0){return _alcGetString(deviceId,param)}else{AL.alcErr=40963;return 0}}ret=allocate(intArrayFromString(ret),ALLOC_NORMAL);AL.alcStringCache[param]=ret;return ret}Module["_emscripten_alcGetStringiSOFT"]=_emscripten_alcGetStringiSOFT;_emscripten_alcGetStringiSOFT.sig="iiii";function _emscripten_alcResetDeviceSOFT(deviceId,pAttrList){if(!(deviceId in AL.deviceRefCounts)){AL.alcErr=40961;return 0}var hrtf=null;pAttrList>>=2;if(pAttrList){var attr=0;var val=0;while(true){attr=HEAP32[pAttrList++];if(attr===0){break}val=HEAP32[pAttrList++];switch(attr){case 6546:if(val===1){hrtf=true}else if(val===0){hrtf=false}break}}}if(hrtf!==null){for(var ctxId in AL.contexts){var ctx=AL.contexts[ctxId];if(ctx.deviceId===deviceId){ctx.hrtf=hrtf;AL.updateContextGlobal(ctx)}}}return 1}Module["_emscripten_alcResetDeviceSOFT"]=_emscripten_alcResetDeviceSOFT;_emscripten_alcResetDeviceSOFT.sig="iii";var readAsmConstArgsArray=[];Module["readAsmConstArgsArray"]=readAsmConstArgsArray;function readAsmConstArgs(sigPtr,buf){readAsmConstArgsArray.length=0;var ch;buf>>=2;while(ch=HEAPU8[sigPtr++]){var double=ch<105;if(double&&buf&1)buf++;readAsmConstArgsArray.push(double?HEAPF64[buf++>>1]:HEAP32[buf]);++buf}return readAsmConstArgsArray}Module["readAsmConstArgs"]=readAsmConstArgs;function _emscripten_asm_const_int(code,sigPtr,argbuf){code-=1024;var args=readAsmConstArgs(sigPtr,argbuf);return ASM_CONSTS[code].apply(null,args)}Module["_emscripten_asm_const_int"]=_emscripten_asm_const_int;_emscripten_asm_const_int.sig="iiii";function _emscripten_exit_with_live_runtime(){throw"unwind"}Module["_emscripten_exit_with_live_runtime"]=_emscripten_exit_with_live_runtime;_emscripten_exit_with_live_runtime.sig="v";function _emscripten_get_heap_max(){return 2147483648}Module["_emscripten_get_heap_max"]=_emscripten_get_heap_max;function __webgl_enable_ANGLE_instanced_arrays(ctx){var ext=ctx.getExtension("ANGLE_instanced_arrays");if(ext){ctx["vertexAttribDivisor"]=function(index,divisor){ext["vertexAttribDivisorANGLE"](index,divisor)};ctx["drawArraysInstanced"]=function(mode,first,count,primcount){ext["drawArraysInstancedANGLE"](mode,first,count,primcount)};ctx["drawElementsInstanced"]=function(mode,count,type,indices,primcount){ext["drawElementsInstancedANGLE"](mode,count,type,indices,primcount)};return 1}}Module["__webgl_enable_ANGLE_instanced_arrays"]=__webgl_enable_ANGLE_instanced_arrays;function __webgl_enable_OES_vertex_array_object(ctx){var ext=ctx.getExtension("OES_vertex_array_object");if(ext){ctx["createVertexArray"]=function(){return ext["createVertexArrayOES"]()};ctx["deleteVertexArray"]=function(vao){ext["deleteVertexArrayOES"](vao)};ctx["bindVertexArray"]=function(vao){ext["bindVertexArrayOES"](vao)};ctx["isVertexArray"]=function(vao){return ext["isVertexArrayOES"](vao)};return 1}}Module["__webgl_enable_OES_vertex_array_object"]=__webgl_enable_OES_vertex_array_object;function __webgl_enable_WEBGL_draw_buffers(ctx){var ext=ctx.getExtension("WEBGL_draw_buffers");if(ext){ctx["drawBuffers"]=function(n,bufs){ext["drawBuffersWEBGL"](n,bufs)};return 1}}Module["__webgl_enable_WEBGL_draw_buffers"]=__webgl_enable_WEBGL_draw_buffers;function __webgl_enable_WEBGL_multi_draw(ctx){return!!(ctx.multiDrawWebgl=ctx.getExtension("WEBGL_multi_draw"))}Module["__webgl_enable_WEBGL_multi_draw"]=__webgl_enable_WEBGL_multi_draw;var GL={counter:1,buffers:[],programs:[],framebuffers:[],renderbuffers:[],textures:[],shaders:[],vaos:[],contexts:[],offscreenCanvases:{},queries:[],stringCache:{},unpackAlignment:4,recordError:function recordError(errorCode){if(!GL.lastError){GL.lastError=errorCode}},getNewId:function(table){var ret=GL.counter++;for(var i=table.length;i>2]:-1;source+=UTF8ToString(HEAP32[string+i*4>>2],len<0?undefined:len)}return source},createContext:function(canvas,webGLContextAttributes){if(!canvas.getContextSafariWebGL2Fixed){canvas.getContextSafariWebGL2Fixed=canvas.getContext;canvas.getContext=function(ver,attrs){var gl=canvas.getContextSafariWebGL2Fixed(ver,attrs);return ver=="webgl"==gl instanceof WebGLRenderingContext?gl:null}}var ctx=canvas.getContext("webgl",webGLContextAttributes);if(!ctx)return 0;var handle=GL.registerContext(ctx,webGLContextAttributes);return handle},registerContext:function(ctx,webGLContextAttributes){var handle=GL.getNewId(GL.contexts);var context={handle:handle,attributes:webGLContextAttributes,version:webGLContextAttributes.majorVersion,GLctx:ctx};if(ctx.canvas)ctx.canvas.GLctxObject=context;GL.contexts[handle]=context;if(typeof webGLContextAttributes.enableExtensionsByDefault==="undefined"||webGLContextAttributes.enableExtensionsByDefault){GL.initExtensions(context)}return handle},makeContextCurrent:function(contextHandle){GL.currentContext=GL.contexts[contextHandle];Module.ctx=GLctx=GL.currentContext&&GL.currentContext.GLctx;return!(contextHandle&&!GLctx)},getContext:function(contextHandle){return GL.contexts[contextHandle]},deleteContext:function(contextHandle){if(GL.currentContext===GL.contexts[contextHandle])GL.currentContext=null;if(typeof JSEvents==="object")JSEvents.removeAllHandlersOnTarget(GL.contexts[contextHandle].GLctx.canvas);if(GL.contexts[contextHandle]&&GL.contexts[contextHandle].GLctx.canvas)GL.contexts[contextHandle].GLctx.canvas.GLctxObject=undefined;GL.contexts[contextHandle]=null},initExtensions:function(context){if(!context)context=GL.currentContext;if(context.initExtensionsDone)return;context.initExtensionsDone=true;var GLctx=context.GLctx;__webgl_enable_ANGLE_instanced_arrays(GLctx);__webgl_enable_OES_vertex_array_object(GLctx);__webgl_enable_WEBGL_draw_buffers(GLctx);{GLctx.disjointTimerQueryExt=GLctx.getExtension("EXT_disjoint_timer_query")}__webgl_enable_WEBGL_multi_draw(GLctx);var exts=GLctx.getSupportedExtensions()||[];exts.forEach(function(ext){if(!ext.includes("lose_context")&&!ext.includes("debug")){GLctx.getExtension(ext)}})}};Module["GL"]=GL;function _emscripten_glActiveTexture(x0){GLctx["activeTexture"](x0)}Module["_emscripten_glActiveTexture"]=_emscripten_glActiveTexture;_emscripten_glActiveTexture.sig="vi";function _emscripten_glAttachShader(program,shader){GLctx.attachShader(GL.programs[program],GL.shaders[shader])}Module["_emscripten_glAttachShader"]=_emscripten_glAttachShader;_emscripten_glAttachShader.sig="vii";function _emscripten_glBeginQueryEXT(target,id){GLctx.disjointTimerQueryExt["beginQueryEXT"](target,GL.queries[id])}Module["_emscripten_glBeginQueryEXT"]=_emscripten_glBeginQueryEXT;_emscripten_glBeginQueryEXT.sig="vii";function _emscripten_glBindAttribLocation(program,index,name){GLctx.bindAttribLocation(GL.programs[program],index,UTF8ToString(name))}Module["_emscripten_glBindAttribLocation"]=_emscripten_glBindAttribLocation;_emscripten_glBindAttribLocation.sig="viii";function _emscripten_glBindBuffer(target,buffer){GLctx.bindBuffer(target,GL.buffers[buffer])}Module["_emscripten_glBindBuffer"]=_emscripten_glBindBuffer;_emscripten_glBindBuffer.sig="vii";function _emscripten_glBindFramebuffer(target,framebuffer){GLctx.bindFramebuffer(target,GL.framebuffers[framebuffer])}Module["_emscripten_glBindFramebuffer"]=_emscripten_glBindFramebuffer;_emscripten_glBindFramebuffer.sig="vii";function _emscripten_glBindRenderbuffer(target,renderbuffer){GLctx.bindRenderbuffer(target,GL.renderbuffers[renderbuffer])}Module["_emscripten_glBindRenderbuffer"]=_emscripten_glBindRenderbuffer;_emscripten_glBindRenderbuffer.sig="vii";function _emscripten_glBindTexture(target,texture){GLctx.bindTexture(target,GL.textures[texture])}Module["_emscripten_glBindTexture"]=_emscripten_glBindTexture;_emscripten_glBindTexture.sig="vii";function _emscripten_glBindVertexArrayOES(vao){GLctx["bindVertexArray"](GL.vaos[vao])}Module["_emscripten_glBindVertexArrayOES"]=_emscripten_glBindVertexArrayOES;_emscripten_glBindVertexArrayOES.sig="vi";function _emscripten_glBlendColor(x0,x1,x2,x3){GLctx["blendColor"](x0,x1,x2,x3)}Module["_emscripten_glBlendColor"]=_emscripten_glBlendColor;_emscripten_glBlendColor.sig="vffff";function _emscripten_glBlendEquation(x0){GLctx["blendEquation"](x0)}Module["_emscripten_glBlendEquation"]=_emscripten_glBlendEquation;_emscripten_glBlendEquation.sig="vi";function _emscripten_glBlendEquationSeparate(x0,x1){GLctx["blendEquationSeparate"](x0,x1)}Module["_emscripten_glBlendEquationSeparate"]=_emscripten_glBlendEquationSeparate;_emscripten_glBlendEquationSeparate.sig="vii";function _emscripten_glBlendFunc(x0,x1){GLctx["blendFunc"](x0,x1)}Module["_emscripten_glBlendFunc"]=_emscripten_glBlendFunc;_emscripten_glBlendFunc.sig="vii";function _emscripten_glBlendFuncSeparate(x0,x1,x2,x3){GLctx["blendFuncSeparate"](x0,x1,x2,x3)}Module["_emscripten_glBlendFuncSeparate"]=_emscripten_glBlendFuncSeparate;_emscripten_glBlendFuncSeparate.sig="viiii";function _emscripten_glBufferData(target,size,data,usage){GLctx.bufferData(target,data?HEAPU8.subarray(data,data+size):size,usage)}Module["_emscripten_glBufferData"]=_emscripten_glBufferData;_emscripten_glBufferData.sig="viiii";function _emscripten_glBufferSubData(target,offset,size,data){GLctx.bufferSubData(target,offset,HEAPU8.subarray(data,data+size))}Module["_emscripten_glBufferSubData"]=_emscripten_glBufferSubData;_emscripten_glBufferSubData.sig="viiii";function _emscripten_glCheckFramebufferStatus(x0){return GLctx["checkFramebufferStatus"](x0)}Module["_emscripten_glCheckFramebufferStatus"]=_emscripten_glCheckFramebufferStatus;_emscripten_glCheckFramebufferStatus.sig="ii";function _emscripten_glClear(x0){GLctx["clear"](x0)}Module["_emscripten_glClear"]=_emscripten_glClear;_emscripten_glClear.sig="vi";function _emscripten_glClearColor(x0,x1,x2,x3){GLctx["clearColor"](x0,x1,x2,x3)}Module["_emscripten_glClearColor"]=_emscripten_glClearColor;_emscripten_glClearColor.sig="viiii";function _emscripten_glClearDepthf(x0){GLctx["clearDepth"](x0)}Module["_emscripten_glClearDepthf"]=_emscripten_glClearDepthf;_emscripten_glClearDepthf.sig="vi";function _emscripten_glClearStencil(x0){GLctx["clearStencil"](x0)}Module["_emscripten_glClearStencil"]=_emscripten_glClearStencil;_emscripten_glClearStencil.sig="vi";function _emscripten_glColorMask(red,green,blue,alpha){GLctx.colorMask(!!red,!!green,!!blue,!!alpha)}Module["_emscripten_glColorMask"]=_emscripten_glColorMask;_emscripten_glColorMask.sig="viiii";function _emscripten_glCompileShader(shader){GLctx.compileShader(GL.shaders[shader])}Module["_emscripten_glCompileShader"]=_emscripten_glCompileShader;_emscripten_glCompileShader.sig="vi";function _emscripten_glCompressedTexImage2D(target,level,internalFormat,width,height,border,imageSize,data){GLctx["compressedTexImage2D"](target,level,internalFormat,width,height,border,data?HEAPU8.subarray(data,data+imageSize):null)}Module["_emscripten_glCompressedTexImage2D"]=_emscripten_glCompressedTexImage2D;_emscripten_glCompressedTexImage2D.sig="viiiiiiii";function _emscripten_glCompressedTexSubImage2D(target,level,xoffset,yoffset,width,height,format,imageSize,data){GLctx["compressedTexSubImage2D"](target,level,xoffset,yoffset,width,height,format,data?HEAPU8.subarray(data,data+imageSize):null)}Module["_emscripten_glCompressedTexSubImage2D"]=_emscripten_glCompressedTexSubImage2D;_emscripten_glCompressedTexSubImage2D.sig="viiiiiiiii";function _emscripten_glCopyTexImage2D(x0,x1,x2,x3,x4,x5,x6,x7){GLctx["copyTexImage2D"](x0,x1,x2,x3,x4,x5,x6,x7)}Module["_emscripten_glCopyTexImage2D"]=_emscripten_glCopyTexImage2D;_emscripten_glCopyTexImage2D.sig="viiiiiiii";function _emscripten_glCopyTexSubImage2D(x0,x1,x2,x3,x4,x5,x6,x7){GLctx["copyTexSubImage2D"](x0,x1,x2,x3,x4,x5,x6,x7)}Module["_emscripten_glCopyTexSubImage2D"]=_emscripten_glCopyTexSubImage2D;_emscripten_glCopyTexSubImage2D.sig="viiiiiiii";function _emscripten_glCreateProgram(){var id=GL.getNewId(GL.programs);var program=GLctx.createProgram();program.name=id;program.maxUniformLength=program.maxAttributeLength=program.maxUniformBlockNameLength=0;program.uniformIdCounter=1;GL.programs[id]=program;return id}Module["_emscripten_glCreateProgram"]=_emscripten_glCreateProgram;_emscripten_glCreateProgram.sig="i";function _emscripten_glCreateShader(shaderType){var id=GL.getNewId(GL.shaders);GL.shaders[id]=GLctx.createShader(shaderType);return id}Module["_emscripten_glCreateShader"]=_emscripten_glCreateShader;_emscripten_glCreateShader.sig="ii";function _emscripten_glCullFace(x0){GLctx["cullFace"](x0)}Module["_emscripten_glCullFace"]=_emscripten_glCullFace;_emscripten_glCullFace.sig="vi";function _emscripten_glDeleteBuffers(n,buffers){for(var i=0;i>2];var buffer=GL.buffers[id];if(!buffer)continue;GLctx.deleteBuffer(buffer);buffer.name=0;GL.buffers[id]=null}}Module["_emscripten_glDeleteBuffers"]=_emscripten_glDeleteBuffers;_emscripten_glDeleteBuffers.sig="vii";function _emscripten_glDeleteFramebuffers(n,framebuffers){for(var i=0;i>2];var framebuffer=GL.framebuffers[id];if(!framebuffer)continue;GLctx.deleteFramebuffer(framebuffer);framebuffer.name=0;GL.framebuffers[id]=null}}Module["_emscripten_glDeleteFramebuffers"]=_emscripten_glDeleteFramebuffers;_emscripten_glDeleteFramebuffers.sig="vii";function _emscripten_glDeleteProgram(id){if(!id)return;var program=GL.programs[id];if(!program){GL.recordError(1281);return}GLctx.deleteProgram(program);program.name=0;GL.programs[id]=null}Module["_emscripten_glDeleteProgram"]=_emscripten_glDeleteProgram;_emscripten_glDeleteProgram.sig="vi";function _emscripten_glDeleteQueriesEXT(n,ids){for(var i=0;i>2];var query=GL.queries[id];if(!query)continue;GLctx.disjointTimerQueryExt["deleteQueryEXT"](query);GL.queries[id]=null}}Module["_emscripten_glDeleteQueriesEXT"]=_emscripten_glDeleteQueriesEXT;_emscripten_glDeleteQueriesEXT.sig="vii";function _emscripten_glDeleteRenderbuffers(n,renderbuffers){for(var i=0;i>2];var renderbuffer=GL.renderbuffers[id];if(!renderbuffer)continue;GLctx.deleteRenderbuffer(renderbuffer);renderbuffer.name=0;GL.renderbuffers[id]=null}}Module["_emscripten_glDeleteRenderbuffers"]=_emscripten_glDeleteRenderbuffers;_emscripten_glDeleteRenderbuffers.sig="vii";function _emscripten_glDeleteShader(id){if(!id)return;var shader=GL.shaders[id];if(!shader){GL.recordError(1281);return}GLctx.deleteShader(shader);GL.shaders[id]=null}Module["_emscripten_glDeleteShader"]=_emscripten_glDeleteShader;_emscripten_glDeleteShader.sig="vi";function _emscripten_glDeleteTextures(n,textures){for(var i=0;i>2];var texture=GL.textures[id];if(!texture)continue;GLctx.deleteTexture(texture);texture.name=0;GL.textures[id]=null}}Module["_emscripten_glDeleteTextures"]=_emscripten_glDeleteTextures;_emscripten_glDeleteTextures.sig="vii";function _emscripten_glDeleteVertexArraysOES(n,vaos){for(var i=0;i>2];GLctx["deleteVertexArray"](GL.vaos[id]);GL.vaos[id]=null}}Module["_emscripten_glDeleteVertexArraysOES"]=_emscripten_glDeleteVertexArraysOES;_emscripten_glDeleteVertexArraysOES.sig="vii";function _emscripten_glDepthFunc(x0){GLctx["depthFunc"](x0)}Module["_emscripten_glDepthFunc"]=_emscripten_glDepthFunc;_emscripten_glDepthFunc.sig="vi";function _emscripten_glDepthMask(flag){GLctx.depthMask(!!flag)}Module["_emscripten_glDepthMask"]=_emscripten_glDepthMask;_emscripten_glDepthMask.sig="vi";function _emscripten_glDepthRangef(x0,x1){GLctx["depthRange"](x0,x1)}Module["_emscripten_glDepthRangef"]=_emscripten_glDepthRangef;_emscripten_glDepthRangef.sig="vii";function _emscripten_glDetachShader(program,shader){GLctx.detachShader(GL.programs[program],GL.shaders[shader])}Module["_emscripten_glDetachShader"]=_emscripten_glDetachShader;_emscripten_glDetachShader.sig="vii";function _emscripten_glDisable(x0){GLctx["disable"](x0)}Module["_emscripten_glDisable"]=_emscripten_glDisable;_emscripten_glDisable.sig="vi";function _emscripten_glDisableVertexAttribArray(index){GLctx.disableVertexAttribArray(index)}Module["_emscripten_glDisableVertexAttribArray"]=_emscripten_glDisableVertexAttribArray;_emscripten_glDisableVertexAttribArray.sig="vi";function _emscripten_glDrawArrays(mode,first,count){GLctx.drawArrays(mode,first,count)}Module["_emscripten_glDrawArrays"]=_emscripten_glDrawArrays;_emscripten_glDrawArrays.sig="viii";function _emscripten_glDrawArraysInstancedANGLE(mode,first,count,primcount){GLctx["drawArraysInstanced"](mode,first,count,primcount)}Module["_emscripten_glDrawArraysInstancedANGLE"]=_emscripten_glDrawArraysInstancedANGLE;_emscripten_glDrawArraysInstancedANGLE.sig="viiii";var tempFixedLengthArray=[];Module["tempFixedLengthArray"]=tempFixedLengthArray;function _emscripten_glDrawBuffersWEBGL(n,bufs){var bufArray=tempFixedLengthArray[n];for(var i=0;i>2]}GLctx["drawBuffers"](bufArray)}Module["_emscripten_glDrawBuffersWEBGL"]=_emscripten_glDrawBuffersWEBGL;_emscripten_glDrawBuffersWEBGL.sig="vii";function _emscripten_glDrawElements(mode,count,type,indices){GLctx.drawElements(mode,count,type,indices)}Module["_emscripten_glDrawElements"]=_emscripten_glDrawElements;_emscripten_glDrawElements.sig="viiii";function _emscripten_glDrawElementsInstancedANGLE(mode,count,type,indices,primcount){GLctx["drawElementsInstanced"](mode,count,type,indices,primcount)}Module["_emscripten_glDrawElementsInstancedANGLE"]=_emscripten_glDrawElementsInstancedANGLE;_emscripten_glDrawElementsInstancedANGLE.sig="viiiii";function _emscripten_glEnable(x0){GLctx["enable"](x0)}Module["_emscripten_glEnable"]=_emscripten_glEnable;_emscripten_glEnable.sig="vi";function _emscripten_glEnableVertexAttribArray(index){GLctx.enableVertexAttribArray(index)}Module["_emscripten_glEnableVertexAttribArray"]=_emscripten_glEnableVertexAttribArray;_emscripten_glEnableVertexAttribArray.sig="vi";function _emscripten_glEndQueryEXT(target){GLctx.disjointTimerQueryExt["endQueryEXT"](target)}Module["_emscripten_glEndQueryEXT"]=_emscripten_glEndQueryEXT;_emscripten_glEndQueryEXT.sig="vi";function _emscripten_glFinish(){GLctx["finish"]()}Module["_emscripten_glFinish"]=_emscripten_glFinish;_emscripten_glFinish.sig="v";function _emscripten_glFlush(){GLctx["flush"]()}Module["_emscripten_glFlush"]=_emscripten_glFlush;_emscripten_glFlush.sig="v";function _emscripten_glFramebufferRenderbuffer(target,attachment,renderbuffertarget,renderbuffer){GLctx.framebufferRenderbuffer(target,attachment,renderbuffertarget,GL.renderbuffers[renderbuffer])}Module["_emscripten_glFramebufferRenderbuffer"]=_emscripten_glFramebufferRenderbuffer;_emscripten_glFramebufferRenderbuffer.sig="viiii";function _emscripten_glFramebufferTexture2D(target,attachment,textarget,texture,level){GLctx.framebufferTexture2D(target,attachment,textarget,GL.textures[texture],level)}Module["_emscripten_glFramebufferTexture2D"]=_emscripten_glFramebufferTexture2D;_emscripten_glFramebufferTexture2D.sig="viiiii";function _emscripten_glFrontFace(x0){GLctx["frontFace"](x0)}Module["_emscripten_glFrontFace"]=_emscripten_glFrontFace;_emscripten_glFrontFace.sig="vi";function __glGenObject(n,buffers,createFunction,objectTable){for(var i=0;i>2]=id}}Module["__glGenObject"]=__glGenObject;__glGenObject.sig="vii";function _emscripten_glGenBuffers(n,buffers){__glGenObject(n,buffers,"createBuffer",GL.buffers)}Module["_emscripten_glGenBuffers"]=_emscripten_glGenBuffers;_emscripten_glGenBuffers.sig="vii";function _emscripten_glGenFramebuffers(n,ids){__glGenObject(n,ids,"createFramebuffer",GL.framebuffers)}Module["_emscripten_glGenFramebuffers"]=_emscripten_glGenFramebuffers;_emscripten_glGenFramebuffers.sig="vii";function _emscripten_glGenQueriesEXT(n,ids){for(var i=0;i>2]=0;return}var id=GL.getNewId(GL.queries);query.name=id;GL.queries[id]=query;HEAP32[ids+i*4>>2]=id}}Module["_emscripten_glGenQueriesEXT"]=_emscripten_glGenQueriesEXT;_emscripten_glGenQueriesEXT.sig="vii";function _emscripten_glGenRenderbuffers(n,renderbuffers){__glGenObject(n,renderbuffers,"createRenderbuffer",GL.renderbuffers)}Module["_emscripten_glGenRenderbuffers"]=_emscripten_glGenRenderbuffers;_emscripten_glGenRenderbuffers.sig="vii";function _emscripten_glGenTextures(n,textures){__glGenObject(n,textures,"createTexture",GL.textures)}Module["_emscripten_glGenTextures"]=_emscripten_glGenTextures;_emscripten_glGenTextures.sig="vii";function _emscripten_glGenVertexArraysOES(n,arrays){__glGenObject(n,arrays,"createVertexArray",GL.vaos)}Module["_emscripten_glGenVertexArraysOES"]=_emscripten_glGenVertexArraysOES;_emscripten_glGenVertexArraysOES.sig="vii";function _emscripten_glGenerateMipmap(x0){GLctx["generateMipmap"](x0)}Module["_emscripten_glGenerateMipmap"]=_emscripten_glGenerateMipmap;_emscripten_glGenerateMipmap.sig="vi";function __glGetActiveAttribOrUniform(funcName,program,index,bufSize,length,size,type,name){program=GL.programs[program];var info=GLctx[funcName](program,index);if(info){var numBytesWrittenExclNull=name&&stringToUTF8(info.name,name,bufSize);if(length)HEAP32[length>>2]=numBytesWrittenExclNull;if(size)HEAP32[size>>2]=info.size;if(type)HEAP32[type>>2]=info.type}}Module["__glGetActiveAttribOrUniform"]=__glGetActiveAttribOrUniform;function _emscripten_glGetActiveAttrib(program,index,bufSize,length,size,type,name){__glGetActiveAttribOrUniform("getActiveAttrib",program,index,bufSize,length,size,type,name)}Module["_emscripten_glGetActiveAttrib"]=_emscripten_glGetActiveAttrib;_emscripten_glGetActiveAttrib.sig="viiiiiii";function _emscripten_glGetActiveUniform(program,index,bufSize,length,size,type,name){__glGetActiveAttribOrUniform("getActiveUniform",program,index,bufSize,length,size,type,name)}Module["_emscripten_glGetActiveUniform"]=_emscripten_glGetActiveUniform;_emscripten_glGetActiveUniform.sig="viiiiiii";function _emscripten_glGetAttachedShaders(program,maxCount,count,shaders){var result=GLctx.getAttachedShaders(GL.programs[program]);var len=result.length;if(len>maxCount){len=maxCount}HEAP32[count>>2]=len;for(var i=0;i>2]=id}}Module["_emscripten_glGetAttachedShaders"]=_emscripten_glGetAttachedShaders;_emscripten_glGetAttachedShaders.sig="viiii";function _emscripten_glGetAttribLocation(program,name){return GLctx.getAttribLocation(GL.programs[program],UTF8ToString(name))}Module["_emscripten_glGetAttribLocation"]=_emscripten_glGetAttribLocation;_emscripten_glGetAttribLocation.sig="iii";function writeI53ToI64(ptr,num){HEAPU32[ptr>>2]=num;HEAPU32[ptr+4>>2]=(num-HEAPU32[ptr>>2])/4294967296}Module["writeI53ToI64"]=writeI53ToI64;function emscriptenWebGLGet(name_,p,type){if(!p){GL.recordError(1281);return}var ret=undefined;switch(name_){case 36346:ret=1;break;case 36344:if(type!=0&&type!=1){GL.recordError(1280)}return;case 36345:ret=0;break;case 34466:var formats=GLctx.getParameter(34467);ret=formats?formats.length:0;break}if(ret===undefined){var result=GLctx.getParameter(name_);switch(typeof result){case"number":ret=result;break;case"boolean":ret=result?1:0;break;case"string":GL.recordError(1280);return;case"object":if(result===null){switch(name_){case 34964:case 35725:case 34965:case 36006:case 36007:case 32873:case 34229:case 34068:{ret=0;break}default:{GL.recordError(1280);return}}}else if(result instanceof Float32Array||result instanceof Uint32Array||result instanceof Int32Array||result instanceof Array){for(var i=0;i>2]=result[i];break;case 2:HEAPF32[p+i*4>>2]=result[i];break;case 4:HEAP8[p+i>>0]=result[i]?1:0;break}}return}else{try{ret=result.name|0}catch(e){GL.recordError(1280);err("GL_INVALID_ENUM in glGet"+type+"v: Unknown object returned from WebGL getParameter("+name_+")! (error: "+e+")");return}}break;default:GL.recordError(1280);err("GL_INVALID_ENUM in glGet"+type+"v: Native code calling glGet"+type+"v("+name_+") and it returns "+result+" of type "+typeof result+"!");return}}switch(type){case 1:writeI53ToI64(p,ret);break;case 0:HEAP32[p>>2]=ret;break;case 2:HEAPF32[p>>2]=ret;break;case 4:HEAP8[p>>0]=ret?1:0;break}}Module["emscriptenWebGLGet"]=emscriptenWebGLGet;function _emscripten_glGetBooleanv(name_,p){emscriptenWebGLGet(name_,p,4)}Module["_emscripten_glGetBooleanv"]=_emscripten_glGetBooleanv;_emscripten_glGetBooleanv.sig="vii";function _emscripten_glGetBufferParameteriv(target,value,data){if(!data){GL.recordError(1281);return}HEAP32[data>>2]=GLctx.getBufferParameter(target,value)}Module["_emscripten_glGetBufferParameteriv"]=_emscripten_glGetBufferParameteriv;_emscripten_glGetBufferParameteriv.sig="viii";function _emscripten_glGetError(){var error=GLctx.getError()||GL.lastError;GL.lastError=0;return error}Module["_emscripten_glGetError"]=_emscripten_glGetError;_emscripten_glGetError.sig="i";function _emscripten_glGetFloatv(name_,p){emscriptenWebGLGet(name_,p,2)}Module["_emscripten_glGetFloatv"]=_emscripten_glGetFloatv;_emscripten_glGetFloatv.sig="vii";function _emscripten_glGetFramebufferAttachmentParameteriv(target,attachment,pname,params){var result=GLctx.getFramebufferAttachmentParameter(target,attachment,pname);if(result instanceof WebGLRenderbuffer||result instanceof WebGLTexture){result=result.name|0}HEAP32[params>>2]=result}Module["_emscripten_glGetFramebufferAttachmentParameteriv"]=_emscripten_glGetFramebufferAttachmentParameteriv;_emscripten_glGetFramebufferAttachmentParameteriv.sig="viiii";function _emscripten_glGetIntegerv(name_,p){emscriptenWebGLGet(name_,p,0)}Module["_emscripten_glGetIntegerv"]=_emscripten_glGetIntegerv;_emscripten_glGetIntegerv.sig="vii";function _emscripten_glGetProgramInfoLog(program,maxLength,length,infoLog){var log=GLctx.getProgramInfoLog(GL.programs[program]);if(log===null)log="(unknown error)";var numBytesWrittenExclNull=maxLength>0&&infoLog?stringToUTF8(log,infoLog,maxLength):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull}Module["_emscripten_glGetProgramInfoLog"]=_emscripten_glGetProgramInfoLog;_emscripten_glGetProgramInfoLog.sig="viiii";function _emscripten_glGetProgramiv(program,pname,p){if(!p){GL.recordError(1281);return}if(program>=GL.counter){GL.recordError(1281);return}program=GL.programs[program];if(pname==35716){var log=GLctx.getProgramInfoLog(program);if(log===null)log="(unknown error)";HEAP32[p>>2]=log.length+1}else if(pname==35719){if(!program.maxUniformLength){for(var i=0;i>2]=program.maxUniformLength}else if(pname==35722){if(!program.maxAttributeLength){for(var i=0;i>2]=program.maxAttributeLength}else if(pname==35381){if(!program.maxUniformBlockNameLength){for(var i=0;i>2]=program.maxUniformBlockNameLength}else{HEAP32[p>>2]=GLctx.getProgramParameter(program,pname)}}Module["_emscripten_glGetProgramiv"]=_emscripten_glGetProgramiv;_emscripten_glGetProgramiv.sig="viii";function _emscripten_glGetQueryObjecti64vEXT(id,pname,params){if(!params){GL.recordError(1281);return}var query=GL.queries[id];var param;{param=GLctx.disjointTimerQueryExt["getQueryObjectEXT"](query,pname)}var ret;if(typeof param=="boolean"){ret=param?1:0}else{ret=param}writeI53ToI64(params,ret)}Module["_emscripten_glGetQueryObjecti64vEXT"]=_emscripten_glGetQueryObjecti64vEXT;_emscripten_glGetQueryObjecti64vEXT.sig="viii";function _emscripten_glGetQueryObjectivEXT(id,pname,params){if(!params){GL.recordError(1281);return}var query=GL.queries[id];var param=GLctx.disjointTimerQueryExt["getQueryObjectEXT"](query,pname);var ret;if(typeof param=="boolean"){ret=param?1:0}else{ret=param}HEAP32[params>>2]=ret}Module["_emscripten_glGetQueryObjectivEXT"]=_emscripten_glGetQueryObjectivEXT;_emscripten_glGetQueryObjectivEXT.sig="viii";function _emscripten_glGetQueryObjectui64vEXT(id,pname,params){if(!params){GL.recordError(1281);return}var query=GL.queries[id];var param;{param=GLctx.disjointTimerQueryExt["getQueryObjectEXT"](query,pname)}var ret;if(typeof param=="boolean"){ret=param?1:0}else{ret=param}writeI53ToI64(params,ret)}Module["_emscripten_glGetQueryObjectui64vEXT"]=_emscripten_glGetQueryObjectui64vEXT;_emscripten_glGetQueryObjectui64vEXT.sig="viii";function _emscripten_glGetQueryObjectuivEXT(id,pname,params){if(!params){GL.recordError(1281);return}var query=GL.queries[id];var param=GLctx.disjointTimerQueryExt["getQueryObjectEXT"](query,pname);var ret;if(typeof param=="boolean"){ret=param?1:0}else{ret=param}HEAP32[params>>2]=ret}Module["_emscripten_glGetQueryObjectuivEXT"]=_emscripten_glGetQueryObjectuivEXT;_emscripten_glGetQueryObjectuivEXT.sig="viii";function _emscripten_glGetQueryivEXT(target,pname,params){if(!params){GL.recordError(1281);return}HEAP32[params>>2]=GLctx.disjointTimerQueryExt["getQueryEXT"](target,pname)}Module["_emscripten_glGetQueryivEXT"]=_emscripten_glGetQueryivEXT;_emscripten_glGetQueryivEXT.sig="viii";function _emscripten_glGetRenderbufferParameteriv(target,pname,params){if(!params){GL.recordError(1281);return}HEAP32[params>>2]=GLctx.getRenderbufferParameter(target,pname)}Module["_emscripten_glGetRenderbufferParameteriv"]=_emscripten_glGetRenderbufferParameteriv;_emscripten_glGetRenderbufferParameteriv.sig="viii";function _emscripten_glGetShaderInfoLog(shader,maxLength,length,infoLog){var log=GLctx.getShaderInfoLog(GL.shaders[shader]);if(log===null)log="(unknown error)";var numBytesWrittenExclNull=maxLength>0&&infoLog?stringToUTF8(log,infoLog,maxLength):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull}Module["_emscripten_glGetShaderInfoLog"]=_emscripten_glGetShaderInfoLog;_emscripten_glGetShaderInfoLog.sig="viiii";function _emscripten_glGetShaderPrecisionFormat(shaderType,precisionType,range,precision){var result=GLctx.getShaderPrecisionFormat(shaderType,precisionType);HEAP32[range>>2]=result.rangeMin;HEAP32[range+4>>2]=result.rangeMax;HEAP32[precision>>2]=result.precision}Module["_emscripten_glGetShaderPrecisionFormat"]=_emscripten_glGetShaderPrecisionFormat;_emscripten_glGetShaderPrecisionFormat.sig="viiii";function _emscripten_glGetShaderSource(shader,bufSize,length,source){var result=GLctx.getShaderSource(GL.shaders[shader]);if(!result)return;var numBytesWrittenExclNull=bufSize>0&&source?stringToUTF8(result,source,bufSize):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull}Module["_emscripten_glGetShaderSource"]=_emscripten_glGetShaderSource;_emscripten_glGetShaderSource.sig="viiii";function _emscripten_glGetShaderiv(shader,pname,p){if(!p){GL.recordError(1281);return}if(pname==35716){var log=GLctx.getShaderInfoLog(GL.shaders[shader]);if(log===null)log="(unknown error)";var logLength=log?log.length+1:0;HEAP32[p>>2]=logLength}else if(pname==35720){var source=GLctx.getShaderSource(GL.shaders[shader]);var sourceLength=source?source.length+1:0;HEAP32[p>>2]=sourceLength}else{HEAP32[p>>2]=GLctx.getShaderParameter(GL.shaders[shader],pname)}}Module["_emscripten_glGetShaderiv"]=_emscripten_glGetShaderiv;_emscripten_glGetShaderiv.sig="viii";function _emscripten_glGetString(name_){var ret=GL.stringCache[name_];if(!ret){switch(name_){case 7939:var exts=GLctx.getSupportedExtensions()||[];exts=exts.concat(exts.map(function(e){return"GL_"+e}));ret=stringToNewUTF8(exts.join(" "));break;case 7936:case 7937:case 37445:case 37446:var s=GLctx.getParameter(name_);if(!s){GL.recordError(1280)}ret=s&&stringToNewUTF8(s);break;case 7938:var glVersion=GLctx.getParameter(7938);{glVersion="OpenGL ES 2.0 ("+glVersion+")"}ret=stringToNewUTF8(glVersion);break;case 35724:var glslVersion=GLctx.getParameter(35724);var ver_re=/^WebGL GLSL ES ([0-9]\.[0-9][0-9]?)(?:$| .*)/;var ver_num=glslVersion.match(ver_re);if(ver_num!==null){if(ver_num[1].length==3)ver_num[1]=ver_num[1]+"0";glslVersion="OpenGL ES GLSL ES "+ver_num[1]+" ("+glslVersion+")"}ret=stringToNewUTF8(glslVersion);break;default:GL.recordError(1280)}GL.stringCache[name_]=ret}return ret}Module["_emscripten_glGetString"]=_emscripten_glGetString;_emscripten_glGetString.sig="ii";function _emscripten_glGetTexParameterfv(target,pname,params){if(!params){GL.recordError(1281);return}HEAPF32[params>>2]=GLctx.getTexParameter(target,pname)}Module["_emscripten_glGetTexParameterfv"]=_emscripten_glGetTexParameterfv;_emscripten_glGetTexParameterfv.sig="viii";function _emscripten_glGetTexParameteriv(target,pname,params){if(!params){GL.recordError(1281);return}HEAP32[params>>2]=GLctx.getTexParameter(target,pname)}Module["_emscripten_glGetTexParameteriv"]=_emscripten_glGetTexParameteriv;_emscripten_glGetTexParameteriv.sig="viii";function webglGetLeftBracePos(name){return name.slice(-1)=="]"&&name.lastIndexOf("[")}Module["webglGetLeftBracePos"]=webglGetLeftBracePos;function webglPrepareUniformLocationsBeforeFirstUse(program){var uniformLocsById=program.uniformLocsById,uniformSizeAndIdsByName=program.uniformSizeAndIdsByName,i,j;if(!uniformLocsById){program.uniformLocsById=uniformLocsById={};program.uniformArrayNamesById={};for(i=0;i0?nm.slice(0,lb):nm;var id=program.uniformIdCounter;program.uniformIdCounter+=sz;uniformSizeAndIdsByName[arrayName]=[sz,id];for(j=0;j0){arrayIndex=jstoi_q(name.slice(leftBrace+1))>>>0;uniformBaseName=name.slice(0,leftBrace)}var sizeAndId=program.uniformSizeAndIdsByName[uniformBaseName];if(sizeAndId&&arrayIndex0?"["+webglLoc+"]":""))}return webglLoc}else{GL.recordError(1282)}}Module["webglGetUniformLocation"]=webglGetUniformLocation;function emscriptenWebGLGetUniform(program,location,params,type){if(!params){GL.recordError(1281);return}program=GL.programs[program];webglPrepareUniformLocationsBeforeFirstUse(program);var data=GLctx.getUniform(program,webglGetUniformLocation(location));if(typeof data=="number"||typeof data=="boolean"){switch(type){case 0:HEAP32[params>>2]=data;break;case 2:HEAPF32[params>>2]=data;break}}else{for(var i=0;i>2]=data[i];break;case 2:HEAPF32[params+i*4>>2]=data[i];break}}}}Module["emscriptenWebGLGetUniform"]=emscriptenWebGLGetUniform;function _emscripten_glGetUniformfv(program,location,params){emscriptenWebGLGetUniform(program,location,params,2)}Module["_emscripten_glGetUniformfv"]=_emscripten_glGetUniformfv;_emscripten_glGetUniformfv.sig="viii";function _emscripten_glGetUniformiv(program,location,params){emscriptenWebGLGetUniform(program,location,params,0)}Module["_emscripten_glGetUniformiv"]=_emscripten_glGetUniformiv;_emscripten_glGetUniformiv.sig="viii";function _emscripten_glGetVertexAttribPointerv(index,pname,pointer){if(!pointer){GL.recordError(1281);return}HEAP32[pointer>>2]=GLctx.getVertexAttribOffset(index,pname)}Module["_emscripten_glGetVertexAttribPointerv"]=_emscripten_glGetVertexAttribPointerv;_emscripten_glGetVertexAttribPointerv.sig="viii";function emscriptenWebGLGetVertexAttrib(index,pname,params,type){if(!params){GL.recordError(1281);return}var data=GLctx.getVertexAttrib(index,pname);if(pname==34975){HEAP32[params>>2]=data&&data["name"]}else if(typeof data=="number"||typeof data=="boolean"){switch(type){case 0:HEAP32[params>>2]=data;break;case 2:HEAPF32[params>>2]=data;break;case 5:HEAP32[params>>2]=Math.fround(data);break}}else{for(var i=0;i>2]=data[i];break;case 2:HEAPF32[params+i*4>>2]=data[i];break;case 5:HEAP32[params+i*4>>2]=Math.fround(data[i]);break}}}}Module["emscriptenWebGLGetVertexAttrib"]=emscriptenWebGLGetVertexAttrib;function _emscripten_glGetVertexAttribfv(index,pname,params){emscriptenWebGLGetVertexAttrib(index,pname,params,2)}Module["_emscripten_glGetVertexAttribfv"]=_emscripten_glGetVertexAttribfv;_emscripten_glGetVertexAttribfv.sig="viii";function _emscripten_glGetVertexAttribiv(index,pname,params){emscriptenWebGLGetVertexAttrib(index,pname,params,5)}Module["_emscripten_glGetVertexAttribiv"]=_emscripten_glGetVertexAttribiv;_emscripten_glGetVertexAttribiv.sig="viii";function _emscripten_glHint(x0,x1){GLctx["hint"](x0,x1)}Module["_emscripten_glHint"]=_emscripten_glHint;_emscripten_glHint.sig="vii";function _emscripten_glIsBuffer(buffer){var b=GL.buffers[buffer];if(!b)return 0;return GLctx.isBuffer(b)}Module["_emscripten_glIsBuffer"]=_emscripten_glIsBuffer;_emscripten_glIsBuffer.sig="ii";function _emscripten_glIsEnabled(x0){return GLctx["isEnabled"](x0)}Module["_emscripten_glIsEnabled"]=_emscripten_glIsEnabled;_emscripten_glIsEnabled.sig="ii";function _emscripten_glIsFramebuffer(framebuffer){var fb=GL.framebuffers[framebuffer];if(!fb)return 0;return GLctx.isFramebuffer(fb)}Module["_emscripten_glIsFramebuffer"]=_emscripten_glIsFramebuffer;_emscripten_glIsFramebuffer.sig="ii";function _emscripten_glIsProgram(program){program=GL.programs[program];if(!program)return 0;return GLctx.isProgram(program)}Module["_emscripten_glIsProgram"]=_emscripten_glIsProgram;_emscripten_glIsProgram.sig="ii";function _emscripten_glIsQueryEXT(id){var query=GL.queries[id];if(!query)return 0;return GLctx.disjointTimerQueryExt["isQueryEXT"](query)}Module["_emscripten_glIsQueryEXT"]=_emscripten_glIsQueryEXT;_emscripten_glIsQueryEXT.sig="ii";function _emscripten_glIsRenderbuffer(renderbuffer){var rb=GL.renderbuffers[renderbuffer];if(!rb)return 0;return GLctx.isRenderbuffer(rb)}Module["_emscripten_glIsRenderbuffer"]=_emscripten_glIsRenderbuffer;_emscripten_glIsRenderbuffer.sig="ii";function _emscripten_glIsShader(shader){var s=GL.shaders[shader];if(!s)return 0;return GLctx.isShader(s)}Module["_emscripten_glIsShader"]=_emscripten_glIsShader;_emscripten_glIsShader.sig="ii";function _emscripten_glIsTexture(id){var texture=GL.textures[id];if(!texture)return 0;return GLctx.isTexture(texture)}Module["_emscripten_glIsTexture"]=_emscripten_glIsTexture;_emscripten_glIsTexture.sig="ii";function _emscripten_glIsVertexArrayOES(array){var vao=GL.vaos[array];if(!vao)return 0;return GLctx["isVertexArray"](vao)}Module["_emscripten_glIsVertexArrayOES"]=_emscripten_glIsVertexArrayOES;_emscripten_glIsVertexArrayOES.sig="ii";function _emscripten_glLineWidth(x0){GLctx["lineWidth"](x0)}Module["_emscripten_glLineWidth"]=_emscripten_glLineWidth;_emscripten_glLineWidth.sig="vi";function _emscripten_glLinkProgram(program){program=GL.programs[program];GLctx.linkProgram(program);program.uniformLocsById=0;program.uniformSizeAndIdsByName={}}Module["_emscripten_glLinkProgram"]=_emscripten_glLinkProgram;_emscripten_glLinkProgram.sig="vi";function _emscripten_glPixelStorei(pname,param){if(pname==3317){GL.unpackAlignment=param}GLctx.pixelStorei(pname,param)}Module["_emscripten_glPixelStorei"]=_emscripten_glPixelStorei;_emscripten_glPixelStorei.sig="vii";function _emscripten_glPolygonOffset(x0,x1){GLctx["polygonOffset"](x0,x1)}Module["_emscripten_glPolygonOffset"]=_emscripten_glPolygonOffset;_emscripten_glPolygonOffset.sig="vii";function _emscripten_glQueryCounterEXT(id,target){GLctx.disjointTimerQueryExt["queryCounterEXT"](GL.queries[id],target)}Module["_emscripten_glQueryCounterEXT"]=_emscripten_glQueryCounterEXT;_emscripten_glQueryCounterEXT.sig="vii";function computeUnpackAlignedImageSize(width,height,sizePerPixel,alignment){function roundedToNextMultipleOf(x,y){return x+y-1&-y}var plainRowSize=width*sizePerPixel;var alignedRowSize=roundedToNextMultipleOf(plainRowSize,alignment);return height*alignedRowSize}Module["computeUnpackAlignedImageSize"]=computeUnpackAlignedImageSize;function __colorChannelsInGlTextureFormat(format){var colorChannels={5:3,6:4,8:2,29502:3,29504:4};return colorChannels[format-6402]||1}Module["__colorChannelsInGlTextureFormat"]=__colorChannelsInGlTextureFormat;function heapObjectForWebGLType(type){type-=5120;if(type==1)return HEAPU8;if(type==4)return HEAP32;if(type==6)return HEAPF32;if(type==5||type==28922)return HEAPU32;return HEAPU16}Module["heapObjectForWebGLType"]=heapObjectForWebGLType;function heapAccessShiftForWebGLHeap(heap){return 31-Math.clz32(heap.BYTES_PER_ELEMENT)}Module["heapAccessShiftForWebGLHeap"]=heapAccessShiftForWebGLHeap;function emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,internalFormat){var heap=heapObjectForWebGLType(type);var shift=heapAccessShiftForWebGLHeap(heap);var byteSize=1<>shift,pixels+bytes>>shift)}Module["emscriptenWebGLGetTexPixelData"]=emscriptenWebGLGetTexPixelData;function _emscripten_glReadPixels(x,y,width,height,format,type,pixels){var pixelData=emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,format);if(!pixelData){GL.recordError(1280);return}GLctx.readPixels(x,y,width,height,format,type,pixelData)}Module["_emscripten_glReadPixels"]=_emscripten_glReadPixels;_emscripten_glReadPixels.sig="viiiiiii";function _emscripten_glReleaseShaderCompiler(){}Module["_emscripten_glReleaseShaderCompiler"]=_emscripten_glReleaseShaderCompiler;_emscripten_glReleaseShaderCompiler.sig="v";function _emscripten_glRenderbufferStorage(x0,x1,x2,x3){GLctx["renderbufferStorage"](x0,x1,x2,x3)}Module["_emscripten_glRenderbufferStorage"]=_emscripten_glRenderbufferStorage;_emscripten_glRenderbufferStorage.sig="viiii";function _emscripten_glSampleCoverage(value,invert){GLctx.sampleCoverage(value,!!invert)}Module["_emscripten_glSampleCoverage"]=_emscripten_glSampleCoverage;_emscripten_glSampleCoverage.sig="vii";function _emscripten_glScissor(x0,x1,x2,x3){GLctx["scissor"](x0,x1,x2,x3)}Module["_emscripten_glScissor"]=_emscripten_glScissor;_emscripten_glScissor.sig="viiii";function _emscripten_glShaderBinary(){GL.recordError(1280)}Module["_emscripten_glShaderBinary"]=_emscripten_glShaderBinary;_emscripten_glShaderBinary.sig="v";function _emscripten_glShaderSource(shader,count,string,length){var source=GL.getSource(shader,count,string,length);GLctx.shaderSource(GL.shaders[shader],source)}Module["_emscripten_glShaderSource"]=_emscripten_glShaderSource;_emscripten_glShaderSource.sig="viiii";function _emscripten_glStencilFunc(x0,x1,x2){GLctx["stencilFunc"](x0,x1,x2)}Module["_emscripten_glStencilFunc"]=_emscripten_glStencilFunc;_emscripten_glStencilFunc.sig="viii";function _emscripten_glStencilFuncSeparate(x0,x1,x2,x3){GLctx["stencilFuncSeparate"](x0,x1,x2,x3)}Module["_emscripten_glStencilFuncSeparate"]=_emscripten_glStencilFuncSeparate;_emscripten_glStencilFuncSeparate.sig="viiii";function _emscripten_glStencilMask(x0){GLctx["stencilMask"](x0)}Module["_emscripten_glStencilMask"]=_emscripten_glStencilMask;_emscripten_glStencilMask.sig="vi";function _emscripten_glStencilMaskSeparate(x0,x1){GLctx["stencilMaskSeparate"](x0,x1)}Module["_emscripten_glStencilMaskSeparate"]=_emscripten_glStencilMaskSeparate;_emscripten_glStencilMaskSeparate.sig="vii";function _emscripten_glStencilOp(x0,x1,x2){GLctx["stencilOp"](x0,x1,x2)}Module["_emscripten_glStencilOp"]=_emscripten_glStencilOp;_emscripten_glStencilOp.sig="viii";function _emscripten_glStencilOpSeparate(x0,x1,x2,x3){GLctx["stencilOpSeparate"](x0,x1,x2,x3)}Module["_emscripten_glStencilOpSeparate"]=_emscripten_glStencilOpSeparate;_emscripten_glStencilOpSeparate.sig="viiii";function _emscripten_glTexImage2D(target,level,internalFormat,width,height,border,format,type,pixels){GLctx.texImage2D(target,level,internalFormat,width,height,border,format,type,pixels?emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,internalFormat):null)}Module["_emscripten_glTexImage2D"]=_emscripten_glTexImage2D;_emscripten_glTexImage2D.sig="viiiiiiiii";function _emscripten_glTexParameterf(x0,x1,x2){GLctx["texParameterf"](x0,x1,x2)}Module["_emscripten_glTexParameterf"]=_emscripten_glTexParameterf;_emscripten_glTexParameterf.sig="viii";function _emscripten_glTexParameterfv(target,pname,params){var param=HEAPF32[params>>2];GLctx.texParameterf(target,pname,param)}Module["_emscripten_glTexParameterfv"]=_emscripten_glTexParameterfv;_emscripten_glTexParameterfv.sig="viii";function _emscripten_glTexParameteri(x0,x1,x2){GLctx["texParameteri"](x0,x1,x2)}Module["_emscripten_glTexParameteri"]=_emscripten_glTexParameteri;_emscripten_glTexParameteri.sig="viii";function _emscripten_glTexParameteriv(target,pname,params){var param=HEAP32[params>>2];GLctx.texParameteri(target,pname,param)}Module["_emscripten_glTexParameteriv"]=_emscripten_glTexParameteriv;_emscripten_glTexParameteriv.sig="viii";function _emscripten_glTexSubImage2D(target,level,xoffset,yoffset,width,height,format,type,pixels){var pixelData=null;if(pixels)pixelData=emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,0);GLctx.texSubImage2D(target,level,xoffset,yoffset,width,height,format,type,pixelData)}Module["_emscripten_glTexSubImage2D"]=_emscripten_glTexSubImage2D;_emscripten_glTexSubImage2D.sig="viiiiiiiii";function _emscripten_glUniform1f(location,v0){GLctx.uniform1f(webglGetUniformLocation(location),v0)}Module["_emscripten_glUniform1f"]=_emscripten_glUniform1f;_emscripten_glUniform1f.sig="vif";var miniTempWebGLFloatBuffers=[];Module["miniTempWebGLFloatBuffers"]=miniTempWebGLFloatBuffers;function _emscripten_glUniform1fv(location,count,value){if(count<=288){var view=miniTempWebGLFloatBuffers[count-1];for(var i=0;i>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*4>>2)}GLctx.uniform1fv(webglGetUniformLocation(location),view)}Module["_emscripten_glUniform1fv"]=_emscripten_glUniform1fv;_emscripten_glUniform1fv.sig="viii";function _emscripten_glUniform1i(location,v0){GLctx.uniform1i(webglGetUniformLocation(location),v0)}Module["_emscripten_glUniform1i"]=_emscripten_glUniform1i;_emscripten_glUniform1i.sig="vii";var __miniTempWebGLIntBuffers=[];Module["__miniTempWebGLIntBuffers"]=__miniTempWebGLIntBuffers;function _emscripten_glUniform1iv(location,count,value){if(count<=288){var view=__miniTempWebGLIntBuffers[count-1];for(var i=0;i>2]}}else{var view=HEAP32.subarray(value>>2,value+count*4>>2)}GLctx.uniform1iv(webglGetUniformLocation(location),view)}Module["_emscripten_glUniform1iv"]=_emscripten_glUniform1iv;_emscripten_glUniform1iv.sig="viii";function _emscripten_glUniform2f(location,v0,v1){GLctx.uniform2f(webglGetUniformLocation(location),v0,v1)}Module["_emscripten_glUniform2f"]=_emscripten_glUniform2f;_emscripten_glUniform2f.sig="viff";function _emscripten_glUniform2fv(location,count,value){if(count<=144){var view=miniTempWebGLFloatBuffers[2*count-1];for(var i=0;i<2*count;i+=2){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*8>>2)}GLctx.uniform2fv(webglGetUniformLocation(location),view)}Module["_emscripten_glUniform2fv"]=_emscripten_glUniform2fv;_emscripten_glUniform2fv.sig="viii";function _emscripten_glUniform2i(location,v0,v1){GLctx.uniform2i(webglGetUniformLocation(location),v0,v1)}Module["_emscripten_glUniform2i"]=_emscripten_glUniform2i;_emscripten_glUniform2i.sig="viii";function _emscripten_glUniform2iv(location,count,value){if(count<=144){var view=__miniTempWebGLIntBuffers[2*count-1];for(var i=0;i<2*count;i+=2){view[i]=HEAP32[value+4*i>>2];view[i+1]=HEAP32[value+(4*i+4)>>2]}}else{var view=HEAP32.subarray(value>>2,value+count*8>>2)}GLctx.uniform2iv(webglGetUniformLocation(location),view)}Module["_emscripten_glUniform2iv"]=_emscripten_glUniform2iv;_emscripten_glUniform2iv.sig="viii";function _emscripten_glUniform3f(location,v0,v1,v2){GLctx.uniform3f(webglGetUniformLocation(location),v0,v1,v2)}Module["_emscripten_glUniform3f"]=_emscripten_glUniform3f;_emscripten_glUniform3f.sig="vifff";function _emscripten_glUniform3fv(location,count,value){if(count<=96){var view=miniTempWebGLFloatBuffers[3*count-1];for(var i=0;i<3*count;i+=3){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2];view[i+2]=HEAPF32[value+(4*i+8)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*12>>2)}GLctx.uniform3fv(webglGetUniformLocation(location),view)}Module["_emscripten_glUniform3fv"]=_emscripten_glUniform3fv;_emscripten_glUniform3fv.sig="viii";function _emscripten_glUniform3i(location,v0,v1,v2){GLctx.uniform3i(webglGetUniformLocation(location),v0,v1,v2)}Module["_emscripten_glUniform3i"]=_emscripten_glUniform3i;_emscripten_glUniform3i.sig="viiii";function _emscripten_glUniform3iv(location,count,value){if(count<=96){var view=__miniTempWebGLIntBuffers[3*count-1];for(var i=0;i<3*count;i+=3){view[i]=HEAP32[value+4*i>>2];view[i+1]=HEAP32[value+(4*i+4)>>2];view[i+2]=HEAP32[value+(4*i+8)>>2]}}else{var view=HEAP32.subarray(value>>2,value+count*12>>2)}GLctx.uniform3iv(webglGetUniformLocation(location),view)}Module["_emscripten_glUniform3iv"]=_emscripten_glUniform3iv;_emscripten_glUniform3iv.sig="viii";function _emscripten_glUniform4f(location,v0,v1,v2,v3){GLctx.uniform4f(webglGetUniformLocation(location),v0,v1,v2,v3)}Module["_emscripten_glUniform4f"]=_emscripten_glUniform4f;_emscripten_glUniform4f.sig="viffff";function _emscripten_glUniform4fv(location,count,value){if(count<=72){var view=miniTempWebGLFloatBuffers[4*count-1];var heap=HEAPF32;value>>=2;for(var i=0;i<4*count;i+=4){var dst=value+i;view[i]=heap[dst];view[i+1]=heap[dst+1];view[i+2]=heap[dst+2];view[i+3]=heap[dst+3]}}else{var view=HEAPF32.subarray(value>>2,value+count*16>>2)}GLctx.uniform4fv(webglGetUniformLocation(location),view)}Module["_emscripten_glUniform4fv"]=_emscripten_glUniform4fv;_emscripten_glUniform4fv.sig="viii";function _emscripten_glUniform4i(location,v0,v1,v2,v3){GLctx.uniform4i(webglGetUniformLocation(location),v0,v1,v2,v3)}Module["_emscripten_glUniform4i"]=_emscripten_glUniform4i;_emscripten_glUniform4i.sig="viiiii";function _emscripten_glUniform4iv(location,count,value){if(count<=72){var view=__miniTempWebGLIntBuffers[4*count-1];for(var i=0;i<4*count;i+=4){view[i]=HEAP32[value+4*i>>2];view[i+1]=HEAP32[value+(4*i+4)>>2];view[i+2]=HEAP32[value+(4*i+8)>>2];view[i+3]=HEAP32[value+(4*i+12)>>2]}}else{var view=HEAP32.subarray(value>>2,value+count*16>>2)}GLctx.uniform4iv(webglGetUniformLocation(location),view)}Module["_emscripten_glUniform4iv"]=_emscripten_glUniform4iv;_emscripten_glUniform4iv.sig="viii";function _emscripten_glUniformMatrix2fv(location,count,transpose,value){if(count<=72){var view=miniTempWebGLFloatBuffers[4*count-1];for(var i=0;i<4*count;i+=4){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2];view[i+2]=HEAPF32[value+(4*i+8)>>2];view[i+3]=HEAPF32[value+(4*i+12)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*16>>2)}GLctx.uniformMatrix2fv(webglGetUniformLocation(location),!!transpose,view)}Module["_emscripten_glUniformMatrix2fv"]=_emscripten_glUniformMatrix2fv;_emscripten_glUniformMatrix2fv.sig="viiii";function _emscripten_glUniformMatrix3fv(location,count,transpose,value){if(count<=32){var view=miniTempWebGLFloatBuffers[9*count-1];for(var i=0;i<9*count;i+=9){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2];view[i+2]=HEAPF32[value+(4*i+8)>>2];view[i+3]=HEAPF32[value+(4*i+12)>>2];view[i+4]=HEAPF32[value+(4*i+16)>>2];view[i+5]=HEAPF32[value+(4*i+20)>>2];view[i+6]=HEAPF32[value+(4*i+24)>>2];view[i+7]=HEAPF32[value+(4*i+28)>>2];view[i+8]=HEAPF32[value+(4*i+32)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*36>>2)}GLctx.uniformMatrix3fv(webglGetUniformLocation(location),!!transpose,view)}Module["_emscripten_glUniformMatrix3fv"]=_emscripten_glUniformMatrix3fv;_emscripten_glUniformMatrix3fv.sig="viiii";function _emscripten_glUniformMatrix4fv(location,count,transpose,value){if(count<=18){var view=miniTempWebGLFloatBuffers[16*count-1];var heap=HEAPF32;value>>=2;for(var i=0;i<16*count;i+=16){var dst=value+i;view[i]=heap[dst];view[i+1]=heap[dst+1];view[i+2]=heap[dst+2];view[i+3]=heap[dst+3];view[i+4]=heap[dst+4];view[i+5]=heap[dst+5];view[i+6]=heap[dst+6];view[i+7]=heap[dst+7];view[i+8]=heap[dst+8];view[i+9]=heap[dst+9];view[i+10]=heap[dst+10];view[i+11]=heap[dst+11];view[i+12]=heap[dst+12];view[i+13]=heap[dst+13];view[i+14]=heap[dst+14];view[i+15]=heap[dst+15]}}else{var view=HEAPF32.subarray(value>>2,value+count*64>>2)}GLctx.uniformMatrix4fv(webglGetUniformLocation(location),!!transpose,view)}Module["_emscripten_glUniformMatrix4fv"]=_emscripten_glUniformMatrix4fv;_emscripten_glUniformMatrix4fv.sig="viiii";function _emscripten_glUseProgram(program){program=GL.programs[program];GLctx.useProgram(program);GLctx.currentProgram=program}Module["_emscripten_glUseProgram"]=_emscripten_glUseProgram;_emscripten_glUseProgram.sig="vi";function _emscripten_glValidateProgram(program){GLctx.validateProgram(GL.programs[program])}Module["_emscripten_glValidateProgram"]=_emscripten_glValidateProgram;_emscripten_glValidateProgram.sig="vi";function _emscripten_glVertexAttrib1f(x0,x1){GLctx["vertexAttrib1f"](x0,x1)}Module["_emscripten_glVertexAttrib1f"]=_emscripten_glVertexAttrib1f;_emscripten_glVertexAttrib1f.sig="vii";function _emscripten_glVertexAttrib1fv(index,v){GLctx.vertexAttrib1f(index,HEAPF32[v>>2])}Module["_emscripten_glVertexAttrib1fv"]=_emscripten_glVertexAttrib1fv;_emscripten_glVertexAttrib1fv.sig="vii";function _emscripten_glVertexAttrib2f(x0,x1,x2){GLctx["vertexAttrib2f"](x0,x1,x2)}Module["_emscripten_glVertexAttrib2f"]=_emscripten_glVertexAttrib2f;_emscripten_glVertexAttrib2f.sig="viii";function _emscripten_glVertexAttrib2fv(index,v){GLctx.vertexAttrib2f(index,HEAPF32[v>>2],HEAPF32[v+4>>2])}Module["_emscripten_glVertexAttrib2fv"]=_emscripten_glVertexAttrib2fv;_emscripten_glVertexAttrib2fv.sig="vii";function _emscripten_glVertexAttrib3f(x0,x1,x2,x3){GLctx["vertexAttrib3f"](x0,x1,x2,x3)}Module["_emscripten_glVertexAttrib3f"]=_emscripten_glVertexAttrib3f;_emscripten_glVertexAttrib3f.sig="viiii";function _emscripten_glVertexAttrib3fv(index,v){GLctx.vertexAttrib3f(index,HEAPF32[v>>2],HEAPF32[v+4>>2],HEAPF32[v+8>>2])}Module["_emscripten_glVertexAttrib3fv"]=_emscripten_glVertexAttrib3fv;_emscripten_glVertexAttrib3fv.sig="vii";function _emscripten_glVertexAttrib4f(x0,x1,x2,x3,x4){GLctx["vertexAttrib4f"](x0,x1,x2,x3,x4)}Module["_emscripten_glVertexAttrib4f"]=_emscripten_glVertexAttrib4f;_emscripten_glVertexAttrib4f.sig="viiiii";function _emscripten_glVertexAttrib4fv(index,v){GLctx.vertexAttrib4f(index,HEAPF32[v>>2],HEAPF32[v+4>>2],HEAPF32[v+8>>2],HEAPF32[v+12>>2])}Module["_emscripten_glVertexAttrib4fv"]=_emscripten_glVertexAttrib4fv;_emscripten_glVertexAttrib4fv.sig="vii";function _emscripten_glVertexAttribDivisorANGLE(index,divisor){GLctx["vertexAttribDivisor"](index,divisor)}Module["_emscripten_glVertexAttribDivisorANGLE"]=_emscripten_glVertexAttribDivisorANGLE;_emscripten_glVertexAttribDivisorANGLE.sig="vii";function _emscripten_glVertexAttribPointer(index,size,type,normalized,stride,ptr){GLctx.vertexAttribPointer(index,size,type,!!normalized,stride,ptr)}Module["_emscripten_glVertexAttribPointer"]=_emscripten_glVertexAttribPointer;_emscripten_glVertexAttribPointer.sig="viiiiii";function _emscripten_glViewport(x0,x1,x2,x3){GLctx["viewport"](x0,x1,x2,x3)}Module["_emscripten_glViewport"]=_emscripten_glViewport;_emscripten_glViewport.sig="viiii";function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}Module["_emscripten_memcpy_big"]=_emscripten_memcpy_big;function emscripten_realloc_buffer(size){try{wasmMemory.grow(size-buffer.byteLength+65535>>>16);updateGlobalBufferAndViews(wasmMemory.buffer);return 1}catch(e){}}Module["emscripten_realloc_buffer"]=emscripten_realloc_buffer;function _emscripten_resize_heap(requestedSize){var oldSize=HEAPU8.length;requestedSize=requestedSize>>>0;var maxHeapSize=2147483648;if(requestedSize>maxHeapSize){return false}for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignUp(Math.max(requestedSize,overGrownHeapSize),65536));var replacement=emscripten_realloc_buffer(newSize);if(replacement){return true}}return false}Module["_emscripten_resize_heap"]=_emscripten_resize_heap;function _emscripten_thread_sleep(msecs){var start=_emscripten_get_now();while(_emscripten_get_now()-start>2]=ptr;writeAsciiToMemory(string,ptr);bufSize+=string.length+1});return 0}Module["_environ_get"]=_environ_get;_environ_get.sig="iii";function _environ_sizes_get(penviron_count,penviron_buf_size){var strings=getEnvStrings();HEAP32[penviron_count>>2]=strings.length;var bufSize=0;strings.forEach(function(string){bufSize+=string.length+1});HEAP32[penviron_buf_size>>2]=bufSize;return 0}Module["_environ_sizes_get"]=_environ_sizes_get;_environ_sizes_get.sig="iii";function _execve(path,argv,envp){setErrNo(45);return-1}Module["_execve"]=_execve;_execve.sig="iiii";function _fd_close(fd){try{var stream=SYSCALLS.getStreamFromFD(fd);FS.close(stream);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}Module["_fd_close"]=_fd_close;_fd_close.sig="ii";function _fd_fdstat_get(fd,pbuf){try{var stream=SYSCALLS.getStreamFromFD(fd);var type=stream.tty?2:FS.isDir(stream.mode)?3:FS.isLink(stream.mode)?7:4;HEAP8[pbuf>>0]=type;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}Module["_fd_fdstat_get"]=_fd_fdstat_get;_fd_fdstat_get.sig="iii";function _fd_pread(fd,iov,iovcnt,offset_low,offset_high,pnum){try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doReadv(stream,iov,iovcnt,offset_low);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}Module["_fd_pread"]=_fd_pread;function _fd_pwrite(fd,iov,iovcnt,offset_low,offset_high,pnum){try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doWritev(stream,iov,iovcnt,offset_low);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}Module["_fd_pwrite"]=_fd_pwrite;function _fd_read(fd,iov,iovcnt,pnum){try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doReadv(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}Module["_fd_read"]=_fd_read;_fd_read.sig="iiiii";function _fd_seek(fd,offset_low,offset_high,whence,newOffset){try{var stream=SYSCALLS.getStreamFromFD(fd);var HIGH_OFFSET=4294967296;var offset=offset_high*HIGH_OFFSET+(offset_low>>>0);var DOUBLE_LIMIT=9007199254740992;if(offset<=-DOUBLE_LIMIT||offset>=DOUBLE_LIMIT){return-61}FS.llseek(stream,offset,whence);tempI64=[stream.position>>>0,(tempDouble=stream.position,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[newOffset>>2]=tempI64[0],HEAP32[newOffset+4>>2]=tempI64[1];if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}Module["_fd_seek"]=_fd_seek;function _fd_sync(fd){try{var stream=SYSCALLS.getStreamFromFD(fd);if(stream.stream_ops&&stream.stream_ops.fsync){return-stream.stream_ops.fsync(stream)}return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}Module["_fd_sync"]=_fd_sync;_fd_sync.sig="ii";function _fd_write(fd,iov,iovcnt,pnum){try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doWritev(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}Module["_fd_write"]=_fd_write;_fd_write.sig="iiiii";function _fork(){setErrNo(52);return-1}Module["_fork"]=_fork;_fork.sig="i";var GAI_ERRNO_MESSAGES={};Module["GAI_ERRNO_MESSAGES"]=GAI_ERRNO_MESSAGES;function _gai_strerror(val){var buflen=256;if(!_gai_strerror.buffer){_gai_strerror.buffer=_malloc(buflen);GAI_ERRNO_MESSAGES["0"]="Success";GAI_ERRNO_MESSAGES[""+-1]="Invalid value for 'ai_flags' field";GAI_ERRNO_MESSAGES[""+-2]="NAME or SERVICE is unknown";GAI_ERRNO_MESSAGES[""+-3]="Temporary failure in name resolution";GAI_ERRNO_MESSAGES[""+-4]="Non-recoverable failure in name res";GAI_ERRNO_MESSAGES[""+-6]="'ai_family' not supported";GAI_ERRNO_MESSAGES[""+-7]="'ai_socktype' not supported";GAI_ERRNO_MESSAGES[""+-8]="SERVICE not supported for 'ai_socktype'";GAI_ERRNO_MESSAGES[""+-10]="Memory allocation failure";GAI_ERRNO_MESSAGES[""+-11]="System error returned in 'errno'";GAI_ERRNO_MESSAGES[""+-12]="Argument buffer overflow"}var msg="Unknown error";if(val in GAI_ERRNO_MESSAGES){if(GAI_ERRNO_MESSAGES[val].length>buflen-1){msg="Message too long"}else{msg=GAI_ERRNO_MESSAGES[val]}}writeAsciiToMemory(msg,_gai_strerror.buffer);return _gai_strerror.buffer}Module["_gai_strerror"]=_gai_strerror;function _getTempRet0(){return getTempRet0()}Module["_getTempRet0"]=_getTempRet0;_getTempRet0.sig="i";function _getaddrinfo(node,service,hint,out){var addrs=[];var canon=null;var addr=0;var port=0;var flags=0;var family=0;var type=0;var proto=0;var ai,last;function allocaddrinfo(family,type,proto,canon,addr,port){var sa,salen,ai;var errno;salen=family===10?28:16;addr=family===10?inetNtop6(addr):inetNtop4(addr);sa=_malloc(salen);errno=writeSockaddr(sa,family,addr,port);assert(!errno);ai=_malloc(32);HEAP32[ai+4>>2]=family;HEAP32[ai+8>>2]=type;HEAP32[ai+12>>2]=proto;HEAP32[ai+24>>2]=canon;HEAP32[ai+20>>2]=sa;if(family===10){HEAP32[ai+16>>2]=28}else{HEAP32[ai+16>>2]=16}HEAP32[ai+28>>2]=0;return ai}if(hint){flags=HEAP32[hint>>2];family=HEAP32[hint+4>>2];type=HEAP32[hint+8>>2];proto=HEAP32[hint+12>>2]}if(type&&!proto){proto=type===2?17:6}if(!type&&proto){type=proto===17?2:1}if(proto===0){proto=6}if(type===0){type=1}if(!node&&!service){return-2}if(flags&~(1|2|4|1024|8|16|32)){return-1}if(hint!==0&&HEAP32[hint>>2]&2&&!node){return-1}if(flags&32){return-2}if(type!==0&&type!==1&&type!==2){return-7}if(family!==0&&family!==2&&family!==10){return-6}if(service){service=UTF8ToString(service);port=parseInt(service,10);if(isNaN(port)){if(flags&1024){return-2}return-8}}if(!node){if(family===0){family=2}if((flags&1)===0){if(family===2){addr=_htonl(2130706433)}else{addr=[0,0,0,1]}}ai=allocaddrinfo(family,type,proto,null,addr,port);HEAP32[out>>2]=ai;return 0}node=UTF8ToString(node);addr=inetPton4(node);if(addr!==null){if(family===0||family===2){family=2}else if(family===10&&flags&8){addr=[0,0,_htonl(65535),addr];family=10}else{return-2}}else{addr=inetPton6(node);if(addr!==null){if(family===0||family===10){family=10}else{return-2}}}if(addr!=null){ai=allocaddrinfo(family,type,proto,node,addr,port);HEAP32[out>>2]=ai;return 0}if(flags&4){return-2}node=DNS.lookup_name(node);addr=inetPton4(node);if(family===0){family=2}else if(family===10){addr=[0,0,_htonl(65535),addr]}ai=allocaddrinfo(family,type,proto,null,addr,port);HEAP32[out>>2]=ai;return 0}Module["_getaddrinfo"]=_getaddrinfo;_getaddrinfo.sig="iiiii";function _getentropy(buffer,size){if(!_getentropy.randomDevice){_getentropy.randomDevice=getRandomDevice()}for(var i=0;i>0]=_getentropy.randomDevice()}return 0}Module["_getentropy"]=_getentropy;function getHostByName(name){var ret=_malloc(20);var nameBuf=_malloc(name.length+1);stringToUTF8(name,nameBuf,name.length+1);HEAP32[ret>>2]=nameBuf;var aliasesBuf=_malloc(4);HEAP32[aliasesBuf>>2]=0;HEAP32[ret+4>>2]=aliasesBuf;var afinet=2;HEAP32[ret+8>>2]=afinet;HEAP32[ret+12>>2]=4;var addrListBuf=_malloc(12);HEAP32[addrListBuf>>2]=addrListBuf+8;HEAP32[addrListBuf+4>>2]=0;HEAP32[addrListBuf+8>>2]=inetPton4(DNS.lookup_name(name));HEAP32[ret+16>>2]=addrListBuf;return ret}Module["getHostByName"]=getHostByName;function _gethostbyaddr(addr,addrlen,type){if(type!==2){setErrNo(5);return null}addr=HEAP32[addr>>2];var host=inetNtop4(addr);var lookup=DNS.lookup_addr(host);if(lookup){host=lookup}return getHostByName(host)}Module["_gethostbyaddr"]=_gethostbyaddr;_gethostbyaddr.sig="iiii";function _gethostbyname(name){return getHostByName(UTF8ToString(name))}Module["_gethostbyname"]=_gethostbyname;_gethostbyname.sig="ii";function _getloadavg(loadavg,nelem){var limit=Math.min(nelem,3);var doubleSize=8;for(var i=0;i>3]=.1}return limit}Module["_getloadavg"]=_getloadavg;function _getnameinfo(sa,salen,node,nodelen,serv,servlen,flags){var info=readSockaddr(sa,salen);if(info.errno){return-6}var port=info.port;var addr=info.addr;var overflowed=false;if(node&&nodelen){var lookup;if(flags&1||!(lookup=DNS.lookup_addr(addr))){if(flags&8){return-2}}else{addr=lookup}var numBytesWrittenExclNull=stringToUTF8(addr,node,nodelen);if(numBytesWrittenExclNull+1>=nodelen){overflowed=true}}if(serv&&servlen){port=""+port;var numBytesWrittenExclNull=stringToUTF8(port,serv,servlen);if(numBytesWrittenExclNull+1>=servlen){overflowed=true}}if(overflowed){return-12}return 0}Module["_getnameinfo"]=_getnameinfo;var Protocols={list:[],map:{}};Module["Protocols"]=Protocols;function _setprotoent(stayopen){function allocprotoent(name,proto,aliases){var nameBuf=_malloc(name.length+1);writeAsciiToMemory(name,nameBuf);var j=0;var length=aliases.length;var aliasListBuf=_malloc((length+1)*4);for(var i=0;i>2]=aliasBuf}HEAP32[aliasListBuf+j>>2]=0;var pe=_malloc(12);HEAP32[pe>>2]=nameBuf;HEAP32[pe+4>>2]=aliasListBuf;HEAP32[pe+8>>2]=proto;return pe}var list=Protocols.list;var map=Protocols.map;if(list.length===0){var entry=allocprotoent("tcp",6,["TCP"]);list.push(entry);map["tcp"]=map["6"]=entry;entry=allocprotoent("udp",17,["UDP"]);list.push(entry);map["udp"]=map["17"]=entry}_setprotoent.index=0}Module["_setprotoent"]=_setprotoent;function _getprotobyname(name){name=UTF8ToString(name);_setprotoent(true);var result=Protocols.map[name];return result}Module["_getprotobyname"]=_getprotobyname;function _gettimeofday(ptr){var now=Date.now();HEAP32[ptr>>2]=now/1e3|0;HEAP32[ptr+4>>2]=now%1e3*1e3|0;return 0}Module["_gettimeofday"]=_gettimeofday;function _kill(pid,sig){setErrNo(63);return-1}Module["_kill"]=_kill;function _posix_spawn(){return _fork()}Module["_posix_spawn"]=_posix_spawn;_posix_spawn.sig="i";function _proc_exit(code){procExit(code)}Module["_proc_exit"]=_proc_exit;_proc_exit.sig="vi";function _pthread_sigmask(how,set,oldset){err("pthread_sigmask() is not supported: this is a no-op.");return 0}Module["_pthread_sigmask"]=_pthread_sigmask;function _raise(sig){setErrNo(52);return-1}Module["_raise"]=_raise;function _setTempRet0(val){setTempRet0(val)}Module["_setTempRet0"]=_setTempRet0;_setTempRet0.sig="vi";function _setgroups(ngroups,gidset){if(ngroups<1||ngroups>_sysconf(3)){setErrNo(28);return-1}setErrNo(63);return-1}Module["_setgroups"]=_setgroups;function _siginterrupt(){return 0}Module["_siginterrupt"]=_siginterrupt;function _sigpending(set){HEAP32[set>>2]=0;return 0}Module["_sigpending"]=_sigpending;function _sigtimedwait(set,sig,timeout){return 28}Module["_sigtimedwait"]=_sigtimedwait;function __isLeapYear(year){return year%4===0&&(year%100!==0||year%400===0)}Module["__isLeapYear"]=__isLeapYear;function __arraySum(array,index){var sum=0;for(var i=0;i<=index;sum+=array[i++]){}return sum}Module["__arraySum"]=__arraySum;var __MONTH_DAYS_LEAP=[31,29,31,30,31,30,31,31,30,31,30,31];Module["__MONTH_DAYS_LEAP"]=__MONTH_DAYS_LEAP;var __MONTH_DAYS_REGULAR=[31,28,31,30,31,30,31,31,30,31,30,31];Module["__MONTH_DAYS_REGULAR"]=__MONTH_DAYS_REGULAR;function __addDays(date,days){var newDate=new Date(date.getTime());while(days>0){var leap=__isLeapYear(newDate.getFullYear());var currentMonth=newDate.getMonth();var daysInCurrentMonth=(leap?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR)[currentMonth];if(days>daysInCurrentMonth-newDate.getDate()){days-=daysInCurrentMonth-newDate.getDate()+1;newDate.setDate(1);if(currentMonth<11){newDate.setMonth(currentMonth+1)}else{newDate.setMonth(0);newDate.setFullYear(newDate.getFullYear()+1)}}else{newDate.setDate(newDate.getDate()+days);return newDate}}return newDate}Module["__addDays"]=__addDays;function _strftime(s,maxsize,format,tm){var tm_zone=HEAP32[tm+40>>2];var date={tm_sec:HEAP32[tm>>2],tm_min:HEAP32[tm+4>>2],tm_hour:HEAP32[tm+8>>2],tm_mday:HEAP32[tm+12>>2],tm_mon:HEAP32[tm+16>>2],tm_year:HEAP32[tm+20>>2],tm_wday:HEAP32[tm+24>>2],tm_yday:HEAP32[tm+28>>2],tm_isdst:HEAP32[tm+32>>2],tm_gmtoff:HEAP32[tm+36>>2],tm_zone:tm_zone?UTF8ToString(tm_zone):""};var pattern=UTF8ToString(format);var EXPANSION_RULES_1={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"};for(var rule in EXPANSION_RULES_1){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_1[rule])}var WEEKDAYS=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];var MONTHS=["January","February","March","April","May","June","July","August","September","October","November","December"];function leadingSomething(value,digits,character){var str=typeof value==="number"?value.toString():value||"";while(str.length0?1:0}var compare;if((compare=sgn(date1.getFullYear()-date2.getFullYear()))===0){if((compare=sgn(date1.getMonth()-date2.getMonth()))===0){compare=sgn(date1.getDate()-date2.getDate())}}return compare}function getFirstWeekStartDate(janFourth){switch(janFourth.getDay()){case 0:return new Date(janFourth.getFullYear()-1,11,29);case 1:return janFourth;case 2:return new Date(janFourth.getFullYear(),0,3);case 3:return new Date(janFourth.getFullYear(),0,2);case 4:return new Date(janFourth.getFullYear(),0,1);case 5:return new Date(janFourth.getFullYear()-1,11,31);case 6:return new Date(janFourth.getFullYear()-1,11,30)}}function getWeekBasedYear(date){var thisDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);var janFourthThisYear=new Date(thisDate.getFullYear(),0,4);var janFourthNextYear=new Date(thisDate.getFullYear()+1,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);if(compareByDay(firstWeekStartThisYear,thisDate)<=0){if(compareByDay(firstWeekStartNextYear,thisDate)<=0){return thisDate.getFullYear()+1}else{return thisDate.getFullYear()}}else{return thisDate.getFullYear()-1}}var EXPANSION_RULES_2={"%a":function(date){return WEEKDAYS[date.tm_wday].substring(0,3)},"%A":function(date){return WEEKDAYS[date.tm_wday]},"%b":function(date){return MONTHS[date.tm_mon].substring(0,3)},"%B":function(date){return MONTHS[date.tm_mon]},"%C":function(date){var year=date.tm_year+1900;return leadingNulls(year/100|0,2)},"%d":function(date){return leadingNulls(date.tm_mday,2)},"%e":function(date){return leadingSomething(date.tm_mday,2," ")},"%g":function(date){return getWeekBasedYear(date).toString().substring(2)},"%G":function(date){return getWeekBasedYear(date)},"%H":function(date){return leadingNulls(date.tm_hour,2)},"%I":function(date){var twelveHour=date.tm_hour;if(twelveHour==0)twelveHour=12;else if(twelveHour>12)twelveHour-=12;return leadingNulls(twelveHour,2)},"%j":function(date){return leadingNulls(date.tm_mday+__arraySum(__isLeapYear(date.tm_year+1900)?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,date.tm_mon-1),3)},"%m":function(date){return leadingNulls(date.tm_mon+1,2)},"%M":function(date){return leadingNulls(date.tm_min,2)},"%n":function(){return"\n"},"%p":function(date){if(date.tm_hour>=0&&date.tm_hour<12){return"AM"}else{return"PM"}},"%S":function(date){return leadingNulls(date.tm_sec,2)},"%t":function(){return"\t"},"%u":function(date){return date.tm_wday||7},"%U":function(date){var janFirst=new Date(date.tm_year+1900,0,1);var firstSunday=janFirst.getDay()===0?janFirst:__addDays(janFirst,7-janFirst.getDay());var endDate=new Date(date.tm_year+1900,date.tm_mon,date.tm_mday);if(compareByDay(firstSunday,endDate)<0){var februaryFirstUntilEndMonth=__arraySum(__isLeapYear(endDate.getFullYear())?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,endDate.getMonth()-1)-31;var firstSundayUntilEndJanuary=31-firstSunday.getDate();var days=firstSundayUntilEndJanuary+februaryFirstUntilEndMonth+endDate.getDate();return leadingNulls(Math.ceil(days/7),2)}return compareByDay(firstSunday,janFirst)===0?"01":"00"},"%V":function(date){var janFourthThisYear=new Date(date.tm_year+1900,0,4);var janFourthNextYear=new Date(date.tm_year+1901,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);var endDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);if(compareByDay(endDate,firstWeekStartThisYear)<0){return"53"}if(compareByDay(firstWeekStartNextYear,endDate)<=0){return"01"}var daysDifference;if(firstWeekStartThisYear.getFullYear()=0;off=Math.abs(off)/60;off=off/60*100+off%60;return(ahead?"+":"-")+String("0000"+off).slice(-4)},"%Z":function(date){return date.tm_zone},"%%":function(){return"%"}};for(var rule in EXPANSION_RULES_2){if(pattern.includes(rule)){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_2[rule](date))}}var bytes=intArrayFromString(pattern,false);if(bytes.length>maxsize){return 0}writeArrayToMemory(bytes,s);return bytes.length-1}Module["_strftime"]=_strftime;_strftime.sig="iiiii";function _strftime_l(s,maxsize,format,tm){return _strftime(s,maxsize,format,tm)}Module["_strftime_l"]=_strftime_l;function _system(command){if(ENVIRONMENT_IS_NODE){if(!command)return 1;var cmdstr=UTF8ToString(command);if(!cmdstr.length)return 0;var cp=require("child_process");var ret=cp.spawnSync(cmdstr,[],{shell:true,stdio:"inherit"});var _W_EXITCODE=function(ret,sig){return ret<<8|sig};if(ret.status===null){var signalToNumber=function(sig){switch(sig){case"SIGHUP":return 1;case"SIGINT":return 2;case"SIGQUIT":return 3;case"SIGFPE":return 8;case"SIGKILL":return 9;case"SIGALRM":return 14;case"SIGTERM":return 15}return 2};return _W_EXITCODE(0,signalToNumber(ret.signal))}return _W_EXITCODE(ret.status,0)}if(!command)return 0;setErrNo(52);return-1}Module["_system"]=_system;function _time(ptr){var ret=Date.now()/1e3|0;if(ptr){HEAP32[ptr>>2]=ret}return ret}Module["_time"]=_time;_time.sig="ii";function _times(buffer){if(buffer!==0){zeroMemory(buffer,16)}return 0}Module["_times"]=_times;function setFileTime(path,time){path=UTF8ToString(path);try{FS.utime(path,time,time);return 0}catch(e){if(!(e instanceof FS.ErrnoError))throw e+" : "+stackTrace();setErrNo(e.errno);return-1}}Module["setFileTime"]=setFileTime;function _utimes(path,times){var time;if(times){var mtime=times+8;time=HEAP32[mtime>>2]*1e3;time+=HEAP32[mtime+4>>2]/1e3}else{time=Date.now()}return setFileTime(path,time)}Module["_utimes"]=_utimes;_utimes.sig="iii";function _wait3(a0){return _wait(a0)}Module["_wait3"]=_wait3;_wait3.sig="ii";function _wait4(a0){return _wait(a0)}Module["_wait4"]=_wait4;_wait4.sig="ii";function _waitid(a0){return _wait(a0)}Module["_waitid"]=_waitid;_waitid.sig="ii";var ___memory_base=1024;Module["___memory_base"]=___memory_base;var ___table_base=1;Module["___table_base"]=___table_base;function _utime(path,times){var time;if(times){time=HEAP32[times+4>>2]*1e3}else{time=Date.now()}return setFileTime(path,time)}Module["_utime"]=_utime;_utime.sig="iii";function _flock(fd,operation){return 0}Module["_flock"]=_flock;function _vfork(){return _fork()}Module["_vfork"]=_vfork;_vfork.sig="i";function _emscripten_notify_memory_growth(memoryIndex){updateGlobalBufferAndViews(wasmMemory.buffer)}Module["_emscripten_notify_memory_growth"]=_emscripten_notify_memory_growth;function _difftime(time1,time0){return time1-time0}Module["_difftime"]=_difftime;_difftime.sig="dii";function _timelocal(a0){return _mktime(a0)}Module["_timelocal"]=_timelocal;_timelocal.sig="ii";function _timegm(tmPtr){_tzset();var time=Date.UTC(HEAP32[tmPtr+20>>2]+1900,HEAP32[tmPtr+16>>2],HEAP32[tmPtr+12>>2],HEAP32[tmPtr+8>>2],HEAP32[tmPtr+4>>2],HEAP32[tmPtr>>2],0);var date=new Date(time);HEAP32[tmPtr+24>>2]=date.getUTCDay();var start=Date.UTC(date.getUTCFullYear(),0,1,0,0,0,0);var yday=(date.getTime()-start)/(1e3*60*60*24)|0;HEAP32[tmPtr+28>>2]=yday;return date.getTime()/1e3|0}Module["_timegm"]=_timegm;_timegm.sig="ii";function _ctime_r(time,buf){var stack=stackSave();var rv=___asctime(_localtime_r(time,stackAlloc(44)),buf);stackRestore(stack);return rv}Module["_ctime_r"]=_ctime_r;_ctime_r.sig="iii";function _dysize(year){var leap=year%4==0&&(year%100!=0||year%400==0);return leap?366:365}Module["_dysize"]=_dysize;function _stime(when){setErrNo(63);return-1}Module["_stime"]=_stime;function _strptime(buf,format,tm){var pattern=UTF8ToString(format);var SPECIAL_CHARS="\\!@#$^&*()+=-[]/{}|:<>?,.";for(var i=0,ii=SPECIAL_CHARS.length;i=0;i=pattern.indexOf("%")){capture.push(pattern[i+1]);pattern=pattern.replace(new RegExp("\\%"+pattern[i+1],"g"),"")}var matches=new RegExp("^"+pattern,"i").exec(UTF8ToString(buf));function initDate(){function fixup(value,min,max){return typeof value!=="number"||isNaN(value)?min:value>=min?value<=max?value:max:min}return{year:fixup(HEAP32[tm+20>>2]+1900,1970,9999),month:fixup(HEAP32[tm+16>>2],0,11),day:fixup(HEAP32[tm+12>>2],1,31),hour:fixup(HEAP32[tm+8>>2],0,23),min:fixup(HEAP32[tm+4>>2],0,59),sec:fixup(HEAP32[tm>>2],0,59)}}if(matches){var date=initDate();var value;var getMatch=function(symbol){var pos=capture.indexOf(symbol);if(pos>=0){return matches[pos+1]}return};if(value=getMatch("S")){date.sec=jstoi_q(value)}if(value=getMatch("M")){date.min=jstoi_q(value)}if(value=getMatch("H")){date.hour=jstoi_q(value)}else if(value=getMatch("I")){var hour=jstoi_q(value);if(value=getMatch("p")){hour+=value.toUpperCase()[0]==="P"?12:0}date.hour=hour}if(value=getMatch("Y")){date.year=jstoi_q(value)}else if(value=getMatch("y")){var year=jstoi_q(value);if(value=getMatch("C")){year+=jstoi_q(value)*100}else{year+=year<69?2e3:1900}date.year=year}if(value=getMatch("m")){date.month=jstoi_q(value)-1}else if(value=getMatch("b")){date.month=MONTH_NUMBERS[value.substring(0,3).toUpperCase()]||0}if(value=getMatch("d")){date.day=jstoi_q(value)}else if(value=getMatch("j")){var day=jstoi_q(value);var leapYear=__isLeapYear(date.year);for(var month=0;month<12;++month){var daysUntilMonth=__arraySum(leapYear?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,month-1);if(day<=daysUntilMonth+(leapYear?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR)[month]){date.day=day-daysUntilMonth}}}else if(value=getMatch("a")){var weekDay=value.substring(0,3).toUpperCase();if(value=getMatch("U")){var weekDayNumber=DAY_NUMBERS_SUN_FIRST[weekDay];var weekNumber=jstoi_q(value);var janFirst=new Date(date.year,0,1);var endDate;if(janFirst.getDay()===0){endDate=__addDays(janFirst,weekDayNumber+7*(weekNumber-1))}else{endDate=__addDays(janFirst,7-janFirst.getDay()+weekDayNumber+7*(weekNumber-1))}date.day=endDate.getDate();date.month=endDate.getMonth()}else if(value=getMatch("W")){var weekDayNumber=DAY_NUMBERS_MON_FIRST[weekDay];var weekNumber=jstoi_q(value);var janFirst=new Date(date.year,0,1);var endDate;if(janFirst.getDay()===1){endDate=__addDays(janFirst,weekDayNumber+7*(weekNumber-1))}else{endDate=__addDays(janFirst,7-janFirst.getDay()+1+weekDayNumber+7*(weekNumber-1))}date.day=endDate.getDate();date.month=endDate.getMonth()}}var fullDate=new Date(date.year,date.month,date.day,date.hour,date.min,date.sec,0);HEAP32[tm>>2]=fullDate.getSeconds();HEAP32[tm+4>>2]=fullDate.getMinutes();HEAP32[tm+8>>2]=fullDate.getHours();HEAP32[tm+12>>2]=fullDate.getDate();HEAP32[tm+16>>2]=fullDate.getMonth();HEAP32[tm+20>>2]=fullDate.getFullYear()-1900;HEAP32[tm+24>>2]=fullDate.getDay();HEAP32[tm+28>>2]=__arraySum(__isLeapYear(fullDate.getFullYear())?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,fullDate.getMonth()-1)+fullDate.getDate()-1;HEAP32[tm+32>>2]=0;return buf+intArrayFromString(matches[0]).length-1}return 0}Module["_strptime"]=_strptime;function _strptime_l(buf,format,tm){return _strptime(buf,format,tm)}Module["_strptime_l"]=_strptime_l;function _getdate(string){return 0}Module["_getdate"]=_getdate;function _timespec_get(ts,base){if(base!==1){setErrNo(28);return 0}var ret=_clock_gettime(0,ts);return ret<0?0:base}Module["_timespec_get"]=_timespec_get;function _clock_getcpuclockid(pid,clk_id){if(pid<0)return 71;if(pid!==0&&pid!==42)return 52;if(clk_id)HEAP32[clk_id>>2]=2;return 0}Module["_clock_getcpuclockid"]=_clock_getcpuclockid;function _ftime(p){var millis=Date.now();HEAP32[p>>2]=millis/1e3|0;HEAP16[p+4>>1]=millis%1e3;HEAP16[p+6>>1]=0;HEAP16[p+8>>1]=0;return 0}Module["_ftime"]=_ftime;var ERRNO_MESSAGES={0:"Success",1:"Arg list too long",2:"Permission denied",3:"Address already in use",4:"Address not available",5:"Address family not supported by protocol family",6:"No more processes",7:"Socket already connected",8:"Bad file number",9:"Trying to read unreadable message",10:"Mount device busy",11:"Operation canceled",12:"No children",13:"Connection aborted",14:"Connection refused",15:"Connection reset by peer",16:"File locking deadlock error",17:"Destination address required",18:"Math arg out of domain of func",19:"Quota exceeded",20:"File exists",21:"Bad address",22:"File too large",23:"Host is unreachable",24:"Identifier removed",25:"Illegal byte sequence",26:"Connection already in progress",27:"Interrupted system call",28:"Invalid argument",29:"I/O error",30:"Socket is already connected",31:"Is a directory",32:"Too many symbolic links",33:"Too many open files",34:"Too many links",35:"Message too long",36:"Multihop attempted",37:"File or path name too long",38:"Network interface is not configured",39:"Connection reset by network",40:"Network is unreachable",41:"Too many open files in system",42:"No buffer space available",43:"No such device",44:"No such file or directory",45:"Exec format error",46:"No record locks available",47:"The link has been severed",48:"Not enough core",49:"No message of desired type",50:"Protocol not available",51:"No space left on device",52:"Function not implemented",53:"Socket is not connected",54:"Not a directory",55:"Directory not empty",56:"State not recoverable",57:"Socket operation on non-socket",59:"Not a typewriter",60:"No such device or address",61:"Value too large for defined data type",62:"Previous owner died",63:"Not super-user",64:"Broken pipe",65:"Protocol error",66:"Unknown protocol",67:"Protocol wrong type for socket",68:"Math result not representable",69:"Read only file system",70:"Illegal seek",71:"No such process",72:"Stale file handle",73:"Connection timed out",74:"Text file busy",75:"Cross-device link",100:"Device not a stream",101:"Bad font file fmt",102:"Invalid slot",103:"Invalid request code",104:"No anode",105:"Block device required",106:"Channel number out of range",107:"Level 3 halted",108:"Level 3 reset",109:"Link number out of range",110:"Protocol driver not attached",111:"No CSI structure available",112:"Level 2 halted",113:"Invalid exchange",114:"Invalid request descriptor",115:"Exchange full",116:"No data (for no delay io)",117:"Timer expired",118:"Out of streams resources",119:"Machine is not on the network",120:"Package not installed",121:"The object is remote",122:"Advertise error",123:"Srmount error",124:"Communication error on send",125:"Cross mount point (not really error)",126:"Given log. name not unique",127:"f.d. invalid for this operation",128:"Remote address changed",129:"Can access a needed shared lib",130:"Accessing a corrupted shared lib",131:".lib section in a.out corrupted",132:"Attempting to link in too many libs",133:"Attempting to exec a shared library",135:"Streams pipe error",136:"Too many users",137:"Socket type not supported",138:"Not supported",139:"Protocol family not supported",140:"Can't send after socket shutdown",141:"Too many references",142:"Host is down",148:"No medium (in tape drive)",156:"Level 2 not synchronized"};Module["ERRNO_MESSAGES"]=ERRNO_MESSAGES;function _gethostbyname_r(name,ret,buf,buflen,out,err){var data=_gethostbyname(name);_memcpy(ret,data,20);_free(data);HEAP32[err>>2]=0;HEAP32[out>>2]=ret;return 0}Module["_gethostbyname_r"]=_gethostbyname_r;_gethostbyname_r.sig="iiiiiii";function _endprotoent(){}Module["_endprotoent"]=_endprotoent;function _getprotoent(number){if(_setprotoent.index===Protocols.list.length){return 0}else{var result=Protocols.list[_setprotoent.index++];return result}}Module["_getprotoent"]=_getprotoent;function _getprotobynumber(number){_setprotoent(true);var result=Protocols.map[number];return result}Module["_getprotobynumber"]=_getprotobynumber;function _getpwnam(){throw"getpwnam: TODO"}Module["_getpwnam"]=_getpwnam;function _getpwnam_r(){throw"getpwnam_r: TODO"}Module["_getpwnam_r"]=_getpwnam_r;function _getpwuid(){throw"getpwuid: TODO"}Module["_getpwuid"]=_getpwuid;function _getpwuid_r(){throw"getpwuid_r: TODO"}Module["_getpwuid_r"]=_getpwuid_r;function _setpwent(){throw"setpwent: TODO"}Module["_setpwent"]=_setpwent;function _getpwent(){throw"getpwent: TODO"}Module["_getpwent"]=_getpwent;function _endpwent(){throw"endpwent: TODO"}Module["_endpwent"]=_endpwent;function _getgrgid(){throw"getgrgid: TODO"}Module["_getgrgid"]=_getgrgid;function _getgrgid_r(){throw"getgrgid_r: TODO"}Module["_getgrgid_r"]=_getgrgid_r;function _getgrnam(){throw"getgrnam: TODO"}Module["_getgrnam"]=_getgrnam;function _getgrnam_r(){throw"getgrnam_r: TODO"}Module["_getgrnam_r"]=_getgrnam_r;function _getgrent(){throw"getgrent: TODO"}Module["_getgrent"]=_getgrent;function _endgrent(){throw"endgrent: TODO"}Module["_endgrent"]=_endgrent;function _setgrent(){throw"setgrent: TODO"}Module["_setgrent"]=_setgrent;function _emscripten_run_script(ptr){eval(UTF8ToString(ptr))}Module["_emscripten_run_script"]=_emscripten_run_script;_emscripten_run_script.sig="vi";function _emscripten_run_script_int(ptr){return eval(UTF8ToString(ptr))|0}Module["_emscripten_run_script_int"]=_emscripten_run_script_int;_emscripten_run_script_int.sig="ii";function _emscripten_run_script_string(ptr){var s=eval(UTF8ToString(ptr));if(s==null){return 0}s+="";var me=_emscripten_run_script_string;var len=lengthBytesUTF8(s);if(!me.bufferSize||me.bufferSize=4){symbolName=parts[1];file=parts[2];lineno=parts[3];column=parts[4]|0}else{callstack+=line+"\n";continue}}var haveSourceMap=false;if(flags&8){var orig=emscripten_source_map.originalPositionFor({line:lineno,column:column});haveSourceMap=orig&&orig.source;if(haveSourceMap){if(flags&64){orig.source=orig.source.substring(orig.source.replace(/\\/g,"/").lastIndexOf("/")+1)}callstack+=" at "+symbolName+" ("+orig.source+":"+orig.line+":"+orig.column+")\n"}}if(flags&16||!haveSourceMap){if(flags&64){file=file.substring(file.replace(/\\/g,"/").lastIndexOf("/")+1)}callstack+=(haveSourceMap?" = "+symbolName:" at "+symbolName)+" ("+file+":"+lineno+":"+column+")\n"}if(flags&128&&stack_args[0]){if(stack_args[1]==symbolName&&stack_args[2].length>0){callstack=callstack.replace(/\s+$/,"");callstack+=" with values: "+stack_args[1]+stack_args[2]+"\n"}stack_args=traverseStack(stack_args[0])}}callstack=callstack.replace(/\s+$/,"");return callstack}Module["_emscripten_get_callstack_js"]=_emscripten_get_callstack_js;function _emscripten_get_callstack(flags,str,maxbytes){var callstack=_emscripten_get_callstack_js(flags);if(!str||maxbytes<=0){return lengthBytesUTF8(callstack)+1}var bytesWrittenExcludingNull=stringToUTF8(callstack,str,maxbytes);return bytesWrittenExcludingNull+1}Module["_emscripten_get_callstack"]=_emscripten_get_callstack;function _emscripten_log_js(flags,str){if(flags&24){str=str.replace(/\s+$/,"");str+=(str.length>0?"\n":"")+_emscripten_get_callstack_js(flags)}if(flags&1){if(flags&4){err(str)}else if(flags&2){console.warn(str)}else if(flags&512){console.info(str)}else if(flags&256){console.debug(str)}else{out(str)}}else if(flags&6){err(str)}else{out(str)}}Module["_emscripten_log_js"]=_emscripten_log_js;function reallyNegative(x){return x<0||x===0&&1/x===-Infinity}Module["reallyNegative"]=reallyNegative;function convertI32PairToI53(lo,hi){return(lo>>>0)+hi*4294967296}Module["convertI32PairToI53"]=convertI32PairToI53;function convertU32PairToI53(lo,hi){return(lo>>>0)+(hi>>>0)*4294967296}Module["convertU32PairToI53"]=convertU32PairToI53;function reSign(value,bits){if(value<=0){return value}var half=bits<=32?Math.abs(1<=half&&(bits<=32||value>half)){value=-2*half+value}return value}Module["reSign"]=reSign;function unSign(value,bits){if(value>=0){return value}return bits<=32?2*Math.abs(1<>3];argIndex+=8}else if(type=="i64"){ret=[HEAP32[argIndex>>2],HEAP32[argIndex+4>>2]];argIndex+=8}else{type="i32";ret=HEAP32[argIndex>>2];argIndex+=4}return ret}var ret=[];var curr,next,currArg;while(1){var startTextIndex=textIndex;curr=HEAP8[textIndex>>0];if(curr===0)break;next=HEAP8[textIndex+1>>0];if(curr==37){var flagAlwaysSigned=false;var flagLeftAlign=false;var flagAlternative=false;var flagZeroPad=false;var flagPadSign=false;flagsLoop:while(1){switch(next){case 43:flagAlwaysSigned=true;break;case 45:flagLeftAlign=true;break;case 35:flagAlternative=true;break;case 48:if(flagZeroPad){break flagsLoop}else{flagZeroPad=true;break}case 32:flagPadSign=true;break;default:break flagsLoop}textIndex++;next=HEAP8[textIndex+1>>0]}var width=0;if(next==42){width=getNextArg("i32");textIndex++;next=HEAP8[textIndex+1>>0]}else{while(next>=48&&next<=57){width=width*10+(next-48);textIndex++;next=HEAP8[textIndex+1>>0]}}var precisionSet=false,precision=-1;if(next==46){precision=0;precisionSet=true;textIndex++;next=HEAP8[textIndex+1>>0];if(next==42){precision=getNextArg("i32");textIndex++}else{while(1){var precisionChr=HEAP8[textIndex+1>>0];if(precisionChr<48||precisionChr>57)break;precision=precision*10+(precisionChr-48);textIndex++}}next=HEAP8[textIndex+1>>0]}if(precision<0){precision=6;precisionSet=false}var argSize;switch(String.fromCharCode(next)){case"h":var nextNext=HEAP8[textIndex+2>>0];if(nextNext==104){textIndex++;argSize=1}else{argSize=2}break;case"l":var nextNext=HEAP8[textIndex+2>>0];if(nextNext==108){textIndex++;argSize=8}else{argSize=4}break;case"L":case"q":case"j":argSize=8;break;case"z":case"t":case"I":argSize=4;break;default:argSize=null}if(argSize)textIndex++;next=HEAP8[textIndex+1>>0];switch(String.fromCharCode(next)){case"d":case"i":case"u":case"o":case"x":case"X":case"p":{var signed=next==100||next==105;argSize=argSize||4;currArg=getNextArg("i"+argSize*8);var argText;if(argSize==8){currArg=next==117?convertU32PairToI53(currArg[0],currArg[1]):convertI32PairToI53(currArg[0],currArg[1])}if(argSize<=4){var limit=Math.pow(256,argSize)-1;currArg=(signed?reSign:unSign)(currArg&limit,argSize*8)}var currAbsArg=Math.abs(currArg);var prefix="";if(next==100||next==105){argText=reSign(currArg,8*argSize,1).toString(10)}else if(next==117){argText=unSign(currArg,8*argSize,1).toString(10);currArg=Math.abs(currArg)}else if(next==111){argText=(flagAlternative?"0":"")+currAbsArg.toString(8)}else if(next==120||next==88){prefix=flagAlternative&&currArg!=0?"0x":"";if(currArg<0){currArg=-currArg;argText=(currAbsArg-1).toString(16);var buffer=[];for(var i=0;i=0){if(flagAlwaysSigned){prefix="+"+prefix}else if(flagPadSign){prefix=" "+prefix}}if(argText.charAt(0)=="-"){prefix="-"+prefix;argText=argText.substr(1)}while(prefix.length+argText.lengthexponent&&exponent>=-4){next=(next==103?"f":"F").charCodeAt(0);precision-=exponent+1}else{next=(next==103?"e":"E").charCodeAt(0);precision--}effectivePrecision=Math.min(precision,20)}if(next==101||next==69){argText=currArg.toExponential(effectivePrecision);if(/[eE][-+]\d$/.test(argText)){argText=argText.slice(0,-1)+"0"+argText.slice(-1)}}else if(next==102||next==70){argText=currArg.toFixed(effectivePrecision);if(currArg===0&&reallyNegative(currArg)){argText="-"+argText}}var parts=argText.split("e");if(isGeneral&&!flagAlternative){while(parts[0].length>1&&parts[0].includes(".")&&(parts[0].slice(-1)=="0"||parts[0].slice(-1)==".")){parts[0]=parts[0].slice(0,-1)}}else{if(flagAlternative&&argText.indexOf(".")==-1)parts[0]+=".";while(precision>effectivePrecision++)parts[0]+="0"}argText=parts[0]+(parts.length>1?"e"+parts[1]:"");if(next==69)argText=argText.toUpperCase();if(currArg>=0){if(flagAlwaysSigned){argText="+"+argText}else if(flagPadSign){argText=" "+argText}}}while(argText.length>0])}}else{ret=ret.concat(intArrayFromString("(null)".substr(0,argLength),true))}if(flagLeftAlign){while(argLength0){ret.push(32)}if(!flagLeftAlign)ret.push(getNextArg("i8"));break}case"n":{var ptr=getNextArg("i32*");HEAP32[ptr>>2]=ret.length;break}case"%":{ret.push(curr);break}default:{for(var i=startTextIndex;i>0])}}}textIndex+=2}else{ret.push(curr);textIndex+=1}}return ret}Module["formatString"]=formatString;function _emscripten_log(flags,format,varargs){var result=formatString(format,varargs);var str=UTF8ArrayToString(result,0);_emscripten_log_js(flags,str)}Module["_emscripten_log"]=_emscripten_log;function _emscripten_get_compiler_setting(name){throw"You must build with -s RETAIN_COMPILER_SETTINGS=1 for getCompilerSetting or emscripten_get_compiler_setting to work"}Module["_emscripten_get_compiler_setting"]=_emscripten_get_compiler_setting;function _emscripten_has_asyncify(){return 0}Module["_emscripten_has_asyncify"]=_emscripten_has_asyncify;function _emscripten_debugger(){debugger}Module["_emscripten_debugger"]=_emscripten_debugger;function _emscripten_print_double(x,to,max){var str=x+"";if(to)return stringToUTF8(str,to,max);else return lengthBytesUTF8(str)}Module["_emscripten_print_double"]=_emscripten_print_double;function _emscripten_generate_pc(frame){abort("Cannot use emscripten_generate_pc (needed by __builtin_return_address) without -s USE_OFFSET_CONVERTER")}Module["_emscripten_generate_pc"]=_emscripten_generate_pc;function _emscripten_return_address(level){var callstack=(new Error).stack.split("\n");if(callstack[0]=="Error"){callstack.shift()}return _emscripten_generate_pc(callstack[level+2])}Module["_emscripten_return_address"]=_emscripten_return_address;var UNWIND_CACHE={};Module["UNWIND_CACHE"]=UNWIND_CACHE;function __emscripten_save_in_unwind_cache(callstack){callstack.forEach(function(frame){var pc=_emscripten_generate_pc(frame);if(pc){UNWIND_CACHE[pc]=frame}})}Module["__emscripten_save_in_unwind_cache"]=__emscripten_save_in_unwind_cache;function _emscripten_stack_snapshot(){var callstack=(new Error).stack.split("\n");if(callstack[0]=="Error"){callstack.shift()}__emscripten_save_in_unwind_cache(callstack);UNWIND_CACHE.last_addr=_emscripten_generate_pc(callstack[2]);UNWIND_CACHE.last_stack=callstack;return UNWIND_CACHE.last_addr}Module["_emscripten_stack_snapshot"]=_emscripten_stack_snapshot;function _emscripten_stack_unwind_buffer(addr,buffer,count){var stack;if(UNWIND_CACHE.last_addr==addr){stack=UNWIND_CACHE.last_stack}else{stack=(new Error).stack.split("\n");if(stack[0]=="Error"){stack.shift()}__emscripten_save_in_unwind_cache(stack)}var offset=2;while(stack[offset]&&_emscripten_generate_pc(stack[offset])!=addr){++offset}for(var i=0;i>2]=_emscripten_generate_pc(stack[i+offset])}return i}Module["_emscripten_stack_unwind_buffer"]=_emscripten_stack_unwind_buffer;function _emscripten_pc_get_function(pc){abort("Cannot use emscripten_pc_get_function without -s USE_OFFSET_CONVERTER")}Module["_emscripten_pc_get_function"]=_emscripten_pc_get_function;function _emscripten_pc_get_source_js(pc){if(UNWIND_CACHE.last_get_source_pc==pc)return UNWIND_CACHE.last_source;var match;var source;if(!source){var frame=UNWIND_CACHE[pc];if(!frame)return null;if(match=/\((.*):(\d+):(\d+)\)$/.exec(frame)){source={file:match[1],line:match[2],column:match[3]}}else if(match=/@(.*):(\d+):(\d+)/.exec(frame)){source={file:match[1],line:match[2],column:match[3]}}}UNWIND_CACHE.last_get_source_pc=pc;UNWIND_CACHE.last_source=source;return source}Module["_emscripten_pc_get_source_js"]=_emscripten_pc_get_source_js;function withBuiltinMalloc(func){var prev_malloc=typeof _malloc!=="undefined"?_malloc:undefined;var prev_memalign=typeof _memalign!=="undefined"?_memalign:undefined;var prev_free=typeof _free!=="undefined"?_free:undefined;_malloc=_emscripten_builtin_malloc;_memalign=_emscripten_builtin_memalign;_free=_emscripten_builtin_free;try{return func()}finally{_malloc=prev_malloc;_memalign=prev_memalign;_free=prev_free}}Module["withBuiltinMalloc"]=withBuiltinMalloc;function _emscripten_pc_get_file(pc){var result=_emscripten_pc_get_source_js(pc);if(!result)return 0;withBuiltinMalloc(function(){if(_emscripten_pc_get_file.ret)_free(_emscripten_pc_get_file.ret);_emscripten_pc_get_file.ret=allocateUTF8(result.file)});return _emscripten_pc_get_file.ret}Module["_emscripten_pc_get_file"]=_emscripten_pc_get_file;function _emscripten_pc_get_line(pc){var result=_emscripten_pc_get_source_js(pc);return result?result.line:0}Module["_emscripten_pc_get_line"]=_emscripten_pc_get_line;function _emscripten_pc_get_column(pc){var result=_emscripten_pc_get_source_js(pc);return result?result.column||0:0}Module["_emscripten_pc_get_column"]=_emscripten_pc_get_column;function _emscripten_get_module_name(buf,length){return stringToUTF8(wasmBinaryFile,buf,length)}Module["_emscripten_get_module_name"]=_emscripten_get_module_name;function _emscripten_builtin_mmap2(addr,len,prot,flags,fd,off){return withBuiltinMalloc(function(){return syscallMmap2(addr,len,prot,flags,fd,off)})}Module["_emscripten_builtin_mmap2"]=_emscripten_builtin_mmap2;function _emscripten_builtin_munmap(addr,len){return withBuiltinMalloc(function(){return syscallMunmap(addr,len)})}Module["_emscripten_builtin_munmap"]=_emscripten_builtin_munmap;function _emscripten_asm_const_double(a0,a1,a2){return _emscripten_asm_const_int(a0,a1,a2)}Module["_emscripten_asm_const_double"]=_emscripten_asm_const_double;_emscripten_asm_const_double.sig="iiii";function mainThreadEM_ASM(code,sigPtr,argbuf,sync){code-=1024;var args=readAsmConstArgs(sigPtr,argbuf);return ASM_CONSTS[code].apply(null,args)}Module["mainThreadEM_ASM"]=mainThreadEM_ASM;function _emscripten_asm_const_int_sync_on_main_thread(code,sigPtr,argbuf){return mainThreadEM_ASM(code,sigPtr,argbuf,1)}Module["_emscripten_asm_const_int_sync_on_main_thread"]=_emscripten_asm_const_int_sync_on_main_thread;_emscripten_asm_const_int_sync_on_main_thread.sig="iiii";function _emscripten_asm_const_double_sync_on_main_thread(a0,a1,a2){return _emscripten_asm_const_int_sync_on_main_thread(a0,a1,a2)}Module["_emscripten_asm_const_double_sync_on_main_thread"]=_emscripten_asm_const_double_sync_on_main_thread;_emscripten_asm_const_double_sync_on_main_thread.sig="iiii";function _emscripten_asm_const_async_on_main_thread(code,sigPtr,argbuf){return mainThreadEM_ASM(code,sigPtr,argbuf,0)}Module["_emscripten_asm_const_async_on_main_thread"]=_emscripten_asm_const_async_on_main_thread;function jstoi_s(str){return Number(str)}Module["jstoi_s"]=jstoi_s;function __Unwind_Backtrace(func,arg){var trace=_emscripten_get_callstack_js();var parts=trace.split("\n");for(var i=0;i>3)+i]);return Math.hypot.apply(null,args)}Module["_emscripten_math_hypot"]=_emscripten_math_hypot;function _emscripten_math_sin(x){return Math.sin(x)}Module["_emscripten_math_sin"]=_emscripten_math_sin;function _emscripten_math_sinh(x){return Math.sinh(x)}Module["_emscripten_math_sinh"]=_emscripten_math_sinh;function _emscripten_math_tan(x){return Math.tan(x)}Module["_emscripten_math_tan"]=_emscripten_math_tan;function _emscripten_math_tanh(x){return Math.tanh(x)}Module["_emscripten_math_tanh"]=_emscripten_math_tanh;function _sigaction(a0,a1,a2){return ___sigaction(a0,a1,a2)}Module["_sigaction"]=_sigaction;_sigaction.sig="viii";function ___sys_getpgrp(){return 42}Module["___sys_getpgrp"]=___sys_getpgrp;function ___sys_rt_sigqueueinfo(tgid,pid,uinfo){try{return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}Module["___sys_rt_sigqueueinfo"]=___sys_rt_sigqueueinfo;function ___sys_setregid32(ruid,euid){if(ruid!==0)return-63;return 0}Module["___sys_setregid32"]=___sys_setregid32;___sys_setregid32.sig="iii";function ___sys_setreuid32(a0,a1){return ___sys_setregid32(a0,a1)}Module["___sys_setreuid32"]=___sys_setreuid32;___sys_setreuid32.sig="iii";function ___sys_setgid32(uid){if(uid!==0)return-63;return 0}Module["___sys_setgid32"]=___sys_setgid32;___sys_setgid32.sig="ii";function ___sys_setuid32(a0){return ___sys_setgid32(a0)}Module["___sys_setuid32"]=___sys_setuid32;___sys_setuid32.sig="ii";function ___sys_setresgid32(ruid,euid,suid){if(euid!==0)return-63;return 0}Module["___sys_setresgid32"]=___sys_setresgid32;___sys_setresgid32.sig="iiii";function ___sys_setresuid32(a0,a1,a2){return ___sys_setresgid32(a0,a1,a2)}Module["___sys_setresuid32"]=___sys_setresuid32;___sys_setresuid32.sig="iiii";function ___sys_faccessat(dirfd,path,amode,flags){try{path=SYSCALLS.getStr(path);path=SYSCALLS.calculateAt(dirfd,path);return SYSCALLS.doAccess(path,amode)}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}Module["___sys_faccessat"]=___sys_faccessat;var JSEvents={inEventHandler:0,removeAllEventListeners:function(){for(var i=JSEvents.eventHandlers.length-1;i>=0;--i){JSEvents._removeHandler(i)}JSEvents.eventHandlers=[];JSEvents.deferredCalls=[]},registerRemoveEventListeners:function(){if(!JSEvents.removeEventListenersRegistered){__ATEXIT__.push(JSEvents.removeAllEventListeners);JSEvents.removeEventListenersRegistered=true}},deferredCalls:[],deferCall:function(targetFunction,precedence,argsList){function arraysHaveEqualContent(arrA,arrB){if(arrA.length!=arrB.length)return false;for(var i in arrA){if(arrA[i]!=arrB[i])return false}return true}for(var i in JSEvents.deferredCalls){var call=JSEvents.deferredCalls[i];if(call.targetFunction==targetFunction&&arraysHaveEqualContent(call.argsList,argsList)){return}}JSEvents.deferredCalls.push({targetFunction:targetFunction,precedence:precedence,argsList:argsList});JSEvents.deferredCalls.sort(function(x,y){return x.precedence2?UTF8ToString(cString):cString}Module["maybeCStringToJsString"]=maybeCStringToJsString;var specialHTMLTargets=[0,typeof document!=="undefined"?document:0,typeof window!=="undefined"?window:0];Module["specialHTMLTargets"]=specialHTMLTargets;function findEventTarget(target){target=maybeCStringToJsString(target);var domElement=specialHTMLTargets[target]||(typeof document!=="undefined"?document.querySelector(target):undefined);return domElement}Module["findEventTarget"]=findEventTarget;function registerKeyEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.keyEvent)JSEvents.keyEvent=_malloc(176);var keyEventHandlerFunc=function(e){var keyEventData=JSEvents.keyEvent;HEAPF64[keyEventData>>3]=e.timeStamp;var idx=keyEventData>>2;HEAP32[idx+2]=e.location;HEAP32[idx+3]=e.ctrlKey;HEAP32[idx+4]=e.shiftKey;HEAP32[idx+5]=e.altKey;HEAP32[idx+6]=e.metaKey;HEAP32[idx+7]=e.repeat;HEAP32[idx+8]=e.charCode;HEAP32[idx+9]=e.keyCode;HEAP32[idx+10]=e.which;stringToUTF8(e.key||"",keyEventData+44,32);stringToUTF8(e.code||"",keyEventData+76,32);stringToUTF8(e.char||"",keyEventData+108,32);stringToUTF8(e.locale||"",keyEventData+140,32);if(wasmTable.get(callbackfunc)(eventTypeId,keyEventData,userData))e.preventDefault()};var eventHandler={target:findEventTarget(target),allowsDeferredCalls:true,eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:keyEventHandlerFunc,useCapture:useCapture};JSEvents.registerOrRemoveHandler(eventHandler)}Module["registerKeyEventCallback"]=registerKeyEventCallback;function findCanvasEventTarget(target){return findEventTarget(target)}Module["findCanvasEventTarget"]=findCanvasEventTarget;function _emscripten_set_keypress_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerKeyEventCallback(target,userData,useCapture,callbackfunc,1,"keypress",targetThread);return 0}Module["_emscripten_set_keypress_callback_on_thread"]=_emscripten_set_keypress_callback_on_thread;_emscripten_set_keypress_callback_on_thread.sig="iiiiii";function _emscripten_set_keydown_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerKeyEventCallback(target,userData,useCapture,callbackfunc,2,"keydown",targetThread);return 0}Module["_emscripten_set_keydown_callback_on_thread"]=_emscripten_set_keydown_callback_on_thread;_emscripten_set_keydown_callback_on_thread.sig="iiiiii";function _emscripten_set_keyup_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerKeyEventCallback(target,userData,useCapture,callbackfunc,3,"keyup",targetThread);return 0}Module["_emscripten_set_keyup_callback_on_thread"]=_emscripten_set_keyup_callback_on_thread;_emscripten_set_keyup_callback_on_thread.sig="iiiiii";function getBoundingClientRect(e){return specialHTMLTargets.indexOf(e)<0?e.getBoundingClientRect():{"left":0,"top":0}}Module["getBoundingClientRect"]=getBoundingClientRect;function fillMouseEventData(eventStruct,e,target){HEAPF64[eventStruct>>3]=e.timeStamp;var idx=eventStruct>>2;HEAP32[idx+2]=e.screenX;HEAP32[idx+3]=e.screenY;HEAP32[idx+4]=e.clientX;HEAP32[idx+5]=e.clientY;HEAP32[idx+6]=e.ctrlKey;HEAP32[idx+7]=e.shiftKey;HEAP32[idx+8]=e.altKey;HEAP32[idx+9]=e.metaKey;HEAP16[idx*2+20]=e.button;HEAP16[idx*2+21]=e.buttons;HEAP32[idx+11]=e["movementX"];HEAP32[idx+12]=e["movementY"];var rect=getBoundingClientRect(target);HEAP32[idx+13]=e.clientX-rect.left;HEAP32[idx+14]=e.clientY-rect.top}Module["fillMouseEventData"]=fillMouseEventData;function registerMouseEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.mouseEvent)JSEvents.mouseEvent=_malloc(72);target=findEventTarget(target);var mouseEventHandlerFunc=function(ev){var e=ev||event;fillMouseEventData(JSEvents.mouseEvent,e,target);if(wasmTable.get(callbackfunc)(eventTypeId,JSEvents.mouseEvent,userData))e.preventDefault()};var eventHandler={target:target,allowsDeferredCalls:eventTypeString!="mousemove"&&eventTypeString!="mouseenter"&&eventTypeString!="mouseleave",eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:mouseEventHandlerFunc,useCapture:useCapture};JSEvents.registerOrRemoveHandler(eventHandler)}Module["registerMouseEventCallback"]=registerMouseEventCallback;function _emscripten_set_click_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerMouseEventCallback(target,userData,useCapture,callbackfunc,4,"click",targetThread);return 0}Module["_emscripten_set_click_callback_on_thread"]=_emscripten_set_click_callback_on_thread;_emscripten_set_click_callback_on_thread.sig="iiiiii";function _emscripten_set_mousedown_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerMouseEventCallback(target,userData,useCapture,callbackfunc,5,"mousedown",targetThread);return 0}Module["_emscripten_set_mousedown_callback_on_thread"]=_emscripten_set_mousedown_callback_on_thread;_emscripten_set_mousedown_callback_on_thread.sig="iiiiii";function _emscripten_set_mouseup_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerMouseEventCallback(target,userData,useCapture,callbackfunc,6,"mouseup",targetThread);return 0}Module["_emscripten_set_mouseup_callback_on_thread"]=_emscripten_set_mouseup_callback_on_thread;_emscripten_set_mouseup_callback_on_thread.sig="iiiiii";function _emscripten_set_dblclick_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerMouseEventCallback(target,userData,useCapture,callbackfunc,7,"dblclick",targetThread);return 0}Module["_emscripten_set_dblclick_callback_on_thread"]=_emscripten_set_dblclick_callback_on_thread;_emscripten_set_dblclick_callback_on_thread.sig="iiiiii";function _emscripten_set_mousemove_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerMouseEventCallback(target,userData,useCapture,callbackfunc,8,"mousemove",targetThread);return 0}Module["_emscripten_set_mousemove_callback_on_thread"]=_emscripten_set_mousemove_callback_on_thread;_emscripten_set_mousemove_callback_on_thread.sig="iiiiii";function _emscripten_set_mouseenter_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerMouseEventCallback(target,userData,useCapture,callbackfunc,33,"mouseenter",targetThread);return 0}Module["_emscripten_set_mouseenter_callback_on_thread"]=_emscripten_set_mouseenter_callback_on_thread;_emscripten_set_mouseenter_callback_on_thread.sig="iiiiii";function _emscripten_set_mouseleave_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerMouseEventCallback(target,userData,useCapture,callbackfunc,34,"mouseleave",targetThread);return 0}Module["_emscripten_set_mouseleave_callback_on_thread"]=_emscripten_set_mouseleave_callback_on_thread;_emscripten_set_mouseleave_callback_on_thread.sig="iiiiii";function _emscripten_set_mouseover_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerMouseEventCallback(target,userData,useCapture,callbackfunc,35,"mouseover",targetThread);return 0}Module["_emscripten_set_mouseover_callback_on_thread"]=_emscripten_set_mouseover_callback_on_thread;_emscripten_set_mouseover_callback_on_thread.sig="iiiiii";function _emscripten_set_mouseout_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerMouseEventCallback(target,userData,useCapture,callbackfunc,36,"mouseout",targetThread);return 0}Module["_emscripten_set_mouseout_callback_on_thread"]=_emscripten_set_mouseout_callback_on_thread;_emscripten_set_mouseout_callback_on_thread.sig="iiiiii";function _emscripten_get_mouse_status(mouseState){if(!JSEvents.mouseEvent)return-7;HEAP8.set(HEAP8.subarray(JSEvents.mouseEvent,JSEvents.mouseEvent+72),mouseState);return 0}Module["_emscripten_get_mouse_status"]=_emscripten_get_mouse_status;_emscripten_get_mouse_status.sig="ii";function registerWheelEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.wheelEvent)JSEvents.wheelEvent=_malloc(104);var wheelHandlerFunc=function(ev){var e=ev||event;var wheelEvent=JSEvents.wheelEvent;fillMouseEventData(wheelEvent,e,target);HEAPF64[wheelEvent+72>>3]=e["deltaX"];HEAPF64[wheelEvent+80>>3]=e["deltaY"];HEAPF64[wheelEvent+88>>3]=e["deltaZ"];HEAP32[wheelEvent+96>>2]=e["deltaMode"];if(wasmTable.get(callbackfunc)(eventTypeId,wheelEvent,userData))e.preventDefault()};var eventHandler={target:target,allowsDeferredCalls:true,eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:wheelHandlerFunc,useCapture:useCapture};JSEvents.registerOrRemoveHandler(eventHandler)}Module["registerWheelEventCallback"]=registerWheelEventCallback;function _emscripten_set_wheel_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){target=findEventTarget(target);if(typeof target.onwheel!=="undefined"){registerWheelEventCallback(target,userData,useCapture,callbackfunc,9,"wheel",targetThread);return 0}else{return-1}}Module["_emscripten_set_wheel_callback_on_thread"]=_emscripten_set_wheel_callback_on_thread;_emscripten_set_wheel_callback_on_thread.sig="iiiiii";function registerUiEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.uiEvent)JSEvents.uiEvent=_malloc(36);target=findEventTarget(target);var uiEventHandlerFunc=function(ev){var e=ev||event;if(e.target!=target){return}var b=document.body;if(!b){return}var uiEvent=JSEvents.uiEvent;HEAP32[uiEvent>>2]=e.detail;HEAP32[uiEvent+4>>2]=b.clientWidth;HEAP32[uiEvent+8>>2]=b.clientHeight;HEAP32[uiEvent+12>>2]=innerWidth;HEAP32[uiEvent+16>>2]=innerHeight;HEAP32[uiEvent+20>>2]=outerWidth;HEAP32[uiEvent+24>>2]=outerHeight;HEAP32[uiEvent+28>>2]=pageXOffset;HEAP32[uiEvent+32>>2]=pageYOffset;if(wasmTable.get(callbackfunc)(eventTypeId,uiEvent,userData))e.preventDefault()};var eventHandler={target:target,eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:uiEventHandlerFunc,useCapture:useCapture};JSEvents.registerOrRemoveHandler(eventHandler)}Module["registerUiEventCallback"]=registerUiEventCallback;function _emscripten_set_resize_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerUiEventCallback(target,userData,useCapture,callbackfunc,10,"resize",targetThread);return 0}Module["_emscripten_set_resize_callback_on_thread"]=_emscripten_set_resize_callback_on_thread;_emscripten_set_resize_callback_on_thread.sig="iiiiii";function _emscripten_set_scroll_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerUiEventCallback(target,userData,useCapture,callbackfunc,11,"scroll",targetThread);return 0}Module["_emscripten_set_scroll_callback_on_thread"]=_emscripten_set_scroll_callback_on_thread;_emscripten_set_scroll_callback_on_thread.sig="iiiiii";function registerFocusEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.focusEvent)JSEvents.focusEvent=_malloc(256);var focusEventHandlerFunc=function(ev){var e=ev||event;var nodeName=JSEvents.getNodeNameForTarget(e.target);var id=e.target.id?e.target.id:"";var focusEvent=JSEvents.focusEvent;stringToUTF8(nodeName,focusEvent+0,128);stringToUTF8(id,focusEvent+128,128);if(wasmTable.get(callbackfunc)(eventTypeId,focusEvent,userData))e.preventDefault()};var eventHandler={target:findEventTarget(target),eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:focusEventHandlerFunc,useCapture:useCapture};JSEvents.registerOrRemoveHandler(eventHandler)}Module["registerFocusEventCallback"]=registerFocusEventCallback;function _emscripten_set_blur_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerFocusEventCallback(target,userData,useCapture,callbackfunc,12,"blur",targetThread);return 0}Module["_emscripten_set_blur_callback_on_thread"]=_emscripten_set_blur_callback_on_thread;_emscripten_set_blur_callback_on_thread.sig="iiiiii";function _emscripten_set_focus_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerFocusEventCallback(target,userData,useCapture,callbackfunc,13,"focus",targetThread);return 0}Module["_emscripten_set_focus_callback_on_thread"]=_emscripten_set_focus_callback_on_thread;_emscripten_set_focus_callback_on_thread.sig="iiiiii";function _emscripten_set_focusin_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerFocusEventCallback(target,userData,useCapture,callbackfunc,14,"focusin",targetThread);return 0}Module["_emscripten_set_focusin_callback_on_thread"]=_emscripten_set_focusin_callback_on_thread;_emscripten_set_focusin_callback_on_thread.sig="iiiiii";function _emscripten_set_focusout_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerFocusEventCallback(target,userData,useCapture,callbackfunc,15,"focusout",targetThread);return 0}Module["_emscripten_set_focusout_callback_on_thread"]=_emscripten_set_focusout_callback_on_thread;_emscripten_set_focusout_callback_on_thread.sig="iiiiii";function fillDeviceOrientationEventData(eventStruct,e,target){HEAPF64[eventStruct>>3]=e.alpha;HEAPF64[eventStruct+8>>3]=e.beta;HEAPF64[eventStruct+16>>3]=e.gamma;HEAP32[eventStruct+24>>2]=e.absolute}Module["fillDeviceOrientationEventData"]=fillDeviceOrientationEventData;function registerDeviceOrientationEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.deviceOrientationEvent)JSEvents.deviceOrientationEvent=_malloc(32);var deviceOrientationEventHandlerFunc=function(ev){var e=ev||event;fillDeviceOrientationEventData(JSEvents.deviceOrientationEvent,e,target);if(wasmTable.get(callbackfunc)(eventTypeId,JSEvents.deviceOrientationEvent,userData))e.preventDefault()};var eventHandler={target:findEventTarget(target),eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:deviceOrientationEventHandlerFunc,useCapture:useCapture};JSEvents.registerOrRemoveHandler(eventHandler)}Module["registerDeviceOrientationEventCallback"]=registerDeviceOrientationEventCallback;function _emscripten_set_deviceorientation_callback_on_thread(userData,useCapture,callbackfunc,targetThread){registerDeviceOrientationEventCallback(2,userData,useCapture,callbackfunc,16,"deviceorientation",targetThread);return 0}Module["_emscripten_set_deviceorientation_callback_on_thread"]=_emscripten_set_deviceorientation_callback_on_thread;_emscripten_set_deviceorientation_callback_on_thread.sig="iiiii";function _emscripten_get_deviceorientation_status(orientationState){if(!JSEvents.deviceOrientationEvent)return-7;HEAP32.set(HEAP32.subarray(JSEvents.deviceOrientationEvent,32),orientationState);return 0}Module["_emscripten_get_deviceorientation_status"]=_emscripten_get_deviceorientation_status;_emscripten_get_deviceorientation_status.sig="ii";function fillDeviceMotionEventData(eventStruct,e,target){var supportedFields=0;var a=e["acceleration"];supportedFields|=a&&1;var ag=e["accelerationIncludingGravity"];supportedFields|=ag&&2;var rr=e["rotationRate"];supportedFields|=rr&&4;a=a||{};ag=ag||{};rr=rr||{};HEAPF64[eventStruct>>3]=a["x"];HEAPF64[eventStruct+8>>3]=a["y"];HEAPF64[eventStruct+16>>3]=a["z"];HEAPF64[eventStruct+24>>3]=ag["x"];HEAPF64[eventStruct+32>>3]=ag["y"];HEAPF64[eventStruct+40>>3]=ag["z"];HEAPF64[eventStruct+48>>3]=rr["alpha"];HEAPF64[eventStruct+56>>3]=rr["beta"];HEAPF64[eventStruct+64>>3]=rr["gamma"]}Module["fillDeviceMotionEventData"]=fillDeviceMotionEventData;function registerDeviceMotionEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.deviceMotionEvent)JSEvents.deviceMotionEvent=_malloc(80);var deviceMotionEventHandlerFunc=function(ev){var e=ev||event;fillDeviceMotionEventData(JSEvents.deviceMotionEvent,e,target);if(wasmTable.get(callbackfunc)(eventTypeId,JSEvents.deviceMotionEvent,userData))e.preventDefault()};var eventHandler={target:findEventTarget(target),eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:deviceMotionEventHandlerFunc,useCapture:useCapture};JSEvents.registerOrRemoveHandler(eventHandler)}Module["registerDeviceMotionEventCallback"]=registerDeviceMotionEventCallback;function _emscripten_set_devicemotion_callback_on_thread(userData,useCapture,callbackfunc,targetThread){registerDeviceMotionEventCallback(2,userData,useCapture,callbackfunc,17,"devicemotion",targetThread);return 0}Module["_emscripten_set_devicemotion_callback_on_thread"]=_emscripten_set_devicemotion_callback_on_thread;_emscripten_set_devicemotion_callback_on_thread.sig="iiiii";function _emscripten_get_devicemotion_status(motionState){if(!JSEvents.deviceMotionEvent)return-7;HEAP32.set(HEAP32.subarray(JSEvents.deviceMotionEvent,80),motionState);return 0}Module["_emscripten_get_devicemotion_status"]=_emscripten_get_devicemotion_status;_emscripten_get_devicemotion_status.sig="ii";function screenOrientation(){if(!screen)return undefined;return screen.orientation||screen.mozOrientation||screen.webkitOrientation||screen.msOrientation}Module["screenOrientation"]=screenOrientation;function fillOrientationChangeEventData(eventStruct){var orientations=["portrait-primary","portrait-secondary","landscape-primary","landscape-secondary"];var orientations2=["portrait","portrait","landscape","landscape"];var orientationString=screenOrientation();var orientation=orientations.indexOf(orientationString);if(orientation==-1){orientation=orientations2.indexOf(orientationString)}HEAP32[eventStruct>>2]=1<>2]=orientation}Module["fillOrientationChangeEventData"]=fillOrientationChangeEventData;function registerOrientationChangeEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.orientationChangeEvent)JSEvents.orientationChangeEvent=_malloc(8);var orientationChangeEventHandlerFunc=function(ev){var e=ev||event;var orientationChangeEvent=JSEvents.orientationChangeEvent;fillOrientationChangeEventData(orientationChangeEvent);if(wasmTable.get(callbackfunc)(eventTypeId,orientationChangeEvent,userData))e.preventDefault()};if(eventTypeString=="orientationchange"&&screen.mozOrientation!==undefined){eventTypeString="mozorientationchange"}var eventHandler={target:target,eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:orientationChangeEventHandlerFunc,useCapture:useCapture};JSEvents.registerOrRemoveHandler(eventHandler)}Module["registerOrientationChangeEventCallback"]=registerOrientationChangeEventCallback;function _emscripten_set_orientationchange_callback_on_thread(userData,useCapture,callbackfunc,targetThread){if(!screen||!screen["addEventListener"])return-1;registerOrientationChangeEventCallback(screen,userData,useCapture,callbackfunc,18,"orientationchange",targetThread);return 0}Module["_emscripten_set_orientationchange_callback_on_thread"]=_emscripten_set_orientationchange_callback_on_thread;_emscripten_set_orientationchange_callback_on_thread.sig="iiiii";function _emscripten_get_orientation_status(orientationChangeEvent){if(!screenOrientation()&&typeof orientation==="undefined")return-1;fillOrientationChangeEventData(orientationChangeEvent);return 0}Module["_emscripten_get_orientation_status"]=_emscripten_get_orientation_status;_emscripten_get_orientation_status.sig="ii";function _emscripten_lock_orientation(allowedOrientations){var orientations=[];if(allowedOrientations&1)orientations.push("portrait-primary");if(allowedOrientations&2)orientations.push("portrait-secondary");if(allowedOrientations&4)orientations.push("landscape-primary");if(allowedOrientations&8)orientations.push("landscape-secondary");var succeeded;if(screen.lockOrientation){succeeded=screen.lockOrientation(orientations)}else if(screen.mozLockOrientation){succeeded=screen.mozLockOrientation(orientations)}else if(screen.webkitLockOrientation){succeeded=screen.webkitLockOrientation(orientations)}else if(screen.msLockOrientation){succeeded=screen.msLockOrientation(orientations)}else{return-1}if(succeeded){return 0}else{return-6}}Module["_emscripten_lock_orientation"]=_emscripten_lock_orientation;_emscripten_lock_orientation.sig="ii";function _emscripten_unlock_orientation(){if(screen.unlockOrientation){screen.unlockOrientation()}else if(screen.mozUnlockOrientation){screen.mozUnlockOrientation()}else if(screen.webkitUnlockOrientation){screen.webkitUnlockOrientation()}else if(screen.msUnlockOrientation){screen.msUnlockOrientation()}else{return-1}return 0}Module["_emscripten_unlock_orientation"]=_emscripten_unlock_orientation;_emscripten_unlock_orientation.sig="i";function fillFullscreenChangeEventData(eventStruct){var fullscreenElement=document.fullscreenElement||document.mozFullScreenElement||document.webkitFullscreenElement||document.msFullscreenElement;var isFullscreen=!!fullscreenElement;HEAP32[eventStruct>>2]=isFullscreen;HEAP32[eventStruct+4>>2]=JSEvents.fullscreenEnabled();var reportedElement=isFullscreen?fullscreenElement:JSEvents.previousFullscreenElement;var nodeName=JSEvents.getNodeNameForTarget(reportedElement);var id=reportedElement&&reportedElement.id?reportedElement.id:"";stringToUTF8(nodeName,eventStruct+8,128);stringToUTF8(id,eventStruct+136,128);HEAP32[eventStruct+264>>2]=reportedElement?reportedElement.clientWidth:0;HEAP32[eventStruct+268>>2]=reportedElement?reportedElement.clientHeight:0;HEAP32[eventStruct+272>>2]=screen.width;HEAP32[eventStruct+276>>2]=screen.height;if(isFullscreen){JSEvents.previousFullscreenElement=fullscreenElement}}Module["fillFullscreenChangeEventData"]=fillFullscreenChangeEventData;function registerFullscreenChangeEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.fullscreenChangeEvent)JSEvents.fullscreenChangeEvent=_malloc(280);var fullscreenChangeEventhandlerFunc=function(ev){var e=ev||event;var fullscreenChangeEvent=JSEvents.fullscreenChangeEvent;fillFullscreenChangeEventData(fullscreenChangeEvent);if(wasmTable.get(callbackfunc)(eventTypeId,fullscreenChangeEvent,userData))e.preventDefault()};var eventHandler={target:target,eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:fullscreenChangeEventhandlerFunc,useCapture:useCapture};JSEvents.registerOrRemoveHandler(eventHandler)}Module["registerFullscreenChangeEventCallback"]=registerFullscreenChangeEventCallback;function _emscripten_set_fullscreenchange_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){if(!JSEvents.fullscreenEnabled())return-1;target=findEventTarget(target);if(!target)return-4;registerFullscreenChangeEventCallback(target,userData,useCapture,callbackfunc,19,"fullscreenchange",targetThread);registerFullscreenChangeEventCallback(target,userData,useCapture,callbackfunc,19,"webkitfullscreenchange",targetThread);return 0}Module["_emscripten_set_fullscreenchange_callback_on_thread"]=_emscripten_set_fullscreenchange_callback_on_thread;_emscripten_set_fullscreenchange_callback_on_thread.sig="iiiiii";function _emscripten_get_fullscreen_status(fullscreenStatus){if(!JSEvents.fullscreenEnabled())return-1;fillFullscreenChangeEventData(fullscreenStatus);return 0}Module["_emscripten_get_fullscreen_status"]=_emscripten_get_fullscreen_status;_emscripten_get_fullscreen_status.sig="ii";function _emscripten_get_canvas_element_size(target,width,height){var canvas=findCanvasEventTarget(target);if(!canvas)return-4;HEAP32[width>>2]=canvas.width;HEAP32[height>>2]=canvas.height}Module["_emscripten_get_canvas_element_size"]=_emscripten_get_canvas_element_size;function getCanvasElementSize(target){var stackTop=stackSave();var w=stackAlloc(8);var h=w+4;var targetInt=stackAlloc(target.id.length+1);stringToUTF8(target.id,targetInt,target.id.length+1);var ret=_emscripten_get_canvas_element_size(targetInt,w,h);var size=[HEAP32[w>>2],HEAP32[h>>2]];stackRestore(stackTop);return size}Module["getCanvasElementSize"]=getCanvasElementSize;function _emscripten_set_canvas_element_size(target,width,height){var canvas=findCanvasEventTarget(target);if(!canvas)return-4;canvas.width=width;canvas.height=height;return 0}Module["_emscripten_set_canvas_element_size"]=_emscripten_set_canvas_element_size;_emscripten_set_canvas_element_size.sig="iiii";function setCanvasElementSize(target,width,height){if(!target.controlTransferredOffscreen){target.width=width;target.height=height}else{var stackTop=stackSave();var targetInt=stackAlloc(target.id.length+1);stringToUTF8(target.id,targetInt,target.id.length+1);_emscripten_set_canvas_element_size(targetInt,width,height);stackRestore(stackTop)}}Module["setCanvasElementSize"]=setCanvasElementSize;function registerRestoreOldStyle(canvas){var canvasSize=getCanvasElementSize(canvas);var oldWidth=canvasSize[0];var oldHeight=canvasSize[1];var oldCssWidth=canvas.style.width;var oldCssHeight=canvas.style.height;var oldBackgroundColor=canvas.style.backgroundColor;var oldDocumentBackgroundColor=document.body.style.backgroundColor;var oldPaddingLeft=canvas.style.paddingLeft;var oldPaddingRight=canvas.style.paddingRight;var oldPaddingTop=canvas.style.paddingTop;var oldPaddingBottom=canvas.style.paddingBottom;var oldMarginLeft=canvas.style.marginLeft;var oldMarginRight=canvas.style.marginRight;var oldMarginTop=canvas.style.marginTop;var oldMarginBottom=canvas.style.marginBottom;var oldDocumentBodyMargin=document.body.style.margin;var oldDocumentOverflow=document.documentElement.style.overflow;var oldDocumentScroll=document.body.scroll;var oldImageRendering=canvas.style.imageRendering;function restoreOldStyle(){var fullscreenElement=document.fullscreenElement||document.webkitFullscreenElement||document.msFullscreenElement;if(!fullscreenElement){document.removeEventListener("fullscreenchange",restoreOldStyle);document.removeEventListener("webkitfullscreenchange",restoreOldStyle);setCanvasElementSize(canvas,oldWidth,oldHeight);canvas.style.width=oldCssWidth;canvas.style.height=oldCssHeight;canvas.style.backgroundColor=oldBackgroundColor;if(!oldDocumentBackgroundColor)document.body.style.backgroundColor="white";document.body.style.backgroundColor=oldDocumentBackgroundColor;canvas.style.paddingLeft=oldPaddingLeft;canvas.style.paddingRight=oldPaddingRight;canvas.style.paddingTop=oldPaddingTop;canvas.style.paddingBottom=oldPaddingBottom;canvas.style.marginLeft=oldMarginLeft;canvas.style.marginRight=oldMarginRight;canvas.style.marginTop=oldMarginTop;canvas.style.marginBottom=oldMarginBottom;document.body.style.margin=oldDocumentBodyMargin;document.documentElement.style.overflow=oldDocumentOverflow;document.body.scroll=oldDocumentScroll;canvas.style.imageRendering=oldImageRendering;if(canvas.GLctxObject)canvas.GLctxObject.GLctx.viewport(0,0,oldWidth,oldHeight);if(currentFullscreenStrategy.canvasResizedCallback){wasmTable.get(currentFullscreenStrategy.canvasResizedCallback)(37,0,currentFullscreenStrategy.canvasResizedCallbackUserData)}}}document.addEventListener("fullscreenchange",restoreOldStyle);document.addEventListener("webkitfullscreenchange",restoreOldStyle);return restoreOldStyle}Module["registerRestoreOldStyle"]=registerRestoreOldStyle;function setLetterbox(element,topBottom,leftRight){element.style.paddingLeft=element.style.paddingRight=leftRight+"px";element.style.paddingTop=element.style.paddingBottom=topBottom+"px"}Module["setLetterbox"]=setLetterbox;function _JSEvents_resizeCanvasForFullscreen(target,strategy){var restoreOldStyle=registerRestoreOldStyle(target);var cssWidth=strategy.softFullscreen?innerWidth:screen.width;var cssHeight=strategy.softFullscreen?innerHeight:screen.height;var rect=getBoundingClientRect(target);var windowedCssWidth=rect.width;var windowedCssHeight=rect.height;var canvasSize=getCanvasElementSize(target);var windowedRttWidth=canvasSize[0];var windowedRttHeight=canvasSize[1];if(strategy.scaleMode==3){setLetterbox(target,(cssHeight-windowedCssHeight)/2,(cssWidth-windowedCssWidth)/2);cssWidth=windowedCssWidth;cssHeight=windowedCssHeight}else if(strategy.scaleMode==2){if(cssWidth*windowedRttHeightx*h)w=h*x/y|0;topMargin=(screenHeight-h)/2|0}if(inPixelPerfectFullscreenMode){setCanvasElementSize(canvas,w,h);if(canvas.GLctxObject)canvas.GLctxObject.GLctx.viewport(0,0,w,h)}if(inHiDPIFullscreenMode){topMargin/=dpr;w/=dpr;h/=dpr;w=Math.round(w*1e4)/1e4;h=Math.round(h*1e4)/1e4;topMargin=Math.round(topMargin*1e4)/1e4}if(inCenteredWithoutScalingFullscreenMode){var t=(innerHeight-jstoi_q(canvas.style.height))/2;var b=(innerWidth-jstoi_q(canvas.style.width))/2;setLetterbox(canvas,t,b)}else{canvas.style.width=w+"px";canvas.style.height=h+"px";var b=(innerWidth-w)/2;setLetterbox(canvas,topMargin,b)}if(!inCenteredWithoutScalingFullscreenMode&¤tFullscreenStrategy.canvasResizedCallback){wasmTable.get(currentFullscreenStrategy.canvasResizedCallback)(37,0,currentFullscreenStrategy.canvasResizedCallbackUserData)}}Module["softFullscreenResizeWebGLRenderTarget"]=softFullscreenResizeWebGLRenderTarget;function doRequestFullscreen(target,strategy){if(!JSEvents.fullscreenEnabled())return-1;target=findEventTarget(target);if(!target)return-4;if(!target.requestFullscreen&&!target.webkitRequestFullscreen){return-3}var canPerformRequests=JSEvents.canPerformEventHandlerRequests();if(!canPerformRequests){if(strategy.deferUntilInEventHandler){JSEvents.deferCall(_JSEvents_requestFullscreen,1,[target,strategy]);return 1}else{return-2}}return _JSEvents_requestFullscreen(target,strategy)}Module["doRequestFullscreen"]=doRequestFullscreen;function _emscripten_request_fullscreen(target,deferUntilInEventHandler){var strategy={scaleMode:0,canvasResolutionScaleMode:0,filteringMode:0,deferUntilInEventHandler:deferUntilInEventHandler,canvasResizedCallbackTargetThread:2};return doRequestFullscreen(target,strategy)}Module["_emscripten_request_fullscreen"]=_emscripten_request_fullscreen;_emscripten_request_fullscreen.sig="iii";function _emscripten_request_fullscreen_strategy(target,deferUntilInEventHandler,fullscreenStrategy){var strategy={scaleMode:HEAP32[fullscreenStrategy>>2],canvasResolutionScaleMode:HEAP32[fullscreenStrategy+4>>2],filteringMode:HEAP32[fullscreenStrategy+8>>2],deferUntilInEventHandler:deferUntilInEventHandler,canvasResizedCallback:HEAP32[fullscreenStrategy+12>>2],canvasResizedCallbackUserData:HEAP32[fullscreenStrategy+16>>2]};return doRequestFullscreen(target,strategy)}Module["_emscripten_request_fullscreen_strategy"]=_emscripten_request_fullscreen_strategy;_emscripten_request_fullscreen_strategy.sig="iiii";function _emscripten_enter_soft_fullscreen(target,fullscreenStrategy){target=findEventTarget(target);if(!target)return-4;var strategy={scaleMode:HEAP32[fullscreenStrategy>>2],canvasResolutionScaleMode:HEAP32[fullscreenStrategy+4>>2],filteringMode:HEAP32[fullscreenStrategy+8>>2],canvasResizedCallback:HEAP32[fullscreenStrategy+12>>2],canvasResizedCallbackUserData:HEAP32[fullscreenStrategy+16>>2],target:target,softFullscreen:true};var restoreOldStyle=_JSEvents_resizeCanvasForFullscreen(target,strategy);document.documentElement.style.overflow="hidden";document.body.scroll="no";document.body.style.margin="0px";var hiddenElements=hideEverythingExceptGivenElement(target);function restoreWindowedState(){restoreOldStyle();restoreHiddenElements(hiddenElements);removeEventListener("resize",softFullscreenResizeWebGLRenderTarget);if(strategy.canvasResizedCallback){wasmTable.get(strategy.canvasResizedCallback)(37,0,strategy.canvasResizedCallbackUserData)}currentFullscreenStrategy=0}restoreOldWindowedStyle=restoreWindowedState;currentFullscreenStrategy=strategy;addEventListener("resize",softFullscreenResizeWebGLRenderTarget);if(strategy.canvasResizedCallback){wasmTable.get(strategy.canvasResizedCallback)(37,0,strategy.canvasResizedCallbackUserData)}return 0}Module["_emscripten_enter_soft_fullscreen"]=_emscripten_enter_soft_fullscreen;_emscripten_enter_soft_fullscreen.sig="iii";function _emscripten_exit_soft_fullscreen(){if(restoreOldWindowedStyle)restoreOldWindowedStyle();restoreOldWindowedStyle=null;return 0}Module["_emscripten_exit_soft_fullscreen"]=_emscripten_exit_soft_fullscreen;_emscripten_exit_soft_fullscreen.sig="i";function _emscripten_exit_fullscreen(){if(!JSEvents.fullscreenEnabled())return-1;JSEvents.removeDeferredCalls(_JSEvents_requestFullscreen);var d=specialHTMLTargets[1];if(d.exitFullscreen){d.fullscreenElement&&d.exitFullscreen()}else if(d.webkitExitFullscreen){d.webkitFullscreenElement&&d.webkitExitFullscreen()}else{return-1}return 0}Module["_emscripten_exit_fullscreen"]=_emscripten_exit_fullscreen;_emscripten_exit_fullscreen.sig="i";function fillPointerlockChangeEventData(eventStruct){var pointerLockElement=document.pointerLockElement||document.mozPointerLockElement||document.webkitPointerLockElement||document.msPointerLockElement;var isPointerlocked=!!pointerLockElement;HEAP32[eventStruct>>2]=isPointerlocked;var nodeName=JSEvents.getNodeNameForTarget(pointerLockElement);var id=pointerLockElement&&pointerLockElement.id?pointerLockElement.id:"";stringToUTF8(nodeName,eventStruct+4,128);stringToUTF8(id,eventStruct+132,128)}Module["fillPointerlockChangeEventData"]=fillPointerlockChangeEventData;function registerPointerlockChangeEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.pointerlockChangeEvent)JSEvents.pointerlockChangeEvent=_malloc(260);var pointerlockChangeEventHandlerFunc=function(ev){var e=ev||event;var pointerlockChangeEvent=JSEvents.pointerlockChangeEvent;fillPointerlockChangeEventData(pointerlockChangeEvent);if(wasmTable.get(callbackfunc)(eventTypeId,pointerlockChangeEvent,userData))e.preventDefault()};var eventHandler={target:target,eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:pointerlockChangeEventHandlerFunc,useCapture:useCapture};JSEvents.registerOrRemoveHandler(eventHandler)}Module["registerPointerlockChangeEventCallback"]=registerPointerlockChangeEventCallback;function _emscripten_set_pointerlockchange_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){if(!document||!document.body||!document.body.requestPointerLock&&!document.body.mozRequestPointerLock&&!document.body.webkitRequestPointerLock&&!document.body.msRequestPointerLock){return-1}target=findEventTarget(target);if(!target)return-4;registerPointerlockChangeEventCallback(target,userData,useCapture,callbackfunc,20,"pointerlockchange",targetThread);registerPointerlockChangeEventCallback(target,userData,useCapture,callbackfunc,20,"mozpointerlockchange",targetThread);registerPointerlockChangeEventCallback(target,userData,useCapture,callbackfunc,20,"webkitpointerlockchange",targetThread);registerPointerlockChangeEventCallback(target,userData,useCapture,callbackfunc,20,"mspointerlockchange",targetThread);return 0}Module["_emscripten_set_pointerlockchange_callback_on_thread"]=_emscripten_set_pointerlockchange_callback_on_thread;_emscripten_set_pointerlockchange_callback_on_thread.sig="iiiiii";function registerPointerlockErrorEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){var pointerlockErrorEventHandlerFunc=function(ev){var e=ev||event;if(wasmTable.get(callbackfunc)(eventTypeId,0,userData))e.preventDefault()};var eventHandler={target:target,eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:pointerlockErrorEventHandlerFunc,useCapture:useCapture};JSEvents.registerOrRemoveHandler(eventHandler)}Module["registerPointerlockErrorEventCallback"]=registerPointerlockErrorEventCallback;function _emscripten_set_pointerlockerror_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){if(!document||!document.body.requestPointerLock&&!document.body.mozRequestPointerLock&&!document.body.webkitRequestPointerLock&&!document.body.msRequestPointerLock){return-1}target=findEventTarget(target);if(!target)return-4;registerPointerlockErrorEventCallback(target,userData,useCapture,callbackfunc,38,"pointerlockerror",targetThread);registerPointerlockErrorEventCallback(target,userData,useCapture,callbackfunc,38,"mozpointerlockerror",targetThread);registerPointerlockErrorEventCallback(target,userData,useCapture,callbackfunc,38,"webkitpointerlockerror",targetThread);registerPointerlockErrorEventCallback(target,userData,useCapture,callbackfunc,38,"mspointerlockerror",targetThread);return 0}Module["_emscripten_set_pointerlockerror_callback_on_thread"]=_emscripten_set_pointerlockerror_callback_on_thread;_emscripten_set_pointerlockerror_callback_on_thread.sig="iiiiii";function _emscripten_get_pointerlock_status(pointerlockStatus){if(pointerlockStatus)fillPointerlockChangeEventData(pointerlockStatus);if(!document.body||!document.body.requestPointerLock&&!document.body.mozRequestPointerLock&&!document.body.webkitRequestPointerLock&&!document.body.msRequestPointerLock){return-1}return 0}Module["_emscripten_get_pointerlock_status"]=_emscripten_get_pointerlock_status;_emscripten_get_pointerlock_status.sig="ii";function requestPointerLock(target){if(target.requestPointerLock){target.requestPointerLock()}else if(target.msRequestPointerLock){target.msRequestPointerLock()}else{if(document.body.requestPointerLock||document.body.msRequestPointerLock){return-3}else{return-1}}return 0}Module["requestPointerLock"]=requestPointerLock;function _emscripten_request_pointerlock(target,deferUntilInEventHandler){target=findEventTarget(target);if(!target)return-4;if(!target.requestPointerLock&&!target.msRequestPointerLock){return-1}var canPerformRequests=JSEvents.canPerformEventHandlerRequests();if(!canPerformRequests){if(deferUntilInEventHandler){JSEvents.deferCall(requestPointerLock,2,[target]);return 1}else{return-2}}return requestPointerLock(target)}Module["_emscripten_request_pointerlock"]=_emscripten_request_pointerlock;_emscripten_request_pointerlock.sig="iii";function _emscripten_exit_pointerlock(){JSEvents.removeDeferredCalls(requestPointerLock);if(document.exitPointerLock){document.exitPointerLock()}else if(document.msExitPointerLock){document.msExitPointerLock()}else{return-1}return 0}Module["_emscripten_exit_pointerlock"]=_emscripten_exit_pointerlock;_emscripten_exit_pointerlock.sig="i";function _emscripten_vibrate(msecs){if(!navigator.vibrate)return-1;navigator.vibrate(msecs);return 0}Module["_emscripten_vibrate"]=_emscripten_vibrate;_emscripten_vibrate.sig="ii";function _emscripten_vibrate_pattern(msecsArray,numEntries){if(!navigator.vibrate)return-1;var vibrateList=[];for(var i=0;i>2];vibrateList.push(msecs)}navigator.vibrate(vibrateList);return 0}Module["_emscripten_vibrate_pattern"]=_emscripten_vibrate_pattern;_emscripten_vibrate_pattern.sig="iii";function fillVisibilityChangeEventData(eventStruct){var visibilityStates=["hidden","visible","prerender","unloaded"];var visibilityState=visibilityStates.indexOf(document.visibilityState);HEAP32[eventStruct>>2]=document.hidden;HEAP32[eventStruct+4>>2]=visibilityState}Module["fillVisibilityChangeEventData"]=fillVisibilityChangeEventData;function registerVisibilityChangeEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.visibilityChangeEvent)JSEvents.visibilityChangeEvent=_malloc(8);var visibilityChangeEventHandlerFunc=function(ev){var e=ev||event;var visibilityChangeEvent=JSEvents.visibilityChangeEvent;fillVisibilityChangeEventData(visibilityChangeEvent);if(wasmTable.get(callbackfunc)(eventTypeId,visibilityChangeEvent,userData))e.preventDefault()};var eventHandler={target:target,eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:visibilityChangeEventHandlerFunc,useCapture:useCapture};JSEvents.registerOrRemoveHandler(eventHandler)}Module["registerVisibilityChangeEventCallback"]=registerVisibilityChangeEventCallback;function _emscripten_set_visibilitychange_callback_on_thread(userData,useCapture,callbackfunc,targetThread){if(!specialHTMLTargets[1]){return-4}registerVisibilityChangeEventCallback(specialHTMLTargets[1],userData,useCapture,callbackfunc,21,"visibilitychange",targetThread);return 0}Module["_emscripten_set_visibilitychange_callback_on_thread"]=_emscripten_set_visibilitychange_callback_on_thread;_emscripten_set_visibilitychange_callback_on_thread.sig="iiiii";function _emscripten_get_visibility_status(visibilityStatus){if(typeof document.visibilityState==="undefined"&&typeof document.hidden==="undefined"){return-1}fillVisibilityChangeEventData(visibilityStatus);return 0}Module["_emscripten_get_visibility_status"]=_emscripten_get_visibility_status;_emscripten_get_visibility_status.sig="ii";function registerTouchEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.touchEvent)JSEvents.touchEvent=_malloc(1696);target=findEventTarget(target);var touchEventHandlerFunc=function(e){var touches={};var et=e.touches;for(var i=0;i>3]=e.timeStamp;var idx=touchEvent>>2;HEAP32[idx+3]=e.ctrlKey;HEAP32[idx+4]=e.shiftKey;HEAP32[idx+5]=e.altKey;HEAP32[idx+6]=e.metaKey;idx+=7;var targetRect=getBoundingClientRect(target);var numTouches=0;for(var i in touches){var t=touches[i];HEAP32[idx+0]=t.identifier;HEAP32[idx+1]=t.screenX;HEAP32[idx+2]=t.screenY;HEAP32[idx+3]=t.clientX;HEAP32[idx+4]=t.clientY;HEAP32[idx+5]=t.pageX;HEAP32[idx+6]=t.pageY;HEAP32[idx+7]=t.isChanged;HEAP32[idx+8]=t.onTarget;HEAP32[idx+9]=t.clientX-targetRect.left;HEAP32[idx+10]=t.clientY-targetRect.top;idx+=13;if(++numTouches>31){break}}HEAP32[touchEvent+8>>2]=numTouches;if(wasmTable.get(callbackfunc)(eventTypeId,touchEvent,userData))e.preventDefault()};var eventHandler={target:target,allowsDeferredCalls:eventTypeString=="touchstart"||eventTypeString=="touchend",eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:touchEventHandlerFunc,useCapture:useCapture};JSEvents.registerOrRemoveHandler(eventHandler)}Module["registerTouchEventCallback"]=registerTouchEventCallback;function _emscripten_set_touchstart_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerTouchEventCallback(target,userData,useCapture,callbackfunc,22,"touchstart",targetThread);return 0}Module["_emscripten_set_touchstart_callback_on_thread"]=_emscripten_set_touchstart_callback_on_thread;_emscripten_set_touchstart_callback_on_thread.sig="iiiiii";function _emscripten_set_touchend_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerTouchEventCallback(target,userData,useCapture,callbackfunc,23,"touchend",targetThread);return 0}Module["_emscripten_set_touchend_callback_on_thread"]=_emscripten_set_touchend_callback_on_thread;_emscripten_set_touchend_callback_on_thread.sig="iiiiii";function _emscripten_set_touchmove_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerTouchEventCallback(target,userData,useCapture,callbackfunc,24,"touchmove",targetThread);return 0}Module["_emscripten_set_touchmove_callback_on_thread"]=_emscripten_set_touchmove_callback_on_thread;_emscripten_set_touchmove_callback_on_thread.sig="iiiiii";function _emscripten_set_touchcancel_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerTouchEventCallback(target,userData,useCapture,callbackfunc,25,"touchcancel",targetThread);return 0}Module["_emscripten_set_touchcancel_callback_on_thread"]=_emscripten_set_touchcancel_callback_on_thread;_emscripten_set_touchcancel_callback_on_thread.sig="iiiiii";function fillGamepadEventData(eventStruct,e){HEAPF64[eventStruct>>3]=e.timestamp;for(var i=0;i>3]=e.axes[i]}for(var i=0;i>3]=e.buttons[i].value}else{HEAPF64[eventStruct+i*8+528>>3]=e.buttons[i]}}for(var i=0;i>2]=e.buttons[i].pressed}else{HEAP32[eventStruct+i*4+1040>>2]=e.buttons[i]==1}}HEAP32[eventStruct+1296>>2]=e.connected;HEAP32[eventStruct+1300>>2]=e.index;HEAP32[eventStruct+8>>2]=e.axes.length;HEAP32[eventStruct+12>>2]=e.buttons.length;stringToUTF8(e.id,eventStruct+1304,64);stringToUTF8(e.mapping,eventStruct+1368,64)}Module["fillGamepadEventData"]=fillGamepadEventData;function registerGamepadEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.gamepadEvent)JSEvents.gamepadEvent=_malloc(1432);var gamepadEventHandlerFunc=function(ev){var e=ev||event;var gamepadEvent=JSEvents.gamepadEvent;fillGamepadEventData(gamepadEvent,e["gamepad"]);if(wasmTable.get(callbackfunc)(eventTypeId,gamepadEvent,userData))e.preventDefault()};var eventHandler={target:findEventTarget(target),allowsDeferredCalls:true,eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:gamepadEventHandlerFunc,useCapture:useCapture};JSEvents.registerOrRemoveHandler(eventHandler)}Module["registerGamepadEventCallback"]=registerGamepadEventCallback;function _emscripten_set_gamepadconnected_callback_on_thread(userData,useCapture,callbackfunc,targetThread){if(!navigator.getGamepads&&!navigator.webkitGetGamepads)return-1;registerGamepadEventCallback(2,userData,useCapture,callbackfunc,26,"gamepadconnected",targetThread);return 0}Module["_emscripten_set_gamepadconnected_callback_on_thread"]=_emscripten_set_gamepadconnected_callback_on_thread;_emscripten_set_gamepadconnected_callback_on_thread.sig="iiiii";function _emscripten_set_gamepaddisconnected_callback_on_thread(userData,useCapture,callbackfunc,targetThread){if(!navigator.getGamepads&&!navigator.webkitGetGamepads)return-1;registerGamepadEventCallback(2,userData,useCapture,callbackfunc,27,"gamepaddisconnected",targetThread);return 0}Module["_emscripten_set_gamepaddisconnected_callback_on_thread"]=_emscripten_set_gamepaddisconnected_callback_on_thread;_emscripten_set_gamepaddisconnected_callback_on_thread.sig="iiiii";function _emscripten_sample_gamepad_data(){return(JSEvents.lastGamepadState=navigator.getGamepads?navigator.getGamepads():navigator.webkitGetGamepads?navigator.webkitGetGamepads():null)?0:-1}Module["_emscripten_sample_gamepad_data"]=_emscripten_sample_gamepad_data;_emscripten_sample_gamepad_data.sig="i";function _emscripten_get_num_gamepads(){return JSEvents.lastGamepadState.length}Module["_emscripten_get_num_gamepads"]=_emscripten_get_num_gamepads;_emscripten_get_num_gamepads.sig="i";function _emscripten_get_gamepad_status(index,gamepadState){if(index<0||index>=JSEvents.lastGamepadState.length)return-5;if(!JSEvents.lastGamepadState[index])return-7;fillGamepadEventData(gamepadState,JSEvents.lastGamepadState[index]);return 0}Module["_emscripten_get_gamepad_status"]=_emscripten_get_gamepad_status;_emscripten_get_gamepad_status.sig="iii";function registerBeforeUnloadEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString){var beforeUnloadEventHandlerFunc=function(ev){var e=ev||event;var confirmationMessage=wasmTable.get(callbackfunc)(eventTypeId,0,userData);if(confirmationMessage){confirmationMessage=UTF8ToString(confirmationMessage)}if(confirmationMessage){e.preventDefault();e.returnValue=confirmationMessage;return confirmationMessage}};var eventHandler={target:findEventTarget(target),eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:beforeUnloadEventHandlerFunc,useCapture:useCapture};JSEvents.registerOrRemoveHandler(eventHandler)}Module["registerBeforeUnloadEventCallback"]=registerBeforeUnloadEventCallback;function _emscripten_set_beforeunload_callback_on_thread(userData,callbackfunc,targetThread){if(typeof onbeforeunload==="undefined")return-1;if(targetThread!==1)return-5;registerBeforeUnloadEventCallback(2,userData,true,callbackfunc,28,"beforeunload");return 0}Module["_emscripten_set_beforeunload_callback_on_thread"]=_emscripten_set_beforeunload_callback_on_thread;_emscripten_set_beforeunload_callback_on_thread.sig="iii";function fillBatteryEventData(eventStruct,e){HEAPF64[eventStruct>>3]=e.chargingTime;HEAPF64[eventStruct+8>>3]=e.dischargingTime;HEAPF64[eventStruct+16>>3]=e.level;HEAP32[eventStruct+24>>2]=e.charging}Module["fillBatteryEventData"]=fillBatteryEventData;function battery(){return navigator.battery||navigator.mozBattery||navigator.webkitBattery}Module["battery"]=battery;function registerBatteryEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.batteryEvent)JSEvents.batteryEvent=_malloc(32);var batteryEventHandlerFunc=function(ev){var e=ev||event;var batteryEvent=JSEvents.batteryEvent;fillBatteryEventData(batteryEvent,battery());if(wasmTable.get(callbackfunc)(eventTypeId,batteryEvent,userData))e.preventDefault()};var eventHandler={target:findEventTarget(target),eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:batteryEventHandlerFunc,useCapture:useCapture};JSEvents.registerOrRemoveHandler(eventHandler)}Module["registerBatteryEventCallback"]=registerBatteryEventCallback;function _emscripten_set_batterychargingchange_callback_on_thread(userData,callbackfunc,targetThread){if(!battery())return-1;registerBatteryEventCallback(battery(),userData,true,callbackfunc,29,"chargingchange",targetThread);return 0}Module["_emscripten_set_batterychargingchange_callback_on_thread"]=_emscripten_set_batterychargingchange_callback_on_thread;_emscripten_set_batterychargingchange_callback_on_thread.sig="iii";function _emscripten_set_batterylevelchange_callback_on_thread(userData,callbackfunc,targetThread){if(!battery())return-1;registerBatteryEventCallback(battery(),userData,true,callbackfunc,30,"levelchange",targetThread);return 0}Module["_emscripten_set_batterylevelchange_callback_on_thread"]=_emscripten_set_batterylevelchange_callback_on_thread;_emscripten_set_batterylevelchange_callback_on_thread.sig="iii";function _emscripten_get_battery_status(batteryState){if(!battery())return-1;fillBatteryEventData(batteryState,battery());return 0}Module["_emscripten_get_battery_status"]=_emscripten_get_battery_status;_emscripten_get_battery_status.sig="ii";function _emscripten_set_element_css_size(target,width,height){target=findEventTarget(target);if(!target)return-4;target.style.width=width+"px";target.style.height=height+"px";return 0}Module["_emscripten_set_element_css_size"]=_emscripten_set_element_css_size;_emscripten_set_element_css_size.sig="iiii";function _emscripten_get_element_css_size(target,width,height){target=findEventTarget(target);if(!target)return-4;var rect=getBoundingClientRect(target);HEAPF64[width>>3]=rect.width;HEAPF64[height>>3]=rect.height;return 0}Module["_emscripten_get_element_css_size"]=_emscripten_get_element_css_size;_emscripten_get_element_css_size.sig="iiii";function _emscripten_html5_remove_all_event_listeners(){JSEvents.removeAllEventListeners()}Module["_emscripten_html5_remove_all_event_listeners"]=_emscripten_html5_remove_all_event_listeners;_emscripten_html5_remove_all_event_listeners.sig="v";function _emscripten_request_animation_frame(cb,userData){return requestAnimationFrame(function(timeStamp){wasmTable.get(cb)(timeStamp,userData)})}Module["_emscripten_request_animation_frame"]=_emscripten_request_animation_frame;function _emscripten_cancel_animation_frame(id){cancelAnimationFrame(id)}Module["_emscripten_cancel_animation_frame"]=_emscripten_cancel_animation_frame;function _emscripten_request_animation_frame_loop(cb,userData){function tick(timeStamp){if(wasmTable.get(cb)(timeStamp,userData)){requestAnimationFrame(tick)}}return requestAnimationFrame(tick)}Module["_emscripten_request_animation_frame_loop"]=_emscripten_request_animation_frame_loop;function polyfillSetImmediate(){}Module["polyfillSetImmediate"]=polyfillSetImmediate;function _emscripten_set_immediate(cb,userData){polyfillSetImmediate();return emSetImmediate(function(){callUserCallback(function(){wasmTable.get(cb)(userData)})})}Module["_emscripten_set_immediate"]=_emscripten_set_immediate;function _emscripten_clear_immediate(id){emClearImmediate(id)}Module["_emscripten_clear_immediate"]=_emscripten_clear_immediate;function _emscripten_set_immediate_loop(cb,userData){polyfillSetImmediate();function tick(){callUserCallback(function(){if(wasmTable.get(cb)(userData)){emSetImmediate(tick)}})}return emSetImmediate(tick)}Module["_emscripten_set_immediate_loop"]=_emscripten_set_immediate_loop;function _emscripten_set_timeout(cb,msecs,userData){return setTimeout(function(){callUserCallback(function(){wasmTable.get(cb)(userData)})},msecs)}Module["_emscripten_set_timeout"]=_emscripten_set_timeout;function _emscripten_clear_timeout(id){clearTimeout(id)}Module["_emscripten_clear_timeout"]=_emscripten_clear_timeout;function _emscripten_set_timeout_loop(cb,msecs,userData){function tick(){var t=performance.now();var n=t+msecs;callUserCallback(function(){if(wasmTable.get(cb)(t,userData)){setTimeout(tick,n-performance.now())}})}return setTimeout(tick,0)}Module["_emscripten_set_timeout_loop"]=_emscripten_set_timeout_loop;function _emscripten_set_interval(cb,msecs,userData){return setInterval(function(){callUserCallback(function(){wasmTable.get(cb)(userData)})},msecs)}Module["_emscripten_set_interval"]=_emscripten_set_interval;function _emscripten_clear_interval(id){clearInterval(id)}Module["_emscripten_clear_interval"]=_emscripten_clear_interval;function _emscripten_date_now(){return Date.now()}Module["_emscripten_date_now"]=_emscripten_date_now;function _emscripten_performance_now(){return performance.now()}Module["_emscripten_performance_now"]=_emscripten_performance_now;function _emscripten_console_log(str){out(UTF8ToString(str))}Module["_emscripten_console_log"]=_emscripten_console_log;function _emscripten_console_warn(str){console.warn(UTF8ToString(str))}Module["_emscripten_console_warn"]=_emscripten_console_warn;function _emscripten_console_error(str){err(UTF8ToString(str))}Module["_emscripten_console_error"]=_emscripten_console_error;function _emscripten_throw_number(number){throw number}Module["_emscripten_throw_number"]=_emscripten_throw_number;function _emscripten_throw_string(str){throw UTF8ToString(str)}Module["_emscripten_throw_string"]=_emscripten_throw_string;function _emscripten_unwind_to_js_event_loop(){throw"unwind"}Module["_emscripten_unwind_to_js_event_loop"]=_emscripten_unwind_to_js_event_loop;function _emscripten_get_device_pixel_ratio(){return typeof devicePixelRatio==="number"&&devicePixelRatio||1}Module["_emscripten_get_device_pixel_ratio"]=_emscripten_get_device_pixel_ratio;_emscripten_get_device_pixel_ratio.sig="d";function checkWasiClock(clock_id){return clock_id==0||clock_id==1||clock_id==2||clock_id==3}Module["checkWasiClock"]=checkWasiClock;function _clock_time_get(clk_id,precision_low,precision_high,ptime){if(!checkWasiClock(clk_id)){return 28}var now;if(clk_id===0){now=Date.now()}else if(_emscripten_get_now_is_monotonic){now=_emscripten_get_now()}else{return 52}var nsec=Math.round(now*1e3*1e3);HEAP32[ptime>>2]=nsec>>>0;HEAP32[ptime+4>>2]=nsec/Math.pow(2,32)>>>0;return 0}Module["_clock_time_get"]=_clock_time_get;_clock_time_get.sig="iiiii";function _clock_res_get(clk_id,pres){if(!checkWasiClock(clk_id)){return 28}var nsec;if(clk_id===0){nsec=1e3*1e3}else if(_emscripten_get_now_is_monotonic){nsec=_emscripten_get_now_res()}else{return 52}HEAP32[pres>>2]=nsec>>>0;HEAP32[pres+4>>2]=nsec/Math.pow(2,32)>>>0;return 0}Module["_clock_res_get"]=_clock_res_get;_clock_res_get.sig="iii";function writeI53ToI64Clamped(ptr,num){if(num>0x8000000000000000){HEAPU32[ptr>>2]=4294967295;HEAPU32[ptr+4>>2]=2147483647}else if(num<-0x8000000000000000){HEAPU32[ptr>>2]=0;HEAPU32[ptr+4>>2]=2147483648}else{HEAPU32[ptr>>2]=num;HEAPU32[ptr+4>>2]=(num-HEAPU32[ptr>>2])/4294967296}}Module["writeI53ToI64Clamped"]=writeI53ToI64Clamped;function writeI53ToI64Signaling(ptr,num){if(num>0x8000000000000000||num<-0x8000000000000000){throw"RangeError:"+num}HEAPU32[ptr>>2]=num;HEAPU32[ptr+4>>2]=(num-HEAPU32[ptr>>2])/4294967296}Module["writeI53ToI64Signaling"]=writeI53ToI64Signaling;function writeI53ToU64Clamped(ptr,num){if(num>0x10000000000000000)HEAPU32[ptr>>2]=HEAPU32[ptr+4>>2]=4294967295;else if(num<0)HEAPU32[ptr>>2]=HEAPU32[ptr+4>>2]=0;else{HEAPU32[ptr>>2]=num;HEAPU32[ptr+4>>2]=(num-HEAPU32[ptr>>2])/4294967296}}Module["writeI53ToU64Clamped"]=writeI53ToU64Clamped;function writeI53ToU64Signaling(ptr,num){if(num<0||num>0x10000000000000000){throw"RangeError:"+num}HEAPU32[ptr>>2]=num;HEAPU32[ptr+4>>2]=(num-HEAPU32[ptr>>2])/4294967296}Module["writeI53ToU64Signaling"]=writeI53ToU64Signaling;function readI53FromI64(ptr){return HEAPU32[ptr>>2]+HEAP32[ptr+4>>2]*4294967296}Module["readI53FromI64"]=readI53FromI64;function readI53FromU64(ptr){return HEAPU32[ptr>>2]+HEAPU32[ptr+4>>2]*4294967296}Module["readI53FromU64"]=readI53FromU64;function _emscripten_dlopen(filename,flags,user_data,onsuccess,onerror){function errorCallback(e){DLFCN.errorMsg="Could not load dynamic lib: "+UTF8ToString(filename)+"\n"+e;callUserCallback(function(){wasmTable.get(onerror)(user_data)})}function successCallback(handle){callUserCallback(function(){wasmTable.get(onsuccess)(user_data,handle)})}var promise=dlopenInternal(filename,flags,{loadAsync:true});if(promise){promise.then(successCallback,errorCallback)}else{errorCallback()}}Module["_emscripten_dlopen"]=_emscripten_dlopen;_emscripten_dlopen.sig="iii";function _dladdr(addr,info){var fname=stringToNewUTF8(getExecutableName());HEAP32[info>>2]=fname;HEAP32[info+4>>2]=0;HEAP32[info+8>>2]=0;HEAP32[info+12>>2]=0;return 1}Module["_dladdr"]=_dladdr;_dladdr.sig="iii";function _llvm_eh_typeid_for(type){return type}Module["_llvm_eh_typeid_for"]=_llvm_eh_typeid_for;function ___cxa_get_exception_ptr(ptr){return new CatchInfo(ptr).get_exception_ptr()}Module["___cxa_get_exception_ptr"]=___cxa_get_exception_ptr;function ___cxa_call_unexpected(exception){err("Unexpected exception thrown, this is not properly supported - aborting");ABORT=true;throw exception}Module["___cxa_call_unexpected"]=___cxa_call_unexpected;function ___cxa_find_matching_catch(){var thrown=exceptionLast;if(!thrown){setTempRet0(0);return 0|0}var info=new ExceptionInfo(thrown);var thrownType=info.get_type();var catchInfo=new CatchInfo;catchInfo.set_base_ptr(thrown);catchInfo.set_adjusted_ptr(thrown);if(!thrownType){setTempRet0(0);return catchInfo.ptr|0}var typeArray=Array.prototype.slice.call(arguments);for(var i=0;i0){dependenciesFulfilled=onload}else{onload()}}};script.onerror=function(){if(onerror)onerror()};script.src=UTF8ToString(url);document.body.appendChild(script)}Module["_emscripten_async_load_script"]=_emscripten_async_load_script;function _emscripten_get_main_loop_timing(mode,value){if(mode)HEAP32[mode>>2]=Browser.mainLoop.timingMode;if(value)HEAP32[value>>2]=Browser.mainLoop.timingValue}Module["_emscripten_get_main_loop_timing"]=_emscripten_get_main_loop_timing;_emscripten_get_main_loop_timing.sig="vii";function _emscripten_set_main_loop(func,fps,simulateInfiniteLoop){var browserIterationFunc=wasmTable.get(func);setMainLoop(browserIterationFunc,fps,simulateInfiniteLoop)}Module["_emscripten_set_main_loop"]=_emscripten_set_main_loop;function _emscripten_set_main_loop_arg(func,arg,fps,simulateInfiniteLoop){var browserIterationFunc=function(){wasmTable.get(func)(arg)};setMainLoop(browserIterationFunc,fps,simulateInfiniteLoop,arg)}Module["_emscripten_set_main_loop_arg"]=_emscripten_set_main_loop_arg;_emscripten_set_main_loop_arg.sig="viiii";function _emscripten_cancel_main_loop(){Browser.mainLoop.pause();Browser.mainLoop.func=null}Module["_emscripten_cancel_main_loop"]=_emscripten_cancel_main_loop;_emscripten_cancel_main_loop.sig="v";function _emscripten_pause_main_loop(){Browser.mainLoop.pause()}Module["_emscripten_pause_main_loop"]=_emscripten_pause_main_loop;_emscripten_pause_main_loop.sig="v";function _emscripten_resume_main_loop(){Browser.mainLoop.resume()}Module["_emscripten_resume_main_loop"]=_emscripten_resume_main_loop;_emscripten_resume_main_loop.sig="v";function __emscripten_push_main_loop_blocker(func,arg,name){Browser.mainLoop.queue.push({func:function(){wasmTable.get(func)(arg)},name:UTF8ToString(name),counted:true});Browser.mainLoop.updateStatus()}Module["__emscripten_push_main_loop_blocker"]=__emscripten_push_main_loop_blocker;function __emscripten_push_uncounted_main_loop_blocker(func,arg,name){Browser.mainLoop.queue.push({func:function(){wasmTable.get(func)(arg)},name:UTF8ToString(name),counted:false});Browser.mainLoop.updateStatus()}Module["__emscripten_push_uncounted_main_loop_blocker"]=__emscripten_push_uncounted_main_loop_blocker;function _emscripten_set_main_loop_expected_blockers(num){Browser.mainLoop.expectedBlockers=num;Browser.mainLoop.remainingBlockers=num;Browser.mainLoop.updateStatus()}Module["_emscripten_set_main_loop_expected_blockers"]=_emscripten_set_main_loop_expected_blockers;_emscripten_set_main_loop_expected_blockers.sig="vi";function _emscripten_async_call(func,arg,millis){function wrapper(){wasmTable.get(func)(arg)}if(millis>=0||ENVIRONMENT_IS_NODE){safeSetTimeout(wrapper,millis)}else{Browser.safeRequestAnimationFrame(wrapper)}}Module["_emscripten_async_call"]=_emscripten_async_call;_emscripten_async_call.sig="viii";function _emscripten_get_window_title(){var buflen=256;if(!_emscripten_get_window_title.buffer){_emscripten_get_window_title.buffer=_malloc(buflen)}writeAsciiToMemory(document.title.slice(0,buflen-1),_emscripten_get_window_title.buffer);return _emscripten_get_window_title.buffer}Module["_emscripten_get_window_title"]=_emscripten_get_window_title;_emscripten_get_window_title.sig="iv";function _emscripten_set_window_title(title){setWindowTitle(AsciiToString(title))}Module["_emscripten_set_window_title"]=_emscripten_set_window_title;_emscripten_set_window_title.sig="vi";function _emscripten_get_screen_size(width,height){HEAP32[width>>2]=screen.width;HEAP32[height>>2]=screen.height}Module["_emscripten_get_screen_size"]=_emscripten_get_screen_size;_emscripten_get_screen_size.sig="vii";function _emscripten_hide_mouse(){var styleSheet=document.styleSheets[0];var rules=styleSheet.cssRules;for(var i=0;i>2]=canvas.width;HEAP32[height>>2]=canvas.height;HEAP32[isFullscreen>>2]=Browser.isFullscreen?1:0}Module["_emscripten_get_canvas_size"]=_emscripten_get_canvas_size;_emscripten_get_canvas_size.sig="viii";function _emscripten_create_worker(url){url=UTF8ToString(url);var id=Browser.workers.length;var info={worker:new Worker(url),callbacks:[],awaited:0,buffer:0,bufferSize:0};info.worker.onmessage=function info_worker_onmessage(msg){if(ABORT)return;var info=Browser.workers[id];if(!info)return;var callbackId=msg.data["callbackId"];var callbackInfo=info.callbacks[callbackId];if(!callbackInfo)return;if(msg.data["finalResponse"]){info.awaited--;info.callbacks[callbackId]=null}var data=msg.data["data"];if(data){if(!data.byteLength)data=new Uint8Array(data);if(!info.buffer||info.bufferSize>2]=canvas.width;HEAP32[h>>2]=canvas.height;return buf}return 0}Module["_emscripten_get_preloaded_image_data"]=_emscripten_get_preloaded_image_data;_emscripten_get_preloaded_image_data.sig="iiii";function _emscripten_get_preloaded_image_data_from_FILE(file,w,h){var fd=Module["_fileno"](file);var stream=FS.getStream(fd);if(stream){return _emscripten_get_preloaded_image_data(stream.path,w,h)}return 0}Module["_emscripten_get_preloaded_image_data_from_FILE"]=_emscripten_get_preloaded_image_data_from_FILE;_emscripten_get_preloaded_image_data_from_FILE.sig="iiii";var wget={wgetRequests:{},nextWgetRequestHandle:0,getNextWgetRequestHandle:function(){var handle=wget.nextWgetRequestHandle;wget.nextWgetRequestHandle++;return handle}};Module["wget"]=wget;function _emscripten_async_wget(url,file,onload,onerror){var _url=UTF8ToString(url);var _file=UTF8ToString(file);_file=PATH_FS.resolve(_file);function doCallback(callback){if(callback){callUserCallback(function(){var stack=stackSave();wasmTable.get(callback)(allocate(intArrayFromString(_file),ALLOC_STACK));stackRestore(stack)})}}var destinationDirectory=PATH.dirname(_file);FS.createPreloadedFile(destinationDirectory,PATH.basename(_file),_url,true,true,function(){doCallback(onload)},function(){doCallback(onerror)},false,false,function(){try{FS.unlink(_file)}catch(e){}FS.mkdirTree(destinationDirectory)})}Module["_emscripten_async_wget"]=_emscripten_async_wget;_emscripten_async_wget.sig="viiii";function _emscripten_async_wget_data(url,arg,onload,onerror){asyncLoad(UTF8ToString(url),function(byteArray){callUserCallback(function(){var buffer=_malloc(byteArray.length);HEAPU8.set(byteArray,buffer);wasmTable.get(onload)(arg,buffer,byteArray.length);_free(buffer)})},function(){if(onerror){callUserCallback(function(){wasmTable.get(onerror)(arg)})}},true)}Module["_emscripten_async_wget_data"]=_emscripten_async_wget_data;_emscripten_async_wget_data.sig="viiii";function _emscripten_async_wget2(url,file,request,param,arg,onload,onerror,onprogress){var _url=UTF8ToString(url);var _file=UTF8ToString(file);_file=PATH_FS.resolve(_file);var _request=UTF8ToString(request);var _param=UTF8ToString(param);var index=_file.lastIndexOf("/");var http=new XMLHttpRequest;http.open(_request,_url,true);http.responseType="arraybuffer";var handle=wget.getNextWgetRequestHandle();var destinationDirectory=PATH.dirname(_file);http.onload=function http_onload(e){if(http.status>=200&&http.status<300){try{FS.unlink(_file)}catch(e){}FS.mkdirTree(destinationDirectory);FS.createDataFile(_file.substr(0,index),_file.substr(index+1),new Uint8Array(http.response),true,true,false);if(onload){var stack=stackSave();wasmTable.get(onload)(handle,arg,allocate(intArrayFromString(_file),ALLOC_STACK));stackRestore(stack)}}else{if(onerror)wasmTable.get(onerror)(handle,arg,http.status)}delete wget.wgetRequests[handle]};http.onerror=function http_onerror(e){if(onerror)wasmTable.get(onerror)(handle,arg,http.status);delete wget.wgetRequests[handle]};http.onprogress=function http_onprogress(e){if(e.lengthComputable||e.lengthComputable===undefined&&e.total!=0){var percentComplete=e.loaded/e.total*100;if(onprogress)wasmTable.get(onprogress)(handle,arg,percentComplete)}};http.onabort=function http_onabort(e){delete wget.wgetRequests[handle]};if(_request=="POST"){http.setRequestHeader("Content-type","application/x-www-form-urlencoded");http.send(_param)}else{http.send(null)}wget.wgetRequests[handle]=http;return handle}Module["_emscripten_async_wget2"]=_emscripten_async_wget2;_emscripten_async_wget2.sig="iiiiiiiii";function _emscripten_async_wget2_data(url,request,param,arg,free,onload,onerror,onprogress){var _url=UTF8ToString(url);var _request=UTF8ToString(request);var _param=UTF8ToString(param);var http=new XMLHttpRequest;http.open(_request,_url,true);http.responseType="arraybuffer";var handle=wget.getNextWgetRequestHandle();function onerrorjs(){if(onerror){var statusText=0;if(http.statusText){var len=lengthBytesUTF8(http.statusText)+1;statusText=stackAlloc(len);stringToUTF8(http.statusText,statusText,len)}wasmTable.get(onerror)(handle,arg,http.status,statusText)}}http.onload=function http_onload(e){if(http.status>=200&&http.status<300||http.status===0&&_url.substr(0,4).toLowerCase()!="http"){var byteArray=new Uint8Array(http.response);var buffer=_malloc(byteArray.length);HEAPU8.set(byteArray,buffer);if(onload)wasmTable.get(onload)(handle,arg,buffer,byteArray.length);if(free)_free(buffer)}else{onerrorjs()}delete wget.wgetRequests[handle]};http.onerror=function http_onerror(e){onerrorjs();delete wget.wgetRequests[handle]};http.onprogress=function http_onprogress(e){if(onprogress)wasmTable.get(onprogress)(handle,arg,e.loaded,e.lengthComputable||e.lengthComputable===undefined?e.total:0)};http.onabort=function http_onabort(e){delete wget.wgetRequests[handle]};if(_request=="POST"){http.setRequestHeader("Content-type","application/x-www-form-urlencoded");http.send(_param)}else{http.send(null)}wget.wgetRequests[handle]=http;return handle}Module["_emscripten_async_wget2_data"]=_emscripten_async_wget2_data;_emscripten_async_wget2_data.sig="iiiiiiiii";function _emscripten_async_wget2_abort(handle){var http=wget.wgetRequests[handle];if(http){http.abort()}}Module["_emscripten_async_wget2_abort"]=_emscripten_async_wget2_abort;_emscripten_async_wget2_abort.sig="vi";function _setNetworkCallback(event,userData,callback){function _callback(data){try{if(event==="error"){var sp=stackSave();var msg=allocate(intArrayFromString(data[2]),ALLOC_STACK);wasmTable.get(callback)(data[0],data[1],msg,userData);stackRestore(sp)}else{wasmTable.get(callback)(data,userData)}}catch(e){if(e instanceof ExitStatus){return}else{if(e&&typeof e==="object"&&e.stack)err("exception thrown: "+[e,e.stack]);throw e}}}Module["websocket"]["on"](event,callback?_callback:null)}Module["_setNetworkCallback"]=_setNetworkCallback;function _emscripten_set_socket_error_callback(userData,callback){_setNetworkCallback("error",userData,callback)}Module["_emscripten_set_socket_error_callback"]=_emscripten_set_socket_error_callback;function _emscripten_set_socket_open_callback(userData,callback){_setNetworkCallback("open",userData,callback)}Module["_emscripten_set_socket_open_callback"]=_emscripten_set_socket_open_callback;function _emscripten_set_socket_listen_callback(userData,callback){_setNetworkCallback("listen",userData,callback)}Module["_emscripten_set_socket_listen_callback"]=_emscripten_set_socket_listen_callback;function _emscripten_set_socket_connection_callback(userData,callback){_setNetworkCallback("connection",userData,callback)}Module["_emscripten_set_socket_connection_callback"]=_emscripten_set_socket_connection_callback;function _emscripten_set_socket_message_callback(userData,callback){_setNetworkCallback("message",userData,callback)}Module["_emscripten_set_socket_message_callback"]=_emscripten_set_socket_message_callback;function _emscripten_set_socket_close_callback(userData,callback){_setNetworkCallback("close",userData,callback)}Module["_emscripten_set_socket_close_callback"]=_emscripten_set_socket_close_callback;function _emscripten_webgl_enable_ANGLE_instanced_arrays(ctx){return __webgl_enable_ANGLE_instanced_arrays(GL.contexts[ctx].GLctx)}Module["_emscripten_webgl_enable_ANGLE_instanced_arrays"]=_emscripten_webgl_enable_ANGLE_instanced_arrays;function _emscripten_webgl_enable_OES_vertex_array_object(ctx){return __webgl_enable_OES_vertex_array_object(GL.contexts[ctx].GLctx)}Module["_emscripten_webgl_enable_OES_vertex_array_object"]=_emscripten_webgl_enable_OES_vertex_array_object;function _emscripten_webgl_enable_WEBGL_draw_buffers(ctx){return __webgl_enable_WEBGL_draw_buffers(GL.contexts[ctx].GLctx)}Module["_emscripten_webgl_enable_WEBGL_draw_buffers"]=_emscripten_webgl_enable_WEBGL_draw_buffers;function _emscripten_webgl_enable_WEBGL_multi_draw(ctx){return __webgl_enable_WEBGL_multi_draw(GL.contexts[ctx].GLctx)}Module["_emscripten_webgl_enable_WEBGL_multi_draw"]=_emscripten_webgl_enable_WEBGL_multi_draw;function _glPixelStorei(pname,param){if(pname==3317){GL.unpackAlignment=param}GLctx.pixelStorei(pname,param)}Module["_glPixelStorei"]=_glPixelStorei;_glPixelStorei.sig="vii";function _glGetString(name_){var ret=GL.stringCache[name_];if(!ret){switch(name_){case 7939:var exts=GLctx.getSupportedExtensions()||[];exts=exts.concat(exts.map(function(e){return"GL_"+e}));ret=stringToNewUTF8(exts.join(" "));break;case 7936:case 7937:case 37445:case 37446:var s=GLctx.getParameter(name_);if(!s){GL.recordError(1280)}ret=s&&stringToNewUTF8(s);break;case 7938:var glVersion=GLctx.getParameter(7938);{glVersion="OpenGL ES 2.0 ("+glVersion+")"}ret=stringToNewUTF8(glVersion);break;case 35724:var glslVersion=GLctx.getParameter(35724);var ver_re=/^WebGL GLSL ES ([0-9]\.[0-9][0-9]?)(?:$| .*)/;var ver_num=glslVersion.match(ver_re);if(ver_num!==null){if(ver_num[1].length==3)ver_num[1]=ver_num[1]+"0";glslVersion="OpenGL ES GLSL ES "+ver_num[1]+" ("+glslVersion+")"}ret=stringToNewUTF8(glslVersion);break;default:GL.recordError(1280)}GL.stringCache[name_]=ret}return ret}Module["_glGetString"]=_glGetString;_glGetString.sig="ii";function _glGetIntegerv(name_,p){emscriptenWebGLGet(name_,p,0)}Module["_glGetIntegerv"]=_glGetIntegerv;_glGetIntegerv.sig="vii";function _glGetFloatv(name_,p){emscriptenWebGLGet(name_,p,2)}Module["_glGetFloatv"]=_glGetFloatv;_glGetFloatv.sig="vii";function _glGetBooleanv(name_,p){emscriptenWebGLGet(name_,p,4)}Module["_glGetBooleanv"]=_glGetBooleanv;_glGetBooleanv.sig="vii";function _glDeleteTextures(n,textures){for(var i=0;i>2];var texture=GL.textures[id];if(!texture)continue;GLctx.deleteTexture(texture);texture.name=0;GL.textures[id]=null}}Module["_glDeleteTextures"]=_glDeleteTextures;_glDeleteTextures.sig="vii";function _glCompressedTexImage2D(target,level,internalFormat,width,height,border,imageSize,data){GLctx["compressedTexImage2D"](target,level,internalFormat,width,height,border,data?HEAPU8.subarray(data,data+imageSize):null)}Module["_glCompressedTexImage2D"]=_glCompressedTexImage2D;_glCompressedTexImage2D.sig="viiiiiiii";function _glCompressedTexSubImage2D(target,level,xoffset,yoffset,width,height,format,imageSize,data){GLctx["compressedTexSubImage2D"](target,level,xoffset,yoffset,width,height,format,data?HEAPU8.subarray(data,data+imageSize):null)}Module["_glCompressedTexSubImage2D"]=_glCompressedTexSubImage2D;_glCompressedTexSubImage2D.sig="viiiiiiiii";function _glTexImage2D(target,level,internalFormat,width,height,border,format,type,pixels){GLctx.texImage2D(target,level,internalFormat,width,height,border,format,type,pixels?emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,internalFormat):null)}Module["_glTexImage2D"]=_glTexImage2D;_glTexImage2D.sig="viiiiiiiii";function _glTexSubImage2D(target,level,xoffset,yoffset,width,height,format,type,pixels){var pixelData=null;if(pixels)pixelData=emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,0);GLctx.texSubImage2D(target,level,xoffset,yoffset,width,height,format,type,pixelData)}Module["_glTexSubImage2D"]=_glTexSubImage2D;_glTexSubImage2D.sig="viiiiiiiii";function _glReadPixels(x,y,width,height,format,type,pixels){var pixelData=emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,format);if(!pixelData){GL.recordError(1280);return}GLctx.readPixels(x,y,width,height,format,type,pixelData)}Module["_glReadPixels"]=_glReadPixels;_glReadPixels.sig="viiiiiii";function _glBindTexture(target,texture){GLctx.bindTexture(target,GL.textures[texture])}Module["_glBindTexture"]=_glBindTexture;_glBindTexture.sig="vii";function _glGetTexParameterfv(target,pname,params){if(!params){GL.recordError(1281);return}HEAPF32[params>>2]=GLctx.getTexParameter(target,pname)}Module["_glGetTexParameterfv"]=_glGetTexParameterfv;_glGetTexParameterfv.sig="viii";function _glGetTexParameteriv(target,pname,params){if(!params){GL.recordError(1281);return}HEAP32[params>>2]=GLctx.getTexParameter(target,pname)}Module["_glGetTexParameteriv"]=_glGetTexParameteriv;_glGetTexParameteriv.sig="viii";function _glTexParameterfv(target,pname,params){var param=HEAPF32[params>>2];GLctx.texParameterf(target,pname,param)}Module["_glTexParameterfv"]=_glTexParameterfv;_glTexParameterfv.sig="viii";function _glTexParameteriv(target,pname,params){var param=HEAP32[params>>2];GLctx.texParameteri(target,pname,param)}Module["_glTexParameteriv"]=_glTexParameteriv;_glTexParameteriv.sig="viii";function _glIsTexture(id){var texture=GL.textures[id];if(!texture)return 0;return GLctx.isTexture(texture)}Module["_glIsTexture"]=_glIsTexture;_glIsTexture.sig="ii";function _glGenBuffers(n,buffers){__glGenObject(n,buffers,"createBuffer",GL.buffers)}Module["_glGenBuffers"]=_glGenBuffers;_glGenBuffers.sig="vii";function _glGenTextures(n,textures){__glGenObject(n,textures,"createTexture",GL.textures)}Module["_glGenTextures"]=_glGenTextures;_glGenTextures.sig="vii";function _glDeleteBuffers(n,buffers){for(var i=0;i>2];var buffer=GL.buffers[id];if(!buffer)continue;GLctx.deleteBuffer(buffer);buffer.name=0;GL.buffers[id]=null}}Module["_glDeleteBuffers"]=_glDeleteBuffers;_glDeleteBuffers.sig="vii";function _glGetBufferParameteriv(target,value,data){if(!data){GL.recordError(1281);return}HEAP32[data>>2]=GLctx.getBufferParameter(target,value)}Module["_glGetBufferParameteriv"]=_glGetBufferParameteriv;_glGetBufferParameteriv.sig="viii";function _glBufferData(target,size,data,usage){GLctx.bufferData(target,data?HEAPU8.subarray(data,data+size):size,usage)}Module["_glBufferData"]=_glBufferData;_glBufferData.sig="viiii";function _glBufferSubData(target,offset,size,data){GLctx.bufferSubData(target,offset,HEAPU8.subarray(data,data+size))}Module["_glBufferSubData"]=_glBufferSubData;_glBufferSubData.sig="viiii";function _glGenQueriesEXT(n,ids){for(var i=0;i>2]=0;return}var id=GL.getNewId(GL.queries);query.name=id;GL.queries[id]=query;HEAP32[ids+i*4>>2]=id}}Module["_glGenQueriesEXT"]=_glGenQueriesEXT;_glGenQueriesEXT.sig="vii";function _glDeleteQueriesEXT(n,ids){for(var i=0;i>2];var query=GL.queries[id];if(!query)continue;GLctx.disjointTimerQueryExt["deleteQueryEXT"](query);GL.queries[id]=null}}Module["_glDeleteQueriesEXT"]=_glDeleteQueriesEXT;_glDeleteQueriesEXT.sig="vii";function _glIsQueryEXT(id){var query=GL.queries[id];if(!query)return 0;return GLctx.disjointTimerQueryExt["isQueryEXT"](query)}Module["_glIsQueryEXT"]=_glIsQueryEXT;_glIsQueryEXT.sig="ii";function _glBeginQueryEXT(target,id){GLctx.disjointTimerQueryExt["beginQueryEXT"](target,GL.queries[id])}Module["_glBeginQueryEXT"]=_glBeginQueryEXT;_glBeginQueryEXT.sig="vii";function _glEndQueryEXT(target){GLctx.disjointTimerQueryExt["endQueryEXT"](target)}Module["_glEndQueryEXT"]=_glEndQueryEXT;_glEndQueryEXT.sig="vi";function _glQueryCounterEXT(id,target){GLctx.disjointTimerQueryExt["queryCounterEXT"](GL.queries[id],target)}Module["_glQueryCounterEXT"]=_glQueryCounterEXT;_glQueryCounterEXT.sig="vii";function _glGetQueryivEXT(target,pname,params){if(!params){GL.recordError(1281);return}HEAP32[params>>2]=GLctx.disjointTimerQueryExt["getQueryEXT"](target,pname)}Module["_glGetQueryivEXT"]=_glGetQueryivEXT;_glGetQueryivEXT.sig="viii";function _glGetQueryObjectivEXT(id,pname,params){if(!params){GL.recordError(1281);return}var query=GL.queries[id];var param=GLctx.disjointTimerQueryExt["getQueryObjectEXT"](query,pname);var ret;if(typeof param=="boolean"){ret=param?1:0}else{ret=param}HEAP32[params>>2]=ret}Module["_glGetQueryObjectivEXT"]=_glGetQueryObjectivEXT;_glGetQueryObjectivEXT.sig="viii";function _glGetQueryObjectuivEXT(id,pname,params){if(!params){GL.recordError(1281);return}var query=GL.queries[id];var param=GLctx.disjointTimerQueryExt["getQueryObjectEXT"](query,pname);var ret;if(typeof param=="boolean"){ret=param?1:0}else{ret=param}HEAP32[params>>2]=ret}Module["_glGetQueryObjectuivEXT"]=_glGetQueryObjectuivEXT;_glGetQueryObjectuivEXT.sig="viii";function _glGetQueryObjecti64vEXT(id,pname,params){if(!params){GL.recordError(1281);return}var query=GL.queries[id];var param;{param=GLctx.disjointTimerQueryExt["getQueryObjectEXT"](query,pname)}var ret;if(typeof param=="boolean"){ret=param?1:0}else{ret=param}writeI53ToI64(params,ret)}Module["_glGetQueryObjecti64vEXT"]=_glGetQueryObjecti64vEXT;_glGetQueryObjecti64vEXT.sig="viii";function _glGetQueryObjectui64vEXT(id,pname,params){if(!params){GL.recordError(1281);return}var query=GL.queries[id];var param;{param=GLctx.disjointTimerQueryExt["getQueryObjectEXT"](query,pname)}var ret;if(typeof param=="boolean"){ret=param?1:0}else{ret=param}writeI53ToI64(params,ret)}Module["_glGetQueryObjectui64vEXT"]=_glGetQueryObjectui64vEXT;_glGetQueryObjectui64vEXT.sig="viii";function _glIsBuffer(buffer){var b=GL.buffers[buffer];if(!b)return 0;return GLctx.isBuffer(b)}Module["_glIsBuffer"]=_glIsBuffer;_glIsBuffer.sig="ii";function _glGenRenderbuffers(n,renderbuffers){__glGenObject(n,renderbuffers,"createRenderbuffer",GL.renderbuffers)}Module["_glGenRenderbuffers"]=_glGenRenderbuffers;_glGenRenderbuffers.sig="vii";function _glDeleteRenderbuffers(n,renderbuffers){for(var i=0;i>2];var renderbuffer=GL.renderbuffers[id];if(!renderbuffer)continue;GLctx.deleteRenderbuffer(renderbuffer);renderbuffer.name=0;GL.renderbuffers[id]=null}}Module["_glDeleteRenderbuffers"]=_glDeleteRenderbuffers;_glDeleteRenderbuffers.sig="vii";function _glBindRenderbuffer(target,renderbuffer){GLctx.bindRenderbuffer(target,GL.renderbuffers[renderbuffer])}Module["_glBindRenderbuffer"]=_glBindRenderbuffer;_glBindRenderbuffer.sig="vii";function _glGetRenderbufferParameteriv(target,pname,params){if(!params){GL.recordError(1281);return}HEAP32[params>>2]=GLctx.getRenderbufferParameter(target,pname)}Module["_glGetRenderbufferParameteriv"]=_glGetRenderbufferParameteriv;_glGetRenderbufferParameteriv.sig="viii";function _glIsRenderbuffer(renderbuffer){var rb=GL.renderbuffers[renderbuffer];if(!rb)return 0;return GLctx.isRenderbuffer(rb)}Module["_glIsRenderbuffer"]=_glIsRenderbuffer;_glIsRenderbuffer.sig="ii";function _glGetUniformfv(program,location,params){emscriptenWebGLGetUniform(program,location,params,2)}Module["_glGetUniformfv"]=_glGetUniformfv;_glGetUniformfv.sig="viii";function _glGetUniformiv(program,location,params){emscriptenWebGLGetUniform(program,location,params,0)}Module["_glGetUniformiv"]=_glGetUniformiv;_glGetUniformiv.sig="viii";function _glGetUniformLocation(program,name){name=UTF8ToString(name);if(program=GL.programs[program]){webglPrepareUniformLocationsBeforeFirstUse(program);var uniformLocsById=program.uniformLocsById;var arrayIndex=0;var uniformBaseName=name;var leftBrace=webglGetLeftBracePos(name);if(leftBrace>0){arrayIndex=jstoi_q(name.slice(leftBrace+1))>>>0;uniformBaseName=name.slice(0,leftBrace)}var sizeAndId=program.uniformSizeAndIdsByName[uniformBaseName];if(sizeAndId&&arrayIndex>2]=GLctx.getVertexAttribOffset(index,pname)}Module["_glGetVertexAttribPointerv"]=_glGetVertexAttribPointerv;_glGetVertexAttribPointerv.sig="viii";function _glUniform1f(location,v0){GLctx.uniform1f(webglGetUniformLocation(location),v0)}Module["_glUniform1f"]=_glUniform1f;_glUniform1f.sig="vif";function _glUniform2f(location,v0,v1){GLctx.uniform2f(webglGetUniformLocation(location),v0,v1)}Module["_glUniform2f"]=_glUniform2f;_glUniform2f.sig="viff";function _glUniform3f(location,v0,v1,v2){GLctx.uniform3f(webglGetUniformLocation(location),v0,v1,v2)}Module["_glUniform3f"]=_glUniform3f;_glUniform3f.sig="vifff";function _glUniform4f(location,v0,v1,v2,v3){GLctx.uniform4f(webglGetUniformLocation(location),v0,v1,v2,v3)}Module["_glUniform4f"]=_glUniform4f;_glUniform4f.sig="viffff";function _glUniform1i(location,v0){GLctx.uniform1i(webglGetUniformLocation(location),v0)}Module["_glUniform1i"]=_glUniform1i;_glUniform1i.sig="vii";function _glUniform2i(location,v0,v1){GLctx.uniform2i(webglGetUniformLocation(location),v0,v1)}Module["_glUniform2i"]=_glUniform2i;_glUniform2i.sig="viii";function _glUniform3i(location,v0,v1,v2){GLctx.uniform3i(webglGetUniformLocation(location),v0,v1,v2)}Module["_glUniform3i"]=_glUniform3i;_glUniform3i.sig="viiii";function _glUniform4i(location,v0,v1,v2,v3){GLctx.uniform4i(webglGetUniformLocation(location),v0,v1,v2,v3)}Module["_glUniform4i"]=_glUniform4i;_glUniform4i.sig="viiiii";function _glUniform1iv(location,count,value){if(count<=288){var view=__miniTempWebGLIntBuffers[count-1];for(var i=0;i>2]}}else{var view=HEAP32.subarray(value>>2,value+count*4>>2)}GLctx.uniform1iv(webglGetUniformLocation(location),view)}Module["_glUniform1iv"]=_glUniform1iv;_glUniform1iv.sig="viii";function _glUniform2iv(location,count,value){if(count<=144){var view=__miniTempWebGLIntBuffers[2*count-1];for(var i=0;i<2*count;i+=2){view[i]=HEAP32[value+4*i>>2];view[i+1]=HEAP32[value+(4*i+4)>>2]}}else{var view=HEAP32.subarray(value>>2,value+count*8>>2)}GLctx.uniform2iv(webglGetUniformLocation(location),view)}Module["_glUniform2iv"]=_glUniform2iv;_glUniform2iv.sig="viii";function _glUniform3iv(location,count,value){if(count<=96){var view=__miniTempWebGLIntBuffers[3*count-1];for(var i=0;i<3*count;i+=3){view[i]=HEAP32[value+4*i>>2];view[i+1]=HEAP32[value+(4*i+4)>>2];view[i+2]=HEAP32[value+(4*i+8)>>2]}}else{var view=HEAP32.subarray(value>>2,value+count*12>>2)}GLctx.uniform3iv(webglGetUniformLocation(location),view)}Module["_glUniform3iv"]=_glUniform3iv;_glUniform3iv.sig="viii";function _glUniform4iv(location,count,value){if(count<=72){var view=__miniTempWebGLIntBuffers[4*count-1];for(var i=0;i<4*count;i+=4){view[i]=HEAP32[value+4*i>>2];view[i+1]=HEAP32[value+(4*i+4)>>2];view[i+2]=HEAP32[value+(4*i+8)>>2];view[i+3]=HEAP32[value+(4*i+12)>>2]}}else{var view=HEAP32.subarray(value>>2,value+count*16>>2)}GLctx.uniform4iv(webglGetUniformLocation(location),view)}Module["_glUniform4iv"]=_glUniform4iv;_glUniform4iv.sig="viii";function _glUniform1fv(location,count,value){if(count<=288){var view=miniTempWebGLFloatBuffers[count-1];for(var i=0;i>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*4>>2)}GLctx.uniform1fv(webglGetUniformLocation(location),view)}Module["_glUniform1fv"]=_glUniform1fv;_glUniform1fv.sig="viii";function _glUniform2fv(location,count,value){if(count<=144){var view=miniTempWebGLFloatBuffers[2*count-1];for(var i=0;i<2*count;i+=2){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*8>>2)}GLctx.uniform2fv(webglGetUniformLocation(location),view)}Module["_glUniform2fv"]=_glUniform2fv;_glUniform2fv.sig="viii";function _glUniform3fv(location,count,value){if(count<=96){var view=miniTempWebGLFloatBuffers[3*count-1];for(var i=0;i<3*count;i+=3){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2];view[i+2]=HEAPF32[value+(4*i+8)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*12>>2)}GLctx.uniform3fv(webglGetUniformLocation(location),view)}Module["_glUniform3fv"]=_glUniform3fv;_glUniform3fv.sig="viii";function _glUniform4fv(location,count,value){if(count<=72){var view=miniTempWebGLFloatBuffers[4*count-1];var heap=HEAPF32;value>>=2;for(var i=0;i<4*count;i+=4){var dst=value+i;view[i]=heap[dst];view[i+1]=heap[dst+1];view[i+2]=heap[dst+2];view[i+3]=heap[dst+3]}}else{var view=HEAPF32.subarray(value>>2,value+count*16>>2)}GLctx.uniform4fv(webglGetUniformLocation(location),view)}Module["_glUniform4fv"]=_glUniform4fv;_glUniform4fv.sig="viii";function _glUniformMatrix2fv(location,count,transpose,value){if(count<=72){var view=miniTempWebGLFloatBuffers[4*count-1];for(var i=0;i<4*count;i+=4){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2];view[i+2]=HEAPF32[value+(4*i+8)>>2];view[i+3]=HEAPF32[value+(4*i+12)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*16>>2)}GLctx.uniformMatrix2fv(webglGetUniformLocation(location),!!transpose,view)}Module["_glUniformMatrix2fv"]=_glUniformMatrix2fv;_glUniformMatrix2fv.sig="viiii";function _glUniformMatrix3fv(location,count,transpose,value){if(count<=32){var view=miniTempWebGLFloatBuffers[9*count-1];for(var i=0;i<9*count;i+=9){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2];view[i+2]=HEAPF32[value+(4*i+8)>>2];view[i+3]=HEAPF32[value+(4*i+12)>>2];view[i+4]=HEAPF32[value+(4*i+16)>>2];view[i+5]=HEAPF32[value+(4*i+20)>>2];view[i+6]=HEAPF32[value+(4*i+24)>>2];view[i+7]=HEAPF32[value+(4*i+28)>>2];view[i+8]=HEAPF32[value+(4*i+32)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*36>>2)}GLctx.uniformMatrix3fv(webglGetUniformLocation(location),!!transpose,view)}Module["_glUniformMatrix3fv"]=_glUniformMatrix3fv;_glUniformMatrix3fv.sig="viiii";function _glUniformMatrix4fv(location,count,transpose,value){if(count<=18){var view=miniTempWebGLFloatBuffers[16*count-1];var heap=HEAPF32;value>>=2;for(var i=0;i<16*count;i+=16){var dst=value+i;view[i]=heap[dst];view[i+1]=heap[dst+1];view[i+2]=heap[dst+2];view[i+3]=heap[dst+3];view[i+4]=heap[dst+4];view[i+5]=heap[dst+5];view[i+6]=heap[dst+6];view[i+7]=heap[dst+7];view[i+8]=heap[dst+8];view[i+9]=heap[dst+9];view[i+10]=heap[dst+10];view[i+11]=heap[dst+11];view[i+12]=heap[dst+12];view[i+13]=heap[dst+13];view[i+14]=heap[dst+14];view[i+15]=heap[dst+15]}}else{var view=HEAPF32.subarray(value>>2,value+count*64>>2)}GLctx.uniformMatrix4fv(webglGetUniformLocation(location),!!transpose,view)}Module["_glUniformMatrix4fv"]=_glUniformMatrix4fv;_glUniformMatrix4fv.sig="viiii";function _glBindBuffer(target,buffer){GLctx.bindBuffer(target,GL.buffers[buffer])}Module["_glBindBuffer"]=_glBindBuffer;_glBindBuffer.sig="vii";function _glVertexAttrib1fv(index,v){GLctx.vertexAttrib1f(index,HEAPF32[v>>2])}Module["_glVertexAttrib1fv"]=_glVertexAttrib1fv;_glVertexAttrib1fv.sig="vii";function _glVertexAttrib2fv(index,v){GLctx.vertexAttrib2f(index,HEAPF32[v>>2],HEAPF32[v+4>>2])}Module["_glVertexAttrib2fv"]=_glVertexAttrib2fv;_glVertexAttrib2fv.sig="vii";function _glVertexAttrib3fv(index,v){GLctx.vertexAttrib3f(index,HEAPF32[v>>2],HEAPF32[v+4>>2],HEAPF32[v+8>>2])}Module["_glVertexAttrib3fv"]=_glVertexAttrib3fv;_glVertexAttrib3fv.sig="vii";function _glVertexAttrib4fv(index,v){GLctx.vertexAttrib4f(index,HEAPF32[v>>2],HEAPF32[v+4>>2],HEAPF32[v+8>>2],HEAPF32[v+12>>2])}Module["_glVertexAttrib4fv"]=_glVertexAttrib4fv;_glVertexAttrib4fv.sig="vii";function _glGetAttribLocation(program,name){return GLctx.getAttribLocation(GL.programs[program],UTF8ToString(name))}Module["_glGetAttribLocation"]=_glGetAttribLocation;_glGetAttribLocation.sig="iii";function _glGetActiveAttrib(program,index,bufSize,length,size,type,name){__glGetActiveAttribOrUniform("getActiveAttrib",program,index,bufSize,length,size,type,name)}Module["_glGetActiveAttrib"]=_glGetActiveAttrib;_glGetActiveAttrib.sig="viiiiiii";function _glGetActiveUniform(program,index,bufSize,length,size,type,name){__glGetActiveAttribOrUniform("getActiveUniform",program,index,bufSize,length,size,type,name)}Module["_glGetActiveUniform"]=_glGetActiveUniform;_glGetActiveUniform.sig="viiiiiii";function _glCreateShader(shaderType){var id=GL.getNewId(GL.shaders);GL.shaders[id]=GLctx.createShader(shaderType);return id}Module["_glCreateShader"]=_glCreateShader;_glCreateShader.sig="ii";function _glDeleteShader(id){if(!id)return;var shader=GL.shaders[id];if(!shader){GL.recordError(1281);return}GLctx.deleteShader(shader);GL.shaders[id]=null}Module["_glDeleteShader"]=_glDeleteShader;_glDeleteShader.sig="vi";function _glGetAttachedShaders(program,maxCount,count,shaders){var result=GLctx.getAttachedShaders(GL.programs[program]);var len=result.length;if(len>maxCount){len=maxCount}HEAP32[count>>2]=len;for(var i=0;i>2]=id}}Module["_glGetAttachedShaders"]=_glGetAttachedShaders;_glGetAttachedShaders.sig="viiii";function _glShaderSource(shader,count,string,length){var source=GL.getSource(shader,count,string,length);GLctx.shaderSource(GL.shaders[shader],source)}Module["_glShaderSource"]=_glShaderSource;_glShaderSource.sig="viiii";function _glGetShaderSource(shader,bufSize,length,source){var result=GLctx.getShaderSource(GL.shaders[shader]);if(!result)return;var numBytesWrittenExclNull=bufSize>0&&source?stringToUTF8(result,source,bufSize):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull}Module["_glGetShaderSource"]=_glGetShaderSource;_glGetShaderSource.sig="viiii";function _glCompileShader(shader){GLctx.compileShader(GL.shaders[shader])}Module["_glCompileShader"]=_glCompileShader;_glCompileShader.sig="vi";function _glGetShaderInfoLog(shader,maxLength,length,infoLog){var log=GLctx.getShaderInfoLog(GL.shaders[shader]);if(log===null)log="(unknown error)";var numBytesWrittenExclNull=maxLength>0&&infoLog?stringToUTF8(log,infoLog,maxLength):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull}Module["_glGetShaderInfoLog"]=_glGetShaderInfoLog;_glGetShaderInfoLog.sig="viiii";function _glGetShaderiv(shader,pname,p){if(!p){GL.recordError(1281);return}if(pname==35716){var log=GLctx.getShaderInfoLog(GL.shaders[shader]);if(log===null)log="(unknown error)";var logLength=log?log.length+1:0;HEAP32[p>>2]=logLength}else if(pname==35720){var source=GLctx.getShaderSource(GL.shaders[shader]);var sourceLength=source?source.length+1:0;HEAP32[p>>2]=sourceLength}else{HEAP32[p>>2]=GLctx.getShaderParameter(GL.shaders[shader],pname)}}Module["_glGetShaderiv"]=_glGetShaderiv;_glGetShaderiv.sig="viii";function _glGetProgramiv(program,pname,p){if(!p){GL.recordError(1281);return}if(program>=GL.counter){GL.recordError(1281);return}program=GL.programs[program];if(pname==35716){var log=GLctx.getProgramInfoLog(program);if(log===null)log="(unknown error)";HEAP32[p>>2]=log.length+1}else if(pname==35719){if(!program.maxUniformLength){for(var i=0;i>2]=program.maxUniformLength}else if(pname==35722){if(!program.maxAttributeLength){for(var i=0;i>2]=program.maxAttributeLength}else if(pname==35381){if(!program.maxUniformBlockNameLength){for(var i=0;i>2]=program.maxUniformBlockNameLength}else{HEAP32[p>>2]=GLctx.getProgramParameter(program,pname)}}Module["_glGetProgramiv"]=_glGetProgramiv;_glGetProgramiv.sig="viii";function _glIsShader(shader){var s=GL.shaders[shader];if(!s)return 0;return GLctx.isShader(s)}Module["_glIsShader"]=_glIsShader;_glIsShader.sig="ii";function _glCreateProgram(){var id=GL.getNewId(GL.programs);var program=GLctx.createProgram();program.name=id;program.maxUniformLength=program.maxAttributeLength=program.maxUniformBlockNameLength=0;program.uniformIdCounter=1;GL.programs[id]=program;return id}Module["_glCreateProgram"]=_glCreateProgram;_glCreateProgram.sig="i";function _glDeleteProgram(id){if(!id)return;var program=GL.programs[id];if(!program){GL.recordError(1281);return}GLctx.deleteProgram(program);program.name=0;GL.programs[id]=null}Module["_glDeleteProgram"]=_glDeleteProgram;_glDeleteProgram.sig="vi";function _glAttachShader(program,shader){GLctx.attachShader(GL.programs[program],GL.shaders[shader])}Module["_glAttachShader"]=_glAttachShader;_glAttachShader.sig="vii";function _glDetachShader(program,shader){GLctx.detachShader(GL.programs[program],GL.shaders[shader])}Module["_glDetachShader"]=_glDetachShader;_glDetachShader.sig="vii";function _glGetShaderPrecisionFormat(shaderType,precisionType,range,precision){var result=GLctx.getShaderPrecisionFormat(shaderType,precisionType);HEAP32[range>>2]=result.rangeMin;HEAP32[range+4>>2]=result.rangeMax;HEAP32[precision>>2]=result.precision}Module["_glGetShaderPrecisionFormat"]=_glGetShaderPrecisionFormat;_glGetShaderPrecisionFormat.sig="viiii";function _glLinkProgram(program){program=GL.programs[program];GLctx.linkProgram(program);program.uniformLocsById=0;program.uniformSizeAndIdsByName={}}Module["_glLinkProgram"]=_glLinkProgram;_glLinkProgram.sig="vi";function _glGetProgramInfoLog(program,maxLength,length,infoLog){var log=GLctx.getProgramInfoLog(GL.programs[program]);if(log===null)log="(unknown error)";var numBytesWrittenExclNull=maxLength>0&&infoLog?stringToUTF8(log,infoLog,maxLength):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull}Module["_glGetProgramInfoLog"]=_glGetProgramInfoLog;_glGetProgramInfoLog.sig="viiii";function _glUseProgram(program){program=GL.programs[program];GLctx.useProgram(program);GLctx.currentProgram=program}Module["_glUseProgram"]=_glUseProgram;_glUseProgram.sig="vi";function _glValidateProgram(program){GLctx.validateProgram(GL.programs[program])}Module["_glValidateProgram"]=_glValidateProgram;_glValidateProgram.sig="vi";function _glIsProgram(program){program=GL.programs[program];if(!program)return 0;return GLctx.isProgram(program)}Module["_glIsProgram"]=_glIsProgram;_glIsProgram.sig="ii";function _glBindAttribLocation(program,index,name){GLctx.bindAttribLocation(GL.programs[program],index,UTF8ToString(name))}Module["_glBindAttribLocation"]=_glBindAttribLocation;_glBindAttribLocation.sig="viii";function _glBindFramebuffer(target,framebuffer){GLctx.bindFramebuffer(target,GL.framebuffers[framebuffer])}Module["_glBindFramebuffer"]=_glBindFramebuffer;_glBindFramebuffer.sig="vii";function _glGenFramebuffers(n,ids){__glGenObject(n,ids,"createFramebuffer",GL.framebuffers)}Module["_glGenFramebuffers"]=_glGenFramebuffers;_glGenFramebuffers.sig="vii";function _glDeleteFramebuffers(n,framebuffers){for(var i=0;i>2];var framebuffer=GL.framebuffers[id];if(!framebuffer)continue;GLctx.deleteFramebuffer(framebuffer);framebuffer.name=0;GL.framebuffers[id]=null}}Module["_glDeleteFramebuffers"]=_glDeleteFramebuffers;_glDeleteFramebuffers.sig="vii";function _glFramebufferRenderbuffer(target,attachment,renderbuffertarget,renderbuffer){GLctx.framebufferRenderbuffer(target,attachment,renderbuffertarget,GL.renderbuffers[renderbuffer])}Module["_glFramebufferRenderbuffer"]=_glFramebufferRenderbuffer;_glFramebufferRenderbuffer.sig="viiii";function _glFramebufferTexture2D(target,attachment,textarget,texture,level){GLctx.framebufferTexture2D(target,attachment,textarget,GL.textures[texture],level)}Module["_glFramebufferTexture2D"]=_glFramebufferTexture2D;_glFramebufferTexture2D.sig="viiiii";function _glGetFramebufferAttachmentParameteriv(target,attachment,pname,params){var result=GLctx.getFramebufferAttachmentParameter(target,attachment,pname);if(result instanceof WebGLRenderbuffer||result instanceof WebGLTexture){result=result.name|0}HEAP32[params>>2]=result}Module["_glGetFramebufferAttachmentParameteriv"]=_glGetFramebufferAttachmentParameteriv;_glGetFramebufferAttachmentParameteriv.sig="viiii";function _glIsFramebuffer(framebuffer){var fb=GL.framebuffers[framebuffer];if(!fb)return 0;return GLctx.isFramebuffer(fb)}Module["_glIsFramebuffer"]=_glIsFramebuffer;_glIsFramebuffer.sig="ii";function _glGenVertexArrays(n,arrays){__glGenObject(n,arrays,"createVertexArray",GL.vaos)}Module["_glGenVertexArrays"]=_glGenVertexArrays;_glGenVertexArrays.sig="vii";function _glDeleteVertexArrays(n,vaos){for(var i=0;i>2];GLctx["deleteVertexArray"](GL.vaos[id]);GL.vaos[id]=null}}Module["_glDeleteVertexArrays"]=_glDeleteVertexArrays;_glDeleteVertexArrays.sig="vii";function _glBindVertexArray(vao){GLctx["bindVertexArray"](GL.vaos[vao])}Module["_glBindVertexArray"]=_glBindVertexArray;_glBindVertexArray.sig="vi";function _glIsVertexArray(array){var vao=GL.vaos[array];if(!vao)return 0;return GLctx["isVertexArray"](vao)}Module["_glIsVertexArray"]=_glIsVertexArray;_glIsVertexArray.sig="ii";function _glVertexPointer(){throw"Legacy GL function (glVertexPointer) called. If you want legacy GL emulation, you need to compile with -s LEGACY_GL_EMULATION=1 to enable legacy GL emulation."}Module["_glVertexPointer"]=_glVertexPointer;function _glMatrixMode(){throw"Legacy GL function (glMatrixMode) called. If you want legacy GL emulation, you need to compile with -s LEGACY_GL_EMULATION=1 to enable legacy GL emulation."}Module["_glMatrixMode"]=_glMatrixMode;function _glBegin(){throw"Legacy GL function (glBegin) called. If you want legacy GL emulation, you need to compile with -s LEGACY_GL_EMULATION=1 to enable legacy GL emulation."}Module["_glBegin"]=_glBegin;function _glLoadIdentity(){throw"Legacy GL function (glLoadIdentity) called. If you want legacy GL emulation, you need to compile with -s LEGACY_GL_EMULATION=1 to enable legacy GL emulation."}Module["_glLoadIdentity"]=_glLoadIdentity;function _glGenVertexArraysOES(n,arrays){__glGenObject(n,arrays,"createVertexArray",GL.vaos)}Module["_glGenVertexArraysOES"]=_glGenVertexArraysOES;_glGenVertexArraysOES.sig="vii";function _glDeleteVertexArraysOES(n,vaos){for(var i=0;i>2];GLctx["deleteVertexArray"](GL.vaos[id]);GL.vaos[id]=null}}Module["_glDeleteVertexArraysOES"]=_glDeleteVertexArraysOES;_glDeleteVertexArraysOES.sig="vii";function _glBindVertexArrayOES(vao){GLctx["bindVertexArray"](GL.vaos[vao])}Module["_glBindVertexArrayOES"]=_glBindVertexArrayOES;_glBindVertexArrayOES.sig="vi";function _glIsVertexArrayOES(array){var vao=GL.vaos[array];if(!vao)return 0;return GLctx["isVertexArray"](vao)}Module["_glIsVertexArrayOES"]=_glIsVertexArrayOES;_glIsVertexArrayOES.sig="ii";function _glVertexAttribPointer(index,size,type,normalized,stride,ptr){GLctx.vertexAttribPointer(index,size,type,!!normalized,stride,ptr)}Module["_glVertexAttribPointer"]=_glVertexAttribPointer;_glVertexAttribPointer.sig="viiiiii";function _glEnableVertexAttribArray(index){GLctx.enableVertexAttribArray(index)}Module["_glEnableVertexAttribArray"]=_glEnableVertexAttribArray;_glEnableVertexAttribArray.sig="vi";function _glDisableVertexAttribArray(index){GLctx.disableVertexAttribArray(index)}Module["_glDisableVertexAttribArray"]=_glDisableVertexAttribArray;_glDisableVertexAttribArray.sig="vi";function _glDrawArrays(mode,first,count){GLctx.drawArrays(mode,first,count)}Module["_glDrawArrays"]=_glDrawArrays;_glDrawArrays.sig="viii";function _glDrawElements(mode,count,type,indices){GLctx.drawElements(mode,count,type,indices)}Module["_glDrawElements"]=_glDrawElements;_glDrawElements.sig="viiii";function _glShaderBinary(){GL.recordError(1280)}Module["_glShaderBinary"]=_glShaderBinary;_glShaderBinary.sig="v";function _glReleaseShaderCompiler(){}Module["_glReleaseShaderCompiler"]=_glReleaseShaderCompiler;_glReleaseShaderCompiler.sig="v";function _glGetError(){var error=GLctx.getError()||GL.lastError;GL.lastError=0;return error}Module["_glGetError"]=_glGetError;_glGetError.sig="i";function _glVertexAttribDivisor(index,divisor){GLctx["vertexAttribDivisor"](index,divisor)}Module["_glVertexAttribDivisor"]=_glVertexAttribDivisor;_glVertexAttribDivisor.sig="vii";function _glDrawArraysInstanced(mode,first,count,primcount){GLctx["drawArraysInstanced"](mode,first,count,primcount)}Module["_glDrawArraysInstanced"]=_glDrawArraysInstanced;_glDrawArraysInstanced.sig="viiii";function _glDrawElementsInstanced(mode,count,type,indices,primcount){GLctx["drawElementsInstanced"](mode,count,type,indices,primcount)}Module["_glDrawElementsInstanced"]=_glDrawElementsInstanced;_glDrawElementsInstanced.sig="viiiii";function _glVertexAttribDivisorNV(index,divisor){GLctx["vertexAttribDivisor"](index,divisor)}Module["_glVertexAttribDivisorNV"]=_glVertexAttribDivisorNV;_glVertexAttribDivisorNV.sig="vii";function _glDrawArraysInstancedNV(mode,first,count,primcount){GLctx["drawArraysInstanced"](mode,first,count,primcount)}Module["_glDrawArraysInstancedNV"]=_glDrawArraysInstancedNV;_glDrawArraysInstancedNV.sig="viiii";function _glDrawElementsInstancedNV(mode,count,type,indices,primcount){GLctx["drawElementsInstanced"](mode,count,type,indices,primcount)}Module["_glDrawElementsInstancedNV"]=_glDrawElementsInstancedNV;_glDrawElementsInstancedNV.sig="viiiii";function _glVertexAttribDivisorEXT(index,divisor){GLctx["vertexAttribDivisor"](index,divisor)}Module["_glVertexAttribDivisorEXT"]=_glVertexAttribDivisorEXT;_glVertexAttribDivisorEXT.sig="vii";function _glDrawArraysInstancedEXT(mode,first,count,primcount){GLctx["drawArraysInstanced"](mode,first,count,primcount)}Module["_glDrawArraysInstancedEXT"]=_glDrawArraysInstancedEXT;_glDrawArraysInstancedEXT.sig="viiii";function _glDrawElementsInstancedEXT(mode,count,type,indices,primcount){GLctx["drawElementsInstanced"](mode,count,type,indices,primcount)}Module["_glDrawElementsInstancedEXT"]=_glDrawElementsInstancedEXT;_glDrawElementsInstancedEXT.sig="viiiii";function _glVertexAttribDivisorARB(index,divisor){GLctx["vertexAttribDivisor"](index,divisor)}Module["_glVertexAttribDivisorARB"]=_glVertexAttribDivisorARB;_glVertexAttribDivisorARB.sig="vii";function _glDrawArraysInstancedARB(mode,first,count,primcount){GLctx["drawArraysInstanced"](mode,first,count,primcount)}Module["_glDrawArraysInstancedARB"]=_glDrawArraysInstancedARB;_glDrawArraysInstancedARB.sig="viiii";function _glDrawElementsInstancedARB(mode,count,type,indices,primcount){GLctx["drawElementsInstanced"](mode,count,type,indices,primcount)}Module["_glDrawElementsInstancedARB"]=_glDrawElementsInstancedARB;_glDrawElementsInstancedARB.sig="viiiii";function _glVertexAttribDivisorANGLE(index,divisor){GLctx["vertexAttribDivisor"](index,divisor)}Module["_glVertexAttribDivisorANGLE"]=_glVertexAttribDivisorANGLE;_glVertexAttribDivisorANGLE.sig="vii";function _glDrawArraysInstancedANGLE(mode,first,count,primcount){GLctx["drawArraysInstanced"](mode,first,count,primcount)}Module["_glDrawArraysInstancedANGLE"]=_glDrawArraysInstancedANGLE;_glDrawArraysInstancedANGLE.sig="viiii";function _glDrawElementsInstancedANGLE(mode,count,type,indices,primcount){GLctx["drawElementsInstanced"](mode,count,type,indices,primcount)}Module["_glDrawElementsInstancedANGLE"]=_glDrawElementsInstancedANGLE;_glDrawElementsInstancedANGLE.sig="viiiii";function _glDrawBuffers(n,bufs){var bufArray=tempFixedLengthArray[n];for(var i=0;i>2]}GLctx["drawBuffers"](bufArray)}Module["_glDrawBuffers"]=_glDrawBuffers;_glDrawBuffers.sig="vii";function _glDrawBuffersEXT(n,bufs){var bufArray=tempFixedLengthArray[n];for(var i=0;i>2]}GLctx["drawBuffers"](bufArray)}Module["_glDrawBuffersEXT"]=_glDrawBuffersEXT;_glDrawBuffersEXT.sig="vii";function _glDrawBuffersWEBGL(n,bufs){var bufArray=tempFixedLengthArray[n];for(var i=0;i>2]}GLctx["drawBuffers"](bufArray)}Module["_glDrawBuffersWEBGL"]=_glDrawBuffersWEBGL;_glDrawBuffersWEBGL.sig="vii";function _glColorMask(red,green,blue,alpha){GLctx.colorMask(!!red,!!green,!!blue,!!alpha)}Module["_glColorMask"]=_glColorMask;_glColorMask.sig="viiii";function _glDepthMask(flag){GLctx.depthMask(!!flag)}Module["_glDepthMask"]=_glDepthMask;_glDepthMask.sig="vi";function _glSampleCoverage(value,invert){GLctx.sampleCoverage(value,!!invert)}Module["_glSampleCoverage"]=_glSampleCoverage;_glSampleCoverage.sig="vii";function _glMultiDrawArrays(mode,firsts,counts,drawcount){GLctx.multiDrawWebgl["multiDrawArraysWEBGL"](mode,HEAP32,firsts>>2,HEAP32,counts>>2,drawcount)}Module["_glMultiDrawArrays"]=_glMultiDrawArrays;_glMultiDrawArrays.sig="viiii";function _glMultiDrawArraysANGLE(mode,firsts,counts,drawcount){GLctx.multiDrawWebgl["multiDrawArraysWEBGL"](mode,HEAP32,firsts>>2,HEAP32,counts>>2,drawcount)}Module["_glMultiDrawArraysANGLE"]=_glMultiDrawArraysANGLE;_glMultiDrawArraysANGLE.sig="viiii";function _glMultiDrawArraysWEBGL(mode,firsts,counts,drawcount){GLctx.multiDrawWebgl["multiDrawArraysWEBGL"](mode,HEAP32,firsts>>2,HEAP32,counts>>2,drawcount)}Module["_glMultiDrawArraysWEBGL"]=_glMultiDrawArraysWEBGL;_glMultiDrawArraysWEBGL.sig="viiii";function _glMultiDrawArraysInstancedANGLE(mode,firsts,counts,instanceCounts,drawcount){GLctx.multiDrawWebgl["multiDrawArraysInstancedWEBGL"](mode,HEAP32,firsts>>2,HEAP32,counts>>2,HEAP32,instanceCounts>>2,drawcount)}Module["_glMultiDrawArraysInstancedANGLE"]=_glMultiDrawArraysInstancedANGLE;_glMultiDrawArraysInstancedANGLE.sig="viiiii";function _glMultiDrawArraysInstancedWEBGL(mode,firsts,counts,instanceCounts,drawcount){GLctx.multiDrawWebgl["multiDrawArraysInstancedWEBGL"](mode,HEAP32,firsts>>2,HEAP32,counts>>2,HEAP32,instanceCounts>>2,drawcount)}Module["_glMultiDrawArraysInstancedWEBGL"]=_glMultiDrawArraysInstancedWEBGL;_glMultiDrawArraysInstancedWEBGL.sig="viiiii";function _glMultiDrawElements(mode,counts,type,offsets,drawcount){GLctx.multiDrawWebgl["multiDrawElementsWEBGL"](mode,HEAP32,counts>>2,type,HEAP32,offsets>>2,drawcount)}Module["_glMultiDrawElements"]=_glMultiDrawElements;_glMultiDrawElements.sig="viiiii";function _glMultiDrawElementsANGLE(mode,counts,type,offsets,drawcount){GLctx.multiDrawWebgl["multiDrawElementsWEBGL"](mode,HEAP32,counts>>2,type,HEAP32,offsets>>2,drawcount)}Module["_glMultiDrawElementsANGLE"]=_glMultiDrawElementsANGLE;_glMultiDrawElementsANGLE.sig="viiiii";function _glMultiDrawElementsWEBGL(mode,counts,type,offsets,drawcount){GLctx.multiDrawWebgl["multiDrawElementsWEBGL"](mode,HEAP32,counts>>2,type,HEAP32,offsets>>2,drawcount)}Module["_glMultiDrawElementsWEBGL"]=_glMultiDrawElementsWEBGL;_glMultiDrawElementsWEBGL.sig="viiiii";function _glMultiDrawElementsInstancedANGLE(mode,counts,type,offsets,instanceCounts,drawcount){GLctx.multiDrawWebgl["multiDrawElementsInstancedWEBGL"](mode,HEAP32,counts>>2,type,HEAP32,offsets>>2,HEAP32,instanceCounts>>2,drawcount)}Module["_glMultiDrawElementsInstancedANGLE"]=_glMultiDrawElementsInstancedANGLE;_glMultiDrawElementsInstancedANGLE.sig="viiiiii";function _glMultiDrawElementsInstancedWEBGL(mode,counts,type,offsets,instanceCounts,drawcount){GLctx.multiDrawWebgl["multiDrawElementsInstancedWEBGL"](mode,HEAP32,counts>>2,type,HEAP32,offsets>>2,HEAP32,instanceCounts>>2,drawcount)}Module["_glMultiDrawElementsInstancedWEBGL"]=_glMultiDrawElementsInstancedWEBGL;_glMultiDrawElementsInstancedWEBGL.sig="viiiiii";function _glFinish(){GLctx["finish"]()}Module["_glFinish"]=_glFinish;_glFinish.sig="v";function _glFlush(){GLctx["flush"]()}Module["_glFlush"]=_glFlush;_glFlush.sig="v";function _glClearDepth(x0){GLctx["clearDepth"](x0)}Module["_glClearDepth"]=_glClearDepth;_glClearDepth.sig="vi";function _glClearDepthf(x0){GLctx["clearDepth"](x0)}Module["_glClearDepthf"]=_glClearDepthf;_glClearDepthf.sig="vi";function _glDepthFunc(x0){GLctx["depthFunc"](x0)}Module["_glDepthFunc"]=_glDepthFunc;_glDepthFunc.sig="vi";function _glEnable(x0){GLctx["enable"](x0)}Module["_glEnable"]=_glEnable;_glEnable.sig="vi";function _glDisable(x0){GLctx["disable"](x0)}Module["_glDisable"]=_glDisable;_glDisable.sig="vi";function _glFrontFace(x0){GLctx["frontFace"](x0)}Module["_glFrontFace"]=_glFrontFace;_glFrontFace.sig="vi";function _glCullFace(x0){GLctx["cullFace"](x0)}Module["_glCullFace"]=_glCullFace;_glCullFace.sig="vi";function _glClear(x0){GLctx["clear"](x0)}Module["_glClear"]=_glClear;_glClear.sig="vi";function _glLineWidth(x0){GLctx["lineWidth"](x0)}Module["_glLineWidth"]=_glLineWidth;_glLineWidth.sig="vi";function _glClearStencil(x0){GLctx["clearStencil"](x0)}Module["_glClearStencil"]=_glClearStencil;_glClearStencil.sig="vi";function _glStencilMask(x0){GLctx["stencilMask"](x0)}Module["_glStencilMask"]=_glStencilMask;_glStencilMask.sig="vi";function _glCheckFramebufferStatus(x0){return GLctx["checkFramebufferStatus"](x0)}Module["_glCheckFramebufferStatus"]=_glCheckFramebufferStatus;_glCheckFramebufferStatus.sig="ii";function _glGenerateMipmap(x0){GLctx["generateMipmap"](x0)}Module["_glGenerateMipmap"]=_glGenerateMipmap;_glGenerateMipmap.sig="vi";function _glActiveTexture(x0){GLctx["activeTexture"](x0)}Module["_glActiveTexture"]=_glActiveTexture;_glActiveTexture.sig="vi";function _glBlendEquation(x0){GLctx["blendEquation"](x0)}Module["_glBlendEquation"]=_glBlendEquation;_glBlendEquation.sig="vi";function _glIsEnabled(x0){return GLctx["isEnabled"](x0)}Module["_glIsEnabled"]=_glIsEnabled;_glIsEnabled.sig="ii";function _glBlendFunc(x0,x1){GLctx["blendFunc"](x0,x1)}Module["_glBlendFunc"]=_glBlendFunc;_glBlendFunc.sig="vii";function _glBlendEquationSeparate(x0,x1){GLctx["blendEquationSeparate"](x0,x1)}Module["_glBlendEquationSeparate"]=_glBlendEquationSeparate;_glBlendEquationSeparate.sig="vii";function _glDepthRange(x0,x1){GLctx["depthRange"](x0,x1)}Module["_glDepthRange"]=_glDepthRange;_glDepthRange.sig="vii";function _glDepthRangef(x0,x1){GLctx["depthRange"](x0,x1)}Module["_glDepthRangef"]=_glDepthRangef;_glDepthRangef.sig="vii";function _glStencilMaskSeparate(x0,x1){GLctx["stencilMaskSeparate"](x0,x1)}Module["_glStencilMaskSeparate"]=_glStencilMaskSeparate;_glStencilMaskSeparate.sig="vii";function _glHint(x0,x1){GLctx["hint"](x0,x1)}Module["_glHint"]=_glHint;_glHint.sig="vii";function _glPolygonOffset(x0,x1){GLctx["polygonOffset"](x0,x1)}Module["_glPolygonOffset"]=_glPolygonOffset;_glPolygonOffset.sig="vii";function _glVertexAttrib1f(x0,x1){GLctx["vertexAttrib1f"](x0,x1)}Module["_glVertexAttrib1f"]=_glVertexAttrib1f;_glVertexAttrib1f.sig="vii";function _glTexParameteri(x0,x1,x2){GLctx["texParameteri"](x0,x1,x2)}Module["_glTexParameteri"]=_glTexParameteri;_glTexParameteri.sig="viii";function _glTexParameterf(x0,x1,x2){GLctx["texParameterf"](x0,x1,x2)}Module["_glTexParameterf"]=_glTexParameterf;_glTexParameterf.sig="viii";function _glVertexAttrib2f(x0,x1,x2){GLctx["vertexAttrib2f"](x0,x1,x2)}Module["_glVertexAttrib2f"]=_glVertexAttrib2f;_glVertexAttrib2f.sig="viii";function _glStencilFunc(x0,x1,x2){GLctx["stencilFunc"](x0,x1,x2)}Module["_glStencilFunc"]=_glStencilFunc;_glStencilFunc.sig="viii";function _glStencilOp(x0,x1,x2){GLctx["stencilOp"](x0,x1,x2)}Module["_glStencilOp"]=_glStencilOp;_glStencilOp.sig="viii";function _glViewport(x0,x1,x2,x3){GLctx["viewport"](x0,x1,x2,x3)}Module["_glViewport"]=_glViewport;_glViewport.sig="viiii";function _glClearColor(x0,x1,x2,x3){GLctx["clearColor"](x0,x1,x2,x3)}Module["_glClearColor"]=_glClearColor;_glClearColor.sig="viiii";function _glScissor(x0,x1,x2,x3){GLctx["scissor"](x0,x1,x2,x3)}Module["_glScissor"]=_glScissor;_glScissor.sig="viiii";function _glVertexAttrib3f(x0,x1,x2,x3){GLctx["vertexAttrib3f"](x0,x1,x2,x3)}Module["_glVertexAttrib3f"]=_glVertexAttrib3f;_glVertexAttrib3f.sig="viiii";function _glRenderbufferStorage(x0,x1,x2,x3){GLctx["renderbufferStorage"](x0,x1,x2,x3)}Module["_glRenderbufferStorage"]=_glRenderbufferStorage;_glRenderbufferStorage.sig="viiii";function _glBlendFuncSeparate(x0,x1,x2,x3){GLctx["blendFuncSeparate"](x0,x1,x2,x3)}Module["_glBlendFuncSeparate"]=_glBlendFuncSeparate;_glBlendFuncSeparate.sig="viiii";function _glBlendColor(x0,x1,x2,x3){GLctx["blendColor"](x0,x1,x2,x3)}Module["_glBlendColor"]=_glBlendColor;_glBlendColor.sig="vffff";function _glStencilFuncSeparate(x0,x1,x2,x3){GLctx["stencilFuncSeparate"](x0,x1,x2,x3)}Module["_glStencilFuncSeparate"]=_glStencilFuncSeparate;_glStencilFuncSeparate.sig="viiii";function _glStencilOpSeparate(x0,x1,x2,x3){GLctx["stencilOpSeparate"](x0,x1,x2,x3)}Module["_glStencilOpSeparate"]=_glStencilOpSeparate;_glStencilOpSeparate.sig="viiii";function _glVertexAttrib4f(x0,x1,x2,x3,x4){GLctx["vertexAttrib4f"](x0,x1,x2,x3,x4)}Module["_glVertexAttrib4f"]=_glVertexAttrib4f;_glVertexAttrib4f.sig="viiiii";function _glCopyTexImage2D(x0,x1,x2,x3,x4,x5,x6,x7){GLctx["copyTexImage2D"](x0,x1,x2,x3,x4,x5,x6,x7)}Module["_glCopyTexImage2D"]=_glCopyTexImage2D;_glCopyTexImage2D.sig="viiiiiiii";function _glCopyTexSubImage2D(x0,x1,x2,x3,x4,x5,x6,x7){GLctx["copyTexSubImage2D"](x0,x1,x2,x3,x4,x5,x6,x7)}Module["_glCopyTexSubImage2D"]=_glCopyTexSubImage2D;_glCopyTexSubImage2D.sig="viiiiiiii";function _emscripten_glGenVertexArrays(n,arrays){__glGenObject(n,arrays,"createVertexArray",GL.vaos)}Module["_emscripten_glGenVertexArrays"]=_emscripten_glGenVertexArrays;_emscripten_glGenVertexArrays.sig="vii";function _emscripten_glDeleteVertexArrays(n,vaos){for(var i=0;i>2];GLctx["deleteVertexArray"](GL.vaos[id]);GL.vaos[id]=null}}Module["_emscripten_glDeleteVertexArrays"]=_emscripten_glDeleteVertexArrays;_emscripten_glDeleteVertexArrays.sig="vii";function _emscripten_glBindVertexArray(vao){GLctx["bindVertexArray"](GL.vaos[vao])}Module["_emscripten_glBindVertexArray"]=_emscripten_glBindVertexArray;_emscripten_glBindVertexArray.sig="vi";function _emscripten_glIsVertexArray(array){var vao=GL.vaos[array];if(!vao)return 0;return GLctx["isVertexArray"](vao)}Module["_emscripten_glIsVertexArray"]=_emscripten_glIsVertexArray;_emscripten_glIsVertexArray.sig="ii";function _emscripten_glVertexPointer(){throw"Legacy GL function (glVertexPointer) called. If you want legacy GL emulation, you need to compile with -s LEGACY_GL_EMULATION=1 to enable legacy GL emulation."}Module["_emscripten_glVertexPointer"]=_emscripten_glVertexPointer;function _emscripten_glMatrixMode(){throw"Legacy GL function (glMatrixMode) called. If you want legacy GL emulation, you need to compile with -s LEGACY_GL_EMULATION=1 to enable legacy GL emulation."}Module["_emscripten_glMatrixMode"]=_emscripten_glMatrixMode;function _emscripten_glBegin(){throw"Legacy GL function (glBegin) called. If you want legacy GL emulation, you need to compile with -s LEGACY_GL_EMULATION=1 to enable legacy GL emulation."}Module["_emscripten_glBegin"]=_emscripten_glBegin;function _emscripten_glLoadIdentity(){throw"Legacy GL function (glLoadIdentity) called. If you want legacy GL emulation, you need to compile with -s LEGACY_GL_EMULATION=1 to enable legacy GL emulation."}Module["_emscripten_glLoadIdentity"]=_emscripten_glLoadIdentity;function _emscripten_glVertexAttribDivisor(index,divisor){GLctx["vertexAttribDivisor"](index,divisor)}Module["_emscripten_glVertexAttribDivisor"]=_emscripten_glVertexAttribDivisor;_emscripten_glVertexAttribDivisor.sig="vii";function _emscripten_glDrawArraysInstanced(mode,first,count,primcount){GLctx["drawArraysInstanced"](mode,first,count,primcount)}Module["_emscripten_glDrawArraysInstanced"]=_emscripten_glDrawArraysInstanced;_emscripten_glDrawArraysInstanced.sig="viiii";function _emscripten_glDrawElementsInstanced(mode,count,type,indices,primcount){GLctx["drawElementsInstanced"](mode,count,type,indices,primcount)}Module["_emscripten_glDrawElementsInstanced"]=_emscripten_glDrawElementsInstanced;_emscripten_glDrawElementsInstanced.sig="viiiii";function _emscripten_glVertexAttribDivisorNV(index,divisor){GLctx["vertexAttribDivisor"](index,divisor)}Module["_emscripten_glVertexAttribDivisorNV"]=_emscripten_glVertexAttribDivisorNV;_emscripten_glVertexAttribDivisorNV.sig="vii";function _emscripten_glDrawArraysInstancedNV(mode,first,count,primcount){GLctx["drawArraysInstanced"](mode,first,count,primcount)}Module["_emscripten_glDrawArraysInstancedNV"]=_emscripten_glDrawArraysInstancedNV;_emscripten_glDrawArraysInstancedNV.sig="viiii";function _emscripten_glDrawElementsInstancedNV(mode,count,type,indices,primcount){GLctx["drawElementsInstanced"](mode,count,type,indices,primcount)}Module["_emscripten_glDrawElementsInstancedNV"]=_emscripten_glDrawElementsInstancedNV;_emscripten_glDrawElementsInstancedNV.sig="viiiii";function _emscripten_glVertexAttribDivisorEXT(index,divisor){GLctx["vertexAttribDivisor"](index,divisor)}Module["_emscripten_glVertexAttribDivisorEXT"]=_emscripten_glVertexAttribDivisorEXT;_emscripten_glVertexAttribDivisorEXT.sig="vii";function _emscripten_glDrawArraysInstancedEXT(mode,first,count,primcount){GLctx["drawArraysInstanced"](mode,first,count,primcount)}Module["_emscripten_glDrawArraysInstancedEXT"]=_emscripten_glDrawArraysInstancedEXT;_emscripten_glDrawArraysInstancedEXT.sig="viiii";function _emscripten_glDrawElementsInstancedEXT(mode,count,type,indices,primcount){GLctx["drawElementsInstanced"](mode,count,type,indices,primcount)}Module["_emscripten_glDrawElementsInstancedEXT"]=_emscripten_glDrawElementsInstancedEXT;_emscripten_glDrawElementsInstancedEXT.sig="viiiii";function _emscripten_glVertexAttribDivisorARB(index,divisor){GLctx["vertexAttribDivisor"](index,divisor)}Module["_emscripten_glVertexAttribDivisorARB"]=_emscripten_glVertexAttribDivisorARB;_emscripten_glVertexAttribDivisorARB.sig="vii";function _emscripten_glDrawArraysInstancedARB(mode,first,count,primcount){GLctx["drawArraysInstanced"](mode,first,count,primcount)}Module["_emscripten_glDrawArraysInstancedARB"]=_emscripten_glDrawArraysInstancedARB;_emscripten_glDrawArraysInstancedARB.sig="viiii";function _emscripten_glDrawElementsInstancedARB(mode,count,type,indices,primcount){GLctx["drawElementsInstanced"](mode,count,type,indices,primcount)}Module["_emscripten_glDrawElementsInstancedARB"]=_emscripten_glDrawElementsInstancedARB;_emscripten_glDrawElementsInstancedARB.sig="viiiii";function _emscripten_glDrawBuffers(n,bufs){var bufArray=tempFixedLengthArray[n];for(var i=0;i>2]}GLctx["drawBuffers"](bufArray)}Module["_emscripten_glDrawBuffers"]=_emscripten_glDrawBuffers;_emscripten_glDrawBuffers.sig="vii";function _emscripten_glDrawBuffersEXT(n,bufs){var bufArray=tempFixedLengthArray[n];for(var i=0;i>2]}GLctx["drawBuffers"](bufArray)}Module["_emscripten_glDrawBuffersEXT"]=_emscripten_glDrawBuffersEXT;_emscripten_glDrawBuffersEXT.sig="vii";function _emscripten_glMultiDrawArrays(mode,firsts,counts,drawcount){GLctx.multiDrawWebgl["multiDrawArraysWEBGL"](mode,HEAP32,firsts>>2,HEAP32,counts>>2,drawcount)}Module["_emscripten_glMultiDrawArrays"]=_emscripten_glMultiDrawArrays;_emscripten_glMultiDrawArrays.sig="viiii";function _emscripten_glMultiDrawArraysANGLE(mode,firsts,counts,drawcount){GLctx.multiDrawWebgl["multiDrawArraysWEBGL"](mode,HEAP32,firsts>>2,HEAP32,counts>>2,drawcount)}Module["_emscripten_glMultiDrawArraysANGLE"]=_emscripten_glMultiDrawArraysANGLE;_emscripten_glMultiDrawArraysANGLE.sig="viiii";function _emscripten_glMultiDrawArraysWEBGL(mode,firsts,counts,drawcount){GLctx.multiDrawWebgl["multiDrawArraysWEBGL"](mode,HEAP32,firsts>>2,HEAP32,counts>>2,drawcount)}Module["_emscripten_glMultiDrawArraysWEBGL"]=_emscripten_glMultiDrawArraysWEBGL;_emscripten_glMultiDrawArraysWEBGL.sig="viiii";function _emscripten_glMultiDrawArraysInstancedANGLE(mode,firsts,counts,instanceCounts,drawcount){GLctx.multiDrawWebgl["multiDrawArraysInstancedWEBGL"](mode,HEAP32,firsts>>2,HEAP32,counts>>2,HEAP32,instanceCounts>>2,drawcount)}Module["_emscripten_glMultiDrawArraysInstancedANGLE"]=_emscripten_glMultiDrawArraysInstancedANGLE;_emscripten_glMultiDrawArraysInstancedANGLE.sig="viiiii";function _emscripten_glMultiDrawArraysInstancedWEBGL(mode,firsts,counts,instanceCounts,drawcount){GLctx.multiDrawWebgl["multiDrawArraysInstancedWEBGL"](mode,HEAP32,firsts>>2,HEAP32,counts>>2,HEAP32,instanceCounts>>2,drawcount)}Module["_emscripten_glMultiDrawArraysInstancedWEBGL"]=_emscripten_glMultiDrawArraysInstancedWEBGL;_emscripten_glMultiDrawArraysInstancedWEBGL.sig="viiiii";function _emscripten_glMultiDrawElements(mode,counts,type,offsets,drawcount){GLctx.multiDrawWebgl["multiDrawElementsWEBGL"](mode,HEAP32,counts>>2,type,HEAP32,offsets>>2,drawcount)}Module["_emscripten_glMultiDrawElements"]=_emscripten_glMultiDrawElements;_emscripten_glMultiDrawElements.sig="viiiii";function _emscripten_glMultiDrawElementsANGLE(mode,counts,type,offsets,drawcount){GLctx.multiDrawWebgl["multiDrawElementsWEBGL"](mode,HEAP32,counts>>2,type,HEAP32,offsets>>2,drawcount)}Module["_emscripten_glMultiDrawElementsANGLE"]=_emscripten_glMultiDrawElementsANGLE;_emscripten_glMultiDrawElementsANGLE.sig="viiiii";function _emscripten_glMultiDrawElementsWEBGL(mode,counts,type,offsets,drawcount){GLctx.multiDrawWebgl["multiDrawElementsWEBGL"](mode,HEAP32,counts>>2,type,HEAP32,offsets>>2,drawcount)}Module["_emscripten_glMultiDrawElementsWEBGL"]=_emscripten_glMultiDrawElementsWEBGL;_emscripten_glMultiDrawElementsWEBGL.sig="viiiii";function _emscripten_glMultiDrawElementsInstancedANGLE(mode,counts,type,offsets,instanceCounts,drawcount){GLctx.multiDrawWebgl["multiDrawElementsInstancedWEBGL"](mode,HEAP32,counts>>2,type,HEAP32,offsets>>2,HEAP32,instanceCounts>>2,drawcount)}Module["_emscripten_glMultiDrawElementsInstancedANGLE"]=_emscripten_glMultiDrawElementsInstancedANGLE;_emscripten_glMultiDrawElementsInstancedANGLE.sig="viiiiii";function _emscripten_glMultiDrawElementsInstancedWEBGL(mode,counts,type,offsets,instanceCounts,drawcount){GLctx.multiDrawWebgl["multiDrawElementsInstancedWEBGL"](mode,HEAP32,counts>>2,type,HEAP32,offsets>>2,HEAP32,instanceCounts>>2,drawcount)}Module["_emscripten_glMultiDrawElementsInstancedWEBGL"]=_emscripten_glMultiDrawElementsInstancedWEBGL;_emscripten_glMultiDrawElementsInstancedWEBGL.sig="viiiiii";function _emscripten_glClearDepth(x0){GLctx["clearDepth"](x0)}Module["_emscripten_glClearDepth"]=_emscripten_glClearDepth;_emscripten_glClearDepth.sig="vi";function _emscripten_glDepthRange(x0,x1){GLctx["depthRange"](x0,x1)}Module["_emscripten_glDepthRange"]=_emscripten_glDepthRange;_emscripten_glDepthRange.sig="vii";function writeGLArray(arr,dst,dstLength,heapType){var len=arr.length;var writeLength=dstLength>2)+i]=arr[i]}return len}Module["writeGLArray"]=writeGLArray;function _emscripten_webgl_init_context_attributes(attributes){var a=attributes>>2;for(var i=0;i<56>>2;++i){HEAP32[a+i]=0}HEAP32[a+(0>>2)]=HEAP32[a+(4>>2)]=HEAP32[a+(12>>2)]=HEAP32[a+(16>>2)]=HEAP32[a+(32>>2)]=HEAP32[a+(40>>2)]=1}Module["_emscripten_webgl_init_context_attributes"]=_emscripten_webgl_init_context_attributes;var __emscripten_webgl_power_preferences=["default","low-power","high-performance"];Module["__emscripten_webgl_power_preferences"]=__emscripten_webgl_power_preferences;function _emscripten_webgl_do_create_context(target,attributes){var a=attributes>>2;var powerPreference=HEAP32[a+(24>>2)];var contextAttributes={"alpha":!!HEAP32[a+(0>>2)],"depth":!!HEAP32[a+(4>>2)],"stencil":!!HEAP32[a+(8>>2)],"antialias":!!HEAP32[a+(12>>2)],"premultipliedAlpha":!!HEAP32[a+(16>>2)],"preserveDrawingBuffer":!!HEAP32[a+(20>>2)],"powerPreference":__emscripten_webgl_power_preferences[powerPreference],"failIfMajorPerformanceCaveat":!!HEAP32[a+(28>>2)],majorVersion:HEAP32[a+(32>>2)],minorVersion:HEAP32[a+(36>>2)],enableExtensionsByDefault:HEAP32[a+(40>>2)],explicitSwapControl:HEAP32[a+(44>>2)],proxyContextToMainThread:HEAP32[a+(48>>2)],renderViaOffscreenBackBuffer:HEAP32[a+(52>>2)]};var canvas=findCanvasEventTarget(target);if(!canvas){return 0}if(contextAttributes.explicitSwapControl){return 0}var contextHandle=GL.createContext(canvas,contextAttributes);return contextHandle}Module["_emscripten_webgl_do_create_context"]=_emscripten_webgl_do_create_context;_emscripten_webgl_do_create_context.sig="iii";function _emscripten_webgl_create_context(a0,a1){return _emscripten_webgl_do_create_context(a0,a1)}Module["_emscripten_webgl_create_context"]=_emscripten_webgl_create_context;_emscripten_webgl_create_context.sig="iii";function _emscripten_webgl_do_get_current_context(){return GL.currentContext?GL.currentContext.handle:0}Module["_emscripten_webgl_do_get_current_context"]=_emscripten_webgl_do_get_current_context;_emscripten_webgl_do_get_current_context.sig="i";function _emscripten_webgl_get_current_context(){return _emscripten_webgl_do_get_current_context()}Module["_emscripten_webgl_get_current_context"]=_emscripten_webgl_get_current_context;_emscripten_webgl_get_current_context.sig="i";function _emscripten_webgl_do_commit_frame(){if(!GL.currentContext||!GL.currentContext.GLctx){return-3}if(!GL.currentContext.attributes.explicitSwapControl){return-3}return 0}Module["_emscripten_webgl_do_commit_frame"]=_emscripten_webgl_do_commit_frame;_emscripten_webgl_do_commit_frame.sig="i";function _emscripten_webgl_commit_frame(){return _emscripten_webgl_do_commit_frame()}Module["_emscripten_webgl_commit_frame"]=_emscripten_webgl_commit_frame;_emscripten_webgl_commit_frame.sig="i";function _emscripten_webgl_make_context_current(contextHandle){var success=GL.makeContextCurrent(contextHandle);return success?0:-5}Module["_emscripten_webgl_make_context_current"]=_emscripten_webgl_make_context_current;function _emscripten_webgl_get_drawing_buffer_size(contextHandle,width,height){var GLContext=GL.getContext(contextHandle);if(!GLContext||!GLContext.GLctx||!width||!height){return-5}HEAP32[width>>2]=GLContext.GLctx.drawingBufferWidth;HEAP32[height>>2]=GLContext.GLctx.drawingBufferHeight;return 0}Module["_emscripten_webgl_get_drawing_buffer_size"]=_emscripten_webgl_get_drawing_buffer_size;_emscripten_webgl_get_drawing_buffer_size.sig="iiii";function _emscripten_webgl_get_context_attributes(c,a){if(!a)return-5;c=GL.contexts[c];if(!c)return-3;var t=c.GLctx;if(!t)return-3;t=t.getContextAttributes();HEAP32[a>>2]=t.alpha;HEAP32[a+4>>2]=t.depth;HEAP32[a+8>>2]=t.stencil;HEAP32[a+12>>2]=t.antialias;HEAP32[a+16>>2]=t.premultipliedAlpha;HEAP32[a+20>>2]=t.preserveDrawingBuffer;var power=t["powerPreference"]&&__emscripten_webgl_power_preferences.indexOf(t["powerPreference"]);HEAP32[a+24>>2]=power;HEAP32[a+28>>2]=t.failIfMajorPerformanceCaveat;HEAP32[a+32>>2]=c.version;HEAP32[a+36>>2]=0;HEAP32[a+40>>2]=c.attributes.enableExtensionsByDefault;return 0}Module["_emscripten_webgl_get_context_attributes"]=_emscripten_webgl_get_context_attributes;_emscripten_webgl_get_context_attributes.sig="iii";function _emscripten_webgl_destroy_context(contextHandle){if(GL.currentContext==contextHandle)GL.currentContext=0;GL.deleteContext(contextHandle)}Module["_emscripten_webgl_destroy_context"]=_emscripten_webgl_destroy_context;_emscripten_webgl_destroy_context.sig="vi";function _emscripten_webgl_destroy_context_before_on_calling_thread(contextHandle){if(_emscripten_webgl_get_current_context()==contextHandle)_emscripten_webgl_make_context_current(0)}Module["_emscripten_webgl_destroy_context_before_on_calling_thread"]=_emscripten_webgl_destroy_context_before_on_calling_thread;function _emscripten_webgl_enable_extension(contextHandle,extension){var context=GL.getContext(contextHandle);var extString=UTF8ToString(extension);if(extString.startsWith("GL_"))extString=extString.substr(3);if(extString=="ANGLE_instanced_arrays")__webgl_enable_ANGLE_instanced_arrays(GLctx);if(extString=="OES_vertex_array_object")__webgl_enable_OES_vertex_array_object(GLctx);if(extString=="WEBGL_draw_buffers")__webgl_enable_WEBGL_draw_buffers(GLctx);if(extString=="WEBGL_multi_draw")__webgl_enable_WEBGL_multi_draw(GLctx);var ext=context.GLctx.getExtension(extString);return!!ext}Module["_emscripten_webgl_enable_extension"]=_emscripten_webgl_enable_extension;_emscripten_webgl_enable_extension.sig="iii";function _emscripten_supports_offscreencanvas(){return 0}Module["_emscripten_supports_offscreencanvas"]=_emscripten_supports_offscreencanvas;function __registerWebGlEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){var webGlEventHandlerFunc=function(ev){var e=ev||event;if(wasmTable.get(callbackfunc)(eventTypeId,0,userData))e.preventDefault()};var eventHandler={target:findEventTarget(target),eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:webGlEventHandlerFunc,useCapture:useCapture};JSEvents.registerOrRemoveHandler(eventHandler)}Module["__registerWebGlEventCallback"]=__registerWebGlEventCallback;function _emscripten_set_webglcontextlost_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){__registerWebGlEventCallback(target,userData,useCapture,callbackfunc,31,"webglcontextlost",targetThread);return 0}Module["_emscripten_set_webglcontextlost_callback_on_thread"]=_emscripten_set_webglcontextlost_callback_on_thread;_emscripten_set_webglcontextlost_callback_on_thread.sig="iiiiii";function _emscripten_set_webglcontextrestored_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){__registerWebGlEventCallback(target,userData,useCapture,callbackfunc,32,"webglcontextrestored",targetThread);return 0}Module["_emscripten_set_webglcontextrestored_callback_on_thread"]=_emscripten_set_webglcontextrestored_callback_on_thread;_emscripten_set_webglcontextrestored_callback_on_thread.sig="iiiiii";function _emscripten_is_webgl_context_lost(contextHandle){return!GL.contexts[contextHandle]||GL.contexts[contextHandle].GLctx.isContextLost()}Module["_emscripten_is_webgl_context_lost"]=_emscripten_is_webgl_context_lost;_emscripten_is_webgl_context_lost.sig="ii";function _emscripten_webgl_get_supported_extensions(){return stringToNewUTF8(GLctx.getSupportedExtensions().join(" "))}Module["_emscripten_webgl_get_supported_extensions"]=_emscripten_webgl_get_supported_extensions;_emscripten_webgl_get_supported_extensions.sig="i";function _emscripten_webgl_get_program_parameter_d(program,param){return GLctx.getProgramParameter(GL.programs[program],param)}Module["_emscripten_webgl_get_program_parameter_d"]=_emscripten_webgl_get_program_parameter_d;_emscripten_webgl_get_program_parameter_d.sig="fii";function _emscripten_webgl_get_program_info_log_utf8(program){return stringToNewUTF8(GLctx.getProgramInfoLog(GL.programs[program]))}Module["_emscripten_webgl_get_program_info_log_utf8"]=_emscripten_webgl_get_program_info_log_utf8;_emscripten_webgl_get_program_info_log_utf8.sig="ii";function _emscripten_webgl_get_shader_parameter_d(shader,param){return GLctx.getShaderParameter(GL.shaders[shader],param)}Module["_emscripten_webgl_get_shader_parameter_d"]=_emscripten_webgl_get_shader_parameter_d;_emscripten_webgl_get_shader_parameter_d.sig="fii";function _emscripten_webgl_get_shader_info_log_utf8(shader){return stringToNewUTF8(GLctx.getShaderInfoLog(GL.shaders[shader]))}Module["_emscripten_webgl_get_shader_info_log_utf8"]=_emscripten_webgl_get_shader_info_log_utf8;_emscripten_webgl_get_shader_info_log_utf8.sig="ii";function _emscripten_webgl_get_shader_source_utf8(shader){return stringToNewUTF8(GLctx.getShaderSource(GL.shaders[shader]))}Module["_emscripten_webgl_get_shader_source_utf8"]=_emscripten_webgl_get_shader_source_utf8;_emscripten_webgl_get_shader_source_utf8.sig="ii";function _emscripten_webgl_get_vertex_attrib_d(index,param){return GLctx.getVertexAttrib(index,param)}Module["_emscripten_webgl_get_vertex_attrib_d"]=_emscripten_webgl_get_vertex_attrib_d;_emscripten_webgl_get_vertex_attrib_d.sig="iii";function _emscripten_webgl_get_vertex_attrib_o(index,param){var obj=GLctx.getVertexAttrib(index,param);return obj&&obj.name}Module["_emscripten_webgl_get_vertex_attrib_o"]=_emscripten_webgl_get_vertex_attrib_o;_emscripten_webgl_get_vertex_attrib_o.sig="iii";function _emscripten_webgl_get_vertex_attrib_v(index,param,dst,dstLength,dstType){return writeGLArray(GLctx.getVertexAttrib(index,param),dst,dstLength,dstType)}Module["_emscripten_webgl_get_vertex_attrib_v"]=_emscripten_webgl_get_vertex_attrib_v;_emscripten_webgl_get_vertex_attrib_v.sig="iiiiii";function _emscripten_webgl_get_uniform_d(program,location){return GLctx.getUniform(GL.programs[program],webglGetUniformLocation(location))}Module["_emscripten_webgl_get_uniform_d"]=_emscripten_webgl_get_uniform_d;_emscripten_webgl_get_uniform_d.sig="fii";function _emscripten_webgl_get_uniform_v(program,location,dst,dstLength,dstType){return writeGLArray(GLctx.getUniform(GL.programs[program],webglGetUniformLocation(location)),dst,dstLength,dstType)}Module["_emscripten_webgl_get_uniform_v"]=_emscripten_webgl_get_uniform_v;_emscripten_webgl_get_uniform_v.sig="iiiiii";function _emscripten_webgl_get_parameter_v(param,dst,dstLength,dstType){return writeGLArray(GLctx.getParameter(param),dst,dstLength,dstType)}Module["_emscripten_webgl_get_parameter_v"]=_emscripten_webgl_get_parameter_v;_emscripten_webgl_get_parameter_v.sig="iiiii";function _emscripten_webgl_get_parameter_d(param){return GLctx.getParameter(param)}Module["_emscripten_webgl_get_parameter_d"]=_emscripten_webgl_get_parameter_d;_emscripten_webgl_get_parameter_d.sig="fi";function _emscripten_webgl_get_parameter_o(param){var obj=GLctx.getParameter(param);return obj&&obj.name}Module["_emscripten_webgl_get_parameter_o"]=_emscripten_webgl_get_parameter_o;_emscripten_webgl_get_parameter_o.sig="ii";function _emscripten_webgl_get_parameter_utf8(param){return stringToNewUTF8(GLctx.getParameter(param))}Module["_emscripten_webgl_get_parameter_utf8"]=_emscripten_webgl_get_parameter_utf8;_emscripten_webgl_get_parameter_utf8.sig="ii";function _emscripten_webgl_get_parameter_i64v(param,dst){writeI53ToI64(dst,GLctx.getParameter(param))}Module["_emscripten_webgl_get_parameter_i64v"]=_emscripten_webgl_get_parameter_i64v;_emscripten_webgl_get_parameter_i64v.sig="vii";function _SDL_GetTicks(){return Date.now()-SDL.startTime|0}Module["_SDL_GetTicks"]=_SDL_GetTicks;_SDL_GetTicks.sig="i";function _SDL_LockSurface(surf){var surfData=SDL.surfaces[surf];surfData.locked++;if(surfData.locked>1)return 0;if(!surfData.buffer){surfData.buffer=_malloc(surfData.width*surfData.height*4);HEAP32[surf+20>>2]=surfData.buffer}HEAP32[surf+20>>2]=surfData.buffer;if(surf==SDL.screen&&Module.screenIsReadOnly&&surfData.image)return 0;if(SDL.defaults.discardOnLock){if(!surfData.image){surfData.image=surfData.ctx.createImageData(surfData.width,surfData.height)}if(!SDL.defaults.opaqueFrontBuffer)return}else{surfData.image=surfData.ctx.getImageData(0,0,surfData.width,surfData.height)}if(surf==SDL.screen&&SDL.defaults.opaqueFrontBuffer){var data=surfData.image.data;var num=data.length;for(var i=0;i>2],y:HEAP32[rect+4>>2],w:HEAP32[rect+8>>2],h:HEAP32[rect+12>>2]}},updateRect:function(rect,r){HEAP32[rect>>2]=r.x;HEAP32[rect+4>>2]=r.y;HEAP32[rect+8>>2]=r.w;HEAP32[rect+12>>2]=r.h},intersectionOfRects:function(first,second){var leftX=Math.max(first.x,second.x);var leftY=Math.max(first.y,second.y);var rightX=Math.min(first.x+first.w,second.x+second.w);var rightY=Math.min(first.y+first.h,second.y+second.h);return{x:leftX,y:leftY,w:Math.max(leftX,rightX)-leftX,h:Math.max(leftY,rightY)-leftY}},checkPixelFormat:function(fmt){},loadColorToCSSRGB:function(color){var rgba=HEAP32[color>>2];return"rgb("+(rgba&255)+","+(rgba>>8&255)+","+(rgba>>16&255)+")"},loadColorToCSSRGBA:function(color){var rgba=HEAP32[color>>2];return"rgba("+(rgba&255)+","+(rgba>>8&255)+","+(rgba>>16&255)+","+(rgba>>24&255)/255+")"},translateColorToCSSRGBA:function(rgba){return"rgba("+(rgba&255)+","+(rgba>>8&255)+","+(rgba>>16&255)+","+(rgba>>>24)/255+")"},translateRGBAToCSSRGBA:function(r,g,b,a){return"rgba("+(r&255)+","+(g&255)+","+(b&255)+","+(a&255)/255+")"},translateRGBAToColor:function(r,g,b,a){return r|g<<8|b<<16|a<<24},makeSurface:function(width,height,flags,usePageCanvas,source,rmask,gmask,bmask,amask){flags=flags||0;var is_SDL_HWSURFACE=flags&1;var is_SDL_HWPALETTE=flags&2097152;var is_SDL_OPENGL=flags&67108864;var surf=_malloc(60);var pixelFormat=_malloc(44);var bpp=is_SDL_HWPALETTE?1:4;var buffer=0;if(!is_SDL_HWSURFACE&&!is_SDL_OPENGL){buffer=_malloc(width*height*4)}HEAP32[surf>>2]=flags;HEAP32[surf+4>>2]=pixelFormat;HEAP32[surf+8>>2]=width;HEAP32[surf+12>>2]=height;HEAP32[surf+16>>2]=width*bpp;HEAP32[surf+20>>2]=buffer;HEAP32[surf+36>>2]=0;HEAP32[surf+40>>2]=0;HEAP32[surf+44>>2]=Module["canvas"].width;HEAP32[surf+48>>2]=Module["canvas"].height;HEAP32[surf+56>>2]=1;HEAP32[pixelFormat>>2]=-2042224636;HEAP32[pixelFormat+4>>2]=0;HEAP8[pixelFormat+8>>0]=bpp*8;HEAP8[pixelFormat+9>>0]=bpp;HEAP32[pixelFormat+12>>2]=rmask||255;HEAP32[pixelFormat+16>>2]=gmask||65280;HEAP32[pixelFormat+20>>2]=bmask||16711680;HEAP32[pixelFormat+24>>2]=amask||4278190080;SDL.GL=SDL.GL||is_SDL_OPENGL;var canvas;if(!usePageCanvas){if(SDL.canvasPool.length>0){canvas=SDL.canvasPool.pop()}else{canvas=document.createElement("canvas")}canvas.width=width;canvas.height=height}else{canvas=Module["canvas"]}var webGLContextAttributes={antialias:SDL.glAttributes[13]!=0&&SDL.glAttributes[14]>1,depth:SDL.glAttributes[6]>0,stencil:SDL.glAttributes[7]>0,alpha:SDL.glAttributes[3]>0};var ctx=Browser.createContext(canvas,is_SDL_OPENGL,usePageCanvas,webGLContextAttributes);SDL.surfaces[surf]={width:width,height:height,canvas:canvas,ctx:ctx,surf:surf,buffer:buffer,pixelFormat:pixelFormat,alpha:255,flags:flags,locked:0,usePageCanvas:usePageCanvas,source:source,isFlagSet:function(flag){return flags&flag}};return surf},copyIndexedColorData:function(surfData,rX,rY,rW,rH){if(!surfData.colors){return}var fullWidth=Module["canvas"].width;var fullHeight=Module["canvas"].height;var startX=rX||0;var startY=rY||0;var endX=(rW||fullWidth-startX)+startX;var endY=(rH||fullHeight-startY)+startY;var buffer=surfData.buffer;if(!surfData.image.data32){surfData.image.data32=new Uint32Array(surfData.image.data.buffer)}var data32=surfData.image.data32;var colors32=surfData.colors32;for(var y=startY;y>0]]}}},freeSurface:function(surf){var refcountPointer=surf+56;var refcount=HEAP32[refcountPointer>>2];if(refcount>1){HEAP32[refcountPointer>>2]=refcount-1;return}var info=SDL.surfaces[surf];if(!info.usePageCanvas&&info.canvas)SDL.canvasPool.push(info.canvas);if(info.buffer)_free(info.buffer);_free(info.pixelFormat);_free(surf);SDL.surfaces[surf]=null;if(surf===SDL.screen){SDL.screen=null}},blitSurface:function(src,srcrect,dst,dstrect,scale){var srcData=SDL.surfaces[src];var dstData=SDL.surfaces[dst];var sr,dr;if(srcrect){sr=SDL.loadRect(srcrect)}else{sr={x:0,y:0,w:srcData.width,h:srcData.height}}if(dstrect){dr=SDL.loadRect(dstrect)}else{dr={x:0,y:0,w:srcData.width,h:srcData.height}}if(dstData.clipRect){var widthScale=!scale||sr.w===0?1:sr.w/dr.w;var heightScale=!scale||sr.h===0?1:sr.h/dr.h;dr=SDL.intersectionOfRects(dstData.clipRect,dr);sr.w=dr.w*widthScale;sr.h=dr.h*heightScale;if(dstrect){SDL.updateRect(dstrect,dr)}}var blitw,blith;if(scale){blitw=dr.w;blith=dr.h}else{blitw=sr.w;blith=sr.h}if(sr.w===0||sr.h===0||blitw===0||blith===0){return 0}var oldAlpha=dstData.ctx.globalAlpha;dstData.ctx.globalAlpha=srcData.alpha/255;dstData.ctx.drawImage(srcData.canvas,sr.x,sr.y,sr.w,sr.h,dr.x,dr.y,blitw,blith);dstData.ctx.globalAlpha=oldAlpha;if(dst!=SDL.screen){warnOnce("WARNING: copying canvas data to memory for compatibility");_SDL_LockSurface(dst);dstData.locked--}return 0},downFingers:{},savedKeydown:null,receiveEvent:function(event){function unpressAllPressedKeys(){for(var code in SDL.keyboardMap){SDL.events.push({type:"keyup",keyCode:SDL.keyboardMap[code]})}}switch(event.type){case"touchstart":case"touchmove":{event.preventDefault();var touches=[];if(event.type==="touchstart"){for(var i=0;i0?Math.max(delta,1):Math.min(delta,-1);var button=delta>0?3:4;SDL.events.push({type:"mousedown",button:button,pageX:event.pageX,pageY:event.pageY});SDL.events.push({type:"mouseup",button:button,pageX:event.pageX,pageY:event.pageY});SDL.events.push({type:"wheel",deltaX:0,deltaY:delta});event.preventDefault();break;case"mousemove":if(SDL.DOMButtons[0]===1){SDL.events.push({type:"touchmove",touch:{identifier:0,deviceID:-1,pageX:event.pageX,pageY:event.pageY}})}if(Browser.pointerLock){if("mozMovementX"in event){event["movementX"]=event["mozMovementX"];event["movementY"]=event["mozMovementY"]}if(event["movementX"]==0&&event["movementY"]==0){event.preventDefault();return}}case"keydown":case"keyup":case"keypress":case"mousedown":case"mouseup":if(event.type!=="keydown"||!SDL_unicode()&&!SDL.textInput||(event.keyCode===8||event.keyCode===9)){event.preventDefault()}if(event.type=="mousedown"){SDL.DOMButtons[event.button]=1;SDL.events.push({type:"touchstart",touch:{identifier:0,deviceID:-1,pageX:event.pageX,pageY:event.pageY}})}else if(event.type=="mouseup"){if(!SDL.DOMButtons[event.button]){return}SDL.events.push({type:"touchend",touch:{identifier:0,deviceID:-1,pageX:event.pageX,pageY:event.pageY}});SDL.DOMButtons[event.button]=0}if(event.type==="keydown"||event.type==="mousedown"){SDL.canRequestFullscreen=true}else if(event.type==="keyup"||event.type==="mouseup"){if(SDL.isRequestingFullscreen){Module["requestFullscreen"](true,true);SDL.isRequestingFullscreen=false}SDL.canRequestFullscreen=false}if(event.type==="keypress"&&SDL.savedKeydown){SDL.savedKeydown.keypressCharCode=event.charCode;SDL.savedKeydown=null}else if(event.type==="keydown"){SDL.savedKeydown=event}if(event.type!=="keypress"||SDL.textInput){SDL.events.push(event)}break;case"mouseout":for(var i=0;i<3;i++){if(SDL.DOMButtons[i]){SDL.events.push({type:"mouseup",button:i,pageX:event.pageX,pageY:event.pageY});SDL.DOMButtons[i]=0}}event.preventDefault();break;case"focus":SDL.events.push(event);event.preventDefault();break;case"blur":SDL.events.push(event);unpressAllPressedKeys();event.preventDefault();break;case"visibilitychange":SDL.events.push({type:"visibilitychange",visible:!document.hidden});unpressAllPressedKeys();event.preventDefault();break;case"unload":if(Browser.mainLoop.runner){SDL.events.push(event);Browser.mainLoop.runner()}return;case"resize":SDL.events.push(event);if(event.preventDefault){event.preventDefault()}break}if(SDL.events.length>=1e4){err("SDL event queue full, dropping events");SDL.events=SDL.events.slice(0,1e4)}SDL.flushEventsToHandler();return},lookupKeyCodeForEvent:function(event){var code=event.keyCode;if(code>=65&&code<=90){code+=32}else{code=SDL.keyCodes[event.keyCode]||event.keyCode;if(event.location===2&&code>=(224|1<<10)&&code<=(227|1<<10)){code+=4}}return code},handleEvent:function(event){if(event.handled)return;event.handled=true;switch(event.type){case"touchstart":case"touchend":case"touchmove":{Browser.calculateMouseEvent(event);break}case"keydown":case"keyup":{var down=event.type==="keydown";var code=SDL.lookupKeyCodeForEvent(event);HEAP8[SDL.keyboardState+code>>0]=down;SDL.modState=(HEAP8[SDL.keyboardState+1248>>0]?64:0)|(HEAP8[SDL.keyboardState+1249>>0]?1:0)|(HEAP8[SDL.keyboardState+1250>>0]?256:0)|(HEAP8[SDL.keyboardState+1252>>0]?128:0)|(HEAP8[SDL.keyboardState+1253>>0]?2:0)|(HEAP8[SDL.keyboardState+1254>>0]?512:0);if(down){SDL.keyboardMap[code]=event.keyCode}else{delete SDL.keyboardMap[code]}break}case"mousedown":case"mouseup":if(event.type=="mousedown"){SDL.buttonState|=1<0){if(SDL.makeCEvent(SDL.events.shift(),ptr)!==false)return 1}return 0}else{return SDL.events.length>0}},makeCEvent:function(event,ptr){if(typeof event==="number"){_memcpy(ptr,event,28);_free(event);return}SDL.handleEvent(event);switch(event.type){case"keydown":case"keyup":{var down=event.type==="keydown";var key=SDL.lookupKeyCodeForEvent(event);var scan;if(key>=1024){scan=key-1024}else{scan=SDL.scanCodes[key]||key}HEAP32[ptr>>2]=SDL.DOMEventToSDLEvent[event.type];HEAP8[ptr+8>>0]=down?1:0;HEAP8[ptr+9>>0]=0;HEAP32[ptr+12>>2]=scan;HEAP32[ptr+16>>2]=key;HEAP16[ptr+20>>1]=SDL.modState;HEAP32[ptr+24>>2]=event.keypressCharCode||key;break}case"keypress":{HEAP32[ptr>>2]=SDL.DOMEventToSDLEvent[event.type];var cStr=intArrayFromString(String.fromCharCode(event.charCode));for(var i=0;i>0]=cStr[i]}break}case"mousedown":case"mouseup":case"mousemove":{if(event.type!="mousemove"){var down=event.type==="mousedown";HEAP32[ptr>>2]=SDL.DOMEventToSDLEvent[event.type];HEAP32[ptr+4>>2]=0;HEAP32[ptr+8>>2]=0;HEAP32[ptr+12>>2]=0;HEAP8[ptr+16>>0]=event.button+1;HEAP8[ptr+17>>0]=down?1:0;HEAP32[ptr+20>>2]=Browser.mouseX;HEAP32[ptr+24>>2]=Browser.mouseY}else{HEAP32[ptr>>2]=SDL.DOMEventToSDLEvent[event.type];HEAP32[ptr+4>>2]=0;HEAP32[ptr+8>>2]=0;HEAP32[ptr+12>>2]=0;HEAP32[ptr+16>>2]=SDL.buttonState;HEAP32[ptr+20>>2]=Browser.mouseX;HEAP32[ptr+24>>2]=Browser.mouseY;HEAP32[ptr+28>>2]=Browser.mouseMovementX;HEAP32[ptr+32>>2]=Browser.mouseMovementY}break}case"wheel":{HEAP32[ptr>>2]=SDL.DOMEventToSDLEvent[event.type];HEAP32[ptr+16>>2]=event.deltaX;HEAP32[ptr+20>>2]=event.deltaY;break}case"touchstart":case"touchend":case"touchmove":{var touch=event.touch;if(!Browser.touches[touch.identifier])break;var w=Module["canvas"].width;var h=Module["canvas"].height;var x=Browser.touches[touch.identifier].x/w;var y=Browser.touches[touch.identifier].y/h;var lx=Browser.lastTouches[touch.identifier].x/w;var ly=Browser.lastTouches[touch.identifier].y/h;var dx=x-lx;var dy=y-ly;if(touch["deviceID"]===undefined)touch.deviceID=SDL.TOUCH_DEFAULT_ID;if(dx===0&&dy===0&&event.type==="touchmove")return false;HEAP32[ptr>>2]=SDL.DOMEventToSDLEvent[event.type];HEAP32[ptr+4>>2]=_SDL_GetTicks();tempI64=[touch.deviceID>>>0,(tempDouble=touch.deviceID,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[ptr+8>>2]=tempI64[0],HEAP32[ptr+12>>2]=tempI64[1];tempI64=[touch.identifier>>>0,(tempDouble=touch.identifier,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[ptr+16>>2]=tempI64[0],HEAP32[ptr+20>>2]=tempI64[1];HEAPF32[ptr+24>>2]=x;HEAPF32[ptr+28>>2]=y;HEAPF32[ptr+32>>2]=dx;HEAPF32[ptr+36>>2]=dy;if(touch.force!==undefined){HEAPF32[ptr+40>>2]=touch.force}else{HEAPF32[ptr+40>>2]=event.type=="touchend"?0:1}break}case"unload":{HEAP32[ptr>>2]=SDL.DOMEventToSDLEvent[event.type];break}case"resize":{HEAP32[ptr>>2]=SDL.DOMEventToSDLEvent[event.type];HEAP32[ptr+4>>2]=event.w;HEAP32[ptr+8>>2]=event.h;break}case"joystick_button_up":case"joystick_button_down":{var state=event.type==="joystick_button_up"?0:1;HEAP32[ptr>>2]=SDL.DOMEventToSDLEvent[event.type];HEAP8[ptr+4>>0]=event.index;HEAP8[ptr+5>>0]=event.button;HEAP8[ptr+6>>0]=state;break}case"joystick_axis_motion":{HEAP32[ptr>>2]=SDL.DOMEventToSDLEvent[event.type];HEAP8[ptr+4>>0]=event.index;HEAP8[ptr+5>>0]=event.axis;HEAP32[ptr+8>>2]=SDL.joystickAxisValueConversion(event.value);break}case"focus":{var SDL_WINDOWEVENT_FOCUS_GAINED=12;HEAP32[ptr>>2]=SDL.DOMEventToSDLEvent[event.type];HEAP32[ptr+4>>2]=0;HEAP8[ptr+8>>0]=SDL_WINDOWEVENT_FOCUS_GAINED;break}case"blur":{var SDL_WINDOWEVENT_FOCUS_LOST=13;HEAP32[ptr>>2]=SDL.DOMEventToSDLEvent[event.type];HEAP32[ptr+4>>2]=0;HEAP8[ptr+8>>0]=SDL_WINDOWEVENT_FOCUS_LOST;break}case"visibilitychange":{var SDL_WINDOWEVENT_SHOWN=1;var SDL_WINDOWEVENT_HIDDEN=2;var visibilityEventID=event.visible?SDL_WINDOWEVENT_SHOWN:SDL_WINDOWEVENT_HIDDEN;HEAP32[ptr>>2]=SDL.DOMEventToSDLEvent[event.type];HEAP32[ptr+4>>2]=0;HEAP8[ptr+8>>0]=visibilityEventID;break}default:throw"Unhandled SDL event: "+event.type}},makeFontString:function(height,fontName){if(fontName.charAt(0)!="'"&&fontName.charAt(0)!='"'){fontName='"'+fontName+'"'}return height+"px "+fontName+", serif"},estimateTextWidth:function(fontData,text){var h=fontData.size;var fontString=SDL.makeFontString(h,fontData.name);var tempCtx=SDL_ttfContext();tempCtx.font=fontString;var ret=tempCtx.measureText(text).width|0;return ret},allocateChannels:function(num){if(SDL.numChannels&&SDL.numChannels>=num&&num!=0)return;SDL.numChannels=num;SDL.channels=[];for(var i=0;i>1]/32768}}else if(audio.format==8){for(var j=0;j>0];channelData[j]=(v>=0?v-128:v+128)/128}}else if(audio.format==33056){for(var j=0;j>2]}}else{throw"Invalid SDL audio format "+audio.format+"!"}}},debugSurface:function(surfData){out("dumping surface "+[surfData.surf,surfData.source,surfData.width,surfData.height]);var image=surfData.ctx.getImageData(0,0,surfData.width,surfData.height);var data=image.data;var num=Math.min(surfData.width,surfData.height);for(var i=0;i0}},queryJoysticks:function(){for(var joystick in SDL.lastJoystickState){var state=SDL.getGamepad(joystick-1);var prevState=SDL.lastJoystickState[joystick];if(typeof state==="undefined")return;if(state===null)return;if(typeof state.timestamp!=="number"||state.timestamp!==prevState.timestamp||!state.timestamp){var i;for(i=0;ideviceIndex&&deviceIndex>=0){return gamepads[deviceIndex]}return null}};Module["SDL"]=SDL;function SDL_unicode(){return SDL.unicode}Module["SDL_unicode"]=SDL_unicode;function _SDL_Linked_Version(){if(SDL.version===null){SDL.version=_malloc(3);HEAP8[SDL.version+0>>0]=1;HEAP8[SDL.version+1>>0]=3;HEAP8[SDL.version+2>>0]=0}return SDL.version}Module["_SDL_Linked_Version"]=_SDL_Linked_Version;_SDL_Linked_Version.sig="i";function _SDL_Init(initFlags){SDL.startTime=Date.now();SDL.initFlags=initFlags;if(!Module["doNotCaptureKeyboard"]){var keyboardListeningElement=Module["keyboardListeningElement"]||document;keyboardListeningElement.addEventListener("keydown",SDL.receiveEvent);keyboardListeningElement.addEventListener("keyup",SDL.receiveEvent);keyboardListeningElement.addEventListener("keypress",SDL.receiveEvent);window.addEventListener("focus",SDL.receiveEvent);window.addEventListener("blur",SDL.receiveEvent);document.addEventListener("visibilitychange",SDL.receiveEvent)}window.addEventListener("unload",SDL.receiveEvent);SDL.keyboardState=_malloc(65536);zeroMemory(SDL.keyboardState,65536);SDL.DOMEventToSDLEvent["keydown"]=768;SDL.DOMEventToSDLEvent["keyup"]=769;SDL.DOMEventToSDLEvent["keypress"]=771;SDL.DOMEventToSDLEvent["mousedown"]=1025;SDL.DOMEventToSDLEvent["mouseup"]=1026;SDL.DOMEventToSDLEvent["mousemove"]=1024;SDL.DOMEventToSDLEvent["wheel"]=1027;SDL.DOMEventToSDLEvent["touchstart"]=1792;SDL.DOMEventToSDLEvent["touchend"]=1793;SDL.DOMEventToSDLEvent["touchmove"]=1794;SDL.DOMEventToSDLEvent["unload"]=256;SDL.DOMEventToSDLEvent["resize"]=28673;SDL.DOMEventToSDLEvent["visibilitychange"]=512;SDL.DOMEventToSDLEvent["focus"]=512;SDL.DOMEventToSDLEvent["blur"]=512;SDL.DOMEventToSDLEvent["joystick_axis_motion"]=1536;SDL.DOMEventToSDLEvent["joystick_button_down"]=1539;SDL.DOMEventToSDLEvent["joystick_button_up"]=1540;return 0}Module["_SDL_Init"]=_SDL_Init;_SDL_Init.sig="ii";function _SDL_WasInit(){if(SDL.startTime===null){_SDL_Init()}return 1}Module["_SDL_WasInit"]=_SDL_WasInit;_SDL_WasInit.sig="i";function _SDL_GetVideoInfo(){var ret=_malloc(5*4);HEAP32[ret+0>>2]=0;HEAP32[ret+4>>2]=0;HEAP32[ret+8>>2]=0;HEAP32[ret+12>>2]=Module["canvas"].width;HEAP32[ret+16>>2]=Module["canvas"].height;return ret}Module["_SDL_GetVideoInfo"]=_SDL_GetVideoInfo;_SDL_GetVideoInfo.sig="i";function _SDL_ListModes(format,flags){return-1}Module["_SDL_ListModes"]=_SDL_ListModes;function _SDL_VideoModeOK(width,height,depth,flags){return depth}Module["_SDL_VideoModeOK"]=_SDL_VideoModeOK;function _SDL_VideoDriverName(buf,max_size){if(SDL.startTime===null){return 0}var driverName=[101,109,115,99,114,105,112,116,101,110,95,115,100,108,95,100,114,105,118,101,114];var index=0;var size=driverName.length;if(max_size<=size){size=max_size-1}while(index>0]=value;index++}HEAP8[buf+index>>0]=0;return buf}Module["_SDL_VideoDriverName"]=_SDL_VideoDriverName;_SDL_VideoDriverName.sig="iii";function _SDL_AudioDriverName(buf,max_size){return _SDL_VideoDriverName(buf,max_size)}Module["_SDL_AudioDriverName"]=_SDL_AudioDriverName;function _SDL_SetVideoMode(width,height,depth,flags){["touchstart","touchend","touchmove","mousedown","mouseup","mousemove","DOMMouseScroll","mousewheel","wheel","mouseout"].forEach(function(event){Module["canvas"].addEventListener(event,SDL.receiveEvent,true)});var canvas=Module["canvas"];if(width==0&&height==0){width=canvas.width;height=canvas.height}if(!SDL.addedResizeListener){SDL.addedResizeListener=true;Browser.resizeListeners.push(function(w,h){if(!SDL.settingVideoMode){SDL.receiveEvent({type:"resize",w:w,h:h})}})}SDL.settingVideoMode=true;Browser.setCanvasSize(width,height);SDL.settingVideoMode=false;if(SDL.screen){SDL.freeSurface(SDL.screen);assert(!SDL.screen)}if(SDL.GL)flags=flags|67108864;SDL.screen=SDL.makeSurface(width,height,flags,true,"screen");return SDL.screen}Module["_SDL_SetVideoMode"]=_SDL_SetVideoMode;_SDL_SetVideoMode.sig="iiiii";function _SDL_GetVideoSurface(){return SDL.screen}Module["_SDL_GetVideoSurface"]=_SDL_GetVideoSurface;_SDL_GetVideoSurface.sig="i";function _SDL_AudioQuit(){for(var i=0;i0){return}if(surfData.isFlagSet(2097152)){SDL.copyIndexedColorData(surfData)}else if(!surfData.colors){var data=surfData.image.data;var buffer=surfData.buffer;assert(buffer%4==0,"Invalid buffer offset: "+buffer);var src=buffer>>2;var dst=0;var isScreen=surf==SDL.screen;var num;if(typeof CanvasPixelArray!=="undefined"&&data instanceof CanvasPixelArray){num=data.length;while(dst>8&255;data[dst+2]=val>>16&255;data[dst+3]=isScreen?255:val>>24&255;src++;dst+=4}}else{var data32=new Uint32Array(data.buffer);if(isScreen&&SDL.defaults.opaqueFrontBuffer){num=data32.length;data32.set(HEAP32.subarray(src,src+num));var data8=new Uint8Array(data.buffer);var i=3;var j=i+4*num;if(num%8==0){while(i>0]*4;var start=base+x*4;data[start]=colors[val];data[start+1]=colors[val+1];data[start+2]=colors[val+2]}s+=width*3}}surfData.ctx.putImageData(surfData.image,0,0)}Module["_SDL_UnlockSurface"]=_SDL_UnlockSurface;_SDL_UnlockSurface.sig="vi";function _SDL_Flip(surf){}Module["_SDL_Flip"]=_SDL_Flip;function _SDL_UpdateRect(surf,x,y,w,h){}Module["_SDL_UpdateRect"]=_SDL_UpdateRect;function _SDL_UpdateRects(surf,numrects,rects){}Module["_SDL_UpdateRects"]=_SDL_UpdateRects;function _SDL_Delay(delay){if(!ENVIRONMENT_IS_WORKER)abort("SDL_Delay called on the main thread! Potential infinite loop, quitting. (consider building with async support like ASYNCIFY)");var now=Date.now();while(Date.now()-now>2]=65536}return SDL.keyboardState}Module["_SDL_GetKeyboardState"]=_SDL_GetKeyboardState;_SDL_GetKeyboardState.sig="ii";function _SDL_GetKeyState(){return _SDL_GetKeyboardState()}Module["_SDL_GetKeyState"]=_SDL_GetKeyState;function _SDL_GetKeyName(key){if(!SDL.keyName){SDL.keyName=allocate(intArrayFromString("unknown key"),ALLOC_NORMAL)}return SDL.keyName}Module["_SDL_GetKeyName"]=_SDL_GetKeyName;_SDL_GetKeyName.sig="ii";function _SDL_GetModState(){return SDL.modState}Module["_SDL_GetModState"]=_SDL_GetModState;_SDL_GetModState.sig="i";function _SDL_GetMouseState(x,y){if(x)HEAP32[x>>2]=Browser.mouseX;if(y)HEAP32[y>>2]=Browser.mouseY;return SDL.buttonState}Module["_SDL_GetMouseState"]=_SDL_GetMouseState;_SDL_GetMouseState.sig="iii";function _SDL_WarpMouse(x,y){return}Module["_SDL_WarpMouse"]=_SDL_WarpMouse;_SDL_WarpMouse.sig="vii";function _SDL_ShowCursor(toggle){switch(toggle){case 0:if(Browser.isFullscreen){Module["canvas"].requestPointerLock();return 0}else{return 1}break;case 1:Module["canvas"].exitPointerLock();return 1;break;case-1:return!Browser.pointerLock;break;default:out("SDL_ShowCursor called with unknown toggle parameter value: "+toggle+".");break}}Module["_SDL_ShowCursor"]=_SDL_ShowCursor;_SDL_ShowCursor.sig="ii";function _SDL_GetError(){if(!SDL.errorMessage){SDL.errorMessage=allocate(intArrayFromString("unknown SDL-emscripten error"),ALLOC_NORMAL)}return SDL.errorMessage}Module["_SDL_GetError"]=_SDL_GetError;_SDL_GetError.sig="i";function _SDL_SetError(){}Module["_SDL_SetError"]=_SDL_SetError;function _SDL_malloc(size){return _malloc(size)}Module["_SDL_malloc"]=_SDL_malloc;_SDL_malloc.sig="ii";function _SDL_free(ptr){_free(ptr)}Module["_SDL_free"]=_SDL_free;_SDL_free.sig="vi";function _SDL_CreateRGBSurface(flags,width,height,depth,rmask,gmask,bmask,amask){return SDL.makeSurface(width,height,flags,false,"CreateRGBSurface",rmask,gmask,bmask,amask)}Module["_SDL_CreateRGBSurface"]=_SDL_CreateRGBSurface;_SDL_CreateRGBSurface.sig="iiiiiiiii";function _SDL_CreateRGBSurfaceFrom(pixels,width,height,depth,pitch,rmask,gmask,bmask,amask){var surf=SDL.makeSurface(width,height,0,false,"CreateRGBSurfaceFrom",rmask,gmask,bmask,amask);if(depth!==32){out("TODO: Partially unimplemented SDL_CreateRGBSurfaceFrom called!");return surf}var data=SDL.surfaces[surf];var image=data.ctx.createImageData(width,height);var pitchOfDst=width*4;for(var row=0;row>0]}}data.ctx.putImageData(image,0,0);return surf}Module["_SDL_CreateRGBSurfaceFrom"]=_SDL_CreateRGBSurfaceFrom;_SDL_CreateRGBSurfaceFrom.sig="iiiiiiiiii";function _SDL_ConvertSurface(surf,format,flags){if(format){SDL.checkPixelFormat(format)}var oldData=SDL.surfaces[surf];var ret=SDL.makeSurface(oldData.width,oldData.height,oldData.flags,false,"copy:"+oldData.source);var newData=SDL.surfaces[ret];newData.ctx.globalCompositeOperation="copy";newData.ctx.drawImage(oldData.canvas,0,0);newData.ctx.globalCompositeOperation=oldData.ctx.globalCompositeOperation;return ret}Module["_SDL_ConvertSurface"]=_SDL_ConvertSurface;_SDL_ConvertSurface.sig="iiii";function _SDL_DisplayFormatAlpha(surf){return _SDL_ConvertSurface(surf)}Module["_SDL_DisplayFormatAlpha"]=_SDL_DisplayFormatAlpha;function _SDL_FreeSurface(surf){if(surf)SDL.freeSurface(surf)}Module["_SDL_FreeSurface"]=_SDL_FreeSurface;_SDL_FreeSurface.sig="vi";function _SDL_UpperBlit(src,srcrect,dst,dstrect){return SDL.blitSurface(src,srcrect,dst,dstrect,false)}Module["_SDL_UpperBlit"]=_SDL_UpperBlit;_SDL_UpperBlit.sig="iiiii";function _SDL_UpperBlitScaled(src,srcrect,dst,dstrect){return SDL.blitSurface(src,srcrect,dst,dstrect,true)}Module["_SDL_UpperBlitScaled"]=_SDL_UpperBlitScaled;_SDL_UpperBlitScaled.sig="iiiii";function _SDL_LowerBlit(a0,a1,a2,a3){return _SDL_UpperBlit(a0,a1,a2,a3)}Module["_SDL_LowerBlit"]=_SDL_LowerBlit;_SDL_LowerBlit.sig="iiiii";function _SDL_LowerBlitScaled(a0,a1,a2,a3){return _SDL_UpperBlitScaled(a0,a1,a2,a3)}Module["_SDL_LowerBlitScaled"]=_SDL_LowerBlitScaled;_SDL_LowerBlitScaled.sig="iiiii";function _SDL_GetClipRect(surf,rect){assert(rect);var surfData=SDL.surfaces[surf];var r=surfData.clipRect||{x:0,y:0,w:surfData.width,h:surfData.height};SDL.updateRect(rect,r)}Module["_SDL_GetClipRect"]=_SDL_GetClipRect;_SDL_GetClipRect.sig="vii";function _SDL_SetClipRect(surf,rect){var surfData=SDL.surfaces[surf];if(rect){surfData.clipRect=SDL.intersectionOfRects({x:0,y:0,w:surfData.width,h:surfData.height},SDL.loadRect(rect))}else{delete surfData.clipRect}}Module["_SDL_SetClipRect"]=_SDL_SetClipRect;_SDL_SetClipRect.sig="vii";function _SDL_FillRect(surf,rect,color){var surfData=SDL.surfaces[surf];assert(!surfData.locked);if(surfData.isFlagSet(2097152)){color=surfData.colors32[color]}var r=rect?SDL.loadRect(rect):{x:0,y:0,w:surfData.width,h:surfData.height};if(surfData.clipRect){r=SDL.intersectionOfRects(surfData.clipRect,r);if(rect){SDL.updateRect(rect,r)}}surfData.ctx.save();surfData.ctx.fillStyle=SDL.translateColorToCSSRGBA(color);surfData.ctx.fillRect(r.x,r.y,r.w,r.h);surfData.ctx.restore();return 0}Module["_SDL_FillRect"]=_SDL_FillRect;_SDL_FillRect.sig="iiii";function _SDL_BlitSurface(src,srcrect,dst,dstrect){return SDL.blitSurface(src,srcrect,dst,dstrect,false)}Module["_SDL_BlitSurface"]=_SDL_BlitSurface;_SDL_BlitSurface.sig="iiiii";function _SDL_BlitScaled(src,srcrect,dst,dstrect){return SDL.blitSurface(src,srcrect,dst,dstrect,true)}Module["_SDL_BlitScaled"]=_SDL_BlitScaled;_SDL_BlitScaled.sig="iiiii";function _zoomSurface(src,x,y,smooth){var srcData=SDL.surfaces[src];var w=srcData.width*x;var h=srcData.height*y;var ret=SDL.makeSurface(Math.abs(w),Math.abs(h),srcData.flags,false,"zoomSurface");var dstData=SDL.surfaces[ret];if(x>=0&&y>=0)dstData.ctx.drawImage(srcData.canvas,0,0,w,h);else{dstData.ctx.save();dstData.ctx.scale(x<0?-1:1,y<0?-1:1);dstData.ctx.drawImage(srcData.canvas,w<0?w:0,h<0?h:0,Math.abs(w),Math.abs(h));dstData.ctx.restore()}return ret}Module["_zoomSurface"]=_zoomSurface;function _rotozoomSurface(src,angle,zoom,smooth){if(angle%360===0){return _zoomSurface(src,zoom,zoom,smooth)}var srcData=SDL.surfaces[src];var w=srcData.width*zoom;var h=srcData.height*zoom;var diagonal=Math.ceil(Math.sqrt(Math.pow(w,2)+Math.pow(h,2)));var ret=SDL.makeSurface(diagonal,diagonal,srcData.flags,false,"rotozoomSurface");var dstData=SDL.surfaces[ret];dstData.ctx.translate(diagonal/2,diagonal/2);dstData.ctx.rotate(-angle*Math.PI/180);dstData.ctx.drawImage(srcData.canvas,-w/2,-h/2,w,h);return ret}Module["_rotozoomSurface"]=_rotozoomSurface;function _SDL_SetAlpha(surf,flag,alpha){var surfData=SDL.surfaces[surf];surfData.alpha=alpha;if(!(flag&65536)){surfData.alpha=255}}Module["_SDL_SetAlpha"]=_SDL_SetAlpha;_SDL_SetAlpha.sig="iiii";function _SDL_SetColorKey(surf,flag,key){warnOnce("SDL_SetColorKey is a no-op for performance reasons");return 0}Module["_SDL_SetColorKey"]=_SDL_SetColorKey;function _SDL_PollEvent(ptr){return SDL.pollEvent(ptr)}Module["_SDL_PollEvent"]=_SDL_PollEvent;_SDL_PollEvent.sig="ii";function _SDL_PushEvent(ptr){var copy=_malloc(28);_memcpy(copy,ptr,28);SDL.events.push(copy);return 0}Module["_SDL_PushEvent"]=_SDL_PushEvent;_SDL_PushEvent.sig="ii";function _SDL_PeepEvents(events,requestedEventCount,action,from,to){switch(action){case 2:{assert(requestedEventCount==1);var index=0;var retrievedEventCount=0;while(index>0];surfData.colors[index+1]=HEAPU8[colors+(i*4+1)>>0];surfData.colors[index+2]=HEAPU8[colors+(i*4+2)>>0];surfData.colors[index+3]=255}return 1}Module["_SDL_SetColors"]=_SDL_SetColors;_SDL_SetColors.sig="iiiii";function _SDL_SetPalette(surf,flags,colors,firstColor,nColors){return _SDL_SetColors(surf,colors,firstColor,nColors)}Module["_SDL_SetPalette"]=_SDL_SetPalette;function _SDL_MapRGB(fmt,r,g,b){SDL.checkPixelFormat(fmt);return r&255|(g&255)<<8|(b&255)<<16|4278190080}Module["_SDL_MapRGB"]=_SDL_MapRGB;_SDL_MapRGB.sig="iiiii";function _SDL_MapRGBA(fmt,r,g,b,a){SDL.checkPixelFormat(fmt);return r&255|(g&255)<<8|(b&255)<<16|(a&255)<<24}Module["_SDL_MapRGBA"]=_SDL_MapRGBA;_SDL_MapRGBA.sig="iiiiii";function _SDL_GetRGB(pixel,fmt,r,g,b){SDL.checkPixelFormat(fmt);if(r){HEAP8[r>>0]=pixel&255}if(g){HEAP8[g>>0]=pixel>>8&255}if(b){HEAP8[b>>0]=pixel>>16&255}}Module["_SDL_GetRGB"]=_SDL_GetRGB;_SDL_GetRGB.sig="viiiii";function _SDL_GetRGBA(pixel,fmt,r,g,b,a){SDL.checkPixelFormat(fmt);if(r){HEAP8[r>>0]=pixel&255}if(g){HEAP8[g>>0]=pixel>>8&255}if(b){HEAP8[b>>0]=pixel>>16&255}if(a){HEAP8[a>>0]=pixel>>24&255}}Module["_SDL_GetRGBA"]=_SDL_GetRGBA;_SDL_GetRGBA.sig="viiiiii";function _SDL_GetAppState(){var state=0;if(Browser.pointerLock){state|=1}if(document.hasFocus()){state|=2}state|=4;return state}Module["_SDL_GetAppState"]=_SDL_GetAppState;_SDL_GetAppState.sig="i";function _SDL_WM_GrabInput(){}Module["_SDL_WM_GrabInput"]=_SDL_WM_GrabInput;function _SDL_WM_ToggleFullScreen(surf){if(Browser.exitFullscreen()){return 1}else{if(!SDL.canRequestFullscreen){return 0}SDL.isRequestingFullscreen=true;return 1}}Module["_SDL_WM_ToggleFullScreen"]=_SDL_WM_ToggleFullScreen;_SDL_WM_ToggleFullScreen.sig="ii";function _IMG_Init(flags){return flags}Module["_IMG_Init"]=_IMG_Init;function _SDL_FreeRW(rwopsID){SDL.rwops[rwopsID]=null;while(SDL.rwops.length>0&&SDL.rwops[SDL.rwops.length-1]===null){SDL.rwops.pop()}}Module["_SDL_FreeRW"]=_SDL_FreeRW;_SDL_FreeRW.sig="vi";function _IMG_Load_RW(rwopsID,freeSrc){try{var cleanup=function(){if(rwops&&freeSrc)_SDL_FreeRW(rwopsID)};var addCleanup=function(func){var old=cleanup;cleanup=function added_cleanup(){old();func()}};var callStbImage=function(func,params){var x=Module["_malloc"](4);var y=Module["_malloc"](4);var comp=Module["_malloc"](4);addCleanup(function(){Module["_free"](x);Module["_free"](y);Module["_free"](comp);if(data)Module["_stbi_image_free"](data)});var data=Module["_"+func].apply(null,params.concat([x,y,comp,0]));if(!data)return null;return{rawData:true,data:data,width:HEAP32[x>>2],height:HEAP32[y>>2],size:HEAP32[x>>2]*HEAP32[y>>2]*HEAP32[comp>>2],bpp:HEAP32[comp>>2]}};var rwops=SDL.rwops[rwopsID];if(rwops===undefined){return 0}var raw;var filename=rwops.filename;if(filename===undefined){warnOnce("Only file names that have been preloaded are supported for IMG_Load_RW. Consider using STB_IMAGE=1 if you want synchronous image decoding (see settings.js), or package files with --use-preload-plugins");return 0}if(!raw){filename=PATH_FS.resolve(filename);raw=Module["preloadedImages"][filename];if(!raw){if(raw===null)err("Trying to reuse preloaded image, but freePreloadedMediaOnUse is set!");warnOnce("Cannot find preloaded image "+filename);warnOnce("Cannot find preloaded image "+filename+". Consider using STB_IMAGE=1 if you want synchronous image decoding (see settings.js), or package files with --use-preload-plugins");return 0}else if(Module["freePreloadedMediaOnUse"]){Module["preloadedImages"][filename]=null}}var surf=SDL.makeSurface(raw.width,raw.height,0,false,"load:"+filename);var surfData=SDL.surfaces[surf];surfData.ctx.globalCompositeOperation="copy";if(!raw.rawData){surfData.ctx.drawImage(raw,0,0,raw.width,raw.height,0,0,raw.width,raw.height)}else{var imageData=surfData.ctx.getImageData(0,0,surfData.width,surfData.height);if(raw.bpp==4){imageData.data.set(HEAPU8.subarray(raw.data,raw.data+raw.size))}else if(raw.bpp==3){var pixels=raw.size/3;var data=imageData.data;var sourcePtr=raw.data;var destPtr=0;for(var i=0;i>0];data[destPtr++]=HEAPU8[sourcePtr++>>0];data[destPtr++]=HEAPU8[sourcePtr++>>0];data[destPtr++]=255}}else if(raw.bpp==2){var pixels=raw.size;var data=imageData.data;var sourcePtr=raw.data;var destPtr=0;for(var i=0;i>0];var alpha=HEAPU8[sourcePtr++>>0];data[destPtr++]=gray;data[destPtr++]=gray;data[destPtr++]=gray;data[destPtr++]=alpha}}else if(raw.bpp==1){var pixels=raw.size;var data=imageData.data;var sourcePtr=raw.data;var destPtr=0;for(var i=0;i>0];data[destPtr++]=value;data[destPtr++]=value;data[destPtr++]=value;data[destPtr++]=255}}else{err("cannot handle bpp "+raw.bpp);return 0}surfData.ctx.putImageData(imageData,0,0)}surfData.ctx.globalCompositeOperation="source-over";_SDL_LockSurface(surf);surfData.locked--;if(SDL.GL){surfData.canvas=surfData.ctx=null}return surf}finally{cleanup()}}Module["_IMG_Load_RW"]=_IMG_Load_RW;_IMG_Load_RW.sig="iii";function _SDL_RWFromFile(_name,mode){var id=SDL.rwops.length;var name=UTF8ToString(_name);SDL.rwops.push({filename:name,mimetype:Browser.getMimetype(name)});return id}Module["_SDL_RWFromFile"]=_SDL_RWFromFile;_SDL_RWFromFile.sig="iii";function _IMG_Load(filename){var rwops=_SDL_RWFromFile(filename);var result=_IMG_Load_RW(rwops,1);return result}Module["_IMG_Load"]=_IMG_Load;_IMG_Load.sig="ii";function _SDL_LoadBMP(a0){return _IMG_Load(a0)}Module["_SDL_LoadBMP"]=_SDL_LoadBMP;_SDL_LoadBMP.sig="ii";function _SDL_LoadBMP_RW(a0,a1){return _IMG_Load_RW(a0,a1)}Module["_SDL_LoadBMP_RW"]=_SDL_LoadBMP_RW;_SDL_LoadBMP_RW.sig="iii";function _IMG_Quit(){out("IMG_Quit called (and ignored)")}Module["_IMG_Quit"]=_IMG_Quit;function _SDL_OpenAudio(desired,obtained){try{SDL.audio={freq:HEAPU32[desired>>2],format:HEAPU16[desired+4>>1],channels:HEAPU8[desired+6>>0],samples:HEAPU16[desired+8>>1],callback:HEAPU32[desired+16>>2],userdata:HEAPU32[desired+20>>2],paused:true,timer:null};if(SDL.audio.format==8){SDL.audio.silence=128}else if(SDL.audio.format==32784){SDL.audio.silence=0}else if(SDL.audio.format==33056){SDL.audio.silence=0}else{throw"Invalid SDL audio format "+SDL.audio.format+"!"}if(SDL.audio.freq<=0){throw"Unsupported sound frequency "+SDL.audio.freq+"!"}else if(SDL.audio.freq<=22050){SDL.audio.freq=22050}else if(SDL.audio.freq<=32e3){SDL.audio.freq=32e3}else if(SDL.audio.freq<=44100){SDL.audio.freq=44100}else if(SDL.audio.freq<=48e3){SDL.audio.freq=48e3}else if(SDL.audio.freq<=96e3){SDL.audio.freq=96e3}else{throw"Unsupported sound frequency "+SDL.audio.freq+"!"}if(SDL.audio.channels==0){SDL.audio.channels=1}else if(SDL.audio.channels<0||SDL.audio.channels>32){throw"Unsupported number of audio channels for SDL audio: "+SDL.audio.channels+"!"}else if(SDL.audio.channels!=1&&SDL.audio.channels!=2){out("Warning: Using untested number of audio channels "+SDL.audio.channels)}if(SDL.audio.samples<128||SDL.audio.samples>524288){throw"Unsupported audio callback buffer size "+SDL.audio.samples+"!"}else if((SDL.audio.samples&SDL.audio.samples-1)!=0){throw"Audio callback buffer size "+SDL.audio.samples+" must be a power-of-two!"}var totalSamples=SDL.audio.samples*SDL.audio.channels;if(SDL.audio.format==8){SDL.audio.bytesPerSample=1}else if(SDL.audio.format==32784){SDL.audio.bytesPerSample=2}else if(SDL.audio.format==33056){SDL.audio.bytesPerSample=4}else{throw"Invalid SDL audio format "+SDL.audio.format+"!"}SDL.audio.bufferSize=totalSamples*SDL.audio.bytesPerSample;SDL.audio.bufferDurationSecs=SDL.audio.bufferSize/SDL.audio.bytesPerSample/SDL.audio.channels/SDL.audio.freq;SDL.audio.bufferingDelay=50/1e3;SDL.audio.buffer=_malloc(SDL.audio.bufferSize);SDL.audio.numSimultaneouslyQueuedBuffers=Module["SDL_numSimultaneouslyQueuedBuffers"]||5;SDL.audio.queueNewAudioData=function SDL_queueNewAudioData(){if(!SDL.audio)return;for(var i=0;i=SDL.audio.bufferingDelay+SDL.audio.bufferDurationSecs*SDL.audio.numSimultaneouslyQueuedBuffers)return;wasmTable.get(SDL.audio.callback)(SDL.audio.userdata,SDL.audio.buffer,SDL.audio.bufferSize);SDL.audio.pushAudio(SDL.audio.buffer,SDL.audio.bufferSize)}};SDL.audio.caller=function SDL_audioCaller(){if(!SDL.audio)return;--SDL.audio.numAudioTimersPending;SDL.audio.queueNewAudioData();var secsUntilNextPlayStart=SDL.audio.nextPlayTime-SDL.audioContext["currentTime"];var preemptBufferFeedSecs=SDL.audio.bufferDurationSecs/2;if(SDL.audio.numAudioTimersPending>2]=SDL.audio.freq;HEAP16[obtained+4>>1]=SDL.audio.format;HEAP8[obtained+6>>0]=SDL.audio.channels;HEAP8[obtained+7>>0]=SDL.audio.silence;HEAP16[obtained+8>>1]=SDL.audio.samples;HEAP32[obtained+16>>2]=SDL.audio.callback;HEAP32[obtained+20>>2]=SDL.audio.userdata}SDL.allocateChannels(32)}catch(e){out('Initializing SDL audio threw an exception: "'+e.toString()+'"! Continuing without audio.');SDL.audio=null;SDL.allocateChannels(0);if(obtained){HEAP32[obtained>>2]=0;HEAP16[obtained+4>>1]=0;HEAP8[obtained+6>>0]=0;HEAP8[obtained+7>>0]=0;HEAP16[obtained+8>>1]=0;HEAP32[obtained+16>>2]=0;HEAP32[obtained+20>>2]=0}}if(!SDL.audio){return-1}return 0}Module["_SDL_OpenAudio"]=_SDL_OpenAudio;_SDL_OpenAudio.sig="iii";function _SDL_PauseAudio(pauseOn){if(!SDL.audio){return}if(pauseOn){if(SDL.audio.timer!==undefined){clearTimeout(SDL.audio.timer);SDL.audio.numAudioTimersPending=0;SDL.audio.timer=undefined}}else if(!SDL.audio.timer){SDL.audio.numAudioTimersPending=1;SDL.audio.timer=safeSetTimeout(SDL.audio.caller,1)}SDL.audio.paused=pauseOn}Module["_SDL_PauseAudio"]=_SDL_PauseAudio;_SDL_PauseAudio.sig="vi";function _SDL_CloseAudio(){if(SDL.audio){if(SDL.audio.callbackRemover){SDL.audio.callbackRemover();SDL.audio.callbackRemover=null}_SDL_PauseAudio(1);_free(SDL.audio.buffer);SDL.audio=null;SDL.allocateChannels(0)}}Module["_SDL_CloseAudio"]=_SDL_CloseAudio;_SDL_CloseAudio.sig="v";function _SDL_LockAudio(){}Module["_SDL_LockAudio"]=_SDL_LockAudio;function _SDL_UnlockAudio(){}Module["_SDL_UnlockAudio"]=_SDL_UnlockAudio;function _SDL_CreateMutex(){return 0}Module["_SDL_CreateMutex"]=_SDL_CreateMutex;function _SDL_LockMutex(){}Module["_SDL_LockMutex"]=_SDL_LockMutex;function _SDL_UnlockMutex(){}Module["_SDL_UnlockMutex"]=_SDL_UnlockMutex;function _SDL_mutexP(){return 0}Module["_SDL_mutexP"]=_SDL_mutexP;function _SDL_mutexV(){return 0}Module["_SDL_mutexV"]=_SDL_mutexV;function _SDL_DestroyMutex(){}Module["_SDL_DestroyMutex"]=_SDL_DestroyMutex;function _SDL_CreateCond(){return 0}Module["_SDL_CreateCond"]=_SDL_CreateCond;function _SDL_CondSignal(){}Module["_SDL_CondSignal"]=_SDL_CondSignal;function _SDL_CondWait(){}Module["_SDL_CondWait"]=_SDL_CondWait;function _SDL_DestroyCond(){}Module["_SDL_DestroyCond"]=_SDL_DestroyCond;function _SDL_StartTextInput(){SDL.textInput=true}Module["_SDL_StartTextInput"]=_SDL_StartTextInput;_SDL_StartTextInput.sig="v";function _SDL_StopTextInput(){SDL.textInput=false}Module["_SDL_StopTextInput"]=_SDL_StopTextInput;_SDL_StopTextInput.sig="v";function _Mix_Init(flags){if(!flags)return 0;return 8}Module["_Mix_Init"]=_Mix_Init;function _Mix_Quit(){}Module["_Mix_Quit"]=_Mix_Quit;function _Mix_OpenAudio(frequency,format,channels,chunksize){SDL.openAudioContext();autoResumeAudioContext(SDL.audioContext);SDL.allocateChannels(32);SDL.mixerFrequency=frequency;SDL.mixerFormat=format;SDL.mixerNumChannels=channels;SDL.mixerChunkSize=chunksize;return 0}Module["_Mix_OpenAudio"]=_Mix_OpenAudio;_Mix_OpenAudio.sig="iiiii";function _Mix_CloseAudio(){_SDL_CloseAudio()}Module["_Mix_CloseAudio"]=_Mix_CloseAudio;_Mix_CloseAudio.sig="v";function _Mix_AllocateChannels(num){SDL.allocateChannels(num);return num}Module["_Mix_AllocateChannels"]=_Mix_AllocateChannels;_Mix_AllocateChannels.sig="ii";function _Mix_ChannelFinished(func){SDL.channelFinished=func}Module["_Mix_ChannelFinished"]=_Mix_ChannelFinished;_Mix_ChannelFinished.sig="vi";function _Mix_Volume(channel,volume){if(channel==-1){for(var i=0;i>1;var buffer=new Float32Array(numSamples);for(var i=0;i>1]/32768}if(SDL.webAudioAvailable()){webAudio={};webAudio.decodedBuffer=buffer}else{audio=new Audio;audio.mozAudioChannelType="content";audio.numChannels=SDL.mixerNumChannels;audio.frequency=SDL.mixerFrequency}var id=SDL.audios.length;SDL.audios.push({source:"",audio:audio,webAudio:webAudio,buffer:buffer});return id}Module["_Mix_QuickLoad_RAW"]=_Mix_QuickLoad_RAW;_Mix_QuickLoad_RAW.sig="iii";function _Mix_FreeChunk(id){SDL.audios[id]=null}Module["_Mix_FreeChunk"]=_Mix_FreeChunk;_Mix_FreeChunk.sig="vi";function _Mix_ReserveChannels(num){SDL.channelMinimumNumber=num}Module["_Mix_ReserveChannels"]=_Mix_ReserveChannels;_Mix_ReserveChannels.sig="ii";function _Mix_PlayChannel(channel,id,loops){var info=SDL.audios[id];if(!info)return-1;if(!info.audio&&!info.webAudio)return-1;if(channel==-1){for(var i=SDL.channelMinimumNumber;i>2]=SDL.estimateTextWidth(fontData,UTF8ToString(text))}if(h){HEAP32[h>>2]=fontData.size}return 0}Module["_TTF_SizeText"]=_TTF_SizeText;_TTF_SizeText.sig="iiiii";function _TTF_SizeUTF8(a0,a1,a2,a3){return _TTF_SizeText(a0,a1,a2,a3)}Module["_TTF_SizeUTF8"]=_TTF_SizeUTF8;_TTF_SizeUTF8.sig="iiiii";function _TTF_GlyphMetrics(font,ch,minx,maxx,miny,maxy,advance){var fontData=SDL.fonts[font];var width=SDL.estimateTextWidth(fontData,String.fromCharCode(ch));if(advance){HEAP32[advance>>2]=width}if(minx){HEAP32[minx>>2]=0}if(maxx){HEAP32[maxx>>2]=width}if(miny){HEAP32[miny>>2]=0}if(maxy){HEAP32[maxy>>2]=fontData.size}}Module["_TTF_GlyphMetrics"]=_TTF_GlyphMetrics;_TTF_GlyphMetrics.sig="iiiiiiii";function _TTF_FontAscent(font){var fontData=SDL.fonts[font];return fontData.size*.98|0}Module["_TTF_FontAscent"]=_TTF_FontAscent;_TTF_FontAscent.sig="ii";function _TTF_FontDescent(font){var fontData=SDL.fonts[font];return fontData.size*.02|0}Module["_TTF_FontDescent"]=_TTF_FontDescent;_TTF_FontDescent.sig="ii";function _TTF_FontHeight(font){var fontData=SDL.fonts[font];return fontData.size}Module["_TTF_FontHeight"]=_TTF_FontHeight;_TTF_FontHeight.sig="ii";function _TTF_FontLineSkip(a0){return _TTF_FontHeight(a0)}Module["_TTF_FontLineSkip"]=_TTF_FontLineSkip;_TTF_FontLineSkip.sig="ii";function _TTF_Quit(){out("TTF_Quit called (and ignored)")}Module["_TTF_Quit"]=_TTF_Quit;var SDL_gfx={drawRectangle:function(surf,x1,y1,x2,y2,action,cssColor){x1=x1<<16>>16;y1=y1<<16>>16;x2=x2<<16>>16;y2=y2<<16>>16;var surfData=SDL.surfaces[surf];assert(!surfData.locked);var x=x1>16;y1=y1<<16>>16;x2=x2<<16>>16;y2=y2<<16>>16;var surfData=SDL.surfaces[surf];assert(!surfData.locked);surfData.ctx.save();surfData.ctx.strokeStyle=cssColor;surfData.ctx.beginPath();surfData.ctx.moveTo(x1,y1);surfData.ctx.lineTo(x2,y2);surfData.ctx.stroke();surfData.ctx.restore()},drawEllipse:function(surf,x,y,rx,ry,action,cssColor){x=x<<16>>16;y=y<<16>>16;rx=rx<<16>>16;ry=ry<<16>>16;var surfData=SDL.surfaces[surf];assert(!surfData.locked);surfData.ctx.save();surfData.ctx.beginPath();surfData.ctx.translate(x,y);surfData.ctx.scale(rx,ry);surfData.ctx.arc(0,0,1,0,2*Math.PI);surfData.ctx.restore();surfData.ctx.save();surfData.ctx[action+"Style"]=cssColor;surfData.ctx[action]();surfData.ctx.restore()},translateColorToCSSRGBA:function(rgba){return"rgba("+(rgba>>>24)+","+(rgba>>16&255)+","+(rgba>>8&255)+","+(rgba&255)+")"}};Module["SDL_gfx"]=SDL_gfx;function _boxColor(surf,x1,y1,x2,y2,color){return SDL_gfx.drawRectangle(surf,x1,y1,x2,y2,"fill",SDL_gfx.translateColorToCSSRGBA(color))}Module["_boxColor"]=_boxColor;function _boxRGBA(surf,x1,y1,x2,y2,r,g,b,a){return SDL_gfx.drawRectangle(surf,x1,y1,x2,y2,"fill",SDL.translateRGBAToCSSRGBA(r,g,b,a))}Module["_boxRGBA"]=_boxRGBA;function _rectangleColor(surf,x1,y1,x2,y2,color){return SDL_gfx.drawRectangle(surf,x1,y1,x2,y2,"stroke",SDL_gfx.translateColorToCSSRGBA(color))}Module["_rectangleColor"]=_rectangleColor;function _rectangleRGBA(surf,x1,y1,x2,y2,r,g,b,a){return SDL_gfx.drawRectangle(surf,x1,y1,x2,y2,"stroke",SDL.translateRGBAToCSSRGBA(r,g,b,a))}Module["_rectangleRGBA"]=_rectangleRGBA;function _ellipseColor(surf,x,y,rx,ry,color){return SDL_gfx.drawEllipse(surf,x,y,rx,ry,"stroke",SDL_gfx.translateColorToCSSRGBA(color))}Module["_ellipseColor"]=_ellipseColor;function _ellipseRGBA(surf,x,y,rx,ry,r,g,b,a){return SDL_gfx.drawEllipse(surf,x,y,rx,ry,"stroke",SDL.translateRGBAToCSSRGBA(r,g,b,a))}Module["_ellipseRGBA"]=_ellipseRGBA;function _filledEllipseColor(surf,x,y,rx,ry,color){return SDL_gfx.drawEllipse(surf,x,y,rx,ry,"fill",SDL_gfx.translateColorToCSSRGBA(color))}Module["_filledEllipseColor"]=_filledEllipseColor;function _filledEllipseRGBA(surf,x,y,rx,ry,r,g,b,a){return SDL_gfx.drawEllipse(surf,x,y,rx,ry,"fill",SDL.translateRGBAToCSSRGBA(r,g,b,a))}Module["_filledEllipseRGBA"]=_filledEllipseRGBA;function _lineColor(surf,x1,y1,x2,y2,color){return SDL_gfx.drawLine(surf,x1,y1,x2,y2,SDL_gfx.translateColorToCSSRGBA(color))}Module["_lineColor"]=_lineColor;function _lineRGBA(surf,x1,y1,x2,y2,r,g,b,a){return SDL_gfx.drawLine(surf,x1,y1,x2,y2,SDL.translateRGBAToCSSRGBA(r,g,b,a))}Module["_lineRGBA"]=_lineRGBA;function _pixelRGBA(surf,x1,y1,r,g,b,a){_boxRGBA(surf,x1,y1,x1,y1,r,g,b,a)}Module["_pixelRGBA"]=_pixelRGBA;function _SDL_GL_SetAttribute(attr,value){if(!(attr in SDL.glAttributes)){abort("Unknown SDL GL attribute ("+attr+"). Please check if your SDL version is supported.")}SDL.glAttributes[attr]=value}Module["_SDL_GL_SetAttribute"]=_SDL_GL_SetAttribute;_SDL_GL_SetAttribute.sig="iii";function _SDL_GL_GetAttribute(attr,value){if(!(attr in SDL.glAttributes)){abort("Unknown SDL GL attribute ("+attr+"). Please check if your SDL version is supported.")}if(value)HEAP32[value>>2]=SDL.glAttributes[attr];return 0}Module["_SDL_GL_GetAttribute"]=_SDL_GL_GetAttribute;_SDL_GL_GetAttribute.sig="iii";function _SDL_GL_SwapBuffers(){if(Browser.doSwapBuffers)Browser.doSwapBuffers()}Module["_SDL_GL_SwapBuffers"]=_SDL_GL_SwapBuffers;_SDL_GL_SwapBuffers.sig="v";function _SDL_GL_ExtensionSupported(extension){return Module.ctx.getExtension(extension)|0}Module["_SDL_GL_ExtensionSupported"]=_SDL_GL_ExtensionSupported;_SDL_GL_ExtensionSupported.sig="ii";function _SDL_DestroyWindow(window){}Module["_SDL_DestroyWindow"]=_SDL_DestroyWindow;function _SDL_DestroyRenderer(renderer){}Module["_SDL_DestroyRenderer"]=_SDL_DestroyRenderer;function _SDL_GetWindowFlags(){}Module["_SDL_GetWindowFlags"]=_SDL_GetWindowFlags;_SDL_GetWindowFlags.sig="iii";function _SDL_GL_SwapWindow(window){}Module["_SDL_GL_SwapWindow"]=_SDL_GL_SwapWindow;function _SDL_GL_MakeCurrent(window,context){}Module["_SDL_GL_MakeCurrent"]=_SDL_GL_MakeCurrent;function _SDL_GL_DeleteContext(context){}Module["_SDL_GL_DeleteContext"]=_SDL_GL_DeleteContext;function _SDL_GL_GetSwapInterval(state){if(Browser.mainLoop.timingMode==1)return Browser.mainLoop.timingValue;else return 0}Module["_SDL_GL_GetSwapInterval"]=_SDL_GL_GetSwapInterval;_SDL_GL_GetSwapInterval.sig="ii";function _SDL_GL_SetSwapInterval(state){_emscripten_set_main_loop_timing(1,state)}Module["_SDL_GL_SetSwapInterval"]=_SDL_GL_SetSwapInterval;function _SDL_SetWindowTitle(window,title){if(title)document.title=UTF8ToString(title)}Module["_SDL_SetWindowTitle"]=_SDL_SetWindowTitle;_SDL_SetWindowTitle.sig="vii";function _SDL_GetWindowSize(window,width,height){var w=Module["canvas"].width;var h=Module["canvas"].height;if(width)HEAP32[width>>2]=w;if(height)HEAP32[height>>2]=h}Module["_SDL_GetWindowSize"]=_SDL_GetWindowSize;_SDL_GetWindowSize.sig="viii";function _SDL_LogSetOutputFunction(callback,userdata){}Module["_SDL_LogSetOutputFunction"]=_SDL_LogSetOutputFunction;function _SDL_SetWindowFullscreen(window,fullscreen){if(Browser.isFullscreen){Module["canvas"].exitFullscreen();return 1}else{return 0}}Module["_SDL_SetWindowFullscreen"]=_SDL_SetWindowFullscreen;_SDL_SetWindowFullscreen.sig="iii";function _SDL_ClearError(){}Module["_SDL_ClearError"]=_SDL_ClearError;function _SDL_SetGamma(r,g,b){return-1}Module["_SDL_SetGamma"]=_SDL_SetGamma;function _SDL_SetGammaRamp(redTable,greenTable,blueTable){return-1}Module["_SDL_SetGammaRamp"]=_SDL_SetGammaRamp;function _SDL_NumJoysticks(){var count=0;var gamepads=SDL.getGamepads();for(var i=0;iaxis){return SDL.joystickAxisValueConversion(gamepad.axes[axis])}return 0}Module["_SDL_JoystickGetAxis"]=_SDL_JoystickGetAxis;_SDL_JoystickGetAxis.sig="iii";function _SDL_JoystickGetHat(joystick,hat){return 0}Module["_SDL_JoystickGetHat"]=_SDL_JoystickGetHat;function _SDL_JoystickGetBall(joystick,ball,dxptr,dyptr){return-1}Module["_SDL_JoystickGetBall"]=_SDL_JoystickGetBall;function _SDL_JoystickGetButton(joystick,button){var gamepad=SDL.getGamepad(joystick-1);if(gamepad&&gamepad.buttons.length>button){return SDL.getJoystickButtonState(gamepad.buttons[button])?1:0}return 0}Module["_SDL_JoystickGetButton"]=_SDL_JoystickGetButton;_SDL_JoystickGetButton.sig="iii";function _SDL_JoystickClose(joystick){delete SDL.lastJoystickState[joystick]}Module["_SDL_JoystickClose"]=_SDL_JoystickClose;_SDL_JoystickClose.sig="vi";function _SDL_InitSubSystem(flags){return 0}Module["_SDL_InitSubSystem"]=_SDL_InitSubSystem;function _SDL_RWFromConstMem(mem,size){var id=SDL.rwops.length;SDL.rwops.push({bytes:mem,count:size});return id}Module["_SDL_RWFromConstMem"]=_SDL_RWFromConstMem;_SDL_RWFromConstMem.sig="iii";function _SDL_RWFromMem(a0,a1){return _SDL_RWFromConstMem(a0,a1)}Module["_SDL_RWFromMem"]=_SDL_RWFromMem;_SDL_RWFromMem.sig="iii";function _SDL_GetNumAudioDrivers(){return 1}Module["_SDL_GetNumAudioDrivers"]=_SDL_GetNumAudioDrivers;function _SDL_GetCurrentAudioDriver(){return allocate(intArrayFromString("Emscripten Audio"),ALLOC_NORMAL)}Module["_SDL_GetCurrentAudioDriver"]=_SDL_GetCurrentAudioDriver;function _SDL_GetAudioDriver(index){return _SDL_GetCurrentAudioDriver()}Module["_SDL_GetAudioDriver"]=_SDL_GetAudioDriver;function _SDL_EnableUNICODE(on){var ret=SDL.unicode||0;SDL.unicode=on;return ret}Module["_SDL_EnableUNICODE"]=_SDL_EnableUNICODE;_SDL_EnableUNICODE.sig="ii";function _SDL_AddTimer(interval,callback,param){return window.setTimeout(function(){wasmTable.get(callback)(interval,param)},interval)}Module["_SDL_AddTimer"]=_SDL_AddTimer;_SDL_AddTimer.sig="iiii";function _SDL_RemoveTimer(id){window.clearTimeout(id);return true}Module["_SDL_RemoveTimer"]=_SDL_RemoveTimer;_SDL_RemoveTimer.sig="ii";function _SDL_CreateThread(){throw"SDL threads cannot be supported in the web platform because they assume shared state. See emscripten_create_worker etc. for a message-passing concurrency model that does let you run code in another thread."}Module["_SDL_CreateThread"]=_SDL_CreateThread;function _SDL_WaitThread(){throw"SDL_WaitThread"}Module["_SDL_WaitThread"]=_SDL_WaitThread;function _SDL_GetThreadID(){throw"SDL_GetThreadID"}Module["_SDL_GetThreadID"]=_SDL_GetThreadID;function _SDL_ThreadID(){return 0}Module["_SDL_ThreadID"]=_SDL_ThreadID;function _SDL_AllocRW(){throw"SDL_AllocRW: TODO"}Module["_SDL_AllocRW"]=_SDL_AllocRW;function _SDL_CondBroadcast(){throw"SDL_CondBroadcast: TODO"}Module["_SDL_CondBroadcast"]=_SDL_CondBroadcast;function _SDL_CondWaitTimeout(){throw"SDL_CondWaitTimeout: TODO"}Module["_SDL_CondWaitTimeout"]=_SDL_CondWaitTimeout;function _SDL_WM_IconifyWindow(){throw"SDL_WM_IconifyWindow TODO"}Module["_SDL_WM_IconifyWindow"]=_SDL_WM_IconifyWindow;function _Mix_SetPostMix(){warnOnce("Mix_SetPostMix: TODO")}Module["_Mix_SetPostMix"]=_Mix_SetPostMix;function _Mix_VolumeChunk(chunk,volume){throw"Mix_VolumeChunk: TODO"}Module["_Mix_VolumeChunk"]=_Mix_VolumeChunk;function _Mix_SetPosition(channel,angle,distance){throw"Mix_SetPosition: TODO"}Module["_Mix_SetPosition"]=_Mix_SetPosition;function _Mix_QuerySpec(){throw"Mix_QuerySpec: TODO"}Module["_Mix_QuerySpec"]=_Mix_QuerySpec;function _Mix_FadeInChannelTimed(){throw"Mix_FadeInChannelTimed"}Module["_Mix_FadeInChannelTimed"]=_Mix_FadeInChannelTimed;function _Mix_FadeOutChannel(){throw"Mix_FadeOutChannel"}Module["_Mix_FadeOutChannel"]=_Mix_FadeOutChannel;function _Mix_Linked_Version(){throw"Mix_Linked_Version: TODO"}Module["_Mix_Linked_Version"]=_Mix_Linked_Version;function _SDL_SaveBMP_RW(){throw"SDL_SaveBMP_RW: TODO"}Module["_SDL_SaveBMP_RW"]=_SDL_SaveBMP_RW;function _SDL_WM_SetIcon(){}Module["_SDL_WM_SetIcon"]=_SDL_WM_SetIcon;function _SDL_HasRDTSC(){return 0}Module["_SDL_HasRDTSC"]=_SDL_HasRDTSC;function _SDL_HasMMX(){return 0}Module["_SDL_HasMMX"]=_SDL_HasMMX;function _SDL_HasMMXExt(){return 0}Module["_SDL_HasMMXExt"]=_SDL_HasMMXExt;function _SDL_Has3DNow(){return 0}Module["_SDL_Has3DNow"]=_SDL_Has3DNow;function _SDL_Has3DNowExt(){return 0}Module["_SDL_Has3DNowExt"]=_SDL_Has3DNowExt;function _SDL_HasSSE(){return 0}Module["_SDL_HasSSE"]=_SDL_HasSSE;function _SDL_HasSSE2(){return 0}Module["_SDL_HasSSE2"]=_SDL_HasSSE2;function _SDL_HasAltiVec(){return 0}Module["_SDL_HasAltiVec"]=_SDL_HasAltiVec;function _glutPostRedisplay(){if(GLUT.displayFunc&&!GLUT.requestedAnimationFrame){GLUT.requestedAnimationFrame=true;Browser.requestAnimationFrame(function(){GLUT.requestedAnimationFrame=false;Browser.mainLoop.runIter(function(){wasmTable.get(GLUT.displayFunc)()})})}}Module["_glutPostRedisplay"]=_glutPostRedisplay;_glutPostRedisplay.sig="v";var GLUT={initTime:null,idleFunc:null,displayFunc:null,keyboardFunc:null,keyboardUpFunc:null,specialFunc:null,specialUpFunc:null,reshapeFunc:null,motionFunc:null,passiveMotionFunc:null,mouseFunc:null,buttons:0,modifiers:0,initWindowWidth:256,initWindowHeight:256,initDisplayMode:18,windowX:0,windowY:0,windowWidth:0,windowHeight:0,requestedAnimationFrame:false,saveModifiers:function(event){GLUT.modifiers=0;if(event["shiftKey"])GLUT.modifiers+=1;if(event["ctrlKey"])GLUT.modifiers+=2;if(event["altKey"])GLUT.modifiers+=4},onMousemove:function(event){var lastX=Browser.mouseX;var lastY=Browser.mouseY;Browser.calculateMouseEvent(event);var newX=Browser.mouseX;var newY=Browser.mouseY;if(newX==lastX&&newY==lastY)return;if(GLUT.buttons==0&&event.target==Module["canvas"]&&GLUT.passiveMotionFunc){event.preventDefault();GLUT.saveModifiers(event);wasmTable.get(GLUT.passiveMotionFunc)(lastX,lastY)}else if(GLUT.buttons!=0&&GLUT.motionFunc){event.preventDefault();GLUT.saveModifiers(event);wasmTable.get(GLUT.motionFunc)(lastX,lastY)}},getSpecialKey:function(keycode){var key=null;switch(keycode){case 8:key=120;break;case 46:key=111;break;case 112:key=1;break;case 113:key=2;break;case 114:key=3;break;case 115:key=4;break;case 116:key=5;break;case 117:key=6;break;case 118:key=7;break;case 119:key=8;break;case 120:key=9;break;case 121:key=10;break;case 122:key=11;break;case 123:key=12;break;case 37:key=100;break;case 38:key=101;break;case 39:key=102;break;case 40:key=103;break;case 33:key=104;break;case 34:key=105;break;case 36:key=106;break;case 35:key=107;break;case 45:key=108;break;case 16:case 5:key=112;break;case 6:key=113;break;case 17:case 3:key=114;break;case 4:key=115;break;case 18:case 2:key=116;break;case 1:key=117;break}return key},getASCIIKey:function(event){if(event["ctrlKey"]||event["altKey"]||event["metaKey"])return null;var keycode=event["keyCode"];if(48<=keycode&&keycode<=57)return keycode;if(65<=keycode&&keycode<=90)return event["shiftKey"]?keycode:keycode+32;if(96<=keycode&&keycode<=105)return keycode-48;if(106<=keycode&&keycode<=111)return keycode-106+42;switch(keycode){case 9:case 13:case 27:case 32:case 61:return keycode}var s=event["shiftKey"];switch(keycode){case 186:return s?58:59;case 187:return s?43:61;case 188:return s?60:44;case 189:return s?95:45;case 190:return s?62:46;case 191:return s?63:47;case 219:return s?123:91;case 220:return s?124:47;case 221:return s?125:93;case 222:return s?34:39}return null},onKeydown:function(event){if(GLUT.specialFunc||GLUT.keyboardFunc){var key=GLUT.getSpecialKey(event["keyCode"]);if(key!==null){if(GLUT.specialFunc){event.preventDefault();GLUT.saveModifiers(event);wasmTable.get(GLUT.specialFunc)(key,Browser.mouseX,Browser.mouseY)}}else{key=GLUT.getASCIIKey(event);if(key!==null&&GLUT.keyboardFunc){event.preventDefault();GLUT.saveModifiers(event);wasmTable.get(GLUT.keyboardFunc)(key,Browser.mouseX,Browser.mouseY)}}}},onKeyup:function(event){if(GLUT.specialUpFunc||GLUT.keyboardUpFunc){var key=GLUT.getSpecialKey(event["keyCode"]);if(key!==null){if(GLUT.specialUpFunc){event.preventDefault();GLUT.saveModifiers(event);wasmTable.get(GLUT.specialUpFunc)(key,Browser.mouseX,Browser.mouseY)}}else{key=GLUT.getASCIIKey(event);if(key!==null&&GLUT.keyboardUpFunc){event.preventDefault();GLUT.saveModifiers(event);wasmTable.get(GLUT.keyboardUpFunc)(key,Browser.mouseX,Browser.mouseY)}}}},touchHandler:function(event){if(event.target!=Module["canvas"]){return}var touches=event.changedTouches,main=touches[0],type="";switch(event.type){case"touchstart":type="mousedown";break;case"touchmove":type="mousemove";break;case"touchend":type="mouseup";break;default:return}var simulatedEvent=document.createEvent("MouseEvent");simulatedEvent.initMouseEvent(type,true,true,window,1,main.screenX,main.screenY,main.clientX,main.clientY,false,false,false,false,0,null);main.target.dispatchEvent(simulatedEvent);event.preventDefault()},onMouseButtonDown:function(event){Browser.calculateMouseEvent(event);GLUT.buttons|=1<0?Math.max(delta,1):Math.min(delta,-1);var button=3;if(delta<0){button=4}if(GLUT.mouseFunc){event.preventDefault();GLUT.saveModifiers(event);wasmTable.get(GLUT.mouseFunc)(button,0,Browser.mouseX,Browser.mouseY)}},onFullscreenEventChange:function(event){var width;var height;if(document["fullscreen"]||document["fullScreen"]||document["mozFullScreen"]||document["webkitIsFullScreen"]){width=screen["width"];height=screen["height"]}else{width=GLUT.windowWidth;height=GLUT.windowHeight;document.removeEventListener("fullscreenchange",GLUT.onFullscreenEventChange,true);document.removeEventListener("mozfullscreenchange",GLUT.onFullscreenEventChange,true);document.removeEventListener("webkitfullscreenchange",GLUT.onFullscreenEventChange,true)}Browser.setCanvasSize(width,height,true);if(GLUT.reshapeFunc){wasmTable.get(GLUT.reshapeFunc)(width,height)}_glutPostRedisplay()}};Module["GLUT"]=GLUT;function _glutGetModifiers(){return GLUT.modifiers}Module["_glutGetModifiers"]=_glutGetModifiers;_glutGetModifiers.sig="i";function _glutInit(argcp,argv){GLUT.initTime=Date.now();var isTouchDevice="ontouchstart"in document.documentElement;if(isTouchDevice){window.addEventListener("touchmove",GLUT.touchHandler,true);window.addEventListener("touchstart",GLUT.touchHandler,true);window.addEventListener("touchend",GLUT.touchHandler,true)}window.addEventListener("keydown",GLUT.onKeydown,true);window.addEventListener("keyup",GLUT.onKeyup,true);window.addEventListener("mousemove",GLUT.onMousemove,true);window.addEventListener("mousedown",GLUT.onMouseButtonDown,true);window.addEventListener("mouseup",GLUT.onMouseButtonUp,true);window.addEventListener("mousewheel",GLUT.onMouseWheel,true);window.addEventListener("DOMMouseScroll",GLUT.onMouseWheel,true);Browser.resizeListeners.push(function(width,height){if(GLUT.reshapeFunc){wasmTable.get(GLUT.reshapeFunc)(width,height)}});__ATEXIT__.push(function(){if(isTouchDevice){window.removeEventListener("touchmove",GLUT.touchHandler,true);window.removeEventListener("touchstart",GLUT.touchHandler,true);window.removeEventListener("touchend",GLUT.touchHandler,true)}window.removeEventListener("keydown",GLUT.onKeydown,true);window.removeEventListener("keyup",GLUT.onKeyup,true);window.removeEventListener("mousemove",GLUT.onMousemove,true);window.removeEventListener("mousedown",GLUT.onMouseButtonDown,true);window.removeEventListener("mouseup",GLUT.onMouseButtonUp,true);window.removeEventListener("mousewheel",GLUT.onMouseWheel,true);window.removeEventListener("DOMMouseScroll",GLUT.onMouseWheel,true);Module["canvas"].width=Module["canvas"].height=1})}Module["_glutInit"]=_glutInit;_glutInit.sig="vii";function _glutInitWindowSize(width,height){Browser.setCanvasSize(GLUT.initWindowWidth=width,GLUT.initWindowHeight=height)}Module["_glutInitWindowSize"]=_glutInitWindowSize;_glutInitWindowSize.sig="vii";function _glutInitWindowPosition(x,y){}Module["_glutInitWindowPosition"]=_glutInitWindowPosition;_glutInitWindowPosition.sig="vii";function _glutGet(type){switch(type){case 100:return 0;case 101:return 0;case 102:return Module["canvas"].width;case 103:return Module["canvas"].height;case 200:return Module["canvas"].width;case 201:return Module["canvas"].height;case 500:return 0;case 501:return 0;case 502:return GLUT.initWindowWidth;case 503:return GLUT.initWindowHeight;case 700:var now=Date.now();return now-GLUT.initTime;case 105:return Module.ctx.getContextAttributes().stencil?8:0;case 106:return Module.ctx.getContextAttributes().depth?8:0;case 110:return Module.ctx.getContextAttributes().alpha?8:0;case 120:return Module.ctx.getContextAttributes().antialias?1:0;default:throw"glutGet("+type+") not implemented yet"}}Module["_glutGet"]=_glutGet;function _glutIdleFunc(func){function callback(){if(GLUT.idleFunc){wasmTable.get(GLUT.idleFunc)();safeSetTimeout(callback,4)}}if(!GLUT.idleFunc){safeSetTimeout(callback,0)}GLUT.idleFunc=func}Module["_glutIdleFunc"]=_glutIdleFunc;_glutIdleFunc.sig="vi";function _glutTimerFunc(msec,func,value){safeSetTimeout(function(){wasmTable.get(func)(value)},msec)}Module["_glutTimerFunc"]=_glutTimerFunc;_glutTimerFunc.sig="viii";function _glutDisplayFunc(func){GLUT.displayFunc=func}Module["_glutDisplayFunc"]=_glutDisplayFunc;_glutDisplayFunc.sig="vi";function _glutKeyboardFunc(func){GLUT.keyboardFunc=func}Module["_glutKeyboardFunc"]=_glutKeyboardFunc;_glutKeyboardFunc.sig="vi";function _glutKeyboardUpFunc(func){GLUT.keyboardUpFunc=func}Module["_glutKeyboardUpFunc"]=_glutKeyboardUpFunc;_glutKeyboardUpFunc.sig="vi";function _glutSpecialFunc(func){GLUT.specialFunc=func}Module["_glutSpecialFunc"]=_glutSpecialFunc;_glutSpecialFunc.sig="vi";function _glutSpecialUpFunc(func){GLUT.specialUpFunc=func}Module["_glutSpecialUpFunc"]=_glutSpecialUpFunc;_glutSpecialUpFunc.sig="vi";function _glutReshapeFunc(func){GLUT.reshapeFunc=func}Module["_glutReshapeFunc"]=_glutReshapeFunc;_glutReshapeFunc.sig="vi";function _glutMotionFunc(func){GLUT.motionFunc=func}Module["_glutMotionFunc"]=_glutMotionFunc;_glutMotionFunc.sig="vi";function _glutPassiveMotionFunc(func){GLUT.passiveMotionFunc=func}Module["_glutPassiveMotionFunc"]=_glutPassiveMotionFunc;_glutPassiveMotionFunc.sig="vi";function _glutMouseFunc(func){GLUT.mouseFunc=func}Module["_glutMouseFunc"]=_glutMouseFunc;_glutMouseFunc.sig="vi";function _glutSetCursor(cursor){var cursorStyle="auto";switch(cursor){case 0:break;case 1:break;case 2:cursorStyle="pointer";break;case 3:break;case 4:cursorStyle="help";break;case 5:break;case 6:break;case 7:cursorStyle="wait";break;case 8:cursorStyle="text";break;case 9:case 102:cursorStyle="crosshair";break;case 10:cursorStyle="ns-resize";break;case 11:cursorStyle="ew-resize";break;case 12:cursorStyle="n-resize";break;case 13:cursorStyle="s-resize";break;case 14:cursorStyle="w-resize";break;case 15:cursorStyle="e-resize";break;case 16:cursorStyle="nw-resize";break;case 17:cursorStyle="ne-resize";break;case 18:cursorStyle="se-resize";break;case 19:cursorStyle="sw-resize";break;case 100:break;case 101:cursorStyle="none";break;default:throw"glutSetCursor: Unknown cursor type: "+cursor}Module["canvas"].style.cursor=cursorStyle}Module["_glutSetCursor"]=_glutSetCursor;_glutSetCursor.sig="vi";function _glutCreateWindow(name){var contextAttributes={antialias:(GLUT.initDisplayMode&128)!=0,depth:(GLUT.initDisplayMode&16)!=0,stencil:(GLUT.initDisplayMode&32)!=0,alpha:(GLUT.initDisplayMode&8)!=0};Module.ctx=Browser.createContext(Module["canvas"],true,true,contextAttributes);return Module.ctx?1:0}Module["_glutCreateWindow"]=_glutCreateWindow;_glutCreateWindow.sig="ii";function _glutDestroyWindow(name){Module.ctx=Browser.destroyContext(Module["canvas"],true,true);return 1}Module["_glutDestroyWindow"]=_glutDestroyWindow;_glutDestroyWindow.sig="ii";function _glutReshapeWindow(width,height){Browser.exitFullscreen();Browser.setCanvasSize(width,height,true);if(GLUT.reshapeFunc){wasmTable.get(GLUT.reshapeFunc)(width,height)}_glutPostRedisplay()}Module["_glutReshapeWindow"]=_glutReshapeWindow;_glutReshapeWindow.sig="vi";function _glutPositionWindow(x,y){Browser.exitFullscreen();_glutPostRedisplay()}Module["_glutPositionWindow"]=_glutPositionWindow;_glutPositionWindow.sig="vii";function _glutFullScreen(){GLUT.windowX=0;GLUT.windowY=0;GLUT.windowWidth=Module["canvas"].width;GLUT.windowHeight=Module["canvas"].height;document.addEventListener("fullscreenchange",GLUT.onFullscreenEventChange,true);document.addEventListener("mozfullscreenchange",GLUT.onFullscreenEventChange,true);document.addEventListener("webkitfullscreenchange",GLUT.onFullscreenEventChange,true);Browser.requestFullscreen(false,false)}Module["_glutFullScreen"]=_glutFullScreen;_glutFullScreen.sig="v";function _glutInitDisplayMode(mode){GLUT.initDisplayMode=mode}Module["_glutInitDisplayMode"]=_glutInitDisplayMode;_glutInitDisplayMode.sig="vi";function _glutSwapBuffers(){}Module["_glutSwapBuffers"]=_glutSwapBuffers;_glutSwapBuffers.sig="v";function _glutMainLoop(){_glutReshapeWindow(Module["canvas"].width,Module["canvas"].height);_glutPostRedisplay();throw"unwind"}Module["_glutMainLoop"]=_glutMainLoop;_glutMainLoop.sig="v";function _XOpenDisplay(){return 1}Module["_XOpenDisplay"]=_XOpenDisplay;function _XCreateWindow(display,parent,x,y,width,height,border_width,depth,class_,visual,valuemask,attributes){Browser.setCanvasSize(width,height);return 2}Module["_XCreateWindow"]=_XCreateWindow;function _XChangeWindowAttributes(){}Module["_XChangeWindowAttributes"]=_XChangeWindowAttributes;function _XSetWMHints(){}Module["_XSetWMHints"]=_XSetWMHints;function _XMapWindow(){}Module["_XMapWindow"]=_XMapWindow;function _XStoreName(){}Module["_XStoreName"]=_XStoreName;function _XInternAtom(display,name_,hmm){return 0}Module["_XInternAtom"]=_XInternAtom;function _XSendEvent(){}Module["_XSendEvent"]=_XSendEvent;function _XPending(display){return 0}Module["_XPending"]=_XPending;var EGL={errorCode:12288,defaultDisplayInitialized:false,currentContext:0,currentReadSurface:0,currentDrawSurface:0,contextAttributes:{alpha:false,depth:false,stencil:false,antialias:false},stringCache:{},setErrorCode:function(code){EGL.errorCode=code},chooseConfig:function(display,attribList,config,config_size,numConfigs){if(display!=62e3){EGL.setErrorCode(12296);return 0}if(attribList){for(;;){var param=HEAP32[attribList>>2];if(param==12321){var alphaSize=HEAP32[attribList+4>>2];EGL.contextAttributes.alpha=alphaSize>0}else if(param==12325){var depthSize=HEAP32[attribList+4>>2];EGL.contextAttributes.depth=depthSize>0}else if(param==12326){var stencilSize=HEAP32[attribList+4>>2];EGL.contextAttributes.stencil=stencilSize>0}else if(param==12337){var samples=HEAP32[attribList+4>>2];EGL.contextAttributes.antialias=samples>0}else if(param==12338){var samples=HEAP32[attribList+4>>2];EGL.contextAttributes.antialias=samples==1}else if(param==12544){var requestedPriority=HEAP32[attribList+4>>2];EGL.contextAttributes.lowLatency=requestedPriority!=12547}else if(param==12344){break}attribList+=8}}if((!config||!config_size)&&!numConfigs){EGL.setErrorCode(12300);return 0}if(numConfigs){HEAP32[numConfigs>>2]=1}if(config&&config_size>0){HEAP32[config>>2]=62002}EGL.setErrorCode(12288);return 1}};Module["EGL"]=EGL;function _eglGetDisplay(nativeDisplayType){EGL.setErrorCode(12288);return 62e3}Module["_eglGetDisplay"]=_eglGetDisplay;_eglGetDisplay.sig="ii";function _eglInitialize(display,majorVersion,minorVersion){if(display==62e3){if(majorVersion){HEAP32[majorVersion>>2]=1}if(minorVersion){HEAP32[minorVersion>>2]=4}EGL.defaultDisplayInitialized=true;EGL.setErrorCode(12288);return 1}else{EGL.setErrorCode(12296);return 0}}Module["_eglInitialize"]=_eglInitialize;_eglInitialize.sig="iiii";function _eglTerminate(display){if(display!=62e3){EGL.setErrorCode(12296);return 0}EGL.currentContext=0;EGL.currentReadSurface=0;EGL.currentDrawSurface=0;EGL.defaultDisplayInitialized=false;EGL.setErrorCode(12288);return 1}Module["_eglTerminate"]=_eglTerminate;_eglTerminate.sig="ii";function _eglGetConfigs(display,configs,config_size,numConfigs){return EGL.chooseConfig(display,0,configs,config_size,numConfigs)}Module["_eglGetConfigs"]=_eglGetConfigs;_eglGetConfigs.sig="iiiii";function _eglChooseConfig(display,attrib_list,configs,config_size,numConfigs){return EGL.chooseConfig(display,attrib_list,configs,config_size,numConfigs)}Module["_eglChooseConfig"]=_eglChooseConfig;_eglChooseConfig.sig="iiiiii";function _eglGetConfigAttrib(display,config,attribute,value){if(display!=62e3){EGL.setErrorCode(12296);return 0}if(config!=62002){EGL.setErrorCode(12293);return 0}if(!value){EGL.setErrorCode(12300);return 0}EGL.setErrorCode(12288);switch(attribute){case 12320:HEAP32[value>>2]=EGL.contextAttributes.alpha?32:24;return 1;case 12321:HEAP32[value>>2]=EGL.contextAttributes.alpha?8:0;return 1;case 12322:HEAP32[value>>2]=8;return 1;case 12323:HEAP32[value>>2]=8;return 1;case 12324:HEAP32[value>>2]=8;return 1;case 12325:HEAP32[value>>2]=EGL.contextAttributes.depth?24:0;return 1;case 12326:HEAP32[value>>2]=EGL.contextAttributes.stencil?8:0;return 1;case 12327:HEAP32[value>>2]=12344;return 1;case 12328:HEAP32[value>>2]=62002;return 1;case 12329:HEAP32[value>>2]=0;return 1;case 12330:HEAP32[value>>2]=4096;return 1;case 12331:HEAP32[value>>2]=16777216;return 1;case 12332:HEAP32[value>>2]=4096;return 1;case 12333:HEAP32[value>>2]=0;return 1;case 12334:HEAP32[value>>2]=0;return 1;case 12335:HEAP32[value>>2]=12344;return 1;case 12337:HEAP32[value>>2]=EGL.contextAttributes.antialias?4:0;return 1;case 12338:HEAP32[value>>2]=EGL.contextAttributes.antialias?1:0;return 1;case 12339:HEAP32[value>>2]=4;return 1;case 12340:HEAP32[value>>2]=12344;return 1;case 12341:case 12342:case 12343:HEAP32[value>>2]=-1;return 1;case 12345:case 12346:HEAP32[value>>2]=0;return 1;case 12347:HEAP32[value>>2]=0;return 1;case 12348:HEAP32[value>>2]=1;return 1;case 12349:case 12350:HEAP32[value>>2]=0;return 1;case 12351:HEAP32[value>>2]=12430;return 1;case 12352:HEAP32[value>>2]=4;return 1;case 12354:HEAP32[value>>2]=0;return 1;default:EGL.setErrorCode(12292);return 0}}Module["_eglGetConfigAttrib"]=_eglGetConfigAttrib;_eglGetConfigAttrib.sig="iiiii";function _eglCreateWindowSurface(display,config,win,attrib_list){if(display!=62e3){EGL.setErrorCode(12296);return 0}if(config!=62002){EGL.setErrorCode(12293);return 0}EGL.setErrorCode(12288);return 62006}Module["_eglCreateWindowSurface"]=_eglCreateWindowSurface;_eglCreateWindowSurface.sig="iiiii";function _eglDestroySurface(display,surface){if(display!=62e3){EGL.setErrorCode(12296);return 0}if(surface!=62006){EGL.setErrorCode(12301);return 1}if(EGL.currentReadSurface==surface){EGL.currentReadSurface=0}if(EGL.currentDrawSurface==surface){EGL.currentDrawSurface=0}EGL.setErrorCode(12288);return 1}Module["_eglDestroySurface"]=_eglDestroySurface;_eglDestroySurface.sig="iii";function _eglCreateContext(display,config,hmm,contextAttribs){if(display!=62e3){EGL.setErrorCode(12296);return 0}var glesContextVersion=1;for(;;){var param=HEAP32[contextAttribs>>2];if(param==12440){glesContextVersion=HEAP32[contextAttribs+4>>2]}else if(param==12344){break}else{EGL.setErrorCode(12292);return 0}contextAttribs+=8}if(glesContextVersion!=2){EGL.setErrorCode(12293);return 0}EGL.contextAttributes.majorVersion=glesContextVersion-1;EGL.contextAttributes.minorVersion=0;EGL.context=GL.createContext(Module["canvas"],EGL.contextAttributes);if(EGL.context!=0){EGL.setErrorCode(12288);GL.makeContextCurrent(EGL.context);Module.useWebGL=true;Browser.moduleContextCreatedCallbacks.forEach(function(callback){callback()});GL.makeContextCurrent(null);return 62004}else{EGL.setErrorCode(12297);return 0}}Module["_eglCreateContext"]=_eglCreateContext;_eglCreateContext.sig="iiiii";function _eglDestroyContext(display,context){if(display!=62e3){EGL.setErrorCode(12296);return 0}if(context!=62004){EGL.setErrorCode(12294);return 0}GL.deleteContext(EGL.context);EGL.setErrorCode(12288);if(EGL.currentContext==context){EGL.currentContext=0}return 1}Module["_eglDestroyContext"]=_eglDestroyContext;_eglDestroyContext.sig="iii";function _eglQuerySurface(display,surface,attribute,value){if(display!=62e3){EGL.setErrorCode(12296);return 0}if(surface!=62006){EGL.setErrorCode(12301);return 0}if(!value){EGL.setErrorCode(12300);return 0}EGL.setErrorCode(12288);switch(attribute){case 12328:HEAP32[value>>2]=62002;return 1;case 12376:return 1;case 12375:HEAP32[value>>2]=Module["canvas"].width;return 1;case 12374:HEAP32[value>>2]=Module["canvas"].height;return 1;case 12432:HEAP32[value>>2]=-1;return 1;case 12433:HEAP32[value>>2]=-1;return 1;case 12434:HEAP32[value>>2]=-1;return 1;case 12422:HEAP32[value>>2]=12420;return 1;case 12441:HEAP32[value>>2]=12442;return 1;case 12435:HEAP32[value>>2]=12437;return 1;case 12416:case 12417:case 12418:case 12419:return 1;default:EGL.setErrorCode(12292);return 0}}Module["_eglQuerySurface"]=_eglQuerySurface;_eglQuerySurface.sig="iiiii";function _eglQueryContext(display,context,attribute,value){if(display!=62e3){EGL.setErrorCode(12296);return 0}if(context!=62004){EGL.setErrorCode(12294);return 0}if(!value){EGL.setErrorCode(12300);return 0}EGL.setErrorCode(12288);switch(attribute){case 12328:HEAP32[value>>2]=62002;return 1;case 12439:HEAP32[value>>2]=12448;return 1;case 12440:HEAP32[value>>2]=EGL.contextAttributes.majorVersion+1;return 1;case 12422:HEAP32[value>>2]=12420;return 1;default:EGL.setErrorCode(12292);return 0}}Module["_eglQueryContext"]=_eglQueryContext;_eglQueryContext.sig="iiiii";function _eglGetError(){return EGL.errorCode}Module["_eglGetError"]=_eglGetError;_eglGetError.sig="i";function _eglQueryString(display,name){if(display!=62e3){EGL.setErrorCode(12296);return 0}EGL.setErrorCode(12288);if(EGL.stringCache[name])return EGL.stringCache[name];var ret;switch(name){case 12371:ret=allocateUTF8("Emscripten");break;case 12372:ret=allocateUTF8("1.4 Emscripten EGL");break;case 12373:ret=allocateUTF8("");break;case 12429:ret=allocateUTF8("OpenGL_ES");break;default:EGL.setErrorCode(12300);return 0}EGL.stringCache[name]=ret;return ret}Module["_eglQueryString"]=_eglQueryString;_eglQueryString.sig="iii";function _eglBindAPI(api){if(api==12448){EGL.setErrorCode(12288);return 1}else{EGL.setErrorCode(12300);return 0}}Module["_eglBindAPI"]=_eglBindAPI;_eglBindAPI.sig="ii";function _eglQueryAPI(){EGL.setErrorCode(12288);return 12448}Module["_eglQueryAPI"]=_eglQueryAPI;_eglQueryAPI.sig="i";function _eglWaitClient(){EGL.setErrorCode(12288);return 1}Module["_eglWaitClient"]=_eglWaitClient;_eglWaitClient.sig="i";function _eglWaitNative(nativeEngineId){EGL.setErrorCode(12288);return 1}Module["_eglWaitNative"]=_eglWaitNative;_eglWaitNative.sig="ii";function _eglWaitGL(){return _eglWaitClient()}Module["_eglWaitGL"]=_eglWaitGL;_eglWaitGL.sig="i";function _eglSwapInterval(display,interval){if(display!=62e3){EGL.setErrorCode(12296);return 0}if(interval==0)_emscripten_set_main_loop_timing(0,0);else _emscripten_set_main_loop_timing(1,interval);EGL.setErrorCode(12288);return 1}Module["_eglSwapInterval"]=_eglSwapInterval;_eglSwapInterval.sig="iii";function _eglMakeCurrent(display,draw,read,context){if(display!=62e3){EGL.setErrorCode(12296);return 0}if(context!=0&&context!=62004){EGL.setErrorCode(12294);return 0}if(read!=0&&read!=62006||draw!=0&&draw!=62006){EGL.setErrorCode(12301);return 0}GL.makeContextCurrent(context?EGL.context:null);EGL.currentContext=context;EGL.currentDrawSurface=draw;EGL.currentReadSurface=read;EGL.setErrorCode(12288);return 1}Module["_eglMakeCurrent"]=_eglMakeCurrent;_eglMakeCurrent.sig="iiiii";function _eglGetCurrentContext(){return EGL.currentContext}Module["_eglGetCurrentContext"]=_eglGetCurrentContext;_eglGetCurrentContext.sig="i";function _eglGetCurrentSurface(readdraw){if(readdraw==12378){return EGL.currentReadSurface}else if(readdraw==12377){return EGL.currentDrawSurface}else{EGL.setErrorCode(12300);return 0}}Module["_eglGetCurrentSurface"]=_eglGetCurrentSurface;_eglGetCurrentSurface.sig="ii";function _eglGetCurrentDisplay(){return EGL.currentContext?62e3:0}Module["_eglGetCurrentDisplay"]=_eglGetCurrentDisplay;_eglGetCurrentDisplay.sig="i";function _eglSwapBuffers(){if(!EGL.defaultDisplayInitialized){EGL.setErrorCode(12289)}else if(!Module.ctx){EGL.setErrorCode(12290)}else if(Module.ctx.isContextLost()){EGL.setErrorCode(12302)}else{EGL.setErrorCode(12288);return 1}return 0}Module["_eglSwapBuffers"]=_eglSwapBuffers;_eglSwapBuffers.sig="iii";function _eglReleaseThread(){EGL.currentContext=0;EGL.currentReadSurface=0;EGL.currentDrawSurface=0;EGL.setErrorCode(12288);return 1}Module["_eglReleaseThread"]=_eglReleaseThread;_eglReleaseThread.sig="i";var GLFW={WindowFromId:function(id){if(id<=0||!GLFW.windows)return null;return GLFW.windows[id-1]},joystickFunc:null,errorFunc:null,monitorFunc:null,active:null,windows:null,monitors:null,monitorString:null,versionString:null,initialTime:null,extensions:null,hints:null,defaultHints:{131073:0,131074:0,131075:1,131076:1,131077:1,135169:8,135170:8,135171:8,135172:8,135173:24,135174:8,135175:0,135176:0,135177:0,135178:0,135179:0,135180:0,135181:0,135182:0,135183:0,139265:196609,139266:1,139267:0,139268:0,139269:0,139270:0,139271:0,139272:0},DOMToGLFWKeyCode:function(keycode){switch(keycode){case 32:return 32;case 222:return 39;case 188:return 44;case 173:return 45;case 189:return 45;case 190:return 46;case 191:return 47;case 48:return 48;case 49:return 49;case 50:return 50;case 51:return 51;case 52:return 52;case 53:return 53;case 54:return 54;case 55:return 55;case 56:return 56;case 57:return 57;case 59:return 59;case 61:return 61;case 187:return 61;case 65:return 65;case 66:return 66;case 67:return 67;case 68:return 68;case 69:return 69;case 70:return 70;case 71:return 71;case 72:return 72;case 73:return 73;case 74:return 74;case 75:return 75;case 76:return 76;case 77:return 77;case 78:return 78;case 79:return 79;case 80:return 80;case 81:return 81;case 82:return 82;case 83:return 83;case 84:return 84;case 85:return 85;case 86:return 86;case 87:return 87;case 88:return 88;case 89:return 89;case 90:return 90;case 219:return 91;case 220:return 92;case 221:return 93;case 192:return 94;case 27:return 256+1;case 112:return 256+2;case 113:return 256+3;case 114:return 256+4;case 115:return 256+5;case 116:return 256+6;case 117:return 256+7;case 118:return 256+8;case 119:return 256+9;case 120:return 256+10;case 121:return 256+11;case 122:return 256+12;case 123:return 256+13;case 124:return 256+14;case 125:return 256+15;case 126:return 256+16;case 127:return 256+17;case 128:return 256+18;case 129:return 256+19;case 130:return 256+20;case 131:return 256+21;case 132:return 256+22;case 133:return 256+23;case 134:return 256+24;case 135:return 256+25;case 136:return 256+26;case 39:return 256+30;case 37:return 256+29;case 40:return 256+28;case 38:return 256+27;case 16:return 256+31;case 17:return 256+33;case 18:return 256+35;case 9:return 256+37;case 13:return 256+38;case 8:return 256+39;case 45:return 256+40;case 46:return 256+41;case 33:return 256+42;case 34:return 256+43;case 36:return 256+44;case 35:return 256+45;case 96:return 256+46;case 97:return 256+47;case 98:return 256+48;case 99:return 256+49;case 100:return 256+50;case 101:return 256+51;case 102:return 256+52;case 103:return 256+53;case 104:return 256+54;case 105:return 256+55;case 111:return 256+56;case 106:return 256+57;case 109:return 256+58;case 107:return 256+59;case 110:return 256+60;case 144:return 256+63;case 20:return 256+64;case 145:return 256+65;case 19:return 256+66;case 91:return 256+67;case 93:return 256+69;default:return-1}},getModBits:function(win){var mod=0;if(win.keys[340])mod|=1;if(win.keys[341])mod|=2;if(win.keys[342])mod|=4;if(win.keys[343])mod|=8;return mod},onKeyPress:function(event){if(!GLFW.active||!GLFW.active.charFunc)return;if(event.ctrlKey||event.metaKey)return;var charCode=event.charCode;if(charCode==0||charCode>=0&&charCode<=31)return;wasmTable.get(GLFW.active.charFunc)(charCode,1)},onKeyChanged:function(keyCode,status){if(!GLFW.active)return;var key=GLFW.DOMToGLFWKeyCode(keyCode);if(key==-1)return;GLFW.active.keys[key]=status;GLFW.active.domKeys[keyCode]=status;if(!GLFW.active.keyFunc)return;wasmTable.get(GLFW.active.keyFunc)(key,status)},onGamepadConnected:function(event){GLFW.refreshJoysticks()},onGamepadDisconnected:function(event){GLFW.refreshJoysticks()},onKeydown:function(event){GLFW.onKeyChanged(event.keyCode,1);if(event.keyCode===8||event.keyCode===9){event.preventDefault()}},onKeyup:function(event){GLFW.onKeyChanged(event.keyCode,0)},onBlur:function(event){if(!GLFW.active)return;for(var i=0;i0){if(eventButton==1){eventButton=2}else{eventButton=1}}return eventButton},onMouseenter:function(event){if(!GLFW.active)return;if(event.target!=Module["canvas"]||!GLFW.active.cursorEnterFunc)return},onMouseleave:function(event){if(!GLFW.active)return;if(event.target!=Module["canvas"]||!GLFW.active.cursorEnterFunc)return},onMouseButtonChanged:function(event,status){if(!GLFW.active)return;Browser.calculateMouseEvent(event);if(event.target!=Module["canvas"])return;var eventButton=GLFW.DOMToGLFWMouseButton(event);if(status==1){GLFW.active.buttons|=1<0?Math.max(delta,1):Math.min(delta,-1);GLFW.wheelPos+=delta;if(!GLFW.active||!GLFW.active.scrollFunc||event.target!=Module["canvas"])return;wasmTable.get(GLFW.active.scrollFunc)(GLFW.wheelPos);event.preventDefault()},onCanvasResize:function(width,height){if(!GLFW.active)return;var resizeNeeded=true;if(document["fullscreen"]||document["fullScreen"]||document["mozFullScreen"]||document["webkitIsFullScreen"]){GLFW.active.storedX=GLFW.active.x;GLFW.active.storedY=GLFW.active.y;GLFW.active.storedWidth=GLFW.active.width;GLFW.active.storedHeight=GLFW.active.height;GLFW.active.x=GLFW.active.y=0;GLFW.active.width=screen.width;GLFW.active.height=screen.height;GLFW.active.fullscreen=true}else if(GLFW.active.fullscreen==true){GLFW.active.x=GLFW.active.storedX;GLFW.active.y=GLFW.active.storedY;GLFW.active.width=GLFW.active.storedWidth;GLFW.active.height=GLFW.active.storedHeight;GLFW.active.fullscreen=false}else if(GLFW.active.width!=width||GLFW.active.height!=height){GLFW.active.width=width;GLFW.active.height=height}else{resizeNeeded=false}if(resizeNeeded){Browser.setCanvasSize(GLFW.active.width,GLFW.active.height,true);GLFW.onWindowSizeChanged();GLFW.onFramebufferSizeChanged()}},onWindowSizeChanged:function(){if(!GLFW.active)return;if(!GLFW.active.windowSizeFunc)return;wasmTable.get(GLFW.active.windowSizeFunc)(GLFW.active.width,GLFW.active.height)},onFramebufferSizeChanged:function(){if(!GLFW.active)return;if(!GLFW.active.framebufferSizeFunc)return},getTime:function(){return _emscripten_get_now()/1e3},setWindowTitle:function(winid,title){var win=GLFW.WindowFromId(winid);if(!win)return;win.title=UTF8ToString(title);if(GLFW.active.id==win.id){document.title=win.title}},setJoystickCallback:function(cbfun){GLFW.joystickFunc=cbfun;GLFW.refreshJoysticks()},joys:{},lastGamepadState:null,lastGamepadStateFrame:null,refreshJoysticks:function(){if(Browser.mainLoop.currentFrameNumber!==GLFW.lastGamepadStateFrame||!Browser.mainLoop.currentFrameNumber){GLFW.lastGamepadState=navigator.getGamepads?navigator.getGamepads():navigator.webkitGetGamepads?navigator.webkitGetGamepads:null;GLFW.lastGamepadStateFrame=Browser.mainLoop.currentFrameNumber;for(var joy=0;joy0},getCursorPos:function(winid,x,y){setValue(x,Browser.mouseX,"double");setValue(y,Browser.mouseY,"double")},getMousePos:function(winid,x,y){setValue(x,Browser.mouseX,"i32");setValue(y,Browser.mouseY,"i32")},setCursorPos:function(winid,x,y){},getWindowPos:function(winid,x,y){var wx=0;var wy=0;var win=GLFW.WindowFromId(winid);if(win){wx=win.x;wy=win.y}if(x){setValue(x,wx,"i32")}if(y){setValue(y,wy,"i32")}},setWindowPos:function(winid,x,y){var win=GLFW.WindowFromId(winid);if(!win)return;win.x=x;win.y=y},getWindowSize:function(winid,width,height){var ww=0;var wh=0;var win=GLFW.WindowFromId(winid);if(win){ww=win.width;wh=win.height}if(width){setValue(width,ww,"i32")}if(height){setValue(height,wh,"i32")}},setWindowSize:function(winid,width,height){var win=GLFW.WindowFromId(winid);if(!win)return;if(GLFW.active.id==win.id){if(width==screen.width&&height==screen.height){Browser.requestFullscreen()}else{Browser.exitFullscreen();Browser.setCanvasSize(width,height);win.width=width;win.height=height}}if(!win.windowSizeFunc)return;wasmTable.get(win.windowSizeFunc)(width,height)},createWindow:function(width,height,title,monitor,share){var i,id;for(i=0;i0)throw"glfwCreateWindow only supports one window at time currently";id=i+1;if(width<=0||height<=0)return 0;if(monitor){Browser.requestFullscreen()}else{Browser.setCanvasSize(width,height)}for(i=0;i0;if(i==GLFW.windows.length){if(useWebGL){var contextAttributes={antialias:GLFW.hints[135181]>1,depth:GLFW.hints[135173]>0,stencil:GLFW.hints[135174]>0,alpha:GLFW.hints[135172]>0};Module.ctx=Browser.createContext(Module["canvas"],true,true,contextAttributes)}else{Browser.init()}}if(!Module.ctx&&useWebGL)return 0;var win=new GLFW_Window(id,width,height,title,monitor,share);if(id-1==GLFW.windows.length){GLFW.windows.push(win)}else{GLFW.windows[id-1]=win}GLFW.active=win;return win.id},destroyWindow:function(winid){var win=GLFW.WindowFromId(winid);if(!win)return;GLFW.windows[win.id-1]=null;if(GLFW.active.id==win.id)GLFW.active=null;for(var i=0;i>2];if(val){return 0}}return 1}Module["_uuid_is_null"]=_uuid_is_null;function _uuid_parse(inp,uu){inp=UTF8ToString(inp);if(inp.length===36){var i=0;var uuid=new Array(16);inp.toLowerCase().replace(/[0-9a-f]{2}/g,function(byte){if(i<16){uuid[i++]=parseInt(byte,16)}});if(i<16){return-1}else{writeArrayToMemory(uuid,uu);return 0}}else{return-1}}Module["_uuid_parse"]=_uuid_parse;function _uuid_unparse(uu,out,upper){var i=0;var uuid="xxxx-xx-xx-xx-xxxxxx".replace(/[x]/g,function(c){var r=upper?HEAPU8[uu+i>>0].toString(16).toUpperCase():HEAPU8[uu+i>>0].toString(16);r=r.length===1?"0"+r:r;i++;return r});stringToUTF8(uuid,out,37)}Module["_uuid_unparse"]=_uuid_unparse;function _uuid_unparse_lower(uu,out){_uuid_unparse(uu,out)}Module["_uuid_unparse_lower"]=_uuid_unparse_lower;function _uuid_unparse_upper(uu,out){_uuid_unparse(uu,out,true)}Module["_uuid_unparse_upper"]=_uuid_unparse_upper;function _uuid_type(uu){return 4}Module["_uuid_type"]=_uuid_type;function _uuid_variant(uu){return 1}Module["_uuid_variant"]=_uuid_variant;var GLEW={isLinaroFork:1,extensions:null,error:{0:null,1:null,2:null,3:null,4:null,5:null,6:null,7:null,8:null},version:{1:null,2:null,3:null,4:null},errorStringConstantFromCode:function(error){if(GLEW.isLinaroFork){switch(error){case 4:return"OpenGL ES lib expected, found OpenGL lib";case 5:return"OpenGL lib expected, found OpenGL ES lib";case 6:return"Missing EGL version";case 7:return"EGL 1.1 and up are supported";default:break}}switch(error){case 0:return"No error";case 1:return"Missing GL version";case 2:return"GL 1.1 and up are supported";case 3:return"GLX 1.2 and up are supported";default:return null}},errorString:function(error){if(!GLEW.error[error]){var string=GLEW.errorStringConstantFromCode(error);if(!string){string="Unknown error";error=8}GLEW.error[error]=allocate(intArrayFromString(string),ALLOC_NORMAL)}return GLEW.error[error]},versionStringConstantFromCode:function(name){switch(name){case 1:return"1.10.0";case 2:return"1";case 3:return"10";case 4:return"0";default:return null}},versionString:function(name){if(!GLEW.version[name]){var string=GLEW.versionStringConstantFromCode(name);if(!string)return 0;GLEW.version[name]=allocate(intArrayFromString(string),ALLOC_NORMAL)}return GLEW.version[name]},extensionIsSupported:function(name){if(!GLEW.extensions){GLEW.extensions=UTF8ToString(_glGetString(7939)).split(" ")}if(GLEW.extensions.includes(name))return 1;return GLEW.extensions.includes("GL_"+name)}};Module["GLEW"]=GLEW;function _glewInit(){return 0}Module["_glewInit"]=_glewInit;function _glewIsSupported(name){var exts=UTF8ToString(name).split(" ");for(var i=0;i0)};req.onerror=function(error){callback(error)}})}};Module["IDBStore"]=IDBStore;function _emscripten_idb_async_load(db,id,arg,onload,onerror){IDBStore.getFile(UTF8ToString(db),UTF8ToString(id),function(error,byteArray){if(error){if(onerror)wasmTable.get(onerror)(arg);return}var buffer=_malloc(byteArray.length);HEAPU8.set(byteArray,buffer);wasmTable.get(onload)(arg,buffer,byteArray.length);_free(buffer)})}Module["_emscripten_idb_async_load"]=_emscripten_idb_async_load;function _emscripten_idb_async_store(db,id,ptr,num,arg,onstore,onerror){IDBStore.setFile(UTF8ToString(db),UTF8ToString(id),new Uint8Array(HEAPU8.subarray(ptr,ptr+num)),function(error){if(error){if(onerror)wasmTable.get(onerror)(arg);return}if(onstore)wasmTable.get(onstore)(arg)})}Module["_emscripten_idb_async_store"]=_emscripten_idb_async_store;function _emscripten_idb_async_delete(db,id,arg,ondelete,onerror){IDBStore.deleteFile(UTF8ToString(db),UTF8ToString(id),function(error){if(error){if(onerror)wasmTable.get(onerror)(arg);return}if(ondelete)wasmTable.get(ondelete)(arg)})}Module["_emscripten_idb_async_delete"]=_emscripten_idb_async_delete;function _emscripten_idb_async_exists(db,id,arg,oncheck,onerror){IDBStore.existsFile(UTF8ToString(db),UTF8ToString(id),function(error,exists){if(error){if(onerror)wasmTable.get(onerror)(arg);return}if(oncheck)wasmTable.get(oncheck)(arg,exists)})}Module["_emscripten_idb_async_exists"]=_emscripten_idb_async_exists;function _emscripten_idb_load(){throw"Please compile your program with async support in order to use synchronous operations like emscripten_idb_load, etc."}Module["_emscripten_idb_load"]=_emscripten_idb_load;function _emscripten_idb_store(){throw"Please compile your program with async support in order to use synchronous operations like emscripten_idb_store, etc."}Module["_emscripten_idb_store"]=_emscripten_idb_store;function _emscripten_idb_delete(){throw"Please compile your program with async support in order to use synchronous operations like emscripten_idb_delete, etc."}Module["_emscripten_idb_delete"]=_emscripten_idb_delete;function _emscripten_idb_exists(){throw"Please compile your program with async support in order to use synchronous operations like emscripten_idb_exists, etc."}Module["_emscripten_idb_exists"]=_emscripten_idb_exists;function runAndAbortIfError(func){try{return func()}catch(e){abort(e)}}Module["runAndAbortIfError"]=runAndAbortIfError;function _emscripten_sleep(){throw"Please compile your program with async support in order to use asynchronous operations like emscripten_sleep"}Module["_emscripten_sleep"]=_emscripten_sleep;function _emscripten_wget(){throw"Please compile your program with async support in order to use asynchronous operations like emscripten_wget"}Module["_emscripten_wget"]=_emscripten_wget;function _emscripten_wget_data(){throw"Please compile your program with async support in order to use asynchronous operations like emscripten_wget_data"}Module["_emscripten_wget_data"]=_emscripten_wget_data;function _emscripten_scan_registers(){throw"Please compile your program with async support in order to use asynchronous operations like emscripten_scan_registers"}Module["_emscripten_scan_registers"]=_emscripten_scan_registers;function _emscripten_fiber_init(){throw"Please compile your program with async support in order to use asynchronous operations like emscripten_fiber_init"}Module["_emscripten_fiber_init"]=_emscripten_fiber_init;function _emscripten_fiber_init_from_current_context(){throw"Please compile your program with async support in order to use asynchronous operations like emscripten_fiber_init_from_current_context"}Module["_emscripten_fiber_init_from_current_context"]=_emscripten_fiber_init_from_current_context;function _emscripten_fiber_swap(){throw"Please compile your program with async support in order to use asynchronous operations like emscripten_fiber_swap"}Module["_emscripten_fiber_swap"]=_emscripten_fiber_swap;function _emscripten_is_main_browser_thread(){return!ENVIRONMENT_IS_WORKER}Module["_emscripten_is_main_browser_thread"]=_emscripten_is_main_browser_thread;function ___cxa_thread_atexit(a0,a1){return _atexit(a0,a1)}Module["___cxa_thread_atexit"]=___cxa_thread_atexit;___cxa_thread_atexit.sig="iii";function ___cxa_thread_atexit_impl(a0,a1){return _atexit(a0,a1)}Module["___cxa_thread_atexit_impl"]=___cxa_thread_atexit_impl;___cxa_thread_atexit_impl.sig="iii";Module["requestFullscreen"]=function Module_requestFullscreen(lockPointer,resizeCanvas){Browser.requestFullscreen(lockPointer,resizeCanvas)};Module["requestAnimationFrame"]=function Module_requestAnimationFrame(func){Browser.requestAnimationFrame(func)};Module["setCanvasSize"]=function Module_setCanvasSize(width,height,noUpdates){Browser.setCanvasSize(width,height,noUpdates)};Module["pauseMainLoop"]=function Module_pauseMainLoop(){Browser.mainLoop.pause()};Module["resumeMainLoop"]=function Module_resumeMainLoop(){Browser.mainLoop.resume()};Module["getUserMedia"]=function Module_getUserMedia(){Browser.getUserMedia()};Module["createContext"]=function Module_createContext(canvas,useWebGL,setInModule,webGLContextAttributes){return Browser.createContext(canvas,useWebGL,setInModule,webGLContextAttributes)};var FSNode=function(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev};var readMode=292|73;var writeMode=146;Object.defineProperties(FSNode.prototype,{read:{get:function(){return(this.mode&readMode)===readMode},set:function(val){val?this.mode|=readMode:this.mode&=~readMode}},write:{get:function(){return(this.mode&writeMode)===writeMode},set:function(val){val?this.mode|=writeMode:this.mode&=~writeMode}},isFolder:{get:function(){return FS.isDir(this.mode)}},isDevice:{get:function(){return FS.isChrdev(this.mode)}}});FS.FSNode=FSNode;FS.staticInit();Module["FS_createPath"]=FS.createPath;Module["FS_createDataFile"]=FS.createDataFile;Module["FS_createPreloadedFile"]=FS.createPreloadedFile;Module["FS_createLazyFile"]=FS.createLazyFile;Module["FS_createDevice"]=FS.createDevice;Module["FS_unlink"]=FS.unlink;if(ENVIRONMENT_IS_NODE){var fs=require("fs");var NODEJS_PATH=require("path");NODEFS.staticInit()}ERRNO_CODES={"EPERM":63,"ENOENT":44,"ESRCH":71,"EINTR":27,"EIO":29,"ENXIO":60,"E2BIG":1,"ENOEXEC":45,"EBADF":8,"ECHILD":12,"EAGAIN":6,"EWOULDBLOCK":6,"ENOMEM":48,"EACCES":2,"EFAULT":21,"ENOTBLK":105,"EBUSY":10,"EEXIST":20,"EXDEV":75,"ENODEV":43,"ENOTDIR":54,"EISDIR":31,"EINVAL":28,"ENFILE":41,"EMFILE":33,"ENOTTY":59,"ETXTBSY":74,"EFBIG":22,"ENOSPC":51,"ESPIPE":70,"EROFS":69,"EMLINK":34,"EPIPE":64,"EDOM":18,"ERANGE":68,"ENOMSG":49,"EIDRM":24,"ECHRNG":106,"EL2NSYNC":156,"EL3HLT":107,"EL3RST":108,"ELNRNG":109,"EUNATCH":110,"ENOCSI":111,"EL2HLT":112,"EDEADLK":16,"ENOLCK":46,"EBADE":113,"EBADR":114,"EXFULL":115,"ENOANO":104,"EBADRQC":103,"EBADSLT":102,"EDEADLOCK":16,"EBFONT":101,"ENOSTR":100,"ENODATA":116,"ETIME":117,"ENOSR":118,"ENONET":119,"ENOPKG":120,"EREMOTE":121,"ENOLINK":47,"EADV":122,"ESRMNT":123,"ECOMM":124,"EPROTO":65,"EMULTIHOP":36,"EDOTDOT":125,"EBADMSG":9,"ENOTUNIQ":126,"EBADFD":127,"EREMCHG":128,"ELIBACC":129,"ELIBBAD":130,"ELIBSCN":131,"ELIBMAX":132,"ELIBEXEC":133,"ENOSYS":52,"ENOTEMPTY":55,"ENAMETOOLONG":37,"ELOOP":32,"EOPNOTSUPP":138,"EPFNOSUPPORT":139,"ECONNRESET":15,"ENOBUFS":42,"EAFNOSUPPORT":5,"EPROTOTYPE":67,"ENOTSOCK":57,"ENOPROTOOPT":50,"ESHUTDOWN":140,"ECONNREFUSED":14,"EADDRINUSE":3,"ECONNABORTED":13,"ENETUNREACH":40,"ENETDOWN":38,"ETIMEDOUT":73,"EHOSTDOWN":142,"EHOSTUNREACH":23,"EINPROGRESS":26,"EALREADY":7,"EDESTADDRREQ":17,"EMSGSIZE":35,"EPROTONOSUPPORT":66,"ESOCKTNOSUPPORT":137,"EADDRNOTAVAIL":4,"ENETRESET":39,"EISCONN":30,"ENOTCONN":53,"ETOOMANYREFS":141,"EUSERS":136,"EDQUOT":19,"ESTALE":72,"ENOTSUP":138,"ENOMEDIUM":148,"EILSEQ":25,"EOVERFLOW":61,"ECANCELED":11,"ENOTRECOVERABLE":56,"EOWNERDEAD":62,"ESTRPIPE":135};var GLctx;for(var i=0;i<32;++i)tempFixedLengthArray.push(new Array(i));var miniTempWebGLFloatBuffersStorage=new Float32Array(288);for(var i=0;i<288;++i){miniTempWebGLFloatBuffers[i]=miniTempWebGLFloatBuffersStorage.subarray(0,i+1)}var __miniTempWebGLIntBuffersStorage=new Int32Array(288);for(var i=0;i<288;++i){__miniTempWebGLIntBuffers[i]=__miniTempWebGLIntBuffersStorage.subarray(0,i+1)}var emSetImmediate;var emClearImmediate;if(typeof setImmediate!=="undefined"){emSetImmediate=setImmediate;emClearImmediate=clearImmediate}else if(typeof addEventListener==="function"){var __setImmediate_id_counter=0;var __setImmediate_queue=[];var __setImmediate_message_id="_si";function __setImmediate_cb(e){if(e.data===__setImmediate_message_id){e.stopPropagation();__setImmediate_queue.shift()();++__setImmediate_id_counter}}addEventListener("message",__setImmediate_cb,true);emSetImmediate=function(func){postMessage(__setImmediate_message_id,"*");return __setImmediate_id_counter+__setImmediate_queue.push(func)-1};emClearImmediate=function(id){var index=id-__setImmediate_id_counter;if(index>=0&&index<__setImmediate_queue.length)__setImmediate_queue[index]=function(){}}}var ASSERTIONS=false;function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}function intArrayToString(array){var ret=[];for(var i=0;i255){if(ASSERTIONS){assert(false,"Character code "+chr+" ("+String.fromCharCode(chr)+") at offset "+i+" not in 0x00-0xFF.")}chr&=255}ret.push(String.fromCharCode(chr))}return ret.join("")}var decodeBase64=typeof atob==="function"?atob:function(input){var keyStr="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";var output="";var chr1,chr2,chr3;var enc1,enc2,enc3,enc4;var i=0;input=input.replace(/[^A-Za-z0-9\+\/\=]/g,"");do{enc1=keyStr.indexOf(input.charAt(i++));enc2=keyStr.indexOf(input.charAt(i++));enc3=keyStr.indexOf(input.charAt(i++));enc4=keyStr.indexOf(input.charAt(i++));chr1=enc1<<2|enc2>>4;chr2=(enc2&15)<<4|enc3>>2;chr3=(enc3&3)<<6|enc4;output=output+String.fromCharCode(chr1);if(enc3!==64){output=output+String.fromCharCode(chr2)}if(enc4!==64){output=output+String.fromCharCode(chr3)}}while(i>2]=allocateUTF8OnStack(thisProgram);for(var i=1;i>2)+i]=allocateUTF8OnStack(args[i-1])}HEAP32[(argv>>2)+argc]=0;try{var ret=entryFunction(argc,argv);exit(ret,true)}catch(e){if(e instanceof ExitStatus||e=="unwind"){return}var toLog=e;if(e&&typeof e==="object"&&e.stack){toLog=[e,e.stack]}err("exception thrown: "+toLog);quit_(1,e)}finally{calledMain=true}}var dylibsLoaded=false;function run(args){args=args||arguments_;if(runDependencies>0){return}if(!dylibsLoaded){preloadDylibs();dylibsLoaded=true;if(runDependencies>0){return}}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();preMain();readyPromiseResolve(Module);if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();if(shouldRunNow)callMain(args);postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}Module["run"]=run;function exit(status,implicit){EXITSTATUS=status;if(keepRuntimeAlive()){}else{exitRuntime()}procExit(status)}function procExit(code){EXITSTATUS=code;if(!keepRuntimeAlive()){if(Module["onExit"])Module["onExit"](code);ABORT=true}quit_(code,new ExitStatus(code))}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}var shouldRunNow=true;if(Module["noInitialRun"])shouldRunNow=false;run(); return _createPyodideModule.ready } ); })(); globalThis._createPyodideModule = _createPyodideModule;