From 53dc8402600a1a62d963b0542f160d9855a11ce6 Mon Sep 17 00:00:00 2001 From: crc Date: Sun, 19 Nov 2017 01:04:22 +0000 Subject: [PATCH] add f:sin, f:tan, f:cos FossilOrigin-Name: 613582429fb75cee604f8a4e8402286a3cf76b561782a3dbb2156e0a19a3d0ff --- doc/Glossary.txt | 36 ++++++++++++++++++++++++++++++++++++ interfaces/image.c | 4 ++-- interfaces/rre.c | 21 +++++++++++++++++++++ interfaces/rre.forth | 3 +++ words.tsv | 3 +++ 5 files changed, 65 insertions(+), 2 deletions(-) diff --git a/doc/Glossary.txt b/doc/Glossary.txt index d42100d..0a7d8cb 100644 --- a/doc/Glossary.txt +++ b/doc/Glossary.txt @@ -1730,6 +1730,18 @@ Class Handler: class:word | Namespace: f | Interface Layer: rre ---------------------------------------------------------------- +f:cos + + Data: - + Addr: - + Float: f-f + +Return the cosine of a floating point number. + +Class Handler: class:word | Namespace: f | Interface Layer: rre + +---------------------------------------------------------------- + f:depth Data: -n @@ -1886,6 +1898,18 @@ Class Handler: class:word | Namespace: f | Interface Layer: rre ---------------------------------------------------------------- +f:sin + + Data: - + Addr: - + Float: f-f + +Return the sine of a floating point number. + +Class Handler: class:word | Namespace: f | Interface Layer: rre + +---------------------------------------------------------------- + f:swap Data: - @@ -1898,6 +1922,18 @@ Class Handler: class:word | Namespace: f | Interface Layer: rre ---------------------------------------------------------------- +f:tan + + Data: - + Addr: - + Float: f-f + +Return the tangent of a floating point number. + +Class Handler: class:word | Namespace: f | Interface Layer: rre + +---------------------------------------------------------------- + f:to-number Data: -n diff --git a/interfaces/image.c b/interfaces/image.c index 26af830..147ff11 100644 --- a/interfaces/image.c +++ b/interfaces/image.c @@ -1,3 +1,3 @@ #include -int32_t ngaImageCells = 10260; -int32_t ngaImage[] = { 1793,-1,10202,10259,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,105,110,0,0,101,116,0,109,0,0,118,101,0,53,44,95,72,101,97,112,95,64,95,0,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,9917,10162,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,29,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,2399,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,0,158,65,83,67,73,73,58,78,85,76,0,4539,1,158,65,83,67,73,73,58,83,79,72,0,4552,2,158,65,83,67,73,73,58,83,84,88,0,4565,3,158,65,83,67,73,73,58,69,84,88,0,4578,4,158,65,83,67,73,73,58,69,79,84,0,4591,5,158,65,83,67,73,73,58,69,78,81,0,4604,6,158,65,83,67,73,73,58,65,67,75,0,4617,7,158,65,83,67,73,73,58,66,69,76,0,4630,8,158,65,83,67,73,73,58,66,83,0,4643,9,158,65,83,67,73,73,58,72,84,0,4655,10,158,65,83,67,73,73,58,76,70,0,4667,11,158,65,83,67,73,73,58,86,84,0,4679,12,158,65,83,67,73,73,58,70,70,0,4691,13,158,65,83,67,73,73,58,67,82,0,4703,14,158,65,83,67,73,73,58,83,79,0,4715,15,158,65,83,67,73,73,58,83,73,0,4727,16,158,65,83,67,73,73,58,68,76,69,0,4739,17,158,65,83,67,73,73,58,68,67,49,0,4752,18,158,65,83,67,73,73,58,68,67,50,0,4765,19,158,65,83,67,73,73,58,68,67,51,0,4778,20,158,65,83,67,73,73,58,68,67,52,0,4791,21,158,65,83,67,73,73,58,78,65,75,0,4804,22,158,65,83,67,73,73,58,83,89,78,0,4817,23,158,65,83,67,73,73,58,69,84,66,0,4830,24,158,65,83,67,73,73,58,67,65,78,0,4843,25,158,65,83,67,73,73,58,69,77,0,4856,26,158,65,83,67,73,73,58,83,85,66,0,4868,27,158,65,83,67,73,73,58,69,83,67,0,4881,28,158,65,83,67,73,73,58,70,83,0,4894,29,158,65,83,67,73,73,58,71,83,0,4906,30,158,65,83,67,73,73,58,82,83,0,4918,31,158,65,83,67,73,73,58,85,83,0,4930,32,158,65,83,67,73,73,58,83,80,65,67,69,0,4942,127,158,65,83,67,73,73,58,68,69,76,0,4957,4983,171,99,58,108,101,116,116,101,114,63,0,1,65,1,122,2049,2880,10,4970,5006,171,99,58,108,111,119,101,114,99,97,115,101,63,0,1,97,1,122,2049,2880,10,4990,5029,171,99,58,117,112,112,101,114,99,97,115,101,63,0,1,65,1,90,2049,2880,10,5013,5048,171,99,58,100,105,103,105,116,63,0,1,48,1,57,2049,2880,10,5036,5072,171,99,58,119,104,105,116,101,115,112,97,99,101,63,0,1,32,1793,5079,2049,2289,10,1,5076,2049,2512,1,9,1793,5090,2049,2289,10,1,5087,2049,2512,1,10,1793,5101,2049,2289,10,1,5098,2049,2512,1,13,1793,5112,2049,2289,10,1,5109,2049,2512,3,2049,2301,10,5055,5134,171,99,58,118,105,115,105,98,108,101,63,0,1,31,1,126,2049,2880,10,5120,5153,171,99,58,118,111,119,101,108,63,0,1,97,1793,5160,2049,2289,10,1,5157,2049,2512,1,101,1793,5171,2049,2289,10,1,5168,2049,2512,1,105,1793,5182,2049,2289,10,1,5179,2049,2512,1,111,1793,5193,2049,2289,10,1,5190,2049,2512,1,117,1793,5204,2049,2289,10,1,5201,2049,2512,1,65,1793,5215,2049,2289,10,1,5212,2049,2512,1,69,1793,5226,2049,2289,10,1,5223,2049,2512,1,73,1793,5237,2049,2289,10,1,5234,2049,2512,1,79,1793,5248,2049,2289,10,1,5245,2049,2512,1,85,1793,5259,2049,2289,10,1,5256,2049,2512,3,2049,2301,10,5141,5283,171,99,58,99,111,110,115,111,110,97,110,116,63,0,2,2049,4983,1793,5293,2049,5153,2049,2653,10,1,5288,1793,5301,3,2049,2301,10,1,5297,2049,122,10,5267,5323,171,99,58,45,108,111,119,101,114,99,97,115,101,63,0,2049,5006,2049,2653,10,5306,5345,171,99,58,45,117,112,112,101,114,99,97,115,101,63,0,2049,5029,2049,2653,10,5328,5363,171,99,58,45,100,105,103,105,116,63,0,2049,5048,2049,2653,10,5350,5386,171,99,58,45,119,104,105,116,101,115,112,97,99,101,63,0,2049,5072,2049,2653,10,5368,5406,171,99,58,45,118,105,115,105,98,108,101,63,0,2049,5134,2049,2653,10,5391,5424,171,99,58,45,118,111,119,101,108,63,0,2049,5153,2049,2653,10,5411,5446,171,99,58,45,99,111,110,115,111,110,97,110,116,63,0,2049,5283,2049,2653,10,5429,5465,171,99,58,116,111,45,117,112,112,101,114,0,2,2049,5006,25,3,1,32,18,10,5451,5488,171,99,58,116,111,45,108,111,119,101,114,0,2,2049,5029,25,3,1,32,17,10,5474,5514,171,99,58,116,111,103,103,108,101,45,99,97,115,101,0,2,2049,5006,1793,5522,2049,5465,10,1,5519,1793,5529,2049,5488,10,1,5526,2049,122,10,5497,5549,171,99,58,116,111,45,115,116,114,105,110,103,0,2049,3640,46,0,1,5551,2049,3599,1793,5561,16,10,1,5559,2049,2084,10,5534,5580,171,115,58,116,111,45,117,112,112,101,114,0,1793,5585,2049,5465,10,1,5582,2049,4082,10,5566,5604,171,115,58,116,111,45,108,111,119,101,114,0,1793,5609,2049,5488,10,1,5606,2049,4082,10,5590,5623,158,86,97,108,117,101,0,0,5614,5635,171,99,111,114,114,101,99,116,0,2,1,48,13,1793,5651,1,48,2049,2006,18,1,2,19,17,10,1,5641,2049,130,10,5590,5671,171,110,58,116,111,45,115,116,114,105,110,103,0,1793,5726,2049,1910,2049,3419,2,4097,5623,2049,2815,1793,5699,1,10,20,4,1,48,17,2049,5635,2049,3327,2,2049,2399,10,1,5684,2049,2204,3,3841,5623,2049,2418,1793,5715,1,45,2049,3327,10,1,5710,2049,130,2049,3293,2049,3762,2049,3599,10,1,5673,2049,3443,10,5656,5753,158,82,101,119,114,105,116,101,85,110,100,101,114,115,99,111,114,101,115,0,-1,5731,5761,171,115,117,98,0,1,95,1793,5768,1,32,10,1,5765,2049,2512,10,5754,5784,171,114,101,119,114,105,116,101,0,3841,5753,1793,5798,1793,5793,2049,5761,10,1,5790,2049,4082,10,1,5788,2049,130,1,3705,8,10,5731,5818,183,112,114,101,102,105,120,58,39,0,2049,5784,10,5806,5835,171,115,58,105,110,100,101,120,45,111,102,0,4,1793,5859,2049,68,25,4,1793,5848,2049,2006,12,10,1,5844,2049,2072,4,25,3,1,5838,7,10,1,5838,2049,2084,1793,5871,18,2049,2862,2049,2035,10,1,5865,2049,2084,2049,79,2049,2006,11,1793,5886,3,1,-1,10,1,5882,2049,130,10,5821,5911,171,115,58,99,111,110,116,97,105,110,115,45,99,104,97,114,63,0,2049,5835,1,-1,12,10,5891,5924,158,83,114,99,0,0,5917,5932,158,84,97,114,0,0,5925,5940,158,80,97,100,0,0,5933,5946,158,73,0,0,5941,5952,158,70,0,0,5947,5959,158,65,116,0,0,5953,5973,171,116,101,114,109,105,110,97,116,101,0,1,0,3841,5940,3841,5932,2049,79,17,16,10,5960,5995,171,101,120,116,114,97,99,116,0,3841,5924,3841,5946,17,3841,5940,3841,5932,2049,79,2049,3111,10,5984,6020,171,99,111,109,112,97,114,101,0,3841,5940,3841,5932,2049,104,3841,5952,22,4097,5952,3841,5952,1793,6040,3841,5946,4097,5959,10,1,6035,2049,128,10,6009,6053,171,110,101,120,116,0,1,5946,2049,2953,10,5891,6080,171,115,58,99,111,110,116,97,105,110,115,45,115,116,114,105,110,103,63,0,4097,5932,4097,5924,2049,3625,4097,5940,1,0,4097,5946,1,0,4097,5952,3841,5924,2049,79,1793,6111,2049,5995,2049,5973,2049,6020,2049,6053,10,1,6102,2049,2259,3841,5952,10,6058,6139,171,115,58,105,110,100,101,120,45,111,102,45,115,116,114,105,110,103,0,4097,5932,4097,5924,2049,3625,4097,5940,1,0,4097,5946,1,0,4097,5952,1,-1,4097,5959,3841,5924,2049,79,1793,6174,2049,5995,2049,5973,2049,6020,2049,6053,10,1,6165,2049,2259,3841,5952,1793,6185,3841,5959,10,1,6182,1793,6192,1,-1,10,1,6189,2049,122,10,6118,6208,171,115,58,115,112,108,105,116,0,2049,2023,2049,5835,2049,2035,2049,2023,2049,4197,1793,6222,17,10,1,6220,2049,2072,10,6197,6248,171,115,58,115,112,108,105,116,45,111,110,45,115,116,114,105,110,103,0,2049,2023,2049,6139,2049,2849,2049,2035,2049,2023,2049,4197,1793,6264,17,10,1,6262,2049,2072,10,6227,6274,158,76,0,0,6227,6288,171,115,58,114,101,112,108,97,99,101,0,2049,2006,2049,79,4097,6274,1793,6303,2049,6248,4,3841,6274,17,10,1,6296,2049,2072,2049,3909,2049,3950,10,6275,6324,158,83,112,108,105,116,45,79,110,0,0,6312,6335,171,109,97,116,99,104,63,0,3841,6324,11,10,6325,6352,171,116,101,114,109,105,110,97,116,101,0,1,0,2049,2006,2049,2862,16,10,6339,6368,171,115,116,101,112,0,1793,6373,2049,2849,10,1,6370,2049,2072,2049,6335,1793,6387,2,2049,132,2049,6352,10,1,6381,2049,130,10,6275,6406,171,115,58,116,111,107,101,110,105,122,101,0,4097,6324,2049,3666,2049,1910,1,0,2049,132,1793,6433,2,2049,132,2,1793,6427,2049,6368,10,1,6424,2049,3968,3,10,1,6418,2049,2072,2049,1910,2049,2006,18,2049,2862,2049,2006,16,10,6392,6458,158,84,111,107,101,110,115,0,0,6448,6469,158,78,101,101,100,108,101,0,0,6459,6481,171,45,109,97,116,99,104,63,0,2,3841,6469,2049,6080,10,6470,6501,171,115,97,118,101,45,116,111,107,101,110,0,3841,6469,2049,6248,2049,3666,2049,3327,2049,2849,10,6487,6529,171,116,111,107,101,110,115,45,116,111,45,115,101,116,0,2049,1910,3841,6458,2049,3399,2,2049,132,1793,6545,2049,68,2049,132,10,1,6540,2049,2259,3,10,6392,6575,171,115,58,116,111,107,101,110,105,122,101,45,111,110,45,115,116,114,105,110,103,0,1793,6614,2049,3666,4097,6469,2049,1910,1,8192,17,4097,6458,3841,6458,2049,3419,1793,6604,2049,6481,25,3,2049,6501,1,6594,7,10,1,6594,8,2049,3666,2049,3327,2049,6529,10,1,6577,2049,3443,10,6551,6629,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,6619,6665,171,102,114,111,109,0,2049,79,2,1793,6684,1793,6677,1,6629,17,16,10,1,6672,2049,2084,2049,2862,10,1,6670,2049,2259,3,10,6657,6696,171,116,111,0,2,2049,79,1793,6714,2049,68,1,97,18,2049,2849,1,6629,17,15,4,10,1,6701,2049,2259,3,10,6551,6731,171,114,101,111,114,100,101,114,0,1793,6736,2049,6665,10,1,6733,2049,2072,2049,6696,10,6720,6752,171,99,117,114,114,121,0,2049,1910,1793,6764,4,2049,1701,2049,1747,2049,1769,10,1,6756,2049,2072,10,6743,6777,171,100,111,101,115,0,2049,1575,4,2049,6752,2049,1557,2049,185,16,1,171,2049,1636,10,6769,6806,171,100,58,102,111,114,45,101,97,99,104,0,1,2,1793,6834,15,25,2049,2023,1793,6826,1793,6821,4,8,10,1,6818,2049,2072,10,1,6816,2049,2072,1,6810,7,10,1,6810,8,3,10,6792,6854,171,100,58,108,111,111,107,117,112,45,120,116,0,1,0,4,1793,6889,2049,2023,2049,185,15,11,1793,6878,4,1793,6873,2049,2035,10,1,6870,2049,2072,10,1,6867,1793,6884,3,10,1,6882,2049,122,10,1,6859,2049,6806,3,10,6839,6903,171,99,104,97,114,0,1,32,1793,6912,1,95,2049,3327,10,1,6907,2049,2512,1,110,1793,6925,1,10,2049,3327,10,1,6920,2049,2512,1,116,1793,6938,1,9,2049,3327,10,1,6933,2049,2512,2049,3327,10,6895,6955,171,115,116,114,105,110,103,0,2049,68,25,2049,3327,1,6955,7,10,6945,6972,171,116,121,112,101,0,1,99,1793,6980,4,2049,3327,10,1,6976,2049,2512,1,115,1793,6993,4,2049,6955,3,10,1,6988,2049,2512,1,110,1793,7008,4,2049,5671,2049,6955,3,10,1,7001,2049,2512,3,10,6964,7024,171,104,97,110,100,108,101,0,1,92,1793,7033,2049,68,2049,6903,10,1,7028,2049,2512,1,37,1793,7046,2049,68,2049,6972,10,1,7041,2049,2512,2049,3327,10,6839,7070,171,115,58,119,105,116,104,45,102,111,114,109,97,116,0,1793,7099,2049,3625,1793,7094,2049,3419,1793,7089,2049,68,25,2049,7024,1,7080,7,10,1,7080,8,3,10,1,7076,2049,2084,10,1,7072,2049,3443,10,7053,7115,171,115,58,99,111,110,115,116,0,1793,7120,2049,3666,10,1,7117,2049,2072,2049,1977,10,7104,7141,171,115,101,116,58,108,101,110,103,116,104,0,15,10,7127,7163,171,115,101,116,58,102,114,111,109,45,114,101,115,117,108,116,115,0,2049,1682,1793,7169,8,10,1,7167,2049,2072,2049,1682,4,18,2049,1910,1793,7194,2,2049,132,1793,7189,2049,132,10,1,7186,2049,2259,10,1,7181,2049,2072,10,7143,7218,171,115,101,116,58,102,114,111,109,45,115,116,114,105,110,103,0,2049,3762,1793,7230,1793,7225,10,1,7224,2049,3968,10,1,7222,2049,6752,2049,7163,10,7199,7242,158,81,0,0,7199,7259,171,115,101,116,58,102,111,114,45,101,97,99,104,0,1,7242,1793,7289,4097,7242,2049,68,1793,7283,2049,68,4,1793,7278,3841,7242,8,10,1,7274,2049,2072,10,1,7269,2049,2259,3,10,1,7263,2049,3037,10,7243,7305,171,115,101,116,58,100,117,112,0,2049,1910,1793,7323,2,15,2049,132,1793,7318,2049,132,10,1,7315,2049,7259,10,1,7309,2049,2072,10,7294,7342,171,115,101,116,58,102,105,108,116,101,114,0,1793,7371,2049,2006,1793,7350,8,10,1,7348,2049,2072,4,1793,7360,2049,132,10,1,7357,1793,7366,3,10,1,7364,2049,122,10,1,7344,2049,6752,2049,1910,1793,7387,2049,2006,15,2049,132,2049,7259,10,1,7379,2049,2072,2049,1910,2049,2006,18,2049,2862,2049,2006,16,10,7328,7407,158,70,0,0,7328,7425,171,115,101,116,58,99,111,110,116,97,105,110,115,63,0,1,7407,2049,3018,1793,7440,2049,2006,11,3841,7407,22,4097,7407,10,1,7431,2049,7259,3,3841,7407,10,7408,7472,171,115,101,116,58,99,111,110,116,97,105,110,115,45,115,116,114,105,110,103,63,0,1,7407,2049,3018,1793,7488,2049,2006,2049,104,3841,7407,22,4097,7407,10,1,7478,2049,7259,3,3841,7407,10,7448,7507,171,115,101,116,58,109,97,112,0,1793,7513,8,2049,132,10,1,7509,2049,6752,2049,1910,1793,7529,2049,2006,15,2049,132,2049,7259,10,1,7521,2049,2072,10,7496,7549,171,115,101,116,58,114,101,118,101,114,115,101,0,2049,1910,1793,7583,2049,68,1793,7561,17,2049,2862,10,1,7557,2049,2084,2,2049,132,1793,7577,2,15,2049,132,2049,2862,10,1,7570,2049,2259,3,10,1,7553,2049,2072,10,7534,7599,171,115,101,116,58,110,116,104,0,17,2049,2849,10,7588,7617,171,115,101,116,58,114,101,100,117,99,101,0,1793,7621,4,10,1,7619,2049,2072,2049,7259,10,7603,7634,158,73,48,0,0,0,0,7628,7643,158,73,49,0,0,0,0,7637,7652,158,73,50,0,0,0,0,7646,7661,158,73,51,0,0,0,0,7655,7674,171,111,112,99,111,100,101,0,2049,3640,46,46,0,1,7676,1793,7686,1,0,10,1,7683,2049,2558,2049,3640,108,105,0,1,7692,1793,7702,1,1,10,1,7699,2049,2558,2049,3640,100,117,0,1,7708,1793,7718,1,2,10,1,7715,2049,2558,2049,3640,100,114,0,1,7724,1793,7734,1,3,10,1,7731,2049,2558,2049,3640,115,119,0,1,7740,1793,7750,1,4,10,1,7747,2049,2558,2049,3640,112,117,0,1,7756,1793,7766,1,5,10,1,7763,2049,2558,2049,3640,112,111,0,1,7772,1793,7782,1,6,10,1,7779,2049,2558,2049,3640,106,117,0,1,7788,1793,7798,1,7,10,1,7795,2049,2558,2049,3640,99,97,0,1,7804,1793,7814,1,8,10,1,7811,2049,2558,2049,3640,99,99,0,1,7820,1793,7830,1,9,10,1,7827,2049,2558,2049,3640,114,101,0,1,7836,1793,7846,1,10,10,1,7843,2049,2558,2049,3640,101,113,0,1,7852,1793,7862,1,11,10,1,7859,2049,2558,2049,3640,110,101,0,1,7868,1793,7878,1,12,10,1,7875,2049,2558,2049,3640,108,116,0,1,7884,1793,7894,1,13,10,1,7891,2049,2558,2049,3640,103,116,0,1,7900,1793,7910,1,14,10,1,7907,2049,2558,2049,3640,102,101,0,1,7916,1793,7926,1,15,10,1,7923,2049,2558,2049,3640,115,116,0,1,7932,1793,7942,1,16,10,1,7939,2049,2558,2049,3640,97,100,0,1,7948,1793,7958,1,17,10,1,7955,2049,2558,2049,3640,115,117,0,1,7964,1793,7974,1,18,10,1,7971,2049,2558,2049,3640,109,117,0,1,7980,1793,7990,1,19,10,1,7987,2049,2558,2049,3640,100,105,0,1,7996,1793,8006,1,20,10,1,8003,2049,2558,2049,3640,97,110,0,1,8012,1793,8022,1,21,10,1,8019,2049,2558,2049,3640,111,114,0,1,8028,1793,8038,1,22,10,1,8035,2049,2558,2049,3640,120,111,0,1,8044,1793,8054,1,23,10,1,8051,2049,2558,2049,3640,115,104,0,1,8060,1793,8070,1,24,10,1,8067,2049,2558,2049,3640,122,114,0,1,8076,1793,8086,1,25,10,1,8083,2049,2558,2049,3640,101,110,0,1,8092,1793,8102,1,26,10,1,8099,2049,2558,3,1,0,10,7664,8118,171,112,97,99,107,0,1,7634,2049,7674,1,7643,2049,7674,1,7652,2049,7674,1,7661,2049,7674,1,-24,24,4,1,-16,24,17,4,1,-8,24,17,4,17,10,7603,8155,171,105,0,2,1,7634,1,2,2049,3111,1,2,17,2,1,7643,1,2,2049,3111,1,2,17,2,1,7652,1,2,2049,3111,1,2,17,1,7661,1,2,2049,3111,2049,8118,2049,132,10,8150,8201,171,100,0,2049,132,10,8196,8209,171,114,0,2049,224,2049,185,15,2049,132,10,8204,8224,183,97,115,123,0,3841,151,1,151,2049,3018,10,8217,8238,183,125,97,115,0,4097,151,10,8231,8257,171,99,117,114,114,101,110,116,45,108,105,110,101,0,2049,3512,1,1025,18,10,8241,8279,171,99,111,117,110,116,45,116,111,107,101,110,115,0,1793,8285,1,32,11,10,1,8281,2049,4031,2049,79,10,8263,8306,171,110,101,120,116,45,116,111,107,101,110,0,1,32,2049,6208,10,8292,8329,171,112,114,111,99,101,115,115,45,116,111,107,101,110,115,0,1793,8364,2049,8306,4,1793,8357,2,2049,79,2049,2399,1793,8346,2049,396,10,1,8343,1793,8352,3,10,1,8350,2049,122,10,1,8336,2049,2072,2049,2849,10,1,8331,2049,2259,2049,396,10,8231,8385,171,115,58,101,118,97,108,117,97,116,101,0,2049,8257,2049,4239,2049,8257,2,2049,8279,2049,8329,10,8371,8405,171,112,117,116,99,0,1000,10,8397,8413,171,110,108,0,1,10,2049,8405,10,8407,8424,171,115,112,0,1,32,2049,8405,10,8418,8436,171,116,97,98,0,1,9,2049,8405,10,8429,8449,171,112,117,116,115,0,1793,8454,2049,8405,10,1,8451,2049,3968,10,8441,8467,171,112,117,116,110,0,2049,5671,2049,8449,10,8459,8481,171,119,111,114,100,115,0,1793,8490,2049,189,2049,8449,2049,8424,10,1,8483,2049,6806,10,8472,8504,171,114,101,115,101,116,0,2049,1682,25,5,3,6,1,1,18,1,8506,7,10,8495,8531,171,100,117,109,112,45,115,116,97,99,107,0,2049,1682,25,3,5,2049,8531,6,2,2049,8467,2049,8424,10,8517,8553,171,70,82,69,69,0,2049,3512,1,1025,18,2049,1910,18,10,8545,8570,171,103,101,116,99,0,1001,10,8562,8586,171,110,58,116,111,45,102,108,111,97,116,0,1,0,-6000,10,8572,8604,171,115,58,116,111,45,102,108,111,97,116,0,1,1,-6000,10,8590,8623,171,102,58,116,111,45,115,116,114,105,110,103,0,2049,3625,2,1,2,-6000,10,8608,8637,171,102,58,43,0,1,3,-6000,10,8630,8648,171,102,58,45,0,1,4,-6000,10,8641,8659,171,102,58,42,0,1,5,-6000,10,8652,8670,171,102,58,47,0,1,6,-6000,10,8663,8685,171,102,58,102,108,111,111,114,0,1,7,-6000,10,8674,8698,171,102,58,101,113,63,0,1,8,-6000,10,8689,8712,171,102,58,45,101,113,63,0,1,9,-6000,10,8702,8725,171,102,58,108,116,63,0,1,10,-6000,10,8716,8738,171,102,58,103,116,63,0,1,11,-6000,10,8729,8753,171,102,58,100,101,112,116,104,0,1,12,-6000,10,8742,8766,171,102,58,100,117,112,0,1,13,-6000,10,8757,8780,171,102,58,100,114,111,112,0,1,14,-6000,10,8770,8794,171,102,58,115,119,97,112,0,1,15,-6000,10,8784,8808,171,102,58,111,118,101,114,0,2049,8623,2049,8766,2049,8604,2049,8794,10,8798,8827,171,102,58,116,117,99,107,0,2049,8794,2049,8808,10,8817,8847,171,102,58,112,111,115,105,116,105,118,101,63,0,1,0,2049,8586,2049,8738,10,8832,8869,171,102,58,110,101,103,97,116,105,118,101,63,0,1,0,2049,8586,2049,8725,10,8854,8888,171,102,58,110,101,103,97,116,101,0,1,-1,2049,8586,2049,8659,10,8876,8904,171,102,58,97,98,115,0,2049,8766,2049,8869,1793,8913,2049,8888,10,1,8910,2049,130,10,8895,8927,171,102,58,108,111,103,0,1,16,-6000,10,8918,8942,171,102,58,112,111,119,101,114,0,1,17,-6000,10,8931,8961,171,102,58,116,111,45,110,117,109,98,101,114,0,1,18,-6000,10,8946,8977,183,112,114,101,102,105,120,58,46,0,2049,1788,1793,8984,2049,3666,10,1,8981,1793,8991,2049,3599,10,1,8988,2049,122,1,8604,2049,171,10,8965,9008,171,112,117,116,102,0,2049,8623,2049,8449,10,9000,9027,171,103,111,112,104,101,114,58,103,101,116,0,-6200,10,9013,9041,171,115,121,115,58,97,114,103,99,0,-6100,10,9029,9055,171,115,121,115,58,97,114,103,118,0,2049,3625,4,-6101,10,9043,9075,171,117,110,105,120,58,115,121,115,116,101,109,0,-8000,10,9060,9090,171,117,110,105,120,58,102,111,114,107,0,-8001,10,9077,9105,171,117,110,105,120,58,101,120,105,116,0,-8002,10,9092,9122,171,117,110,105,120,58,103,101,116,112,105,100,0,-8003,10,9107,9138,171,117,110,105,120,58,101,120,101,99,48,0,-8004,10,9124,9154,171,117,110,105,120,58,101,120,101,99,49,0,-8005,10,9140,9170,171,117,110,105,120,58,101,120,101,99,50,0,-8006,10,9156,9186,171,117,110,105,120,58,101,120,101,99,51,0,-8007,10,9172,9201,171,117,110,105,120,58,119,97,105,116,0,-8008,10,9188,9216,171,117,110,105,120,58,107,105,108,108,0,-8009,10,9203,9232,171,117,110,105,120,58,112,111,112,101,110,0,-8010,10,9218,9249,171,117,110,105,120,58,112,99,108,111,115,101,0,-8011,10,9234,9265,171,117,110,105,120,58,119,114,105,116,101,0,1793,9271,2,2049,79,10,1,9267,2049,2072,-8012,10,9251,9291,171,117,110,105,120,58,99,104,100,105,114,0,-8013,10,9277,9308,171,117,110,105,120,58,103,101,116,101,110,118,0,-8014,10,9293,9325,171,117,110,105,120,58,112,117,116,101,110,118,0,-8015,10,9310,9341,171,117,110,105,120,58,115,108,101,101,112,0,-8016,10,9327,0,158,102,105,108,101,58,82,0,9343,1,158,102,105,108,101,58,87,0,9353,2,158,102,105,108,101,58,65,0,9363,3,158,102,105,108,101,58,82,43,0,9373,9397,171,102,105,108,101,58,111,112,101,110,0,118,10,9384,9413,171,102,105,108,101,58,99,108,111,115,101,0,119,10,9399,9428,171,102,105,108,101,58,114,101,97,100,0,120,10,9415,9444,171,102,105,108,101,58,119,114,105,116,101,0,121,10,9430,9459,171,102,105,108,101,58,116,101,108,108,0,122,10,9446,9474,171,102,105,108,101,58,115,101,101,107,0,123,10,9461,9489,171,102,105,108,101,58,115,105,122,101,0,124,10,9476,9506,171,102,105,108,101,58,100,101,108,101,116,101,0,125,10,9491,9522,171,102,105,108,101,58,102,108,117,115,104,0,126,10,9508,9540,171,102,105,108,101,58,101,120,105,115,116,115,63,0,1,0,2049,9397,2,2049,2399,1793,9554,2049,9413,2049,2289,10,1,9549,1793,9562,3,2049,2301,10,1,9558,2049,122,10,9524,9574,158,70,73,68,0,0,9567,9584,158,70,83,105,122,101,0,0,9575,9595,158,65,99,116,105,111,110,0,0,9585,9606,158,66,117,102,102,101,114,0,0,9596,9616,171,45,101,111,102,63,0,3841,9574,2049,9459,3841,9584,13,10,9607,9636,171,112,114,101,115,101,114,118,101,0,1,9574,1793,9651,1,9584,1793,9646,8,10,1,9644,2049,3037,10,1,9640,2049,3037,10,9524,9674,171,102,105,108,101,58,114,101,97,100,45,108,105,110,101,0,4097,9574,1793,9731,2049,1910,2,4097,9606,2049,3419,1793,9723,3841,9574,2049,9428,2,2049,3327,1793,9700,1,13,11,10,1,9696,1793,9708,1,10,11,10,1,9704,1793,9716,1,0,11,10,1,9712,2049,2136,22,22,10,1,9687,2049,2230,2049,3351,3,10,1,9678,2049,3443,3841,9606,10,9656,9760,171,102,105,108,101,58,102,111,114,45,101,97,99,104,45,108,105,110,101,0,1793,9797,4097,9595,1,0,2049,9397,4097,9574,3841,9574,2049,9489,4097,9584,1793,9788,3841,9574,2049,9674,3841,9595,8,2049,9616,10,1,9778,2049,2204,3841,9574,2049,9413,10,1,9762,2049,9636,10,9738,9809,158,70,73,68,0,0,9802,9818,158,83,105,122,101,0,0,9738,9833,171,102,105,108,101,58,115,108,117,114,112,0,1793,9869,1,0,2049,9397,4097,9809,2049,3419,3841,9809,2049,9489,4097,9818,3841,9818,1793,9860,3841,9809,2049,9428,2049,3327,10,1,9853,2049,2259,3841,9809,2049,9413,10,1,9835,2049,3443,10,9819,9881,158,70,73,68,0,0,9819,9895,171,102,105,108,101,58,115,112,101,119,0,1,1,2049,9397,4097,9881,1793,9908,3841,9881,2049,9444,10,1,9903,2049,3968,3841,9881,2049,9413,10,9882,9924,171,98,121,101,0,2049,3640,115,116,116,121,32,45,99,98,114,101,97,107,0,1,9926,2049,9075,1,0,2049,9105,10,9917,9959,171,118,101,114,115,105,111,110,0,3841,4,1,100,20,2049,8467,1,46,2049,8405,2049,8467,10,9948,9983,171,98,97,110,110,101,114,0,2049,3640,82,69,84,82,79,32,49,50,32,40,114,120,45,0,1,9985,2049,8449,2049,9959,1,41,2049,8405,2049,8413,2049,1543,2049,8467,2049,3640,32,77,65,88,44,32,84,73,66,32,64,32,49,48,50,53,44,32,72,101,97,112,32,64,32,0,1,10017,2049,8449,2049,1910,2049,8467,2049,8413,10,9973,10062,171,101,111,108,63,0,1793,10068,1,13,11,10,1,10064,1793,10076,1,10,11,10,1,10072,1793,10084,1,32,11,10,1,10080,2049,2136,22,22,10,10054,10101,171,118,97,108,105,100,63,0,2,2049,79,2049,2399,10,10091,10113,171,111,107,0,2049,1788,1793,10130,2049,8413,2049,3640,79,107,32,0,1,10121,2049,8449,10,1,10117,2049,128,10,10107,10148,171,99,104,101,99,107,45,101,111,102,0,2,1,4,11,1793,10157,2049,9924,10,1,10154,2049,130,10,10135,10170,171,103,101,116,115,0,1793,10197,1,1025,2049,3419,1793,10188,2049,8570,2,2049,3327,2049,10148,2049,10062,10,1,10178,2049,2230,2049,3293,2049,3734,10,1,10172,2049,3443,10,9917,10212,171,108,105,115,116,101,110,0,2049,3640,115,116,116,121,32,99,98,114,101,97,107,0,1,10214,2049,9075,2049,9983,2049,10113,2049,10170,2049,10101,1793,10245,2049,396,2049,10113,10,1,10240,1793,10251,3,10,1,10249,2049,122,1,10234,7,10,0 }; +int32_t ngaImageCells = 10299; +int32_t ngaImage[] = { 1793,-1,10241,10298,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,105,110,0,0,101,116,0,109,0,0,118,101,0,53,44,95,72,101,97,112,95,64,95,0,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,9956,10201,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,29,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,2399,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,0,158,65,83,67,73,73,58,78,85,76,0,4539,1,158,65,83,67,73,73,58,83,79,72,0,4552,2,158,65,83,67,73,73,58,83,84,88,0,4565,3,158,65,83,67,73,73,58,69,84,88,0,4578,4,158,65,83,67,73,73,58,69,79,84,0,4591,5,158,65,83,67,73,73,58,69,78,81,0,4604,6,158,65,83,67,73,73,58,65,67,75,0,4617,7,158,65,83,67,73,73,58,66,69,76,0,4630,8,158,65,83,67,73,73,58,66,83,0,4643,9,158,65,83,67,73,73,58,72,84,0,4655,10,158,65,83,67,73,73,58,76,70,0,4667,11,158,65,83,67,73,73,58,86,84,0,4679,12,158,65,83,67,73,73,58,70,70,0,4691,13,158,65,83,67,73,73,58,67,82,0,4703,14,158,65,83,67,73,73,58,83,79,0,4715,15,158,65,83,67,73,73,58,83,73,0,4727,16,158,65,83,67,73,73,58,68,76,69,0,4739,17,158,65,83,67,73,73,58,68,67,49,0,4752,18,158,65,83,67,73,73,58,68,67,50,0,4765,19,158,65,83,67,73,73,58,68,67,51,0,4778,20,158,65,83,67,73,73,58,68,67,52,0,4791,21,158,65,83,67,73,73,58,78,65,75,0,4804,22,158,65,83,67,73,73,58,83,89,78,0,4817,23,158,65,83,67,73,73,58,69,84,66,0,4830,24,158,65,83,67,73,73,58,67,65,78,0,4843,25,158,65,83,67,73,73,58,69,77,0,4856,26,158,65,83,67,73,73,58,83,85,66,0,4868,27,158,65,83,67,73,73,58,69,83,67,0,4881,28,158,65,83,67,73,73,58,70,83,0,4894,29,158,65,83,67,73,73,58,71,83,0,4906,30,158,65,83,67,73,73,58,82,83,0,4918,31,158,65,83,67,73,73,58,85,83,0,4930,32,158,65,83,67,73,73,58,83,80,65,67,69,0,4942,127,158,65,83,67,73,73,58,68,69,76,0,4957,4983,171,99,58,108,101,116,116,101,114,63,0,1,65,1,122,2049,2880,10,4970,5006,171,99,58,108,111,119,101,114,99,97,115,101,63,0,1,97,1,122,2049,2880,10,4990,5029,171,99,58,117,112,112,101,114,99,97,115,101,63,0,1,65,1,90,2049,2880,10,5013,5048,171,99,58,100,105,103,105,116,63,0,1,48,1,57,2049,2880,10,5036,5072,171,99,58,119,104,105,116,101,115,112,97,99,101,63,0,1,32,1793,5079,2049,2289,10,1,5076,2049,2512,1,9,1793,5090,2049,2289,10,1,5087,2049,2512,1,10,1793,5101,2049,2289,10,1,5098,2049,2512,1,13,1793,5112,2049,2289,10,1,5109,2049,2512,3,2049,2301,10,5055,5134,171,99,58,118,105,115,105,98,108,101,63,0,1,31,1,126,2049,2880,10,5120,5153,171,99,58,118,111,119,101,108,63,0,1,97,1793,5160,2049,2289,10,1,5157,2049,2512,1,101,1793,5171,2049,2289,10,1,5168,2049,2512,1,105,1793,5182,2049,2289,10,1,5179,2049,2512,1,111,1793,5193,2049,2289,10,1,5190,2049,2512,1,117,1793,5204,2049,2289,10,1,5201,2049,2512,1,65,1793,5215,2049,2289,10,1,5212,2049,2512,1,69,1793,5226,2049,2289,10,1,5223,2049,2512,1,73,1793,5237,2049,2289,10,1,5234,2049,2512,1,79,1793,5248,2049,2289,10,1,5245,2049,2512,1,85,1793,5259,2049,2289,10,1,5256,2049,2512,3,2049,2301,10,5141,5283,171,99,58,99,111,110,115,111,110,97,110,116,63,0,2,2049,4983,1793,5293,2049,5153,2049,2653,10,1,5288,1793,5301,3,2049,2301,10,1,5297,2049,122,10,5267,5323,171,99,58,45,108,111,119,101,114,99,97,115,101,63,0,2049,5006,2049,2653,10,5306,5345,171,99,58,45,117,112,112,101,114,99,97,115,101,63,0,2049,5029,2049,2653,10,5328,5363,171,99,58,45,100,105,103,105,116,63,0,2049,5048,2049,2653,10,5350,5386,171,99,58,45,119,104,105,116,101,115,112,97,99,101,63,0,2049,5072,2049,2653,10,5368,5406,171,99,58,45,118,105,115,105,98,108,101,63,0,2049,5134,2049,2653,10,5391,5424,171,99,58,45,118,111,119,101,108,63,0,2049,5153,2049,2653,10,5411,5446,171,99,58,45,99,111,110,115,111,110,97,110,116,63,0,2049,5283,2049,2653,10,5429,5465,171,99,58,116,111,45,117,112,112,101,114,0,2,2049,5006,25,3,1,32,18,10,5451,5488,171,99,58,116,111,45,108,111,119,101,114,0,2,2049,5029,25,3,1,32,17,10,5474,5514,171,99,58,116,111,103,103,108,101,45,99,97,115,101,0,2,2049,5006,1793,5522,2049,5465,10,1,5519,1793,5529,2049,5488,10,1,5526,2049,122,10,5497,5549,171,99,58,116,111,45,115,116,114,105,110,103,0,2049,3640,46,0,1,5551,2049,3599,1793,5561,16,10,1,5559,2049,2084,10,5534,5580,171,115,58,116,111,45,117,112,112,101,114,0,1793,5585,2049,5465,10,1,5582,2049,4082,10,5566,5604,171,115,58,116,111,45,108,111,119,101,114,0,1793,5609,2049,5488,10,1,5606,2049,4082,10,5590,5623,158,86,97,108,117,101,0,0,5614,5635,171,99,111,114,114,101,99,116,0,2,1,48,13,1793,5651,1,48,2049,2006,18,1,2,19,17,10,1,5641,2049,130,10,5590,5671,171,110,58,116,111,45,115,116,114,105,110,103,0,1793,5726,2049,1910,2049,3419,2,4097,5623,2049,2815,1793,5699,1,10,20,4,1,48,17,2049,5635,2049,3327,2,2049,2399,10,1,5684,2049,2204,3,3841,5623,2049,2418,1793,5715,1,45,2049,3327,10,1,5710,2049,130,2049,3293,2049,3762,2049,3599,10,1,5673,2049,3443,10,5656,5753,158,82,101,119,114,105,116,101,85,110,100,101,114,115,99,111,114,101,115,0,-1,5731,5761,171,115,117,98,0,1,95,1793,5768,1,32,10,1,5765,2049,2512,10,5754,5784,171,114,101,119,114,105,116,101,0,3841,5753,1793,5798,1793,5793,2049,5761,10,1,5790,2049,4082,10,1,5788,2049,130,1,3705,8,10,5731,5818,183,112,114,101,102,105,120,58,39,0,2049,5784,10,5806,5835,171,115,58,105,110,100,101,120,45,111,102,0,4,1793,5859,2049,68,25,4,1793,5848,2049,2006,12,10,1,5844,2049,2072,4,25,3,1,5838,7,10,1,5838,2049,2084,1793,5871,18,2049,2862,2049,2035,10,1,5865,2049,2084,2049,79,2049,2006,11,1793,5886,3,1,-1,10,1,5882,2049,130,10,5821,5911,171,115,58,99,111,110,116,97,105,110,115,45,99,104,97,114,63,0,2049,5835,1,-1,12,10,5891,5924,158,83,114,99,0,0,5917,5932,158,84,97,114,0,0,5925,5940,158,80,97,100,0,0,5933,5946,158,73,0,0,5941,5952,158,70,0,0,5947,5959,158,65,116,0,0,5953,5973,171,116,101,114,109,105,110,97,116,101,0,1,0,3841,5940,3841,5932,2049,79,17,16,10,5960,5995,171,101,120,116,114,97,99,116,0,3841,5924,3841,5946,17,3841,5940,3841,5932,2049,79,2049,3111,10,5984,6020,171,99,111,109,112,97,114,101,0,3841,5940,3841,5932,2049,104,3841,5952,22,4097,5952,3841,5952,1793,6040,3841,5946,4097,5959,10,1,6035,2049,128,10,6009,6053,171,110,101,120,116,0,1,5946,2049,2953,10,5891,6080,171,115,58,99,111,110,116,97,105,110,115,45,115,116,114,105,110,103,63,0,4097,5932,4097,5924,2049,3625,4097,5940,1,0,4097,5946,1,0,4097,5952,3841,5924,2049,79,1793,6111,2049,5995,2049,5973,2049,6020,2049,6053,10,1,6102,2049,2259,3841,5952,10,6058,6139,171,115,58,105,110,100,101,120,45,111,102,45,115,116,114,105,110,103,0,4097,5932,4097,5924,2049,3625,4097,5940,1,0,4097,5946,1,0,4097,5952,1,-1,4097,5959,3841,5924,2049,79,1793,6174,2049,5995,2049,5973,2049,6020,2049,6053,10,1,6165,2049,2259,3841,5952,1793,6185,3841,5959,10,1,6182,1793,6192,1,-1,10,1,6189,2049,122,10,6118,6208,171,115,58,115,112,108,105,116,0,2049,2023,2049,5835,2049,2035,2049,2023,2049,4197,1793,6222,17,10,1,6220,2049,2072,10,6197,6248,171,115,58,115,112,108,105,116,45,111,110,45,115,116,114,105,110,103,0,2049,2023,2049,6139,2049,2849,2049,2035,2049,2023,2049,4197,1793,6264,17,10,1,6262,2049,2072,10,6227,6274,158,76,0,0,6227,6288,171,115,58,114,101,112,108,97,99,101,0,2049,2006,2049,79,4097,6274,1793,6303,2049,6248,4,3841,6274,17,10,1,6296,2049,2072,2049,3909,2049,3950,10,6275,6324,158,83,112,108,105,116,45,79,110,0,0,6312,6335,171,109,97,116,99,104,63,0,3841,6324,11,10,6325,6352,171,116,101,114,109,105,110,97,116,101,0,1,0,2049,2006,2049,2862,16,10,6339,6368,171,115,116,101,112,0,1793,6373,2049,2849,10,1,6370,2049,2072,2049,6335,1793,6387,2,2049,132,2049,6352,10,1,6381,2049,130,10,6275,6406,171,115,58,116,111,107,101,110,105,122,101,0,4097,6324,2049,3666,2049,1910,1,0,2049,132,1793,6433,2,2049,132,2,1793,6427,2049,6368,10,1,6424,2049,3968,3,10,1,6418,2049,2072,2049,1910,2049,2006,18,2049,2862,2049,2006,16,10,6392,6458,158,84,111,107,101,110,115,0,0,6448,6469,158,78,101,101,100,108,101,0,0,6459,6481,171,45,109,97,116,99,104,63,0,2,3841,6469,2049,6080,10,6470,6501,171,115,97,118,101,45,116,111,107,101,110,0,3841,6469,2049,6248,2049,3666,2049,3327,2049,2849,10,6487,6529,171,116,111,107,101,110,115,45,116,111,45,115,101,116,0,2049,1910,3841,6458,2049,3399,2,2049,132,1793,6545,2049,68,2049,132,10,1,6540,2049,2259,3,10,6392,6575,171,115,58,116,111,107,101,110,105,122,101,45,111,110,45,115,116,114,105,110,103,0,1793,6614,2049,3666,4097,6469,2049,1910,1,8192,17,4097,6458,3841,6458,2049,3419,1793,6604,2049,6481,25,3,2049,6501,1,6594,7,10,1,6594,8,2049,3666,2049,3327,2049,6529,10,1,6577,2049,3443,10,6551,6629,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,6619,6665,171,102,114,111,109,0,2049,79,2,1793,6684,1793,6677,1,6629,17,16,10,1,6672,2049,2084,2049,2862,10,1,6670,2049,2259,3,10,6657,6696,171,116,111,0,2,2049,79,1793,6714,2049,68,1,97,18,2049,2849,1,6629,17,15,4,10,1,6701,2049,2259,3,10,6551,6731,171,114,101,111,114,100,101,114,0,1793,6736,2049,6665,10,1,6733,2049,2072,2049,6696,10,6720,6752,171,99,117,114,114,121,0,2049,1910,1793,6764,4,2049,1701,2049,1747,2049,1769,10,1,6756,2049,2072,10,6743,6777,171,100,111,101,115,0,2049,1575,4,2049,6752,2049,1557,2049,185,16,1,171,2049,1636,10,6769,6806,171,100,58,102,111,114,45,101,97,99,104,0,1,2,1793,6834,15,25,2049,2023,1793,6826,1793,6821,4,8,10,1,6818,2049,2072,10,1,6816,2049,2072,1,6810,7,10,1,6810,8,3,10,6792,6854,171,100,58,108,111,111,107,117,112,45,120,116,0,1,0,4,1793,6889,2049,2023,2049,185,15,11,1793,6878,4,1793,6873,2049,2035,10,1,6870,2049,2072,10,1,6867,1793,6884,3,10,1,6882,2049,122,10,1,6859,2049,6806,3,10,6839,6903,171,99,104,97,114,0,1,32,1793,6912,1,95,2049,3327,10,1,6907,2049,2512,1,110,1793,6925,1,10,2049,3327,10,1,6920,2049,2512,1,116,1793,6938,1,9,2049,3327,10,1,6933,2049,2512,2049,3327,10,6895,6955,171,115,116,114,105,110,103,0,2049,68,25,2049,3327,1,6955,7,10,6945,6972,171,116,121,112,101,0,1,99,1793,6980,4,2049,3327,10,1,6976,2049,2512,1,115,1793,6993,4,2049,6955,3,10,1,6988,2049,2512,1,110,1793,7008,4,2049,5671,2049,6955,3,10,1,7001,2049,2512,3,10,6964,7024,171,104,97,110,100,108,101,0,1,92,1793,7033,2049,68,2049,6903,10,1,7028,2049,2512,1,37,1793,7046,2049,68,2049,6972,10,1,7041,2049,2512,2049,3327,10,6839,7070,171,115,58,119,105,116,104,45,102,111,114,109,97,116,0,1793,7099,2049,3625,1793,7094,2049,3419,1793,7089,2049,68,25,2049,7024,1,7080,7,10,1,7080,8,3,10,1,7076,2049,2084,10,1,7072,2049,3443,10,7053,7115,171,115,58,99,111,110,115,116,0,1793,7120,2049,3666,10,1,7117,2049,2072,2049,1977,10,7104,7141,171,115,101,116,58,108,101,110,103,116,104,0,15,10,7127,7163,171,115,101,116,58,102,114,111,109,45,114,101,115,117,108,116,115,0,2049,1682,1793,7169,8,10,1,7167,2049,2072,2049,1682,4,18,2049,1910,1793,7194,2,2049,132,1793,7189,2049,132,10,1,7186,2049,2259,10,1,7181,2049,2072,10,7143,7218,171,115,101,116,58,102,114,111,109,45,115,116,114,105,110,103,0,2049,3762,1793,7230,1793,7225,10,1,7224,2049,3968,10,1,7222,2049,6752,2049,7163,10,7199,7242,158,81,0,0,7199,7259,171,115,101,116,58,102,111,114,45,101,97,99,104,0,1,7242,1793,7289,4097,7242,2049,68,1793,7283,2049,68,4,1793,7278,3841,7242,8,10,1,7274,2049,2072,10,1,7269,2049,2259,3,10,1,7263,2049,3037,10,7243,7305,171,115,101,116,58,100,117,112,0,2049,1910,1793,7323,2,15,2049,132,1793,7318,2049,132,10,1,7315,2049,7259,10,1,7309,2049,2072,10,7294,7342,171,115,101,116,58,102,105,108,116,101,114,0,1793,7371,2049,2006,1793,7350,8,10,1,7348,2049,2072,4,1793,7360,2049,132,10,1,7357,1793,7366,3,10,1,7364,2049,122,10,1,7344,2049,6752,2049,1910,1793,7387,2049,2006,15,2049,132,2049,7259,10,1,7379,2049,2072,2049,1910,2049,2006,18,2049,2862,2049,2006,16,10,7328,7407,158,70,0,0,7328,7425,171,115,101,116,58,99,111,110,116,97,105,110,115,63,0,1,7407,2049,3018,1793,7440,2049,2006,11,3841,7407,22,4097,7407,10,1,7431,2049,7259,3,3841,7407,10,7408,7472,171,115,101,116,58,99,111,110,116,97,105,110,115,45,115,116,114,105,110,103,63,0,1,7407,2049,3018,1793,7488,2049,2006,2049,104,3841,7407,22,4097,7407,10,1,7478,2049,7259,3,3841,7407,10,7448,7507,171,115,101,116,58,109,97,112,0,1793,7513,8,2049,132,10,1,7509,2049,6752,2049,1910,1793,7529,2049,2006,15,2049,132,2049,7259,10,1,7521,2049,2072,10,7496,7549,171,115,101,116,58,114,101,118,101,114,115,101,0,2049,1910,1793,7583,2049,68,1793,7561,17,2049,2862,10,1,7557,2049,2084,2,2049,132,1793,7577,2,15,2049,132,2049,2862,10,1,7570,2049,2259,3,10,1,7553,2049,2072,10,7534,7599,171,115,101,116,58,110,116,104,0,17,2049,2849,10,7588,7617,171,115,101,116,58,114,101,100,117,99,101,0,1793,7621,4,10,1,7619,2049,2072,2049,7259,10,7603,7634,158,73,48,0,0,0,0,7628,7643,158,73,49,0,0,0,0,7637,7652,158,73,50,0,0,0,0,7646,7661,158,73,51,0,0,0,0,7655,7674,171,111,112,99,111,100,101,0,2049,3640,46,46,0,1,7676,1793,7686,1,0,10,1,7683,2049,2558,2049,3640,108,105,0,1,7692,1793,7702,1,1,10,1,7699,2049,2558,2049,3640,100,117,0,1,7708,1793,7718,1,2,10,1,7715,2049,2558,2049,3640,100,114,0,1,7724,1793,7734,1,3,10,1,7731,2049,2558,2049,3640,115,119,0,1,7740,1793,7750,1,4,10,1,7747,2049,2558,2049,3640,112,117,0,1,7756,1793,7766,1,5,10,1,7763,2049,2558,2049,3640,112,111,0,1,7772,1793,7782,1,6,10,1,7779,2049,2558,2049,3640,106,117,0,1,7788,1793,7798,1,7,10,1,7795,2049,2558,2049,3640,99,97,0,1,7804,1793,7814,1,8,10,1,7811,2049,2558,2049,3640,99,99,0,1,7820,1793,7830,1,9,10,1,7827,2049,2558,2049,3640,114,101,0,1,7836,1793,7846,1,10,10,1,7843,2049,2558,2049,3640,101,113,0,1,7852,1793,7862,1,11,10,1,7859,2049,2558,2049,3640,110,101,0,1,7868,1793,7878,1,12,10,1,7875,2049,2558,2049,3640,108,116,0,1,7884,1793,7894,1,13,10,1,7891,2049,2558,2049,3640,103,116,0,1,7900,1793,7910,1,14,10,1,7907,2049,2558,2049,3640,102,101,0,1,7916,1793,7926,1,15,10,1,7923,2049,2558,2049,3640,115,116,0,1,7932,1793,7942,1,16,10,1,7939,2049,2558,2049,3640,97,100,0,1,7948,1793,7958,1,17,10,1,7955,2049,2558,2049,3640,115,117,0,1,7964,1793,7974,1,18,10,1,7971,2049,2558,2049,3640,109,117,0,1,7980,1793,7990,1,19,10,1,7987,2049,2558,2049,3640,100,105,0,1,7996,1793,8006,1,20,10,1,8003,2049,2558,2049,3640,97,110,0,1,8012,1793,8022,1,21,10,1,8019,2049,2558,2049,3640,111,114,0,1,8028,1793,8038,1,22,10,1,8035,2049,2558,2049,3640,120,111,0,1,8044,1793,8054,1,23,10,1,8051,2049,2558,2049,3640,115,104,0,1,8060,1793,8070,1,24,10,1,8067,2049,2558,2049,3640,122,114,0,1,8076,1793,8086,1,25,10,1,8083,2049,2558,2049,3640,101,110,0,1,8092,1793,8102,1,26,10,1,8099,2049,2558,3,1,0,10,7664,8118,171,112,97,99,107,0,1,7634,2049,7674,1,7643,2049,7674,1,7652,2049,7674,1,7661,2049,7674,1,-24,24,4,1,-16,24,17,4,1,-8,24,17,4,17,10,7603,8155,171,105,0,2,1,7634,1,2,2049,3111,1,2,17,2,1,7643,1,2,2049,3111,1,2,17,2,1,7652,1,2,2049,3111,1,2,17,1,7661,1,2,2049,3111,2049,8118,2049,132,10,8150,8201,171,100,0,2049,132,10,8196,8209,171,114,0,2049,224,2049,185,15,2049,132,10,8204,8224,183,97,115,123,0,3841,151,1,151,2049,3018,10,8217,8238,183,125,97,115,0,4097,151,10,8231,8257,171,99,117,114,114,101,110,116,45,108,105,110,101,0,2049,3512,1,1025,18,10,8241,8279,171,99,111,117,110,116,45,116,111,107,101,110,115,0,1793,8285,1,32,11,10,1,8281,2049,4031,2049,79,10,8263,8306,171,110,101,120,116,45,116,111,107,101,110,0,1,32,2049,6208,10,8292,8329,171,112,114,111,99,101,115,115,45,116,111,107,101,110,115,0,1793,8364,2049,8306,4,1793,8357,2,2049,79,2049,2399,1793,8346,2049,396,10,1,8343,1793,8352,3,10,1,8350,2049,122,10,1,8336,2049,2072,2049,2849,10,1,8331,2049,2259,2049,396,10,8231,8385,171,115,58,101,118,97,108,117,97,116,101,0,2049,8257,2049,4239,2049,8257,2,2049,8279,2049,8329,10,8371,8405,171,112,117,116,99,0,1000,10,8397,8413,171,110,108,0,1,10,2049,8405,10,8407,8424,171,115,112,0,1,32,2049,8405,10,8418,8436,171,116,97,98,0,1,9,2049,8405,10,8429,8449,171,112,117,116,115,0,1793,8454,2049,8405,10,1,8451,2049,3968,10,8441,8467,171,112,117,116,110,0,2049,5671,2049,8449,10,8459,8481,171,119,111,114,100,115,0,1793,8490,2049,189,2049,8449,2049,8424,10,1,8483,2049,6806,10,8472,8504,171,114,101,115,101,116,0,2049,1682,25,5,3,6,1,1,18,1,8506,7,10,8495,8531,171,100,117,109,112,45,115,116,97,99,107,0,2049,1682,25,3,5,2049,8531,6,2,2049,8467,2049,8424,10,8517,8553,171,70,82,69,69,0,2049,3512,1,1025,18,2049,1910,18,10,8545,8570,171,103,101,116,99,0,1001,10,8562,8586,171,110,58,116,111,45,102,108,111,97,116,0,1,0,-6000,10,8572,8604,171,115,58,116,111,45,102,108,111,97,116,0,1,1,-6000,10,8590,8623,171,102,58,116,111,45,115,116,114,105,110,103,0,2049,3625,2,1,2,-6000,10,8608,8637,171,102,58,43,0,1,3,-6000,10,8630,8648,171,102,58,45,0,1,4,-6000,10,8641,8659,171,102,58,42,0,1,5,-6000,10,8652,8670,171,102,58,47,0,1,6,-6000,10,8663,8685,171,102,58,102,108,111,111,114,0,1,7,-6000,10,8674,8698,171,102,58,101,113,63,0,1,8,-6000,10,8689,8712,171,102,58,45,101,113,63,0,1,9,-6000,10,8702,8725,171,102,58,108,116,63,0,1,10,-6000,10,8716,8738,171,102,58,103,116,63,0,1,11,-6000,10,8729,8753,171,102,58,100,101,112,116,104,0,1,12,-6000,10,8742,8766,171,102,58,100,117,112,0,1,13,-6000,10,8757,8780,171,102,58,100,114,111,112,0,1,14,-6000,10,8770,8794,171,102,58,115,119,97,112,0,1,15,-6000,10,8784,8808,171,102,58,111,118,101,114,0,2049,8623,2049,8766,2049,8604,2049,8794,10,8798,8827,171,102,58,116,117,99,107,0,2049,8794,2049,8808,10,8817,8847,171,102,58,112,111,115,105,116,105,118,101,63,0,1,0,2049,8586,2049,8738,10,8832,8869,171,102,58,110,101,103,97,116,105,118,101,63,0,1,0,2049,8586,2049,8725,10,8854,8888,171,102,58,110,101,103,97,116,101,0,1,-1,2049,8586,2049,8659,10,8876,8904,171,102,58,97,98,115,0,2049,8766,2049,8869,1793,8913,2049,8888,10,1,8910,2049,130,10,8895,8927,171,102,58,108,111,103,0,1,16,-6000,10,8918,8942,171,102,58,112,111,119,101,114,0,1,17,-6000,10,8931,8961,171,102,58,116,111,45,110,117,109,98,101,114,0,1,18,-6000,10,8946,8977,183,112,114,101,102,105,120,58,46,0,2049,1788,1793,8984,2049,3666,10,1,8981,1793,8991,2049,3599,10,1,8988,2049,122,1,8604,2049,171,10,8965,9008,171,112,117,116,102,0,2049,8623,2049,8449,10,9000,9022,171,102,58,115,105,110,0,1,19,-6000,10,9013,9035,171,102,58,99,111,115,0,1,20,-6000,10,9026,9048,171,102,58,116,97,110,0,1,21,-6000,10,9039,9066,171,103,111,112,104,101,114,58,103,101,116,0,-6200,10,9052,9080,171,115,121,115,58,97,114,103,99,0,-6100,10,9068,9094,171,115,121,115,58,97,114,103,118,0,2049,3625,4,-6101,10,9082,9114,171,117,110,105,120,58,115,121,115,116,101,109,0,-8000,10,9099,9129,171,117,110,105,120,58,102,111,114,107,0,-8001,10,9116,9144,171,117,110,105,120,58,101,120,105,116,0,-8002,10,9131,9161,171,117,110,105,120,58,103,101,116,112,105,100,0,-8003,10,9146,9177,171,117,110,105,120,58,101,120,101,99,48,0,-8004,10,9163,9193,171,117,110,105,120,58,101,120,101,99,49,0,-8005,10,9179,9209,171,117,110,105,120,58,101,120,101,99,50,0,-8006,10,9195,9225,171,117,110,105,120,58,101,120,101,99,51,0,-8007,10,9211,9240,171,117,110,105,120,58,119,97,105,116,0,-8008,10,9227,9255,171,117,110,105,120,58,107,105,108,108,0,-8009,10,9242,9271,171,117,110,105,120,58,112,111,112,101,110,0,-8010,10,9257,9288,171,117,110,105,120,58,112,99,108,111,115,101,0,-8011,10,9273,9304,171,117,110,105,120,58,119,114,105,116,101,0,1793,9310,2,2049,79,10,1,9306,2049,2072,-8012,10,9290,9330,171,117,110,105,120,58,99,104,100,105,114,0,-8013,10,9316,9347,171,117,110,105,120,58,103,101,116,101,110,118,0,-8014,10,9332,9364,171,117,110,105,120,58,112,117,116,101,110,118,0,-8015,10,9349,9380,171,117,110,105,120,58,115,108,101,101,112,0,-8016,10,9366,0,158,102,105,108,101,58,82,0,9382,1,158,102,105,108,101,58,87,0,9392,2,158,102,105,108,101,58,65,0,9402,3,158,102,105,108,101,58,82,43,0,9412,9436,171,102,105,108,101,58,111,112,101,110,0,118,10,9423,9452,171,102,105,108,101,58,99,108,111,115,101,0,119,10,9438,9467,171,102,105,108,101,58,114,101,97,100,0,120,10,9454,9483,171,102,105,108,101,58,119,114,105,116,101,0,121,10,9469,9498,171,102,105,108,101,58,116,101,108,108,0,122,10,9485,9513,171,102,105,108,101,58,115,101,101,107,0,123,10,9500,9528,171,102,105,108,101,58,115,105,122,101,0,124,10,9515,9545,171,102,105,108,101,58,100,101,108,101,116,101,0,125,10,9530,9561,171,102,105,108,101,58,102,108,117,115,104,0,126,10,9547,9579,171,102,105,108,101,58,101,120,105,115,116,115,63,0,1,0,2049,9436,2,2049,2399,1793,9593,2049,9452,2049,2289,10,1,9588,1793,9601,3,2049,2301,10,1,9597,2049,122,10,9563,9613,158,70,73,68,0,0,9606,9623,158,70,83,105,122,101,0,0,9614,9634,158,65,99,116,105,111,110,0,0,9624,9645,158,66,117,102,102,101,114,0,0,9635,9655,171,45,101,111,102,63,0,3841,9613,2049,9498,3841,9623,13,10,9646,9675,171,112,114,101,115,101,114,118,101,0,1,9613,1793,9690,1,9623,1793,9685,8,10,1,9683,2049,3037,10,1,9679,2049,3037,10,9563,9713,171,102,105,108,101,58,114,101,97,100,45,108,105,110,101,0,4097,9613,1793,9770,2049,1910,2,4097,9645,2049,3419,1793,9762,3841,9613,2049,9467,2,2049,3327,1793,9739,1,13,11,10,1,9735,1793,9747,1,10,11,10,1,9743,1793,9755,1,0,11,10,1,9751,2049,2136,22,22,10,1,9726,2049,2230,2049,3351,3,10,1,9717,2049,3443,3841,9645,10,9695,9799,171,102,105,108,101,58,102,111,114,45,101,97,99,104,45,108,105,110,101,0,1793,9836,4097,9634,1,0,2049,9436,4097,9613,3841,9613,2049,9528,4097,9623,1793,9827,3841,9613,2049,9713,3841,9634,8,2049,9655,10,1,9817,2049,2204,3841,9613,2049,9452,10,1,9801,2049,9675,10,9777,9848,158,70,73,68,0,0,9841,9857,158,83,105,122,101,0,0,9777,9872,171,102,105,108,101,58,115,108,117,114,112,0,1793,9908,1,0,2049,9436,4097,9848,2049,3419,3841,9848,2049,9528,4097,9857,3841,9857,1793,9899,3841,9848,2049,9467,2049,3327,10,1,9892,2049,2259,3841,9848,2049,9452,10,1,9874,2049,3443,10,9858,9920,158,70,73,68,0,0,9858,9934,171,102,105,108,101,58,115,112,101,119,0,1,1,2049,9436,4097,9920,1793,9947,3841,9920,2049,9483,10,1,9942,2049,3968,3841,9920,2049,9452,10,9921,9963,171,98,121,101,0,2049,3640,115,116,116,121,32,45,99,98,114,101,97,107,0,1,9965,2049,9114,1,0,2049,9144,10,9956,9998,171,118,101,114,115,105,111,110,0,3841,4,1,100,20,2049,8467,1,46,2049,8405,2049,8467,10,9987,10022,171,98,97,110,110,101,114,0,2049,3640,82,69,84,82,79,32,49,50,32,40,114,120,45,0,1,10024,2049,8449,2049,9998,1,41,2049,8405,2049,8413,2049,1543,2049,8467,2049,3640,32,77,65,88,44,32,84,73,66,32,64,32,49,48,50,53,44,32,72,101,97,112,32,64,32,0,1,10056,2049,8449,2049,1910,2049,8467,2049,8413,10,10012,10101,171,101,111,108,63,0,1793,10107,1,13,11,10,1,10103,1793,10115,1,10,11,10,1,10111,1793,10123,1,32,11,10,1,10119,2049,2136,22,22,10,10093,10140,171,118,97,108,105,100,63,0,2,2049,79,2049,2399,10,10130,10152,171,111,107,0,2049,1788,1793,10169,2049,8413,2049,3640,79,107,32,0,1,10160,2049,8449,10,1,10156,2049,128,10,10146,10187,171,99,104,101,99,107,45,101,111,102,0,2,1,4,11,1793,10196,2049,9963,10,1,10193,2049,130,10,10174,10209,171,103,101,116,115,0,1793,10236,1,1025,2049,3419,1793,10227,2049,8570,2,2049,3327,2049,10187,2049,10101,10,1,10217,2049,2230,2049,3293,2049,3734,10,1,10211,2049,3443,10,9956,10251,171,108,105,115,116,101,110,0,2049,3640,115,116,116,121,32,99,98,114,101,97,107,0,1,10253,2049,9114,2049,10022,2049,10152,2049,10209,2049,10140,1793,10284,2049,396,2049,10152,10,1,10279,1793,10290,3,10,1,10288,2049,122,1,10273,7,10,0 }; diff --git a/interfaces/rre.c b/interfaces/rre.c index 0399194..a3a7eeb 100644 --- a/interfaces/rre.c +++ b/interfaces/rre.c @@ -653,6 +653,21 @@ void float_to_number() { stack_push((CELL)a); } +void float_sin() { + double a = float_pop(); + float_push(sin(a)); +} + +void float_cos() { + double a = float_pop(); + float_push(cos(a)); +} + +void float_tan() { + double a = float_pop(); + float_push(tan(a)); +} + void ngaFloatingPointUnit() { switch (stack_pop()) { case 0: float_from_number(); @@ -693,6 +708,12 @@ void ngaFloatingPointUnit() { break; case 18: float_to_number(); break; + case 19: float_sin(); + break; + case 20: float_cos(); + break; + case 21: float_tan(); + break; default: ; } } diff --git a/interfaces/rre.forth b/interfaces/rre.forth index 0b1a7fc..403e9b2 100644 --- a/interfaces/rre.forth +++ b/interfaces/rre.forth @@ -41,6 +41,9 @@ This is a set of extensions for RRE. :prefix:. (s-__f:-f) compiling? [ s:keep ] [ s:temp ] choose &s:to-float class:word ; immediate :putf (f:-) f:to-string puts ; +:f:sin (f:f-f) #19 `-6000 ; +:f:cos (f:f-f) #20 `-6000 ; +:f:tan (f:f-f) #21 `-6000 ; ~~~ --------------------------------------------------------------- diff --git a/words.tsv b/words.tsv index 8262dac..a0b6f76 100644 --- a/words.tsv +++ b/words.tsv @@ -140,6 +140,7 @@ f:- - - FF-F Subtract F2 from F1 returing the result. class:word {n/a} {n/a} f f:-eq? -f - FF- Compare two floating point values for inequality. Returns `TRUE` if they are not equal or `FALSE` otherwise. class:word {n/a} {n/a} f rre f:/ - - FF-F Divide floating point value F1 by F2. class:word {n/a} {n/a} f rre f:abs - - F-F Return the absolute value for a floating point value. class:word {n/a} {n/a} f rre +f:cos - - f-f Return the cosine of a floating point number. class:word {n/a} {n/a} f rre f:depth -n - - Return the number of items on the floating point stack. class:word {n/a} {n/a} f rre f:drop - - F- Discard the top item on the floating point stack. class:word {n/a} {n/a} f rre f:dup - - F-FF Duplicate the top item on the floating point stack. class:word {n/a} {n/a} f rre @@ -153,7 +154,9 @@ f:negative? -f - F- Return `TRUE` if floating point value is negative or `FALSE` f:over - - FG-FGF Put a copy of the second floating point value over the top one. class:word {n/a} {n/a} f rre f:positive? -f - F- Return `TRUE` if floating point value is positive or `FALSE` otherwise. class:word {n/a} {n/a} f rre f:power - - FF-F Return F1^F2 for floating point values. class:word {n/a} {n/a} f rre +f:sin - - f-f Return the sine of a floating point number. class:word {n/a} {n/a} f rre f:swap - - FG-GF Exchange the top and second items on the floating point stack. class:word {n/a} {n/a} f rre +f:tan - - f-f Return the tangent of a floating point number. class:word {n/a} {n/a} f rre f:to-number -n - F- Convert a floating point value into a number. class:word {n/a} {n/a} f rre f:to-string -s - F- Convert a floating point value into a string. class:word {n/a} {n/a} f rre f:tuck - - FG-GFG Tuck a copy of the top floating point value under the second one. class:word {n/a} {n/a} f rre