Exemple #1
0
function findSF($crc32, $fp0 = NULL)
{
    if (is_string($crc32)) {
        $crc32 = crc32($crc32);
    }
    $first = 0;
    $last = 3025731 - 1;
    //22 шага
    static $Index = array(1512865 => 95495, 756432 => -1074118538, 378216 => -1610983288, 189108 => -1879749998, 94554 => -2013535718, 47277 => -2080522957, 23638 => -2114042587, 11819 => -2130629751, 5909 => -2138936792, 2954 => -2143196436, 8864 => -2134849667, 17729 => -2122426335, 14774 => -2126540288, 20684 => -2118189260, 35458 => -2097345254, 29548 => -2105792405, 26593 => -2109922102, 32503 => -2101576453, 41368 => -2088916341, 38413 => -2093110656, 44323 => -2084687652, 70916 => -2047159662, 59097 => -2064017522, 53187 => -2072229221, 50232 => -2076362374, 56142 => -2068156197, 65007 => -2055554977, 62052 => -2059791696, 67962 => -2051438914, 82735 => -2030474895, 76826 => -2038820326, 73871 => -2043024256, 79781 => -2034567960, 88645 => -2022006473, 85690 => -2026283140, 91600 => -2017810661, 141831 => -1946461898, 118193 => -1979968750, 106374 => -1996758658, 100464 => -2005119520, 97509 => -2009345183, 103419 => -2000884495, 112284 => -1988203605, 109329 => -1992548719, 115239 => -1984058248, 130012 => -1963305438, 124103 => -1971634183, 121148 => -1975739592, 127058 => -1967384352, 135922 => -1955019240, 132967 => -1959175061, 138877 => -1950755532, 165470 => -1913129001, 153651 => -1929788167, 147741 => -1938058442, 144786 => -1942235882, 150696 => -1933929807, 159561 => -1921480325, 156606 => -1925614965, 162516 => -1917337037, 177289 => -1896481522, 171380 => -1904908919, 168425 => -1909092431, 174335 => -1900639297, 183199 => -1888120949, 180244 => -1892266507, 186154 => -1883987235, 283662 => -1745509460, 236385 => -1812346361, 212747 => -1846137536, 200928 => -1862974518, 195018 => -1871348294, 192063 => -1875553865, 197973 => -1867228896, 206838 => -1854548342, 203883 => -1858779260, 209793 => -1850301368, 224566 => -1829085194, 218657 => -1837605141, 215702 => -1841860440, 221612 => -1833359540, 230476 => -1820814283, 227521 => -1824930704, 233431 => -1816480342, 260024 => -1779396860, 248205 => -1795669134, 242295 => -1804159660, 239340 => -1808259352, 245250 => -1799932673, 254115 => -1787495508, 251160 => -1791517782, 257070 => -1783457171, 271843 => -1762439807, 265934 => -1770839800, 262979 => -1775050945, 268889 => -1766664468, 277753 => -1754084274, 274798 => -1758365321, 280708 => -1749674643, 330939 => -1678066107, 307301 => -1711931114, 295482 => -1728465836, 289572 => -1737055139, 286617 => -1741267556, 292527 => -1732782496, 301392 => -1720074353, 298437 => -1724283163, 304347 => -1715990814, 319120 => -1694867100, 313211 => -1703251273, 310256 => -1707638580, 316166 => -1698991759, 325030 => -1686433662, 322075 => -1690605146, 327985 => -1682302963, 354578 => -1644938813, 342759 => -1661302098, 336849 => -1669582705, 333894 => -1673812158, 339804 => -1665388198, 348669 => -1653086875, 345714 => -1657153502, 351624 => -1649097178, 366397 => -1627859825, 360488 => -1636288325, 357533 => -1640686902, 363443 => -1632090355, 372307 => -1619357639, 369352 => -1623692861, 375262 => -1615128418, 567324 => -1343323812, 472770 => -1477083568, 425493 => -1543891750, 401855 => -1577297625, 390036 => -1594152170, 384126 => -1602651263, 381171 => -1606867536, 387081 => -1598326853, 395946 => -1585663805, 392991 => -1589823558, 398901 => -1581496751, 413674 => -1560658197, 407765 => -1569074064, 404810 => -1573175181, 410720 => -1564859512, 419584 => -1552414314, 416629 => -1556515657, 422539 => -1548169144, 449132 => -1510386687, 437313 => -1527155059, 431403 => -1535478082, 428448 => -1539767329, 434358 => -1531195506, 443223 => -1518675716, 440268 => -1522900082, 446178 => -1514535787, 460951 => -1493786683, 455042 => -1502130697, 452087 => -1506259002, 457997 => -1497947461, 466861 => -1485527171, 463906 => -1489611992, 469816 => -1481261952, 520047 => -1409915657, 496409 => -1443597662, 484590 => -1460403387, 478680 => -1468812789, 475725 => -1472939907, 481635 => -1464571146, 490500 => -1452029938, 487545 => -1456180510, 493455 => -1447871087, 508228 => -1426743172, 502319 => -1435052868, 499364 => -1439370105, 505274 => -1430881847, 514138 => -1418377185, 511183 => -1422541154, 517093 => -1414149939, 543686 => -1376397284, 531867 => -1393196927, 525957 => -1401548824, 523002 => -1405755639, 528912 => -1397295561, 537777 => -1384863926, 534822 => -1388905494, 540732 => -1380667688, 555505 => -1359713630, 549596 => -1368042719, 546641 => -1372254321, 552551 => -1363939902, 561415 => -1351485745, 558460 => -1355539887, 564370 => -1347353642, 661878 => -1208585441, 614601 => -1275538133, 590963 => -1309248676, 579144 => -1326481452, 573234 => -1334911982, 570279 => -1338998889, 576189 => -1330798768, 585054 => -1317858882, 582099 => -1322221061, 588009 => -1313549273, 602782 => -1292357021, 596873 => -1300887426, 593918 => -1305120874, 599828 => -1296571583, 608692 => -1283861665, 605737 => -1288033222, 611647 => -1279616006, 638240 => -1242125918, 626421 => -1258814637, 620511 => -1267132661, 617556 => -1271272858, 623466 => -1262952865, 632331 => -1250380906, 629376 => -1254632118, 635286 => -1246246724, 650059 => -1225313468, 644150 => -1233754916, 641195 => -1237964350, 647105 => -1229390253, 655969 => -1216869938, 653014 => -1221110357, 658924 => -1212843323, 709155 => -1141417980, 685517 => -1174843143, 673698 => -1191730921, 667788 => -1200085585, 664833 => -1204366722, 670743 => -1195888441, 679608 => -1183114365, 676653 => -1187449160, 682563 => -1178979711, 697336 => -1158017563, 691427 => -1166374935, 688472 => -1170567341, 694382 => -1162138369, 703246 => -1149801168, 700291 => -1154005107, 706201 => -1145562247, 732794 => -1107796404, 720975 => -1124681555, 715065 => -1133151553, 712110 => -1137364765, 718020 => -1129020152, 726885 => -1116265847, 723930 => -1120534915, 729840 => -1112100327, 744613 => -1090773506, 738704 => -1099364648, 735749 => -1103592591, 741659 => -1095050948, 750523 => -1082543804, 747568 => -1086607319, 753478 => -1078396179, 1134649 => -537321248, 945541 => -805884569, 850987 => -939893936, 803710 => -1006718595, 780071 => -1040322609, 768252 => -1057291709, 762342 => -1065706622, 759387 => -1069991457, 765297 => -1061459616, 774162 => -1048770170, 771207 => -1053006320, 777117 => -1044579779, 791891 => -1023667723, 785981 => -1031913628, 783026 => -1036133444, 788936 => -1027831115, 797801 => -1015107303, 794846 => -1019338881, 800756 => -1010858291, 827349 => -973188141, 815530 => -990001747, 809620 => -998292535, 806665 => -1002538768, 812575 => -994175518, 821440 => -981526647, 818485 => -985691145, 824395 => -977364288, 839168 => -956708982, 833259 => -964900803, 830304 => -968922281, 836214 => -960827711, 845078 => -948305751, 842123 => -952453601, 848033 => -944005289, 898264 => -872604100, 874626 => -906295328, 862807 => -923117582, 856897 => -931559515, 853942 => -935790486, 859852 => -927284244, 868717 => -914677527, 865762 => -918859445, 871672 => -910466067, 886445 => -889331650, 880536 => -897736640, 877581 => -902053328, 883491 => -893500616, 892355 => -881003561, 889400 => -885197855, 895310 => -876822292, 921903 => -839178821, 910084 => -855800499, 904174 => -864301744, 901219 => -868501002, 907129 => -859958572, 915994 => -847555421, 913039 => -851631585, 918949 => -843430075, 933722 => -822517213, 927813 => -830965359, 924858 => -835183722, 930768 => -826698036, 939632 => -814287494, 936677 => -818376083, 942587 => -810058084, 1040095 => -671727299, 992818 => -738862696, 969180 => -771931676, 957361 => -788832257, 951451 => -797398315, 948496 => -801575953, 954406 => -793161508, 963271 => -780248485, 960316 => -784606397, 966226 => -776088496, 980999 => -755403102, 975090 => -763714904, 972135 => -767920702, 978045 => -759558838, 986909 => -747143011, 983954 => -751285581, 989864 => -743003124, 1016457 => -705320593, 1004638 => -721900914, 998728 => -730412193, 995773 => -734676715, 1001683 => -726049461, 1010548 => -713592861, 1007593 => -717765252, 1013503 => -709440260, 1028276 => -688616042, 1022367 => -696826127, 1019412 => -701078487, 1025322 => -692779027, 1034186 => -680152183, 1031231 => -684454845, 1037141 => -675850577, 1087372 => -604776483, 1063734 => -638347053, 1051915 => -654953304, 1046005 => -663333721, 1043050 => -667523276, 1048960 => -659204801, 1057825 => -646709185, 1054870 => -650800484, 1060780 => -642554148, 1075553 => -621500041, 1069644 => -629898869, 1066689 => -634039678, 1072599 => -625660097, 1081463 => -613038845, 1078508 => -617192481, 1084418 => -608911219, 1111011 => -570850848, 1099192 => -587931150, 1093282 => -596316287, 1090327 => -600435579, 1096237 => -592012886, 1105102 => -579437593, 1102147 => -583705214, 1108057 => -575057289, 1122830 => -553904694, 1116921 => -562370073, 1113966 => -566637500, 1119876 => -558210729, 1128740 => -545569057, 1125785 => -549773650, 1131695 => -541505337, 1323757 => -267333143, 1229203 => -402116951, 1181926 => -469411606, 1158288 => -503322928, 1146469 => -520300027, 1140559 => -528683557, 1137604 => -533066053, 1143514 => -524438621, 1152379 => -511750948, 1149424 => -515975820, 1155334 => -507610268, 1170107 => -486358142, 1164198 => -494769999, 1161243 => -499048887, 1167153 => -490598428, 1176017 => -477978823, 1173062 => -482169221, 1178972 => -473713565, 1205565 => -436033379, 1193746 => -452799211, 1187836 => -461047689, 1184881 => -465248915, 1190791 => -456846502, 1199656 => -444474014, 1196701 => -448682971, 1202611 => -440231707, 1217384 => -419154381, 1211475 => -427670569, 1208520 => -431805796, 1214430 => -423390765, 1223294 => -410707672, 1220339 => -414862856, 1226249 => -406428245, 1276480 => -334636491, 1252842 => -368161313, 1241023 => -385114551, 1235113 => -393588443, 1232158 => -398017360, 1238068 => -389352195, 1246933 => -376508438, 1243978 => -380877249, 1249888 => -372452802, 1264661 => -351369510, 1258752 => -359756677, 1255797 => -364017096, 1261707 => -355536169, 1270571 => -342873719, 1267616 => -347197920, 1273526 => -338700789, 1300119 => -300999434, 1288300 => -318121031, 1282390 => -326305357, 1279435 => -330446199, 1285345 => -322295810, 1294210 => -309503487, 1291255 => -313898241, 1297165 => -305196855, 1311938 => -284112868, 1306029 => -292531421, 1303074 => -296784275, 1308984 => -288368089, 1317848 => -275847179, 1314893 => -279990242, 1320803 => -271499652, 1418311 => -132994935, 1371034 => -199770430, 1347396 => -233734897, 1335577 => -250562800, 1329667 => -258960615, 1326712 => -263181169, 1332622 => -254868860, 1341487 => -242075308, 1338532 => -246326740, 1344442 => -237822220, 1359215 => -216804133, 1353306 => -225338986, 1350351 => -229622662, 1356261 => -221049540, 1365125 => -208254525, 1362170 => -212570946, 1368080 => -203980694, 1394673 => -166690627, 1382854 => -183304661, 1376944 => -191407977, 1373989 => -195736787, 1379899 => -187387859, 1388764 => -175020922, 1385809 => -179149747, 1391719 => -170870990, 1406492 => -149960658, 1400583 => -158362134, 1397628 => -162523451, 1403538 => -154128419, 1412402 => -141529213, 1409447 => -145774581, 1415357 => -137203039, 1465588 => -66078005, 1441950 => -99327778, 1430131 => -116077868, 1424221 => -124444409, 1421266 => -128732377, 1427176 => -120249188, 1436041 => -107617717, 1433086 => -111904615, 1438996 => -103442968, 1453769 => -82560088, 1447860 => -91083778, 1444905 => -95224047, 1450815 => -86736268, 1459679 => -74281139, 1456724 => -78506491, 1462634 => -70150949, 1489227 => -33030793, 1477408 => -49801140, 1471498 => -57927285, 1468543 => -62054980, 1474453 => -53882553, 1483318 => -41471317, 1480363 => -45602806, 1486273 => -37257112, 1501046 => -16473213, 1495137 => -24930323, 1492182 => -28948659, 1498092 => -20724897, 1506956 => -8242397, 1504001 => -12449736, 1509911 => -4112706, 2269298 => 1073068434, 1891082 => 536673723, 1701974 => 268478948, 1607420 => 133940005, 1560143 => 66821562, 1536504 => 33510708, 1524685 => 16899347, 1518775 => 8469487, 1515820 => 4161766, 1521730 => 12652452, 1530595 => 25194544, 1527640 => 21057393, 1533550 => 29384812, 1548324 => 50108421, 1542414 => 41786489, 1539459 => 37713132, 1545369 => 46014908, 1554234 => 58431233, 1551279 => 54247151, 1557189 => 62637596, 1583782 => 100389311, 1571963 => 83531374, 1566053 => 75254330, 1563098 => 71092101, 1569008 => 79371710, 1577873 => 92040975, 1574918 => 87729501, 1580828 => 96275815, 1595601 => 116842259, 1589692 => 108639604, 1586737 => 104430396, 1592647 => 112739089, 1601511 => 125380161, 1598556 => 121146316, 1604466 => 129690192, 1654697 => 201262035, 1631059 => 167747233, 1619240 => 150769475, 1613330 => 142435452, 1610375 => 138192243, 1616285 => 146626724, 1625150 => 159323268, 1622195 => 155086364, 1628105 => 163519226, 1642878 => 184470224, 1636969 => 176051989, 1634014 => 171727320, 1639924 => 180249184, 1648788 => 192842457, 1645833 => 188759624, 1651743 => 197111181, 1678336 => 235104619, 1666517 => 218246835, 1660607 => 209627084, 1657652 => 205354583, 1663562 => 213906570, 1672427 => 226610232, 1669472 => 222447558, 1675382 => 230917447, 1690155 => 251864353, 1684246 => 243623902, 1681291 => 239354250, 1687201 => 247796909, 1696065 => 260071440, 1693110 => 256043710, 1699020 => 264257066, 1796528 => 402969264, 1749251 => 335984405, 1725613 => 302161110, 1713794 => 285258074, 1707884 => 277001491, 1704929 => 272725864, 1710839 => 281103315, 1719704 => 293620335, 1716749 => 289431527, 1722659 => 297994714, 1737432 => 319004748, 1731523 => 310637371, 1728568 => 306433316, 1734478 => 314840189, 1743342 => 327546532, 1740387 => 323319896, 1746297 => 331835912, 1772890 => 369623482, 1761071 => 352695807, 1755161 => 344307577, 1752206 => 340206104, 1758116 => 348568652, 1766981 => 361087910, 1764026 => 356872521, 1769936 => 365378462, 1784709 => 386167838, 1778800 => 377900035, 1775845 => 373754856, 1781755 => 381955643, 1790619 => 394484978, 1787664 => 390356743, 1793574 => 398676700, 1843805 => 469842573, 1820167 => 436424868, 1808348 => 419770156, 1802438 => 411260917, 1799483 => 407100987, 1805393 => 415543187, 1814258 => 428176651, 1811303 => 423968539, 1817213 => 432240407, 1831986 => 453290146, 1826077 => 444784688, 1823122 => 440580323, 1829032 => 449087273, 1837896 => 461526732, 1834941 => 457434264, 1840851 => 465749579, 1867444 => 503199443, 1855625 => 486578133, 1849715 => 478132024, 1846760 => 473974281, 1852670 => 482375330, 1861535 => 494841176, 1858580 => 490742039, 1864490 => 498974428, 1879263 => 519926168, 1873354 => 511507050, 1870399 => 507332965, 1876309 => 515634839, 1885173 => 528378337, 1882218 => 524149890, 1888128 => 532567814, 2080190 => 805651704, 1985636 => 670955425, 1938359 => 603965502, 1914721 => 570474643, 1902902 => 553557774, 1896992 => 545110665, 1894037 => 540947205, 1899947 => 549399223, 1908812 => 562075767, 1905857 => 557817082, 1911767 => 566230885, 1926540 => 587269215, 1920631 => 578725511, 1917676 => 574560750, 1923586 => 582981197, 1932450 => 595702715, 1929495 => 591412670, 1935405 => 599799070, 1961998 => 637726523, 1950179 => 620756686, 1944269 => 612443809, 1941314 => 608258989, 1947224 => 616487114, 1956089 => 629070744, 1953134 => 624927350, 1959044 => 633377367, 1973817 => 654426804, 1967908 => 646039463, 1964953 => 641796873, 1970863 => 650372323, 1979727 => 662685614, 1976772 => 658567281, 1982682 => 666762098, 2032913 => 738300066, 2009275 => 704594457, 1997456 => 687458932, 1991546 => 679181803, 1988591 => 674934159, 1994501 => 683351639, 2003366 => 695966140, 2000411 => 691678262, 2006321 => 700227799, 2021094 => 721246606, 2015185 => 712848363, 2012230 => 708742526, 2018140 => 716965553, 2027004 => 729696997, 2024049 => 725387466, 2029959 => 733927419, 2056552 => 771825032, 2044733 => 754956244, 2038823 => 746569087, 2035868 => 742483593, 2041778 => 750675012, 2050643 => 763601016, 2047688 => 759228188, 2053598 => 767621131, 2068371 => 788821316, 2062462 => 780379190, 2059507 => 776078120, 2065417 => 784624250, 2074281 => 797290167, 2071326 => 793131223, 2077236 => 801498511, 2174744 => 939535160, 2127467 => 873004700, 2103829 => 839383936, 2092010 => 822543467, 2086100 => 814105645, 2083145 => 809916151, 2089055 => 818414104, 2097920 => 831007162, 2094965 => 826730124, 2100875 => 835233566, 2115648 => 856292122, 2109739 => 847957542, 2106784 => 843711913, 2112694 => 852151986, 2121558 => 864708162, 2118603 => 860422781, 2124513 => 868953894, 2151106 => 906408781, 2139287 => 889621724, 2133377 => 881096334, 2130422 => 877024938, 2136332 => 885296749, 2145197 => 898058441, 2142242 => 893835627, 2148152 => 902217957, 2162925 => 923101270, 2157016 => 914821072, 2154061 => 910633665, 2159971 => 918934629, 2168835 => 931463888, 2165880 => 927244910, 2171790 => 935487902, 2222021 => 1006682264, 2198383 => 973348396, 2186564 => 956547321, 2180654 => 948073351, 2177699 => 943639747, 2183609 => 952223185, 2192474 => 964857409, 2189519 => 960701063, 2195429 => 969146982, 2210202 => 990073112, 2204293 => 981680513, 2201338 => 977490206, 2207248 => 985822429, 2216112 => 998240954, 2213157 => 994206692, 2219067 => 1002488344, 2245660 => 1039802890, 2233841 => 1023192666, 2227931 => 1015034421, 2224976 => 1010825750, 2230886 => 1019247181, 2239751 => 1031551455, 2236796 => 1027453004, 2242706 => 1035677507, 2257479 => 1056395702, 2251570 => 1048125619, 2248615 => 1043976127, 2254525 => 1052257421, 2263389 => 1064646411, 2260434 => 1060421361, 2266344 => 1068889887, 2647515 => 1610594056, 2458407 => 1341203367, 2363853 => 1207400340, 2316576 => 1140112570, 2292937 => 1106497568, 2281118 => 1089696341, 2275208 => 1081302485, 2272253 => 1077181531, 2278163 => 1085548051, 2287028 => 1098103876, 2284073 => 1093899326, 2289983 => 1102356336, 2304757 => 1123288590, 2298847 => 1114881131, 2295892 => 1110566075, 2301802 => 1119011569, 2310667 => 1131693882, 2307712 => 1127557396, 2313622 => 1135867616, 2340215 => 1173774742, 2328396 => 1157075415, 2322486 => 1148627703, 2319531 => 1144347366, 2325441 => 1152892915, 2334306 => 1165499894, 2331351 => 1161213196, 2337261 => 1169627414, 2352034 => 1190553165, 2346125 => 1182139464, 2343170 => 1178015586, 2349080 => 1186430299, 2357944 => 1198915357, 2354989 => 1194717616, 2360899 => 1203210170, 2411130 => 1274050149, 2387492 => 1240870840, 2375673 => 1224182290, 2369763 => 1215785828, 2366808 => 1211553514, 2372718 => 1220010832, 2381583 => 1232527992, 2378628 => 1228334327, 2384538 => 1236757691, 2399311 => 1257580683, 2393402 => 1249062960, 2390447 => 1245016707, 2396357 => 1253432938, 2405221 => 1265776544, 2402266 => 1261684181, 2408176 => 1269973799, 2434769 => 1307862468, 2422950 => 1290888020, 2417040 => 1282458921, 2414085 => 1278209564, 2419995 => 1286517867, 2428860 => 1299426036, 2425905 => 1295088267, 2431815 => 1303744890, 2446588 => 1324524392, 2440679 => 1316135251, 2437724 => 1311960505, 2443634 => 1320364757, 2452498 => 1332700532, 2449543 => 1328553586, 2455453 => 1336966281, 2552961 => 1475486956, 2505684 => 1408406380, 2482046 => 1374782484, 2470227 => 1358015641, 2464317 => 1349578433, 2461362 => 1345374922, 2467272 => 1353674451, 2476137 => 1366400915, 2473182 => 1362217292, 2479092 => 1370648182, 2493865 => 1391679247, 2487956 => 1383079697, 2485001 => 1379025942, 2490911 => 1387344566, 2499775 => 1399927714, 2496820 => 1395793526, 2502730 => 1404132150, 2529323 => 1441860162, 2517504 => 1425324758, 2511594 => 1416850681, 2508639 => 1412657914, 2514549 => 1421059285, 2523414 => 1433534503, 2520459 => 1429454309, 2526369 => 1437651508, 2541142 => 1458700389, 2535233 => 1450335688, 2532278 => 1446105047, 2538188 => 1454478020, 2547052 => 1467119437, 2544097 => 1462957239, 2550007 => 1471336204, 2600238 => 1543100512, 2576600 => 1509120739, 2564781 => 1492150905, 2558871 => 1483782519, 2555916 => 1479670510, 2561826 => 1487979134, 2570691 => 1500651114, 2567736 => 1496354622, 2573646 => 1504988301, 2588419 => 1526098824, 2582510 => 1517469371, 2579555 => 1513304472, 2585465 => 1521741174, 2594329 => 1534625566, 2591374 => 1530348370, 2597284 => 1538889512, 2623877 => 1576753408, 2612058 => 1559926051, 2606148 => 1551452331, 2603193 => 1547306201, 2609103 => 1555664056, 2617968 => 1568373923, 2615013 => 1564189504, 2620923 => 1572591924, 2635696 => 1593598393, 2629787 => 1585335498, 2626832 => 1581044060, 2632742 => 1589498785, 2641606 => 1602067160, 2638651 => 1597805002, 2644561 => 1606259973, 2836623 => 1879244929, 2742069 => 1744923791, 2694792 => 1677783831, 2671154 => 1644306162, 2659335 => 1627387782, 2653425 => 1618872983, 2650470 => 1614736470, 2656380 => 1623007436, 2665245 => 1635896254, 2662290 => 1631661109, 2668200 => 1640078185, 2682973 => 1661115973, 2677064 => 1652681291, 2674109 => 1648450990, 2680019 => 1656951726, 2688883 => 1669510674, 2685928 => 1665353461, 2691838 => 1673749528, 2718431 => 1711459874, 2706612 => 1694463983, 2700702 => 1686132500, 2697747 => 1681900672, 2703657 => 1690357624, 2712522 => 1702782563, 2709567 => 1698578301, 2715477 => 1707048237, 2730250 => 1728169994, 2724341 => 1719817866, 2721386 => 1715654004, 2727296 => 1724035798, 2736160 => 1736465867, 2733205 => 1732276374, 2739115 => 1740696368, 2789346 => 1812229496, 2765708 => 1778435484, 2753889 => 1761821619, 2747979 => 1753457200, 2745024 => 1749214874, 2750934 => 1757669519, 2759799 => 1770256636, 2756844 => 1766002932, 2762754 => 1774331884, 2777527 => 1795423584, 2771618 => 1786872191, 2768663 => 1782717891, 2774573 => 1791222541, 2783437 => 1803732272, 2780482 => 1799575199, 2786392 => 1808034680, 2812985 => 1845460698, 2801166 => 1828902064, 2795256 => 1820608680, 2792301 => 1816419501, 2798211 => 1824820344, 2807076 => 1837132417, 2804121 => 1833091228, 2810031 => 1841297667, 2824804 => 1862448826, 2818895 => 1853853985, 2815940 => 1849633835, 2821850 => 1858247628, 2830714 => 1870839367, 2827759 => 1866681006, 2833669 => 1875020538, 2931177 => 2012867834, 2883900 => 1945966518, 2860262 => 1912683691, 2848443 => 1896079095, 2842533 => 1887670348, 2839578 => 1883525756, 2845488 => 1891870181, 2854353 => 1904336570, 2851398 => 1900184967, 2857308 => 1908531201, 2872081 => 1929636101, 2866172 => 1921254308, 2863217 => 1916962632, 2869127 => 1925462826, 2877991 => 1937818444, 2875036 => 1933643484, 2880946 => 1941951326, 2907539 => 1979532968, 2895720 => 1962650220, 2889810 => 1954375426, 2886855 => 1950197041, 2892765 => 1958543762, 2901630 => 1971076267, 2898675 => 1966917727, 2904585 => 1975411061, 2919358 => 1996205461, 2913449 => 1988031452, 2910494 => 1983756208, 2916404 => 1992201539, 2925268 => 2004381023, 2922313 => 2000183507, 2928223 => 2008665895, 2978454 => 2080142056, 2954816 => 2046634186, 2942997 => 2029615237, 2937087 => 2021083739, 2934132 => 2017024860, 2940042 => 2025317796, 2948907 => 2038194015, 2945952 => 2033877691, 2951862 => 2042436223, 2966635 => 2063208376, 2960726 => 2054881643, 2957771 => 2050773178, 2963681 => 2058971444, 2972545 => 2071562019, 2969590 => 2067434274, 2975500 => 2075836564, 3002093 => 2113877570, 2990274 => 2097034402, 2984364 => 2088660725, 2981409 => 2084445043, 2987319 => 2092815633, 2996184 => 2105429539, 2993229 => 2101159034, 2999139 => 2109670157, 3013912 => 2130657193, 3008003 => 2122253245, 3005048 => 2118003432, 3010958 => 2126410840, 3019822 => 2138946838, 3016867 => 2134709202, 3022777 => 2143289813);
    //Первые индекса 1023 варианта. 10 шагов. Ускоряет где-то в 1.5-2 раза
    if ($fp0 !== NULL) {
        $fp = $fp0;
    } else {
        $fp = fopen('binMorf.bin', 'r');
    }
    if ($crc32 === NULL) {
        return $fp;
    }
    $cash = false;
    $cashStart = 0;
    while ($first < $last) {
        $delta = $last - $first;
        $mid = (int) ($first + $delta / 2);
        if (isset($Index[$mid])) {
            $cur = $Index[$mid];
        } elseif ($delta > 64) {
            fseek($fp, $mid * 8);
            $cur = unpack('l', fread($fp, 4));
            $cur = $cur[1];
        } else {
            if ($cash === false) {
                fseek($fp, $first * 8);
                $size = ($delta + 1) * 8;
                $cash = fread($fp, $size);
                while (!isset($cash[$size - 1])) {
                    $cash .= fread($fp, $size - strlen($cash));
                }
                $cashStart = $first;
            }
            $cur = unpack('l', substr($cash, ($mid - $cashStart) * 8, 4));
            $cur = $cur[1];
        }
        if ($crc32 <= $cur) {
            $last = $mid;
        } else {
            $first = $mid + 1;
        }
    }
    $res = NULL;
    fseek($fp, $last * 8);
    $cur = my_unpack(fread($fp, 4));
    if ($cur == $crc32) {
        fseek($fp, $last * 8 + 4);
        $res = my_unpack(fread($fp, 4));
    }
    if ($fp0 === NULL) {
        fclose($fp);
    }
    return $res;
}
Exemple #2
0
function AnalisysLog($content)
{
    $ret = new ObjSet();
    $objs = array();
    $cnt = 0;
    //getTimeSeconds
    $times = explode(' ', microtime());
    $begin = floatval($times[0]) + floatval($times[1]);
    //start deal log data...
    $lines = explode(chr(10), $content);
    foreach ($lines as $oneline) {
        $oneline = trim($oneline);
        //去除首尾的"\0" "\t" "\n" "\r" "\x0B" " "
        if (strlen($oneline) < 2) {
            continue;
        }
        //过滤空行
        //distinct fix_log or tran_log
        $pos = strpos($oneline, FIX_FLAG);
        if ($pos !== false) {
            //if fix_log
            $msg = my_unpack($oneline, 'fix_log', FIX_LOG0, FIX_LOG1, $GLOBALS['FiltStr']);
        } else {
            $msg = my_unpack($oneline, 'tran_log', LOG0, LOG1, $GLOBALS['FiltStr']);
        }
        if ($msg->data != null) {
            $objs[$cnt++] = $msg;
        }
    }
    //end deal
    if ($cnt > 0) {
        $ret->data = $objs;
        $ret->counts = $cnt;
        //again getTimeSeconds
        $times = explode(' ', microtime());
        $ret->cost_time = round(floatval($times[0]) + floatval($times[1]) - $begin, 3);
    }
    return $ret;
}