-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathLila.interp
154 lines (150 loc) · 19.6 KB
/
Lila.interp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
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
91
92
93
94
95
96
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
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
token literal names:
null
'main'
'lila'
'void'
'display'
'while'
'func'
'var'
'else'
'if'
'int'
'num'
'text'
'bool'
'return'
'getinput'
'['
']'
'('
')'
'{'
'}'
','
';'
'+'
'-'
'*'
'/'
'<'
'>'
'!='
'=='
'='
'<='
'>='
'AND'
'OR'
null
null
null
null
'getOutliers'
'removeOutliers'
'tellMeWhatToUse'
'printMeasures'
'mean'
'median'
'mode'
'range'
'min'
'max'
'desEstandar'
'quickShow'
'pearsoneCorrelation'
'normalDistribution'
'fillValue'
'removeValue'
null
null
null
token symbolic names:
null
MAIN
LILA
VOID
DISPLAY
WHILE
FUNC
VAR
ELSE
IF
INT
NUM
TEXT
BOOL
RETURN
GETINPUT
OPEN_BRACKET
CLOSE_BRACKET
OPEN_PARENTHESIS
CLOSE_PARENTHESIS
OPEN_CURLY
CLOSE_CURLY
COMMA
SEMICOLON
PLUS
MINUS
MULTIPLICATION
DIVISION
LESS_THAN
GREATER_THAN
NOTEQUAL
EQUALITY
EQUAL
LESS_THAN_EQUAL
GREATER_THAN_EQUAL
AND
OR
CTE_INT
CTE_STRING
CTE_F
CTE_BOOL
GETOUTLIERS
REMOVEOUTLIERS
TELLMEWHATTOUSE
PRINTMEASURES
MEAN
MEDIAN
MODE
RANGE
MIN
MAX
DESESTANDAR
QUICKSHOW
PEARSONCORRELATION
NORMALDISTRIBUTION
FILLVALUE
REMOVEVALUE
ID
WS
Comment
rule names:
programa
data
data2
main
array
tipo
funciones
params
estatuto
condicion
bloque
display
asignacion
sreturn
arr
expresion
comparacion
exp
termino
factor
var_cte
swhile
invocacion
getinput
especiales
atn:
[3, 24715, 42794, 33075, 47597, 16764, 15335, 30598, 22884, 3, 61, 591, 4, 2, 9, 2, 4, 3, 9, 3, 4, 4, 9, 4, 4, 5, 9, 5, 4, 6, 9, 6, 4, 7, 9, 7, 4, 8, 9, 8, 4, 9, 9, 9, 4, 10, 9, 10, 4, 11, 9, 11, 4, 12, 9, 12, 4, 13, 9, 13, 4, 14, 9, 14, 4, 15, 9, 15, 4, 16, 9, 16, 4, 17, 9, 17, 4, 18, 9, 18, 4, 19, 9, 19, 4, 20, 9, 20, 4, 21, 9, 21, 4, 22, 9, 22, 4, 23, 9, 23, 4, 24, 9, 24, 4, 25, 9, 25, 4, 26, 9, 26, 3, 2, 3, 2, 3, 2, 3, 2, 5, 2, 57, 10, 2, 3, 2, 7, 2, 60, 10, 2, 12, 2, 14, 2, 63, 11, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 3, 3, 3, 6, 3, 74, 10, 3, 13, 3, 14, 3, 75, 3, 3, 3, 3, 3, 4, 3, 4, 3, 4, 3, 4, 5, 4, 84, 10, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 7, 4, 91, 10, 4, 12, 4, 14, 4, 94, 11, 4, 3, 4, 3, 4, 3, 4, 3, 5, 3, 5, 3, 5, 3, 5, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 7, 6, 109, 10, 6, 12, 6, 14, 6, 112, 11, 6, 3, 6, 3, 6, 3, 7, 3, 7, 3, 8, 3, 8, 3, 8, 5, 8, 121, 10, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 5, 8, 129, 10, 8, 3, 8, 3, 8, 3, 8, 5, 8, 134, 10, 8, 3, 8, 6, 8, 137, 10, 8, 13, 8, 14, 8, 138, 3, 8, 3, 8, 3, 8, 3, 8, 3, 9, 3, 9, 3, 9, 3, 9, 3, 9, 3, 9, 3, 9, 3, 9, 7, 9, 153, 10, 9, 12, 9, 14, 9, 156, 11, 9, 3, 10, 3, 10, 3, 10, 3, 10, 3, 10, 3, 10, 3, 10, 3, 10, 5, 10, 166, 10, 10, 3, 11, 3, 11, 3, 11, 3, 11, 3, 11, 3, 11, 3, 11, 5, 11, 175, 10, 11, 3, 11, 3, 11, 3, 12, 3, 12, 3, 12, 7, 12, 182, 10, 12, 12, 12, 14, 12, 185, 11, 12, 3, 12, 3, 12, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 7, 13, 197, 10, 13, 12, 13, 14, 13, 200, 11, 13, 3, 13, 3, 13, 3, 13, 3, 14, 3, 14, 3, 14, 3, 14, 3, 14, 3, 14, 3, 14, 3, 14, 3, 14, 3, 14, 3, 14, 3, 14, 6, 14, 217, 10, 14, 13, 14, 14, 14, 218, 3, 14, 3, 14, 3, 14, 3, 14, 5, 14, 225, 10, 14, 3, 14, 3, 14, 3, 14, 3, 14, 3, 14, 3, 14, 3, 14, 3, 15, 3, 15, 3, 15, 3, 15, 3, 15, 3, 15, 3, 16, 3, 16, 3, 16, 3, 16, 7, 16, 244, 10, 16, 12, 16, 14, 16, 247, 11, 16, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 7, 16, 255, 10, 16, 12, 16, 14, 16, 258, 11, 16, 3, 16, 3, 16, 7, 16, 262, 10, 16, 12, 16, 14, 16, 265, 11, 16, 3, 17, 3, 17, 3, 17, 3, 17, 3, 17, 3, 17, 5, 17, 273, 10, 17, 3, 17, 3, 17, 3, 17, 7, 17, 278, 10, 17, 12, 17, 14, 17, 281, 11, 17, 3, 18, 3, 18, 3, 18, 3, 18, 3, 18, 3, 18, 3, 18, 3, 18, 3, 18, 3, 18, 3, 18, 3, 18, 3, 18, 5, 18, 296, 10, 18, 3, 18, 3, 18, 3, 18, 3, 18, 5, 18, 302, 10, 18, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 5, 19, 310, 10, 19, 3, 19, 3, 19, 3, 19, 7, 19, 315, 10, 19, 12, 19, 14, 19, 318, 11, 19, 3, 20, 3, 20, 3, 20, 3, 20, 3, 20, 3, 20, 5, 20, 326, 10, 20, 3, 20, 3, 20, 3, 20, 7, 20, 331, 10, 20, 12, 20, 14, 20, 334, 11, 20, 3, 21, 3, 21, 3, 21, 3, 21, 3, 21, 3, 21, 3, 21, 3, 21, 3, 21, 5, 21, 345, 10, 21, 3, 21, 3, 21, 3, 21, 5, 21, 350, 10, 21, 3, 22, 3, 22, 3, 22, 3, 22, 3, 22, 3, 22, 3, 22, 3, 22, 3, 22, 3, 22, 3, 22, 3, 22, 3, 22, 7, 22, 365, 10, 22, 12, 22, 14, 22, 368, 11, 22, 5, 22, 370, 10, 22, 3, 22, 3, 22, 3, 22, 3, 22, 3, 22, 3, 22, 3, 22, 3, 22, 3, 22, 3, 22, 3, 22, 3, 22, 3, 22, 3, 22, 3, 22, 3, 22, 6, 22, 388, 10, 22, 13, 22, 14, 22, 389, 3, 22, 3, 22, 3, 22, 3, 22, 3, 22, 3, 22, 3, 22, 3, 22, 3, 22, 3, 22, 3, 22, 3, 22, 5, 22, 404, 10, 22, 3, 23, 3, 23, 3, 23, 3, 23, 3, 23, 3, 23, 3, 23, 3, 24, 3, 24, 3, 24, 3, 24, 3, 24, 3, 24, 3, 24, 3, 24, 3, 24, 3, 24, 3, 24, 3, 24, 3, 24, 7, 24, 426, 10, 24, 12, 24, 14, 24, 429, 11, 24, 5, 24, 431, 10, 24, 3, 24, 3, 24, 3, 24, 3, 24, 3, 24, 3, 24, 3, 25, 3, 25, 3, 25, 3, 25, 3, 25, 5, 25, 444, 10, 25, 3, 25, 3, 25, 3, 25, 3, 25, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 5, 26, 589, 10, 26, 3, 26, 2, 2, 27, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 2, 3, 3, 2, 12, 15, 2, 634, 2, 52, 3, 2, 2, 2, 4, 71, 3, 2, 2, 2, 6, 83, 3, 2, 2, 2, 8, 98, 3, 2, 2, 2, 10, 102, 3, 2, 2, 2, 12, 115, 3, 2, 2, 2, 14, 117, 3, 2, 2, 2, 16, 144, 3, 2, 2, 2, 18, 165, 3, 2, 2, 2, 20, 167, 3, 2, 2, 2, 22, 178, 3, 2, 2, 2, 24, 188, 3, 2, 2, 2, 26, 224, 3, 2, 2, 2, 28, 233, 3, 2, 2, 2, 30, 239, 3, 2, 2, 2, 32, 266, 3, 2, 2, 2, 34, 301, 3, 2, 2, 2, 36, 303, 3, 2, 2, 2, 38, 319, 3, 2, 2, 2, 40, 349, 3, 2, 2, 2, 42, 403, 3, 2, 2, 2, 44, 405, 3, 2, 2, 2, 46, 412, 3, 2, 2, 2, 48, 438, 3, 2, 2, 2, 50, 588, 3, 2, 2, 2, 52, 53, 7, 4, 2, 2, 53, 54, 7, 59, 2, 2, 54, 56, 8, 2, 1, 2, 55, 57, 5, 4, 3, 2, 56, 55, 3, 2, 2, 2, 56, 57, 3, 2, 2, 2, 57, 61, 3, 2, 2, 2, 58, 60, 5, 14, 8, 2, 59, 58, 3, 2, 2, 2, 60, 63, 3, 2, 2, 2, 61, 59, 3, 2, 2, 2, 61, 62, 3, 2, 2, 2, 62, 64, 3, 2, 2, 2, 63, 61, 3, 2, 2, 2, 64, 65, 8, 2, 1, 2, 65, 66, 5, 8, 5, 2, 66, 67, 8, 2, 1, 2, 67, 68, 8, 2, 1, 2, 68, 69, 8, 2, 1, 2, 69, 70, 8, 2, 1, 2, 70, 3, 3, 2, 2, 2, 71, 73, 7, 9, 2, 2, 72, 74, 5, 6, 4, 2, 73, 72, 3, 2, 2, 2, 74, 75, 3, 2, 2, 2, 75, 73, 3, 2, 2, 2, 75, 76, 3, 2, 2, 2, 76, 77, 3, 2, 2, 2, 77, 78, 8, 3, 1, 2, 78, 5, 3, 2, 2, 2, 79, 84, 5, 12, 7, 2, 80, 81, 5, 12, 7, 2, 81, 82, 5, 10, 6, 2, 82, 84, 3, 2, 2, 2, 83, 79, 3, 2, 2, 2, 83, 80, 3, 2, 2, 2, 84, 85, 3, 2, 2, 2, 85, 86, 7, 59, 2, 2, 86, 92, 8, 4, 1, 2, 87, 88, 7, 24, 2, 2, 88, 89, 7, 59, 2, 2, 89, 91, 8, 4, 1, 2, 90, 87, 3, 2, 2, 2, 91, 94, 3, 2, 2, 2, 92, 90, 3, 2, 2, 2, 92, 93, 3, 2, 2, 2, 93, 95, 3, 2, 2, 2, 94, 92, 3, 2, 2, 2, 95, 96, 8, 4, 1, 2, 96, 97, 7, 25, 2, 2, 97, 7, 3, 2, 2, 2, 98, 99, 7, 3, 2, 2, 99, 100, 8, 5, 1, 2, 100, 101, 5, 22, 12, 2, 101, 9, 3, 2, 2, 2, 102, 110, 8, 6, 1, 2, 103, 104, 7, 18, 2, 2, 104, 105, 7, 39, 2, 2, 105, 106, 8, 6, 1, 2, 106, 107, 7, 19, 2, 2, 107, 109, 8, 6, 1, 2, 108, 103, 3, 2, 2, 2, 109, 112, 3, 2, 2, 2, 110, 108, 3, 2, 2, 2, 110, 111, 3, 2, 2, 2, 111, 113, 3, 2, 2, 2, 112, 110, 3, 2, 2, 2, 113, 114, 8, 6, 1, 2, 114, 11, 3, 2, 2, 2, 115, 116, 9, 2, 2, 2, 116, 13, 3, 2, 2, 2, 117, 120, 7, 8, 2, 2, 118, 121, 5, 12, 7, 2, 119, 121, 7, 5, 2, 2, 120, 118, 3, 2, 2, 2, 120, 119, 3, 2, 2, 2, 121, 122, 3, 2, 2, 2, 122, 123, 7, 59, 2, 2, 123, 124, 8, 8, 1, 2, 124, 125, 8, 8, 1, 2, 125, 126, 8, 8, 1, 2, 126, 128, 7, 20, 2, 2, 127, 129, 5, 16, 9, 2, 128, 127, 3, 2, 2, 2, 128, 129, 3, 2, 2, 2, 129, 130, 3, 2, 2, 2, 130, 131, 7, 21, 2, 2, 131, 133, 7, 22, 2, 2, 132, 134, 5, 4, 3, 2, 133, 132, 3, 2, 2, 2, 133, 134, 3, 2, 2, 2, 134, 136, 3, 2, 2, 2, 135, 137, 5, 18, 10, 2, 136, 135, 3, 2, 2, 2, 137, 138, 3, 2, 2, 2, 138, 136, 3, 2, 2, 2, 138, 139, 3, 2, 2, 2, 139, 140, 3, 2, 2, 2, 140, 141, 7, 23, 2, 2, 141, 142, 8, 8, 1, 2, 142, 143, 8, 8, 1, 2, 143, 15, 3, 2, 2, 2, 144, 145, 5, 12, 7, 2, 145, 146, 7, 59, 2, 2, 146, 154, 8, 9, 1, 2, 147, 148, 7, 24, 2, 2, 148, 149, 5, 12, 7, 2, 149, 150, 7, 59, 2, 2, 150, 151, 8, 9, 1, 2, 151, 153, 3, 2, 2, 2, 152, 147, 3, 2, 2, 2, 153, 156, 3, 2, 2, 2, 154, 152, 3, 2, 2, 2, 154, 155, 3, 2, 2, 2, 155, 17, 3, 2, 2, 2, 156, 154, 3, 2, 2, 2, 157, 166, 5, 26, 14, 2, 158, 166, 5, 20, 11, 2, 159, 166, 5, 44, 23, 2, 160, 166, 5, 24, 13, 2, 161, 166, 5, 48, 25, 2, 162, 166, 5, 46, 24, 2, 163, 166, 5, 28, 15, 2, 164, 166, 5, 50, 26, 2, 165, 157, 3, 2, 2, 2, 165, 158, 3, 2, 2, 2, 165, 159, 3, 2, 2, 2, 165, 160, 3, 2, 2, 2, 165, 161, 3, 2, 2, 2, 165, 162, 3, 2, 2, 2, 165, 163, 3, 2, 2, 2, 165, 164, 3, 2, 2, 2, 166, 19, 3, 2, 2, 2, 167, 168, 7, 11, 2, 2, 168, 169, 5, 32, 17, 2, 169, 170, 8, 11, 1, 2, 170, 174, 5, 22, 12, 2, 171, 172, 7, 10, 2, 2, 172, 173, 8, 11, 1, 2, 173, 175, 5, 22, 12, 2, 174, 171, 3, 2, 2, 2, 174, 175, 3, 2, 2, 2, 175, 176, 3, 2, 2, 2, 176, 177, 8, 11, 1, 2, 177, 21, 3, 2, 2, 2, 178, 179, 7, 22, 2, 2, 179, 183, 5, 18, 10, 2, 180, 182, 5, 18, 10, 2, 181, 180, 3, 2, 2, 2, 182, 185, 3, 2, 2, 2, 183, 181, 3, 2, 2, 2, 183, 184, 3, 2, 2, 2, 184, 186, 3, 2, 2, 2, 185, 183, 3, 2, 2, 2, 186, 187, 7, 23, 2, 2, 187, 23, 3, 2, 2, 2, 188, 189, 7, 6, 2, 2, 189, 190, 7, 20, 2, 2, 190, 191, 5, 32, 17, 2, 191, 198, 8, 13, 1, 2, 192, 193, 7, 24, 2, 2, 193, 194, 5, 32, 17, 2, 194, 195, 8, 13, 1, 2, 195, 197, 3, 2, 2, 2, 196, 192, 3, 2, 2, 2, 197, 200, 3, 2, 2, 2, 198, 196, 3, 2, 2, 2, 198, 199, 3, 2, 2, 2, 199, 201, 3, 2, 2, 2, 200, 198, 3, 2, 2, 2, 201, 202, 7, 21, 2, 2, 202, 203, 7, 25, 2, 2, 203, 25, 3, 2, 2, 2, 204, 205, 7, 59, 2, 2, 205, 225, 8, 14, 1, 2, 206, 207, 7, 59, 2, 2, 207, 208, 8, 14, 1, 2, 208, 209, 8, 14, 1, 2, 209, 216, 8, 14, 1, 2, 210, 211, 7, 18, 2, 2, 211, 212, 8, 14, 1, 2, 212, 213, 5, 36, 19, 2, 213, 214, 8, 14, 1, 2, 214, 215, 7, 19, 2, 2, 215, 217, 3, 2, 2, 2, 216, 210, 3, 2, 2, 2, 217, 218, 3, 2, 2, 2, 218, 216, 3, 2, 2, 2, 218, 219, 3, 2, 2, 2, 219, 220, 3, 2, 2, 2, 220, 221, 8, 14, 1, 2, 221, 222, 8, 14, 1, 2, 222, 223, 8, 14, 1, 2, 223, 225, 3, 2, 2, 2, 224, 204, 3, 2, 2, 2, 224, 206, 3, 2, 2, 2, 225, 226, 3, 2, 2, 2, 226, 227, 7, 34, 2, 2, 227, 228, 8, 14, 1, 2, 228, 229, 5, 32, 17, 2, 229, 230, 8, 14, 1, 2, 230, 231, 3, 2, 2, 2, 231, 232, 7, 25, 2, 2, 232, 27, 3, 2, 2, 2, 233, 234, 7, 16, 2, 2, 234, 235, 5, 32, 17, 2, 235, 236, 8, 15, 1, 2, 236, 237, 8, 15, 1, 2, 237, 238, 7, 25, 2, 2, 238, 29, 3, 2, 2, 2, 239, 240, 7, 18, 2, 2, 240, 245, 5, 42, 22, 2, 241, 242, 7, 24, 2, 2, 242, 244, 5, 42, 22, 2, 243, 241, 3, 2, 2, 2, 244, 247, 3, 2, 2, 2, 245, 243, 3, 2, 2, 2, 245, 246, 3, 2, 2, 2, 246, 248, 3, 2, 2, 2, 247, 245, 3, 2, 2, 2, 248, 263, 7, 19, 2, 2, 249, 250, 7, 24, 2, 2, 250, 251, 7, 18, 2, 2, 251, 256, 5, 42, 22, 2, 252, 253, 7, 24, 2, 2, 253, 255, 5, 42, 22, 2, 254, 252, 3, 2, 2, 2, 255, 258, 3, 2, 2, 2, 256, 254, 3, 2, 2, 2, 256, 257, 3, 2, 2, 2, 257, 259, 3, 2, 2, 2, 258, 256, 3, 2, 2, 2, 259, 260, 7, 19, 2, 2, 260, 262, 3, 2, 2, 2, 261, 249, 3, 2, 2, 2, 262, 265, 3, 2, 2, 2, 263, 261, 3, 2, 2, 2, 263, 264, 3, 2, 2, 2, 264, 31, 3, 2, 2, 2, 265, 263, 3, 2, 2, 2, 266, 267, 5, 34, 18, 2, 267, 279, 8, 17, 1, 2, 268, 269, 7, 37, 2, 2, 269, 273, 8, 17, 1, 2, 270, 271, 7, 38, 2, 2, 271, 273, 8, 17, 1, 2, 272, 268, 3, 2, 2, 2, 272, 270, 3, 2, 2, 2, 273, 274, 3, 2, 2, 2, 274, 275, 5, 34, 18, 2, 275, 276, 8, 17, 1, 2, 276, 278, 3, 2, 2, 2, 277, 272, 3, 2, 2, 2, 278, 281, 3, 2, 2, 2, 279, 277, 3, 2, 2, 2, 279, 280, 3, 2, 2, 2, 280, 33, 3, 2, 2, 2, 281, 279, 3, 2, 2, 2, 282, 295, 5, 36, 19, 2, 283, 284, 7, 31, 2, 2, 284, 296, 8, 18, 1, 2, 285, 286, 7, 30, 2, 2, 286, 296, 8, 18, 1, 2, 287, 288, 7, 32, 2, 2, 288, 296, 8, 18, 1, 2, 289, 290, 7, 33, 2, 2, 290, 296, 8, 18, 1, 2, 291, 292, 7, 36, 2, 2, 292, 296, 8, 18, 1, 2, 293, 294, 7, 35, 2, 2, 294, 296, 8, 18, 1, 2, 295, 283, 3, 2, 2, 2, 295, 285, 3, 2, 2, 2, 295, 287, 3, 2, 2, 2, 295, 289, 3, 2, 2, 2, 295, 291, 3, 2, 2, 2, 295, 293, 3, 2, 2, 2, 296, 297, 3, 2, 2, 2, 297, 298, 5, 36, 19, 2, 298, 299, 8, 18, 1, 2, 299, 302, 3, 2, 2, 2, 300, 302, 5, 36, 19, 2, 301, 282, 3, 2, 2, 2, 301, 300, 3, 2, 2, 2, 302, 35, 3, 2, 2, 2, 303, 304, 5, 38, 20, 2, 304, 316, 8, 19, 1, 2, 305, 306, 7, 26, 2, 2, 306, 310, 8, 19, 1, 2, 307, 308, 7, 27, 2, 2, 308, 310, 8, 19, 1, 2, 309, 305, 3, 2, 2, 2, 309, 307, 3, 2, 2, 2, 310, 311, 3, 2, 2, 2, 311, 312, 5, 38, 20, 2, 312, 313, 8, 19, 1, 2, 313, 315, 3, 2, 2, 2, 314, 309, 3, 2, 2, 2, 315, 318, 3, 2, 2, 2, 316, 314, 3, 2, 2, 2, 316, 317, 3, 2, 2, 2, 317, 37, 3, 2, 2, 2, 318, 316, 3, 2, 2, 2, 319, 320, 5, 40, 21, 2, 320, 332, 8, 20, 1, 2, 321, 322, 7, 28, 2, 2, 322, 326, 8, 20, 1, 2, 323, 324, 7, 29, 2, 2, 324, 326, 8, 20, 1, 2, 325, 321, 3, 2, 2, 2, 325, 323, 3, 2, 2, 2, 326, 327, 3, 2, 2, 2, 327, 328, 5, 40, 21, 2, 328, 329, 8, 20, 1, 2, 329, 331, 3, 2, 2, 2, 330, 325, 3, 2, 2, 2, 331, 334, 3, 2, 2, 2, 332, 330, 3, 2, 2, 2, 332, 333, 3, 2, 2, 2, 333, 39, 3, 2, 2, 2, 334, 332, 3, 2, 2, 2, 335, 336, 7, 20, 2, 2, 336, 337, 8, 21, 1, 2, 337, 338, 5, 32, 17, 2, 338, 339, 7, 21, 2, 2, 339, 340, 8, 21, 1, 2, 340, 350, 3, 2, 2, 2, 341, 345, 7, 26, 2, 2, 342, 343, 7, 27, 2, 2, 343, 345, 8, 21, 1, 2, 344, 341, 3, 2, 2, 2, 344, 342, 3, 2, 2, 2, 344, 345, 3, 2, 2, 2, 345, 346, 3, 2, 2, 2, 346, 347, 5, 42, 22, 2, 347, 348, 8, 21, 1, 2, 348, 350, 3, 2, 2, 2, 349, 335, 3, 2, 2, 2, 349, 344, 3, 2, 2, 2, 350, 41, 3, 2, 2, 2, 351, 352, 7, 59, 2, 2, 352, 353, 7, 20, 2, 2, 353, 354, 8, 22, 1, 2, 354, 355, 8, 22, 1, 2, 355, 356, 8, 22, 1, 2, 356, 357, 8, 22, 1, 2, 357, 369, 8, 22, 1, 2, 358, 359, 5, 32, 17, 2, 359, 366, 8, 22, 1, 2, 360, 361, 7, 24, 2, 2, 361, 362, 5, 32, 17, 2, 362, 363, 8, 22, 1, 2, 363, 365, 3, 2, 2, 2, 364, 360, 3, 2, 2, 2, 365, 368, 3, 2, 2, 2, 366, 364, 3, 2, 2, 2, 366, 367, 3, 2, 2, 2, 367, 370, 3, 2, 2, 2, 368, 366, 3, 2, 2, 2, 369, 358, 3, 2, 2, 2, 369, 370, 3, 2, 2, 2, 370, 371, 3, 2, 2, 2, 371, 372, 8, 22, 1, 2, 372, 373, 7, 21, 2, 2, 373, 374, 8, 22, 1, 2, 374, 375, 8, 22, 1, 2, 375, 404, 8, 22, 1, 2, 376, 377, 7, 59, 2, 2, 377, 404, 8, 22, 1, 2, 378, 379, 7, 59, 2, 2, 379, 380, 8, 22, 1, 2, 380, 381, 8, 22, 1, 2, 381, 387, 8, 22, 1, 2, 382, 383, 7, 18, 2, 2, 383, 384, 5, 36, 19, 2, 384, 385, 8, 22, 1, 2, 385, 386, 7, 19, 2, 2, 386, 388, 3, 2, 2, 2, 387, 382, 3, 2, 2, 2, 388, 389, 3, 2, 2, 2, 389, 387, 3, 2, 2, 2, 389, 390, 3, 2, 2, 2, 390, 391, 3, 2, 2, 2, 391, 392, 8, 22, 1, 2, 392, 393, 8, 22, 1, 2, 393, 394, 8, 22, 1, 2, 394, 404, 3, 2, 2, 2, 395, 396, 7, 39, 2, 2, 396, 404, 8, 22, 1, 2, 397, 398, 7, 41, 2, 2, 398, 404, 8, 22, 1, 2, 399, 400, 7, 40, 2, 2, 400, 404, 8, 22, 1, 2, 401, 402, 7, 42, 2, 2, 402, 404, 8, 22, 1, 2, 403, 351, 3, 2, 2, 2, 403, 376, 3, 2, 2, 2, 403, 378, 3, 2, 2, 2, 403, 395, 3, 2, 2, 2, 403, 397, 3, 2, 2, 2, 403, 399, 3, 2, 2, 2, 403, 401, 3, 2, 2, 2, 404, 43, 3, 2, 2, 2, 405, 406, 7, 7, 2, 2, 406, 407, 8, 23, 1, 2, 407, 408, 5, 32, 17, 2, 408, 409, 8, 23, 1, 2, 409, 410, 5, 22, 12, 2, 410, 411, 8, 23, 1, 2, 411, 45, 3, 2, 2, 2, 412, 413, 7, 59, 2, 2, 413, 414, 7, 20, 2, 2, 414, 415, 8, 24, 1, 2, 415, 416, 8, 24, 1, 2, 416, 417, 8, 24, 1, 2, 417, 418, 8, 24, 1, 2, 418, 430, 8, 24, 1, 2, 419, 420, 5, 32, 17, 2, 420, 427, 8, 24, 1, 2, 421, 422, 7, 24, 2, 2, 422, 423, 5, 32, 17, 2, 423, 424, 8, 24, 1, 2, 424, 426, 3, 2, 2, 2, 425, 421, 3, 2, 2, 2, 426, 429, 3, 2, 2, 2, 427, 425, 3, 2, 2, 2, 427, 428, 3, 2, 2, 2, 428, 431, 3, 2, 2, 2, 429, 427, 3, 2, 2, 2, 430, 419, 3, 2, 2, 2, 430, 431, 3, 2, 2, 2, 431, 432, 3, 2, 2, 2, 432, 433, 8, 24, 1, 2, 433, 434, 7, 21, 2, 2, 434, 435, 8, 24, 1, 2, 435, 436, 8, 24, 1, 2, 436, 437, 7, 25, 2, 2, 437, 47, 3, 2, 2, 2, 438, 439, 7, 17, 2, 2, 439, 440, 7, 20, 2, 2, 440, 443, 7, 59, 2, 2, 441, 442, 7, 24, 2, 2, 442, 444, 7, 40, 2, 2, 443, 441, 3, 2, 2, 2, 443, 444, 3, 2, 2, 2, 444, 445, 3, 2, 2, 2, 445, 446, 8, 25, 1, 2, 446, 447, 7, 21, 2, 2, 447, 448, 7, 25, 2, 2, 448, 49, 3, 2, 2, 2, 449, 450, 7, 47, 2, 2, 450, 451, 7, 20, 2, 2, 451, 452, 7, 59, 2, 2, 452, 453, 8, 26, 1, 2, 453, 454, 8, 26, 1, 2, 454, 455, 7, 21, 2, 2, 455, 589, 7, 25, 2, 2, 456, 457, 7, 48, 2, 2, 457, 458, 7, 20, 2, 2, 458, 459, 7, 59, 2, 2, 459, 460, 8, 26, 1, 2, 460, 461, 8, 26, 1, 2, 461, 462, 7, 21, 2, 2, 462, 589, 7, 25, 2, 2, 463, 464, 7, 49, 2, 2, 464, 465, 7, 20, 2, 2, 465, 466, 7, 59, 2, 2, 466, 467, 8, 26, 1, 2, 467, 468, 8, 26, 1, 2, 468, 469, 7, 21, 2, 2, 469, 589, 7, 25, 2, 2, 470, 471, 7, 51, 2, 2, 471, 472, 7, 20, 2, 2, 472, 473, 7, 59, 2, 2, 473, 474, 8, 26, 1, 2, 474, 475, 8, 26, 1, 2, 475, 476, 7, 21, 2, 2, 476, 589, 7, 25, 2, 2, 477, 478, 7, 52, 2, 2, 478, 479, 7, 20, 2, 2, 479, 480, 7, 59, 2, 2, 480, 481, 8, 26, 1, 2, 481, 482, 8, 26, 1, 2, 482, 483, 7, 21, 2, 2, 483, 589, 7, 25, 2, 2, 484, 485, 7, 50, 2, 2, 485, 486, 7, 20, 2, 2, 486, 487, 7, 59, 2, 2, 487, 488, 8, 26, 1, 2, 488, 489, 8, 26, 1, 2, 489, 490, 7, 21, 2, 2, 490, 589, 7, 25, 2, 2, 491, 492, 7, 53, 2, 2, 492, 493, 7, 20, 2, 2, 493, 494, 7, 59, 2, 2, 494, 495, 8, 26, 1, 2, 495, 496, 8, 26, 1, 2, 496, 497, 7, 21, 2, 2, 497, 589, 7, 25, 2, 2, 498, 499, 7, 46, 2, 2, 499, 500, 7, 20, 2, 2, 500, 501, 7, 59, 2, 2, 501, 502, 8, 26, 1, 2, 502, 503, 8, 26, 1, 2, 503, 504, 7, 21, 2, 2, 504, 589, 7, 25, 2, 2, 505, 506, 7, 43, 2, 2, 506, 507, 7, 20, 2, 2, 507, 508, 7, 59, 2, 2, 508, 509, 8, 26, 1, 2, 509, 510, 8, 26, 1, 2, 510, 511, 7, 21, 2, 2, 511, 589, 7, 25, 2, 2, 512, 513, 7, 44, 2, 2, 513, 514, 7, 20, 2, 2, 514, 515, 7, 59, 2, 2, 515, 516, 8, 26, 1, 2, 516, 517, 8, 26, 1, 2, 517, 518, 7, 21, 2, 2, 518, 589, 7, 25, 2, 2, 519, 520, 7, 57, 2, 2, 520, 521, 7, 20, 2, 2, 521, 522, 7, 59, 2, 2, 522, 523, 8, 26, 1, 2, 523, 524, 7, 24, 2, 2, 524, 525, 5, 42, 22, 2, 525, 526, 7, 24, 2, 2, 526, 527, 5, 42, 22, 2, 527, 528, 8, 26, 1, 2, 528, 529, 7, 21, 2, 2, 529, 530, 7, 25, 2, 2, 530, 589, 3, 2, 2, 2, 531, 532, 7, 58, 2, 2, 532, 533, 7, 20, 2, 2, 533, 534, 7, 59, 2, 2, 534, 535, 8, 26, 1, 2, 535, 536, 7, 24, 2, 2, 536, 537, 5, 42, 22, 2, 537, 538, 8, 26, 1, 2, 538, 539, 7, 21, 2, 2, 539, 540, 7, 25, 2, 2, 540, 589, 3, 2, 2, 2, 541, 542, 7, 45, 2, 2, 542, 543, 7, 20, 2, 2, 543, 544, 7, 59, 2, 2, 544, 545, 8, 26, 1, 2, 545, 546, 8, 26, 1, 2, 546, 547, 7, 21, 2, 2, 547, 589, 7, 25, 2, 2, 548, 549, 7, 54, 2, 2, 549, 550, 7, 20, 2, 2, 550, 551, 7, 59, 2, 2, 551, 552, 8, 26, 1, 2, 552, 553, 8, 26, 1, 2, 553, 554, 7, 24, 2, 2, 554, 555, 7, 59, 2, 2, 555, 556, 8, 26, 1, 2, 556, 557, 8, 26, 1, 2, 557, 558, 8, 26, 1, 2, 558, 559, 7, 21, 2, 2, 559, 589, 7, 25, 2, 2, 560, 561, 7, 54, 2, 2, 561, 562, 7, 20, 2, 2, 562, 563, 7, 59, 2, 2, 563, 564, 8, 26, 1, 2, 564, 565, 8, 26, 1, 2, 565, 566, 7, 21, 2, 2, 566, 589, 7, 25, 2, 2, 567, 568, 7, 55, 2, 2, 568, 569, 7, 20, 2, 2, 569, 570, 7, 59, 2, 2, 570, 571, 8, 26, 1, 2, 571, 572, 8, 26, 1, 2, 572, 573, 7, 24, 2, 2, 573, 574, 7, 59, 2, 2, 574, 575, 8, 26, 1, 2, 575, 576, 8, 26, 1, 2, 576, 577, 8, 26, 1, 2, 577, 578, 7, 21, 2, 2, 578, 589, 7, 25, 2, 2, 579, 580, 7, 56, 2, 2, 580, 581, 7, 20, 2, 2, 581, 582, 7, 41, 2, 2, 582, 583, 7, 24, 2, 2, 583, 584, 7, 41, 2, 2, 584, 585, 7, 24, 2, 2, 585, 586, 7, 39, 2, 2, 586, 587, 7, 21, 2, 2, 587, 589, 7, 25, 2, 2, 588, 449, 3, 2, 2, 2, 588, 456, 3, 2, 2, 2, 588, 463, 3, 2, 2, 2, 588, 470, 3, 2, 2, 2, 588, 477, 3, 2, 2, 2, 588, 484, 3, 2, 2, 2, 588, 491, 3, 2, 2, 2, 588, 498, 3, 2, 2, 2, 588, 505, 3, 2, 2, 2, 588, 512, 3, 2, 2, 2, 588, 519, 3, 2, 2, 2, 588, 531, 3, 2, 2, 2, 588, 541, 3, 2, 2, 2, 588, 548, 3, 2, 2, 2, 588, 560, 3, 2, 2, 2, 588, 567, 3, 2, 2, 2, 588, 579, 3, 2, 2, 2, 589, 51, 3, 2, 2, 2, 40, 56, 61, 75, 83, 92, 110, 120, 128, 133, 138, 154, 165, 174, 183, 198, 218, 224, 245, 256, 263, 272, 279, 295, 301, 309, 316, 325, 332, 344, 349, 366, 369, 389, 403, 427, 430, 443, 588]