update nga-in-swift; now loads image from image file; works w/current 64-bit image; overflow in math working properly; fixed some input issues

FossilOrigin-Name: 20773b38d2926233f898ea4f77440317d16d56ec4ec01effee352294f14be7d2
This commit is contained in:
crc 2023-01-15 22:09:35 +00:00
parent 0ebb969628
commit 1be227fde8
10 changed files with 179 additions and 1076 deletions

View file

@ -61,10 +61,10 @@ null terminated. The `as` strings are length-prefixed instead.)
:as:th n:inc n:add ;
:as:store a:th store ;
:as:fetch s:th fetch ;
:as:fetch as:th fetch ;
:aa:first (a-n) #0 a:fetch ;
:aa:last (a-n) dup a:length n:dec aa:fetch ;
:aa:last (a-n) dup a:length n:dec a:fetch ;
:as:first aa:first ;
:as:last aa:last ;
@ -73,7 +73,7 @@ null terminated. The `as` strings are length-prefixed instead.)
:as:dup a:dup ;
:as:last aa:last ;
:as:temp aa:dup ;
:as:temp a:dup ;
:as:trim-right (s-s)
as:temp [ dup v:dec [ as:last #32 lteq? ] sip swap ] while
@ -108,8 +108,8 @@ null terminated. The `as` strings are length-prefixed instead.)
:as:eq? (ss-f) aa:eq? ;
:as:-eq? (ss-f) aa:-eq? ;
:aa:dup here [ dup a:length comma &comma a:for-each ] dip ;
:as:dup aa:dup ;
:a:dup here [ dup a:length comma &comma a:for-each ] dip ;
:as:dup a:dup ;
:as:temp ;
:as:keep ;

View file

@ -10,8 +10,8 @@
#define CELL_MAX LLONG_MAX - 1
#endif
#endif
CELL ngaImageCells = 20166;
CELL ngaImage[] = { 1793,19675,20121,20165,202301,415,387,1247,1535,0,10995,0,10,1,10,2,10,3,10,
CELL ngaImageCells = 20171;
CELL ngaImage[] = { 1793,19680,20126,20170,202301,415,387,1247,1535,0,10995,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,163,180,268505089,65,64,285281281,0,65,2063,10,101384453,0,9,10,68485378,
@ -20,8 +20,8 @@ CELL ngaImage[] = { 1793,19675,20121,20165,202301,415,387,1247,1535,0,10995,0,10
1,251790353,101777669,1,17565186,109,524545,113,66,167838467,-1,134287105,3,61,659457,3,459023,130,2049,58,
25,2049,130,1793,137,2049,137,117506307,0,130,0,524545,28,135,168820993,0,149,1642241,149,134283523,
13,135,1793,130,524545,2049,130,1793,130,16846593,149,163,180,1793,66,16846593,149,135,180,1793,
66,7,10,659713,1,659713,2,659713,3,659713,4,659713,5,1793,19930,17108737,3,2,524559,130,
2049,130,2049,130,524545,0,130,524545,0,130,2049,144,1048838,2,1642241,10,7,18911,1247,167841793,
66,7,10,659713,1,659713,2,659713,3,659713,4,659713,5,1793,19935,17108737,3,2,524559,130,
2049,130,2049,130,524545,0,130,524545,0,130,2049,144,1048838,2,1642241,10,7,18916,1247,167841793,
216,11,17826049,0,216,2,15,25,524546,190,134287105,217,118,2305,218,459023,226,134287361,217,221,
659201,216,10,659969,7,2049,58,25,17694978,58,242,9,84152833,48,319750404,241,117507601,244,184618754,45,
25,16974851,-1,168886532,1,134284289,1,257,134284289,0,244,660227,32,0,0,115,105,103,105,108,
@ -170,7 +170,7 @@ CELL ngaImage[] = { 1793,19675,20121,20165,202301,415,387,1247,1535,0,10995,0,10
110,58,105,110,99,0,659713,1,10,3114,3139,168,16059,210720197721,110,58,100,101,99,0,
659969,1,10,3128,3158,168,16059,8246617666422322998,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,168,16059,249861296566813883,83,99,
111,112,101,76,105,115,116,0,20023,20077,10,3172,3198,168,16059,5864091,123,123,0,2049,
111,112,101,76,105,115,116,0,20028,20082,10,3172,3198,168,16059,5864091,123,123,0,2049,
1576,2,1,3187,2049,61,16,10,3190,3225,168,16059,-6305314778776785742,45,45,45,114,101,118,101,
97,108,45,45,45,0,2049,1576,1,3187,2049,3125,16,10,3207,3241,168,16059,5864159,125,
125,0,1,3187,2049,58,4,15,11,1793,3255,3841,3187,4097,2,10,1,3250,1793,3281,
@ -885,138 +885,138 @@ CELL ngaImage[] = { 1793,19675,20121,20165,202301,415,387,1247,1535,0,10995,0,10
17433,168,0,249881599579432661,97,115,58,108,101,110,103,116,104,0,15,10,17418,17446,168,0,
210706783919,97,115,58,116,104,0,2049,3125,2049,16777,10,17435,17465,168,0,7572169693067168,97,115,58,
115,116,111,114,101,0,2049,9219,16,10,17451,17483,168,0,7572169677116093,97,115,58,102,101,
116,99,104,0,15,10,17469,17499,168,0,7572146430834761,97,97,58,102,105,114,115,116,0,
1,0,2049,9236,10,17485,17517,168,0,229458982959509,97,97,58,108,97,115,116,0,2,2049,
8598,2049,3139,10,17504,17537,168,0,7572169677258203,97,115,58,102,105,114,115,116,0,2049,17499,
10,17523,17553,168,0,229459687396583,97,115,58,108,97,115,116,0,2049,17517,10,17540,17572,168,
0,8246092782587163933,97,115,58,105,110,100,101,120,47,99,0,2049,17323,10,17556,17587,168,0,
6953323852444,97,115,58,100,117,112,0,2049,8810,10,17575,17603,168,0,229459687396583,97,115,58,108,
97,115,116,0,2049,17517,10,17590,17619,168,0,229459687688233,97,115,58,116,101,109,112,0,
10,17606,17639,168,0,-7106699936504964166,97,115,58,116,114,105,109,45,114,105,103,104,116,0,
2049,17619,1793,17661,2,2049,3881,1793,17655,2049,17603,1,32,2049,2659,10,1,17648,2049,2241,
4,10,1,17643,2049,2372,2,2049,3864,10,17620,17680,156,0,210690259379,83,116,97,114,116,
0,0,17669,17690,156,0,193455868,69,110,100,0,0,17681,17700,156,0,193463204,76,101,110,
0,0,17691,17715,168,0,7572371885291434,102,105,110,100,45,101,110,100,0,2,2049,17433,2,
4097,17700,67502597,2049,16777,2049,3125,4097,17690,2049,3125,10,17701,17745,168,0,7572707956476599,110,101,119,
45,115,105,122,101,0,3841,17680,67502597,4,2049,16790,3841,17700,4,2049,16790,10,17731,17768,
168,0,210723988469,112,97,116,99,104,0,67502597,16,10,17620,17789,168,0,-3569308011477864665,97,115,58,
116,114,105,109,45,108,101,102,116,0,2049,17587,2,1,0,2049,17483,1,32,11,
1793,17828,2,4097,17680,2049,17715,1793,17819,2049,58,1,32,12,67502597,3841,17690,12,21,10,
1,17808,2049,2372,2049,17745,2049,17768,10,1,17801,9,10,17771,17845,168,0,229459687702255,97,115,
58,116,114,105,109,0,2049,17789,2049,17639,10,17832,17863,180,0,229482595734745,115,105,103,105,
108,58,34,0,2049,1977,1793,17877,2,2049,104,2049,16858,1,16858,2049,4741,10,1,17867,
2049,2229,10,17850,17899,168,0,-4580099406349869736,97,115,58,102,111,114,45,101,97,99,104,0,
2049,8777,10,17882,17915,168,0,229458982815749,97,97,58,104,97,115,104,0,1,5381,4,1793,
17928,4,1,33,2049,16803,2049,16777,10,1,17920,2049,8777,10,17902,17946,168,0,229459687252823,97,
115,58,104,97,115,104,0,2049,17915,10,17933,17961,168,0,6953302506774,97,97,58,101,113,
63,0,2049,17915,4,2049,17915,11,10,17949,17981,168,0,229458980699715,97,97,58,45,101,113,
63,0,2049,17915,4,2049,17915,12,10,17968,18000,168,0,6953323853352,97,115,58,101,113,63,
0,2049,17961,10,17988,18016,168,0,229459685136789,97,115,58,45,101,113,63,0,2049,17981,10,
18003,18031,168,0,6953302505866,97,97,58,100,117,112,0,2049,1977,1793,18045,2,2049,8598,2049,
16858,1,16858,2049,8777,10,1,18035,2049,2229,10,18019,18062,168,0,6953323852444,97,115,58,100,
117,112,0,2049,18031,10,18050,18078,168,0,229459687688233,97,115,58,116,101,109,112,0,10,
18065,18092,168,0,229459687364536,97,115,58,107,101,101,112,0,10,18079,18110,168,0,-4580098812306212145,97,
115,58,116,111,45,117,112,112,101,114,0,1793,18121,2049,18062,1,6804,2049,17063,2049,
18078,10,1,18112,2049,16869,10,18093,18143,168,0,-4580098812316913748,97,115,58,116,111,45,108,111,
119,101,114,0,1793,18154,2049,18062,1,6829,2049,17063,2049,18078,10,1,18145,2049,16869,10,
18126,18177,168,0,-3527051417241377258,98,108,111,99,107,58,105,110,118,111,107,101,0,1,3,
2049,10534,2049,10515,10,18126,18200,168,0,8246131600073141446,98,108,111,99,107,58,114,101,97,100,
0,1,0,2049,18177,10,18184,18222,168,0,-4578818303223200395,98,108,111,99,107,58,119,114,105,
116,101,0,1,1,2049,18177,10,18205,18247,168,0,-4036225629868593021,98,108,111,99,107,58,115,
101,116,45,102,105,108,101,0,1,2,2049,18177,10,18227,18265,168,0,229480770855518,115,58,
115,112,108,105,116,0,2049,7184,10,18252,18291,168,0,6119006473764520940,115,58,115,112,108,105,
116,45,111,110,45,115,116,114,105,110,103,0,2049,7218,10,18268,18316,168,0,-2157201768052001381,
115,58,99,111,110,116,97,105,110,115,45,99,104,97,114,63,0,2049,4857,10,
18294,18343,168,0,-6456228026363444588,115,58,99,111,110,116,97,105,110,115,45,115,116,114,105,
110,103,63,0,2049,5286,10,18319,18370,168,0,-3160266536000611262,97,58,99,111,110,116,97,105,
110,115,45,115,116,114,105,110,103,63,0,2049,9099,10,18346,18389,168,0,8246014626430519194,97,
58,105,110,100,101,120,45,111,102,0,2049,9291,10,18373,18415,168,0,-5025353456659034242,97,58,
105,110,100,101,120,45,111,102,45,115,116,114,105,110,103,0,2049,9416,10,18392,
18434,168,0,8246850033149754348,115,58,105,110,100,101,120,45,111,102,0,2049,4779,10,18418,18460,
168,0,-94300875658333296,115,58,105,110,100,101,120,45,111,102,45,115,116,114,105,110,103,
0,2049,5069,10,18437,18479,168,0,8246228896775126019,100,111,117,98,108,101,58,118,97,114,0,
2049,2075,4,2049,130,2049,130,10,18463,18505,168,0,-3421095308458227740,100,111,117,98,108,101,58,
102,101,116,99,104,0,2049,58,4,15,10,18487,18528,168,0,-3421095308442276665,100,111,117,98,
108,101,58,115,116,111,114,101,0,1,19,2049,2229,2049,61,16,10,18510,18554,168,
0,-3421095308461432127,100,111,117,98,108,101,58,99,111,110,115,116,0,2049,18479,1,18505,2049,
8460,10,18536,18578,168,0,-4575607512064199915,100,111,117,98,108,101,58,115,119,97,112,0,67503109,
5,67503109,6,10,18561,18599,168,0,8246228896775106679,100,111,117,98,108,101,58,100,105,112,0,
67503109,67503109,5,5,8,6,6,10,18583,18623,168,0,8246228896775123014,100,111,117,98,108,101,58,
115,105,112,0,1,2217,2049,2229,2049,18599,10,18607,18646,168,0,8246632143337714634,109,101,109,58,
105,110,118,111,107,101,0,1,15,2049,10534,2049,10515,10,18630,0,156,0,210667451248,65,
76,76,79,67,0,18653,1,156,0,6384048135,70,82,69,69,0,18664,2,156,0,210689088690,
83,84,79,82,69,0,18674,3,156,0,210673137615,70,69,84,67,72,0,18685,4,156,
0,6952683137271,82,69,83,73,90,69,0,18607,18723,168,0,249897943727936361,109,101,109,58,97,108,
108,111,99,0,1,0,2049,18646,10,18708,18743,168,0,249897943749573803,109,101,109,58,115,116,
111,114,101,0,1,2,2049,18646,10,18728,18763,168,0,249897943733622728,109,101,109,58,102,101,
116,99,104,0,1,3,2049,18646,10,18748,18782,168,0,7572664961638592,109,101,109,58,102,114,
101,101,0,1,1,2049,18646,10,18768,18803,168,0,8246632143679146032,109,101,109,58,114,101,115,
105,122,101,0,1,4,2049,18646,10,18787,18823,168,0,249897943730056489,109,101,109,58,99,101,
108,108,43,0,1,8,19,17,10,18808,18850,168,0,1050530996183190288,109,101,109,58,102,101,
116,99,104,45,100,111,117,98,108,101,0,2,1,1,2049,18823,15,5,2049,18763,
6,10,18828,18883,168,0,1730340976492540563,109,101,109,58,115,116,111,114,101,45,100,111,117,
98,108,101,0,5,5,2049,2217,1,1,2049,18823,6,2049,18743,6,2049,18743,10,18861,
18907,168,19694,193470948,84,73,66,0,1,7,15,10,18898,18927,168,19694,8246457295145463473,105,109,97,
103,101,58,115,97,118,101,0,1,1000,2049,10534,2049,10515,10,18911,18945,168,0,210711039690,
101,100,105,116,63,0,2,1793,18952,1,8,11,10,1,18948,1793,18960,1,127,11,
10,1,18956,2049,2255,22,10,18934,18978,168,0,6953539406400,103,97,116,104,101,114,0,2049,
18945,1,17,1,4134,2049,66,10,18966,18998,168,0,210709415765,99,121,99,108,101,0,2049,
10864,2049,2217,4,8,2049,2644,25,3,2049,18978,1,18998,7,10,18911,19031,168,19694,-4557881830897049127,
112,97,114,115,101,45,117,110,116,105,108,0,1793,19043,2049,4451,2049,4234,2049,18998,
771,2049,4096,10,1,19033,2049,4260,10,19014,19059,168,19694,210726130610,115,58,103,101,116,0,
1793,19081,1793,19067,1,13,11,10,1,19063,1793,19075,1,10,11,10,1,19071,2049,2255,
22,10,1,19061,2049,19031,10,19048,19097,168,19694,210708950412,99,108,101,97,114,0,2049,4472,
92,94,91,50,74,92,94,91,48,59,48,72,0,1,19099,2049,8246,2049,10640,10,
19086,19131,156,19694,6952575930081,78,111,69,99,104,111,0,0,19119,19141,156,0,193454829,69,79,
84,0,0,19132,19156,156,0,7571133383038306,73,103,110,111,114,105,110,103,0,0,19142,19172,
168,0,249892406716047873,105,103,110,111,114,105,110,103,63,0,3841,19156,10,19157,19188,168,0,
229486327000139,118,101,114,115,105,111,110,0,3841,4,1,100,20,10,19175,19205,168,0,210710254026,
100,111,110,101,63,0,2,4097,19141,1793,19214,1,13,11,10,1,19210,1793,19222,1,
10,11,10,1,19218,1793,19230,1,32,11,10,1,19226,2049,2298,22,22,10,19194,19247,
168,0,6385195044,101,111,108,63,0,3841,19141,1793,19255,1,13,11,10,1,19251,1793,19263,
1,10,11,10,1,19259,2049,2255,22,10,19237,19281,168,0,6954126150804,118,97,108,105,100,
63,0,2,2049,104,2049,2812,10,19269,19302,168,0,249883998779477802,99,104,101,99,107,45,101,
111,102,0,2,1793,19309,1,-1,11,10,1,19305,1793,19317,1,4,11,10,1,19313,
2049,2255,22,1793,19327,2049,10931,10,1,19324,9,10,19287,19339,168,0,5863258,98,115,0,
2049,4212,1,2,2049,2675,1793,19351,2049,4160,3,10,1,19347,9,2049,4160,3,10,19331,
19372,168,0,7572242387256805,99,104,101,99,107,45,98,115,0,2,1793,19379,1,8,11,10,
1,19375,1793,19387,1,127,11,10,1,19383,2049,2255,22,1793,19397,2049,19339,10,1,19394,
9,10,19358,19412,168,0,210708806723,99,104,101,99,107,0,2049,19302,2049,19372,10,19401,19432,
168,0,249883994190734226,99,104,97,114,97,99,116,101,114,0,2049,10864,2,2049,4134,10,19417,
19450,168,0,6953366942559,98,117,102,102,101,114,0,1793,19460,2049,18907,2049,4234,8,2049,4096,
10,1,19452,2049,4260,10,19438,19481,168,0,8246863741238799215,114,101,97,100,45,116,111,107,101,
110,0,1793,19497,1793,19492,2049,19432,2049,19412,2049,19205,10,1,19485,2049,2397,10,1,19483,
2049,19450,2049,4587,10,19465,19515,168,0,210716150453,105,110,112,117,116,0,2049,19481,2049,19281,
10,19504,19533,168,0,229479082815460,112,114,111,99,101,115,115,0,2049,19172,1793,19551,771,2049,
19247,1793,19547,1,19156,2049,3931,10,1,19542,9,10,1,19537,2049,2862,1,415,1,17,
2049,66,10,19119,19570,180,19694,5861507,47,47,0,2049,15503,1,19156,2049,3916,10,19562,19589,
168,19694,6953343520347,98,97,110,110,101,114,0,2049,19188,2049,4472,82,69,84,82,79,32,
49,50,32,40,37,110,46,37,110,41,92,110,0,1,19593,2049,8246,2049,10640,2049,
10716,2049,1545,2049,10716,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,19629,2049,
8246,2049,10640,10,19577,19675,168,19694,6953744547860,108,105,115,116,101,110,0,3841,19131,1793,19682,
2049,19589,10,1,19679,2049,74,2049,19515,2049,19533,1,19686,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,19663,19734,156,0,229441520490121,83,111,117,114,99,101,115,0,1,19971,0,0,0,
116,99,104,0,2049,17446,15,10,17469,17501,168,0,7572146430834761,97,97,58,102,105,114,115,
116,0,1,0,2049,9236,10,17487,17519,168,0,229458982959509,97,97,58,108,97,115,116,0,
2,2049,8598,2049,3139,2049,9236,10,17506,17541,168,0,7572169677258203,97,115,58,102,105,114,115,
116,0,2049,17501,10,17527,17557,168,0,229459687396583,97,115,58,108,97,115,116,0,2049,17519,
10,17544,17576,168,0,8246092782587163933,97,115,58,105,110,100,101,120,47,99,0,2049,17323,10,
17560,17591,168,0,6953323852444,97,115,58,100,117,112,0,2049,8810,10,17579,17607,168,0,229459687396583,
97,115,58,108,97,115,116,0,2049,17519,10,17594,17623,168,0,229459687688233,97,115,58,116,
101,109,112,0,2049,8810,10,17610,17645,168,0,-7106699936504964166,97,115,58,116,114,105,109,45,
114,105,103,104,116,0,2049,17623,1793,17667,2,2049,3881,1793,17661,2049,17607,1,32,2049,
2659,10,1,17654,2049,2241,4,10,1,17649,2049,2372,2,2049,3864,10,17626,17686,156,0,
210690259379,83,116,97,114,116,0,0,17675,17696,156,0,193455868,69,110,100,0,0,17687,17706,
156,0,193463204,76,101,110,0,0,17697,17721,168,0,7572371885291434,102,105,110,100,45,101,110,
100,0,2,2049,17433,2,4097,17706,67502597,2049,16777,2049,3125,4097,17696,2049,3125,10,17707,17751,
168,0,7572707956476599,110,101,119,45,115,105,122,101,0,3841,17686,67502597,4,2049,16790,3841,17706,
4,2049,16790,10,17737,17774,168,0,210723988469,112,97,116,99,104,0,67502597,16,10,17626,17795,
168,0,-3569308011477864665,97,115,58,116,114,105,109,45,108,101,102,116,0,2049,17591,2,1,
0,2049,17483,1,32,11,1793,17834,2,4097,17686,2049,17721,1793,17825,2049,58,1,32,12,
67502597,3841,17696,12,21,10,1,17814,2049,2372,2049,17751,2049,17774,10,1,17807,9,10,17777,
17851,168,0,229459687702255,97,115,58,116,114,105,109,0,2049,17795,2049,17645,10,17838,17869,180,
0,229482595734745,115,105,103,105,108,58,34,0,2049,1977,1793,17883,2,2049,104,2049,16858,1,
16858,2049,4741,10,1,17873,2049,2229,10,17856,17905,168,0,-4580099406349869736,97,115,58,102,111,114,
45,101,97,99,104,0,2049,8777,10,17888,17921,168,0,229458982815749,97,97,58,104,97,115,
104,0,1,5381,4,1793,17934,4,1,33,2049,16803,2049,16777,10,1,17926,2049,8777,10,
17908,17952,168,0,229459687252823,97,115,58,104,97,115,104,0,2049,17921,10,17939,17967,168,0,
6953302506774,97,97,58,101,113,63,0,2049,17921,4,2049,17921,11,10,17955,17987,168,0,229458980699715,
97,97,58,45,101,113,63,0,2049,17921,4,2049,17921,12,10,17974,18006,168,0,6953323853352,
97,115,58,101,113,63,0,2049,17967,10,17994,18022,168,0,229459685136789,97,115,58,45,101,
113,63,0,2049,17987,10,18009,18036,168,0,210704781289,97,58,100,117,112,0,2049,1977,1793,
18050,2,2049,8598,2049,16858,1,16858,2049,8777,10,1,18040,2049,2229,10,18025,18067,168,0,
6953323852444,97,115,58,100,117,112,0,2049,18036,10,18055,18083,168,0,229459687688233,97,115,58,116,
101,109,112,0,10,18070,18097,168,0,229459687364536,97,115,58,107,101,101,112,0,10,18084,
18115,168,0,-4580098812306212145,97,115,58,116,111,45,117,112,112,101,114,0,1793,18126,2049,18067,
1,6804,2049,17063,2049,18083,10,1,18117,2049,16869,10,18098,18148,168,0,-4580098812316913748,97,115,58,
116,111,45,108,111,119,101,114,0,1793,18159,2049,18067,1,6829,2049,17063,2049,18083,10,
1,18150,2049,16869,10,18131,18182,168,0,-3527051417241377258,98,108,111,99,107,58,105,110,118,111,
107,101,0,1,3,2049,10534,2049,10515,10,18131,18205,168,0,8246131600073141446,98,108,111,99,107,
58,114,101,97,100,0,1,0,2049,18182,10,18189,18227,168,0,-4578818303223200395,98,108,111,99,
107,58,119,114,105,116,101,0,1,1,2049,18182,10,18210,18252,168,0,-4036225629868593021,98,108,
111,99,107,58,115,101,116,45,102,105,108,101,0,1,2,2049,18182,10,18232,18270,
168,0,229480770855518,115,58,115,112,108,105,116,0,2049,7184,10,18257,18296,168,0,6119006473764520940,115,
58,115,112,108,105,116,45,111,110,45,115,116,114,105,110,103,0,2049,7218,10,
18273,18321,168,0,-2157201768052001381,115,58,99,111,110,116,97,105,110,115,45,99,104,97,114,
63,0,2049,4857,10,18299,18348,168,0,-6456228026363444588,115,58,99,111,110,116,97,105,110,115,
45,115,116,114,105,110,103,63,0,2049,5286,10,18324,18375,168,0,-3160266536000611262,97,58,99,
111,110,116,97,105,110,115,45,115,116,114,105,110,103,63,0,2049,9099,10,18351,
18394,168,0,8246014626430519194,97,58,105,110,100,101,120,45,111,102,0,2049,9291,10,18378,18420,
168,0,-5025353456659034242,97,58,105,110,100,101,120,45,111,102,45,115,116,114,105,110,103,
0,2049,9416,10,18397,18439,168,0,8246850033149754348,115,58,105,110,100,101,120,45,111,102,0,
2049,4779,10,18423,18465,168,0,-94300875658333296,115,58,105,110,100,101,120,45,111,102,45,115,
116,114,105,110,103,0,2049,5069,10,18442,18484,168,0,8246228896775126019,100,111,117,98,108,101,
58,118,97,114,0,2049,2075,4,2049,130,2049,130,10,18468,18510,168,0,-3421095308458227740,100,111,
117,98,108,101,58,102,101,116,99,104,0,2049,58,4,15,10,18492,18533,168,0,
-3421095308442276665,100,111,117,98,108,101,58,115,116,111,114,101,0,1,19,2049,2229,2049,61,
16,10,18515,18559,168,0,-3421095308461432127,100,111,117,98,108,101,58,99,111,110,115,116,0,
2049,18484,1,18510,2049,8460,10,18541,18583,168,0,-4575607512064199915,100,111,117,98,108,101,58,115,
119,97,112,0,67503109,5,67503109,6,10,18566,18604,168,0,8246228896775106679,100,111,117,98,108,101,
58,100,105,112,0,67503109,67503109,5,5,8,6,6,10,18588,18628,168,0,8246228896775123014,100,111,
117,98,108,101,58,115,105,112,0,1,2217,2049,2229,2049,18604,10,18612,18651,168,0,
8246632143337714634,109,101,109,58,105,110,118,111,107,101,0,1,15,2049,10534,2049,10515,10,18635,
0,156,0,210667451248,65,76,76,79,67,0,18658,1,156,0,6384048135,70,82,69,69,0,
18669,2,156,0,210689088690,83,84,79,82,69,0,18679,3,156,0,210673137615,70,69,84,67,
72,0,18690,4,156,0,6952683137271,82,69,83,73,90,69,0,18612,18728,168,0,249897943727936361,109,
101,109,58,97,108,108,111,99,0,1,0,2049,18651,10,18713,18748,168,0,249897943749573803,109,
101,109,58,115,116,111,114,101,0,1,2,2049,18651,10,18733,18768,168,0,249897943733622728,109,
101,109,58,102,101,116,99,104,0,1,3,2049,18651,10,18753,18787,168,0,7572664961638592,109,
101,109,58,102,114,101,101,0,1,1,2049,18651,10,18773,18808,168,0,8246632143679146032,109,101,
109,58,114,101,115,105,122,101,0,1,4,2049,18651,10,18792,18828,168,0,249897943730056489,109,
101,109,58,99,101,108,108,43,0,1,8,19,17,10,18813,18855,168,0,1050530996183190288,109,
101,109,58,102,101,116,99,104,45,100,111,117,98,108,101,0,2,1,1,2049,
18828,15,5,2049,18768,6,10,18833,18888,168,0,1730340976492540563,109,101,109,58,115,116,111,114,
101,45,100,111,117,98,108,101,0,5,5,2049,2217,1,1,2049,18828,6,2049,18748,
6,2049,18748,10,18866,18912,168,19699,193470948,84,73,66,0,1,7,15,10,18903,18932,168,
19699,8246457295145463473,105,109,97,103,101,58,115,97,118,101,0,1,1000,2049,10534,2049,10515,10,
18916,18950,168,0,210711039690,101,100,105,116,63,0,2,1793,18957,1,8,11,10,1,18953,
1793,18965,1,127,11,10,1,18961,2049,2255,22,10,18939,18983,168,0,6953539406400,103,97,116,
104,101,114,0,2049,18950,1,17,1,4134,2049,66,10,18971,19003,168,0,210709415765,99,121,
99,108,101,0,2049,10864,2049,2217,4,8,2049,2644,25,3,2049,18983,1,19003,7,10,
18916,19036,168,19699,-4557881830897049127,112,97,114,115,101,45,117,110,116,105,108,0,1793,19048,2049,
4451,2049,4234,2049,19003,771,2049,4096,10,1,19038,2049,4260,10,19019,19064,168,19699,210726130610,115,
58,103,101,116,0,1793,19086,1793,19072,1,13,11,10,1,19068,1793,19080,1,10,11,
10,1,19076,2049,2255,22,10,1,19066,2049,19036,10,19053,19102,168,19699,210708950412,99,108,101,
97,114,0,2049,4472,92,94,91,50,74,92,94,91,48,59,48,72,0,1,19104,
2049,8246,2049,10640,10,19091,19136,156,19699,6952575930081,78,111,69,99,104,111,0,0,19124,19146,
156,0,193454829,69,79,84,0,0,19137,19161,156,0,7571133383038306,73,103,110,111,114,105,110,
103,0,0,19147,19177,168,0,249892406716047873,105,103,110,111,114,105,110,103,63,0,3841,19161,
10,19162,19193,168,0,229486327000139,118,101,114,115,105,111,110,0,3841,4,1,100,20,10,
19180,19210,168,0,210710254026,100,111,110,101,63,0,2,4097,19146,1793,19219,1,13,11,10,
1,19215,1793,19227,1,10,11,10,1,19223,1793,19235,1,32,11,10,1,19231,2049,2298,
22,22,10,19199,19252,168,0,6385195044,101,111,108,63,0,3841,19146,1793,19260,1,13,11,
10,1,19256,1793,19268,1,10,11,10,1,19264,2049,2255,22,10,19242,19286,168,0,6954126150804,
118,97,108,105,100,63,0,2,2049,104,2049,2812,10,19274,19307,168,0,249883998779477802,99,104,
101,99,107,45,101,111,102,0,2,1793,19314,1,-1,11,10,1,19310,1793,19322,1,
4,11,10,1,19318,2049,2255,22,1793,19332,2049,10931,10,1,19329,9,10,19292,19344,168,
0,5863258,98,115,0,2049,4212,1,2,2049,2675,1793,19356,2049,4160,3,10,1,19352,9,
2049,4160,3,10,19336,19377,168,0,7572242387256805,99,104,101,99,107,45,98,115,0,2,1793,
19384,1,8,11,10,1,19380,1793,19392,1,127,11,10,1,19388,2049,2255,22,1793,19402,
2049,19344,10,1,19399,9,10,19363,19417,168,0,210708806723,99,104,101,99,107,0,2049,19307,
2049,19377,10,19406,19437,168,0,249883994190734226,99,104,97,114,97,99,116,101,114,0,2049,10864,
2,2049,4134,10,19422,19455,168,0,6953366942559,98,117,102,102,101,114,0,1793,19465,2049,18912,
2049,4234,8,2049,4096,10,1,19457,2049,4260,10,19443,19486,168,0,8246863741238799215,114,101,97,100,
45,116,111,107,101,110,0,1793,19502,1793,19497,2049,19437,2049,19417,2049,19210,10,1,19490,
2049,2397,10,1,19488,2049,19455,2049,4587,10,19470,19520,168,0,210716150453,105,110,112,117,116,
0,2049,19486,2049,19286,10,19509,19538,168,0,229479082815460,112,114,111,99,101,115,115,0,2049,
19177,1793,19556,771,2049,19252,1793,19552,1,19161,2049,3931,10,1,19547,9,10,1,19542,2049,
2862,1,415,1,17,2049,66,10,19124,19575,180,19699,5861507,47,47,0,2049,15503,1,19161,
2049,3916,10,19567,19594,168,19699,6953343520347,98,97,110,110,101,114,0,2049,19193,2049,4472,82,
69,84,82,79,32,49,50,32,40,37,110,46,37,110,41,92,110,0,1,19598,
2049,8246,2049,10640,2049,10716,2049,1545,2049,10716,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,19634,2049,8246,2049,10640,10,19582,19680,168,19699,6953744547860,108,105,115,116,101,110,
0,3841,19136,1793,19687,2049,19594,10,1,19684,2049,74,2049,19520,2049,19538,1,19691,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,19668,19739,156,0,229441520490121,83,111,117,114,99,101,115,0,
1,19976,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,19721,19874,168,0,6953711201841,107,110,111,119,110,63,0,2,1,19734,2049,9099,
10,19862,19891,168,0,210716136861,105,110,100,101,120,0,1,19734,4,2049,9416,1,19734,4,
2049,9236,10,19880,19914,168,0,6953974036516,114,101,99,111,114,100,0,2049,4500,2,1,19734,
2049,3864,3841,19734,1,19734,17,16,10,1793,19969,2049,15438,2049,19874,1793,19939,2049,19891,10,
1,19936,1793,19946,2049,19914,10,1,19943,2049,66,1793,19959,1,192,1,2,17,8,10,
1,19952,2049,2229,2049,1576,2049,186,16,10,1,19930,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,19663,20009,168,
19971,229461403550098,100,58,119,111,114,100,115,0,1793,20018,2049,190,2049,10640,2049,10610,10,1,
20011,2049,8491,10,19996,20041,168,19971,-3502157631813457253,100,58,119,111,114,100,115,45,119,105,116,
104,0,2049,1977,2049,5573,1793,20072,2049,190,2,2049,1977,2049,5286,1793,20061,2049,10640,2049,
10610,10,1,20056,1793,20067,3,10,1,20065,2049,66,10,1,20047,2049,8491,10,20023,20098,
168,19971,2818131571306626127,100,105,115,112,108,97,121,45,105,102,45,108,101,102,116,0,2,
2049,1977,2049,5519,1793,20110,2049,10640,2049,10610,10,1,20105,1793,20116,3,10,1,20114,2049,
66,10,20023,20149,168,19971,2947807019553410009,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,20160,2049,190,2049,20098,
10,1,20155,2049,8491,10,0 };
0,0,0,0,0,0,0,0,19726,19879,168,0,6953711201841,107,110,111,119,110,63,0,
2,1,19739,2049,9099,10,19867,19896,168,0,210716136861,105,110,100,101,120,0,1,19739,4,
2049,9416,1,19739,4,2049,9236,10,19885,19919,168,0,6953974036516,114,101,99,111,114,100,0,
2049,4500,2,1,19739,2049,3864,3841,19739,1,19739,17,16,10,1793,19974,2049,15438,2049,19879,
1793,19944,2049,19896,10,1,19941,1793,19951,2049,19919,10,1,19948,2049,66,1793,19964,1,192,
1,2,17,8,10,1,19957,2049,2229,2049,1576,2049,186,16,10,1,19935,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,19668,20014,168,19976,229461403550098,100,58,119,111,114,100,115,0,1793,20023,2049,190,2049,
10640,2049,10610,10,1,20016,2049,8491,10,20001,20046,168,19976,-3502157631813457253,100,58,119,111,114,100,
115,45,119,105,116,104,0,2049,1977,2049,5573,1793,20077,2049,190,2,2049,1977,2049,5286,
1793,20066,2049,10640,2049,10610,10,1,20061,1793,20072,3,10,1,20070,2049,66,10,1,20052,
2049,8491,10,20028,20103,168,19976,2818131571306626127,100,105,115,112,108,97,121,45,105,102,45,108,
101,102,116,0,2,2049,1977,2049,5519,1793,20115,2049,10640,2049,10610,10,1,20110,1793,20121,
3,10,1,20119,2049,66,10,20028,20154,168,19976,2947807019553410009,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,
20165,2049,190,2049,20103,10,1,20160,2049,8491,10,0 };

View file

@ -1,494 +0,0 @@
func loadImage() {
var standard = [
1793,9629,9619,9643,202107,376,348,1027,1535,0,10,1,10,2,10,3,10,4,10,
5,10,6,10,7,10,8,10,9,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,68223234,1,2575,85000450,1,656912,116,161,268505089,67,66,285281281,0,67,2063,10,101384453,0,9,
10,2049,60,25,459011,80,524546,80,302256641,1,10,16974595,0,50529798,10,25,524547,99,50529798,10,
17108738,1,251790353,101777669,1,17565186,90,524545,94,68,167838467,-1,134287105,3,63,659457,3,459023,111,2049,
60,25,2049,111,1793,118,2049,118,117506307,0,111,0,524545,29,116,168820993,0,130,1642241,130,
134283523,11,116,1793,111,524545,2049,111,1793,111,16846593,130,144,161,1793,68,16846593,130,116,161,
1793,68,7,10,659713,1,659713,2,659713,3,1793,171,17108737,3,2,524559,111,2049,111,2049,
111,2049,125,168820998,2,532,1027,167841793,184,9,17826049,0,184,2,15,25,524546,167,134287105,185,
99,2305,186,459023,194,134287361,185,189,659201,184,10,659969,7,2049,60,25,17694978,58,210,9,
84152833,48,319750404,209,117507601,212,184618754,45,25,16974851,-1,168886532,1,134284289,1,225,134284289,0,212,660227,
32,0,0,115,105,103,105,108,58,115,0,285278479,242,6,2576,524546,85,1641217,1,167838467,
239,2049,254,2049,250,524545,242,204,17826050,241,0,2572,2563,2049,232,1793,137,459023,137,17760513,
149,3,169,8,251727617,3,2,2049,163,16,168820993,-1,130,2049,204,2049,163,459023,137,285282049,
3,2,134287105,130,289,524545,1793,111,16846593,3,0,111,8,659201,3,524545,29,116,17043201,3,
11,2049,116,2049,111,268505092,130,1642241,130,656131,659201,3,524545,11,116,2049,111,459009,23,116,
459009,58,116,459009,19,116,459009,21,116,1793,9,10,524546,163,134284303,165,1807,1027,1642241,241,
285282049,356,1,459012,351,117509889,184,351,134287105,356,204,16845825,0,364,348,1793,68,1793,378,17826050,
356,260,8,117506305,357,367,68,2116,11340,11700,11400,13685,13104,12432,12402,9603,9801,11514,11413,11110,
12528,11948,10302,13340,9700,13455,12753,10500,10670,12654,13320,11960,13908,10088,10605,11865,11025,0,2049,204,
987393,1,1793,111,524546,454,2049,452,2049,452,17891588,2,454,8,17045505,-24,-16,17043736,-8,1118488,
1793,111,17043202,1,169021201,2049,60,25,33883396,101450758,6404,459011,444,34668804,2,2049,441,524545,386,444,
302056196,386,659969,1,0,13,155,100,117,112,0,463,15,155,100,114,111,112,0,470,
17,155,115,119,97,112,0,478,25,155,99,97,108,108,0,486,30,155,101,113,
63,0,494,32,155,45,101,113,63,0,501,34,155,108,116,63,0,509,36,155,
103,116,63,0,516,38,155,102,101,116,99,104,0,523,40,155,115,116,111,114,
101,0,532,42,155,43,0,541,44,155,45,0,546,46,155,42,0,551,48,155,
47,109,111,100,0,556,50,155,97,110,100,0,564,52,155,111,114,0,571,54,
155,120,111,114,0,577,56,155,115,104,105,102,116,0,584,342,161,112,117,115,
104,0,593,345,161,112,111,112,0,601,339,161,48,59,0,608,60,149,102,101,
116,99,104,45,110,101,120,116,0,614,63,149,115,116,111,114,101,45,110,101,
120,116,0,628,232,149,115,58,116,111,45,110,117,109,98,101,114,0,642,99,
149,115,58,101,113,63,0,657,85,149,115,58,108,101,110,103,116,104,0,666,
68,149,99,104,111,111,115,101,0,678,78,155,105,102,0,688,76,149,45,105,
102,0,694,271,161,115,105,103,105,108,58,40,0,701,130,137,67,111,109,112,
105,108,101,114,0,712,3,137,72,101,97,112,0,724,111,149,44,0,732,125,
149,115,44,0,737,131,161,59,0,743,298,161,91,0,748,314,161,93,0,753,
2,137,68,105,99,116,105,111,110,97,114,121,0,758,162,149,100,58,108,105,
110,107,0,772,163,149,100,58,120,116,0,782,165,149,100,58,99,108,97,115,
115,0,790,167,149,100,58,110,97,109,101,0,801,149,149,99,108,97,115,115,
58,119,111,114,100,0,811,161,149,99,108,97,115,115,58,109,97,99,114,111,
0,825,137,149,99,108,97,115,115,58,100,97,116,97,0,840,169,149,100,58,
97,100,100,45,104,101,97,100,101,114,0,854,272,161,115,105,103,105,108,58,
35,0,870,278,161,115,105,103,105,108,58,58,0,881,292,161,115,105,103,105,
108,58,38,0,892,276,161,115,105,103,105,108,58,36,0,903,329,161,114,101,
112,101,97,116,0,914,331,161,97,103,97,105,110,0,924,376,149,105,110,116,
101,114,112,114,101,116,0,933,204,149,100,58,108,111,111,107,117,112,0,946,
155,149,99,108,97,115,115,58,112,114,105,109,105,116,105,118,101,0,958,4,
137,86,101,114,115,105,111,110,0,977,423,149,105,0,988,111,149,100,0,993,
417,149,114,0,998,209,137,66,97,115,101,0,1003,348,149,101,114,114,58,110,
111,116,102,111,117,110,100,0,115,116,111,114,101,0,110,0,101,116,0,101,
114,118,101,0,115,0,0,0,0,0,63,64,91,92,93,94,96,123,124,125,
126,0,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,
90,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1011,1543,149,
69,79,77,0,1,-3,15,10,1536,1556,149,100,101,112,116,104,0,1,-1,15,
10,1547,1570,149,100,58,108,97,115,116,0,1,2,15,10,1560,1587,149,100,58,
108,97,115,116,46,120,116,0,2049,1570,2049,163,15,10,1574,1609,149,100,58,108,
97,115,116,46,99,108,97,115,115,0,2049,1570,2049,165,15,10,1593,1630,149,100,
58,108,97,115,116,46,110,97,109,101,0,2049,1570,2049,167,10,1615,1646,149,114,
101,99,108,97,115,115,0,2049,1570,2049,165,16,10,1635,1665,149,105,109,109,101,
100,105,97,116,101,0,1,161,2049,1646,10,1652,1678,149,100,97,116,97,0,1,
137,2049,1646,10,1670,1696,149,112,114,105,109,105,116,105,118,101,0,1,155,2049,
1646,10,1683,1706,161,40,0,10,1701,1712,161,41,0,10,1707,1728,149,99,111,109,
112,105,108,101,58,108,105,116,0,1,1,2049,111,2049,111,10,1713,1751,149,99,
111,109,112,105,108,101,58,106,117,109,112,0,1,1793,2049,111,2049,111,10,1735,
1774,149,99,111,109,112,105,108,101,58,99,97,108,108,0,1,2049,2049,111,2049,
111,10,1758,1796,149,99,111,109,112,105,108,101,58,114,101,116,0,1,10,2049,
111,10,1781,1815,149,99,111,109,112,105,108,105,110,103,63,0,1,130,15,10,
1801,1830,161,115,105,103,105,108,58,96,0,2049,232,2049,111,10,1819,1846,161,115,
105,103,105,108,58,92,0,2049,423,10,1835,1860,161,115,105,103,105,108,58,94,
0,2049,417,10,1849,1871,149,104,101,114,101,0,1,3,15,10,1863,1886,161,115,
105,103,105,108,58,64,0,2049,204,2049,163,15,2049,1815,1793,1902,1,3841,2049,111,
2049,111,10,1,1895,1793,1908,15,10,1,1906,2049,68,10,1875,1924,161,115,105,103,
105,108,58,33,0,2049,204,2049,163,15,2049,1815,1793,1940,1,4097,2049,111,2049,111,
10,1,1933,1793,1946,16,10,1,1944,2049,68,10,1913,1963,149,100,58,99,114,101,
97,116,101,0,1,137,1,0,2049,169,2049,1871,2049,1570,2049,163,16,10,1951,1986,
149,118,97,114,45,110,0,2049,1963,2049,111,10,1977,1998,149,118,97,114,0,134284289,
0,1986,10,1991,2011,149,99,111,110,115,116,0,2049,1963,2049,1570,2049,163,16,10,
2002,2027,155,116,117,99,107,0,100926722,10,2019,2037,155,111,118,101,114,0,67502597,10,
2029,2046,155,110,105,112,0,772,10,2039,2061,155,100,114,111,112,45,112,97,105,
114,0,771,10,2048,2071,155,63,100,117,112,0,6402,10,2063,2085,149,100,117,112,
45,112,97,105,114,0,67502597,67502597,10,2073,2095,149,100,105,112,0,525572,6,10,2088,
2105,149,115,105,112,0,67502597,1,25,2049,2095,10,2098,2117,149,98,105,0,1,2105,
2049,2095,8,10,2111,2130,149,98,105,42,0,1,2095,2049,2095,8,10,2123,2143,149,
98,105,64,0,2,2049,2130,10,2136,2154,149,116,114,105,0,1793,2163,1,2105,2049,
2095,2049,2105,10,1,2156,2049,2095,8,10,2147,2177,149,116,114,105,42,0,1793,2194,
1793,2187,4,1,2095,2049,2095,10,1,2181,2049,2095,2049,2095,10,1,2179,2049,2095,8,
10,2169,2208,149,116,114,105,64,0,2,2,2049,2177,10,2200,2222,149,119,104,105,
108,101,0,1793,2231,525570,1639430,3,1,2224,7,10,1,2224,8,3,10,2213,2245,149,
117,110,116,105,108,0,1793,2256,525570,385942534,-1,25,3,1,2247,7,10,1,2247,8,
3,10,2236,2270,149,116,105,109,101,115,0,1793,2282,4,25,33886721,1,2053,1542,1,
2273,7,10,1,2272,8,3,10,2261,2298,161,115,105,103,105,108,58,124,0,2049,
204,1793,2306,2049,163,15,10,1,2302,1793,2314,2049,165,15,10,1,2310,2049,2117,2049,
1815,1793,2329,1,137,2049,2095,2049,1774,10,1,2322,1,25,2049,68,10,2287,2344,149,
84,82,85,69,0,1,-1,10,2336,2356,149,70,65,76,83,69,0,1,0,10,
2347,2367,149,99,97,115,101,0,1793,2372,67502597,11,10,1,2369,2049,2095,4,1793,2384,
772,8,2049,2344,10,1,2379,1793,2392,3,2049,2356,10,1,2388,2049,68,25,6,3,
3,10,2359,2411,149,115,58,99,97,115,101,0,1793,2417,67502597,2049,99,10,1,2413,
2049,2095,4,1793,2429,772,8,2049,2344,10,1,2424,1793,2437,3,2049,2356,10,1,2433,
2049,68,25,6,3,3,10,2401,2453,149,110,111,116,0,1,-1,23,10,2446,2466,
149,108,116,101,113,63,0,2049,2085,101516555,22,10,2457,2480,149,103,116,101,113,63,
0,4,2049,2466,10,2471,2493,149,110,58,77,65,88,0,1,-5,15,10,2484,2506,
149,110,58,77,73,78,0,1,-4,15,10,2497,2521,149,110,58,122,101,114,111,
63,0,1,0,11,10,2510,2537,149,110,58,45,122,101,114,111,63,0,1,0,
12,10,2525,2556,149,110,58,110,101,103,97,116,105,118,101,63,0,1,0,13,
10,2541,2575,149,110,58,112,111,115,105,116,105,118,101,63,0,1,-1,14,10,
2560,2603,149,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,2579,2618,149,110,58,101,118,101,110,63,0,1,
2,20,3,2049,2521,10,2607,2635,149,110,58,111,100,100,63,0,2049,2618,2049,2453,
10,2625,2647,149,105,102,59,0,67502597,1,78,2049,2095,25,6,771,10,2640,2664,149,
45,105,102,59,0,67502597,1,76,2049,2095,2049,2453,25,6,771,10,2656,2682,161,105,
102,58,0,1,25,2049,111,1,3,2049,111,10,2675,2699,161,45,105,102,58,0,
1,1644289,2049,111,1,-1,2049,111,1,3,2049,111,10,2691,2719,155,114,111,116,0,
67503109,10,2712,2726,155,47,0,197652,10,2721,2735,155,109,111,100,0,788,10,2728,2746,
149,110,58,112,111,119,0,1,1,4,1793,2754,67502597,19,10,1,2751,2049,2270,772,
10,2737,2772,149,110,58,110,101,103,97,116,101,0,1,-1,19,10,2760,2788,149,
110,58,115,113,117,97,114,101,0,4866,10,2776,2800,149,110,58,115,113,114,116,
0,1,1,1793,2818,2049,2085,197652,67502597,18,1,2,197652,25,17,1,2804,7,10,1,
2804,8,772,10,2790,2832,149,110,58,109,105,110,0,2049,2085,13,1793,2839,3,10,
1,2837,1793,2845,772,10,1,2843,2049,68,10,2823,2859,149,110,58,109,97,120,0,
2049,2085,14,1793,2866,3,10,1,2864,1793,2872,772,10,1,2870,2049,68,10,2850,2886,
149,110,58,97,98,115,0,2,2049,2556,1,2772,9,10,2877,2904,149,110,58,108,
105,109,105,116,0,4,5,2049,2832,6,2049,2859,10,2893,2921,149,110,58,105,110,
99,0,1,1,17,10,2912,2934,149,110,58,100,101,99,0,1,1,18,10,2925,
2952,149,110,58,98,101,116,119,101,101,110,63,0,67503109,1793,2960,67503109,67503109,2049,2904,
10,1,2955,2049,2105,11,10,2938,2978,149,118,58,105,110,99,45,98,121,0,1793,
2982,4367,10,1,2980,2049,2105,16,10,2966,3000,149,118,58,100,101,99,45,98,121,
0,1793,3004,1180687,10,1,3002,2049,2105,16,10,2988,3019,149,118,58,105,110,99,0,
1,1,4,2049,2978,10,3010,3034,149,118,58,100,101,99,0,1,1,4,2049,3000,
10,3025,3051,149,118,58,108,105,109,105,116,0,251790597,1542,2049,2904,4100,10,3040,3065,
149,118,58,111,110,0,2049,2344,4100,10,3057,3078,149,118,58,111,102,102,0,2049,
2356,4100,10,3069,3091,149,97,108,108,111,116,0,1,3,2049,2978,10,3082,3110,149,
118,58,112,114,101,115,101,114,118,101,0,983556,1793,3118,1,25,2049,2095,10,1,
3113,2049,2095,4100,10,3096,3136,149,118,58,117,112,100,97,116,101,0,4,1793,3143,
15,4,8,10,1,3139,2049,2105,16,10,3124,3157,149,99,111,112,121,0,1793,3166,
285278725,1,33951492,268767489,1,6,10,1,3159,2049,2270,771,10,3149,3185,149,83,99,111,112,
101,76,105,115,116,0,9437,9535,10,3172,3194,149,123,123,0,2049,1570,2,1,3185,
2049,63,16,10,3188,3219,149,45,45,45,114,101,118,101,97,108,45,45,45,0,
2049,1570,1,3185,2049,2921,16,10,3203,3233,149,125,125,0,1,3185,2049,60,4,15,
11,1793,3247,3841,3185,4097,2,10,1,3242,1793,3273,3841,3185,1793,3268,1,2,983567,1,
3185,2049,2921,1641487,3,1,3257,7,10,1,3255,8,16,10,1,3251,2049,68,10,3227,
3287,137,115,116,97,114,116,0,0,10,3278,3296,137,101,110,100,0,0,10,3289,
3311,149,116,101,114,109,105,110,97,116,101,0,1,0,3841,3296,16,10,3227,3333,
149,98,117,102,102,101,114,58,115,116,97,114,116,0,3841,3287,10,3317,3350,149,
98,117,102,102,101,114,58,101,110,100,0,3841,3296,10,3336,3367,149,98,117,102,
102,101,114,58,97,100,100,0,3841,3296,16,1,3296,2049,3019,2049,3311,10,3353,3391,
149,98,117,102,102,101,114,58,103,101,116,0,1,3296,2049,3034,3841,3296,15,2049,
3311,10,3377,3417,149,98,117,102,102,101,114,58,101,109,112,116,121,0,3841,3287,
4097,3296,2049,3311,10,3401,3439,149,98,117,102,102,101,114,58,115,105,122,101,0,
3841,3296,3841,3287,18,10,3424,3459,149,98,117,102,102,101,114,58,115,101,116,0,
4097,3287,2049,3417,10,3445,3483,149,98,117,102,102,101,114,58,112,114,101,115,101,
114,118,101,0,3841,3287,3841,3296,1793,3496,1,25,2049,2095,4097,3287,10,1,3489,2049,
2095,4097,3296,10,3464,3518,137,84,101,109,112,83,116,114,105,110,103,115,0,32,
3503,3536,137,84,101,109,112,83,116,114,105,110,103,77,97,120,0,512,3519,3548,
149,83,84,82,73,78,71,83,0,2049,1543,3841,3518,3841,3536,19,18,10,3537,3568,
137,67,117,114,114,101,110,116,0,0,10,3557,3583,149,115,58,112,111,105,110,
116,101,114,0,3841,3568,3841,3536,19,2049,3548,17,10,3570,3602,149,115,58,110,101,
120,116,0,1,3568,2049,3019,3841,3568,3841,3518,11,1793,3618,1,0,4097,3568,10,1,
3613,9,10,3537,3632,149,115,58,116,101,109,112,0,2,2049,85,2049,2921,2049,3583,
4,2049,3157,2049,3583,2049,3602,10,3622,3658,149,115,58,101,109,112,116,121,0,2049,
3583,2049,3602,1,0,67502597,16,10,3647,3677,149,115,58,115,107,105,112,0,6,1793,
3685,68223234,1,786703,0,10,1,3680,2049,2222,2049,2934,5,10,3667,3703,149,115,58,107,
101,101,112,0,2049,1815,1793,3712,1,3677,2049,1774,10,1,3707,9,2049,1871,1,125,
2049,2095,2049,137,10,3693,3735,161,115,105,103,105,108,58,39,0,2049,1815,1,3703,
1,3632,2049,68,10,3724,3754,149,115,58,99,104,111,112,0,2049,3632,2,2049,85,
67502597,17,2049,2934,1,0,4,16,10,3744,3781,149,115,58,114,101,118,101,114,115,
101,0,1793,3823,2,2049,3632,2049,3459,1,85,1793,3799,2,2049,85,17,2049,2934,10,
1,3792,2049,2117,4,1793,3813,2,15,2049,3367,2049,2934,10,1,3806,2049,2270,3,2049,
3333,2049,3632,10,1,3783,2049,3483,10,3768,3841,149,115,58,112,114,101,112,101,110,
100,0,2049,3632,1793,3865,2,2049,85,17,1793,3857,2,2049,85,2049,2921,10,1,3851,
2049,2095,4,2049,3157,10,1,3845,2049,2105,10,3828,3882,149,115,58,97,112,112,101,
110,100,0,4,2049,3841,10,3870,3900,149,115,58,102,111,114,45,101,97,99,104,
0,1793,3915,67502597,6415,3,67502597,67502597,251987205,2054,101777670,1,1,3902,7,10,1,3902,8,771,
10,3886,3934,149,115,58,105,110,100,101,120,45,111,102,0,4,1793,3948,68223234,1,
6415,33883396,101450758,6404,3,1,3937,7,10,1,3937,1793,3957,18,2049,2934,772,10,1,3952,
1793,3966,2049,85,67502597,11,10,1,3961,2049,2154,1793,3976,3,1,-1,10,1,3972,9,
10,3920,4000,149,115,58,99,111,110,116,97,105,110,115,45,99,104,97,114,63,
0,2049,3934,1,-1,12,10,3980,4016,149,115,58,104,97,115,104,0,1,5381,4,
1793,4024,286458116,33,10,1,4021,2049,3900,10,4006,4036,137,83,114,99,0,0,4029,4044,
137,84,97,114,0,0,4037,4052,137,80,97,100,0,0,4045,4058,137,73,0,0,
4053,4064,137,70,0,0,4059,4071,137,65,116,0,0,4065,4085,149,116,101,114,109,
105,110,97,116,101,0,1,0,3841,4052,3841,4044,2049,85,17,16,10,4072,4107,149,
101,120,116,114,97,99,116,0,3841,4036,3841,4058,17,3841,4052,3841,4044,2049,85,2049,
3157,10,4096,4132,149,99,111,109,112,97,114,101,0,3841,4052,3841,4044,2049,99,3841,
4064,22,4097,4064,3841,4064,1793,4152,3841,4058,4097,4071,10,1,4147,2049,76,10,4121,4165,
149,110,101,120,116,0,1,4058,2049,3019,10,4006,4192,149,115,58,99,111,110,116,
97,105,110,115,45,115,116,114,105,110,103,63,0,4097,4044,4097,4036,2049,3658,4097,
4052,1,0,4097,4058,1,0,4097,4064,3841,4036,2049,85,1793,4223,2049,4107,2049,4085,2049,
4132,2049,4165,10,1,4214,2049,2270,3841,4064,10,4170,4237,137,83,116,114,0,0,4230,
4249,149,101,120,116,114,97,99,116,0,2049,2085,3841,4237,4,2049,3157,3841,-1,67502597,
17,1,0,4,16,10,4238,4274,149,99,104,101,99,107,0,1,4249,2049,2095,1793,
4285,1,2921,2049,2095,10,1,4280,2049,2095,3841,4237,2049,4016,67502597,11,10,4265,4308,149,
108,111,99,97,116,105,111,110,0,67503109,67503109,1793,4341,1793,4336,4,1793,4322,67502597,2049,
2521,21,10,1,4317,2049,2095,4,1793,4332,772,2,10,1,4329,9,10,1,4314,2049,
2095,10,1,4312,2049,2095,10,4296,4355,149,115,101,116,117,112,0,2049,3658,4097,4237,
1,0,67503109,67503109,1,85,1,4016,2049,2117,2049,3658,2049,3459,1793,4379,67502597,2049,85,10,
1,4375,2049,2095,4,10,4170,4406,149,115,58,105,110,100,101,120,45,111,102,45,
115,116,114,105,110,103,0,67502597,1793,4432,1793,4425,2049,4355,1793,4420,2049,4274,2049,4308,
10,1,4415,2049,2270,10,1,4411,2049,3483,771,3,10,1,4409,2049,2095,18,1,2,
18,1,-1,2049,2859,10,4385,4457,149,115,58,102,105,108,116,101,114,0,1793,4485,
2049,3658,2049,3459,4,1793,4477,2049,2085,4,8,1,3367,1,15,2049,68,10,1,4466,
2049,3900,3,2049,3333,10,1,4459,2049,3483,10,4445,4499,149,115,58,109,97,112,0,
1793,4521,2049,3658,2049,3459,4,1793,4513,67502597,8,2049,3367,10,1,4508,2049,3900,3,2049,
3333,10,1,4501,2049,3483,10,4490,4538,149,115,58,115,117,98,115,116,114,0,1793,
4544,17,2049,3658,10,1,4540,2049,2095,1793,4556,67502597,1,3157,2049,2095,10,1,4550,2049,
2105,67502597,1793,4569,17,1,0,4,16,10,1,4563,2049,2095,10,4526,4585,149,115,58,
114,105,103,104,116,0,67502597,2049,85,67502597,18,4,2049,4538,10,4574,4604,149,115,58,
108,101,102,116,0,1,0,4,2049,4538,10,4594,4628,149,115,58,98,101,103,105,
110,115,45,119,105,116,104,63,0,2,2049,85,1,17,2049,2095,2049,4604,2049,99,
10,4610,4656,149,115,58,101,110,100,115,45,119,105,116,104,63,0,2,2049,85,
1,17,2049,2095,2049,4585,2049,99,10,4640,4678,149,115,58,99,111,112,121,0,67502597,
2049,85,2049,2921,2049,3157,10,4668,4698,149,115,58,68,73,71,73,84,83,0,2049,
3677,48,49,50,51,52,53,54,55,56,57,65,66,67,68,69,70,0,1,4700,
10,4686,4741,149,115,58,65,83,67,73,73,45,76,79,87,69,82,67,65,83,
69,0,2049,3677,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,4743,10,4720,4794,149,115,58,65,
83,67,73,73,45,85,80,80,69,82,67,65,83,69,0,2049,3677,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,4796,10,4773,4845,149,115,58,65,83,67,73,73,45,76,69,
84,84,69,82,83,0,2049,3677,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,4847,10,4826,4920,149,115,58,80,85,78,67,84,85,65,84,73,79,78,
0,2049,3677,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,4922,1,95,
67502597,16,10,4903,4978,137,115,58,87,72,73,84,69,83,80,65,67,69,0,32,
9,10,13,0,4962,4988,161,39,0,1,3658,2049,149,10,4983,4998,161,36,0,1,
0,2049,137,10,4993,0,137,65,83,67,73,73,58,78,85,76,0,5003,27,137,
65,83,67,73,73,58,69,83,67,0,5016,8,137,65,83,67,73,73,58,66,
83,0,5029,9,137,65,83,67,73,73,58,72,84,0,5041,10,137,65,83,67,
73,73,58,76,70,0,5053,11,137,65,83,67,73,73,58,86,84,0,5065,12,
137,65,83,67,73,73,58,70,70,0,5077,13,137,65,83,67,73,73,58,67,
82,0,5089,32,137,65,83,67,73,73,58,83,80,65,67,69,0,5101,127,137,
65,83,67,73,73,58,68,69,76,0,5116,1,137,65,83,67,73,73,58,83,
79,72,0,5129,2,137,65,83,67,73,73,58,83,84,88,0,5142,3,137,65,
83,67,73,73,58,69,84,88,0,5155,4,137,65,83,67,73,73,58,69,79,
84,0,5168,5,137,65,83,67,73,73,58,69,78,81,0,5181,6,137,65,83,
67,73,73,58,65,67,75,0,5194,7,137,65,83,67,73,73,58,66,69,76,
0,5207,14,137,65,83,67,73,73,58,83,79,0,5220,15,137,65,83,67,73,
73,58,83,73,0,5232,16,137,65,83,67,73,73,58,68,76,69,0,5244,17,
137,65,83,67,73,73,58,68,67,49,0,5257,18,137,65,83,67,73,73,58,
68,67,50,0,5270,19,137,65,83,67,73,73,58,68,67,51,0,5283,20,137,
65,83,67,73,73,58,68,67,52,0,5296,21,137,65,83,67,73,73,58,78,
65,75,0,5309,22,137,65,83,67,73,73,58,83,89,78,0,5322,23,137,65,
83,67,73,73,58,69,84,66,0,5335,24,137,65,83,67,73,73,58,67,65,
78,0,5348,25,137,65,83,67,73,73,58,69,77,0,5361,26,137,65,83,67,
73,73,58,83,85,66,0,5373,28,137,65,83,67,73,73,58,70,83,0,5386,
29,137,65,83,67,73,73,58,71,83,0,5398,30,137,65,83,67,73,73,58,
82,83,0,5410,31,137,65,83,67,73,73,58,85,83,0,5422,5450,149,99,58,
108,111,119,101,114,99,97,115,101,63,0,1,97,1,122,2049,2952,10,5434,5473,
149,99,58,117,112,112,101,114,99,97,115,101,63,0,1,65,1,90,2049,2952,
10,5457,5493,149,99,58,108,101,116,116,101,114,63,0,1,5450,1,5473,2049,2117,
22,10,5480,5513,149,99,58,100,105,103,105,116,63,0,1,48,1,57,2049,2952,
10,5501,5534,149,99,58,118,105,115,105,98,108,101,63,0,1,32,1,126,2049,
2952,10,5520,5553,149,99,58,118,111,119,101,108,63,0,2049,3677,97,101,105,111,
117,65,69,73,79,85,0,1,5555,4,2049,4000,10,5541,5588,149,99,58,99,111,
110,115,111,110,97,110,116,63,0,2,2049,5493,1793,5598,2049,5553,2049,2453,10,1,
5593,1793,5606,3,2049,2356,10,1,5602,2049,68,10,5572,5628,149,99,58,119,104,105,
116,101,115,112,97,99,101,63,0,1,4978,4,2049,4000,10,5611,5651,149,99,58,
45,108,111,119,101,114,99,97,115,101,63,0,2049,5450,2049,2453,10,5634,5673,149,
99,58,45,117,112,112,101,114,99,97,115,101,63,0,2049,5473,2049,2453,10,5656,
5691,149,99,58,45,100,105,103,105,116,63,0,2049,5513,2049,2453,10,5678,5714,149,
99,58,45,119,104,105,116,101,115,112,97,99,101,63,0,2049,5628,2049,2453,10,
5696,5734,149,99,58,45,118,105,115,105,98,108,101,63,0,2049,5534,2049,2453,10,
5719,5752,149,99,58,45,118,111,119,101,108,63,0,2049,5553,2049,2453,10,5739,5774,
149,99,58,45,99,111,110,115,111,110,97,110,116,63,0,2049,5588,2049,2453,10,
5757,5793,149,99,58,116,111,45,117,112,112,101,114,0,2,2049,5450,25,3,1,
32,18,10,5779,5816,149,99,58,116,111,45,108,111,119,101,114,0,2,2049,5473,
25,3,1,32,17,10,5802,5840,149,99,58,116,111,45,115,116,114,105,110,103,
0,2049,3677,46,0,1,5842,2049,3632,1,40,2049,2105,10,5825,5870,149,99,58,116,
111,103,103,108,101,45,99,97,115,101,0,2,2049,5450,1,5793,1,5816,2049,68,
10,5853,5895,149,99,58,116,111,45,110,117,109,98,101,114,0,2,2049,5513,1793,
5904,1,48,18,10,1,5900,1793,5912,3,1,0,10,1,5908,2049,68,10,5880,5931,
149,115,58,116,111,45,117,112,112,101,114,0,1,5793,2049,4499,10,5917,5950,149,
115,58,116,111,45,108,111,119,101,114,0,1,5816,2049,4499,10,5936,5970,149,115,
58,116,114,105,109,45,108,101,102,116,0,2049,3632,1793,5984,2049,60,1,5628,1,
2537,2049,2117,21,10,1,5974,2049,2222,2049,2934,10,5955,6007,149,115,58,116,114,105,
109,45,114,105,103,104,116,0,2049,3632,2049,3781,2049,5970,2049,3781,10,5991,6026,149,
115,58,116,114,105,109,0,2049,6007,2049,5970,10,6016,6053,137,82,101,119,114,105,
116,101,85,110,100,101,114,115,99,111,114,101,115,0,-1,6031,6061,149,115,117,
98,0,1,95,1793,6068,1,32,10,1,6065,2049,2367,10,6054,6084,149,114,101,119,
114,105,116,101,0,3841,6053,1793,6093,1,6061,2049,4499,10,1,6088,9,10,6073,6107,
149,104,97,110,100,108,101,0,1,3735,8,10,6031,6122,161,115,105,103,105,108,
58,39,0,2049,6084,2049,6107,10,6111,6138,149,115,58,115,112,108,105,116,0,2049,
2085,2049,3934,772,2049,2085,2049,4604,1,42,2049,2095,10,6127,6173,149,115,58,115,112,
108,105,116,45,111,110,45,115,116,114,105,110,103,0,2049,2085,2049,4406,2049,2921,
772,2049,2085,2049,4604,1,42,2049,2095,10,6152,6202,149,115,58,114,101,112,108,97,
99,101,0,67502597,2049,85,2049,1871,16,1793,6218,2049,6173,4,2049,1871,15,17,10,1,
6210,2049,2095,2049,3841,2049,3882,10,6189,6239,137,83,112,108,105,116,45,79,110,0,
0,6227,6250,149,109,97,116,99,104,63,0,3841,6239,11,10,6240,6267,149,116,101,
114,109,105,110,97,116,101,0,1,0,67502597,2049,2934,16,10,6254,6282,149,115,116,
101,112,0,1,2921,2049,2095,2049,6250,1793,6296,2,2049,111,2049,6267,10,1,6290,9,
10,6189,6314,149,115,58,116,111,107,101,110,105,122,101,0,4097,6239,2049,3703,2049,
1871,1,0,2049,111,1793,6336,2,2049,111,2,1,6282,2049,3900,3,10,1,6326,2049,
2095,2049,1871,67502597,18,2049,2934,67502597,16,10,6300,6359,137,78,101,101,100,108,101,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,6349,6494,137,76,101,110,0,0,6487,6505,137,84,
111,107,101,110,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,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,6495,6639,137,84,80,0,
0,6633,6648,149,115,97,118,101,0,2049,3703,3841,6639,1,6505,17,2049,2921,16,1,
6639,2049,3019,10,6640,6671,149,110,101,120,116,0,1793,6677,3841,6494,17,10,1,6673,
2049,2105,10,6663,6691,149,100,111,110,101,63,0,2049,85,2049,2521,10,6300,6720,149,
115,58,116,111,107,101,110,105,122,101,45,111,110,45,115,116,114,105,110,103,
0,1,0,4097,6639,1793,6734,2,1,6359,2049,4678,2049,3882,10,1,6726,1793,6743,2049,
85,4097,6494,10,1,6738,2049,2117,1793,6760,1,6359,2049,6173,2049,6648,2049,6671,2049,6691,
10,1,6749,2049,2245,1,6505,3841,6639,2049,2934,4097,6505,10,6696,6785,149,102,111,114,
45,101,97,99,104,0,4,2049,60,1,17,2049,2095,1793,6801,5,2049,60,84018692,525572,
1542,10,1,6794,2049,2270,771,10,6773,6821,149,115,117,98,115,116,105,116,117,116,
101,0,2049,3548,1,129,18,10,6807,6838,149,101,120,116,114,97,99,116,0,2049,
6821,2049,4678,10,6827,6855,149,116,111,107,101,110,105,122,101,0,2049,6720,2049,3658,
10,6843,6871,149,99,111,109,98,105,110,101,0,2049,6821,2049,3882,2049,3882,10,6860,
6887,149,109,101,114,103,101,0,4,1,6871,2049,6785,772,10,6878,6906,149,102,105,
110,100,45,101,110,100,0,2,2049,85,2049,6821,2049,85,18,67502597,17,10,6894,6926,
149,99,108,101,97,110,0,2049,6906,1,0,4,16,10,6696,6950,149,115,58,114,
101,112,108,97,99,101,45,97,108,108,0,1,3,1793,6965,2049,6838,2049,6855,2049,
6887,2049,6926,2049,3632,10,1,6954,2049,3110,10,6933,6980,137,83,116,114,105,110,103,
0,0,0,0,0,0,0,0,0,0,0,0,0,6970,7006,149,99,104,101,99,
107,45,115,105,103,110,0,2049,2556,1793,7015,1,45,2049,3367,10,1,7010,9,10,
6992,7031,149,110,45,62,100,105,103,105,116,0,2049,4698,17,15,10,7019,7047,149,
99,111,110,118,101,114,116,0,1793,7061,3841,209,20,4,2049,7031,2049,3367,2,2049,
2521,10,1,7049,2049,2245,3,10,6933,7082,149,110,58,116,111,45,115,116,114,105,
110,103,0,1793,7096,1,6980,2049,3459,2,2049,2886,2049,7047,2049,7006,10,1,7084,2049,
3483,1,6980,2049,3781,10,7067,7113,149,99,104,97,114,0,1,32,1793,7122,1,95,
2049,3367,10,1,7117,2049,2367,1,114,1793,7135,1,13,2049,3367,10,1,7130,2049,2367,
1,110,1793,7148,1,10,2049,3367,10,1,7143,2049,2367,1,116,1793,7161,1,9,2049,
3367,10,1,7156,2049,2367,1,48,1793,7174,1,0,2049,3367,10,1,7169,2049,2367,1,
94,1793,7187,1,27,2049,3367,10,1,7182,2049,2367,2049,3367,10,7105,7202,149,116,121,
112,101,0,1,99,1793,7210,4,2049,3367,10,1,7206,2049,2367,1,115,1793,7224,4,
1,3367,2049,3900,10,1,7218,2049,2367,1,110,1793,7240,4,2049,7082,1,3367,2049,3900,
10,1,7232,2049,2367,3,10,7194,7256,149,104,97,110,100,108,101,0,1,92,1793,
7265,2049,60,2049,7113,10,1,7260,2049,2367,1,37,1793,7278,2049,60,2049,7202,10,1,
7273,2049,2367,2049,3367,10,7067,7297,149,115,58,102,111,114,109,97,116,0,1793,7326,
2049,3658,1793,7321,2049,3459,1793,7316,2049,60,25,2049,7256,1,7307,7,10,1,7307,8,
3,10,1,7303,2049,2105,10,1,7299,2049,3483,10,7285,7342,149,115,58,99,111,110,
115,116,0,1,3703,2049,2095,2049,2011,10,7331,7359,137,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,7349,7395,149,102,114,111,109,0,2049,85,2,1793,
7413,1793,7406,1,7359,4113,10,1,7402,2049,2105,2049,2934,10,1,7400,2049,2270,3,10,
7387,7425,149,116,111,0,2,2049,85,1793,7441,2049,60,1,97,18,2049,2921,1,7359,
266001,10,1,7430,2049,2270,3,10,7331,7458,149,114,101,111,114,100,101,114,0,1,
7395,2049,2095,2049,7425,10,7447,7474,149,99,117,114,114,121,0,2049,1871,1793,7484,4,
2049,1728,2049,1751,10,1,7478,2049,2095,10,7465,7497,149,100,111,101,115,0,2049,1587,
4,2049,7474,2049,1570,2049,163,16,1,149,2049,1646,10,7489,7526,149,100,58,102,111,
114,45,101,97,99,104,0,1,2,1793,7552,6415,2049,2085,1793,7544,1793,7539,2052,10,
1,7537,2049,2095,10,1,7535,2049,2095,1,7530,7,10,1,7530,8,3,10,7512,7572,
149,100,58,108,111,111,107,117,112,45,120,116,0,1,0,4,1793,7597,2049,2085,
2049,163,2831,1793,7590,4,1,2046,2049,2095,10,1,7584,1,15,2049,68,10,1,7577,
2049,7526,3,10,7557,7615,149,97,58,108,101,110,103,116,104,0,15,10,7603,7638,
149,97,58,99,111,117,110,116,101,100,45,114,101,115,117,108,116,115,0,8,
2049,1871,1793,7651,2,2049,111,1,111,2049,2270,10,1,7643,2049,2095,10,7617,7673,149,
97,58,102,114,111,109,45,115,116,114,105,110,103,0,2049,1871,1793,7687,2,2049,
85,2049,111,1,111,2049,3900,10,1,7677,2049,2095,10,7656,7706,149,97,58,102,111,
114,45,101,97,99,104,0,4,2049,60,1,17,2049,2095,1793,7722,5,2049,60,84018692,
525572,1542,10,1,7715,2049,2270,771,10,7692,7737,149,97,58,100,117,112,0,2049,1871,
1793,7750,2,15,2049,111,1,111,2049,7706,10,1,7741,2049,2095,10,7728,7765,149,97,
58,99,111,112,121,0,1,3,1793,7781,4097,3,2,2049,7615,2049,111,1,111,2049,
7706,10,1,7769,2049,3110,10,7755,7801,149,97,58,116,111,45,115,116,114,105,110,
103,0,1,3,1793,7814,2049,7737,1,0,2049,111,2049,2921,10,1,7805,2049,3110,2049,
3632,10,7786,7833,149,97,58,97,112,112,101,110,100,0,2049,2085,1,38,2049,2143,
17,2049,1871,1793,7858,2049,111,1793,7853,1,111,2049,7706,10,1,7848,2049,2143,10,1,
7844,2049,2095,10,7821,7876,149,97,58,112,114,101,112,101,110,100,0,4,2049,7833,
10,7863,7890,149,97,58,99,104,111,112,0,2049,7737,1,-1,2049,3091,2,2049,3034,
10,7880,7912,149,97,58,102,105,108,116,101,114,0,1793,7927,67502597,1,25,2049,2095,
4,1,111,1,15,2049,68,10,1,7914,2049,7474,2049,1871,1793,7942,67502597,15,2049,111,
2049,7706,10,1,7935,2049,2095,2049,1871,67502597,18,2049,2934,67502597,16,10,7900,7970,149,97,
58,99,111,110,116,97,105,110,115,63,0,1,0,4,1793,7982,4,5,67502597,11,
6,22,10,1,7975,2049,7706,772,10,7955,8010,149,97,58,99,111,110,116,97,105,
110,115,45,115,116,114,105,110,103,63,0,1,0,4,1793,8023,4,5,67502597,2049,
99,6,22,10,1,8015,2049,7706,772,10,7988,8038,149,97,58,109,97,112,0,1793,
8044,8,2049,111,10,1,8040,2049,7474,2049,1871,1793,8059,67502597,15,2049,111,2049,7706,10,
1,8052,2049,2095,10,8029,8077,149,97,58,114,101,118,101,114,115,101,0,2049,1871,
1793,8111,2049,60,1793,8089,17,2049,2934,10,1,8085,2049,2105,2,2049,111,1793,8105,2,
15,2049,111,2049,2934,10,1,8098,2049,2270,3,10,1,8081,2049,2095,10,8064,8124,149,
97,58,116,104,0,17,2049,2921,10,8116,8139,149,97,58,102,101,116,99,104,0,
2049,8124,15,10,8128,8154,149,97,58,115,116,111,114,101,0,2049,8124,16,10,8143,
8170,149,97,58,114,101,100,117,99,101,0,1,17,2049,2095,2049,7706,10,8158,8189,
149,105,100,101,110,116,105,102,121,0,1,-1,4,1,0,1793,8220,2049,2344,11,
1793,8214,67502597,1,-1,11,1793,8210,772,2,10,1,8207,9,10,1,8201,9,2049,2921,
10,1,8196,2049,8170,3,10,8158,8240,149,97,58,105,110,100,101,120,45,111,102,
0,1,3,1793,8253,1,30,2049,7474,2049,8038,2049,8189,10,1,8244,2049,3110,10,8226,
8279,149,97,58,105,110,100,101,120,45,111,102,45,115,116,114,105,110,103,0,
1,3,1793,8292,1,99,2049,7474,2049,8038,2049,8189,10,1,8283,2049,3110,10,8258,8307,
149,97,58,109,97,107,101,0,2049,7638,2,2,1,3,1793,8318,2049,8077,10,1,
8315,2049,3110,4,2049,7765,10,8297,8331,161,123,0,1,298,2049,161,1,1556,2049,149,
1,298,2049,161,10,8326,8349,161,125,0,1,314,2049,161,1,2095,2049,149,1,1556,
2049,149,1,17,2049,155,1,44,2049,155,1,2934,2049,149,1,314,2049,161,1,8307,
2049,149,10,8344,8393,149,98,111,117,110,100,115,63,0,67502597,2049,7615,67502597,13,10,
8382,8407,149,99,111,112,121,0,2049,60,2049,111,10,8399,8422,149,116,111,45,101,
110,100,0,2,2049,7615,17,2049,2921,10,8344,8439,149,97,58,108,101,102,116,0,
2049,8393,1793,8447,771,1,-1,10,1,8443,2049,2647,2049,1871,67502597,2049,111,1793,8468,1,
2921,2049,2095,1,8407,2049,2270,3,10,1,8458,2049,2095,10,8429,8484,149,97,58,114,
105,103,104,116,0,2049,8393,1793,8492,771,1,-1,10,1,8488,2049,2647,2049,1871,67502597,
2049,111,1793,8515,4,2049,8422,67502597,18,4,1,8407,2049,2270,3,10,1,8503,2049,2095,
10,8473,8532,149,97,58,109,105,100,100,108,101,0,1,2037,2049,2095,4,67502597,2049,
8393,1793,8547,771,3,1,-1,10,1,8542,2049,2647,771,2049,2085,4,18,2049,2921,2049,
1871,67502597,2049,111,1793,8582,772,1793,8572,17,2049,2921,10,1,8568,2049,2095,1,8407,2049,
2270,3,10,1,8565,2049,2095,10,8520,8595,137,70,108,97,103,0,0,8587,8607,149,
99,111,109,112,97,114,101,0,67440386,184946434,10,8596,8620,149,108,101,110,103,116,104,
0,659202,10,8610,8630,149,110,101,120,116,0,17043713,1,1,2577,10,8622,8648,149,110,
111,116,45,101,113,117,97,108,0,50529030,2561,0,10,8635,8660,149,108,111,111,112,
0,524549,8630,2049,8607,18157313,8595,8595,16,420610310,1,1,8660,7,10,8520,8683,149,97,58,
101,113,63,0,1048833,-1,8595,2049,8607,151066369,-1,8648,2049,8620,2049,8660,251724547,8595,10,8674,
8708,149,97,58,45,101,113,63,0,2049,8683,2049,2453,10,8698,8731,149,97,58,98,
101,103,105,110,115,45,119,105,116,104,63,0,1,3,1793,8747,2,2049,7615,1,
17,2049,2095,2049,8439,2049,8683,10,1,8735,2049,3110,10,8713,8768,149,97,58,101,110,
100,115,45,119,105,116,104,63,0,1,3,1793,8784,2,2049,7615,1,17,2049,2095,
2049,8484,2049,8683,10,1,8772,2049,3110,10,8752,8805,149,99,117,114,114,101,110,116,
45,108,105,110,101,0,2049,3548,1,1025,18,10,8789,8827,149,99,111,117,110,116,
45,116,111,107,101,110,115,0,1793,8833,1,32,11,10,1,8829,2049,4457,2049,85,
10,8811,8858,149,112,114,111,99,101,115,115,45,116,111,107,101,110,115,0,1793,
8886,1,32,2049,6138,4,1793,8879,2,2049,85,2049,2537,1,376,1,15,2049,68,10,
1,8867,2049,2095,2049,2921,10,1,8860,2049,2270,2049,376,10,8752,8907,149,115,58,101,
118,97,108,117,97,116,101,0,2049,8805,2049,4678,2049,8805,2,2049,8827,2049,8858,10,
8893,8925,137,76,80,0,0,8919,8935,137,73,110,100,101,120,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,8926,8975,149,110,101,120,116,0,3841,8925,1,8935,
17,2049,3019,10,8967,8991,149,112,114,101,112,0,1,8925,2049,3019,1,0,3841,8925,
1,8935,17,16,10,8983,9012,149,100,111,110,101,0,1,8925,2049,3034,10,8893,9022,
149,73,0,3841,8925,1,8935,17,15,10,9017,9034,149,74,0,3841,8925,1,8935,17,
2049,2934,15,10,9029,9048,149,75,0,3841,8925,1,8935,17,1,2,18,15,10,9043,
9075,149,105,110,100,101,120,101,100,45,116,105,109,101,115,0,2049,8991,4,1793,
9091,25,33886721,1,2053,1542,2049,8975,1,9080,7,10,1,9080,8,3,2049,9012,10,9058,
9106,161,104,111,111,107,0,2049,3677,108,105,106,117,46,46,46,46,0,1,9108,
2049,423,2049,1871,2049,2921,2049,111,10,9098,9140,149,115,101,116,45,104,111,111,107,
0,2049,2921,16,10,9128,9154,149,117,110,104,111,111,107,0,2049,2921,2,2049,2921,
4,16,10,9144,9173,149,100,101,99,105,109,97,108,0,1,10,4097,209,10,9162,
9188,149,98,105,110,97,114,121,0,1,2,4097,209,10,9178,9202,149,111,99,116,
97,108,0,1,8,4097,209,10,9193,9214,149,104,101,120,0,1,16,4097,209,10,
9207,9235,149,105,111,58,101,110,117,109,101,114,97,116,101,0,27,10,9219,9249,
149,105,111,58,113,117,101,114,121,0,28,10,9237,9264,149,105,111,58,105,110,
118,111,107,101,0,29,10,9251,9281,149,105,111,58,115,99,97,110,45,102,111,
114,0,1,-1,4,2049,9235,1793,9312,2049,9022,2049,9249,772,67502597,11,1793,9308,1793,9303,
3,2049,9022,10,1,9299,2049,2095,10,1,9297,9,10,1,9288,2049,9075,3,10,9266,
9327,149,99,58,112,117,116,0,1793,9329,1,0,2049,9264,10,9318,9340,149,110,108,
0,1,10,2049,9327,10,9334,9351,149,115,112,0,1,32,2049,9327,10,9345,9363,149,
116,97,98,0,1,9,2049,9327,10,9356,9377,149,115,58,112,117,116,0,1,9327,
2049,3900,10,9368,9391,149,110,58,112,117,116,0,2049,7082,2049,9377,10,9382,9405,149,
114,101,115,101,116,0,2049,1556,25,771,1,9405,7,10,9396,9427,149,100,117,109,
112,45,115,116,97,99,107,0,2049,1556,25,134284547,9427,134283782,9391,2049,9351,10,9413,9445,
149,70,82,69,69,0,2049,3548,1,1025,18,2049,1871,18,10,9437,9462,149,101,111,
108,63,0,1793,9468,1,13,11,10,1,9464,1793,9476,1,10,11,10,1,9472,1793,
9484,1,32,11,10,1,9480,2049,2154,22,22,10,9454,9501,149,118,97,108,105,100,
63,0,2,2049,85,2049,2537,10,9491,9514,149,98,115,63,0,2,1793,9521,1,8,
11,10,1,9517,1793,9529,1,127,11,10,1,9525,2049,2117,22,10,9507,9547,149,99,
104,101,99,107,45,98,115,0,2049,9514,1793,9557,2049,3391,2049,3391,771,10,1,9551,
9,10,9437,9570,149,99,58,103,101,116,0,1,1,2049,9281,2049,9264,10,9561,9586,
149,115,58,103,101,116,0,1793,9614,1,7,15,2049,3459,1793,9605,2049,9570,2,2049,
3367,2049,9547,2049,9462,10,1,9595,2049,2245,2049,3333,2049,3754,10,1,9588,2049,3483,10,
9577,9629,149,108,105,115,116,101,110,0,2049,9586,2049,9501,1,376,1,15,2049,68,
1,9629,7,10,0
]
var i = 0
for cell in standard {
memory[i] = Int64(cell)
i += 1
}
}

View file

@ -1,294 +0,0 @@
// !$*UTF8*$!
{
archiveVersion = 1;
classes = {
};
objectVersion = 50;
objects = {
/* Begin PBXBuildFile section */
28DEB50726549E2100C31ED1 /* image.swift in Sources */ = {isa = PBXBuildFile; fileRef = 28DEB50626549E2100C31ED1 /* image.swift */; };
28DEB50926549E3100C31ED1 /* main.swift in Sources */ = {isa = PBXBuildFile; fileRef = 28DEB50826549E3100C31ED1 /* main.swift */; };
/* End PBXBuildFile section */
/* Begin PBXCopyFilesBuildPhase section */
28DEB4FA26549D8D00C31ED1 /* CopyFiles */ = {
isa = PBXCopyFilesBuildPhase;
buildActionMask = 2147483647;
dstPath = /usr/share/man/man1/;
dstSubfolderSpec = 0;
files = (
);
runOnlyForDeploymentPostprocessing = 1;
};
/* End PBXCopyFilesBuildPhase section */
/* Begin PBXFileReference section */
28DEB4FC26549D8D00C31ED1 /* nga-swift */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = "nga-swift"; sourceTree = BUILT_PRODUCTS_DIR; };
28DEB50626549E2100C31ED1 /* image.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = image.swift; sourceTree = SOURCE_ROOT; };
28DEB50826549E3100C31ED1 /* main.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = main.swift; sourceTree = SOURCE_ROOT; };
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
28DEB4F926549D8D00C31ED1 /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXFrameworksBuildPhase section */
/* Begin PBXGroup section */
28DEB4F326549D8D00C31ED1 = {
isa = PBXGroup;
children = (
28DEB4FE26549D8D00C31ED1 /* nga-swift */,
28DEB4FD26549D8D00C31ED1 /* Products */,
);
sourceTree = "<group>";
};
28DEB4FD26549D8D00C31ED1 /* Products */ = {
isa = PBXGroup;
children = (
28DEB4FC26549D8D00C31ED1 /* nga-swift */,
);
name = Products;
sourceTree = "<group>";
};
28DEB4FE26549D8D00C31ED1 /* nga-swift */ = {
isa = PBXGroup;
children = (
28DEB50626549E2100C31ED1 /* image.swift */,
28DEB50826549E3100C31ED1 /* main.swift */,
);
path = "nga-swift";
sourceTree = "<group>";
};
/* End PBXGroup section */
/* Begin PBXNativeTarget section */
28DEB4FB26549D8D00C31ED1 /* nga-swift */ = {
isa = PBXNativeTarget;
buildConfigurationList = 28DEB50326549D8D00C31ED1 /* Build configuration list for PBXNativeTarget "nga-swift" */;
buildPhases = (
28DEB4F826549D8D00C31ED1 /* Sources */,
28DEB4F926549D8D00C31ED1 /* Frameworks */,
28DEB4FA26549D8D00C31ED1 /* CopyFiles */,
);
buildRules = (
);
dependencies = (
);
name = "nga-swift";
productName = "nga-swift";
productReference = 28DEB4FC26549D8D00C31ED1 /* nga-swift */;
productType = "com.apple.product-type.tool";
};
/* End PBXNativeTarget section */
/* Begin PBXProject section */
28DEB4F426549D8D00C31ED1 /* Project object */ = {
isa = PBXProject;
attributes = {
LastSwiftUpdateCheck = 1250;
LastUpgradeCheck = 1250;
TargetAttributes = {
28DEB4FB26549D8D00C31ED1 = {
CreatedOnToolsVersion = 12.5;
};
};
};
buildConfigurationList = 28DEB4F726549D8D00C31ED1 /* Build configuration list for PBXProject "nga-swift" */;
compatibilityVersion = "Xcode 9.3";
developmentRegion = en;
hasScannedForEncodings = 0;
knownRegions = (
en,
Base,
);
mainGroup = 28DEB4F326549D8D00C31ED1;
productRefGroup = 28DEB4FD26549D8D00C31ED1 /* Products */;
projectDirPath = "";
projectRoot = "";
targets = (
28DEB4FB26549D8D00C31ED1 /* nga-swift */,
);
};
/* End PBXProject section */
/* Begin PBXSourcesBuildPhase section */
28DEB4F826549D8D00C31ED1 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
28DEB50926549E3100C31ED1 /* main.swift in Sources */,
28DEB50726549E2100C31ED1 /* image.swift in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXSourcesBuildPhase section */
/* Begin XCBuildConfiguration section */
28DEB50126549D8D00C31ED1 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_ANALYZER_NONNULL = YES;
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_ARC = YES;
CLANG_ENABLE_OBJC_WEAK = YES;
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_COMMA = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INFINITE_RECURSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
CLANG_WARN_STRICT_PROTOTYPES = YES;
CLANG_WARN_SUSPICIOUS_MOVE = YES;
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
COPY_PHASE_STRIP = NO;
DEBUG_INFORMATION_FORMAT = dwarf;
ENABLE_STRICT_OBJC_MSGSEND = YES;
ENABLE_TESTABILITY = YES;
GCC_C_LANGUAGE_STANDARD = gnu11;
GCC_DYNAMIC_NO_PIC = NO;
GCC_NO_COMMON_BLOCKS = YES;
GCC_OPTIMIZATION_LEVEL = 0;
GCC_PREPROCESSOR_DEFINITIONS = (
"DEBUG=1",
"$(inherited)",
);
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
GCC_WARN_UNDECLARED_SELECTOR = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
MACOSX_DEPLOYMENT_TARGET = 11.3;
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
MTL_FAST_MATH = YES;
ONLY_ACTIVE_ARCH = YES;
SDKROOT = macosx;
SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG;
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
};
name = Debug;
};
28DEB50226549D8D00C31ED1 /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_ANALYZER_NONNULL = YES;
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_ARC = YES;
CLANG_ENABLE_OBJC_WEAK = YES;
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_COMMA = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INFINITE_RECURSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
CLANG_WARN_STRICT_PROTOTYPES = YES;
CLANG_WARN_SUSPICIOUS_MOVE = YES;
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
COPY_PHASE_STRIP = NO;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
ENABLE_NS_ASSERTIONS = NO;
ENABLE_STRICT_OBJC_MSGSEND = YES;
GCC_C_LANGUAGE_STANDARD = gnu11;
GCC_NO_COMMON_BLOCKS = YES;
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
GCC_WARN_UNDECLARED_SELECTOR = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
MACOSX_DEPLOYMENT_TARGET = 11.3;
MTL_ENABLE_DEBUG_INFO = NO;
MTL_FAST_MATH = YES;
SDKROOT = macosx;
SWIFT_COMPILATION_MODE = wholemodule;
SWIFT_OPTIMIZATION_LEVEL = "-O";
};
name = Release;
};
28DEB50426549D8D00C31ED1 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
CODE_SIGN_STYLE = Automatic;
DEVELOPMENT_TEAM = Q2UJ785JPF;
ENABLE_HARDENED_RUNTIME = YES;
PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_VERSION = 5.0;
};
name = Debug;
};
28DEB50526549D8D00C31ED1 /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
CODE_SIGN_STYLE = Automatic;
DEVELOPMENT_TEAM = Q2UJ785JPF;
ENABLE_HARDENED_RUNTIME = YES;
PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_VERSION = 5.0;
};
name = Release;
};
/* End XCBuildConfiguration section */
/* Begin XCConfigurationList section */
28DEB4F726549D8D00C31ED1 /* Build configuration list for PBXProject "nga-swift" */ = {
isa = XCConfigurationList;
buildConfigurations = (
28DEB50126549D8D00C31ED1 /* Debug */,
28DEB50226549D8D00C31ED1 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
28DEB50326549D8D00C31ED1 /* Build configuration list for PBXNativeTarget "nga-swift" */ = {
isa = XCConfigurationList;
buildConfigurations = (
28DEB50426549D8D00C31ED1 /* Debug */,
28DEB50526549D8D00C31ED1 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
/* End XCConfigurationList section */
};
rootObject = 28DEB4F426549D8D00C31ED1 /* Project object */;
}

View file

@ -1,7 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<Workspace
version = "1.0">
<FileRef
location = "self:">
</FileRef>
</Workspace>

View file

@ -1,8 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>IDEDidComputeMac32BitWarning</key>
<true/>
</dict>
</plist>

View file

@ -1,78 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "1250"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
buildImplicitDependencies = "YES">
<BuildActionEntries>
<BuildActionEntry
buildForTesting = "YES"
buildForRunning = "YES"
buildForProfiling = "YES"
buildForArchiving = "YES"
buildForAnalyzing = "YES">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "28DEB4FB26549D8D00C31ED1"
BuildableName = "nga-swift"
BlueprintName = "nga-swift"
ReferencedContainer = "container:nga-swift.xcodeproj">
</BuildableReference>
</BuildActionEntry>
</BuildActionEntries>
</BuildAction>
<TestAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
shouldUseLaunchSchemeArgsEnv = "YES">
<Testables>
</Testables>
</TestAction>
<LaunchAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
launchStyle = "0"
useCustomWorkingDirectory = "NO"
ignoresPersistentStateOnLaunch = "NO"
debugDocumentVersioning = "YES"
debugServiceExtension = "internal"
allowLocationSimulation = "YES">
<BuildableProductRunnable
runnableDebuggingMode = "0">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "28DEB4FB26549D8D00C31ED1"
BuildableName = "nga-swift"
BlueprintName = "nga-swift"
ReferencedContainer = "container:nga-swift.xcodeproj">
</BuildableReference>
</BuildableProductRunnable>
</LaunchAction>
<ProfileAction
buildConfiguration = "Release"
shouldUseLaunchSchemeArgsEnv = "YES"
savedToolIdentifier = ""
useCustomWorkingDirectory = "NO"
debugDocumentVersioning = "YES">
<BuildableProductRunnable
runnableDebuggingMode = "0">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "28DEB4FB26549D8D00C31ED1"
BuildableName = "nga-swift"
BlueprintName = "nga-swift"
ReferencedContainer = "container:nga-swift.xcodeproj">
</BuildableReference>
</BuildableProductRunnable>
</ProfileAction>
<AnalyzeAction
buildConfiguration = "Debug">
</AnalyzeAction>
<ArchiveAction
buildConfiguration = "Release"
revealArchiveInOrganizer = "YES">
</ArchiveAction>
</Scheme>

View file

@ -1,22 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>SchemeUserState</key>
<dict>
<key>nga-swift.xcscheme_^#shared#^_</key>
<dict>
<key>orderHint</key>
<integer>0</integer>
</dict>
</dict>
<key>SuppressBuildableAutocreation</key>
<dict>
<key>28DEB4FB26549D8D00C31ED1</key>
<dict>
<key>primary</key>
<true/>
</dict>
</dict>
</dict>
</plist>

View file

@ -6,17 +6,7 @@
// stack processor that's capable of hosting
// RETRO or other environments.
//
// This is a reimplementation in Swift. I've
// held off doing this until now, but as I
// plan to continue using Apple computers and
// iPads, it's becoming clear that they see
// this as the future, and it'll become more
// difficult to justify holding out on
// Objective-C going forward.
//
// So here we go...
//
// Copyright 2020, Charles Childers
// Copyright, Charles Childers
//
import Foundation
@ -28,9 +18,10 @@ let CELLMAX = Int64.max - 1
let CELLMIN = Int64.min
// Notes:
// While Nga is designed as a 32-bit system,
// While Nga was designed as a 32-bit system,
// this implementation is 64-bit internally
// to allow greater numeric range.
// to allow greater numeric range. This follows
// with recent changes to the other Nga variants.
// I'm adding some extensions to existing types
// for easier access to individual characters
@ -113,6 +104,26 @@ var memory = [Int64](repeating: 0, count: imageSize + 1024)
var data = Stack()
var address = Stack()
// image loader
func loadImage() {
let fileURL = URL(fileURLWithPath: "ngaImage")
let data = NSData(contentsOf: fileURL)!
var i: Int = 0
while (i < (data.count / 8)) {
memory[i] = getInt64FromData(data: data, offset: i)
i += 1
}
}
func getInt64FromData(data: NSData, offset: Int) -> Int64 {
let raw = NSRange(location: offset * 8, length: 8)
var i = [Int64](repeating: 0, count: 1)
data.getBytes(&i, range: raw)
return Int64(i[0])
}
// Now, I implement the instructions. Each gets
// a dedicated function.
@ -217,19 +228,19 @@ func inst_st() {
func inst_ad() {
let tos = data.pop()
let nos = data.pop()
data.push(nos + tos)
data.push(nos &+ tos)
}
func inst_su() {
let tos = data.pop()
let nos = data.pop()
data.push(nos - tos)
data.push(nos &- tos)
}
func inst_mu() {
let tos = data.pop()
let nos = data.pop()
data.push(nos * tos)
data.push(nos &* tos)
}
func inst_di() {
@ -296,7 +307,8 @@ func inst_iq() {
func inst_ii() {
data.drop()
let v = UnicodeScalar(Int(data.pop())) ?? UnicodeScalar(32)
let c = Int(data.pop())
let v = UnicodeScalar(c) ?? UnicodeScalar(32)
print(Character(v!), terminator: "")
}
@ -390,7 +402,7 @@ func ngaValidatePackedOpcodes(_ opcode: Int64) -> Bool {
// This will process an opcode bundle
func ngaProcessPackedOpcodes(_ opcode: Int64) {
for inst in Int32(opcode).bytes {
for inst in Int64(opcode).bytes {
ngaProcessOpcode(opcode: Int64(inst))
}
}
@ -398,12 +410,14 @@ func ngaProcessPackedOpcodes(_ opcode: Int64) {
// For debugging purposes
func dump() {
print("----------------------------")
for i in 0 ... data.depth() {
if i == data.depth() {
print("TOS")
print("TOS", terminator: " ")
}
print(Int(data.item(i)))
}
print("----------------------------")
}
// Interfacing
@ -465,29 +479,21 @@ func process() {
loadImage()
// Display the dictionary
var i = memory[2]
var interpret: Int = 0
while i != 0 {
let name = extractString(at: Int(i + 4))
// print(name)
if name == "interpret" {
interpret = Int(memory[Int(i) + 1])
}
i = memory[Int(i)]
}
let interpret: Int = Int(memory[5])
var done = false
print("RETRO (using nga.swift)")
while !done {
let code = readLine()
let code = readLine() ?? "()"
if code == "bye" {
done = true
} else {
injectString(code ?? "()", to: Int(memory[7]))
let tokens = code.components(separatedBy: " ")
for token in tokens {
injectString(token, to: Int(memory[7]))
data.push(memory[7])
execute(interpret)
}
}
}
dump()