1:1-1:3   TYP   typ 
 1:5-1:5   ID   i 
 1:7-1:7   EQUALS   = 
 1:9-1:11   INT   int 
 2:1-2:3   TYP   typ 
 2:5-2:5   ID   c 
 2:7-2:7   EQUALS   = 
 2:9-2:12   CHAR   char 
 3:1-3:3   TYP   typ 
 3:5-3:5   ID   b 
 3:7-3:7   EQUALS   = 
 3:9-3:12   BOOL   bool 
 4:1-4:3   TYP   typ 
 4:5-4:6   ID   pi 
 4:8-4:8   EQUALS   = 
 4:10-4:10   HAT   ^ 
 4:11-4:11   ID   i 
 5:1-5:3   TYP   typ 
 5:5-5:6   ID   pb 
 5:8-5:8   EQUALS   = 
 5:10-5:10   HAT   ^ 
 5:11-5:11   ID   b 
 7:1-7:3   VAR   var 
 7:5-7:11   ID   counter 
 7:13-7:13   COLON   : 
 7:15-7:15   ID   i 
 8:1-8:3   VAR   var 
 8:5-8:8   ID   flag 
 8:10-8:10   COLON   : 
 8:12-8:12   ID   b 
 9:1-9:3   VAR   var 
 9:5-9:10   ID   result 
 9:12-9:12   COLON   : 
 9:14-9:14   ID   i 
 11:1-11:3   FUN   fun 
 11:5-11:13   ID   ext_print 
 11:14-11:14   LBRACKET   ( 
 11:15-11:15   ID   x 
 11:17-11:17   COLON   : 
 11:19-11:19   ID   i 
 11:20-11:20   RBRACKET   ) 
 11:22-11:22   COLON   : 
 11:24-11:24   ID   i 
 12:1-12:3   FUN   fun 
 12:5-12:12   ID   ext_read 
 12:13-12:13   LBRACKET   ( 
 12:14-12:14   RBRACKET   ) 
 12:16-12:16   COLON   : 
 12:18-12:18   ID   i 
 14:1-14:3   FUN   fun 
 14:5-14:11   ID   is_zero 
 14:12-14:12   LBRACKET   ( 
 14:13-14:13   ID   n 
 14:15-14:15   COLON   : 
 14:17-14:17   ID   i 
 14:18-14:18   RBRACKET   ) 
 14:20-14:20   COLON   : 
 14:22-14:22   ID   b 
 14:24-14:24   EQUALS   = 
 15:5-15:5   ID   n 
 15:7-15:8   EEQUALS   == 
 15:10-15:10   NUM   0 
 17:1-17:3   FUN   fun 
 17:5-17:11   ID   is_even 
 17:12-17:12   LBRACKET   ( 
 17:13-17:13   ID   n 
 17:15-17:15   COLON   : 
 17:17-17:17   ID   i 
 17:18-17:18   RBRACKET   ) 
 17:20-17:20   COLON   : 
 17:22-17:22   ID   b 
 17:24-17:24   EQUALS   = 
 18:5-18:5   ID   n 
 18:7-18:7   PERCENT   % 
 18:9-18:9   NUM   2 
 18:11-18:12   EEQUALS   == 
 18:14-18:14   NUM   0 
 20:1-20:3   FUN   fun 
 20:5-20:11   ID   abs_val 
 20:12-20:12   LBRACKET   ( 
 20:13-20:13   ID   n 
 20:15-20:15   COLON   : 
 20:17-20:17   ID   i 
 20:18-20:18   RBRACKET   ) 
 20:20-20:20   COLON   : 
 20:22-20:22   ID   i 
 20:24-20:24   EQUALS   = 
 21:5-21:6   IF   if 
 21:8-21:8   ID   n 
 21:10-21:10   LT   < 
 21:12-21:12   NUM   0 
 21:14-21:17   THEN   then 
 22:9-22:9   NUM   0 
 22:11-22:11   MINUS   - 
 22:13-22:13   ID   n 
 23:5-23:8   ELSE   else 
 24:9-24:9   ID   n 
 25:5-25:7   END   end 
 27:1-27:3   FUN   fun 
 27:5-27:7   ID   max 
 27:8-27:8   LBRACKET   ( 
 27:9-27:9   ID   a 
 27:11-27:11   COLON   : 
 27:13-27:13   ID   i 
 27:14-27:14   COMMA   , 
 27:16-27:16   ID   b 
 27:18-27:18   COLON   : 
 27:20-27:20   ID   i 
 27:21-27:21   RBRACKET   ) 
 27:23-27:23   COLON   : 
 27:25-27:25   ID   i 
 27:27-27:27   EQUALS   = 
 28:5-28:6   IF   if 
 28:8-28:8   ID   a 
 28:10-28:10   GT   > 
 28:12-28:12   ID   b 
 28:14-28:17   THEN   then 
 29:9-29:9   ID   a 
 30:5-30:8   ELSE   else 
 31:9-31:9   ID   b 
 32:5-32:7   END   end 
 34:1-34:3   FUN   fun 
 34:5-34:7   ID   min 
 34:8-34:8   LBRACKET   ( 
 34:9-34:9   ID   a 
 34:11-34:11   COLON   : 
 34:13-34:13   ID   i 
 34:14-34:14   COMMA   , 
 34:16-34:16   ID   b 
 34:18-34:18   COLON   : 
 34:20-34:20   ID   i 
 34:21-34:21   RBRACKET   ) 
 34:23-34:23   COLON   : 
 34:25-34:25   ID   i 
 34:27-34:27   EQUALS   = 
 35:5-35:6   IF   if 
 35:8-35:8   ID   a 
 35:10-35:10   LT   < 
 35:12-35:12   ID   b 
 35:14-35:17   THEN   then 
 36:9-36:9   ID   a 
 37:5-37:8   ELSE   else 
 38:9-38:9   ID   b 
 39:5-39:7   END   end 
 41:1-41:3   FUN   fun 
 41:5-41:7   ID   pow 
 41:8-41:8   LBRACKET   ( 
 41:9-41:12   ID   base 
 41:14-41:14   COLON   : 
 41:16-41:16   ID   i 
 41:17-41:17   COMMA   , 
 41:19-41:21   ID   exp 
 41:23-41:23   COLON   : 
 41:25-41:25   ID   i 
 41:26-41:26   RBRACKET   ) 
 41:28-41:28   COLON   : 
 41:30-41:30   ID   i 
 41:32-41:32   EQUALS   = 
 42:5-42:6   IF   if 
 42:8-42:14   ID   is_zero 
 42:15-42:15   LBRACKET   ( 
 42:16-42:18   ID   exp 
 42:19-42:19   RBRACKET   ) 
 42:21-42:24   THEN   then 
 43:9-43:9   NUM   1 
 44:5-44:8   ELSE   else 
 45:9-45:12   ID   base 
 45:14-45:14   ASTERISK   * 
 45:16-45:18   ID   pow 
 45:19-45:19   LBRACKET   ( 
 45:20-45:23   ID   base 
 45:24-45:24   COMMA   , 
 45:26-45:28   ID   exp 
 45:30-45:30   MINUS   - 
 45:32-45:32   NUM   1 
 45:33-45:33   RBRACKET   ) 
 46:5-46:7   END   end 
 48:1-48:3   FUN   fun 
 48:5-48:7   ID   gcd 
 48:8-48:8   LBRACKET   ( 
 48:9-48:9   ID   a 
 48:11-48:11   COLON   : 
 48:13-48:13   ID   i 
 48:14-48:14   COMMA   , 
 48:16-48:16   ID   b 
 48:18-48:18   COLON   : 
 48:20-48:20   ID   i 
 48:21-48:21   RBRACKET   ) 
 48:23-48:23   COLON   : 
 48:25-48:25   ID   i 
 48:27-48:27   EQUALS   = 
 49:5-49:6   IF   if 
 49:8-49:14   ID   is_zero 
 49:15-49:15   LBRACKET   ( 
 49:16-49:16   ID   b 
 49:17-49:17   RBRACKET   ) 
 49:19-49:22   THEN   then 
 50:9-50:9   ID   a 
 51:5-51:8   ELSE   else 
 52:9-52:11   ID   gcd 
 52:12-52:12   LBRACKET   ( 
 52:13-52:13   ID   b 
 52:14-52:14   COMMA   , 
 52:16-52:16   ID   a 
 52:18-52:18   PERCENT   % 
 52:20-52:20   ID   b 
 52:21-52:21   RBRACKET   ) 
 53:5-53:7   END   end 
 55:1-55:3   FUN   fun 
 55:5-55:7   ID   fib 
 55:8-55:8   LBRACKET   ( 
 55:9-55:9   ID   n 
 55:11-55:11   COLON   : 
 55:13-55:13   ID   i 
 55:14-55:14   RBRACKET   ) 
 55:16-55:16   COLON   : 
 55:18-55:18   ID   i 
 55:20-55:20   EQUALS   = 
 56:5-56:6   IF   if 
 56:8-56:8   ID   n 
 56:10-56:11   EEQUALS   == 
 56:13-56:13   NUM   0 
 56:15-56:18   THEN   then 
 57:9-57:9   NUM   0 
 58:5-58:8   ELSE   else 
 59:9-59:10   IF   if 
 59:12-59:12   ID   n 
 59:14-59:15   EEQUALS   == 
 59:17-59:17   NUM   1 
 59:19-59:22   THEN   then 
 60:13-60:13   NUM   1 
 61:9-61:12   ELSE   else 
 62:13-62:15   ID   fib 
 62:16-62:16   LBRACKET   ( 
 62:17-62:17   ID   n 
 62:19-62:19   MINUS   - 
 62:21-62:21   NUM   1 
 62:22-62:22   RBRACKET   ) 
 62:24-62:24   PLUS   + 
 62:26-62:28   ID   fib 
 62:29-62:29   LBRACKET   ( 
 62:30-62:30   ID   n 
 62:32-62:32   MINUS   - 
 62:34-62:34   NUM   2 
 62:35-62:35   RBRACKET   ) 
 63:9-63:11   END   end 
 64:5-64:7   END   end 
 66:1-66:3   FUN   fun 
 66:5-66:10   ID   sum_to 
 66:11-66:11   LBRACKET   ( 
 66:12-66:12   ID   n 
 66:14-66:14   COLON   : 
 66:16-66:16   ID   i 
 66:17-66:17   RBRACKET   ) 
 66:19-66:19   COLON   : 
 66:21-66:21   ID   i 
 66:23-66:23   EQUALS   = 
 67:5-67:6   IF   if 
 67:8-67:14   ID   is_zero 
 67:15-67:15   LBRACKET   ( 
 67:16-67:16   ID   n 
 67:17-67:17   RBRACKET   ) 
 67:19-67:22   THEN   then 
 68:9-68:9   NUM   0 
 69:5-69:8   ELSE   else 
 70:9-70:9   ID   n 
 70:11-70:11   PLUS   + 
 70:13-70:18   ID   sum_to 
 70:19-70:19   LBRACKET   ( 
 70:20-70:20   ID   n 
 70:22-70:22   MINUS   - 
 70:24-70:24   NUM   1 
 70:25-70:25   RBRACKET   ) 
 71:5-71:7   END   end 
 73:1-73:3   FUN   fun 
 73:5-73:11   ID   collatz 
 73:12-73:12   LBRACKET   ( 
 73:13-73:13   ID   n 
 73:15-73:15   COLON   : 
 73:17-73:17   ID   i 
 73:18-73:18   RBRACKET   ) 
 73:20-73:20   COLON   : 
 73:22-73:22   ID   i 
 73:24-73:24   EQUALS   = 
 74:5-74:6   IF   if 
 74:8-74:8   ID   n 
 74:10-74:11   EEQUALS   == 
 74:13-74:13   NUM   1 
 74:15-74:18   THEN   then 
 75:9-75:9   NUM   0 
 76:5-76:8   ELSE   else 
 77:9-77:10   IF   if 
 77:12-77:18   ID   is_even 
 77:19-77:19   LBRACKET   ( 
 77:20-77:20   ID   n 
 77:21-77:21   RBRACKET   ) 
 77:23-77:26   THEN   then 
 78:13-78:13   NUM   1 
 78:15-78:15   PLUS   + 
 78:17-78:23   ID   collatz 
 78:24-78:24   LBRACKET   ( 
 78:25-78:25   ID   n 
 78:27-78:27   SLASH   / 
 78:29-78:29   NUM   2 
 78:30-78:30   RBRACKET   ) 
 79:9-79:12   ELSE   else 
 80:13-80:13   NUM   1 
 80:15-80:15   PLUS   + 
 80:17-80:23   ID   collatz 
 80:24-80:24   LBRACKET   ( 
 80:25-80:25   NUM   3 
 80:27-80:27   ASTERISK   * 
 80:29-80:29   ID   n 
 80:31-80:31   PLUS   + 
 80:33-80:33   NUM   1 
 80:34-80:34   RBRACKET   ) 
 81:9-81:11   END   end 
 82:5-82:7   END   end 
 84:1-84:3   FUN   fun 
 84:5-84:13   ID   ackermann 
 84:14-84:14   LBRACKET   ( 
 84:15-84:15   ID   m 
 84:17-84:17   COLON   : 
 84:19-84:19   ID   i 
 84:20-84:20   COMMA   , 
 84:22-84:22   ID   n 
 84:24-84:24   COLON   : 
 84:26-84:26   ID   i 
 84:27-84:27   RBRACKET   ) 
 84:29-84:29   COLON   : 
 84:31-84:31   ID   i 
 84:33-84:33   EQUALS   = 
 85:5-85:6   IF   if 
 85:8-85:14   ID   is_zero 
 85:15-85:15   LBRACKET   ( 
 85:16-85:16   ID   m 
 85:17-85:17   RBRACKET   ) 
 85:19-85:22   THEN   then 
 86:9-86:9   ID   n 
 86:11-86:11   PLUS   + 
 86:13-86:13   NUM   1 
 87:5-87:8   ELSE   else 
 88:9-88:10   IF   if 
 88:12-88:18   ID   is_zero 
 88:19-88:19   LBRACKET   ( 
 88:20-88:20   ID   n 
 88:21-88:21   RBRACKET   ) 
 88:23-88:26   THEN   then 
 89:13-89:21   ID   ackermann 
 89:22-89:22   LBRACKET   ( 
 89:23-89:23   ID   m 
 89:25-89:25   MINUS   - 
 89:27-89:27   NUM   1 
 89:28-89:28   COMMA   , 
 89:30-89:30   NUM   1 
 89:31-89:31   RBRACKET   ) 
 90:9-90:12   ELSE   else 
 91:13-91:21   ID   ackermann 
 91:22-91:22   LBRACKET   ( 
 91:23-91:23   ID   m 
 91:25-91:25   MINUS   - 
 91:27-91:27   NUM   1 
 91:28-91:28   COMMA   , 
 91:30-91:38   ID   ackermann 
 91:39-91:39   LBRACKET   ( 
 91:40-91:40   ID   m 
 91:41-91:41   COMMA   , 
 91:43-91:43   ID   n 
 91:45-91:45   MINUS   - 
 91:47-91:47   NUM   1 
 91:48-91:48   RBRACKET   ) 
 91:49-91:49   RBRACKET   ) 
 92:9-92:11   END   end 
 93:5-93:7   END   end 
 95:1-95:3   FUN   fun 
 95:5-95:13   ID   digit_sum 
 95:14-95:14   LBRACKET   ( 
 95:15-95:15   ID   n 
 95:17-95:17   COLON   : 
 95:19-95:19   ID   i 
 95:20-95:20   RBRACKET   ) 
 95:22-95:22   COLON   : 
 95:24-95:24   ID   i 
 95:26-95:26   EQUALS   = 
 96:5-96:6   IF   if 
 96:8-96:8   ID   n 
 96:10-96:10   LT   < 
 96:12-96:13   NUM   10 
 96:15-96:18   THEN   then 
 97:9-97:9   ID   n 
 98:5-98:8   ELSE   else 
 99:9-99:9   ID   n 
 99:11-99:11   PERCENT   % 
 99:13-99:14   NUM   10 
 99:16-99:16   PLUS   + 
 99:18-99:26   ID   digit_sum 
 99:27-99:27   LBRACKET   ( 
 99:28-99:28   ID   n 
 99:30-99:30   SLASH   / 
 99:32-99:33   NUM   10 
 99:34-99:34   RBRACKET   ) 
 100:5-100:7   END   end 
 102:1-102:3   FUN   fun 
 102:5-102:17   ID   is_palindrome 
 102:18-102:18   LBRACKET   ( 
 102:19-102:19   ID   n 
 102:21-102:21   COLON   : 
 102:23-102:23   ID   i 
 102:24-102:24   COMMA   , 
 102:26-102:28   ID   rev 
 102:30-102:30   COLON   : 
 102:32-102:32   ID   i 
 102:33-102:33   RBRACKET   ) 
 102:35-102:35   COLON   : 
 102:37-102:37   ID   b 
 102:39-102:39   EQUALS   = 
 103:5-103:6   IF   if 
 103:8-103:14   ID   is_zero 
 103:15-103:15   LBRACKET   ( 
 103:16-103:16   ID   n 
 103:17-103:17   RBRACKET   ) 
 103:19-103:22   THEN   then 
 104:9-104:9   ID   n 
 104:11-104:12   EEQUALS   == 
 104:14-104:16   ID   rev 
 105:5-105:8   ELSE   else 
 106:9-106:21   ID   is_palindrome 
 106:22-106:22   LBRACKET   ( 
 106:23-106:23   ID   n 
 106:25-106:25   SLASH   / 
 106:27-106:28   NUM   10 
 106:29-106:29   COMMA   , 
 106:31-106:33   ID   rev 
 106:35-106:35   ASTERISK   * 
 106:37-106:38   NUM   10 
 106:40-106:40   PLUS   + 
 106:42-106:42   ID   n 
 106:44-106:44   PERCENT   % 
 106:46-106:47   NUM   10 
 106:48-106:48   RBRACKET   ) 
 107:5-107:7   END   end 
 109:1-109:3   FUN   fun 
 109:5-109:14   ID   count_bits 
 109:15-109:15   LBRACKET   ( 
 109:16-109:16   ID   n 
 109:18-109:18   COLON   : 
 109:20-109:20   ID   i 
 109:21-109:21   RBRACKET   ) 
 109:23-109:23   COLON   : 
 109:25-109:25   ID   i 
 109:27-109:27   EQUALS   = 
 110:5-110:6   IF   if 
 110:8-110:14   ID   is_zero 
 110:15-110:15   LBRACKET   ( 
 110:16-110:16   ID   n 
 110:17-110:17   RBRACKET   ) 
 110:19-110:22   THEN   then 
 111:9-111:9   NUM   0 
 112:5-112:8   ELSE   else 
 113:9-113:9   ID   n 
 113:11-113:11   PERCENT   % 
 113:13-113:13   NUM   2 
 113:15-113:15   PLUS   + 
 113:17-113:26   ID   count_bits 
 113:27-113:27   LBRACKET   ( 
 113:28-113:28   ID   n 
 113:30-113:30   SLASH   / 
 113:32-113:32   NUM   2 
 113:33-113:33   RBRACKET   ) 
 114:5-114:7   END   end 
 116:1-116:3   FUN   fun 
 116:5-116:8   ID   main 
 116:9-116:9   LBRACKET   ( 
 116:10-116:10   RBRACKET   ) 
 116:12-116:12   COLON   : 
 116:14-116:14   ID   i 
 116:16-116:16   EQUALS   = 
 117:5-117:7   LET   let 
 118:9-118:11   VAR   var 
 118:13-118:13   ID   a 
 118:15-118:15   COLON   : 
 118:17-118:17   ID   i 
 119:9-119:11   VAR   var 
 119:13-119:14   ID   bb 
 119:16-119:16   COLON   : 
 119:18-119:18   ID   i 
 120:9-120:11   VAR   var 
 120:13-120:14   ID   cc 
 120:16-120:16   COLON   : 
 120:18-120:18   ID   i 
 121:9-121:11   VAR   var 
 121:13-121:14   ID   dd 
 121:16-121:16   COLON   : 
 121:18-121:18   ID   i 
 122:9-122:11   VAR   var 
 122:13-122:13   ID   e 
 122:15-122:15   COLON   : 
 122:17-122:17   ID   i 
 123:9-123:11   VAR   var 
 123:13-123:13   ID   f 
 123:15-123:15   COLON   : 
 123:17-123:17   ID   b 
 124:9-124:11   VAR   var 
 124:13-124:13   ID   g 
 124:15-124:15   COLON   : 
 124:17-124:17   ID   b 
 125:9-125:11   TYP   typ 
 125:13-125:14   ID   li 
 125:16-125:16   EQUALS   = 
 125:18-125:18   ID   i 
 126:9-126:11   TYP   typ 
 126:13-126:14   ID   lb 
 126:16-126:16   EQUALS   = 
 126:18-126:18   ID   b 
 127:9-127:11   FUN   fun 
 127:13-127:21   ID   local_max 
 127:22-127:22   LBRACKET   ( 
 127:23-127:23   ID   x 
 127:25-127:25   COLON   : 
 127:27-127:28   ID   li 
 127:29-127:29   COMMA   , 
 127:31-127:31   ID   y 
 127:33-127:33   COLON   : 
 127:35-127:36   ID   li 
 127:37-127:37   RBRACKET   ) 
 127:39-127:39   COLON   : 
 127:41-127:42   ID   li 
 127:44-127:44   EQUALS   = 
 128:13-128:14   IF   if 
 128:16-128:16   ID   x 
 128:18-128:18   GT   > 
 128:20-128:20   ID   y 
 128:22-128:25   THEN   then 
 129:17-129:17   ID   x 
 130:13-130:16   ELSE   else 
 131:17-131:17   ID   y 
 132:13-132:15   END   end 
 133:9-133:11   FUN   fun 
 133:13-133:21   ID   local_and 
 133:22-133:22   LBRACKET   ( 
 133:23-133:23   ID   x 
 133:25-133:25   COLON   : 
 133:27-133:28   ID   lb 
 133:29-133:29   COMMA   , 
 133:31-133:31   ID   y 
 133:33-133:33   COLON   : 
 133:35-133:36   ID   lb 
 133:37-133:37   RBRACKET   ) 
 133:39-133:39   COLON   : 
 133:41-133:42   ID   lb 
 133:44-133:44   EQUALS   = 
 134:13-134:13   ID   x 
 134:15-134:17   AND   and 
 134:19-134:19   ID   y 
 135:9-135:11   FUN   fun 
 135:13-135:18   ID   triple 
 135:19-135:19   LBRACKET   ( 
 135:20-135:20   ID   x 
 135:22-135:22   COLON   : 
 135:24-135:25   ID   li 
 135:26-135:26   RBRACKET   ) 
 135:28-135:28   COLON   : 
 135:30-135:31   ID   li 
 135:33-135:33   EQUALS   = 
 136:13-136:13   ID   x 
 136:15-136:15   ASTERISK   * 
 136:17-136:17   NUM   3 
 137:9-137:11   FUN   fun 
 137:13-137:19   ID   compose 
 137:20-137:20   LBRACKET   ( 
 137:21-137:21   ID   x 
 137:23-137:23   COLON   : 
 137:25-137:26   ID   li 
 137:27-137:27   RBRACKET   ) 
 137:29-137:29   COLON   : 
 137:31-137:32   ID   li 
 137:34-137:34   EQUALS   = 
 138:13-138:18   ID   triple 
 138:19-138:19   LBRACKET   ( 
 138:20-138:25   ID   triple 
 138:26-138:26   LBRACKET   ( 
 138:27-138:27   ID   x 
 138:28-138:28   RBRACKET   ) 
 138:29-138:29   RBRACKET   ) 
 139:5-139:6   IN   in 
 140:9-140:15   ID   counter 
 140:17-140:17   EQUALS   = 
 140:19-140:19   NUM   0 
 140:20-140:20   COMMA   , 
 141:9-141:14   ID   result 
 141:16-141:16   EQUALS   = 
 141:18-141:18   NUM   0 
 141:19-141:19   COMMA   , 
 142:9-142:12   ID   flag 
 142:14-142:14   EQUALS   = 
 142:16-142:19   TRUE   true 
 142:20-142:20   COMMA   , 
 143:9-143:9   ID   a 
 143:11-143:11   EQUALS   = 
 143:13-143:15   ID   fib 
 143:16-143:16   LBRACKET   ( 
 143:17-143:18   NUM   10 
 143:19-143:19   RBRACKET   ) 
 143:20-143:20   COMMA   , 
 144:9-144:10   ID   bb 
 144:12-144:12   EQUALS   = 
 144:14-144:16   ID   pow 
 144:17-144:17   LBRACKET   ( 
 144:18-144:18   NUM   2 
 144:19-144:19   COMMA   , 
 144:21-144:21   NUM   8 
 144:22-144:22   RBRACKET   ) 
 144:23-144:23   COMMA   , 
 145:9-145:10   ID   cc 
 145:12-145:12   EQUALS   = 
 145:14-145:16   ID   gcd 
 145:17-145:17   LBRACKET   ( 
 145:18-145:19   ID   bb 
 145:20-145:20   COMMA   , 
 145:22-145:22   ID   a 
 145:23-145:23   RBRACKET   ) 
 145:24-145:24   COMMA   , 
 146:9-146:10   ID   dd 
 146:12-146:12   EQUALS   = 
 146:14-146:19   ID   sum_to 
 146:20-146:20   LBRACKET   ( 
 146:21-146:23   NUM   100 
 146:24-146:24   RBRACKET   ) 
 146:25-146:25   COMMA   , 
 147:9-147:9   ID   e 
 147:11-147:11   EQUALS   = 
 147:13-147:19   ID   collatz 
 147:20-147:20   LBRACKET   ( 
 147:21-147:22   NUM   27 
 147:23-147:23   RBRACKET   ) 
 147:24-147:24   COMMA   , 
 148:9-148:9   ID   f 
 148:11-148:11   EQUALS   = 
 148:13-148:19   ID   is_even 
 148:20-148:20   LBRACKET   ( 
 148:21-148:21   ID   a 
 148:22-148:22   RBRACKET   ) 
 148:23-148:23   COMMA   , 
 149:9-149:9   ID   g 
 149:11-149:11   EQUALS   = 
 149:13-149:25   ID   is_palindrome 
 149:26-149:26   LBRACKET   ( 
 149:27-149:31   NUM   12321 
 149:32-149:32   COMMA   , 
 149:34-149:34   NUM   0 
 149:35-149:35   RBRACKET   ) 
 149:36-149:36   COMMA   , 
 150:9-150:14   ID   result 
 150:16-150:16   EQUALS   = 
 150:18-150:26   ID   local_max 
 150:27-150:27   LBRACKET   ( 
 150:28-150:28   ID   a 
 150:29-150:29   COMMA   , 
 150:31-150:32   ID   bb 
 150:33-150:33   RBRACKET   ) 
 150:34-150:34   COMMA   , 
 151:9-151:14   ID   result 
 151:16-151:16   EQUALS   = 
 151:18-151:24   ID   compose 
 151:25-151:25   LBRACKET   ( 
 151:26-151:31   ID   result 
 151:32-151:32   RBRACKET   ) 
 151:33-151:33   COMMA   , 
 152:9-152:15   ID   counter 
 152:17-152:17   EQUALS   = 
 152:19-152:27   ID   ackermann 
 152:28-152:28   LBRACKET   ( 
 152:29-152:29   NUM   3 
 152:30-152:30   COMMA   , 
 152:32-152:32   NUM   2 
 152:33-152:33   RBRACKET   ) 
 152:34-152:34   COMMA   , 
 153:9-153:11   LET   let 
 154:13-154:15   VAR   var 
 154:17-154:24   ID   shadow_a 
 154:26-154:26   COLON   : 
 154:28-154:28   ID   i 
 155:13-155:15   VAR   var 
 155:17-155:24   ID   shadow_b 
 155:26-155:26   COLON   : 
 155:28-155:28   ID   i 
 156:13-156:15   VAR   var 
 156:17-156:24   ID   shadow_f 
 156:26-156:26   COLON   : 
 156:28-156:28   ID   b 
 157:13-157:15   VAR   var 
 157:17-157:23   ID   counter 
 157:25-157:25   COLON   : 
 157:27-157:27   ID   i 
 158:13-158:15   VAR   var 
 158:17-158:22   ID   result 
 158:24-158:24   COLON   : 
 158:26-158:26   ID   i 
 159:13-159:15   FUN   fun 
 159:17-159:26   ID   shadow_fib 
 159:27-159:27   LBRACKET   ( 
 159:28-159:28   ID   n 
 159:30-159:30   COLON   : 
 159:32-159:32   ID   i 
 159:33-159:33   RBRACKET   ) 
 159:35-159:35   COLON   : 
 159:37-159:37   ID   i 
 159:39-159:39   EQUALS   = 
 160:17-160:18   IF   if 
 160:20-160:20   ID   n 
 160:22-160:23   EEQUALS   == 
 160:25-160:25   NUM   0 
 160:27-160:30   THEN   then 
 161:21-161:21   NUM   0 
 162:17-162:20   ELSE   else 
 163:21-163:22   IF   if 
 163:24-163:24   ID   n 
 163:26-163:27   EEQUALS   == 
 163:29-163:29   NUM   1 
 163:31-163:34   THEN   then 
 164:25-164:25   NUM   1 
 165:21-165:24   ELSE   else 
 166:25-166:34   ID   shadow_fib 
 166:35-166:35   LBRACKET   ( 
 166:36-166:36   ID   n 
 166:38-166:38   MINUS   - 
 166:40-166:40   NUM   1 
 166:41-166:41   RBRACKET   ) 
 166:43-166:43   PLUS   + 
 166:45-166:54   ID   shadow_fib 
 166:55-166:55   LBRACKET   ( 
 166:56-166:56   ID   n 
 166:58-166:58   MINUS   - 
 166:60-166:60   NUM   2 
 166:61-166:61   RBRACKET   ) 
 167:21-167:23   END   end 
 168:17-168:19   END   end 
 169:13-169:15   FUN   fun 
 169:17-169:26   ID   accumulate 
 169:27-169:27   LBRACKET   ( 
 169:28-169:28   ID   n 
 169:30-169:30   COLON   : 
 169:32-169:32   ID   i 
 169:33-169:33   COMMA   , 
 169:35-169:37   ID   acc 
 169:39-169:39   COLON   : 
 169:41-169:41   ID   i 
 169:42-169:42   RBRACKET   ) 
 169:44-169:44   COLON   : 
 169:46-169:46   ID   i 
 169:48-169:48   EQUALS   = 
 170:17-170:18   IF   if 
 170:20-170:26   ID   is_zero 
 170:27-170:27   LBRACKET   ( 
 170:28-170:28   ID   n 
 170:29-170:29   RBRACKET   ) 
 170:31-170:34   THEN   then 
 171:21-171:23   ID   acc 
 172:17-172:20   ELSE   else 
 173:21-173:30   ID   accumulate 
 173:31-173:31   LBRACKET   ( 
 173:32-173:32   ID   n 
 173:34-173:34   MINUS   - 
 173:36-173:36   NUM   1 
 173:37-173:37   COMMA   , 
 173:39-173:41   ID   acc 
 173:43-173:43   PLUS   + 
 173:45-173:45   ID   n 
 173:46-173:46   RBRACKET   ) 
 174:17-174:19   END   end 
 175:9-175:10   IN   in 
 176:13-176:20   ID   shadow_a 
 176:22-176:22   EQUALS   = 
 176:24-176:33   ID   shadow_fib 
 176:34-176:34   LBRACKET   ( 
 176:35-176:36   NUM   15 
 176:37-176:37   RBRACKET   ) 
 176:38-176:38   COMMA   , 
 177:13-177:20   ID   shadow_b 
 177:22-177:22   EQUALS   = 
 177:24-177:33   ID   accumulate 
 177:34-177:34   LBRACKET   ( 
 177:35-177:36   NUM   50 
 177:37-177:37   COMMA   , 
 177:39-177:39   NUM   0 
 177:40-177:40   RBRACKET   ) 
 177:41-177:41   COMMA   , 
 178:13-178:20   ID   shadow_f 
 178:22-178:22   EQUALS   = 
 178:24-178:32   ID   local_and 
 178:33-178:33   LBRACKET   ( 
 178:34-178:34   ID   f 
 178:35-178:35   COMMA   , 
 178:37-178:37   ID   g 
 178:38-178:38   RBRACKET   ) 
 178:39-178:39   COMMA   , 
 179:13-179:19   ID   counter 
 179:21-179:21   EQUALS   = 
 179:23-179:31   ID   digit_sum 
 179:32-179:32   LBRACKET   ( 
 179:33-179:40   ID   shadow_a 
 179:42-179:42   ASTERISK   * 
 179:44-179:51   ID   shadow_b 
 179:52-179:52   RBRACKET   ) 
 179:53-179:53   COMMA   , 
 180:13-180:18   ID   result 
 180:20-180:20   EQUALS   = 
 180:22-180:24   ID   min 
 180:25-180:25   LBRACKET   ( 
 180:26-180:33   ID   shadow_a 
 180:34-180:34   COMMA   , 
 180:36-180:43   ID   shadow_b 
 180:44-180:44   RBRACKET   ) 
 180:45-180:45   COMMA   , 
 181:13-181:17   WHILE   while 
 181:19-181:25   ID   counter 
 181:27-181:27   GT   > 
 181:29-181:29   NUM   0 
 181:31-181:32   DO   do 
 182:17-182:18   IF   if 
 182:20-182:26   ID   is_even 
 182:27-182:27   LBRACKET   ( 
 182:28-182:34   ID   counter 
 182:35-182:35   RBRACKET   ) 
 182:37-182:40   THEN   then 
 183:21-183:26   ID   result 
 183:28-183:28   EQUALS   = 
 183:30-183:35   ID   result 
 183:37-183:37   PLUS   + 
 183:39-183:48   ID   shadow_fib 
 183:49-183:49   LBRACKET   ( 
 183:50-183:56   ID   counter 
 183:57-183:57   RBRACKET   ) 
 184:17-184:20   ELSE   else 
 185:21-185:26   ID   result 
 185:28-185:28   EQUALS   = 
 185:30-185:35   ID   result 
 185:37-185:37   MINUS   - 
 185:39-185:47   ID   digit_sum 
 185:48-185:48   LBRACKET   ( 
 185:49-185:55   ID   counter 
 185:56-185:56   RBRACKET   ) 
 186:17-186:19   END   end 
 186:20-186:20   COMMA   , 
 187:17-187:23   ID   counter 
 187:25-187:25   EQUALS   = 
 187:27-187:33   ID   counter 
 187:35-187:35   MINUS   - 
 187:37-187:37   NUM   1 
 188:13-188:15   END   end 
 188:16-188:16   COMMA   , 
 189:13-189:15   LET   let 
 190:17-190:19   VAR   var 
 190:21-190:25   ID   deep1 
 190:27-190:27   COLON   : 
 190:29-190:29   ID   i 
 191:17-191:19   VAR   var 
 191:21-191:25   ID   deep2 
 191:27-191:27   COLON   : 
 191:29-191:29   ID   i 
 192:17-192:19   VAR   var 
 192:21-192:25   ID   deep3 
 192:27-192:27   COLON   : 
 192:29-192:29   ID   b 
 193:17-193:19   VAR   var 
 193:21-193:25   ID   deep4 
 193:27-193:27   COLON   : 
 193:29-193:29   ID   i 
 194:17-194:19   TYP   typ 
 194:21-194:22   ID   di 
 194:24-194:24   EQUALS   = 
 194:26-194:26   ID   i 
 195:17-195:19   FUN   fun 
 195:21-195:28   ID   deep_pow 
 195:29-195:29   LBRACKET   ( 
 195:30-195:30   ID   b 
 195:32-195:32   COLON   : 
 195:34-195:35   ID   di 
 195:36-195:36   COMMA   , 
 195:38-195:38   ID   e 
 195:40-195:40   COLON   : 
 195:42-195:43   ID   di 
 195:44-195:44   RBRACKET   ) 
 195:46-195:46   COLON   : 
 195:48-195:49   ID   di 
 195:51-195:51   EQUALS   = 
 196:21-196:22   IF   if 
 196:24-196:30   ID   is_zero 
 196:31-196:31   LBRACKET   ( 
 196:32-196:32   ID   e 
 196:33-196:33   RBRACKET   ) 
 196:35-196:38   THEN   then 
 197:25-197:25   NUM   1 
 198:21-198:24   ELSE   else 
 199:25-199:25   ID   b 
 199:27-199:27   ASTERISK   * 
 199:29-199:36   ID   deep_pow 
 199:37-199:37   LBRACKET   ( 
 199:38-199:38   ID   b 
 199:39-199:39   COMMA   , 
 199:41-199:41   ID   e 
 199:43-199:43   MINUS   - 
 199:45-199:45   NUM   1 
 199:46-199:46   RBRACKET   ) 
 200:21-200:23   END   end 
 201:17-201:19   FUN   fun 
 201:21-201:32   ID   deep_collatz 
 201:33-201:33   LBRACKET   ( 
 201:34-201:34   ID   n 
 201:36-201:36   COLON   : 
 201:38-201:39   ID   di 
 201:40-201:40   RBRACKET   ) 
 201:42-201:42   COLON   : 
 201:44-201:45   ID   di 
 201:47-201:47   EQUALS   = 
 202:21-202:22   IF   if 
 202:24-202:24   ID   n 
 202:26-202:27   EEQUALS   == 
 202:29-202:29   NUM   1 
 202:31-202:34   THEN   then 
 203:25-203:25   NUM   0 
 204:21-204:24   ELSE   else 
 205:25-205:26   IF   if 
 205:28-205:34   ID   is_even 
 205:35-205:35   LBRACKET   ( 
 205:36-205:36   ID   n 
 205:37-205:37   RBRACKET   ) 
 205:39-205:42   THEN   then 
 206:29-206:29   NUM   1 
 206:31-206:31   PLUS   + 
 206:33-206:44   ID   deep_collatz 
 206:45-206:45   LBRACKET   ( 
 206:46-206:46   ID   n 
 206:48-206:48   SLASH   / 
 206:50-206:50   NUM   2 
 206:51-206:51   RBRACKET   ) 
 207:25-207:28   ELSE   else 
 208:29-208:29   NUM   1 
 208:31-208:31   PLUS   + 
 208:33-208:44   ID   deep_collatz 
 208:45-208:45   LBRACKET   ( 
 208:46-208:46   NUM   3 
 208:48-208:48   ASTERISK   * 
 208:50-208:50   ID   n 
 208:52-208:52   PLUS   + 
 208:54-208:54   NUM   1 
 208:55-208:55   RBRACKET   ) 
 209:25-209:27   END   end 
 210:21-210:23   END   end 
 211:17-211:19   FUN   fun 
 211:21-211:26   ID   toggle 
 211:27-211:27   LBRACKET   ( 
 211:28-211:28   ID   x 
 211:30-211:30   COLON   : 
 211:32-211:33   ID   lb 
 211:34-211:34   RBRACKET   ) 
 211:36-211:36   COLON   : 
 211:38-211:39   ID   lb 
 211:41-211:41   EQUALS   = 
 212:21-212:22   IF   if 
 212:24-212:24   ID   x 
 212:26-212:29   THEN   then 
 213:25-213:29   FALSE   false 
 214:21-214:24   ELSE   else 
 215:25-215:28   TRUE   true 
 216:21-216:23   END   end 
 217:13-217:14   IN   in 
 218:17-218:21   ID   deep1 
 218:23-218:23   EQUALS   = 
 218:25-218:32   ID   deep_pow 
 218:33-218:33   LBRACKET   ( 
 218:34-218:34   NUM   2 
 218:35-218:35   COMMA   , 
 218:37-218:43   ID   counter 
 218:45-218:45   PERCENT   % 
 218:47-218:48   NUM   10 
 218:49-218:49   RBRACKET   ) 
 218:50-218:50   COMMA   , 
 219:17-219:21   ID   deep2 
 219:23-219:23   EQUALS   = 
 219:25-219:36   ID   deep_collatz 
 219:37-219:37   LBRACKET   ( 
 219:38-219:44   ID   abs_val 
 219:45-219:45   LBRACKET   ( 
 219:46-219:51   ID   result 
 219:52-219:52   RBRACKET   ) 
 219:54-219:54   PLUS   + 
 219:56-219:56   NUM   1 
 219:57-219:57   RBRACKET   ) 
 219:58-219:58   COMMA   , 
 220:17-220:21   ID   deep3 
 220:23-220:23   EQUALS   = 
 220:25-220:30   ID   toggle 
 220:31-220:31   LBRACKET   ( 
 220:32-220:39   ID   shadow_f 
 220:40-220:40   RBRACKET   ) 
 220:41-220:41   COMMA   , 
 221:17-221:21   ID   deep4 
 221:23-221:23   EQUALS   = 
 221:25-221:27   ID   max 
 221:28-221:28   LBRACKET   ( 
 221:29-221:33   ID   deep1 
 221:34-221:34   COMMA   , 
 221:36-221:40   ID   deep2 
 221:41-221:41   RBRACKET   ) 
 221:42-221:42   COMMA   , 
 222:17-222:20   ID   flag 
 222:22-222:22   EQUALS   = 
 222:24-222:32   ID   local_and 
 222:33-222:33   LBRACKET   ( 
 222:34-222:38   ID   deep3 
 222:39-222:39   COMMA   , 
 222:41-222:47   ID   is_even 
 222:48-222:48   LBRACKET   ( 
 222:49-222:53   ID   deep4 
 222:54-222:54   RBRACKET   ) 
 222:55-222:55   RBRACKET   ) 
 222:56-222:56   COMMA   , 
 223:17-223:21   WHILE   while 
 223:23-223:27   ID   deep4 
 223:29-223:29   GT   > 
 223:31-223:31   NUM   0 
 223:33-223:34   DO   do 
 224:21-224:22   IF   if 
 224:24-224:30   ID   is_even 
 224:31-224:31   LBRACKET   ( 
 224:32-224:36   ID   deep4 
 224:37-224:37   RBRACKET   ) 
 224:39-224:42   THEN   then 
 225:25-225:26   IF   if 
 225:28-225:32   ID   deep4 
 225:34-225:34   GT   > 
 225:36-225:38   NUM   100 
 225:40-225:43   THEN   then 
 226:29-226:33   ID   deep4 
 226:35-226:35   EQUALS   = 
 226:37-226:41   ID   deep4 
 226:43-226:43   SLASH   / 
 226:45-226:45   NUM   2 
 227:25-227:28   ELSE   else 
 228:29-228:33   ID   deep4 
 228:35-228:35   EQUALS   = 
 228:37-228:41   ID   deep4 
 228:43-228:43   MINUS   - 
 228:45-228:45   NUM   1 
 229:25-229:27   END   end 
 230:21-230:24   ELSE   else 
 231:25-231:26   IF   if 
 231:28-231:34   ID   is_zero 
 231:35-231:35   LBRACKET   ( 
 231:36-231:40   ID   deep4 
 231:42-231:42   PERCENT   % 
 231:44-231:44   NUM   3 
 231:45-231:45   RBRACKET   ) 
 231:47-231:50   THEN   then 
 232:29-232:33   ID   deep4 
 232:35-232:35   EQUALS   = 
 232:37-232:41   ID   deep4 
 232:43-232:43   MINUS   - 
 232:45-232:45   NUM   3 
 233:25-233:28   ELSE   else 
 234:29-234:33   ID   deep4 
 234:35-234:35   EQUALS   = 
 234:37-234:41   ID   deep4 
 234:43-234:43   ASTERISK   * 
 234:45-234:45   NUM   2 
 234:47-234:47   MINUS   - 
 234:49-234:53   ID   deep4 
 234:55-234:55   MINUS   - 
 234:57-234:57   NUM   1 
 235:25-235:27   END   end 
 236:21-236:23   END   end 
 237:17-237:19   END   end 
 237:20-237:20   COMMA   , 
 238:17-238:19   LET   let 
 239:21-239:23   VAR   var 
 239:25-239:30   ID   ultra1 
 239:32-239:32   COLON   : 
 239:34-239:34   ID   i 
 240:21-240:23   VAR   var 
 240:25-240:30   ID   ultra2 
 240:32-240:32   COLON   : 
 240:34-240:34   ID   b 
 241:21-241:23   VAR   var 
 241:25-241:30   ID   ultra3 
 241:32-241:32   COLON   : 
 241:34-241:34   ID   i 
 242:21-242:23   FUN   fun 
 242:25-242:33   ID   ultra_gcd 
 242:34-242:34   LBRACKET   ( 
 242:35-242:35   ID   a 
 242:37-242:37   COLON   : 
 242:39-242:39   ID   i 
 242:40-242:40   COMMA   , 
 242:42-242:42   ID   b 
 242:44-242:44   COLON   : 
 242:46-242:46   ID   i 
 242:47-242:47   RBRACKET   ) 
 242:49-242:49   COLON   : 
 242:51-242:51   ID   i 
 242:53-242:53   EQUALS   = 
 243:25-243:26   IF   if 
 243:28-243:34   ID   is_zero 
 243:35-243:35   LBRACKET   ( 
 243:36-243:36   ID   b 
 243:37-243:37   RBRACKET   ) 
 243:39-243:42   THEN   then 
 244:29-244:29   ID   a 
 245:25-245:28   ELSE   else 
 246:29-246:37   ID   ultra_gcd 
 246:38-246:38   LBRACKET   ( 
 246:39-246:39   ID   b 
 246:40-246:40   COMMA   , 
 246:42-246:42   ID   a 
 246:44-246:44   PERCENT   % 
 246:46-246:46   ID   b 
 246:47-246:47   RBRACKET   ) 
 247:25-247:27   END   end 
 248:21-248:23   FUN   fun 
 248:25-248:33   ID   ultra_sum 
 248:34-248:34   LBRACKET   ( 
 248:35-248:35   ID   n 
 248:37-248:37   COLON   : 
 248:39-248:39   ID   i 
 248:40-248:40   RBRACKET   ) 
 248:42-248:42   COLON   : 
 248:44-248:44   ID   i 
 248:46-248:46   EQUALS   = 
 249:25-249:26   IF   if 
 249:28-249:34   ID   is_zero 
 249:35-249:35   LBRACKET   ( 
 249:36-249:36   ID   n 
 249:37-249:37   RBRACKET   ) 
 249:39-249:42   THEN   then 
 250:29-250:29   NUM   0 
 251:25-251:28   ELSE   else 
 252:29-252:29   ID   n 
 252:31-252:31   PLUS   + 
 252:33-252:41   ID   ultra_sum 
 252:42-252:42   LBRACKET   ( 
 252:43-252:43   ID   n 
 252:45-252:45   MINUS   - 
 252:47-252:47   NUM   1 
 252:48-252:48   RBRACKET   ) 
 253:25-253:27   END   end 
 254:21-254:23   FUN   fun 
 254:25-254:34   ID   ultra_bits 
 254:35-254:35   LBRACKET   ( 
 254:36-254:36   ID   n 
 254:38-254:38   COLON   : 
 254:40-254:40   ID   i 
 254:41-254:41   RBRACKET   ) 
 254:43-254:43   COLON   : 
 254:45-254:45   ID   i 
 254:47-254:47   EQUALS   = 
 255:25-255:26   IF   if 
 255:28-255:34   ID   is_zero 
 255:35-255:35   LBRACKET   ( 
 255:36-255:36   ID   n 
 255:37-255:37   RBRACKET   ) 
 255:39-255:42   THEN   then 
 256:29-256:29   NUM   0 
 257:25-257:28   ELSE   else 
 258:29-258:29   ID   n 
 258:31-258:31   PERCENT   % 
 258:33-258:33   NUM   2 
 258:35-258:35   PLUS   + 
 258:37-258:46   ID   ultra_bits 
 258:47-258:47   LBRACKET   ( 
 258:48-258:48   ID   n 
 258:50-258:50   SLASH   / 
 258:52-258:52   NUM   2 
 258:53-258:53   RBRACKET   ) 
 259:25-259:27   END   end 
 260:17-260:18   IN   in 
 261:21-261:26   ID   ultra1 
 261:28-261:28   EQUALS   = 
 261:30-261:38   ID   ultra_gcd 
 261:39-261:39   LBRACKET   ( 
 261:40-261:44   ID   deep1 
 261:45-261:45   COMMA   , 
 261:47-261:51   ID   deep2 
 261:52-261:52   RBRACKET   ) 
 261:53-261:53   COMMA   , 
 262:21-262:26   ID   ultra2 
 262:28-262:28   EQUALS   = 
 262:30-262:36   ID   is_even 
 262:37-262:37   LBRACKET   ( 
 262:38-262:43   ID   ultra1 
 262:44-262:44   RBRACKET   ) 
 262:45-262:45   COMMA   , 
 263:21-263:26   ID   ultra3 
 263:28-263:28   EQUALS   = 
 263:30-263:38   ID   ultra_sum 
 263:39-263:39   LBRACKET   ( 
 263:40-263:49   ID   ultra_bits 
 263:50-263:50   LBRACKET   ( 
 263:51-263:55   ID   deep4 
 263:57-263:57   PLUS   + 
 263:59-263:64   ID   ultra1 
 263:65-263:65   RBRACKET   ) 
 263:66-263:66   RBRACKET   ) 
 263:67-263:67   COMMA   , 
 264:21-264:27   ID   counter 
 264:29-264:29   EQUALS   = 
 264:31-264:36   ID   ultra3 
 264:38-264:38   PLUS   + 
 264:40-264:49   ID   count_bits 
 264:50-264:50   LBRACKET   ( 
 264:51-264:56   ID   ultra1 
 264:57-264:57   RBRACKET   ) 
 264:58-264:58   COMMA   , 
 265:21-265:26   ID   result 
 265:28-265:28   EQUALS   = 
 265:30-265:38   ID   ext_print 
 265:39-265:39   LBRACKET   ( 
 265:40-265:46   ID   counter 
 265:47-265:47   RBRACKET   ) 
 265:48-265:48   COMMA   , 
 266:21-266:24   ID   flag 
 266:26-266:26   EQUALS   = 
 266:28-266:36   ID   local_and 
 266:37-266:37   LBRACKET   ( 
 266:38-266:43   ID   ultra2 
 266:44-266:44   COMMA   , 
 266:46-266:50   ID   deep3 
 266:51-266:51   RBRACKET   ) 
 266:52-266:52   COMMA   , 
 267:21-267:25   WHILE   while 
 267:27-267:32   ID   ultra3 
 267:34-267:34   GT   > 
 267:36-267:36   NUM   0 
 267:38-267:39   DO   do 
 268:25-268:30   ID   ultra1 
 268:32-268:32   EQUALS   = 
 268:34-268:42   ID   ultra_gcd 
 268:43-268:43   LBRACKET   ( 
 268:44-268:49   ID   ultra3 
 268:50-268:50   COMMA   , 
 268:52-268:57   ID   ultra1 
 268:59-268:59   PLUS   + 
 268:61-268:61   NUM   1 
 268:62-268:62   RBRACKET   ) 
 268:63-268:63   COMMA   , 
 269:25-269:30   ID   ultra3 
 269:32-269:32   EQUALS   = 
 269:34-269:39   ID   ultra3 
 269:41-269:41   MINUS   - 
 269:43-269:43   NUM   1 
 270:21-270:23   END   end 
 270:24-270:24   COMMA   , 
 271:21-271:29   ID   ext_print 
 271:30-271:30   LBRACKET   ( 
 271:31-271:36   ID   result 
 271:37-271:37   RBRACKET   ) 
 271:38-271:38   COMMA   , 
 272:21-272:26   ID   ultra3 
 273:17-273:19   END   end 
 274:13-274:15   END   end 
 275:9-275:11   END   end 
 276:5-276:7   END   end 
    EOF