From dd742823b28a572765792eb569586c69fd354f7a Mon Sep 17 00:00:00 2001 From: crc <> Date: Mon, 22 Aug 2022 09:26:07 +0000 Subject: [PATCH] add mem:fetch-double, mem:cell+, double:swap from Rick Carlino FossilOrigin-Name: 37e2a4d285b6245656eda3514955b7c4da3e840948ef022802536881f1a654c2 --- interface/double.retro | 3 + interface/malloc.retro | 3 + vm/nga-c/image.c | 198 ++++++++++++++++------------------------- 3 files changed, 84 insertions(+), 120 deletions(-) diff --git a/interface/double.retro b/interface/double.retro index 8f7a338..a3c0e6f 100644 --- a/interface/double.retro +++ b/interface/double.retro @@ -10,4 +10,7 @@ :double:const (nns-) double:var &double:fetch does ; + +:double:swap (nnmm-mmnn) + rot push rot pop ; ~~~ diff --git a/interface/malloc.retro b/interface/malloc.retro index b5d183e..d4b6543 100644 --- a/interface/malloc.retro +++ b/interface/malloc.retro @@ -20,4 +20,7 @@ :mem:resize (aan--) RESIZE mem:invoke ; }} +:mem:cell+ (nnn-n) #4 * + ; +:mem:fetch-double (n-nn) + dup-pair #1 mem:cell+ fetch push mem:fetch pop ; ~~~ diff --git a/vm/nga-c/image.c b/vm/nga-c/image.c index 6f25750..38dde8d 100644 --- a/vm/nga-c/image.c +++ b/vm/nga-c/image.c @@ -10,8 +10,8 @@ #define CELL_MAX LLONG_MAX - 1 #endif #endif -CELL ngaImageCells = 19871; -CELL ngaImage[] = { 1793,18464,19826,19870,202207,410,382,1242,1535,0,10,1,10,2,10,3,10,4,10, +CELL ngaImageCells = 19033; +CELL ngaImage[] = { 1793,18540,18988,19032,202207,410,382,1242,1535,0,10,1,10,2,10,3,10,4,10, 5,10,6,10,7,10,8,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,68223234,1,2575, 85000450,1,656912,161,178,268505089,63,62,285281281,0,63,2063,10,101384453,0,9,10,68485378,255,18350338, @@ -20,8 +20,8 @@ CELL ngaImage[] = { 1793,18464,19826,19870,202207,410,382,1242,1535,0,10,1,10,2, 101777669,1,17565186,107,524545,111,64,167838467,-1,134287105,3,59,659457,3,459023,128,2049,56,25,2049, 128,1793,135,2049,135,117506307,0,128,0,524545,26,133,168820993,0,147,1642241,147,134283523,11,133, 1793,128,524545,2049,128,1793,128,16846593,147,161,178,1793,64,16846593,147,133,178,1793,64,7, - 10,659713,1,659713,2,659713,3,659713,4,659713,5,1793,19633,17108737,3,2,524559,128,2049,128, - 2049,128,524545,0,128,524545,0,128,2049,142,168820998,2,17700,1242,167841793,211,9,17826049,0,211, + 10,659713,1,659713,2,659713,3,659713,4,659713,5,1793,18795,17108737,3,2,524559,128,2049,128, + 2049,128,524545,0,128,524545,0,128,2049,142,168820998,2,17776,1242,167841793,211,9,17826049,0,211, 2,15,25,524546,188,134287105,212,116,2305,213,459023,221,134287361,212,216,659201,211,10,659969,7, 2049,56,25,17694978,58,237,9,84152833,48,319750404,236,117507601,239,184618754,45,25,16974851,-1,168886532,1, 134284289,1,252,134284289,0,239,660227,32,0,0,115,105,103,105,108,58,105,0,285278479,269, @@ -170,7 +170,7 @@ CELL ngaImage[] = { 1793,18464,19826,19870,202207,410,382,1242,1535,0,10,1,10,2, 110,58,105,110,99,0,659713,1,10,3114,3139,166,16136,266800217,110,58,100,101,99,0, 659969,1,10,3128,3158,166,16136,1032861494,110,58,98,101,116,119,101,101,110,63,0,67503109, 1793,3166,67503109,67503109,2049,3106,10,1,3161,2049,2241,11,10,3142,3187,166,16136,-2130983749,83,99, - 111,112,101,76,105,115,116,0,19728,19782,10,3172,3198,166,16136,5864091,123,123,0,2049, + 111,112,101,76,105,115,116,0,18890,18944,10,3172,3198,166,16136,5864091,123,123,0,2049, 1576,2,1,3187,2049,59,16,10,3190,3225,166,16136,-1644352334,45,45,45,114,101,118,101, 97,108,45,45,45,0,2049,1576,1,3187,2049,3125,16,10,3207,3241,166,16136,5864159,125, 125,0,1,3187,2049,56,4,15,11,1793,3255,3841,3187,4097,2,10,1,3250,1793,3281, @@ -228,7 +228,7 @@ CELL ngaImage[] = { 1793,18464,19826,19870,202207,410,382,1242,1535,0,10,1,10,2, 10,4239,4297,154,16136,1204567429,84,101,109,112,83,116,114,105,110,103,115,0,32,4280, 4317,154,16136,1808866840,84,101,109,112,83,116,114,105,110,103,77,97,120,0,512,4298, 4331,166,16136,-1027089649,83,84,82,73,78,71,83,0,2049,1545,3841,4297,3841,4317,19,18, - 10,4318,4353,154,0,0,67,117,114,114,101,110,116,0,20,10,4340,4370,166,0, + 10,4318,4353,154,0,0,67,117,114,114,101,110,116,0,16,10,4340,4370,166,0, 0,115,58,112,111,105,110,116,101,114,0,3841,4353,3841,4317,19,2049,4331,17,10, 4355,4391,166,0,0,115,58,110,101,120,116,0,1,4353,2049,3864,3841,4353,3841,4297, 11,1793,4407,1,0,4097,4353,10,1,4402,9,10,4318,4423,166,16136,410724968,115,58,116, @@ -886,122 +886,80 @@ CELL ngaImage[] = { 1793,18464,19826,19870,202207,410,382,1242,1535,0,10,1,10,2, 1419216868,100,111,117,98,108,101,58,102,101,116,99,104,0,2049,56,4,15,10,17435, 17476,166,0,1435167943,100,111,117,98,108,101,58,115,116,111,114,101,0,1,17,2049, 2229,2049,59,16,10,17458,17502,166,0,1416012481,100,111,117,98,108,101,58,99,111,110, - 115,116,0,2049,17427,1,17453,2049,8460,10,17484,17525,166,0,0,109,101,109,58,105, - 110,118,111,107,101,0,1,15,2049,10655,2049,10636,10,17509,0,154,0,0,65,76, - 76,79,67,0,17532,1,154,0,0,70,82,69,69,0,17543,2,154,0,0,83, - 84,79,82,69,0,17553,3,154,0,0,70,69,84,67,72,0,17564,4,154,0, - 0,82,69,83,73,90,69,0,17484,17602,166,0,369169257,109,101,109,58,97,108,108, - 111,99,0,1,0,2049,17525,10,17587,17622,166,0,390806699,109,101,109,58,115,116,111, - 114,101,0,1,2,2049,17525,10,17607,17642,166,0,374855624,109,101,109,58,102,101,116, - 99,104,0,1,3,2049,17525,10,17627,17661,166,0,1963630784,109,101,109,58,102,114,101, - 101,0,1,1,2049,17525,10,17647,17682,166,0,-45070288,109,101,109,58,114,101,115,105, - 122,101,0,1,4,2049,17525,10,17666,17696,166,18483,193470948,84,73,66,0,1,7,15, - 10,17687,17716,166,18483,-460132687,105,109,97,103,101,58,115,97,118,101,0,1,1000,2049, - 10655,2049,10636,10,17700,17734,166,0,0,101,100,105,116,63,0,2,1793,17741,1,8, - 11,10,1,17737,1793,17749,1,127,11,10,1,17745,2049,2255,22,10,17723,17767,166,0, - 0,103,97,116,104,101,114,0,2049,17734,1,15,1,4134,2049,64,10,17755,17787,166, - 0,0,99,121,99,108,101,0,2049,10985,2049,2217,4,8,2049,2644,25,3,2049,17767, - 1,17787,7,10,17700,17820,166,18483,-1658019367,112,97,114,115,101,45,117,110,116,105,108, - 0,1793,17832,2049,4451,2049,4234,2049,17787,771,2049,4096,10,1,17822,2049,4260,10,17803,17848, - 166,18483,272733106,115,58,103,101,116,0,1793,17870,1793,17856,1,13,11,10,1,17852,1793, - 17864,1,10,11,10,1,17860,2049,2255,22,10,1,17850,2049,17820,10,17837,17886,166,18483, - 255552908,99,108,101,97,114,0,2049,4472,92,94,91,50,74,92,94,91,48,59,48, - 72,0,1,17888,2049,8246,2049,10761,10,17875,17920,154,18483,-976122143,78,111,69,99,104,111, - 0,0,17908,17930,154,0,0,69,79,84,0,0,17921,17945,154,0,0,73,103,110, - 111,114,105,110,103,0,0,17931,17961,166,0,0,105,103,110,111,114,105,110,103, - 63,0,3841,17945,10,17946,17977,166,0,0,118,101,114,115,105,111,110,0,3841,4, - 1,100,20,10,17964,17994,166,0,0,100,111,110,101,63,0,2,4097,17930,1793,18003, - 1,13,11,10,1,17999,1793,18011,1,10,11,10,1,18007,1793,18019,1,32,11,10, - 1,18015,2049,2298,22,22,10,17983,18036,166,0,0,101,111,108,63,0,3841,17930,1793, - 18044,1,13,11,10,1,18040,1793,18052,1,10,11,10,1,18048,2049,2255,22,10,18026, - 18070,166,0,0,118,97,108,105,100,63,0,2,2049,102,2049,2812,10,18058,18091,166, - 0,0,99,104,101,99,107,45,101,111,102,0,2,1793,18098,1,-1,11,10,1, - 18094,1793,18106,1,4,11,10,1,18102,2049,2255,22,1793,18116,2049,11052,10,1,18113,9, - 10,18076,18128,166,0,0,98,115,0,2049,4212,1,2,2049,2675,1793,18140,2049,4160,3, - 10,1,18136,9,2049,4160,3,10,18120,18161,166,0,0,99,104,101,99,107,45,98, - 115,0,2,1793,18168,1,8,11,10,1,18164,1793,18176,1,127,11,10,1,18172,2049, - 2255,22,1793,18186,2049,18128,10,1,18183,9,10,18147,18201,166,0,0,99,104,101,99, - 107,0,2049,18091,2049,18161,10,18190,18221,166,0,0,99,104,97,114,97,99,116,101, - 114,0,2049,10985,2,2049,4134,10,18206,18239,166,0,0,98,117,102,102,101,114,0, - 1793,18249,2049,17696,2049,4234,8,2049,4096,10,1,18241,2049,4260,10,18227,18270,166,0,0, - 114,101,97,100,45,116,111,107,101,110,0,1793,18286,1793,18281,2049,18221,2049,18201,2049, - 17994,10,1,18274,2049,2397,10,1,18272,2049,18239,2049,4587,10,18254,18304,166,0,0,105, - 110,112,117,116,0,2049,18270,2049,18070,10,18293,18322,166,0,0,112,114,111,99,101, - 115,115,0,2049,17961,1793,18340,771,2049,18036,1793,18336,1,17945,2049,3931,10,1,18331,9, - 10,1,18326,2049,2862,1,410,1,15,2049,64,10,17908,18359,178,18483,5861507,47,47,0, - 2049,15624,1,17945,2049,3916,10,18351,18378,166,18483,-208531877,98,97,110,110,101,114,0,2049, - 17977,2049,4472,82,69,84,82,79,32,49,50,32,40,37,110,46,37,110,41,92, - 110,0,1,18382,2049,8246,2049,10761,2049,10837,2049,1545,2049,10837,18,2049,1545,2049,4472,37, - 110,32,77,97,120,44,32,37,110,32,85,115,101,100,44,32,37,110,32,70, - 114,101,101,92,110,0,1,18418,2049,8246,2049,10761,10,18366,18464,166,18483,192495636,108,105, - 115,116,101,110,0,3841,17920,1793,18471,2049,18378,10,1,18468,2049,72,2049,18304,2049,18322, - 1,18475,7,10,105,110,116,101,114,102,97,99,101,47,114,101,116,114,111,45, - 117,110,105,120,46,114,101,116,114,111,0,18452,18523,154,0,0,83,111,117,114, - 99,101,115,0,2,18762,18956,0,0,0,0,0,0,0,0,0,0,0,0,0, + 115,116,0,2049,17427,1,17453,2049,8460,10,17484,17526,166,0,-607259883,100,111,117,98,108, + 101,58,115,119,97,112,0,67503109,5,67503109,6,10,17509,17547,166,0,0,109,101,109, + 58,105,110,118,111,107,101,0,1,15,2049,10655,2049,10636,10,17531,0,154,0,0, + 65,76,76,79,67,0,17554,1,154,0,0,70,82,69,69,0,17565,2,154,0, + 0,83,84,79,82,69,0,17575,3,154,0,0,70,69,84,67,72,0,17586,4, + 154,0,0,82,69,83,73,90,69,0,17509,17624,166,0,369169257,109,101,109,58,97, + 108,108,111,99,0,1,0,2049,17547,10,17609,17644,166,0,390806699,109,101,109,58,115, + 116,111,114,101,0,1,2,2049,17547,10,17629,17664,166,0,374855624,109,101,109,58,102, + 101,116,99,104,0,1,3,2049,17547,10,17649,17683,166,0,1963630784,109,101,109,58,102, + 114,101,101,0,1,1,2049,17547,10,17669,17704,166,0,-45070288,109,101,109,58,114,101, + 115,105,122,101,0,1,4,2049,17547,10,17688,17724,166,0,371289385,109,101,109,58,99, + 101,108,108,43,0,1,4,19,17,10,17709,17751,166,0,84495120,109,101,109,58,102, + 101,116,99,104,45,100,111,117,98,108,101,0,2049,2217,1,1,2049,17724,15,5, + 2049,17664,6,10,17729,17772,166,18559,193470948,84,73,66,0,1,7,15,10,17763,17792,166, + 18559,-460132687,105,109,97,103,101,58,115,97,118,101,0,1,1000,2049,10655,2049,10636,10, + 17776,17810,166,0,0,101,100,105,116,63,0,2,1793,17817,1,8,11,10,1,17813, + 1793,17825,1,127,11,10,1,17821,2049,2255,22,10,17799,17843,166,0,0,103,97,116, + 104,101,114,0,2049,17810,1,15,1,4134,2049,64,10,17831,17863,166,0,0,99,121, + 99,108,101,0,2049,10985,2049,2217,4,8,2049,2644,25,3,2049,17843,1,17863,7,10, + 17776,17896,166,18559,-1658019367,112,97,114,115,101,45,117,110,116,105,108,0,1793,17908,2049, + 4451,2049,4234,2049,17863,771,2049,4096,10,1,17898,2049,4260,10,17879,17924,166,18559,272733106,115, + 58,103,101,116,0,1793,17946,1793,17932,1,13,11,10,1,17928,1793,17940,1,10,11, + 10,1,17936,2049,2255,22,10,1,17926,2049,17896,10,17913,17962,166,18559,255552908,99,108,101, + 97,114,0,2049,4472,92,94,91,50,74,92,94,91,48,59,48,72,0,1,17964, + 2049,8246,2049,10761,10,17951,17996,154,18559,-976122143,78,111,69,99,104,111,0,0,17984,18006, + 154,0,0,69,79,84,0,0,17997,18021,154,0,0,73,103,110,111,114,105,110, + 103,0,0,18007,18037,166,0,0,105,103,110,111,114,105,110,103,63,0,3841,18021, + 10,18022,18053,166,0,0,118,101,114,115,105,111,110,0,3841,4,1,100,20,10, + 18040,18070,166,0,0,100,111,110,101,63,0,2,4097,18006,1793,18079,1,13,11,10, + 1,18075,1793,18087,1,10,11,10,1,18083,1793,18095,1,32,11,10,1,18091,2049,2298, + 22,22,10,18059,18112,166,0,0,101,111,108,63,0,3841,18006,1793,18120,1,13,11, + 10,1,18116,1793,18128,1,10,11,10,1,18124,2049,2255,22,10,18102,18146,166,0,0, + 118,97,108,105,100,63,0,2,2049,102,2049,2812,10,18134,18167,166,0,0,99,104, + 101,99,107,45,101,111,102,0,2,1793,18174,1,-1,11,10,1,18170,1793,18182,1, + 4,11,10,1,18178,2049,2255,22,1793,18192,2049,11052,10,1,18189,9,10,18152,18204,166, + 0,0,98,115,0,2049,4212,1,2,2049,2675,1793,18216,2049,4160,3,10,1,18212,9, + 2049,4160,3,10,18196,18237,166,0,0,99,104,101,99,107,45,98,115,0,2,1793, + 18244,1,8,11,10,1,18240,1793,18252,1,127,11,10,1,18248,2049,2255,22,1793,18262, + 2049,18204,10,1,18259,9,10,18223,18277,166,0,0,99,104,101,99,107,0,2049,18167, + 2049,18237,10,18266,18297,166,0,0,99,104,97,114,97,99,116,101,114,0,2049,10985, + 2,2049,4134,10,18282,18315,166,0,0,98,117,102,102,101,114,0,1793,18325,2049,17772, + 2049,4234,8,2049,4096,10,1,18317,2049,4260,10,18303,18346,166,0,0,114,101,97,100, + 45,116,111,107,101,110,0,1793,18362,1793,18357,2049,18297,2049,18277,2049,18070,10,1,18350, + 2049,2397,10,1,18348,2049,18315,2049,4587,10,18330,18380,166,0,0,105,110,112,117,116, + 0,2049,18346,2049,18146,10,18369,18398,166,0,0,112,114,111,99,101,115,115,0,2049, + 18037,1793,18416,771,2049,18112,1793,18412,1,18021,2049,3931,10,1,18407,9,10,1,18402,2049, + 2862,1,410,1,15,2049,64,10,17984,18435,178,18559,5861507,47,47,0,2049,15624,1,18021, + 2049,3916,10,18427,18454,166,18559,-208531877,98,97,110,110,101,114,0,2049,18053,2049,4472,82, + 69,84,82,79,32,49,50,32,40,37,110,46,37,110,41,92,110,0,1,18458, + 2049,8246,2049,10761,2049,10837,2049,1545,2049,10837,18,2049,1545,2049,4472,37,110,32,77,97, + 120,44,32,37,110,32,85,115,101,100,44,32,37,110,32,70,114,101,101,92, + 110,0,1,18494,2049,8246,2049,10761,10,18442,18540,166,18559,192495636,108,105,115,116,101,110, + 0,3841,17996,1793,18547,2049,18454,10,1,18544,2049,72,2049,18380,2049,18398,1,18551,7,10, + 105,110,116,101,114,102,97,99,101,47,114,101,116,114,111,45,117,110,105,120, + 46,114,101,116,114,111,0,18528,18599,154,0,0,83,111,117,114,99,101,115,0, + 1,18838,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,18510,18663,166,0,0,107,110,111, - 119,110,63,0,2,1,18523,2049,9003,10,18651,18680,166,0,0,105,110,100,101,120, - 0,1,18523,4,2049,9320,1,18523,4,2049,9140,10,18669,18703,166,0,0,114,101,99, - 111,114,100,0,2049,4500,2,1,18523,2049,3864,3841,18523,1,18523,17,16,10,1793,18760, - 2049,15559,2049,18663,1793,18728,2049,18680,10,1,18725,1793,18735,2049,18703,10,1,18732,2049,64, - 1793,18748,1,190,1,2,17,8,10,1,18741,2049,2229,2049,1576,2049,184,16,2049,11116, - 10,1,18719,100,105,99,116,45,119,111,114,100,115,45,108,105,115,116,105,110, - 103,46,102,111,114,116,104,0,18452,18800,166,18762,-1519205998,100,58,119,111,114,100,115, - 0,1793,18809,2049,188,2049,10761,2049,10731,10,1,18802,2049,8491,10,18787,18832,166,18762,1750461083, - 100,58,119,111,114,100,115,45,119,105,116,104,0,2049,1977,2049,5573,1793,18863,2049, - 188,2,2049,1977,2049,5286,1793,18852,2049,10761,2049,10731,10,1,18847,1793,18858,3,10,1, - 18856,2049,64,10,1,18838,2049,8491,10,18814,18889,166,18762,-1509196721,100,105,115,112,108,97, - 121,45,105,102,45,108,101,102,116,0,2,2049,1977,2049,5519,1793,18901,2049,10761,2049, - 10731,10,1,18896,1793,18907,3,10,1,18905,2049,64,10,18814,18940,166,18762,-1159574567,100,58, - 119,111,114,100,115,45,98,101,103,105,110,110,105,110,103,45,119,105,116,104, - 0,2049,1977,2049,5573,1793,18951,2049,188,2049,18889,10,1,18946,2049,8491,10,108,105,115, - 116,46,102,111,114,116,104,0,18912,18980,154,18956,72570505,83,111,117,114,99,101,115, - 0,2,19219,19413,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,18967,19120,166,18956,159149617,107,110,111,119,110,63, - 0,2,1,18980,2049,9003,10,19108,19137,166,18956,262739357,105,110,100,101,120,0,1,18980, - 4,2049,9320,1,18980,4,2049,9140,10,19126,19160,166,18956,421984292,114,101,99,111,114,100, - 0,2049,4500,2,1,18980,2049,3864,3841,18980,1,18980,17,16,10,1793,19217,2049,15559,2049, - 19120,1793,19185,2049,19137,10,1,19182,1793,19192,2049,19160,10,1,19189,2049,64,1793,19205,1, - 190,1,2,17,8,10,1,19198,2049,2229,2049,1576,2049,184,16,2049,11116,10,1,19176, - 100,105,99,116,45,119,111,114,100,115,45,108,105,115,116,105,110,103,46,102, - 111,114,116,104,0,18912,19257,166,19219,-1519205998,100,58,119,111,114,100,115,0,1793,19266, - 2049,188,2049,10761,2049,10731,10,1,19259,2049,8491,10,19244,19289,166,19219,1750461083,100,58,119, - 111,114,100,115,45,119,105,116,104,0,2049,1977,2049,5573,1793,19320,2049,188,2,2049, - 1977,2049,5286,1793,19309,2049,10761,2049,10731,10,1,19304,1793,19315,3,10,1,19313,2049,64, - 10,1,19295,2049,8491,10,19271,19346,166,19219,-1509196721,100,105,115,112,108,97,121,45,105, - 102,45,108,101,102,116,0,2,2049,1977,2049,5519,1793,19358,2049,10761,2049,10731,10,1, - 19353,1793,19364,3,10,1,19362,2049,64,10,19271,19397,166,19219,-1159574567,100,58,119,111,114, - 100,115,45,98,101,103,105,110,110,105,110,103,45,119,105,116,104,0,2049,1977, - 2049,5573,1793,19408,2049,188,2049,19346,10,1,19403,2049,8491,10,108,105,115,116,46,102, - 111,114,116,104,0,19369,19437,154,19413,72570505,83,111,117,114,99,101,115,0,1,19676, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,19424,19577,166,19413,159149617,107,110,111,119,110,63,0,2,1, - 19437,2049,9003,10,19565,19594,166,19413,262739357,105,110,100,101,120,0,1,19437,4,2049,9320, - 1,19437,4,2049,9140,10,19583,19617,166,19413,421984292,114,101,99,111,114,100,0,2049,4500, - 2,1,19437,2049,3864,3841,19437,1,19437,17,16,10,1793,19674,2049,15559,2049,19577,1793,19642, - 2049,19594,10,1,19639,1793,19649,2049,19617,10,1,19646,2049,64,1793,19662,1,190,1,2, - 17,8,10,1,19655,2049,2229,2049,1576,2049,184,16,2049,11116,10,1,19633,100,105,99, - 116,45,119,111,114,100,115,45,108,105,115,116,105,110,103,46,102,111,114,116, - 104,0,19369,19714,166,19676,-1519205998,100,58,119,111,114,100,115,0,1793,19723,2049,188,2049, - 10761,2049,10731,10,1,19716,2049,8491,10,19701,19746,166,19676,1750461083,100,58,119,111,114,100, - 115,45,119,105,116,104,0,2049,1977,2049,5573,1793,19777,2049,188,2,2049,1977,2049,5286, - 1793,19766,2049,10761,2049,10731,10,1,19761,1793,19772,3,10,1,19770,2049,64,10,1,19752, - 2049,8491,10,19728,19803,166,19676,-1509196721,100,105,115,112,108,97,121,45,105,102,45,108, - 101,102,116,0,2,2049,1977,2049,5519,1793,19815,2049,10761,2049,10731,10,1,19810,1793,19821, - 3,10,1,19819,2049,64,10,19728,19854,166,19676,-1159574567,100,58,119,111,114,100,115,45, - 98,101,103,105,110,110,105,110,103,45,119,105,116,104,0,2049,1977,2049,5573,1793, - 19865,2049,188,2049,19803,10,1,19860,2049,8491,10,0 }; + 0,0,0,0,0,0,0,0,18586,18739,166,0,0,107,110,111,119,110,63,0, + 2,1,18599,2049,9003,10,18727,18756,166,0,0,105,110,100,101,120,0,1,18599,4, + 2049,9320,1,18599,4,2049,9140,10,18745,18779,166,0,0,114,101,99,111,114,100,0, + 2049,4500,2,1,18599,2049,3864,3841,18599,1,18599,17,16,10,1793,18836,2049,15559,2049,18739, + 1793,18804,2049,18756,10,1,18801,1793,18811,2049,18779,10,1,18808,2049,64,1793,18824,1,190, + 1,2,17,8,10,1,18817,2049,2229,2049,1576,2049,184,16,2049,11116,10,1,18795,100, + 105,99,116,45,119,111,114,100,115,45,108,105,115,116,105,110,103,46,102,111, + 114,116,104,0,18528,18876,166,18838,-1519205998,100,58,119,111,114,100,115,0,1793,18885,2049, + 188,2049,10761,2049,10731,10,1,18878,2049,8491,10,18863,18908,166,18838,1750461083,100,58,119,111, + 114,100,115,45,119,105,116,104,0,2049,1977,2049,5573,1793,18939,2049,188,2,2049,1977, + 2049,5286,1793,18928,2049,10761,2049,10731,10,1,18923,1793,18934,3,10,1,18932,2049,64,10, + 1,18914,2049,8491,10,18890,18965,166,18838,-1509196721,100,105,115,112,108,97,121,45,105,102, + 45,108,101,102,116,0,2,2049,1977,2049,5519,1793,18977,2049,10761,2049,10731,10,1,18972, + 1793,18983,3,10,1,18981,2049,64,10,18890,19016,166,18838,-1159574567,100,58,119,111,114,100, + 115,45,98,101,103,105,110,110,105,110,103,45,119,105,116,104,0,2049,1977,2049, + 5573,1793,19027,2049,188,2049,18965,10,1,19022,2049,8491,10,0 };