4098 lines (4097 with data), 18.4 kB
108
109
91
79
85
105
114
127
134
135
123
106
87
69
49
29
-2
-25
-46
-67
-98
-104
-89
-65
-31
-17
-8
-4
10
21
27
23
35
35
41
46
52
49
31
7
-25
-35
-29
-36
-52
-59
-58
-74
-100
-123
-139
-138
-122
-96
-64
-40
-14
34
77
101
127
127
137
148
145
133
123
120
109
105
105
101
102
98
104
115
119
122
113
113
93
95
116
115
117
93
76
65
64
59
53
40
34
33
37
56
65
69
74
82
85
81
81
92
113
139
166
165
158
149
135
109
75
52
32
28
20
15
26
41
60
72
76
70
64
58
58
66
53
34
19
9
0
10
23
23
14
-7
-23
-36
-39
-41
-61
-73
-80
-73
-63
-52
-49
-52
-59
-52
-50
-65
-59
-59
-55
-62
-73
-81
-104
-110
-133
-131
-119
-71
-40
-21
-33
-54
-67
-67
-47
-46
-35
-21
-10
-13
-29
-43
-53
-50
-33
-14
-4
-1
14
24
25
9
-21
-39
-41
-27
-34
-38
-43
-39
-20
5
23
31
34
34
19
-6
-25
-13
1
17
32
55
73
94
91
76
62
62
77
83
90
93
97
120
149
174
177
188
189
177
154
128
92
70
72
70
73
51
40
33
39
36
8
-30
-46
-37
-25
-19
-16
-19
-11
-6
-4
-8
-2
24
44
50
39
28
10
8
10
4
-11
-16
-25
-33
-42
-59
-71
-93
-84
-65
-53
-48
-67
-86
-108
-109
-105
-94
-88
-87
-86
-105
-103
-107
-107
-99
-82
-65
-46
-29
-33
-44
-49
-53
-51
-48
-29
-13
-11
-14
-3
-4
1
-7
-5
-3
9
23
28
33
27
28
15
23
36
34
25
23
29
45
72
85
79
82
87
110
122
121
104
78
69
73
82
72
58
35
15
9
14
16
24
48
56
62
48
51
53
53
57
54
53
55
45
24
-5
-12
-10
-6
4
12
11
5
13
26
40
25
13
-2
8
15
20
7
-8
-5
-1
24
54
68
78
79
81
60
44
46
48
53
56
67
66
58
31
23
14
39
49
62
57
52
31
14
10
3
11
14
17
14
2
15
21
27
22
13
-1
0
8
17
7
-11
-26
-35
-38
-21
-2
12
9
10
-12
-18
-12
-5
-1
-17
-39
-51
-60
-57
-59
-66
-80
-72
-78
-76
-62
-57
-32
-24
-32
-48
-54
-61
-55
-56
-52
-42
-52
-62
-54
-50
-54
-65
-81
-75
-70
-61
-67
-83
-77
-77
-67
-56
-39
-26
-13
-12
-8
-12
-12
-5
-15
-28
-31
-41
-37
-33
-23
-18
-14
-9
-15
-24
-28
-13
3
25
41
52
38
23
1
-12
-14
-6
18
39
44
41
9
-13
-24
-22
-23
-15
-5
6
26
33
39
32
46
56
45
33
22
33
40
45
38
24
17
10
22
35
53
65
53
46
51
49
58
76
91
116
140
162
167
151
128
88
49
29
27
22
9
4
3
4
-4
-7
-18
-15
1
19
18
15
27
27
42
51
62
65
66
68
50
31
6
-19
-40
-57
-59
-72
-71
-81
-93
-91
-65
-24
2
13
19
16
5
3
-1
8
25
36
31
11
13
36
65
81
100
100
97
99
117
124
134
127
110
106
98
84
56
18
-15
-52
-59
-58
-44
-31
-8
3
-3
1
11
33
36
30
23
11
5
-18
-46
-65
-70
-55
-68
-88
-88
-87
-67
-52
-44
-32
-21
-4
-4
0
11
14
22
26
39
37
4
-4
-17
-17
-23
-35
-54
-51
-23
11
34
33
50
65
88
95
92
74
57
59
51
59
58
54
39
9
-11
-51
-63
-69
-71
-73
-71
-56
-54
-43
-30
-20
-18
-16
-8
-4
-15
-26
-37
-34
-39
-54
-92
-120
-117
-109
-92
-79
-66
-62
-56
-62
-76
-93
-95
-109
-108
-94
-87
-72
-83
-91
-106
-121
-113
-93
-87
-86
-74
-62
-52
-59
-69
-81
-74
-65
-54
-57
-62
-56
-49
-38
-33
-35
-35
-38
-37
-60
-64
-50
-25
-8
2
7
9
11
29
47
57
55
37
29
29
48
61
79
93
111
102
94
86
91
91
106
117
117
116
113
94
84
80
69
60
39
39
25
19
21
15
20
1
-3
-32
-52
-76
-85
-94
-92
-83
-80
-64
-47
-41
-33
-28
-19
-20
-19
-5
6
14
21
18
3
3
19
28
13
-6
-34
-45
-45
-36
-27
-35
-39
-45
-52
-63
-55
-49
-47
-34
-44
-55
-74
-92
-90
-82
-50
-41
-25
-21
-7
-9
-13
-4
13
25
11
-7
-16
-29
-30
-48
-67
-88
-90
-103
-97
-90
-98
-97
-88
-60
-50
-41
-29
-19
-21
-31
-37
-38
-45
-52
-50
-48
-52
-64
-78
-84
-69
-43
-9
30
50
62
58
49
34
17
13
25
36
68
81
97
93
101
104
104
103
105
107
103
106
107
116
127
148
148
148
142
134
116
100
95
81
80
83
83
94
106
117
119
123
119
107
74
44
9
-14
-28
-41
-40
-41
-37
-33
-21
-15
-6
-10
-33
-39
-25
-2
29
48
52
45
55
71
83
99
116
144
171
197
198
190
179
170
169
155
159
151
140
126
124
122
109
103
81
62
50
51
60
68
67
69
76
87
114
119
123
116
104
87
60
51
28
23
15
20
18
26
26
8
8
19
36
49
60
66
58
38
30
17
1
-9
-20
-25
-37
-50
-59
-71
-71
-64
-57
-49
-24
-4
27
59
86
104
112
118
101
84
80
80
77
68
55
37
9
-13
-41
-63
-74
-75
-73
-55
-23
8
28
24
27
9
-3
-3
-5
11
26
44
49
66
71
84
73
48
17
-16
-28
-23
-14
-14
-24
-23
-34
-39
-37
-37
-40
-39
-34
-24
-4
13
14
3
1
12
14
18
40
74
116
151
175
165
148
129
130
131
125
106
71
55
43
36
34
44
44
35
12
-2
-10
-11
-7
0
3
-3
2
-16
-31
-48
-54
-49
-44
-29
-32
-21
4
20
32
35
43
25
2
-29
-53
-66
-70
-79
-94
-101
-93
-76
-66
-61
-67
-80
-91
-95
-97
-108
-108
-117
-108
-86
-61
-50
-59
-63
-66
-77
-90
-92
-89
-86
-76
-89
-100
-96
-79
-60
-53
-42
-49
-43
-61
-69
-82
-84
-66
-52
-32
-22
-20
-42
-63
-67
-50
-28
-9
1
1
-4
3
15
22
38
60
67
81
97
103
108
95
82
77
69
69
82
87
106
106
92
83
70
37
3
-11
0
5
8
3
1
-8
-11
-10
-4
10
25
23
8
-1
-15
-23
-36
-37
-50
-50
-37
-20
-15
-19
-32
-58
-77
-70
-68
-58
-65
-63
-66
-66
-47
-22
-12
-15
-5
16
62
102
123
117
105
87
57
28
17
11
-6
-15
-24
-23
-17
-12
-2
-6
5
5
-1
-2
-11
-25
-52
-73
-82
-96
-102
-106
-116
-116
-94
-68
-43
-28
-13
-14
-17
-21
-37
-35
-39
-17
-21
-37
-48
-69
-80
-93
-103
-112
-108
-103
-94
-101
-104
-95
-68
-45
-19
-20
-9
3
38
37
32
27
37
53
71
81
93
98
107
105
98
97
91
75
65
76
92
92
90
71
44
24
20
13
10
31
42
76
94
118
120
104
71
33
-10
-35
-42
-43
-36
-19
-6
13
21
30
31
27
19
6
-10
-9
9
16
20
36
55
77
86
98
106
120
122
120
112
115
132
128
133
133
129
108
91
77
72
78
80
80
73
62
43
18
-4
-7
-6
-3
10
13
8
2
-6
8
13
29
35
28
24
23
15
12
17
19
6
-3
-5
-8
-12
-9
-15
-10
-10
15
19
31
33
57
70
73
86
71
73
76
76
74
72
65
43
13
-1
-8
-4
-1
-3
-3
8
28
15
18
14
22
16
4
0
7
17
36
46
35
32
21
19
8
5
6
1
-1
1
2
9
23
20
6
1
5
8
15
28
43
55
55
67
74
82
91
107
117
136
155
161
167
158
145
129
107
83
56
26
19
4
-19
-45
-67
-101
-113
-104
-93
-79
-80
-73
-69
-58
-61
-87
-111
-129
-118
-110
-94
-81
-73
-76
-73
-72
-82
-81
-84
-72
-52
-32
-24
-31
-28
-26
-23
-29
-6
13
36
37
44
42
51
78
101
120
121
119
129
146
150
150
127
102
78
29
-19
-43
-58
-58
-69
-70
-71
-54
-32
-24
-8
9
32
50
54
56
37
20
4
-6
-21
-36
-49
-57
-56
-35
-32
-27
-30
-12
6
22
37
46
45
37
26
21
14
19
13
13
13
4
0
3
40
51
64
56
46
30
4
-1
-3
-4
-34
-57
-73
-66
-55
-55
-59
-76
-65
-75
-59
-43
-33
-30
-24
-16
-15
-30
-37
-39
-33
-21
-17
-18
-12
2
17
11
16
13
1
-17
-31
-46
-60
-73
-86
-90
-76
-60
-58
-65
-65
-63
-61
-55
-32
-14
8
37
56
57
41
19
-5
-15
-17
-15
-19
-22
-24
-38
-39
-39
-39
-41
-43
-22
-12
-11
-21
-42
-54
-53
-37
-25
-8
-4
-1
-12
1
13
17
23
30
46
53
46
30
-3
-24
-26
-17
0
29
55
54
43
30
38
57
81
92
82
61
41
14
-9
-22
-24
-10
10
26
53
73
100
120
123
127
121
108
102
99
94
83
67
62
55
37
32
19
13
15
29
29
38
54
60
70
74
92
101
111
113
116
120
108
93
56
38
25
29
26
42
47
52
53
67
65
54
56
47
35
36
44
47
40
22
2
8
10
22
35
43
68
67
59
39
27
21
21
37
43
44
32
28
17
20
32
29
8
-7
-7
-15
-25
-39
-39
-28
-22
-9
-19
-29
-14
-3
10
18
3
-19
-35
-54
-57
-65
-68
-62
-83
-96
-103
-98
-88
-86
-79
-73
-75
-64
-66
-65
-56
-58
-61
-70
-77
-89
-114
-126
-118
-110
-97
-88
-89
-88
-74
-71
-50
-47
-28
-23
-1
5
3
-4
-18
-3
3
31
52
66
73
68
71
59
54
50
41
36
26
34
40
51
73
80
72
51
28
17
15
21
21
1
13
24
31
32
34
48
63
87
92
89
77
68
60
54
51
47
37
24
19
21
40
56
58
52
31
30
8
-1
6
10
15
6
-1
-22
-35
-56
-67
-72
-77
-74
-80
-82
-68
-75
-84
-120
-118
-125
-119
-112
-102
-84
-55
-20
-9
10
26
41
39
22
-3
-26
-34
-38
-50
-64
-74
-73
-70
-68
-78
-76
-87
-78
-67
-69
-64
-53
-37
-27
-19
-33
-54
-82
-89
-84
-63
-50
-18
-3
34
49
39
24
22
37
54
62
70
80
103
122
143
141
132
126
110
96
95
84
79
76
81
79
73
66
64
61
66
72
78
94
106
118
115
133
153
171
170
170
161
147
147
141
135
132
125
114
87
80
50
33
15
6
7
-18
-30
-28
-14
-2
7
-10
-19
-38
-60
-103
-128
-147
-179
-212
-247
-263
-275
-271
-247
-237
-220
-195
-166
-134
-128
-95
-81
-46
-9
19
34
55
58
41
35
15
15
7
2
15
24
39
66
70
41
9
-16
-24
-30
-32
-24
-19
-10
-12
-19
-20
-9
-4
-9
1
-9
-17
-34
-56
-77
-94
-82
-73
-71
-69
-69
-77
-93
-96
-95
-79
-64
-54
-56
-44
-20
22
62
79
85
62
35
24
16
10
4
-1
2
6
6
4
2
18
49
74
98
111
119
125
132
136
131
123
106
96
77
75
94
99
116
122
132
115
105
80
56
51
56
54
37
16
-14
-18
-21
-19
-34
-55
-76
-96
-125
-142
-150
-147
-117
-61
-15
15
26
45
52
46
39
25
34
53
79
78
80
89
95
110
109
111
101
106
122
128
144
141
151
154
149
141
137
124
115
100
83
87
116
142
153
153
128
90
56
45
35
39
37
36
23
5
-13
-17
-14
-11
-6
-6
11
34
36
22
22
30
42
53
58
65
71
86
89
81
71
71
55
40
9
-27
-67
-84
-79
-76
-72
-66
-51
-39
-35
-33
-43
-38
-24
-20
-20
-26
-35
-52
-67
-73
-77
-78
-71
-82
-101
-112
-108
-90
-82
-70
-51
-57
-60
-67
-68
-70
-66
-69
-71
-77
-82
-86
-84
-79
-72
-79
-74
-64
-51
-29
-7
10
24
31
47
50
46
50
51
38
35
30
28
29
39
66
90
118
135
137
128
128
131
132
126
128
115
111
108
106
102
114
131
132
132
116
115
105
94
83
67
66
70
68
60
49
37
30
25
28
26
16
18
11
7
-9
-18
-30
-24
-7
4
-2
-16
-16
-19
-23
-36
-37
-32
-43
-42
-59
-69
-71
-82
-74
-68
-45
-32
-42
-36
-53
-50
-54
-60
-65
-55
-32
1
4
6
5
2
24
54
78
93
99
100
101
93
83
71
60
77
86
96
103
124
131
126
112
97
98
109
125
122
107
85
74
57
54
44
29
20
20
29
34
31
33
24
15
2
-6
-25
-28
-18
-29
-34
-46
-53
-60
-72
-80
-83
-63
-32
-5
-8
-25
-58
-96
-92
-65
-38
-29
-36
-29
-25
-5
-6
-18
-36
-36
-18
-1
13
22
22
17
-16
-56
-90
-87
-62
-51
-51
-33
-23
-16
-26
-50
-67
-65
-35
-13
-5
-1
-1
3
5
7
1
-7
-8
2
9
9
31
38
45
13
-5
-24
-11
-3
2
-3
-7
-3
-24
-37
-27
-14
1
7
-5
-24
-40
-60
-72
-68
-50
-30
-18
-20
-28
-32
-34
-17
1
2
-14
-29
-57
-71
-71
-72
-75
-70
-47
-27
-21
-33
-55
-66
-83
-88
-92
-105
-99
-102
-117
-123
-121
-123
-102
-92
-85
-93
-106
-91
-69
-25
7
24
22
18
13
-1
-5
-1
27
60
106
131
133
119
106
102
89
79
83
93
115
129
136
119
105
91
65
53
30
11
-7
-16
-27
-45
-67
-81
-85
-93
-79
-67
-51
-18
0
6
-9
-2
8
29
41
55
65
64
73
80
85
78
75
63
73
73
89
94
99
105
94
74
60
43
32
35
32
8
-3
-15
8
27
56
75
79
93
107
119
112
114
111
102
90
97
109
132
141
133
103
67
39
21
12
9
7
4
10
17
19
3
8
10
14
12
17
23
17
15
-6
-18
-24
-19
-26
-27
-23
-9
-15
-27
-39
-60
-58
-57
-65
-74
-89
-91
-90
-93
-84
-72
-54
-37
-34
-42
-56
-50
-47
-56
-65
-72
-64
-34
-1
12
12
8
7
-10
-22
-41
-44
-52
-33
-21
-23
-21
-19
-17
-12
-15
-22
-27
-34
-39
-43
-37
-5
22
29
24
8
-3
-22
-22
-42
-58
-64
-55
-31
-10
0
0
-24
-43
-63
-75
-77
-58
-46
-38
-43
-38
-39
-36
-21
-7
8
27
30
27
13
0
-1
-13
-19
-13
-3
16
35
52
60
60
52
24
4
-14
-26
-20
1
7
-3
-20
-24
-26
-14
-10
-1
-8
-15
-32
-49
-72
-80
-97
-108
-119
-107
-87
-66
-41
-39
-31
-8
20
24
33
34
53
50
53
28
-1
-31
-34
-31
-31
-41
-55
-73
-93
-104
-114
-121
-109
-91
-77
-62
-33
13
51
89
111
114
124
120
120
107
108
114
119
112
115
121
114
111
98
92
90
77
54
35
32
38
44
49
67
66
64
66
71
82
88
95
96
92
100
89
81
67
48
34
11
10
11
10
-5
-16
-28
-15
5
27
32
35
43
43
44
64
83
79
92
101
116
126
130
139
147
159
150
123
84
59
49
47
51
52
49
30
14
12
1
21
37
34
46
52
55
52
36
27
33
30
40
40
27
31
24
9
-6
-27
-30
-30
-21
-28
-46
-51
-66
-71
-63
-37
-17
-25
-43
-52
-58
-56
-60
-61
-68
-69
-64
-68
-62
-49
-48
-45
-41
-21
-12
9
31
60
88
120
147
155
150
132
124
113
105
90
80
84
98
116
107
106
98
95
89
72
53
21
20
32
58
80
96
87
88
98
93
81
68
48
34
28
39
58
74
77
76
46
25
21
11
15
17
20
33
36
42
40
29
24
22
0
-9
-13
-23
-34
-59
-60
-57
-31
-23
-13
-9
-2
1
-6
-33
-42
-47
-46
-44
-52
-54
-43
-25
-23
-24
-9
-6
-9
-34
-47
-41
-31
-4
-18
-25
-32
-32
-41
-64
-86
-105
-132
-153
-155
-156
-144
-126
-116
-112
-114
-105
-104
-93
-76
-81
-95
-110
-103
-98
-107
-128
-167
-185
-182
-167
-144
-119
-102
-95
-98
-109
-99
-81
-58
-45
-27
-23
-12
-2
-1
15
28
24
14
12
8
-9
-9
-2
22
31
33
27
24
12
7
12
18
26
41
54
67
69
51
33
37
35
42
41
46
51
58
80
85
69
47
33
23
14
27
32
32
35
34
35
39
39
41
38
23
15
-7
-11
-22
-21
-37
-33
-27
-21
14
31
33
31
34
37
35
24
31
45
43
51
68
85
89
85
80
83
101
115
124
116
117
115
115
128
124
127
115
122
107
99
89
75
72
65
75
71
56
58
54
50
52
54
42
41
54
74
79
65
52
40
48
52
48
32
26
25
25
46
62
71
71
65
66
55
65
74
76
63
66
70
82
74
62
60
52
56
54
44
41
36
32
19
23
19
7
-5
-8
-11
7
17
24
7
6
25
41
58
74
82
101
92
86
62
56
71
61
47
23
8
-4
-12
4
8
19
2
6
0
9
22
27
40
52
59
49
39
41
47
46
38
9
-24
-60
-55
-42
-28
-14
-15
-9
-11
-22
-31
-33
-9
7
7
-5
-3
-13
-30
-42
-61
-55
-60
-57
-47
-58
-52
-55
-73
-79
-90
-103
-99
-94
-86
-82
-65
-41
-14
0
16
20
25
13
14
0
3
-7
-16
-40
-41
-22
-11
-14
-17
-7
12
46
69
71
58
37
32
26
36
23
11
6
2
-13
-42
-46
-51
-47
-45
-51
-45
-40
-28
-35
-51
-60
-51
-26
-4
10
9
-5
-23
-29
-43
-52
-55
-58
-57
-57
-55
-54
-53
-46
-40
-51
-52
-48
-38
-25
-12
-7
-3
9
23
23
15
8
20
11
14
-1
-25
-44
-48
-39
-29
-9
6
-8
-24
-51
-72
-82
-80
-65
-37
-22
-2
5
-5
4
-2
-9
-14
-9
-8
9
16
21
32
35
49
57
51
57
53
56
67
79
86
96
99
94
89
87
93
75
74
75
89
88
92
97
98
91
72
65
65
68
86
73
74
73
79
80
88
87
84
76
78
92
102
123
125
123
121
130
144
134
130
123
112
101
91
92
90
105
104
95
78
74
66
68
63
45
31
14
-7
-18
-28
-15
-12
-15
-37
-60
-75
-67
-47
-42
-45
-56
-62
-72
-82
-99
-102
-117
-124
-124
-141
-148
-150
-150
-141
-128
-111
-96
-76
-47
-20
-17
-33
-60
-82
-83
-71
-61
-77
-80
-86
-91
-74
-61
-48
-56
-79
-107
-144
-166
-180
-177
-179
-177
-187
-200
-193
-178
-158
-146
-118
-100
-84
-71
-72
-72
-80
-69
-50
-27
-7
7
10
10
5
8
1
11
17
7
0
-4
-4
-10
-2
4
23
32
45
46
65
70
73
64
61
77
95
94
87
66
22
-8
-30
-37
-37
-34
-40
-40
-47
-38
-26
-25
-12
-16
-24
-21
-7
5
15
23
23
9
-23
-46
-62
-64
-76
-74
-71
-57
-38
-41
-42
-27
-30
-40
-50
-50
-51
-51
-51
-57
-66
-89
-103
-128
-137
-151
-168
-190
-197
-197
-199
-182
-165
-121
-94
-54
-26
-9
7
22
31
44
52
68
69
73
76
95
105
125
127
127
140
151
152
120
93
75
64
60
56
54
60
71
66
44
9
-21
-51
-71
-84
-95
-93
-83
-52
-37
-17
5
18
21
25
34
44
64
78
88
79
73
80
89
93
86
65
51
38
35
42
41
55
76
89
109
102
92
71
67
60
53
41
43
47
61
70
72
81
108
134
134
125
103
85
71
80
106
111
109
93
90
85
89
76
62
33
25
10
16
30
41
57
75
89
64
50
44
56
81
94
111
110
108
120
133
127
122
102
86
76
74
74
65
80
91
89
96
89
88
84
91
97
110
100
111
136
161
171
160
125
102
87
73
51
55
70
80
83
89
72
65
51
41
44
51
65
70
61
65
51
36
20
15
27
33
38
39
53
61
71
45
35
39
35
9
-9
-9
6
28
42
42
36
22
29
6
-3
-17
-19
-17
-24
-32
-49
-75
-76
-74
-56
-57
-58
-67
-52
-37
-30
-31
-21
-17
-23
-24
-29
-35
-42
-35
-32
-30
-37
-37
-36
-42
-28
-30
-45
-52
-58
-66
-81
-99
-97
-96
-93
-96
-101
-104
-110
-123
-130
-122
-111
-130
-150
-157
-160
-156
-160
-148
-132
-103
-80
-69
-69
-75
-76
-72
-68
-66
-63
-65
-50
-35
-21
-9
17
35
40
63
73
79
70
61
67
77
95
92
83
56
39
30
26
32
37
32
44
57
53
43
35
31
14
18
21
23
22
37
39
34
8
-10
-30
-27
-33
-15
-7
8
18
23
21
14
12
12
20
38
39
36
31
30
7
-8
-40
-57
-56
-31
-19
0
15
33
43
55
77
105
109
117
106
104
91
79
68
44
28
2
-27
-44
-43
-45
-37
-28
-11
9
19
36
31
25
17
7
0
1
2
11
11
13
7
-2
-20
-20
-27
-19
-16
-24
-20
-17
-12
-22
-29
-16
-26
-34
-36
-23
-18
-22
-24
-39
-50
-61
-61
-47
-39
-28
-27
-42
-48
-47
-47
-38
-37
-23
-4
21
42
27
20
2
-14
-30
-48
-55
-65
-62
-37
-20
-8
4
9
12
8
-160