diff --git a/interfaces/image.c b/interfaces/image.c index a0ca4cf..ff1ba18 100644 --- a/interfaces/image.c +++ b/interfaces/image.c @@ -1,3 +1,3 @@ #include -int32_t ngaImageCells = 9348; -int32_t ngaImage[] = { 1793,-1,9292,9347,201712,0,10,1,10,2,10,3,10,4,10,5,10,6,10,7,10,8,10,9,10,10,10,11,10,12,10,13,10,14,10,15,10,16,10,17,10,18,10,19,10,20,10,21,10,22,10,23,10,24,10,25,10,26,10,2049,10,1793,10,67502597,10,67502597,67502597,10,68223234,1,2575,85000450,1,656912,2049,68,25,459011,74,524546,74,302256641,1,10,168756239,17043713,1,1,2577,134284549,65,2049,84,85263883,2049,85,302056966,1,25,1793,89,33620739,0,10,2049,65,2049,79,524548,79,590092,101,25,524546,79,134284289,-1,89,100860677,10,3197,3206,268505089,121,120,135205121,121,10,101384453,0,9,10,134287105,3,71,659457,3,459023,132,2049,68,25,2049,132,1793,139,2049,139,117506307,0,132,0,524545,25,137,168820993,0,151,1642241,151,134283523,7,137,1793,132,7,524545,59,137,1793,132,16846593,151,166,165,1793,122,16846593,151,137,165,1793,122,7,10,659713,1,659713,2,659713,3,17108737,3,2,524559,132,2049,132,2049,132,2049,146,168820998,2,3182,1025,167841793,204,5,17826049,0,204,2,15,25,524546,189,134287105,205,104,2305,206,459023,214,134287361,205,209,659201,204,2049,68,25,84152833,48,286458116,10,459014,229,184618754,45,25,16974851,-1,168886532,1,134284289,1,238,134284289,0,229,660227,32,0,0,112,114,101,102,105,120,58,125,0,285278479,255,7,2576,524546,79,1641217,1,167838467,252,2049,268,2049,264,524545,255,224,17826050,254,0,2572,2563,2049,245,1793,158,459023,158,17760513,171,3,191,8,251727617,3,2,2049,185,268501264,-1,151,10,2049,224,2049,185,459023,158,285282049,3,2,16846593,151,-1,151,134283536,61,137,16846593,3,0,132,8,659201,3,524545,25,137,17043201,3,7,2049,137,2049,132,268505092,151,1642241,151,656131,659201,3,524545,7,137,2049,132,459009,19,137,1642241,151,117506307,55,137,1642241,151,117506307,15,137,1642241,151,117506307,17,137,1793,5,524546,185,134284303,187,1807,1025,1642241,254,285282049,376,1,459012,371,117509889,204,371,134287105,376,224,16845825,0,384,369,1793,122,17826050,376,274,8,117506305,377,387,122,0,9,177,100,117,112,0,404,11,177,100,114,111,112,0,411,13,177,115,119,97,112,0,419,21,177,99,97,108,108,0,427,27,177,101,113,63,0,435,29,177,45,101,113,63,0,442,31,177,108,116,63,0,450,33,177,103,116,63,0,457,35,177,102,101,116,99,104,0,464,37,177,115,116,111,114,101,0,473,39,177,43,0,482,41,177,45,0,487,43,177,42,0,492,45,177,47,109,111,100,0,497,47,177,97,110,100,0,505,49,177,111,114,0,512,51,177,120,111,114,0,518,53,177,115,104,105,102,116,0,525,359,183,112,117,115,104,0,534,364,183,112,111,112,0,542,354,183,48,59,0,549,68,171,102,101,116,99,104,45,110,101,120,116,0,555,71,171,115,116,111,114,101,45,110,101,120,116,0,569,245,171,115,58,116,111,45,110,117,109,98,101,114,0,583,104,171,115,58,101,113,63,0,598,79,171,115,58,108,101,110,103,116,104,0,607,122,171,99,104,111,111,115,101,0,619,130,171,105,102,0,629,128,171,45,105,102,0,635,285,183,112,114,101,102,105,120,58,40,0,642,151,158,67,111,109,112,105,108,101,114,0,654,3,158,72,101,97,112,0,666,132,171,44,0,674,146,171,115,44,0,679,152,183,59,0,685,312,183,91,0,690,329,183,93,0,695,2,158,68,105,99,116,105,111,110,97,114,121,0,700,184,171,100,58,108,105,110,107,0,714,185,171,100,58,120,116,0,724,187,171,100,58,99,108,97,115,115,0,732,189,171,100,58,110,97,109,101,0,743,171,171,99,108,97,115,115,58,119,111,114,100,0,753,183,171,99,108,97,115,115,58,109,97,99,114,111,0,767,158,171,99,108,97,115,115,58,100,97,116,97,0,782,191,171,100,58,97,100,100,45,104,101,97,100,101,114,0,796,286,183,112,114,101,102,105,120,58,35,0,812,292,183,112,114,101,102,105,120,58,58,0,824,306,183,112,114,101,102,105,120,58,38,0,836,290,183,112,114,101,102,105,120,58,36,0,848,344,183,114,101,112,101,97,116,0,860,346,183,97,103,97,105,110,0,870,396,171,105,110,116,101,114,112,114,101,116,0,879,224,171,100,58,108,111,111,107,117,112,0,892,177,171,99,108,97,115,115,58,112,114,105,109,105,116,105,118,101,0,904,4,158,86,101,114,115,105,111,110,0,923,369,171,101,114,114,58,110,111,116,102,111,117,110,100,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,125,125,0,102,101,114,58,112,114,101,115,101,114,118,101,0,105,110,101,0,63,0,63,64,91,92,93,94,96,123,124,125,126,0,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,934,1543,171,69,79,77,0,1,-3,15,10,1536,1557,171,100,58,108,97,115,116,0,1,2,15,10,1547,1575,171,100,58,108,97,115,116,60,120,116,62,0,2049,1557,2049,185,15,10,1561,1598,171,100,58,108,97,115,116,60,99,108,97,115,115,62,0,2049,1557,2049,187,15,10,1581,1620,171,100,58,108,97,115,116,60,110,97,109,101,62,0,2049,1557,2049,189,10,1604,1636,171,114,101,99,108,97,115,115,0,2049,1557,2049,187,16,10,1625,1655,171,105,109,109,101,100,105,97,116,101,0,1,183,2049,1636,10,1642,1668,171,100,97,116,97,0,1,158,2049,1636,10,1660,1682,171,100,101,112,116,104,0,1,-1,15,10,1673,1701,171,99,111,109,112,105,108,101,58,108,105,116,0,1,1,2049,132,2049,132,10,1686,1724,171,99,111,109,112,105,108,101,58,106,117,109,112,0,1,1793,2049,132,2049,132,10,1708,1747,171,99,111,109,112,105,108,101,58,99,97,108,108,0,1,2049,2049,132,2049,132,10,1731,1769,171,99,111,109,112,105,108,101,58,114,101,116,0,1,10,2049,132,10,1754,1788,171,99,111,109,112,105,108,105,110,103,63,0,1,151,15,10,1774,1804,183,112,114,101,102,105,120,58,64,0,2049,224,2049,185,15,2049,1788,1793,1820,1,3841,2049,132,2049,132,10,1,1813,1793,1826,15,10,1,1824,2049,122,10,1792,1843,183,112,114,101,102,105,120,58,33,0,2049,224,2049,185,15,2049,1788,1793,1859,1,4097,2049,132,2049,132,10,1,1852,1793,1865,16,10,1,1863,2049,122,10,1831,1882,183,112,114,101,102,105,120,58,96,0,2049,1788,1793,1891,2049,245,2049,132,10,1,1886,1793,1897,3,10,1,1895,2049,122,10,1870,1910,171,104,101,114,101,0,3841,3,10,1902,1925,171,100,58,99,114,101,97,116,101,0,1,158,1,0,2049,191,2049,1910,2049,1557,2049,185,16,10,1913,1946,171,118,97,114,0,2049,1925,1,0,2049,132,10,1939,1963,171,118,97,114,60,110,62,0,2049,1925,2049,132,10,1953,1977,171,99,111,110,115,116,0,2049,1925,2049,1557,2049,185,16,10,1968,1993,171,116,117,99,107,0,2,5,4,6,10,1985,2006,171,111,118,101,114,0,5,2,6,4,10,1998,2023,171,100,117,112,45,112,97,105,114,0,2049,2006,2049,2006,10,2011,2035,171,110,105,112,0,4,3,10,2028,2051,171,100,114,111,112,45,112,97,105,114,0,3,3,10,2038,2062,171,63,100,117,112,0,2,25,10,2054,2072,171,100,105,112,0,4,5,8,6,10,2065,2084,171,115,105,112,0,5,2,6,4,1,21,2049,2072,10,2077,2099,171,98,105,0,1,2084,2049,2072,8,10,2093,2112,171,98,105,42,0,1,2072,2049,2072,8,10,2105,2125,171,98,105,64,0,2,2049,2112,10,2118,2136,171,116,114,105,0,1793,2145,1,2084,2049,2072,2049,2084,10,1,2138,2049,2072,8,10,2129,2159,171,116,114,105,42,0,1793,2176,1793,2169,4,1,2072,2049,2072,10,1,2163,2049,2072,2049,2072,10,1,2161,2049,2072,8,10,2151,2190,171,116,114,105,64,0,2,2,2049,2159,10,2182,2204,171,119,104,105,108,101,0,1793,2216,2,2049,2072,4,25,3,1,2206,7,10,1,2206,8,3,10,2195,2230,171,117,110,116,105,108,0,1793,2245,2,2049,2072,4,1,-1,23,25,3,1,2232,7,10,1,2232,8,3,10,2221,2259,171,116,105,109,101,115,0,4,1793,2276,25,1,1,18,5,1,21,2049,2084,6,1,2262,7,10,1,2262,8,3,10,2250,2289,171,84,82,85,69,0,1,-1,10,2281,2301,171,70,65,76,83,69,0,1,0,10,2292,2313,171,108,116,101,113,63,0,2049,2023,11,1793,2320,13,10,1,2318,2049,2072,22,10,2304,2335,171,103,116,101,113,63,0,2049,2023,11,1793,2342,14,10,1,2340,2049,2072,22,10,2326,2357,171,110,58,77,65,88,0,1,2147483647,10,2348,2369,171,110,58,77,73,78,0,1,-2147483648,10,2360,2383,171,110,58,122,101,114,111,63,0,1,0,11,10,2372,2399,171,110,58,45,122,101,114,111,63,0,1,0,12,10,2387,2418,171,110,58,110,101,103,97,116,105,118,101,63,0,1,0,13,10,2403,2437,171,110,58,112,111,115,105,116,105,118,101,63,0,1,-1,14,10,2422,2465,171,110,58,115,116,114,105,99,116,108,121,45,112,111,115,105,116,105,118,101,63,0,1,0,14,10,2441,2480,171,110,58,101,118,101,110,63,0,1,2,20,3,2049,2383,10,2469,2497,171,110,58,111,100,100,63,0,1,2,20,3,2049,2399,10,2487,2512,171,99,97,115,101,0,1793,2518,2049,2006,11,10,1,2514,2049,2072,4,1793,2531,2049,2035,8,2049,2289,10,1,2525,1793,2539,3,2049,2301,10,1,2535,2049,122,25,6,3,3,10,2504,2558,171,115,58,99,97,115,101,0,1793,2565,2049,2006,2049,104,10,1,2560,2049,2072,4,1793,2578,2049,2035,8,2049,2289,10,1,2572,1793,2586,3,2049,2301,10,1,2582,2049,122,25,6,3,3,10,2548,2602,171,114,111,116,0,1793,2606,4,10,1,2604,2049,2072,4,10,2595,2620,171,116,111,114,115,0,6,6,2,5,4,5,10,2612,2632,171,47,0,20,2049,2035,10,2627,2643,171,109,111,100,0,20,3,10,2636,2653,171,110,111,116,0,1,-1,23,10,2646,2666,171,110,58,112,111,119,0,1,1,4,1793,2675,2049,2006,19,10,1,2671,2049,2259,2049,2035,10,2657,2694,171,110,58,110,101,103,97,116,101,0,1,-1,19,10,2682,2710,171,110,58,115,113,117,97,114,101,0,2,19,10,2698,2723,171,110,58,115,113,114,116,0,1,1,1793,2744,2049,2023,2049,2632,2049,2006,18,1,2,2049,2632,25,17,1,2727,7,10,1,2727,8,2049,2035,10,2713,2759,171,110,58,109,105,110,0,2049,2023,13,1793,2766,3,10,1,2764,1793,2773,2049,2035,10,1,2770,2049,122,10,2750,2787,171,110,58,109,97,120,0,2049,2023,14,1793,2794,3,10,1,2792,1793,2801,2049,2035,10,1,2798,2049,122,10,2778,2815,171,110,58,97,98,115,0,2,2049,2694,2049,2787,10,2806,2832,171,110,58,108,105,109,105,116,0,4,5,2049,2759,6,2049,2787,10,2821,2849,171,110,58,105,110,99,0,1,1,17,10,2840,2862,171,110,58,100,101,99,0,1,1,18,10,2853,2880,171,110,58,98,101,116,119,101,101,110,63,0,2049,2602,1793,2891,2049,2602,2049,2602,2049,2832,10,1,2884,2049,2084,11,10,2866,2909,171,118,58,105,110,99,45,98,121,0,1793,2914,15,17,10,1,2911,2049,2084,16,10,2897,2932,171,118,58,100,101,99,45,98,121,0,1793,2938,15,4,18,10,1,2934,2049,2084,16,10,2920,2953,171,118,58,105,110,99,0,1,1,4,2049,2909,10,2944,2968,171,118,58,100,101,99,0,1,1,4,2049,2932,10,2959,2985,171,118,58,108,105,109,105,116,0,5,5,2,15,6,6,2049,2832,4,16,10,2974,3004,171,118,58,111,110,0,2049,2289,4,16,10,2996,3018,171,118,58,111,102,102,0,2049,2301,4,16,10,3009,3037,171,118,58,112,114,101,115,101,114,118,101,0,4,2,15,1793,3051,1793,3046,8,10,1,3044,2049,2072,10,1,3042,2049,2072,4,16,10,3023,3067,171,97,108,108,111,116,0,1,3,2049,2909,10,3058,3090,171,118,58,117,112,100,97,116,101,45,117,115,105,110,103,0,4,1793,3097,15,4,8,10,1,3093,2049,2084,16,10,3072,3111,171,99,111,112,121,0,1793,3120,1,68,2049,2072,2049,71,10,1,3113,2049,2259,3,3,10,3103,3140,171,83,99,111,112,101,76,105,115,116,0,9211,9283,10,3127,3149,171,123,123,0,2049,1557,2,1,3140,2049,71,16,10,3143,3174,171,45,45,45,114,101,118,101,97,108,45,45,45,0,2049,1557,1,3140,2049,2849,16,10,3158,3188,171,125,125,0,1,3140,2049,68,4,15,11,1793,3202,3841,3140,4097,2,10,1,3197,1793,3232,3841,3140,1793,3227,1,2,15,2,15,1,3140,2049,2849,15,12,25,3,1,3212,7,10,1,3210,8,16,10,1,3206,2049,122,10,3182,3247,158,66,117,102,102,101,114,0,0,10,3237,3256,158,80,116,114,0,0,10,3249,3271,171,116,101,114,109,105,110,97,116,101,0,1,0,3841,3256,16,10,3182,3293,171,98,117,102,102,101,114,58,115,116,97,114,116,0,3841,3247,10,3277,3310,171,98,117,102,102,101,114,58,101,110,100,0,3841,3256,10,3296,3327,171,98,117,102,102,101,114,58,97,100,100,0,2049,3310,16,1,3256,2049,2953,2049,3271,10,3313,3351,171,98,117,102,102,101,114,58,103,101,116,0,1,3256,2049,2968,2049,3310,15,2049,3271,10,3337,3377,171,98,117,102,102,101,114,58,101,109,112,116,121,0,2049,3293,4097,3256,2049,3271,10,3361,3399,171,98,117,102,102,101,114,58,115,105,122,101,0,2049,3310,2049,3293,18,10,3384,3419,171,98,117,102,102,101,114,58,115,101,116,0,4097,3247,2049,3377,10,3405,3443,171,98,117,102,102,101,114,58,112,114,101,115,101,114,118,101,0,3841,3247,3841,3256,1793,3460,1793,3453,8,10,1,3451,2049,2072,4097,3247,10,1,3449,2049,2072,4097,3256,10,3424,3482,158,84,101,109,112,83,116,114,105,110,103,115,0,32,3467,3500,158,84,101,109,112,83,116,114,105,110,103,77,97,120,0,512,3483,3512,171,83,84,82,73,78,71,83,0,2049,1543,3841,3482,3841,3500,19,18,10,3501,3534,158,115,58,67,117,114,114,101,110,116,0,10,10,3521,3549,171,115,58,112,111,105,110,116,101,114,0,3841,3534,3841,3500,19,2049,3512,17,10,3536,3568,171,115,58,110,101,120,116,0,1,3534,2049,2953,3841,3534,3841,3482,11,1793,3584,1,0,4097,3534,10,1,3579,2049,130,10,3501,3599,171,115,58,116,101,109,112,0,2,2049,79,2049,2849,2049,3549,4,2049,3111,2049,3549,2049,3568,10,3589,3625,171,115,58,101,109,112,116,121,0,2049,3549,2049,3568,10,3614,3640,171,115,58,115,107,105,112,0,6,1793,3648,2049,68,2049,2399,10,1,3643,2049,2204,2049,2862,5,10,3630,3666,171,115,58,107,101,101,112,0,2049,1788,1793,3675,1,3640,2049,171,10,1,3670,2049,130,2049,1910,1793,3686,2049,146,10,1,3683,2049,2072,2049,158,10,3656,3705,183,112,114,101,102,105,120,58,39,0,2049,1788,1793,3712,2049,3666,10,1,3709,1793,3719,2049,3599,10,1,3716,2049,122,10,3693,3734,171,115,58,99,104,111,112,0,2049,3599,2,2049,79,2049,2006,17,2049,2862,1,0,4,16,10,3724,3762,171,115,58,114,101,118,101,114,115,101,0,1793,3804,2,2049,3599,2049,3419,1,79,1793,3780,2,2049,79,17,2049,2862,10,1,3773,2049,2099,4,1793,3794,2,15,2049,3327,2049,2862,10,1,3787,2049,2259,3,2049,3293,2049,3599,10,1,3764,2049,3443,10,3749,3824,171,115,58,116,114,105,109,45,108,101,102,116,0,2049,3599,1793,3849,2049,68,1793,3836,1,32,11,10,1,3832,1793,3843,2049,2383,10,1,3840,2049,2099,21,10,1,3828,2049,2204,2049,2862,10,3809,3872,171,115,58,116,114,105,109,45,114,105,103,104,116,0,2049,3599,2049,3762,2049,3824,2049,3762,10,3856,3891,171,115,58,116,114,105,109,0,2049,3872,2049,3824,10,3881,3909,171,115,58,112,114,101,112,101,110,100,0,2049,3599,1793,3933,2,2049,79,17,1793,3925,2,2049,79,2049,2849,10,1,3919,2049,2072,4,2049,3111,10,1,3913,2049,2084,10,3896,3950,171,115,58,97,112,112,101,110,100,0,4,2049,3909,10,3938,3968,171,115,58,102,111,114,45,101,97,99,104,0,1793,4013,2049,2006,15,25,3,2049,2023,1793,3996,1793,3991,1793,3985,15,10,1,3983,2049,2072,8,10,1,3981,2049,2072,10,1,3979,2049,2072,1793,4005,2049,2849,10,1,4002,2049,2072,1,3970,7,10,1,3970,8,2049,2051,10,3954,4031,171,115,58,102,105,108,116,101,114,0,1793,4068,2049,3625,2049,3419,4,1793,4060,2049,2023,4,8,1793,4049,2049,3327,10,1,4046,1793,4055,3,10,1,4053,2049,122,10,1,4040,2049,3968,3,2049,3293,10,1,4033,2049,3443,10,4019,4082,171,115,58,109,97,112,0,1793,4105,2049,3625,2049,3419,4,1793,4097,2049,2006,8,2049,3327,10,1,4091,2049,3968,3,2049,3293,10,1,4084,2049,3443,10,4073,4122,171,115,58,115,117,98,115,116,114,0,1793,4128,17,2049,3625,10,1,4124,2049,2072,1793,4146,2049,2006,1793,4141,2049,3111,10,1,4138,2049,2072,10,1,4134,2049,2084,2049,2006,1793,4160,17,1,0,4,16,10,1,4154,2049,2072,10,4110,4176,171,115,58,114,105,103,104,116,0,2049,2006,2049,79,2049,2006,18,4,2049,4122,10,4165,4197,171,115,58,108,101,102,116,0,1,0,4,2049,4122,10,4187,4213,171,115,58,104,97,115,104,0,1,5381,4,1793,4224,4,1,33,19,17,10,1,4218,2049,3968,10,4203,4239,171,115,58,99,111,112,121,0,2049,2006,2049,79,2049,2849,2049,3111,10,4229,4260,171,115,58,68,73,71,73,84,83,0,2049,3640,48,49,50,51,52,53,54,55,56,57,0,1,4262,10,4248,4297,171,115,58,65,83,67,73,73,45,76,79,87,69,82,67,65,83,69,0,2049,3640,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,0,1,4299,10,4276,4350,171,115,58,65,83,67,73,73,45,85,80,80,69,82,67,65,83,69,0,2049,3640,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,0,1,4352,10,4329,4401,171,115,58,65,83,67,73,73,45,76,69,84,84,69,82,83,0,2049,3640,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,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,0,1,4403,10,4382,4476,171,115,58,80,85,78,67,84,85,65,84,73,79,78,0,2049,3640,95,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,58,59,60,61,62,63,64,91,92,93,94,96,123,124,125,126,0,1,4478,1,95,2049,2006,16,10,4459,4535,158,115,58,87,72,73,84,69,83,80,65,67,69,0,9,10,13,0,4519,4552,171,65,83,67,73,73,58,78,85,76,0,1,0,10,4539,4568,171,65,83,67,73,73,58,83,79,72,0,1,1,10,4555,4584,171,65,83,67,73,73,58,83,84,88,0,1,2,10,4571,4600,171,65,83,67,73,73,58,69,84,88,0,1,3,10,4587,4616,171,65,83,67,73,73,58,69,79,84,0,1,4,10,4603,4632,171,65,83,67,73,73,58,69,78,81,0,1,5,10,4619,4648,171,65,83,67,73,73,58,65,67,75,0,1,6,10,4635,4664,171,65,83,67,73,73,58,66,69,76,0,1,7,10,4651,4679,171,65,83,67,73,73,58,66,83,0,1,8,10,4667,4694,171,65,83,67,73,73,58,72,84,0,1,9,10,4682,4709,171,65,83,67,73,73,58,76,70,0,1,10,10,4697,4724,171,65,83,67,73,73,58,86,84,0,1,11,10,4712,4739,171,65,83,67,73,73,58,70,70,0,1,12,10,4727,4754,171,65,83,67,73,73,58,67,82,0,1,13,10,4742,4769,171,65,83,67,73,73,58,83,79,0,1,14,10,4757,4784,171,65,83,67,73,73,58,83,73,0,1,15,10,4772,4800,171,65,83,67,73,73,58,68,76,69,0,1,16,10,4787,4816,171,65,83,67,73,73,58,68,67,49,0,1,17,10,4803,4832,171,65,83,67,73,73,58,68,67,50,0,1,18,10,4819,4848,171,65,83,67,73,73,58,68,67,51,0,1,19,10,4835,4864,171,65,83,67,73,73,58,68,67,52,0,1,20,10,4851,4880,171,65,83,67,73,73,58,78,65,75,0,1,21,10,4867,4896,171,65,83,67,73,73,58,83,89,78,0,1,22,10,4883,4912,171,65,83,67,73,73,58,69,84,66,0,1,23,10,4899,4928,171,65,83,67,73,73,58,67,65,78,0,1,24,10,4915,4943,171,65,83,67,73,73,58,69,77,0,1,25,10,4931,4959,171,65,83,67,73,73,58,83,85,66,0,1,26,10,4946,4975,171,65,83,67,73,73,58,69,83,67,0,1,27,10,4962,4990,171,65,83,67,73,73,58,70,83,0,1,28,10,4978,5005,171,65,83,67,73,73,58,71,83,0,1,29,10,4993,5020,171,65,83,67,73,73,58,82,83,0,1,30,10,5008,5035,171,65,83,67,73,73,58,85,83,0,1,31,10,5023,5053,171,65,83,67,73,73,58,83,80,65,67,69,0,1,32,10,5038,5069,171,65,83,67,73,73,58,68,69,76,0,1,127,10,5056,5085,171,99,58,108,101,116,116,101,114,63,0,1,65,1,122,2049,2880,10,5072,5108,171,99,58,108,111,119,101,114,99,97,115,101,63,0,1,97,1,122,2049,2880,10,5092,5131,171,99,58,117,112,112,101,114,99,97,115,101,63,0,1,65,1,90,2049,2880,10,5115,5150,171,99,58,100,105,103,105,116,63,0,1,48,1,57,2049,2880,10,5138,5174,171,99,58,119,104,105,116,101,115,112,97,99,101,63,0,2049,5053,1793,5181,2049,2289,10,1,5178,2049,2512,2049,4694,1793,5192,2049,2289,10,1,5189,2049,2512,2049,4709,1793,5203,2049,2289,10,1,5200,2049,2512,2049,4754,1793,5214,2049,2289,10,1,5211,2049,2512,3,2049,2301,10,5157,5236,171,99,58,118,105,115,105,98,108,101,63,0,1,31,1,126,2049,2880,10,5222,5255,171,99,58,118,111,119,101,108,63,0,1,97,1793,5262,2049,2289,10,1,5259,2049,2512,1,101,1793,5273,2049,2289,10,1,5270,2049,2512,1,105,1793,5284,2049,2289,10,1,5281,2049,2512,1,111,1793,5295,2049,2289,10,1,5292,2049,2512,1,117,1793,5306,2049,2289,10,1,5303,2049,2512,1,65,1793,5317,2049,2289,10,1,5314,2049,2512,1,69,1793,5328,2049,2289,10,1,5325,2049,2512,1,73,1793,5339,2049,2289,10,1,5336,2049,2512,1,79,1793,5350,2049,2289,10,1,5347,2049,2512,1,85,1793,5361,2049,2289,10,1,5358,2049,2512,3,2049,2301,10,5243,5385,171,99,58,99,111,110,115,111,110,97,110,116,63,0,2,2049,5085,1793,5395,2049,5255,2049,2653,10,1,5390,1793,5403,3,2049,2301,10,1,5399,2049,122,10,5369,5425,171,99,58,45,108,111,119,101,114,99,97,115,101,63,0,2049,5108,2049,2653,10,5408,5447,171,99,58,45,117,112,112,101,114,99,97,115,101,63,0,2049,5131,2049,2653,10,5430,5465,171,99,58,45,100,105,103,105,116,63,0,2049,5150,2049,2653,10,5452,5488,171,99,58,45,119,104,105,116,101,115,112,97,99,101,63,0,2049,5174,2049,2653,10,5470,5508,171,99,58,45,118,105,115,105,98,108,101,63,0,2049,5236,2049,2653,10,5493,5526,171,99,58,45,118,111,119,101,108,63,0,2049,5255,2049,2653,10,5513,5548,171,99,58,45,99,111,110,115,111,110,97,110,116,63,0,2049,5385,2049,2653,10,5531,5567,171,99,58,116,111,45,117,112,112,101,114,0,2,2049,5108,25,3,2049,5053,18,10,5553,5590,171,99,58,116,111,45,108,111,119,101,114,0,2,2049,5131,25,3,2049,5053,17,10,5576,5616,171,99,58,116,111,103,103,108,101,45,99,97,115,101,0,2,2049,5108,1793,5624,2049,5567,10,1,5621,1793,5631,2049,5590,10,1,5628,2049,122,10,5599,5651,171,99,58,116,111,45,115,116,114,105,110,103,0,2049,3640,46,0,1,5653,2049,3599,1793,5663,16,10,1,5661,2049,2084,10,5636,5682,171,115,58,116,111,45,117,112,112,101,114,0,1793,5687,2049,5567,10,1,5684,2049,4082,10,5668,5706,171,115,58,116,111,45,108,111,119,101,114,0,1793,5711,2049,5590,10,1,5708,2049,4082,10,5692,5725,158,86,97,108,117,101,0,0,5716,5737,171,99,111,114,114,101,99,116,0,2,1,48,13,1793,5753,1,48,2049,2006,18,1,2,19,17,10,1,5743,2049,130,10,5692,5773,171,110,58,116,111,45,115,116,114,105,110,103,0,1793,5828,2049,1910,2049,3419,2,4097,5725,2049,2815,1793,5801,1,10,20,4,1,48,17,2049,5737,2049,3327,2,2049,2399,10,1,5786,2049,2204,3,3841,5725,2049,2418,1793,5817,1,45,2049,3327,10,1,5812,2049,130,2049,3293,2049,3762,2049,3599,10,1,5775,2049,3443,10,5758,5855,158,82,101,119,114,105,116,101,85,110,100,101,114,115,99,111,114,101,115,0,-1,5833,5863,171,115,117,98,0,1,95,1793,5870,2049,5053,10,1,5867,2049,2512,10,5856,5886,171,114,101,119,114,105,116,101,0,3841,5855,1793,5900,1793,5895,2049,5863,10,1,5892,2049,4082,10,1,5890,2049,130,1,3705,8,10,5833,5920,183,112,114,101,102,105,120,58,39,0,2049,5886,10,5908,5937,171,115,58,105,110,100,101,120,45,111,102,0,4,1793,5961,2049,68,25,4,1793,5950,2049,2006,12,10,1,5946,2049,2072,4,25,3,1,5940,7,10,1,5940,2049,2084,1793,5973,18,2049,2862,2049,2035,10,1,5967,2049,2084,2049,79,2049,2006,11,1793,5988,3,1,-1,10,1,5984,2049,130,10,5923,6013,171,115,58,99,111,110,116,97,105,110,115,45,99,104,97,114,63,0,2049,5937,1,-1,12,10,5993,6026,158,83,114,99,0,0,6019,6034,158,84,97,114,0,0,6027,6042,158,80,97,100,0,0,6035,6048,158,73,0,0,6043,6054,158,70,0,0,6049,6068,171,116,101,114,109,105,110,97,116,101,0,1,0,3841,6042,3841,6034,2049,79,17,16,10,6055,6090,171,101,120,116,114,97,99,116,0,3841,6026,3841,6048,17,3841,6042,3841,6034,2049,79,2049,3111,10,6079,6115,171,99,111,109,112,97,114,101,0,3841,6042,3841,6034,2049,104,3841,6054,22,4097,6054,10,6104,6135,171,110,101,120,116,0,1,6048,2049,2953,10,5993,6162,171,115,58,99,111,110,116,97,105,110,115,45,115,116,114,105,110,103,63,0,4097,6034,4097,6026,2049,3625,4097,6042,1,0,4097,6048,1,0,4097,6054,3841,6026,2049,79,1793,6193,2049,6090,2049,6068,2049,6115,2049,6135,10,1,6184,2049,2259,3841,6054,10,6140,6211,171,115,58,115,112,108,105,116,0,2049,2023,2049,5937,2049,2035,2049,2023,2049,4197,1793,6225,17,10,1,6223,2049,2072,10,6200,6240,158,86,97,108,117,101,115,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6230,6276,171,102,114,111,109,0,2049,79,2,1793,6295,1793,6288,1,6240,17,16,10,1,6283,2049,2084,2049,2862,10,1,6281,2049,2259,3,10,6268,6307,171,116,111,0,2,2049,79,1793,6325,2049,68,1,97,18,2049,2849,1,6240,17,15,4,10,1,6312,2049,2259,3,10,6200,6342,171,114,101,111,114,100,101,114,0,1793,6347,2049,6276,10,1,6344,2049,2072,2049,6307,10,6331,6363,171,99,117,114,114,121,0,2049,1910,1793,6375,4,2049,1701,2049,1747,2049,1769,10,1,6367,2049,2072,10,6354,6388,171,100,111,101,115,0,2049,1575,4,2049,6363,2049,1557,2049,185,16,1,171,2049,1636,10,6380,6417,171,100,58,102,111,114,45,101,97,99,104,0,1,2,1793,6445,15,25,2049,2023,1793,6437,1793,6432,4,8,10,1,6429,2049,2072,10,1,6427,2049,2072,1,6421,7,10,1,6421,8,3,10,6403,6465,171,100,58,108,111,111,107,117,112,45,120,116,0,1,0,4,1793,6500,2049,2023,2049,185,15,11,1793,6489,4,1793,6484,2049,2035,10,1,6481,2049,2072,10,1,6478,1793,6495,3,10,1,6493,2049,122,10,1,6470,2049,6417,3,10,6450,6514,171,99,104,97,114,0,1,110,1793,6523,2049,4709,2049,3327,10,1,6518,2049,2512,1,116,1793,6536,2049,4694,2049,3327,10,1,6531,2049,2512,2049,3327,10,6506,6553,171,115,116,114,105,110,103,0,2049,68,25,2049,3327,1,6553,7,10,6543,6570,171,116,121,112,101,0,1,99,1793,6578,4,2049,3327,10,1,6574,2049,2512,1,115,1793,6591,4,2049,6553,3,10,1,6586,2049,2512,1,110,1793,6606,4,2049,5773,2049,6553,3,10,1,6599,2049,2512,3,10,6562,6622,171,104,97,110,100,108,101,0,1,92,1793,6631,2049,68,2049,6514,10,1,6626,2049,2512,1,37,1793,6644,2049,68,2049,6570,10,1,6639,2049,2512,2049,3327,10,6450,6668,171,115,58,119,105,116,104,45,102,111,114,109,97,116,0,1793,6697,2049,3625,1793,6692,2049,3419,1793,6687,2049,68,25,2049,6622,1,6678,7,10,1,6678,8,3,10,1,6674,2049,2084,10,1,6670,2049,3443,10,6651,6713,171,115,58,99,111,110,115,116,0,1793,6718,2049,3666,10,1,6715,2049,2072,2049,1977,10,6702,6739,171,115,101,116,58,108,101,110,103,116,104,0,15,10,6725,6761,171,115,101,116,58,102,114,111,109,45,114,101,115,117,108,116,115,0,2049,1682,1793,6767,8,10,1,6765,2049,2072,2049,1682,4,18,2049,1910,1793,6792,2,2049,132,1793,6787,2049,132,10,1,6784,2049,2259,10,1,6779,2049,2072,10,6741,6816,171,115,101,116,58,102,114,111,109,45,115,116,114,105,110,103,0,2049,3762,1793,6828,1793,6823,10,1,6822,2049,3968,10,1,6820,2049,6363,2049,6761,10,6797,6840,158,81,0,0,6797,6857,171,115,101,116,58,102,111,114,45,101,97,99,104,0,1,6840,1793,6887,4097,6840,2049,68,1793,6881,2049,68,4,1793,6876,3841,6840,8,10,1,6872,2049,2072,10,1,6867,2049,2259,3,10,1,6861,2049,3037,10,6841,6903,171,115,101,116,58,100,117,112,0,2049,1910,1793,6921,2,15,2049,132,1793,6916,2049,132,10,1,6913,2049,6857,10,1,6907,2049,2072,10,6892,6940,171,115,101,116,58,102,105,108,116,101,114,0,1793,6969,2049,2006,1793,6948,8,10,1,6946,2049,2072,4,1793,6958,2049,132,10,1,6955,1793,6964,3,10,1,6962,2049,122,10,1,6942,2049,6363,2049,1910,1793,6985,2049,2006,15,2049,132,2049,6857,10,1,6977,2049,2072,2049,1910,2049,2006,18,2049,2862,2049,2006,16,10,6926,7005,158,70,0,0,6926,7023,171,115,101,116,58,99,111,110,116,97,105,110,115,63,0,1,7005,2049,3018,1793,7038,2049,2006,11,3841,7005,22,4097,7005,10,1,7029,2049,6857,3,3841,7005,10,7006,7070,171,115,101,116,58,99,111,110,116,97,105,110,115,45,115,116,114,105,110,103,63,0,1,7005,2049,3018,1793,7086,2049,2006,2049,104,3841,7005,22,4097,7005,10,1,7076,2049,6857,3,3841,7005,10,7046,7105,171,115,101,116,58,109,97,112,0,1793,7111,8,2049,132,10,1,7107,2049,6363,2049,1910,1793,7127,2049,2006,15,2049,132,2049,6857,10,1,7119,2049,2072,10,7094,7147,171,115,101,116,58,114,101,118,101,114,115,101,0,2049,1910,1793,7181,2049,68,1793,7159,17,2049,2862,10,1,7155,2049,2084,2,2049,132,1793,7175,2,15,2049,132,2049,2862,10,1,7168,2049,2259,3,10,1,7151,2049,2072,10,7132,7197,171,115,101,116,58,110,116,104,0,17,2049,2849,10,7186,7215,171,115,101,116,58,114,101,100,117,99,101,0,1793,7219,4,10,1,7217,2049,2072,2049,6857,10,7201,7232,158,73,48,0,0,0,0,7226,7241,158,73,49,0,0,0,0,7235,7250,158,73,50,0,0,0,0,7244,7259,158,73,51,0,0,0,0,7253,7272,171,111,112,99,111,100,101,0,2049,3640,46,46,0,1,7274,1793,7284,1,0,10,1,7281,2049,2558,2049,3640,108,105,0,1,7290,1793,7300,1,1,10,1,7297,2049,2558,2049,3640,100,117,0,1,7306,1793,7316,1,2,10,1,7313,2049,2558,2049,3640,100,114,0,1,7322,1793,7332,1,3,10,1,7329,2049,2558,2049,3640,115,119,0,1,7338,1793,7348,1,4,10,1,7345,2049,2558,2049,3640,112,117,0,1,7354,1793,7364,1,5,10,1,7361,2049,2558,2049,3640,112,111,0,1,7370,1793,7380,1,6,10,1,7377,2049,2558,2049,3640,106,117,0,1,7386,1793,7396,1,7,10,1,7393,2049,2558,2049,3640,99,97,0,1,7402,1793,7412,1,8,10,1,7409,2049,2558,2049,3640,99,99,0,1,7418,1793,7428,1,9,10,1,7425,2049,2558,2049,3640,114,101,0,1,7434,1793,7444,1,10,10,1,7441,2049,2558,2049,3640,101,113,0,1,7450,1793,7460,1,11,10,1,7457,2049,2558,2049,3640,110,101,0,1,7466,1793,7476,1,12,10,1,7473,2049,2558,2049,3640,108,116,0,1,7482,1793,7492,1,13,10,1,7489,2049,2558,2049,3640,103,116,0,1,7498,1793,7508,1,14,10,1,7505,2049,2558,2049,3640,102,101,0,1,7514,1793,7524,1,15,10,1,7521,2049,2558,2049,3640,115,116,0,1,7530,1793,7540,1,16,10,1,7537,2049,2558,2049,3640,97,100,0,1,7546,1793,7556,1,17,10,1,7553,2049,2558,2049,3640,115,117,0,1,7562,1793,7572,1,18,10,1,7569,2049,2558,2049,3640,109,117,0,1,7578,1793,7588,1,19,10,1,7585,2049,2558,2049,3640,100,105,0,1,7594,1793,7604,1,20,10,1,7601,2049,2558,2049,3640,97,110,0,1,7610,1793,7620,1,21,10,1,7617,2049,2558,2049,3640,111,114,0,1,7626,1793,7636,1,22,10,1,7633,2049,2558,2049,3640,120,111,0,1,7642,1793,7652,1,23,10,1,7649,2049,2558,2049,3640,115,104,0,1,7658,1793,7668,1,24,10,1,7665,2049,2558,2049,3640,122,114,0,1,7674,1793,7684,1,25,10,1,7681,2049,2558,2049,3640,101,110,0,1,7690,1793,7700,1,26,10,1,7697,2049,2558,3,1,0,10,7262,7716,171,112,97,99,107,0,1,7232,2049,7272,1,7241,2049,7272,1,7250,2049,7272,1,7259,2049,7272,1,-24,24,4,1,-16,24,17,4,1,-8,24,17,4,17,10,7201,7753,171,105,0,2,1,7232,1,2,2049,3111,1,2,17,2,1,7241,1,2,2049,3111,1,2,17,2,1,7250,1,2,2049,3111,1,2,17,1,7259,1,2,2049,3111,2049,7716,2049,132,10,7748,7799,171,100,0,2049,132,10,7794,7807,171,114,0,2049,224,2049,185,15,2049,132,10,7802,7822,183,97,115,123,0,3841,151,1,151,2049,3018,10,7815,7836,183,125,97,115,0,4097,151,10,7829,7855,171,99,117,114,114,101,110,116,45,108,105,110,101,0,2049,3512,1,1025,18,10,7839,7877,171,99,111,117,110,116,45,116,111,107,101,110,115,0,1793,7883,2049,5053,11,10,1,7879,2049,4031,2049,79,10,7861,7904,171,110,101,120,116,45,116,111,107,101,110,0,2049,5053,2049,6211,10,7890,7927,171,112,114,111,99,101,115,115,45,116,111,107,101,110,115,0,1793,7962,2049,7904,4,1793,7955,2,2049,79,2049,2399,1793,7944,2049,396,10,1,7941,1793,7950,3,10,1,7948,2049,122,10,1,7934,2049,2072,2049,2849,10,1,7929,2049,2259,2049,396,10,7829,7983,171,115,58,101,118,97,108,117,97,116,101,0,2049,7855,2049,4239,2049,7855,2,2049,7877,2049,7927,10,7969,8003,171,112,117,116,99,0,1000,10,7995,8011,171,110,108,0,2049,4709,2049,8003,10,8005,8022,171,115,112,0,2049,5053,2049,8003,10,8016,8034,171,116,97,98,0,2049,4694,2049,8003,10,8027,8047,171,112,117,116,115,0,1793,8052,2049,8003,10,1,8049,2049,3968,10,8039,8065,171,112,117,116,110,0,2049,5773,2049,8047,10,8057,8079,171,119,111,114,100,115,0,1793,8088,2049,189,2049,8047,2049,8022,10,1,8081,2049,6417,10,8070,8102,171,114,101,115,101,116,0,2049,1682,25,5,3,6,1,1,18,1,8104,7,10,8093,8129,171,100,117,109,112,45,115,116,97,99,107,0,2049,1682,25,3,5,2049,8129,6,2,2049,8065,2049,8022,10,8115,8151,171,70,82,69,69,0,2049,3512,1,1025,18,2049,1910,18,10,8143,8168,171,103,101,116,99,0,1001,10,8160,8184,171,110,58,116,111,45,102,108,111,97,116,0,1,0,-6000,10,8170,8202,171,115,58,116,111,45,102,108,111,97,116,0,1,1,-6000,10,8188,8221,171,102,58,116,111,45,115,116,114,105,110,103,0,2049,3625,2,1,2,-6000,10,8206,8235,171,102,58,43,0,1,3,-6000,10,8228,8246,171,102,58,45,0,1,4,-6000,10,8239,8257,171,102,58,42,0,1,5,-6000,10,8250,8268,171,102,58,47,0,1,6,-6000,10,8261,8283,171,102,58,102,108,111,111,114,0,1,7,-6000,10,8272,8296,171,102,58,101,113,63,0,1,8,-6000,10,8287,8310,171,102,58,45,101,113,63,0,1,9,-6000,10,8300,8323,171,102,58,108,116,63,0,1,10,-6000,10,8314,8336,171,102,58,103,116,63,0,1,11,-6000,10,8327,8351,171,102,58,100,101,112,116,104,0,1,12,-6000,10,8340,8364,171,102,58,100,117,112,0,1,13,-6000,10,8355,8378,171,102,58,100,114,111,112,0,1,14,-6000,10,8368,8392,171,102,58,115,119,97,112,0,1,15,-6000,10,8382,8406,171,102,58,111,118,101,114,0,2049,8221,2049,8364,2049,8202,2049,8392,10,8396,8425,171,102,58,116,117,99,107,0,2049,8392,2049,8406,10,8415,8445,171,102,58,112,111,115,105,116,105,118,101,63,0,1,0,2049,8184,2049,8336,10,8430,8467,171,102,58,110,101,103,97,116,105,118,101,63,0,1,0,2049,8184,2049,8323,10,8452,8486,171,102,58,110,101,103,97,116,101,0,1,-1,2049,8184,2049,8257,10,8474,8502,171,102,58,97,98,115,0,2049,8364,2049,8467,1793,8511,2049,8486,10,1,8508,2049,130,10,8493,8525,171,102,58,108,111,103,0,1,16,-6000,10,8516,8540,171,102,58,112,111,119,101,114,0,1,17,-6000,10,8529,8559,171,102,58,116,111,45,110,117,109,98,101,114,0,1,18,-6000,10,8544,8575,183,112,114,101,102,105,120,58,46,0,2049,1788,1793,8582,2049,3666,10,1,8579,1793,8589,2049,3599,10,1,8586,2049,122,1,8202,2049,171,10,8563,8606,171,112,117,116,102,0,2049,8221,2049,8047,10,8598,8625,171,103,111,112,104,101,114,58,103,101,116,0,-6200,10,8611,8639,171,115,121,115,58,97,114,103,99,0,-6100,10,8627,8653,171,115,121,115,58,97,114,103,118,0,2049,3625,4,-6101,10,8641,8673,171,117,110,105,120,58,115,121,115,116,101,109,0,-8000,10,8658,8688,171,117,110,105,120,58,102,111,114,107,0,-8001,10,8675,8703,171,117,110,105,120,58,101,120,105,116,0,-8002,10,8690,8720,171,117,110,105,120,58,103,101,116,112,105,100,0,-8003,10,8705,8736,171,117,110,105,120,58,101,120,101,99,48,0,-8004,10,8722,8752,171,117,110,105,120,58,101,120,101,99,49,0,-8005,10,8738,8768,171,117,110,105,120,58,101,120,101,99,50,0,-8006,10,8754,8784,171,117,110,105,120,58,101,120,101,99,51,0,-8007,10,8770,8799,171,117,110,105,120,58,119,97,105,116,0,-8008,10,8786,8814,171,117,110,105,120,58,107,105,108,108,0,-8009,10,8801,0,158,102,105,108,101,58,82,0,8816,1,158,102,105,108,101,58,87,0,8826,2,158,102,105,108,101,58,65,0,8836,3,158,102,105,108,101,58,82,43,0,8846,8870,171,102,105,108,101,58,111,112,101,110,0,118,10,8857,8886,171,102,105,108,101,58,99,108,111,115,101,0,119,10,8872,8901,171,102,105,108,101,58,114,101,97,100,0,120,10,8888,8917,171,102,105,108,101,58,119,114,105,116,101,0,121,10,8903,8932,171,102,105,108,101,58,116,101,108,108,0,122,10,8919,8947,171,102,105,108,101,58,115,101,101,107,0,123,10,8934,8962,171,102,105,108,101,58,115,105,122,101,0,124,10,8949,8979,171,102,105,108,101,58,100,101,108,101,116,101,0,125,10,8964,8995,171,102,105,108,101,58,102,108,117,115,104,0,126,10,8981,9013,171,102,105,108,101,58,101,120,105,115,116,115,63,0,1,0,2049,8870,2,2049,2399,1793,9027,2049,8886,2049,2289,10,1,9022,1793,9035,3,2049,2301,10,1,9031,2049,122,10,8997,9047,158,70,73,68,0,0,9040,9057,158,70,83,105,122,101,0,0,9048,9068,158,65,99,116,105,111,110,0,0,9058,9079,158,66,117,102,102,101,114,0,0,9069,9089,171,45,101,111,102,63,0,3841,9047,2049,8932,3841,9057,13,10,9080,9109,171,112,114,101,115,101,114,118,101,0,1,9047,1793,9124,1,9057,1793,9119,8,10,1,9117,2049,3037,10,1,9113,2049,3037,10,8997,9147,171,102,105,108,101,58,114,101,97,100,45,108,105,110,101,0,4097,9047,1793,9204,2049,1910,2,4097,9079,2049,3419,1793,9196,3841,9047,2049,8901,2,2049,3327,1793,9173,2049,4754,11,10,1,9169,1793,9181,2049,4709,11,10,1,9177,1793,9189,2049,4552,11,10,1,9185,2049,2136,22,22,10,1,9160,2049,2230,2049,3351,3,10,1,9151,2049,3443,3841,9079,10,9129,9233,171,102,105,108,101,58,102,111,114,45,101,97,99,104,45,108,105,110,101,0,1793,9270,4097,9068,1,0,2049,8870,4097,9047,3841,9047,2049,8962,4097,9057,1793,9261,3841,9047,2049,9147,3841,9068,8,2049,9089,10,1,9251,2049,2204,3841,9047,2049,8886,10,1,9235,2049,9109,10,9211,9282,158,70,73,68,0,0,9275,9291,158,83,105,122,101,0,0,9211,9306,171,102,105,108,101,58,115,108,117,114,112,0,1793,9342,1,0,2049,8870,4097,9282,2049,3419,3841,9282,2049,8962,4097,9291,3841,9291,1793,9333,3841,9282,2049,8901,2049,3327,10,1,9326,2049,2259,3841,9282,2049,8886,10,1,9308,2049,3443,10,0 }; +int32_t ngaImageCells = 9381; +int32_t ngaImage[] = { 1793,-1,9325,9380,201712,0,10,1,10,2,10,3,10,4,10,5,10,6,10,7,10,8,10,9,10,10,10,11,10,12,10,13,10,14,10,15,10,16,10,17,10,18,10,19,10,20,10,21,10,22,10,23,10,24,10,25,10,26,10,2049,10,1793,10,67502597,10,67502597,67502597,10,68223234,1,2575,85000450,1,656912,2049,68,25,459011,74,524546,74,302256641,1,10,168756239,17043713,1,1,2577,134284549,65,2049,84,85263883,2049,85,302056966,1,25,1793,89,33620739,0,10,2049,65,2049,79,524548,79,590092,101,25,524546,79,134284289,-1,89,100860677,10,3197,3206,268505089,121,120,135205121,121,10,101384453,0,9,10,134287105,3,71,659457,3,459023,132,2049,68,25,2049,132,1793,139,2049,139,117506307,0,132,0,524545,25,137,168820993,0,151,1642241,151,134283523,7,137,1793,132,7,524545,59,137,1793,132,16846593,151,166,165,1793,122,16846593,151,137,165,1793,122,7,10,659713,1,659713,2,659713,3,17108737,3,2,524559,132,2049,132,2049,132,2049,146,168820998,2,3182,1025,167841793,204,5,17826049,0,204,2,15,25,524546,189,134287105,205,104,2305,206,459023,214,134287361,205,209,659201,204,2049,68,25,84152833,48,286458116,10,459014,229,184618754,45,25,16974851,-1,168886532,1,134284289,1,238,134284289,0,229,660227,32,0,0,112,114,101,102,105,120,58,125,0,285278479,255,7,2576,524546,79,1641217,1,167838467,252,2049,268,2049,264,524545,255,224,17826050,254,0,2572,2563,2049,245,1793,158,459023,158,17760513,171,3,191,8,251727617,3,2,2049,185,268501264,-1,151,10,2049,224,2049,185,459023,158,285282049,3,2,16846593,151,-1,151,134283536,61,137,16846593,3,0,132,8,659201,3,524545,25,137,17043201,3,7,2049,137,2049,132,268505092,151,1642241,151,656131,659201,3,524545,7,137,2049,132,459009,19,137,1642241,151,117506307,55,137,1642241,151,117506307,15,137,1642241,151,117506307,17,137,1793,5,524546,185,134284303,187,1807,1025,1642241,254,285282049,376,1,459012,371,117509889,204,371,134287105,376,224,16845825,0,384,369,1793,122,17826050,376,274,8,117506305,377,387,122,0,9,177,100,117,112,0,404,11,177,100,114,111,112,0,411,13,177,115,119,97,112,0,419,21,177,99,97,108,108,0,427,27,177,101,113,63,0,435,29,177,45,101,113,63,0,442,31,177,108,116,63,0,450,33,177,103,116,63,0,457,35,177,102,101,116,99,104,0,464,37,177,115,116,111,114,101,0,473,39,177,43,0,482,41,177,45,0,487,43,177,42,0,492,45,177,47,109,111,100,0,497,47,177,97,110,100,0,505,49,177,111,114,0,512,51,177,120,111,114,0,518,53,177,115,104,105,102,116,0,525,359,183,112,117,115,104,0,534,364,183,112,111,112,0,542,354,183,48,59,0,549,68,171,102,101,116,99,104,45,110,101,120,116,0,555,71,171,115,116,111,114,101,45,110,101,120,116,0,569,245,171,115,58,116,111,45,110,117,109,98,101,114,0,583,104,171,115,58,101,113,63,0,598,79,171,115,58,108,101,110,103,116,104,0,607,122,171,99,104,111,111,115,101,0,619,130,171,105,102,0,629,128,171,45,105,102,0,635,285,183,112,114,101,102,105,120,58,40,0,642,151,158,67,111,109,112,105,108,101,114,0,654,3,158,72,101,97,112,0,666,132,171,44,0,674,146,171,115,44,0,679,152,183,59,0,685,312,183,91,0,690,329,183,93,0,695,2,158,68,105,99,116,105,111,110,97,114,121,0,700,184,171,100,58,108,105,110,107,0,714,185,171,100,58,120,116,0,724,187,171,100,58,99,108,97,115,115,0,732,189,171,100,58,110,97,109,101,0,743,171,171,99,108,97,115,115,58,119,111,114,100,0,753,183,171,99,108,97,115,115,58,109,97,99,114,111,0,767,158,171,99,108,97,115,115,58,100,97,116,97,0,782,191,171,100,58,97,100,100,45,104,101,97,100,101,114,0,796,286,183,112,114,101,102,105,120,58,35,0,812,292,183,112,114,101,102,105,120,58,58,0,824,306,183,112,114,101,102,105,120,58,38,0,836,290,183,112,114,101,102,105,120,58,36,0,848,344,183,114,101,112,101,97,116,0,860,346,183,97,103,97,105,110,0,870,396,171,105,110,116,101,114,112,114,101,116,0,879,224,171,100,58,108,111,111,107,117,112,0,892,177,171,99,108,97,115,115,58,112,114,105,109,105,116,105,118,101,0,904,4,158,86,101,114,115,105,111,110,0,923,369,171,101,114,114,58,110,111,116,102,111,117,110,100,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,125,125,0,102,101,114,58,112,114,101,115,101,114,118,101,0,105,110,101,0,63,0,63,64,91,92,93,94,96,123,124,125,126,0,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,934,1543,171,69,79,77,0,1,-3,15,10,1536,1557,171,100,58,108,97,115,116,0,1,2,15,10,1547,1575,171,100,58,108,97,115,116,60,120,116,62,0,2049,1557,2049,185,15,10,1561,1598,171,100,58,108,97,115,116,60,99,108,97,115,115,62,0,2049,1557,2049,187,15,10,1581,1620,171,100,58,108,97,115,116,60,110,97,109,101,62,0,2049,1557,2049,189,10,1604,1636,171,114,101,99,108,97,115,115,0,2049,1557,2049,187,16,10,1625,1655,171,105,109,109,101,100,105,97,116,101,0,1,183,2049,1636,10,1642,1668,171,100,97,116,97,0,1,158,2049,1636,10,1660,1682,171,100,101,112,116,104,0,1,-1,15,10,1673,1701,171,99,111,109,112,105,108,101,58,108,105,116,0,1,1,2049,132,2049,132,10,1686,1724,171,99,111,109,112,105,108,101,58,106,117,109,112,0,1,1793,2049,132,2049,132,10,1708,1747,171,99,111,109,112,105,108,101,58,99,97,108,108,0,1,2049,2049,132,2049,132,10,1731,1769,171,99,111,109,112,105,108,101,58,114,101,116,0,1,10,2049,132,10,1754,1788,171,99,111,109,112,105,108,105,110,103,63,0,1,151,15,10,1774,1804,183,112,114,101,102,105,120,58,64,0,2049,224,2049,185,15,2049,1788,1793,1820,1,3841,2049,132,2049,132,10,1,1813,1793,1826,15,10,1,1824,2049,122,10,1792,1843,183,112,114,101,102,105,120,58,33,0,2049,224,2049,185,15,2049,1788,1793,1859,1,4097,2049,132,2049,132,10,1,1852,1793,1865,16,10,1,1863,2049,122,10,1831,1882,183,112,114,101,102,105,120,58,96,0,2049,1788,1793,1891,2049,245,2049,132,10,1,1886,1793,1897,3,10,1,1895,2049,122,10,1870,1910,171,104,101,114,101,0,3841,3,10,1902,1925,171,100,58,99,114,101,97,116,101,0,1,158,1,0,2049,191,2049,1910,2049,1557,2049,185,16,10,1913,1946,171,118,97,114,0,2049,1925,1,0,2049,132,10,1939,1963,171,118,97,114,60,110,62,0,2049,1925,2049,132,10,1953,1977,171,99,111,110,115,116,0,2049,1925,2049,1557,2049,185,16,10,1968,1993,171,116,117,99,107,0,2,5,4,6,10,1985,2006,171,111,118,101,114,0,5,2,6,4,10,1998,2023,171,100,117,112,45,112,97,105,114,0,2049,2006,2049,2006,10,2011,2035,171,110,105,112,0,4,3,10,2028,2051,171,100,114,111,112,45,112,97,105,114,0,3,3,10,2038,2062,171,63,100,117,112,0,2,25,10,2054,2072,171,100,105,112,0,4,5,8,6,10,2065,2084,171,115,105,112,0,5,2,6,4,1,21,2049,2072,10,2077,2099,171,98,105,0,1,2084,2049,2072,8,10,2093,2112,171,98,105,42,0,1,2072,2049,2072,8,10,2105,2125,171,98,105,64,0,2,2049,2112,10,2118,2136,171,116,114,105,0,1793,2145,1,2084,2049,2072,2049,2084,10,1,2138,2049,2072,8,10,2129,2159,171,116,114,105,42,0,1793,2176,1793,2169,4,1,2072,2049,2072,10,1,2163,2049,2072,2049,2072,10,1,2161,2049,2072,8,10,2151,2190,171,116,114,105,64,0,2,2,2049,2159,10,2182,2204,171,119,104,105,108,101,0,1793,2216,2,2049,2072,4,25,3,1,2206,7,10,1,2206,8,3,10,2195,2230,171,117,110,116,105,108,0,1793,2245,2,2049,2072,4,1,-1,23,25,3,1,2232,7,10,1,2232,8,3,10,2221,2259,171,116,105,109,101,115,0,4,1793,2276,25,1,1,18,5,1,21,2049,2084,6,1,2262,7,10,1,2262,8,3,10,2250,2289,171,84,82,85,69,0,1,-1,10,2281,2301,171,70,65,76,83,69,0,1,0,10,2292,2313,171,108,116,101,113,63,0,2049,2023,11,1793,2320,13,10,1,2318,2049,2072,22,10,2304,2335,171,103,116,101,113,63,0,2049,2023,11,1793,2342,14,10,1,2340,2049,2072,22,10,2326,2357,171,110,58,77,65,88,0,1,2147483647,10,2348,2369,171,110,58,77,73,78,0,1,-2147483648,10,2360,2383,171,110,58,122,101,114,111,63,0,1,0,11,10,2372,2399,171,110,58,45,122,101,114,111,63,0,1,0,12,10,2387,2418,171,110,58,110,101,103,97,116,105,118,101,63,0,1,0,13,10,2403,2437,171,110,58,112,111,115,105,116,105,118,101,63,0,1,-1,14,10,2422,2465,171,110,58,115,116,114,105,99,116,108,121,45,112,111,115,105,116,105,118,101,63,0,1,0,14,10,2441,2480,171,110,58,101,118,101,110,63,0,1,2,20,3,2049,2383,10,2469,2497,171,110,58,111,100,100,63,0,1,2,20,3,2049,2399,10,2487,2512,171,99,97,115,101,0,1793,2518,2049,2006,11,10,1,2514,2049,2072,4,1793,2531,2049,2035,8,2049,2289,10,1,2525,1793,2539,3,2049,2301,10,1,2535,2049,122,25,6,3,3,10,2504,2558,171,115,58,99,97,115,101,0,1793,2565,2049,2006,2049,104,10,1,2560,2049,2072,4,1793,2578,2049,2035,8,2049,2289,10,1,2572,1793,2586,3,2049,2301,10,1,2582,2049,122,25,6,3,3,10,2548,2602,171,114,111,116,0,1793,2606,4,10,1,2604,2049,2072,4,10,2595,2620,171,116,111,114,115,0,6,6,2,5,4,5,10,2612,2632,171,47,0,20,2049,2035,10,2627,2643,171,109,111,100,0,20,3,10,2636,2653,171,110,111,116,0,1,-1,23,10,2646,2666,171,110,58,112,111,119,0,1,1,4,1793,2675,2049,2006,19,10,1,2671,2049,2259,2049,2035,10,2657,2694,171,110,58,110,101,103,97,116,101,0,1,-1,19,10,2682,2710,171,110,58,115,113,117,97,114,101,0,2,19,10,2698,2723,171,110,58,115,113,114,116,0,1,1,1793,2744,2049,2023,2049,2632,2049,2006,18,1,2,2049,2632,25,17,1,2727,7,10,1,2727,8,2049,2035,10,2713,2759,171,110,58,109,105,110,0,2049,2023,13,1793,2766,3,10,1,2764,1793,2773,2049,2035,10,1,2770,2049,122,10,2750,2787,171,110,58,109,97,120,0,2049,2023,14,1793,2794,3,10,1,2792,1793,2801,2049,2035,10,1,2798,2049,122,10,2778,2815,171,110,58,97,98,115,0,2,2049,2694,2049,2787,10,2806,2832,171,110,58,108,105,109,105,116,0,4,5,2049,2759,6,2049,2787,10,2821,2849,171,110,58,105,110,99,0,1,1,17,10,2840,2862,171,110,58,100,101,99,0,1,1,18,10,2853,2880,171,110,58,98,101,116,119,101,101,110,63,0,2049,2602,1793,2891,2049,2602,2049,2602,2049,2832,10,1,2884,2049,2084,11,10,2866,2909,171,118,58,105,110,99,45,98,121,0,1793,2914,15,17,10,1,2911,2049,2084,16,10,2897,2932,171,118,58,100,101,99,45,98,121,0,1793,2938,15,4,18,10,1,2934,2049,2084,16,10,2920,2953,171,118,58,105,110,99,0,1,1,4,2049,2909,10,2944,2968,171,118,58,100,101,99,0,1,1,4,2049,2932,10,2959,2985,171,118,58,108,105,109,105,116,0,5,5,2,15,6,6,2049,2832,4,16,10,2974,3004,171,118,58,111,110,0,2049,2289,4,16,10,2996,3018,171,118,58,111,102,102,0,2049,2301,4,16,10,3009,3037,171,118,58,112,114,101,115,101,114,118,101,0,4,2,15,1793,3051,1793,3046,8,10,1,3044,2049,2072,10,1,3042,2049,2072,4,16,10,3023,3067,171,97,108,108,111,116,0,1,3,2049,2909,10,3058,3090,171,118,58,117,112,100,97,116,101,45,117,115,105,110,103,0,4,1793,3097,15,4,8,10,1,3093,2049,2084,16,10,3072,3111,171,99,111,112,121,0,1793,3120,1,68,2049,2072,2049,71,10,1,3113,2049,2259,3,3,10,3103,3140,171,83,99,111,112,101,76,105,115,116,0,9244,9316,10,3127,3149,171,123,123,0,2049,1557,2,1,3140,2049,71,16,10,3143,3174,171,45,45,45,114,101,118,101,97,108,45,45,45,0,2049,1557,1,3140,2049,2849,16,10,3158,3188,171,125,125,0,1,3140,2049,68,4,15,11,1793,3202,3841,3140,4097,2,10,1,3197,1793,3232,3841,3140,1793,3227,1,2,15,2,15,1,3140,2049,2849,15,12,25,3,1,3212,7,10,1,3210,8,16,10,1,3206,2049,122,10,3182,3247,158,66,117,102,102,101,114,0,0,10,3237,3256,158,80,116,114,0,0,10,3249,3271,171,116,101,114,109,105,110,97,116,101,0,1,0,3841,3256,16,10,3182,3293,171,98,117,102,102,101,114,58,115,116,97,114,116,0,3841,3247,10,3277,3310,171,98,117,102,102,101,114,58,101,110,100,0,3841,3256,10,3296,3327,171,98,117,102,102,101,114,58,97,100,100,0,2049,3310,16,1,3256,2049,2953,2049,3271,10,3313,3351,171,98,117,102,102,101,114,58,103,101,116,0,1,3256,2049,2968,2049,3310,15,2049,3271,10,3337,3377,171,98,117,102,102,101,114,58,101,109,112,116,121,0,2049,3293,4097,3256,2049,3271,10,3361,3399,171,98,117,102,102,101,114,58,115,105,122,101,0,2049,3310,2049,3293,18,10,3384,3419,171,98,117,102,102,101,114,58,115,101,116,0,4097,3247,2049,3377,10,3405,3443,171,98,117,102,102,101,114,58,112,114,101,115,101,114,118,101,0,3841,3247,3841,3256,1793,3460,1793,3453,8,10,1,3451,2049,2072,4097,3247,10,1,3449,2049,2072,4097,3256,10,3424,3482,158,84,101,109,112,83,116,114,105,110,103,115,0,32,3467,3500,158,84,101,109,112,83,116,114,105,110,103,77,97,120,0,512,3483,3512,171,83,84,82,73,78,71,83,0,2049,1543,3841,3482,3841,3500,19,18,10,3501,3534,158,115,58,67,117,114,114,101,110,116,0,10,10,3521,3549,171,115,58,112,111,105,110,116,101,114,0,3841,3534,3841,3500,19,2049,3512,17,10,3536,3568,171,115,58,110,101,120,116,0,1,3534,2049,2953,3841,3534,3841,3482,11,1793,3584,1,0,4097,3534,10,1,3579,2049,130,10,3501,3599,171,115,58,116,101,109,112,0,2,2049,79,2049,2849,2049,3549,4,2049,3111,2049,3549,2049,3568,10,3589,3625,171,115,58,101,109,112,116,121,0,2049,3549,2049,3568,10,3614,3640,171,115,58,115,107,105,112,0,6,1793,3648,2049,68,2049,2399,10,1,3643,2049,2204,2049,2862,5,10,3630,3666,171,115,58,107,101,101,112,0,2049,1788,1793,3675,1,3640,2049,171,10,1,3670,2049,130,2049,1910,1793,3686,2049,146,10,1,3683,2049,2072,2049,158,10,3656,3705,183,112,114,101,102,105,120,58,39,0,2049,1788,1793,3712,2049,3666,10,1,3709,1793,3719,2049,3599,10,1,3716,2049,122,10,3693,3734,171,115,58,99,104,111,112,0,2049,3599,2,2049,79,2049,2006,17,2049,2862,1,0,4,16,10,3724,3762,171,115,58,114,101,118,101,114,115,101,0,1793,3804,2,2049,3599,2049,3419,1,79,1793,3780,2,2049,79,17,2049,2862,10,1,3773,2049,2099,4,1793,3794,2,15,2049,3327,2049,2862,10,1,3787,2049,2259,3,2049,3293,2049,3599,10,1,3764,2049,3443,10,3749,3824,171,115,58,116,114,105,109,45,108,101,102,116,0,2049,3599,1793,3849,2049,68,1793,3836,1,32,11,10,1,3832,1793,3843,2049,2383,10,1,3840,2049,2099,21,10,1,3828,2049,2204,2049,2862,10,3809,3872,171,115,58,116,114,105,109,45,114,105,103,104,116,0,2049,3599,2049,3762,2049,3824,2049,3762,10,3856,3891,171,115,58,116,114,105,109,0,2049,3872,2049,3824,10,3881,3909,171,115,58,112,114,101,112,101,110,100,0,2049,3599,1793,3933,2,2049,79,17,1793,3925,2,2049,79,2049,2849,10,1,3919,2049,2072,4,2049,3111,10,1,3913,2049,2084,10,3896,3950,171,115,58,97,112,112,101,110,100,0,4,2049,3909,10,3938,3968,171,115,58,102,111,114,45,101,97,99,104,0,1793,4013,2049,2006,15,25,3,2049,2023,1793,3996,1793,3991,1793,3985,15,10,1,3983,2049,2072,8,10,1,3981,2049,2072,10,1,3979,2049,2072,1793,4005,2049,2849,10,1,4002,2049,2072,1,3970,7,10,1,3970,8,2049,2051,10,3954,4031,171,115,58,102,105,108,116,101,114,0,1793,4068,2049,3625,2049,3419,4,1793,4060,2049,2023,4,8,1793,4049,2049,3327,10,1,4046,1793,4055,3,10,1,4053,2049,122,10,1,4040,2049,3968,3,2049,3293,10,1,4033,2049,3443,10,4019,4082,171,115,58,109,97,112,0,1793,4105,2049,3625,2049,3419,4,1793,4097,2049,2006,8,2049,3327,10,1,4091,2049,3968,3,2049,3293,10,1,4084,2049,3443,10,4073,4122,171,115,58,115,117,98,115,116,114,0,1793,4128,17,2049,3625,10,1,4124,2049,2072,1793,4146,2049,2006,1793,4141,2049,3111,10,1,4138,2049,2072,10,1,4134,2049,2084,2049,2006,1793,4160,17,1,0,4,16,10,1,4154,2049,2072,10,4110,4176,171,115,58,114,105,103,104,116,0,2049,2006,2049,79,2049,2006,18,4,2049,4122,10,4165,4197,171,115,58,108,101,102,116,0,1,0,4,2049,4122,10,4187,4213,171,115,58,104,97,115,104,0,1,5381,4,1793,4224,4,1,33,19,17,10,1,4218,2049,3968,10,4203,4239,171,115,58,99,111,112,121,0,2049,2006,2049,79,2049,2849,2049,3111,10,4229,4260,171,115,58,68,73,71,73,84,83,0,2049,3640,48,49,50,51,52,53,54,55,56,57,0,1,4262,10,4248,4297,171,115,58,65,83,67,73,73,45,76,79,87,69,82,67,65,83,69,0,2049,3640,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,0,1,4299,10,4276,4350,171,115,58,65,83,67,73,73,45,85,80,80,69,82,67,65,83,69,0,2049,3640,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,0,1,4352,10,4329,4401,171,115,58,65,83,67,73,73,45,76,69,84,84,69,82,83,0,2049,3640,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,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,0,1,4403,10,4382,4476,171,115,58,80,85,78,67,84,85,65,84,73,79,78,0,2049,3640,95,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,58,59,60,61,62,63,64,91,92,93,94,96,123,124,125,126,0,1,4478,1,95,2049,2006,16,10,4459,4535,158,115,58,87,72,73,84,69,83,80,65,67,69,0,9,10,13,0,4519,4552,171,65,83,67,73,73,58,78,85,76,0,1,0,10,4539,4568,171,65,83,67,73,73,58,83,79,72,0,1,1,10,4555,4584,171,65,83,67,73,73,58,83,84,88,0,1,2,10,4571,4600,171,65,83,67,73,73,58,69,84,88,0,1,3,10,4587,4616,171,65,83,67,73,73,58,69,79,84,0,1,4,10,4603,4632,171,65,83,67,73,73,58,69,78,81,0,1,5,10,4619,4648,171,65,83,67,73,73,58,65,67,75,0,1,6,10,4635,4664,171,65,83,67,73,73,58,66,69,76,0,1,7,10,4651,4679,171,65,83,67,73,73,58,66,83,0,1,8,10,4667,4694,171,65,83,67,73,73,58,72,84,0,1,9,10,4682,4709,171,65,83,67,73,73,58,76,70,0,1,10,10,4697,4724,171,65,83,67,73,73,58,86,84,0,1,11,10,4712,4739,171,65,83,67,73,73,58,70,70,0,1,12,10,4727,4754,171,65,83,67,73,73,58,67,82,0,1,13,10,4742,4769,171,65,83,67,73,73,58,83,79,0,1,14,10,4757,4784,171,65,83,67,73,73,58,83,73,0,1,15,10,4772,4800,171,65,83,67,73,73,58,68,76,69,0,1,16,10,4787,4816,171,65,83,67,73,73,58,68,67,49,0,1,17,10,4803,4832,171,65,83,67,73,73,58,68,67,50,0,1,18,10,4819,4848,171,65,83,67,73,73,58,68,67,51,0,1,19,10,4835,4864,171,65,83,67,73,73,58,68,67,52,0,1,20,10,4851,4880,171,65,83,67,73,73,58,78,65,75,0,1,21,10,4867,4896,171,65,83,67,73,73,58,83,89,78,0,1,22,10,4883,4912,171,65,83,67,73,73,58,69,84,66,0,1,23,10,4899,4928,171,65,83,67,73,73,58,67,65,78,0,1,24,10,4915,4943,171,65,83,67,73,73,58,69,77,0,1,25,10,4931,4959,171,65,83,67,73,73,58,83,85,66,0,1,26,10,4946,4975,171,65,83,67,73,73,58,69,83,67,0,1,27,10,4962,4990,171,65,83,67,73,73,58,70,83,0,1,28,10,4978,5005,171,65,83,67,73,73,58,71,83,0,1,29,10,4993,5020,171,65,83,67,73,73,58,82,83,0,1,30,10,5008,5035,171,65,83,67,73,73,58,85,83,0,1,31,10,5023,5053,171,65,83,67,73,73,58,83,80,65,67,69,0,1,32,10,5038,5069,171,65,83,67,73,73,58,68,69,76,0,1,127,10,5056,5085,171,99,58,108,101,116,116,101,114,63,0,1,65,1,122,2049,2880,10,5072,5108,171,99,58,108,111,119,101,114,99,97,115,101,63,0,1,97,1,122,2049,2880,10,5092,5131,171,99,58,117,112,112,101,114,99,97,115,101,63,0,1,65,1,90,2049,2880,10,5115,5150,171,99,58,100,105,103,105,116,63,0,1,48,1,57,2049,2880,10,5138,5174,171,99,58,119,104,105,116,101,115,112,97,99,101,63,0,2049,5053,1793,5181,2049,2289,10,1,5178,2049,2512,2049,4694,1793,5192,2049,2289,10,1,5189,2049,2512,2049,4709,1793,5203,2049,2289,10,1,5200,2049,2512,2049,4754,1793,5214,2049,2289,10,1,5211,2049,2512,3,2049,2301,10,5157,5236,171,99,58,118,105,115,105,98,108,101,63,0,1,31,1,126,2049,2880,10,5222,5255,171,99,58,118,111,119,101,108,63,0,1,97,1793,5262,2049,2289,10,1,5259,2049,2512,1,101,1793,5273,2049,2289,10,1,5270,2049,2512,1,105,1793,5284,2049,2289,10,1,5281,2049,2512,1,111,1793,5295,2049,2289,10,1,5292,2049,2512,1,117,1793,5306,2049,2289,10,1,5303,2049,2512,1,65,1793,5317,2049,2289,10,1,5314,2049,2512,1,69,1793,5328,2049,2289,10,1,5325,2049,2512,1,73,1793,5339,2049,2289,10,1,5336,2049,2512,1,79,1793,5350,2049,2289,10,1,5347,2049,2512,1,85,1793,5361,2049,2289,10,1,5358,2049,2512,3,2049,2301,10,5243,5385,171,99,58,99,111,110,115,111,110,97,110,116,63,0,2,2049,5085,1793,5395,2049,5255,2049,2653,10,1,5390,1793,5403,3,2049,2301,10,1,5399,2049,122,10,5369,5425,171,99,58,45,108,111,119,101,114,99,97,115,101,63,0,2049,5108,2049,2653,10,5408,5447,171,99,58,45,117,112,112,101,114,99,97,115,101,63,0,2049,5131,2049,2653,10,5430,5465,171,99,58,45,100,105,103,105,116,63,0,2049,5150,2049,2653,10,5452,5488,171,99,58,45,119,104,105,116,101,115,112,97,99,101,63,0,2049,5174,2049,2653,10,5470,5508,171,99,58,45,118,105,115,105,98,108,101,63,0,2049,5236,2049,2653,10,5493,5526,171,99,58,45,118,111,119,101,108,63,0,2049,5255,2049,2653,10,5513,5548,171,99,58,45,99,111,110,115,111,110,97,110,116,63,0,2049,5385,2049,2653,10,5531,5567,171,99,58,116,111,45,117,112,112,101,114,0,2,2049,5108,25,3,2049,5053,18,10,5553,5590,171,99,58,116,111,45,108,111,119,101,114,0,2,2049,5131,25,3,2049,5053,17,10,5576,5616,171,99,58,116,111,103,103,108,101,45,99,97,115,101,0,2,2049,5108,1793,5624,2049,5567,10,1,5621,1793,5631,2049,5590,10,1,5628,2049,122,10,5599,5651,171,99,58,116,111,45,115,116,114,105,110,103,0,2049,3640,46,0,1,5653,2049,3599,1793,5663,16,10,1,5661,2049,2084,10,5636,5682,171,115,58,116,111,45,117,112,112,101,114,0,1793,5687,2049,5567,10,1,5684,2049,4082,10,5668,5706,171,115,58,116,111,45,108,111,119,101,114,0,1793,5711,2049,5590,10,1,5708,2049,4082,10,5692,5725,158,86,97,108,117,101,0,0,5716,5737,171,99,111,114,114,101,99,116,0,2,1,48,13,1793,5753,1,48,2049,2006,18,1,2,19,17,10,1,5743,2049,130,10,5692,5773,171,110,58,116,111,45,115,116,114,105,110,103,0,1793,5828,2049,1910,2049,3419,2,4097,5725,2049,2815,1793,5801,1,10,20,4,1,48,17,2049,5737,2049,3327,2,2049,2399,10,1,5786,2049,2204,3,3841,5725,2049,2418,1793,5817,1,45,2049,3327,10,1,5812,2049,130,2049,3293,2049,3762,2049,3599,10,1,5775,2049,3443,10,5758,5855,158,82,101,119,114,105,116,101,85,110,100,101,114,115,99,111,114,101,115,0,-1,5833,5863,171,115,117,98,0,1,95,1793,5870,2049,5053,10,1,5867,2049,2512,10,5856,5886,171,114,101,119,114,105,116,101,0,3841,5855,1793,5900,1793,5895,2049,5863,10,1,5892,2049,4082,10,1,5890,2049,130,1,3705,8,10,5833,5920,183,112,114,101,102,105,120,58,39,0,2049,5886,10,5908,5937,171,115,58,105,110,100,101,120,45,111,102,0,4,1793,5961,2049,68,25,4,1793,5950,2049,2006,12,10,1,5946,2049,2072,4,25,3,1,5940,7,10,1,5940,2049,2084,1793,5973,18,2049,2862,2049,2035,10,1,5967,2049,2084,2049,79,2049,2006,11,1793,5988,3,1,-1,10,1,5984,2049,130,10,5923,6013,171,115,58,99,111,110,116,97,105,110,115,45,99,104,97,114,63,0,2049,5937,1,-1,12,10,5993,6026,158,83,114,99,0,0,6019,6034,158,84,97,114,0,0,6027,6042,158,80,97,100,0,0,6035,6048,158,73,0,0,6043,6054,158,70,0,0,6049,6068,171,116,101,114,109,105,110,97,116,101,0,1,0,3841,6042,3841,6034,2049,79,17,16,10,6055,6090,171,101,120,116,114,97,99,116,0,3841,6026,3841,6048,17,3841,6042,3841,6034,2049,79,2049,3111,10,6079,6115,171,99,111,109,112,97,114,101,0,3841,6042,3841,6034,2049,104,3841,6054,22,4097,6054,10,6104,6135,171,110,101,120,116,0,1,6048,2049,2953,10,5993,6162,171,115,58,99,111,110,116,97,105,110,115,45,115,116,114,105,110,103,63,0,4097,6034,4097,6026,2049,3625,4097,6042,1,0,4097,6048,1,0,4097,6054,3841,6026,2049,79,1793,6193,2049,6090,2049,6068,2049,6115,2049,6135,10,1,6184,2049,2259,3841,6054,10,6140,6211,171,115,58,115,112,108,105,116,0,2049,2023,2049,5937,2049,2035,2049,2023,2049,4197,1793,6225,17,10,1,6223,2049,2072,10,6200,6240,158,86,97,108,117,101,115,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6230,6276,171,102,114,111,109,0,2049,79,2,1793,6295,1793,6288,1,6240,17,16,10,1,6283,2049,2084,2049,2862,10,1,6281,2049,2259,3,10,6268,6307,171,116,111,0,2,2049,79,1793,6325,2049,68,1,97,18,2049,2849,1,6240,17,15,4,10,1,6312,2049,2259,3,10,6200,6342,171,114,101,111,114,100,101,114,0,1793,6347,2049,6276,10,1,6344,2049,2072,2049,6307,10,6331,6363,171,99,117,114,114,121,0,2049,1910,1793,6375,4,2049,1701,2049,1747,2049,1769,10,1,6367,2049,2072,10,6354,6388,171,100,111,101,115,0,2049,1575,4,2049,6363,2049,1557,2049,185,16,1,171,2049,1636,10,6380,6417,171,100,58,102,111,114,45,101,97,99,104,0,1,2,1793,6445,15,25,2049,2023,1793,6437,1793,6432,4,8,10,1,6429,2049,2072,10,1,6427,2049,2072,1,6421,7,10,1,6421,8,3,10,6403,6465,171,100,58,108,111,111,107,117,112,45,120,116,0,1,0,4,1793,6500,2049,2023,2049,185,15,11,1793,6489,4,1793,6484,2049,2035,10,1,6481,2049,2072,10,1,6478,1793,6495,3,10,1,6493,2049,122,10,1,6470,2049,6417,3,10,6450,6514,171,99,104,97,114,0,1,110,1793,6523,2049,4709,2049,3327,10,1,6518,2049,2512,1,116,1793,6536,2049,4694,2049,3327,10,1,6531,2049,2512,2049,3327,10,6506,6553,171,115,116,114,105,110,103,0,2049,68,25,2049,3327,1,6553,7,10,6543,6570,171,116,121,112,101,0,1,99,1793,6578,4,2049,3327,10,1,6574,2049,2512,1,115,1793,6591,4,2049,6553,3,10,1,6586,2049,2512,1,110,1793,6606,4,2049,5773,2049,6553,3,10,1,6599,2049,2512,3,10,6562,6622,171,104,97,110,100,108,101,0,1,92,1793,6631,2049,68,2049,6514,10,1,6626,2049,2512,1,37,1793,6644,2049,68,2049,6570,10,1,6639,2049,2512,2049,3327,10,6450,6668,171,115,58,119,105,116,104,45,102,111,114,109,97,116,0,1793,6697,2049,3625,1793,6692,2049,3419,1793,6687,2049,68,25,2049,6622,1,6678,7,10,1,6678,8,3,10,1,6674,2049,2084,10,1,6670,2049,3443,10,6651,6713,171,115,58,99,111,110,115,116,0,1793,6718,2049,3666,10,1,6715,2049,2072,2049,1977,10,6702,6739,171,115,101,116,58,108,101,110,103,116,104,0,15,10,6725,6761,171,115,101,116,58,102,114,111,109,45,114,101,115,117,108,116,115,0,2049,1682,1793,6767,8,10,1,6765,2049,2072,2049,1682,4,18,2049,1910,1793,6792,2,2049,132,1793,6787,2049,132,10,1,6784,2049,2259,10,1,6779,2049,2072,10,6741,6816,171,115,101,116,58,102,114,111,109,45,115,116,114,105,110,103,0,2049,3762,1793,6828,1793,6823,10,1,6822,2049,3968,10,1,6820,2049,6363,2049,6761,10,6797,6840,158,81,0,0,6797,6857,171,115,101,116,58,102,111,114,45,101,97,99,104,0,1,6840,1793,6887,4097,6840,2049,68,1793,6881,2049,68,4,1793,6876,3841,6840,8,10,1,6872,2049,2072,10,1,6867,2049,2259,3,10,1,6861,2049,3037,10,6841,6903,171,115,101,116,58,100,117,112,0,2049,1910,1793,6921,2,15,2049,132,1793,6916,2049,132,10,1,6913,2049,6857,10,1,6907,2049,2072,10,6892,6940,171,115,101,116,58,102,105,108,116,101,114,0,1793,6969,2049,2006,1793,6948,8,10,1,6946,2049,2072,4,1793,6958,2049,132,10,1,6955,1793,6964,3,10,1,6962,2049,122,10,1,6942,2049,6363,2049,1910,1793,6985,2049,2006,15,2049,132,2049,6857,10,1,6977,2049,2072,2049,1910,2049,2006,18,2049,2862,2049,2006,16,10,6926,7005,158,70,0,0,6926,7023,171,115,101,116,58,99,111,110,116,97,105,110,115,63,0,1,7005,2049,3018,1793,7038,2049,2006,11,3841,7005,22,4097,7005,10,1,7029,2049,6857,3,3841,7005,10,7006,7070,171,115,101,116,58,99,111,110,116,97,105,110,115,45,115,116,114,105,110,103,63,0,1,7005,2049,3018,1793,7086,2049,2006,2049,104,3841,7005,22,4097,7005,10,1,7076,2049,6857,3,3841,7005,10,7046,7105,171,115,101,116,58,109,97,112,0,1793,7111,8,2049,132,10,1,7107,2049,6363,2049,1910,1793,7127,2049,2006,15,2049,132,2049,6857,10,1,7119,2049,2072,10,7094,7147,171,115,101,116,58,114,101,118,101,114,115,101,0,2049,1910,1793,7181,2049,68,1793,7159,17,2049,2862,10,1,7155,2049,2084,2,2049,132,1793,7175,2,15,2049,132,2049,2862,10,1,7168,2049,2259,3,10,1,7151,2049,2072,10,7132,7197,171,115,101,116,58,110,116,104,0,17,2049,2849,10,7186,7215,171,115,101,116,58,114,101,100,117,99,101,0,1793,7219,4,10,1,7217,2049,2072,2049,6857,10,7201,7232,158,73,48,0,0,0,0,7226,7241,158,73,49,0,0,0,0,7235,7250,158,73,50,0,0,0,0,7244,7259,158,73,51,0,0,0,0,7253,7272,171,111,112,99,111,100,101,0,2049,3640,46,46,0,1,7274,1793,7284,1,0,10,1,7281,2049,2558,2049,3640,108,105,0,1,7290,1793,7300,1,1,10,1,7297,2049,2558,2049,3640,100,117,0,1,7306,1793,7316,1,2,10,1,7313,2049,2558,2049,3640,100,114,0,1,7322,1793,7332,1,3,10,1,7329,2049,2558,2049,3640,115,119,0,1,7338,1793,7348,1,4,10,1,7345,2049,2558,2049,3640,112,117,0,1,7354,1793,7364,1,5,10,1,7361,2049,2558,2049,3640,112,111,0,1,7370,1793,7380,1,6,10,1,7377,2049,2558,2049,3640,106,117,0,1,7386,1793,7396,1,7,10,1,7393,2049,2558,2049,3640,99,97,0,1,7402,1793,7412,1,8,10,1,7409,2049,2558,2049,3640,99,99,0,1,7418,1793,7428,1,9,10,1,7425,2049,2558,2049,3640,114,101,0,1,7434,1793,7444,1,10,10,1,7441,2049,2558,2049,3640,101,113,0,1,7450,1793,7460,1,11,10,1,7457,2049,2558,2049,3640,110,101,0,1,7466,1793,7476,1,12,10,1,7473,2049,2558,2049,3640,108,116,0,1,7482,1793,7492,1,13,10,1,7489,2049,2558,2049,3640,103,116,0,1,7498,1793,7508,1,14,10,1,7505,2049,2558,2049,3640,102,101,0,1,7514,1793,7524,1,15,10,1,7521,2049,2558,2049,3640,115,116,0,1,7530,1793,7540,1,16,10,1,7537,2049,2558,2049,3640,97,100,0,1,7546,1793,7556,1,17,10,1,7553,2049,2558,2049,3640,115,117,0,1,7562,1793,7572,1,18,10,1,7569,2049,2558,2049,3640,109,117,0,1,7578,1793,7588,1,19,10,1,7585,2049,2558,2049,3640,100,105,0,1,7594,1793,7604,1,20,10,1,7601,2049,2558,2049,3640,97,110,0,1,7610,1793,7620,1,21,10,1,7617,2049,2558,2049,3640,111,114,0,1,7626,1793,7636,1,22,10,1,7633,2049,2558,2049,3640,120,111,0,1,7642,1793,7652,1,23,10,1,7649,2049,2558,2049,3640,115,104,0,1,7658,1793,7668,1,24,10,1,7665,2049,2558,2049,3640,122,114,0,1,7674,1793,7684,1,25,10,1,7681,2049,2558,2049,3640,101,110,0,1,7690,1793,7700,1,26,10,1,7697,2049,2558,3,1,0,10,7262,7716,171,112,97,99,107,0,1,7232,2049,7272,1,7241,2049,7272,1,7250,2049,7272,1,7259,2049,7272,1,-24,24,4,1,-16,24,17,4,1,-8,24,17,4,17,10,7201,7753,171,105,0,2,1,7232,1,2,2049,3111,1,2,17,2,1,7241,1,2,2049,3111,1,2,17,2,1,7250,1,2,2049,3111,1,2,17,1,7259,1,2,2049,3111,2049,7716,2049,132,10,7748,7799,171,100,0,2049,132,10,7794,7807,171,114,0,2049,224,2049,185,15,2049,132,10,7802,7822,183,97,115,123,0,3841,151,1,151,2049,3018,10,7815,7836,183,125,97,115,0,4097,151,10,7829,7855,171,99,117,114,114,101,110,116,45,108,105,110,101,0,2049,3512,1,1025,18,10,7839,7877,171,99,111,117,110,116,45,116,111,107,101,110,115,0,1793,7883,2049,5053,11,10,1,7879,2049,4031,2049,79,10,7861,7904,171,110,101,120,116,45,116,111,107,101,110,0,2049,5053,2049,6211,10,7890,7927,171,112,114,111,99,101,115,115,45,116,111,107,101,110,115,0,1793,7962,2049,7904,4,1793,7955,2,2049,79,2049,2399,1793,7944,2049,396,10,1,7941,1793,7950,3,10,1,7948,2049,122,10,1,7934,2049,2072,2049,2849,10,1,7929,2049,2259,2049,396,10,7829,7983,171,115,58,101,118,97,108,117,97,116,101,0,2049,7855,2049,4239,2049,7855,2,2049,7877,2049,7927,10,7969,8003,171,112,117,116,99,0,1000,10,7995,8011,171,110,108,0,2049,4709,2049,8003,10,8005,8022,171,115,112,0,2049,5053,2049,8003,10,8016,8034,171,116,97,98,0,2049,4694,2049,8003,10,8027,8047,171,112,117,116,115,0,1793,8052,2049,8003,10,1,8049,2049,3968,10,8039,8065,171,112,117,116,110,0,2049,5773,2049,8047,10,8057,8079,171,119,111,114,100,115,0,1793,8088,2049,189,2049,8047,2049,8022,10,1,8081,2049,6417,10,8070,8102,171,114,101,115,101,116,0,2049,1682,25,5,3,6,1,1,18,1,8104,7,10,8093,8129,171,100,117,109,112,45,115,116,97,99,107,0,2049,1682,25,3,5,2049,8129,6,2,2049,8065,2049,8022,10,8115,8151,171,70,82,69,69,0,2049,3512,1,1025,18,2049,1910,18,10,8143,8168,171,103,101,116,99,0,1001,10,8160,8184,171,110,58,116,111,45,102,108,111,97,116,0,1,0,-6000,10,8170,8202,171,115,58,116,111,45,102,108,111,97,116,0,1,1,-6000,10,8188,8221,171,102,58,116,111,45,115,116,114,105,110,103,0,2049,3625,2,1,2,-6000,10,8206,8235,171,102,58,43,0,1,3,-6000,10,8228,8246,171,102,58,45,0,1,4,-6000,10,8239,8257,171,102,58,42,0,1,5,-6000,10,8250,8268,171,102,58,47,0,1,6,-6000,10,8261,8283,171,102,58,102,108,111,111,114,0,1,7,-6000,10,8272,8296,171,102,58,101,113,63,0,1,8,-6000,10,8287,8310,171,102,58,45,101,113,63,0,1,9,-6000,10,8300,8323,171,102,58,108,116,63,0,1,10,-6000,10,8314,8336,171,102,58,103,116,63,0,1,11,-6000,10,8327,8351,171,102,58,100,101,112,116,104,0,1,12,-6000,10,8340,8364,171,102,58,100,117,112,0,1,13,-6000,10,8355,8378,171,102,58,100,114,111,112,0,1,14,-6000,10,8368,8392,171,102,58,115,119,97,112,0,1,15,-6000,10,8382,8406,171,102,58,111,118,101,114,0,2049,8221,2049,8364,2049,8202,2049,8392,10,8396,8425,171,102,58,116,117,99,107,0,2049,8392,2049,8406,10,8415,8445,171,102,58,112,111,115,105,116,105,118,101,63,0,1,0,2049,8184,2049,8336,10,8430,8467,171,102,58,110,101,103,97,116,105,118,101,63,0,1,0,2049,8184,2049,8323,10,8452,8486,171,102,58,110,101,103,97,116,101,0,1,-1,2049,8184,2049,8257,10,8474,8502,171,102,58,97,98,115,0,2049,8364,2049,8467,1793,8511,2049,8486,10,1,8508,2049,130,10,8493,8525,171,102,58,108,111,103,0,1,16,-6000,10,8516,8540,171,102,58,112,111,119,101,114,0,1,17,-6000,10,8529,8559,171,102,58,116,111,45,110,117,109,98,101,114,0,1,18,-6000,10,8544,8575,183,112,114,101,102,105,120,58,46,0,2049,1788,1793,8582,2049,3666,10,1,8579,1793,8589,2049,3599,10,1,8586,2049,122,1,8202,2049,171,10,8563,8606,171,112,117,116,102,0,2049,8221,2049,8047,10,8598,8625,171,103,111,112,104,101,114,58,103,101,116,0,-6200,10,8611,8639,171,115,121,115,58,97,114,103,99,0,-6100,10,8627,8653,171,115,121,115,58,97,114,103,118,0,2049,3625,4,-6101,10,8641,8673,171,117,110,105,120,58,115,121,115,116,101,109,0,-8000,10,8658,8688,171,117,110,105,120,58,102,111,114,107,0,-8001,10,8675,8703,171,117,110,105,120,58,101,120,105,116,0,-8002,10,8690,8720,171,117,110,105,120,58,103,101,116,112,105,100,0,-8003,10,8705,8736,171,117,110,105,120,58,101,120,101,99,48,0,-8004,10,8722,8752,171,117,110,105,120,58,101,120,101,99,49,0,-8005,10,8738,8768,171,117,110,105,120,58,101,120,101,99,50,0,-8006,10,8754,8784,171,117,110,105,120,58,101,120,101,99,51,0,-8007,10,8770,8799,171,117,110,105,120,58,119,97,105,116,0,-8008,10,8786,8814,171,117,110,105,120,58,107,105,108,108,0,-8009,10,8801,8830,171,117,110,105,120,58,112,111,112,101,110,0,-8010,10,8816,8847,171,117,110,105,120,58,112,99,108,111,115,101,0,-8011,10,8832,0,158,102,105,108,101,58,82,0,8849,1,158,102,105,108,101,58,87,0,8859,2,158,102,105,108,101,58,65,0,8869,3,158,102,105,108,101,58,82,43,0,8879,8903,171,102,105,108,101,58,111,112,101,110,0,118,10,8890,8919,171,102,105,108,101,58,99,108,111,115,101,0,119,10,8905,8934,171,102,105,108,101,58,114,101,97,100,0,120,10,8921,8950,171,102,105,108,101,58,119,114,105,116,101,0,121,10,8936,8965,171,102,105,108,101,58,116,101,108,108,0,122,10,8952,8980,171,102,105,108,101,58,115,101,101,107,0,123,10,8967,8995,171,102,105,108,101,58,115,105,122,101,0,124,10,8982,9012,171,102,105,108,101,58,100,101,108,101,116,101,0,125,10,8997,9028,171,102,105,108,101,58,102,108,117,115,104,0,126,10,9014,9046,171,102,105,108,101,58,101,120,105,115,116,115,63,0,1,0,2049,8903,2,2049,2399,1793,9060,2049,8919,2049,2289,10,1,9055,1793,9068,3,2049,2301,10,1,9064,2049,122,10,9030,9080,158,70,73,68,0,0,9073,9090,158,70,83,105,122,101,0,0,9081,9101,158,65,99,116,105,111,110,0,0,9091,9112,158,66,117,102,102,101,114,0,0,9102,9122,171,45,101,111,102,63,0,3841,9080,2049,8965,3841,9090,13,10,9113,9142,171,112,114,101,115,101,114,118,101,0,1,9080,1793,9157,1,9090,1793,9152,8,10,1,9150,2049,3037,10,1,9146,2049,3037,10,9030,9180,171,102,105,108,101,58,114,101,97,100,45,108,105,110,101,0,4097,9080,1793,9237,2049,1910,2,4097,9112,2049,3419,1793,9229,3841,9080,2049,8934,2,2049,3327,1793,9206,2049,4754,11,10,1,9202,1793,9214,2049,4709,11,10,1,9210,1793,9222,2049,4552,11,10,1,9218,2049,2136,22,22,10,1,9193,2049,2230,2049,3351,3,10,1,9184,2049,3443,3841,9112,10,9162,9266,171,102,105,108,101,58,102,111,114,45,101,97,99,104,45,108,105,110,101,0,1793,9303,4097,9101,1,0,2049,8903,4097,9080,3841,9080,2049,8995,4097,9090,1793,9294,3841,9080,2049,9180,3841,9101,8,2049,9122,10,1,9284,2049,2204,3841,9080,2049,8919,10,1,9268,2049,9142,10,9244,9315,158,70,73,68,0,0,9308,9324,158,83,105,122,101,0,0,9244,9339,171,102,105,108,101,58,115,108,117,114,112,0,1793,9375,1,0,2049,8903,4097,9315,2049,3419,3841,9315,2049,8995,4097,9324,3841,9324,1793,9366,3841,9315,2049,8934,2049,3327,10,1,9359,2049,2259,3841,9315,2049,8919,10,1,9341,2049,3443,10,0 }; diff --git a/interfaces/rre.c b/interfaces/rre.c index 22799b8..7324027 100644 --- a/interfaces/rre.c +++ b/interfaces/rre.c @@ -318,6 +318,35 @@ void update_rx() { #define UNIX_EXEC3 -8007 #define UNIX_WAIT -8008 #define UNIX_KILL -8009 +#define UNIX_POPEN -8010 +#define UNIX_PCLOSE -8011 + +CELL unixOpenPipe() { + CELL slot, mode, name; + slot = ioGetFileHandle(); + mode = data[sp]; sp--; + name = data[sp]; sp--; + char *request = string_extract(name); + if (slot > 0) { + if (mode == 0) ioFileHandles[slot] = popen(request, "r"); + if (mode == 1) ioFileHandles[slot] = popen(request, "w"); + if (mode == 3) ioFileHandles[slot] = popen(request, "r+"); + } + if (ioFileHandles[slot] == NULL) { + ioFileHandles[slot] = 0; + slot = 0; + } + stack_push(slot); + return slot; +} + +CELL unixClosePipe() { + pclose(ioFileHandles[data[sp]]); + ioFileHandles[data[sp]] = 0; + sp--; + return 0; +} + void execute(int cell) { CELL a, b; @@ -382,6 +411,8 @@ void execute(int cell) { case UNIX_KILL: a = stack_pop(); kill(stack_pop(), a); break; + case UNIX_POPEN: unixOpenPipe(); break; + case UNIX_PCLOSE: unixClosePipe(); break; default: printf("Invalid instruction!\n"); printf("At %d, opcode %d\n", ip, opcode); exit(1); diff --git a/interfaces/rre.forth b/interfaces/rre.forth index 5987ca9..3d8811a 100644 --- a/interfaces/rre.forth +++ b/interfaces/rre.forth @@ -134,6 +134,11 @@ to send. :unix:kill (nn-) `-8009 ; ~~~ +~~~ +:unix:popen (sn-n) `-8010 ; +:unix:pclose (n-) `-8011 ; +~~~ + --------------------------------------------------------------- # File I/O