diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..3e2e84b
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,2 @@
+build/
+node_modules/
diff --git a/build/coverage/coverage-final.json b/build/coverage/coverage-final.json
deleted file mode 100644
index 6705917..0000000
--- a/build/coverage/coverage-final.json
+++ /dev/null
@@ -1,2 +0,0 @@
-{
-"/usr/share/gamewheel/game-lib/build/game-lib.js":{"path":"/usr/share/gamewheel/game-lib/build/game-lib.js","s":{"1":1,"2":1,"3":1,"4":1,"5":1,"6":1,"7":0,"8":0,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"17":1,"18":0,"19":1,"20":1,"21":1,"22":1,"23":1,"24":1,"25":1,"26":1,"27":1,"28":1,"29":1,"30":1,"31":1,"32":1,"33":1,"34":1,"35":1,"36":1,"37":1,"38":1,"39":1,"40":1,"41":0,"42":1,"43":1,"44":0,"45":1,"46":1,"47":0,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"54":0,"55":0,"56":1,"57":1,"58":1,"59":1,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":1,"67":1,"68":1,"69":1,"70":1,"71":1,"72":2,"73":2,"74":2,"75":2,"76":1,"77":2,"78":2,"79":1,"80":0,"81":1,"82":1,"83":0,"84":0,"85":1,"86":0,"87":1,"88":0,"89":1,"90":1,"91":1,"92":1,"93":0,"94":0,"95":0,"96":0,"97":1,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0,"106":0,"107":0,"108":0,"109":0,"110":0,"111":0,"112":0,"113":0,"114":0,"115":0,"116":0,"117":0,"118":0,"119":0,"120":0,"121":0,"122":0,"123":0,"124":0,"125":0,"126":0,"127":1,"128":0,"129":0,"130":0,"131":0,"132":1,"133":0,"134":0,"135":0,"136":1,"137":0,"138":0,"139":0,"140":1,"141":0,"142":1,"143":0,"144":0,"145":0,"146":0,"147":0,"148":0,"149":0,"150":0,"151":0,"152":0,"153":0,"154":0,"155":0,"156":0,"157":0,"158":0,"159":0,"160":0,"161":0,"162":0,"163":0,"164":0,"165":0,"166":0,"167":0,"168":0,"169":1,"170":0,"171":0,"172":1,"173":0,"174":0,"175":0,"176":0,"177":0,"178":1,"179":0,"180":0,"181":0,"182":0,"183":0,"184":0,"185":0,"186":0,"187":0,"188":0,"189":0,"190":0,"191":0,"192":1,"193":0,"194":0,"195":0,"196":0,"197":0,"198":0,"199":0,"200":0,"201":0,"202":0,"203":0,"204":0,"205":0,"206":1,"207":0,"208":0,"209":0,"210":1,"211":0,"212":1,"213":0,"214":1,"215":0,"216":0,"217":1,"218":0,"219":1,"220":0,"221":0,"222":0,"223":0,"224":0,"225":0,"226":0,"227":0,"228":0,"229":0,"230":0,"231":0,"232":0,"233":0,"234":0,"235":0,"236":0,"237":0,"238":0,"239":0,"240":0,"241":0,"242":0,"243":0,"244":0,"245":0,"246":0,"247":0,"248":0,"249":0,"250":1,"251":0,"252":0,"253":1,"254":1,"255":1,"256":1,"257":0,"258":1,"259":0,"260":0,"261":0,"262":1,"263":1,"264":0,"265":0,"266":0,"267":0,"268":0,"269":0,"270":0,"271":0,"272":0,"273":0,"274":0,"275":0,"276":0,"277":0,"278":0,"279":1,"280":0,"281":0,"282":0,"283":0,"284":0,"285":0,"286":0,"287":0,"288":0,"289":0,"290":0,"291":0,"292":0,"293":0,"294":0,"295":0,"296":0,"297":0,"298":0,"299":0,"300":0,"301":0,"302":1,"303":0,"304":0,"305":0,"306":0,"307":0,"308":0,"309":0,"310":0,"311":0,"312":0,"313":0,"314":0,"315":0,"316":0,"317":0,"318":0,"319":0,"320":0,"321":0,"322":0,"323":0,"324":1,"325":0,"326":0,"327":0,"328":0,"329":0,"330":0,"331":0,"332":0,"333":0,"334":0,"335":0,"336":0,"337":0,"338":0,"339":0,"340":1,"341":0,"342":0,"343":0,"344":0,"345":0,"346":0,"347":0,"348":0,"349":0,"350":0,"351":0,"352":0,"353":0,"354":0,"355":0,"356":0,"357":0,"358":0,"359":0,"360":0,"361":0,"362":0,"363":0,"364":0,"365":0,"366":0,"367":0,"368":0,"369":0,"370":0,"371":0,"372":0,"373":0,"374":0,"375":0,"376":1,"377":0,"378":0,"379":0,"380":0,"381":0,"382":0,"383":0,"384":0,"385":0,"386":0,"387":0,"388":0,"389":0,"390":0,"391":0,"392":0,"393":0,"394":0,"395":0,"396":0,"397":0,"398":0,"399":0,"400":0,"401":0,"402":0,"403":0,"404":0,"405":0,"406":0,"407":0,"408":0,"409":0,"410":0,"411":0,"412":0,"413":0,"414":0,"415":0,"416":0,"417":0,"418":0,"419":0,"420":0,"421":0,"422":0,"423":0,"424":0,"425":0,"426":0,"427":0,"428":0,"429":0,"430":0,"431":0,"432":0,"433":0,"434":0,"435":0,"436":0,"437":0,"438":0,"439":0,"440":0,"441":0,"442":0,"443":0,"444":0,"445":0,"446":0,"447":0,"448":0,"449":0,"450":0,"451":0,"452":0,"453":0,"454":0,"455":0,"456":0,"457":0,"458":0,"459":0,"460":0,"461":0,"462":0,"463":0,"464":0,"465":0,"466":0,"467":0,"468":0,"469":0,"470":0,"471":0,"472":0,"473":0,"474":0,"475":0,"476":0,"477":0,"478":0,"479":0,"480":0,"481":0,"482":0,"483":0,"484":0,"485":0,"486":0,"487":0,"488":0,"489":0,"490":0,"491":0,"492":0,"493":0,"494":0,"495":0,"496":0,"497":0,"498":0,"499":0,"500":0,"501":0,"502":0,"503":0,"504":0,"505":0,"506":0,"507":0,"508":0,"509":0,"510":0,"511":0,"512":0,"513":0,"514":0,"515":0,"516":0,"517":0,"518":0,"519":0,"520":0,"521":0,"522":0,"523":0,"524":0,"525":0,"526":0,"527":0,"528":0,"529":0,"530":0,"531":0,"532":0,"533":0,"534":0,"535":0,"536":0,"537":0,"538":0,"539":0,"540":0,"541":0,"542":0,"543":0,"544":1,"545":1,"546":1,"547":1,"548":1,"549":1,"550":1,"551":1,"552":1,"553":1,"554":1,"555":1,"556":1,"557":1,"558":1,"559":1,"560":1,"561":1,"562":1,"563":1,"564":1,"565":1,"566":1,"567":1,"568":1,"569":1,"570":1,"571":1,"572":1,"573":1,"574":1,"575":1,"576":1,"577":1,"578":1,"579":1,"580":1,"581":1,"582":1,"583":1,"584":1,"585":1,"586":1,"587":1,"588":1,"589":1,"590":1,"591":1,"592":1,"593":1,"594":1,"595":1,"596":0,"597":0,"598":0,"599":0,"600":0,"601":0,"602":0,"603":0,"604":0,"605":0,"606":0,"607":0,"608":0,"609":0,"610":0,"611":0,"612":0,"613":0,"614":1,"615":0,"616":0,"617":0,"618":0,"619":0,"620":0,"621":0,"622":1,"623":0,"624":1,"625":0,"626":0,"627":0,"628":0,"629":0,"630":0,"631":0,"632":0,"633":0,"634":1,"635":0,"636":0,"637":0,"638":0,"639":1,"640":0,"641":0,"642":0,"643":0,"644":1,"645":0,"646":0,"647":0,"648":0,"649":1,"650":0,"651":0,"652":0,"653":1,"654":0,"655":0,"656":0,"657":1,"658":0,"659":0,"660":0,"661":1,"662":0,"663":0,"664":0,"665":0,"666":1,"667":0,"668":1,"669":0,"670":0,"671":0,"672":0,"673":0,"674":0,"675":0,"676":0,"677":0,"678":0,"679":0,"680":0,"681":0,"682":0,"683":0,"684":0,"685":0,"686":0,"687":0,"688":1,"689":0,"690":0,"691":0,"692":0,"693":0,"694":0,"695":0,"696":0,"697":0,"698":0,"699":0,"700":0,"701":0,"702":0,"703":0,"704":0,"705":0,"706":0,"707":0,"708":0,"709":0,"710":0,"711":0,"712":0,"713":0,"714":0,"715":0,"716":0,"717":0,"718":0,"719":0,"720":0,"721":0,"722":0,"723":0,"724":0,"725":0,"726":0,"727":0,"728":0,"729":1,"730":1,"731":1,"732":0,"733":0,"734":0,"735":0,"736":0,"737":0,"738":0,"739":0,"740":0,"741":0,"742":0,"743":0,"744":0,"745":0,"746":0,"747":0,"748":0,"749":0,"750":0,"751":0,"752":0,"753":0,"754":0,"755":0,"756":0,"757":0,"758":0,"759":0,"760":0,"761":0,"762":0,"763":0,"764":0,"765":0,"766":0,"767":0,"768":0,"769":0,"770":0,"771":0,"772":0,"773":0,"774":0,"775":0,"776":0,"777":0,"778":0,"779":0,"780":0,"781":0,"782":1,"783":0,"784":0,"785":0,"786":0,"787":0,"788":0,"789":0,"790":0,"791":1,"792":0,"793":0,"794":0,"795":0,"796":0,"797":0,"798":0,"799":0,"800":0,"801":0,"802":0,"803":0,"804":0,"805":0,"806":0,"807":0,"808":0,"809":0,"810":1,"811":1,"812":0,"813":0,"814":0,"815":0,"816":1,"817":0,"818":0,"819":0,"820":0,"821":0,"822":0,"823":0,"824":0,"825":0,"826":0,"827":0,"828":0,"829":0,"830":0,"831":0,"832":0,"833":0,"834":0,"835":0,"836":0,"837":0,"838":0,"839":0,"840":0,"841":0,"842":0,"843":0,"844":0,"845":0,"846":0,"847":0,"848":0,"849":0,"850":0,"851":1,"852":0,"853":0,"854":0,"855":0,"856":0,"857":0,"858":0,"859":0,"860":0,"861":0,"862":0,"863":0,"864":1,"865":0,"866":0,"867":0,"868":0,"869":0,"870":0,"871":1,"872":1,"873":1,"874":0,"875":0,"876":0,"877":0,"878":0,"879":1,"880":0,"881":1,"882":0,"883":0,"884":0,"885":0,"886":0,"887":0,"888":0,"889":0,"890":1,"891":0,"892":1,"893":0,"894":0,"895":1,"896":0,"897":1,"898":0,"899":0,"900":0,"901":0,"902":0,"903":0,"904":0,"905":0,"906":0,"907":0,"908":0,"909":0,"910":0,"911":0,"912":0,"913":0,"914":0,"915":0,"916":0,"917":0,"918":0,"919":0,"920":0,"921":0,"922":0,"923":0,"924":0,"925":0,"926":0,"927":0,"928":0,"929":0,"930":0,"931":0,"932":0,"933":0,"934":0,"935":0,"936":0,"937":0,"938":0,"939":0,"940":0,"941":0,"942":0,"943":0,"944":0,"945":0,"946":0,"947":0,"948":0,"949":0,"950":0,"951":0,"952":0,"953":0,"954":0,"955":0,"956":0,"957":0,"958":0,"959":0,"960":0,"961":0,"962":0,"963":0,"964":0,"965":0,"966":0,"967":0,"968":0,"969":0,"970":0,"971":0,"972":0,"973":0,"974":0,"975":0,"976":0,"977":0,"978":0,"979":0,"980":0,"981":0,"982":0,"983":1,"984":0,"985":1,"986":0,"987":0,"988":0,"989":0,"990":0,"991":0,"992":0,"993":0,"994":1,"995":0,"996":1,"997":0,"998":1,"999":0,"1000":0,"1001":1,"1002":0,"1003":0,"1004":0,"1005":0,"1006":0,"1007":0,"1008":0,"1009":0,"1010":0,"1011":0,"1012":0,"1013":0,"1014":0,"1015":0,"1016":0,"1017":0,"1018":0,"1019":0,"1020":0,"1021":1,"1022":0,"1023":0,"1024":0,"1025":1,"1026":0,"1027":0,"1028":0,"1029":0,"1030":0,"1031":1,"1032":0,"1033":0,"1034":0,"1035":0,"1036":0,"1037":1,"1038":1,"1039":1,"1040":1,"1041":1,"1042":1,"1043":0,"1044":1,"1045":1,"1046":1,"1047":1,"1048":1,"1049":1,"1050":1,"1051":1,"1052":1,"1053":1,"1054":1,"1055":1,"1056":1,"1057":1,"1058":1,"1059":1,"1060":1,"1061":1,"1062":1,"1063":1,"1064":1,"1065":1,"1066":1,"1067":1,"1068":1,"1069":1,"1070":1,"1071":1,"1072":1,"1073":1,"1074":1,"1075":0,"1076":0,"1077":0,"1078":0,"1079":0,"1080":0,"1081":0,"1082":0,"1083":0,"1084":0,"1085":0,"1086":0,"1087":0,"1088":0,"1089":0,"1090":0,"1091":0,"1092":0,"1093":0,"1094":0,"1095":0,"1096":0,"1097":0,"1098":0,"1099":0,"1100":0,"1101":0,"1102":0,"1103":0,"1104":0,"1105":0,"1106":0,"1107":0,"1108":0,"1109":0,"1110":0,"1111":0,"1112":0,"1113":0,"1114":0,"1115":0,"1116":1,"1117":0,"1118":0,"1119":0,"1120":0,"1121":0,"1122":0,"1123":0,"1124":0,"1125":0,"1126":0,"1127":0,"1128":0,"1129":0,"1130":0,"1131":0,"1132":0,"1133":0,"1134":0,"1135":0,"1136":0,"1137":0,"1138":0,"1139":0,"1140":0,"1141":0,"1142":0,"1143":0,"1144":0,"1145":0,"1146":0,"1147":0,"1148":0,"1149":0,"1150":0,"1151":0,"1152":0,"1153":0,"1154":0,"1155":0,"1156":0,"1157":0,"1158":0,"1159":0,"1160":0,"1161":0,"1162":0,"1163":0,"1164":0,"1165":0,"1166":0,"1167":0,"1168":0,"1169":0,"1170":0,"1171":0,"1172":0,"1173":0,"1174":0,"1175":0,"1176":0,"1177":0,"1178":0,"1179":0,"1180":0,"1181":0,"1182":0,"1183":0,"1184":0,"1185":0,"1186":0,"1187":0,"1188":0,"1189":0,"1190":0,"1191":0,"1192":0,"1193":0,"1194":0,"1195":0,"1196":0,"1197":0,"1198":0,"1199":0,"1200":0,"1201":0,"1202":0,"1203":0,"1204":0,"1205":0,"1206":0,"1207":0,"1208":0,"1209":0,"1210":0,"1211":0,"1212":0,"1213":0,"1214":0,"1215":0,"1216":0,"1217":0,"1218":0,"1219":0,"1220":0,"1221":0,"1222":0,"1223":1,"1224":0,"1225":0,"1226":0,"1227":0,"1228":0,"1229":0,"1230":0,"1231":0,"1232":0,"1233":0,"1234":0,"1235":0,"1236":0,"1237":0,"1238":0,"1239":0,"1240":0,"1241":0,"1242":0,"1243":0,"1244":0,"1245":0,"1246":0,"1247":0,"1248":0,"1249":0,"1250":0,"1251":0,"1252":0,"1253":0,"1254":0,"1255":0,"1256":0,"1257":0,"1258":1,"1259":1,"1260":1,"1261":1,"1262":1,"1263":1,"1264":1,"1265":0,"1266":0,"1267":0,"1268":0,"1269":0,"1270":0,"1271":0,"1272":0,"1273":0,"1274":0,"1275":0,"1276":0,"1277":0,"1278":0,"1279":0,"1280":0,"1281":0,"1282":0,"1283":1,"1284":0,"1285":0,"1286":0,"1287":0,"1288":0,"1289":0,"1290":0,"1291":0,"1292":1,"1293":0,"1294":0,"1295":0,"1296":0,"1297":0,"1298":0,"1299":0,"1300":0,"1301":0,"1302":0,"1303":0,"1304":0,"1305":0,"1306":0,"1307":0,"1308":0,"1309":0,"1310":0,"1311":0,"1312":0,"1313":0,"1314":0,"1315":1,"1316":0,"1317":0,"1318":0,"1319":0,"1320":1,"1321":0,"1322":0,"1323":0,"1324":0,"1325":0,"1326":0,"1327":0,"1328":0,"1329":0,"1330":0,"1331":0,"1332":0,"1333":0,"1334":0,"1335":0,"1336":0,"1337":0,"1338":0,"1339":0,"1340":1,"1341":0,"1342":0,"1343":0,"1344":0,"1345":0,"1346":0,"1347":0,"1348":1,"1349":0,"1350":0,"1351":0,"1352":0,"1353":0,"1354":0,"1355":0,"1356":0,"1357":0,"1358":0,"1359":0,"1360":1,"1361":1,"1362":1,"1363":0,"1364":0,"1365":0,"1366":0,"1367":0,"1368":0,"1369":0,"1370":0,"1371":0,"1372":0,"1373":0,"1374":0,"1375":0,"1376":0,"1377":0,"1378":0,"1379":0,"1380":0,"1381":0,"1382":0,"1383":0,"1384":0,"1385":0,"1386":0,"1387":0,"1388":0,"1389":0,"1390":0,"1391":0,"1392":0,"1393":0,"1394":0,"1395":0,"1396":0,"1397":0,"1398":0,"1399":0,"1400":0,"1401":0,"1402":0,"1403":0,"1404":0,"1405":0,"1406":0,"1407":0,"1408":0,"1409":0,"1410":0,"1411":0,"1412":0,"1413":0,"1414":0,"1415":0,"1416":0,"1417":1,"1418":1,"1419":1,"1420":1,"1421":1,"1422":1,"1423":1,"1424":1,"1425":1,"1426":1,"1427":1,"1428":1,"1429":1,"1430":1,"1431":1,"1432":1,"1433":1,"1434":1,"1435":1,"1436":1,"1437":1,"1438":1,"1439":1,"1440":1,"1441":1,"1442":1,"1443":1,"1444":1,"1445":1,"1446":1,"1447":1,"1448":1,"1449":1,"1450":1,"1451":1,"1452":1,"1453":1,"1454":1,"1455":1,"1456":1,"1457":0,"1458":0,"1459":0,"1460":0,"1461":0,"1462":0,"1463":0,"1464":0,"1465":0,"1466":0,"1467":0,"1468":0,"1469":0,"1470":0,"1471":0,"1472":0,"1473":0,"1474":0,"1475":0,"1476":0,"1477":0,"1478":0,"1479":0,"1480":0,"1481":0,"1482":0,"1483":0,"1484":0,"1485":0,"1486":0,"1487":0,"1488":0,"1489":1,"1490":0,"1491":0,"1492":0,"1493":0,"1494":0,"1495":0,"1496":0,"1497":0,"1498":0,"1499":0,"1500":0,"1501":0,"1502":0,"1503":0,"1504":0,"1505":0,"1506":0,"1507":0,"1508":0,"1509":0,"1510":0,"1511":0,"1512":0,"1513":0,"1514":0,"1515":0,"1516":0,"1517":0,"1518":0,"1519":0,"1520":0,"1521":0,"1522":0,"1523":1,"1524":1,"1525":1,"1526":1,"1527":0,"1528":0,"1529":1,"1530":0,"1531":0,"1532":0,"1533":0,"1534":0,"1535":0,"1536":0,"1537":0,"1538":0,"1539":0,"1540":0,"1541":0,"1542":0,"1543":0,"1544":0,"1545":0,"1546":0,"1547":0,"1548":0,"1549":1,"1550":0,"1551":1,"1552":0,"1553":1,"1554":0,"1555":0,"1556":0,"1557":0,"1558":0,"1559":0,"1560":1,"1561":0,"1562":1,"1563":0,"1564":1,"1565":7,"1566":7,"1567":7,"1568":7,"1569":2,"1570":7,"1571":3,"1572":7,"1573":2,"1574":1,"1575":0,"1576":0,"1577":0,"1578":0,"1579":0,"1580":0,"1581":0,"1582":1,"1583":0,"1584":1,"1585":0,"1586":0,"1587":0,"1588":0,"1589":1,"1590":0,"1591":0,"1592":0,"1593":0,"1594":1,"1595":0,"1596":0,"1597":0,"1598":1,"1599":0,"1600":0,"1601":1,"1602":0,"1603":0,"1604":0,"1605":0,"1606":1,"1607":0,"1608":1,"1609":0,"1610":1,"1611":0,"1612":0,"1613":0,"1614":0,"1615":0,"1616":0,"1617":0,"1618":0,"1619":0,"1620":0,"1621":0,"1622":0,"1623":0,"1624":0,"1625":1,"1626":0,"1627":1,"1628":0,"1629":0,"1630":0,"1631":0,"1632":0,"1633":0,"1634":0,"1635":0,"1636":0,"1637":1,"1638":2,"1639":2,"1640":2,"1641":2,"1642":2,"1643":0,"1644":2,"1645":0,"1646":2,"1647":0,"1648":2,"1649":0,"1650":1,"1651":0,"1652":0,"1653":0,"1654":0,"1655":1,"1656":0,"1657":1,"1658":0,"1659":0,"1660":0,"1661":0,"1662":0,"1663":0,"1664":0,"1665":0,"1666":0,"1667":0,"1668":0,"1669":0,"1670":0,"1671":0,"1672":0,"1673":1,"1674":0,"1675":0,"1676":0,"1677":0,"1678":0,"1679":0,"1680":0,"1681":0,"1682":0,"1683":1,"1684":0,"1685":0,"1686":0,"1687":0,"1688":0,"1689":0,"1690":0,"1691":0,"1692":0,"1693":0,"1694":1,"1695":0,"1696":1,"1697":0,"1698":0,"1699":0,"1700":0,"1701":0,"1702":0,"1703":0,"1704":1,"1705":0,"1706":0,"1707":0,"1708":0,"1709":1,"1710":0,"1711":0,"1712":0,"1713":0,"1714":0,"1715":0,"1716":0,"1717":0,"1718":0,"1719":0,"1720":0,"1721":0,"1722":0,"1723":0,"1724":0,"1725":0,"1726":0,"1727":1,"1728":0,"1729":0,"1730":0,"1731":0,"1732":0,"1733":0,"1734":0,"1735":0,"1736":0,"1737":0,"1738":0,"1739":0,"1740":0,"1741":0,"1742":0,"1743":0,"1744":0,"1745":1,"1746":0,"1747":0,"1748":0,"1749":0,"1750":0,"1751":0,"1752":0,"1753":0,"1754":0,"1755":0,"1756":0,"1757":1,"1758":0,"1759":0,"1760":0,"1761":0,"1762":0,"1763":0,"1764":0,"1765":0,"1766":0,"1767":0,"1768":0,"1769":0,"1770":0,"1771":0,"1772":0,"1773":0,"1774":0,"1775":0,"1776":0,"1777":0,"1778":1,"1779":0,"1780":0,"1781":0,"1782":0,"1783":0,"1784":0,"1785":0,"1786":0,"1787":1,"1788":0,"1789":0,"1790":0,"1791":0,"1792":0,"1793":1,"1794":0,"1795":0,"1796":0,"1797":1,"1798":0,"1799":0,"1800":1,"1801":0,"1802":0,"1803":0,"1804":0,"1805":0,"1806":0,"1807":0,"1808":0,"1809":0,"1810":0,"1811":0,"1812":0,"1813":0,"1814":0,"1815":0,"1816":0,"1817":0,"1818":1,"1819":0,"1820":0,"1821":0,"1822":0,"1823":0,"1824":0,"1825":0,"1826":0,"1827":1,"1828":0,"1829":1,"1830":0,"1831":1,"1832":0,"1833":0,"1834":0,"1835":0,"1836":0,"1837":0,"1838":0,"1839":0,"1840":1,"1841":0,"1842":0,"1843":0,"1844":1,"1845":0,"1846":0,"1847":0,"1848":0,"1849":0,"1850":0,"1851":0,"1852":0,"1853":0,"1854":0,"1855":0,"1856":0,"1857":0,"1858":0,"1859":0,"1860":0,"1861":0,"1862":0,"1863":0,"1864":0,"1865":0,"1866":0,"1867":0,"1868":0,"1869":0,"1870":0,"1871":0,"1872":0,"1873":1,"1874":0,"1875":0,"1876":0,"1877":0,"1878":0,"1879":0,"1880":0,"1881":0,"1882":0,"1883":0,"1884":0,"1885":0,"1886":0,"1887":0,"1888":0,"1889":0,"1890":0,"1891":0,"1892":0,"1893":0,"1894":0,"1895":0,"1896":0,"1897":0,"1898":0,"1899":0,"1900":0,"1901":0,"1902":0,"1903":0,"1904":1,"1905":0,"1906":0,"1907":0,"1908":0,"1909":0,"1910":0,"1911":0,"1912":0,"1913":0,"1914":0,"1915":0,"1916":0,"1917":0,"1918":0,"1919":0,"1920":0,"1921":0,"1922":0,"1923":0,"1924":0,"1925":0,"1926":0,"1927":0,"1928":0,"1929":0,"1930":0,"1931":0,"1932":0,"1933":0,"1934":0,"1935":0,"1936":0,"1937":0,"1938":0,"1939":0,"1940":0,"1941":0,"1942":0,"1943":0,"1944":0,"1945":0,"1946":0,"1947":0,"1948":0,"1949":0,"1950":1,"1951":0,"1952":0,"1953":0,"1954":0,"1955":0,"1956":0,"1957":0,"1958":0,"1959":0,"1960":0,"1961":0,"1962":0,"1963":0,"1964":0,"1965":0,"1966":0,"1967":0,"1968":0,"1969":0,"1970":0,"1971":0,"1972":0,"1973":0,"1974":0,"1975":0,"1976":0,"1977":0,"1978":0,"1979":0,"1980":0,"1981":0,"1982":0,"1983":0,"1984":0,"1985":0,"1986":0,"1987":0,"1988":0,"1989":0,"1990":0,"1991":0,"1992":1,"1993":0,"1994":0,"1995":0,"1996":0,"1997":0,"1998":0,"1999":0,"2000":0,"2001":0,"2002":0,"2003":0,"2004":0,"2005":0,"2006":0,"2007":0,"2008":0,"2009":0,"2010":0,"2011":0,"2012":0,"2013":0,"2014":0,"2015":0,"2016":0,"2017":0,"2018":0,"2019":0,"2020":0,"2021":0,"2022":0,"2023":0,"2024":0,"2025":0,"2026":0,"2027":0,"2028":0,"2029":0,"2030":0,"2031":0,"2032":0,"2033":0,"2034":0,"2035":0,"2036":0,"2037":0,"2038":0,"2039":0,"2040":0,"2041":0,"2042":0,"2043":0,"2044":0,"2045":0,"2046":0,"2047":0,"2048":0,"2049":0,"2050":0,"2051":0,"2052":0,"2053":0,"2054":0,"2055":0,"2056":0,"2057":0,"2058":0,"2059":0,"2060":0,"2061":0,"2062":0,"2063":0,"2064":0,"2065":0,"2066":0,"2067":0,"2068":0,"2069":0,"2070":0,"2071":0,"2072":0,"2073":1,"2074":1},"b":{"1":[0,1],"2":[1,0],"3":[1,0],"4":[0,1],"5":[0,1],"6":[1,0],"7":[1,0],"8":[1,0],"9":[1,0],"10":[1,0],"11":[1,0],"12":[0,1],"13":[0,1],"14":[0,1],"15":[1,0],"16":[0,1],"17":[1,0],"18":[0,0],"19":[0,0],"20":[0,1],"21":[0,0],"22":[0,0,0],"23":[0,0],"24":[0,0,0],"25":[0,0,0],"26":[0,0],"27":[0,0],"28":[0,0],"29":[0,0],"30":[0,0],"31":[0,0],"32":[0,0],"33":[0,0],"34":[0,0],"35":[0,0,0,0],"36":[0,0,0,0],"37":[0,0,0,0,0,0],"38":[0,0,0,0,0,0,0,0,0,0],"39":[0,0],"40":[0,0],"41":[0,0],"42":[0,0],"43":[0,0],"44":[0,0],"45":[0,0],"46":[0,0],"47":[0,0],"48":[0,0],"49":[0,0],"50":[0,0],"51":[0,0],"52":[0,0],"53":[0,0],"54":[0,0],"55":[0,0],"56":[0,0],"57":[0,0],"58":[0,0],"59":[0,0],"60":[0,0],"61":[0,0],"62":[0,0],"63":[0,0],"64":[0,0],"65":[0,0],"66":[0,0],"67":[0,0],"68":[0,0],"69":[0,0],"70":[0,0],"71":[0,0],"72":[0,0],"73":[0,0],"74":[0,0],"75":[0,0],"76":[0,0],"77":[0,0],"78":[0,0],"79":[0,0],"80":[0,0],"81":[0,0],"82":[0,0],"83":[0,0],"84":[0,0],"85":[0,0],"86":[0,0],"87":[0,0],"88":[0,0],"89":[0,0],"90":[0,0],"91":[0,0],"92":[0,0],"93":[0,0],"94":[0,0],"95":[0,0],"96":[0,0],"97":[0,0],"98":[0,0],"99":[0,0],"100":[0,0],"101":[0,0],"102":[0,0],"103":[0,0],"104":[0,0],"105":[0,0],"106":[0,0],"107":[0,0],"108":[0,0],"109":[0,0],"110":[0,0],"111":[0,0],"112":[0,0],"113":[0,0],"114":[0,0],"115":[0,0],"116":[0,0],"117":[0,0],"118":[0,0],"119":[0,0],"120":[0,0],"121":[0,0],"122":[0,0],"123":[0,0],"124":[0,0],"125":[0,0],"126":[0,0],"127":[0,0],"128":[0,0],"129":[0,0],"130":[0,0],"131":[0,0],"132":[0,0],"133":[0,0],"134":[0,0],"135":[0,0],"136":[0,0],"137":[0,0],"138":[0,0],"139":[0,0],"140":[0,0],"141":[0,0],"142":[0,0],"143":[0,0],"144":[0,0],"145":[0,0],"146":[0,0],"147":[0,0],"148":[0,0],"149":[0,0],"150":[0,0],"151":[0,0],"152":[0,0],"153":[0,0],"154":[0,0],"155":[0,0],"156":[0,0,0,0,0,0,0,0,0,0,0,0],"157":[0,0],"158":[0,0],"159":[0,0,0,0,0,0],"160":[0,0],"161":[0,0],"162":[0,0],"163":[0,0],"164":[0,0],"165":[0,0],"166":[0,0],"167":[0,0],"168":[0,0],"169":[0,0],"170":[0,0],"171":[0,0],"172":[0,0],"173":[0,0],"174":[0,0],"175":[0,0],"176":[0,0],"177":[0,0],"178":[0,0],"179":[0,0],"180":[0,0],"181":[0,0],"182":[0,0],"183":[0,0],"184":[0,0],"185":[0,0],"186":[0,0],"187":[0,0],"188":[0,0],"189":[0,0],"190":[0,0],"191":[0,0],"192":[0,0],"193":[0,0],"194":[0,0],"195":[0,0],"196":[0,0],"197":[0,0],"198":[0,0],"199":[0,0],"200":[0,0],"201":[0,0],"202":[0,0],"203":[0,0],"204":[0,0],"205":[0,0],"206":[0,0],"207":[0,0],"208":[0,0],"209":[0,0],"210":[0,0],"211":[0,0],"212":[0,0],"213":[0,1],"214":[1,0],"215":[1,0],"216":[1,0],"217":[1,0],"218":[1,0],"219":[1,0],"220":[1,0],"221":[1,0],"222":[1,0],"223":[1,0],"224":[0,0],"225":[0,0],"226":[0,0],"227":[0,0],"228":[0,0],"229":[0,0],"230":[0,0],"231":[0,0],"232":[0,0],"233":[0,0],"234":[0,0],"235":[0,0],"236":[0,0],"237":[0,0],"238":[0,0],"239":[0,0],"240":[0,0],"241":[0,0],"242":[0,0],"243":[0,0],"244":[0,0],"245":[0,0],"246":[0,0],"247":[0,0],"248":[0,0],"249":[0,0],"250":[0,0],"251":[0,0],"252":[0,0],"253":[0,0],"254":[0,0],"255":[0,0],"256":[0,0],"257":[0,0],"258":[0,0],"259":[0,0],"260":[0,0],"261":[0,0],"262":[0,0],"263":[0,0],"264":[0,0],"265":[0,0],"266":[0,0],"267":[0,0],"268":[0,0],"269":[0,0],"270":[0,0],"271":[0,0],"272":[0,0],"273":[0,0],"274":[0,0],"275":[0,0],"276":[0,0],"277":[0,0],"278":[0,0],"279":[0,0],"280":[0,0],"281":[0,0],"282":[0,0],"283":[0,0,0],"284":[0,0],"285":[0,0],"286":[0,0],"287":[0,0],"288":[0,0,0],"289":[0,0],"290":[0,0],"291":[0,0],"292":[0,0],"293":[0,0],"294":[0,0],"295":[0,0],"296":[0,0],"297":[0,0],"298":[0,0],"299":[0,0],"300":[0,0],"301":[0,0],"302":[0,0],"303":[0,0],"304":[0,0],"305":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"306":[0,0],"307":[0,0],"308":[0,0,0,0],"309":[2,5],"310":[3,4],"311":[2,5],"312":[0,0],"313":[0,0],"314":[0,0],"315":[0,0],"316":[0,0],"317":[0,2],"318":[0,2],"319":[0,2],"320":[0,2],"321":[0,0],"322":[0,0],"323":[0,0],"324":[0,0],"325":[0,0],"326":[0,0],"327":[0,0],"328":[0,0],"329":[0,0],"330":[0,0],"331":[0,0],"332":[0,0],"333":[0,0],"334":[0,0],"335":[0,0],"336":[0,0],"337":[0,0],"338":[0,0],"339":[0,0],"340":[0,0],"341":[0,0],"342":[0,0],"343":[0,0],"344":[0,0],"345":[0,0],"346":[0,0],"347":[0,0],"348":[0,0],"349":[0,0],"350":[0,0],"351":[0,0],"352":[0,0],"353":[0,0],"354":[0,0],"355":[0,0],"356":[0,0],"357":[0,0],"358":[0,0],"359":[0,0],"360":[0,0],"361":[0,0],"362":[0,0],"363":[0,0],"364":[0,0],"365":[0,0],"366":[0,0],"367":[0,0,0],"368":[0,0],"369":[0,0],"370":[0,0],"371":[0,0],"372":[0,0],"373":[0,0],"374":[0,0],"375":[0,0],"376":[0,0],"377":[0,0],"378":[1,0]},"f":{"1":0,"2":0,"3":1,"4":1,"5":1,"6":1,"7":2,"8":2,"9":0,"10":1,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":1,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":1,"82":1,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0,"106":1,"107":0,"108":0,"109":0,"110":0,"111":0,"112":0,"113":0,"114":7,"115":0,"116":0,"117":0,"118":0,"119":0,"120":0,"121":0,"122":0,"123":0,"124":0,"125":0,"126":0,"127":2,"128":0,"129":0,"130":0,"131":0,"132":0,"133":0,"134":0,"135":0,"136":0,"137":0,"138":0,"139":0,"140":0,"141":0,"142":0,"143":0,"144":0,"145":0,"146":0,"147":0,"148":0,"149":0,"150":0,"151":0,"152":0,"153":0,"154":0},"fnMap":{"1":{"name":"GameLib","line":2,"loc":{"start":{"line":2,"column":4},"end":{"line":2,"column":23}}},"2":{"name":"(anonymous_2)","line":6,"loc":{"start":{"line":6,"column":17},"end":{"line":6,"column":27}}},"3":{"name":"(anonymous_3)","line":23,"loc":{"start":{"line":23,"column":24},"end":{"line":26,"column":2}}},"4":{"name":"(anonymous_4)","line":44,"loc":{"start":{"line":44,"column":18},"end":{"line":55,"column":2}}},"5":{"name":"(anonymous_5)","line":104,"loc":{"start":{"line":104,"column":24},"end":{"line":110,"column":2}}},"6":{"name":"(anonymous_6)","line":138,"loc":{"start":{"line":138,"column":49},"end":{"line":138,"column":60}}},"7":{"name":"(anonymous_7)","line":180,"loc":{"start":{"line":180,"column":19},"end":{"line":180,"column":40}}},"8":{"name":"(anonymous_8)","line":192,"loc":{"start":{"line":192,"column":20},"end":{"line":195,"column":2}}},"9":{"name":"(anonymous_9)","line":204,"loc":{"start":{"line":204,"column":39},"end":{"line":204,"column":50}}},"10":{"name":"(anonymous_10)","line":211,"loc":{"start":{"line":211,"column":47},"end":{"line":211,"column":58}}},"11":{"name":"(anonymous_11)","line":222,"loc":{"start":{"line":222,"column":37},"end":{"line":222,"column":48}}},"12":{"name":"(anonymous_12)","line":230,"loc":{"start":{"line":230,"column":39},"end":{"line":230,"column":50}}},"13":{"name":"(anonymous_13)","line":241,"loc":{"start":{"line":241,"column":20},"end":{"line":244,"column":2}}},"14":{"name":"(anonymous_14)","line":260,"loc":{"start":{"line":260,"column":25},"end":{"line":264,"column":2}}},"15":{"name":"(anonymous_15)","line":310,"loc":{"start":{"line":310,"column":48},"end":{"line":310,"column":64}}},"16":{"name":"(anonymous_16)","line":321,"loc":{"start":{"line":321,"column":47},"end":{"line":321,"column":63}}},"17":{"name":"(anonymous_17)","line":332,"loc":{"start":{"line":332,"column":45},"end":{"line":332,"column":61}}},"18":{"name":"(anonymous_18)","line":342,"loc":{"start":{"line":342,"column":49},"end":{"line":342,"column":60}}},"19":{"name":"(anonymous_19)","line":350,"loc":{"start":{"line":350,"column":52},"end":{"line":350,"column":72}}},"20":{"name":"(anonymous_20)","line":402,"loc":{"start":{"line":402,"column":42},"end":{"line":402,"column":62}}},"21":{"name":"(anonymous_21)","line":411,"loc":{"start":{"line":411,"column":47},"end":{"line":411,"column":66}}},"22":{"name":"(anonymous_22)","line":425,"loc":{"start":{"line":425,"column":45},"end":{"line":425,"column":64}}},"23":{"name":"(anonymous_23)","line":458,"loc":{"start":{"line":458,"column":43},"end":{"line":458,"column":62}}},"24":{"name":"(anonymous_24)","line":490,"loc":{"start":{"line":490,"column":18},"end":{"line":492,"column":2}}},"25":{"name":"(anonymous_25)","line":498,"loc":{"start":{"line":498,"column":37},"end":{"line":500,"column":2}}},"26":{"name":"(anonymous_26)","line":504,"loc":{"start":{"line":504,"column":44},"end":{"line":506,"column":2}}},"27":{"name":"(anonymous_27)","line":510,"loc":{"start":{"line":510,"column":52},"end":{"line":513,"column":2}}},"28":{"name":"(anonymous_28)","line":518,"loc":{"start":{"line":518,"column":53},"end":{"line":520,"column":2}}},"29":{"name":"(anonymous_29)","line":524,"loc":{"start":{"line":524,"column":43},"end":{"line":526,"column":2}}},"30":{"name":"(anonymous_30)","line":584,"loc":{"start":{"line":584,"column":37},"end":{"line":588,"column":2}}},"31":{"name":"(anonymous_31)","line":602,"loc":{"start":{"line":602,"column":22},"end":{"line":605,"column":2}}},"32":{"name":"(anonymous_32)","line":614,"loc":{"start":{"line":614,"column":40},"end":{"line":614,"column":51}}},"33":{"name":"(anonymous_33)","line":621,"loc":{"start":{"line":621,"column":48},"end":{"line":621,"column":59}}},"34":{"name":"(anonymous_34)","line":641,"loc":{"start":{"line":641,"column":23},"end":{"line":647,"column":2}}},"35":{"name":"(anonymous_35)","line":681,"loc":{"start":{"line":681,"column":44},"end":{"line":685,"column":2}}},"36":{"name":"(anonymous_36)","line":736,"loc":{"start":{"line":736,"column":54},"end":{"line":740,"column":2}}},"37":{"name":"(anonymous_37)","line":743,"loc":{"start":{"line":743,"column":17},"end":{"line":743,"column":29}}},"38":{"name":"(anonymous_38)","line":796,"loc":{"start":{"line":796,"column":19},"end":{"line":802,"column":2}}},"39":{"name":"(anonymous_39)","line":851,"loc":{"start":{"line":851,"column":19},"end":{"line":867,"column":2}}},"40":{"name":"(anonymous_40)","line":985,"loc":{"start":{"line":985,"column":22},"end":{"line":1043,"column":2}}},"41":{"name":"(anonymous_41)","line":1439,"loc":{"start":{"line":1439,"column":45},"end":{"line":1444,"column":2}}},"42":{"name":"(anonymous_42)","line":1603,"loc":{"start":{"line":1603,"column":12},"end":{"line":1603,"column":22}}},"43":{"name":"(anonymous_43)","line":1607,"loc":{"start":{"line":1607,"column":12},"end":{"line":1607,"column":27}}},"44":{"name":"(anonymous_44)","line":1625,"loc":{"start":{"line":1625,"column":21},"end":{"line":1629,"column":2}}},"45":{"name":"(anonymous_45)","line":1648,"loc":{"start":{"line":1648,"column":40},"end":{"line":1648,"column":52}}},"46":{"name":"(anonymous_46)","line":1655,"loc":{"start":{"line":1655,"column":21},"end":{"line":1660,"column":2}}},"47":{"name":"(anonymous_47)","line":1681,"loc":{"start":{"line":1681,"column":47},"end":{"line":1681,"column":66}}},"48":{"name":"(anonymous_48)","line":1688,"loc":{"start":{"line":1688,"column":47},"end":{"line":1688,"column":66}}},"49":{"name":"(anonymous_49)","line":1705,"loc":{"start":{"line":1705,"column":47},"end":{"line":1705,"column":66}}},"50":{"name":"(anonymous_50)","line":1712,"loc":{"start":{"line":1712,"column":39},"end":{"line":1712,"column":65}}},"51":{"name":"(anonymous_51)","line":1718,"loc":{"start":{"line":1718,"column":39},"end":{"line":1718,"column":65}}},"52":{"name":"(anonymous_52)","line":1724,"loc":{"start":{"line":1724,"column":39},"end":{"line":1724,"column":65}}},"53":{"name":"(anonymous_53)","line":1730,"loc":{"start":{"line":1730,"column":40},"end":{"line":1730,"column":55}}},"54":{"name":"(anonymous_54)","line":1747,"loc":{"start":{"line":1747,"column":40},"end":{"line":1747,"column":52}}},"55":{"name":"(anonymous_55)","line":1756,"loc":{"start":{"line":1756,"column":38},"end":{"line":1756,"column":70}}},"56":{"name":"(anonymous_56)","line":1852,"loc":{"start":{"line":1852,"column":18},"end":{"line":1872,"column":2}}},"57":{"name":"(anonymous_57)","line":1955,"loc":{"start":{"line":1955,"column":37},"end":{"line":1955,"column":105}}},"58":{"name":"(anonymous_58)","line":2070,"loc":{"start":{"line":2070,"column":42},"end":{"line":2070,"column":62}}},"59":{"name":"(anonymous_59)","line":2088,"loc":{"start":{"line":2088,"column":41},"end":{"line":2088,"column":67}}},"60":{"name":"(anonymous_60)","line":2173,"loc":{"start":{"line":2173,"column":29},"end":{"line":2173,"column":62}}},"61":{"name":"inProcessed","line":2181,"loc":{"start":{"line":2181,"column":4},"end":{"line":2181,"column":46}}},"62":{"name":"neighbourOnEdge","line":2199,"loc":{"start":{"line":2199,"column":4},"end":{"line":2199,"column":59}}},"63":{"name":"(anonymous_63)","line":2331,"loc":{"start":{"line":2331,"column":27},"end":{"line":2331,"column":57}}},"64":{"name":"(anonymous_64)","line":2375,"loc":{"start":{"line":2375,"column":21},"end":{"line":2380,"column":2}}},"65":{"name":"(anonymous_65)","line":2407,"loc":{"start":{"line":2407,"column":24},"end":{"line":2413,"column":2}}},"66":{"name":"(anonymous_66)","line":2425,"loc":{"start":{"line":2425,"column":40},"end":{"line":2425,"column":51}}},"67":{"name":"(anonymous_67)","line":2441,"loc":{"start":{"line":2441,"column":28},"end":{"line":2445,"column":2}}},"68":{"name":"(anonymous_68)","line":2465,"loc":{"start":{"line":2465,"column":53},"end":{"line":2465,"column":64}}},"69":{"name":"(anonymous_69)","line":2475,"loc":{"start":{"line":2475,"column":47},"end":{"line":2477,"column":2}}},"70":{"name":"(anonymous_70)","line":2487,"loc":{"start":{"line":2487,"column":51},"end":{"line":2487,"column":62}}},"71":{"name":"(anonymous_71)","line":2490,"loc":{"start":{"line":2490,"column":26},"end":{"line":2519,"column":2}}},"72":{"name":"(anonymous_72)","line":2663,"loc":{"start":{"line":2663,"column":51},"end":{"line":2663,"column":62}}},"73":{"name":"(anonymous_73)","line":2704,"loc":{"start":{"line":2704,"column":30},"end":{"line":2708,"column":2}}},"74":{"name":"(anonymous_74)","line":2727,"loc":{"start":{"line":2727,"column":53},"end":{"line":2727,"column":64}}},"75":{"name":"(anonymous_75)","line":2735,"loc":{"start":{"line":2735,"column":55},"end":{"line":2735,"column":66}}},"76":{"name":"(anonymous_76)","line":2745,"loc":{"start":{"line":2745,"column":49},"end":{"line":2745,"column":65}}},"77":{"name":"(anonymous_77)","line":2791,"loc":{"start":{"line":2791,"column":23},"end":{"line":2808,"column":2}}},"78":{"name":"(anonymous_78)","line":2837,"loc":{"start":{"line":2837,"column":48},"end":{"line":2837,"column":59}}},"79":{"name":"(anonymous_79)","line":2886,"loc":{"start":{"line":2886,"column":42},"end":{"line":2890,"column":2}}},"80":{"name":"(anonymous_80)","line":2925,"loc":{"start":{"line":2925,"column":24},"end":{"line":2930,"column":2}}},"81":{"name":"(anonymous_81)","line":2954,"loc":{"start":{"line":2954,"column":19},"end":{"line":2967,"column":2}}},"82":{"name":"(anonymous_82)","line":3031,"loc":{"start":{"line":3031,"column":36},"end":{"line":3038,"column":2}}},"83":{"name":"(anonymous_83)","line":3054,"loc":{"start":{"line":3054,"column":29},"end":{"line":3054,"column":43}}},"84":{"name":"(anonymous_84)","line":3055,"loc":{"start":{"line":3055,"column":15},"end":{"line":3055,"column":26}}},"85":{"name":"(anonymous_85)","line":3260,"loc":{"start":{"line":3260,"column":29},"end":{"line":3267,"column":2}}},"86":{"name":"(anonymous_86)","line":3427,"loc":{"start":{"line":3427,"column":12},"end":{"line":3427,"column":37}}},"87":{"name":"(anonymous_87)","line":3428,"loc":{"start":{"line":3428,"column":23},"end":{"line":3428,"column":43}}},"88":{"name":"(anonymous_88)","line":3465,"loc":{"start":{"line":3465,"column":16},"end":{"line":3465,"column":31}}},"89":{"name":"(anonymous_89)","line":3473,"loc":{"start":{"line":3473,"column":8},"end":{"line":3473,"column":32}}},"90":{"name":"(anonymous_90)","line":3562,"loc":{"start":{"line":3562,"column":8},"end":{"line":3562,"column":23}}},"91":{"name":"(anonymous_91)","line":3584,"loc":{"start":{"line":3584,"column":19},"end":{"line":3597,"column":2}}},"92":{"name":"(anonymous_92)","line":3672,"loc":{"start":{"line":3672,"column":44},"end":{"line":3672,"column":55}}},"93":{"name":"(anonymous_93)","line":3724,"loc":{"start":{"line":3724,"column":36},"end":{"line":3726,"column":2}}},"94":{"name":"(anonymous_94)","line":3757,"loc":{"start":{"line":3757,"column":22},"end":{"line":3766,"column":2}}},"95":{"name":"(anonymous_95)","line":3815,"loc":{"start":{"line":3815,"column":20},"end":{"line":3817,"column":2}}},"96":{"name":"(anonymous_96)","line":3826,"loc":{"start":{"line":3826,"column":35},"end":{"line":3828,"column":2}}},"97":{"name":"(anonymous_97)","line":3866,"loc":{"start":{"line":3866,"column":37},"end":{"line":3869,"column":2}}},"98":{"name":"(anonymous_98)","line":3894,"loc":{"start":{"line":3894,"column":28},"end":{"line":3900,"column":2}}},"99":{"name":"(anonymous_99)","line":3948,"loc":{"start":{"line":3948,"column":21},"end":{"line":3969,"column":2}}},"100":{"name":"(anonymous_100)","line":4139,"loc":{"start":{"line":4139,"column":29},"end":{"line":4146,"column":2}}},"101":{"name":"(anonymous_101)","line":4167,"loc":{"start":{"line":4167,"column":12},"end":{"line":4167,"column":30}}},"102":{"name":"(anonymous_102)","line":4196,"loc":{"start":{"line":4196,"column":12},"end":{"line":4196,"column":26}}},"103":{"name":"(anonymous_103)","line":4204,"loc":{"start":{"line":4204,"column":12},"end":{"line":4204,"column":28}}},"104":{"name":"(anonymous_104)","line":4231,"loc":{"start":{"line":4231,"column":30},"end":{"line":4238,"column":2}}},"105":{"name":"(anonymous_105)","line":4323,"loc":{"start":{"line":4323,"column":19},"end":{"line":4323,"column":29}}},"106":{"name":"(anonymous_106)","line":4330,"loc":{"start":{"line":4330,"column":28},"end":{"line":4330,"column":39}}},"107":{"name":"(anonymous_107)","line":4339,"loc":{"start":{"line":4339,"column":26},"end":{"line":4342,"column":2}}},"108":{"name":"(anonymous_108)","line":4361,"loc":{"start":{"line":4361,"column":26},"end":{"line":4373,"column":2}}},"109":{"name":"(anonymous_109)","line":4415,"loc":{"start":{"line":4415,"column":42},"end":{"line":4415,"column":52}}},"110":{"name":"(anonymous_110)","line":4432,"loc":{"start":{"line":4432,"column":43},"end":{"line":4432,"column":62}}},"111":{"name":"(anonymous_111)","line":4472,"loc":{"start":{"line":4472,"column":21},"end":{"line":4472,"column":36}}},"112":{"name":"(anonymous_112)","line":4486,"loc":{"start":{"line":4486,"column":36},"end":{"line":4486,"column":47}}},"113":{"name":"(anonymous_113)","line":4493,"loc":{"start":{"line":4493,"column":38},"end":{"line":4493,"column":50}}},"114":{"name":"(anonymous_114)","line":4500,"loc":{"start":{"line":4500,"column":21},"end":{"line":4500,"column":39}}},"115":{"name":"(anonymous_115)","line":4519,"loc":{"start":{"line":4519,"column":40},"end":{"line":4519,"column":53}}},"116":{"name":"(anonymous_116)","line":4534,"loc":{"start":{"line":4534,"column":37},"end":{"line":4534,"column":50}}},"117":{"name":"(anonymous_117)","line":4542,"loc":{"start":{"line":4542,"column":40},"end":{"line":4542,"column":52}}},"118":{"name":"(anonymous_118)","line":4549,"loc":{"start":{"line":4549,"column":31},"end":{"line":4549,"column":61}}},"119":{"name":"(anonymous_119)","line":4560,"loc":{"start":{"line":4560,"column":28},"end":{"line":4560,"column":47}}},"120":{"name":"(anonymous_120)","line":4566,"loc":{"start":{"line":4566,"column":38},"end":{"line":4566,"column":56}}},"121":{"name":"(anonymous_121)","line":4573,"loc":{"start":{"line":4573,"column":41},"end":{"line":4573,"column":54}}},"122":{"name":"(anonymous_122)","line":4580,"loc":{"start":{"line":4580,"column":39},"end":{"line":4580,"column":51}}},"123":{"name":"(anonymous_123)","line":4584,"loc":{"start":{"line":4584,"column":36},"end":{"line":4584,"column":48}}},"124":{"name":"(anonymous_124)","line":4592,"loc":{"start":{"line":4592,"column":40},"end":{"line":4592,"column":53}}},"125":{"name":"(anonymous_125)","line":4612,"loc":{"start":{"line":4612,"column":35},"end":{"line":4612,"column":48}}},"126":{"name":"(anonymous_126)","line":4616,"loc":{"start":{"line":4616,"column":41},"end":{"line":4616,"column":53}}},"127":{"name":"(anonymous_127)","line":4635,"loc":{"start":{"line":4635,"column":21},"end":{"line":4635,"column":42}}},"128":{"name":"(anonymous_128)","line":4659,"loc":{"start":{"line":4659,"column":41},"end":{"line":4659,"column":54}}},"129":{"name":"(anonymous_129)","line":4666,"loc":{"start":{"line":4666,"column":36},"end":{"line":4666,"column":48}}},"130":{"name":"(anonymous_130)","line":4675,"loc":{"start":{"line":4675,"column":40},"end":{"line":4675,"column":53}}},"131":{"name":"(anonymous_131)","line":4696,"loc":{"start":{"line":4696,"column":41},"end":{"line":4696,"column":53}}},"132":{"name":"(anonymous_132)","line":4716,"loc":{"start":{"line":4716,"column":40},"end":{"line":4716,"column":53}}},"133":{"name":"(anonymous_133)","line":4734,"loc":{"start":{"line":4734,"column":28},"end":{"line":4734,"column":40}}},"134":{"name":"(anonymous_134)","line":4738,"loc":{"start":{"line":4738,"column":42},"end":{"line":4738,"column":60}}},"135":{"name":"(anonymous_135)","line":4759,"loc":{"start":{"line":4759,"column":43},"end":{"line":4759,"column":55}}},"136":{"name":"(anonymous_136)","line":4770,"loc":{"start":{"line":4770,"column":56},"end":{"line":4770,"column":73}}},"137":{"name":"(anonymous_137)","line":4815,"loc":{"start":{"line":4815,"column":56},"end":{"line":4815,"column":73}}},"138":{"name":"(anonymous_138)","line":4860,"loc":{"start":{"line":4860,"column":45},"end":{"line":4860,"column":63}}},"139":{"name":"(anonymous_139)","line":4881,"loc":{"start":{"line":4881,"column":48},"end":{"line":4881,"column":60}}},"140":{"name":"(anonymous_140)","line":4920,"loc":{"start":{"line":4920,"column":46},"end":{"line":4920,"column":58}}},"141":{"name":"(anonymous_141)","line":4938,"loc":{"start":{"line":4938,"column":47},"end":{"line":4938,"column":59}}},"142":{"name":"(anonymous_142)","line":4950,"loc":{"start":{"line":4950,"column":47},"end":{"line":4950,"column":59}}},"143":{"name":"(anonymous_143)","line":4965,"loc":{"start":{"line":4965,"column":20},"end":{"line":4968,"column":2}}},"144":{"name":"(anonymous_144)","line":4983,"loc":{"start":{"line":4983,"column":19},"end":{"line":4991,"column":2}}},"145":{"name":"(anonymous_145)","line":5036,"loc":{"start":{"line":5036,"column":44},"end":{"line":5036,"column":55}}},"146":{"name":"(anonymous_146)","line":5058,"loc":{"start":{"line":5058,"column":42},"end":{"line":5060,"column":2}}},"147":{"name":"(anonymous_147)","line":5069,"loc":{"start":{"line":5069,"column":40},"end":{"line":5071,"column":2}}},"148":{"name":"(anonymous_148)","line":5075,"loc":{"start":{"line":5075,"column":34},"end":{"line":5077,"column":2}}},"149":{"name":"(anonymous_149)","line":5097,"loc":{"start":{"line":5097,"column":48},"end":{"line":5099,"column":2}}},"150":{"name":"(anonymous_150)","line":5125,"loc":{"start":{"line":5125,"column":63},"end":{"line":5132,"column":2}}},"151":{"name":"(anonymous_151)","line":5232,"loc":{"start":{"line":5232,"column":65},"end":{"line":5239,"column":2}}},"152":{"name":"(anonymous_152)","line":5330,"loc":{"start":{"line":5330,"column":62},"end":{"line":5338,"column":2}}},"153":{"name":"(anonymous_153)","line":5427,"loc":{"start":{"line":5427,"column":55},"end":{"line":5430,"column":2}}},"154":{"name":"(anonymous_154)","line":5528,"loc":{"start":{"line":5528,"column":52},"end":{"line":5536,"column":2}}}},"statementMap":{"1":{"start":{"line":1,"column":0},"end":{"line":3,"column":1}},"2":{"start":{"line":2,"column":4},"end":{"line":2,"column":25}},"3":{"start":{"line":5,"column":0},"end":{"line":7,"column":1}},"4":{"start":{"line":6,"column":4},"end":{"line":6,"column":30}},"5":{"start":{"line":9,"column":0},"end":{"line":16,"column":1}},"6":{"start":{"line":10,"column":4},"end":{"line":13,"column":5}},"7":{"start":{"line":11,"column":8},"end":{"line":11,"column":74}},"8":{"start":{"line":12,"column":8},"end":{"line":12,"column":77}},"9":{"start":{"line":15,"column":4},"end":{"line":15,"column":25}},"10":{"start":{"line":23,"column":0},"end":{"line":29,"column":2}},"11":{"start":{"line":27,"column":4},"end":{"line":27,"column":31}},"12":{"start":{"line":28,"column":4},"end":{"line":28,"column":25}},"13":{"start":{"line":44,"column":0},"end":{"line":94,"column":2}},"14":{"start":{"line":56,"column":4},"end":{"line":56,"column":17}},"15":{"start":{"line":57,"column":4},"end":{"line":57,"column":21}},"16":{"start":{"line":58,"column":4},"end":{"line":58,"column":25}},"17":{"start":{"line":60,"column":4},"end":{"line":62,"column":5}},"18":{"start":{"line":61,"column":8},"end":{"line":61,"column":26}},"19":{"start":{"line":63,"column":4},"end":{"line":63,"column":37}},"20":{"start":{"line":65,"column":4},"end":{"line":67,"column":5}},"21":{"start":{"line":66,"column":8},"end":{"line":66,"column":28}},"22":{"start":{"line":68,"column":4},"end":{"line":68,"column":37}},"23":{"start":{"line":70,"column":4},"end":{"line":72,"column":5}},"24":{"start":{"line":71,"column":8},"end":{"line":71,"column":46}},"25":{"start":{"line":73,"column":4},"end":{"line":73,"column":33}},"26":{"start":{"line":75,"column":4},"end":{"line":77,"column":5}},"27":{"start":{"line":76,"column":8},"end":{"line":76,"column":49}},"28":{"start":{"line":78,"column":4},"end":{"line":78,"column":29}},"29":{"start":{"line":80,"column":4},"end":{"line":82,"column":5}},"30":{"start":{"line":81,"column":8},"end":{"line":81,"column":49}},"31":{"start":{"line":83,"column":4},"end":{"line":83,"column":29}},"32":{"start":{"line":85,"column":4},"end":{"line":87,"column":5}},"33":{"start":{"line":86,"column":8},"end":{"line":86,"column":46}},"34":{"start":{"line":88,"column":4},"end":{"line":88,"column":23}},"35":{"start":{"line":90,"column":4},"end":{"line":92,"column":5}},"36":{"start":{"line":91,"column":8},"end":{"line":91,"column":43}},"37":{"start":{"line":93,"column":4},"end":{"line":93,"column":17}},"38":{"start":{"line":104,"column":0},"end":{"line":133,"column":2}},"39":{"start":{"line":111,"column":4},"end":{"line":111,"column":17}},"40":{"start":{"line":113,"column":4},"end":{"line":115,"column":5}},"41":{"start":{"line":114,"column":8},"end":{"line":114,"column":46}},"42":{"start":{"line":116,"column":4},"end":{"line":116,"column":21}},"43":{"start":{"line":118,"column":4},"end":{"line":120,"column":5}},"44":{"start":{"line":119,"column":8},"end":{"line":119,"column":69}},"45":{"start":{"line":121,"column":4},"end":{"line":121,"column":41}},"46":{"start":{"line":123,"column":4},"end":{"line":125,"column":5}},"47":{"start":{"line":124,"column":8},"end":{"line":124,"column":22}},"48":{"start":{"line":126,"column":4},"end":{"line":126,"column":25}},"49":{"start":{"line":128,"column":4},"end":{"line":128,"column":25}},"50":{"start":{"line":130,"column":4},"end":{"line":132,"column":5}},"51":{"start":{"line":131,"column":8},"end":{"line":131,"column":30}},"52":{"start":{"line":138,"column":0},"end":{"line":163,"column":2}},"53":{"start":{"line":140,"column":4},"end":{"line":143,"column":5}},"54":{"start":{"line":141,"column":8},"end":{"line":141,"column":34}},"55":{"start":{"line":142,"column":8},"end":{"line":142,"column":37}},"56":{"start":{"line":145,"column":4},"end":{"line":145,"column":35}},"57":{"start":{"line":147,"column":4},"end":{"line":147,"column":24}},"58":{"start":{"line":149,"column":4},"end":{"line":158,"column":5}},"59":{"start":{"line":150,"column":8},"end":{"line":150,"column":62}},"60":{"start":{"line":151,"column":11},"end":{"line":158,"column":5}},"61":{"start":{"line":152,"column":8},"end":{"line":152,"column":61}},"62":{"start":{"line":153,"column":11},"end":{"line":158,"column":5}},"63":{"start":{"line":154,"column":8},"end":{"line":154,"column":61}},"64":{"start":{"line":156,"column":8},"end":{"line":156,"column":76}},"65":{"start":{"line":157,"column":8},"end":{"line":157,"column":79}},"66":{"start":{"line":160,"column":4},"end":{"line":160,"column":29}},"67":{"start":{"line":162,"column":4},"end":{"line":162,"column":20}},"68":{"start":{"line":169,"column":0},"end":{"line":169,"column":50}},"69":{"start":{"line":170,"column":0},"end":{"line":170,"column":49}},"70":{"start":{"line":171,"column":0},"end":{"line":171,"column":48}},"71":{"start":{"line":180,"column":0},"end":{"line":185,"column":2}},"72":{"start":{"line":181,"column":4},"end":{"line":181,"column":15}},"73":{"start":{"line":182,"column":4},"end":{"line":182,"column":15}},"74":{"start":{"line":183,"column":4},"end":{"line":183,"column":15}},"75":{"start":{"line":184,"column":4},"end":{"line":184,"column":15}},"76":{"start":{"line":192,"column":0},"end":{"line":198,"column":2}},"77":{"start":{"line":196,"column":4},"end":{"line":196,"column":33}},"78":{"start":{"line":197,"column":4},"end":{"line":197,"column":29}},"79":{"start":{"line":204,"column":0},"end":{"line":206,"column":2}},"80":{"start":{"line":205,"column":4},"end":{"line":205,"column":68}},"81":{"start":{"line":211,"column":0},"end":{"line":216,"column":2}},"82":{"start":{"line":212,"column":4},"end":{"line":215,"column":5}},"83":{"start":{"line":213,"column":8},"end":{"line":213,"column":64}},"84":{"start":{"line":214,"column":8},"end":{"line":214,"column":67}},"85":{"start":{"line":222,"column":0},"end":{"line":224,"column":2}},"86":{"start":{"line":223,"column":4},"end":{"line":223,"column":66}},"87":{"start":{"line":230,"column":0},"end":{"line":232,"column":2}},"88":{"start":{"line":231,"column":4},"end":{"line":231,"column":68}},"89":{"start":{"line":238,"column":0},"end":{"line":238,"column":43}},"90":{"start":{"line":239,"column":0},"end":{"line":239,"column":41}},"91":{"start":{"line":240,"column":0},"end":{"line":240,"column":43}},"92":{"start":{"line":241,"column":0},"end":{"line":252,"column":2}},"93":{"start":{"line":245,"column":4},"end":{"line":245,"column":25}},"94":{"start":{"line":247,"column":4},"end":{"line":249,"column":5}},"95":{"start":{"line":248,"column":8},"end":{"line":248,"column":26}},"96":{"start":{"line":251,"column":4},"end":{"line":251,"column":37}},"97":{"start":{"line":260,"column":0},"end":{"line":304,"column":2}},"98":{"start":{"line":265,"column":4},"end":{"line":265,"column":24}},"99":{"start":{"line":267,"column":4},"end":{"line":267,"column":25}},"100":{"start":{"line":269,"column":4},"end":{"line":269,"column":23}},"101":{"start":{"line":271,"column":4},"end":{"line":271,"column":17}},"102":{"start":{"line":272,"column":4},"end":{"line":272,"column":19}},"103":{"start":{"line":273,"column":4},"end":{"line":273,"column":27}},"104":{"start":{"line":275,"column":4},"end":{"line":275,"column":29}},"105":{"start":{"line":276,"column":4},"end":{"line":276,"column":30}},"106":{"start":{"line":277,"column":4},"end":{"line":277,"column":26}},"107":{"start":{"line":278,"column":4},"end":{"line":278,"column":27}},"108":{"start":{"line":279,"column":4},"end":{"line":279,"column":24}},"109":{"start":{"line":280,"column":4},"end":{"line":280,"column":26}},"110":{"start":{"line":282,"column":4},"end":{"line":282,"column":53}},"111":{"start":{"line":283,"column":4},"end":{"line":283,"column":57}},"112":{"start":{"line":284,"column":4},"end":{"line":284,"column":57}},"113":{"start":{"line":285,"column":4},"end":{"line":285,"column":59}},"114":{"start":{"line":286,"column":4},"end":{"line":286,"column":53}},"115":{"start":{"line":287,"column":4},"end":{"line":287,"column":49}},"116":{"start":{"line":289,"column":4},"end":{"line":289,"column":25}},"117":{"start":{"line":291,"column":4},"end":{"line":291,"column":73}},"118":{"start":{"line":292,"column":4},"end":{"line":292,"column":69}},"119":{"start":{"line":293,"column":4},"end":{"line":293,"column":77}},"120":{"start":{"line":294,"column":4},"end":{"line":294,"column":73}},"121":{"start":{"line":295,"column":4},"end":{"line":295,"column":79}},"122":{"start":{"line":297,"column":4},"end":{"line":297,"column":141}},"123":{"start":{"line":298,"column":4},"end":{"line":298,"column":33}},"124":{"start":{"line":300,"column":4},"end":{"line":303,"column":5}},"125":{"start":{"line":301,"column":8},"end":{"line":301,"column":153}},"126":{"start":{"line":302,"column":8},"end":{"line":302,"column":125}},"127":{"start":{"line":310,"column":0},"end":{"line":315,"column":2}},"128":{"start":{"line":311,"column":4},"end":{"line":311,"column":28}},"129":{"start":{"line":312,"column":4},"end":{"line":312,"column":52}},"130":{"start":{"line":313,"column":4},"end":{"line":313,"column":27}},"131":{"start":{"line":314,"column":4},"end":{"line":314,"column":29}},"132":{"start":{"line":321,"column":0},"end":{"line":326,"column":2}},"133":{"start":{"line":322,"column":4},"end":{"line":325,"column":5}},"134":{"start":{"line":323,"column":8},"end":{"line":323,"column":30}},"135":{"start":{"line":324,"column":8},"end":{"line":324,"column":81}},"136":{"start":{"line":332,"column":0},"end":{"line":337,"column":2}},"137":{"start":{"line":333,"column":4},"end":{"line":336,"column":5}},"138":{"start":{"line":334,"column":8},"end":{"line":334,"column":31}},"139":{"start":{"line":335,"column":8},"end":{"line":335,"column":77}},"140":{"start":{"line":342,"column":0},"end":{"line":344,"column":2}},"141":{"start":{"line":343,"column":4},"end":{"line":343,"column":61}},"142":{"start":{"line":350,"column":0},"end":{"line":395,"column":2}},"143":{"start":{"line":351,"column":4},"end":{"line":351,"column":53}},"144":{"start":{"line":352,"column":4},"end":{"line":352,"column":56}},"145":{"start":{"line":353,"column":4},"end":{"line":353,"column":49}},"146":{"start":{"line":355,"column":4},"end":{"line":355,"column":47}},"147":{"start":{"line":357,"column":4},"end":{"line":357,"column":40}},"148":{"start":{"line":358,"column":4},"end":{"line":358,"column":63}},"149":{"start":{"line":360,"column":4},"end":{"line":371,"column":5}},"150":{"start":{"line":362,"column":8},"end":{"line":362,"column":74}},"151":{"start":{"line":363,"column":8},"end":{"line":363,"column":74}},"152":{"start":{"line":364,"column":8},"end":{"line":364,"column":74}},"153":{"start":{"line":366,"column":11},"end":{"line":371,"column":5}},"154":{"start":{"line":368,"column":8},"end":{"line":368,"column":74}},"155":{"start":{"line":369,"column":8},"end":{"line":369,"column":74}},"156":{"start":{"line":370,"column":8},"end":{"line":370,"column":74}},"157":{"start":{"line":373,"column":4},"end":{"line":384,"column":5}},"158":{"start":{"line":375,"column":8},"end":{"line":375,"column":72}},"159":{"start":{"line":376,"column":8},"end":{"line":376,"column":72}},"160":{"start":{"line":377,"column":8},"end":{"line":377,"column":72}},"161":{"start":{"line":379,"column":11},"end":{"line":384,"column":5}},"162":{"start":{"line":381,"column":8},"end":{"line":381,"column":72}},"163":{"start":{"line":382,"column":8},"end":{"line":382,"column":72}},"164":{"start":{"line":383,"column":8},"end":{"line":383,"column":72}},"165":{"start":{"line":386,"column":4},"end":{"line":394,"column":5}},"166":{"start":{"line":388,"column":8},"end":{"line":388,"column":62}},"167":{"start":{"line":390,"column":11},"end":{"line":394,"column":5}},"168":{"start":{"line":392,"column":8},"end":{"line":392,"column":62}},"169":{"start":{"line":402,"column":0},"end":{"line":405,"column":2}},"170":{"start":{"line":403,"column":4},"end":{"line":403,"column":25}},"171":{"start":{"line":404,"column":4},"end":{"line":404,"column":37}},"172":{"start":{"line":411,"column":0},"end":{"line":419,"column":2}},"173":{"start":{"line":412,"column":4},"end":{"line":418,"column":5}},"174":{"start":{"line":413,"column":8},"end":{"line":413,"column":92}},"175":{"start":{"line":414,"column":8},"end":{"line":414,"column":92}},"176":{"start":{"line":416,"column":8},"end":{"line":416,"column":38}},"177":{"start":{"line":417,"column":8},"end":{"line":417,"column":40}},"178":{"start":{"line":425,"column":0},"end":{"line":452,"column":2}},"179":{"start":{"line":426,"column":4},"end":{"line":451,"column":5}},"180":{"start":{"line":429,"column":12},"end":{"line":429,"column":36}},"181":{"start":{"line":430,"column":12},"end":{"line":430,"column":18}},"182":{"start":{"line":433,"column":12},"end":{"line":433,"column":33}},"183":{"start":{"line":434,"column":12},"end":{"line":434,"column":18}},"184":{"start":{"line":437,"column":12},"end":{"line":437,"column":37}},"185":{"start":{"line":438,"column":12},"end":{"line":438,"column":18}},"186":{"start":{"line":441,"column":12},"end":{"line":441,"column":34}},"187":{"start":{"line":442,"column":12},"end":{"line":442,"column":18}},"188":{"start":{"line":445,"column":12},"end":{"line":445,"column":31}},"189":{"start":{"line":446,"column":12},"end":{"line":446,"column":18}},"190":{"start":{"line":449,"column":12},"end":{"line":449,"column":33}},"191":{"start":{"line":450,"column":12},"end":{"line":450,"column":18}},"192":{"start":{"line":458,"column":0},"end":{"line":489,"column":2}},"193":{"start":{"line":459,"column":4},"end":{"line":488,"column":5}},"194":{"start":{"line":463,"column":12},"end":{"line":463,"column":37}},"195":{"start":{"line":464,"column":12},"end":{"line":464,"column":18}},"196":{"start":{"line":468,"column":12},"end":{"line":468,"column":34}},"197":{"start":{"line":469,"column":12},"end":{"line":469,"column":18}},"198":{"start":{"line":473,"column":12},"end":{"line":473,"column":38}},"199":{"start":{"line":474,"column":12},"end":{"line":474,"column":18}},"200":{"start":{"line":478,"column":12},"end":{"line":478,"column":35}},"201":{"start":{"line":479,"column":12},"end":{"line":479,"column":18}},"202":{"start":{"line":482,"column":12},"end":{"line":482,"column":32}},"203":{"start":{"line":483,"column":12},"end":{"line":483,"column":18}},"204":{"start":{"line":486,"column":12},"end":{"line":486,"column":34}},"205":{"start":{"line":487,"column":12},"end":{"line":487,"column":18}},"206":{"start":{"line":490,"column":0},"end":{"line":496,"column":2}},"207":{"start":{"line":493,"column":4},"end":{"line":493,"column":21}},"208":{"start":{"line":494,"column":4},"end":{"line":494,"column":28}},"209":{"start":{"line":495,"column":4},"end":{"line":495,"column":38}},"210":{"start":{"line":498,"column":0},"end":{"line":502,"column":2}},"211":{"start":{"line":501,"column":4},"end":{"line":501,"column":36}},"212":{"start":{"line":504,"column":0},"end":{"line":508,"column":2}},"213":{"start":{"line":507,"column":4},"end":{"line":507,"column":42}},"214":{"start":{"line":510,"column":0},"end":{"line":516,"column":2}},"215":{"start":{"line":514,"column":4},"end":{"line":514,"column":94}},"216":{"start":{"line":515,"column":4},"end":{"line":515,"column":64}},"217":{"start":{"line":518,"column":0},"end":{"line":522,"column":2}},"218":{"start":{"line":521,"column":4},"end":{"line":521,"column":52}},"219":{"start":{"line":524,"column":0},"end":{"line":582,"column":2}},"220":{"start":{"line":527,"column":4},"end":{"line":581,"column":5}},"221":{"start":{"line":529,"column":8},"end":{"line":529,"column":64}},"222":{"start":{"line":530,"column":8},"end":{"line":530,"column":35}},"223":{"start":{"line":532,"column":8},"end":{"line":579,"column":9}},"224":{"start":{"line":534,"column":12},"end":{"line":578,"column":13}},"225":{"start":{"line":536,"column":16},"end":{"line":536,"column":56}},"226":{"start":{"line":537,"column":16},"end":{"line":537,"column":44}},"227":{"start":{"line":539,"column":16},"end":{"line":577,"column":17}},"228":{"start":{"line":540,"column":20},"end":{"line":540,"column":59}},"229":{"start":{"line":541,"column":20},"end":{"line":541,"column":46}},"230":{"start":{"line":542,"column":20},"end":{"line":542,"column":48}},"231":{"start":{"line":544,"column":20},"end":{"line":576,"column":21}},"232":{"start":{"line":545,"column":24},"end":{"line":575,"column":25}},"233":{"start":{"line":547,"column":28},"end":{"line":547,"column":68}},"234":{"start":{"line":548,"column":28},"end":{"line":548,"column":79}},"235":{"start":{"line":550,"column":28},"end":{"line":550,"column":68}},"236":{"start":{"line":552,"column":28},"end":{"line":552,"column":63}},"237":{"start":{"line":553,"column":28},"end":{"line":553,"column":75}},"238":{"start":{"line":555,"column":28},"end":{"line":571,"column":29}},"239":{"start":{"line":557,"column":32},"end":{"line":570,"column":33}},"240":{"start":{"line":558,"column":36},"end":{"line":562,"column":37}},"241":{"start":{"line":559,"column":40},"end":{"line":559,"column":86}},"242":{"start":{"line":560,"column":40},"end":{"line":560,"column":96}},"243":{"start":{"line":561,"column":40},"end":{"line":561,"column":103}},"244":{"start":{"line":564,"column":36},"end":{"line":569,"column":37}},"245":{"start":{"line":565,"column":40},"end":{"line":565,"column":81}},"246":{"start":{"line":566,"column":40},"end":{"line":566,"column":92}},"247":{"start":{"line":568,"column":40},"end":{"line":568,"column":112}},"248":{"start":{"line":573,"column":28},"end":{"line":573,"column":57}},"249":{"start":{"line":574,"column":28},"end":{"line":574,"column":61}},"250":{"start":{"line":584,"column":0},"end":{"line":595,"column":2}},"251":{"start":{"line":589,"column":4},"end":{"line":589,"column":62}},"252":{"start":{"line":591,"column":4},"end":{"line":594,"column":7}},"253":{"start":{"line":602,"column":0},"end":{"line":608,"column":2}},"254":{"start":{"line":606,"column":4},"end":{"line":606,"column":37}},"255":{"start":{"line":607,"column":4},"end":{"line":607,"column":29}},"256":{"start":{"line":614,"column":0},"end":{"line":616,"column":2}},"257":{"start":{"line":615,"column":4},"end":{"line":615,"column":73}},"258":{"start":{"line":621,"column":0},"end":{"line":626,"column":2}},"259":{"start":{"line":622,"column":4},"end":{"line":625,"column":5}},"260":{"start":{"line":623,"column":8},"end":{"line":623,"column":63}},"261":{"start":{"line":624,"column":8},"end":{"line":624,"column":66}},"262":{"start":{"line":632,"column":0},"end":{"line":632,"column":46}},"263":{"start":{"line":641,"column":0},"end":{"line":672,"column":2}},"264":{"start":{"line":648,"column":4},"end":{"line":650,"column":5}},"265":{"start":{"line":649,"column":8},"end":{"line":649,"column":18}},"266":{"start":{"line":651,"column":4},"end":{"line":651,"column":23}},"267":{"start":{"line":653,"column":4},"end":{"line":655,"column":5}},"268":{"start":{"line":654,"column":8},"end":{"line":654,"column":18}},"269":{"start":{"line":656,"column":4},"end":{"line":656,"column":23}},"270":{"start":{"line":658,"column":4},"end":{"line":660,"column":5}},"271":{"start":{"line":659,"column":8},"end":{"line":659,"column":20}},"272":{"start":{"line":661,"column":4},"end":{"line":661,"column":25}},"273":{"start":{"line":663,"column":4},"end":{"line":665,"column":5}},"274":{"start":{"line":664,"column":8},"end":{"line":664,"column":25}},"275":{"start":{"line":666,"column":4},"end":{"line":666,"column":35}},"276":{"start":{"line":668,"column":4},"end":{"line":670,"column":5}},"277":{"start":{"line":669,"column":8},"end":{"line":669,"column":25}},"278":{"start":{"line":671,"column":4},"end":{"line":671,"column":35}},"279":{"start":{"line":681,"column":0},"end":{"line":727,"column":2}},"280":{"start":{"line":686,"column":4},"end":{"line":686,"column":31}},"281":{"start":{"line":687,"column":4},"end":{"line":687,"column":30}},"282":{"start":{"line":689,"column":4},"end":{"line":689,"column":52}},"283":{"start":{"line":691,"column":4},"end":{"line":691,"column":40}},"284":{"start":{"line":692,"column":4},"end":{"line":692,"column":40}},"285":{"start":{"line":693,"column":4},"end":{"line":693,"column":40}},"286":{"start":{"line":695,"column":5},"end":{"line":714,"column":5}},"287":{"start":{"line":696,"column":8},"end":{"line":713,"column":9}},"288":{"start":{"line":697,"column":12},"end":{"line":712,"column":13}},"289":{"start":{"line":698,"column":16},"end":{"line":698,"column":70}},"290":{"start":{"line":699,"column":16},"end":{"line":699,"column":65}},"291":{"start":{"line":700,"column":16},"end":{"line":700,"column":65}},"292":{"start":{"line":701,"column":16},"end":{"line":701,"column":65}},"293":{"start":{"line":702,"column":16},"end":{"line":702,"column":57}},"294":{"start":{"line":703,"column":16},"end":{"line":703,"column":57}},"295":{"start":{"line":704,"column":16},"end":{"line":704,"column":57}},"296":{"start":{"line":705,"column":16},"end":{"line":709,"column":18}},"297":{"start":{"line":710,"column":16},"end":{"line":710,"column":53}},"298":{"start":{"line":711,"column":16},"end":{"line":711,"column":78}},"299":{"start":{"line":715,"column":4},"end":{"line":715,"column":37}},"300":{"start":{"line":716,"column":4},"end":{"line":716,"column":34}},"301":{"start":{"line":718,"column":4},"end":{"line":726,"column":6}},"302":{"start":{"line":736,"column":0},"end":{"line":786,"column":2}},"303":{"start":{"line":741,"column":4},"end":{"line":741,"column":26}},"304":{"start":{"line":743,"column":4},"end":{"line":783,"column":6}},"305":{"start":{"line":745,"column":8},"end":{"line":745,"column":54}},"306":{"start":{"line":746,"column":8},"end":{"line":746,"column":33}},"307":{"start":{"line":747,"column":8},"end":{"line":747,"column":35}},"308":{"start":{"line":749,"column":8},"end":{"line":749,"column":46}},"309":{"start":{"line":750,"column":8},"end":{"line":750,"column":37}},"310":{"start":{"line":752,"column":8},"end":{"line":752,"column":69}},"311":{"start":{"line":753,"column":8},"end":{"line":753,"column":31}},"312":{"start":{"line":755,"column":8},"end":{"line":755,"column":28}},"313":{"start":{"line":756,"column":8},"end":{"line":758,"column":9}},"314":{"start":{"line":757,"column":12},"end":{"line":757,"column":39}},"315":{"start":{"line":760,"column":8},"end":{"line":760,"column":24}},"316":{"start":{"line":761,"column":8},"end":{"line":762,"column":31}},"317":{"start":{"line":764,"column":8},"end":{"line":770,"column":9}},"318":{"start":{"line":765,"column":12},"end":{"line":765,"column":28}},"319":{"start":{"line":766,"column":12},"end":{"line":769,"column":13}},"320":{"start":{"line":767,"column":16},"end":{"line":767,"column":87}},"321":{"start":{"line":768,"column":16},"end":{"line":768,"column":39}},"322":{"start":{"line":774,"column":8},"end":{"line":782,"column":10}},"323":{"start":{"line":785,"column":4},"end":{"line":785,"column":24}},"324":{"start":{"line":796,"column":0},"end":{"line":831,"column":2}},"325":{"start":{"line":803,"column":4},"end":{"line":803,"column":17}},"326":{"start":{"line":805,"column":4},"end":{"line":805,"column":29}},"327":{"start":{"line":807,"column":4},"end":{"line":807,"column":35}},"328":{"start":{"line":809,"column":4},"end":{"line":811,"column":5}},"329":{"start":{"line":810,"column":8},"end":{"line":810,"column":17}},"330":{"start":{"line":812,"column":4},"end":{"line":812,"column":21}},"331":{"start":{"line":814,"column":4},"end":{"line":829,"column":5}},"332":{"start":{"line":816,"column":8},"end":{"line":816,"column":49}},"333":{"start":{"line":818,"column":8},"end":{"line":820,"column":9}},"334":{"start":{"line":819,"column":12},"end":{"line":819,"column":38}},"335":{"start":{"line":822,"column":8},"end":{"line":824,"column":9}},"336":{"start":{"line":823,"column":12},"end":{"line":823,"column":39}},"337":{"start":{"line":826,"column":8},"end":{"line":828,"column":9}},"338":{"start":{"line":827,"column":12},"end":{"line":827,"column":38}},"339":{"start":{"line":830,"column":4},"end":{"line":830,"column":35}},"340":{"start":{"line":851,"column":0},"end":{"line":923,"column":2}},"341":{"start":{"line":868,"column":4},"end":{"line":868,"column":17}},"342":{"start":{"line":869,"column":4},"end":{"line":869,"column":31}},"343":{"start":{"line":870,"column":4},"end":{"line":870,"column":21}},"344":{"start":{"line":871,"column":4},"end":{"line":871,"column":23}},"345":{"start":{"line":872,"column":4},"end":{"line":872,"column":31}},"346":{"start":{"line":874,"column":4},"end":{"line":876,"column":5}},"347":{"start":{"line":875,"column":8},"end":{"line":875,"column":49}},"348":{"start":{"line":877,"column":4},"end":{"line":877,"column":29}},"349":{"start":{"line":879,"column":4},"end":{"line":881,"column":5}},"350":{"start":{"line":880,"column":8},"end":{"line":880,"column":55}},"351":{"start":{"line":882,"column":4},"end":{"line":882,"column":41}},"352":{"start":{"line":884,"column":4},"end":{"line":886,"column":5}},"353":{"start":{"line":885,"column":8},"end":{"line":885,"column":46}},"354":{"start":{"line":887,"column":4},"end":{"line":887,"column":33}},"355":{"start":{"line":889,"column":4},"end":{"line":891,"column":5}},"356":{"start":{"line":890,"column":8},"end":{"line":890,"column":49}},"357":{"start":{"line":892,"column":4},"end":{"line":892,"column":29}},"358":{"start":{"line":894,"column":4},"end":{"line":896,"column":5}},"359":{"start":{"line":895,"column":8},"end":{"line":895,"column":46}},"360":{"start":{"line":897,"column":4},"end":{"line":897,"column":23}},"361":{"start":{"line":899,"column":4},"end":{"line":901,"column":5}},"362":{"start":{"line":900,"column":8},"end":{"line":900,"column":21}},"363":{"start":{"line":902,"column":4},"end":{"line":902,"column":29}},"364":{"start":{"line":904,"column":4},"end":{"line":906,"column":5}},"365":{"start":{"line":905,"column":8},"end":{"line":905,"column":18}},"366":{"start":{"line":907,"column":4},"end":{"line":907,"column":23}},"367":{"start":{"line":909,"column":4},"end":{"line":911,"column":5}},"368":{"start":{"line":910,"column":8},"end":{"line":910,"column":28}},"369":{"start":{"line":912,"column":4},"end":{"line":912,"column":23}},"370":{"start":{"line":914,"column":4},"end":{"line":916,"column":5}},"371":{"start":{"line":915,"column":8},"end":{"line":915,"column":28}},"372":{"start":{"line":917,"column":4},"end":{"line":917,"column":23}},"373":{"start":{"line":919,"column":4},"end":{"line":921,"column":5}},"374":{"start":{"line":920,"column":8},"end":{"line":920,"column":21}},"375":{"start":{"line":922,"column":4},"end":{"line":922,"column":29}},"376":{"start":{"line":985,"column":0},"end":{"line":1334,"column":2}},"377":{"start":{"line":1044,"column":4},"end":{"line":1044,"column":17}},"378":{"start":{"line":1045,"column":4},"end":{"line":1045,"column":21}},"379":{"start":{"line":1046,"column":4},"end":{"line":1048,"column":5}},"380":{"start":{"line":1047,"column":8},"end":{"line":1047,"column":62}},"381":{"start":{"line":1049,"column":4},"end":{"line":1049,"column":37}},"382":{"start":{"line":1051,"column":4},"end":{"line":1053,"column":5}},"383":{"start":{"line":1052,"column":8},"end":{"line":1052,"column":22}},"384":{"start":{"line":1054,"column":4},"end":{"line":1054,"column":27}},"385":{"start":{"line":1056,"column":4},"end":{"line":1058,"column":5}},"386":{"start":{"line":1057,"column":8},"end":{"line":1057,"column":51}},"387":{"start":{"line":1059,"column":4},"end":{"line":1059,"column":21}},"388":{"start":{"line":1061,"column":4},"end":{"line":1063,"column":5}},"389":{"start":{"line":1062,"column":8},"end":{"line":1062,"column":28}},"390":{"start":{"line":1064,"column":4},"end":{"line":1064,"column":35}},"391":{"start":{"line":1066,"column":4},"end":{"line":1081,"column":5}},"392":{"start":{"line":1067,"column":8},"end":{"line":1080,"column":10}},"393":{"start":{"line":1082,"column":4},"end":{"line":1082,"column":21}},"394":{"start":{"line":1084,"column":4},"end":{"line":1086,"column":5}},"395":{"start":{"line":1085,"column":8},"end":{"line":1085,"column":64}},"396":{"start":{"line":1087,"column":4},"end":{"line":1087,"column":29}},"397":{"start":{"line":1089,"column":4},"end":{"line":1091,"column":5}},"398":{"start":{"line":1090,"column":8},"end":{"line":1090,"column":30}},"399":{"start":{"line":1092,"column":4},"end":{"line":1092,"column":47}},"400":{"start":{"line":1094,"column":4},"end":{"line":1096,"column":5}},"401":{"start":{"line":1095,"column":8},"end":{"line":1095,"column":27}},"402":{"start":{"line":1097,"column":4},"end":{"line":1097,"column":41}},"403":{"start":{"line":1099,"column":4},"end":{"line":1101,"column":5}},"404":{"start":{"line":1100,"column":8},"end":{"line":1100,"column":48}},"405":{"start":{"line":1102,"column":4},"end":{"line":1102,"column":23}},"406":{"start":{"line":1104,"column":4},"end":{"line":1106,"column":5}},"407":{"start":{"line":1105,"column":8},"end":{"line":1105,"column":52}},"408":{"start":{"line":1107,"column":4},"end":{"line":1107,"column":29}},"409":{"start":{"line":1109,"column":4},"end":{"line":1111,"column":5}},"410":{"start":{"line":1110,"column":8},"end":{"line":1110,"column":30}},"411":{"start":{"line":1112,"column":4},"end":{"line":1112,"column":47}},"412":{"start":{"line":1114,"column":4},"end":{"line":1116,"column":5}},"413":{"start":{"line":1115,"column":8},"end":{"line":1115,"column":62}},"414":{"start":{"line":1117,"column":4},"end":{"line":1117,"column":27}},"415":{"start":{"line":1119,"column":4},"end":{"line":1121,"column":5}},"416":{"start":{"line":1120,"column":8},"end":{"line":1120,"column":23}},"417":{"start":{"line":1122,"column":4},"end":{"line":1122,"column":31}},"418":{"start":{"line":1124,"column":4},"end":{"line":1126,"column":5}},"419":{"start":{"line":1125,"column":8},"end":{"line":1125,"column":25}},"420":{"start":{"line":1127,"column":4},"end":{"line":1127,"column":37}},"421":{"start":{"line":1129,"column":4},"end":{"line":1131,"column":5}},"422":{"start":{"line":1130,"column":8},"end":{"line":1130,"column":31}},"423":{"start":{"line":1132,"column":4},"end":{"line":1132,"column":43}},"424":{"start":{"line":1134,"column":4},"end":{"line":1136,"column":5}},"425":{"start":{"line":1135,"column":8},"end":{"line":1135,"column":19}},"426":{"start":{"line":1137,"column":4},"end":{"line":1137,"column":19}},"427":{"start":{"line":1139,"column":4},"end":{"line":1141,"column":5}},"428":{"start":{"line":1140,"column":8},"end":{"line":1140,"column":26}},"429":{"start":{"line":1142,"column":4},"end":{"line":1142,"column":31}},"430":{"start":{"line":1144,"column":4},"end":{"line":1146,"column":5}},"431":{"start":{"line":1145,"column":8},"end":{"line":1145,"column":31}},"432":{"start":{"line":1147,"column":4},"end":{"line":1147,"column":49}},"433":{"start":{"line":1149,"column":4},"end":{"line":1151,"column":5}},"434":{"start":{"line":1150,"column":8},"end":{"line":1150,"column":35}},"435":{"start":{"line":1152,"column":4},"end":{"line":1152,"column":45}},"436":{"start":{"line":1154,"column":4},"end":{"line":1156,"column":5}},"437":{"start":{"line":1155,"column":8},"end":{"line":1155,"column":36}},"438":{"start":{"line":1157,"column":4},"end":{"line":1157,"column":47}},"439":{"start":{"line":1159,"column":4},"end":{"line":1161,"column":5}},"440":{"start":{"line":1160,"column":8},"end":{"line":1160,"column":58}},"441":{"start":{"line":1162,"column":4},"end":{"line":1162,"column":37}},"442":{"start":{"line":1164,"column":4},"end":{"line":1166,"column":5}},"443":{"start":{"line":1165,"column":8},"end":{"line":1165,"column":25}},"444":{"start":{"line":1167,"column":4},"end":{"line":1167,"column":29}},"445":{"start":{"line":1169,"column":4},"end":{"line":1171,"column":5}},"446":{"start":{"line":1170,"column":8},"end":{"line":1170,"column":29}},"447":{"start":{"line":1172,"column":4},"end":{"line":1172,"column":37}},"448":{"start":{"line":1174,"column":4},"end":{"line":1176,"column":5}},"449":{"start":{"line":1175,"column":8},"end":{"line":1175,"column":29}},"450":{"start":{"line":1177,"column":4},"end":{"line":1177,"column":37}},"451":{"start":{"line":1179,"column":4},"end":{"line":1181,"column":5}},"452":{"start":{"line":1180,"column":8},"end":{"line":1180,"column":21}},"453":{"start":{"line":1182,"column":4},"end":{"line":1182,"column":29}},"454":{"start":{"line":1184,"column":4},"end":{"line":1186,"column":5}},"455":{"start":{"line":1185,"column":8},"end":{"line":1185,"column":22}},"456":{"start":{"line":1187,"column":4},"end":{"line":1187,"column":31}},"457":{"start":{"line":1189,"column":4},"end":{"line":1191,"column":5}},"458":{"start":{"line":1190,"column":8},"end":{"line":1190,"column":26}},"459":{"start":{"line":1192,"column":4},"end":{"line":1192,"column":27}},"460":{"start":{"line":1194,"column":4},"end":{"line":1196,"column":5}},"461":{"start":{"line":1195,"column":8},"end":{"line":1195,"column":27}},"462":{"start":{"line":1197,"column":4},"end":{"line":1197,"column":29}},"463":{"start":{"line":1199,"column":4},"end":{"line":1201,"column":5}},"464":{"start":{"line":1200,"column":8},"end":{"line":1200,"column":21}},"465":{"start":{"line":1202,"column":4},"end":{"line":1202,"column":29}},"466":{"start":{"line":1204,"column":4},"end":{"line":1206,"column":5}},"467":{"start":{"line":1205,"column":8},"end":{"line":1205,"column":21}},"468":{"start":{"line":1207,"column":4},"end":{"line":1207,"column":29}},"469":{"start":{"line":1209,"column":4},"end":{"line":1211,"column":5}},"470":{"start":{"line":1210,"column":8},"end":{"line":1210,"column":60}},"471":{"start":{"line":1212,"column":4},"end":{"line":1212,"column":29}},"472":{"start":{"line":1214,"column":4},"end":{"line":1216,"column":5}},"473":{"start":{"line":1215,"column":8},"end":{"line":1215,"column":61}},"474":{"start":{"line":1217,"column":4},"end":{"line":1217,"column":29}},"475":{"start":{"line":1219,"column":4},"end":{"line":1221,"column":5}},"476":{"start":{"line":1220,"column":8},"end":{"line":1220,"column":71}},"477":{"start":{"line":1222,"column":4},"end":{"line":1222,"column":29}},"478":{"start":{"line":1224,"column":4},"end":{"line":1226,"column":5}},"479":{"start":{"line":1225,"column":8},"end":{"line":1225,"column":62}},"480":{"start":{"line":1227,"column":4},"end":{"line":1227,"column":39}},"481":{"start":{"line":1229,"column":4},"end":{"line":1231,"column":5}},"482":{"start":{"line":1230,"column":8},"end":{"line":1230,"column":25}},"483":{"start":{"line":1232,"column":4},"end":{"line":1232,"column":31}},"484":{"start":{"line":1234,"column":4},"end":{"line":1236,"column":5}},"485":{"start":{"line":1235,"column":8},"end":{"line":1235,"column":62}},"486":{"start":{"line":1237,"column":4},"end":{"line":1237,"column":31}},"487":{"start":{"line":1239,"column":4},"end":{"line":1241,"column":5}},"488":{"start":{"line":1240,"column":8},"end":{"line":1240,"column":26}},"489":{"start":{"line":1242,"column":4},"end":{"line":1242,"column":33}},"490":{"start":{"line":1244,"column":4},"end":{"line":1246,"column":5}},"491":{"start":{"line":1245,"column":8},"end":{"line":1245,"column":30}},"492":{"start":{"line":1247,"column":4},"end":{"line":1247,"column":39}},"493":{"start":{"line":1249,"column":4},"end":{"line":1251,"column":5}},"494":{"start":{"line":1250,"column":8},"end":{"line":1250,"column":32}},"495":{"start":{"line":1252,"column":4},"end":{"line":1252,"column":51}},"496":{"start":{"line":1254,"column":4},"end":{"line":1256,"column":5}},"497":{"start":{"line":1255,"column":8},"end":{"line":1255,"column":31}},"498":{"start":{"line":1257,"column":4},"end":{"line":1257,"column":49}},"499":{"start":{"line":1259,"column":4},"end":{"line":1261,"column":5}},"500":{"start":{"line":1260,"column":8},"end":{"line":1260,"column":22}},"501":{"start":{"line":1262,"column":4},"end":{"line":1262,"column":31}},"502":{"start":{"line":1264,"column":4},"end":{"line":1266,"column":5}},"503":{"start":{"line":1265,"column":8},"end":{"line":1265,"column":28}},"504":{"start":{"line":1267,"column":4},"end":{"line":1267,"column":41}},"505":{"start":{"line":1269,"column":4},"end":{"line":1271,"column":5}},"506":{"start":{"line":1270,"column":8},"end":{"line":1270,"column":28}},"507":{"start":{"line":1272,"column":4},"end":{"line":1272,"column":35}},"508":{"start":{"line":1274,"column":4},"end":{"line":1276,"column":5}},"509":{"start":{"line":1275,"column":8},"end":{"line":1275,"column":23}},"510":{"start":{"line":1277,"column":4},"end":{"line":1277,"column":27}},"511":{"start":{"line":1279,"column":4},"end":{"line":1281,"column":5}},"512":{"start":{"line":1280,"column":8},"end":{"line":1280,"column":56}},"513":{"start":{"line":1282,"column":4},"end":{"line":1282,"column":27}},"514":{"start":{"line":1284,"column":4},"end":{"line":1286,"column":5}},"515":{"start":{"line":1285,"column":8},"end":{"line":1285,"column":22}},"516":{"start":{"line":1287,"column":4},"end":{"line":1287,"column":31}},"517":{"start":{"line":1289,"column":4},"end":{"line":1291,"column":5}},"518":{"start":{"line":1290,"column":8},"end":{"line":1290,"column":24}},"519":{"start":{"line":1292,"column":4},"end":{"line":1292,"column":35}},"520":{"start":{"line":1294,"column":4},"end":{"line":1296,"column":5}},"521":{"start":{"line":1295,"column":8},"end":{"line":1295,"column":30}},"522":{"start":{"line":1297,"column":4},"end":{"line":1297,"column":47}},"523":{"start":{"line":1299,"column":4},"end":{"line":1301,"column":5}},"524":{"start":{"line":1300,"column":8},"end":{"line":1300,"column":29}},"525":{"start":{"line":1302,"column":4},"end":{"line":1302,"column":45}},"526":{"start":{"line":1304,"column":4},"end":{"line":1306,"column":5}},"527":{"start":{"line":1305,"column":8},"end":{"line":1305,"column":24}},"528":{"start":{"line":1307,"column":4},"end":{"line":1307,"column":31}},"529":{"start":{"line":1309,"column":4},"end":{"line":1311,"column":5}},"530":{"start":{"line":1310,"column":8},"end":{"line":1310,"column":24}},"531":{"start":{"line":1312,"column":4},"end":{"line":1312,"column":31}},"532":{"start":{"line":1314,"column":4},"end":{"line":1316,"column":5}},"533":{"start":{"line":1315,"column":8},"end":{"line":1315,"column":22}},"534":{"start":{"line":1317,"column":4},"end":{"line":1317,"column":31}},"535":{"start":{"line":1319,"column":4},"end":{"line":1321,"column":5}},"536":{"start":{"line":1320,"column":8},"end":{"line":1320,"column":36}},"537":{"start":{"line":1322,"column":4},"end":{"line":1322,"column":53}},"538":{"start":{"line":1324,"column":4},"end":{"line":1326,"column":5}},"539":{"start":{"line":1325,"column":8},"end":{"line":1325,"column":27}},"540":{"start":{"line":1327,"column":4},"end":{"line":1327,"column":41}},"541":{"start":{"line":1329,"column":4},"end":{"line":1331,"column":5}},"542":{"start":{"line":1330,"column":8},"end":{"line":1330,"column":30}},"543":{"start":{"line":1332,"column":4},"end":{"line":1332,"column":43}},"544":{"start":{"line":1340,"column":0},"end":{"line":1340,"column":48}},"545":{"start":{"line":1341,"column":0},"end":{"line":1341,"column":43}},"546":{"start":{"line":1342,"column":0},"end":{"line":1342,"column":43}},"547":{"start":{"line":1348,"column":0},"end":{"line":1348,"column":39}},"548":{"start":{"line":1349,"column":0},"end":{"line":1349,"column":41}},"549":{"start":{"line":1350,"column":0},"end":{"line":1350,"column":43}},"550":{"start":{"line":1356,"column":0},"end":{"line":1356,"column":45}},"551":{"start":{"line":1357,"column":0},"end":{"line":1357,"column":47}},"552":{"start":{"line":1358,"column":0},"end":{"line":1358,"column":50}},"553":{"start":{"line":1359,"column":0},"end":{"line":1359,"column":47}},"554":{"start":{"line":1360,"column":0},"end":{"line":1360,"column":45}},"555":{"start":{"line":1366,"column":0},"end":{"line":1366,"column":43}},"556":{"start":{"line":1367,"column":0},"end":{"line":1367,"column":42}},"557":{"start":{"line":1368,"column":0},"end":{"line":1368,"column":48}},"558":{"start":{"line":1369,"column":0},"end":{"line":1369,"column":58}},"559":{"start":{"line":1370,"column":0},"end":{"line":1370,"column":48}},"560":{"start":{"line":1371,"column":0},"end":{"line":1371,"column":58}},"561":{"start":{"line":1372,"column":0},"end":{"line":1372,"column":48}},"562":{"start":{"line":1373,"column":0},"end":{"line":1373,"column":58}},"563":{"start":{"line":1374,"column":0},"end":{"line":1374,"column":48}},"564":{"start":{"line":1375,"column":0},"end":{"line":1375,"column":58}},"565":{"start":{"line":1376,"column":0},"end":{"line":1376,"column":57}},"566":{"start":{"line":1382,"column":0},"end":{"line":1382,"column":44}},"567":{"start":{"line":1383,"column":0},"end":{"line":1383,"column":49}},"568":{"start":{"line":1384,"column":0},"end":{"line":1384,"column":57}},"569":{"start":{"line":1385,"column":0},"end":{"line":1385,"column":44}},"570":{"start":{"line":1386,"column":0},"end":{"line":1386,"column":44}},"571":{"start":{"line":1392,"column":0},"end":{"line":1392,"column":41}},"572":{"start":{"line":1393,"column":0},"end":{"line":1393,"column":42}},"573":{"start":{"line":1394,"column":0},"end":{"line":1394,"column":40}},"574":{"start":{"line":1395,"column":0},"end":{"line":1395,"column":46}},"575":{"start":{"line":1396,"column":0},"end":{"line":1396,"column":41}},"576":{"start":{"line":1397,"column":0},"end":{"line":1397,"column":49}},"577":{"start":{"line":1398,"column":0},"end":{"line":1398,"column":43}},"578":{"start":{"line":1399,"column":0},"end":{"line":1399,"column":45}},"579":{"start":{"line":1405,"column":0},"end":{"line":1405,"column":40}},"580":{"start":{"line":1406,"column":0},"end":{"line":1406,"column":39}},"581":{"start":{"line":1407,"column":0},"end":{"line":1407,"column":41}},"582":{"start":{"line":1413,"column":0},"end":{"line":1413,"column":42}},"583":{"start":{"line":1414,"column":0},"end":{"line":1414,"column":44}},"584":{"start":{"line":1420,"column":0},"end":{"line":1420,"column":61}},"585":{"start":{"line":1421,"column":0},"end":{"line":1421,"column":62}},"586":{"start":{"line":1422,"column":0},"end":{"line":1422,"column":61}},"587":{"start":{"line":1423,"column":0},"end":{"line":1423,"column":61}},"588":{"start":{"line":1424,"column":0},"end":{"line":1424,"column":63}},"589":{"start":{"line":1425,"column":0},"end":{"line":1425,"column":62}},"590":{"start":{"line":1426,"column":0},"end":{"line":1426,"column":61}},"591":{"start":{"line":1427,"column":0},"end":{"line":1427,"column":64}},"592":{"start":{"line":1428,"column":0},"end":{"line":1428,"column":58}},"593":{"start":{"line":1429,"column":0},"end":{"line":1429,"column":58}},"594":{"start":{"line":1430,"column":0},"end":{"line":1430,"column":57}},"595":{"start":{"line":1439,"column":0},"end":{"line":1617,"column":2}},"596":{"start":{"line":1446,"column":4},"end":{"line":1446,"column":26}},"597":{"start":{"line":1448,"column":4},"end":{"line":1448,"column":32}},"598":{"start":{"line":1450,"column":4},"end":{"line":1450,"column":25}},"599":{"start":{"line":1452,"column":4},"end":{"line":1591,"column":5}},"600":{"start":{"line":1454,"column":8},"end":{"line":1503,"column":11}},"601":{"start":{"line":1505,"column":8},"end":{"line":1517,"column":10}},"602":{"start":{"line":1518,"column":11},"end":{"line":1591,"column":5}},"603":{"start":{"line":1520,"column":8},"end":{"line":1574,"column":11}},"604":{"start":{"line":1576,"column":8},"end":{"line":1587,"column":10}},"605":{"start":{"line":1590,"column":8},"end":{"line":1590,"column":137}},"606":{"start":{"line":1593,"column":4},"end":{"line":1614,"column":5}},"607":{"start":{"line":1594,"column":8},"end":{"line":1601,"column":10}},"608":{"start":{"line":1602,"column":8},"end":{"line":1611,"column":9}},"609":{"start":{"line":1604,"column":16},"end":{"line":1604,"column":48}},"610":{"start":{"line":1608,"column":16},"end":{"line":1608,"column":35}},"611":{"start":{"line":1609,"column":16},"end":{"line":1609,"column":36}},"612":{"start":{"line":1613,"column":8},"end":{"line":1613,"column":40}},"613":{"start":{"line":1616,"column":4},"end":{"line":1616,"column":25}},"614":{"start":{"line":1625,"column":0},"end":{"line":1643,"column":2}},"615":{"start":{"line":1630,"column":4},"end":{"line":1630,"column":20}},"616":{"start":{"line":1632,"column":4},"end":{"line":1634,"column":5}},"617":{"start":{"line":1633,"column":8},"end":{"line":1633,"column":28}},"618":{"start":{"line":1636,"column":4},"end":{"line":1638,"column":5}},"619":{"start":{"line":1637,"column":8},"end":{"line":1637,"column":28}},"620":{"start":{"line":1640,"column":4},"end":{"line":1642,"column":5}},"621":{"start":{"line":1641,"column":8},"end":{"line":1641,"column":28}},"622":{"start":{"line":1648,"column":0},"end":{"line":1654,"column":2}},"623":{"start":{"line":1649,"column":4},"end":{"line":1653,"column":6}},"624":{"start":{"line":1655,"column":0},"end":{"line":1679,"column":2}},"625":{"start":{"line":1662,"column":4},"end":{"line":1662,"column":20}},"626":{"start":{"line":1664,"column":4},"end":{"line":1666,"column":5}},"627":{"start":{"line":1665,"column":8},"end":{"line":1665,"column":28}},"628":{"start":{"line":1668,"column":4},"end":{"line":1670,"column":5}},"629":{"start":{"line":1669,"column":8},"end":{"line":1669,"column":28}},"630":{"start":{"line":1672,"column":4},"end":{"line":1674,"column":5}},"631":{"start":{"line":1673,"column":8},"end":{"line":1673,"column":28}},"632":{"start":{"line":1676,"column":4},"end":{"line":1678,"column":5}},"633":{"start":{"line":1677,"column":8},"end":{"line":1677,"column":28}},"634":{"start":{"line":1681,"column":0},"end":{"line":1686,"column":2}},"635":{"start":{"line":1682,"column":4},"end":{"line":1682,"column":20}},"636":{"start":{"line":1683,"column":4},"end":{"line":1683,"column":91}},"637":{"start":{"line":1684,"column":4},"end":{"line":1684,"column":86}},"638":{"start":{"line":1685,"column":4},"end":{"line":1685,"column":16}},"639":{"start":{"line":1688,"column":0},"end":{"line":1703,"column":2}},"640":{"start":{"line":1689,"column":4},"end":{"line":1689,"column":20}},"641":{"start":{"line":1690,"column":4},"end":{"line":1695,"column":6}},"642":{"start":{"line":1696,"column":4},"end":{"line":1701,"column":6}},"643":{"start":{"line":1702,"column":4},"end":{"line":1702,"column":16}},"644":{"start":{"line":1705,"column":0},"end":{"line":1710,"column":2}},"645":{"start":{"line":1706,"column":4},"end":{"line":1706,"column":20}},"646":{"start":{"line":1707,"column":4},"end":{"line":1707,"column":91}},"647":{"start":{"line":1708,"column":4},"end":{"line":1708,"column":86}},"648":{"start":{"line":1709,"column":4},"end":{"line":1709,"column":16}},"649":{"start":{"line":1712,"column":0},"end":{"line":1716,"column":2}},"650":{"start":{"line":1713,"column":4},"end":{"line":1713,"column":20}},"651":{"start":{"line":1714,"column":4},"end":{"line":1714,"column":34}},"652":{"start":{"line":1715,"column":4},"end":{"line":1715,"column":32}},"653":{"start":{"line":1718,"column":0},"end":{"line":1722,"column":2}},"654":{"start":{"line":1719,"column":4},"end":{"line":1719,"column":20}},"655":{"start":{"line":1720,"column":4},"end":{"line":1720,"column":34}},"656":{"start":{"line":1721,"column":4},"end":{"line":1721,"column":32}},"657":{"start":{"line":1724,"column":0},"end":{"line":1728,"column":2}},"658":{"start":{"line":1725,"column":4},"end":{"line":1725,"column":20}},"659":{"start":{"line":1726,"column":4},"end":{"line":1726,"column":34}},"660":{"start":{"line":1727,"column":4},"end":{"line":1727,"column":32}},"661":{"start":{"line":1730,"column":0},"end":{"line":1745,"column":2}},"662":{"start":{"line":1731,"column":4},"end":{"line":1744,"column":5}},"663":{"start":{"line":1732,"column":8},"end":{"line":1737,"column":10}},"664":{"start":{"line":1738,"column":11},"end":{"line":1744,"column":5}},"665":{"start":{"line":1739,"column":8},"end":{"line":1743,"column":10}},"666":{"start":{"line":1747,"column":0},"end":{"line":1754,"column":2}},"667":{"start":{"line":1748,"column":4},"end":{"line":1753,"column":6}},"668":{"start":{"line":1756,"column":0},"end":{"line":1827,"column":2}},"669":{"start":{"line":1758,"column":4},"end":{"line":1758,"column":72}},"670":{"start":{"line":1760,"column":4},"end":{"line":1760,"column":44}},"671":{"start":{"line":1762,"column":4},"end":{"line":1764,"column":5}},"672":{"start":{"line":1763,"column":8},"end":{"line":1763,"column":16}},"673":{"start":{"line":1766,"column":4},"end":{"line":1766,"column":36}},"674":{"start":{"line":1768,"column":4},"end":{"line":1771,"column":5}},"675":{"start":{"line":1769,"column":8},"end":{"line":1769,"column":22}},"676":{"start":{"line":1770,"column":8},"end":{"line":1770,"column":36}},"677":{"start":{"line":1773,"column":4},"end":{"line":1773,"column":23}},"678":{"start":{"line":1775,"column":4},"end":{"line":1775,"column":25}},"679":{"start":{"line":1776,"column":4},"end":{"line":1776,"column":25}},"680":{"start":{"line":1777,"column":4},"end":{"line":1777,"column":25}},"681":{"start":{"line":1779,"column":4},"end":{"line":1779,"column":25}},"682":{"start":{"line":1780,"column":4},"end":{"line":1780,"column":25}},"683":{"start":{"line":1781,"column":4},"end":{"line":1781,"column":25}},"684":{"start":{"line":1783,"column":4},"end":{"line":1783,"column":25}},"685":{"start":{"line":1784,"column":4},"end":{"line":1784,"column":25}},"686":{"start":{"line":1785,"column":4},"end":{"line":1785,"column":25}},"687":{"start":{"line":1787,"column":4},"end":{"line":1787,"column":16}},"688":{"start":{"line":1852,"column":0},"end":{"line":1936,"column":2}},"689":{"start":{"line":1873,"column":4},"end":{"line":1873,"column":17}},"690":{"start":{"line":1874,"column":4},"end":{"line":1874,"column":46}},"691":{"start":{"line":1875,"column":4},"end":{"line":1875,"column":21}},"692":{"start":{"line":1876,"column":4},"end":{"line":1876,"column":21}},"693":{"start":{"line":1877,"column":4},"end":{"line":1877,"column":29}},"694":{"start":{"line":1878,"column":4},"end":{"line":1878,"column":29}},"695":{"start":{"line":1879,"column":4},"end":{"line":1879,"column":23}},"696":{"start":{"line":1881,"column":4},"end":{"line":1883,"column":5}},"697":{"start":{"line":1882,"column":8},"end":{"line":1882,"column":24}},"698":{"start":{"line":1884,"column":4},"end":{"line":1884,"column":29}},"699":{"start":{"line":1886,"column":4},"end":{"line":1888,"column":5}},"700":{"start":{"line":1887,"column":8},"end":{"line":1887,"column":27}},"701":{"start":{"line":1889,"column":4},"end":{"line":1889,"column":39}},"702":{"start":{"line":1891,"column":4},"end":{"line":1893,"column":5}},"703":{"start":{"line":1892,"column":8},"end":{"line":1892,"column":25}},"704":{"start":{"line":1894,"column":4},"end":{"line":1894,"column":35}},"705":{"start":{"line":1896,"column":4},"end":{"line":1898,"column":5}},"706":{"start":{"line":1897,"column":8},"end":{"line":1897,"column":25}},"707":{"start":{"line":1899,"column":4},"end":{"line":1899,"column":35}},"708":{"start":{"line":1901,"column":4},"end":{"line":1903,"column":5}},"709":{"start":{"line":1902,"column":8},"end":{"line":1902,"column":23}},"710":{"start":{"line":1904,"column":4},"end":{"line":1904,"column":31}},"711":{"start":{"line":1906,"column":4},"end":{"line":1908,"column":5}},"712":{"start":{"line":1907,"column":8},"end":{"line":1907,"column":49}},"713":{"start":{"line":1909,"column":4},"end":{"line":1909,"column":29}},"714":{"start":{"line":1911,"column":4},"end":{"line":1913,"column":5}},"715":{"start":{"line":1912,"column":8},"end":{"line":1912,"column":33}},"716":{"start":{"line":1914,"column":4},"end":{"line":1914,"column":33}},"717":{"start":{"line":1916,"column":4},"end":{"line":1918,"column":5}},"718":{"start":{"line":1917,"column":8},"end":{"line":1917,"column":49}},"719":{"start":{"line":1919,"column":4},"end":{"line":1919,"column":29}},"720":{"start":{"line":1921,"column":4},"end":{"line":1923,"column":5}},"721":{"start":{"line":1922,"column":8},"end":{"line":1922,"column":46}},"722":{"start":{"line":1924,"column":4},"end":{"line":1924,"column":23}},"723":{"start":{"line":1926,"column":4},"end":{"line":1928,"column":5}},"724":{"start":{"line":1927,"column":8},"end":{"line":1927,"column":43}},"725":{"start":{"line":1929,"column":4},"end":{"line":1929,"column":17}},"726":{"start":{"line":1931,"column":4},"end":{"line":1931,"column":27}},"727":{"start":{"line":1933,"column":4},"end":{"line":1933,"column":37}},"728":{"start":{"line":1935,"column":4},"end":{"line":1935,"column":39}},"729":{"start":{"line":1943,"column":0},"end":{"line":1943,"column":32}},"730":{"start":{"line":1944,"column":0},"end":{"line":1944,"column":33}},"731":{"start":{"line":1955,"column":0},"end":{"line":2068,"column":2}},"732":{"start":{"line":1957,"column":4},"end":{"line":1957,"column":25}},"733":{"start":{"line":1959,"column":4},"end":{"line":1961,"column":5}},"734":{"start":{"line":1960,"column":8},"end":{"line":1960,"column":83}},"735":{"start":{"line":1963,"column":4},"end":{"line":2059,"column":5}},"736":{"start":{"line":1965,"column":8},"end":{"line":1965,"column":47}},"737":{"start":{"line":1967,"column":8},"end":{"line":1967,"column":50}},"738":{"start":{"line":1969,"column":8},"end":{"line":1969,"column":50}},"739":{"start":{"line":1971,"column":8},"end":{"line":1971,"column":28}},"740":{"start":{"line":1973,"column":8},"end":{"line":2001,"column":9}},"741":{"start":{"line":1975,"column":12},"end":{"line":1975,"column":52}},"742":{"start":{"line":1977,"column":12},"end":{"line":1977,"column":39}},"743":{"start":{"line":1979,"column":12},"end":{"line":1979,"column":51}},"744":{"start":{"line":1980,"column":12},"end":{"line":1980,"column":51}},"745":{"start":{"line":1981,"column":12},"end":{"line":1981,"column":51}},"746":{"start":{"line":1983,"column":12},"end":{"line":1983,"column":51}},"747":{"start":{"line":1984,"column":12},"end":{"line":1984,"column":51}},"748":{"start":{"line":1985,"column":12},"end":{"line":1985,"column":51}},"749":{"start":{"line":1987,"column":12},"end":{"line":1987,"column":55}},"750":{"start":{"line":1988,"column":12},"end":{"line":1988,"column":55}},"751":{"start":{"line":1989,"column":12},"end":{"line":1989,"column":55}},"752":{"start":{"line":1990,"column":12},"end":{"line":1990,"column":55}},"753":{"start":{"line":1992,"column":12},"end":{"line":1992,"column":45}},"754":{"start":{"line":1993,"column":12},"end":{"line":1993,"column":45}},"755":{"start":{"line":1994,"column":12},"end":{"line":1994,"column":45}},"756":{"start":{"line":1996,"column":12},"end":{"line":1996,"column":39}},"757":{"start":{"line":1997,"column":12},"end":{"line":1997,"column":39}},"758":{"start":{"line":1998,"column":12},"end":{"line":1998,"column":39}},"759":{"start":{"line":2000,"column":12},"end":{"line":2000,"column":34}},"760":{"start":{"line":2006,"column":8},"end":{"line":2010,"column":9}},"761":{"start":{"line":2007,"column":12},"end":{"line":2009,"column":13}},"762":{"start":{"line":2008,"column":16},"end":{"line":2008,"column":76}},"763":{"start":{"line":2015,"column":8},"end":{"line":2024,"column":9}},"764":{"start":{"line":2016,"column":12},"end":{"line":2023,"column":14}},"765":{"start":{"line":2029,"column":8},"end":{"line":2038,"column":9}},"766":{"start":{"line":2030,"column":12},"end":{"line":2037,"column":14}},"767":{"start":{"line":2040,"column":8},"end":{"line":2040,"column":90}},"768":{"start":{"line":2042,"column":8},"end":{"line":2042,"column":66}},"769":{"start":{"line":2044,"column":8},"end":{"line":2044,"column":74}},"770":{"start":{"line":2046,"column":8},"end":{"line":2051,"column":9}},"771":{"start":{"line":2047,"column":12},"end":{"line":2050,"column":13}},"772":{"start":{"line":2048,"column":16},"end":{"line":2048,"column":45}},"773":{"start":{"line":2049,"column":16},"end":{"line":2049,"column":22}},"774":{"start":{"line":2053,"column":8},"end":{"line":2053,"column":33}},"775":{"start":{"line":2055,"column":8},"end":{"line":2055,"column":25}},"776":{"start":{"line":2057,"column":8},"end":{"line":2057,"column":92}},"777":{"start":{"line":2058,"column":8},"end":{"line":2058,"column":65}},"778":{"start":{"line":2061,"column":4},"end":{"line":2063,"column":5}},"779":{"start":{"line":2062,"column":8},"end":{"line":2062,"column":86}},"780":{"start":{"line":2065,"column":4},"end":{"line":2065,"column":43}},"781":{"start":{"line":2067,"column":4},"end":{"line":2067,"column":21}},"782":{"start":{"line":2070,"column":0},"end":{"line":2083,"column":2}},"783":{"start":{"line":2072,"column":4},"end":{"line":2080,"column":5}},"784":{"start":{"line":2073,"column":8},"end":{"line":2073,"column":33}},"785":{"start":{"line":2074,"column":8},"end":{"line":2074,"column":42}},"786":{"start":{"line":2075,"column":8},"end":{"line":2075,"column":29}},"787":{"start":{"line":2077,"column":8},"end":{"line":2077,"column":50}},"788":{"start":{"line":2078,"column":8},"end":{"line":2078,"column":64}},"789":{"start":{"line":2079,"column":8},"end":{"line":2079,"column":46}},"790":{"start":{"line":2082,"column":4},"end":{"line":2082,"column":21}},"791":{"start":{"line":2088,"column":0},"end":{"line":2146,"column":2}},"792":{"start":{"line":2090,"column":4},"end":{"line":2090,"column":53}},"793":{"start":{"line":2092,"column":4},"end":{"line":2098,"column":5}},"794":{"start":{"line":2093,"column":8},"end":{"line":2097,"column":11}},"795":{"start":{"line":2100,"column":4},"end":{"line":2100,"column":33}},"796":{"start":{"line":2102,"column":4},"end":{"line":2102,"column":23}},"797":{"start":{"line":2104,"column":4},"end":{"line":2125,"column":5}},"798":{"start":{"line":2106,"column":8},"end":{"line":2106,"column":26}},"799":{"start":{"line":2107,"column":8},"end":{"line":2107,"column":28}},"800":{"start":{"line":2108,"column":8},"end":{"line":2108,"column":28}},"801":{"start":{"line":2110,"column":8},"end":{"line":2124,"column":10}},"802":{"start":{"line":2127,"column":4},"end":{"line":2143,"column":5}},"803":{"start":{"line":2128,"column":8},"end":{"line":2142,"column":9}},"804":{"start":{"line":2136,"column":12},"end":{"line":2136,"column":37}},"805":{"start":{"line":2137,"column":12},"end":{"line":2137,"column":38}},"806":{"start":{"line":2138,"column":12},"end":{"line":2138,"column":46}},"807":{"start":{"line":2139,"column":12},"end":{"line":2139,"column":34}},"808":{"start":{"line":2141,"column":12},"end":{"line":2141,"column":41}},"809":{"start":{"line":2145,"column":4},"end":{"line":2145,"column":21}},"810":{"start":{"line":2173,"column":0},"end":{"line":2321,"column":2}},"811":{"start":{"line":2181,"column":4},"end":{"line":2190,"column":5}},"812":{"start":{"line":2183,"column":8},"end":{"line":2187,"column":9}},"813":{"start":{"line":2184,"column":12},"end":{"line":2186,"column":13}},"814":{"start":{"line":2185,"column":16},"end":{"line":2185,"column":28}},"815":{"start":{"line":2189,"column":8},"end":{"line":2189,"column":21}},"816":{"start":{"line":2199,"column":4},"end":{"line":2233,"column":5}},"817":{"start":{"line":2201,"column":8},"end":{"line":2230,"column":9}},"818":{"start":{"line":2202,"column":12},"end":{"line":2229,"column":13}},"819":{"start":{"line":2211,"column":16},"end":{"line":2219,"column":18}},"820":{"start":{"line":2221,"column":16},"end":{"line":2223,"column":17}},"821":{"start":{"line":2222,"column":20},"end":{"line":2222,"column":29}},"822":{"start":{"line":2225,"column":16},"end":{"line":2228,"column":18}},"823":{"start":{"line":2232,"column":8},"end":{"line":2232,"column":20}},"824":{"start":{"line":2235,"column":4},"end":{"line":2248,"column":6}},"825":{"start":{"line":2250,"column":4},"end":{"line":2250,"column":23}},"826":{"start":{"line":2252,"column":4},"end":{"line":2300,"column":5}},"827":{"start":{"line":2254,"column":8},"end":{"line":2254,"column":43}},"828":{"start":{"line":2260,"column":8},"end":{"line":2275,"column":9}},"829":{"start":{"line":2268,"column":12},"end":{"line":2268,"column":51}},"830":{"start":{"line":2269,"column":12},"end":{"line":2269,"column":64}},"831":{"start":{"line":2270,"column":12},"end":{"line":2270,"column":47}},"832":{"start":{"line":2272,"column":12},"end":{"line":2272,"column":54}},"833":{"start":{"line":2273,"column":12},"end":{"line":2273,"column":68}},"834":{"start":{"line":2274,"column":12},"end":{"line":2274,"column":50}},"835":{"start":{"line":2277,"column":8},"end":{"line":2277,"column":37}},"836":{"start":{"line":2279,"column":8},"end":{"line":2292,"column":10}},"837":{"start":{"line":2294,"column":8},"end":{"line":2299,"column":9}},"838":{"start":{"line":2295,"column":12},"end":{"line":2295,"column":84}},"839":{"start":{"line":2296,"column":12},"end":{"line":2298,"column":13}},"840":{"start":{"line":2297,"column":16},"end":{"line":2297,"column":42}},"841":{"start":{"line":2306,"column":4},"end":{"line":2306,"column":23}},"842":{"start":{"line":2307,"column":4},"end":{"line":2318,"column":5}},"843":{"start":{"line":2308,"column":8},"end":{"line":2308,"column":26}},"844":{"start":{"line":2309,"column":8},"end":{"line":2314,"column":9}},"845":{"start":{"line":2310,"column":12},"end":{"line":2313,"column":13}},"846":{"start":{"line":2311,"column":16},"end":{"line":2311,"column":29}},"847":{"start":{"line":2312,"column":16},"end":{"line":2312,"column":22}},"848":{"start":{"line":2315,"column":8},"end":{"line":2317,"column":9}},"849":{"start":{"line":2316,"column":12},"end":{"line":2316,"column":50}},"850":{"start":{"line":2320,"column":4},"end":{"line":2320,"column":21}},"851":{"start":{"line":2331,"column":0},"end":{"line":2365,"column":2}},"852":{"start":{"line":2333,"column":4},"end":{"line":2335,"column":5}},"853":{"start":{"line":2334,"column":8},"end":{"line":2334,"column":89}},"854":{"start":{"line":2337,"column":4},"end":{"line":2337,"column":22}},"855":{"start":{"line":2339,"column":4},"end":{"line":2339,"column":49}},"856":{"start":{"line":2341,"column":4},"end":{"line":2347,"column":5}},"857":{"start":{"line":2342,"column":8},"end":{"line":2346,"column":11}},"858":{"start":{"line":2349,"column":4},"end":{"line":2349,"column":22}},"859":{"start":{"line":2351,"column":4},"end":{"line":2351,"column":36}},"860":{"start":{"line":2353,"column":4},"end":{"line":2353,"column":36}},"861":{"start":{"line":2355,"column":4},"end":{"line":2362,"column":5}},"862":{"start":{"line":2356,"column":8},"end":{"line":2361,"column":10}},"863":{"start":{"line":2364,"column":4},"end":{"line":2364,"column":20}},"864":{"start":{"line":2375,"column":0},"end":{"line":2389,"column":2}},"865":{"start":{"line":2381,"column":4},"end":{"line":2381,"column":17}},"866":{"start":{"line":2382,"column":4},"end":{"line":2382,"column":21}},"867":{"start":{"line":2383,"column":4},"end":{"line":2383,"column":25}},"868":{"start":{"line":2385,"column":4},"end":{"line":2387,"column":5}},"869":{"start":{"line":2386,"column":8},"end":{"line":2386,"column":20}},"870":{"start":{"line":2388,"column":4},"end":{"line":2388,"column":25}},"871":{"start":{"line":2396,"column":0},"end":{"line":2396,"column":38}},"872":{"start":{"line":2397,"column":0},"end":{"line":2397,"column":35}},"873":{"start":{"line":2407,"column":0},"end":{"line":2419,"column":2}},"874":{"start":{"line":2414,"column":4},"end":{"line":2414,"column":33}},"875":{"start":{"line":2415,"column":4},"end":{"line":2415,"column":33}},"876":{"start":{"line":2416,"column":4},"end":{"line":2416,"column":17}},"877":{"start":{"line":2417,"column":4},"end":{"line":2417,"column":39}},"878":{"start":{"line":2418,"column":4},"end":{"line":2418,"column":31}},"879":{"start":{"line":2425,"column":0},"end":{"line":2433,"column":2}},"880":{"start":{"line":2426,"column":4},"end":{"line":2432,"column":5}},"881":{"start":{"line":2441,"column":0},"end":{"line":2459,"column":2}},"882":{"start":{"line":2446,"column":4},"end":{"line":2446,"column":25}},"883":{"start":{"line":2447,"column":4},"end":{"line":2447,"column":35}},"884":{"start":{"line":2449,"column":4},"end":{"line":2449,"column":51}},"885":{"start":{"line":2451,"column":4},"end":{"line":2451,"column":35}},"886":{"start":{"line":2453,"column":4},"end":{"line":2455,"column":5}},"887":{"start":{"line":2454,"column":8},"end":{"line":2454,"column":20}},"888":{"start":{"line":2456,"column":4},"end":{"line":2456,"column":25}},"889":{"start":{"line":2458,"column":4},"end":{"line":2458,"column":42}},"890":{"start":{"line":2465,"column":0},"end":{"line":2469,"column":2}},"891":{"start":{"line":2466,"column":4},"end":{"line":2468,"column":7}},"892":{"start":{"line":2475,"column":0},"end":{"line":2480,"column":2}},"893":{"start":{"line":2478,"column":4},"end":{"line":2478,"column":28}},"894":{"start":{"line":2479,"column":4},"end":{"line":2479,"column":43}},"895":{"start":{"line":2487,"column":0},"end":{"line":2489,"column":2}},"896":{"start":{"line":2488,"column":4},"end":{"line":2488,"column":36}},"897":{"start":{"line":2490,"column":0},"end":{"line":2661,"column":2}},"898":{"start":{"line":2520,"column":4},"end":{"line":2520,"column":25}},"899":{"start":{"line":2521,"column":4},"end":{"line":2521,"column":35}},"900":{"start":{"line":2523,"column":4},"end":{"line":2523,"column":51}},"901":{"start":{"line":2525,"column":1},"end":{"line":2527,"column":2}},"902":{"start":{"line":2526,"column":2},"end":{"line":2526,"column":64}},"903":{"start":{"line":2528,"column":1},"end":{"line":2528,"column":64}},"904":{"start":{"line":2530,"column":1},"end":{"line":2532,"column":2}},"905":{"start":{"line":2531,"column":2},"end":{"line":2531,"column":64}},"906":{"start":{"line":2533,"column":1},"end":{"line":2533,"column":64}},"907":{"start":{"line":2535,"column":1},"end":{"line":2537,"column":2}},"908":{"start":{"line":2536,"column":2},"end":{"line":2536,"column":51}},"909":{"start":{"line":2538,"column":1},"end":{"line":2538,"column":38}},"910":{"start":{"line":2540,"column":1},"end":{"line":2542,"column":2}},"911":{"start":{"line":2541,"column":2},"end":{"line":2541,"column":51}},"912":{"start":{"line":2543,"column":1},"end":{"line":2543,"column":38}},"913":{"start":{"line":2545,"column":1},"end":{"line":2547,"column":2}},"914":{"start":{"line":2546,"column":2},"end":{"line":2546,"column":46}},"915":{"start":{"line":2548,"column":1},"end":{"line":2548,"column":28}},"916":{"start":{"line":2550,"column":1},"end":{"line":2552,"column":2}},"917":{"start":{"line":2551,"column":2},"end":{"line":2551,"column":46}},"918":{"start":{"line":2553,"column":1},"end":{"line":2553,"column":28}},"919":{"start":{"line":2555,"column":1},"end":{"line":2557,"column":2}},"920":{"start":{"line":2556,"column":2},"end":{"line":2556,"column":27}},"921":{"start":{"line":2558,"column":1},"end":{"line":2558,"column":50}},"922":{"start":{"line":2560,"column":1},"end":{"line":2562,"column":2}},"923":{"start":{"line":2561,"column":2},"end":{"line":2561,"column":26}},"924":{"start":{"line":2563,"column":1},"end":{"line":2563,"column":48}},"925":{"start":{"line":2565,"column":1},"end":{"line":2567,"column":2}},"926":{"start":{"line":2566,"column":2},"end":{"line":2566,"column":13}},"927":{"start":{"line":2568,"column":1},"end":{"line":2568,"column":22}},"928":{"start":{"line":2570,"column":1},"end":{"line":2572,"column":2}},"929":{"start":{"line":2571,"column":2},"end":{"line":2571,"column":28}},"930":{"start":{"line":2573,"column":1},"end":{"line":2573,"column":48}},"931":{"start":{"line":2575,"column":1},"end":{"line":2577,"column":2}},"932":{"start":{"line":2576,"column":2},"end":{"line":2576,"column":26}},"933":{"start":{"line":2578,"column":1},"end":{"line":2578,"column":46}},"934":{"start":{"line":2580,"column":1},"end":{"line":2582,"column":2}},"935":{"start":{"line":2581,"column":2},"end":{"line":2581,"column":25}},"936":{"start":{"line":2583,"column":1},"end":{"line":2583,"column":44}},"937":{"start":{"line":2585,"column":1},"end":{"line":2587,"column":2}},"938":{"start":{"line":2586,"column":2},"end":{"line":2586,"column":23}},"939":{"start":{"line":2588,"column":1},"end":{"line":2588,"column":34}},"940":{"start":{"line":2590,"column":1},"end":{"line":2592,"column":2}},"941":{"start":{"line":2591,"column":2},"end":{"line":2591,"column":15}},"942":{"start":{"line":2593,"column":1},"end":{"line":2593,"column":26}},"943":{"start":{"line":2595,"column":1},"end":{"line":2597,"column":2}},"944":{"start":{"line":2596,"column":2},"end":{"line":2596,"column":15}},"945":{"start":{"line":2598,"column":1},"end":{"line":2598,"column":26}},"946":{"start":{"line":2600,"column":1},"end":{"line":2602,"column":2}},"947":{"start":{"line":2601,"column":2},"end":{"line":2601,"column":20}},"948":{"start":{"line":2603,"column":1},"end":{"line":2603,"column":36}},"949":{"start":{"line":2605,"column":1},"end":{"line":2607,"column":2}},"950":{"start":{"line":2606,"column":2},"end":{"line":2606,"column":23}},"951":{"start":{"line":2608,"column":1},"end":{"line":2608,"column":36}},"952":{"start":{"line":2610,"column":1},"end":{"line":2612,"column":2}},"953":{"start":{"line":2611,"column":2},"end":{"line":2611,"column":40}},"954":{"start":{"line":2613,"column":1},"end":{"line":2613,"column":46}},"955":{"start":{"line":2615,"column":1},"end":{"line":2617,"column":2}},"956":{"start":{"line":2616,"column":2},"end":{"line":2616,"column":22}},"957":{"start":{"line":2618,"column":1},"end":{"line":2618,"column":34}},"958":{"start":{"line":2620,"column":1},"end":{"line":2622,"column":2}},"959":{"start":{"line":2621,"column":2},"end":{"line":2621,"column":37}},"960":{"start":{"line":2623,"column":1},"end":{"line":2623,"column":70}},"961":{"start":{"line":2625,"column":1},"end":{"line":2627,"column":2}},"962":{"start":{"line":2626,"column":2},"end":{"line":2626,"column":33}},"963":{"start":{"line":2628,"column":1},"end":{"line":2628,"column":62}},"964":{"start":{"line":2630,"column":1},"end":{"line":2632,"column":2}},"965":{"start":{"line":2631,"column":2},"end":{"line":2631,"column":22}},"966":{"start":{"line":2633,"column":1},"end":{"line":2633,"column":40}},"967":{"start":{"line":2635,"column":1},"end":{"line":2637,"column":2}},"968":{"start":{"line":2636,"column":2},"end":{"line":2636,"column":15}},"969":{"start":{"line":2638,"column":1},"end":{"line":2638,"column":26}},"970":{"start":{"line":2640,"column":1},"end":{"line":2642,"column":2}},"971":{"start":{"line":2641,"column":2},"end":{"line":2641,"column":23}},"972":{"start":{"line":2643,"column":1},"end":{"line":2643,"column":42}},"973":{"start":{"line":2645,"column":1},"end":{"line":2647,"column":2}},"974":{"start":{"line":2646,"column":2},"end":{"line":2646,"column":26}},"975":{"start":{"line":2648,"column":1},"end":{"line":2648,"column":48}},"976":{"start":{"line":2650,"column":1},"end":{"line":2652,"column":2}},"977":{"start":{"line":2651,"column":2},"end":{"line":2651,"column":42}},"978":{"start":{"line":2653,"column":1},"end":{"line":2653,"column":72}},"979":{"start":{"line":2655,"column":1},"end":{"line":2657,"column":2}},"980":{"start":{"line":2656,"column":2},"end":{"line":2656,"column":38}},"981":{"start":{"line":2658,"column":1},"end":{"line":2658,"column":66}},"982":{"start":{"line":2660,"column":4},"end":{"line":2660,"column":42}},"983":{"start":{"line":2663,"column":0},"end":{"line":2695,"column":2}},"984":{"start":{"line":2665,"column":4},"end":{"line":2693,"column":7}},"985":{"start":{"line":2704,"column":0},"end":{"line":2721,"column":2}},"986":{"start":{"line":2709,"column":4},"end":{"line":2709,"column":51}},"987":{"start":{"line":2710,"column":4},"end":{"line":2710,"column":25}},"988":{"start":{"line":2711,"column":4},"end":{"line":2711,"column":35}},"989":{"start":{"line":2713,"column":4},"end":{"line":2713,"column":35}},"990":{"start":{"line":2715,"column":4},"end":{"line":2717,"column":5}},"991":{"start":{"line":2716,"column":8},"end":{"line":2716,"column":20}},"992":{"start":{"line":2718,"column":4},"end":{"line":2718,"column":25}},"993":{"start":{"line":2720,"column":4},"end":{"line":2720,"column":42}},"994":{"start":{"line":2727,"column":0},"end":{"line":2729,"column":2}},"995":{"start":{"line":2728,"column":4},"end":{"line":2728,"column":37}},"996":{"start":{"line":2735,"column":0},"end":{"line":2739,"column":2}},"997":{"start":{"line":2736,"column":4},"end":{"line":2738,"column":7}},"998":{"start":{"line":2745,"column":0},"end":{"line":2768,"column":2}},"999":{"start":{"line":2747,"column":4},"end":{"line":2747,"column":28}},"1000":{"start":{"line":2749,"column":4},"end":{"line":2766,"column":7}},"1001":{"start":{"line":2791,"column":0},"end":{"line":2831,"column":2}},"1002":{"start":{"line":2809,"column":4},"end":{"line":2809,"column":51}},"1003":{"start":{"line":2810,"column":4},"end":{"line":2810,"column":57}},"1004":{"start":{"line":2811,"column":4},"end":{"line":2811,"column":57}},"1005":{"start":{"line":2812,"column":4},"end":{"line":2812,"column":71}},"1006":{"start":{"line":2813,"column":4},"end":{"line":2813,"column":71}},"1007":{"start":{"line":2814,"column":4},"end":{"line":2814,"column":54}},"1008":{"start":{"line":2815,"column":4},"end":{"line":2815,"column":66}},"1009":{"start":{"line":2816,"column":4},"end":{"line":2816,"column":84}},"1010":{"start":{"line":2817,"column":4},"end":{"line":2817,"column":87}},"1011":{"start":{"line":2818,"column":4},"end":{"line":2818,"column":75}},"1012":{"start":{"line":2819,"column":4},"end":{"line":2819,"column":89}},"1013":{"start":{"line":2820,"column":4},"end":{"line":2820,"column":86}},"1014":{"start":{"line":2821,"column":4},"end":{"line":2821,"column":102}},"1015":{"start":{"line":2822,"column":4},"end":{"line":2822,"column":99}},"1016":{"start":{"line":2823,"column":4},"end":{"line":2823,"column":85}},"1017":{"start":{"line":2824,"column":4},"end":{"line":2824,"column":60}},"1018":{"start":{"line":2826,"column":4},"end":{"line":2826,"column":25}},"1019":{"start":{"line":2828,"column":4},"end":{"line":2828,"column":35}},"1020":{"start":{"line":2830,"column":4},"end":{"line":2830,"column":42}},"1021":{"start":{"line":2837,"column":0},"end":{"line":2877,"column":2}},"1022":{"start":{"line":2839,"column":4},"end":{"line":2872,"column":7}},"1023":{"start":{"line":2874,"column":4},"end":{"line":2874,"column":29}},"1024":{"start":{"line":2876,"column":4},"end":{"line":2876,"column":20}},"1025":{"start":{"line":2886,"column":0},"end":{"line":2913,"column":2}},"1026":{"start":{"line":2891,"column":4},"end":{"line":2893,"column":5}},"1027":{"start":{"line":2892,"column":8},"end":{"line":2892,"column":47}},"1028":{"start":{"line":2895,"column":4},"end":{"line":2897,"column":5}},"1029":{"start":{"line":2896,"column":8},"end":{"line":2896,"column":54}},"1030":{"start":{"line":2899,"column":4},"end":{"line":2912,"column":6}},"1031":{"start":{"line":2925,"column":0},"end":{"line":2936,"column":2}},"1032":{"start":{"line":2931,"column":4},"end":{"line":2931,"column":51}},"1033":{"start":{"line":2932,"column":4},"end":{"line":2932,"column":21}},"1034":{"start":{"line":2933,"column":4},"end":{"line":2933,"column":29}},"1035":{"start":{"line":2934,"column":4},"end":{"line":2934,"column":21}},"1036":{"start":{"line":2935,"column":4},"end":{"line":2935,"column":31}},"1037":{"start":{"line":2954,"column":0},"end":{"line":3020,"column":2}},"1038":{"start":{"line":2968,"column":4},"end":{"line":2968,"column":17}},"1039":{"start":{"line":2969,"column":4},"end":{"line":2969,"column":47}},"1040":{"start":{"line":2970,"column":4},"end":{"line":2970,"column":21}},"1041":{"start":{"line":2971,"column":4},"end":{"line":2971,"column":21}},"1042":{"start":{"line":2972,"column":4},"end":{"line":2974,"column":5}},"1043":{"start":{"line":2973,"column":8},"end":{"line":2973,"column":30}},"1044":{"start":{"line":2976,"column":4},"end":{"line":2978,"column":5}},"1045":{"start":{"line":2977,"column":8},"end":{"line":2977,"column":20}},"1046":{"start":{"line":2979,"column":4},"end":{"line":2979,"column":25}},"1047":{"start":{"line":2981,"column":4},"end":{"line":2983,"column":5}},"1048":{"start":{"line":2982,"column":8},"end":{"line":2982,"column":46}},"1049":{"start":{"line":2984,"column":4},"end":{"line":2984,"column":33}},"1050":{"start":{"line":2986,"column":4},"end":{"line":2988,"column":5}},"1051":{"start":{"line":2987,"column":8},"end":{"line":2987,"column":49}},"1052":{"start":{"line":2989,"column":4},"end":{"line":2989,"column":29}},"1053":{"start":{"line":2991,"column":4},"end":{"line":2993,"column":5}},"1054":{"start":{"line":2992,"column":8},"end":{"line":2992,"column":49}},"1055":{"start":{"line":2994,"column":4},"end":{"line":2994,"column":29}},"1056":{"start":{"line":2996,"column":4},"end":{"line":2998,"column":5}},"1057":{"start":{"line":2997,"column":8},"end":{"line":2997,"column":46}},"1058":{"start":{"line":2999,"column":4},"end":{"line":2999,"column":23}},"1059":{"start":{"line":3001,"column":4},"end":{"line":3003,"column":5}},"1060":{"start":{"line":3002,"column":8},"end":{"line":3002,"column":29}},"1061":{"start":{"line":3004,"column":4},"end":{"line":3004,"column":39}},"1062":{"start":{"line":3006,"column":4},"end":{"line":3008,"column":5}},"1063":{"start":{"line":3007,"column":8},"end":{"line":3007,"column":20}},"1064":{"start":{"line":3009,"column":4},"end":{"line":3009,"column":25}},"1065":{"start":{"line":3011,"column":4},"end":{"line":3013,"column":5}},"1066":{"start":{"line":3012,"column":8},"end":{"line":3012,"column":20}},"1067":{"start":{"line":3014,"column":4},"end":{"line":3014,"column":25}},"1068":{"start":{"line":3016,"column":4},"end":{"line":3018,"column":5}},"1069":{"start":{"line":3017,"column":8},"end":{"line":3017,"column":22}},"1070":{"start":{"line":3019,"column":4},"end":{"line":3019,"column":29}},"1071":{"start":{"line":3031,"column":0},"end":{"line":3249,"column":2}},"1072":{"start":{"line":3043,"column":4},"end":{"line":3046,"column":5}},"1073":{"start":{"line":3044,"column":8},"end":{"line":3044,"column":68}},"1074":{"start":{"line":3045,"column":8},"end":{"line":3045,"column":60}},"1075":{"start":{"line":3048,"column":4},"end":{"line":3048,"column":35}},"1076":{"start":{"line":3049,"column":4},"end":{"line":3052,"column":6}},"1077":{"start":{"line":3054,"column":4},"end":{"line":3246,"column":11}},"1078":{"start":{"line":3055,"column":8},"end":{"line":3245,"column":9}},"1079":{"start":{"line":3056,"column":12},"end":{"line":3244,"column":13}},"1080":{"start":{"line":3058,"column":16},"end":{"line":3058,"column":60}},"1081":{"start":{"line":3060,"column":16},"end":{"line":3062,"column":17}},"1082":{"start":{"line":3061,"column":20},"end":{"line":3061,"column":83}},"1083":{"start":{"line":3064,"column":16},"end":{"line":3064,"column":46}},"1084":{"start":{"line":3066,"column":16},"end":{"line":3066,"column":36}},"1085":{"start":{"line":3068,"column":16},"end":{"line":3150,"column":17}},"1086":{"start":{"line":3070,"column":20},"end":{"line":3149,"column":21}},"1087":{"start":{"line":3072,"column":24},"end":{"line":3072,"column":55}},"1088":{"start":{"line":3074,"column":24},"end":{"line":3074,"column":42}},"1089":{"start":{"line":3076,"column":24},"end":{"line":3081,"column":25}},"1090":{"start":{"line":3077,"column":28},"end":{"line":3080,"column":30}},"1091":{"start":{"line":3083,"column":24},"end":{"line":3088,"column":26}},"1092":{"start":{"line":3090,"column":24},"end":{"line":3090,"column":42}},"1093":{"start":{"line":3092,"column":24},"end":{"line":3146,"column":25}},"1094":{"start":{"line":3094,"column":28},"end":{"line":3094,"column":58}},"1095":{"start":{"line":3096,"column":28},"end":{"line":3096,"column":62}},"1096":{"start":{"line":3098,"column":28},"end":{"line":3102,"column":30}},"1097":{"start":{"line":3104,"column":28},"end":{"line":3104,"column":54}},"1098":{"start":{"line":3106,"column":28},"end":{"line":3112,"column":30}},"1099":{"start":{"line":3114,"column":28},"end":{"line":3114,"column":59}},"1100":{"start":{"line":3116,"column":28},"end":{"line":3116,"column":46}},"1101":{"start":{"line":3118,"column":28},"end":{"line":3129,"column":29}},"1102":{"start":{"line":3120,"column":32},"end":{"line":3120,"column":53}},"1103":{"start":{"line":3123,"column":32},"end":{"line":3126,"column":34}},"1104":{"start":{"line":3128,"column":32},"end":{"line":3128,"column":54}},"1105":{"start":{"line":3131,"column":28},"end":{"line":3143,"column":30}},"1106":{"start":{"line":3145,"column":28},"end":{"line":3145,"column":51}},"1107":{"start":{"line":3148,"column":24},"end":{"line":3148,"column":51}},"1108":{"start":{"line":3152,"column":16},"end":{"line":3152,"column":34}},"1109":{"start":{"line":3154,"column":16},"end":{"line":3203,"column":17}},"1110":{"start":{"line":3156,"column":20},"end":{"line":3156,"column":48}},"1111":{"start":{"line":3158,"column":20},"end":{"line":3200,"column":22}},"1112":{"start":{"line":3202,"column":20},"end":{"line":3202,"column":43}},"1113":{"start":{"line":3205,"column":16},"end":{"line":3234,"column":18}},"1114":{"start":{"line":3236,"column":16},"end":{"line":3243,"column":18}},"1115":{"start":{"line":3248,"column":4},"end":{"line":3248,"column":15}},"1116":{"start":{"line":3260,"column":0},"end":{"line":3566,"column":2}},"1117":{"start":{"line":3269,"column":4},"end":{"line":3269,"column":54}},"1118":{"start":{"line":3271,"column":4},"end":{"line":3271,"column":31}},"1119":{"start":{"line":3273,"column":4},"end":{"line":3273,"column":19}},"1120":{"start":{"line":3275,"column":4},"end":{"line":3470,"column":5}},"1121":{"start":{"line":3277,"column":8},"end":{"line":3277,"column":42}},"1122":{"start":{"line":3279,"column":8},"end":{"line":3279,"column":49}},"1123":{"start":{"line":3281,"column":8},"end":{"line":3281,"column":56}},"1124":{"start":{"line":3283,"column":8},"end":{"line":3283,"column":37}},"1125":{"start":{"line":3285,"column":8},"end":{"line":3285,"column":31}},"1126":{"start":{"line":3287,"column":8},"end":{"line":3287,"column":47}},"1127":{"start":{"line":3289,"column":8},"end":{"line":3289,"column":39}},"1128":{"start":{"line":3294,"column":8},"end":{"line":3302,"column":9}},"1129":{"start":{"line":3295,"column":12},"end":{"line":3301,"column":13}},"1130":{"start":{"line":3307,"column":8},"end":{"line":3369,"column":9}},"1131":{"start":{"line":3309,"column":12},"end":{"line":3324,"column":14}},"1132":{"start":{"line":3326,"column":12},"end":{"line":3342,"column":14}},"1133":{"start":{"line":3344,"column":12},"end":{"line":3348,"column":14}},"1134":{"start":{"line":3350,"column":12},"end":{"line":3366,"column":14}},"1135":{"start":{"line":3368,"column":12},"end":{"line":3368,"column":38}},"1136":{"start":{"line":3371,"column":8},"end":{"line":3371,"column":36}},"1137":{"start":{"line":3376,"column":8},"end":{"line":3399,"column":9}},"1138":{"start":{"line":3378,"column":12},"end":{"line":3378,"column":58}},"1139":{"start":{"line":3380,"column":12},"end":{"line":3380,"column":44}},"1140":{"start":{"line":3382,"column":12},"end":{"line":3398,"column":13}},"1141":{"start":{"line":3383,"column":16},"end":{"line":3383,"column":53}},"1142":{"start":{"line":3384,"column":16},"end":{"line":3397,"column":18}},"1143":{"start":{"line":3405,"column":8},"end":{"line":3408,"column":9}},"1144":{"start":{"line":3406,"column":12},"end":{"line":3406,"column":42}},"1145":{"start":{"line":3407,"column":12},"end":{"line":3407,"column":44}},"1146":{"start":{"line":3410,"column":8},"end":{"line":3410,"column":41}},"1147":{"start":{"line":3415,"column":8},"end":{"line":3424,"column":9}},"1148":{"start":{"line":3416,"column":12},"end":{"line":3423,"column":14}},"1149":{"start":{"line":3426,"column":8},"end":{"line":3467,"column":11}},"1150":{"start":{"line":3428,"column":16},"end":{"line":3463,"column":18}},"1151":{"start":{"line":3430,"column":20},"end":{"line":3430,"column":74}},"1152":{"start":{"line":3435,"column":20},"end":{"line":3435,"column":48}},"1153":{"start":{"line":3437,"column":20},"end":{"line":3442,"column":22}},"1154":{"start":{"line":3443,"column":20},"end":{"line":3443,"column":47}},"1155":{"start":{"line":3445,"column":20},"end":{"line":3445,"column":59}},"1156":{"start":{"line":3446,"column":20},"end":{"line":3446,"column":59}},"1157":{"start":{"line":3447,"column":20},"end":{"line":3447,"column":59}},"1158":{"start":{"line":3449,"column":20},"end":{"line":3449,"column":59}},"1159":{"start":{"line":3450,"column":20},"end":{"line":3450,"column":59}},"1160":{"start":{"line":3451,"column":20},"end":{"line":3451,"column":59}},"1161":{"start":{"line":3453,"column":20},"end":{"line":3453,"column":53}},"1162":{"start":{"line":3454,"column":20},"end":{"line":3454,"column":53}},"1163":{"start":{"line":3455,"column":20},"end":{"line":3455,"column":53}},"1164":{"start":{"line":3457,"column":20},"end":{"line":3457,"column":63}},"1165":{"start":{"line":3458,"column":20},"end":{"line":3458,"column":63}},"1166":{"start":{"line":3459,"column":20},"end":{"line":3459,"column":63}},"1167":{"start":{"line":3460,"column":20},"end":{"line":3460,"column":63}},"1168":{"start":{"line":3462,"column":20},"end":{"line":3462,"column":37}},"1169":{"start":{"line":3466,"column":12},"end":{"line":3466,"column":31}},"1170":{"start":{"line":3469,"column":8},"end":{"line":3469,"column":27}},"1171":{"start":{"line":3472,"column":4},"end":{"line":3565,"column":6}},"1172":{"start":{"line":3474,"column":8},"end":{"line":3474,"column":46}},"1173":{"start":{"line":3475,"column":8},"end":{"line":3560,"column":9}},"1174":{"start":{"line":3477,"column":12},"end":{"line":3477,"column":36}},"1175":{"start":{"line":3479,"column":12},"end":{"line":3521,"column":13}},"1176":{"start":{"line":3481,"column":16},"end":{"line":3481,"column":60}},"1177":{"start":{"line":3483,"column":16},"end":{"line":3483,"column":33}},"1178":{"start":{"line":3485,"column":16},"end":{"line":3487,"column":17}},"1179":{"start":{"line":3486,"column":20},"end":{"line":3486,"column":107}},"1180":{"start":{"line":3489,"column":16},"end":{"line":3491,"column":17}},"1181":{"start":{"line":3490,"column":20},"end":{"line":3490,"column":111}},"1182":{"start":{"line":3493,"column":16},"end":{"line":3497,"column":17}},"1183":{"start":{"line":3494,"column":20},"end":{"line":3494,"column":105}},"1184":{"start":{"line":3495,"column":20},"end":{"line":3495,"column":59}},"1185":{"start":{"line":3496,"column":20},"end":{"line":3496,"column":53}},"1186":{"start":{"line":3499,"column":16},"end":{"line":3505,"column":17}},"1187":{"start":{"line":3500,"column":20},"end":{"line":3500,"column":104}},"1188":{"start":{"line":3501,"column":20},"end":{"line":3501,"column":59}},"1189":{"start":{"line":3502,"column":20},"end":{"line":3502,"column":53}},"1190":{"start":{"line":3503,"column":20},"end":{"line":3503,"column":59}},"1191":{"start":{"line":3504,"column":20},"end":{"line":3504,"column":53}},"1192":{"start":{"line":3507,"column":16},"end":{"line":3507,"column":59}},"1193":{"start":{"line":3508,"column":16},"end":{"line":3508,"column":59}},"1194":{"start":{"line":3509,"column":16},"end":{"line":3509,"column":59}},"1195":{"start":{"line":3511,"column":16},"end":{"line":3511,"column":59}},"1196":{"start":{"line":3512,"column":16},"end":{"line":3512,"column":59}},"1197":{"start":{"line":3513,"column":16},"end":{"line":3513,"column":59}},"1198":{"start":{"line":3515,"column":16},"end":{"line":3520,"column":17}},"1199":{"start":{"line":3516,"column":20},"end":{"line":3516,"column":114}},"1200":{"start":{"line":3518,"column":20},"end":{"line":3518,"column":51}},"1201":{"start":{"line":3519,"column":20},"end":{"line":3519,"column":47}},"1202":{"start":{"line":3523,"column":12},"end":{"line":3523,"column":62}},"1203":{"start":{"line":3525,"column":12},"end":{"line":3525,"column":51}},"1204":{"start":{"line":3527,"column":12},"end":{"line":3527,"column":63}},"1205":{"start":{"line":3528,"column":12},"end":{"line":3528,"column":63}},"1206":{"start":{"line":3529,"column":12},"end":{"line":3529,"column":63}},"1207":{"start":{"line":3531,"column":12},"end":{"line":3531,"column":63}},"1208":{"start":{"line":3532,"column":12},"end":{"line":3532,"column":63}},"1209":{"start":{"line":3533,"column":12},"end":{"line":3533,"column":63}},"1210":{"start":{"line":3535,"column":12},"end":{"line":3535,"column":57}},"1211":{"start":{"line":3536,"column":12},"end":{"line":3536,"column":57}},"1212":{"start":{"line":3537,"column":12},"end":{"line":3537,"column":57}},"1213":{"start":{"line":3539,"column":12},"end":{"line":3539,"column":67}},"1214":{"start":{"line":3540,"column":12},"end":{"line":3540,"column":67}},"1215":{"start":{"line":3541,"column":12},"end":{"line":3541,"column":67}},"1216":{"start":{"line":3542,"column":12},"end":{"line":3542,"column":67}},"1217":{"start":{"line":3544,"column":12},"end":{"line":3546,"column":13}},"1218":{"start":{"line":3545,"column":16},"end":{"line":3545,"column":53}},"1219":{"start":{"line":3548,"column":12},"end":{"line":3550,"column":13}},"1220":{"start":{"line":3549,"column":16},"end":{"line":3549,"column":53}},"1221":{"start":{"line":3552,"column":12},"end":{"line":3559,"column":14}},"1222":{"start":{"line":3563,"column":12},"end":{"line":3563,"column":31}},"1223":{"start":{"line":3584,"column":0},"end":{"line":3656,"column":2}},"1224":{"start":{"line":3598,"column":4},"end":{"line":3598,"column":25}},"1225":{"start":{"line":3600,"column":4},"end":{"line":3600,"column":35}},"1226":{"start":{"line":3602,"column":4},"end":{"line":3602,"column":31}},"1227":{"start":{"line":3604,"column":4},"end":{"line":3604,"column":42}},"1228":{"start":{"line":3606,"column":4},"end":{"line":3608,"column":5}},"1229":{"start":{"line":3607,"column":8},"end":{"line":3607,"column":47}},"1230":{"start":{"line":3609,"column":4},"end":{"line":3609,"column":23}},"1231":{"start":{"line":3611,"column":4},"end":{"line":3613,"column":5}},"1232":{"start":{"line":3612,"column":8},"end":{"line":3612,"column":22}},"1233":{"start":{"line":3614,"column":4},"end":{"line":3614,"column":29}},"1234":{"start":{"line":3616,"column":4},"end":{"line":3618,"column":5}},"1235":{"start":{"line":3617,"column":8},"end":{"line":3617,"column":21}},"1236":{"start":{"line":3619,"column":4},"end":{"line":3619,"column":27}},"1237":{"start":{"line":3621,"column":4},"end":{"line":3623,"column":5}},"1238":{"start":{"line":3622,"column":8},"end":{"line":3622,"column":19}},"1239":{"start":{"line":3624,"column":4},"end":{"line":3624,"column":25}},"1240":{"start":{"line":3626,"column":4},"end":{"line":3628,"column":5}},"1241":{"start":{"line":3627,"column":8},"end":{"line":3627,"column":55}},"1242":{"start":{"line":3629,"column":4},"end":{"line":3629,"column":41}},"1243":{"start":{"line":3631,"column":4},"end":{"line":3633,"column":5}},"1244":{"start":{"line":3632,"column":8},"end":{"line":3632,"column":22}},"1245":{"start":{"line":3634,"column":4},"end":{"line":3634,"column":31}},"1246":{"start":{"line":3636,"column":4},"end":{"line":3638,"column":5}},"1247":{"start":{"line":3637,"column":8},"end":{"line":3637,"column":25}},"1248":{"start":{"line":3639,"column":4},"end":{"line":3639,"column":37}},"1249":{"start":{"line":3641,"column":4},"end":{"line":3643,"column":5}},"1250":{"start":{"line":3642,"column":8},"end":{"line":3642,"column":19}},"1251":{"start":{"line":3644,"column":4},"end":{"line":3644,"column":25}},"1252":{"start":{"line":3646,"column":4},"end":{"line":3648,"column":5}},"1253":{"start":{"line":3647,"column":8},"end":{"line":3647,"column":24}},"1254":{"start":{"line":3649,"column":4},"end":{"line":3649,"column":35}},"1255":{"start":{"line":3651,"column":4},"end":{"line":3653,"column":5}},"1256":{"start":{"line":3652,"column":8},"end":{"line":3652,"column":47}},"1257":{"start":{"line":3654,"column":4},"end":{"line":3654,"column":31}},"1258":{"start":{"line":3662,"column":0},"end":{"line":3662,"column":46}},"1259":{"start":{"line":3663,"column":0},"end":{"line":3663,"column":46}},"1260":{"start":{"line":3664,"column":0},"end":{"line":3664,"column":46}},"1261":{"start":{"line":3665,"column":0},"end":{"line":3665,"column":46}},"1262":{"start":{"line":3666,"column":0},"end":{"line":3666,"column":46}},"1263":{"start":{"line":3667,"column":0},"end":{"line":3667,"column":46}},"1264":{"start":{"line":3672,"column":0},"end":{"line":3718,"column":2}},"1265":{"start":{"line":3674,"column":4},"end":{"line":3674,"column":24}},"1266":{"start":{"line":3676,"column":4},"end":{"line":3713,"column":5}},"1267":{"start":{"line":3677,"column":8},"end":{"line":3680,"column":10}},"1268":{"start":{"line":3681,"column":11},"end":{"line":3713,"column":5}},"1269":{"start":{"line":3682,"column":8},"end":{"line":3684,"column":10}},"1270":{"start":{"line":3685,"column":11},"end":{"line":3713,"column":5}},"1271":{"start":{"line":3686,"column":8},"end":{"line":3692,"column":10}},"1272":{"start":{"line":3693,"column":11},"end":{"line":3713,"column":5}},"1273":{"start":{"line":3694,"column":8},"end":{"line":3699,"column":10}},"1274":{"start":{"line":3700,"column":11},"end":{"line":3713,"column":5}},"1275":{"start":{"line":3701,"column":8},"end":{"line":3706,"column":10}},"1276":{"start":{"line":3707,"column":11},"end":{"line":3713,"column":5}},"1277":{"start":{"line":3708,"column":8},"end":{"line":3708,"column":70}},"1278":{"start":{"line":3709,"column":8},"end":{"line":3709,"column":73}},"1279":{"start":{"line":3711,"column":8},"end":{"line":3711,"column":70}},"1280":{"start":{"line":3712,"column":8},"end":{"line":3712,"column":73}},"1281":{"start":{"line":3715,"column":4},"end":{"line":3715,"column":29}},"1282":{"start":{"line":3717,"column":4},"end":{"line":3717,"column":20}},"1283":{"start":{"line":3724,"column":0},"end":{"line":3743,"column":2}},"1284":{"start":{"line":3727,"column":4},"end":{"line":3727,"column":30}},"1285":{"start":{"line":3729,"column":4},"end":{"line":3742,"column":5}},"1286":{"start":{"line":3730,"column":8},"end":{"line":3736,"column":10}},"1287":{"start":{"line":3737,"column":8},"end":{"line":3737,"column":35}},"1288":{"start":{"line":3738,"column":8},"end":{"line":3738,"column":38}},"1289":{"start":{"line":3739,"column":8},"end":{"line":3739,"column":36}},"1290":{"start":{"line":3740,"column":8},"end":{"line":3740,"column":51}},"1291":{"start":{"line":3741,"column":8},"end":{"line":3741,"column":35}},"1292":{"start":{"line":3757,"column":0},"end":{"line":3812,"column":2}},"1293":{"start":{"line":3767,"column":4},"end":{"line":3767,"column":17}},"1294":{"start":{"line":3769,"column":4},"end":{"line":3769,"column":23}},"1295":{"start":{"line":3775,"column":4},"end":{"line":3777,"column":5}},"1296":{"start":{"line":3776,"column":8},"end":{"line":3776,"column":26}},"1297":{"start":{"line":3778,"column":4},"end":{"line":3778,"column":37}},"1298":{"start":{"line":3784,"column":4},"end":{"line":3786,"column":5}},"1299":{"start":{"line":3785,"column":8},"end":{"line":3785,"column":33}},"1300":{"start":{"line":3787,"column":4},"end":{"line":3787,"column":45}},"1301":{"start":{"line":3789,"column":4},"end":{"line":3791,"column":5}},"1302":{"start":{"line":3790,"column":8},"end":{"line":3790,"column":112}},"1303":{"start":{"line":3793,"column":4},"end":{"line":3795,"column":5}},"1304":{"start":{"line":3794,"column":8},"end":{"line":3794,"column":29}},"1305":{"start":{"line":3796,"column":4},"end":{"line":3796,"column":45}},"1306":{"start":{"line":3798,"column":4},"end":{"line":3800,"column":5}},"1307":{"start":{"line":3799,"column":8},"end":{"line":3799,"column":30}},"1308":{"start":{"line":3801,"column":4},"end":{"line":3801,"column":47}},"1309":{"start":{"line":3803,"column":4},"end":{"line":3805,"column":5}},"1310":{"start":{"line":3804,"column":8},"end":{"line":3804,"column":26}},"1311":{"start":{"line":3806,"column":4},"end":{"line":3806,"column":37}},"1312":{"start":{"line":3808,"column":4},"end":{"line":3810,"column":5}},"1313":{"start":{"line":3809,"column":8},"end":{"line":3809,"column":25}},"1314":{"start":{"line":3811,"column":4},"end":{"line":3811,"column":35}},"1315":{"start":{"line":3815,"column":0},"end":{"line":3824,"column":2}},"1316":{"start":{"line":3818,"column":4},"end":{"line":3818,"column":19}},"1317":{"start":{"line":3820,"column":4},"end":{"line":3820,"column":29}},"1318":{"start":{"line":3821,"column":4},"end":{"line":3821,"column":36}},"1319":{"start":{"line":3823,"column":4},"end":{"line":3823,"column":31}},"1320":{"start":{"line":3826,"column":0},"end":{"line":3864,"column":2}},"1321":{"start":{"line":3829,"column":4},"end":{"line":3829,"column":41}},"1322":{"start":{"line":3830,"column":4},"end":{"line":3830,"column":23}},"1323":{"start":{"line":3831,"column":4},"end":{"line":3831,"column":24}},"1324":{"start":{"line":3832,"column":4},"end":{"line":3832,"column":19}},"1325":{"start":{"line":3833,"column":4},"end":{"line":3833,"column":52}},"1326":{"start":{"line":3834,"column":4},"end":{"line":3834,"column":28}},"1327":{"start":{"line":3836,"column":4},"end":{"line":3836,"column":67}},"1328":{"start":{"line":3839,"column":4},"end":{"line":3839,"column":75}},"1329":{"start":{"line":3840,"column":4},"end":{"line":3840,"column":75}},"1330":{"start":{"line":3841,"column":4},"end":{"line":3841,"column":75}},"1331":{"start":{"line":3842,"column":4},"end":{"line":3842,"column":75}},"1332":{"start":{"line":3843,"column":4},"end":{"line":3843,"column":75}},"1333":{"start":{"line":3844,"column":4},"end":{"line":3844,"column":75}},"1334":{"start":{"line":3847,"column":4},"end":{"line":3849,"column":5}},"1335":{"start":{"line":3848,"column":8},"end":{"line":3848,"column":101}},"1336":{"start":{"line":3852,"column":4},"end":{"line":3852,"column":159}},"1337":{"start":{"line":3853,"column":4},"end":{"line":3853,"column":84}},"1338":{"start":{"line":3854,"column":4},"end":{"line":3854,"column":30}},"1339":{"start":{"line":3859,"column":4},"end":{"line":3863,"column":7}},"1340":{"start":{"line":3866,"column":0},"end":{"line":3883,"column":2}},"1341":{"start":{"line":3870,"column":4},"end":{"line":3870,"column":132}},"1342":{"start":{"line":3872,"column":4},"end":{"line":3872,"column":38}},"1343":{"start":{"line":3874,"column":4},"end":{"line":3874,"column":35}},"1344":{"start":{"line":3876,"column":4},"end":{"line":3876,"column":30}},"1345":{"start":{"line":3878,"column":4},"end":{"line":3878,"column":50}},"1346":{"start":{"line":3880,"column":4},"end":{"line":3880,"column":29}},"1347":{"start":{"line":3882,"column":4},"end":{"line":3882,"column":46}},"1348":{"start":{"line":3894,"column":0},"end":{"line":3915,"column":2}},"1349":{"start":{"line":3901,"column":4},"end":{"line":3901,"column":17}},"1350":{"start":{"line":3902,"column":4},"end":{"line":3910,"column":5}},"1351":{"start":{"line":3903,"column":8},"end":{"line":3909,"column":9}},"1352":{"start":{"line":3904,"column":12},"end":{"line":3904,"column":34}},"1353":{"start":{"line":3905,"column":15},"end":{"line":3909,"column":9}},"1354":{"start":{"line":3906,"column":12},"end":{"line":3906,"column":31}},"1355":{"start":{"line":3908,"column":12},"end":{"line":3908,"column":36}},"1356":{"start":{"line":3911,"column":4},"end":{"line":3911,"column":21}},"1357":{"start":{"line":3912,"column":4},"end":{"line":3912,"column":33}},"1358":{"start":{"line":3913,"column":4},"end":{"line":3913,"column":33}},"1359":{"start":{"line":3914,"column":4},"end":{"line":3914,"column":31}},"1360":{"start":{"line":3921,"column":0},"end":{"line":3921,"column":38}},"1361":{"start":{"line":3922,"column":0},"end":{"line":3922,"column":35}},"1362":{"start":{"line":3948,"column":0},"end":{"line":4058,"column":2}},"1363":{"start":{"line":3970,"column":4},"end":{"line":3970,"column":17}},"1364":{"start":{"line":3971,"column":4},"end":{"line":3971,"column":21}},"1365":{"start":{"line":3972,"column":4},"end":{"line":3972,"column":23}},"1366":{"start":{"line":3974,"column":4},"end":{"line":3976,"column":5}},"1367":{"start":{"line":3975,"column":8},"end":{"line":3975,"column":56}},"1368":{"start":{"line":3977,"column":4},"end":{"line":3977,"column":23}},"1369":{"start":{"line":3979,"column":4},"end":{"line":3981,"column":5}},"1370":{"start":{"line":3980,"column":8},"end":{"line":3980,"column":56}},"1371":{"start":{"line":3982,"column":4},"end":{"line":3982,"column":23}},"1372":{"start":{"line":3984,"column":4},"end":{"line":3986,"column":5}},"1373":{"start":{"line":3985,"column":8},"end":{"line":3985,"column":46}},"1374":{"start":{"line":3987,"column":4},"end":{"line":3987,"column":25}},"1375":{"start":{"line":3989,"column":4},"end":{"line":3991,"column":5}},"1376":{"start":{"line":3990,"column":8},"end":{"line":3990,"column":20}},"1377":{"start":{"line":3992,"column":4},"end":{"line":3992,"column":21}},"1378":{"start":{"line":3994,"column":4},"end":{"line":3996,"column":5}},"1379":{"start":{"line":3995,"column":8},"end":{"line":3995,"column":53}},"1380":{"start":{"line":3997,"column":4},"end":{"line":3997,"column":25}},"1381":{"start":{"line":3999,"column":4},"end":{"line":4001,"column":5}},"1382":{"start":{"line":4000,"column":8},"end":{"line":4000,"column":53}},"1383":{"start":{"line":4002,"column":4},"end":{"line":4002,"column":27}},"1384":{"start":{"line":4004,"column":4},"end":{"line":4006,"column":5}},"1385":{"start":{"line":4005,"column":8},"end":{"line":4005,"column":58}},"1386":{"start":{"line":4007,"column":4},"end":{"line":4007,"column":31}},"1387":{"start":{"line":4009,"column":4},"end":{"line":4011,"column":5}},"1388":{"start":{"line":4010,"column":8},"end":{"line":4010,"column":72}},"1389":{"start":{"line":4012,"column":4},"end":{"line":4012,"column":31}},"1390":{"start":{"line":4014,"column":4},"end":{"line":4016,"column":5}},"1391":{"start":{"line":4015,"column":8},"end":{"line":4015,"column":60}},"1392":{"start":{"line":4017,"column":4},"end":{"line":4017,"column":35}},"1393":{"start":{"line":4019,"column":4},"end":{"line":4021,"column":5}},"1394":{"start":{"line":4020,"column":8},"end":{"line":4020,"column":23}},"1395":{"start":{"line":4022,"column":4},"end":{"line":4022,"column":33}},"1396":{"start":{"line":4024,"column":4},"end":{"line":4026,"column":5}},"1397":{"start":{"line":4025,"column":8},"end":{"line":4025,"column":46}},"1398":{"start":{"line":4027,"column":4},"end":{"line":4027,"column":25}},"1399":{"start":{"line":4029,"column":4},"end":{"line":4031,"column":5}},"1400":{"start":{"line":4030,"column":8},"end":{"line":4030,"column":31}},"1401":{"start":{"line":4032,"column":4},"end":{"line":4032,"column":43}},"1402":{"start":{"line":4034,"column":4},"end":{"line":4036,"column":5}},"1403":{"start":{"line":4035,"column":8},"end":{"line":4035,"column":21}},"1404":{"start":{"line":4037,"column":4},"end":{"line":4037,"column":23}},"1405":{"start":{"line":4039,"column":4},"end":{"line":4041,"column":5}},"1406":{"start":{"line":4040,"column":8},"end":{"line":4040,"column":21}},"1407":{"start":{"line":4042,"column":4},"end":{"line":4042,"column":27}},"1408":{"start":{"line":4044,"column":4},"end":{"line":4046,"column":5}},"1409":{"start":{"line":4045,"column":8},"end":{"line":4045,"column":28}},"1410":{"start":{"line":4047,"column":4},"end":{"line":4047,"column":43}},"1411":{"start":{"line":4049,"column":4},"end":{"line":4051,"column":5}},"1412":{"start":{"line":4050,"column":8},"end":{"line":4050,"column":33}},"1413":{"start":{"line":4052,"column":4},"end":{"line":4052,"column":45}},"1414":{"start":{"line":4054,"column":4},"end":{"line":4056,"column":5}},"1415":{"start":{"line":4055,"column":8},"end":{"line":4055,"column":59}},"1416":{"start":{"line":4057,"column":4},"end":{"line":4057,"column":29}},"1417":{"start":{"line":4064,"column":0},"end":{"line":4064,"column":44}},"1418":{"start":{"line":4065,"column":0},"end":{"line":4065,"column":42}},"1419":{"start":{"line":4066,"column":0},"end":{"line":4066,"column":43}},"1420":{"start":{"line":4067,"column":0},"end":{"line":4067,"column":48}},"1421":{"start":{"line":4068,"column":0},"end":{"line":4068,"column":54}},"1422":{"start":{"line":4069,"column":0},"end":{"line":4069,"column":44}},"1423":{"start":{"line":4075,"column":0},"end":{"line":4075,"column":41}},"1424":{"start":{"line":4076,"column":0},"end":{"line":4076,"column":54}},"1425":{"start":{"line":4077,"column":0},"end":{"line":4077,"column":54}},"1426":{"start":{"line":4078,"column":0},"end":{"line":4078,"column":66}},"1427":{"start":{"line":4079,"column":0},"end":{"line":4079,"column":66}},"1428":{"start":{"line":4080,"column":0},"end":{"line":4080,"column":59}},"1429":{"start":{"line":4081,"column":0},"end":{"line":4081,"column":57}},"1430":{"start":{"line":4082,"column":0},"end":{"line":4082,"column":57}},"1431":{"start":{"line":4088,"column":0},"end":{"line":4088,"column":47}},"1432":{"start":{"line":4089,"column":0},"end":{"line":4089,"column":54}},"1433":{"start":{"line":4090,"column":0},"end":{"line":4090,"column":56}},"1434":{"start":{"line":4096,"column":0},"end":{"line":4096,"column":46}},"1435":{"start":{"line":4097,"column":0},"end":{"line":4097,"column":61}},"1436":{"start":{"line":4098,"column":0},"end":{"line":4098,"column":60}},"1437":{"start":{"line":4099,"column":0},"end":{"line":4099,"column":45}},"1438":{"start":{"line":4100,"column":0},"end":{"line":4100,"column":60}},"1439":{"start":{"line":4101,"column":0},"end":{"line":4101,"column":59}},"1440":{"start":{"line":4107,"column":0},"end":{"line":4107,"column":45}},"1441":{"start":{"line":4108,"column":0},"end":{"line":4108,"column":36}},"1442":{"start":{"line":4109,"column":0},"end":{"line":4109,"column":37}},"1443":{"start":{"line":4110,"column":0},"end":{"line":4110,"column":46}},"1444":{"start":{"line":4111,"column":0},"end":{"line":4111,"column":35}},"1445":{"start":{"line":4112,"column":0},"end":{"line":4112,"column":44}},"1446":{"start":{"line":4113,"column":0},"end":{"line":4113,"column":37}},"1447":{"start":{"line":4114,"column":0},"end":{"line":4114,"column":42}},"1448":{"start":{"line":4120,"column":0},"end":{"line":4120,"column":47}},"1449":{"start":{"line":4121,"column":0},"end":{"line":4121,"column":45}},"1450":{"start":{"line":4122,"column":0},"end":{"line":4122,"column":46}},"1451":{"start":{"line":4123,"column":0},"end":{"line":4123,"column":45}},"1452":{"start":{"line":4124,"column":0},"end":{"line":4124,"column":48}},"1453":{"start":{"line":4125,"column":0},"end":{"line":4125,"column":46}},"1454":{"start":{"line":4126,"column":0},"end":{"line":4126,"column":47}},"1455":{"start":{"line":4127,"column":0},"end":{"line":4127,"column":45}},"1456":{"start":{"line":4139,"column":0},"end":{"line":4218,"column":2}},"1457":{"start":{"line":4148,"column":4},"end":{"line":4148,"column":26}},"1458":{"start":{"line":4150,"column":4},"end":{"line":4150,"column":25}},"1459":{"start":{"line":4152,"column":4},"end":{"line":4152,"column":62}},"1460":{"start":{"line":4154,"column":4},"end":{"line":4159,"column":5}},"1461":{"start":{"line":4158,"column":8},"end":{"line":4158,"column":68}},"1462":{"start":{"line":4161,"column":4},"end":{"line":4215,"column":5}},"1463":{"start":{"line":4163,"column":8},"end":{"line":4163,"column":39}},"1464":{"start":{"line":4165,"column":8},"end":{"line":4211,"column":10}},"1465":{"start":{"line":4171,"column":16},"end":{"line":4171,"column":68}},"1466":{"start":{"line":4172,"column":16},"end":{"line":4172,"column":85}},"1467":{"start":{"line":4173,"column":16},"end":{"line":4173,"column":97}},"1468":{"start":{"line":4174,"column":16},"end":{"line":4174,"column":93}},"1469":{"start":{"line":4175,"column":16},"end":{"line":4175,"column":87}},"1470":{"start":{"line":4179,"column":16},"end":{"line":4179,"column":107}},"1471":{"start":{"line":4180,"column":16},"end":{"line":4180,"column":95}},"1472":{"start":{"line":4181,"column":16},"end":{"line":4181,"column":95}},"1473":{"start":{"line":4182,"column":16},"end":{"line":4182,"column":91}},"1474":{"start":{"line":4183,"column":16},"end":{"line":4183,"column":91}},"1475":{"start":{"line":4184,"column":16},"end":{"line":4187,"column":18}},"1476":{"start":{"line":4188,"column":16},"end":{"line":4188,"column":109}},"1477":{"start":{"line":4189,"column":16},"end":{"line":4189,"column":99}},"1478":{"start":{"line":4190,"column":16},"end":{"line":4190,"column":87}},"1479":{"start":{"line":4191,"column":16},"end":{"line":4191,"column":87}},"1480":{"start":{"line":4192,"column":16},"end":{"line":4192,"column":107}},"1481":{"start":{"line":4193,"column":16},"end":{"line":4193,"column":52}},"1482":{"start":{"line":4194,"column":16},"end":{"line":4194,"column":36}},"1483":{"start":{"line":4200,"column":16},"end":{"line":4202,"column":17}},"1484":{"start":{"line":4201,"column":20},"end":{"line":4201,"column":79}},"1485":{"start":{"line":4208,"column":16},"end":{"line":4208,"column":95}},"1486":{"start":{"line":4209,"column":16},"end":{"line":4209,"column":36}},"1487":{"start":{"line":4214,"column":8},"end":{"line":4214,"column":28}},"1488":{"start":{"line":4217,"column":4},"end":{"line":4217,"column":25}},"1489":{"start":{"line":4231,"column":0},"end":{"line":4321,"column":2}},"1490":{"start":{"line":4240,"column":4},"end":{"line":4240,"column":25}},"1491":{"start":{"line":4242,"column":4},"end":{"line":4318,"column":5}},"1492":{"start":{"line":4244,"column":8},"end":{"line":4244,"column":34}},"1493":{"start":{"line":4246,"column":8},"end":{"line":4317,"column":9}},"1494":{"start":{"line":4248,"column":12},"end":{"line":4248,"column":59}},"1495":{"start":{"line":4250,"column":12},"end":{"line":4316,"column":13}},"1496":{"start":{"line":4256,"column":16},"end":{"line":4256,"column":39}},"1497":{"start":{"line":4258,"column":16},"end":{"line":4260,"column":17}},"1498":{"start":{"line":4259,"column":20},"end":{"line":4259,"column":45}},"1499":{"start":{"line":4262,"column":16},"end":{"line":4264,"column":17}},"1500":{"start":{"line":4263,"column":20},"end":{"line":4263,"column":42}},"1501":{"start":{"line":4266,"column":16},"end":{"line":4268,"column":17}},"1502":{"start":{"line":4267,"column":20},"end":{"line":4267,"column":44}},"1503":{"start":{"line":4270,"column":16},"end":{"line":4272,"column":17}},"1504":{"start":{"line":4271,"column":20},"end":{"line":4271,"column":52}},"1505":{"start":{"line":4274,"column":16},"end":{"line":4276,"column":17}},"1506":{"start":{"line":4275,"column":20},"end":{"line":4275,"column":48}},"1507":{"start":{"line":4278,"column":16},"end":{"line":4280,"column":17}},"1508":{"start":{"line":4279,"column":20},"end":{"line":4279,"column":43}},"1509":{"start":{"line":4282,"column":16},"end":{"line":4284,"column":17}},"1510":{"start":{"line":4283,"column":20},"end":{"line":4283,"column":45}},"1511":{"start":{"line":4286,"column":16},"end":{"line":4288,"column":17}},"1512":{"start":{"line":4287,"column":20},"end":{"line":4287,"column":48}},"1513":{"start":{"line":4290,"column":16},"end":{"line":4292,"column":17}},"1514":{"start":{"line":4291,"column":20},"end":{"line":4291,"column":40}},"1515":{"start":{"line":4294,"column":16},"end":{"line":4296,"column":17}},"1516":{"start":{"line":4295,"column":20},"end":{"line":4295,"column":49}},"1517":{"start":{"line":4298,"column":16},"end":{"line":4300,"column":17}},"1518":{"start":{"line":4299,"column":20},"end":{"line":4299,"column":49}},"1519":{"start":{"line":4302,"column":16},"end":{"line":4304,"column":17}},"1520":{"start":{"line":4303,"column":20},"end":{"line":4303,"column":66}},"1521":{"start":{"line":4306,"column":16},"end":{"line":4315,"column":18}},"1522":{"start":{"line":4320,"column":4},"end":{"line":4320,"column":23}},"1523":{"start":{"line":4323,"column":0},"end":{"line":4323,"column":32}},"1524":{"start":{"line":4330,"column":0},"end":{"line":4332,"column":2}},"1525":{"start":{"line":4331,"column":4},"end":{"line":4331,"column":52}},"1526":{"start":{"line":4339,"column":0},"end":{"line":4345,"column":2}},"1527":{"start":{"line":4343,"column":4},"end":{"line":4343,"column":29}},"1528":{"start":{"line":4344,"column":4},"end":{"line":4344,"column":21}},"1529":{"start":{"line":4361,"column":0},"end":{"line":4409,"column":2}},"1530":{"start":{"line":4374,"column":4},"end":{"line":4374,"column":17}},"1531":{"start":{"line":4375,"column":4},"end":{"line":4375,"column":17}},"1532":{"start":{"line":4376,"column":4},"end":{"line":4376,"column":17}},"1533":{"start":{"line":4377,"column":4},"end":{"line":4377,"column":39}},"1534":{"start":{"line":4378,"column":4},"end":{"line":4378,"column":21}},"1535":{"start":{"line":4379,"column":4},"end":{"line":4379,"column":21}},"1536":{"start":{"line":4380,"column":4},"end":{"line":4380,"column":21}},"1537":{"start":{"line":4381,"column":4},"end":{"line":4383,"column":5}},"1538":{"start":{"line":4382,"column":8},"end":{"line":4382,"column":61}},"1539":{"start":{"line":4384,"column":4},"end":{"line":4384,"column":23}},"1540":{"start":{"line":4386,"column":4},"end":{"line":4392,"column":5}},"1541":{"start":{"line":4387,"column":8},"end":{"line":4391,"column":10}},"1542":{"start":{"line":4393,"column":4},"end":{"line":4393,"column":37}},"1543":{"start":{"line":4395,"column":4},"end":{"line":4401,"column":5}},"1544":{"start":{"line":4396,"column":8},"end":{"line":4400,"column":9}},"1545":{"start":{"line":4402,"column":4},"end":{"line":4402,"column":39}},"1546":{"start":{"line":4404,"column":4},"end":{"line":4406,"column":5}},"1547":{"start":{"line":4405,"column":8},"end":{"line":4405,"column":43}},"1548":{"start":{"line":4408,"column":4},"end":{"line":4408,"column":25}},"1549":{"start":{"line":4415,"column":0},"end":{"line":4425,"column":2}},"1550":{"start":{"line":4416,"column":4},"end":{"line":4424,"column":6}},"1551":{"start":{"line":4432,"column":0},"end":{"line":4469,"column":2}},"1552":{"start":{"line":4433,"column":4},"end":{"line":4468,"column":7}},"1553":{"start":{"line":4472,"column":0},"end":{"line":4484,"column":2}},"1554":{"start":{"line":4474,"column":4},"end":{"line":4474,"column":15}},"1555":{"start":{"line":4475,"column":4},"end":{"line":4475,"column":15}},"1556":{"start":{"line":4477,"column":4},"end":{"line":4479,"column":5}},"1557":{"start":{"line":4478,"column":8},"end":{"line":4478,"column":19}},"1558":{"start":{"line":4481,"column":4},"end":{"line":4483,"column":5}},"1559":{"start":{"line":4482,"column":8},"end":{"line":4482,"column":19}},"1560":{"start":{"line":4486,"column":0},"end":{"line":4491,"column":2}},"1561":{"start":{"line":4487,"column":4},"end":{"line":4490,"column":6}},"1562":{"start":{"line":4493,"column":0},"end":{"line":4498,"column":2}},"1563":{"start":{"line":4494,"column":4},"end":{"line":4497,"column":22}},"1564":{"start":{"line":4500,"column":0},"end":{"line":4517,"column":2}},"1565":{"start":{"line":4502,"column":4},"end":{"line":4502,"column":15}},"1566":{"start":{"line":4503,"column":4},"end":{"line":4503,"column":15}},"1567":{"start":{"line":4504,"column":4},"end":{"line":4504,"column":15}},"1568":{"start":{"line":4506,"column":4},"end":{"line":4508,"column":5}},"1569":{"start":{"line":4507,"column":8},"end":{"line":4507,"column":19}},"1570":{"start":{"line":4510,"column":4},"end":{"line":4512,"column":5}},"1571":{"start":{"line":4511,"column":8},"end":{"line":4511,"column":19}},"1572":{"start":{"line":4514,"column":4},"end":{"line":4516,"column":5}},"1573":{"start":{"line":4515,"column":8},"end":{"line":4515,"column":19}},"1574":{"start":{"line":4519,"column":0},"end":{"line":4532,"column":2}},"1575":{"start":{"line":4521,"column":4},"end":{"line":4525,"column":5}},"1576":{"start":{"line":4522,"column":8},"end":{"line":4522,"column":22}},"1577":{"start":{"line":4523,"column":8},"end":{"line":4523,"column":22}},"1578":{"start":{"line":4524,"column":8},"end":{"line":4524,"column":22}},"1579":{"start":{"line":4527,"column":4},"end":{"line":4529,"column":5}},"1580":{"start":{"line":4528,"column":8},"end":{"line":4528,"column":77}},"1581":{"start":{"line":4531,"column":4},"end":{"line":4531,"column":16}},"1582":{"start":{"line":4534,"column":0},"end":{"line":4540,"column":2}},"1583":{"start":{"line":4535,"column":4},"end":{"line":4539,"column":6}},"1584":{"start":{"line":4542,"column":0},"end":{"line":4547,"column":2}},"1585":{"start":{"line":4543,"column":4},"end":{"line":4543,"column":17}},"1586":{"start":{"line":4544,"column":4},"end":{"line":4544,"column":17}},"1587":{"start":{"line":4545,"column":4},"end":{"line":4545,"column":17}},"1588":{"start":{"line":4546,"column":4},"end":{"line":4546,"column":16}},"1589":{"start":{"line":4549,"column":0},"end":{"line":4558,"column":2}},"1590":{"start":{"line":4551,"column":4},"end":{"line":4551,"column":52}},"1591":{"start":{"line":4553,"column":4},"end":{"line":4553,"column":22}},"1592":{"start":{"line":4555,"column":4},"end":{"line":4555,"column":53}},"1593":{"start":{"line":4557,"column":4},"end":{"line":4557,"column":25}},"1594":{"start":{"line":4560,"column":0},"end":{"line":4564,"column":2}},"1595":{"start":{"line":4561,"column":4},"end":{"line":4561,"column":22}},"1596":{"start":{"line":4562,"column":4},"end":{"line":4562,"column":22}},"1597":{"start":{"line":4563,"column":4},"end":{"line":4563,"column":48}},"1598":{"start":{"line":4566,"column":0},"end":{"line":4571,"column":2}},"1599":{"start":{"line":4568,"column":4},"end":{"line":4568,"column":63}},"1600":{"start":{"line":4570,"column":4},"end":{"line":4570,"column":32}},"1601":{"start":{"line":4573,"column":0},"end":{"line":4578,"column":2}},"1602":{"start":{"line":4574,"column":4},"end":{"line":4574,"column":18}},"1603":{"start":{"line":4575,"column":4},"end":{"line":4575,"column":18}},"1604":{"start":{"line":4576,"column":4},"end":{"line":4576,"column":18}},"1605":{"start":{"line":4577,"column":4},"end":{"line":4577,"column":16}},"1606":{"start":{"line":4580,"column":0},"end":{"line":4582,"column":2}},"1607":{"start":{"line":4581,"column":4},"end":{"line":4581,"column":63}},"1608":{"start":{"line":4584,"column":0},"end":{"line":4590,"column":2}},"1609":{"start":{"line":4585,"column":4},"end":{"line":4589,"column":6}},"1610":{"start":{"line":4592,"column":0},"end":{"line":4609,"column":2}},"1611":{"start":{"line":4593,"column":4},"end":{"line":4607,"column":5}},"1612":{"start":{"line":4594,"column":8},"end":{"line":4594,"column":22}},"1613":{"start":{"line":4595,"column":8},"end":{"line":4595,"column":22}},"1614":{"start":{"line":4596,"column":8},"end":{"line":4596,"column":22}},"1615":{"start":{"line":4597,"column":11},"end":{"line":4607,"column":5}},"1616":{"start":{"line":4598,"column":8},"end":{"line":4598,"column":83}},"1617":{"start":{"line":4599,"column":8},"end":{"line":4599,"column":83}},"1618":{"start":{"line":4600,"column":8},"end":{"line":4600,"column":83}},"1619":{"start":{"line":4601,"column":8},"end":{"line":4601,"column":19}},"1620":{"start":{"line":4602,"column":8},"end":{"line":4602,"column":19}},"1621":{"start":{"line":4603,"column":8},"end":{"line":4603,"column":19}},"1622":{"start":{"line":4605,"column":8},"end":{"line":4605,"column":70}},"1623":{"start":{"line":4606,"column":8},"end":{"line":4606,"column":43}},"1624":{"start":{"line":4608,"column":4},"end":{"line":4608,"column":16}},"1625":{"start":{"line":4612,"column":0},"end":{"line":4614,"column":2}},"1626":{"start":{"line":4613,"column":4},"end":{"line":4613,"column":60}},"1627":{"start":{"line":4616,"column":0},"end":{"line":4633,"column":2}},"1628":{"start":{"line":4618,"column":4},"end":{"line":4618,"column":27}},"1629":{"start":{"line":4620,"column":4},"end":{"line":4620,"column":28}},"1630":{"start":{"line":4622,"column":4},"end":{"line":4624,"column":5}},"1631":{"start":{"line":4623,"column":8},"end":{"line":4623,"column":20}},"1632":{"start":{"line":4626,"column":4},"end":{"line":4626,"column":38}},"1633":{"start":{"line":4628,"column":4},"end":{"line":4628,"column":24}},"1634":{"start":{"line":4629,"column":4},"end":{"line":4629,"column":24}},"1635":{"start":{"line":4630,"column":4},"end":{"line":4630,"column":24}},"1636":{"start":{"line":4632,"column":4},"end":{"line":4632,"column":16}},"1637":{"start":{"line":4635,"column":0},"end":{"line":4657,"column":2}},"1638":{"start":{"line":4637,"column":4},"end":{"line":4637,"column":15}},"1639":{"start":{"line":4638,"column":4},"end":{"line":4638,"column":15}},"1640":{"start":{"line":4639,"column":4},"end":{"line":4639,"column":15}},"1641":{"start":{"line":4640,"column":4},"end":{"line":4640,"column":15}},"1642":{"start":{"line":4642,"column":4},"end":{"line":4644,"column":5}},"1643":{"start":{"line":4643,"column":8},"end":{"line":4643,"column":19}},"1644":{"start":{"line":4646,"column":4},"end":{"line":4648,"column":5}},"1645":{"start":{"line":4647,"column":8},"end":{"line":4647,"column":19}},"1646":{"start":{"line":4650,"column":4},"end":{"line":4652,"column":5}},"1647":{"start":{"line":4651,"column":8},"end":{"line":4651,"column":19}},"1648":{"start":{"line":4654,"column":4},"end":{"line":4656,"column":5}},"1649":{"start":{"line":4655,"column":8},"end":{"line":4655,"column":19}},"1650":{"start":{"line":4659,"column":0},"end":{"line":4664,"column":2}},"1651":{"start":{"line":4660,"column":4},"end":{"line":4660,"column":18}},"1652":{"start":{"line":4661,"column":4},"end":{"line":4661,"column":18}},"1653":{"start":{"line":4662,"column":4},"end":{"line":4662,"column":18}},"1654":{"start":{"line":4663,"column":4},"end":{"line":4663,"column":16}},"1655":{"start":{"line":4666,"column":0},"end":{"line":4673,"column":2}},"1656":{"start":{"line":4667,"column":4},"end":{"line":4672,"column":6}},"1657":{"start":{"line":4675,"column":0},"end":{"line":4693,"column":2}},"1658":{"start":{"line":4676,"column":4},"end":{"line":4692,"column":5}},"1659":{"start":{"line":4677,"column":8},"end":{"line":4677,"column":22}},"1660":{"start":{"line":4678,"column":8},"end":{"line":4678,"column":22}},"1661":{"start":{"line":4679,"column":8},"end":{"line":4679,"column":22}},"1662":{"start":{"line":4680,"column":11},"end":{"line":4692,"column":5}},"1663":{"start":{"line":4681,"column":8},"end":{"line":4681,"column":106}},"1664":{"start":{"line":4682,"column":8},"end":{"line":4682,"column":106}},"1665":{"start":{"line":4683,"column":8},"end":{"line":4683,"column":106}},"1666":{"start":{"line":4684,"column":8},"end":{"line":4684,"column":106}},"1667":{"start":{"line":4685,"column":8},"end":{"line":4685,"column":19}},"1668":{"start":{"line":4686,"column":8},"end":{"line":4686,"column":19}},"1669":{"start":{"line":4687,"column":8},"end":{"line":4687,"column":19}},"1670":{"start":{"line":4688,"column":8},"end":{"line":4688,"column":19}},"1671":{"start":{"line":4690,"column":8},"end":{"line":4690,"column":70}},"1672":{"start":{"line":4691,"column":8},"end":{"line":4691,"column":43}},"1673":{"start":{"line":4696,"column":0},"end":{"line":4714,"column":2}},"1674":{"start":{"line":4699,"column":4},"end":{"line":4699,"column":27}},"1675":{"start":{"line":4701,"column":4},"end":{"line":4701,"column":65}},"1676":{"start":{"line":4703,"column":4},"end":{"line":4705,"column":5}},"1677":{"start":{"line":4704,"column":8},"end":{"line":4704,"column":20}},"1678":{"start":{"line":4707,"column":4},"end":{"line":4707,"column":38}},"1679":{"start":{"line":4709,"column":4},"end":{"line":4709,"column":24}},"1680":{"start":{"line":4710,"column":4},"end":{"line":4710,"column":24}},"1681":{"start":{"line":4711,"column":4},"end":{"line":4711,"column":24}},"1682":{"start":{"line":4713,"column":4},"end":{"line":4713,"column":16}},"1683":{"start":{"line":4716,"column":0},"end":{"line":4732,"column":2}},"1684":{"start":{"line":4718,"column":4},"end":{"line":4722,"column":5}},"1685":{"start":{"line":4719,"column":8},"end":{"line":4719,"column":22}},"1686":{"start":{"line":4720,"column":8},"end":{"line":4720,"column":22}},"1687":{"start":{"line":4721,"column":8},"end":{"line":4721,"column":22}},"1688":{"start":{"line":4724,"column":4},"end":{"line":4729,"column":5}},"1689":{"start":{"line":4725,"column":8},"end":{"line":4725,"column":22}},"1690":{"start":{"line":4726,"column":8},"end":{"line":4726,"column":22}},"1691":{"start":{"line":4727,"column":8},"end":{"line":4727,"column":22}},"1692":{"start":{"line":4728,"column":8},"end":{"line":4728,"column":22}},"1693":{"start":{"line":4731,"column":4},"end":{"line":4731,"column":16}},"1694":{"start":{"line":4734,"column":0},"end":{"line":4736,"column":2}},"1695":{"start":{"line":4735,"column":4},"end":{"line":4735,"column":22}},"1696":{"start":{"line":4738,"column":0},"end":{"line":4757,"column":2}},"1697":{"start":{"line":4740,"column":4},"end":{"line":4747,"column":5}},"1698":{"start":{"line":4741,"column":8},"end":{"line":4746,"column":9}},"1699":{"start":{"line":4749,"column":4},"end":{"line":4752,"column":5}},"1700":{"start":{"line":4750,"column":8},"end":{"line":4750,"column":59}},"1701":{"start":{"line":4751,"column":8},"end":{"line":4751,"column":62}},"1702":{"start":{"line":4754,"column":4},"end":{"line":4754,"column":30}},"1703":{"start":{"line":4756,"column":4},"end":{"line":4756,"column":16}},"1704":{"start":{"line":4759,"column":0},"end":{"line":4768,"column":2}},"1705":{"start":{"line":4761,"column":4},"end":{"line":4761,"column":21}},"1706":{"start":{"line":4763,"column":4},"end":{"line":4765,"column":5}},"1707":{"start":{"line":4764,"column":8},"end":{"line":4764,"column":45}},"1708":{"start":{"line":4767,"column":4},"end":{"line":4767,"column":19}},"1709":{"start":{"line":4770,"column":0},"end":{"line":4813,"column":2}},"1710":{"start":{"line":4774,"column":4},"end":{"line":4774,"column":23}},"1711":{"start":{"line":4776,"column":4},"end":{"line":4776,"column":74}},"1712":{"start":{"line":4778,"column":4},"end":{"line":4778,"column":25}},"1713":{"start":{"line":4780,"column":4},"end":{"line":4780,"column":36}},"1714":{"start":{"line":4782,"column":4},"end":{"line":4782,"column":25}},"1715":{"start":{"line":4784,"column":4},"end":{"line":4799,"column":5}},"1716":{"start":{"line":4786,"column":8},"end":{"line":4786,"column":21}},"1717":{"start":{"line":4788,"column":8},"end":{"line":4790,"column":9}},"1718":{"start":{"line":4789,"column":12},"end":{"line":4789,"column":72}},"1719":{"start":{"line":4792,"column":8},"end":{"line":4792,"column":41}},"1720":{"start":{"line":4794,"column":8},"end":{"line":4798,"column":9}},"1721":{"start":{"line":4796,"column":12},"end":{"line":4796,"column":39}},"1722":{"start":{"line":4797,"column":12},"end":{"line":4797,"column":46}},"1723":{"start":{"line":4801,"column":4},"end":{"line":4801,"column":33}},"1724":{"start":{"line":4805,"column":4},"end":{"line":4805,"column":83}},"1725":{"start":{"line":4807,"column":4},"end":{"line":4809,"column":5}},"1726":{"start":{"line":4808,"column":8},"end":{"line":4808,"column":70}},"1727":{"start":{"line":4815,"column":0},"end":{"line":4857,"column":2}},"1728":{"start":{"line":4819,"column":4},"end":{"line":4819,"column":23}},"1729":{"start":{"line":4821,"column":4},"end":{"line":4821,"column":74}},"1730":{"start":{"line":4823,"column":4},"end":{"line":4823,"column":25}},"1731":{"start":{"line":4825,"column":4},"end":{"line":4825,"column":36}},"1732":{"start":{"line":4827,"column":4},"end":{"line":4827,"column":25}},"1733":{"start":{"line":4829,"column":4},"end":{"line":4843,"column":5}},"1734":{"start":{"line":4831,"column":8},"end":{"line":4831,"column":21}},"1735":{"start":{"line":4833,"column":8},"end":{"line":4835,"column":9}},"1736":{"start":{"line":4834,"column":12},"end":{"line":4834,"column":72}},"1737":{"start":{"line":4837,"column":8},"end":{"line":4837,"column":41}},"1738":{"start":{"line":4839,"column":8},"end":{"line":4842,"column":9}},"1739":{"start":{"line":4840,"column":12},"end":{"line":4840,"column":39}},"1740":{"start":{"line":4841,"column":12},"end":{"line":4841,"column":46}},"1741":{"start":{"line":4845,"column":4},"end":{"line":4845,"column":33}},"1742":{"start":{"line":4849,"column":4},"end":{"line":4849,"column":83}},"1743":{"start":{"line":4851,"column":4},"end":{"line":4853,"column":5}},"1744":{"start":{"line":4852,"column":8},"end":{"line":4852,"column":70}},"1745":{"start":{"line":4860,"column":0},"end":{"line":4879,"column":2}},"1746":{"start":{"line":4862,"column":4},"end":{"line":4862,"column":36}},"1747":{"start":{"line":4864,"column":4},"end":{"line":4864,"column":63}},"1748":{"start":{"line":4866,"column":4},"end":{"line":4866,"column":75}},"1749":{"start":{"line":4868,"column":4},"end":{"line":4868,"column":62}},"1750":{"start":{"line":4869,"column":4},"end":{"line":4869,"column":62}},"1751":{"start":{"line":4870,"column":4},"end":{"line":4870,"column":62}},"1752":{"start":{"line":4872,"column":4},"end":{"line":4872,"column":77}},"1753":{"start":{"line":4874,"column":4},"end":{"line":4878,"column":5}},"1754":{"start":{"line":4875,"column":8},"end":{"line":4875,"column":85}},"1755":{"start":{"line":4876,"column":8},"end":{"line":4876,"column":65}},"1756":{"start":{"line":4877,"column":8},"end":{"line":4877,"column":85}},"1757":{"start":{"line":4881,"column":0},"end":{"line":4918,"column":2}},"1758":{"start":{"line":4883,"column":4},"end":{"line":4883,"column":33}},"1759":{"start":{"line":4884,"column":4},"end":{"line":4884,"column":33}},"1760":{"start":{"line":4885,"column":4},"end":{"line":4885,"column":33}},"1761":{"start":{"line":4887,"column":4},"end":{"line":4887,"column":33}},"1762":{"start":{"line":4888,"column":4},"end":{"line":4888,"column":33}},"1763":{"start":{"line":4889,"column":4},"end":{"line":4889,"column":33}},"1764":{"start":{"line":4891,"column":4},"end":{"line":4911,"column":5}},"1765":{"start":{"line":4892,"column":8},"end":{"line":4894,"column":9}},"1766":{"start":{"line":4893,"column":12},"end":{"line":4893,"column":37}},"1767":{"start":{"line":4895,"column":8},"end":{"line":4897,"column":9}},"1768":{"start":{"line":4896,"column":12},"end":{"line":4896,"column":37}},"1769":{"start":{"line":4898,"column":8},"end":{"line":4900,"column":9}},"1770":{"start":{"line":4899,"column":12},"end":{"line":4899,"column":37}},"1771":{"start":{"line":4902,"column":8},"end":{"line":4904,"column":9}},"1772":{"start":{"line":4903,"column":12},"end":{"line":4903,"column":37}},"1773":{"start":{"line":4905,"column":8},"end":{"line":4907,"column":9}},"1774":{"start":{"line":4906,"column":12},"end":{"line":4906,"column":37}},"1775":{"start":{"line":4908,"column":8},"end":{"line":4910,"column":9}},"1776":{"start":{"line":4909,"column":12},"end":{"line":4909,"column":37}},"1777":{"start":{"line":4913,"column":4},"end":{"line":4917,"column":5}},"1778":{"start":{"line":4920,"column":0},"end":{"line":4936,"column":2}},"1779":{"start":{"line":4921,"column":4},"end":{"line":4921,"column":21}},"1780":{"start":{"line":4922,"column":4},"end":{"line":4922,"column":21}},"1781":{"start":{"line":4923,"column":4},"end":{"line":4923,"column":21}},"1782":{"start":{"line":4925,"column":4},"end":{"line":4929,"column":5}},"1783":{"start":{"line":4926,"column":8},"end":{"line":4926,"column":38}},"1784":{"start":{"line":4927,"column":8},"end":{"line":4927,"column":38}},"1785":{"start":{"line":4928,"column":8},"end":{"line":4928,"column":38}},"1786":{"start":{"line":4931,"column":4},"end":{"line":4935,"column":6}},"1787":{"start":{"line":4938,"column":0},"end":{"line":4947,"column":2}},"1788":{"start":{"line":4940,"column":4},"end":{"line":4944,"column":5}},"1789":{"start":{"line":4941,"column":8},"end":{"line":4941,"column":32}},"1790":{"start":{"line":4942,"column":8},"end":{"line":4942,"column":32}},"1791":{"start":{"line":4943,"column":8},"end":{"line":4943,"column":32}},"1792":{"start":{"line":4946,"column":4},"end":{"line":4946,"column":16}},"1793":{"start":{"line":4950,"column":0},"end":{"line":4957,"column":2}},"1794":{"start":{"line":4952,"column":4},"end":{"line":4952,"column":55}},"1795":{"start":{"line":4954,"column":4},"end":{"line":4956,"column":5}},"1796":{"start":{"line":4955,"column":8},"end":{"line":4955,"column":54}},"1797":{"start":{"line":4965,"column":0},"end":{"line":4971,"column":2}},"1798":{"start":{"line":4969,"column":4},"end":{"line":4969,"column":29}},"1799":{"start":{"line":4970,"column":4},"end":{"line":4970,"column":35}},"1800":{"start":{"line":4983,"column":0},"end":{"line":5030,"column":2}},"1801":{"start":{"line":4993,"column":4},"end":{"line":4993,"column":17}},"1802":{"start":{"line":4995,"column":4},"end":{"line":4995,"column":21}},"1803":{"start":{"line":4997,"column":4},"end":{"line":4999,"column":5}},"1804":{"start":{"line":4998,"column":8},"end":{"line":4998,"column":54}},"1805":{"start":{"line":5000,"column":4},"end":{"line":5000,"column":27}},"1806":{"start":{"line":5002,"column":4},"end":{"line":5008,"column":5}},"1807":{"start":{"line":5003,"column":8},"end":{"line":5007,"column":10}},"1808":{"start":{"line":5009,"column":4},"end":{"line":5009,"column":33}},"1809":{"start":{"line":5011,"column":4},"end":{"line":5017,"column":5}},"1810":{"start":{"line":5012,"column":8},"end":{"line":5016,"column":10}},"1811":{"start":{"line":5018,"column":4},"end":{"line":5018,"column":25}},"1812":{"start":{"line":5020,"column":4},"end":{"line":5022,"column":5}},"1813":{"start":{"line":5021,"column":8},"end":{"line":5021,"column":25}},"1814":{"start":{"line":5023,"column":4},"end":{"line":5023,"column":35}},"1815":{"start":{"line":5025,"column":4},"end":{"line":5025,"column":25}},"1816":{"start":{"line":5027,"column":4},"end":{"line":5027,"column":35}},"1817":{"start":{"line":5029,"column":4},"end":{"line":5029,"column":42}},"1818":{"start":{"line":5036,"column":0},"end":{"line":5051,"column":2}},"1819":{"start":{"line":5038,"column":4},"end":{"line":5038,"column":52}},"1820":{"start":{"line":5040,"column":4},"end":{"line":5040,"column":51}},"1821":{"start":{"line":5042,"column":4},"end":{"line":5042,"column":43}},"1822":{"start":{"line":5044,"column":4},"end":{"line":5044,"column":40}},"1823":{"start":{"line":5045,"column":4},"end":{"line":5045,"column":40}},"1824":{"start":{"line":5046,"column":4},"end":{"line":5046,"column":40}},"1825":{"start":{"line":5048,"column":4},"end":{"line":5048,"column":30}},"1826":{"start":{"line":5050,"column":4},"end":{"line":5050,"column":20}},"1827":{"start":{"line":5058,"column":0},"end":{"line":5062,"column":2}},"1828":{"start":{"line":5061,"column":4},"end":{"line":5061,"column":46}},"1829":{"start":{"line":5069,"column":0},"end":{"line":5073,"column":2}},"1830":{"start":{"line":5072,"column":4},"end":{"line":5072,"column":53}},"1831":{"start":{"line":5075,"column":0},"end":{"line":5095,"column":2}},"1832":{"start":{"line":5082,"column":4},"end":{"line":5082,"column":39}},"1833":{"start":{"line":5083,"column":4},"end":{"line":5088,"column":5}},"1834":{"start":{"line":5085,"column":8},"end":{"line":5085,"column":37}},"1835":{"start":{"line":5086,"column":8},"end":{"line":5086,"column":32}},"1836":{"start":{"line":5087,"column":8},"end":{"line":5087,"column":15}},"1837":{"start":{"line":5090,"column":4},"end":{"line":5090,"column":52}},"1838":{"start":{"line":5092,"column":4},"end":{"line":5092,"column":52}},"1839":{"start":{"line":5094,"column":4},"end":{"line":5094,"column":28}},"1840":{"start":{"line":5097,"column":0},"end":{"line":5113,"column":2}},"1841":{"start":{"line":5101,"column":4},"end":{"line":5111,"column":5}},"1842":{"start":{"line":5103,"column":8},"end":{"line":5106,"column":10}},"1843":{"start":{"line":5110,"column":8},"end":{"line":5110,"column":20}},"1844":{"start":{"line":5125,"column":0},"end":{"line":5220,"column":2}},"1845":{"start":{"line":5133,"column":4},"end":{"line":5133,"column":31}},"1846":{"start":{"line":5134,"column":4},"end":{"line":5134,"column":35}},"1847":{"start":{"line":5136,"column":4},"end":{"line":5138,"column":5}},"1848":{"start":{"line":5137,"column":8},"end":{"line":5137,"column":26}},"1849":{"start":{"line":5140,"column":4},"end":{"line":5142,"column":5}},"1850":{"start":{"line":5141,"column":8},"end":{"line":5141,"column":55}},"1851":{"start":{"line":5144,"column":4},"end":{"line":5146,"column":5}},"1852":{"start":{"line":5145,"column":8},"end":{"line":5145,"column":22}},"1853":{"start":{"line":5148,"column":4},"end":{"line":5150,"column":5}},"1854":{"start":{"line":5149,"column":8},"end":{"line":5149,"column":34}},"1855":{"start":{"line":5152,"column":4},"end":{"line":5152,"column":60}},"1856":{"start":{"line":5154,"column":4},"end":{"line":5161,"column":6}},"1857":{"start":{"line":5163,"column":4},"end":{"line":5171,"column":5}},"1858":{"start":{"line":5164,"column":8},"end":{"line":5170,"column":10}},"1859":{"start":{"line":5173,"column":4},"end":{"line":5213,"column":5}},"1860":{"start":{"line":5174,"column":8},"end":{"line":5174,"column":59}},"1861":{"start":{"line":5175,"column":8},"end":{"line":5175,"column":63}},"1862":{"start":{"line":5176,"column":8},"end":{"line":5176,"column":63}},"1863":{"start":{"line":5178,"column":8},"end":{"line":5184,"column":10}},"1864":{"start":{"line":5188,"column":8},"end":{"line":5192,"column":29}},"1865":{"start":{"line":5195,"column":8},"end":{"line":5195,"column":53}},"1866":{"start":{"line":5196,"column":8},"end":{"line":5196,"column":57}},"1867":{"start":{"line":5198,"column":8},"end":{"line":5211,"column":10}},"1868":{"start":{"line":5212,"column":8},"end":{"line":5212,"column":35}},"1869":{"start":{"line":5215,"column":4},"end":{"line":5215,"column":36}},"1870":{"start":{"line":5216,"column":4},"end":{"line":5216,"column":36}},"1871":{"start":{"line":5217,"column":4},"end":{"line":5217,"column":36}},"1872":{"start":{"line":5219,"column":4},"end":{"line":5219,"column":25}},"1873":{"start":{"line":5232,"column":0},"end":{"line":5317,"column":2}},"1874":{"start":{"line":5240,"column":4},"end":{"line":5240,"column":31}},"1875":{"start":{"line":5241,"column":4},"end":{"line":5241,"column":35}},"1876":{"start":{"line":5243,"column":4},"end":{"line":5245,"column":5}},"1877":{"start":{"line":5244,"column":8},"end":{"line":5244,"column":26}},"1878":{"start":{"line":5247,"column":4},"end":{"line":5249,"column":5}},"1879":{"start":{"line":5248,"column":8},"end":{"line":5248,"column":55}},"1880":{"start":{"line":5251,"column":4},"end":{"line":5253,"column":5}},"1881":{"start":{"line":5252,"column":8},"end":{"line":5252,"column":22}},"1882":{"start":{"line":5255,"column":4},"end":{"line":5257,"column":5}},"1883":{"start":{"line":5256,"column":8},"end":{"line":5256,"column":34}},"1884":{"start":{"line":5260,"column":4},"end":{"line":5260,"column":60}},"1885":{"start":{"line":5261,"column":4},"end":{"line":5268,"column":6}},"1886":{"start":{"line":5270,"column":4},"end":{"line":5273,"column":5}},"1887":{"start":{"line":5271,"column":8},"end":{"line":5271,"column":62}},"1888":{"start":{"line":5272,"column":8},"end":{"line":5272,"column":100}},"1889":{"start":{"line":5275,"column":4},"end":{"line":5310,"column":5}},"1890":{"start":{"line":5276,"column":8},"end":{"line":5276,"column":57}},"1891":{"start":{"line":5278,"column":8},"end":{"line":5278,"column":25}},"1892":{"start":{"line":5279,"column":8},"end":{"line":5279,"column":25}},"1893":{"start":{"line":5280,"column":8},"end":{"line":5280,"column":25}},"1894":{"start":{"line":5282,"column":8},"end":{"line":5282,"column":77}},"1895":{"start":{"line":5285,"column":8},"end":{"line":5289,"column":29}},"1896":{"start":{"line":5291,"column":8},"end":{"line":5291,"column":69}},"1897":{"start":{"line":5292,"column":8},"end":{"line":5296,"column":10}},"1898":{"start":{"line":5298,"column":8},"end":{"line":5307,"column":10}},"1899":{"start":{"line":5309,"column":8},"end":{"line":5309,"column":35}},"1900":{"start":{"line":5312,"column":4},"end":{"line":5312,"column":36}},"1901":{"start":{"line":5313,"column":4},"end":{"line":5313,"column":36}},"1902":{"start":{"line":5314,"column":4},"end":{"line":5314,"column":36}},"1903":{"start":{"line":5316,"column":4},"end":{"line":5316,"column":25}},"1904":{"start":{"line":5330,"column":0},"end":{"line":5419,"column":2}},"1905":{"start":{"line":5339,"column":4},"end":{"line":5339,"column":31}},"1906":{"start":{"line":5340,"column":4},"end":{"line":5340,"column":35}},"1907":{"start":{"line":5342,"column":4},"end":{"line":5344,"column":5}},"1908":{"start":{"line":5343,"column":8},"end":{"line":5343,"column":17}},"1909":{"start":{"line":5346,"column":4},"end":{"line":5348,"column":5}},"1910":{"start":{"line":5347,"column":8},"end":{"line":5347,"column":22}},"1911":{"start":{"line":5350,"column":4},"end":{"line":5352,"column":5}},"1912":{"start":{"line":5351,"column":8},"end":{"line":5351,"column":41}},"1913":{"start":{"line":5354,"column":4},"end":{"line":5354,"column":27}},"1914":{"start":{"line":5355,"column":4},"end":{"line":5355,"column":53}},"1915":{"start":{"line":5356,"column":4},"end":{"line":5356,"column":51}},"1916":{"start":{"line":5357,"column":4},"end":{"line":5357,"column":59}},"1917":{"start":{"line":5358,"column":4},"end":{"line":5358,"column":108}},"1918":{"start":{"line":5360,"column":4},"end":{"line":5360,"column":19}},"1919":{"start":{"line":5362,"column":4},"end":{"line":5362,"column":22}},"1920":{"start":{"line":5363,"column":4},"end":{"line":5363,"column":22}},"1921":{"start":{"line":5365,"column":4},"end":{"line":5418,"column":5}},"1922":{"start":{"line":5366,"column":8},"end":{"line":5402,"column":9}},"1923":{"start":{"line":5368,"column":12},"end":{"line":5368,"column":28}},"1924":{"start":{"line":5370,"column":12},"end":{"line":5370,"column":81}},"1925":{"start":{"line":5372,"column":12},"end":{"line":5376,"column":15}},"1926":{"start":{"line":5378,"column":12},"end":{"line":5378,"column":35}},"1927":{"start":{"line":5379,"column":12},"end":{"line":5379,"column":38}},"1928":{"start":{"line":5380,"column":12},"end":{"line":5380,"column":36}},"1929":{"start":{"line":5381,"column":12},"end":{"line":5381,"column":51}},"1930":{"start":{"line":5382,"column":12},"end":{"line":5382,"column":35}},"1931":{"start":{"line":5384,"column":12},"end":{"line":5387,"column":15}},"1932":{"start":{"line":5388,"column":12},"end":{"line":5388,"column":37}},"1933":{"start":{"line":5390,"column":12},"end":{"line":5393,"column":15}},"1934":{"start":{"line":5395,"column":12},"end":{"line":5395,"column":26}},"1935":{"start":{"line":5396,"column":12},"end":{"line":5396,"column":26}},"1936":{"start":{"line":5397,"column":12},"end":{"line":5397,"column":31}},"1937":{"start":{"line":5399,"column":12},"end":{"line":5401,"column":13}},"1938":{"start":{"line":5400,"column":16},"end":{"line":5400,"column":29}},"1939":{"start":{"line":5404,"column":8},"end":{"line":5404,"column":50}},"1940":{"start":{"line":5405,"column":8},"end":{"line":5405,"column":39}},"1941":{"start":{"line":5406,"column":8},"end":{"line":5406,"column":39}},"1942":{"start":{"line":5407,"column":8},"end":{"line":5407,"column":39}},"1943":{"start":{"line":5409,"column":8},"end":{"line":5409,"column":56}},"1944":{"start":{"line":5410,"column":8},"end":{"line":5410,"column":56}},"1945":{"start":{"line":5411,"column":8},"end":{"line":5411,"column":56}},"1946":{"start":{"line":5413,"column":8},"end":{"line":5413,"column":40}},"1947":{"start":{"line":5414,"column":8},"end":{"line":5414,"column":40}},"1948":{"start":{"line":5415,"column":8},"end":{"line":5415,"column":40}},"1949":{"start":{"line":5417,"column":8},"end":{"line":5417,"column":25}},"1950":{"start":{"line":5427,"column":0},"end":{"line":5515,"column":2}},"1951":{"start":{"line":5436,"column":4},"end":{"line":5436,"column":28}},"1952":{"start":{"line":5437,"column":4},"end":{"line":5447,"column":5}},"1953":{"start":{"line":5439,"column":8},"end":{"line":5439,"column":55}},"1954":{"start":{"line":5441,"column":8},"end":{"line":5445,"column":11}},"1955":{"start":{"line":5449,"column":4},"end":{"line":5449,"column":27}},"1956":{"start":{"line":5450,"column":4},"end":{"line":5460,"column":5}},"1957":{"start":{"line":5451,"column":8},"end":{"line":5451,"column":50}},"1958":{"start":{"line":5452,"column":8},"end":{"line":5452,"column":50}},"1959":{"start":{"line":5453,"column":8},"end":{"line":5453,"column":50}},"1960":{"start":{"line":5455,"column":8},"end":{"line":5459,"column":11}},"1961":{"start":{"line":5466,"column":4},"end":{"line":5466,"column":28}},"1962":{"start":{"line":5467,"column":4},"end":{"line":5467,"column":22}},"1963":{"start":{"line":5468,"column":4},"end":{"line":5468,"column":19}},"1964":{"start":{"line":5470,"column":4},"end":{"line":5470,"column":27}},"1965":{"start":{"line":5471,"column":4},"end":{"line":5471,"column":51}},"1966":{"start":{"line":5472,"column":4},"end":{"line":5472,"column":24}},"1967":{"start":{"line":5474,"column":4},"end":{"line":5501,"column":5}},"1968":{"start":{"line":5476,"column":8},"end":{"line":5476,"column":37}},"1969":{"start":{"line":5477,"column":8},"end":{"line":5477,"column":37}},"1970":{"start":{"line":5478,"column":8},"end":{"line":5478,"column":37}},"1971":{"start":{"line":5480,"column":8},"end":{"line":5484,"column":9}},"1972":{"start":{"line":5481,"column":12},"end":{"line":5481,"column":92}},"1973":{"start":{"line":5482,"column":12},"end":{"line":5482,"column":45}},"1974":{"start":{"line":5483,"column":12},"end":{"line":5483,"column":26}},"1975":{"start":{"line":5486,"column":8},"end":{"line":5490,"column":9}},"1976":{"start":{"line":5487,"column":12},"end":{"line":5487,"column":92}},"1977":{"start":{"line":5488,"column":12},"end":{"line":5488,"column":45}},"1978":{"start":{"line":5489,"column":12},"end":{"line":5489,"column":26}},"1979":{"start":{"line":5492,"column":8},"end":{"line":5496,"column":9}},"1980":{"start":{"line":5493,"column":12},"end":{"line":5493,"column":92}},"1981":{"start":{"line":5494,"column":12},"end":{"line":5494,"column":45}},"1982":{"start":{"line":5495,"column":12},"end":{"line":5495,"column":26}},"1983":{"start":{"line":5498,"column":8},"end":{"line":5498,"column":79}},"1984":{"start":{"line":5500,"column":8},"end":{"line":5500,"column":25}},"1985":{"start":{"line":5503,"column":4},"end":{"line":5503,"column":120}},"1986":{"start":{"line":5504,"column":4},"end":{"line":5504,"column":56}},"1987":{"start":{"line":5506,"column":4},"end":{"line":5506,"column":25}},"1988":{"start":{"line":5507,"column":4},"end":{"line":5507,"column":28}},"1989":{"start":{"line":5510,"column":4},"end":{"line":5512,"column":5}},"1990":{"start":{"line":5511,"column":8},"end":{"line":5511,"column":75}},"1991":{"start":{"line":5514,"column":4},"end":{"line":5514,"column":16}},"1992":{"start":{"line":5528,"column":0},"end":{"line":5809,"column":2}},"1993":{"start":{"line":5537,"column":4},"end":{"line":5537,"column":35}},"1994":{"start":{"line":5539,"column":4},"end":{"line":5539,"column":31}},"1995":{"start":{"line":5541,"column":4},"end":{"line":5543,"column":5}},"1996":{"start":{"line":5542,"column":8},"end":{"line":5542,"column":22}},"1997":{"start":{"line":5545,"column":4},"end":{"line":5547,"column":5}},"1998":{"start":{"line":5546,"column":8},"end":{"line":5546,"column":33}},"1999":{"start":{"line":5549,"column":4},"end":{"line":5549,"column":30}},"2000":{"start":{"line":5551,"column":4},"end":{"line":5551,"column":65}},"2001":{"start":{"line":5553,"column":4},"end":{"line":5553,"column":34}},"2002":{"start":{"line":5554,"column":4},"end":{"line":5554,"column":29}},"2003":{"start":{"line":5556,"column":4},"end":{"line":5556,"column":23}},"2004":{"start":{"line":5557,"column":4},"end":{"line":5557,"column":29}},"2005":{"start":{"line":5558,"column":4},"end":{"line":5558,"column":28}},"2006":{"start":{"line":5559,"column":4},"end":{"line":5559,"column":38}},"2007":{"start":{"line":5561,"column":4},"end":{"line":5796,"column":5}},"2008":{"start":{"line":5562,"column":8},"end":{"line":5562,"column":44}},"2009":{"start":{"line":5564,"column":8},"end":{"line":5564,"column":29}},"2010":{"start":{"line":5565,"column":8},"end":{"line":5565,"column":51}},"2011":{"start":{"line":5567,"column":8},"end":{"line":5673,"column":9}},"2012":{"start":{"line":5569,"column":12},"end":{"line":5569,"column":47}},"2013":{"start":{"line":5570,"column":12},"end":{"line":5570,"column":51}},"2014":{"start":{"line":5571,"column":12},"end":{"line":5571,"column":51}},"2015":{"start":{"line":5573,"column":12},"end":{"line":5589,"column":33}},"2016":{"start":{"line":5591,"column":12},"end":{"line":5591,"column":65}},"2017":{"start":{"line":5592,"column":12},"end":{"line":5592,"column":53}},"2018":{"start":{"line":5594,"column":12},"end":{"line":5598,"column":14}},"2019":{"start":{"line":5600,"column":12},"end":{"line":5604,"column":14}},"2020":{"start":{"line":5606,"column":12},"end":{"line":5606,"column":62}},"2021":{"start":{"line":5609,"column":12},"end":{"line":5642,"column":13}},"2022":{"start":{"line":5610,"column":16},"end":{"line":5610,"column":72}},"2023":{"start":{"line":5611,"column":16},"end":{"line":5618,"column":18}},"2024":{"start":{"line":5620,"column":16},"end":{"line":5636,"column":18}},"2025":{"start":{"line":5638,"column":16},"end":{"line":5638,"column":43}},"2026":{"start":{"line":5640,"column":16},"end":{"line":5640,"column":51}},"2027":{"start":{"line":5641,"column":16},"end":{"line":5641,"column":57}},"2028":{"start":{"line":5644,"column":12},"end":{"line":5672,"column":13}},"2029":{"start":{"line":5645,"column":16},"end":{"line":5671,"column":19}},"2030":{"start":{"line":5677,"column":8},"end":{"line":5677,"column":30}},"2031":{"start":{"line":5678,"column":8},"end":{"line":5759,"column":9}},"2032":{"start":{"line":5679,"column":12},"end":{"line":5679,"column":44}},"2033":{"start":{"line":5681,"column":12},"end":{"line":5683,"column":13}},"2034":{"start":{"line":5682,"column":16},"end":{"line":5682,"column":25}},"2035":{"start":{"line":5685,"column":12},"end":{"line":5688,"column":14}},"2036":{"start":{"line":5690,"column":12},"end":{"line":5690,"column":63}},"2037":{"start":{"line":5693,"column":12},"end":{"line":5697,"column":14}},"2038":{"start":{"line":5699,"column":12},"end":{"line":5703,"column":14}},"2039":{"start":{"line":5705,"column":12},"end":{"line":5709,"column":14}},"2040":{"start":{"line":5711,"column":12},"end":{"line":5715,"column":14}},"2041":{"start":{"line":5717,"column":12},"end":{"line":5758,"column":13}},"2042":{"start":{"line":5719,"column":16},"end":{"line":5721,"column":17}},"2043":{"start":{"line":5720,"column":20},"end":{"line":5720,"column":29}},"2044":{"start":{"line":5723,"column":16},"end":{"line":5723,"column":54}},"2045":{"start":{"line":5725,"column":16},"end":{"line":5727,"column":17}},"2046":{"start":{"line":5726,"column":20},"end":{"line":5726,"column":29}},"2047":{"start":{"line":5729,"column":16},"end":{"line":5757,"column":17}},"2048":{"start":{"line":5730,"column":20},"end":{"line":5730,"column":71}},"2049":{"start":{"line":5732,"column":20},"end":{"line":5736,"column":22}},"2050":{"start":{"line":5738,"column":20},"end":{"line":5742,"column":22}},"2051":{"start":{"line":5744,"column":20},"end":{"line":5748,"column":22}},"2052":{"start":{"line":5750,"column":20},"end":{"line":5754,"column":22}},"2053":{"start":{"line":5756,"column":20},"end":{"line":5756,"column":50}},"2054":{"start":{"line":5766,"column":8},"end":{"line":5784,"column":9}},"2055":{"start":{"line":5767,"column":12},"end":{"line":5767,"column":42}},"2056":{"start":{"line":5769,"column":12},"end":{"line":5769,"column":136}},"2057":{"start":{"line":5771,"column":12},"end":{"line":5778,"column":13}},"2058":{"start":{"line":5772,"column":16},"end":{"line":5772,"column":49}},"2059":{"start":{"line":5775,"column":16},"end":{"line":5775,"column":72}},"2060":{"start":{"line":5776,"column":16},"end":{"line":5776,"column":37}},"2061":{"start":{"line":5777,"column":16},"end":{"line":5777,"column":49}},"2062":{"start":{"line":5780,"column":12},"end":{"line":5780,"column":49}},"2063":{"start":{"line":5781,"column":12},"end":{"line":5781,"column":58}},"2064":{"start":{"line":5783,"column":12},"end":{"line":5783,"column":74}},"2065":{"start":{"line":5794,"column":8},"end":{"line":5794,"column":45}},"2066":{"start":{"line":5795,"column":8},"end":{"line":5795,"column":47}},"2067":{"start":{"line":5798,"column":4},"end":{"line":5798,"column":43}},"2068":{"start":{"line":5799,"column":4},"end":{"line":5799,"column":56}},"2069":{"start":{"line":5800,"column":4},"end":{"line":5800,"column":82}},"2070":{"start":{"line":5801,"column":4},"end":{"line":5801,"column":54}},"2071":{"start":{"line":5802,"column":4},"end":{"line":5802,"column":79}},"2072":{"start":{"line":5804,"column":4},"end":{"line":5808,"column":6}},"2073":{"start":{"line":5810,"column":0},"end":{"line":5812,"column":1}},"2074":{"start":{"line":5811,"column":4},"end":{"line":5811,"column":29}}},"branchMap":{"1":{"line":1,"type":"if","locations":[{"start":{"line":1,"column":0},"end":{"line":1,"column":0}},{"start":{"line":1,"column":0},"end":{"line":1,"column":0}}]},"2":{"line":5,"type":"if","locations":[{"start":{"line":5,"column":0},"end":{"line":5,"column":0}},{"start":{"line":5,"column":0},"end":{"line":5,"column":0}}]},"3":{"line":9,"type":"if","locations":[{"start":{"line":9,"column":0},"end":{"line":9,"column":0}},{"start":{"line":9,"column":0},"end":{"line":9,"column":0}}]},"4":{"line":10,"type":"if","locations":[{"start":{"line":10,"column":4},"end":{"line":10,"column":4}},{"start":{"line":10,"column":4},"end":{"line":10,"column":4}}]},"5":{"line":60,"type":"if","locations":[{"start":{"line":60,"column":4},"end":{"line":60,"column":4}},{"start":{"line":60,"column":4},"end":{"line":60,"column":4}}]},"6":{"line":65,"type":"if","locations":[{"start":{"line":65,"column":4},"end":{"line":65,"column":4}},{"start":{"line":65,"column":4},"end":{"line":65,"column":4}}]},"7":{"line":70,"type":"if","locations":[{"start":{"line":70,"column":4},"end":{"line":70,"column":4}},{"start":{"line":70,"column":4},"end":{"line":70,"column":4}}]},"8":{"line":75,"type":"if","locations":[{"start":{"line":75,"column":4},"end":{"line":75,"column":4}},{"start":{"line":75,"column":4},"end":{"line":75,"column":4}}]},"9":{"line":80,"type":"if","locations":[{"start":{"line":80,"column":4},"end":{"line":80,"column":4}},{"start":{"line":80,"column":4},"end":{"line":80,"column":4}}]},"10":{"line":85,"type":"if","locations":[{"start":{"line":85,"column":4},"end":{"line":85,"column":4}},{"start":{"line":85,"column":4},"end":{"line":85,"column":4}}]},"11":{"line":90,"type":"if","locations":[{"start":{"line":90,"column":4},"end":{"line":90,"column":4}},{"start":{"line":90,"column":4},"end":{"line":90,"column":4}}]},"12":{"line":113,"type":"if","locations":[{"start":{"line":113,"column":4},"end":{"line":113,"column":4}},{"start":{"line":113,"column":4},"end":{"line":113,"column":4}}]},"13":{"line":118,"type":"if","locations":[{"start":{"line":118,"column":4},"end":{"line":118,"column":4}},{"start":{"line":118,"column":4},"end":{"line":118,"column":4}}]},"14":{"line":123,"type":"if","locations":[{"start":{"line":123,"column":4},"end":{"line":123,"column":4}},{"start":{"line":123,"column":4},"end":{"line":123,"column":4}}]},"15":{"line":130,"type":"if","locations":[{"start":{"line":130,"column":4},"end":{"line":130,"column":4}},{"start":{"line":130,"column":4},"end":{"line":130,"column":4}}]},"16":{"line":140,"type":"if","locations":[{"start":{"line":140,"column":4},"end":{"line":140,"column":4}},{"start":{"line":140,"column":4},"end":{"line":140,"column":4}}]},"17":{"line":149,"type":"if","locations":[{"start":{"line":149,"column":4},"end":{"line":149,"column":4}},{"start":{"line":149,"column":4},"end":{"line":149,"column":4}}]},"18":{"line":151,"type":"if","locations":[{"start":{"line":151,"column":11},"end":{"line":151,"column":11}},{"start":{"line":151,"column":11},"end":{"line":151,"column":11}}]},"19":{"line":153,"type":"if","locations":[{"start":{"line":153,"column":11},"end":{"line":153,"column":11}},{"start":{"line":153,"column":11},"end":{"line":153,"column":11}}]},"20":{"line":212,"type":"if","locations":[{"start":{"line":212,"column":4},"end":{"line":212,"column":4}},{"start":{"line":212,"column":4},"end":{"line":212,"column":4}}]},"21":{"line":247,"type":"if","locations":[{"start":{"line":247,"column":4},"end":{"line":247,"column":4}},{"start":{"line":247,"column":4},"end":{"line":247,"column":4}}]},"22":{"line":297,"type":"binary-expr","locations":[{"start":{"line":297,"column":27},"end":{"line":297,"column":59}},{"start":{"line":297,"column":63},"end":{"line":297,"column":98}},{"start":{"line":297,"column":102},"end":{"line":297,"column":140}}]},"23":{"line":300,"type":"if","locations":[{"start":{"line":300,"column":4},"end":{"line":300,"column":4}},{"start":{"line":300,"column":4},"end":{"line":300,"column":4}}]},"24":{"line":301,"type":"binary-expr","locations":[{"start":{"line":301,"column":42},"end":{"line":301,"column":73}},{"start":{"line":301,"column":77},"end":{"line":301,"column":111}},{"start":{"line":301,"column":115},"end":{"line":301,"column":152}}]},"25":{"line":302,"type":"binary-expr","locations":[{"start":{"line":302,"column":35},"end":{"line":302,"column":59}},{"start":{"line":302,"column":63},"end":{"line":302,"column":90}},{"start":{"line":302,"column":94},"end":{"line":302,"column":124}}]},"26":{"line":322,"type":"if","locations":[{"start":{"line":322,"column":4},"end":{"line":322,"column":4}},{"start":{"line":322,"column":4},"end":{"line":322,"column":4}}]},"27":{"line":333,"type":"if","locations":[{"start":{"line":333,"column":4},"end":{"line":333,"column":4}},{"start":{"line":333,"column":4},"end":{"line":333,"column":4}}]},"28":{"line":360,"type":"if","locations":[{"start":{"line":360,"column":4},"end":{"line":360,"column":4}},{"start":{"line":360,"column":4},"end":{"line":360,"column":4}}]},"29":{"line":366,"type":"if","locations":[{"start":{"line":366,"column":11},"end":{"line":366,"column":11}},{"start":{"line":366,"column":11},"end":{"line":366,"column":11}}]},"30":{"line":373,"type":"if","locations":[{"start":{"line":373,"column":4},"end":{"line":373,"column":4}},{"start":{"line":373,"column":4},"end":{"line":373,"column":4}}]},"31":{"line":379,"type":"if","locations":[{"start":{"line":379,"column":11},"end":{"line":379,"column":11}},{"start":{"line":379,"column":11},"end":{"line":379,"column":11}}]},"32":{"line":386,"type":"if","locations":[{"start":{"line":386,"column":4},"end":{"line":386,"column":4}},{"start":{"line":386,"column":4},"end":{"line":386,"column":4}}]},"33":{"line":390,"type":"if","locations":[{"start":{"line":390,"column":11},"end":{"line":390,"column":11}},{"start":{"line":390,"column":11},"end":{"line":390,"column":11}}]},"34":{"line":412,"type":"if","locations":[{"start":{"line":412,"column":4},"end":{"line":412,"column":4}},{"start":{"line":412,"column":4},"end":{"line":412,"column":4}}]},"35":{"line":413,"type":"binary-expr","locations":[{"start":{"line":413,"column":24},"end":{"line":413,"column":39}},{"start":{"line":413,"column":43},"end":{"line":413,"column":61}},{"start":{"line":413,"column":65},"end":{"line":413,"column":86}},{"start":{"line":413,"column":90},"end":{"line":413,"column":91}}]},"36":{"line":414,"type":"binary-expr","locations":[{"start":{"line":414,"column":24},"end":{"line":414,"column":39}},{"start":{"line":414,"column":43},"end":{"line":414,"column":61}},{"start":{"line":414,"column":65},"end":{"line":414,"column":86}},{"start":{"line":414,"column":90},"end":{"line":414,"column":91}}]},"37":{"line":426,"type":"switch","locations":[{"start":{"line":428,"column":8},"end":{"line":430,"column":18}},{"start":{"line":432,"column":8},"end":{"line":434,"column":18}},{"start":{"line":436,"column":8},"end":{"line":438,"column":18}},{"start":{"line":440,"column":8},"end":{"line":442,"column":18}},{"start":{"line":444,"column":8},"end":{"line":446,"column":18}},{"start":{"line":448,"column":8},"end":{"line":450,"column":18}}]},"38":{"line":459,"type":"switch","locations":[{"start":{"line":461,"column":8},"end":{"line":461,"column":16}},{"start":{"line":462,"column":8},"end":{"line":464,"column":18}},{"start":{"line":466,"column":8},"end":{"line":466,"column":16}},{"start":{"line":467,"column":8},"end":{"line":469,"column":18}},{"start":{"line":471,"column":8},"end":{"line":471,"column":16}},{"start":{"line":472,"column":8},"end":{"line":474,"column":18}},{"start":{"line":476,"column":8},"end":{"line":476,"column":16}},{"start":{"line":477,"column":8},"end":{"line":479,"column":18}},{"start":{"line":481,"column":8},"end":{"line":483,"column":18}},{"start":{"line":485,"column":8},"end":{"line":487,"column":18}}]},"39":{"line":514,"type":"binary-expr","locations":[{"start":{"line":514,"column":47},"end":{"line":514,"column":87}},{"start":{"line":514,"column":91},"end":{"line":514,"column":93}}]},"40":{"line":532,"type":"if","locations":[{"start":{"line":532,"column":8},"end":{"line":532,"column":8}},{"start":{"line":532,"column":8},"end":{"line":532,"column":8}}]},"41":{"line":532,"type":"binary-expr","locations":[{"start":{"line":532,"column":11},"end":{"line":532,"column":16}},{"start":{"line":532,"column":20},"end":{"line":532,"column":37}}]},"42":{"line":544,"type":"if","locations":[{"start":{"line":544,"column":20},"end":{"line":544,"column":20}},{"start":{"line":544,"column":20},"end":{"line":544,"column":20}}]},"43":{"line":545,"type":"if","locations":[{"start":{"line":545,"column":24},"end":{"line":545,"column":24}},{"start":{"line":545,"column":24},"end":{"line":545,"column":24}}]},"44":{"line":555,"type":"if","locations":[{"start":{"line":555,"column":28},"end":{"line":555,"column":28}},{"start":{"line":555,"column":28},"end":{"line":555,"column":28}}]},"45":{"line":557,"type":"if","locations":[{"start":{"line":557,"column":32},"end":{"line":557,"column":32}},{"start":{"line":557,"column":32},"end":{"line":557,"column":32}}]},"46":{"line":558,"type":"if","locations":[{"start":{"line":558,"column":36},"end":{"line":558,"column":36}},{"start":{"line":558,"column":36},"end":{"line":558,"column":36}}]},"47":{"line":564,"type":"if","locations":[{"start":{"line":564,"column":36},"end":{"line":564,"column":36}},{"start":{"line":564,"column":36},"end":{"line":564,"column":36}}]},"48":{"line":589,"type":"binary-expr","locations":[{"start":{"line":589,"column":31},"end":{"line":589,"column":55}},{"start":{"line":589,"column":59},"end":{"line":589,"column":61}}]},"49":{"line":622,"type":"if","locations":[{"start":{"line":622,"column":4},"end":{"line":622,"column":4}},{"start":{"line":622,"column":4},"end":{"line":622,"column":4}}]},"50":{"line":648,"type":"if","locations":[{"start":{"line":648,"column":4},"end":{"line":648,"column":4}},{"start":{"line":648,"column":4},"end":{"line":648,"column":4}}]},"51":{"line":653,"type":"if","locations":[{"start":{"line":653,"column":4},"end":{"line":653,"column":4}},{"start":{"line":653,"column":4},"end":{"line":653,"column":4}}]},"52":{"line":658,"type":"if","locations":[{"start":{"line":658,"column":4},"end":{"line":658,"column":4}},{"start":{"line":658,"column":4},"end":{"line":658,"column":4}}]},"53":{"line":663,"type":"if","locations":[{"start":{"line":663,"column":4},"end":{"line":663,"column":4}},{"start":{"line":663,"column":4},"end":{"line":663,"column":4}}]},"54":{"line":668,"type":"if","locations":[{"start":{"line":668,"column":4},"end":{"line":668,"column":4}},{"start":{"line":668,"column":4},"end":{"line":668,"column":4}}]},"55":{"line":809,"type":"if","locations":[{"start":{"line":809,"column":4},"end":{"line":809,"column":4}},{"start":{"line":809,"column":4},"end":{"line":809,"column":4}}]},"56":{"line":814,"type":"if","locations":[{"start":{"line":814,"column":4},"end":{"line":814,"column":4}},{"start":{"line":814,"column":4},"end":{"line":814,"column":4}}]},"57":{"line":818,"type":"if","locations":[{"start":{"line":818,"column":8},"end":{"line":818,"column":8}},{"start":{"line":818,"column":8},"end":{"line":818,"column":8}}]},"58":{"line":822,"type":"if","locations":[{"start":{"line":822,"column":8},"end":{"line":822,"column":8}},{"start":{"line":822,"column":8},"end":{"line":822,"column":8}}]},"59":{"line":826,"type":"if","locations":[{"start":{"line":826,"column":8},"end":{"line":826,"column":8}},{"start":{"line":826,"column":8},"end":{"line":826,"column":8}}]},"60":{"line":874,"type":"if","locations":[{"start":{"line":874,"column":4},"end":{"line":874,"column":4}},{"start":{"line":874,"column":4},"end":{"line":874,"column":4}}]},"61":{"line":879,"type":"if","locations":[{"start":{"line":879,"column":4},"end":{"line":879,"column":4}},{"start":{"line":879,"column":4},"end":{"line":879,"column":4}}]},"62":{"line":884,"type":"if","locations":[{"start":{"line":884,"column":4},"end":{"line":884,"column":4}},{"start":{"line":884,"column":4},"end":{"line":884,"column":4}}]},"63":{"line":889,"type":"if","locations":[{"start":{"line":889,"column":4},"end":{"line":889,"column":4}},{"start":{"line":889,"column":4},"end":{"line":889,"column":4}}]},"64":{"line":894,"type":"if","locations":[{"start":{"line":894,"column":4},"end":{"line":894,"column":4}},{"start":{"line":894,"column":4},"end":{"line":894,"column":4}}]},"65":{"line":899,"type":"if","locations":[{"start":{"line":899,"column":4},"end":{"line":899,"column":4}},{"start":{"line":899,"column":4},"end":{"line":899,"column":4}}]},"66":{"line":904,"type":"if","locations":[{"start":{"line":904,"column":4},"end":{"line":904,"column":4}},{"start":{"line":904,"column":4},"end":{"line":904,"column":4}}]},"67":{"line":909,"type":"if","locations":[{"start":{"line":909,"column":4},"end":{"line":909,"column":4}},{"start":{"line":909,"column":4},"end":{"line":909,"column":4}}]},"68":{"line":914,"type":"if","locations":[{"start":{"line":914,"column":4},"end":{"line":914,"column":4}},{"start":{"line":914,"column":4},"end":{"line":914,"column":4}}]},"69":{"line":919,"type":"if","locations":[{"start":{"line":919,"column":4},"end":{"line":919,"column":4}},{"start":{"line":919,"column":4},"end":{"line":919,"column":4}}]},"70":{"line":1046,"type":"if","locations":[{"start":{"line":1046,"column":4},"end":{"line":1046,"column":4}},{"start":{"line":1046,"column":4},"end":{"line":1046,"column":4}}]},"71":{"line":1051,"type":"if","locations":[{"start":{"line":1051,"column":4},"end":{"line":1051,"column":4}},{"start":{"line":1051,"column":4},"end":{"line":1051,"column":4}}]},"72":{"line":1056,"type":"if","locations":[{"start":{"line":1056,"column":4},"end":{"line":1056,"column":4}},{"start":{"line":1056,"column":4},"end":{"line":1056,"column":4}}]},"73":{"line":1061,"type":"if","locations":[{"start":{"line":1061,"column":4},"end":{"line":1061,"column":4}},{"start":{"line":1061,"column":4},"end":{"line":1061,"column":4}}]},"74":{"line":1066,"type":"if","locations":[{"start":{"line":1066,"column":4},"end":{"line":1066,"column":4}},{"start":{"line":1066,"column":4},"end":{"line":1066,"column":4}}]},"75":{"line":1084,"type":"if","locations":[{"start":{"line":1084,"column":4},"end":{"line":1084,"column":4}},{"start":{"line":1084,"column":4},"end":{"line":1084,"column":4}}]},"76":{"line":1089,"type":"if","locations":[{"start":{"line":1089,"column":4},"end":{"line":1089,"column":4}},{"start":{"line":1089,"column":4},"end":{"line":1089,"column":4}}]},"77":{"line":1094,"type":"if","locations":[{"start":{"line":1094,"column":4},"end":{"line":1094,"column":4}},{"start":{"line":1094,"column":4},"end":{"line":1094,"column":4}}]},"78":{"line":1099,"type":"if","locations":[{"start":{"line":1099,"column":4},"end":{"line":1099,"column":4}},{"start":{"line":1099,"column":4},"end":{"line":1099,"column":4}}]},"79":{"line":1104,"type":"if","locations":[{"start":{"line":1104,"column":4},"end":{"line":1104,"column":4}},{"start":{"line":1104,"column":4},"end":{"line":1104,"column":4}}]},"80":{"line":1109,"type":"if","locations":[{"start":{"line":1109,"column":4},"end":{"line":1109,"column":4}},{"start":{"line":1109,"column":4},"end":{"line":1109,"column":4}}]},"81":{"line":1114,"type":"if","locations":[{"start":{"line":1114,"column":4},"end":{"line":1114,"column":4}},{"start":{"line":1114,"column":4},"end":{"line":1114,"column":4}}]},"82":{"line":1119,"type":"if","locations":[{"start":{"line":1119,"column":4},"end":{"line":1119,"column":4}},{"start":{"line":1119,"column":4},"end":{"line":1119,"column":4}}]},"83":{"line":1124,"type":"if","locations":[{"start":{"line":1124,"column":4},"end":{"line":1124,"column":4}},{"start":{"line":1124,"column":4},"end":{"line":1124,"column":4}}]},"84":{"line":1129,"type":"if","locations":[{"start":{"line":1129,"column":4},"end":{"line":1129,"column":4}},{"start":{"line":1129,"column":4},"end":{"line":1129,"column":4}}]},"85":{"line":1134,"type":"if","locations":[{"start":{"line":1134,"column":4},"end":{"line":1134,"column":4}},{"start":{"line":1134,"column":4},"end":{"line":1134,"column":4}}]},"86":{"line":1139,"type":"if","locations":[{"start":{"line":1139,"column":4},"end":{"line":1139,"column":4}},{"start":{"line":1139,"column":4},"end":{"line":1139,"column":4}}]},"87":{"line":1144,"type":"if","locations":[{"start":{"line":1144,"column":4},"end":{"line":1144,"column":4}},{"start":{"line":1144,"column":4},"end":{"line":1144,"column":4}}]},"88":{"line":1149,"type":"if","locations":[{"start":{"line":1149,"column":4},"end":{"line":1149,"column":4}},{"start":{"line":1149,"column":4},"end":{"line":1149,"column":4}}]},"89":{"line":1154,"type":"if","locations":[{"start":{"line":1154,"column":4},"end":{"line":1154,"column":4}},{"start":{"line":1154,"column":4},"end":{"line":1154,"column":4}}]},"90":{"line":1159,"type":"if","locations":[{"start":{"line":1159,"column":4},"end":{"line":1159,"column":4}},{"start":{"line":1159,"column":4},"end":{"line":1159,"column":4}}]},"91":{"line":1164,"type":"if","locations":[{"start":{"line":1164,"column":4},"end":{"line":1164,"column":4}},{"start":{"line":1164,"column":4},"end":{"line":1164,"column":4}}]},"92":{"line":1169,"type":"if","locations":[{"start":{"line":1169,"column":4},"end":{"line":1169,"column":4}},{"start":{"line":1169,"column":4},"end":{"line":1169,"column":4}}]},"93":{"line":1174,"type":"if","locations":[{"start":{"line":1174,"column":4},"end":{"line":1174,"column":4}},{"start":{"line":1174,"column":4},"end":{"line":1174,"column":4}}]},"94":{"line":1179,"type":"if","locations":[{"start":{"line":1179,"column":4},"end":{"line":1179,"column":4}},{"start":{"line":1179,"column":4},"end":{"line":1179,"column":4}}]},"95":{"line":1184,"type":"if","locations":[{"start":{"line":1184,"column":4},"end":{"line":1184,"column":4}},{"start":{"line":1184,"column":4},"end":{"line":1184,"column":4}}]},"96":{"line":1189,"type":"if","locations":[{"start":{"line":1189,"column":4},"end":{"line":1189,"column":4}},{"start":{"line":1189,"column":4},"end":{"line":1189,"column":4}}]},"97":{"line":1194,"type":"if","locations":[{"start":{"line":1194,"column":4},"end":{"line":1194,"column":4}},{"start":{"line":1194,"column":4},"end":{"line":1194,"column":4}}]},"98":{"line":1199,"type":"if","locations":[{"start":{"line":1199,"column":4},"end":{"line":1199,"column":4}},{"start":{"line":1199,"column":4},"end":{"line":1199,"column":4}}]},"99":{"line":1204,"type":"if","locations":[{"start":{"line":1204,"column":4},"end":{"line":1204,"column":4}},{"start":{"line":1204,"column":4},"end":{"line":1204,"column":4}}]},"100":{"line":1209,"type":"if","locations":[{"start":{"line":1209,"column":4},"end":{"line":1209,"column":4}},{"start":{"line":1209,"column":4},"end":{"line":1209,"column":4}}]},"101":{"line":1214,"type":"if","locations":[{"start":{"line":1214,"column":4},"end":{"line":1214,"column":4}},{"start":{"line":1214,"column":4},"end":{"line":1214,"column":4}}]},"102":{"line":1219,"type":"if","locations":[{"start":{"line":1219,"column":4},"end":{"line":1219,"column":4}},{"start":{"line":1219,"column":4},"end":{"line":1219,"column":4}}]},"103":{"line":1224,"type":"if","locations":[{"start":{"line":1224,"column":4},"end":{"line":1224,"column":4}},{"start":{"line":1224,"column":4},"end":{"line":1224,"column":4}}]},"104":{"line":1229,"type":"if","locations":[{"start":{"line":1229,"column":4},"end":{"line":1229,"column":4}},{"start":{"line":1229,"column":4},"end":{"line":1229,"column":4}}]},"105":{"line":1234,"type":"if","locations":[{"start":{"line":1234,"column":4},"end":{"line":1234,"column":4}},{"start":{"line":1234,"column":4},"end":{"line":1234,"column":4}}]},"106":{"line":1239,"type":"if","locations":[{"start":{"line":1239,"column":4},"end":{"line":1239,"column":4}},{"start":{"line":1239,"column":4},"end":{"line":1239,"column":4}}]},"107":{"line":1244,"type":"if","locations":[{"start":{"line":1244,"column":4},"end":{"line":1244,"column":4}},{"start":{"line":1244,"column":4},"end":{"line":1244,"column":4}}]},"108":{"line":1249,"type":"if","locations":[{"start":{"line":1249,"column":4},"end":{"line":1249,"column":4}},{"start":{"line":1249,"column":4},"end":{"line":1249,"column":4}}]},"109":{"line":1254,"type":"if","locations":[{"start":{"line":1254,"column":4},"end":{"line":1254,"column":4}},{"start":{"line":1254,"column":4},"end":{"line":1254,"column":4}}]},"110":{"line":1259,"type":"if","locations":[{"start":{"line":1259,"column":4},"end":{"line":1259,"column":4}},{"start":{"line":1259,"column":4},"end":{"line":1259,"column":4}}]},"111":{"line":1264,"type":"if","locations":[{"start":{"line":1264,"column":4},"end":{"line":1264,"column":4}},{"start":{"line":1264,"column":4},"end":{"line":1264,"column":4}}]},"112":{"line":1269,"type":"if","locations":[{"start":{"line":1269,"column":4},"end":{"line":1269,"column":4}},{"start":{"line":1269,"column":4},"end":{"line":1269,"column":4}}]},"113":{"line":1274,"type":"if","locations":[{"start":{"line":1274,"column":4},"end":{"line":1274,"column":4}},{"start":{"line":1274,"column":4},"end":{"line":1274,"column":4}}]},"114":{"line":1279,"type":"if","locations":[{"start":{"line":1279,"column":4},"end":{"line":1279,"column":4}},{"start":{"line":1279,"column":4},"end":{"line":1279,"column":4}}]},"115":{"line":1284,"type":"if","locations":[{"start":{"line":1284,"column":4},"end":{"line":1284,"column":4}},{"start":{"line":1284,"column":4},"end":{"line":1284,"column":4}}]},"116":{"line":1289,"type":"if","locations":[{"start":{"line":1289,"column":4},"end":{"line":1289,"column":4}},{"start":{"line":1289,"column":4},"end":{"line":1289,"column":4}}]},"117":{"line":1294,"type":"if","locations":[{"start":{"line":1294,"column":4},"end":{"line":1294,"column":4}},{"start":{"line":1294,"column":4},"end":{"line":1294,"column":4}}]},"118":{"line":1299,"type":"if","locations":[{"start":{"line":1299,"column":4},"end":{"line":1299,"column":4}},{"start":{"line":1299,"column":4},"end":{"line":1299,"column":4}}]},"119":{"line":1304,"type":"if","locations":[{"start":{"line":1304,"column":4},"end":{"line":1304,"column":4}},{"start":{"line":1304,"column":4},"end":{"line":1304,"column":4}}]},"120":{"line":1309,"type":"if","locations":[{"start":{"line":1309,"column":4},"end":{"line":1309,"column":4}},{"start":{"line":1309,"column":4},"end":{"line":1309,"column":4}}]},"121":{"line":1314,"type":"if","locations":[{"start":{"line":1314,"column":4},"end":{"line":1314,"column":4}},{"start":{"line":1314,"column":4},"end":{"line":1314,"column":4}}]},"122":{"line":1319,"type":"if","locations":[{"start":{"line":1319,"column":4},"end":{"line":1319,"column":4}},{"start":{"line":1319,"column":4},"end":{"line":1319,"column":4}}]},"123":{"line":1324,"type":"if","locations":[{"start":{"line":1324,"column":4},"end":{"line":1324,"column":4}},{"start":{"line":1324,"column":4},"end":{"line":1324,"column":4}}]},"124":{"line":1329,"type":"if","locations":[{"start":{"line":1329,"column":4},"end":{"line":1329,"column":4}},{"start":{"line":1329,"column":4},"end":{"line":1329,"column":4}}]},"125":{"line":1452,"type":"if","locations":[{"start":{"line":1452,"column":4},"end":{"line":1452,"column":4}},{"start":{"line":1452,"column":4},"end":{"line":1452,"column":4}}]},"126":{"line":1518,"type":"if","locations":[{"start":{"line":1518,"column":11},"end":{"line":1518,"column":11}},{"start":{"line":1518,"column":11},"end":{"line":1518,"column":11}}]},"127":{"line":1593,"type":"if","locations":[{"start":{"line":1593,"column":4},"end":{"line":1593,"column":4}},{"start":{"line":1593,"column":4},"end":{"line":1593,"column":4}}]},"128":{"line":1632,"type":"if","locations":[{"start":{"line":1632,"column":4},"end":{"line":1632,"column":4}},{"start":{"line":1632,"column":4},"end":{"line":1632,"column":4}}]},"129":{"line":1636,"type":"if","locations":[{"start":{"line":1636,"column":4},"end":{"line":1636,"column":4}},{"start":{"line":1636,"column":4},"end":{"line":1636,"column":4}}]},"130":{"line":1640,"type":"if","locations":[{"start":{"line":1640,"column":4},"end":{"line":1640,"column":4}},{"start":{"line":1640,"column":4},"end":{"line":1640,"column":4}}]},"131":{"line":1664,"type":"if","locations":[{"start":{"line":1664,"column":4},"end":{"line":1664,"column":4}},{"start":{"line":1664,"column":4},"end":{"line":1664,"column":4}}]},"132":{"line":1668,"type":"if","locations":[{"start":{"line":1668,"column":4},"end":{"line":1668,"column":4}},{"start":{"line":1668,"column":4},"end":{"line":1668,"column":4}}]},"133":{"line":1672,"type":"if","locations":[{"start":{"line":1672,"column":4},"end":{"line":1672,"column":4}},{"start":{"line":1672,"column":4},"end":{"line":1672,"column":4}}]},"134":{"line":1676,"type":"if","locations":[{"start":{"line":1676,"column":4},"end":{"line":1676,"column":4}},{"start":{"line":1676,"column":4},"end":{"line":1676,"column":4}}]},"135":{"line":1731,"type":"if","locations":[{"start":{"line":1731,"column":4},"end":{"line":1731,"column":4}},{"start":{"line":1731,"column":4},"end":{"line":1731,"column":4}}]},"136":{"line":1738,"type":"if","locations":[{"start":{"line":1738,"column":11},"end":{"line":1738,"column":11}},{"start":{"line":1738,"column":11},"end":{"line":1738,"column":11}}]},"137":{"line":1762,"type":"if","locations":[{"start":{"line":1762,"column":4},"end":{"line":1762,"column":4}},{"start":{"line":1762,"column":4},"end":{"line":1762,"column":4}}]},"138":{"line":1768,"type":"if","locations":[{"start":{"line":1768,"column":4},"end":{"line":1768,"column":4}},{"start":{"line":1768,"column":4},"end":{"line":1768,"column":4}}]},"139":{"line":1881,"type":"if","locations":[{"start":{"line":1881,"column":4},"end":{"line":1881,"column":4}},{"start":{"line":1881,"column":4},"end":{"line":1881,"column":4}}]},"140":{"line":1886,"type":"if","locations":[{"start":{"line":1886,"column":4},"end":{"line":1886,"column":4}},{"start":{"line":1886,"column":4},"end":{"line":1886,"column":4}}]},"141":{"line":1891,"type":"if","locations":[{"start":{"line":1891,"column":4},"end":{"line":1891,"column":4}},{"start":{"line":1891,"column":4},"end":{"line":1891,"column":4}}]},"142":{"line":1896,"type":"if","locations":[{"start":{"line":1896,"column":4},"end":{"line":1896,"column":4}},{"start":{"line":1896,"column":4},"end":{"line":1896,"column":4}}]},"143":{"line":1901,"type":"if","locations":[{"start":{"line":1901,"column":4},"end":{"line":1901,"column":4}},{"start":{"line":1901,"column":4},"end":{"line":1901,"column":4}}]},"144":{"line":1906,"type":"if","locations":[{"start":{"line":1906,"column":4},"end":{"line":1906,"column":4}},{"start":{"line":1906,"column":4},"end":{"line":1906,"column":4}}]},"145":{"line":1911,"type":"if","locations":[{"start":{"line":1911,"column":4},"end":{"line":1911,"column":4}},{"start":{"line":1911,"column":4},"end":{"line":1911,"column":4}}]},"146":{"line":1916,"type":"if","locations":[{"start":{"line":1916,"column":4},"end":{"line":1916,"column":4}},{"start":{"line":1916,"column":4},"end":{"line":1916,"column":4}}]},"147":{"line":1921,"type":"if","locations":[{"start":{"line":1921,"column":4},"end":{"line":1921,"column":4}},{"start":{"line":1921,"column":4},"end":{"line":1921,"column":4}}]},"148":{"line":1926,"type":"if","locations":[{"start":{"line":1926,"column":4},"end":{"line":1926,"column":4}},{"start":{"line":1926,"column":4},"end":{"line":1926,"column":4}}]},"149":{"line":1959,"type":"if","locations":[{"start":{"line":1959,"column":4},"end":{"line":1959,"column":4}},{"start":{"line":1959,"column":4},"end":{"line":1959,"column":4}}]},"150":{"line":1963,"type":"if","locations":[{"start":{"line":1963,"column":4},"end":{"line":1963,"column":4}},{"start":{"line":1963,"column":4},"end":{"line":1963,"column":4}}]},"151":{"line":2047,"type":"if","locations":[{"start":{"line":2047,"column":12},"end":{"line":2047,"column":12}},{"start":{"line":2047,"column":12},"end":{"line":2047,"column":12}}]},"152":{"line":2061,"type":"if","locations":[{"start":{"line":2061,"column":4},"end":{"line":2061,"column":4}},{"start":{"line":2061,"column":4},"end":{"line":2061,"column":4}}]},"153":{"line":2128,"type":"if","locations":[{"start":{"line":2128,"column":8},"end":{"line":2128,"column":8}},{"start":{"line":2128,"column":8},"end":{"line":2128,"column":8}}]},"154":{"line":2184,"type":"if","locations":[{"start":{"line":2184,"column":12},"end":{"line":2184,"column":12}},{"start":{"line":2184,"column":12},"end":{"line":2184,"column":12}}]},"155":{"line":2202,"type":"if","locations":[{"start":{"line":2202,"column":12},"end":{"line":2202,"column":12}},{"start":{"line":2202,"column":12},"end":{"line":2202,"column":12}}]},"156":{"line":2203,"type":"binary-expr","locations":[{"start":{"line":2203,"column":17},"end":{"line":2203,"column":38}},{"start":{"line":2203,"column":42},"end":{"line":2203,"column":63}},{"start":{"line":2204,"column":17},"end":{"line":2204,"column":38}},{"start":{"line":2204,"column":42},"end":{"line":2204,"column":63}},{"start":{"line":2205,"column":17},"end":{"line":2205,"column":38}},{"start":{"line":2205,"column":42},"end":{"line":2205,"column":63}},{"start":{"line":2206,"column":17},"end":{"line":2206,"column":38}},{"start":{"line":2206,"column":42},"end":{"line":2206,"column":63}},{"start":{"line":2207,"column":17},"end":{"line":2207,"column":38}},{"start":{"line":2207,"column":42},"end":{"line":2207,"column":63}},{"start":{"line":2208,"column":17},"end":{"line":2208,"column":38}},{"start":{"line":2208,"column":42},"end":{"line":2208,"column":63}}]},"157":{"line":2221,"type":"if","locations":[{"start":{"line":2221,"column":16},"end":{"line":2221,"column":16}},{"start":{"line":2221,"column":16},"end":{"line":2221,"column":16}}]},"158":{"line":2260,"type":"if","locations":[{"start":{"line":2260,"column":8},"end":{"line":2260,"column":8}},{"start":{"line":2260,"column":8},"end":{"line":2260,"column":8}}]},"159":{"line":2261,"type":"binary-expr","locations":[{"start":{"line":2261,"column":13},"end":{"line":2261,"column":60}},{"start":{"line":2262,"column":12},"end":{"line":2262,"column":59}},{"start":{"line":2263,"column":13},"end":{"line":2263,"column":60}},{"start":{"line":2264,"column":12},"end":{"line":2264,"column":59}},{"start":{"line":2265,"column":13},"end":{"line":2265,"column":60}},{"start":{"line":2266,"column":12},"end":{"line":2266,"column":59}}]},"160":{"line":2296,"type":"if","locations":[{"start":{"line":2296,"column":12},"end":{"line":2296,"column":12}},{"start":{"line":2296,"column":12},"end":{"line":2296,"column":12}}]},"161":{"line":2296,"type":"binary-expr","locations":[{"start":{"line":2296,"column":16},"end":{"line":2296,"column":25}},{"start":{"line":2296,"column":29},"end":{"line":2296,"column":72}}]},"162":{"line":2310,"type":"if","locations":[{"start":{"line":2310,"column":12},"end":{"line":2310,"column":12}},{"start":{"line":2310,"column":12},"end":{"line":2310,"column":12}}]},"163":{"line":2315,"type":"if","locations":[{"start":{"line":2315,"column":8},"end":{"line":2315,"column":8}},{"start":{"line":2315,"column":8},"end":{"line":2315,"column":8}}]},"164":{"line":2333,"type":"if","locations":[{"start":{"line":2333,"column":4},"end":{"line":2333,"column":4}},{"start":{"line":2333,"column":4},"end":{"line":2333,"column":4}}]},"165":{"line":2333,"type":"binary-expr","locations":[{"start":{"line":2333,"column":8},"end":{"line":2333,"column":38}},{"start":{"line":2333,"column":42},"end":{"line":2333,"column":68}}]},"166":{"line":2385,"type":"if","locations":[{"start":{"line":2385,"column":4},"end":{"line":2385,"column":4}},{"start":{"line":2385,"column":4},"end":{"line":2385,"column":4}}]},"167":{"line":2453,"type":"if","locations":[{"start":{"line":2453,"column":4},"end":{"line":2453,"column":4}},{"start":{"line":2453,"column":4},"end":{"line":2453,"column":4}}]},"168":{"line":2525,"type":"if","locations":[{"start":{"line":2525,"column":1},"end":{"line":2525,"column":1}},{"start":{"line":2525,"column":1},"end":{"line":2525,"column":1}}]},"169":{"line":2530,"type":"if","locations":[{"start":{"line":2530,"column":1},"end":{"line":2530,"column":1}},{"start":{"line":2530,"column":1},"end":{"line":2530,"column":1}}]},"170":{"line":2535,"type":"if","locations":[{"start":{"line":2535,"column":1},"end":{"line":2535,"column":1}},{"start":{"line":2535,"column":1},"end":{"line":2535,"column":1}}]},"171":{"line":2540,"type":"if","locations":[{"start":{"line":2540,"column":1},"end":{"line":2540,"column":1}},{"start":{"line":2540,"column":1},"end":{"line":2540,"column":1}}]},"172":{"line":2545,"type":"if","locations":[{"start":{"line":2545,"column":1},"end":{"line":2545,"column":1}},{"start":{"line":2545,"column":1},"end":{"line":2545,"column":1}}]},"173":{"line":2550,"type":"if","locations":[{"start":{"line":2550,"column":1},"end":{"line":2550,"column":1}},{"start":{"line":2550,"column":1},"end":{"line":2550,"column":1}}]},"174":{"line":2555,"type":"if","locations":[{"start":{"line":2555,"column":1},"end":{"line":2555,"column":1}},{"start":{"line":2555,"column":1},"end":{"line":2555,"column":1}}]},"175":{"line":2560,"type":"if","locations":[{"start":{"line":2560,"column":1},"end":{"line":2560,"column":1}},{"start":{"line":2560,"column":1},"end":{"line":2560,"column":1}}]},"176":{"line":2565,"type":"if","locations":[{"start":{"line":2565,"column":1},"end":{"line":2565,"column":1}},{"start":{"line":2565,"column":1},"end":{"line":2565,"column":1}}]},"177":{"line":2570,"type":"if","locations":[{"start":{"line":2570,"column":1},"end":{"line":2570,"column":1}},{"start":{"line":2570,"column":1},"end":{"line":2570,"column":1}}]},"178":{"line":2575,"type":"if","locations":[{"start":{"line":2575,"column":1},"end":{"line":2575,"column":1}},{"start":{"line":2575,"column":1},"end":{"line":2575,"column":1}}]},"179":{"line":2580,"type":"if","locations":[{"start":{"line":2580,"column":1},"end":{"line":2580,"column":1}},{"start":{"line":2580,"column":1},"end":{"line":2580,"column":1}}]},"180":{"line":2585,"type":"if","locations":[{"start":{"line":2585,"column":1},"end":{"line":2585,"column":1}},{"start":{"line":2585,"column":1},"end":{"line":2585,"column":1}}]},"181":{"line":2590,"type":"if","locations":[{"start":{"line":2590,"column":1},"end":{"line":2590,"column":1}},{"start":{"line":2590,"column":1},"end":{"line":2590,"column":1}}]},"182":{"line":2595,"type":"if","locations":[{"start":{"line":2595,"column":1},"end":{"line":2595,"column":1}},{"start":{"line":2595,"column":1},"end":{"line":2595,"column":1}}]},"183":{"line":2600,"type":"if","locations":[{"start":{"line":2600,"column":1},"end":{"line":2600,"column":1}},{"start":{"line":2600,"column":1},"end":{"line":2600,"column":1}}]},"184":{"line":2605,"type":"if","locations":[{"start":{"line":2605,"column":1},"end":{"line":2605,"column":1}},{"start":{"line":2605,"column":1},"end":{"line":2605,"column":1}}]},"185":{"line":2610,"type":"if","locations":[{"start":{"line":2610,"column":1},"end":{"line":2610,"column":1}},{"start":{"line":2610,"column":1},"end":{"line":2610,"column":1}}]},"186":{"line":2615,"type":"if","locations":[{"start":{"line":2615,"column":1},"end":{"line":2615,"column":1}},{"start":{"line":2615,"column":1},"end":{"line":2615,"column":1}}]},"187":{"line":2620,"type":"if","locations":[{"start":{"line":2620,"column":1},"end":{"line":2620,"column":1}},{"start":{"line":2620,"column":1},"end":{"line":2620,"column":1}}]},"188":{"line":2625,"type":"if","locations":[{"start":{"line":2625,"column":1},"end":{"line":2625,"column":1}},{"start":{"line":2625,"column":1},"end":{"line":2625,"column":1}}]},"189":{"line":2630,"type":"if","locations":[{"start":{"line":2630,"column":1},"end":{"line":2630,"column":1}},{"start":{"line":2630,"column":1},"end":{"line":2630,"column":1}}]},"190":{"line":2635,"type":"if","locations":[{"start":{"line":2635,"column":1},"end":{"line":2635,"column":1}},{"start":{"line":2635,"column":1},"end":{"line":2635,"column":1}}]},"191":{"line":2640,"type":"if","locations":[{"start":{"line":2640,"column":1},"end":{"line":2640,"column":1}},{"start":{"line":2640,"column":1},"end":{"line":2640,"column":1}}]},"192":{"line":2645,"type":"if","locations":[{"start":{"line":2645,"column":1},"end":{"line":2645,"column":1}},{"start":{"line":2645,"column":1},"end":{"line":2645,"column":1}}]},"193":{"line":2650,"type":"if","locations":[{"start":{"line":2650,"column":1},"end":{"line":2650,"column":1}},{"start":{"line":2650,"column":1},"end":{"line":2650,"column":1}}]},"194":{"line":2655,"type":"if","locations":[{"start":{"line":2655,"column":1},"end":{"line":2655,"column":1}},{"start":{"line":2655,"column":1},"end":{"line":2655,"column":1}}]},"195":{"line":2715,"type":"if","locations":[{"start":{"line":2715,"column":4},"end":{"line":2715,"column":4}},{"start":{"line":2715,"column":4},"end":{"line":2715,"column":4}}]},"196":{"line":2810,"type":"binary-expr","locations":[{"start":{"line":2810,"column":20},"end":{"line":2810,"column":28}},{"start":{"line":2810,"column":32},"end":{"line":2810,"column":56}}]},"197":{"line":2811,"type":"binary-expr","locations":[{"start":{"line":2811,"column":20},"end":{"line":2811,"column":28}},{"start":{"line":2811,"column":32},"end":{"line":2811,"column":56}}]},"198":{"line":2812,"type":"binary-expr","locations":[{"start":{"line":2812,"column":27},"end":{"line":2812,"column":42}},{"start":{"line":2812,"column":46},"end":{"line":2812,"column":70}}]},"199":{"line":2813,"type":"binary-expr","locations":[{"start":{"line":2813,"column":22},"end":{"line":2813,"column":32}},{"start":{"line":2813,"column":36},"end":{"line":2813,"column":70}}]},"200":{"line":2814,"type":"cond-expr","locations":[{"start":{"line":2814,"column":45},"end":{"line":2814,"column":46}},{"start":{"line":2814,"column":49},"end":{"line":2814,"column":53}}]},"201":{"line":2815,"type":"cond-expr","locations":[{"start":{"line":2815,"column":53},"end":{"line":2815,"column":54}},{"start":{"line":2815,"column":57},"end":{"line":2815,"column":65}}]},"202":{"line":2816,"type":"cond-expr","locations":[{"start":{"line":2816,"column":63},"end":{"line":2816,"column":67}},{"start":{"line":2816,"column":70},"end":{"line":2816,"column":83}}]},"203":{"line":2817,"type":"cond-expr","locations":[{"start":{"line":2817,"column":65},"end":{"line":2817,"column":69}},{"start":{"line":2817,"column":72},"end":{"line":2817,"column":86}}]},"204":{"line":2818,"type":"cond-expr","locations":[{"start":{"line":2818,"column":57},"end":{"line":2818,"column":61}},{"start":{"line":2818,"column":64},"end":{"line":2818,"column":74}}]},"205":{"line":2819,"type":"cond-expr","locations":[{"start":{"line":2819,"column":67},"end":{"line":2819,"column":70}},{"start":{"line":2819,"column":73},"end":{"line":2819,"column":88}}]},"206":{"line":2820,"type":"cond-expr","locations":[{"start":{"line":2820,"column":65},"end":{"line":2820,"column":68}},{"start":{"line":2820,"column":71},"end":{"line":2820,"column":85}}]},"207":{"line":2821,"type":"cond-expr","locations":[{"start":{"line":2821,"column":77},"end":{"line":2821,"column":78}},{"start":{"line":2821,"column":81},"end":{"line":2821,"column":101}}]},"208":{"line":2822,"type":"cond-expr","locations":[{"start":{"line":2822,"column":75},"end":{"line":2822,"column":76}},{"start":{"line":2822,"column":79},"end":{"line":2822,"column":98}}]},"209":{"line":2823,"type":"cond-expr","locations":[{"start":{"line":2823,"column":63},"end":{"line":2823,"column":68}},{"start":{"line":2823,"column":71},"end":{"line":2823,"column":84}}]},"210":{"line":2824,"type":"cond-expr","locations":[{"start":{"line":2824,"column":47},"end":{"line":2824,"column":51}},{"start":{"line":2824,"column":54},"end":{"line":2824,"column":59}}]},"211":{"line":2891,"type":"if","locations":[{"start":{"line":2891,"column":4},"end":{"line":2891,"column":4}},{"start":{"line":2891,"column":4},"end":{"line":2891,"column":4}}]},"212":{"line":2895,"type":"if","locations":[{"start":{"line":2895,"column":4},"end":{"line":2895,"column":4}},{"start":{"line":2895,"column":4},"end":{"line":2895,"column":4}}]},"213":{"line":2972,"type":"if","locations":[{"start":{"line":2972,"column":4},"end":{"line":2972,"column":4}},{"start":{"line":2972,"column":4},"end":{"line":2972,"column":4}}]},"214":{"line":2976,"type":"if","locations":[{"start":{"line":2976,"column":4},"end":{"line":2976,"column":4}},{"start":{"line":2976,"column":4},"end":{"line":2976,"column":4}}]},"215":{"line":2981,"type":"if","locations":[{"start":{"line":2981,"column":4},"end":{"line":2981,"column":4}},{"start":{"line":2981,"column":4},"end":{"line":2981,"column":4}}]},"216":{"line":2986,"type":"if","locations":[{"start":{"line":2986,"column":4},"end":{"line":2986,"column":4}},{"start":{"line":2986,"column":4},"end":{"line":2986,"column":4}}]},"217":{"line":2991,"type":"if","locations":[{"start":{"line":2991,"column":4},"end":{"line":2991,"column":4}},{"start":{"line":2991,"column":4},"end":{"line":2991,"column":4}}]},"218":{"line":2996,"type":"if","locations":[{"start":{"line":2996,"column":4},"end":{"line":2996,"column":4}},{"start":{"line":2996,"column":4},"end":{"line":2996,"column":4}}]},"219":{"line":3001,"type":"if","locations":[{"start":{"line":3001,"column":4},"end":{"line":3001,"column":4}},{"start":{"line":3001,"column":4},"end":{"line":3001,"column":4}}]},"220":{"line":3006,"type":"if","locations":[{"start":{"line":3006,"column":4},"end":{"line":3006,"column":4}},{"start":{"line":3006,"column":4},"end":{"line":3006,"column":4}}]},"221":{"line":3011,"type":"if","locations":[{"start":{"line":3011,"column":4},"end":{"line":3011,"column":4}},{"start":{"line":3011,"column":4},"end":{"line":3011,"column":4}}]},"222":{"line":3016,"type":"if","locations":[{"start":{"line":3016,"column":4},"end":{"line":3016,"column":4}},{"start":{"line":3016,"column":4},"end":{"line":3016,"column":4}}]},"223":{"line":3043,"type":"if","locations":[{"start":{"line":3043,"column":4},"end":{"line":3043,"column":4}},{"start":{"line":3043,"column":4},"end":{"line":3043,"column":4}}]},"224":{"line":3056,"type":"if","locations":[{"start":{"line":3056,"column":12},"end":{"line":3056,"column":12}},{"start":{"line":3056,"column":12},"end":{"line":3056,"column":12}}]},"225":{"line":3060,"type":"if","locations":[{"start":{"line":3060,"column":16},"end":{"line":3060,"column":16}},{"start":{"line":3060,"column":16},"end":{"line":3060,"column":16}}]},"226":{"line":3060,"type":"binary-expr","locations":[{"start":{"line":3060,"column":20},"end":{"line":3060,"column":35}},{"start":{"line":3060,"column":39},"end":{"line":3060,"column":65}}]},"227":{"line":3068,"type":"if","locations":[{"start":{"line":3068,"column":16},"end":{"line":3068,"column":16}},{"start":{"line":3068,"column":16},"end":{"line":3068,"column":16}}]},"228":{"line":3068,"type":"binary-expr","locations":[{"start":{"line":3068,"column":20},"end":{"line":3068,"column":33}},{"start":{"line":3068,"column":37},"end":{"line":3068,"column":61}}]},"229":{"line":3076,"type":"if","locations":[{"start":{"line":3076,"column":24},"end":{"line":3076,"column":24}},{"start":{"line":3076,"column":24},"end":{"line":3076,"column":24}}]},"230":{"line":3206,"type":"binary-expr","locations":[{"start":{"line":3206,"column":20},"end":{"line":3206,"column":29}},{"start":{"line":3206,"column":33},"end":{"line":3206,"column":41}}]},"231":{"line":3405,"type":"if","locations":[{"start":{"line":3405,"column":8},"end":{"line":3405,"column":8}},{"start":{"line":3405,"column":8},"end":{"line":3405,"column":8}}]},"232":{"line":3475,"type":"if","locations":[{"start":{"line":3475,"column":8},"end":{"line":3475,"column":8}},{"start":{"line":3475,"column":8},"end":{"line":3475,"column":8}}]},"233":{"line":3485,"type":"if","locations":[{"start":{"line":3485,"column":16},"end":{"line":3485,"column":16}},{"start":{"line":3485,"column":16},"end":{"line":3485,"column":16}}]},"234":{"line":3489,"type":"if","locations":[{"start":{"line":3489,"column":16},"end":{"line":3489,"column":16}},{"start":{"line":3489,"column":16},"end":{"line":3489,"column":16}}]},"235":{"line":3493,"type":"if","locations":[{"start":{"line":3493,"column":16},"end":{"line":3493,"column":16}},{"start":{"line":3493,"column":16},"end":{"line":3493,"column":16}}]},"236":{"line":3499,"type":"if","locations":[{"start":{"line":3499,"column":16},"end":{"line":3499,"column":16}},{"start":{"line":3499,"column":16},"end":{"line":3499,"column":16}}]},"237":{"line":3515,"type":"if","locations":[{"start":{"line":3515,"column":16},"end":{"line":3515,"column":16}},{"start":{"line":3515,"column":16},"end":{"line":3515,"column":16}}]},"238":{"line":3606,"type":"if","locations":[{"start":{"line":3606,"column":4},"end":{"line":3606,"column":4}},{"start":{"line":3606,"column":4},"end":{"line":3606,"column":4}}]},"239":{"line":3611,"type":"if","locations":[{"start":{"line":3611,"column":4},"end":{"line":3611,"column":4}},{"start":{"line":3611,"column":4},"end":{"line":3611,"column":4}}]},"240":{"line":3616,"type":"if","locations":[{"start":{"line":3616,"column":4},"end":{"line":3616,"column":4}},{"start":{"line":3616,"column":4},"end":{"line":3616,"column":4}}]},"241":{"line":3621,"type":"if","locations":[{"start":{"line":3621,"column":4},"end":{"line":3621,"column":4}},{"start":{"line":3621,"column":4},"end":{"line":3621,"column":4}}]},"242":{"line":3626,"type":"if","locations":[{"start":{"line":3626,"column":4},"end":{"line":3626,"column":4}},{"start":{"line":3626,"column":4},"end":{"line":3626,"column":4}}]},"243":{"line":3631,"type":"if","locations":[{"start":{"line":3631,"column":4},"end":{"line":3631,"column":4}},{"start":{"line":3631,"column":4},"end":{"line":3631,"column":4}}]},"244":{"line":3636,"type":"if","locations":[{"start":{"line":3636,"column":4},"end":{"line":3636,"column":4}},{"start":{"line":3636,"column":4},"end":{"line":3636,"column":4}}]},"245":{"line":3641,"type":"if","locations":[{"start":{"line":3641,"column":4},"end":{"line":3641,"column":4}},{"start":{"line":3641,"column":4},"end":{"line":3641,"column":4}}]},"246":{"line":3646,"type":"if","locations":[{"start":{"line":3646,"column":4},"end":{"line":3646,"column":4}},{"start":{"line":3646,"column":4},"end":{"line":3646,"column":4}}]},"247":{"line":3651,"type":"if","locations":[{"start":{"line":3651,"column":4},"end":{"line":3651,"column":4}},{"start":{"line":3651,"column":4},"end":{"line":3651,"column":4}}]},"248":{"line":3676,"type":"if","locations":[{"start":{"line":3676,"column":4},"end":{"line":3676,"column":4}},{"start":{"line":3676,"column":4},"end":{"line":3676,"column":4}}]},"249":{"line":3681,"type":"if","locations":[{"start":{"line":3681,"column":11},"end":{"line":3681,"column":11}},{"start":{"line":3681,"column":11},"end":{"line":3681,"column":11}}]},"250":{"line":3685,"type":"if","locations":[{"start":{"line":3685,"column":11},"end":{"line":3685,"column":11}},{"start":{"line":3685,"column":11},"end":{"line":3685,"column":11}}]},"251":{"line":3693,"type":"if","locations":[{"start":{"line":3693,"column":11},"end":{"line":3693,"column":11}},{"start":{"line":3693,"column":11},"end":{"line":3693,"column":11}}]},"252":{"line":3700,"type":"if","locations":[{"start":{"line":3700,"column":11},"end":{"line":3700,"column":11}},{"start":{"line":3700,"column":11},"end":{"line":3700,"column":11}}]},"253":{"line":3707,"type":"if","locations":[{"start":{"line":3707,"column":11},"end":{"line":3707,"column":11}},{"start":{"line":3707,"column":11},"end":{"line":3707,"column":11}}]},"254":{"line":3729,"type":"if","locations":[{"start":{"line":3729,"column":4},"end":{"line":3729,"column":4}},{"start":{"line":3729,"column":4},"end":{"line":3729,"column":4}}]},"255":{"line":3775,"type":"if","locations":[{"start":{"line":3775,"column":4},"end":{"line":3775,"column":4}},{"start":{"line":3775,"column":4},"end":{"line":3775,"column":4}}]},"256":{"line":3784,"type":"if","locations":[{"start":{"line":3784,"column":4},"end":{"line":3784,"column":4}},{"start":{"line":3784,"column":4},"end":{"line":3784,"column":4}}]},"257":{"line":3789,"type":"if","locations":[{"start":{"line":3789,"column":4},"end":{"line":3789,"column":4}},{"start":{"line":3789,"column":4},"end":{"line":3789,"column":4}}]},"258":{"line":3793,"type":"if","locations":[{"start":{"line":3793,"column":4},"end":{"line":3793,"column":4}},{"start":{"line":3793,"column":4},"end":{"line":3793,"column":4}}]},"259":{"line":3798,"type":"if","locations":[{"start":{"line":3798,"column":4},"end":{"line":3798,"column":4}},{"start":{"line":3798,"column":4},"end":{"line":3798,"column":4}}]},"260":{"line":3803,"type":"if","locations":[{"start":{"line":3803,"column":4},"end":{"line":3803,"column":4}},{"start":{"line":3803,"column":4},"end":{"line":3803,"column":4}}]},"261":{"line":3808,"type":"if","locations":[{"start":{"line":3808,"column":4},"end":{"line":3808,"column":4}},{"start":{"line":3808,"column":4},"end":{"line":3808,"column":4}}]},"262":{"line":3902,"type":"if","locations":[{"start":{"line":3902,"column":4},"end":{"line":3902,"column":4}},{"start":{"line":3902,"column":4},"end":{"line":3902,"column":4}}]},"263":{"line":3903,"type":"if","locations":[{"start":{"line":3903,"column":8},"end":{"line":3903,"column":8}},{"start":{"line":3903,"column":8},"end":{"line":3903,"column":8}}]},"264":{"line":3905,"type":"if","locations":[{"start":{"line":3905,"column":15},"end":{"line":3905,"column":15}},{"start":{"line":3905,"column":15},"end":{"line":3905,"column":15}}]},"265":{"line":3974,"type":"if","locations":[{"start":{"line":3974,"column":4},"end":{"line":3974,"column":4}},{"start":{"line":3974,"column":4},"end":{"line":3974,"column":4}}]},"266":{"line":3979,"type":"if","locations":[{"start":{"line":3979,"column":4},"end":{"line":3979,"column":4}},{"start":{"line":3979,"column":4},"end":{"line":3979,"column":4}}]},"267":{"line":3984,"type":"if","locations":[{"start":{"line":3984,"column":4},"end":{"line":3984,"column":4}},{"start":{"line":3984,"column":4},"end":{"line":3984,"column":4}}]},"268":{"line":3989,"type":"if","locations":[{"start":{"line":3989,"column":4},"end":{"line":3989,"column":4}},{"start":{"line":3989,"column":4},"end":{"line":3989,"column":4}}]},"269":{"line":3994,"type":"if","locations":[{"start":{"line":3994,"column":4},"end":{"line":3994,"column":4}},{"start":{"line":3994,"column":4},"end":{"line":3994,"column":4}}]},"270":{"line":3999,"type":"if","locations":[{"start":{"line":3999,"column":4},"end":{"line":3999,"column":4}},{"start":{"line":3999,"column":4},"end":{"line":3999,"column":4}}]},"271":{"line":4004,"type":"if","locations":[{"start":{"line":4004,"column":4},"end":{"line":4004,"column":4}},{"start":{"line":4004,"column":4},"end":{"line":4004,"column":4}}]},"272":{"line":4009,"type":"if","locations":[{"start":{"line":4009,"column":4},"end":{"line":4009,"column":4}},{"start":{"line":4009,"column":4},"end":{"line":4009,"column":4}}]},"273":{"line":4014,"type":"if","locations":[{"start":{"line":4014,"column":4},"end":{"line":4014,"column":4}},{"start":{"line":4014,"column":4},"end":{"line":4014,"column":4}}]},"274":{"line":4019,"type":"if","locations":[{"start":{"line":4019,"column":4},"end":{"line":4019,"column":4}},{"start":{"line":4019,"column":4},"end":{"line":4019,"column":4}}]},"275":{"line":4024,"type":"if","locations":[{"start":{"line":4024,"column":4},"end":{"line":4024,"column":4}},{"start":{"line":4024,"column":4},"end":{"line":4024,"column":4}}]},"276":{"line":4029,"type":"if","locations":[{"start":{"line":4029,"column":4},"end":{"line":4029,"column":4}},{"start":{"line":4029,"column":4},"end":{"line":4029,"column":4}}]},"277":{"line":4034,"type":"if","locations":[{"start":{"line":4034,"column":4},"end":{"line":4034,"column":4}},{"start":{"line":4034,"column":4},"end":{"line":4034,"column":4}}]},"278":{"line":4039,"type":"if","locations":[{"start":{"line":4039,"column":4},"end":{"line":4039,"column":4}},{"start":{"line":4039,"column":4},"end":{"line":4039,"column":4}}]},"279":{"line":4044,"type":"if","locations":[{"start":{"line":4044,"column":4},"end":{"line":4044,"column":4}},{"start":{"line":4044,"column":4},"end":{"line":4044,"column":4}}]},"280":{"line":4049,"type":"if","locations":[{"start":{"line":4049,"column":4},"end":{"line":4049,"column":4}},{"start":{"line":4049,"column":4},"end":{"line":4049,"column":4}}]},"281":{"line":4054,"type":"if","locations":[{"start":{"line":4054,"column":4},"end":{"line":4054,"column":4}},{"start":{"line":4054,"column":4},"end":{"line":4054,"column":4}}]},"282":{"line":4154,"type":"if","locations":[{"start":{"line":4154,"column":4},"end":{"line":4154,"column":4}},{"start":{"line":4154,"column":4},"end":{"line":4154,"column":4}}]},"283":{"line":4154,"type":"binary-expr","locations":[{"start":{"line":4154,"column":8},"end":{"line":4154,"column":22}},{"start":{"line":4154,"column":26},"end":{"line":4154,"column":46}},{"start":{"line":4154,"column":50},"end":{"line":4154,"column":79}}]},"284":{"line":4161,"type":"if","locations":[{"start":{"line":4161,"column":4},"end":{"line":4161,"column":4}},{"start":{"line":4161,"column":4},"end":{"line":4161,"column":4}}]},"285":{"line":4200,"type":"if","locations":[{"start":{"line":4200,"column":16},"end":{"line":4200,"column":16}},{"start":{"line":4200,"column":16},"end":{"line":4200,"column":16}}]},"286":{"line":4246,"type":"if","locations":[{"start":{"line":4246,"column":8},"end":{"line":4246,"column":8}},{"start":{"line":4246,"column":8},"end":{"line":4246,"column":8}}]},"287":{"line":4250,"type":"if","locations":[{"start":{"line":4250,"column":12},"end":{"line":4250,"column":12}},{"start":{"line":4250,"column":12},"end":{"line":4250,"column":12}}]},"288":{"line":4251,"type":"binary-expr","locations":[{"start":{"line":4251,"column":16},"end":{"line":4251,"column":30}},{"start":{"line":4252,"column":16},"end":{"line":4252,"column":36}},{"start":{"line":4253,"column":16},"end":{"line":4253,"column":45}}]},"289":{"line":4258,"type":"if","locations":[{"start":{"line":4258,"column":16},"end":{"line":4258,"column":16}},{"start":{"line":4258,"column":16},"end":{"line":4258,"column":16}}]},"290":{"line":4262,"type":"if","locations":[{"start":{"line":4262,"column":16},"end":{"line":4262,"column":16}},{"start":{"line":4262,"column":16},"end":{"line":4262,"column":16}}]},"291":{"line":4266,"type":"if","locations":[{"start":{"line":4266,"column":16},"end":{"line":4266,"column":16}},{"start":{"line":4266,"column":16},"end":{"line":4266,"column":16}}]},"292":{"line":4270,"type":"if","locations":[{"start":{"line":4270,"column":16},"end":{"line":4270,"column":16}},{"start":{"line":4270,"column":16},"end":{"line":4270,"column":16}}]},"293":{"line":4274,"type":"if","locations":[{"start":{"line":4274,"column":16},"end":{"line":4274,"column":16}},{"start":{"line":4274,"column":16},"end":{"line":4274,"column":16}}]},"294":{"line":4278,"type":"if","locations":[{"start":{"line":4278,"column":16},"end":{"line":4278,"column":16}},{"start":{"line":4278,"column":16},"end":{"line":4278,"column":16}}]},"295":{"line":4282,"type":"if","locations":[{"start":{"line":4282,"column":16},"end":{"line":4282,"column":16}},{"start":{"line":4282,"column":16},"end":{"line":4282,"column":16}}]},"296":{"line":4286,"type":"if","locations":[{"start":{"line":4286,"column":16},"end":{"line":4286,"column":16}},{"start":{"line":4286,"column":16},"end":{"line":4286,"column":16}}]},"297":{"line":4290,"type":"if","locations":[{"start":{"line":4290,"column":16},"end":{"line":4290,"column":16}},{"start":{"line":4290,"column":16},"end":{"line":4290,"column":16}}]},"298":{"line":4294,"type":"if","locations":[{"start":{"line":4294,"column":16},"end":{"line":4294,"column":16}},{"start":{"line":4294,"column":16},"end":{"line":4294,"column":16}}]},"299":{"line":4298,"type":"if","locations":[{"start":{"line":4298,"column":16},"end":{"line":4298,"column":16}},{"start":{"line":4298,"column":16},"end":{"line":4298,"column":16}}]},"300":{"line":4302,"type":"if","locations":[{"start":{"line":4302,"column":16},"end":{"line":4302,"column":16}},{"start":{"line":4302,"column":16},"end":{"line":4302,"column":16}}]},"301":{"line":4381,"type":"if","locations":[{"start":{"line":4381,"column":4},"end":{"line":4381,"column":4}},{"start":{"line":4381,"column":4},"end":{"line":4381,"column":4}}]},"302":{"line":4386,"type":"if","locations":[{"start":{"line":4386,"column":4},"end":{"line":4386,"column":4}},{"start":{"line":4386,"column":4},"end":{"line":4386,"column":4}}]},"303":{"line":4395,"type":"if","locations":[{"start":{"line":4395,"column":4},"end":{"line":4395,"column":4}},{"start":{"line":4395,"column":4},"end":{"line":4395,"column":4}}]},"304":{"line":4404,"type":"if","locations":[{"start":{"line":4404,"column":4},"end":{"line":4404,"column":4}},{"start":{"line":4404,"column":4},"end":{"line":4404,"column":4}}]},"305":{"line":4434,"type":"binary-expr","locations":[{"start":{"line":4435,"column":9},"end":{"line":4435,"column":31}},{"start":{"line":4436,"column":9},"end":{"line":4436,"column":31}},{"start":{"line":4437,"column":9},"end":{"line":4437,"column":31}},{"start":{"line":4441,"column":9},"end":{"line":4441,"column":31}},{"start":{"line":4442,"column":9},"end":{"line":4442,"column":31}},{"start":{"line":4443,"column":9},"end":{"line":4443,"column":31}},{"start":{"line":4447,"column":9},"end":{"line":4447,"column":31}},{"start":{"line":4448,"column":9},"end":{"line":4448,"column":31}},{"start":{"line":4449,"column":9},"end":{"line":4449,"column":31}},{"start":{"line":4453,"column":9},"end":{"line":4453,"column":31}},{"start":{"line":4454,"column":9},"end":{"line":4454,"column":31}},{"start":{"line":4455,"column":9},"end":{"line":4455,"column":31}},{"start":{"line":4459,"column":9},"end":{"line":4459,"column":31}},{"start":{"line":4460,"column":9},"end":{"line":4460,"column":31}},{"start":{"line":4461,"column":9},"end":{"line":4461,"column":31}},{"start":{"line":4465,"column":9},"end":{"line":4465,"column":31}},{"start":{"line":4466,"column":9},"end":{"line":4466,"column":31}},{"start":{"line":4467,"column":9},"end":{"line":4467,"column":31}}]},"306":{"line":4477,"type":"if","locations":[{"start":{"line":4477,"column":4},"end":{"line":4477,"column":4}},{"start":{"line":4477,"column":4},"end":{"line":4477,"column":4}}]},"307":{"line":4481,"type":"if","locations":[{"start":{"line":4481,"column":4},"end":{"line":4481,"column":4}},{"start":{"line":4481,"column":4},"end":{"line":4481,"column":4}}]},"308":{"line":4494,"type":"binary-expr","locations":[{"start":{"line":4494,"column":16},"end":{"line":4494,"column":29}},{"start":{"line":4495,"column":5},"end":{"line":4495,"column":18}},{"start":{"line":4496,"column":6},"end":{"line":4496,"column":19}},{"start":{"line":4497,"column":5},"end":{"line":4497,"column":18}}]},"309":{"line":4506,"type":"if","locations":[{"start":{"line":4506,"column":4},"end":{"line":4506,"column":4}},{"start":{"line":4506,"column":4},"end":{"line":4506,"column":4}}]},"310":{"line":4510,"type":"if","locations":[{"start":{"line":4510,"column":4},"end":{"line":4510,"column":4}},{"start":{"line":4510,"column":4},"end":{"line":4510,"column":4}}]},"311":{"line":4514,"type":"if","locations":[{"start":{"line":4514,"column":4},"end":{"line":4514,"column":4}},{"start":{"line":4514,"column":4},"end":{"line":4514,"column":4}}]},"312":{"line":4521,"type":"if","locations":[{"start":{"line":4521,"column":4},"end":{"line":4521,"column":4}},{"start":{"line":4521,"column":4},"end":{"line":4521,"column":4}}]},"313":{"line":4527,"type":"if","locations":[{"start":{"line":4527,"column":4},"end":{"line":4527,"column":4}},{"start":{"line":4527,"column":4},"end":{"line":4527,"column":4}}]},"314":{"line":4593,"type":"if","locations":[{"start":{"line":4593,"column":4},"end":{"line":4593,"column":4}},{"start":{"line":4593,"column":4},"end":{"line":4593,"column":4}}]},"315":{"line":4597,"type":"if","locations":[{"start":{"line":4597,"column":11},"end":{"line":4597,"column":11}},{"start":{"line":4597,"column":11},"end":{"line":4597,"column":11}}]},"316":{"line":4622,"type":"if","locations":[{"start":{"line":4622,"column":4},"end":{"line":4622,"column":4}},{"start":{"line":4622,"column":4},"end":{"line":4622,"column":4}}]},"317":{"line":4642,"type":"if","locations":[{"start":{"line":4642,"column":4},"end":{"line":4642,"column":4}},{"start":{"line":4642,"column":4},"end":{"line":4642,"column":4}}]},"318":{"line":4646,"type":"if","locations":[{"start":{"line":4646,"column":4},"end":{"line":4646,"column":4}},{"start":{"line":4646,"column":4},"end":{"line":4646,"column":4}}]},"319":{"line":4650,"type":"if","locations":[{"start":{"line":4650,"column":4},"end":{"line":4650,"column":4}},{"start":{"line":4650,"column":4},"end":{"line":4650,"column":4}}]},"320":{"line":4654,"type":"if","locations":[{"start":{"line":4654,"column":4},"end":{"line":4654,"column":4}},{"start":{"line":4654,"column":4},"end":{"line":4654,"column":4}}]},"321":{"line":4676,"type":"if","locations":[{"start":{"line":4676,"column":4},"end":{"line":4676,"column":4}},{"start":{"line":4676,"column":4},"end":{"line":4676,"column":4}}]},"322":{"line":4680,"type":"if","locations":[{"start":{"line":4680,"column":11},"end":{"line":4680,"column":11}},{"start":{"line":4680,"column":11},"end":{"line":4680,"column":11}}]},"323":{"line":4703,"type":"if","locations":[{"start":{"line":4703,"column":4},"end":{"line":4703,"column":4}},{"start":{"line":4703,"column":4},"end":{"line":4703,"column":4}}]},"324":{"line":4718,"type":"if","locations":[{"start":{"line":4718,"column":4},"end":{"line":4718,"column":4}},{"start":{"line":4718,"column":4},"end":{"line":4718,"column":4}}]},"325":{"line":4724,"type":"if","locations":[{"start":{"line":4724,"column":4},"end":{"line":4724,"column":4}},{"start":{"line":4724,"column":4},"end":{"line":4724,"column":4}}]},"326":{"line":4740,"type":"if","locations":[{"start":{"line":4740,"column":4},"end":{"line":4740,"column":4}},{"start":{"line":4740,"column":4},"end":{"line":4740,"column":4}}]},"327":{"line":4749,"type":"if","locations":[{"start":{"line":4749,"column":4},"end":{"line":4749,"column":4}},{"start":{"line":4749,"column":4},"end":{"line":4749,"column":4}}]},"328":{"line":4794,"type":"if","locations":[{"start":{"line":4794,"column":8},"end":{"line":4794,"column":8}},{"start":{"line":4794,"column":8},"end":{"line":4794,"column":8}}]},"329":{"line":4839,"type":"if","locations":[{"start":{"line":4839,"column":8},"end":{"line":4839,"column":8}},{"start":{"line":4839,"column":8},"end":{"line":4839,"column":8}}]},"330":{"line":4892,"type":"if","locations":[{"start":{"line":4892,"column":8},"end":{"line":4892,"column":8}},{"start":{"line":4892,"column":8},"end":{"line":4892,"column":8}}]},"331":{"line":4895,"type":"if","locations":[{"start":{"line":4895,"column":8},"end":{"line":4895,"column":8}},{"start":{"line":4895,"column":8},"end":{"line":4895,"column":8}}]},"332":{"line":4898,"type":"if","locations":[{"start":{"line":4898,"column":8},"end":{"line":4898,"column":8}},{"start":{"line":4898,"column":8},"end":{"line":4898,"column":8}}]},"333":{"line":4902,"type":"if","locations":[{"start":{"line":4902,"column":8},"end":{"line":4902,"column":8}},{"start":{"line":4902,"column":8},"end":{"line":4902,"column":8}}]},"334":{"line":4905,"type":"if","locations":[{"start":{"line":4905,"column":8},"end":{"line":4905,"column":8}},{"start":{"line":4905,"column":8},"end":{"line":4905,"column":8}}]},"335":{"line":4908,"type":"if","locations":[{"start":{"line":4908,"column":8},"end":{"line":4908,"column":8}},{"start":{"line":4908,"column":8},"end":{"line":4908,"column":8}}]},"336":{"line":4997,"type":"if","locations":[{"start":{"line":4997,"column":4},"end":{"line":4997,"column":4}},{"start":{"line":4997,"column":4},"end":{"line":4997,"column":4}}]},"337":{"line":5002,"type":"if","locations":[{"start":{"line":5002,"column":4},"end":{"line":5002,"column":4}},{"start":{"line":5002,"column":4},"end":{"line":5002,"column":4}}]},"338":{"line":5011,"type":"if","locations":[{"start":{"line":5011,"column":4},"end":{"line":5011,"column":4}},{"start":{"line":5011,"column":4},"end":{"line":5011,"column":4}}]},"339":{"line":5020,"type":"if","locations":[{"start":{"line":5020,"column":4},"end":{"line":5020,"column":4}},{"start":{"line":5020,"column":4},"end":{"line":5020,"column":4}}]},"340":{"line":5083,"type":"if","locations":[{"start":{"line":5083,"column":4},"end":{"line":5083,"column":4}},{"start":{"line":5083,"column":4},"end":{"line":5083,"column":4}}]},"341":{"line":5101,"type":"if","locations":[{"start":{"line":5101,"column":4},"end":{"line":5101,"column":4}},{"start":{"line":5101,"column":4},"end":{"line":5101,"column":4}}]},"342":{"line":5136,"type":"if","locations":[{"start":{"line":5136,"column":4},"end":{"line":5136,"column":4}},{"start":{"line":5136,"column":4},"end":{"line":5136,"column":4}}]},"343":{"line":5140,"type":"if","locations":[{"start":{"line":5140,"column":4},"end":{"line":5140,"column":4}},{"start":{"line":5140,"column":4},"end":{"line":5140,"column":4}}]},"344":{"line":5144,"type":"if","locations":[{"start":{"line":5144,"column":4},"end":{"line":5144,"column":4}},{"start":{"line":5144,"column":4},"end":{"line":5144,"column":4}}]},"345":{"line":5148,"type":"if","locations":[{"start":{"line":5148,"column":4},"end":{"line":5148,"column":4}},{"start":{"line":5148,"column":4},"end":{"line":5148,"column":4}}]},"346":{"line":5243,"type":"if","locations":[{"start":{"line":5243,"column":4},"end":{"line":5243,"column":4}},{"start":{"line":5243,"column":4},"end":{"line":5243,"column":4}}]},"347":{"line":5247,"type":"if","locations":[{"start":{"line":5247,"column":4},"end":{"line":5247,"column":4}},{"start":{"line":5247,"column":4},"end":{"line":5247,"column":4}}]},"348":{"line":5251,"type":"if","locations":[{"start":{"line":5251,"column":4},"end":{"line":5251,"column":4}},{"start":{"line":5251,"column":4},"end":{"line":5251,"column":4}}]},"349":{"line":5255,"type":"if","locations":[{"start":{"line":5255,"column":4},"end":{"line":5255,"column":4}},{"start":{"line":5255,"column":4},"end":{"line":5255,"column":4}}]},"350":{"line":5342,"type":"if","locations":[{"start":{"line":5342,"column":4},"end":{"line":5342,"column":4}},{"start":{"line":5342,"column":4},"end":{"line":5342,"column":4}}]},"351":{"line":5342,"type":"binary-expr","locations":[{"start":{"line":5342,"column":7},"end":{"line":5342,"column":19}},{"start":{"line":5342,"column":23},"end":{"line":5342,"column":49}}]},"352":{"line":5346,"type":"if","locations":[{"start":{"line":5346,"column":4},"end":{"line":5346,"column":4}},{"start":{"line":5346,"column":4},"end":{"line":5346,"column":4}}]},"353":{"line":5346,"type":"binary-expr","locations":[{"start":{"line":5346,"column":7},"end":{"line":5346,"column":23}},{"start":{"line":5346,"column":27},"end":{"line":5346,"column":57}}]},"354":{"line":5350,"type":"if","locations":[{"start":{"line":5350,"column":4},"end":{"line":5350,"column":4}},{"start":{"line":5350,"column":4},"end":{"line":5350,"column":4}}]},"355":{"line":5350,"type":"binary-expr","locations":[{"start":{"line":5350,"column":7},"end":{"line":5350,"column":39}},{"start":{"line":5350,"column":43},"end":{"line":5350,"column":89}}]},"356":{"line":5355,"type":"binary-expr","locations":[{"start":{"line":5355,"column":29},"end":{"line":5355,"column":47}},{"start":{"line":5355,"column":51},"end":{"line":5355,"column":52}}]},"357":{"line":5356,"type":"binary-expr","locations":[{"start":{"line":5356,"column":27},"end":{"line":5356,"column":45}},{"start":{"line":5356,"column":49},"end":{"line":5356,"column":50}}]},"358":{"line":5358,"type":"cond-expr","locations":[{"start":{"line":5358,"column":53},"end":{"line":5358,"column":90}},{"start":{"line":5358,"column":94},"end":{"line":5358,"column":107}}]},"359":{"line":5366,"type":"if","locations":[{"start":{"line":5366,"column":8},"end":{"line":5366,"column":8}},{"start":{"line":5366,"column":8},"end":{"line":5366,"column":8}}]},"360":{"line":5366,"type":"binary-expr","locations":[{"start":{"line":5366,"column":11},"end":{"line":5366,"column":43}},{"start":{"line":5366,"column":47},"end":{"line":5366,"column":65}}]},"361":{"line":5391,"type":"cond-expr","locations":[{"start":{"line":5391,"column":57},"end":{"line":5391,"column":61}},{"start":{"line":5391,"column":64},"end":{"line":5391,"column":76}}]},"362":{"line":5399,"type":"if","locations":[{"start":{"line":5399,"column":12},"end":{"line":5399,"column":12}},{"start":{"line":5399,"column":12},"end":{"line":5399,"column":12}}]},"363":{"line":5480,"type":"if","locations":[{"start":{"line":5480,"column":8},"end":{"line":5480,"column":8}},{"start":{"line":5480,"column":8},"end":{"line":5480,"column":8}}]},"364":{"line":5486,"type":"if","locations":[{"start":{"line":5486,"column":8},"end":{"line":5486,"column":8}},{"start":{"line":5486,"column":8},"end":{"line":5486,"column":8}}]},"365":{"line":5492,"type":"if","locations":[{"start":{"line":5492,"column":8},"end":{"line":5492,"column":8}},{"start":{"line":5492,"column":8},"end":{"line":5492,"column":8}}]},"366":{"line":5541,"type":"if","locations":[{"start":{"line":5541,"column":4},"end":{"line":5541,"column":4}},{"start":{"line":5541,"column":4},"end":{"line":5541,"column":4}}]},"367":{"line":5541,"type":"binary-expr","locations":[{"start":{"line":5541,"column":7},"end":{"line":5541,"column":23}},{"start":{"line":5541,"column":27},"end":{"line":5541,"column":57}},{"start":{"line":5541,"column":61},"end":{"line":5541,"column":74}}]},"368":{"line":5545,"type":"if","locations":[{"start":{"line":5545,"column":4},"end":{"line":5545,"column":4}},{"start":{"line":5545,"column":4},"end":{"line":5545,"column":4}}]},"369":{"line":5545,"type":"binary-expr","locations":[{"start":{"line":5545,"column":7},"end":{"line":5545,"column":34}},{"start":{"line":5545,"column":38},"end":{"line":5545,"column":79}}]},"370":{"line":5609,"type":"if","locations":[{"start":{"line":5609,"column":12},"end":{"line":5609,"column":12}},{"start":{"line":5609,"column":12},"end":{"line":5609,"column":12}}]},"371":{"line":5634,"type":"cond-expr","locations":[{"start":{"line":5634,"column":43},"end":{"line":5634,"column":79}},{"start":{"line":5635,"column":43},"end":{"line":5635,"column":79}}]},"372":{"line":5644,"type":"if","locations":[{"start":{"line":5644,"column":12},"end":{"line":5644,"column":12}},{"start":{"line":5644,"column":12},"end":{"line":5644,"column":12}}]},"373":{"line":5681,"type":"if","locations":[{"start":{"line":5681,"column":12},"end":{"line":5681,"column":12}},{"start":{"line":5681,"column":12},"end":{"line":5681,"column":12}}]},"374":{"line":5719,"type":"if","locations":[{"start":{"line":5719,"column":16},"end":{"line":5719,"column":16}},{"start":{"line":5719,"column":16},"end":{"line":5719,"column":16}}]},"375":{"line":5725,"type":"if","locations":[{"start":{"line":5725,"column":16},"end":{"line":5725,"column":16}},{"start":{"line":5725,"column":16},"end":{"line":5725,"column":16}}]},"376":{"line":5729,"type":"if","locations":[{"start":{"line":5729,"column":16},"end":{"line":5729,"column":16}},{"start":{"line":5729,"column":16},"end":{"line":5729,"column":16}}]},"377":{"line":5771,"type":"if","locations":[{"start":{"line":5771,"column":12},"end":{"line":5771,"column":12}},{"start":{"line":5771,"column":12},"end":{"line":5771,"column":12}}]},"378":{"line":5810,"type":"if","locations":[{"start":{"line":5810,"column":0},"end":{"line":5810,"column":0}},{"start":{"line":5810,"column":0},"end":{"line":5810,"column":0}}]}},"l":{"1":1,"2":1,"5":1,"6":1,"9":1,"10":1,"11":0,"12":0,"15":1,"23":1,"27":1,"28":1,"44":1,"56":1,"57":1,"58":1,"60":1,"61":0,"63":1,"65":1,"66":1,"68":1,"70":1,"71":1,"73":1,"75":1,"76":1,"78":1,"80":1,"81":1,"83":1,"85":1,"86":1,"88":1,"90":1,"91":1,"93":1,"104":1,"111":1,"113":1,"114":0,"116":1,"118":1,"119":0,"121":1,"123":1,"124":0,"126":1,"128":1,"130":1,"131":1,"138":1,"140":1,"141":0,"142":0,"145":1,"147":1,"149":1,"150":1,"151":0,"152":0,"153":0,"154":0,"156":0,"157":0,"160":1,"162":1,"169":1,"170":1,"171":1,"180":1,"181":2,"182":2,"183":2,"184":2,"192":1,"196":2,"197":2,"204":1,"205":0,"211":1,"212":1,"213":0,"214":0,"222":1,"223":0,"230":1,"231":0,"238":1,"239":1,"240":1,"241":1,"245":0,"247":0,"248":0,"251":0,"260":1,"265":0,"267":0,"269":0,"271":0,"272":0,"273":0,"275":0,"276":0,"277":0,"278":0,"279":0,"280":0,"282":0,"283":0,"284":0,"285":0,"286":0,"287":0,"289":0,"291":0,"292":0,"293":0,"294":0,"295":0,"297":0,"298":0,"300":0,"301":0,"302":0,"310":1,"311":0,"312":0,"313":0,"314":0,"321":1,"322":0,"323":0,"324":0,"332":1,"333":0,"334":0,"335":0,"342":1,"343":0,"350":1,"351":0,"352":0,"353":0,"355":0,"357":0,"358":0,"360":0,"362":0,"363":0,"364":0,"366":0,"368":0,"369":0,"370":0,"373":0,"375":0,"376":0,"377":0,"379":0,"381":0,"382":0,"383":0,"386":0,"388":0,"390":0,"392":0,"402":1,"403":0,"404":0,"411":1,"412":0,"413":0,"414":0,"416":0,"417":0,"425":1,"426":0,"429":0,"430":0,"433":0,"434":0,"437":0,"438":0,"441":0,"442":0,"445":0,"446":0,"449":0,"450":0,"458":1,"459":0,"463":0,"464":0,"468":0,"469":0,"473":0,"474":0,"478":0,"479":0,"482":0,"483":0,"486":0,"487":0,"490":1,"493":0,"494":0,"495":0,"498":1,"501":0,"504":1,"507":0,"510":1,"514":0,"515":0,"518":1,"521":0,"524":1,"527":0,"529":0,"530":0,"532":0,"534":0,"536":0,"537":0,"539":0,"540":0,"541":0,"542":0,"544":0,"545":0,"547":0,"548":0,"550":0,"552":0,"553":0,"555":0,"557":0,"558":0,"559":0,"560":0,"561":0,"564":0,"565":0,"566":0,"568":0,"573":0,"574":0,"584":1,"589":0,"591":0,"602":1,"606":1,"607":1,"614":1,"615":0,"621":1,"622":0,"623":0,"624":0,"632":1,"641":1,"648":0,"649":0,"651":0,"653":0,"654":0,"656":0,"658":0,"659":0,"661":0,"663":0,"664":0,"666":0,"668":0,"669":0,"671":0,"681":1,"686":0,"687":0,"689":0,"691":0,"692":0,"693":0,"695":0,"696":0,"697":0,"698":0,"699":0,"700":0,"701":0,"702":0,"703":0,"704":0,"705":0,"710":0,"711":0,"715":0,"716":0,"718":0,"736":1,"741":0,"743":0,"745":0,"746":0,"747":0,"749":0,"750":0,"752":0,"753":0,"755":0,"756":0,"757":0,"760":0,"761":0,"764":0,"765":0,"766":0,"767":0,"768":0,"774":0,"785":0,"796":1,"803":0,"805":0,"807":0,"809":0,"810":0,"812":0,"814":0,"816":0,"818":0,"819":0,"822":0,"823":0,"826":0,"827":0,"830":0,"851":1,"868":0,"869":0,"870":0,"871":0,"872":0,"874":0,"875":0,"877":0,"879":0,"880":0,"882":0,"884":0,"885":0,"887":0,"889":0,"890":0,"892":0,"894":0,"895":0,"897":0,"899":0,"900":0,"902":0,"904":0,"905":0,"907":0,"909":0,"910":0,"912":0,"914":0,"915":0,"917":0,"919":0,"920":0,"922":0,"985":1,"1044":0,"1045":0,"1046":0,"1047":0,"1049":0,"1051":0,"1052":0,"1054":0,"1056":0,"1057":0,"1059":0,"1061":0,"1062":0,"1064":0,"1066":0,"1067":0,"1082":0,"1084":0,"1085":0,"1087":0,"1089":0,"1090":0,"1092":0,"1094":0,"1095":0,"1097":0,"1099":0,"1100":0,"1102":0,"1104":0,"1105":0,"1107":0,"1109":0,"1110":0,"1112":0,"1114":0,"1115":0,"1117":0,"1119":0,"1120":0,"1122":0,"1124":0,"1125":0,"1127":0,"1129":0,"1130":0,"1132":0,"1134":0,"1135":0,"1137":0,"1139":0,"1140":0,"1142":0,"1144":0,"1145":0,"1147":0,"1149":0,"1150":0,"1152":0,"1154":0,"1155":0,"1157":0,"1159":0,"1160":0,"1162":0,"1164":0,"1165":0,"1167":0,"1169":0,"1170":0,"1172":0,"1174":0,"1175":0,"1177":0,"1179":0,"1180":0,"1182":0,"1184":0,"1185":0,"1187":0,"1189":0,"1190":0,"1192":0,"1194":0,"1195":0,"1197":0,"1199":0,"1200":0,"1202":0,"1204":0,"1205":0,"1207":0,"1209":0,"1210":0,"1212":0,"1214":0,"1215":0,"1217":0,"1219":0,"1220":0,"1222":0,"1224":0,"1225":0,"1227":0,"1229":0,"1230":0,"1232":0,"1234":0,"1235":0,"1237":0,"1239":0,"1240":0,"1242":0,"1244":0,"1245":0,"1247":0,"1249":0,"1250":0,"1252":0,"1254":0,"1255":0,"1257":0,"1259":0,"1260":0,"1262":0,"1264":0,"1265":0,"1267":0,"1269":0,"1270":0,"1272":0,"1274":0,"1275":0,"1277":0,"1279":0,"1280":0,"1282":0,"1284":0,"1285":0,"1287":0,"1289":0,"1290":0,"1292":0,"1294":0,"1295":0,"1297":0,"1299":0,"1300":0,"1302":0,"1304":0,"1305":0,"1307":0,"1309":0,"1310":0,"1312":0,"1314":0,"1315":0,"1317":0,"1319":0,"1320":0,"1322":0,"1324":0,"1325":0,"1327":0,"1329":0,"1330":0,"1332":0,"1340":1,"1341":1,"1342":1,"1348":1,"1349":1,"1350":1,"1356":1,"1357":1,"1358":1,"1359":1,"1360":1,"1366":1,"1367":1,"1368":1,"1369":1,"1370":1,"1371":1,"1372":1,"1373":1,"1374":1,"1375":1,"1376":1,"1382":1,"1383":1,"1384":1,"1385":1,"1386":1,"1392":1,"1393":1,"1394":1,"1395":1,"1396":1,"1397":1,"1398":1,"1399":1,"1405":1,"1406":1,"1407":1,"1413":1,"1414":1,"1420":1,"1421":1,"1422":1,"1423":1,"1424":1,"1425":1,"1426":1,"1427":1,"1428":1,"1429":1,"1430":1,"1439":1,"1446":0,"1448":0,"1450":0,"1452":0,"1454":0,"1505":0,"1518":0,"1520":0,"1576":0,"1590":0,"1593":0,"1594":0,"1602":0,"1604":0,"1608":0,"1609":0,"1613":0,"1616":0,"1625":1,"1630":0,"1632":0,"1633":0,"1636":0,"1637":0,"1640":0,"1641":0,"1648":1,"1649":0,"1655":1,"1662":0,"1664":0,"1665":0,"1668":0,"1669":0,"1672":0,"1673":0,"1676":0,"1677":0,"1681":1,"1682":0,"1683":0,"1684":0,"1685":0,"1688":1,"1689":0,"1690":0,"1696":0,"1702":0,"1705":1,"1706":0,"1707":0,"1708":0,"1709":0,"1712":1,"1713":0,"1714":0,"1715":0,"1718":1,"1719":0,"1720":0,"1721":0,"1724":1,"1725":0,"1726":0,"1727":0,"1730":1,"1731":0,"1732":0,"1738":0,"1739":0,"1747":1,"1748":0,"1756":1,"1758":0,"1760":0,"1762":0,"1763":0,"1766":0,"1768":0,"1769":0,"1770":0,"1773":0,"1775":0,"1776":0,"1777":0,"1779":0,"1780":0,"1781":0,"1783":0,"1784":0,"1785":0,"1787":0,"1852":1,"1873":0,"1874":0,"1875":0,"1876":0,"1877":0,"1878":0,"1879":0,"1881":0,"1882":0,"1884":0,"1886":0,"1887":0,"1889":0,"1891":0,"1892":0,"1894":0,"1896":0,"1897":0,"1899":0,"1901":0,"1902":0,"1904":0,"1906":0,"1907":0,"1909":0,"1911":0,"1912":0,"1914":0,"1916":0,"1917":0,"1919":0,"1921":0,"1922":0,"1924":0,"1926":0,"1927":0,"1929":0,"1931":0,"1933":0,"1935":0,"1943":1,"1944":1,"1955":1,"1957":0,"1959":0,"1960":0,"1963":0,"1965":0,"1967":0,"1969":0,"1971":0,"1973":0,"1975":0,"1977":0,"1979":0,"1980":0,"1981":0,"1983":0,"1984":0,"1985":0,"1987":0,"1988":0,"1989":0,"1990":0,"1992":0,"1993":0,"1994":0,"1996":0,"1997":0,"1998":0,"2000":0,"2006":0,"2007":0,"2008":0,"2015":0,"2016":0,"2029":0,"2030":0,"2040":0,"2042":0,"2044":0,"2046":0,"2047":0,"2048":0,"2049":0,"2053":0,"2055":0,"2057":0,"2058":0,"2061":0,"2062":0,"2065":0,"2067":0,"2070":1,"2072":0,"2073":0,"2074":0,"2075":0,"2077":0,"2078":0,"2079":0,"2082":0,"2088":1,"2090":0,"2092":0,"2093":0,"2100":0,"2102":0,"2104":0,"2106":0,"2107":0,"2108":0,"2110":0,"2127":0,"2128":0,"2136":0,"2137":0,"2138":0,"2139":0,"2141":0,"2145":0,"2173":1,"2181":1,"2183":0,"2184":0,"2185":0,"2189":0,"2199":1,"2201":0,"2202":0,"2211":0,"2221":0,"2222":0,"2225":0,"2232":0,"2235":0,"2250":0,"2252":0,"2254":0,"2260":0,"2268":0,"2269":0,"2270":0,"2272":0,"2273":0,"2274":0,"2277":0,"2279":0,"2294":0,"2295":0,"2296":0,"2297":0,"2306":0,"2307":0,"2308":0,"2309":0,"2310":0,"2311":0,"2312":0,"2315":0,"2316":0,"2320":0,"2331":1,"2333":0,"2334":0,"2337":0,"2339":0,"2341":0,"2342":0,"2349":0,"2351":0,"2353":0,"2355":0,"2356":0,"2364":0,"2375":1,"2381":0,"2382":0,"2383":0,"2385":0,"2386":0,"2388":0,"2396":1,"2397":1,"2407":1,"2414":0,"2415":0,"2416":0,"2417":0,"2418":0,"2425":1,"2426":0,"2441":1,"2446":0,"2447":0,"2449":0,"2451":0,"2453":0,"2454":0,"2456":0,"2458":0,"2465":1,"2466":0,"2475":1,"2478":0,"2479":0,"2487":1,"2488":0,"2490":1,"2520":0,"2521":0,"2523":0,"2525":0,"2526":0,"2528":0,"2530":0,"2531":0,"2533":0,"2535":0,"2536":0,"2538":0,"2540":0,"2541":0,"2543":0,"2545":0,"2546":0,"2548":0,"2550":0,"2551":0,"2553":0,"2555":0,"2556":0,"2558":0,"2560":0,"2561":0,"2563":0,"2565":0,"2566":0,"2568":0,"2570":0,"2571":0,"2573":0,"2575":0,"2576":0,"2578":0,"2580":0,"2581":0,"2583":0,"2585":0,"2586":0,"2588":0,"2590":0,"2591":0,"2593":0,"2595":0,"2596":0,"2598":0,"2600":0,"2601":0,"2603":0,"2605":0,"2606":0,"2608":0,"2610":0,"2611":0,"2613":0,"2615":0,"2616":0,"2618":0,"2620":0,"2621":0,"2623":0,"2625":0,"2626":0,"2628":0,"2630":0,"2631":0,"2633":0,"2635":0,"2636":0,"2638":0,"2640":0,"2641":0,"2643":0,"2645":0,"2646":0,"2648":0,"2650":0,"2651":0,"2653":0,"2655":0,"2656":0,"2658":0,"2660":0,"2663":1,"2665":0,"2704":1,"2709":0,"2710":0,"2711":0,"2713":0,"2715":0,"2716":0,"2718":0,"2720":0,"2727":1,"2728":0,"2735":1,"2736":0,"2745":1,"2747":0,"2749":0,"2791":1,"2809":0,"2810":0,"2811":0,"2812":0,"2813":0,"2814":0,"2815":0,"2816":0,"2817":0,"2818":0,"2819":0,"2820":0,"2821":0,"2822":0,"2823":0,"2824":0,"2826":0,"2828":0,"2830":0,"2837":1,"2839":0,"2874":0,"2876":0,"2886":1,"2891":0,"2892":0,"2895":0,"2896":0,"2899":0,"2925":1,"2931":0,"2932":0,"2933":0,"2934":0,"2935":0,"2954":1,"2968":1,"2969":1,"2970":1,"2971":1,"2972":1,"2973":0,"2976":1,"2977":1,"2979":1,"2981":1,"2982":1,"2984":1,"2986":1,"2987":1,"2989":1,"2991":1,"2992":1,"2994":1,"2996":1,"2997":1,"2999":1,"3001":1,"3002":1,"3004":1,"3006":1,"3007":1,"3009":1,"3011":1,"3012":1,"3014":1,"3016":1,"3017":1,"3019":1,"3031":1,"3043":1,"3044":1,"3045":1,"3048":0,"3049":0,"3054":0,"3055":0,"3056":0,"3058":0,"3060":0,"3061":0,"3064":0,"3066":0,"3068":0,"3070":0,"3072":0,"3074":0,"3076":0,"3077":0,"3083":0,"3090":0,"3092":0,"3094":0,"3096":0,"3098":0,"3104":0,"3106":0,"3114":0,"3116":0,"3118":0,"3120":0,"3123":0,"3128":0,"3131":0,"3145":0,"3148":0,"3152":0,"3154":0,"3156":0,"3158":0,"3202":0,"3205":0,"3236":0,"3248":0,"3260":1,"3269":0,"3271":0,"3273":0,"3275":0,"3277":0,"3279":0,"3281":0,"3283":0,"3285":0,"3287":0,"3289":0,"3294":0,"3295":0,"3307":0,"3309":0,"3326":0,"3344":0,"3350":0,"3368":0,"3371":0,"3376":0,"3378":0,"3380":0,"3382":0,"3383":0,"3384":0,"3405":0,"3406":0,"3407":0,"3410":0,"3415":0,"3416":0,"3426":0,"3428":0,"3430":0,"3435":0,"3437":0,"3443":0,"3445":0,"3446":0,"3447":0,"3449":0,"3450":0,"3451":0,"3453":0,"3454":0,"3455":0,"3457":0,"3458":0,"3459":0,"3460":0,"3462":0,"3466":0,"3469":0,"3472":0,"3474":0,"3475":0,"3477":0,"3479":0,"3481":0,"3483":0,"3485":0,"3486":0,"3489":0,"3490":0,"3493":0,"3494":0,"3495":0,"3496":0,"3499":0,"3500":0,"3501":0,"3502":0,"3503":0,"3504":0,"3507":0,"3508":0,"3509":0,"3511":0,"3512":0,"3513":0,"3515":0,"3516":0,"3518":0,"3519":0,"3523":0,"3525":0,"3527":0,"3528":0,"3529":0,"3531":0,"3532":0,"3533":0,"3535":0,"3536":0,"3537":0,"3539":0,"3540":0,"3541":0,"3542":0,"3544":0,"3545":0,"3548":0,"3549":0,"3552":0,"3563":0,"3584":1,"3598":0,"3600":0,"3602":0,"3604":0,"3606":0,"3607":0,"3609":0,"3611":0,"3612":0,"3614":0,"3616":0,"3617":0,"3619":0,"3621":0,"3622":0,"3624":0,"3626":0,"3627":0,"3629":0,"3631":0,"3632":0,"3634":0,"3636":0,"3637":0,"3639":0,"3641":0,"3642":0,"3644":0,"3646":0,"3647":0,"3649":0,"3651":0,"3652":0,"3654":0,"3662":1,"3663":1,"3664":1,"3665":1,"3666":1,"3667":1,"3672":1,"3674":0,"3676":0,"3677":0,"3681":0,"3682":0,"3685":0,"3686":0,"3693":0,"3694":0,"3700":0,"3701":0,"3707":0,"3708":0,"3709":0,"3711":0,"3712":0,"3715":0,"3717":0,"3724":1,"3727":0,"3729":0,"3730":0,"3737":0,"3738":0,"3739":0,"3740":0,"3741":0,"3757":1,"3767":0,"3769":0,"3775":0,"3776":0,"3778":0,"3784":0,"3785":0,"3787":0,"3789":0,"3790":0,"3793":0,"3794":0,"3796":0,"3798":0,"3799":0,"3801":0,"3803":0,"3804":0,"3806":0,"3808":0,"3809":0,"3811":0,"3815":1,"3818":0,"3820":0,"3821":0,"3823":0,"3826":1,"3829":0,"3830":0,"3831":0,"3832":0,"3833":0,"3834":0,"3836":0,"3839":0,"3840":0,"3841":0,"3842":0,"3843":0,"3844":0,"3847":0,"3848":0,"3852":0,"3853":0,"3854":0,"3859":0,"3866":1,"3870":0,"3872":0,"3874":0,"3876":0,"3878":0,"3880":0,"3882":0,"3894":1,"3901":0,"3902":0,"3903":0,"3904":0,"3905":0,"3906":0,"3908":0,"3911":0,"3912":0,"3913":0,"3914":0,"3921":1,"3922":1,"3948":1,"3970":0,"3971":0,"3972":0,"3974":0,"3975":0,"3977":0,"3979":0,"3980":0,"3982":0,"3984":0,"3985":0,"3987":0,"3989":0,"3990":0,"3992":0,"3994":0,"3995":0,"3997":0,"3999":0,"4000":0,"4002":0,"4004":0,"4005":0,"4007":0,"4009":0,"4010":0,"4012":0,"4014":0,"4015":0,"4017":0,"4019":0,"4020":0,"4022":0,"4024":0,"4025":0,"4027":0,"4029":0,"4030":0,"4032":0,"4034":0,"4035":0,"4037":0,"4039":0,"4040":0,"4042":0,"4044":0,"4045":0,"4047":0,"4049":0,"4050":0,"4052":0,"4054":0,"4055":0,"4057":0,"4064":1,"4065":1,"4066":1,"4067":1,"4068":1,"4069":1,"4075":1,"4076":1,"4077":1,"4078":1,"4079":1,"4080":1,"4081":1,"4082":1,"4088":1,"4089":1,"4090":1,"4096":1,"4097":1,"4098":1,"4099":1,"4100":1,"4101":1,"4107":1,"4108":1,"4109":1,"4110":1,"4111":1,"4112":1,"4113":1,"4114":1,"4120":1,"4121":1,"4122":1,"4123":1,"4124":1,"4125":1,"4126":1,"4127":1,"4139":1,"4148":0,"4150":0,"4152":0,"4154":0,"4158":0,"4161":0,"4163":0,"4165":0,"4171":0,"4172":0,"4173":0,"4174":0,"4175":0,"4179":0,"4180":0,"4181":0,"4182":0,"4183":0,"4184":0,"4188":0,"4189":0,"4190":0,"4191":0,"4192":0,"4193":0,"4194":0,"4200":0,"4201":0,"4208":0,"4209":0,"4214":0,"4217":0,"4231":1,"4240":0,"4242":0,"4244":0,"4246":0,"4248":0,"4250":0,"4256":0,"4258":0,"4259":0,"4262":0,"4263":0,"4266":0,"4267":0,"4270":0,"4271":0,"4274":0,"4275":0,"4278":0,"4279":0,"4282":0,"4283":0,"4286":0,"4287":0,"4290":0,"4291":0,"4294":0,"4295":0,"4298":0,"4299":0,"4302":0,"4303":0,"4306":0,"4320":0,"4323":1,"4330":1,"4331":1,"4339":1,"4343":0,"4344":0,"4361":1,"4374":0,"4375":0,"4376":0,"4377":0,"4378":0,"4379":0,"4380":0,"4381":0,"4382":0,"4384":0,"4386":0,"4387":0,"4393":0,"4395":0,"4396":0,"4402":0,"4404":0,"4405":0,"4408":0,"4415":1,"4416":0,"4432":1,"4433":0,"4472":1,"4474":0,"4475":0,"4477":0,"4478":0,"4481":0,"4482":0,"4486":1,"4487":0,"4493":1,"4494":0,"4500":1,"4502":7,"4503":7,"4504":7,"4506":7,"4507":2,"4510":7,"4511":3,"4514":7,"4515":2,"4519":1,"4521":0,"4522":0,"4523":0,"4524":0,"4527":0,"4528":0,"4531":0,"4534":1,"4535":0,"4542":1,"4543":0,"4544":0,"4545":0,"4546":0,"4549":1,"4551":0,"4553":0,"4555":0,"4557":0,"4560":1,"4561":0,"4562":0,"4563":0,"4566":1,"4568":0,"4570":0,"4573":1,"4574":0,"4575":0,"4576":0,"4577":0,"4580":1,"4581":0,"4584":1,"4585":0,"4592":1,"4593":0,"4594":0,"4595":0,"4596":0,"4597":0,"4598":0,"4599":0,"4600":0,"4601":0,"4602":0,"4603":0,"4605":0,"4606":0,"4608":0,"4612":1,"4613":0,"4616":1,"4618":0,"4620":0,"4622":0,"4623":0,"4626":0,"4628":0,"4629":0,"4630":0,"4632":0,"4635":1,"4637":2,"4638":2,"4639":2,"4640":2,"4642":2,"4643":0,"4646":2,"4647":0,"4650":2,"4651":0,"4654":2,"4655":0,"4659":1,"4660":0,"4661":0,"4662":0,"4663":0,"4666":1,"4667":0,"4675":1,"4676":0,"4677":0,"4678":0,"4679":0,"4680":0,"4681":0,"4682":0,"4683":0,"4684":0,"4685":0,"4686":0,"4687":0,"4688":0,"4690":0,"4691":0,"4696":1,"4699":0,"4701":0,"4703":0,"4704":0,"4707":0,"4709":0,"4710":0,"4711":0,"4713":0,"4716":1,"4718":0,"4719":0,"4720":0,"4721":0,"4724":0,"4725":0,"4726":0,"4727":0,"4728":0,"4731":0,"4734":1,"4735":0,"4738":1,"4740":0,"4741":0,"4749":0,"4750":0,"4751":0,"4754":0,"4756":0,"4759":1,"4761":0,"4763":0,"4764":0,"4767":0,"4770":1,"4774":0,"4776":0,"4778":0,"4780":0,"4782":0,"4784":0,"4786":0,"4788":0,"4789":0,"4792":0,"4794":0,"4796":0,"4797":0,"4801":0,"4805":0,"4807":0,"4808":0,"4815":1,"4819":0,"4821":0,"4823":0,"4825":0,"4827":0,"4829":0,"4831":0,"4833":0,"4834":0,"4837":0,"4839":0,"4840":0,"4841":0,"4845":0,"4849":0,"4851":0,"4852":0,"4860":1,"4862":0,"4864":0,"4866":0,"4868":0,"4869":0,"4870":0,"4872":0,"4874":0,"4875":0,"4876":0,"4877":0,"4881":1,"4883":0,"4884":0,"4885":0,"4887":0,"4888":0,"4889":0,"4891":0,"4892":0,"4893":0,"4895":0,"4896":0,"4898":0,"4899":0,"4902":0,"4903":0,"4905":0,"4906":0,"4908":0,"4909":0,"4913":0,"4920":1,"4921":0,"4922":0,"4923":0,"4925":0,"4926":0,"4927":0,"4928":0,"4931":0,"4938":1,"4940":0,"4941":0,"4942":0,"4943":0,"4946":0,"4950":1,"4952":0,"4954":0,"4955":0,"4965":1,"4969":0,"4970":0,"4983":1,"4993":0,"4995":0,"4997":0,"4998":0,"5000":0,"5002":0,"5003":0,"5009":0,"5011":0,"5012":0,"5018":0,"5020":0,"5021":0,"5023":0,"5025":0,"5027":0,"5029":0,"5036":1,"5038":0,"5040":0,"5042":0,"5044":0,"5045":0,"5046":0,"5048":0,"5050":0,"5058":1,"5061":0,"5069":1,"5072":0,"5075":1,"5082":0,"5083":0,"5085":0,"5086":0,"5087":0,"5090":0,"5092":0,"5094":0,"5097":1,"5101":0,"5103":0,"5110":0,"5125":1,"5133":0,"5134":0,"5136":0,"5137":0,"5140":0,"5141":0,"5144":0,"5145":0,"5148":0,"5149":0,"5152":0,"5154":0,"5163":0,"5164":0,"5173":0,"5174":0,"5175":0,"5176":0,"5178":0,"5188":0,"5195":0,"5196":0,"5198":0,"5212":0,"5215":0,"5216":0,"5217":0,"5219":0,"5232":1,"5240":0,"5241":0,"5243":0,"5244":0,"5247":0,"5248":0,"5251":0,"5252":0,"5255":0,"5256":0,"5260":0,"5261":0,"5270":0,"5271":0,"5272":0,"5275":0,"5276":0,"5278":0,"5279":0,"5280":0,"5282":0,"5285":0,"5291":0,"5292":0,"5298":0,"5309":0,"5312":0,"5313":0,"5314":0,"5316":0,"5330":1,"5339":0,"5340":0,"5342":0,"5343":0,"5346":0,"5347":0,"5350":0,"5351":0,"5354":0,"5355":0,"5356":0,"5357":0,"5358":0,"5360":0,"5362":0,"5363":0,"5365":0,"5366":0,"5368":0,"5370":0,"5372":0,"5378":0,"5379":0,"5380":0,"5381":0,"5382":0,"5384":0,"5388":0,"5390":0,"5395":0,"5396":0,"5397":0,"5399":0,"5400":0,"5404":0,"5405":0,"5406":0,"5407":0,"5409":0,"5410":0,"5411":0,"5413":0,"5414":0,"5415":0,"5417":0,"5427":1,"5436":0,"5437":0,"5439":0,"5441":0,"5449":0,"5450":0,"5451":0,"5452":0,"5453":0,"5455":0,"5466":0,"5467":0,"5468":0,"5470":0,"5471":0,"5472":0,"5474":0,"5476":0,"5477":0,"5478":0,"5480":0,"5481":0,"5482":0,"5483":0,"5486":0,"5487":0,"5488":0,"5489":0,"5492":0,"5493":0,"5494":0,"5495":0,"5498":0,"5500":0,"5503":0,"5504":0,"5506":0,"5507":0,"5510":0,"5511":0,"5514":0,"5528":1,"5537":0,"5539":0,"5541":0,"5542":0,"5545":0,"5546":0,"5549":0,"5551":0,"5553":0,"5554":0,"5556":0,"5557":0,"5558":0,"5559":0,"5561":0,"5562":0,"5564":0,"5565":0,"5567":0,"5569":0,"5570":0,"5571":0,"5573":0,"5591":0,"5592":0,"5594":0,"5600":0,"5606":0,"5609":0,"5610":0,"5611":0,"5620":0,"5638":0,"5640":0,"5641":0,"5644":0,"5645":0,"5677":0,"5678":0,"5679":0,"5681":0,"5682":0,"5685":0,"5690":0,"5693":0,"5699":0,"5705":0,"5711":0,"5717":0,"5719":0,"5720":0,"5723":0,"5725":0,"5726":0,"5729":0,"5730":0,"5732":0,"5738":0,"5744":0,"5750":0,"5756":0,"5766":0,"5767":0,"5769":0,"5771":0,"5772":0,"5775":0,"5776":0,"5777":0,"5780":0,"5781":0,"5783":0,"5794":0,"5795":0,"5798":0,"5799":0,"5800":0,"5801":0,"5802":0,"5804":0,"5810":1,"5811":1}}}
diff --git a/build/coverage/lcov-report/base.css b/build/coverage/lcov-report/base.css
deleted file mode 100644
index 29737bc..0000000
--- a/build/coverage/lcov-report/base.css
+++ /dev/null
@@ -1,213 +0,0 @@
-body, html {
- margin:0; padding: 0;
- height: 100%;
-}
-body {
- font-family: Helvetica Neue, Helvetica, Arial;
- font-size: 14px;
- color:#333;
-}
-.small { font-size: 12px; }
-*, *:after, *:before {
- -webkit-box-sizing:border-box;
- -moz-box-sizing:border-box;
- box-sizing:border-box;
- }
-h1 { font-size: 20px; margin: 0;}
-h2 { font-size: 14px; }
-pre {
- font: 12px/1.4 Consolas, "Liberation Mono", Menlo, Courier, monospace;
- margin: 0;
- padding: 0;
- -moz-tab-size: 2;
- -o-tab-size: 2;
- tab-size: 2;
-}
-a { color:#0074D9; text-decoration:none; }
-a:hover { text-decoration:underline; }
-.strong { font-weight: bold; }
-.space-top1 { padding: 10px 0 0 0; }
-.pad2y { padding: 20px 0; }
-.pad1y { padding: 10px 0; }
-.pad2x { padding: 0 20px; }
-.pad2 { padding: 20px; }
-.pad1 { padding: 10px; }
-.space-left2 { padding-left:55px; }
-.space-right2 { padding-right:20px; }
-.center { text-align:center; }
-.clearfix { display:block; }
-.clearfix:after {
- content:'';
- display:block;
- height:0;
- clear:both;
- visibility:hidden;
- }
-.fl { float: left; }
-@media only screen and (max-width:640px) {
- .col3 { width:100%; max-width:100%; }
- .hide-mobile { display:none!important; }
-}
-
-.quiet {
- color: #7f7f7f;
- color: rgba(0,0,0,0.5);
-}
-.quiet a { opacity: 0.7; }
-
-.fraction {
- font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace;
- font-size: 10px;
- color: #555;
- background: #E8E8E8;
- padding: 4px 5px;
- border-radius: 3px;
- vertical-align: middle;
-}
-
-div.path a:link, div.path a:visited { color: #333; }
-table.coverage {
- border-collapse: collapse;
- margin: 10px 0 0 0;
- padding: 0;
-}
-
-table.coverage td {
- margin: 0;
- padding: 0;
- vertical-align: top;
-}
-table.coverage td.line-count {
- text-align: right;
- padding: 0 5px 0 20px;
-}
-table.coverage td.line-coverage {
- text-align: right;
- padding-right: 10px;
- min-width:20px;
-}
-
-table.coverage td span.cline-any {
- display: inline-block;
- padding: 0 5px;
- width: 100%;
-}
-.missing-if-branch {
- display: inline-block;
- margin-right: 5px;
- border-radius: 3px;
- position: relative;
- padding: 0 4px;
- background: #333;
- color: yellow;
-}
-
-.skip-if-branch {
- display: none;
- margin-right: 10px;
- position: relative;
- padding: 0 4px;
- background: #ccc;
- color: white;
-}
-.missing-if-branch .typ, .skip-if-branch .typ {
- color: inherit !important;
-}
-.coverage-summary {
- border-collapse: collapse;
- width: 100%;
-}
-.coverage-summary tr { border-bottom: 1px solid #bbb; }
-.keyline-all { border: 1px solid #ddd; }
-.coverage-summary td, .coverage-summary th { padding: 10px; }
-.coverage-summary tbody { border: 1px solid #bbb; }
-.coverage-summary td { border-right: 1px solid #bbb; }
-.coverage-summary td:last-child { border-right: none; }
-.coverage-summary th {
- text-align: left;
- font-weight: normal;
- white-space: nowrap;
-}
-.coverage-summary th.file { border-right: none !important; }
-.coverage-summary th.pct { }
-.coverage-summary th.pic,
-.coverage-summary th.abs,
-.coverage-summary td.pct,
-.coverage-summary td.abs { text-align: right; }
-.coverage-summary td.file { white-space: nowrap; }
-.coverage-summary td.pic { min-width: 120px !important; }
-.coverage-summary tfoot td { }
-
-.coverage-summary .sorter {
- height: 10px;
- width: 7px;
- display: inline-block;
- margin-left: 0.5em;
- background: url(sort-arrow-sprite.png) no-repeat scroll 0 0 transparent;
-}
-.coverage-summary .sorted .sorter {
- background-position: 0 -20px;
-}
-.coverage-summary .sorted-desc .sorter {
- background-position: 0 -10px;
-}
-.status-line { height: 10px; }
-/* dark red */
-.red.solid, .status-line.low, .low .cover-fill { background:#C21F39 }
-.low .chart { border:1px solid #C21F39 }
-/* medium red */
-.cstat-no, .fstat-no, .cbranch-no, .cbranch-no { background:#F6C6CE }
-/* light red */
-.low, .cline-no { background:#FCE1E5 }
-/* light green */
-.high, .cline-yes { background:rgb(230,245,208) }
-/* medium green */
-.cstat-yes { background:rgb(161,215,106) }
-/* dark green */
-.status-line.high, .high .cover-fill { background:rgb(77,146,33) }
-.high .chart { border:1px solid rgb(77,146,33) }
-/* dark yellow (gold) */
-.medium .chart { border:1px solid #f9cd0b; }
-.status-line.medium, .medium .cover-fill { background: #f9cd0b; }
-/* light yellow */
-.medium { background: #fff4c2; }
-/* light gray */
-span.cline-neutral { background: #eaeaea; }
-
-.cbranch-no { background: yellow !important; color: #111; }
-
-.cstat-skip { background: #ddd; color: #111; }
-.fstat-skip { background: #ddd; color: #111 !important; }
-.cbranch-skip { background: #ddd !important; color: #111; }
-
-
-.cover-fill, .cover-empty {
- display:inline-block;
- height: 12px;
-}
-.chart {
- line-height: 0;
-}
-.cover-empty {
- background: white;
-}
-.cover-full {
- border-right: none !important;
-}
-pre.prettyprint {
- border: none !important;
- padding: 0 !important;
- margin: 0 !important;
-}
-.com { color: #999 !important; }
-.ignore-none { color: #999; font-weight: normal; }
-
-.wrapper {
- min-height: 100%;
- height: auto !important;
- height: 100%;
- margin: 0 auto -48px;
-}
-.footer, .push {
- height: 48px;
-}
diff --git a/build/coverage/lcov-report/build/game-lib.js.html b/build/coverage/lcov-report/build/game-lib.js.html
deleted file mode 100644
index fb37725..0000000
--- a/build/coverage/lcov-report/build/game-lib.js.html
+++ /dev/null
@@ -1,17498 +0,0 @@
-
-
-
- Code coverage report for build/game-lib.js
-
-
-
-
-
-
-
-
-
-
-
-
- 17.41%
- Statements
- 361/2074
-
-
- 4.94%
- Branches
- 40/810
-
-
- 8.44%
- Functions
- 13/154
-
-
- 17.41%
- Lines
- 361/2074
-
-
-
-
-
-1
-2
-3
-4
-5
-6
-7
-8
-9
-10
-11
-12
-13
-14
-15
-16
-17
-18
-19
-20
-21
-22
-23
-24
-25
-26
-27
-28
-29
-30
-31
-32
-33
-34
-35
-36
-37
-38
-39
-40
-41
-42
-43
-44
-45
-46
-47
-48
-49
-50
-51
-52
-53
-54
-55
-56
-57
-58
-59
-60
-61
-62
-63
-64
-65
-66
-67
-68
-69
-70
-71
-72
-73
-74
-75
-76
-77
-78
-79
-80
-81
-82
-83
-84
-85
-86
-87
-88
-89
-90
-91
-92
-93
-94
-95
-96
-97
-98
-99
-100
-101
-102
-103
-104
-105
-106
-107
-108
-109
-110
-111
-112
-113
-114
-115
-116
-117
-118
-119
-120
-121
-122
-123
-124
-125
-126
-127
-128
-129
-130
-131
-132
-133
-134
-135
-136
-137
-138
-139
-140
-141
-142
-143
-144
-145
-146
-147
-148
-149
-150
-151
-152
-153
-154
-155
-156
-157
-158
-159
-160
-161
-162
-163
-164
-165
-166
-167
-168
-169
-170
-171
-172
-173
-174
-175
-176
-177
-178
-179
-180
-181
-182
-183
-184
-185
-186
-187
-188
-189
-190
-191
-192
-193
-194
-195
-196
-197
-198
-199
-200
-201
-202
-203
-204
-205
-206
-207
-208
-209
-210
-211
-212
-213
-214
-215
-216
-217
-218
-219
-220
-221
-222
-223
-224
-225
-226
-227
-228
-229
-230
-231
-232
-233
-234
-235
-236
-237
-238
-239
-240
-241
-242
-243
-244
-245
-246
-247
-248
-249
-250
-251
-252
-253
-254
-255
-256
-257
-258
-259
-260
-261
-262
-263
-264
-265
-266
-267
-268
-269
-270
-271
-272
-273
-274
-275
-276
-277
-278
-279
-280
-281
-282
-283
-284
-285
-286
-287
-288
-289
-290
-291
-292
-293
-294
-295
-296
-297
-298
-299
-300
-301
-302
-303
-304
-305
-306
-307
-308
-309
-310
-311
-312
-313
-314
-315
-316
-317
-318
-319
-320
-321
-322
-323
-324
-325
-326
-327
-328
-329
-330
-331
-332
-333
-334
-335
-336
-337
-338
-339
-340
-341
-342
-343
-344
-345
-346
-347
-348
-349
-350
-351
-352
-353
-354
-355
-356
-357
-358
-359
-360
-361
-362
-363
-364
-365
-366
-367
-368
-369
-370
-371
-372
-373
-374
-375
-376
-377
-378
-379
-380
-381
-382
-383
-384
-385
-386
-387
-388
-389
-390
-391
-392
-393
-394
-395
-396
-397
-398
-399
-400
-401
-402
-403
-404
-405
-406
-407
-408
-409
-410
-411
-412
-413
-414
-415
-416
-417
-418
-419
-420
-421
-422
-423
-424
-425
-426
-427
-428
-429
-430
-431
-432
-433
-434
-435
-436
-437
-438
-439
-440
-441
-442
-443
-444
-445
-446
-447
-448
-449
-450
-451
-452
-453
-454
-455
-456
-457
-458
-459
-460
-461
-462
-463
-464
-465
-466
-467
-468
-469
-470
-471
-472
-473
-474
-475
-476
-477
-478
-479
-480
-481
-482
-483
-484
-485
-486
-487
-488
-489
-490
-491
-492
-493
-494
-495
-496
-497
-498
-499
-500
-501
-502
-503
-504
-505
-506
-507
-508
-509
-510
-511
-512
-513
-514
-515
-516
-517
-518
-519
-520
-521
-522
-523
-524
-525
-526
-527
-528
-529
-530
-531
-532
-533
-534
-535
-536
-537
-538
-539
-540
-541
-542
-543
-544
-545
-546
-547
-548
-549
-550
-551
-552
-553
-554
-555
-556
-557
-558
-559
-560
-561
-562
-563
-564
-565
-566
-567
-568
-569
-570
-571
-572
-573
-574
-575
-576
-577
-578
-579
-580
-581
-582
-583
-584
-585
-586
-587
-588
-589
-590
-591
-592
-593
-594
-595
-596
-597
-598
-599
-600
-601
-602
-603
-604
-605
-606
-607
-608
-609
-610
-611
-612
-613
-614
-615
-616
-617
-618
-619
-620
-621
-622
-623
-624
-625
-626
-627
-628
-629
-630
-631
-632
-633
-634
-635
-636
-637
-638
-639
-640
-641
-642
-643
-644
-645
-646
-647
-648
-649
-650
-651
-652
-653
-654
-655
-656
-657
-658
-659
-660
-661
-662
-663
-664
-665
-666
-667
-668
-669
-670
-671
-672
-673
-674
-675
-676
-677
-678
-679
-680
-681
-682
-683
-684
-685
-686
-687
-688
-689
-690
-691
-692
-693
-694
-695
-696
-697
-698
-699
-700
-701
-702
-703
-704
-705
-706
-707
-708
-709
-710
-711
-712
-713
-714
-715
-716
-717
-718
-719
-720
-721
-722
-723
-724
-725
-726
-727
-728
-729
-730
-731
-732
-733
-734
-735
-736
-737
-738
-739
-740
-741
-742
-743
-744
-745
-746
-747
-748
-749
-750
-751
-752
-753
-754
-755
-756
-757
-758
-759
-760
-761
-762
-763
-764
-765
-766
-767
-768
-769
-770
-771
-772
-773
-774
-775
-776
-777
-778
-779
-780
-781
-782
-783
-784
-785
-786
-787
-788
-789
-790
-791
-792
-793
-794
-795
-796
-797
-798
-799
-800
-801
-802
-803
-804
-805
-806
-807
-808
-809
-810
-811
-812
-813
-814
-815
-816
-817
-818
-819
-820
-821
-822
-823
-824
-825
-826
-827
-828
-829
-830
-831
-832
-833
-834
-835
-836
-837
-838
-839
-840
-841
-842
-843
-844
-845
-846
-847
-848
-849
-850
-851
-852
-853
-854
-855
-856
-857
-858
-859
-860
-861
-862
-863
-864
-865
-866
-867
-868
-869
-870
-871
-872
-873
-874
-875
-876
-877
-878
-879
-880
-881
-882
-883
-884
-885
-886
-887
-888
-889
-890
-891
-892
-893
-894
-895
-896
-897
-898
-899
-900
-901
-902
-903
-904
-905
-906
-907
-908
-909
-910
-911
-912
-913
-914
-915
-916
-917
-918
-919
-920
-921
-922
-923
-924
-925
-926
-927
-928
-929
-930
-931
-932
-933
-934
-935
-936
-937
-938
-939
-940
-941
-942
-943
-944
-945
-946
-947
-948
-949
-950
-951
-952
-953
-954
-955
-956
-957
-958
-959
-960
-961
-962
-963
-964
-965
-966
-967
-968
-969
-970
-971
-972
-973
-974
-975
-976
-977
-978
-979
-980
-981
-982
-983
-984
-985
-986
-987
-988
-989
-990
-991
-992
-993
-994
-995
-996
-997
-998
-999
-1000
-1001
-1002
-1003
-1004
-1005
-1006
-1007
-1008
-1009
-1010
-1011
-1012
-1013
-1014
-1015
-1016
-1017
-1018
-1019
-1020
-1021
-1022
-1023
-1024
-1025
-1026
-1027
-1028
-1029
-1030
-1031
-1032
-1033
-1034
-1035
-1036
-1037
-1038
-1039
-1040
-1041
-1042
-1043
-1044
-1045
-1046
-1047
-1048
-1049
-1050
-1051
-1052
-1053
-1054
-1055
-1056
-1057
-1058
-1059
-1060
-1061
-1062
-1063
-1064
-1065
-1066
-1067
-1068
-1069
-1070
-1071
-1072
-1073
-1074
-1075
-1076
-1077
-1078
-1079
-1080
-1081
-1082
-1083
-1084
-1085
-1086
-1087
-1088
-1089
-1090
-1091
-1092
-1093
-1094
-1095
-1096
-1097
-1098
-1099
-1100
-1101
-1102
-1103
-1104
-1105
-1106
-1107
-1108
-1109
-1110
-1111
-1112
-1113
-1114
-1115
-1116
-1117
-1118
-1119
-1120
-1121
-1122
-1123
-1124
-1125
-1126
-1127
-1128
-1129
-1130
-1131
-1132
-1133
-1134
-1135
-1136
-1137
-1138
-1139
-1140
-1141
-1142
-1143
-1144
-1145
-1146
-1147
-1148
-1149
-1150
-1151
-1152
-1153
-1154
-1155
-1156
-1157
-1158
-1159
-1160
-1161
-1162
-1163
-1164
-1165
-1166
-1167
-1168
-1169
-1170
-1171
-1172
-1173
-1174
-1175
-1176
-1177
-1178
-1179
-1180
-1181
-1182
-1183
-1184
-1185
-1186
-1187
-1188
-1189
-1190
-1191
-1192
-1193
-1194
-1195
-1196
-1197
-1198
-1199
-1200
-1201
-1202
-1203
-1204
-1205
-1206
-1207
-1208
-1209
-1210
-1211
-1212
-1213
-1214
-1215
-1216
-1217
-1218
-1219
-1220
-1221
-1222
-1223
-1224
-1225
-1226
-1227
-1228
-1229
-1230
-1231
-1232
-1233
-1234
-1235
-1236
-1237
-1238
-1239
-1240
-1241
-1242
-1243
-1244
-1245
-1246
-1247
-1248
-1249
-1250
-1251
-1252
-1253
-1254
-1255
-1256
-1257
-1258
-1259
-1260
-1261
-1262
-1263
-1264
-1265
-1266
-1267
-1268
-1269
-1270
-1271
-1272
-1273
-1274
-1275
-1276
-1277
-1278
-1279
-1280
-1281
-1282
-1283
-1284
-1285
-1286
-1287
-1288
-1289
-1290
-1291
-1292
-1293
-1294
-1295
-1296
-1297
-1298
-1299
-1300
-1301
-1302
-1303
-1304
-1305
-1306
-1307
-1308
-1309
-1310
-1311
-1312
-1313
-1314
-1315
-1316
-1317
-1318
-1319
-1320
-1321
-1322
-1323
-1324
-1325
-1326
-1327
-1328
-1329
-1330
-1331
-1332
-1333
-1334
-1335
-1336
-1337
-1338
-1339
-1340
-1341
-1342
-1343
-1344
-1345
-1346
-1347
-1348
-1349
-1350
-1351
-1352
-1353
-1354
-1355
-1356
-1357
-1358
-1359
-1360
-1361
-1362
-1363
-1364
-1365
-1366
-1367
-1368
-1369
-1370
-1371
-1372
-1373
-1374
-1375
-1376
-1377
-1378
-1379
-1380
-1381
-1382
-1383
-1384
-1385
-1386
-1387
-1388
-1389
-1390
-1391
-1392
-1393
-1394
-1395
-1396
-1397
-1398
-1399
-1400
-1401
-1402
-1403
-1404
-1405
-1406
-1407
-1408
-1409
-1410
-1411
-1412
-1413
-1414
-1415
-1416
-1417
-1418
-1419
-1420
-1421
-1422
-1423
-1424
-1425
-1426
-1427
-1428
-1429
-1430
-1431
-1432
-1433
-1434
-1435
-1436
-1437
-1438
-1439
-1440
-1441
-1442
-1443
-1444
-1445
-1446
-1447
-1448
-1449
-1450
-1451
-1452
-1453
-1454
-1455
-1456
-1457
-1458
-1459
-1460
-1461
-1462
-1463
-1464
-1465
-1466
-1467
-1468
-1469
-1470
-1471
-1472
-1473
-1474
-1475
-1476
-1477
-1478
-1479
-1480
-1481
-1482
-1483
-1484
-1485
-1486
-1487
-1488
-1489
-1490
-1491
-1492
-1493
-1494
-1495
-1496
-1497
-1498
-1499
-1500
-1501
-1502
-1503
-1504
-1505
-1506
-1507
-1508
-1509
-1510
-1511
-1512
-1513
-1514
-1515
-1516
-1517
-1518
-1519
-1520
-1521
-1522
-1523
-1524
-1525
-1526
-1527
-1528
-1529
-1530
-1531
-1532
-1533
-1534
-1535
-1536
-1537
-1538
-1539
-1540
-1541
-1542
-1543
-1544
-1545
-1546
-1547
-1548
-1549
-1550
-1551
-1552
-1553
-1554
-1555
-1556
-1557
-1558
-1559
-1560
-1561
-1562
-1563
-1564
-1565
-1566
-1567
-1568
-1569
-1570
-1571
-1572
-1573
-1574
-1575
-1576
-1577
-1578
-1579
-1580
-1581
-1582
-1583
-1584
-1585
-1586
-1587
-1588
-1589
-1590
-1591
-1592
-1593
-1594
-1595
-1596
-1597
-1598
-1599
-1600
-1601
-1602
-1603
-1604
-1605
-1606
-1607
-1608
-1609
-1610
-1611
-1612
-1613
-1614
-1615
-1616
-1617
-1618
-1619
-1620
-1621
-1622
-1623
-1624
-1625
-1626
-1627
-1628
-1629
-1630
-1631
-1632
-1633
-1634
-1635
-1636
-1637
-1638
-1639
-1640
-1641
-1642
-1643
-1644
-1645
-1646
-1647
-1648
-1649
-1650
-1651
-1652
-1653
-1654
-1655
-1656
-1657
-1658
-1659
-1660
-1661
-1662
-1663
-1664
-1665
-1666
-1667
-1668
-1669
-1670
-1671
-1672
-1673
-1674
-1675
-1676
-1677
-1678
-1679
-1680
-1681
-1682
-1683
-1684
-1685
-1686
-1687
-1688
-1689
-1690
-1691
-1692
-1693
-1694
-1695
-1696
-1697
-1698
-1699
-1700
-1701
-1702
-1703
-1704
-1705
-1706
-1707
-1708
-1709
-1710
-1711
-1712
-1713
-1714
-1715
-1716
-1717
-1718
-1719
-1720
-1721
-1722
-1723
-1724
-1725
-1726
-1727
-1728
-1729
-1730
-1731
-1732
-1733
-1734
-1735
-1736
-1737
-1738
-1739
-1740
-1741
-1742
-1743
-1744
-1745
-1746
-1747
-1748
-1749
-1750
-1751
-1752
-1753
-1754
-1755
-1756
-1757
-1758
-1759
-1760
-1761
-1762
-1763
-1764
-1765
-1766
-1767
-1768
-1769
-1770
-1771
-1772
-1773
-1774
-1775
-1776
-1777
-1778
-1779
-1780
-1781
-1782
-1783
-1784
-1785
-1786
-1787
-1788
-1789
-1790
-1791
-1792
-1793
-1794
-1795
-1796
-1797
-1798
-1799
-1800
-1801
-1802
-1803
-1804
-1805
-1806
-1807
-1808
-1809
-1810
-1811
-1812
-1813
-1814
-1815
-1816
-1817
-1818
-1819
-1820
-1821
-1822
-1823
-1824
-1825
-1826
-1827
-1828
-1829
-1830
-1831
-1832
-1833
-1834
-1835
-1836
-1837
-1838
-1839
-1840
-1841
-1842
-1843
-1844
-1845
-1846
-1847
-1848
-1849
-1850
-1851
-1852
-1853
-1854
-1855
-1856
-1857
-1858
-1859
-1860
-1861
-1862
-1863
-1864
-1865
-1866
-1867
-1868
-1869
-1870
-1871
-1872
-1873
-1874
-1875
-1876
-1877
-1878
-1879
-1880
-1881
-1882
-1883
-1884
-1885
-1886
-1887
-1888
-1889
-1890
-1891
-1892
-1893
-1894
-1895
-1896
-1897
-1898
-1899
-1900
-1901
-1902
-1903
-1904
-1905
-1906
-1907
-1908
-1909
-1910
-1911
-1912
-1913
-1914
-1915
-1916
-1917
-1918
-1919
-1920
-1921
-1922
-1923
-1924
-1925
-1926
-1927
-1928
-1929
-1930
-1931
-1932
-1933
-1934
-1935
-1936
-1937
-1938
-1939
-1940
-1941
-1942
-1943
-1944
-1945
-1946
-1947
-1948
-1949
-1950
-1951
-1952
-1953
-1954
-1955
-1956
-1957
-1958
-1959
-1960
-1961
-1962
-1963
-1964
-1965
-1966
-1967
-1968
-1969
-1970
-1971
-1972
-1973
-1974
-1975
-1976
-1977
-1978
-1979
-1980
-1981
-1982
-1983
-1984
-1985
-1986
-1987
-1988
-1989
-1990
-1991
-1992
-1993
-1994
-1995
-1996
-1997
-1998
-1999
-2000
-2001
-2002
-2003
-2004
-2005
-2006
-2007
-2008
-2009
-2010
-2011
-2012
-2013
-2014
-2015
-2016
-2017
-2018
-2019
-2020
-2021
-2022
-2023
-2024
-2025
-2026
-2027
-2028
-2029
-2030
-2031
-2032
-2033
-2034
-2035
-2036
-2037
-2038
-2039
-2040
-2041
-2042
-2043
-2044
-2045
-2046
-2047
-2048
-2049
-2050
-2051
-2052
-2053
-2054
-2055
-2056
-2057
-2058
-2059
-2060
-2061
-2062
-2063
-2064
-2065
-2066
-2067
-2068
-2069
-2070
-2071
-2072
-2073
-2074
-2075
-2076
-2077
-2078
-2079
-2080
-2081
-2082
-2083
-2084
-2085
-2086
-2087
-2088
-2089
-2090
-2091
-2092
-2093
-2094
-2095
-2096
-2097
-2098
-2099
-2100
-2101
-2102
-2103
-2104
-2105
-2106
-2107
-2108
-2109
-2110
-2111
-2112
-2113
-2114
-2115
-2116
-2117
-2118
-2119
-2120
-2121
-2122
-2123
-2124
-2125
-2126
-2127
-2128
-2129
-2130
-2131
-2132
-2133
-2134
-2135
-2136
-2137
-2138
-2139
-2140
-2141
-2142
-2143
-2144
-2145
-2146
-2147
-2148
-2149
-2150
-2151
-2152
-2153
-2154
-2155
-2156
-2157
-2158
-2159
-2160
-2161
-2162
-2163
-2164
-2165
-2166
-2167
-2168
-2169
-2170
-2171
-2172
-2173
-2174
-2175
-2176
-2177
-2178
-2179
-2180
-2181
-2182
-2183
-2184
-2185
-2186
-2187
-2188
-2189
-2190
-2191
-2192
-2193
-2194
-2195
-2196
-2197
-2198
-2199
-2200
-2201
-2202
-2203
-2204
-2205
-2206
-2207
-2208
-2209
-2210
-2211
-2212
-2213
-2214
-2215
-2216
-2217
-2218
-2219
-2220
-2221
-2222
-2223
-2224
-2225
-2226
-2227
-2228
-2229
-2230
-2231
-2232
-2233
-2234
-2235
-2236
-2237
-2238
-2239
-2240
-2241
-2242
-2243
-2244
-2245
-2246
-2247
-2248
-2249
-2250
-2251
-2252
-2253
-2254
-2255
-2256
-2257
-2258
-2259
-2260
-2261
-2262
-2263
-2264
-2265
-2266
-2267
-2268
-2269
-2270
-2271
-2272
-2273
-2274
-2275
-2276
-2277
-2278
-2279
-2280
-2281
-2282
-2283
-2284
-2285
-2286
-2287
-2288
-2289
-2290
-2291
-2292
-2293
-2294
-2295
-2296
-2297
-2298
-2299
-2300
-2301
-2302
-2303
-2304
-2305
-2306
-2307
-2308
-2309
-2310
-2311
-2312
-2313
-2314
-2315
-2316
-2317
-2318
-2319
-2320
-2321
-2322
-2323
-2324
-2325
-2326
-2327
-2328
-2329
-2330
-2331
-2332
-2333
-2334
-2335
-2336
-2337
-2338
-2339
-2340
-2341
-2342
-2343
-2344
-2345
-2346
-2347
-2348
-2349
-2350
-2351
-2352
-2353
-2354
-2355
-2356
-2357
-2358
-2359
-2360
-2361
-2362
-2363
-2364
-2365
-2366
-2367
-2368
-2369
-2370
-2371
-2372
-2373
-2374
-2375
-2376
-2377
-2378
-2379
-2380
-2381
-2382
-2383
-2384
-2385
-2386
-2387
-2388
-2389
-2390
-2391
-2392
-2393
-2394
-2395
-2396
-2397
-2398
-2399
-2400
-2401
-2402
-2403
-2404
-2405
-2406
-2407
-2408
-2409
-2410
-2411
-2412
-2413
-2414
-2415
-2416
-2417
-2418
-2419
-2420
-2421
-2422
-2423
-2424
-2425
-2426
-2427
-2428
-2429
-2430
-2431
-2432
-2433
-2434
-2435
-2436
-2437
-2438
-2439
-2440
-2441
-2442
-2443
-2444
-2445
-2446
-2447
-2448
-2449
-2450
-2451
-2452
-2453
-2454
-2455
-2456
-2457
-2458
-2459
-2460
-2461
-2462
-2463
-2464
-2465
-2466
-2467
-2468
-2469
-2470
-2471
-2472
-2473
-2474
-2475
-2476
-2477
-2478
-2479
-2480
-2481
-2482
-2483
-2484
-2485
-2486
-2487
-2488
-2489
-2490
-2491
-2492
-2493
-2494
-2495
-2496
-2497
-2498
-2499
-2500
-2501
-2502
-2503
-2504
-2505
-2506
-2507
-2508
-2509
-2510
-2511
-2512
-2513
-2514
-2515
-2516
-2517
-2518
-2519
-2520
-2521
-2522
-2523
-2524
-2525
-2526
-2527
-2528
-2529
-2530
-2531
-2532
-2533
-2534
-2535
-2536
-2537
-2538
-2539
-2540
-2541
-2542
-2543
-2544
-2545
-2546
-2547
-2548
-2549
-2550
-2551
-2552
-2553
-2554
-2555
-2556
-2557
-2558
-2559
-2560
-2561
-2562
-2563
-2564
-2565
-2566
-2567
-2568
-2569
-2570
-2571
-2572
-2573
-2574
-2575
-2576
-2577
-2578
-2579
-2580
-2581
-2582
-2583
-2584
-2585
-2586
-2587
-2588
-2589
-2590
-2591
-2592
-2593
-2594
-2595
-2596
-2597
-2598
-2599
-2600
-2601
-2602
-2603
-2604
-2605
-2606
-2607
-2608
-2609
-2610
-2611
-2612
-2613
-2614
-2615
-2616
-2617
-2618
-2619
-2620
-2621
-2622
-2623
-2624
-2625
-2626
-2627
-2628
-2629
-2630
-2631
-2632
-2633
-2634
-2635
-2636
-2637
-2638
-2639
-2640
-2641
-2642
-2643
-2644
-2645
-2646
-2647
-2648
-2649
-2650
-2651
-2652
-2653
-2654
-2655
-2656
-2657
-2658
-2659
-2660
-2661
-2662
-2663
-2664
-2665
-2666
-2667
-2668
-2669
-2670
-2671
-2672
-2673
-2674
-2675
-2676
-2677
-2678
-2679
-2680
-2681
-2682
-2683
-2684
-2685
-2686
-2687
-2688
-2689
-2690
-2691
-2692
-2693
-2694
-2695
-2696
-2697
-2698
-2699
-2700
-2701
-2702
-2703
-2704
-2705
-2706
-2707
-2708
-2709
-2710
-2711
-2712
-2713
-2714
-2715
-2716
-2717
-2718
-2719
-2720
-2721
-2722
-2723
-2724
-2725
-2726
-2727
-2728
-2729
-2730
-2731
-2732
-2733
-2734
-2735
-2736
-2737
-2738
-2739
-2740
-2741
-2742
-2743
-2744
-2745
-2746
-2747
-2748
-2749
-2750
-2751
-2752
-2753
-2754
-2755
-2756
-2757
-2758
-2759
-2760
-2761
-2762
-2763
-2764
-2765
-2766
-2767
-2768
-2769
-2770
-2771
-2772
-2773
-2774
-2775
-2776
-2777
-2778
-2779
-2780
-2781
-2782
-2783
-2784
-2785
-2786
-2787
-2788
-2789
-2790
-2791
-2792
-2793
-2794
-2795
-2796
-2797
-2798
-2799
-2800
-2801
-2802
-2803
-2804
-2805
-2806
-2807
-2808
-2809
-2810
-2811
-2812
-2813
-2814
-2815
-2816
-2817
-2818
-2819
-2820
-2821
-2822
-2823
-2824
-2825
-2826
-2827
-2828
-2829
-2830
-2831
-2832
-2833
-2834
-2835
-2836
-2837
-2838
-2839
-2840
-2841
-2842
-2843
-2844
-2845
-2846
-2847
-2848
-2849
-2850
-2851
-2852
-2853
-2854
-2855
-2856
-2857
-2858
-2859
-2860
-2861
-2862
-2863
-2864
-2865
-2866
-2867
-2868
-2869
-2870
-2871
-2872
-2873
-2874
-2875
-2876
-2877
-2878
-2879
-2880
-2881
-2882
-2883
-2884
-2885
-2886
-2887
-2888
-2889
-2890
-2891
-2892
-2893
-2894
-2895
-2896
-2897
-2898
-2899
-2900
-2901
-2902
-2903
-2904
-2905
-2906
-2907
-2908
-2909
-2910
-2911
-2912
-2913
-2914
-2915
-2916
-2917
-2918
-2919
-2920
-2921
-2922
-2923
-2924
-2925
-2926
-2927
-2928
-2929
-2930
-2931
-2932
-2933
-2934
-2935
-2936
-2937
-2938
-2939
-2940
-2941
-2942
-2943
-2944
-2945
-2946
-2947
-2948
-2949
-2950
-2951
-2952
-2953
-2954
-2955
-2956
-2957
-2958
-2959
-2960
-2961
-2962
-2963
-2964
-2965
-2966
-2967
-2968
-2969
-2970
-2971
-2972
-2973
-2974
-2975
-2976
-2977
-2978
-2979
-2980
-2981
-2982
-2983
-2984
-2985
-2986
-2987
-2988
-2989
-2990
-2991
-2992
-2993
-2994
-2995
-2996
-2997
-2998
-2999
-3000
-3001
-3002
-3003
-3004
-3005
-3006
-3007
-3008
-3009
-3010
-3011
-3012
-3013
-3014
-3015
-3016
-3017
-3018
-3019
-3020
-3021
-3022
-3023
-3024
-3025
-3026
-3027
-3028
-3029
-3030
-3031
-3032
-3033
-3034
-3035
-3036
-3037
-3038
-3039
-3040
-3041
-3042
-3043
-3044
-3045
-3046
-3047
-3048
-3049
-3050
-3051
-3052
-3053
-3054
-3055
-3056
-3057
-3058
-3059
-3060
-3061
-3062
-3063
-3064
-3065
-3066
-3067
-3068
-3069
-3070
-3071
-3072
-3073
-3074
-3075
-3076
-3077
-3078
-3079
-3080
-3081
-3082
-3083
-3084
-3085
-3086
-3087
-3088
-3089
-3090
-3091
-3092
-3093
-3094
-3095
-3096
-3097
-3098
-3099
-3100
-3101
-3102
-3103
-3104
-3105
-3106
-3107
-3108
-3109
-3110
-3111
-3112
-3113
-3114
-3115
-3116
-3117
-3118
-3119
-3120
-3121
-3122
-3123
-3124
-3125
-3126
-3127
-3128
-3129
-3130
-3131
-3132
-3133
-3134
-3135
-3136
-3137
-3138
-3139
-3140
-3141
-3142
-3143
-3144
-3145
-3146
-3147
-3148
-3149
-3150
-3151
-3152
-3153
-3154
-3155
-3156
-3157
-3158
-3159
-3160
-3161
-3162
-3163
-3164
-3165
-3166
-3167
-3168
-3169
-3170
-3171
-3172
-3173
-3174
-3175
-3176
-3177
-3178
-3179
-3180
-3181
-3182
-3183
-3184
-3185
-3186
-3187
-3188
-3189
-3190
-3191
-3192
-3193
-3194
-3195
-3196
-3197
-3198
-3199
-3200
-3201
-3202
-3203
-3204
-3205
-3206
-3207
-3208
-3209
-3210
-3211
-3212
-3213
-3214
-3215
-3216
-3217
-3218
-3219
-3220
-3221
-3222
-3223
-3224
-3225
-3226
-3227
-3228
-3229
-3230
-3231
-3232
-3233
-3234
-3235
-3236
-3237
-3238
-3239
-3240
-3241
-3242
-3243
-3244
-3245
-3246
-3247
-3248
-3249
-3250
-3251
-3252
-3253
-3254
-3255
-3256
-3257
-3258
-3259
-3260
-3261
-3262
-3263
-3264
-3265
-3266
-3267
-3268
-3269
-3270
-3271
-3272
-3273
-3274
-3275
-3276
-3277
-3278
-3279
-3280
-3281
-3282
-3283
-3284
-3285
-3286
-3287
-3288
-3289
-3290
-3291
-3292
-3293
-3294
-3295
-3296
-3297
-3298
-3299
-3300
-3301
-3302
-3303
-3304
-3305
-3306
-3307
-3308
-3309
-3310
-3311
-3312
-3313
-3314
-3315
-3316
-3317
-3318
-3319
-3320
-3321
-3322
-3323
-3324
-3325
-3326
-3327
-3328
-3329
-3330
-3331
-3332
-3333
-3334
-3335
-3336
-3337
-3338
-3339
-3340
-3341
-3342
-3343
-3344
-3345
-3346
-3347
-3348
-3349
-3350
-3351
-3352
-3353
-3354
-3355
-3356
-3357
-3358
-3359
-3360
-3361
-3362
-3363
-3364
-3365
-3366
-3367
-3368
-3369
-3370
-3371
-3372
-3373
-3374
-3375
-3376
-3377
-3378
-3379
-3380
-3381
-3382
-3383
-3384
-3385
-3386
-3387
-3388
-3389
-3390
-3391
-3392
-3393
-3394
-3395
-3396
-3397
-3398
-3399
-3400
-3401
-3402
-3403
-3404
-3405
-3406
-3407
-3408
-3409
-3410
-3411
-3412
-3413
-3414
-3415
-3416
-3417
-3418
-3419
-3420
-3421
-3422
-3423
-3424
-3425
-3426
-3427
-3428
-3429
-3430
-3431
-3432
-3433
-3434
-3435
-3436
-3437
-3438
-3439
-3440
-3441
-3442
-3443
-3444
-3445
-3446
-3447
-3448
-3449
-3450
-3451
-3452
-3453
-3454
-3455
-3456
-3457
-3458
-3459
-3460
-3461
-3462
-3463
-3464
-3465
-3466
-3467
-3468
-3469
-3470
-3471
-3472
-3473
-3474
-3475
-3476
-3477
-3478
-3479
-3480
-3481
-3482
-3483
-3484
-3485
-3486
-3487
-3488
-3489
-3490
-3491
-3492
-3493
-3494
-3495
-3496
-3497
-3498
-3499
-3500
-3501
-3502
-3503
-3504
-3505
-3506
-3507
-3508
-3509
-3510
-3511
-3512
-3513
-3514
-3515
-3516
-3517
-3518
-3519
-3520
-3521
-3522
-3523
-3524
-3525
-3526
-3527
-3528
-3529
-3530
-3531
-3532
-3533
-3534
-3535
-3536
-3537
-3538
-3539
-3540
-3541
-3542
-3543
-3544
-3545
-3546
-3547
-3548
-3549
-3550
-3551
-3552
-3553
-3554
-3555
-3556
-3557
-3558
-3559
-3560
-3561
-3562
-3563
-3564
-3565
-3566
-3567
-3568
-3569
-3570
-3571
-3572
-3573
-3574
-3575
-3576
-3577
-3578
-3579
-3580
-3581
-3582
-3583
-3584
-3585
-3586
-3587
-3588
-3589
-3590
-3591
-3592
-3593
-3594
-3595
-3596
-3597
-3598
-3599
-3600
-3601
-3602
-3603
-3604
-3605
-3606
-3607
-3608
-3609
-3610
-3611
-3612
-3613
-3614
-3615
-3616
-3617
-3618
-3619
-3620
-3621
-3622
-3623
-3624
-3625
-3626
-3627
-3628
-3629
-3630
-3631
-3632
-3633
-3634
-3635
-3636
-3637
-3638
-3639
-3640
-3641
-3642
-3643
-3644
-3645
-3646
-3647
-3648
-3649
-3650
-3651
-3652
-3653
-3654
-3655
-3656
-3657
-3658
-3659
-3660
-3661
-3662
-3663
-3664
-3665
-3666
-3667
-3668
-3669
-3670
-3671
-3672
-3673
-3674
-3675
-3676
-3677
-3678
-3679
-3680
-3681
-3682
-3683
-3684
-3685
-3686
-3687
-3688
-3689
-3690
-3691
-3692
-3693
-3694
-3695
-3696
-3697
-3698
-3699
-3700
-3701
-3702
-3703
-3704
-3705
-3706
-3707
-3708
-3709
-3710
-3711
-3712
-3713
-3714
-3715
-3716
-3717
-3718
-3719
-3720
-3721
-3722
-3723
-3724
-3725
-3726
-3727
-3728
-3729
-3730
-3731
-3732
-3733
-3734
-3735
-3736
-3737
-3738
-3739
-3740
-3741
-3742
-3743
-3744
-3745
-3746
-3747
-3748
-3749
-3750
-3751
-3752
-3753
-3754
-3755
-3756
-3757
-3758
-3759
-3760
-3761
-3762
-3763
-3764
-3765
-3766
-3767
-3768
-3769
-3770
-3771
-3772
-3773
-3774
-3775
-3776
-3777
-3778
-3779
-3780
-3781
-3782
-3783
-3784
-3785
-3786
-3787
-3788
-3789
-3790
-3791
-3792
-3793
-3794
-3795
-3796
-3797
-3798
-3799
-3800
-3801
-3802
-3803
-3804
-3805
-3806
-3807
-3808
-3809
-3810
-3811
-3812
-3813
-3814
-3815
-3816
-3817
-3818
-3819
-3820
-3821
-3822
-3823
-3824
-3825
-3826
-3827
-3828
-3829
-3830
-3831
-3832
-3833
-3834
-3835
-3836
-3837
-3838
-3839
-3840
-3841
-3842
-3843
-3844
-3845
-3846
-3847
-3848
-3849
-3850
-3851
-3852
-3853
-3854
-3855
-3856
-3857
-3858
-3859
-3860
-3861
-3862
-3863
-3864
-3865
-3866
-3867
-3868
-3869
-3870
-3871
-3872
-3873
-3874
-3875
-3876
-3877
-3878
-3879
-3880
-3881
-3882
-3883
-3884
-3885
-3886
-3887
-3888
-3889
-3890
-3891
-3892
-3893
-3894
-3895
-3896
-3897
-3898
-3899
-3900
-3901
-3902
-3903
-3904
-3905
-3906
-3907
-3908
-3909
-3910
-3911
-3912
-3913
-3914
-3915
-3916
-3917
-3918
-3919
-3920
-3921
-3922
-3923
-3924
-3925
-3926
-3927
-3928
-3929
-3930
-3931
-3932
-3933
-3934
-3935
-3936
-3937
-3938
-3939
-3940
-3941
-3942
-3943
-3944
-3945
-3946
-3947
-3948
-3949
-3950
-3951
-3952
-3953
-3954
-3955
-3956
-3957
-3958
-3959
-3960
-3961
-3962
-3963
-3964
-3965
-3966
-3967
-3968
-3969
-3970
-3971
-3972
-3973
-3974
-3975
-3976
-3977
-3978
-3979
-3980
-3981
-3982
-3983
-3984
-3985
-3986
-3987
-3988
-3989
-3990
-3991
-3992
-3993
-3994
-3995
-3996
-3997
-3998
-3999
-4000
-4001
-4002
-4003
-4004
-4005
-4006
-4007
-4008
-4009
-4010
-4011
-4012
-4013
-4014
-4015
-4016
-4017
-4018
-4019
-4020
-4021
-4022
-4023
-4024
-4025
-4026
-4027
-4028
-4029
-4030
-4031
-4032
-4033
-4034
-4035
-4036
-4037
-4038
-4039
-4040
-4041
-4042
-4043
-4044
-4045
-4046
-4047
-4048
-4049
-4050
-4051
-4052
-4053
-4054
-4055
-4056
-4057
-4058
-4059
-4060
-4061
-4062
-4063
-4064
-4065
-4066
-4067
-4068
-4069
-4070
-4071
-4072
-4073
-4074
-4075
-4076
-4077
-4078
-4079
-4080
-4081
-4082
-4083
-4084
-4085
-4086
-4087
-4088
-4089
-4090
-4091
-4092
-4093
-4094
-4095
-4096
-4097
-4098
-4099
-4100
-4101
-4102
-4103
-4104
-4105
-4106
-4107
-4108
-4109
-4110
-4111
-4112
-4113
-4114
-4115
-4116
-4117
-4118
-4119
-4120
-4121
-4122
-4123
-4124
-4125
-4126
-4127
-4128
-4129
-4130
-4131
-4132
-4133
-4134
-4135
-4136
-4137
-4138
-4139
-4140
-4141
-4142
-4143
-4144
-4145
-4146
-4147
-4148
-4149
-4150
-4151
-4152
-4153
-4154
-4155
-4156
-4157
-4158
-4159
-4160
-4161
-4162
-4163
-4164
-4165
-4166
-4167
-4168
-4169
-4170
-4171
-4172
-4173
-4174
-4175
-4176
-4177
-4178
-4179
-4180
-4181
-4182
-4183
-4184
-4185
-4186
-4187
-4188
-4189
-4190
-4191
-4192
-4193
-4194
-4195
-4196
-4197
-4198
-4199
-4200
-4201
-4202
-4203
-4204
-4205
-4206
-4207
-4208
-4209
-4210
-4211
-4212
-4213
-4214
-4215
-4216
-4217
-4218
-4219
-4220
-4221
-4222
-4223
-4224
-4225
-4226
-4227
-4228
-4229
-4230
-4231
-4232
-4233
-4234
-4235
-4236
-4237
-4238
-4239
-4240
-4241
-4242
-4243
-4244
-4245
-4246
-4247
-4248
-4249
-4250
-4251
-4252
-4253
-4254
-4255
-4256
-4257
-4258
-4259
-4260
-4261
-4262
-4263
-4264
-4265
-4266
-4267
-4268
-4269
-4270
-4271
-4272
-4273
-4274
-4275
-4276
-4277
-4278
-4279
-4280
-4281
-4282
-4283
-4284
-4285
-4286
-4287
-4288
-4289
-4290
-4291
-4292
-4293
-4294
-4295
-4296
-4297
-4298
-4299
-4300
-4301
-4302
-4303
-4304
-4305
-4306
-4307
-4308
-4309
-4310
-4311
-4312
-4313
-4314
-4315
-4316
-4317
-4318
-4319
-4320
-4321
-4322
-4323
-4324
-4325
-4326
-4327
-4328
-4329
-4330
-4331
-4332
-4333
-4334
-4335
-4336
-4337
-4338
-4339
-4340
-4341
-4342
-4343
-4344
-4345
-4346
-4347
-4348
-4349
-4350
-4351
-4352
-4353
-4354
-4355
-4356
-4357
-4358
-4359
-4360
-4361
-4362
-4363
-4364
-4365
-4366
-4367
-4368
-4369
-4370
-4371
-4372
-4373
-4374
-4375
-4376
-4377
-4378
-4379
-4380
-4381
-4382
-4383
-4384
-4385
-4386
-4387
-4388
-4389
-4390
-4391
-4392
-4393
-4394
-4395
-4396
-4397
-4398
-4399
-4400
-4401
-4402
-4403
-4404
-4405
-4406
-4407
-4408
-4409
-4410
-4411
-4412
-4413
-4414
-4415
-4416
-4417
-4418
-4419
-4420
-4421
-4422
-4423
-4424
-4425
-4426
-4427
-4428
-4429
-4430
-4431
-4432
-4433
-4434
-4435
-4436
-4437
-4438
-4439
-4440
-4441
-4442
-4443
-4444
-4445
-4446
-4447
-4448
-4449
-4450
-4451
-4452
-4453
-4454
-4455
-4456
-4457
-4458
-4459
-4460
-4461
-4462
-4463
-4464
-4465
-4466
-4467
-4468
-4469
-4470
-4471
-4472
-4473
-4474
-4475
-4476
-4477
-4478
-4479
-4480
-4481
-4482
-4483
-4484
-4485
-4486
-4487
-4488
-4489
-4490
-4491
-4492
-4493
-4494
-4495
-4496
-4497
-4498
-4499
-4500
-4501
-4502
-4503
-4504
-4505
-4506
-4507
-4508
-4509
-4510
-4511
-4512
-4513
-4514
-4515
-4516
-4517
-4518
-4519
-4520
-4521
-4522
-4523
-4524
-4525
-4526
-4527
-4528
-4529
-4530
-4531
-4532
-4533
-4534
-4535
-4536
-4537
-4538
-4539
-4540
-4541
-4542
-4543
-4544
-4545
-4546
-4547
-4548
-4549
-4550
-4551
-4552
-4553
-4554
-4555
-4556
-4557
-4558
-4559
-4560
-4561
-4562
-4563
-4564
-4565
-4566
-4567
-4568
-4569
-4570
-4571
-4572
-4573
-4574
-4575
-4576
-4577
-4578
-4579
-4580
-4581
-4582
-4583
-4584
-4585
-4586
-4587
-4588
-4589
-4590
-4591
-4592
-4593
-4594
-4595
-4596
-4597
-4598
-4599
-4600
-4601
-4602
-4603
-4604
-4605
-4606
-4607
-4608
-4609
-4610
-4611
-4612
-4613
-4614
-4615
-4616
-4617
-4618
-4619
-4620
-4621
-4622
-4623
-4624
-4625
-4626
-4627
-4628
-4629
-4630
-4631
-4632
-4633
-4634
-4635
-4636
-4637
-4638
-4639
-4640
-4641
-4642
-4643
-4644
-4645
-4646
-4647
-4648
-4649
-4650
-4651
-4652
-4653
-4654
-4655
-4656
-4657
-4658
-4659
-4660
-4661
-4662
-4663
-4664
-4665
-4666
-4667
-4668
-4669
-4670
-4671
-4672
-4673
-4674
-4675
-4676
-4677
-4678
-4679
-4680
-4681
-4682
-4683
-4684
-4685
-4686
-4687
-4688
-4689
-4690
-4691
-4692
-4693
-4694
-4695
-4696
-4697
-4698
-4699
-4700
-4701
-4702
-4703
-4704
-4705
-4706
-4707
-4708
-4709
-4710
-4711
-4712
-4713
-4714
-4715
-4716
-4717
-4718
-4719
-4720
-4721
-4722
-4723
-4724
-4725
-4726
-4727
-4728
-4729
-4730
-4731
-4732
-4733
-4734
-4735
-4736
-4737
-4738
-4739
-4740
-4741
-4742
-4743
-4744
-4745
-4746
-4747
-4748
-4749
-4750
-4751
-4752
-4753
-4754
-4755
-4756
-4757
-4758
-4759
-4760
-4761
-4762
-4763
-4764
-4765
-4766
-4767
-4768
-4769
-4770
-4771
-4772
-4773
-4774
-4775
-4776
-4777
-4778
-4779
-4780
-4781
-4782
-4783
-4784
-4785
-4786
-4787
-4788
-4789
-4790
-4791
-4792
-4793
-4794
-4795
-4796
-4797
-4798
-4799
-4800
-4801
-4802
-4803
-4804
-4805
-4806
-4807
-4808
-4809
-4810
-4811
-4812
-4813
-4814
-4815
-4816
-4817
-4818
-4819
-4820
-4821
-4822
-4823
-4824
-4825
-4826
-4827
-4828
-4829
-4830
-4831
-4832
-4833
-4834
-4835
-4836
-4837
-4838
-4839
-4840
-4841
-4842
-4843
-4844
-4845
-4846
-4847
-4848
-4849
-4850
-4851
-4852
-4853
-4854
-4855
-4856
-4857
-4858
-4859
-4860
-4861
-4862
-4863
-4864
-4865
-4866
-4867
-4868
-4869
-4870
-4871
-4872
-4873
-4874
-4875
-4876
-4877
-4878
-4879
-4880
-4881
-4882
-4883
-4884
-4885
-4886
-4887
-4888
-4889
-4890
-4891
-4892
-4893
-4894
-4895
-4896
-4897
-4898
-4899
-4900
-4901
-4902
-4903
-4904
-4905
-4906
-4907
-4908
-4909
-4910
-4911
-4912
-4913
-4914
-4915
-4916
-4917
-4918
-4919
-4920
-4921
-4922
-4923
-4924
-4925
-4926
-4927
-4928
-4929
-4930
-4931
-4932
-4933
-4934
-4935
-4936
-4937
-4938
-4939
-4940
-4941
-4942
-4943
-4944
-4945
-4946
-4947
-4948
-4949
-4950
-4951
-4952
-4953
-4954
-4955
-4956
-4957
-4958
-4959
-4960
-4961
-4962
-4963
-4964
-4965
-4966
-4967
-4968
-4969
-4970
-4971
-4972
-4973
-4974
-4975
-4976
-4977
-4978
-4979
-4980
-4981
-4982
-4983
-4984
-4985
-4986
-4987
-4988
-4989
-4990
-4991
-4992
-4993
-4994
-4995
-4996
-4997
-4998
-4999
-5000
-5001
-5002
-5003
-5004
-5005
-5006
-5007
-5008
-5009
-5010
-5011
-5012
-5013
-5014
-5015
-5016
-5017
-5018
-5019
-5020
-5021
-5022
-5023
-5024
-5025
-5026
-5027
-5028
-5029
-5030
-5031
-5032
-5033
-5034
-5035
-5036
-5037
-5038
-5039
-5040
-5041
-5042
-5043
-5044
-5045
-5046
-5047
-5048
-5049
-5050
-5051
-5052
-5053
-5054
-5055
-5056
-5057
-5058
-5059
-5060
-5061
-5062
-5063
-5064
-5065
-5066
-5067
-5068
-5069
-5070
-5071
-5072
-5073
-5074
-5075
-5076
-5077
-5078
-5079
-5080
-5081
-5082
-5083
-5084
-5085
-5086
-5087
-5088
-5089
-5090
-5091
-5092
-5093
-5094
-5095
-5096
-5097
-5098
-5099
-5100
-5101
-5102
-5103
-5104
-5105
-5106
-5107
-5108
-5109
-5110
-5111
-5112
-5113
-5114
-5115
-5116
-5117
-5118
-5119
-5120
-5121
-5122
-5123
-5124
-5125
-5126
-5127
-5128
-5129
-5130
-5131
-5132
-5133
-5134
-5135
-5136
-5137
-5138
-5139
-5140
-5141
-5142
-5143
-5144
-5145
-5146
-5147
-5148
-5149
-5150
-5151
-5152
-5153
-5154
-5155
-5156
-5157
-5158
-5159
-5160
-5161
-5162
-5163
-5164
-5165
-5166
-5167
-5168
-5169
-5170
-5171
-5172
-5173
-5174
-5175
-5176
-5177
-5178
-5179
-5180
-5181
-5182
-5183
-5184
-5185
-5186
-5187
-5188
-5189
-5190
-5191
-5192
-5193
-5194
-5195
-5196
-5197
-5198
-5199
-5200
-5201
-5202
-5203
-5204
-5205
-5206
-5207
-5208
-5209
-5210
-5211
-5212
-5213
-5214
-5215
-5216
-5217
-5218
-5219
-5220
-5221
-5222
-5223
-5224
-5225
-5226
-5227
-5228
-5229
-5230
-5231
-5232
-5233
-5234
-5235
-5236
-5237
-5238
-5239
-5240
-5241
-5242
-5243
-5244
-5245
-5246
-5247
-5248
-5249
-5250
-5251
-5252
-5253
-5254
-5255
-5256
-5257
-5258
-5259
-5260
-5261
-5262
-5263
-5264
-5265
-5266
-5267
-5268
-5269
-5270
-5271
-5272
-5273
-5274
-5275
-5276
-5277
-5278
-5279
-5280
-5281
-5282
-5283
-5284
-5285
-5286
-5287
-5288
-5289
-5290
-5291
-5292
-5293
-5294
-5295
-5296
-5297
-5298
-5299
-5300
-5301
-5302
-5303
-5304
-5305
-5306
-5307
-5308
-5309
-5310
-5311
-5312
-5313
-5314
-5315
-5316
-5317
-5318
-5319
-5320
-5321
-5322
-5323
-5324
-5325
-5326
-5327
-5328
-5329
-5330
-5331
-5332
-5333
-5334
-5335
-5336
-5337
-5338
-5339
-5340
-5341
-5342
-5343
-5344
-5345
-5346
-5347
-5348
-5349
-5350
-5351
-5352
-5353
-5354
-5355
-5356
-5357
-5358
-5359
-5360
-5361
-5362
-5363
-5364
-5365
-5366
-5367
-5368
-5369
-5370
-5371
-5372
-5373
-5374
-5375
-5376
-5377
-5378
-5379
-5380
-5381
-5382
-5383
-5384
-5385
-5386
-5387
-5388
-5389
-5390
-5391
-5392
-5393
-5394
-5395
-5396
-5397
-5398
-5399
-5400
-5401
-5402
-5403
-5404
-5405
-5406
-5407
-5408
-5409
-5410
-5411
-5412
-5413
-5414
-5415
-5416
-5417
-5418
-5419
-5420
-5421
-5422
-5423
-5424
-5425
-5426
-5427
-5428
-5429
-5430
-5431
-5432
-5433
-5434
-5435
-5436
-5437
-5438
-5439
-5440
-5441
-5442
-5443
-5444
-5445
-5446
-5447
-5448
-5449
-5450
-5451
-5452
-5453
-5454
-5455
-5456
-5457
-5458
-5459
-5460
-5461
-5462
-5463
-5464
-5465
-5466
-5467
-5468
-5469
-5470
-5471
-5472
-5473
-5474
-5475
-5476
-5477
-5478
-5479
-5480
-5481
-5482
-5483
-5484
-5485
-5486
-5487
-5488
-5489
-5490
-5491
-5492
-5493
-5494
-5495
-5496
-5497
-5498
-5499
-5500
-5501
-5502
-5503
-5504
-5505
-5506
-5507
-5508
-5509
-5510
-5511
-5512
-5513
-5514
-5515
-5516
-5517
-5518
-5519
-5520
-5521
-5522
-5523
-5524
-5525
-5526
-5527
-5528
-5529
-5530
-5531
-5532
-5533
-5534
-5535
-5536
-5537
-5538
-5539
-5540
-5541
-5542
-5543
-5544
-5545
-5546
-5547
-5548
-5549
-5550
-5551
-5552
-5553
-5554
-5555
-5556
-5557
-5558
-5559
-5560
-5561
-5562
-5563
-5564
-5565
-5566
-5567
-5568
-5569
-5570
-5571
-5572
-5573
-5574
-5575
-5576
-5577
-5578
-5579
-5580
-5581
-5582
-5583
-5584
-5585
-5586
-5587
-5588
-5589
-5590
-5591
-5592
-5593
-5594
-5595
-5596
-5597
-5598
-5599
-5600
-5601
-5602
-5603
-5604
-5605
-5606
-5607
-5608
-5609
-5610
-5611
-5612
-5613
-5614
-5615
-5616
-5617
-5618
-5619
-5620
-5621
-5622
-5623
-5624
-5625
-5626
-5627
-5628
-5629
-5630
-5631
-5632
-5633
-5634
-5635
-5636
-5637
-5638
-5639
-5640
-5641
-5642
-5643
-5644
-5645
-5646
-5647
-5648
-5649
-5650
-5651
-5652
-5653
-5654
-5655
-5656
-5657
-5658
-5659
-5660
-5661
-5662
-5663
-5664
-5665
-5666
-5667
-5668
-5669
-5670
-5671
-5672
-5673
-5674
-5675
-5676
-5677
-5678
-5679
-5680
-5681
-5682
-5683
-5684
-5685
-5686
-5687
-5688
-5689
-5690
-5691
-5692
-5693
-5694
-5695
-5696
-5697
-5698
-5699
-5700
-5701
-5702
-5703
-5704
-5705
-5706
-5707
-5708
-5709
-5710
-5711
-5712
-5713
-5714
-5715
-5716
-5717
-5718
-5719
-5720
-5721
-5722
-5723
-5724
-5725
-5726
-5727
-5728
-5729
-5730
-5731
-5732
-5733
-5734
-5735
-5736
-5737
-5738
-5739
-5740
-5741
-5742
-5743
-5744
-5745
-5746
-5747
-5748
-5749
-5750
-5751
-5752
-5753
-5754
-5755
-5756
-5757
-5758
-5759
-5760
-5761
-5762
-5763
-5764
-5765
-5766
-5767
-5768
-5769
-5770
-5771
-5772
-5773
-5774
-5775
-5776
-5777
-5778
-5779
-5780
-5781
-5782
-5783
-5784
-5785
-5786
-5787
-5788
-5789
-5790
-5791
-5792
-5793
-5794
-5795
-5796
-5797
-5798
-5799
-5800
-5801
-5802
-5803
-5804
-5805
-5806
-5807
-5808
-5809
-5810
-5811
-5812 | 1×
-1×
-
-
-1×
-1×
-
-
-1×
-1×
-
-
-
-
-1×
-
-
-
-
-
-
-
-1×
-
-
-
-1×
-1×
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-1×
-
-
-
-
-
-
-
-
-
-
-
-1×
-1×
-1×
-
-1×
-
-
-1×
-
-1×
-1×
-
-1×
-
-1×
-1×
-
-1×
-
-1×
-1×
-
-1×
-
-1×
-1×
-
-1×
-
-1×
-1×
-
-1×
-
-1×
-1×
-
-1×
-
-
-
-
-
-
-
-
-
-
-1×
-
-
-
-
-
-
-1×
-
-1×
-
-
-1×
-
-1×
-
-
-1×
-
-1×
-
-
-1×
-
-1×
-
-1×
-1×
-
-
-
-
-
-
-1×
-
-1×
-
-
-
-
-1×
-
-1×
-
-1×
-1×
-
-
-
-
-
-
-
-
-
-1×
-
-1×
-
-
-
-
-
-
-1×
-1×
-1×
-
-
-
-
-
-
-
-
-1×
-2×
-2×
-2×
-2×
-
-
-
-
-
-
-
-1×
-
-
-
-2×
-2×
-
-
-
-
-
-
-1×
-
-
-
-
-
-
-1×
-1×
-
-
-
-
-
-
-
-
-
-1×
-
-
-
-
-
-
-
-1×
-
-
-
-
-
-
-
-1×
-1×
-1×
-1×
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-1×
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-1×
-
-
-
-
-
-
-
-
-
-
-1×
-
-
-
-
-
-
-
-
-
-
-1×
-
-
-
-
-
-
-
-
-
-1×
-
-
-
-
-
-
-
-1×
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-1×
-
-
-
-
-
-
-
-
-1×
-
-
-
-
-
-
-
-
-
-
-
-
-
-1×
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-1×
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-1×
-
-
-
-
-
-
-
-1×
-
-
-
-
-
-1×
-
-
-
-
-
-1×
-
-
-
-
-
-
-
-1×
-
-
-
-
-
-1×
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-1×
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-1×
-
-
-
-1×
-1×
-
-
-
-
-
-
-1×
-
-
-
-
-
-
-1×
-
-
-
-
-
-
-
-
-
-
-1×
-
-
-
-
-
-
-
-
-1×
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-1×
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-1×
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-1×
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-1×
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-1×
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-1×
-1×
-1×
-
-
-
-
-
-1×
-1×
-1×
-
-
-
-
-
-1×
-1×
-1×
-1×
-1×
-
-
-
-
-
-1×
-1×
-1×
-1×
-1×
-1×
-1×
-1×
-1×
-1×
-1×
-
-
-
-
-
-1×
-1×
-1×
-1×
-1×
-
-
-
-
-
-1×
-1×
-1×
-1×
-1×
-1×
-1×
-1×
-
-
-
-
-
-1×
-1×
-1×
-
-
-
-
-
-1×
-1×
-
-
-
-
-
-1×
-1×
-1×
-1×
-1×
-1×
-1×
-1×
-1×
-1×
-1×
-
-
-
-
-
-
-
-
-1×
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-1×
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-1×
-
-
-
-
-
-
-1×
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-1×
-
-
-
-
-
-
-1×
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-1×
-
-
-
-
-
-
-1×
-
-
-
-
-
-1×
-
-
-
-
-
-1×
-
-
-
-
-
-1×
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-1×
-
-
-
-
-
-
-
-
-1×
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-1×
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-1×
-1×
-
-
-
-
-
-
-
-
-
-
-1×
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-1×
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-1×
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-1×
-
-
-
-
-
-
-
-1×
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-1×
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-1×
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-1×
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-1×
-1×
-
-
-
-
-
-
-
-
-
-1×
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-1×
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-1×
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-1×
-
-
-
-
-
-
-
-
-
-1×
-
-
-
-
-
-
-
-
-
-
-
-1×
-
-
-1×
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-1×
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-1×
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-1×
-
-
-
-
-
-
-
-1×
-
-
-
-
-
-
-
-
-
-1×
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-1×
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-1×
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-1×
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-1×
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-1×
-
-
-
-
-
-
-
-
-
-
-
-
-
-1×
-1×
-1×
-1×
-1×
-
-
-
-1×
-1×
-
-1×
-
-1×
-1×
-
-1×
-
-1×
-1×
-
-1×
-
-1×
-1×
-
-1×
-
-1×
-1×
-
-1×
-
-1×
-1×
-
-1×
-
-1×
-1×
-
-1×
-
-1×
-1×
-
-1×
-
-1×
-1×
-
-1×
-
-
-
-
-
-
-
-
-
-
-
-1×
-
-
-
-
-
-
-
-
-
-
-
-1×
-1×
-1×
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-1×
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-1×
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-1×
-1×
-1×
-1×
-1×
-1×
-
-
-
-
-1×
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-1×
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-1×
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-1×
-
-
-
-
-
-
-
-
-
-
-1×
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-1×
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-1×
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-1×
-1×
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-1×
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-1×
-1×
-1×
-1×
-1×
-1×
-
-
-
-
-
-1×
-1×
-1×
-1×
-1×
-1×
-1×
-1×
-
-
-
-
-
-1×
-1×
-1×
-
-
-
-
-
-1×
-1×
-1×
-1×
-1×
-1×
-
-
-
-
-
-1×
-1×
-1×
-1×
-1×
-1×
-1×
-1×
-
-
-
-
-
-1×
-1×
-1×
-1×
-1×
-1×
-1×
-1×
-
-
-
-
-
-
-
-
-
-
-
-1×
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-1×
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-1×
-
-
-
-
-
-
-1×
-1×
-
-
-
-
-
-
-
-1×
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-1×
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-1×
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-1×
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-1×
-
-
-
-
-
-
-
-
-
-
-
-
-
-1×
-
-
-
-
-
-
-1×
-
-
-
-
-
-
-1×
-
-7×
-7×
-7×
-
-7×
-2×
-
-
-7×
-3×
-
-
-7×
-2×
-
-
-
-1×
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-1×
-
-
-
-
-
-
-
-1×
-
-
-
-
-
-
-1×
-
-
-
-
-
-
-
-
-
-
-1×
-
-
-
-
-
-1×
-
-
-
-
-
-
-1×
-
-
-
-
-
-
-1×
-
-
-
-1×
-
-
-
-
-
-
-
-1×
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-1×
-
-
-
-1×
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-1×
-
-2×
-2×
-2×
-2×
-
-2×
-
-
-
-2×
-
-
-
-2×
-
-
-
-2×
-
-
-
-
-1×
-
-
-
-
-
-
-1×
-
-
-
-
-
-
-
-
-1×
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-1×
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-1×
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-1×
-
-
-
-1×
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-1×
-
-
-
-
-
-
-
-
-
-
-1×
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-1×
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-1×
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-1×
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-1×
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-1×
-
-
-
-
-
-
-
-
-
-
-
-1×
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-1×
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-1×
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-1×
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-1×
-
-
-
-
-
-
-
-
-
-
-1×
-
-
-
-
-
-1×
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-1×
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-1×
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-1×
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-1×
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-1×
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-1×
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-1×
-1×
- | Iif (typeof GameLib == 'undefined') {
- function GameLib() {}
-}
-
-Eif (typeof GameLib.D3 == 'undefined') {
- GameLib.D3 = function(){};
-}
-
-Eif (typeof Q == 'undefined') {
- Iif (typeof require == 'undefined') {
- console.warn('You need the Q promise library for the GameLib.D3');
- throw new Error('You need the Q promise library for the GameLib.D3');
- }
-
- var Q = require('q');
-}
-/**
- * BoneWeight object - associates a vertex to a bone with some weight
- * @param boneIndex int
- * @param weight float
- * @constructor
- */
-GameLib.D3.BoneWeight = function(
- boneIndex,
- weight
-) {
- this.boneIndex = boneIndex;
- this.weight = weight;
-};
-/**
- * Bone Superset
- * @param id
- * @param name string
- * @param boneId
- * @param childBoneIds
- * @param parentBoneId
- * @param quaternion
- * @param position
- * @param rotation
- * @param scale GameLib.D3.Vector3
- * @param up
- * @constructor
- */
-GameLib.D3.Bone = function(
- id,
- boneId,
- name,
- childBoneIds,
- parentBoneId,
- quaternion,
- position,
- rotation,
- scale,
- up
-) {
- this.id = id;
- this.name = name;
- this.boneId = boneId;
-
- Iif (typeof childBoneIds == 'undefined') {
- childBoneIds = [];
- }
- this.childBoneIds = childBoneIds;
-
- Eif (typeof parentBoneId == 'undefined') {
- parentBoneId = null;
- }
- this.parentBoneId = parentBoneId;
-
- Eif (typeof quaternion == 'undefined') {
- quaternion = new GameLib.D3.Vector4();
- }
- this.quaternion = quaternion;
-
- Eif (typeof position == 'undefined') {
- position = new GameLib.D3.Vector3(0,0,0);
- }
- this.position = position;
-
- Eif (typeof rotation == 'undefined') {
- rotation = new GameLib.D3.Vector3(0,0,0);
- }
- this.rotation = rotation;
-
- Eif (typeof scale == 'undefined') {
- scale = new GameLib.D3.Vector3(1,1,1);
- }
- this.scale = scale;
-
- Eif (typeof up == 'undefined') {
- up = new GameLib.D3.Vector3(0,1,0);
- }
- this.up = up;
-};
-/**
- * Physics Broadphase Superset
- * @param id
- * @param name String
- * @param broadphaseType Number
- * @param engine GameLib.D3.Engine
- * @param createInstance Boolean
- * @constructor
- */
-GameLib.D3.Broadphase = function(
- id,
- name,
- broadphaseType,
- engine,
- createInstance
-) {
- this.id = id;
-
- Iif (typeof name == 'undefined') {
- name = 'broadphase-' + broadphaseType;
- }
- this.name = name;
-
- Iif (typeof broadphaseType == 'undefined') {
- broadphaseType = GameLib.D3.Broadphase.BROADPHASE_TYPE_NAIVE;
- }
- this.broadphaseType = broadphaseType;
-
- Iif (typeof engine == 'undefined') {
- engine = null;
- }
- this.engine = engine;
-
- this.instance = null;
-
- Eif (createInstance) {
- this.createInstance();
- }
-};
-
-/**
- * Creates a custom Broadphase instance based on the engine type
- */
-GameLib.D3.Broadphase.prototype.createInstance = function() {
-
- Iif (!(this.engine instanceof GameLib.D3.Engine)) {
- console.warn('No Engine');
- throw new Error('No Engine');
- }
-
- this.engine.isNotCannonThrow();
-
- var instance = null;
-
- Eif (this.broadphaseType == GameLib.D3.Broadphase.BROADPHASE_TYPE_NAIVE) {
- instance = new this.engine.instance.NaiveBroadphase();
- } else if (this.broadphaseType == GameLib.D3.Broadphase.BROADPHASE_TYPE_GRID) {
- instance = new this.engine.instance.GridBroadphase();
- } else if (this.broadphaseType == GameLib.D3.Broadphase.BROADPHASE_TYPE_SAP) {
- instance = new this.engine.instance.SAPBroardphase();
- } else {
- console.warn('Unsupported broadphase type: ' + this.broadphaseType);
- throw new Error('Unsupported broadphase type: ' + this.broadphaseType);
- }
-
- this.instance = instance;
-
- return instance;
-};
-
-/**
- * Broadphase Types
- * @type {number}
- */
-GameLib.D3.Broadphase.BROADPHASE_TYPE_NAIVE = 0x1;
-GameLib.D3.Broadphase.BROADPHASE_TYPE_GRID = 0x2;
-GameLib.D3.Broadphase.BROADPHASE_TYPE_SAP = 0x3;
-/**
- * Color Superset
- * @param r
- * @param g
- * @param b
- * @param a
- * @constructor
- */
-GameLib.D3.Color = function(r, g, b, a) {
- this.r = r;
- this.g = g;
- this.b = b;
- this.a = a;
-};
-/**
- * Engine Superset
- * @param engineType
- * @param instance {CANNON | Ammo | Goblin}
- * @constructor
- */
-GameLib.D3.Engine = function(
- engineType,
- instance
-) {
- this.engineType = engineType;
- this.instance = instance;
-};
-
-/**
- * True if CANNON physics
- * @returns {boolean}
- */
-GameLib.D3.Engine.prototype.isCannon = function() {
- return (this.engineType == GameLib.D3.Engine.ENGINE_TYPE_CANNON)
-};
-
-/**
- * Logs a warning and throws an error if not cannon
- */
-GameLib.D3.Engine.prototype.isNotCannonThrow = function() {
- Iif (this.engineType != GameLib.D3.Engine.ENGINE_TYPE_CANNON) {
- console.warn('Only CANNON supported for this function');
- throw new Error('Only CANNON supported for this function');
- }
-};
-
-/**
- * True if Ammo physics
- * @returns {boolean}
- */
-GameLib.D3.Engine.prototype.isAmmo = function() {
- return (this.engineType == GameLib.D3.Engine.ENGINE_TYPE_AMMO)
-};
-
-/**
- * True if Goblin physics
- * @returns {boolean}
- */
-GameLib.D3.Engine.prototype.isGoblin = function() {
- return (this.engineType == GameLib.D3.Engine.ENGINE_TYPE_GOBLIN)
-};
-
-/**
- * Physics GameLib.D3.Engine Types
- * @type {number}
- */
-GameLib.D3.Engine.ENGINE_TYPE_CANNON = 0x1;
-GameLib.D3.Engine.ENGINE_TYPE_AMMO = 0x2;
-GameLib.D3.Engine.ENGINE_TYPE_GOBLIN = 0x3;
-GameLib.D3.Entity = function(
- meshId,
- componentIds
-) {
- this.meshId = meshId;
-
- if (typeof componentIds == 'undefined') {
- componentIds = [];
- }
-
- this.componentIds = componentIds;
-};
-/**
- * Fly Controls
- * @param camera
- * @param THREE
- * @param canvas
- * @constructor
- */
-GameLib.D3.FlyControls = function(
- camera,
- THREE,
- canvas
-) {
- this.flySpeed = 100;
-
- this.canvas = canvas;
-
- this.THREE = THREE;
-
- this.yaw = 0;
- this.pitch = 0;
- this.canRotate = false;
-
- this.moveForward = false;
- this.moveBackward = false;
- this.moveLeft = false;
- this.moveRight = false;
- this.moveUp = false;
- this.moveDown = false;
-
- this.mouseUpCallback = this.onMouseUp.bind(this);
- this.mouseDownCallback = this.onMouseDown.bind(this);
- this.mouseMoveCallback = this.onMouseMove.bind(this);
- this.mouseWheelCallback = this.onMouseWheel.bind(this);
- this.keyDownCallback = this.onKeyDown.bind(this);
- this.keyUpCallback = this.onKeyUp.bind(this);
-
- this.camera = camera;
-
- this.canvas.addEventListener('keydown', this.keyDownCallback, false);
- this.canvas.addEventListener('keyup', this.keyUpCallback, false);
- this.canvas.addEventListener('mousedown', this.mouseDownCallback, false);
- this.canvas.addEventListener('mouseup', this.mouseUpCallback, false);
- this.canvas.addEventListener('mousewheel', this.mouseWheelCallback, false);
-
- this.havePointerLock = 'pointerLockElement' in document || 'mozPointerLockElement' in document || 'webkitPointerLockElement' in document;
- this.element = document.body;
-
- if (this.havePointerLock) {
- this.element.requestPointerLock = this.element.requestPointerLock || this.element.mozRequestPointerLock || this.element.webkitRequestPointerLock;
- document.exitPointerLock = document.exitPointerLock || document.mozExitPointerLock || document.webkitExitPointerLock;
- }
-};
-
-/**
- * Go forward / backward on mouse wheel
- * @param event
- */
-GameLib.D3.FlyControls.prototype.onMouseWheel = function(event) {
- this.moveForward = true;
- this.applyTranslation(event.wheelDelta * 0.001);
- event.preventDefault();
- this.moveForward = false;
-};
-
-/**
- * Start rotating the camera on mouse middle button down
- * @param event
- */
-GameLib.D3.FlyControls.prototype.onMouseDown = function(event) {
- if (event.button == 1) {
- this.canRotate = true;
- this.canvas.addEventListener('mousemove', this.mouseMoveCallback, false);
- }
-};
-
-/**
- * Stop rotating on middle mouse button down
- * @param event
- */
-GameLib.D3.FlyControls.prototype.onMouseUp = function(event) {
- if (event.button == 1) {
- this.canRotate = false;
- this.canvas.removeEventListener('mousemove', this.mouseMoveCallback);
- }
-};
-
-/**
- * Apply current yaw and pitch to camera
- */
-GameLib.D3.FlyControls.prototype.applyRotation = function() {
- this.camera.rotation.set(this.pitch, this.yaw, 0, "YXZ");
-};
-
-/**
- * Apply current position to camera
- * @param deltaTime
- */
-GameLib.D3.FlyControls.prototype.applyTranslation = function(deltaTime) {
- var direction = new this.THREE.Vector3(0, 0, -1);
- var rotation = new this.THREE.Euler(0, 0, 0, "YXZ");
- rotation.set(this.pitch, this.yaw, 0, "YXZ");
-
- direction = direction.applyEuler(rotation);
-
- var forward = direction.normalize();
- var right = forward.cross(new this.THREE.Vector3(0, 1, 0));
-
- if(this.moveForward) {
-
- this.camera.position.x += forward.x * (deltaTime * this.flySpeed);
- this.camera.position.y += forward.y * (deltaTime * this.flySpeed);
- this.camera.position.z += forward.z * (deltaTime * this.flySpeed);
-
- } else if(this.moveBackward) {
-
- this.camera.position.x -= forward.x * (deltaTime * this.flySpeed);
- this.camera.position.y -= forward.y * (deltaTime * this.flySpeed);
- this.camera.position.z -= forward.z * (deltaTime * this.flySpeed);
- }
-
- if(this.moveLeft) {
-
- this.camera.position.x -= right.x * (deltaTime * this.flySpeed);
- this.camera.position.y -= right.y * (deltaTime * this.flySpeed);
- this.camera.position.z -= right.z * (deltaTime * this.flySpeed);
-
- } else if(this.moveRight) {
-
- this.camera.position.x += right.x * (deltaTime * this.flySpeed);
- this.camera.position.y += right.y * (deltaTime * this.flySpeed);
- this.camera.position.z += right.z * (deltaTime * this.flySpeed);
- }
-
- if(this.moveUp) {
-
- this.camera.position.y += (deltaTime * this.flySpeed);
-
- } else if(this.moveDown) {
-
- this.camera.position.y -= (deltaTime * this.flySpeed);
-
- }
-};
-
-/**
- * This update function should be called from the animation function in order to apply the 'frame rate independent'
- * movement to the camera
- * @param deltaTime
- */
-GameLib.D3.FlyControls.prototype.update = function(deltaTime) {
- this.applyRotation();
- this.applyTranslation(deltaTime);
-};
-
-/**
- * Rotate on mouse move
- * @param event
- */
-GameLib.D3.FlyControls.prototype.onMouseMove = function ( event ) {
- if (this.canRotate) {
- var movementX = event.movementX || event.mozMovementX || event.webkitMovementX || 0;
- var movementY = event.movementY || event.mozMovementY || event.webkitMovementY || 0;
-
- this.yaw -= movementX * 0.002;
- this.pitch -= movementY * 0.002;
- }
-};
-
-/**
- * Keyboard controls
- * @param event
- */
-GameLib.D3.FlyControls.prototype.onKeyDown = function ( event ) {
- switch ( event.keyCode ) {
-
- case 87: // w
- this.moveForward = true;
- break;
-
- case 65: // a
- this.moveLeft = true;
- break;
-
- case 83: // s
- this.moveBackward = true;
- break;
-
- case 68: // d
- this.moveRight = true;
- break;
-
- case 104: // keypad up arrow
- this.moveUp = true;
- break;
-
- case 98: // keypad down arrow
- this.moveDown = true;
- break;
- }
-};
-
-/**
- * Keyboard controls
- * @param event
- */
-GameLib.D3.FlyControls.prototype.onKeyUp = function ( event ) {
- switch ( event.keyCode ) {
-
- case 38: // up
- case 87: // w
- this.moveForward = false;
- break;
-
- case 37: // left
- case 65: // a
- this.moveLeft = false;
- break;
-
- case 40: // down
- case 83: // s
- this.moveBackward = false;
- break;
-
- case 39: // right
- case 68: // d
- this.moveRight = false;
- break;
-
- case 104: // keypad up arrow
- this.moveUp = false;
- break;
-
- case 98: // keypad down arrow
- this.moveDown = false;
- break;
- }
-};
-GameLib.D3.Game = function (
-
-) {
- this.scenes = {};
- this.physicsWorlds = [];
- this.sceneToPhysicsWorldsMap = {};
-};
-
-GameLib.D3.Game.prototype.AddScene = function(
- scene
-) {
- this.scenes[scene.name] = scene;
-};
-
-GameLib.D3.Game.prototype.AddPhysicsWorld = function(
- physicsWorld
-) {
- this.physicsWorlds.push(physicsWorld);
-};
-
-GameLib.D3.Game.prototype.LinkPhysicsWorldToScene = function(
- physicsWorld,
- scene
-) {
- this.sceneToPhysicsWorldsMap[scene.name] = this.sceneToPhysicsWorldsMap[scene.name] || [];
- this.sceneToPhysicsWorldsMap[scene.name].push(physicsWorld);
-};
-
-GameLib.D3.Game.prototype.GetPhysicsWorldsForScene = function (
- scene
-) {
- return this.sceneToPhysicsWorldsMap[scene.name];
-};
-
-GameLib.D3.Game.prototype.ProcessPhysics = function (
- timestep
-) {
- for(var s in this.sceneToPhysicsWorldsMap) {
-
- var physicsWorldArray = this.sceneToPhysicsWorldsMap[s];
- var scene = this.scenes[s];
-
- if(scene && physicsWorldArray) {
-
- for(var i = 0, l = physicsWorldArray.length; i < l; i++) {
-
- var physicsWorld = physicsWorldArray[i];
- physicsWorld.Step(timestep);
-
- for(var p in physicsWorld.linkedPairs) {
- var pair = physicsWorld.linkedPairs[p];
- var mesh = pair.threeMesh;
- var body = pair.physicsBody;
-
- if(mesh) {
- if(physicsWorld.engineType === GameLib.D3.Physics.TYPE_CANNON) {
-
- var quaternion = new THREE.Quaternion();
- quaternion.copy(body.rigidBodyInstance.quaternion);
-
- var quaternionCopy = quaternion.clone();
-
- var position = new THREE.Vector3();
- position.copy(body.rigidBodyInstance.position);
-
- if(mesh.permutate) {
-
- if(mesh.permutate.offset) {
- if(mesh.permutate.offset.quaternion) {
- var offsetQuaternion = new THREE.Quaternion();
- offsetQuaternion.copy(mesh.permutate.offset.quaternion);
- quaternion = quaternion.multiply(offsetQuaternion).normalize();
- }
-
- if(mesh.permutate.offset.position) {
- var offsetPosition = new THREE.Vector3();
- offsetPosition.copy(mesh.permutate.offset.position);
- //position = position.add(offsetPosition);
- position = position.add(offsetPosition.applyQuaternion(quaternionCopy));
- }
- }
- }
-
- mesh.position.copy(position);
- mesh.quaternion.copy(quaternion);
- }
- }
- }
- }
- }
-
- }
-};
-
-GameLib.D3.Game.prototype.LinkPair = function (
- threeMesh,
- physicsBody,
- physicsWorld
-) {
- physicsWorld.linkedPairs = physicsWorld.linkedPairs || [];
-
- physicsWorld.linkedPairs.push({
- threeMesh : threeMesh,
- physicsBody : physicsBody
- });
-};
-/**
- * Graphics Superset
- * @param graphicsType
- * @param instance {THREE}
- * @constructor
- */
-GameLib.D3.Graphics = function(
- graphicsType,
- instance
-) {
- this.graphicsType = graphicsType;
- this.instance = instance;
-};
-
-/**
- * True if THREE physics
- * @returns {boolean}
- */
-GameLib.D3.Graphics.prototype.isThree = function() {
- return (this.graphicsType == GameLib.D3.Graphics.GRAPHICS_TYPE_THREE)
-};
-
-/**
- * Logs a warning and throws an error if not cannon
- */
-GameLib.D3.Graphics.prototype.isNotThreeThrow = function() {
- if (this.graphicsType != GameLib.D3.Graphics.GRAPHICS_TYPE_THREE) {
- console.warn('Only THREE supported for this function');
- throw new Error('Only THREE supported for this function');
- }
-};
-
-/**
- * Physics GameLib.D3.Graphics Types
- * @type {number}
- */
-GameLib.D3.Graphics.GRAPHICS_TYPE_THREE = 0x1;
-/**
- * @param sizeX Number
- * @param sizeY Number
- * @param matrix matrix 2D Array with height data (Column Major)
- * @param elementSize Number
- * @param heightScale Number
- * @constructor
- */
-GameLib.D3.Heightmap = function(
- sizeX,
- sizeY,
- matrix,
- elementSize,
- heightScale
-) {
- if (typeof sizeX == 'undefined') {
- sizeX = 0;
- }
- this.sizeX = sizeX;
-
- if (typeof sizeY == 'undefined') {
- sizeY = 0;
- }
- this.sizeY = sizeY;
-
- if (typeof matrix == 'undefined') {
- matrix = [];
- }
- this.matrix = matrix;
-
- if (typeof elementSize == 'undefined') {
- elementSize = 10;
- }
- this.elementSize = elementSize;
-
- if (typeof heightScale == 'undefined') {
- heightScale = 15;
- }
- this.elementSize = heightScale;
-};
-
-/**
- * Creates a graphics instance mesh from the graphics, physics and physics shape
- * @param graphics GameLib.D3.Graphics
- * @param shape GameLib.D3.Shape
- * @param engine GameLib.D3.Engine
- * @returns {THREE.Mesh|this.meshes}
- */
-GameLib.D3.Heightmap.GenerateInstanceMesh = function(
- graphics,
- shape,
- engine
-) {
- graphics.isNotThreeThrow();
- engine.isNotCannonThrow();
-
- var geometry = new graphics.instance.Geometry();
-
- var v0 = new engine.instance.Vec3();
- var v1 = new engine.instance.Vec3();
- var v2 = new engine.instance.Vec3();
-
- for (var xi = 0; xi < shape.instance.data.length - 1; xi++) {
- for (var yi = 0; yi < shape.instance.data[xi].length - 1; yi++) {
- for (var k = 0; k < 2; k++) {
- shape.instance.getConvexTrianglePillar(xi, yi, k===0);
- v0.copy(shape.instance.pillarConvex.vertices[0]);
- v1.copy(shape.instance.pillarConvex.vertices[1]);
- v2.copy(shape.instance.pillarConvex.vertices[2]);
- v0.vadd(shape.instance.pillarOffset, v0);
- v1.vadd(shape.instance.pillarOffset, v1);
- v2.vadd(shape.instance.pillarOffset, v2);
- geometry.vertices.push(
- new graphics.instance.Vector3(v0.x, v0.y, v0.z),
- new graphics.instance.Vector3(v1.x, v1.y, v1.z),
- new graphics.instance.Vector3(v2.x, v2.y, v2.z)
- );
- var i = geometry.vertices.length - 3;
- geometry.faces.push(new graphics.instance.Face3(i, i+1, i+2));
- }
- }
- }
- geometry.computeBoundingSphere();
- geometry.computeFaceNormals();
-
- return new graphics.instance.Mesh(
- geometry,
- new graphics.instance.MeshNormalMaterial(
- {
- wireframe: false,
- shading : graphics.instance.SmoothShading
- }
- )
- );
-};
-
-/**
- * Needs an RGBA
- * @param imagePath string
- * @param heightScale
- * @param callback
- * @constructor
- */
-GameLib.D3.Heightmap.GenerateHeightmapDataFromImage = function (
- imagePath,
- heightScale,
- callback
-) {
- var img = new Image();
-
- img.onload = function () {
-
- var canvas = document.createElement('canvas');
- canvas.width = img.width;
- canvas.height = img.height;
-
- var context = canvas.getContext('2d');
- context.drawImage(img, 0, 0);
-
- var imgd = context.getImageData(0, 0, img.width, img.height);
- var pixels = imgd.data;
-
- var heightList = [];
- for (var i = 0, n = pixels.length; i < n; i += (4)) {
- heightList.push(pixels[i]);
- }
-
- var matrix = [];
- var sizeX = img.width,
- sizeY = img.height;
-
- for (var x = 0; x < sizeX; x++) {
- matrix.push([]);
- for (var j = 0; j < sizeY; j++) {
- var height = (heightList[(sizeX - x) + j * sizeY] / 255) * heightScale;
- matrix[x].push(height);
- }
- }
-
- // todo: delete canvas here
-
- callback(
- new GameLib.D3.Heightmap(
- sizeX,
- sizeY,
- matrix,
- 10,
- heightScale
- )
- );
- };
-
- img.src = imagePath;
-};
-/**
- * Image
- * @param id
- * @param textureLink
- * @param filename
- * @param size
- * @param contentType
- * @constructor
- */
-GameLib.D3.Image = function(
- id,
- textureLink,
- filename,
- size,
- contentType
-) {
- this.id = id;
-
- this.filename = filename;
-
- this.textureLink = textureLink;
-
- if (typeof size == 'undefined') {
- size = 0;
- }
- this.size = size;
-
- if (typeof contentType == 'undefined') {
-
- contentType = 'application/octet-stream';
-
- if (this.filename.match(/(png)$/i)) {
- contentType = 'image/png';
- }
-
- if (this.filename.match(/(jpg|jpeg)$/i)) {
- contentType = 'image/jpeg';
- }
-
- if (this.filename.match(/(gif)$/i)) {
- contentType = 'image/gif';
- }
- }
- this.contentType = contentType;
-};
-/**
- * Light Superset
- * @param id
- * @param lightType
- * @param name
- * @param color
- * @param intensity
- * @param position
- * @param targetPosition
- * @param quaternion
- * @param rotation
- * @param scale
- * @param distance
- * @param decay
- * @param power
- * @param angle
- * @param penumbra
- * @constructor
- */
-GameLib.D3.Light = function(
- id,
- lightType,
- name,
- color,
- intensity,
- position,
- targetPosition,
- quaternion,
- rotation,
- scale,
- distance,
- decay,
- power,
- angle,
- penumbra
-) {
- this.id = id;
- this.lightType = lightType;
- this.name = name;
- this.color = color;
- this.intensity = intensity;
-
- if (typeof position == 'undefined') {
- position = new GameLib.D3.Vector3(0,0,0);
- }
- this.position = position;
-
- if (typeof targetPosition == 'undefined') {
- targetPosition = new GameLib.D3.Vector3(0,0,0);
- }
- this.targetPosition = targetPosition;
-
- if (typeof quaternion == 'undefined'){
- quaternion = new GameLib.D3.Vector4();
- }
- this.quaternion = quaternion;
-
- if (typeof rotation == 'undefined'){
- rotation = new GameLib.D3.Vector3(0,0,0);
- }
- this.rotation = rotation;
-
- if (typeof scale == 'undefined'){
- scale = new GameLib.D3.Vector3(1,1,1);
- }
- this.scale = scale;
-
- if (typeof distance == 'undefined'){
- distance = 0;
- }
- this.distance = distance;
-
- if (typeof decay == 'undefined'){
- decay = 1;
- }
- this.decay = decay;
-
- if (typeof power == 'undefined'){
- power = 4 * Math.PI;
- }
- this.power = power;
-
- if (typeof angle == 'undefined'){
- angle = Math.PI / 3;
- }
- this.angle = angle;
-
- if (typeof penumbra == 'undefined'){
- penumbra = 0;
- }
- this.penumbra = penumbra;
-};
-/**
- * Material Superset
- * @param id
- * @param name
- * @param materialType
- * @param opacity
- * @param side
- * @param transparent
- * @param maps
- * @param specular
- * @param lightMapIntensity
- * @param aoMapIntensity
- * @param color
- * @param emissive
- * @param emissiveIntensity
- * @param combine
- * @param shininess
- * @param reflectivity
- * @param refractionRatio
- * @param fog
- * @param wireframe
- * @param wireframeLineWidth
- * @param wireframeLineCap
- * @param wireframeLineJoin
- * @param vertexColors
- * @param skinning
- * @param morphTargets
- * @param morphNormals
- * @param lineWidth
- * @param lineCap
- * @param lineJoin
- * @param dashSize
- * @param gapWidth
- * @param blending
- * @param blendSrc
- * @param blendDst
- * @param blendEquation
- * @param depthTest
- * @param depthFunc
- * @param depthWrite
- * @param polygonOffset
- * @param polygonOffsetFactor
- * @param polygonOffsetUnits
- * @param alphaTest
- * @param clippingPlanes
- * @param clipShadows
- * @param visible
- * @param overdraw
- * @param shading
- * @param bumpScale
- * @param normalScale
- * @param displacementScale
- * @param displacementBias
- * @param roughness
- * @param metalness
- * @param pointSize
- * @param pointSizeAttenuation
- * @param spriteRotation
- * @param envMapIntensity
- * @constructor
- */
-GameLib.D3.Material = function(
- id,
- name,
- materialType,
- opacity,
- side,
- transparent,
- maps,
- specular,
- lightMapIntensity,
- aoMapIntensity,
- color,
- emissive,
- emissiveIntensity,
- combine,
- shininess,
- reflectivity,
- refractionRatio,
- fog,
- wireframe,
- wireframeLineWidth,
- wireframeLineCap,
- wireframeLineJoin,
- vertexColors,
- skinning,
- morphTargets,
- morphNormals,
- lineWidth,
- lineCap,
- lineJoin,
- dashSize,
- gapWidth,
- blending,
- blendSrc,
- blendDst,
- blendEquation,
- depthTest,
- depthFunc,
- depthWrite,
- polygonOffset,
- polygonOffsetFactor,
- polygonOffsetUnits,
- alphaTest,
- clippingPlanes,
- clipShadows,
- visible,
- overdraw,
- shading,
- bumpScale,
- normalScale,
- displacementScale,
- displacementBias,
- roughness,
- metalness,
- pointSize,
- pointSizeAttenuation,
- spriteRotation,
- envMapIntensity
-) {
- this.id = id;
- this.name = name;
- if (typeof materialType == 'undefined') {
- materialType = GameLib.D3.Material.TYPE_MESH_STANDARD;
- }
- this.materialType = materialType;
-
- if (typeof opacity == 'undefined') {
- opacity = 1.0;
- }
- this.opacity = opacity;
-
- if (typeof side == 'undefined') {
- side = GameLib.D3.Material.TYPE_FRONT_SIDE;
- }
- this.side = side;
-
- if (typeof transparent == 'undefined') {
- transparent = false;
- }
- this.transparent = transparent;
-
- if (typeof maps == 'undefined') {
- maps = {
- alpha: null,
- ao: null,
- bump: null,
- diffuse: null,
- displacement: null,
- emissive: null,
- environment: null,
- light: null,
- metalness: null,
- normal: null,
- roughness: null,
- specular: null
- };
- }
- this.maps = maps;
-
- if (typeof specular == 'undefined') {
- specular = new GameLib.D3.Color(0.06, 0.06, 0.06, 0.06);
- }
- this.specular = specular;
-
- if (typeof lightMapIntensity == 'undefined') {
- lightMapIntensity = 1;
- }
- this.lightMapIntensity = lightMapIntensity;
-
- if (typeof aoMapIntensity == 'undefined') {
- aoMapIntensity = 1;
- }
- this.aoMapIntensity = aoMapIntensity;
-
- if (typeof color == 'undefined') {
- color = new GameLib.D3.Color(1, 1, 1, 1)
- }
- this.color = color;
-
- if (typeof emissive == 'undefined') {
- emissive = new GameLib.D3.Color(0, 0, 0, 0);
- }
- this.emissive = emissive;
-
- if (typeof emissiveIntensity == 'undefined') {
- emissiveIntensity = 1;
- }
- this.emissiveIntensity = emissiveIntensity;
-
- if (typeof combine == 'undefined') {
- combine = GameLib.D3.Material.TYPE_MULTIPLY_OPERATION;
- }
- this.combine = combine;
-
- if (typeof shininess == 'undefined') {
- shininess = 30;
- }
- this.shininess = shininess;
-
- if (typeof reflectivity == 'undefined') {
- reflectivity = 1;
- }
- this.reflectivity = reflectivity;
-
- if (typeof refractionRatio == 'undefined') {
- refractionRatio = 0.98;
- }
- this.refractionRatio = refractionRatio;
-
- if (typeof fog == 'undefined') {
- fog = true;
- }
- this.fog = fog;
-
- if (typeof wireframe == 'undefined') {
- wireframe = false;
- }
- this.wireframe = wireframe;
-
- if (typeof wireframeLineWidth == 'undefined') {
- wireframeLineWidth = 1;
- }
- this.wireframeLineWidth = wireframeLineWidth;
-
- if (typeof wireframeLineCap == 'undefined') {
- wireframeLineCap = 'round';
- }
- this.wireframeLineCap = wireframeLineCap;
-
- if (typeof wireframeLineJoin == 'undefined') {
- wireframeLineJoin = 'round';
- }
- this.wireframeLineJoin = wireframeLineJoin;
-
- if (typeof vertexColors == 'undefined') {
- vertexColors = GameLib.D3.Material.TYPE_NO_COLORS;
- }
- this.vertexColors = vertexColors;
-
- if (typeof skinning == 'undefined') {
- skinning = false;
- }
- this.skinning = skinning;
-
- if (typeof morphTargets == 'undefined') {
- morphTargets = false;
- }
- this.morphTargets = morphTargets;
-
- if (typeof morphNormals == 'undefined') {
- morphNormals = false;
- }
- this.morphNormals = morphNormals;
-
- if (typeof overdraw == 'undefined') {
- overdraw = 0;
- }
- this.overdraw = overdraw;
-
- if (typeof lineWidth == 'undefined') {
- lineWidth = 1;
- }
- this.lineWidth = lineWidth;
-
- if (typeof lineCap == 'undefined') {
- lineCap = 'round';
- }
- this.lineCap = lineCap;
-
- if (typeof lineJoin == 'undefined') {
- lineJoin = 'round';
- }
- this.lineJoin = lineJoin;
-
- if (typeof dashSize == 'undefined') {
- dashSize = 3;
- }
- this.dashSize = dashSize;
-
- if (typeof gapWidth == 'undefined') {
- gapWidth = 1;
- }
- this.gapWidth = gapWidth;
-
- if (typeof blending == 'undefined') {
- blending = GameLib.D3.Material.TYPE_NORMAL_BLENDING;
- }
- this.blending = blending;
-
- if (typeof blendSrc == 'undefined') {
- blendSrc = GameLib.D3.Material.TYPE_SRC_ALPHA_FACTOR;
- }
- this.blendSrc = blendSrc;
-
- if (typeof blendDst == 'undefined') {
- blendDst = GameLib.D3.Material.TYPE_ONE_MINUS_SRC_ALPHA_FACTOR;
- }
- this.blendDst = blendDst;
-
- if (typeof blendEquation == 'undefined') {
- blendEquation = GameLib.D3.Material.TYPE_ADD_EQUATION;
- }
- this.blendEquation = blendEquation;
-
- if (typeof depthTest == 'undefined') {
- depthTest = true;
- }
- this.depthTest = depthTest;
-
- if (typeof depthFunc == 'undefined') {
- depthFunc = GameLib.D3.Material.TYPE_LESS_EQUAL_DEPTH;
- }
- this.depthFunc = depthFunc;
-
- if (typeof depthWrite == 'undefined') {
- depthWrite = true;
- }
- this.depthWrite = depthWrite;
-
- if (typeof polygonOffset == 'undefined') {
- polygonOffset = false;
- }
- this.polygonOffset = polygonOffset;
-
- if (typeof polygonOffsetFactor == 'undefined') {
- polygonOffsetFactor = 1;
- }
- this.polygonOffsetFactor = polygonOffsetFactor;
-
- if (typeof polygonOffsetUnits == 'undefined') {
- polygonOffsetUnits = 1;
- }
- this.polygonOffsetUnits = polygonOffsetUnits;
-
- if (typeof alphaTest == 'undefined') {
- alphaTest = 0;
- }
- this.alphaTest = alphaTest;
-
- if (typeof clippingPlanes == 'undefined') {
- clippingPlanes = [];
- }
- this.clippingPlanes = clippingPlanes;
-
- if (typeof clipShadows == 'undefined') {
- clipShadows = false;
- }
- this.clipShadows = clipShadows;
-
- if (typeof visible == 'undefined') {
- visible = true;
- }
- this.visible = visible;
-
- if (typeof shading == 'undefined') {
- shading = GameLib.D3.Material.TYPE_FLAT_SHADING;
- }
- this.shading = shading;
-
- if (typeof bumpScale == 'undefined') {
- bumpScale = 1;
- }
- this.bumpScale = bumpScale;
-
- if (typeof normalScale == 'undefined') {
- normalScale = 1;
- }
- this.normalScale = normalScale;
-
- if (typeof displacementScale == 'undefined') {
- displacementScale = 1;
- }
- this.displacementScale = displacementScale;
-
- if (typeof displacementBias == 'undefined') {
- displacementBias = 0;
- }
- this.displacementBias = displacementBias;
-
- if (typeof roughness == 'undefined') {
- roughness = 0.5;
- }
- this.roughness = roughness;
-
- if (typeof metalness == 'undefined') {
- metalness = 0.5;
- }
- this.metalness = metalness;
-
- if (typeof pointSize == 'undefined') {
- pointSize = 1;
- }
- this.pointSize = pointSize;
-
- if (typeof pointSizeAttenuation == 'undefined') {
- pointSizeAttenuation = true;
- }
- this.pointSizeAttenuation = pointSizeAttenuation;
-
- if (typeof spriteRotation == 'undefined') {
- spriteRotation = 0;
- }
- this.spriteRotation = spriteRotation;
-
- if (typeof envMapIntensity == 'undefined') {
- envMapIntensity = 1.0;
- }
- this.envMapIntensity = envMapIntensity;
-
-};
-
-/**
- * Combine Method
- * @type {number}
- */
-GameLib.D3.Material.TYPE_MULTIPLY_OPERATION = 0;
-GameLib.D3.Material.TYPE_MIX_OPERATION = 1;
-GameLib.D3.Material.TYPE_ADD_OPERATION = 2;
-
-/**
- * Vertex Color Mode
- * @type {number}
- */
-GameLib.D3.Material.TYPE_NO_COLORS = 0;
-GameLib.D3.Material.TYPE_FACE_COLORS = 1;
-GameLib.D3.Material.TYPE_VERTEX_COLORS = 2;
-
-/**
- * Blending Mode
- * @type {number}
- */
-GameLib.D3.Material.TYPE_NORMAL_BLENDING = 1;
-GameLib.D3.Material.TYPE_ADDITIVE_BLENDING = 2;
-GameLib.D3.Material.TYPE_SUBTRACTIVE_BLENDING = 3;
-GameLib.D3.Material.TYPE_MULTIPLY_BLENDING = 4;
-GameLib.D3.Material.TYPE_CUSTOM_BLENDING = 5;
-
-/**
- * Blend Source and Destination
- * @type {number}
- */
-GameLib.D3.Material.TYPE_ZERO_FACTOR = 200;
-GameLib.D3.Material.TYPE_ONE_FACTOR = 201;
-GameLib.D3.Material.TYPE_SRC_COLOR_FACTOR = 202;
-GameLib.D3.Material.TYPE_ONE_MINUS_SRC_COLOR_FACTOR = 203;
-GameLib.D3.Material.TYPE_SRC_ALPHA_FACTOR = 204;
-GameLib.D3.Material.TYPE_ONE_MINUS_SRC_ALPHA_FACTOR = 205;
-GameLib.D3.Material.TYPE_DST_ALPHA_FACTOR = 206;
-GameLib.D3.Material.TYPE_ONE_MINUS_DST_ALPHA_FACTOR = 207;
-GameLib.D3.Material.TYPE_DST_COLOR_FACTOR = 208;
-GameLib.D3.Material.TYPE_ONE_MINUS_DST_COLOR_FACTOR = 209;
-GameLib.D3.Material.TYPE_SRC_ALPHA_SATURATE_FACTOR = 210;
-
-/**
- * Blend Operation
- * @type {number}
- */
-GameLib.D3.Material.TYPE_ADD_EQUATION = 100;
-GameLib.D3.Material.TYPE_SUBTRACT_EQUATION = 101;
-GameLib.D3.Material.TYPE_REVERSE_SUBTRACT_EQUATION = 102;
-GameLib.D3.Material.TYPE_MIN_EQUATION = 103;
-GameLib.D3.Material.TYPE_MAX_EQUATION = 104;
-
-/**
- * Depth Function
- * @type {number}
- */
-GameLib.D3.Material.TYPE_NEVER_DEPTH = 0;
-GameLib.D3.Material.TYPE_ALWAYS_DEPTH = 1;
-GameLib.D3.Material.TYPE_LESS_DEPTH = 2;
-GameLib.D3.Material.TYPE_LESS_EQUAL_DEPTH = 3;
-GameLib.D3.Material.TYPE_EQUAL_DEPTH = 4;
-GameLib.D3.Material.TYPE_GREATER_EQUAL_DEPTH = 5;
-GameLib.D3.Material.TYPE_GREATER_DEPTH = 6;
-GameLib.D3.Material.TYPE_NOT_EQUAL_DEPTH = 7;
-
-/**
- * Culling Mode
- * @type {number}
- */
-GameLib.D3.Material.TYPE_FRONT_SIDE = 0;
-GameLib.D3.Material.TYPE_BACK_SIDE = 1;
-GameLib.D3.Material.TYPE_DOUBLE_SIDE = 2;
-
-/**
- * Shading Type
- * @type {number}
- */
-GameLib.D3.Material.TYPE_FLAT_SHADING = 1;
-GameLib.D3.Material.TYPE_SMOOTH_SHADING = 2;
-
-/**
- * Material Type
- * @type {string}
- */
-GameLib.D3.Material.TYPE_LINE_BASIC = "LineBasicMaterial";
-GameLib.D3.Material.TYPE_LINE_DASHED = "LineDashedMaterial";
-GameLib.D3.Material.TYPE_MESH_BASIC = "MeshBasicMaterial";
-GameLib.D3.Material.TYPE_MESH_DEPTH = "MeshDepthMaterial";
-GameLib.D3.Material.TYPE_MESH_LAMBERT = "MeshLambertMaterial";
-GameLib.D3.Material.TYPE_MESH_NORMAL = "MeshNormalMaterial";
-GameLib.D3.Material.TYPE_MESH_PHONG = "MeshPhongMaterial";
-GameLib.D3.Material.TYPE_MESH_STANDARD = "MeshStandardMaterial";
-GameLib.D3.Material.TYPE_POINTS = "PointsMaterial";
-GameLib.D3.Material.TYPE_SPRITE = "SpriteMaterial";
-GameLib.D3.Material.TYPE_MULTI_MATERIAL= "MultiMaterial";
-
-/**
- * Creates an instance Material from a GameLib.D3.Material
- * @param gameLibMaterial GameLib.D3.Material
- * @param graphics GameLib.D3.Graphics
- * @param uploadUrl String
- * @param progressCallback
- */
-GameLib.D3.Material.createInstanceMaterial = function(
- gameLibMaterial,
- graphics,
- uploadUrl,
- progressCallback
-) {
-
- var defer = Q.defer();
-
- var instanceMaterial = null;
-
- var blenderMaps = [];
-
- if (gameLibMaterial.materialType == GameLib.D3.Material.TYPE_MESH_STANDARD) {
-
- instanceMaterial = new graphics.instance.MeshStandardMaterial({
- name: gameLibMaterial.name,
- opacity: gameLibMaterial.opacity,
- transparent: gameLibMaterial.transparent,
- blending: gameLibMaterial.blending,
- blendSrc: gameLibMaterial.blendSrc,
- blendDst: gameLibMaterial.blendDst,
- blendEquation: gameLibMaterial.blendEquation,
- depthTest: gameLibMaterial.depthTest,
- depthFunc: gameLibMaterial.depthFunc,
- depthWrite: gameLibMaterial.depthWrite,
- polygonOffset: gameLibMaterial.polygonOffset,
- polygonOffsetFactor: gameLibMaterial.polygonOffsetFactor,
- polygonOffsetUnits: gameLibMaterial.polygonOffsetUnits,
- alphaTest: gameLibMaterial.alphaTest,
- clippingPlanes: gameLibMaterial.clippingPlanes,
- clipShadows: gameLibMaterial.clipShadows,
- overdraw: gameLibMaterial.overdraw,
- visible: gameLibMaterial.visible,
- side: gameLibMaterial.side,
- color: new graphics.instance.Color(
- gameLibMaterial.color.r,
- gameLibMaterial.color.g,
- gameLibMaterial.color.b
- ),
- roughness: gameLibMaterial.roughness,
- metalness: gameLibMaterial.metalness,
- lightMapIntensity: gameLibMaterial.lightMapIntensity,
- aoMapIntensity: gameLibMaterial.aoMapIntensity,
- emissive: new graphics.instance.Color(
- gameLibMaterial.emissive.r,
- gameLibMaterial.emissive.g,
- gameLibMaterial.emissive.b
- ),
- emissiveIntensity: gameLibMaterial.emissiveIntensity,
- bumpScale: gameLibMaterial.bumpScale,
- normalScale: gameLibMaterial.normalScale,
- displacementScale: gameLibMaterial.displacementScale,
- refractionRatio: gameLibMaterial.refractionRatio,
- fog: gameLibMaterial.fog,
- shading: gameLibMaterial.shading,
- wireframe: gameLibMaterial.wireframe,
- wireframeLinewidth: gameLibMaterial.wireframeLineWidth,
- wireframeLinecap: gameLibMaterial.wireframeLineCap,
- wireframeLinejoin: gameLibMaterial.wireframeLineJoin,
- vertexColors: gameLibMaterial.vertexColors,
- skinning: gameLibMaterial.skinning,
- morphTargets: gameLibMaterial.morphTargets,
- morphNormals: gameLibMaterial.morphNormals
- });
-
- blenderMaps.push(
- 'diffuse',
- 'light',
- 'ao',
- 'emissive',
- 'bump',
- 'normal',
- 'displacement',
- 'roughness',
- 'metalness',
- 'alpha',
- 'environment'
- );
- } else if (gameLibMaterial.materialType == GameLib.D3.Material.TYPE_MESH_PHONG) {
-
- instanceMaterial = new graphics.instance.MeshPhongMaterial({
- name: gameLibMaterial.name,
- opacity: gameLibMaterial.opacity,
- transparent: gameLibMaterial.transparent,
- blending: gameLibMaterial.blending,
- blendSrc: gameLibMaterial.blendSrc,
- blendDst: gameLibMaterial.blendDst,
- blendEquation: gameLibMaterial.blendEquation,
- depthTest: gameLibMaterial.depthTest,
- depthFunc: gameLibMaterial.depthFunc,
- depthWrite: gameLibMaterial.depthWrite,
- polygonOffset: gameLibMaterial.polygonOffset,
- polygonOffsetFactor: gameLibMaterial.polygonOffsetFactor,
- polygonOffsetUnits: gameLibMaterial.polygonOffsetUnits,
- alphaTest: gameLibMaterial.alphaTest,
- clippingPlanes: gameLibMaterial.clippingPlanes,
- clipShadows: gameLibMaterial.clipShadows,
- overdraw: gameLibMaterial.overdraw,
- visible: gameLibMaterial.visible,
- side: gameLibMaterial.side,
- color: new graphics.instance.Color(
- gameLibMaterial.color.r,
- gameLibMaterial.color.g,
- gameLibMaterial.color.b
- ),
- specular: new graphics.instance.Color(
- gameLibMaterial.specular.r,
- gameLibMaterial.specular.g,
- gameLibMaterial.specular.b
- ),
- shininess: gameLibMaterial.shininess,
- lightMapIntensity: gameLibMaterial.lightMapIntensity,
- aoMapIntensity: gameLibMaterial.aoMapIntensity,
- emissive: new graphics.instance.Color(
- gameLibMaterial.emissive.r,
- gameLibMaterial.emissive.g,
- gameLibMaterial.emissive.b
- ),
- emissiveIntensity: gameLibMaterial.emissiveIntensity,
- bumpScale: gameLibMaterial.bumpScale,
- normalScale: gameLibMaterial.normalScale,
- displacementScale: gameLibMaterial.displacementScale,
- combine: gameLibMaterial.combine,
- refractionRatio: gameLibMaterial.refractionRatio,
- fog: gameLibMaterial.fog,
- shading: gameLibMaterial.shading,
- wireframe: gameLibMaterial.wireframe,
- wireframeLinewidth: gameLibMaterial.wireframeLineWidth,
- wireframeLinecap: gameLibMaterial.wireframeLineCap,
- wireframeLinejoin: gameLibMaterial.wireframeLineJoin,
- vertexColors: gameLibMaterial.vertexColors,
- skinning: gameLibMaterial.skinning,
- morphTargets: gameLibMaterial.morphTargets,
- morphNormals: gameLibMaterial.morphNormals
- });
-
- blenderMaps.push(
- 'diffuse',
- 'light',
- 'ao',
- 'emissive',
- 'bump',
- 'normal',
- 'displacement',
- 'specular',
- 'alpha',
- 'environment'
- );
-
- } else {
- console.log("material type is not implemented yet: " + gameLibMaterial.materialType + " - material indexes could be screwed up");
- }
-
- if (blenderMaps.length > 0) {
- var textureMaps = GameLib.D3.Texture.loadMaps(
- gameLibMaterial,
- blenderMaps,
- instanceMaterial,
- graphics,
- uploadUrl,
- progressCallback
- );
- Q.all(textureMaps).then(
- function(){
- defer.resolve(instanceMaterial);
- }
- ).catch(
- function(error){
- console.log(error);
- defer.reject(error);
- }
- )
- } else {
- defer.resolve(instanceMaterial);
- }
-
- return defer.promise;
-};
-/**
- * Matrix 3 Maths
- * @param row0 GameLib.D3.Vector3
- * @param row1 GameLib.D3.Vector3
- * @param row2 GameLib.D3.Vector3
- * @constructor
- */
-GameLib.D3.Matrix3 = function(
- row0,
- row1,
- row2
-) {
- this.identity();
-
- if (row0) {
- this.rows[0] = row0;
- }
-
- if (row1) {
- this.rows[1] = row1;
- }
-
- if (row2) {
- this.rows[2] = row2;
- }
-};
-
-/**
- * Set matrix to identity
- */
-GameLib.D3.Matrix3.prototype.identity = function () {
- this.rows = [
- new GameLib.D3.Vector4(1, 0, 0),
- new GameLib.D3.Vector4(0, 1, 0),
- new GameLib.D3.Vector4(0, 0, 1)
- ];
-};
-GameLib.D3.Matrix4 = function(
- row0,
- row1,
- row2,
- row3
-) {
-
- this.identity();
-
- if (row0) {
- this.rows[0] = row0;
- }
-
- if (row1) {
- this.rows[1] = row1;
- }
-
- if (row2) {
- this.rows[2] = row2;
- }
-
- if (row3) {
- this.rows[3] = row3;
- }
-};
-
-GameLib.D3.Matrix4.prototype.rotationMatrixX = function (radians) {
- this.identity();
- this.rows[1] = new GameLib.D3.Vector4(0, Math.cos(radians), -1 * Math.sin(radians), 0);
- this.rows[2] = new GameLib.D3.Vector4(0, Math.sin(radians), Math.cos(radians), 0);
- return this;
-};
-
-GameLib.D3.Matrix4.prototype.rotationMatrixY = function (radians) {
- this.identity();
- this.rows[0] = new GameLib.D3.Vector4(
- Math.cos(radians),
- 0,
- Math.sin(radians),
- 0
- );
- this.rows[2] = new GameLib.D3.Vector4(
- -1 * Math.sin(radians),
- 0,
- Math.cos(radians),
- 0
- );
- return this;
-};
-
-GameLib.D3.Matrix4.prototype.rotationMatrixZ = function (radians) {
- this.identity();
- this.rows[0] = new GameLib.D3.Vector4(Math.cos(radians), -1 * Math.sin(radians), 0, 0);
- this.rows[1] = new GameLib.D3.Vector4(Math.sin(radians), Math.cos(radians), 0, 0);
- return this;
-};
-
-GameLib.D3.Matrix4.prototype.rotateX = function (radians, point) {
- this.identity();
- this.rotationMatrixX(radians);
- return this.multiply(point);
-};
-
-GameLib.D3.Matrix4.prototype.rotateY = function (radians, point) {
- this.identity();
- this.rotationMatrixY(radians);
- return this.multiply(point);
-};
-
-GameLib.D3.Matrix4.prototype.rotateZ = function (radians, point) {
- this.identity();
- this.rotationMatrixZ(radians);
- return this.multiply(point);
-};
-
-GameLib.D3.Matrix4.prototype.multiply = function (mvp) {
- if (mvp instanceof GameLib.D3.Vector4) {
- return new GameLib.D3.Vector4(
- this.rows[0].x * mvp.x + this.rows[0].y * mvp.y + this.rows[0].z * mvp.z + this.rows[0].w * mvp.w,
- this.rows[1].x * mvp.x + this.rows[1].y * mvp.y + this.rows[1].z * mvp.z + this.rows[1].w * mvp.w,
- this.rows[2].x * mvp.x + this.rows[2].y * mvp.y + this.rows[2].z * mvp.z + this.rows[2].w * mvp.w,
- this.rows[3].x * mvp.x + this.rows[3].y * mvp.y + this.rows[3].z * mvp.z + this.rows[3].w * mvp.w
- );
- } else if (mvp instanceof GameLib.D3.Vector3) {
- return new GameLib.D3.Vector3(
- this.rows[0].x * mvp.x + this.rows[0].y * mvp.y + this.rows[0].z * mvp.z,
- this.rows[1].x * mvp.x + this.rows[1].y * mvp.y + this.rows[1].z * mvp.z,
- this.rows[2].x * mvp.x + this.rows[2].y * mvp.y + this.rows[2].z * mvp.z
- );
- }
-};
-
-GameLib.D3.Matrix4.prototype.identity = function () {
- this.rows = [
- new GameLib.D3.Vector4(1, 0, 0, 0),
- new GameLib.D3.Vector4(0, 1, 0, 0),
- new GameLib.D3.Vector4(0, 0, 1, 0),
- new GameLib.D3.Vector4(0, 0, 0, 1)
- ];
-};
-
-GameLib.D3.Matrix4.prototype.lookAt = function (position, target, up) {
-
- var pv = new GameLib.D3.Vector3(position.x, position.y, position.z);
-
- var z = pv.subtract(target).normalize();
-
- if (z.squared() === 0) {
- z.z = 1;
- }
-
- var x = up.cross(z).normalize();
-
- if (x.squared() === 0) {
- z.x += 0.0001;
- x = up.cross(z).normalize();
- }
-
- var y = z.cross(x);
-
- this.rows[0].x = x.x;
- this.rows[0].y = x.y;
- this.rows[0].z = x.z;
-
- this.rows[1].x = y.x;
- this.rows[1].y = y.y;
- this.rows[1].z = y.z;
-
- this.rows[2].x = z.x;
- this.rows[2].y = z.y;
- this.rows[2].z = z.z;
-
- return this;
-
- // te[ 0 ] = x.x; te[ 4 ] = y.x; te[ 8 ] = z.x;
- // te[ 1 ] = x.y; te[ 5 ] = y.y; te[ 9 ] = z.y;
- // te[ 2 ] = x.z; te[ 6 ] = y.z; te[ 10 ] = z.z;
-
-
- // var matrix4 = new Matrix4();
- //
- // matrix4.rows[0] = side.negative();
- // matrix4.rows[1] = _up;
- // matrix4.rows[2] = forward;
-
- //
- // matrix4.setColumn(0, side.negative());
- // matrix4.setColumn(1, _up);
- // matrix4.setColumn(2, forward);
-
- //return matrix4;
-
- // return new Matrix4(
- // new Vector4(
- // side.x,
- // side.y,
- // side.z,
- // side.negative().dot(position)
- // ),
- // new Vector4(
- // _up.x,
- // _up.y,
- // _up.z,
- // _up.negative().dot(position)
- // ),
- // new Vector4(
- // forward.negative().x,
- // forward.negative().y,
- // forward.negative().z,
- // forward.dot(position)
- // )
- // )
-};
-
-/**
- * Mesh Superset
- * @param id
- * @param path
- * @param name
- * @param meshType
- * @param vertices
- * @param faces
- * @param skeleton
- * @param faceVertexUvs
- * @param skinIndices
- * @param skinWeights
- * @param materials
- * @param position
- * @param quaternion
- * @param rotation
- * @param scale
- * @param up
- * @param physics
- * @param parentMeshId
- * @param parentSceneId
- * @constructor
- */
-GameLib.D3.Mesh = function(
- id,
- path,
- name,
- meshType,
- vertices,
- faces,
- skeleton,
- faceVertexUvs,
- skinIndices,
- skinWeights,
- materials,
- position,
- quaternion,
- rotation,
- scale,
- up,
- physics,
- parentMeshId,
- parentSceneId
-) {
- this.id = id;
- this.meshId = GameLib.D3.Tools.RandomId();
- this.path = path;
- this.name = name;
- this.meshType = meshType;
- this.vertices = vertices;
- this.faces = faces;
-
- if (typeof skeleton == 'undefined') {
- skeleton = null;
- }
- this.skeleton = skeleton;
-
- if (typeof faceVertexUvs == 'undefined') {
- faceVertexUvs = [];
- }
- this.faceVertexUvs = faceVertexUvs;
-
- if (typeof skinIndices == 'undefined') {
- skinIndices = [];
- }
- this.skinIndices = skinIndices;
-
- if (typeof skinWeights == 'undefined') {
- skinWeights = [];
- }
- this.skinWeights = skinWeights;
-
- if (typeof materials == 'undefined') {
- materials = [];
- }
- this.materials = materials;
-
- if (typeof position == 'undefined') {
- position = new GameLib.D3.Vector3(0,0,0);
- }
- this.position = position;
-
- if (typeof quaternion == 'undefined') {
- new GameLib.D3.Vector4();
- }
- this.quaternion = quaternion;
-
- if (typeof rotation == 'undefined') {
- rotation = new GameLib.D3.Vector3(0,0,0);
- }
- this.rotation = rotation;
-
- if (typeof scale == 'undefined') {
- scale = new GameLib.D3.Vector3(1,1,1);
- }
- this.scale = scale;
-
- if (typeof up == 'undefined') {
- up = new GameLib.D3.Vector3(0,1,0);
- }
- this.up = up;
-
- this.physics = physics;
-
- this.parentMeshId = parentMeshId;
-
- this.parentSceneId = parentSceneId;
-};
-
-
-/**
- * Mesh Type
- * @type {number}
- */
-GameLib.D3.Mesh.TYPE_NORMAL = 0;
-GameLib.D3.Mesh.TYPE_SKINNED = 1;
-
-
-/**
- * Creates a THREE Mesh from GameLib.D3.Mesh
- * @param gameLibMesh GameLib.D3.Mesh
- * @param instanceGeometry
- * @param instanceMaterial
- * @param graphics
- * @returns {*}
- */
-GameLib.D3.Mesh.createInstanceMesh = function(gameLibMesh, instanceGeometry, instanceMaterial, graphics) {
-
- var threeMesh = null;
-
- if (gameLibMesh.meshType == GameLib.D3.Mesh.TYPE_NORMAL) {
- threeMesh = new graphics.instance.Mesh(instanceGeometry, instanceMaterial);
- }
-
- if (gameLibMesh.meshType == GameLib.D3.Mesh.TYPE_SKINNED) {
-
- var bones = gameLibMesh.skeleton.bones;
-
- var skinIndices = gameLibMesh.skinIndices;
-
- var skinWeights = gameLibMesh.skinWeights;
-
- var threeBones = [];
-
- for (var bi = 0; bi < bones.length; bi++) {
-
- var bone = new graphics.instance.Bone();
-
- bone.name = bones[bi].name;
-
- bone.position.x = bones[bi].position.x;
- bone.position.y = bones[bi].position.y;
- bone.position.z = bones[bi].position.z;
-
- bone.rotation.x = bones[bi].rotation.x;
- bone.rotation.y = bones[bi].rotation.y;
- bone.rotation.z = bones[bi].rotation.z;
-
- bone.quaternion.x = bones[bi].quaternion.x;
- bone.quaternion.y = bones[bi].quaternion.y;
- bone.quaternion.z = bones[bi].quaternion.z;
- bone.quaternion.w = bones[bi].quaternion.w;
-
- bone.scale.x = bones[bi].scale.x;
- bone.scale.y = bones[bi].scale.y;
- bone.scale.z = bones[bi].scale.z;
-
- bone.up.x = bones[bi].up.x;
- bone.up.y = bones[bi].up.y;
- bone.up.z = bones[bi].up.z;
-
- threeBones.push(bone);
- }
-
- /**
- * Setup the bone relationships
- */
- for (var br = 0; br < bones.length; br++) {
- for (var cbi = 0; cbi < bones[br].childBoneIds.length; cbi++) {
- threeBones[br].add(threeBones[bones[br].childBoneIds[cbi]]);
- }
- }
-
- /**
- * Setup bones (indexes)
- */
- for (var si = 0; si < skinIndices.length; si++) {
- instanceGeometry.skinIndices.push(
- new graphics.instance.Vector4(
- skinIndices[si].x,
- skinIndices[si].y,
- skinIndices[si].z,
- skinIndices[si].w
- )
- );
- }
-
- /**
- * Setup bones (weights)
- */
- for (var sw = 0; sw < skinWeights.length; sw++) {
- instanceGeometry.skinWeights.push(
- new graphics.instance.Vector4(
- skinWeights[sw].x,
- skinWeights[sw].y,
- skinWeights[sw].z,
- skinWeights[sw].w
- )
- );
- }
-
- threeMesh = new graphics.instance.SkinnedMesh(instanceGeometry, instanceMaterial);
-
- var skeleton = new graphics.instance.Skeleton(threeBones);
-
- skeleton.useVertexTexture = gameLibMesh.skeleton.useVertexTexture;
-
- for (var i = 0; i < bones.length; i++) {
- if (bones[i].parentBoneId === null) {
- threeMesh.add(threeBones[i]);
- break;
- }
- }
-
- threeMesh.bind(skeleton);
-
- threeMesh.pose();
-
- threeMesh.skeleton.skeletonHelper = new graphics.instance.SkeletonHelper(threeMesh);
- threeMesh.skeleton.skeletonHelper.material.linewidth = 5;
- }
-
- if (threeMesh == null) {
- console.log('cannot handle meshes of type ' + gameLibMesh.meshType + ' yet.');
- }
-
- gameLibMesh.threeMeshId = threeMesh.id;
-
- return threeMesh;
-};
-
-GameLib.D3.prototype.invertWindingOrder = function(triangles) {
-
- for (var i = 0; i < triangles.length; i++) {
- var v1 = triangles[i].v1;
- triangles[i].v1 = triangles[i].v2;
- triangles[i].v2 = v1;
-
- var backupUV = triangles[i].triangle.v1uv;
- triangles[i].triangle.v1uv = triangles[i].triangle.v2uv;
- triangles[i].triangle.v2uv = backupUV;
- }
-
- return triangles;
-};
-
-/**
- * This function resets a the winding order of a mesh from a reference point V (the average center of the mesh)
- */
-GameLib.D3.prototype.resetWindingOrder = function(faces, vertices) {
-
- var vertexList = new GameLib.D3.Vector3.Points();
-
- for (var v = 0; v < vertices.length; v++) {
- vertexList.add(new GameLib.D3.Vector3(
- vertices[v].position.x,
- vertices[v].position.y,
- vertices[v].position.z
- ));
- }
-
- var V = vertexList.average();
-
- var triangles = [];
-
- for (var s = 0; s < faces.length; s += 3) {
-
- var v0 = faces[s];
- var v1 = faces[s+1];
- var v2 = faces[s+2];
-
- triangles.push(
- {
- v0 : v0,
- v1 : v1,
- v2 : v2,
- edges : [
- {v0: v0, v1: v1},
- {v0: v1, v1: v2},
- {v0: v2, v1: v0}
- ],
- winding : 0,
- edgeIndex : -1,
- processed : false
- }
- );
- }
-
- for (var i = 0; i < triangles.length; i++) {
- if (
- GameLib.D3.Vector3.clockwise(
- vertices[triangles[i].v0].position,
- vertices[triangles[i].v1].position,
- vertices[triangles[i].v2].position,
- V
- )
- ) {
- console.log('clockwise');
- var bv1 = triangles[i].v1;
- triangles[i].v1 = triangles[i].v2;
- triangles[i].v2 = bv1;
- } else {
- console.log('not clockwise');
- }
- }
-
- return triangles;
-};
-
-/**
- * This function resets the winding order for triangles in faces, given an initial triangle and orientation edge
- * used pseudocode from
- * http://stackoverflow.com/questions/17036970/how-to-correct-winding-of-triangles-to-counter-clockwise-direction-of-a-3d-mesh
- * We need to use a graph traversal algorithm,
- * lets assume we have method that returns neighbor of triangle on given edge
- *
- * neighbor_on_egde( next_tria, edge )
- *
- * to_process = set of pairs triangle and orientation edge, initial state is one good oriented triangle with any edge on it
- * processed = set of processed triangles; initial empty
- *
- * while to_process is not empty:
- * next_tria, orientation_edge = to_process.pop()
- * add next_tria in processed
- * if next_tria is not opposite oriented than orientation_edge:
- * change next_tria (ABC) orientation (B<->C)
- * for each edge (AB) in next_tria:
- * neighbor_tria = neighbor_on_egde( next_tria, edge )
- * if neighbor_tria exists and neighbor_tria not in processed:
- * to_process add (neighbor_tria, edge opposite oriented (BA))
- * @param faces GameLib.D3.TriangleFace[]
- * @param orientationEdge GameLib.D3.Vector2
- * @returns {Array}
- */
-GameLib.D3.fixWindingOrder = function(faces, orientationEdge) {
-
- /**
- * Checks if a TriangleFace belonging to a TriangleEdge has already been processed
- * @param processed TriangleEdge[]
- * @param triangle TriangleFace
- * @returns {boolean}
- */
- function inProcessed(processed, triangle) {
-
- for (var i = 0; i < processed.length; i++) {
- if (processed[i].triangle.equals(triangle)) {
- return true;
- }
- }
-
- return false;
- }
-
- /**
- * Returns a neighbouring triangle on a specific edge - preserving the edge orientation
- * @param edge GameLib.D3.Vector2
- * @param faces GameLib.D3.TriangleFace[]
- * @param currentTriangle
- * @returns {*}
- */
- function neighbourOnEdge(edge, faces, currentTriangle) {
-
- for (var i = 0; i < faces.length; i++) {
- if (
- (faces[i].v0 == edge.x && faces[i].v1 == edge.y) ||
- (faces[i].v1 == edge.x && faces[i].v2 == edge.y) ||
- (faces[i].v2 == edge.x && faces[i].v0 == edge.y) ||
- (faces[i].v0 == edge.y && faces[i].v1 == edge.x) ||
- (faces[i].v1 == edge.y && faces[i].v2 == edge.x) ||
- (faces[i].v2 == edge.y && faces[i].v0 == edge.x)
- ) {
-
- var triangle = new GameLib.D3.TriangleFace(
- faces[i].v0,
- faces[i].v1,
- faces[i].v2,
- faces[i].materialIndex,
- faces[i].v0uv,
- faces[i].v1uv,
- faces[i].v2uv
- );
-
- if (triangle.equals(currentTriangle)) {
- continue;
- }
-
- return new GameLib.D3.TriangleEdge(
- triangle,
- edge
- );
- }
- }
-
- return null;
- }
-
- var toProcess = [
- new GameLib.D3.TriangleEdge(
- new GameLib.D3.TriangleFace(
- faces[0].v0,
- faces[0].v1,
- faces[0].v2,
- faces[0].materialIndex,
- faces[0].v0uv,
- faces[0].v1uv,
- faces[0].v2uv
- ),
- orientationEdge
- )
- ];
-
- var processed = [];
-
- while (toProcess.length > 0) {
-
- var triangleEdge = toProcess.pop();
-
- /**
- * If edge is the same orientation (i.e. the edge order is the same as the given triangle edge) it needs to be reversed
- * to have the same winding order)
- */
- if (
- (triangleEdge.triangle.v0 == triangleEdge.edge.x &&
- triangleEdge.triangle.v1 == triangleEdge.edge.y) ||
- (triangleEdge.triangle.v1 == triangleEdge.edge.x &&
- triangleEdge.triangle.v2 == triangleEdge.edge.y) ||
- (triangleEdge.triangle.v2 == triangleEdge.edge.x &&
- triangleEdge.triangle.v0 == triangleEdge.edge.y)
- ) {
- var backupV = triangleEdge.triangle.v1;
- triangleEdge.triangle.v1 = triangleEdge.triangle.v2;
- triangleEdge.triangle.v2 = backupV;
-
- var backupUV = triangleEdge.triangle.v1uv;
- triangleEdge.triangle.v1uv = triangleEdge.triangle.v2uv;
- triangleEdge.triangle.v2uv = backupUV;
- }
-
- processed.push(triangleEdge);
-
- var edges = [
- new GameLib.D3.Vector2(
- triangleEdge.triangle.v0,
- triangleEdge.triangle.v1
- ),
- new GameLib.D3.Vector2(
- triangleEdge.triangle.v1,
- triangleEdge.triangle.v2
- ),
- new GameLib.D3.Vector2(
- triangleEdge.triangle.v2,
- triangleEdge.triangle.v0
- )
- ];
-
- for (var j = 0; j < edges.length; j++) {
- var neighbour = neighbourOnEdge(edges[j], faces, triangleEdge.triangle);
- if (neighbour && !inProcessed(processed, neighbour.triangle)) {
- toProcess.push(neighbour);
- }
- }
- }
-
- /**
- * In processed - we will have some duplicates - only add the unique ones
- * @type {Array}
- */
- var triangles = [];
- for (var i = 0; i < processed.length; i++) {
- var found = false;
- for (var k = 0; k < triangles.length; k++) {
- if (triangles[k].equals(processed[i].triangle)){
- found = true;
- break;
- }
- }
- if (!found) {
- triangles.push(processed[i].triangle);
- }
- }
-
- return triangles;
-};
-
-/**
- * This is a work-around function to fix polys which don't triangulate because
- * they could lie on Z-plane (XZ or YZ)) - we translate the poly to the origin, systematically rotate the poly around
- * Z then Y axis
- * @param verticesFlat []
- * @param grain is the amount to systematically rotate the poly by - a finer grain means a more accurate maximum XY
- * @return []
- */
-GameLib.D3.fixPolyZPlane = function(verticesFlat, grain) {
-
- if ((verticesFlat.length % 3) != 0 && !(verticesFlat.length > 9)) {
- console.log("The vertices are not in the right length : " + verticesFlat.length);
- }
-
- var vertices = [];
-
- var points = new GameLib.D3.Vector4.Points();
-
- for (var i = 0; i < verticesFlat.length; i += 3) {
- points.add(new GameLib.D3.Vector3(
- verticesFlat[i],
- verticesFlat[i + 1],
- verticesFlat[i + 2]
- ));
- }
-
- points.toOrigin();
-
- points.maximizeXDistance(grain);
-
- points.maximizeYDistance(grain);
-
- for (i = 0; i < points.vectors.length; i++) {
- vertices.push(
- [
- points.vectors[i].x,
- points.vectors[i].y
- ]
- );
- }
-
- return vertices;
-};
-/**
- * Physics SuperSet Namespace Object
- * @param id
- * @param name
- * @param engine GameLib.D3.Engine
- * @param worlds
- * @returns {{World: World}}
- * @constructor
- */
-GameLib.D3.Physics = function(
- id,
- name,
- engine,
- worlds
-) {
- this.id = id;
- this.name = name;
- this.engine = engine;
-
- if (typeof worlds == 'undefined') {
- worlds = [];
- }
- this.worlds = worlds;
-};
-
-
-/**
- * Solver Types
- * @type {number}
- */
-GameLib.D3.Physics.SPLIT_SOLVER = 0x1;
-GameLib.D3.Physics.GS_SOLVER = 0x2;
-/**
- * Contains a Poly vertex data structure
- * @param localIndex
- * @param mvertIndex
- * @param uv GameLib.D3.Vector2
- * @param materialIndex
- * @param edgeIndex
- * @constructor
- */
-GameLib.D3.PolyVertex = function(
- localIndex,
- mvertIndex,
- uv,
- materialIndex,
- edgeIndex
-) {
- this.localIndex = localIndex;
- this.mvertIndex = mvertIndex;
- this.uv = uv;
- this.materialIndex = materialIndex;
- this.edgeIndex = edgeIndex;
-};
-
-/**
- * Clone a PolyVertex
- * @returns {GameLib.D3.PolyVertex}
- */
-GameLib.D3.PolyVertex.prototype.clone = function() {
- return new GameLib.D3.PolyVertex(
- this.localIndex,
- this.mvertIndex,
- this.uv.copy(),
- this.materialIndex,
- this.edgeIndex
- )
-};
-/**
- * Raycast Vehicles :)
- * @param engine GameLib.D3.Engine
- * @param chassisBody GameLib.D3.RigidBody
- * @param wheels GameLib.D3.RaycastWheel[]
- * @constructor
- */
-GameLib.D3.RaycastVehicle = function(
- engine,
- chassisBody,
- wheels
-) {
- this.engine = engine;
- this.engine.isNotCannonThrow();
-
- this.componentId = GameLib.D3.Tools.RandomId();
-
- this.chassisBody = chassisBody;
-
- if (typeof wheels == 'undefined') {
- wheels = [];
- }
- this.wheels = wheels;
-
- this.instance = this.createInstance();
-};
-
-/**
- * private
- * @returns {GameLib.D3.RaycastVehicle|GameLib.D3.Physics.RaycastVehicle|*}
- */
-GameLib.D3.RaycastVehicle.prototype.createInstance = function() {
- return new this.engine.instance.RaycastVehicle({
- chassisBody: this.chassisBody.instance
- });
-};
-
-/**
- * Adds a raycast wheel to this vehicle
- * @param wheel GameLib.D3.RaycastWheel
- */
-GameLib.D3.RaycastVehicle.prototype.addWheel = function (
- wheel
-) {
- this.wheels.push(wheel);
- this.instance.addWheel(wheel.instance);
-};
-
-/**
- * Returns updated wheel info
- * @returns {*}
- * @constructor
- */
-GameLib.D3.RaycastVehicle.prototype.getWheelInfo = function() {
- return this.instance.wheelInfos;
-};
-GameLib.D3.RaycastWheel = function(
- engine,
- chassisConnectionPointLocal,
- chassisConnectionPointWorld,
- directionLocal,
- directionWorld,
- axleLocal,
- axleWorld,
- suspensionRestLength,
- suspensionMaxLength,
- radius,
- suspensionStiffness,
- dampingCompression,
- dampingRelaxation,
- frictionSlip,
- steering,
- rotation,
- deltaRotation,
- rollInfluence,
- maxSuspensionForce,
- isFrontWheel,
- clippedInvContactDotSuspension,
- suspensionRelativeVelocity,
- suspensionForce,
- skidInfo,
- suspensionLength,
- maxSuspensionTravel,
- useCustomSlidingRotationalSpeed,
- customSlidingRotationalSpeed
-) {
- this.engine = engine;
- this.engine.isNotCannonThrow();
-
- this.componentId = GameLib.D3.Tools.RandomId();
-
- if(typeof chassisConnectionPointLocal == 'undefined') {
- chassisConnectionPointLocal = new this.engine.instance.Vec3();
- }
- this.chassisConnectionPointLocal = chassisConnectionPointLocal;
-
- if(typeof chassisConnectionPointWorld == 'undefined') {
- chassisConnectionPointWorld = new this.engine.instance.Vec3();
- }
- this.chassisConnectionPointWorld = chassisConnectionPointWorld;
-
- if(typeof directionLocal == 'undefined') {
- directionLocal = new this.engine.instance.Vec3();
- }
- this.directionLocal = directionLocal;
-
- if(typeof directionWorld == 'undefined') {
- directionWorld = new this.engine.instance.Vec3();
- }
- this.directionWorld = directionWorld;
-
- if(typeof axleLocal == 'undefined') {
- axleLocal = new this.engine.instance.Vec3();
- }
- this.axleLocal = axleLocal;
-
- if(typeof axleWorld == 'undefined') {
- axleWorld = new this.engine.instance.Vec3();
- }
- this.axleWorld = axleWorld;
-
- if(typeof suspensionRestLength == 'undefined') {
- suspensionRestLength = 1;
- }
- this.suspensionRestLength = suspensionRestLength;
-
- if(typeof suspensionMaxLength == 'undefined') {
- suspensionMaxLength = 2;
- }
- this.suspensionMaxLength = suspensionMaxLength;
-
- if(typeof radius == 'undefined') {
- radius = 1;
- }
- this.radius = radius;
-
- if(typeof suspensionStiffness == 'undefined') {
- suspensionStiffness = 100;
- }
- this.suspensionStiffness = suspensionStiffness;
-
- if(typeof dampingCompression == 'undefined') {
- dampingCompression = 10;
- }
- this.dampingCompression = dampingCompression;
-
- if(typeof dampingRelaxation == 'undefined') {
- dampingRelaxation = 10;
- }
- this.dampingRelaxation = dampingRelaxation;
-
- if(typeof frictionSlip == 'undefined') {
- frictionSlip = 10000;
- }
- this.frictionSlip = frictionSlip;
-
- if(typeof steering == 'undefined') {
- steering = 0;
- }
- this.steering = steering;
-
- if(typeof rotation == 'undefined') {
- rotation = 0;
- }
- this.rotation = rotation;
-
- if(typeof deltaRotation == 'undefined') {
- deltaRotation = 0;
- }
- this.deltaRotation = deltaRotation;
-
- if(typeof rollInfluence == 'undefined') {
- rollInfluence = 0.01;
- }
- this.rollInfluence = rollInfluence;
-
- if(typeof maxSuspensionForce == 'undefined') {
- maxSuspensionForce = Number.MAX_VALUE;
- }
- this.maxSuspensionForce = maxSuspensionForce;
-
- if(typeof isFrontWheel == 'undefined') {
- isFrontWheel = true;
- }
- this.isFrontWheel = isFrontWheel;
-
- if(typeof clippedInvContactDotSuspension == 'undefined') {
- clippedInvContactDotSuspension = 1;
- }
- this.clippedInvContactDotSuspension = clippedInvContactDotSuspension;
-
- if(typeof suspensionRelativeVelocity == 'undefined') {
- suspensionRelativeVelocity = 0;
- }
- this.suspensionRelativeVelocity = suspensionRelativeVelocity;
-
- if(typeof suspensionForce == 'undefined') {
- suspensionForce = 0;
- }
- this.suspensionForce = suspensionForce;
-
- if(typeof skidInfo == 'undefined') {
- skidInfo = 0;
- }
- this.skidInfo = skidInfo;
-
- if(typeof suspensionLength == 'undefined') {
- suspensionLength = 0;
- }
- this.suspensionLength = suspensionLength;
-
- if(typeof maxSuspensionTravel == 'undefined') {
- maxSuspensionTravel = 1;
- }
- this.maxSuspensionTravel = maxSuspensionTravel;
-
- if(typeof useCustomSlidingRotationalSpeed == 'undefined') {
- useCustomSlidingRotationalSpeed = false;
- }
- this.useCustomSlidingRotationalSpeed = useCustomSlidingRotationalSpeed;
-
- if(typeof customSlidingRotationalSpeed == 'undefined') {
- customSlidingRotationalSpeed = -0.1;
- }
- this.customSlidingRotationalSpeed = customSlidingRotationalSpeed;
-
- this.instance = this.createInstance();
-};
-
-GameLib.D3.RaycastWheel.prototype.createInstance = function() {
-
- return new this.engine.instance.WheelInfo({
- chassisConnectionPointLocal : this.chassisConnectionPointLocal,
- chassisConnectionPointWorld : this.chassisConnectionPointWorld,
- directionLocal : this.directionLocal,
- directionWorld : this.directionWorld,
- axleLocal : this.axleLocal,
- axleWorld : this.axleWorld,
- suspensionRestLength : this.suspensionRestLength,
- suspensionMaxLength : this.suspensionMaxLength,
- radius : this.radius,
- suspensionStiffness : this.suspensionStiffness,
- dampingCompression : this.dampingCompression,
- dampingRelaxation : this.dampingRelaxation,
- frictionSlip : this.frictionSlip,
- steering : this.steering,
- rotation : this.rotation,
- deltaRotation : this.deltaRotation,
- rollInfluence : this.rollInfluence,
- maxSuspensionForce : this.maxSuspensionForce,
- isFrontWheel : this.isFrontWheel,
- clippedInvContactDotSuspension : this.clippedInvContactDotSuspension,
- suspensionRelativeVelocity : this.suspensionRelativeVelocity,
- suspensionForce : this.suspensionForce,
- skidInfo : this.skidInfo,
- suspensionLength : this.suspensionLength,
- maxSuspensionTravel : this.maxSuspensionTravel,
- useCustomSlidingRotationalSpeed : this.useCustomSlidingRotationalSpeed,
- customSlidingRotationalSpeed : this.customSlidingRotationalSpeed
- });
-
-};
-
-/**
- * Physics Rigid Body Vehicle Superset
- * @param engine GameLib.D3.Engine
- * @param chassisBody GameLib.D3.RigidBody
- * @param wheels GameLib.D3.RigidWheel[]
- * @constructor
- */
-GameLib.D3.RigidBodyVehicle = function(
- engine,
- chassisBody,
- wheels
-) {
- this.componentId = GameLib.D3.Tools.RandomId();
- this.engine = engine;
- this.engine.isNotCannonThrow();
-
- this.chassisBody = chassisBody;
-
- if (typeof wheels == 'undefined') {
- wheels = [];
- }
- this.wheels = wheels;
-
- this.instance = this.createInstance();
-};
-
-/**
- * Returns physics wheelbody info (for updates)
- * @returns {Array}
- */
-GameLib.D3.RigidBodyVehicle.prototype.getWheelInfo = function() {
- return this.instance.wheelBodies;
-};
-
-/**
- *
- * @returns {GameLib.D3.RigidVehicle}
- */
-GameLib.D3.RigidBodyVehicle.prototype.createInstance = function() {
- return new this.engine.instance.RigidVehicle({
- chassisBody: this.chassisBody.instance
- });
-};
-
-/**
- * Adds a wheel to this rigid body vehicle
- * @param wheel GameLib.D3.RigidWheel
- */
-GameLib.D3.RigidBodyVehicle.prototype.addWheel = function(wheel) {
-
- this.wheels.push(wheel);
-
- this.instance.addWheel({
- body: wheel.body.instance,
- position: new this.engine.instance.Vec3(
- wheel.position.x,
- wheel.position.y,
- wheel.position.z
- ),
- axis: new this.engine.instance.Vec3(
- wheel.axis.x,
- wheel.axis.y,
- wheel.axis.z
- ),
- direction: new this.engine.instance.Vec3(
- wheel.direction.x,
- wheel.direction.y,
- wheel.direction.z
- )
- });
-
-};
-
-/**
- * RigidBody Superset
- * @param engine GameLib.D3.Engine
- * @param mass
- * @param friction
- * @param position
- * @param quaternion
- * @param velocity
- * @param angularVelocity
- * @param linearDamping
- * @param angularDamping
- * @param allowSleep
- * @param sleepSpeedLimit
- * @param sleepTimeLimit
- * @param collisionFilterGroup
- * @param collisionFilterMask
- * @param fixedRotation
- * @param shape GameLib.D3.Shape
- * @returns {GameLib.D3.Physics.RigidBody}
- * @constructor
- */
-GameLib.D3.RigidBody = function(
- engine,
- mass,
- friction,
- position,
- quaternion,
- velocity,
- angularVelocity,
- linearDamping,
- angularDamping,
- allowSleep,
- sleepSpeedLimit,
- sleepTimeLimit,
- collisionFilterGroup,
- collisionFilterMask,
- fixedRotation,
- shape
-) {
- this.componentId = GameLib.D3.Tools.RandomId();
- this.position = position || new GameLib.D3.Vector3();
- this.velocity = velocity || new GameLib.D3.Vector3();
- this.angularVelocity = angularVelocity || new GameLib.D3.Vector3();
- this.quaternion = quaternion || new GameLib.D3.Vector4(0, 0, 0, 1);
- this.mass = typeof mass == "undefined" ? 0 : mass;
- this.friction = typeof friction == "undefined" ? 5 : friction;
- this.linearDamping = typeof linearDamping == "undefined" ? 0.01 : linearDamping;
- this.angularDamping = typeof angularDamping == "undefined" ? 0.01 : angularDamping;
- this.allowSleep = typeof allowSleep == "undefined" ? true : allowSleep;
- this.sleepSpeedLimit = typeof sleepSpeedLimit == "undefined" ? 0.1 : sleepSpeedLimit;
- this.sleepTimeLimit = typeof sleepTimeLimit == "undefined" ? 1.0 : sleepTimeLimit;
- this.collisionFilterGroup = typeof collisionFilterGroup == "undefined" ? 1 : collisionFilterGroup;
- this.collisionFilterMask = typeof collisionFilterMask == "undefined" ? 1 : collisionFilterMask;
- this.fixedRotation = typeof fixedRotation == "undefined" ? false : fixedRotation;
- this.shape = typeof shape == "undefined" ? null : shape;
-
- this.engine = engine;
-
- this.engine.isNotCannonThrow();
-
- this.instance = this.createInstance();
-};
-
-/**
- * private function
- * @returns {*}
- */
-GameLib.D3.RigidBody.prototype.createInstance = function() {
-
- var instance = new this.engine.instance.Body({
- mass: mass,
- friction: this.friction,
- position: new this.engine.instance.Vec3(
- this.position.x,
- this.position.y,
- this.position.z
- ),
- velocity: new this.engine.instance.Vec3(
- this.velocity.x,
- this.velocity.y,
- this.velocity.z
- ),
- quaternion: new this.engine.instance.Quaternion(
- this.quaternion.x,
- this.quaternion.y,
- this.quaternion.z,
- this.quaternion.w
- ),
- angularVelocity: new this.engine.instance.Vec3(
- this.angularVelocity.x,
- this.angularVelocity.y,
- this.angularVelocity.z
- ),
- linearDamping: this.linearDamping,
- angularDamping: this.angularDamping,
- allowSleep: this.allowSleep,
- sleepSpeedLimit: this.sleepSpeedLimit,
- sleepTimeLimit: this.sleepTimeLimit,
- collisionFilterGroup: this.collisionFilterGroup,
- collisionFilterMask: this.collisionFilterMask,
- fixedRotation: this.fixedRotation,
- shape: this.shape.instance
- });
-
- this.instance = instance;
-
- return instance;
-};
-
-/**
- * Adds a shape to this rigid body
- * @param shape GameLib.D3.Shape
- * @param offset GameLib.D3.Vector3
- * @param orientation GameLib.D3.Vector4
- * @constructor
- */
-GameLib.D3.RigidBody.prototype.addShape = function(
- shape,
- offset,
- orientation
-) {
- if (!offset) {
- offset = new GameLib.D3.Vector3(0,0,0);
- }
-
- if (!orientation) {
- orientation = new GameLib.D3.Vector4(0,0,0,1);
- }
-
- this.instance.addShape(
- shape.instance,
- new this.engine.instance.Vec3(
- offset.x,
- offset.y,
- offset.z
- ),
- new this.engine.instance.Quaternion(
- orientation.x,
- orientation.y,
- orientation.z,
- orientation.w
- )
- );
-};
-
-
-
-/**
- * Rigid Wheel superset
- * @param body GameLib.D3.RigidBody
- * @param position GameLib.D3.Vector3
- * @param axis GameLib.D3.Vector3
- * @param direction GameLib.D3.Vector3
- * @constructor
- */
-GameLib.D3.RigidWheel = function(
- body,
- position,
- axis,
- direction
-) {
- this.componentId = GameLib.D3.Tools.RandomId();
- this.body = body;
- this.position = position;
- this.axis = axis;
- this.direction = direction;
-};
-
-/**
- * Scenes are objects putting meshes into 'world space'
- * @param id
- * @param path String
- * @param name String
- * @param meshes GameLib.D3.Mesh[]
- * @param quaternion
- * @param position
- * @param rotation
- * @param scale
- * @param parentSceneId
- * @param lights
- * @param worlds
- * @param entities
- * @constructor
- */
-GameLib.D3.Scene = function(
- id,
- path,
- name,
- meshes,
- quaternion,
- position,
- rotation,
- scale,
- parentSceneId,
- lights,
- worlds,
- entities
-) {
- this.id = id;
- this.sceneId = GameLib.D3.Tools.RandomId();
- this.path = path;
- this.name = name;
- Iif (this.name.trim() == "") {
- this.name = 'unnamed';
- }
-
- Eif (typeof meshes == 'undefined') {
- meshes = [];
- }
- this.meshes = meshes;
-
- Eif (typeof quaternion == 'undefined') {
- quaternion = new GameLib.D3.Vector4();
- }
- this.quaternion = quaternion;
-
- Eif (typeof position == 'undefined') {
- position = new GameLib.D3.Vector3(0,0,0);
- }
- this.position = position;
-
- Eif (typeof rotation == 'undefined') {
- rotation = new GameLib.D3.Vector3(0,0,0);
- }
- this.rotation = rotation;
-
- Eif (typeof scale == 'undefined') {
- scale = new GameLib.D3.Vector3(1,1,1);
- }
- this.scale = scale;
-
- Eif (typeof parentSceneId == 'undefined') {
- parentSceneId = null;
- }
- this.parentSceneId = parentSceneId;
-
- Eif (typeof lights == 'undefined') {
- lights = [];
- }
- this.lights = lights;
-
- Eif (typeof worlds == 'undefined') {
- worlds = [];
- }
- this.worlds = worlds;
-
- Eif (typeof entities == 'undefined') {
- entities = [];
- }
- this.entities = entities;
-};
-
-/**
- * Loads a scene directly from the API
- * @param gameLibScene GameLib.D3.Scene
- * @param onLoaded callback
- * @param graphics GameLib.D3.Graphics
- * @param uploadUrl String
- * @param progressCallback callback
- * @param apiUrl
- */
-GameLib.D3.Scene.LoadSceneFromApi = function(
- gameLibScene,
- onLoaded,
- graphics,
- uploadUrl,
- progressCallback,
- apiUrl
-) {
-
- /**
- * First check if this is a client or server side request
- */
- Eif (typeof XMLHttpRequest == 'undefined') {
- console.warn('implement server side loading from API here');
- return onLoaded(null, new Error('not implemented'));
- }
-
- var xhr = new XMLHttpRequest();
- xhr.open(
- 'GET',
- apiUrl + '/scene/load' + gameLibScene.path + '/' + gameLibScene.name
- );
-
- xhr.onreadystatechange = function(xhr) {
- return function() {
- if (xhr.readyState == 4) {
-
- var response = JSON.parse(xhr.responseText);
-
- if (!response.scene || response.scene.length == 0) {
- return onLoaded(null, null, new Error('Could not load scene'));
- }
-
- var scene = response.scene[0];
-
- var physics3ds = [];
-
- if (scene.physics && scene.physics.length > 0) {
-
- for (var p = 0; p < scene.physics.length; p++) {
-
- var physics = scene.physics[p];
-
- var engine = null;
-
- if (physics.engine.engineType == GameLib.D3.Engine.ENGINE_TYPE_CANNON) {
- engine = new GameLib.D3.Engine(
- GameLib.D3.Engine.ENGINE_TYPE_CANNON,
- CANNON
- );
- }
-
- var physics3d = new GameLib.D3.Physics(
- physics.id,
- physics.name,
- engine,
- null
- );
-
- var worlds3d = [];
-
- for (var w = 0; w < physics.worlds.length; w++) {
-
- var world = physics.worlds[w];
-
- var broadphase = world.broadphase;
-
- var broadphase3d = new GameLib.D3.Physics.Broadphase(
- broadphase.id,
- broadphase.name,
- broadphase.broadphaseType
- );
-
- var solver = world.solver;
-
- var solver3d = new GameLib.D3.Physics.Solver(
- solver.id,
- solver.name,
- solver.solverType,
- solver.iterations,
- solver.tolerance
- );
-
- var bodies = world.rigidBodies;
-
- var bodies3d = [];
-
- for (var b = 0; b < bodies.length; b++) {
-
- var body = bodies[b];
-
- //TODO: add all body properties here
- var body3d = new GameLib.D3.Physics.RigidBody(
- body.id,
- body.name
- );
-
- bodies3d.push(body3d);
- }
-
- var world3d = new GameLib.D3.Physics.World(
- null,
- world.name,
- physics3d,
- new GameLib.D3.Vector3(
- world.gravity.x,
- world.gravity.y,
- world.gravity.z
- ),
- broadphase3d,
- solver3d,
- bodies3d
- );
-
- worlds3d.push(world3d);
- }
-
- physics3ds.push(physics3d);
- }
- }
-
- var lights3d = [];
-
- for (var l = 0; l < scene.lights.length; l++) {
-
- var light = scene.lights[l];
-
- var light3d = new GameLib.D3.Light(
- light.id,
- light.lightType,
- light.name,
- new GameLib.D3.Color(
- light.color.r,
- light.color.g,
- light.color.b,
- light.color.a
- ),
- light.intensity,
- new GameLib.D3.Vector3(
- light.position.x,
- light.position.y,
- light.position.z
- ),
- new GameLib.D3.Vector3(
- light.targetPosition.x,
- light.targetPosition.y,
- light.targetPosition.z
- ),
- new GameLib.D3.Vector4(
- light.quaternion.x,
- light.quaternion.y,
- light.quaternion.z,
- light.quaternion.w
- ),
- new GameLib.D3.Vector3(
- light.rotation.x,
- light.rotation.y,
- light.rotation.z
- ),
- new GameLib.D3.Vector3(
- light.scale.x,
- light.scale.y,
- light.scale.z
- ),
- light.distance,
- light.decay,
- light.power,
- light.angle,
- light.penumbra
- );
-
- lights3d.push(light3d);
- }
-
- var scene3d = new GameLib.D3.Scene(
- scene._id || scene.id,
- scene.path,
- scene.name,
- scene.meshes,
- new GameLib.D3.Vector4(
- scene.quaternion.x,
- scene.quaternion.y,
- scene.quaternion.z,
- scene.quaternion.w
- ),
- new GameLib.D3.Vector3(
- scene.position.x,
- scene.position.y,
- scene.position.z
- ),
- new GameLib.D3.Vector3(
- scene.rotation.x,
- scene.rotation.y,
- scene.rotation.z
- ),
- new GameLib.D3.Vector3(
- scene.scale.x,
- scene.scale.y,
- scene.scale.z
- ),
- scene.parentSceneId,
- lights3d,
- physics3ds
- );
-
- GameLib.D3.Scene.loadScene(
- scene3d,
- onLoaded,
- false,
- graphics,
- uploadUrl,
- progressCallback
- );
- }
- }
- }(xhr);
-
- xhr.send();
-};
-
-/**
- * Loads a GameLib.D3.Scene object into a Graphics Instance Scene object
- * @param gameLibScene GameLib.D3.Scene
- * @param onLoaded callback when all meshes have loaded
- * @param computeNormals set to true to compute new face and vertex normals during load
- * @param graphics GameLib.D3.Graphics
- * @param uploadUrl
- * @param progressCallback
- */
-GameLib.D3.Scene.loadScene = function(
- gameLibScene,
- onLoaded,
- computeNormals,
- graphics,
- uploadUrl,
- progressCallback
-) {
-
- console.log("loading scene " + gameLibScene.name);
-
- graphics.isNotThreeThrow();
-
- var meshQ = [];
-
- for (var m = 0; m < gameLibScene.meshes.length; m++) {
-
- var mesh = gameLibScene.meshes[m];
-
- console.log("loading mesh " + mesh.name);
-
- var geometry = new graphics.instance.Geometry();
-
- var vertices = mesh.vertices;
-
- var faces = mesh.faces;
-
- var faceVertexUvs = mesh.faceVertexUvs;
-
- var materials = mesh.materials;
-
- /**
- * Setup vertices
- */
- for (var v = 0; v < vertices.length; v++) {
- geometry.vertices.push(
- new graphics.instance.Vector3(
- vertices[v].position.x,
- vertices[v].position.y,
- vertices[v].position.z
- )
- )
- }
-
- /**
- * Setup faces
- */
- for (var f = 0; f < faces.length; f++) {
-
- var face = new graphics.instance.Face3(
- faces[f].v0,
- faces[f].v1,
- faces[f].v2,
- new graphics.instance.Vector3(
- faces[f].normal.x,
- faces[f].normal.y,
- faces[f].normal.z
- ),
- new graphics.instance.Color(
- faces[f].color.r,
- faces[f].color.g,
- faces[f].color.b
- ),
- faces[f].materialIndex
- );
-
- face.vertexColors = [
- new graphics.instance.Color(
- faces[f].vertexColors[0].r,
- faces[f].vertexColors[0].g,
- faces[f].vertexColors[0].b
- ),
- new graphics.instance.Color(
- faces[f].vertexColors[1].r,
- faces[f].vertexColors[1].g,
- faces[f].vertexColors[1].b
- ),
- new graphics.instance.Color(
- faces[f].vertexColors[2].r,
- faces[f].vertexColors[2].g,
- faces[f].vertexColors[2].b
- )
- ];
-
- face.normal = new graphics.instance.Vector3(
- faces[f].normal.x,
- faces[f].normal.y,
- faces[f].normal.z
- );
-
- face.vertexNormals = [
- new graphics.instance.Vector3(
- faces[f].vertexNormals[0].x,
- faces[f].vertexNormals[0].y,
- faces[f].vertexNormals[0].z
- ),
- new graphics.instance.Vector3(
- faces[f].vertexNormals[1].x,
- faces[f].vertexNormals[1].y,
- faces[f].vertexNormals[1].z
- ),
- new graphics.instance.Vector3(
- faces[f].vertexNormals[2].x,
- faces[f].vertexNormals[2].y,
- faces[f].vertexNormals[2].z
- )
- ];
-
- geometry.faces.push(face);
- }
-
- geometry.faceVertexUvs = [];
-
- /**
- * Setup face UVs
- */
- for (var fm = 0; fm < faceVertexUvs.length; fm++) {
-
- var faceMaterialVertexUvs = faceVertexUvs[fm];
-
- geometry.faceVertexUvs[fm] = [];
-
- for (var fuv = 0; fuv < faceMaterialVertexUvs.length; fuv++) {
- geometry.faceVertexUvs[fm][fuv] = [];
- geometry.faceVertexUvs[fm][fuv].push(
- new graphics.instance.Vector2(
- faceMaterialVertexUvs[fuv][0].x,
- faceMaterialVertexUvs[fuv][0].y
- ),
- new graphics.instance.Vector2(
- faceMaterialVertexUvs[fuv][1].x,
- faceMaterialVertexUvs[fuv][1].y
- ),
- new graphics.instance.Vector2(
- faceMaterialVertexUvs[fuv][2].x,
- faceMaterialVertexUvs[fuv][2].y
- )
- );
- }
- }
-
- /**
- * Re-calculate normals (if we have to)
- * @type {Array}
- */
- if (computeNormals) {
- geometry.computeFaceNormals();
- geometry.computeVertexNormals();
- }
-
- var instanceMaterialLoaders = [];
-
- /**
- * Setup materials
- */
- for (var mi = 0; mi < materials.length; mi++) {
- instanceMaterialLoaders.push(
- GameLib.D3.Material.createInstanceMaterial(
- materials[mi],
- graphics,
- uploadUrl,
- progressCallback
- )
- );
- }
-
- var result = Q.all(instanceMaterialLoaders).then(
- function(mesh, geometry) {
- return function(materials) {
-
- console.log("loaded material : " + materials[0].name);
-
- /**
- * We don't support MultiMaterial atm - it doesn't work with raycasting
- */
- var material = materials[0];
-
- var threeMesh = GameLib.D3.Mesh.createInstanceMesh(
- mesh,
- geometry,
- material,
- graphics
- );
- threeMesh.name = mesh.name;
-
- threeMesh.position.x = mesh.position.x;
- threeMesh.position.y = mesh.position.y;
- threeMesh.position.z = mesh.position.z;
-
- threeMesh.rotation.x = mesh.rotation.x;
- threeMesh.rotation.y = mesh.rotation.y;
- threeMesh.rotation.z = mesh.rotation.z;
-
- threeMesh.scale.x = mesh.scale.x;
- threeMesh.scale.y = mesh.scale.y;
- threeMesh.scale.z = mesh.scale.z;
-
- threeMesh.quaternion.x = mesh.quaternion.x;
- threeMesh.quaternion.y = mesh.quaternion.y;
- threeMesh.quaternion.z = mesh.quaternion.z;
- threeMesh.quaternion.w = mesh.quaternion.w;
-
- return threeMesh;
- };
- }(mesh, geometry)
- ).catch(function(error){
- console.log(error);
- });
-
- meshQ.push(result);
- }
-
- Q.all(meshQ).then(
- function(instanceMeshes){
- console.log("all meshes have loaded");
- if (typeof onLoaded != 'undefined') {
-
- var instanceLights = [];
-
- for (var sli = 0; sli < gameLibScene.lights.length; sli++) {
-
- var gameLibLight = gameLibScene.lights[sli];
-
- var light = null;
-
- if (gameLibLight.lightType == 'AmbientLight') {
- light = new graphics.instance.AmbientLight(gameLibLight.color, gameLibLight.intensity);
- }
-
- if (gameLibLight.lightType == 'DirectionalLight') {
- light = new graphics.instance.DirectionalLight(gameLibLight.color, gameLibLight.intensity);
- }
-
- if (gameLibLight.lightType == 'PointLight') {
- light = new graphics.instance.PointLight(gameLibLight.color, gameLibLight.intensity);
- light.distance = gameLibLight.distance;
- light.decay = gameLibLight.decay;
- }
-
- if (gameLibLight.lightType == 'SpotLight') {
- light = new graphics.instance.SpotLight(gameLibLight.color, gameLibLight.intensity);
- light.distance = gameLibLight.distance;
- light.angle = gameLibLight.angle;
- light.penumbra = gameLibLight.penumbra;
- light.decay = gameLibLight.decay;
- }
-
- light.position.x = gameLibLight.position.x;
- light.position.y = gameLibLight.position.y;
- light.position.z = gameLibLight.position.z;
-
- light.rotation.x = gameLibLight.rotation.x;
- light.rotation.y = gameLibLight.rotation.y;
- light.rotation.z = gameLibLight.rotation.z;
-
- if (light == null) {
- console.warn('Does not support lights of type :' + gameLibLight.lightType + ', not imported');
- } else {
- light.name = gameLibLight.name;
- instanceLights.push(light);
- }
- }
-
- var instanceScene = new graphics.instance.Scene();
-
- instanceScene.name = gameLibScene.name;
-
- instanceScene.position.x = gameLibScene.position.x;
- instanceScene.position.y = gameLibScene.position.y;
- instanceScene.position.z = gameLibScene.position.z;
-
- instanceScene.rotation.x = gameLibScene.rotation.x;
- instanceScene.rotation.y = gameLibScene.rotation.y;
- instanceScene.rotation.z = gameLibScene.rotation.z;
-
- instanceScene.scale.x = gameLibScene.scale.x;
- instanceScene.scale.y = gameLibScene.scale.y;
- instanceScene.scale.z = gameLibScene.scale.z;
-
- instanceScene.quaternion.x = gameLibScene.quaternion.x;
- instanceScene.quaternion.y = gameLibScene.quaternion.y;
- instanceScene.quaternion.z = gameLibScene.quaternion.z;
- instanceScene.quaternion.w = gameLibScene.quaternion.w;
-
- for (var m = 0; m < instanceMeshes.length; m++) {
- instanceScene.add(instanceMeshes[m]);
- }
-
- for (var l = 0; l < instanceLights.length; l++) {
- instanceScene.add(instanceLights[l]);
- }
-
- onLoaded(
- gameLibScene,
- {
- scene: instanceScene,
- lights: instanceLights,
- meshes: instanceMeshes
- }
- );
- }
- }).catch(
- function(error){
- console.log(error);
- }
- );
-};
-/**
- * Physics Shape Superset
- * @param engine GameLib.D3.Engine
- * @param shapeType
- * @param scale GameLib.D3.Vector3
- * @param vertices Number[]
- * @param indices Number[]
- * @param radius Number
- * @param halfExtensions GameLib.D3.Vector3
- * @param radiusTop Number
- * @param radiusBottom Number
- * @param height Number
- * @param numSegments Number
- * @param heightmap GameLib.D3.Heightmap
- * @param elementSize
- * @constructor
- */
-GameLib.D3.Shape = function(
- engine,
- shapeType,
- scale,
- vertices,
- indices,
- radius,
- halfExtensions,
- radiusTop,
- radiusBottom,
- height,
- numSegments,
- heightmap
-) {
- this.engine = engine;
-
- this.engine.isNotCannonThrow();
-
- this.shapeType = shapeType;
-
- this.instance = this.createInstance();
-
- if (typeof scale == 'undefined') {
- scale = new GameLib.D3.Vector3(1, 1, 1)
- }
- this.scale = scale;
-
- if (typeof vertices == 'undefined') {
- vertices = [];
- }
- this.vertices = vertices;
-
- if (typeof indices == 'undefined') {
- indices = [];
- }
- this.indices = indices;
-
- if (typeof radius == 'undefined') {
- radius = 1;
- }
- this.radius = radius;
-
- if (typeof halfExtensions == 'undefined') {
- halfExtensions = new GameLib.D3.Vector3(1,1,1);
- }
- this.halfExtensions = halfExtensions;
-
- if (typeof radiusTop == 'undefined') {
- radiusTop = 1;
- }
- this.radiusTop = radiusTop;
-
- if (typeof radiusBottom == 'undefined') {
- radiusBottom = 1;
- }
- this.radiusBottom = radiusBottom;
-
- if (typeof height == 'undefined') {
- height = 1;
- }
- this.height = height;
-
- if (typeof numSegments == 'undefined') {
- numSegments = 1;
- }
- this.numSegments = numSegments;
-
- if (typeof heightmap == 'undefined') {
- heightmap = new GameLib.D3.Heightmap();
- }
- this.heightmap = heightmap;
-
-};
-
-/**
- * Shape constants
- * @type {number}
- */
-GameLib.D3.Shape.SHAPE_TYPE_SPHERE = 1;
-GameLib.D3.Shape.SHAPE_TYPE_BOX = 2;
-GameLib.D3.Shape.SHAPE_TYPE_TRIMESH = 3;
-GameLib.D3.Shape.SHAPE_TYPE_CYLINDER = 4;
-GameLib.D3.Shape.SHAPE_TYPE_HEIGHT_MAP = 5;
-GameLib.D3.Shape.SHAPE_TYPE_CONVEX_HULL = 6;
-
-/**
- *
- */
-GameLib.D3.Shape.prototype.createInstance = function() {
-
- var instance = null;
-
- if (this.shapeType == GameLib.D3.Shape.SHAPE_TYPE_TRIMESH) {
- instance = new this.engine.instance.Trimesh(
- this.vertices,
- this.indices
- );
- } else if (this.shapeType == GameLib.D3.Shape.SHAPE_TYPE_SPHERE) {
- instance = new this.engine.instance.Sphere(
- this.radius
- );
- } else if (this.shapeType == GameLib.D3.Shape.SHAPE_TYPE_BOX) {
- instance = new this.engine.instance.Box(
- new this.engine.instance.Vec3(
- this.halfExtensions.x,
- this.halfExtensions.y,
- this.halfExtensions.z
- )
- );
- } else if (this.shapeType == GameLib.D3.Shape.SHAPE_TYPE_CYLINDER) {
- instance = new this.engine.instance.Cylinder(
- this.radiusTop,
- this.radiusBottom,
- this.height,
- this.numSegments
- );
- } else if (this.shapeType == GameLib.D3.Shape.SHAPE_TYPE_HEIGHT_MAP) {
- instance = new this.engine.instance.Heightfield(
- this.heightmap.matrix,
- {
- elementSize: this.heightmap.elementSize
- }
- );
- } else if (this.shapeType == GameLib.D3.Shape.SHAPE_TYPE_CONVEX_HULL) {
- console.warn('Shape type not implemented: ' + this.shapeType);
- throw new Error('Shape type not implemented: ' + this.shapeType);
- } else {
- console.warn('Shape type not implemented: ' + this.shapeType);
- throw new Error('Shape type not implemented: ' + this.shapeType);
- }
-
- this.instance = instance;
-
- return instance;
-};
-
-
-/**
- * update
- */
-GameLib.D3.Shape.prototype.update = function(
- engine
-) {
- engine.isNotCannonThrow();
-
- if(this.shapeType === GameLib.D3.Shape.SHAPE_TYPE_TRIMESH) {
- this.instance.setScale(
- new engine.instance.Vec3(
- this.scale.x,
- this.scale.y,
- this.scale.z
- )
- );
- this.instance.updateAABB();
- this.instance.updateNormals();
- this.instance.updateEdges();
- this.instance.updateBoundingSphereRadius();
- this.instance.updateTree();
- }
-};
-
-/**
- * Skeleton Superset
- * @param id
- * @param bones GameLib.D3.Bone
- * @param boneInverses
- * @param useVertexTexture
- * @param boneTextureWidth
- * @param boneTextureHeight
- * @param boneMatrices
- * @param boneTexture
- * @constructor
- */
-GameLib.D3.Skeleton = function(
- id,
- bones,
- boneInverses,
- useVertexTexture,
- boneTextureWidth,
- boneTextureHeight,
- boneMatrices,
- boneTexture
-) {
- this.id = id;
-
- this.bones = bones;
-
- /**
- * An array of Matrix4s that represent the inverse of the matrixWorld of the individual bones.
- * @type GameLib.D3.Matrix4[]
- */
- if (typeof boneInverses == 'undefined') {
- boneInverses = [];
- }
- this.boneInverses = boneInverses;
-
- /**
- * Use a vertex texture in the shader - allows for more than 4 bones per vertex, not supported by all devices
- * @type {boolean}
- */
- if (typeof useVertexTexture == 'undefined') {
- useVertexTexture = false;
- }
- this.useVertexTexture = useVertexTexture;
-
- if (this.useVertexTexture == true) {
- console.warn('support for vertex texture bones is not supported yet - something could break somewhere');
- }
-
- if (typeof boneTextureWidth == 'undefined') {
- boneTextureWidth = 0;
- }
- this.boneTextureWidth = boneTextureWidth;
-
- if (typeof boneTextureHeight == 'undefined') {
- boneTextureHeight = 0;
- }
- this.boneTextureHeight = boneTextureHeight;
-
- if (typeof boneMatrices == 'undefined') {
- boneMatrices = [];
- }
- this.boneMatrices = boneMatrices;
-
- if (typeof boneTexture == 'undefined') {
- boneTexture = [];
- }
- this.boneTexture = boneTexture;
-};
-
-
-GameLib.D3.SkyBox = function (
- graphics
-) {
- this.id = null;
-
- this.graphics = graphics;
- this.graphics.isNotThreeThrow();
-
- this.texturesFolder = null;
-};
-
-GameLib.D3.SkyBox.prototype.load = function (
- texturesFolder
-) {
- this.texturesFolder = texturesFolder;
- this.textures = [];
- this.materials = [];
- this.mesh = {};
- this.scene = new this.graphics.instance.Scene();
- this.textureCube = null;
-
- var textureLoader = new this.graphics.instance.TextureLoader();
-
- // this textures are used to display the skybox
- this.textures.push(textureLoader.load(this.texturesFolder + "px.png"));
- this.textures.push(textureLoader.load(this.texturesFolder + "nx.png"));
- this.textures.push(textureLoader.load(this.texturesFolder + "py.png"));
- this.textures.push(textureLoader.load(this.texturesFolder + "ny.png"));
- this.textures.push(textureLoader.load(this.texturesFolder + "pz.png"));
- this.textures.push(textureLoader.load(this.texturesFolder + "nz.png"));
-
- // assign textures to each cube face
- for (var i = 0; i < 6; i ++) {
- this.materials.push(new this.graphics.instance.MeshBasicMaterial({ map: this.textures[i] }));
- }
-
- // create cube geometry
- this.mesh = new this.graphics.instance.Mesh(new this.graphics.instance.CubeGeometry(1, 1, 1), new this.graphics.instance.MeshFaceMaterial(this.materials));
- this.mesh.applyMatrix(new this.graphics.instance.Matrix4().makeScale(1, 1, -1));
- this.scene.add(this.mesh);
-
- // Load env textureCube
- // this is used for reflections on meshes
- // mesh.material.envMap = this.textureCube;
- this.textureCube = new this.graphics.instance.CubeTextureLoader().load([
- this.texturesFolder + "px.png", this.texturesFolder + "nx.png",
- this.texturesFolder + "py.png", this.texturesFolder + "ny.png",
- this.texturesFolder + "pz.png", this.texturesFolder + "nz.png"
- ]);
-};
-
-GameLib.D3.SkyBox.prototype.render = function (
- threeRenderer,
- threeCamera
-) {
- var cameraPosition = new this.graphics.instance.Vector3(threeCamera.position.x, threeCamera.position.y, threeCamera.position.z);
-
- threeCamera.position.set(0, 0, 0);
-
- var gl = threeRenderer.context;
-
- gl.disable(gl.DEPTH_TEST);
-
- threeRenderer.render(this.scene, threeCamera);
-
- gl.enable(gl.DEPTH_TEST);
-
- threeCamera.position.copy(cameraPosition);
-};
-
-/**
- * Physics Solver Superset
- * @param id
- * @param name
- * @param solverType
- * @param iterations
- * @param tolerance
- * @constructor
- */
-GameLib.D3.Physics.Solver = function(
- id,
- name,
- solverType,
- iterations,
- tolerance
-) {
- this.id = id;
- if (typeof name == 'undefined') {
- if (solverType == GameLib.D3.Physics.SPLIT_SOLVER) {
- name = 'split solver';
- } else if (solverType == GameLib.D3.Physics.GS_SOLVER) {
- name = 'gs solver';
- } else {
- name = 'unknown solver';
- }
- }
- this.name = name;
- this.solverType = solverType;
- this.iterations = iterations;
- this.tolerance = tolerance;
-};
-
-/**
- * Solver Types
- * @type {number}
- */
-GameLib.D3.Physics.SPLIT_SOLVER = 0x1;
-GameLib.D3.Physics.GS_SOLVER = 0x2;
-
-/**
- * Texture Superset
- * @param id
- * @param name
- * @param image
- * @param wrapS
- * @param wrapT
- * @param repeat
- * @param data
- * @param format
- * @param mapping
- * @param magFilter
- * @param minFilter
- * @param textureType
- * @param anisotropy
- * @param offset
- * @param generateMipmaps
- * @param flipY
- * @param mipmaps
- * @param unpackAlignment
- * @param premultiplyAlpha
- * @param encoding
- * @constructor
- */
-GameLib.D3.Texture = function(
- id,
- name,
- image,
- wrapS,
- wrapT,
- repeat,
- data,
- format,
- mapping,
- magFilter,
- minFilter,
- textureType,
- anisotropy,
- offset,
- generateMipmaps,
- flipY,
- mipmaps,
- unpackAlignment,
- premultiplyAlpha,
- encoding
-) {
- this.id = id;
- this.name = name;
- this.image = image;
-
- if (typeof wrapS == 'undefined') {
- wrapS = GameLib.D3.Texture.TYPE_REPEAT_WRAPPING;
- }
- this.wrapS = wrapS;
-
- if (typeof wrapT == 'undefined') {
- wrapT = GameLib.D3.Texture.TYPE_REPEAT_WRAPPING;
- }
- this.wrapT = wrapT;
-
- if (typeof repeat == 'undefined') {
- repeat = new GameLib.D3.Vector2(1, 1);
- }
- this.repeat = repeat;
-
- if (typeof data == 'undefined') {
- data = null;
- }
- this.data = data;
-
- if (typeof format == 'undefined') {
- format = GameLib.D3.Texture.TYPE_RGBA_FORMAT;
- }
- this.format = format;
-
- if (typeof mapping == 'undefined') {
- mapping = GameLib.D3.Texture.TYPE_UV_MAPPING;
- }
- this.mapping = mapping;
-
- if (typeof magFilter == 'undefined') {
- magFilter = GameLib.D3.Texture.TYPE_LINEAR_FILTER;
- }
- this.magFilter = magFilter;
-
- if (typeof minFilter == 'undefined') {
- minFilter = GameLib.D3.Texture.TYPE_LINEAR_MIPMAP_LINEAR_FILTER;
- }
- this.minFilter = minFilter;
-
- if (typeof textureType == 'undefined') {
- textureType = GameLib.D3.Texture.TYPE_UNSIGNED_BYTE;
- }
- this.textureType = textureType;
-
- if (typeof anisotropy == 'undefined') {
- anisotropy = 1;
- }
- this.anisotropy = anisotropy;
-
- if (typeof offset == 'undefined') {
- offset = new GameLib.D3.Vector2(0, 0);
- }
- this.offset = offset;
-
- if (typeof generateMipmaps == 'undefined') {
- generateMipmaps = true;
- }
- this.generateMipmaps = generateMipmaps;
-
- if (typeof flipY == 'undefined') {
- flipY = true;
- }
- this.flipY = flipY;
-
- if (typeof mipmaps == 'undefined') {
- mipmaps = [];
- }
- this.mipmaps = mipmaps;
-
- if (typeof unpackAlignment == 'undefined') {
- unpackAlignment = 4;
- }
- this.unpackAlignment = unpackAlignment;
-
- if (typeof premultiplyAlpha == 'undefined') {
- premultiplyAlpha = false;
- }
- this.premultiplyAlpha = premultiplyAlpha;
-
- if (typeof encoding == 'undefined') {
- encoding = GameLib.D3.Texture.TYPE_LINEAR_ENCODING;
- }
- this.encoding = encoding;
-};
-
-/**
- * Texture Formats
- * @type {number}
- */
-GameLib.D3.Texture.TYPE_ALPHA_FORMAT = 1019;
-GameLib.D3.Texture.TYPE_RGB_FORMAT = 1020;
-GameLib.D3.Texture.TYPE_RGBA_FORMAT = 1021;
-GameLib.D3.Texture.TYPE_LUMINANCE_FORMAT = 1022;
-GameLib.D3.Texture.TYPE_LUMINANCE_ALPHA_FORMAT = 1023;
-GameLib.D3.Texture.TYPE_DEPTH_FORMAT = 1026;
-
-/**
- * Mapping modes
- * @type {number}
- */
-GameLib.D3.Texture.TYPE_UV_MAPPING = 300;
-GameLib.D3.Texture.TYPE_CUBE_REFLECTION_MAPPING = 301;
-GameLib.D3.Texture.TYPE_CUBE_REFRACTION_MAPPING = 302;
-GameLib.D3.Texture.TYPE_EQUI_RECTANGULAR_REFLECTION_MAPPING = 303;
-GameLib.D3.Texture.TYPE_EQUI_RECTANGULAR_REFRACTION_MAPPING = 304;
-GameLib.D3.Texture.TYPE_SPHERICAL_REFLECTION_MAPPING = 305;
-GameLib.D3.Texture.TYPE_CUBE_UV_REFLECTION_MAPPING = 306;
-GameLib.D3.Texture.TYPE_CUBE_UV_REFRACTION_MAPPING = 307;
-
-/**
- * Wrapping Modes
- * @type {number}
- */
-GameLib.D3.Texture.TYPE_REPEAT_WRAPPING = 1000;
-GameLib.D3.Texture.TYPE_CLAMP_TO_EDGE_WRAPPING = 1001;
-GameLib.D3.Texture.TYPE_MIRRORED_REPEAT_WRAPPING = 1002;
-
-/**
- * Mipmap Filters
- * @type {number}
- */
-GameLib.D3.Texture.TYPE_NEAREST_FILTER = 1003;
-GameLib.D3.Texture.TYPE_NEAREST_MIPMAP_NEAREST_FILTER = 1004;
-GameLib.D3.Texture.TYPE_NEAREST_MIPMAP_LINEAR_FILTER = 1005;
-GameLib.D3.Texture.TYPE_LINEAR_FILTER = 1006;
-GameLib.D3.Texture.TYPE_LINEAR_MIPMAP_NEAREST_FILTER = 1007;
-GameLib.D3.Texture.TYPE_LINEAR_MIPMAP_LINEAR_FILTER = 1008;
-
-/**
- * Texture Data Types
- * @type {number}
- */
-GameLib.D3.Texture.TYPE_UNSIGNED_BYTE = 1009;
-GameLib.D3.Texture.TYPE_BYTE = 1010;
-GameLib.D3.Texture.TYPE_SHORT = 1011;
-GameLib.D3.Texture.TYPE_UNSIGNED_SHORT = 1012;
-GameLib.D3.Texture.TYPE_INT = 1013;
-GameLib.D3.Texture.TYPE_UNSIGNED_INT = 1014;
-GameLib.D3.Texture.TYPE_FLOAT = 1015;
-GameLib.D3.Texture.TYPE_HALF_FLOAT = 1025;
-
-/**
- * Encoding Modes
- * @type {number}
- */
-GameLib.D3.Texture.TYPE_LINEAR_ENCODING = 3000; // NO ENCODING AT ALL.
-GameLib.D3.Texture.TYPE_SRGB_ENCODING = 3001;
-GameLib.D3.Texture.TYPE_GAMMA_ENCODING = 3007; // USES GAMMA_FACTOR, FOR BACKWARDS COMPATIBILITY WITH WEBGLRENDERER.GAMMAINPUT/GAMMAOUTPUT
-GameLib.D3.Texture.TYPE_RGBE_ENCODING = 3002; // AKA RADIANCE.
-GameLib.D3.Texture.TYPE_LOG_LUV_ENCODING = 3003;
-GameLib.D3.Texture.TYPE_RGBM7_ENCODING = 3004;
-GameLib.D3.Texture.TYPE_RGBM16_ENCODING = 3005;
-GameLib.D3.Texture.TYPE_RGBD_ENCODING = 3006; // MAXRANGE IS 256.
-
-/**
- * Defers loading of an image and resolves once image is loaded
- * @param gameLibTexture GameLib.D3.Texture
- * @param instanceMaterial
- * @param instanceMaterialMapType
- * @param graphics GameLib.D3.Graphics
- * @param uploadUrl String
- * @param progressCallback
- * @returns {Promise}
- */
-GameLib.D3.Texture.loadMap = function(
- gameLibTexture,
- instanceMaterial,
- instanceMaterialMapType,
- graphics,
- uploadUrl,
- progressCallback
-) {
-
- var defer = Q.defer();
-
- var imagePath = null;
-
- var textureLoader = new graphics.instance.TextureLoader();
-
- if (gameLibTexture && gameLibTexture.image && gameLibTexture.image.filename) {
- /**
- * Else, load from upload source
- */
- imagePath = uploadUrl + '/' + gameLibTexture.image.filename;
- }
-
- if (imagePath) {
-
- textureLoader.crossOrigin = '';
-
- textureLoader.load(
- imagePath,
- function(texture) {
- /**
- * onLoad
- */
- instanceMaterial[instanceMaterialMapType] = texture;
- instanceMaterial[instanceMaterialMapType].name = gameLibTexture.name;
- instanceMaterial[instanceMaterialMapType].anisotropy = gameLibTexture.anisotropy;
- instanceMaterial[instanceMaterialMapType].encoding = gameLibTexture.encoding;
- instanceMaterial[instanceMaterialMapType].flipY = gameLibTexture.flipY;
- /**
- * We don't restore the format since this changing from OS to OS and breaks the implementation sometimes
- */
- instanceMaterial[instanceMaterialMapType].generateMipmaps = gameLibTexture.generateMipmaps;
- instanceMaterial[instanceMaterialMapType].magFilter = gameLibTexture.magFilter;
- instanceMaterial[instanceMaterialMapType].minFilter = gameLibTexture.minFilter;
- instanceMaterial[instanceMaterialMapType].mapping = gameLibTexture.mapping;
- instanceMaterial[instanceMaterialMapType].mipmaps = gameLibTexture.mipmaps;
- instanceMaterial[instanceMaterialMapType].offset = new graphics.instance.Vector2(
- gameLibTexture.offset.x,
- gameLibTexture.offset.y
- );
- instanceMaterial[instanceMaterialMapType].premultiplyAlpha = gameLibTexture.premultiplyAlpha;
- instanceMaterial[instanceMaterialMapType].textureType = gameLibTexture.textureType;
- instanceMaterial[instanceMaterialMapType].wrapS = gameLibTexture.wrapS;
- instanceMaterial[instanceMaterialMapType].wrapT = gameLibTexture.wrapT;
- instanceMaterial[instanceMaterialMapType].unpackAlignment = gameLibTexture.unpackAlignment;
- instanceMaterial.needsUpdate = true;
- defer.resolve(true);
- },
- function(xhr) {
- /**
- * onProgress
- */
- if (progressCallback) {
- progressCallback(Math.round(xhr.loaded / xhr.total * 100));
- }
- },
- function(error) {
- /**
- * onError
- */
- console.log("an error occurred while trying to load the image : " + imagePath);
- defer.resolve(null);
- }
- );
-
- } else {
- defer.resolve(null);
- }
-
- return defer.promise;
-};
-
-
-/**
- * Returns an array of image loading Promises
- * @param gameLibMaterial
- * @param blenderMaps
- * @param instanceMaterial
- * @param graphics GameLib.D3.Graphics
- * @param uploadUrl String
- * @param progressCallback
- * @returns Q[]
- */
-GameLib.D3.Texture.loadMaps = function(
- gameLibMaterial,
- blenderMaps,
- instanceMaterial,
- graphics,
- uploadUrl,
- progressCallback
-) {
-
- var textureMaps = [];
-
- for (var ti = 0; ti < blenderMaps.length; ti++) {
-
- var map = blenderMaps[ti];
-
- if (gameLibMaterial.maps.hasOwnProperty(map)) {
-
- var blenderTexture = gameLibMaterial.maps[map];
-
- if (
- blenderTexture &&
- blenderTexture.image &&
- blenderTexture.image.filename
- ) {
-
- var instanceMap = null;
-
- if (map == 'alpha') {
- instanceMap = 'alhpaMap';
- }
-
- if (map == 'ao') {
- instanceMap = 'aoMap';
- }
-
- if (map == 'bump') {
- instanceMap = 'bumpMap';
- }
-
- if (map == 'displacement') {
- instanceMap = 'displacementMap';
- }
-
- if (map == 'emissive') {
- instanceMap = 'emissiveMap';
- }
-
- if (map == 'environment') {
- instanceMap = 'envMap';
- }
-
- if (map == 'light') {
- instanceMap = 'lightMap';
- }
-
- if (map == 'specular') {
- instanceMap = 'specularMap';
- }
-
- if (map == 'diffuse') {
- instanceMap = 'map';
- }
-
- if (map == 'roughness') {
- instanceMap = 'roughnessMap';
- }
-
- if (map == 'metalness') {
- instanceMap = 'metalnessMap';
- }
-
- if (instanceMap == null) {
- console.warn("unsupported map type : " + map);
- }
-
- textureMaps.push(
- GameLib.D3.Texture.loadMap(
- gameLibMaterial.maps[map],
- instanceMaterial,
- instanceMap,
- graphics,
- uploadUrl,
- progressCallback
- )
- );
- }
- }
- }
-
- return textureMaps;
-};
-
-GameLib.D3.Tools = function(){};
-
-/**
- * Generates a random ID
- * @returns {string}
- * @constructor
- */
-GameLib.D3.Tools.RandomId = function() {
- return Math.random().toString(36).substr(2, 10);
-};
-/**
- * TriangleEdge
- * @param triangle
- * @param edge
- * @constructor
- */
-GameLib.D3.TriangleEdge = function(
- triangle,
- edge
-) {
- this.triangle = triangle;
- this.edge = edge;
-};
-/**
- * TriangleFace
- * @param v0
- * @param v1
- * @param v2
- * @param materialIndex
- * @param v0uv
- * @param v1uv
- * @param v2uv
- * @param color
- * @param vertexColors
- * @param vertexNormals
- * @param normal
- * @constructor
- */
-GameLib.D3.TriangleFace = function(
- v0,
- v1,
- v2,
- materialIndex,
- v0uv,
- v1uv,
- v2uv,
- color,
- vertexColors,
- vertexNormals,
- normal
-) {
- this.v0 = v0;
- this.v1 = v1;
- this.v2 = v2;
- this.materialIndex = materialIndex;
- this.v0uv = v0uv;
- this.v1uv = v1uv;
- this.v2uv = v2uv;
- if (!color) {
- color = new GameLib.D3.Color(0xff, 0xff, 0xff, 0xff);
- }
- this.color = color;
-
- if (!vertexColors) {
- vertexColors = [
- new GameLib.D3.Color(0xff, 0xff, 0xff, 0xff),
- new GameLib.D3.Color(0xff, 0xff, 0xff, 0xff),
- new GameLib.D3.Color(0xff, 0xff, 0xff, 0xff)
- ];
- }
- this.vertexColors = vertexColors;
-
- if (!vertexNormals) {
- vertexNormals = [
- new GameLib.D3.Vector3(),
- new GameLib.D3.Vector3(),
- new GameLib.D3.Vector3()
- ]
- }
- this.vertexNormals = vertexNormals;
-
- if (!normal) {
- normal = new GameLib.D3.Vector3(0);
- }
-
- this.normal = normal;
-};
-
-/**
- * Clone a TriangleFace
- * @returns {GameLib.D3.TriangleFace}
- */
-GameLib.D3.TriangleFace.prototype.clone = function(){
- return new GameLib.D3.TriangleFace(
- this.v0,
- this.v1,
- this.v2,
- this.materialIndex,
- this.v0uv.copy(),
- this.v1uv.copy(),
- this.v2uv.copy()
- );
-};
-
-/**
- * Returns true if two triangles are equal (their vertex indices match in some order)
- * @param triangle
- * @returns {boolean}
- */
-GameLib.D3.TriangleFace.prototype.equals = function(triangle) {
- return !!(
- (
- (this.v0 == triangle.v0) &&
- (this.v1 == triangle.v1) &&
- (this.v2 == triangle.v2)
- )
- ||
- (
- (this.v0 == triangle.v0) &&
- (this.v1 == triangle.v2) &&
- (this.v2 == triangle.v1)
- )
- ||
- (
- (this.v0 == triangle.v1) &&
- (this.v1 == triangle.v0) &&
- (this.v2 == triangle.v2)
- )
- ||
- (
- (this.v0 == triangle.v1) &&
- (this.v1 == triangle.v2) &&
- (this.v2 == triangle.v0)
- )
- ||
- (
- (this.v0 == triangle.v2) &&
- (this.v1 == triangle.v0) &&
- (this.v2 == triangle.v1)
- )
- ||
- (
- (this.v0 == triangle.v2) &&
- (this.v1 == triangle.v1) &&
- (this.v2 == triangle.v0)
- ));
-};
-
-
-GameLib.D3.Vector2 = function(x, y) {
-
- this.x = 0;
- this.y = 0;
-
- if (x) {
- this.x = x;
- }
-
- if (y) {
- this.y = y;
- }
-};
-
-GameLib.D3.Vector2.prototype.copy = function() {
- return new GameLib.D3.Vector2(
- this.x,
- this.y
- );
-};
-
-GameLib.D3.Vector2.prototype.equals = function(v) {
- return !!(((this.x == v.x) &&
- (this.y == v.y)) ||
- ((this.y == v.x) &&
- (this.x == v.y)));
-};
-
-GameLib.D3.Vector3 = function(x, y, z) {
-
- this.x = 0;
- this.y = 0;
- this.z = 0;
-
- if (x) {
- this.x = x;
- }
-
- if (y) {
- this.y = y;
- }
-
- if (z) {
- this.z = z;
- }
-};
-
-GameLib.D3.Vector3.prototype.subtract = function (v) {
-
- if (v instanceof GameLib.D3.Vector3) {
- this.x -= v.x;
- this.y -= v.y;
- this.z -= v.z;
- }
-
- if (v instanceof GameLib.D3.Vector4) {
- console.warn("trying to subtract vector of bigger length (4 vs 3))");
- }
-
- return this;
-};
-
-GameLib.D3.Vector3.prototype.cross = function (v) {
- return new GameLib.D3.Vector3(
- this.y * v.z - this.z * v.y,
- this.z * v.x - this.x * v.z,
- this.x * v.y - this.y * v.x
- );
-};
-
-GameLib.D3.Vector3.prototype.negative = function () {
- this.x *= -1;
- this.y *= -1;
- this.z *= -1;
- return this;
-};
-
-GameLib.D3.Vector3.clockwise = function (u, v, w, viewPoint) {
-
- var normal = GameLib.D3.Vector3.normal(u, v, w);
-
- var uv = u.copy();
-
- var winding = normal.dot(uv.subtract(viewPoint));
-
- return (winding > 0);
-};
-
-GameLib.D3.Vector3.normal = function (u, v, w) {
- var vv = v.copy();
- var wv = w.copy();
- return vv.subtract(u).cross(wv.subtract(u));
-};
-
-GameLib.D3.Vector3.prototype.lookAt = function (at, up) {
-
- var lookAtMatrix = GameLib.D3.Matrix4.lookAt(this, at, up);
-
- this.multiply(lookAtMatrix);
-};
-
-GameLib.D3.Vector3.prototype.translate = function (v) {
- this.x += v.x;
- this.y += v.y;
- this.z += v.z;
- return this;
-};
-
-GameLib.D3.Vector3.prototype.squared = function () {
- return this.x * this.x + this.y * this.y + this.z * this.z;
-};
-
-GameLib.D3.Vector3.prototype.copy = function () {
- return new GameLib.D3.Vector3(
- this.x,
- this.y,
- this.z
- );
-};
-
-GameLib.D3.Vector3.prototype.multiply = function (s) {
- if (s instanceof GameLib.D3.Vector3) {
- this.x *= s.x;
- this.y *= s.y;
- this.z *= s.z;
- } else if (s instanceof GameLib.D3.Matrix4) {
- var x = s.rows[0].x * this.x + s.rows[0].y * this.y + s.rows[0].z * this.z;
- var y = s.rows[1].x * this.x + s.rows[1].y * this.y + s.rows[1].z * this.z;
- var z = s.rows[2].x * this.x + s.rows[2].y * this.y + s.rows[2].z * this.z;
- this.x = x;
- this.y = y;
- this.z = z;
- } else {
- console.log("functionality not implemented - please do this");
- throw new Error("not implemented");
- }
- return this;
-};
-
-
-GameLib.D3.Vector3.prototype.dot = function (v) {
- return (this.x * v.x) + (this.y * v.y) + (this.z * v.z);
-};
-
-GameLib.D3.Vector3.prototype.normalize = function () {
-
- var EPSILON = 0.000001;
-
- var v2 = this.squared();
-
- if (v2 < EPSILON) {
- return this; //do nothing for zero vector
- }
-
- var invLength = 1 / Math.sqrt(v2);
-
- this.x *= invLength;
- this.y *= invLength;
- this.z *= invLength;
-
- return this;
-};
-
-GameLib.D3.Vector4 = function(x, y, z, w) {
-
- this.x = 0;
- this.y = 0;
- this.z = 0;
- this.w = 0;
-
- Iif (x) {
- this.x = x;
- }
-
- Iif (y) {
- this.y = y;
- }
-
- Iif (z) {
- this.z = z;
- }
-
- Iif (w) {
- this.w = w;
- }
-};
-
-GameLib.D3.Vector4.prototype.translate = function (v) {
- this.x += v.x;
- this.y += v.y;
- this.z += v.z;
- return this;
-};
-
-GameLib.D3.Vector4.prototype.copy = function () {
- return new GameLib.D3.Vector4(
- this.x,
- this.y,
- this.z,
- this.w
- );
-};
-
-GameLib.D3.Vector4.prototype.multiply = function (s) {
- if (s instanceof GameLib.D3.Vector3) {
- this.x *= s.x;
- this.y *= s.y;
- this.z *= s.z;
- } else if (s instanceof GameLib.D3.Matrix4) {
- var x = s.rows[0].x * this.x + s.rows[0].y * this.y + s.rows[0].z * this.z + s.rows[0].w * this.w;
- var y = s.rows[1].x * this.x + s.rows[1].y * this.y + s.rows[1].z * this.z + s.rows[1].w * this.w;
- var z = s.rows[2].x * this.x + s.rows[2].y * this.y + s.rows[2].z * this.z + s.rows[2].w * this.w;
- var w = s.rows[3].x * this.x + s.rows[3].y * this.y + s.rows[3].z * this.z + s.rows[3].w * this.w;
- this.x = x;
- this.y = y;
- this.z = z;
- this.w = w;
- } else {
- console.log("functionality not implemented - please do this");
- throw new Error("not implemented");
- }
-};
-
-
-GameLib.D3.Vector4.prototype.normalize = function () {
-
- // note - leave w untouched
- var EPSILON = 0.000001;
-
- var v2 = this.x * this.x + this.y * this.y + this.z * this.z;
-
- if (v2 < EPSILON) {
- return this; //do nothing for zero vector
- }
-
- var invLength = 1 / Math.sqrt(v2);
-
- this.x *= invLength;
- this.y *= invLength;
- this.z *= invLength;
-
- return this;
-};
-
-GameLib.D3.Vector4.prototype.subtract = function (v) {
-
- if (v instanceof GameLib.D3.Vector3) {
- this.x -= v.x;
- this.y -= v.y;
- this.z -= v.z;
- }
-
- if (v instanceof GameLib.D3.Vector4) {
- this.x -= v.x;
- this.y -= v.y;
- this.z -= v.z;
- this.w -= v.w;
- }
-
- return this;
-};
-
-GameLib.D3.Vector4.Points = function () {
- this.vectors = [];
-};
-
-GameLib.D3.Vector4.Points.prototype.add = function (vector) {
-
- if (vector instanceof GameLib.D3.Vector3) {
- vector = new GameLib.D3.Vector4(
- vector.x,
- vector.y,
- vector.z,
- 1
- )
- }
-
- if (!vector instanceof GameLib.D3.Vector4) {
- console.warn("Vector needs to be of type Vector4");
- throw new Error("Vector needs to be of type Vector4");
- }
-
- this.vectors.push(vector);
-
- return this;
-};
-
-GameLib.D3.Vector4.Points.prototype.copy = function () {
-
- var vectors = [];
-
- for (var i = 0; i < this.vectors.length; i++) {
- vectors.push(this.vectors[i].copy());
- }
-
- return vectors;
-};
-
-GameLib.D3.Vector4.Points.prototype.maximizeXDistance = function (grain) {
-
-// console.log("vectors (before): " + JSON.stringify(this.vectors, null, 2));
-
- var multiplier = 0;
-
- var rotationMatrixY = new GameLib.D3.Matrix4().rotationMatrixY(grain);
-
- var totalRadians = 0;
-
- var backupVectors = this.copy();
-
- var maxXDistance = 0;
-
- for (var i = 0; i < Math.PI * 2; i += grain) {
-
- multiplier++;
-
- for (var j = 0; j < this.vectors.length; j++) {
- this.vectors[j] = rotationMatrixY.multiply(this.vectors[j]);
- }
-
- var distances = this.distances();
-
- if (distances.x > maxXDistance) {
-
- maxXDistance = distances.x;
- totalRadians = multiplier * grain;
- }
- }
-
- this.vectors = backupVectors;
-
-// console.log("distance: " + maxXDistance + " radians : " + totalRadians);
-
- var maxRotationMatrix = new GameLib.D3.Matrix4().rotationMatrixY(totalRadians);
-
- for (var k = 0; k < this.vectors.length; k++) {
- this.vectors[k] = maxRotationMatrix.multiply(this.vectors[k]);
- }
-
-// console.log("vectors (after): " + JSON.stringify(this.vectors, null, 2));
-
-};
-
-GameLib.D3.Vector4.Points.prototype.maximizeYDistance = function (grain) {
-
-// console.log("vectors (before): " + JSON.stringify(this.vectors, null, 2));
-
- var multiplier = 0;
-
- var rotationMatrixX = new GameLib.D3.Matrix4().rotationMatrixX(grain);
-
- var totalRadians = 0;
-
- var backupVectors = this.copy();
-
- var maxYDistance = 0;
-
- for (var i = 0; i < Math.PI * 2; i += grain) {
-
- multiplier++;
-
- for (var j = 0; j < this.vectors.length; j++) {
- this.vectors[j] = rotationMatrixX.multiply(this.vectors[j]);
- }
-
- var distances = this.distances();
-
- if (distances.y > maxYDistance) {
- maxYDistance = distances.y;
- totalRadians = multiplier * grain;
- }
- }
-
- this.vectors = backupVectors;
-
-// console.log("distance: " + maxYDistance + " radians : " + totalRadians);
-
- var maxRotationMatrix = new GameLib.D3.Matrix4().rotationMatrixX(totalRadians);
-
- for (var k = 0; k < this.vectors.length; k++) {
- this.vectors[k] = maxRotationMatrix.multiply(this.vectors[k]);
- }
-
-// console.log("vectors (after): " + JSON.stringify(this.vectors, null, 2));
-
-};
-
-
-GameLib.D3.Vector4.Points.prototype.lookAt = function (at, up) {
-
- var polyCenter = this.average();
-
- console.log("poly center : " + JSON.stringify(polyCenter));
-
- var lookAtMatrix = new GameLib.D3.Matrix4().lookAt(polyCenter, at, up);
-
- lookAtMatrix.rows[0] = new GameLib.D3.Vector4(1, 0, 0, 0);
- lookAtMatrix.rows[1] = new GameLib.D3.Vector4(0, 0, 1, 0);
- lookAtMatrix.rows[2] = new GameLib.D3.Vector4(0, 1, 0, 0);
-
- console.log("look at matrix : " + JSON.stringify(lookAtMatrix, null, 2));
-
- for (var i = 0; i < this.vectors.length; i++) {
- console.log("vector " + i + " (before): " + JSON.stringify(this.vectors[i]));
- this.vectors[i] = lookAtMatrix.multiply(this.vectors[i]);
- console.log("vector " + i + " (after) : " + JSON.stringify(this.vectors[i]));
- }
-};
-
-GameLib.D3.Vector4.Points.prototype.distances = function () {
-
- var minX = this.vectors[0].x;
- var minY = this.vectors[0].y;
- var minZ = this.vectors[0].z;
-
- var maxX = this.vectors[0].x;
- var maxY = this.vectors[0].y;
- var maxZ = this.vectors[0].z;
-
- for (var i = 0; i < this.vectors.length; i++) {
- if (this.vectors[i].x < minX) {
- minX = this.vectors[i].x;
- }
- if (this.vectors[i].y < minY) {
- minY = this.vectors[i].y;
- }
- if (this.vectors[i].z < minZ) {
- minZ = this.vectors[i].z;
- }
-
- if (this.vectors[i].x > maxX) {
- maxX = this.vectors[i].x;
- }
- if (this.vectors[i].y > maxY) {
- maxY = this.vectors[i].y;
- }
- if (this.vectors[i].z > maxZ) {
- maxZ = this.vectors[i].z;
- }
- }
-
- return new GameLib.D3.Vector3(
- Math.abs(maxX - minX),
- Math.abs(maxY - minY),
- Math.abs(maxY - minZ)
- )
-};
-
-GameLib.D3.Vector4.Points.prototype.average = function () {
- var averageX = 0;
- var averageY = 0;
- var averageZ = 0;
-
- for (var i = 0; i < this.vectors.length; i++) {
- averageX += this.vectors[i].x;
- averageY += this.vectors[i].y;
- averageZ += this.vectors[i].z;
- }
-
- return new GameLib.D3.Vector3(
- averageX / this.vectors.length,
- averageY / this.vectors.length,
- averageZ / this.vectors.length
- );
-};
-
-GameLib.D3.Vector4.Points.prototype.negative = function () {
-
- for (var i = 0; i < this.vectors.length; i++) {
- this.vectors[i].x *= -1;
- this.vectors[i].y *= -1;
- this.vectors[i].z *= -1;
- }
-
- return this;
-};
-
-
-GameLib.D3.Vector4.Points.prototype.toOrigin = function () {
-
- var distanceFromOrigin = this.average().negative();
-
- for (var i = 0; i < this.vectors.length; i++) {
- this.vectors[i].translate(distanceFromOrigin);
- }
-};
-
-/**
- * The normal gets assigned when the face calculates its normal
- * @param position
- * @param boneWeights GameLib.D3.BoneWeight[]
- * @constructor
- */
-GameLib.D3.Vertex = function(
- position,
- boneWeights
-) {
- this.position = position;
- this.boneWeights = boneWeights;
-};
-/**
- * World SuperSet - contains the custom world instance
- * @param id
- * @param name
- * @param engine
- * @param gravity
- * @param broadphase
- * @param solver
- * @param rigidBodies
- * @constructor
- */
-GameLib.D3.World = function(
- id,
- name,
- engine,
- gravity,
- broadphase,
- solver,
- rigidBodies
-) {
-
- this.id = id;
-
- this.name = name;
-
- if (typeof gravity == 'undefined') {
- gravity = new GameLib.D3.Vector3(0, -9.81, 0);
- }
- this.gravity = gravity;
-
- if (typeof broadphase == 'undefined') {
- broadphase = new GameLib.D3.Physics.Broadphase(
- null,
- 'broadPhaseNaive',
- GameLib.D3.Physics.BROADPHASE_TYPE_NAIVE
- );
- }
- this.broadphase = broadphase;
-
- if (typeof solver == 'undefined') {
- solver = new GameLib.D3.Physics.Solver(
- null,
- 'GSSolver',
- GameLib.D3.Physics.GS_SOLVER
- );
- }
- this.solver = solver;
-
- if (typeof rigidBodies == 'undefined') {
- rigidBodies = [];
- }
- this.rigidBodies = rigidBodies;
-
- this.engine = engine;
-
- this.engine.isNotCannonThrow();
-
- this.instance = this.createInstance();
-};
-
-/**
- * private
- * @returns {GameLib.D3.World|GameLib.D3.Physics.World|*}
- */
-GameLib.D3.World.prototype.createInstance = function() {
-
- var instance = new this.engine.instance.World();
-
- instance.broadphase = this.broadphase.instance;
-
- instance.solver = this.solver.instance;
-
- instance.gravity.x = this.gravity.x;
- instance.gravity.y = this.gravity.y;
- instance.gravity.z = this.gravity.z;
-
- instance.name = this.name;
-
- return instance;
-};
-
-/**
- *
- * @param rigidBody GameLib.D3.RigidBody
- * @constructor
- */
-GameLib.D3.World.prototype.addRigidBody = function(
- rigidBody
-) {
- this.instance.addBody(rigidBody.instance);
-};
-
-/**
- *
- * @param vehicle (GameLib.D3.RigidBodyVehicle | GameLib.D3.RaycastVehicle)
- * @constructor
- */
-GameLib.D3.World.prototype.addVehicle = function(
- vehicle // note: physics.vehicle
-) {
- vehicle.instance.addToWorld(this.world.instance);
-};
-
-GameLib.D3.World.prototype.step = function(
- timeStep
-) {
- // todo: figure out, why this call to internal step is more stable for trimesh collisions.....
- //this.worldObject.internalStep(timeStep);
- //return;
-
- var now = performance.now() / 1000;
- if(!this.lastCallTime){
- // last call time not saved, cant guess elapsed time. Take a simple step.
- this.instance.step(timeStep);
- this.lastCallTime = now;
- return;
- }
-
- var timeSinceLastCall = now - this.lastCallTime;
-
- this.instance.step(timeStep, timeSinceLastCall);
-
- this.lastCallTime = now;
-};
-
-GameLib.D3.World.prototype.GetIndexedVertices = function(
- triangleMeshShape
-) {
-
- if(this.engine.engineType == GameLib.D3.Physics.TYPE_CANNON) {
-
- return {
- vertices : triangleMeshShape.vertices,
- indices : triangleMeshShape.indices
- };
-
- } else {
- // todo: implement this for other physics engines.
- return null;
- }
-
-};
-
-/**
- * @param triangleMeshShape GameLib.D3.Shape
- * @param normalLength Number
- * @param scale GameLib.D3.Vector3
- * @param opacity Number
- * @param wireframeColor HexCode
- * @param graphics THREE
- * @returns {THREE.Mesh|this.meshes}
- * @constructor
- */
-GameLib.D3.World.prototype.generateWireframeViewTriangleMesh = function(
- graphics,
- triangleMeshShape,
- normalLength,
- scale,
- opacity,
- wireframeColor
-) {
- graphics.isNotThreeThrow();
- this.engine.isNotCannonThrow();
-
- if(typeof normalLength == 'undefined') {
- normalLength = 10;
- }
-
- if(typeof scale == 'undefined') {
- scale = new graphics.instance.Vector3(1, 1, 1);
- }
-
- if(typeof opacity == 'undefined') {
- opacity = 0.5;
- }
-
- if(typeof wireframeColor == 'undefined') {
- wireframeColor = 0xfefefe;
- }
-
- var graphicsGeometry = new graphics.instance.Geometry();
-
- var wireframeMesh = new graphics.instance.Mesh(
- graphicsGeometry,
- new graphics.instance.MeshBasicMaterial({
- color: wireframeColor,
- wireframe: true,
- opacity: opacity
- })
- );
-
- for(var i = 0, l = triangleMeshShape.instance.vertices.length / 3; i < l; ++i) {
- graphicsGeometry.vertices.push(
- new graphics.instance.Vector3(
- triangleMeshShape.instance.vertices[i * 3],
- triangleMeshShape.instance.vertices[i * 3 + 1],
- triangleMeshShape.instance.vertices[i * 3 + 2]
- )
- );
- }
-
- for(var i = 0, l = triangleMeshShape.instance.indices.length / 3; i < l; ++i) {
- var i0 = triangleMeshShape.instance.indices[i * 3];
- var i1 = triangleMeshShape.instance.indices[i * 3 + 1];
- var i2 = triangleMeshShape.instance.indices[i * 3 + 2];
-
- graphicsGeometry.faces.push(
- new graphics.instance.Face3(
- i0,
- i1,
- i2
- )
- );
-
- // Center point on the current triangle
-
- var centroid = new graphics.instance.Vector3()
- .add(graphicsGeometry.vertices[i0])
- .add(graphicsGeometry.vertices[i1])
- .add(graphicsGeometry.vertices[i2])
- .divideScalar(3);
-
- // Get the normal from the mesh shape itself
- var normal = new this.engine.instance.Vec3();
- triangleMeshShape.instance.getNormal(i , normal);
-
- var arrow = new graphics.instance.ArrowHelper(
- new graphics.instance.Vector3(
- normal.x,
- normal.y,
- normal.z
- ),
- centroid,
- normalLength,
- new graphics.instance.Color(
- normal.x,
- normal.y,
- normal.z
- )
- );
- wireframeMesh.add( arrow );
- }
-
- wireframeMesh.scale.x = scale.x;
- wireframeMesh.scale.y = scale.y;
- wireframeMesh.scale.z = scale.z;
-
- return wireframeMesh;
-};
-
-/**
- * @param convexPolyMeshShape GameLib.D3.Shape
- * @param normalLength Number
- * @param scale GameLib.D3.Vector3
- * @param opacity Number
- * @param wireframeColor HexCode
- * @param graphics THREE
- * @returns {THREE.Mesh|this.meshes}
- * @constructor
- */
-GameLib.D3.World.prototype.generateWireframeViewConvexPolyMesh = function(
- graphics,
- convexPolyMeshShape,
- normalLength,
- scale,
- opacity,
- wireframeColor
-) {
- graphics.isNotThreeThrow();
- this.engine.isNotCannonThrow();
-
- if(typeof normalLength == 'undefined') {
- normalLength = 10;
- }
-
- if(typeof scale == 'undefined') {
- scale = new graphics.instance.Vector3(1, 1, 1);
- }
-
- if(typeof opacity == 'undefined') {
- opacity = 0.5;
- }
-
- if(typeof wireframeColor == 'undefined') {
- wireframeColor = 0xfefefe;
- }
-
-
- var graphicsGeometry = new graphics.instance.Geometry();
- var wireframeMesh = new graphics.instance.Mesh(
- graphicsGeometry,
- new graphics.instance.MeshBasicMaterial({
- color: wireframeColor,
- wireframe: true,
- opacity: opacity
- })
- );
-
- for(var i = 0, l = convexPolyMeshShape.instance.vertices.length; i < l; i++) {
- var vertex = convexPolyMeshShape.instance.vertices[i];
- graphicsGeometry.vertices.push(new graphics.instance.Vector3(vertex.x, vertex.y, vertex.z));
- }
-
- for(var i = 0, l = convexPolyMeshShape.instance.faces.length; i < l; i++) {
- var face = convexPolyMeshShape.instance.faces[i];
-
- var i0 = face[0];
- var i1 = face[1];
- var i2 = face[2];
-
- graphicsGeometry.faces.push(new graphics.instance.Face3(i0, i1, i2));
-
- // Center point on the current triangle
- var centroid = new graphics.instance.Vector3()
- .add(graphicsGeometry.vertices[i0])
- .add(graphicsGeometry.vertices[i1])
- .add(graphicsGeometry.vertices[i2])
- .divideScalar(3);
-
- var normalVec3 = convexPolyMeshShape.instance.faceNormals[i];
- var normal = new graphics.instance.Vector3(
- normalVec3.x,
- normalVec3.y,
- normalVec3.z
- );
-
- var arrow = new graphics.instance.ArrowHelper(
- normal,
- centroid,
- normalLength,
- new graphics.instance.Color(
- normal.x,
- normal.y,
- normal.z
- )
- );
-
- wireframeMesh.add( arrow );
- }
-
- wireframeMesh.scale.x = scale.x;
- wireframeMesh.scale.y = scale.y;
- wireframeMesh.scale.z = scale.z;
-
- return wireframeMesh;
-};
-
-/**
- * @param graphics GameLib.D3.Graphics
- * @param graphicsMesh THREE.Mesh
- * @param mass Number
- * @param friction Number
- * @param createCollisionSubMeshes Boolean
- * @param facesPerSubsection Number
- * @param subsectionsToMerge Number
- * @returns {Object}
- * @constructor
- */
-GameLib.D3.World.prototype.generateTriangleMeshShapeDivided = function(
- graphics,
- graphicsMesh,
- mass,
- friction,
- createCollisionSubMeshes,
- facesPerSubsection,
- subsectionsToMerge
-) {
- graphics.isNotThreeThrow();
- this.engine.isNotCannonThrow();
-
- if(mass == null || typeof mass == 'undefined') {
- mass = 0;
- }
-
- if(friction == null || typeof friction == 'undefined') {
- friction = 10;
- }
-
- if(createCollisionSubMeshes == null || typeof createCollisionSubMeshes == 'undefined') {
- createCollisionSubMeshes = false;
- }
-
- var processedFaces = 0;
- var facesPerSubSection = facesPerSubsection || 0;
- var subMeshesToMerge = subsectionsToMerge || 0;
- var totalAmtFaces = graphicsMesh.geometry.faces.length;
- var facesToProcess = createCollisionSubMeshes ? (subMeshesToMerge * facesPerSubSection) : totalAmtFaces;
-
- var pairs = []; // output
-
- var vertices = [];
- var indicies = [];
-
- for(var i = 0; i <= totalAmtFaces; i++) {
- if(processedFaces == facesToProcess || i == totalAmtFaces) {
-
- var body = null;
-
- var meshShape = new this.engine.instance.Trimesh(vertices, indicies);
-
- meshShape.setScale(new this.engine.instance.Vec3(
- graphicsMesh.scale.x,
- graphicsMesh.scale.y,
- graphicsMesh.scale.z
- ));
-
- meshShape.updateAABB();
- meshShape.updateNormals();
- meshShape.updateEdges();
- meshShape.updateBoundingSphereRadius();
- meshShape.updateTree();
-
- body = new this.engine.instance.Body({
- mass: mass,
- friction: friction
- });
- body.addShape(meshShape);
-
- pairs.push({
- threeObject : createCollisionSubMeshes ? null : graphicsMesh,
- physicsObject : body
- });
-
- vertices = [];
- indicies = [];
- processedFaces = 0;
-
- if(i == totalAmtFaces) {
- return pairs;
- }
- }
-
- var face = graphicsMesh.geometry.faces[i];
- indicies.push(indicies.length);
- indicies.push(indicies.length);
- indicies.push(indicies.length);
-
- var v0 = graphicsMesh.geometry.vertices[face.a];
- var v1 = graphicsMesh.geometry.vertices[face.b];
- var v2 = graphicsMesh.geometry.vertices[face.c];
-
- vertices.push(v0.x, v0.y, v0.z);
- vertices.push(v1.x, v1.y, v1.z);
- vertices.push(v2.x, v2.y, v2.z);
-
- processedFaces++;
- }
-};
-
-/**
- * @param graphics GameLib.D3.Graphics
- * @param graphicsMesh THREE.Mesh
- * @returns {GameLib.D3.RigidBody}
- * @constructor
- */
-GameLib.D3.World.prototype.generateTriangleMeshShape = function(
- graphics,
- graphicsMesh
-) {
-
- // - - - - - - - - - - - - - - - - - - - - - - - - -
- // Note: I did not test this yet with the API data.
- // - - - - - - - - - - - - - - - - - - - - - - - - -
-
- var scaledVertices = [];
- for(var i = 0, l = graphicsMesh.geometry.vertices.length; i < l; i++) {
-
- var vertex = graphicsMesh.geometry.vertices[i];
-
- scaledVertices.push(new this.engine.instance.Vec3(
- vertex.x * graphicsMesh.scale.x,
- vertex.y * graphicsMesh.scale.y,
- vertex.z * graphicsMesh.scale.z
- ));
-
- }
-
- var triangleFaces = [];
- for(var f = 0, fl = graphicsMesh.geometry.faces.length; f < fl; f++) {
- var i0 = graphicsMesh.geometry.faces[f].a;
- var i1 = graphicsMesh.geometry.faces[f].b;
- var i2 = graphicsMesh.geometry.faces[f].c;
-
- triangleFaces.push([
- i0,
- i1,
- i2
- ]);
- }
-
- // - - - - - - - - - - - - - - - - - - -
- // Create collision mesh
- // - - - - - - - - - - - - - - - - - - -
-
- var reindexedFaces = {};
- var vertices = [];
- var faces = [];
-
- var processedFaces = 0;
- var totalFacesToProcess = triangleFaces.length;
- var flLastIndex = 0;
-
- for(var f = 0; f < totalFacesToProcess; f++) {
-
- var i0 = triangleFaces[f][0];
- var i1 = triangleFaces[f][1];
- var i2 = triangleFaces[f][2];
-
- if(typeof reindexedFaces[i0] === 'undefined') {
- vertices.push(scaledVertices[i0].x, scaledVertices[i0].y, scaledVertices[i0].z);
- reindexedFaces[i0] = flLastIndex;
- flLastIndex++;
- }
-
- if(typeof reindexedFaces[i1] === 'undefined') {
- vertices.push(scaledVertices[i1].x, scaledVertices[i1].y, scaledVertices[i1].z);
- reindexedFaces[i1] = flLastIndex;
- flLastIndex++;
- }
-
- if(typeof reindexedFaces[i2] === 'undefined') {
- vertices.push(scaledVertices[i2].x, scaledVertices[i2].y, scaledVertices[i2].z);
- reindexedFaces[i2] = flLastIndex;
- flLastIndex++;
- }
-
- faces.push(reindexedFaces[i0], reindexedFaces[i1], reindexedFaces[i2]);
-
- processedFaces++;
- }
-
- var shape = GameLib.D3.Shape(this.engine, GameLib.D3.Shape.SHAPE_TYPE_TRIMESH, graphicsMesh.scale, vertices, faces);
- var body = GameLib.D3.RigidBody(this.engine, 0, 12);
-
- body.addShape(shape);
- this.addRigidBody(body);
-
- // process the mesh children recursively
- for(var c in graphicsMesh.children) {
- this.generateTriangleMeshShape(graphics, graphicsMesh.children[c]);
- }
-
- return body;
-};
-
-/**
- * @param triangleMeshBody GameLib.D3.RigidBody
- * @param rayscale Number
- * @param maxTriangleDistance Number
- * @param createCompoundShape Boolean
- * @param graphics GameLib.D3.Graphics
- * @param triangleMeshShapes GameLib.D3.Shape[]
- * @param createDebugView Boolean
- * @returns {GameLib.D3.RigidBody}
- * @constructor
- */
-GameLib.D3.World.prototype.fixupTriangleMeshShape = function(
- triangleMeshBody,
- triangleMeshShapes,
- rayscale,
- maxTriangleDistance,
- createCompoundShape,
- graphics,
- createDebugView
-) {
- this.engine.isNotCannonThrow();
-
- graphics.isNotThreeThrow();
-
- if(rayscale == null || typeof rayscale == 'undefined' || rayscale == 0) {
- rayscale = 10;
- }
-
- if(maxTriangleDistance == null || typeof maxTriangleDistance == 'undefined') {
- maxTriangleDistance = 13;
- }
-
- var world = this.instance;
-
- var raycastResult = new this.engine.instance.RaycastResult();
-
- var brokenFaceIndicators = [];
- var wireframeMeshes = [];
-
- var totalFaces = 0;
- var totalBrokenFaces = 0;
- var totalFixedFaces = 0;
- var fixedTriangleMeshObjects = [];
-
- for(var i in triangleMeshShapes) {
- var trimesh = triangleMeshShapes[i];
-
- var brokenFaces = [];
- totalFaces += (trimesh.indices.length / 3);
-
- for(var face = 0; face < trimesh.indices.length / 3; face++) {
-
- var i0 = trimesh.indices[face * 3];
- var i1 = trimesh.indices[face * 3 + 1];
- var i2 = trimesh.indices[face * 3 + 2];
-
- var triangleCenterPoint = new graphics.instance.Vector3()
- .add(new graphics.instance.Vector3(
- trimesh.vertices[i0 * 3],
- trimesh.vertices[i0 * 3 + 1],
- trimesh.vertices[i0 * 3 + 2])
- )
- .add(new graphics.instance.Vector3(
- trimesh.vertices[i1 * 3],
- trimesh.vertices[i1 * 3 + 1],
- trimesh.vertices[i1 * 3 + 2])
- )
- .add(new graphics.instance.Vector3(
- trimesh.vertices[i2 * 3],
- trimesh.vertices[i2 * 3 + 1],
- trimesh.vertices[i2 * 3 + 2])
- )
- .divideScalar(3);
-
- var triangleNormal = new this.engine.instance.Vec3();
- trimesh.getNormal(face , triangleNormal);
-
- var from = new this.engine.instance.Vec3(
- triangleCenterPoint.x + triangleNormal.x,
- triangleCenterPoint.y + triangleNormal.y,
- triangleCenterPoint.z + triangleNormal.z
- );
-
- var to = new this.engine.instance.Vec3(
- from.x - triangleNormal.x * rayscale,
- from.y - triangleNormal.y * rayscale,
- from.z - triangleNormal.z * rayscale
- );
-
- world.raycastClosest(from, to, {}, raycastResult);
-
- // visualize results
- if(createDebugView){
- var graphicsGeometry = new graphics.instance.Geometry();
- var wireframeMesh = new graphics.instance.Mesh(
- graphicsGeometry,
- new graphics.instance.MeshBasicMaterial({
- color: 0xff0000,
- wireframe: true,
- opacity: 1
- })
- );
-
- var arrow = new graphics.instance.ArrowHelper(
- new graphics.instance.Vector3(
- triangleNormal.x,
- triangleNormal.y,
- triangleNormal.z
- ).normalize(),
-
- new graphics.instance.Vector3(
- from.x,
- from.y,
- from.z
- ),
-
- rayscale / 2,
- raycastResult.hasHit ? new graphics.instance.Color(0, 1, 0)
- : new graphics.instance.Color(1, 0, 0)
- );
-
- wireframeMesh.add( arrow );
-
- wireframeMeshes.add(wireframeMesh);
- brokenFaceIndicators.push(wireframeMesh);
- }
-
- if(!raycastResult.hasHit) {
- brokenFaces.push({
- faceIndex : face,
-
- vertices : [
- new this.engine.instance.Vec3(
- trimesh.vertices[i0 * 3],
- trimesh.vertices[i0 * 3 + 1],
- trimesh.vertices[i0 * 3 + 2]
- ),
-
- new this.engine.instance.Vec3(
- trimesh.vertices[i1 * 3],
- trimesh.vertices[i1 * 3 + 1],
- trimesh.vertices[i1 * 3 + 2]
- ),
-
- new this.engine.instance.Vec3(
- trimesh.vertices[i2 * 3],
- trimesh.vertices[i2 * 3 + 1],
- trimesh.vertices[i2 * 3 + 2]
- )
- ],
-
- center : triangleCenterPoint,
-
- parent : trimesh
- });
- }
- }
-
- // fix up broken faces
-
- var bFaceIndexed = {};
- for(var b = 0; b < brokenFaces.length; b++) {
- var brokenFace = brokenFaces[b];
-
- if(brokenFace.marked) {
- continue;
- }
-
- bFaceIndexed[b] = {
- indices : [],
- vertices : []
- };
-
- var indicesAmount = bFaceIndexed[b].indices.length;
-
- // add the current broken face itself to the array
- bFaceIndexed[b].indices.push(
- indicesAmount,
- indicesAmount + 1,
- indicesAmount + 2
- );
-
- bFaceIndexed[b].vertices.push(
- brokenFace.vertices[0].x,
- brokenFace.vertices[0].y,
- brokenFace.vertices[0].z
- );
-
- bFaceIndexed[b].vertices.push(
- brokenFace.vertices[1].x,
- brokenFace.vertices[1].y,
- brokenFace.vertices[1].z
- );
-
- bFaceIndexed[b].vertices.push(
- brokenFace.vertices[2].x,
- brokenFace.vertices[2].y,
- brokenFace.vertices[2].z
- );
-
- for(var bb = 0; bb < brokenFaces.length; bb++) {
-
- if(bb == b) {
- continue;
- }
-
- var otherBrokenFace = brokenFaces[bb];
-
- if(otherBrokenFace.marked) {
- continue;
- }
-
- if(brokenFace.center.distanceTo(otherBrokenFace.center) <= maxTriangleDistance) {
- var indicesAmount = bFaceIndexed[b].indices.length;
-
- bFaceIndexed[b].indices.push(
- indicesAmount,
- indicesAmount + 1,
- indicesAmount + 2
- );
-
- bFaceIndexed[b].vertices.push(
- otherBrokenFace.vertices[0].x,
- otherBrokenFace.vertices[0].y,
- otherBrokenFace.vertices[0].z
- );
-
- bFaceIndexed[b].vertices.push(
- otherBrokenFace.vertices[1].x,
- otherBrokenFace.vertices[1].y,
- otherBrokenFace.vertices[1].z
- );
-
- bFaceIndexed[b].vertices.push(
- otherBrokenFace.vertices[2].x,
- otherBrokenFace.vertices[2].y,
- otherBrokenFace.vertices[2].z
- );
-
- otherBrokenFace.marked = true;
- }
- }
- }
-
-
- // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- // Decide if we want to create new rigid bodies, or create a compound mesh
- // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- for(var e in bFaceIndexed) {
- var element = bFaceIndexed[e];
-
- var shape = new GameLib.D3.Shape(this.engine, GameLib.D3.Shape.SHAPE_TYPE_TRIMESH, null, element.vertices, element.indices);
-
- if(createCompoundShape) {
- triangleMeshBody.addShape(shape);
- } else {
-
- var body = new GameLib.D3.RigidBody(this.engine, 0, 12);
- body.addShape(shape);
- this.instance.addRigidBody(body);
- }
-
- fixedTriangleMeshObjects.push(shape);
- totalFixedFaces += element.indices.length / 3;
-
- console.log("created mesh shape", element.indices.length / 3);
- }
-
- // TODO: remove duplicate indices
- /*trimesh.updateNormals();
- trimesh.updateEdges();
- trimesh.updateTree();
- trimesh.updateAABB();
- trimesh.updateBoundingSphereRadius();*/
-
- // map faceIndex to flat face index (faceIndex * 3) +0, 1, 2 -> triangle indices
- console.log("i = " + i, brokenFaces);
- totalBrokenFaces += brokenFaces.length;
- }
-
- console.log("total faces", totalFaces);
- console.log("total broken faces", totalBrokenFaces);
- console.log("broken faces in percent", (totalBrokenFaces / totalFaces) * 100);
- console.log("total fixed faces", totalFixedFaces);
- console.log("fixed triangle mesh shapes", fixedTriangleMeshObjects.length);
-
- return {
- brokenFaceIndicators : brokenFaceIndicators,
- fixedTriangleMeshShapes : fixedTriangleMeshObjects,
- wireframeMeshes : wireframeMeshes
- };
-};
-Eif (typeof module !== 'undefined') {
- module.exports = GameLib;
-} |
-
-
-
-
-
-
-
-
-
-
diff --git a/build/coverage/lcov-report/build/index.html b/build/coverage/lcov-report/build/index.html
deleted file mode 100644
index f7c4869..0000000
--- a/build/coverage/lcov-report/build/index.html
+++ /dev/null
@@ -1,93 +0,0 @@
-
-
-
- Code coverage report for build/
-
-
-
-
-
-
-
-
-
-
-
-
- 17.41%
- Statements
- 361/2074
-
-
- 4.94%
- Branches
- 40/810
-
-
- 8.44%
- Functions
- 13/154
-
-
- 17.41%
- Lines
- 361/2074
-
-
-
-
-
-
-
-
- File |
- |
- Statements |
- |
- Branches |
- |
- Functions |
- |
- Lines |
- |
-
-
-
- game-lib.js |
- |
- 17.41% |
- 361/2074 |
- 4.94% |
- 40/810 |
- 8.44% |
- 13/154 |
- 17.41% |
- 361/2074 |
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/build/coverage/lcov-report/index.html b/build/coverage/lcov-report/index.html
deleted file mode 100644
index 25c41b4..0000000
--- a/build/coverage/lcov-report/index.html
+++ /dev/null
@@ -1,93 +0,0 @@
-
-
-
- Code coverage report for All files
-
-
-
-
-
-
-
-
-
-
- /
-
-
-
- 17.41%
- Statements
- 361/2074
-
-
- 4.94%
- Branches
- 40/810
-
-
- 8.44%
- Functions
- 13/154
-
-
- 17.41%
- Lines
- 361/2074
-
-
-
-
-
-
-
-
- File |
- |
- Statements |
- |
- Branches |
- |
- Functions |
- |
- Lines |
- |
-
-
-
- build/ |
- |
- 17.41% |
- 361/2074 |
- 4.94% |
- 40/810 |
- 8.44% |
- 13/154 |
- 17.41% |
- 361/2074 |
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/build/coverage/lcov-report/prettify.css b/build/coverage/lcov-report/prettify.css
deleted file mode 100644
index b317a7c..0000000
--- a/build/coverage/lcov-report/prettify.css
+++ /dev/null
@@ -1 +0,0 @@
-.pln{color:#000}@media screen{.str{color:#080}.kwd{color:#008}.com{color:#800}.typ{color:#606}.lit{color:#066}.pun,.opn,.clo{color:#660}.tag{color:#008}.atn{color:#606}.atv{color:#080}.dec,.var{color:#606}.fun{color:red}}@media print,projection{.str{color:#060}.kwd{color:#006;font-weight:bold}.com{color:#600;font-style:italic}.typ{color:#404;font-weight:bold}.lit{color:#044}.pun,.opn,.clo{color:#440}.tag{color:#006;font-weight:bold}.atn{color:#404}.atv{color:#060}}pre.prettyprint{padding:2px;border:1px solid #888}ol.linenums{margin-top:0;margin-bottom:0}li.L0,li.L1,li.L2,li.L3,li.L5,li.L6,li.L7,li.L8{list-style-type:none}li.L1,li.L3,li.L5,li.L7,li.L9{background:#eee}
diff --git a/build/coverage/lcov-report/prettify.js b/build/coverage/lcov-report/prettify.js
deleted file mode 100644
index ef51e03..0000000
--- a/build/coverage/lcov-report/prettify.js
+++ /dev/null
@@ -1 +0,0 @@
-window.PR_SHOULD_USE_CONTINUATION=true;(function(){var h=["break,continue,do,else,for,if,return,while"];var u=[h,"auto,case,char,const,default,double,enum,extern,float,goto,int,long,register,short,signed,sizeof,static,struct,switch,typedef,union,unsigned,void,volatile"];var p=[u,"catch,class,delete,false,import,new,operator,private,protected,public,this,throw,true,try,typeof"];var l=[p,"alignof,align_union,asm,axiom,bool,concept,concept_map,const_cast,constexpr,decltype,dynamic_cast,explicit,export,friend,inline,late_check,mutable,namespace,nullptr,reinterpret_cast,static_assert,static_cast,template,typeid,typename,using,virtual,where"];var x=[p,"abstract,boolean,byte,extends,final,finally,implements,import,instanceof,null,native,package,strictfp,super,synchronized,throws,transient"];var R=[x,"as,base,by,checked,decimal,delegate,descending,dynamic,event,fixed,foreach,from,group,implicit,in,interface,internal,into,is,lock,object,out,override,orderby,params,partial,readonly,ref,sbyte,sealed,stackalloc,string,select,uint,ulong,unchecked,unsafe,ushort,var"];var r="all,and,by,catch,class,else,extends,false,finally,for,if,in,is,isnt,loop,new,no,not,null,of,off,on,or,return,super,then,true,try,unless,until,when,while,yes";var w=[p,"debugger,eval,export,function,get,null,set,undefined,var,with,Infinity,NaN"];var s="caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END";var I=[h,"and,as,assert,class,def,del,elif,except,exec,finally,from,global,import,in,is,lambda,nonlocal,not,or,pass,print,raise,try,with,yield,False,True,None"];var f=[h,"alias,and,begin,case,class,def,defined,elsif,end,ensure,false,in,module,next,nil,not,or,redo,rescue,retry,self,super,then,true,undef,unless,until,when,yield,BEGIN,END"];var H=[h,"case,done,elif,esac,eval,fi,function,in,local,set,then,until"];var A=[l,R,w,s+I,f,H];var e=/^(DIR|FILE|vector|(de|priority_)?queue|list|stack|(const_)?iterator|(multi)?(set|map)|bitset|u?(int|float)\d*)/;var C="str";var z="kwd";var j="com";var O="typ";var G="lit";var L="pun";var F="pln";var m="tag";var E="dec";var J="src";var P="atn";var n="atv";var N="nocode";var M="(?:^^\\.?|[+-]|\\!|\\!=|\\!==|\\#|\\%|\\%=|&|&&|&&=|&=|\\(|\\*|\\*=|\\+=|\\,|\\-=|\\->|\\/|\\/=|:|::|\\;|<|<<|<<=|<=|=|==|===|>|>=|>>|>>=|>>>|>>>=|\\?|\\@|\\[|\\^|\\^=|\\^\\^|\\^\\^=|\\{|\\||\\|=|\\|\\||\\|\\|=|\\~|break|case|continue|delete|do|else|finally|instanceof|return|throw|try|typeof)\\s*";function k(Z){var ad=0;var S=false;var ac=false;for(var V=0,U=Z.length;V122)){if(!(al<65||ag>90)){af.push([Math.max(65,ag)|32,Math.min(al,90)|32])}if(!(al<97||ag>122)){af.push([Math.max(97,ag)&~32,Math.min(al,122)&~32])}}}}af.sort(function(av,au){return(av[0]-au[0])||(au[1]-av[1])});var ai=[];var ap=[NaN,NaN];for(var ar=0;arat[0]){if(at[1]+1>at[0]){an.push("-")}an.push(T(at[1]))}}an.push("]");return an.join("")}function W(al){var aj=al.source.match(new RegExp("(?:\\[(?:[^\\x5C\\x5D]|\\\\[\\s\\S])*\\]|\\\\u[A-Fa-f0-9]{4}|\\\\x[A-Fa-f0-9]{2}|\\\\[0-9]+|\\\\[^ux0-9]|\\(\\?[:!=]|[\\(\\)\\^]|[^\\x5B\\x5C\\(\\)\\^]+)","g"));var ah=aj.length;var an=[];for(var ak=0,am=0;ak=2&&ai==="["){aj[ak]=X(ag)}else{if(ai!=="\\"){aj[ak]=ag.replace(/[a-zA-Z]/g,function(ao){var ap=ao.charCodeAt(0);return"["+String.fromCharCode(ap&~32,ap|32)+"]"})}}}}return aj.join("")}var aa=[];for(var V=0,U=Z.length;V=0;){S[ac.charAt(ae)]=Y}}var af=Y[1];var aa=""+af;if(!ag.hasOwnProperty(aa)){ah.push(af);ag[aa]=null}}ah.push(/[\0-\uffff]/);V=k(ah)})();var X=T.length;var W=function(ah){var Z=ah.sourceCode,Y=ah.basePos;var ad=[Y,F];var af=0;var an=Z.match(V)||[];var aj={};for(var ae=0,aq=an.length;ae=5&&"lang-"===ap.substring(0,5);if(am&&!(ai&&typeof ai[1]==="string")){am=false;ap=J}if(!am){aj[ag]=ap}}var ab=af;af+=ag.length;if(!am){ad.push(Y+ab,ap)}else{var al=ai[1];var ak=ag.indexOf(al);var ac=ak+al.length;if(ai[2]){ac=ag.length-ai[2].length;ak=ac-al.length}var ar=ap.substring(5);B(Y+ab,ag.substring(0,ak),W,ad);B(Y+ab+ak,al,q(ar,al),ad);B(Y+ab+ac,ag.substring(ac),W,ad)}}ah.decorations=ad};return W}function i(T){var W=[],S=[];if(T.tripleQuotedStrings){W.push([C,/^(?:\'\'\'(?:[^\'\\]|\\[\s\S]|\'{1,2}(?=[^\']))*(?:\'\'\'|$)|\"\"\"(?:[^\"\\]|\\[\s\S]|\"{1,2}(?=[^\"]))*(?:\"\"\"|$)|\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$))/,null,"'\""])}else{if(T.multiLineStrings){W.push([C,/^(?:\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$)|\`(?:[^\\\`]|\\[\s\S])*(?:\`|$))/,null,"'\"`"])}else{W.push([C,/^(?:\'(?:[^\\\'\r\n]|\\.)*(?:\'|$)|\"(?:[^\\\"\r\n]|\\.)*(?:\"|$))/,null,"\"'"])}}if(T.verbatimStrings){S.push([C,/^@\"(?:[^\"]|\"\")*(?:\"|$)/,null])}var Y=T.hashComments;if(Y){if(T.cStyleComments){if(Y>1){W.push([j,/^#(?:##(?:[^#]|#(?!##))*(?:###|$)|.*)/,null,"#"])}else{W.push([j,/^#(?:(?:define|elif|else|endif|error|ifdef|include|ifndef|line|pragma|undef|warning)\b|[^\r\n]*)/,null,"#"])}S.push([C,/^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h|[a-z]\w*)>/,null])}else{W.push([j,/^#[^\r\n]*/,null,"#"])}}if(T.cStyleComments){S.push([j,/^\/\/[^\r\n]*/,null]);S.push([j,/^\/\*[\s\S]*?(?:\*\/|$)/,null])}if(T.regexLiterals){var X=("/(?=[^/*])(?:[^/\\x5B\\x5C]|\\x5C[\\s\\S]|\\x5B(?:[^\\x5C\\x5D]|\\x5C[\\s\\S])*(?:\\x5D|$))+/");S.push(["lang-regex",new RegExp("^"+M+"("+X+")")])}var V=T.types;if(V){S.push([O,V])}var U=(""+T.keywords).replace(/^ | $/g,"");if(U.length){S.push([z,new RegExp("^(?:"+U.replace(/[\s,]+/g,"|")+")\\b"),null])}W.push([F,/^\s+/,null," \r\n\t\xA0"]);S.push([G,/^@[a-z_$][a-z_$@0-9]*/i,null],[O,/^(?:[@_]?[A-Z]+[a-z][A-Za-z_$@0-9]*|\w+_t\b)/,null],[F,/^[a-z_$][a-z_$@0-9]*/i,null],[G,new RegExp("^(?:0x[a-f0-9]+|(?:\\d(?:_\\d+)*\\d*(?:\\.\\d*)?|\\.\\d\\+)(?:e[+\\-]?\\d+)?)[a-z]*","i"),null,"0123456789"],[F,/^\\[\s\S]?/,null],[L,/^.[^\s\w\.$@\'\"\`\/\#\\]*/,null]);return g(W,S)}var K=i({keywords:A,hashComments:true,cStyleComments:true,multiLineStrings:true,regexLiterals:true});function Q(V,ag){var U=/(?:^|\s)nocode(?:\s|$)/;var ab=/\r\n?|\n/;var ac=V.ownerDocument;var S;if(V.currentStyle){S=V.currentStyle.whiteSpace}else{if(window.getComputedStyle){S=ac.defaultView.getComputedStyle(V,null).getPropertyValue("white-space")}}var Z=S&&"pre"===S.substring(0,3);var af=ac.createElement("LI");while(V.firstChild){af.appendChild(V.firstChild)}var W=[af];function ae(al){switch(al.nodeType){case 1:if(U.test(al.className)){break}if("BR"===al.nodeName){ad(al);if(al.parentNode){al.parentNode.removeChild(al)}}else{for(var an=al.firstChild;an;an=an.nextSibling){ae(an)}}break;case 3:case 4:if(Z){var am=al.nodeValue;var aj=am.match(ab);if(aj){var ai=am.substring(0,aj.index);al.nodeValue=ai;var ah=am.substring(aj.index+aj[0].length);if(ah){var ak=al.parentNode;ak.insertBefore(ac.createTextNode(ah),al.nextSibling)}ad(al);if(!ai){al.parentNode.removeChild(al)}}}break}}function ad(ak){while(!ak.nextSibling){ak=ak.parentNode;if(!ak){return}}function ai(al,ar){var aq=ar?al.cloneNode(false):al;var ao=al.parentNode;if(ao){var ap=ai(ao,1);var an=al.nextSibling;ap.appendChild(aq);for(var am=an;am;am=an){an=am.nextSibling;ap.appendChild(am)}}return aq}var ah=ai(ak.nextSibling,0);for(var aj;(aj=ah.parentNode)&&aj.nodeType===1;){ah=aj}W.push(ah)}for(var Y=0;Y=S){ah+=2}if(V>=ap){Z+=2}}}var t={};function c(U,V){for(var S=V.length;--S>=0;){var T=V[S];if(!t.hasOwnProperty(T)){t[T]=U}else{if(window.console){console.warn("cannot override language handler %s",T)}}}}function q(T,S){if(!(T&&t.hasOwnProperty(T))){T=/^\s*]*(?:>|$)/],[j,/^<\!--[\s\S]*?(?:-\->|$)/],["lang-",/^<\?([\s\S]+?)(?:\?>|$)/],["lang-",/^<%([\s\S]+?)(?:%>|$)/],[L,/^(?:<[%?]|[%?]>)/],["lang-",/^]*>([\s\S]+?)<\/xmp\b[^>]*>/i],["lang-js",/^