From 86191b4e129c2275fb833fcbdfa1e733c042734e Mon Sep 17 00:00:00 2001 From: crc <> Date: Mon, 9 Sep 2024 14:45:38 +0000 Subject: [PATCH] add stack comments for block: ffi: script: and socket: words FossilOrigin-Name: 5aeba86e15c05847c2cac75fd2606439826d8394a0d06b92cfccc4c5d9d336d5 --- interface/block.retro | 6 +- interface/ffi.retro | 8 +- interface/scripting.retro | 20 +- interface/sockets.retro | 20 +- vm/nga-c/image.c | 423 ++++++++++++++++++++------------------ 5 files changed, 245 insertions(+), 232 deletions(-) diff --git a/interface/block.retro b/interface/block.retro index 91f64a4..3cdef60 100644 --- a/interface/block.retro +++ b/interface/block.retro @@ -15,9 +15,9 @@ The exposed word set is compact: {{ :block:invoke DEVICE:BLOCKS io:scan-for io:invoke ; ---reveal--- - :block:read (na-) #0 block:invoke ; - :block:write (na-) #1 block:invoke ; - :block:set-file (s-) #2 block:invoke ; + :block:read (:na-) #0 block:invoke ; + :block:write (:na-) #1 block:invoke ; + :block:set-file (:s-) #2 block:invoke ; }} ~~~ diff --git a/interface/ffi.retro b/interface/ffi.retro index db51e74..a66d016 100644 --- a/interface/ffi.retro +++ b/interface/ffi.retro @@ -15,18 +15,18 @@ 338 #endif ~~~ -:ffi:operation (n-?) +:ffi:operation (:n-?) DEVICE:FFI io:scan-for dup n:negative? [ drop 'Error:_FFI_device_not_found s:put nl ] if; io:invoke ; -:ffi:open (s-n) +:ffi:open (:s-n) #0 ffi:operation ; -:ffi:map-sym (sn-n) +:ffi:map-sym (:sn-n) #1 ffi:operation ; -:ffi:invoke (n-) +:ffi:invoke (:n-) #2 ffi:operation ; 'interface/ffi.retro diff --git a/interface/scripting.retro b/interface/scripting.retro index ff05904..2ccfa54 100644 --- a/interface/scripting.retro +++ b/interface/scripting.retro @@ -40,19 +40,19 @@ Adds support for obtaining current source line text dup n:negative? [ drop 'Error:_scripting_device_not_found s:put nl ] if; io:invoke ; ---reveal--- - :script:arguments (-n) #0 script:operation ; - :script:get-argument (n-s) s:empty swap #1 script:operation ; - :include (s-) #2 script:operation ; - :script:name (-s) s:empty #3 script:operation ; + :script:arguments (:-n) #0 script:operation ; + :script:get-argument (:n-s) s:empty swap #1 script:operation ; + :include (:s-) #2 script:operation ; + :script:name (:-s) s:empty #3 script:operation ; - :script:current-file (-s) s:empty #4 script:operation ; - :script:current-line (-n) #5 script:operation class:data ; immediate - :script:ignore-to-eol (-) #6 script:operation ; - :script:abort-include (-) #7 script:operation ; + :script:current-file (:-s) s:empty #4 script:operation ; + :script:current-line (:-n) #5 script:operation class:data ; immediate + :script:ignore-to-eol (:-) #6 script:operation ; + :script:abort-include (:-) #7 script:operation ; - :abort (-) &Compiler v:off #8 script:operation ; + :abort (:-) &Compiler v:off #8 script:operation ; - :script:current-line-text (-s) s:empty [ #9 script:operation ] sip ; + :script:current-line-text (:-s) s:empty [ #9 script:operation ] sip ; }} ~~~ diff --git a/interface/sockets.retro b/interface/sockets.retro index 4d1dea6..8c5f4be 100644 --- a/interface/sockets.retro +++ b/interface/sockets.retro @@ -20,14 +20,14 @@ an address to hold the dotted notation and a string containing the host name. ~~~ -:socket:gethostbyname (as-) #0 socket:operation ; +:socket:gethostbyname (:as-) #0 socket:operation ; ~~~ `socket:create` creates a new socket. It does not take any parameters, and returns the socket id. ~~~ -:socket:create (-n) #1 socket:operation ; +:socket:create (:-n) #1 socket:operation ; ~~~ `socket:bind` binds a socket to a port. The socket should be @@ -36,7 +36,7 @@ string. This will return 0 if successful, -1 if not successful, and a host specific error code. ~~~ -:socket:bind (sn-n) #2 socket:operation ; +:socket:bind (:sn-n) #2 socket:operation ; ~~~ `socket:listen` prepares a socket for accepting incoming @@ -44,21 +44,21 @@ connections. Takes a backlog count and a socket id. Returns a flag (0 success, -1 failed) and an error code. ~~~ -:socket:listen (nn-nn) #3 socket:operation ; +:socket:listen (:nn-nn) #3 socket:operation ; ~~~ `socket:accept` begins accepting connections on the provided socket id. Returns a new socket id and an error code. ~~~ -:socket:accept (n-nn) #4 socket:operation ; +:socket:accept (:n-nn) #4 socket:operation ; ~~~ `socket:connect` connects to a server. Provide a socket id, this will return a status flag and an error code. ~~~ -:socket:connect (n-nn) #5 socket:operation ; +:socket:connect (:n-nn) #5 socket:operation ; ~~~ `socket:send` sends a string to a socket. This will return @@ -66,7 +66,7 @@ the number of characters sent and an error code. It takes a string and a socket id. ~~~ -:socket:send (sn-nn) #6 socket:operation ; +:socket:send (:sn-nn) #6 socket:operation ; ~~~ `socket:recv` is a wrapper over recv(2). It takes an address, @@ -74,14 +74,14 @@ a maxmimum number of bytes to read, and a socket id. It returns the number of bytes received and an error code. ~~~ -:socket:recv (ann-nn) #7 socket:operation ; +:socket:recv (:ann-nn) #7 socket:operation ; ~~~ `socket:close` is a wrapper over close(2). It takes a socket id and closes the socket. ~~~ -:socket:close (n-) #8 socket:operation ; +:socket:close (:n-) #8 socket:operation ; ~~~ `socket:configure` is used before `socket:bind` to set some @@ -89,7 +89,7 @@ internal state. Takes the host name and port, both as strings. Does not return anything. ~~~ -:socket:configure (ss-) #9 socket:operation ; +:socket:configure (:ss-) #9 socket:operation ; ~~~ # Source Data diff --git a/vm/nga-c/image.c b/vm/nga-c/image.c index 921022a..1759370 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 = 23744; -CELL ngaImage[] = { 1793,12065,23705,23743,202409,422,394,1333,1535,0,12113,0,10,1,10,2,10,3,10, +CELL ngaImageCells = 24009; +CELL ngaImage[] = { 1793,12065,23970,24008,202409,422,394,1333,1535,0,12113,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,9 +20,9 @@ CELL ngaImage[] = { 1793,12065,23705,23743,202409,422,394,1333,1535,0,12113,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,659713,6,1793,22988,17108737,3,2, + 66,7,10,659713,1,659713,2,659713,3,659713,4,659713,5,659713,6,1793,23253,17108737,3,2, 524559,130,2049,130,2049,130,524545,0,130,524545,0,130,524545,0,130,2049,144,1048838,2,1642241, - 10,7,22478,8246457295145463473,167841793,221,11,17826049,0,221,2,15,25,524546,21322,134287105,222,29,2305,223, + 10,7,22743,8246457295145463473,167841793,221,11,17826049,0,221,2,15,25,524546,21558,134287105,222,29,2305,223, 459023,231,2049,5044,134287361,222,226,659201,221,10,659969,7,2049,58,25,17694978,58,249,9,84152833, 48,319750404,248,117507601,251,184618754,45,25,16974851,-1,168886532,1,134284289,1,264,134284289,0,251,660227,32, 0,0,115,105,103,105,108,58,105,0,285278479,281,6,2576,524546,104,1641217,1,167838467,278, @@ -174,7 +174,7 @@ CELL ngaImage[] = { 1793,12065,23705,23743,202409,422,394,1333,1535,0,12113,0,10 58,105,110,99,0,659713,1,10,3192,3219,168,13256,210720197721,0,110,58,100,101,99,0, 659969,1,10,3207,3239,168,13256,8246617666422322998,0,110,58,98,101,116,119,101,101,110,63,0, 67503109,1793,3247,67503109,67503109,2049,3184,10,1,3242,2049,2279,11,10,3222,3269,168,13256,249861296566813883,0, - 83,99,111,112,101,76,105,115,116,0,23413,23532,10,3253,3281,168,13256,5864091,0,123, + 83,99,111,112,101,76,105,115,116,0,23678,23797,10,3253,3281,168,13256,5864091,0,123, 123,0,2049,1579,2,1,3269,2049,61,16,10,3272,3309,168,13256,-6305314778776785742,0,45,45,45, 114,101,118,101,97,108,45,45,45,0,2049,1579,1,3269,2049,3204,16,10,3290,3326, 168,13256,5864159,0,125,125,0,1,3269,2049,58,4,15,11,1793,3340,3841,3269,4097,2, @@ -235,7 +235,7 @@ CELL ngaImage[] = { 1793,12065,23705,23743,202409,422,394,1333,1535,0,12113,0,10 111,118,101,114,115,105,122,101,63,0,2049,104,3841,4387,2049,3219,14,10,4411,4454, 168,0,8246850507793776056,0,115,58,116,114,117,110,99,97,116,101,0,2,2049,4429,1793,4467, 1,0,67502597,3841,4387,17,16,10,1,4459,9,10,4437,4485,156,0,0,0,67,117, - 114,114,101,110,116,0,19,10,4471,4503,168,0,0,0,115,58,112,111,105,110, + 114,114,101,110,116,0,14,10,4471,4503,168,0,0,0,115,58,112,111,105,110, 116,101,114,0,3841,4485,3841,4387,19,2049,4402,17,10,4487,4525,168,0,0,0,115, 58,110,101,120,116,0,1,4485,2049,3920,3841,4485,3841,4366,11,1793,4541,1,0,4097, 4485,10,1,4536,9,10,4437,4558,168,13256,6953962777192,0,115,58,116,101,109,112,0,2049, @@ -626,7 +626,7 @@ CELL ngaImage[] = { 1793,12065,23705,23743,202409,422,394,1333,1535,0,12113,0,10 2049,12199,16,10,12228,12254,168,12654,6385111390,0,99,100,114,64,0,2049,12210,15,10,12243, 12269,168,12654,6385111359,0,99,100,114,33,0,2049,12210,16,10,12258,12283,168,12654,193454780,0, 69,78,68,0,10,12273,12301,168,12654,8246317064958091121,0,102,108,108,58,99,114,101,97,116, - 101,0,1,12283,2049,12174,10,12284,12314,156,0,177687,0,114,0,21541,12284,12332,168,12654, + 101,0,1,12283,2049,12174,10,12284,12314,156,0,177687,0,114,0,21806,12284,12332,168,12654, 8246317065617826724,0,102,108,108,58,116,111,45,101,110,100,0,2,4097,12314,1793,12357,2049,12254, 2,1,12283,12,2,1793,12350,67502597,4097,12314,10,1,12346,1,2205,2049,66,10,1,12337, 2049,2417,3841,12314,10,12315,12387,168,12654,4204933718218055169,0,102,108,108,58,97,112,112,101,110, @@ -646,8 +646,8 @@ CELL ngaImage[] = { 1793,12065,23705,23743,202409,422,394,1333,1535,0,12113,0,10 117,116,0,1793,12649,2049,11337,2049,11288,10,1,12644,2049,12488,10,105,110,116,101,114, 102,97,99,101,47,108,108,46,114,101,116,114,111,0,105,110,105,116,0,12673, 12923,12628,12699,156,12901,-2744922491217532500,0,115,58,100,101,100,117,112,46,100,97,116,97,0, - 12678,12680,12709,156,0,5863786,0,116,49,0,518144,12700,12719,156,0,5863787,0,116,50,0, - 22452,12680,12743,168,12901,-1192507208876296873,0,115,58,100,101,100,117,112,46,114,101,103,105,115, + 12678,12680,12709,156,0,5863786,0,116,49,0,515584,12700,12719,156,0,5863787,0,116,50,0, + 22717,12680,12743,168,12901,-1192507208876296873,0,115,58,100,101,100,117,112,46,114,101,103,105,115, 116,101,114,0,2049,4640,3841,12699,4,1,12387,2049,2279,10,12720,12776,168,12901,-1192507805573830048,0, 115,58,100,101,100,117,112,46,100,101,102,105,110,101,100,63,0,4097,12709,1, 0,4097,12719,3841,12699,1793,12796,3841,12709,2049,118,3841,12719,22,4097,12719,10,1,12786,2049, @@ -994,208 +994,221 @@ CELL ngaImage[] = { 1793,12065,23705,23743,202409,422,394,1333,1535,0,12113,0,10 4611,45,110,0,1,19600,2049,17,1,11,2049,19153,10,19575,19635,168,19649,349495210940165933,19637,99, 108,111,99,107,58,117,116,99,58,115,101,99,111,110,100,0,2049,4611,45,110, 0,1,19637,2049,17,1,12,2049,19153,10,105,110,116,101,114,102,97,99,101,47, - 99,108,111,99,107,46,114,101,116,114,111,0,19649,20084,19612,19696,168,0,1976442044545254821,0, + 99,108,111,99,107,46,114,101,116,114,111,0,19649,20172,19612,19696,168,0,1976442044545254821,0, 115,99,114,105,112,116,58,111,112,101,114,97,116,105,111,110,0,1,9,2049, 11209,2,2049,2822,1793,19749,3,2049,4611,69,114,114,111,114,58,32,115,99,114,105, 112,116,105,110,103,32,100,101,118,105,99,101,32,110,111,116,32,102,111,117, 110,100,0,1,19708,2049,11320,2049,11274,10,1,19705,2049,2928,2049,11189,10,19612,19779,168, - 20058,1976422442775525130,0,115,99,114,105,112,116,58,97,114,103,117,109,101,110,116,115,0, - 1,0,2049,19696,10,19756,19810,168,20058,7012485947518414468,0,115,99,114,105,112,116,58,103,101, - 116,45,97,114,103,117,109,101,110,116,0,2049,4589,4,1,1,2049,19696,10,19784, - 19832,168,20058,229469872107401,0,105,110,99,108,117,100,101,0,1,2,2049,19696,10,19818,19855, - 168,20058,-4553194680242110987,0,115,99,114,105,112,116,58,110,97,109,101,0,2049,4589,1,3, - 2049,19696,10,19837,19888,168,20058,6834827170184619652,0,115,99,114,105,112,116,58,99,117,114,114, - 101,110,116,45,102,105,108,101,0,2049,4589,1,4,2049,19696,10,19862,19921,180,20058, - 6834827170184835340,0,115,99,114,105,112,116,58,99,117,114,114,101,110,116,45,108,105,110, - 101,0,1,5,2049,19696,2049,156,10,19895,19955,168,20058,-4964876483161304491,0,115,99,114,105,112, - 116,58,105,103,110,111,114,101,45,116,111,45,101,111,108,0,1,6,2049,19696, - 10,19928,19987,168,20058,-112287744780050755,0,115,99,114,105,112,116,58,97,98,111,114,116,45, - 105,110,99,108,117,100,101,0,1,7,2049,19696,10,19960,20004,168,20058,210706230653,0,97, - 98,111,114,116,0,1,149,2049,3991,1,8,2049,19696,10,19992,20044,168,20058,-7741142524340576066,0, - 115,99,114,105,112,116,58,99,117,114,114,101,110,116,45,108,105,110,101,45, - 116,101,120,116,0,2049,4589,1793,20053,1,9,2049,19696,10,1,20048,2049,2279,10,105, - 110,116,101,114,102,97,99,101,47,115,99,114,105,112,116,105,110,103,46,114, - 101,116,114,111,0,20058,20551,20013,20109,168,20553,1183117598919957017,0,115,111,99,107,101,116,58, - 111,112,101,114,97,116,105,111,110,0,1,7,2049,11209,2,2049,2822,1793,20266,3, - 2049,4611,69,114,114,111,114,58,32,115,111,99,107,101,116,32,100,101,118,105, - 99,101,32,110,111,116,32,102,111,117,110,100,0,1,20121,2049,11320,2049,11274,2049, - 4611,83,101,101,32,104,116,116,112,115,58,47,47,114,101,116,114,111,102,111, - 114,116,104,46,111,114,103,47,115,117,112,112,111,114,116,47,50,48,50,50, - 46,49,47,83,79,67,75,69,84,83,46,109,100,0,1,20160,2049,11320,2049,11274, - 2049,4611,102,111,114,32,105,110,115,116,114,117,99,116,105,111,110,115,32,111, - 110,32,101,110,97,98,108,105,110,103,32,115,111,99,107,101,116,115,46,0, - 1,20221,2049,11320,2049,11274,10,1,20118,2049,2928,2049,11189,10,20086,20300,168,20527,-7671511728383126910,0, - 115,111,99,107,101,116,58,103,101,116,104,111,115,116,98,121,110,97,109,101, - 0,1,0,2049,20109,10,20273,20325,168,20527,4328757989659661596,0,115,111,99,107,101,116,58,99, - 114,101,97,116,101,0,1,1,2049,20109,10,20305,20348,168,20527,-4552658767528245371,0,115,111,99, - 107,101,116,58,98,105,110,100,0,1,2,2049,20109,10,20330,20373,168,20527,4328757990001730167,0, - 115,111,99,107,101,116,58,108,105,115,116,101,110,0,1,3,2049,20109,10,20353, - 20398,168,20527,4328757989563534360,0,115,111,99,107,101,116,58,97,99,99,101,112,116,0,1, - 4,2049,20109,10,20378,20424,168,20527,-4724938931013862254,0,115,111,99,107,101,116,58,99,111,110, - 110,101,99,116,0,1,5,2049,20109,10,20403,20447,168,20527,-4552658767527638798,0,115,111,99,107, - 101,116,58,115,101,110,100,0,1,6,2049,20109,10,20429,20470,168,20527,-4552658767527675080,0,115, - 111,99,107,101,116,58,114,101,99,118,0,1,7,2049,20109,10,20452,20494,168,20527, - -2663786738754388898,0,115,111,99,107,101,116,58,99,108,111,115,101,0,1,8,2049,20109,10, - 20475,20522,168,20527,1183100690560715498,0,115,111,99,107,101,116,58,99,111,110,102,105,103,117, - 114,101,0,1,9,2049,20109,10,105,110,116,101,114,102,97,99,101,47,115,111, - 99,107,101,116,115,46,114,101,116,114,111,0,20527,20570,115,111,99,107,101,116, - 58,111,112,101,114,97,116,105,111,110,0,20553,20788,20499,20586,168,20762,229469862290528,0,105, - 111,58,99,111,114,101,0,1,8000,2049,11209,2049,11189,10,20572,20609,168,20762,249884313919988732,0, - 99,111,114,101,58,105,110,105,116,0,1,0,2049,20586,10,20593,20631,168,20762,8246182359371694326, - 0,99,111,114,101,58,115,116,97,114,116,0,1,1,2049,20586,10,20614,20653,168, - 20762,8246182359367475558,0,99,111,114,101,58,112,97,117,115,101,0,1,2,2049,20586,10,20636, - 20683,168,20762,8337299194488917014,0,99,111,114,101,58,112,97,117,115,101,45,99,117,114,114, - 101,110,116,0,1,3,2049,20586,10,20658,20706,168,20762,-4577143246433635687,0,99,111,114,101,58, - 114,101,115,117,109,101,0,1,4,2049,20586,10,20688,20731,168,20762,-3888095465377135055,0,99,111, - 114,101,58,114,101,97,100,47,114,101,103,0,1,5,2049,20586,10,20711,20757,168, - 20762,820065755623810592,0,99,111,114,101,58,119,114,105,116,101,47,114,101,103,0,1,6, - 2049,20586,10,105,110,116,101,114,102,97,99,101,47,109,117,108,116,105,99,111, - 114,101,46,114,101,116,114,111,0,20762,20949,20736,20810,168,20929,644988671245709381,0,102,102,105, - 58,111,112,101,114,97,116,105,111,110,0,1,8100,2049,11209,2,2049,2822,1793,20857, - 3,2049,4611,69,114,114,111,114,58,32,70,70,73,32,100,101,118,105,99,101, - 32,110,111,116,32,102,111,117,110,100,0,1,20822,2049,11320,2049,11274,10,1,20819, - 2049,2928,2049,11189,10,20790,20879,168,20929,7572367767785414,0,102,102,105,58,111,112,101,110,0, - 1,0,2049,20810,10,20864,20902,168,20929,-4572980637897979592,0,102,102,105,58,109,97,112,45,115, - 121,109,0,1,1,2049,20810,10,20884,20924,168,20929,8246308498881747296,0,102,102,105,58,105,110, - 118,111,107,101,0,1,2,2049,20810,10,105,110,116,101,114,102,97,99,101,47, - 102,102,105,46,114,101,116,114,111,0,20929,21291,20907,20968,168,21266,8247016409221251463,0,117,110, - 115,105,103,110,101,100,58,43,0,1,0,1,8101,2049,11209,2049,11189,17,10,20951, - 20995,168,21266,8247016409221251465,0,117,110,115,105,103,110,101,100,58,45,0,1,0,1,8101, - 2049,11209,2049,11189,18,10,20978,21022,168,21266,8247016409221251462,0,117,110,115,105,103,110,101,100, - 58,42,0,1,0,1,8101,2049,11209,2049,11189,19,10,21005,21052,168,21266,7638409966457829387,0,117, - 110,115,105,103,110,101,100,58,47,109,111,100,0,1,0,1,8101,2049,11209,2049, - 11189,20,10,21032,21081,168,21266,-2563494254608726831,0,117,110,115,105,103,110,101,100,58,101,113, - 63,0,1,0,1,8101,2049,11209,2049,11189,11,10,21062,21111,168,21266,7638409966457748830,0,117,110, - 115,105,103,110,101,100,58,45,101,113,63,0,1,0,1,8101,2049,11209,2049,11189, - 12,10,21091,21140,168,21266,-2563494254608719109,0,117,110,115,105,103,110,101,100,58,108,116,63, - 0,1,0,1,8101,2049,11209,2049,11189,13,10,21121,21169,168,21266,-2563494254608724554,0,117,110,115, - 105,103,110,101,100,58,103,116,63,0,1,0,1,8101,2049,11209,2049,11189,14,10, - 21150,21200,168,21266,-6186888138744896262,0,117,110,115,105,103,110,101,100,58,115,104,105,102,116, - 0,1,0,1,8101,2049,11209,2049,11189,24,10,21179,21231,168,21266,-6186888138833512267,0,117,110,115, - 105,103,110,101,100,58,42,47,109,111,100,0,1,1,1,0,1,8101,2049,11209, - 2,2049,11189,2049,11189,10,21210,21257,168,21266,210639169918,0,42,47,109,111,100,0,1,1, - 1,8101,2049,11209,2049,11189,10,105,110,116,101,114,102,97,99,101,47,117,110,115, - 105,103,110,101,100,46,114,101,116,114,111,0,21266,21419,21245,21312,168,21396,-3502245454587251943,0, - 100,58,117,115,101,45,104,97,115,104,101,115,0,1,29,1,241,1,5,18, - 16,1793,21326,2049,188,15,10,1,21322,1,241,1,8,18,16,1,2049,1,241,16, - 1,5044,1,241,2049,3204,16,10,21293,21367,168,21396,-4893635544173424761,0,100,58,117,115,101,45, - 115,116,114,105,110,103,115,0,1,118,1,241,1,5,18,16,1,192,1,241, - 1,8,18,16,1,0,1,241,16,1,0,1,241,2049,3204,16,10,105,110,116, - 101,114,102,97,99,101,47,102,117,116,117,114,101,46,114,101,116,114,111,0, - 21396,21541,21347,21440,168,0,-3527051417241377258,0,98,108,111,99,107,58,105,110,118,111,107,101, - 0,1,3,2049,11209,2049,11189,10,21347,21464,168,21518,8246131600073141446,0,98,108,111,99,107,58, - 114,101,97,100,0,1,0,2049,21440,10,21447,21487,168,21518,-4578818303223200395,0,98,108,111,99, - 107,58,119,114,105,116,101,0,1,1,2049,21440,10,21469,21513,168,21518,-4036225629868593021,0,98, - 108,111,99,107,58,115,101,116,45,102,105,108,101,0,1,2,2049,21440,10,105, - 110,116,101,114,102,97,99,101,47,98,108,111,99,107,115,46,114,101,116,114, - 111,0,21518,22476,21492,21565,168,21792,4283726481136624767,0,101,114,114,58,115,101,116,45,104,97, - 110,100,108,101,114,0,1,1234,2049,11209,2,2049,2822,1793,21623,3,2049,4611,69,114, - 114,111,114,58,32,101,114,114,111,114,32,104,97,110,100,108,105,110,103,32, - 100,101,118,105,99,101,32,110,111,116,32,102,111,117,110,100,0,1,21577,2049, - 11320,2049,11274,10,1,21574,2049,2928,1,0,4,2049,11189,10,21543,21647,168,21792,229464878751060,0, - 101,114,114,58,100,115,117,0,2049,11375,2049,11274,2049,4611,69,82,82,79,82,58, - 32,68,83,85,58,32,68,65,84,65,32,83,84,65,67,75,32,85,78,68, - 69,82,70,76,79,87,0,1,21653,2049,11320,2049,11274,2049,11496,10,21633,21709,168,21792, - 229464878751054,0,101,114,114,58,100,115,111,0,2049,11375,2049,11274,2049,4611,69,82,82,79, - 82,58,32,68,83,79,58,32,68,65,84,65,32,83,84,65,67,75,32,79, - 86,69,82,70,76,79,87,0,1,21715,2049,11320,2049,11274,2049,11496,10,21695,21779,168, - 21792,-6210978877792005319,0,101,114,114,58,115,101,116,45,100,101,102,97,117,108,116,115,0, - 1,21647,1,1,2049,21565,1,21709,1,2,2049,21565,10,105,110,116,101,114,102,97, - 99,101,47,101,114,114,111,114,46,114,101,116,114,111,0,21756,21836,168,0,-1159954141530329845, - 0,105,111,99,116,108,58,111,112,101,114,97,116,105,111,110,0,1,14,2049, - 11209,2,2049,2822,1793,21885,3,2049,4611,69,114,114,111,114,58,32,105,111,99,116, - 108,32,100,101,118,105,99,101,32,110,111,116,32,102,111,117,110,100,0,1, - 21848,2049,11320,2049,11274,10,1,21845,2049,2928,2049,11189,10,21814,21914,168,0,-1159947561758408230,21916,105, - 111,99,116,108,58,116,101,114,109,45,115,105,122,101,0,2049,4611,45,110,110, - 0,1,21916,2049,17,1,0,2049,21836,10,21892,21952,168,0,-1384827797416383269,21954,105,111,99,116, - 108,58,115,101,116,45,99,98,114,101,97,107,0,2049,4611,45,0,1,21954,2049, - 17,1,1,2049,21836,10,21929,21988,168,0,-1384827797064164732,21990,105,111,99,116,108,58,115,101, - 116,45,108,98,114,101,97,107,0,2049,4611,45,0,1,21990,2049,17,1,2,2049, - 21836,10,21965,22024,168,0,-1384833267584846441,22026,105,111,99,116,108,58,115,97,118,101,45,115, - 116,97,116,101,0,2049,4611,45,0,1,22026,2049,17,1,3,2049,21836,10,22001,22063, - 168,0,1092846777098631660,22065,105,111,99,116,108,58,114,101,115,116,111,114,101,45,115,116, - 97,116,101,0,2049,4611,45,0,1,22065,2049,17,1,4,2049,21836,10,1793,22097,1, - 194,1,2,17,8,2049,1579,2049,192,3841,12097,8,2049,1579,2049,188,16,10,1,22078, - 22037,22110,168,22452,6384117006,0,72,79,77,69,0,2049,2001,1,4096,17,10,37,115,47, - 46,99,111,110,102,105,103,47,114,101,116,114,111,102,111,114,116,104,47,108, - 105,98,114,97,114,121,47,37,115,46,114,101,116,114,111,0,22099,22116,156,22452, - 6061648467740287960,0,108,105,98,114,97,114,121,58,46,67,79,78,70,73,71,0,46,47, - 108,105,98,114,97,114,121,47,37,115,46,114,101,116,114,111,0,22155,22177,156, - 22452,-4563659402581934926,0,108,105,98,114,97,114,121,58,67,87,68,0,22196,22232,168,22452,-4563659402581898990, - 0,108,105,98,114,97,114,121,58,99,119,100,0,1,22177,2049,8580,10,22214,22259, - 168,22452,6061648469031755928,0,108,105,98,114,97,114,121,58,46,99,111,110,102,105,103,0, - 2049,4611,72,79,77,69,0,1,22261,2049,22110,2049,18562,2049,22110,1,22116,2049,8580,10, - 22237,22302,168,22452,-2879782938503308011,0,108,105,98,114,97,114,121,58,102,105,108,101,110,97, - 109,101,0,2,2049,22232,2,2049,17540,1793,22312,772,10,1,22310,2049,2928,3,2049,22259, - 2,2049,17540,1793,22325,10,1,22324,2049,2928,3,2049,4589,10,22279,22357,168,22452,-2799120562421764174,0, - 108,105,98,114,97,114,121,58,99,111,110,116,97,105,110,115,63,0,1,22232, - 1,22259,2049,2294,1,17540,2049,2326,22,10,22333,22388,168,22452,-3026807695525939020,0,108,105,98,114, - 97,114,121,58,108,111,97,100,0,2,2049,22357,1793,22398,2049,22302,2049,19832,10,1, - 22393,1793,22447,2049,4611,69,82,82,79,82,58,32,76,105,98,114,97,114,121,32, - 96,37,115,96,32,119,97,115,32,110,111,116,32,102,111,117,110,100,0,1, - 22404,2049,8580,2049,11320,2049,11274,10,1,22402,2049,66,10,105,110,116,101,114,102,97, - 99,101,47,108,105,98,114,97,114,121,46,114,101,116,114,111,0,22452,12283,22369, - 22495,168,22748,8246457295145463473,0,105,109,97,103,101,58,115,97,118,101,0,1,1000,2049,11209, - 2049,11189,10,22478,22514,168,0,210711039690,0,101,100,105,116,63,0,2,1793,22521,1,8, - 11,10,1,22517,1793,22529,1,127,11,10,1,22525,2049,2294,22,10,22502,22548,168,0, - 6953475974244,0,101,110,100,101,100,63,0,2049,4278,3841,4387,2049,2731,10,22535,22565,168,0, - 193486030,0,97,100,100,0,2049,22548,1,17,1,4197,2049,66,10,22555,22587,168,0,6953539406400, - 0,103,97,116,104,101,114,0,2049,22514,1,17,1,22565,2049,66,10,22574,22608,168, - 0,210709415765,0,99,121,99,108,101,0,2049,11477,2049,2253,4,8,2049,2698,25,3,2049, - 22587,1,22608,7,10,22478,22642,168,22748,-4557881830897049127,0,112,97,114,115,101,45,117,110,116, - 105,108,0,1793,22654,2049,4589,2049,4301,2049,22608,771,2049,4157,10,1,22644,2049,4328,10, - 22624,22671,168,22748,210726130610,0,115,58,103,101,116,0,1793,22693,1793,22679,1,13,11,10, - 1,22675,1793,22687,1,10,11,10,1,22683,2049,2294,22,10,1,22673,2049,22642,10,22659, - 22710,168,22748,210708950412,0,99,108,101,97,114,0,2049,4611,92,94,91,50,74,92,94, - 91,48,59,48,72,0,1,22712,2049,8580,2049,11320,10,22698,22741,180,22748,5861507,0,47, - 47,0,2049,19955,1,11513,2049,3975,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,22732,22789,156,0, - 229441520490121,0,83,111,117,114,99,101,115,0,3,23041,23239,23437,0,0,0,0,0,0, + 20146,1976422442775525130,19781,115,99,114,105,112,116,58,97,114,103,117,109,101,110,116,115,0, + 2049,4611,45,110,0,1,19781,2049,17,1,0,2049,19696,10,19756,19819,168,20146,7012485947518414468,19821, + 115,99,114,105,112,116,58,103,101,116,45,97,114,103,117,109,101,110,116,0, + 2049,4611,110,45,115,0,1,19821,2049,17,2049,4589,4,1,1,2049,19696,10,19793,19851, + 168,20146,229469872107401,19853,105,110,99,108,117,100,101,0,2049,4611,115,45,0,1,19853,2049, + 17,1,2,2049,19696,10,19837,19883,168,20146,-4553194680242110987,19885,115,99,114,105,112,116,58,110, + 97,109,101,0,2049,4611,45,115,0,1,19885,2049,17,2049,4589,1,3,2049,19696,10, + 19865,19925,168,20146,6834827170184619652,19927,115,99,114,105,112,116,58,99,117,114,114,101,110,116, + 45,102,105,108,101,0,2049,4611,45,115,0,1,19927,2049,17,2049,4589,1,4,2049, + 19696,10,19899,19967,180,20146,6834827170184835340,19969,115,99,114,105,112,116,58,99,117,114,114,101, + 110,116,45,108,105,110,101,0,2049,4611,45,110,0,1,19969,2049,17,1,5,2049, + 19696,2049,156,10,19941,20010,168,20146,-4964876483161304491,20012,115,99,114,105,112,116,58,105,103,110, + 111,114,101,45,116,111,45,101,111,108,0,2049,4611,45,0,1,20012,2049,17,1, + 6,2049,19696,10,19983,20050,168,20146,-112287744780050755,20052,115,99,114,105,112,116,58,97,98,111, + 114,116,45,105,110,99,108,117,100,101,0,2049,4611,45,0,1,20052,2049,17,1, + 7,2049,19696,10,20023,20075,168,20146,210706230653,20077,97,98,111,114,116,0,2049,4611,45,0, + 1,20077,2049,17,1,149,2049,3991,1,8,2049,19696,10,20063,20123,168,20146,-7741142524340576066,20125,115, + 99,114,105,112,116,58,99,117,114,114,101,110,116,45,108,105,110,101,45,116, + 101,120,116,0,2049,4611,45,115,0,1,20125,2049,17,2049,4589,1793,20141,1,9,2049, + 19696,10,1,20136,2049,2279,10,105,110,116,101,114,102,97,99,101,47,115,99,114, + 105,112,116,105,110,103,46,114,101,116,114,111,0,20146,20747,20092,20197,168,20749,1183117598919957017, + 0,115,111,99,107,101,116,58,111,112,101,114,97,116,105,111,110,0,1,7, + 2049,11209,2,2049,2822,1793,20354,3,2049,4611,69,114,114,111,114,58,32,115,111,99, + 107,101,116,32,100,101,118,105,99,101,32,110,111,116,32,102,111,117,110,100, + 0,1,20209,2049,11320,2049,11274,2049,4611,83,101,101,32,104,116,116,112,115,58,47, + 47,114,101,116,114,111,102,111,114,116,104,46,111,114,103,47,115,117,112,112, + 111,114,116,47,50,48,50,50,46,49,47,83,79,67,75,69,84,83,46,109, + 100,0,1,20248,2049,11320,2049,11274,2049,4611,102,111,114,32,105,110,115,116,114,117, + 99,116,105,111,110,115,32,111,110,32,101,110,97,98,108,105,110,103,32,115, + 111,99,107,101,116,115,46,0,1,20309,2049,11320,2049,11274,10,1,20206,2049,2928,2049, + 11189,10,20174,20388,168,20723,-7671511728383126910,20390,115,111,99,107,101,116,58,103,101,116,104,111, + 115,116,98,121,110,97,109,101,0,2049,4611,97,115,45,0,1,20390,2049,17,1, + 0,2049,20197,10,20361,20423,168,20723,4328757989659661596,20425,115,111,99,107,101,116,58,99,114,101, + 97,116,101,0,2049,4611,45,110,0,1,20425,2049,17,1,1,2049,20197,10,20403,20455, + 168,20723,-4552658767528245371,20457,115,111,99,107,101,116,58,98,105,110,100,0,2049,4611,115,110, + 45,110,0,1,20457,2049,17,1,2,2049,20197,10,20437,20491,168,20723,4328757990001730167,20493,115,111, + 99,107,101,116,58,108,105,115,116,101,110,0,2049,4611,110,110,45,110,110,0, + 1,20493,2049,17,1,3,2049,20197,10,20471,20528,168,20723,4328757989563534360,20530,115,111,99,107,101, + 116,58,97,99,99,101,112,116,0,2049,4611,110,45,110,110,0,1,20530,2049,17, + 1,4,2049,20197,10,20508,20565,168,20723,-4724938931013862254,20567,115,111,99,107,101,116,58,99,111, + 110,110,101,99,116,0,2049,4611,110,45,110,110,0,1,20567,2049,17,1,5,2049, + 20197,10,20544,20599,168,20723,-4552658767527638798,20601,115,111,99,107,101,116,58,115,101,110,100,0, + 2049,4611,115,110,45,110,110,0,1,20601,2049,17,1,6,2049,20197,10,20581,20634,168, + 20723,-4552658767527675080,20636,115,111,99,107,101,116,58,114,101,99,118,0,2049,4611,97,110,110, + 45,110,110,0,1,20636,2049,17,1,7,2049,20197,10,20616,20671,168,20723,-2663786738754388898,20673,115, + 111,99,107,101,116,58,99,108,111,115,101,0,2049,4611,110,45,0,1,20673,2049, + 17,1,8,2049,20197,10,20652,20708,168,20723,1183100690560715498,20710,115,111,99,107,101,116,58,99, + 111,110,102,105,103,117,114,101,0,2049,4611,115,115,45,0,1,20710,2049,17,1, + 9,2049,20197,10,105,110,116,101,114,102,97,99,101,47,115,111,99,107,101,116, + 115,46,114,101,116,114,111,0,20723,20766,115,111,99,107,101,116,58,111,112,101, + 114,97,116,105,111,110,0,20749,20984,20685,20782,168,20958,229469862290528,0,105,111,58,99,111, + 114,101,0,1,8000,2049,11209,2049,11189,10,20768,20805,168,20958,249884313919988732,0,99,111,114,101, + 58,105,110,105,116,0,1,0,2049,20782,10,20789,20827,168,20958,8246182359371694326,0,99,111,114, + 101,58,115,116,97,114,116,0,1,1,2049,20782,10,20810,20849,168,20958,8246182359367475558,0,99, + 111,114,101,58,112,97,117,115,101,0,1,2,2049,20782,10,20832,20879,168,20958,8337299194488917014, + 0,99,111,114,101,58,112,97,117,115,101,45,99,117,114,114,101,110,116,0, + 1,3,2049,20782,10,20854,20902,168,20958,-4577143246433635687,0,99,111,114,101,58,114,101,115,117, + 109,101,0,1,4,2049,20782,10,20884,20927,168,20958,-3888095465377135055,0,99,111,114,101,58,114, + 101,97,100,47,114,101,103,0,1,5,2049,20782,10,20907,20953,168,20958,820065755623810592,0,99, + 111,114,101,58,119,114,105,116,101,47,114,101,103,0,1,6,2049,20782,10,105, + 110,116,101,114,102,97,99,101,47,109,117,108,116,105,99,111,114,101,46,114, + 101,116,114,111,0,20958,21185,20932,21006,168,21165,644988671245709381,21008,102,102,105,58,111,112,101, + 114,97,116,105,111,110,0,2049,4611,110,45,63,0,1,21008,2049,17,1,8100,2049, + 11209,2,2049,2822,1793,21063,3,2049,4611,69,114,114,111,114,58,32,70,70,73,32, + 100,101,118,105,99,101,32,110,111,116,32,102,111,117,110,100,0,1,21028,2049, + 11320,2049,11274,10,1,21025,2049,2928,2049,11189,10,20986,21085,168,21165,7572367767785414,21087,102,102,105, + 58,111,112,101,110,0,2049,4611,115,45,110,0,1,21087,2049,17,1,0,2049,21006, + 10,21070,21118,168,21165,-4572980637897979592,21120,102,102,105,58,109,97,112,45,115,121,109,0,2049, + 4611,115,110,45,110,0,1,21120,2049,17,1,1,2049,21006,10,21100,21151,168,21165,8246308498881747296, + 21153,102,102,105,58,105,110,118,111,107,101,0,2049,4611,110,45,0,1,21153,2049, + 17,1,2,2049,21006,10,105,110,116,101,114,102,97,99,101,47,102,102,105,46, + 114,101,116,114,111,0,21165,21527,21134,21204,168,21502,8247016409221251463,0,117,110,115,105,103,110, + 101,100,58,43,0,1,0,1,8101,2049,11209,2049,11189,17,10,21187,21231,168,21502,8247016409221251465, + 0,117,110,115,105,103,110,101,100,58,45,0,1,0,1,8101,2049,11209,2049,11189, + 18,10,21214,21258,168,21502,8247016409221251462,0,117,110,115,105,103,110,101,100,58,42,0,1, + 0,1,8101,2049,11209,2049,11189,19,10,21241,21288,168,21502,7638409966457829387,0,117,110,115,105,103, + 110,101,100,58,47,109,111,100,0,1,0,1,8101,2049,11209,2049,11189,20,10,21268, + 21317,168,21502,-2563494254608726831,0,117,110,115,105,103,110,101,100,58,101,113,63,0,1,0, + 1,8101,2049,11209,2049,11189,11,10,21298,21347,168,21502,7638409966457748830,0,117,110,115,105,103,110, + 101,100,58,45,101,113,63,0,1,0,1,8101,2049,11209,2049,11189,12,10,21327,21376, + 168,21502,-2563494254608719109,0,117,110,115,105,103,110,101,100,58,108,116,63,0,1,0,1, + 8101,2049,11209,2049,11189,13,10,21357,21405,168,21502,-2563494254608724554,0,117,110,115,105,103,110,101, + 100,58,103,116,63,0,1,0,1,8101,2049,11209,2049,11189,14,10,21386,21436,168,21502, + -6186888138744896262,0,117,110,115,105,103,110,101,100,58,115,104,105,102,116,0,1,0,1, + 8101,2049,11209,2049,11189,24,10,21415,21467,168,21502,-6186888138833512267,0,117,110,115,105,103,110,101, + 100,58,42,47,109,111,100,0,1,1,1,0,1,8101,2049,11209,2,2049,11189,2049, + 11189,10,21446,21493,168,21502,210639169918,0,42,47,109,111,100,0,1,1,1,8101,2049,11209, + 2049,11189,10,105,110,116,101,114,102,97,99,101,47,117,110,115,105,103,110,101, + 100,46,114,101,116,114,111,0,21502,21655,21481,21548,168,21632,-3502245454587251943,0,100,58,117,115, + 101,45,104,97,115,104,101,115,0,1,29,1,241,1,5,18,16,1793,21562,2049, + 188,15,10,1,21558,1,241,1,8,18,16,1,2049,1,241,16,1,5044,1,241, + 2049,3204,16,10,21529,21603,168,21632,-4893635544173424761,0,100,58,117,115,101,45,115,116,114,105, + 110,103,115,0,1,118,1,241,1,5,18,16,1,192,1,241,1,8,18,16, + 1,0,1,241,16,1,0,1,241,2049,3204,16,10,105,110,116,101,114,102,97, + 99,101,47,102,117,116,117,114,101,46,114,101,116,114,111,0,21632,21806,21583,21676, + 168,0,-3527051417241377258,0,98,108,111,99,107,58,105,110,118,111,107,101,0,1,3,2049, + 11209,2049,11189,10,21583,21700,168,21783,8246131600073141446,21702,98,108,111,99,107,58,114,101,97,100, + 0,2049,4611,110,97,45,0,1,21702,2049,17,1,0,2049,21676,10,21683,21733,168,21783, + -4578818303223200395,21735,98,108,111,99,107,58,119,114,105,116,101,0,2049,4611,110,97,45,0, + 1,21735,2049,17,1,1,2049,21676,10,21715,21769,168,21783,-4036225629868593021,21771,98,108,111,99,107, + 58,115,101,116,45,102,105,108,101,0,2049,4611,115,45,0,1,21771,2049,17,1, + 2,2049,21676,10,105,110,116,101,114,102,97,99,101,47,98,108,111,99,107,115, + 46,114,101,116,114,111,0,21783,22741,21748,21830,168,22057,4283726481136624767,0,101,114,114,58,115, + 101,116,45,104,97,110,100,108,101,114,0,1,1234,2049,11209,2,2049,2822,1793,21888, + 3,2049,4611,69,114,114,111,114,58,32,101,114,114,111,114,32,104,97,110,100, + 108,105,110,103,32,100,101,118,105,99,101,32,110,111,116,32,102,111,117,110, + 100,0,1,21842,2049,11320,2049,11274,10,1,21839,2049,2928,1,0,4,2049,11189,10,21808, + 21912,168,22057,229464878751060,0,101,114,114,58,100,115,117,0,2049,11375,2049,11274,2049,4611,69, + 82,82,79,82,58,32,68,83,85,58,32,68,65,84,65,32,83,84,65,67, + 75,32,85,78,68,69,82,70,76,79,87,0,1,21918,2049,11320,2049,11274,2049,11496, + 10,21898,21974,168,22057,229464878751054,0,101,114,114,58,100,115,111,0,2049,11375,2049,11274,2049, + 4611,69,82,82,79,82,58,32,68,83,79,58,32,68,65,84,65,32,83,84, + 65,67,75,32,79,86,69,82,70,76,79,87,0,1,21980,2049,11320,2049,11274,2049, + 11496,10,21960,22044,168,22057,-6210978877792005319,0,101,114,114,58,115,101,116,45,100,101,102,97, + 117,108,116,115,0,1,21912,1,1,2049,21830,1,21974,1,2,2049,21830,10,105,110, + 116,101,114,102,97,99,101,47,101,114,114,111,114,46,114,101,116,114,111,0, + 22021,22101,168,0,-1159954141530329845,0,105,111,99,116,108,58,111,112,101,114,97,116,105,111, + 110,0,1,14,2049,11209,2,2049,2822,1793,22150,3,2049,4611,69,114,114,111,114,58, + 32,105,111,99,116,108,32,100,101,118,105,99,101,32,110,111,116,32,102,111, + 117,110,100,0,1,22113,2049,11320,2049,11274,10,1,22110,2049,2928,2049,11189,10,22079,22179, + 168,0,-1159947561758408230,22181,105,111,99,116,108,58,116,101,114,109,45,115,105,122,101,0, + 2049,4611,45,110,110,0,1,22181,2049,17,1,0,2049,22101,10,22157,22217,168,0,-1384827797416383269, + 22219,105,111,99,116,108,58,115,101,116,45,99,98,114,101,97,107,0,2049,4611, + 45,0,1,22219,2049,17,1,1,2049,22101,10,22194,22253,168,0,-1384827797064164732,22255,105,111,99, + 116,108,58,115,101,116,45,108,98,114,101,97,107,0,2049,4611,45,0,1,22255, + 2049,17,1,2,2049,22101,10,22230,22289,168,0,-1384833267584846441,22291,105,111,99,116,108,58,115, + 97,118,101,45,115,116,97,116,101,0,2049,4611,45,0,1,22291,2049,17,1,3, + 2049,22101,10,22266,22328,168,0,1092846777098631660,22330,105,111,99,116,108,58,114,101,115,116,111, + 114,101,45,115,116,97,116,101,0,2049,4611,45,0,1,22330,2049,17,1,4,2049, + 22101,10,1793,22362,1,194,1,2,17,8,2049,1579,2049,192,3841,12097,8,2049,1579,2049, + 188,16,10,1,22343,22302,22375,168,22717,6384117006,0,72,79,77,69,0,2049,2001,1,4096, + 17,10,37,115,47,46,99,111,110,102,105,103,47,114,101,116,114,111,102,111, + 114,116,104,47,108,105,98,114,97,114,121,47,37,115,46,114,101,116,114,111, + 0,22364,22381,156,22717,6061648467740287960,0,108,105,98,114,97,114,121,58,46,67,79,78,70, + 73,71,0,46,47,108,105,98,114,97,114,121,47,37,115,46,114,101,116,114, + 111,0,22420,22442,156,22717,-4563659402581934926,0,108,105,98,114,97,114,121,58,67,87,68,0, + 22461,22497,168,22717,-4563659402581898990,0,108,105,98,114,97,114,121,58,99,119,100,0,1,22442, + 2049,8580,10,22479,22524,168,22717,6061648469031755928,0,108,105,98,114,97,114,121,58,46,99,111, + 110,102,105,103,0,2049,4611,72,79,77,69,0,1,22526,2049,22375,2049,18562,2049,22375, + 1,22381,2049,8580,10,22502,22567,168,22717,-2879782938503308011,0,108,105,98,114,97,114,121,58,102, + 105,108,101,110,97,109,101,0,2,2049,22497,2,2049,17540,1793,22577,772,10,1,22575, + 2049,2928,3,2049,22524,2,2049,17540,1793,22590,10,1,22589,2049,2928,3,2049,4589,10,22544, + 22622,168,22717,-2799120562421764174,0,108,105,98,114,97,114,121,58,99,111,110,116,97,105,110, + 115,63,0,1,22497,1,22524,2049,2294,1,17540,2049,2326,22,10,22598,22653,168,22717,-3026807695525939020, + 0,108,105,98,114,97,114,121,58,108,111,97,100,0,2,2049,22622,1793,22663,2049, + 22567,2049,19851,10,1,22658,1793,22712,2049,4611,69,82,82,79,82,58,32,76,105,98, + 114,97,114,121,32,96,37,115,96,32,119,97,115,32,110,111,116,32,102,111, + 117,110,100,0,1,22669,2049,8580,2049,11320,2049,11274,10,1,22667,2049,66,10,105,110, + 116,101,114,102,97,99,101,47,108,105,98,114,97,114,121,46,114,101,116,114, + 111,0,22717,12283,22634,22760,168,23013,8246457295145463473,0,105,109,97,103,101,58,115,97,118,101, + 0,1,1000,2049,11209,2049,11189,10,22743,22779,168,0,210711039690,0,101,100,105,116,63,0, + 2,1793,22786,1,8,11,10,1,22782,1793,22794,1,127,11,10,1,22790,2049,2294,22, + 10,22767,22813,168,0,6953475974244,0,101,110,100,101,100,63,0,2049,4278,3841,4387,2049,2731, + 10,22800,22830,168,0,193486030,0,97,100,100,0,2049,22813,1,17,1,4197,2049,66,10, + 22820,22852,168,0,6953539406400,0,103,97,116,104,101,114,0,2049,22779,1,17,1,22830,2049, + 66,10,22839,22873,168,0,210709415765,0,99,121,99,108,101,0,2049,11477,2049,2253,4,8, + 2049,2698,25,3,2049,22852,1,22873,7,10,22743,22907,168,23013,-4557881830897049127,0,112,97,114,115, + 101,45,117,110,116,105,108,0,1793,22919,2049,4589,2049,4301,2049,22873,771,2049,4157,10, + 1,22909,2049,4328,10,22889,22936,168,23013,210726130610,0,115,58,103,101,116,0,1793,22958,1793, + 22944,1,13,11,10,1,22940,1793,22952,1,10,11,10,1,22948,2049,2294,22,10,1, + 22938,2049,22907,10,22924,22975,168,23013,210708950412,0,99,108,101,97,114,0,2049,4611,92,94, + 91,50,74,92,94,91,48,59,48,72,0,1,22977,2049,8580,2049,11320,10,22963,23006, + 180,23013,5861507,0,47,47,0,2049,20010,1,11513,2049,3975,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,22997,23054,156,0,229441520490121,0,83,111,117,114,99,101,115,0,3,23306,23504,23702,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,22775,22930, - 168,0,6953711201841,0,107,110,111,119,110,63,0,2,1,22789,2049,9446,10,22917,22948,168, - 0,210716136861,0,105,110,100,101,120,0,1,22789,4,2049,10110,1,22789,4,2049,9596,10, - 22936,22972,168,0,6953974036516,0,114,101,99,111,114,100,0,2049,4640,2,1,22789,2049,3920, - 3841,22789,1,22789,17,16,10,1793,23039,2049,19888,2049,22930,1793,22997,2049,22948,10,1,22994, - 1793,23004,2049,22972,10,1,23001,2049,66,1793,23017,1,194,1,2,17,8,10,1,23010, - 2049,2266,2049,1579,2049,186,16,2049,1579,2049,192,3841,12097,8,2049,1579,2049,188,16,10, - 1,22988,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,22732,23080,168,23041,229461403550098,0,100,58,119,111,114,100,115, - 0,1793,23089,2049,192,2049,11320,2049,11288,10,1,23082,2049,8833,10,23066,23113,168,23041,-3502157631813457253, - 0,100,58,119,111,114,100,115,45,119,105,116,104,0,2049,2001,2049,5780,1793,23144, - 2049,192,2,2049,2001,2049,5472,1793,23133,2049,11320,2049,11288,10,1,23128,1793,23139,3,10, - 1,23137,2049,66,10,1,23119,2049,8833,10,23094,23171,168,23041,2818131571306626127,0,100,105,115,112, - 108,97,121,45,105,102,45,108,101,102,116,0,2,2049,2001,2049,5724,1793,23183,2049, - 11320,2049,11288,10,1,23178,1793,23189,3,10,1,23187,2049,66,10,23094,23223,168,23041,2947807019553410009, - 0,100,58,119,111,114,100,115,45,98,101,103,105,110,110,105,110,103,45,119, - 105,116,104,0,2049,2001,2049,5780,1793,23234,2049,192,2049,23171,10,1,23229,2049,8833,10, - 101,120,116,101,110,115,105,111,110,115,47,100,111,117,98,108,101,46,114,101, - 116,114,111,0,23194,23280,168,23239,8246228896775126019,0,100,111,117,98,108,101,58,118,97,114, - 0,2049,2102,4,2049,130,2049,130,10,23263,23307,168,23239,-3421095308458227740,0,100,111,117,98,108, - 101,58,102,101,116,99,104,0,2049,58,4,15,10,23288,23331,168,23239,-3421095308442276665,0,100, - 111,117,98,108,101,58,115,116,111,114,101,0,1,19,2049,2266,2049,61,16,10, - 23312,23358,168,23239,-3421095308461432127,0,100,111,117,98,108,101,58,99,111,110,115,116,0,2049, - 23280,1,23307,2049,8801,10,23339,23383,168,23239,-4575607512064199915,0,100,111,117,98,108,101,58,115, - 119,97,112,0,67503109,5,67503109,6,10,23365,23405,168,23239,8246228896775106679,0,100,111,117,98,108, - 101,58,100,105,112,0,67503109,67503109,5,5,8,6,6,10,23388,23430,168,23239,8246228896775123014,0, - 100,111,117,98,108,101,58,115,105,112,0,1,2253,2049,2266,2049,23405,10,101,120, - 116,101,110,115,105,111,110,115,47,109,97,108,108,111,99,46,114,101,116,114, - 111,0,23413,23478,168,23437,8246632143337714634,0,109,101,109,58,105,110,118,111,107,101,0,1, - 15,2049,11209,2049,11189,10,23461,0,156,23437,210667451248,0,65,76,76,79,67,0,23485,1, - 156,23437,6384048135,0,70,82,69,69,0,23497,2,156,23437,210689088690,0,83,84,79,82,69, - 0,23508,3,156,23437,210673137615,0,70,69,84,67,72,0,23520,4,156,23437,6952683137271,0,82, - 69,83,73,90,69,0,23413,23561,168,23437,249897943727936361,0,109,101,109,58,97,108,108,111, - 99,0,1,0,2049,23478,10,23545,23582,168,23437,249897943749573803,0,109,101,109,58,115,116,111, - 114,101,0,1,2,2049,23478,10,23566,23603,168,23437,249897943733622728,0,109,101,109,58,102,101, - 116,99,104,0,1,3,2049,23478,10,23587,23623,168,23437,7572664961638592,0,109,101,109,58,102, - 114,101,101,0,1,1,2049,23478,10,23608,23645,168,23437,8246632143679146032,0,109,101,109,58,114, - 101,115,105,122,101,0,1,4,2049,23478,10,23628,23666,168,23437,249897943730056489,0,109,101,109, - 58,99,101,108,108,43,0,1,8,19,17,10,23650,23694,168,23437,1050530996183190288,0,109,101, - 109,58,102,101,116,99,104,45,100,111,117,98,108,101,0,2,1,1,2049,23666, - 15,5,2049,23603,6,10,23671,23728,168,23437,1730340976492540563,0,109,101,109,58,115,116,111,114, - 101,45,100,111,117,98,108,101,0,5,5,2049,2253,1,1,2049,23666,6,2049,23582, - 6,2049,23582,10,0 }; + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,23040,23195,168,0,6953711201841,0,107,110,111,119,110,63,0,2,1,23054,2049, + 9446,10,23182,23213,168,0,210716136861,0,105,110,100,101,120,0,1,23054,4,2049,10110,1, + 23054,4,2049,9596,10,23201,23237,168,0,6953974036516,0,114,101,99,111,114,100,0,2049,4640, + 2,1,23054,2049,3920,3841,23054,1,23054,17,16,10,1793,23304,2049,19925,2049,23195,1793,23262, + 2049,23213,10,1,23259,1793,23269,2049,23237,10,1,23266,2049,66,1793,23282,1,194,1,2, + 17,8,10,1,23275,2049,2266,2049,1579,2049,186,16,2049,1579,2049,192,3841,12097,8,2049, + 1579,2049,188,16,10,1,23253,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,22997,23345,168,23306,229461403550098,0,100,58, + 119,111,114,100,115,0,1793,23354,2049,192,2049,11320,2049,11288,10,1,23347,2049,8833,10, + 23331,23378,168,23306,-3502157631813457253,0,100,58,119,111,114,100,115,45,119,105,116,104,0,2049, + 2001,2049,5780,1793,23409,2049,192,2,2049,2001,2049,5472,1793,23398,2049,11320,2049,11288,10,1, + 23393,1793,23404,3,10,1,23402,2049,66,10,1,23384,2049,8833,10,23359,23436,168,23306,2818131571306626127, + 0,100,105,115,112,108,97,121,45,105,102,45,108,101,102,116,0,2,2049,2001, + 2049,5724,1793,23448,2049,11320,2049,11288,10,1,23443,1793,23454,3,10,1,23452,2049,66,10, + 23359,23488,168,23306,2947807019553410009,0,100,58,119,111,114,100,115,45,98,101,103,105,110,110, + 105,110,103,45,119,105,116,104,0,2049,2001,2049,5780,1793,23499,2049,192,2049,23436,10, + 1,23494,2049,8833,10,101,120,116,101,110,115,105,111,110,115,47,100,111,117,98, + 108,101,46,114,101,116,114,111,0,23459,23545,168,23504,8246228896775126019,0,100,111,117,98,108, + 101,58,118,97,114,0,2049,2102,4,2049,130,2049,130,10,23528,23572,168,23504,-3421095308458227740,0, + 100,111,117,98,108,101,58,102,101,116,99,104,0,2049,58,4,15,10,23553,23596, + 168,23504,-3421095308442276665,0,100,111,117,98,108,101,58,115,116,111,114,101,0,1,19,2049, + 2266,2049,61,16,10,23577,23623,168,23504,-3421095308461432127,0,100,111,117,98,108,101,58,99,111, + 110,115,116,0,2049,23545,1,23572,2049,8801,10,23604,23648,168,23504,-4575607512064199915,0,100,111,117, + 98,108,101,58,115,119,97,112,0,67503109,5,67503109,6,10,23630,23670,168,23504,8246228896775106679,0, + 100,111,117,98,108,101,58,100,105,112,0,67503109,67503109,5,5,8,6,6,10,23653, + 23695,168,23504,8246228896775123014,0,100,111,117,98,108,101,58,115,105,112,0,1,2253,2049,2266, + 2049,23670,10,101,120,116,101,110,115,105,111,110,115,47,109,97,108,108,111,99, + 46,114,101,116,114,111,0,23678,23743,168,23702,8246632143337714634,0,109,101,109,58,105,110,118, + 111,107,101,0,1,15,2049,11209,2049,11189,10,23726,0,156,23702,210667451248,0,65,76,76, + 79,67,0,23750,1,156,23702,6384048135,0,70,82,69,69,0,23762,2,156,23702,210689088690,0, + 83,84,79,82,69,0,23773,3,156,23702,210673137615,0,70,69,84,67,72,0,23785,4, + 156,23702,6952683137271,0,82,69,83,73,90,69,0,23678,23826,168,23702,249897943727936361,0,109,101,109, + 58,97,108,108,111,99,0,1,0,2049,23743,10,23810,23847,168,23702,249897943749573803,0,109,101, + 109,58,115,116,111,114,101,0,1,2,2049,23743,10,23831,23868,168,23702,249897943733622728,0,109, + 101,109,58,102,101,116,99,104,0,1,3,2049,23743,10,23852,23888,168,23702,7572664961638592,0, + 109,101,109,58,102,114,101,101,0,1,1,2049,23743,10,23873,23910,168,23702,8246632143679146032,0, + 109,101,109,58,114,101,115,105,122,101,0,1,4,2049,23743,10,23893,23931,168,23702, + 249897943730056489,0,109,101,109,58,99,101,108,108,43,0,1,8,19,17,10,23915,23959,168, + 23702,1050530996183190288,0,109,101,109,58,102,101,116,99,104,45,100,111,117,98,108,101,0, + 2,1,1,2049,23931,15,5,2049,23868,6,10,23936,23993,168,23702,1730340976492540563,0,109,101,109, + 58,115,116,111,114,101,45,100,111,117,98,108,101,0,5,5,2049,2253,1,1, + 2049,23931,6,2049,23847,6,2049,23847,10,0 };