trackler 2.2.1.170 → 2.2.1.171
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/trackler/version.rb +1 -1
- data/problem-specifications/exercises/simple-cipher/canonical-data.json +5 -4
- data/tracks/cfml/config.json +1 -0
- data/tracks/coffeescript/config.json +43 -87
- data/tracks/coffeescript/config/maintainers.json +8 -2
- data/tracks/common-lisp/config.json +1 -0
- data/tracks/coq/config.json +7 -15
- data/tracks/coq/config/maintainers.json +5 -5
- data/tracks/crystal/config.json +51 -99
- data/tracks/crystal/config/maintainers.json +8 -8
- data/tracks/d/config.json +58 -60
- data/tracks/d/config/maintainers.json +8 -8
- data/tracks/delphi/config.json +12 -0
- data/tracks/delphi/exercises/isbn-verifier/uTestISBNVerifier.pas +30 -3
- data/tracks/delphi/exercises/word-count/README.md +39 -0
- data/tracks/delphi/exercises/word-count/WordCount.dpr +60 -0
- data/tracks/delphi/exercises/word-count/uWordCountExample.pas +67 -0
- data/tracks/delphi/exercises/word-count/uWordCountTests.pas +247 -0
- data/tracks/elisp/config.json +1 -0
- data/tracks/erlang/config.json +1 -1
- data/tracks/fortran/config.json +16 -32
- data/tracks/fortran/config/maintainers.json +5 -5
- data/tracks/go/config.json +1 -0
- data/tracks/go/exercises/bank-account/bank_account_test.go +3 -3
- data/tracks/go/exercises/parallel-letter-frequency/parallel_letter_frequency_test.go +17 -1
- data/tracks/groovy/config.json +89 -89
- data/tracks/groovy/config/maintainers.json +6 -6
- data/tracks/haxe/config.json +17 -17
- data/tracks/haxe/config/maintainers.json +1 -1
- data/tracks/java/scripts/insert-ignores.sh +33 -11
- data/tracks/julia/config.json +1 -0
- data/tracks/lua/config.json +1 -0
- data/tracks/lua/docs/ABOUT.md +7 -3
- data/tracks/nim/config.json +14 -2
- data/tracks/nim/exercises/sum-of-multiples/README.md +15 -0
- data/tracks/nim/exercises/sum-of-multiples/example.nim +6 -0
- data/tracks/nim/exercises/sum-of-multiples/sum_of_multiples_test.nim +44 -0
- data/tracks/objective-c/config.json +1 -0
- data/tracks/ocaml/config.json +1 -0
- data/tracks/perl5/config.json +138 -258
- data/tracks/perl5/config/maintainers.json +8 -8
- data/tracks/pharo/.travis.yml +1 -1
- data/tracks/pharo/config.json +3 -4
- data/tracks/pharo/config/maintainers.json +1 -1
- data/tracks/pharo/exercises/.keep +0 -0
- data/tracks/php/config.json +191 -211
- data/tracks/php/config/maintainers.json +11 -11
- data/tracks/plsql/config.json +49 -49
- data/tracks/plsql/config/maintainers.json +5 -5
- data/tracks/pony/config.json +27 -26
- data/tracks/pony/config/maintainers.json +5 -5
- data/tracks/prolog/config.json +1 -0
- data/tracks/purescript/config.json +49 -51
- data/tracks/purescript/config/maintainers.json +11 -11
- data/tracks/racket/config.json +1 -0
- data/tracks/scala/config.json +1 -0
- data/tracks/scheme/config.json +1 -0
- data/tracks/swift/config.json +1 -0
- data/tracks/typescript/config.json +1 -0
- data/tracks/vbnet/config.json +16 -32
- data/tracks/vbnet/config/maintainers.json +5 -5
- data/tracks/vimscript/config.json +1 -0
- metadata +10 -2
@@ -1,15 +1,15 @@
|
|
1
1
|
{
|
2
|
+
"docs_url": "https://github.com/exercism/docs/blob/master/maintaining-a-track/maintainer-configuration.md",
|
2
3
|
"maintainers": [
|
3
4
|
{
|
4
5
|
"github_username": "sentientmonkey",
|
5
|
-
"show_on_website": false,
|
6
6
|
"alumnus": false,
|
7
|
+
"show_on_website": false,
|
7
8
|
"name": null,
|
8
|
-
"bio": null,
|
9
9
|
"link_text": null,
|
10
10
|
"link_url": null,
|
11
|
-
"avatar_url": null
|
11
|
+
"avatar_url": null,
|
12
|
+
"bio": null
|
12
13
|
}
|
13
|
-
]
|
14
|
-
"docs_url": "https://github.com/exercism/docs/blob/master/maintaining-a-track/maintainer-configuration.md"
|
14
|
+
]
|
15
15
|
}
|
data/tracks/go/config.json
CHANGED
@@ -1,9 +1,9 @@
|
|
1
1
|
// API:
|
2
2
|
//
|
3
3
|
// Open(initialDeposit int64) *Account
|
4
|
-
// (Account) Close() (payout int64, ok bool)
|
5
|
-
// (Account) Balance() (balance int64, ok bool)
|
6
|
-
// (Account) Deposit(amount int64) (newBalance int64, ok bool)
|
4
|
+
// (*Account) Close() (payout int64, ok bool)
|
5
|
+
// (*Account) Balance() (balance int64, ok bool)
|
6
|
+
// (*Account) Deposit(amount int64) (newBalance int64, ok bool)
|
7
7
|
//
|
8
8
|
// If Open is given a negative initial deposit, it must return nil.
|
9
9
|
// Deposit must handle a negative amount as a withdrawal. Withdrawals must
|
@@ -40,14 +40,30 @@ O say does that star-spangled banner yet wave,
|
|
40
40
|
O'er the land of the free and the home of the brave?`
|
41
41
|
)
|
42
42
|
|
43
|
+
func OriginalFrequency(s string) FreqMap {
|
44
|
+
m := FreqMap{}
|
45
|
+
for _, r := range s {
|
46
|
+
m[r]++
|
47
|
+
}
|
48
|
+
return m
|
49
|
+
}
|
50
|
+
|
43
51
|
func TestConcurrentFrequency(t *testing.T) {
|
44
|
-
seq :=
|
52
|
+
seq := OriginalFrequency(euro + dutch + us)
|
45
53
|
con := ConcurrentFrequency([]string{euro, dutch, us})
|
46
54
|
if !reflect.DeepEqual(con, seq) {
|
47
55
|
t.Fatal("ConcurrentFrequency wrong result")
|
48
56
|
}
|
49
57
|
}
|
50
58
|
|
59
|
+
func TestSequentialFrequency(t *testing.T) {
|
60
|
+
oSeq := OriginalFrequency(euro + dutch + us)
|
61
|
+
seq := Frequency(euro + dutch + us)
|
62
|
+
if !reflect.DeepEqual(oSeq, seq) {
|
63
|
+
t.Fatal("Frequency wrong result")
|
64
|
+
}
|
65
|
+
}
|
66
|
+
|
51
67
|
func BenchmarkSequentialFrequency(b *testing.B) {
|
52
68
|
for i := 0; i < b.N; i++ {
|
53
69
|
Frequency(euro + dutch + us)
|
data/tracks/groovy/config.json
CHANGED
@@ -1,236 +1,236 @@
|
|
1
1
|
{
|
2
|
+
"language": "Groovy",
|
2
3
|
"active": false,
|
3
4
|
"blurb": "Groovy is an unopinionated, multi-paradigm language that enhances Java with the intent to make your code less verbose, yet still allows you utilize the power of the JVM.",
|
4
5
|
"checklist_issue": 9,
|
6
|
+
"test_pattern": "(Spec)[.]groovy",
|
5
7
|
"exercises": [
|
6
8
|
{
|
7
|
-
"core": false,
|
8
|
-
"difficulty": 1,
|
9
9
|
"slug": "hello-world",
|
10
|
-
"
|
10
|
+
"uuid": "30dff5e7-f2a4-4d7b-be1e-765091958a92",
|
11
|
+
"core": false,
|
11
12
|
"unlocked_by": null,
|
12
|
-
"
|
13
|
+
"difficulty": 1,
|
14
|
+
"topics": null
|
13
15
|
},
|
14
16
|
{
|
17
|
+
"slug": "hamming",
|
18
|
+
"uuid": "02bb7e44-2de1-4a14-a755-696b7cba5f4e",
|
15
19
|
"core": false,
|
20
|
+
"unlocked_by": null,
|
16
21
|
"difficulty": 2,
|
17
|
-
"slug": "hamming",
|
18
22
|
"topics": [
|
19
23
|
"strings"
|
20
|
-
]
|
21
|
-
"unlocked_by": null,
|
22
|
-
"uuid": "02bb7e44-2de1-4a14-a755-696b7cba5f4e"
|
24
|
+
]
|
23
25
|
},
|
24
26
|
{
|
27
|
+
"slug": "gigasecond",
|
28
|
+
"uuid": "9dc8a916-f7a5-4ef0-9341-c0db11553323",
|
25
29
|
"core": false,
|
30
|
+
"unlocked_by": null,
|
26
31
|
"difficulty": 4,
|
27
|
-
"slug": "gigasecond",
|
28
32
|
"topics": [
|
29
33
|
"dates"
|
30
|
-
]
|
31
|
-
"unlocked_by": null,
|
32
|
-
"uuid": "9dc8a916-f7a5-4ef0-9341-c0db11553323"
|
34
|
+
]
|
33
35
|
},
|
34
36
|
{
|
37
|
+
"slug": "raindrops",
|
38
|
+
"uuid": "9beb0df7-d55c-47af-8fef-791439c9ab38",
|
35
39
|
"core": false,
|
40
|
+
"unlocked_by": null,
|
36
41
|
"difficulty": 3,
|
37
|
-
"slug": "raindrops",
|
38
42
|
"topics": [
|
39
43
|
"mathematics",
|
40
44
|
"strings"
|
41
|
-
]
|
42
|
-
"unlocked_by": null,
|
43
|
-
"uuid": "9beb0df7-d55c-47af-8fef-791439c9ab38"
|
45
|
+
]
|
44
46
|
},
|
45
47
|
{
|
48
|
+
"slug": "rna-transcription",
|
49
|
+
"uuid": "d7bc4ce7-c2fe-4564-b925-b0d67f7b748f",
|
46
50
|
"core": false,
|
51
|
+
"unlocked_by": null,
|
47
52
|
"difficulty": 2,
|
48
|
-
"slug": "rna-transcription",
|
49
53
|
"topics": [
|
50
54
|
"string_manipulation"
|
51
|
-
]
|
52
|
-
"unlocked_by": null,
|
53
|
-
"uuid": "d7bc4ce7-c2fe-4564-b925-b0d67f7b748f"
|
55
|
+
]
|
54
56
|
},
|
55
57
|
{
|
58
|
+
"slug": "difference-of-squares",
|
59
|
+
"uuid": "16d2cb93-b903-4c37-9cd0-40096f0fb51c",
|
56
60
|
"core": false,
|
61
|
+
"unlocked_by": null,
|
57
62
|
"difficulty": 2,
|
58
|
-
"slug": "difference-of-squares",
|
59
63
|
"topics": [
|
60
64
|
"mathematics"
|
61
|
-
]
|
62
|
-
"unlocked_by": null,
|
63
|
-
"uuid": "16d2cb93-b903-4c37-9cd0-40096f0fb51c"
|
65
|
+
]
|
64
66
|
},
|
65
67
|
{
|
68
|
+
"slug": "leap",
|
69
|
+
"uuid": "7427df2a-74bb-4593-8ca7-7d0287a6792e",
|
66
70
|
"core": false,
|
71
|
+
"unlocked_by": null,
|
67
72
|
"difficulty": 1,
|
68
|
-
"slug": "leap",
|
69
73
|
"topics": [
|
70
74
|
"logical_operators"
|
71
|
-
]
|
72
|
-
"unlocked_by": null,
|
73
|
-
"uuid": "7427df2a-74bb-4593-8ca7-7d0287a6792e"
|
75
|
+
]
|
74
76
|
},
|
75
77
|
{
|
78
|
+
"slug": "two-fer",
|
79
|
+
"uuid": "ca96b661-73b5-4a8c-92d6-ef98998c8b1a",
|
76
80
|
"core": true,
|
81
|
+
"unlocked_by": null,
|
77
82
|
"difficulty": 1,
|
78
|
-
"slug": "two-fer",
|
79
83
|
"topics": [
|
80
84
|
"control_flow_if_else_statements",
|
81
85
|
"strings"
|
82
|
-
]
|
83
|
-
"unlocked_by": null,
|
84
|
-
"uuid": "ca96b661-73b5-4a8c-92d6-ef98998c8b1a"
|
86
|
+
]
|
85
87
|
},
|
86
88
|
{
|
89
|
+
"slug": "nth-prime",
|
90
|
+
"uuid": "307f0a89-f185-41de-9ab7-f8d7ebfa3a2b",
|
87
91
|
"core": false,
|
92
|
+
"unlocked_by": null,
|
88
93
|
"difficulty": 4,
|
89
|
-
"slug": "nth-prime",
|
90
94
|
"topics": [
|
91
95
|
"mathematics"
|
92
|
-
]
|
93
|
-
"unlocked_by": null,
|
94
|
-
"uuid": "307f0a89-f185-41de-9ab7-f8d7ebfa3a2b"
|
96
|
+
]
|
95
97
|
},
|
96
98
|
{
|
99
|
+
"slug": "robot-name",
|
100
|
+
"uuid": "ccfb87a5-51e3-4e7e-8e60-089a9d9b25d7",
|
97
101
|
"core": false,
|
102
|
+
"unlocked_by": null,
|
98
103
|
"difficulty": 3,
|
99
|
-
"slug": "robot-name",
|
100
104
|
"topics": [
|
101
105
|
"randomness"
|
102
|
-
]
|
103
|
-
"unlocked_by": null,
|
104
|
-
"uuid": "ccfb87a5-51e3-4e7e-8e60-089a9d9b25d7"
|
106
|
+
]
|
105
107
|
},
|
106
108
|
{
|
109
|
+
"slug": "roman-numerals",
|
110
|
+
"uuid": "915c4792-6949-4aef-826a-8fe5dbe2f59c",
|
107
111
|
"core": false,
|
112
|
+
"unlocked_by": null,
|
108
113
|
"difficulty": 4,
|
109
|
-
"slug": "roman-numerals",
|
110
114
|
"topics": [
|
111
115
|
"metaprogramming",
|
112
116
|
"string_manipulation"
|
113
|
-
]
|
114
|
-
"unlocked_by": null,
|
115
|
-
"uuid": "915c4792-6949-4aef-826a-8fe5dbe2f59c"
|
117
|
+
]
|
116
118
|
},
|
117
119
|
{
|
120
|
+
"slug": "grains",
|
121
|
+
"uuid": "4dded3ef-b07b-4d3d-b8c4-29d35d5845a3",
|
118
122
|
"core": false,
|
123
|
+
"unlocked_by": null,
|
119
124
|
"difficulty": 2,
|
120
|
-
"slug": "grains",
|
121
125
|
"topics": [
|
122
126
|
"mathematics"
|
123
|
-
]
|
124
|
-
"unlocked_by": null,
|
125
|
-
"uuid": "4dded3ef-b07b-4d3d-b8c4-29d35d5845a3"
|
127
|
+
]
|
126
128
|
},
|
127
129
|
{
|
130
|
+
"slug": "word-count",
|
131
|
+
"uuid": "70405bb0-e229-49c8-ad60-6b1722b3c21d",
|
128
132
|
"core": false,
|
133
|
+
"unlocked_by": null,
|
129
134
|
"difficulty": 3,
|
130
|
-
"slug": "word-count",
|
131
135
|
"topics": [
|
132
136
|
"regular_expressions",
|
133
137
|
"strings"
|
134
|
-
]
|
135
|
-
"unlocked_by": null,
|
136
|
-
"uuid": "70405bb0-e229-49c8-ad60-6b1722b3c21d"
|
138
|
+
]
|
137
139
|
},
|
138
140
|
{
|
141
|
+
"slug": "phone-number",
|
142
|
+
"uuid": "5f929d26-1a63-47eb-8698-c5374da70b62",
|
139
143
|
"core": false,
|
144
|
+
"unlocked_by": null,
|
140
145
|
"difficulty": 3,
|
141
|
-
"slug": "phone-number",
|
142
146
|
"topics": [
|
143
147
|
"regular_expressions",
|
144
148
|
"string_manipulation",
|
145
149
|
"strings"
|
146
|
-
]
|
147
|
-
"unlocked_by": null,
|
148
|
-
"uuid": "5f929d26-1a63-47eb-8698-c5374da70b62"
|
150
|
+
]
|
149
151
|
},
|
150
152
|
{
|
153
|
+
"slug": "triangle",
|
154
|
+
"uuid": "3bb8573b-33bc-4823-a710-036030decb5c",
|
151
155
|
"core": false,
|
156
|
+
"unlocked_by": null,
|
152
157
|
"difficulty": 3,
|
153
|
-
"slug": "triangle",
|
154
158
|
"topics": [
|
155
159
|
"mathematics"
|
156
|
-
]
|
157
|
-
"unlocked_by": null,
|
158
|
-
"uuid": "3bb8573b-33bc-4823-a710-036030decb5c"
|
160
|
+
]
|
159
161
|
},
|
160
162
|
{
|
163
|
+
"slug": "scrabble-score",
|
164
|
+
"uuid": "df2eaff0-bcf2-47ab-bb56-dd4f84cc4a63",
|
161
165
|
"core": false,
|
166
|
+
"unlocked_by": null,
|
162
167
|
"difficulty": 3,
|
163
|
-
"slug": "scrabble-score",
|
164
168
|
"topics": [
|
165
169
|
"mathematics",
|
166
170
|
"strings"
|
167
|
-
]
|
168
|
-
"unlocked_by": null,
|
169
|
-
"uuid": "df2eaff0-bcf2-47ab-bb56-dd4f84cc4a63"
|
171
|
+
]
|
170
172
|
},
|
171
173
|
{
|
174
|
+
"slug": "binary-search",
|
175
|
+
"uuid": "aa34b8a4-6958-42d4-b0ca-d846811afef1",
|
172
176
|
"core": false,
|
177
|
+
"unlocked_by": null,
|
173
178
|
"difficulty": 4,
|
174
|
-
"slug": "binary-search",
|
175
179
|
"topics": [
|
176
180
|
"algorithms",
|
177
181
|
"collections",
|
178
182
|
"lists",
|
179
183
|
"searching"
|
180
|
-
]
|
181
|
-
"unlocked_by": null,
|
182
|
-
"uuid": "aa34b8a4-6958-42d4-b0ca-d846811afef1"
|
184
|
+
]
|
183
185
|
},
|
184
186
|
{
|
187
|
+
"slug": "double-linked-list",
|
188
|
+
"uuid": "6a5e6d90-e0f3-43e7-8088-a4137bf2b125",
|
185
189
|
"core": true,
|
190
|
+
"unlocked_by": null,
|
186
191
|
"difficulty": 6,
|
187
|
-
"slug": "double-linked-list",
|
188
192
|
"topics": [
|
189
193
|
"algorithms",
|
190
194
|
"generics",
|
191
195
|
"lists"
|
192
|
-
]
|
193
|
-
"unlocked_by": null,
|
194
|
-
"uuid": "6a5e6d90-e0f3-43e7-8088-a4137bf2b125"
|
196
|
+
]
|
195
197
|
},
|
196
198
|
{
|
199
|
+
"slug": "rotational-cipher",
|
200
|
+
"uuid": "449fc372-ba30-4c45-99b4-8053e9cdf502",
|
197
201
|
"core": true,
|
202
|
+
"unlocked_by": null,
|
198
203
|
"difficulty": 4,
|
199
|
-
"slug": "rotational-cipher",
|
200
204
|
"topics": [
|
201
205
|
"cryptography",
|
202
206
|
"integers",
|
203
207
|
"strings"
|
204
|
-
]
|
205
|
-
"unlocked_by": null,
|
206
|
-
"uuid": "449fc372-ba30-4c45-99b4-8053e9cdf502"
|
208
|
+
]
|
207
209
|
},
|
208
210
|
{
|
209
|
-
"difficulty": 5,
|
210
211
|
"slug": "flatten-array",
|
212
|
+
"uuid": "6bc6b3fb-481a-4c4b-b095-d284f64ff48d",
|
213
|
+
"core": false,
|
214
|
+
"unlocked_by": null,
|
215
|
+
"difficulty": 5,
|
211
216
|
"topics": [
|
212
217
|
"arrays",
|
213
|
-
"loops",
|
214
218
|
"lists",
|
219
|
+
"loops",
|
215
220
|
"recursion"
|
216
|
-
]
|
217
|
-
"unlocked_by": null,
|
218
|
-
"uuid": "6bc6b3fb-481a-4c4b-b095-d284f64ff48d"
|
221
|
+
]
|
219
222
|
},
|
220
223
|
{
|
224
|
+
"slug": "bank-account",
|
225
|
+
"uuid": "c8d017c8-fdab-4296-a8a1-f4140a1aafc7",
|
221
226
|
"core": true,
|
227
|
+
"unlocked_by": null,
|
222
228
|
"difficulty": 6,
|
223
|
-
"slug": "bank-account",
|
224
229
|
"topics": [
|
225
230
|
"concurrency",
|
226
231
|
"exception_handling",
|
227
232
|
"integers"
|
228
|
-
]
|
229
|
-
"unlocked_by": null,
|
230
|
-
"uuid": "c8d017c8-fdab-4296-a8a1-f4140a1aafc7"
|
233
|
+
]
|
231
234
|
}
|
232
|
-
]
|
233
|
-
"foregone": [],
|
234
|
-
"language": "Groovy",
|
235
|
-
"test_pattern": "(Spec)[.]groovy"
|
235
|
+
]
|
236
236
|
}
|
@@ -2,14 +2,14 @@
|
|
2
2
|
"docs_url": "https://github.com/exercism/docs/blob/master/maintaining-a-track/maintainer-configuration.md",
|
3
3
|
"maintainers": [
|
4
4
|
{
|
5
|
-
"alumnus": false,
|
6
|
-
"avatar_url": null,
|
7
|
-
"bio": null,
|
8
5
|
"github_username": "Dispader",
|
6
|
+
"alumnus": false,
|
7
|
+
"show_on_website": false,
|
8
|
+
"name": null,
|
9
9
|
"link_text": null,
|
10
10
|
"link_url": null,
|
11
|
-
"
|
12
|
-
"
|
11
|
+
"avatar_url": null,
|
12
|
+
"bio": null
|
13
13
|
}
|
14
14
|
]
|
15
|
-
}
|
15
|
+
}
|
data/tracks/haxe/config.json
CHANGED
@@ -1,33 +1,33 @@
|
|
1
1
|
{
|
2
|
+
"language": "Haxe",
|
2
3
|
"active": false,
|
4
|
+
"blurb": "",
|
3
5
|
"checklist_issue": 2,
|
6
|
+
"test_pattern": "test.*Test[.]hx",
|
4
7
|
"exercises": [
|
5
8
|
{
|
6
|
-
"core": false,
|
7
|
-
"difficulty": 1,
|
8
9
|
"slug": "hello-world",
|
9
|
-
"
|
10
|
+
"uuid": "3596bbf7-66f0-49c0-8c3e-3472455f90c7",
|
11
|
+
"core": false,
|
10
12
|
"unlocked_by": null,
|
11
|
-
"
|
13
|
+
"difficulty": 1,
|
14
|
+
"topics": null
|
12
15
|
},
|
13
16
|
{
|
14
|
-
"core": false,
|
15
|
-
"difficulty": 1,
|
16
17
|
"slug": "bob",
|
17
|
-
"
|
18
|
+
"uuid": "46b447aa-b2b5-4f5c-ac73-8de47f897840",
|
19
|
+
"core": false,
|
18
20
|
"unlocked_by": null,
|
19
|
-
"
|
21
|
+
"difficulty": 1,
|
22
|
+
"topics": null
|
20
23
|
},
|
21
24
|
{
|
22
|
-
"core": false,
|
23
|
-
"difficulty": 1,
|
24
25
|
"slug": "leap",
|
25
|
-
"
|
26
|
+
"uuid": "d30952cf-0b7d-a980-9351-caedebfed16362c6a7a",
|
27
|
+
"core": false,
|
26
28
|
"unlocked_by": null,
|
27
|
-
"
|
29
|
+
"difficulty": 1,
|
30
|
+
"topics": null
|
28
31
|
}
|
29
|
-
]
|
30
|
-
|
31
|
-
"language": "Haxe",
|
32
|
-
"test_pattern": "test.*Test[.]hx"
|
33
|
-
}
|
32
|
+
]
|
33
|
+
}
|