trackler 2.2.1.6 → 2.2.1.7

Sign up to get free protection for your applications and to get access to all the features.
Files changed (236) hide show
  1. checksums.yaml +4 -4
  2. data/lib/trackler/version.rb +1 -1
  3. data/tracks/c/README.md +27 -0
  4. data/tracks/coffeescript/config.json +1 -0
  5. data/tracks/coldfusion/config.json +1 -1
  6. data/tracks/crystal/README.md +27 -7
  7. data/tracks/crystal/config/maintainers.json +25 -0
  8. data/tracks/crystal/generator/spec/remote_data_file_spec.cr +1 -1
  9. data/tracks/crystal/generator/src/exercise_generator.cr +1 -1
  10. data/tracks/crystal/generator/src/remote_data_file.cr +2 -2
  11. data/tracks/csharp/config.json +1 -2
  12. data/tracks/csharp/config/maintainers.json +55 -0
  13. data/tracks/csharp/docs/EXERCISE_README_INSERT.md +1 -1
  14. data/tracks/csharp/exercises/accumulate/README.md +1 -1
  15. data/tracks/csharp/exercises/acronym/README.md +1 -1
  16. data/tracks/csharp/exercises/all-your-base/README.md +1 -1
  17. data/tracks/csharp/exercises/allergies/README.md +1 -1
  18. data/tracks/csharp/exercises/alphametics/README.md +1 -1
  19. data/tracks/csharp/exercises/anagram/README.md +1 -1
  20. data/tracks/csharp/exercises/atbash-cipher/README.md +1 -1
  21. data/tracks/csharp/exercises/bank-account/README.md +1 -1
  22. data/tracks/csharp/exercises/beer-song/README.md +1 -1
  23. data/tracks/csharp/exercises/binary-search-tree/README.md +1 -1
  24. data/tracks/csharp/exercises/binary-search/README.md +1 -1
  25. data/tracks/csharp/exercises/bob/README.md +1 -1
  26. data/tracks/csharp/exercises/book-store/README.md +1 -1
  27. data/tracks/csharp/exercises/bowling/README.md +1 -1
  28. data/tracks/csharp/exercises/bracket-push/README.md +1 -1
  29. data/tracks/csharp/exercises/change/README.md +1 -1
  30. data/tracks/csharp/exercises/circular-buffer/README.md +1 -1
  31. data/tracks/csharp/exercises/clock/README.md +1 -1
  32. data/tracks/csharp/exercises/connect/README.md +1 -1
  33. data/tracks/csharp/exercises/crypto-square/README.md +1 -1
  34. data/tracks/csharp/exercises/custom-set/README.md +1 -1
  35. data/tracks/csharp/exercises/diamond/README.md +1 -1
  36. data/tracks/csharp/exercises/difference-of-squares/README.md +1 -1
  37. data/tracks/csharp/exercises/diffie-hellman/README.md +1 -1
  38. data/tracks/csharp/exercises/dominoes/README.md +1 -1
  39. data/tracks/csharp/exercises/dot-dsl/README.md +1 -1
  40. data/tracks/csharp/exercises/error-handling/README.md +1 -1
  41. data/tracks/csharp/exercises/etl/README.md +1 -1
  42. data/tracks/csharp/exercises/flatten-array/README.md +1 -1
  43. data/tracks/csharp/exercises/food-chain/README.md +1 -1
  44. data/tracks/csharp/exercises/forth/README.md +1 -1
  45. data/tracks/csharp/exercises/gigasecond/README.md +1 -1
  46. data/tracks/csharp/exercises/go-counting/README.md +1 -1
  47. data/tracks/csharp/exercises/grade-school/README.md +1 -1
  48. data/tracks/csharp/exercises/grains/README.md +1 -1
  49. data/tracks/csharp/exercises/grep/README.md +1 -1
  50. data/tracks/csharp/exercises/hamming/README.md +1 -1
  51. data/tracks/csharp/exercises/hangman/README.md +1 -1
  52. data/tracks/csharp/exercises/hello-world/README.md +1 -1
  53. data/tracks/csharp/exercises/house/README.md +1 -1
  54. data/tracks/csharp/exercises/isogram/README.md +1 -1
  55. data/tracks/csharp/exercises/kindergarten-garden/README.md +1 -1
  56. data/tracks/csharp/exercises/largest-series-product/README.md +1 -1
  57. data/tracks/csharp/exercises/leap/README.md +1 -1
  58. data/tracks/csharp/exercises/ledger/README.md +1 -1
  59. data/tracks/csharp/exercises/linked-list/README.md +1 -1
  60. data/tracks/csharp/exercises/list-ops/README.md +1 -1
  61. data/tracks/csharp/exercises/luhn/README.md +1 -1
  62. data/tracks/csharp/exercises/markdown/README.md +1 -1
  63. data/tracks/csharp/exercises/matrix/README.md +1 -1
  64. data/tracks/csharp/exercises/meetup/README.md +1 -1
  65. data/tracks/csharp/exercises/minesweeper/README.md +1 -1
  66. data/tracks/csharp/exercises/nth-prime/README.md +1 -1
  67. data/tracks/csharp/exercises/nucleotide-count/README.md +1 -1
  68. data/tracks/csharp/exercises/ocr-numbers/README.md +1 -1
  69. data/tracks/csharp/exercises/palindrome-products/README.md +1 -1
  70. data/tracks/csharp/exercises/pangram/README.md +1 -1
  71. data/tracks/csharp/exercises/parallel-letter-frequency/README.md +1 -1
  72. data/tracks/csharp/exercises/pascals-triangle/README.md +1 -1
  73. data/tracks/csharp/exercises/perfect-numbers/README.md +1 -1
  74. data/tracks/csharp/exercises/phone-number/README.md +1 -1
  75. data/tracks/csharp/exercises/pig-latin/README.md +1 -1
  76. data/tracks/csharp/exercises/poker/README.md +1 -1
  77. data/tracks/csharp/exercises/pov/README.md +1 -1
  78. data/tracks/csharp/exercises/prime-factors/README.md +1 -1
  79. data/tracks/csharp/exercises/protein-translation/README.md +1 -1
  80. data/tracks/csharp/exercises/proverb/README.md +1 -1
  81. data/tracks/csharp/exercises/pythagorean-triplet/README.md +1 -1
  82. data/tracks/csharp/exercises/queen-attack/README.md +1 -1
  83. data/tracks/csharp/exercises/rail-fence-cipher/README.md +1 -1
  84. data/tracks/csharp/exercises/raindrops/README.md +1 -1
  85. data/tracks/csharp/exercises/react/README.md +1 -1
  86. data/tracks/csharp/exercises/rectangles/README.md +1 -1
  87. data/tracks/csharp/exercises/rna-transcription/README.md +1 -1
  88. data/tracks/csharp/exercises/robot-name/README.md +1 -1
  89. data/tracks/csharp/exercises/robot-simulator/README.md +1 -1
  90. data/tracks/csharp/exercises/roman-numerals/README.md +1 -1
  91. data/tracks/csharp/exercises/rotational-cipher/README.md +1 -1
  92. data/tracks/csharp/exercises/run-length-encoding/README.md +1 -1
  93. data/tracks/csharp/exercises/saddle-points/README.md +1 -1
  94. data/tracks/csharp/exercises/say/README.md +1 -1
  95. data/tracks/csharp/exercises/scale-generator/README.md +1 -1
  96. data/tracks/csharp/exercises/scrabble-score/README.md +1 -1
  97. data/tracks/csharp/exercises/secret-handshake/README.md +1 -1
  98. data/tracks/csharp/exercises/series/README.md +1 -1
  99. data/tracks/csharp/exercises/sgf-parsing/README.md +1 -1
  100. data/tracks/csharp/exercises/sieve/README.md +1 -1
  101. data/tracks/csharp/exercises/simple-cipher/README.md +1 -1
  102. data/tracks/csharp/exercises/simple-linked-list/README.md +1 -1
  103. data/tracks/csharp/exercises/space-age/README.md +1 -1
  104. data/tracks/csharp/exercises/strain/README.md +1 -1
  105. data/tracks/csharp/exercises/sublist/README.md +1 -1
  106. data/tracks/csharp/exercises/sum-of-multiples/README.md +1 -1
  107. data/tracks/csharp/exercises/tournament/README.md +1 -1
  108. data/tracks/csharp/exercises/transpose/README.md +1 -1
  109. data/tracks/csharp/exercises/tree-building/README.md +1 -1
  110. data/tracks/csharp/exercises/triangle/README.md +1 -1
  111. data/tracks/csharp/exercises/twelve-days/README.md +1 -1
  112. data/tracks/csharp/exercises/two-bucket/README.md +1 -1
  113. data/tracks/csharp/exercises/variable-length-quantity/README.md +1 -1
  114. data/tracks/csharp/exercises/word-count/README.md +1 -1
  115. data/tracks/csharp/exercises/word-search/README.md +1 -1
  116. data/tracks/csharp/exercises/wordy/README.md +1 -1
  117. data/tracks/csharp/exercises/zebra-puzzle/README.md +1 -1
  118. data/tracks/csharp/exercises/zipper/README.md +1 -1
  119. data/tracks/d/config.json +1 -0
  120. data/tracks/dart/config/maintainers.json +15 -0
  121. data/tracks/ecmascript/config.json +76 -193
  122. data/tracks/ecmascript/exercises/twelve-days/README.md +66 -0
  123. data/tracks/ecmascript/exercises/twelve-days/example.js +53 -0
  124. data/tracks/ecmascript/exercises/twelve-days/package.json +68 -0
  125. data/tracks/ecmascript/exercises/twelve-days/twelve-days.spec.js +106 -0
  126. data/tracks/factor/config.json +1 -1
  127. data/tracks/fsharp/config/maintainers.json +35 -0
  128. data/tracks/go/config.json +82 -38
  129. data/tracks/go/config/maintainers.json +13 -22
  130. data/tracks/go/exercises/bowling/cases_test.go +11 -11
  131. data/tracks/go/exercises/forth/cases_test.go +7 -7
  132. data/tracks/go/exercises/forth/example.go +1 -1
  133. data/tracks/go/exercises/forth/forth_test.go +1 -1
  134. data/tracks/go/exercises/hamming/cases_test.go +7 -7
  135. data/tracks/go/exercises/hamming/hamming.go +1 -1
  136. data/tracks/go/exercises/phone-number/cases_test.go +2 -7
  137. data/tracks/go/exercises/phone-number/example.go +1 -1
  138. data/tracks/go/exercises/phone-number/phone_number_test.go +1 -1
  139. data/tracks/go/exercises/rna-transcription/cases_test.go +7 -7
  140. data/tracks/go/exercises/secret-handshake/cases_test.go +1 -1
  141. data/tracks/groovy/config.json +1 -0
  142. data/tracks/haxe/config.json +1 -1
  143. data/tracks/java/.travis.yml +1 -1
  144. data/tracks/java/config/maintainers.json +20 -0
  145. data/tracks/java/exercises/custom-set/src/test/java/CustomSetTest.java +1 -1
  146. data/tracks/java/exercises/word-count/src/test/java/WordCountTest.java +1 -1
  147. data/tracks/javascript/config.json +229 -247
  148. data/tracks/kotlin/config/maintainers.json +35 -0
  149. data/tracks/lfe/config/maintainers.json +15 -0
  150. data/tracks/lisp/config/maintainers.json +55 -0
  151. data/tracks/ocaml/config.json +0 -5
  152. data/tracks/ocaml/config/maintainers.json +25 -0
  153. data/tracks/perl5/config/maintainers.json +25 -0
  154. data/tracks/perl6/config/maintainers.json +25 -0
  155. data/tracks/pony/config/maintainers.json +15 -0
  156. data/tracks/pony/exercises/atbash-cipher/example.pony +2 -2
  157. data/tracks/pony/exercises/beer-song/example.pony +1 -1
  158. data/tracks/pony/exercises/bob/example.pony +1 -1
  159. data/tracks/pony/exercises/difference-of-squares/example.pony +1 -1
  160. data/tracks/pony/exercises/hamming/test.pony +12 -12
  161. data/tracks/pony/exercises/pascals-triangle/example.pony +1 -1
  162. data/tracks/pony/exercises/pascals-triangle/test.pony +6 -6
  163. data/tracks/pony/exercises/rna-transcription/test.pony +3 -3
  164. data/tracks/pony/exercises/roman-numerals/test.pony +3 -3
  165. data/tracks/purescript/config/maintainers.json +35 -0
  166. data/tracks/r/config.json +140 -81
  167. data/tracks/r/exercises/collatz-conjecture/README.md +43 -0
  168. data/tracks/r/exercises/collatz-conjecture/collatz-conjecture.R +3 -0
  169. data/tracks/r/exercises/collatz-conjecture/example.R +13 -0
  170. data/tracks/r/exercises/collatz-conjecture/test_collatz-conjecture.R +28 -0
  171. data/tracks/r/exercises/nucleotide-count/README.md +43 -0
  172. data/tracks/r/exercises/nucleotide-count/example.R +17 -0
  173. data/tracks/r/exercises/nucleotide-count/nucleotide-count.R +3 -0
  174. data/tracks/r/exercises/nucleotide-count/test_nucleotide-count.R +51 -0
  175. data/tracks/r/exercises/pangram/README.md +25 -0
  176. data/tracks/r/exercises/pangram/example.R +14 -0
  177. data/tracks/r/exercises/pangram/pangram.R +3 -0
  178. data/tracks/r/exercises/pangram/test_pangram.R +42 -0
  179. data/tracks/r/exercises/triangle/.meta/hints.md +4 -0
  180. data/tracks/r/exercises/triangle/README.md +41 -0
  181. data/tracks/r/exercises/triangle/example.R +23 -0
  182. data/tracks/r/exercises/triangle/test_triangle.R +72 -0
  183. data/tracks/r/exercises/triangle/triangle.R +3 -0
  184. data/tracks/rust/config.json +32 -1
  185. data/tracks/rust/config/maintainers.json +1 -6
  186. data/tracks/rust/exercises/acronym/tests/acronym.rs +1 -1
  187. data/tracks/rust/exercises/beer-song/example.rs +1 -1
  188. data/tracks/rust/exercises/circular-buffer/example.rs +8 -10
  189. data/tracks/rust/exercises/circular-buffer/tests/circular-buffer.rs +2 -2
  190. data/tracks/rust/exercises/clock/.meta/hints.md +10 -0
  191. data/tracks/rust/exercises/clock/Cargo.lock +4 -0
  192. data/tracks/rust/exercises/clock/Cargo.toml +6 -0
  193. data/tracks/rust/exercises/clock/README.md +57 -0
  194. data/tracks/rust/exercises/clock/example.rs +32 -0
  195. data/tracks/{ocaml/exercises/point-mutations/example.ml → rust/exercises/clock/src/lib.rs} +0 -0
  196. data/tracks/rust/exercises/clock/tests/clock.rs +331 -0
  197. data/tracks/rust/exercises/custom-set/tests/custom-set.rs +3 -3
  198. data/tracks/rust/exercises/dominoes/example.rs +1 -1
  199. data/tracks/rust/exercises/grade-school/example.rs +1 -1
  200. data/tracks/rust/exercises/hamming/example.rs +1 -1
  201. data/tracks/rust/exercises/nth-prime/Cargo.lock +4 -0
  202. data/tracks/rust/exercises/nth-prime/Cargo.toml +6 -0
  203. data/tracks/rust/exercises/nth-prime/README.md +47 -0
  204. data/tracks/rust/exercises/nth-prime/example.rs +28 -0
  205. data/tracks/rust/exercises/nth-prime/src/lib.rs +0 -0
  206. data/tracks/rust/exercises/nth-prime/tests/nth-prime.rs +30 -0
  207. data/tracks/rust/exercises/parallel-letter-frequency/example.rs +1 -1
  208. data/tracks/rust/exercises/phone-number/example.rs +1 -1
  209. data/tracks/rust/exercises/pythagorean-triplet/Cargo.lock +4 -0
  210. data/tracks/rust/exercises/pythagorean-triplet/Cargo.toml +6 -0
  211. data/tracks/rust/exercises/pythagorean-triplet/README.md +56 -0
  212. data/tracks/rust/exercises/pythagorean-triplet/example.rs +11 -0
  213. data/tracks/rust/exercises/pythagorean-triplet/src/lib.rs +0 -0
  214. data/tracks/rust/exercises/pythagorean-triplet/tests/pythagorean-triplet.rs +6 -0
  215. data/tracks/rust/exercises/rna-transcription/tests/rna-transcription.rs +1 -1
  216. data/tracks/rust/exercises/robot-name/tests/robot-name.rs +2 -2
  217. data/tracks/rust/exercises/say/example.rs +4 -4
  218. data/tracks/rust/exercises/say/tests/say.rs +4 -4
  219. data/tracks/rust/exercises/tournament/example.rs +2 -2
  220. data/tracks/scala/config/maintainers.json +10 -6
  221. data/tracks/scala/exercises/bracket-push/example.scala +2 -2
  222. data/tracks/scala/exercises/bracket-push/src/test/scala/BracketPushTest.scala +74 -0
  223. data/tracks/scala/exercises/crypto-square/example.scala +9 -9
  224. data/tracks/scala/exercises/crypto-square/src/test/scala/CryptoSquareTest.scala +33 -41
  225. data/tracks/scala/testgen/src/main/scala/BracketPushTestGenerator.scala +9 -38
  226. data/tracks/scala/testgen/src/main/scala/CryptoSquareTestGenerator.scala +17 -0
  227. data/tracks/sml/config.json +1 -1
  228. data/tracks/swift/config/maintainers.json +35 -0
  229. data/tracks/swift/docs/ABOUT.md +15 -5
  230. data/tracks/vimscript/config/maintainers.json +35 -0
  231. metadata +58 -8
  232. data/tracks/ocaml/exercises/point-mutations/Makefile +0 -8
  233. data/tracks/ocaml/exercises/point-mutations/README.md +0 -81
  234. data/tracks/ocaml/exercises/point-mutations/dna.mli +0 -6
  235. data/tracks/scala/exercises/bracket-push/src/test/scala/BracketsTest.scala +0 -68
  236. data/tracks/scala/exercises/crypto-square/src/main/scala/CryptoSquare.scala +0 -11
data/tracks/d/config.json CHANGED
@@ -4,6 +4,7 @@
4
4
  "repository": "https://github.com/exercism/d",
5
5
  "checklist_issue": 6,
6
6
  "active": true,
7
+ "test_pattern": "source.*[.]d",
7
8
  "exercises": [
8
9
  {
9
10
  "uuid": "a91c2216-9331-4485-ae4b-190ee9e2a7f8",
@@ -0,0 +1,15 @@
1
+ {
2
+ "maintainers": [
3
+ {
4
+ "github_username": "SuperPaintman",
5
+ "show_on_website": false,
6
+ "alumnus": false,
7
+ "name": null,
8
+ "bio": null,
9
+ "link_text": null,
10
+ "link_url": null,
11
+ "avatar_url": null
12
+ }
13
+ ],
14
+ "docs_url": "https://github.com/exercism/docs/blob/master/maintaining-a-track/maintainer-configuration.md"
15
+ }
@@ -9,9 +9,7 @@
9
9
  "core": false,
10
10
  "unlocked_by": null,
11
11
  "difficulty": 1,
12
- "topics": [
13
-
14
- ]
12
+ "topics": []
15
13
  },
16
14
  {
17
15
  "uuid": "7c8294ee-5924-4bf8-a72f-31d0e2d7d9a0",
@@ -19,9 +17,7 @@
19
17
  "core": false,
20
18
  "unlocked_by": null,
21
19
  "difficulty": 1,
22
- "topics": [
23
-
24
- ]
20
+ "topics": []
25
21
  },
26
22
  {
27
23
  "uuid": "d773c4ef-c09e-40e4-a7fe-01456cb4a12a",
@@ -29,9 +25,7 @@
29
25
  "core": false,
30
26
  "unlocked_by": null,
31
27
  "difficulty": 1,
32
- "topics": [
33
-
34
- ]
28
+ "topics": []
35
29
  },
36
30
  {
37
31
  "uuid": "342974d6-9083-4754-a6c5-ed1e19e40ec5",
@@ -39,9 +33,7 @@
39
33
  "core": false,
40
34
  "unlocked_by": null,
41
35
  "difficulty": 1,
42
- "topics": [
43
-
44
- ]
36
+ "topics": []
45
37
  },
46
38
  {
47
39
  "uuid": "a5bf36f0-5d3c-41d4-8d54-e37e484e59cd",
@@ -49,9 +41,7 @@
49
41
  "core": false,
50
42
  "unlocked_by": null,
51
43
  "difficulty": 1,
52
- "topics": [
53
-
54
- ]
44
+ "topics": []
55
45
  },
56
46
  {
57
47
  "uuid": "fd7b62d4-266b-4e84-a526-bf3d47901216",
@@ -59,9 +49,7 @@
59
49
  "core": false,
60
50
  "unlocked_by": null,
61
51
  "difficulty": 1,
62
- "topics": [
63
-
64
- ]
52
+ "topics": []
65
53
  },
66
54
  {
67
55
  "uuid": "c6691fd2-e10d-47df-acbf-3adeac5a2f89",
@@ -69,9 +57,7 @@
69
57
  "core": false,
70
58
  "unlocked_by": null,
71
59
  "difficulty": 1,
72
- "topics": [
73
-
74
- ]
60
+ "topics": []
75
61
  },
76
62
  {
77
63
  "uuid": "0073ff9a-cd6a-43cf-b8bf-4d5d8117b81b",
@@ -79,9 +65,7 @@
79
65
  "core": false,
80
66
  "unlocked_by": null,
81
67
  "difficulty": 1,
82
- "topics": [
83
-
84
- ]
68
+ "topics": []
85
69
  },
86
70
  {
87
71
  "uuid": "da5b2b34-a1a7-4970-81f9-4665d875398b",
@@ -89,9 +73,7 @@
89
73
  "core": false,
90
74
  "unlocked_by": null,
91
75
  "difficulty": 1,
92
- "topics": [
93
-
94
- ]
76
+ "topics": []
95
77
  },
96
78
  {
97
79
  "uuid": "6573f168-d8fc-4ccf-a864-1a61f432fae1",
@@ -99,9 +81,7 @@
99
81
  "core": false,
100
82
  "unlocked_by": null,
101
83
  "difficulty": 1,
102
- "topics": [
103
-
104
- ]
84
+ "topics": []
105
85
  },
106
86
  {
107
87
  "uuid": "82775adb-eabe-4d44-91f5-4080b8834a4a",
@@ -109,9 +89,7 @@
109
89
  "core": false,
110
90
  "unlocked_by": null,
111
91
  "difficulty": 1,
112
- "topics": [
113
-
114
- ]
92
+ "topics": []
115
93
  },
116
94
  {
117
95
  "uuid": "309fa4f1-e03a-4ab2-b371-cdf742501cf7",
@@ -119,9 +97,7 @@
119
97
  "core": false,
120
98
  "unlocked_by": null,
121
99
  "difficulty": 1,
122
- "topics": [
123
-
124
- ]
100
+ "topics": []
125
101
  },
126
102
  {
127
103
  "uuid": "62672dc7-e827-4c2e-a282-d6df45b60bbd",
@@ -129,9 +105,7 @@
129
105
  "core": false,
130
106
  "unlocked_by": null,
131
107
  "difficulty": 1,
132
- "topics": [
133
-
134
- ]
108
+ "topics": []
135
109
  },
136
110
  {
137
111
  "uuid": "64637322-33bc-401f-8cec-1f9810a41f75",
@@ -139,9 +113,7 @@
139
113
  "core": false,
140
114
  "unlocked_by": null,
141
115
  "difficulty": 1,
142
- "topics": [
143
-
144
- ]
116
+ "topics": []
145
117
  },
146
118
  {
147
119
  "uuid": "03f4dfea-e6db-4754-b2c8-ca06c8b81ef1",
@@ -149,9 +121,7 @@
149
121
  "core": false,
150
122
  "unlocked_by": null,
151
123
  "difficulty": 1,
152
- "topics": [
153
-
154
- ]
124
+ "topics": []
155
125
  },
156
126
  {
157
127
  "uuid": "db16804b-0f63-445d-8beb-99e0f7218d66",
@@ -159,9 +129,7 @@
159
129
  "core": false,
160
130
  "unlocked_by": null,
161
131
  "difficulty": 1,
162
- "topics": [
163
-
164
- ]
132
+ "topics": []
165
133
  },
166
134
  {
167
135
  "uuid": "4be85b5e-6b13-11e7-907b-a6006ad3dba0",
@@ -179,9 +147,7 @@
179
147
  "core": false,
180
148
  "unlocked_by": null,
181
149
  "difficulty": 1,
182
- "topics": [
183
-
184
- ]
150
+ "topics": []
185
151
  },
186
152
  {
187
153
  "uuid": "d003975a-9045-4f03-9ad9-c15db584dc13",
@@ -189,9 +155,7 @@
189
155
  "core": false,
190
156
  "unlocked_by": null,
191
157
  "difficulty": 1,
192
- "topics": [
193
-
194
- ]
158
+ "topics": []
195
159
  },
196
160
  {
197
161
  "uuid": "ed3ca73a-a0f0-46b8-8013-8b6d20758c8f",
@@ -199,9 +163,7 @@
199
163
  "core": false,
200
164
  "unlocked_by": null,
201
165
  "difficulty": 1,
202
- "topics": [
203
-
204
- ]
166
+ "topics": []
205
167
  },
206
168
  {
207
169
  "uuid": "4e0e2c30-be33-49b6-b196-213888a93a0c",
@@ -209,9 +171,7 @@
209
171
  "core": false,
210
172
  "unlocked_by": null,
211
173
  "difficulty": 1,
212
- "topics": [
213
-
214
- ]
174
+ "topics": []
215
175
  },
216
176
  {
217
177
  "uuid": "127eccbd-3009-4a8f-95c1-7d8aeb608550",
@@ -229,9 +189,7 @@
229
189
  "core": false,
230
190
  "unlocked_by": null,
231
191
  "difficulty": 1,
232
- "topics": [
233
-
234
- ]
192
+ "topics": []
235
193
  },
236
194
  {
237
195
  "uuid": "11771d47-1109-4579-a62b-e0b8e9583485",
@@ -239,9 +197,7 @@
239
197
  "core": false,
240
198
  "unlocked_by": null,
241
199
  "difficulty": 1,
242
- "topics": [
243
-
244
- ]
200
+ "topics": []
245
201
  },
246
202
  {
247
203
  "uuid": "2fc4f834-a51c-42b8-a4d9-5263229e7648",
@@ -249,9 +205,7 @@
249
205
  "core": false,
250
206
  "unlocked_by": null,
251
207
  "difficulty": 1,
252
- "topics": [
253
-
254
- ]
208
+ "topics": []
255
209
  },
256
210
  {
257
211
  "uuid": "bf0b1f95-3425-4345-8a12-3a80d49b49c9",
@@ -259,9 +213,7 @@
259
213
  "core": false,
260
214
  "unlocked_by": null,
261
215
  "difficulty": 1,
262
- "topics": [
263
-
264
- ]
216
+ "topics": []
265
217
  },
266
218
  {
267
219
  "uuid": "f43cdddf-eea8-4c4a-8359-c69e20ff9661",
@@ -269,9 +221,7 @@
269
221
  "core": false,
270
222
  "unlocked_by": null,
271
223
  "difficulty": 1,
272
- "topics": [
273
-
274
- ]
224
+ "topics": []
275
225
  },
276
226
  {
277
227
  "uuid": "f77ac2d1-cf3a-497d-bf04-b484a5a9cb37",
@@ -279,9 +229,7 @@
279
229
  "core": false,
280
230
  "unlocked_by": null,
281
231
  "difficulty": 1,
282
- "topics": [
283
-
284
- ]
232
+ "topics": []
285
233
  },
286
234
  {
287
235
  "uuid": "9d33d21c-e695-427f-9f58-dd9498d61318",
@@ -289,9 +237,7 @@
289
237
  "core": false,
290
238
  "unlocked_by": null,
291
239
  "difficulty": 1,
292
- "topics": [
293
-
294
- ]
240
+ "topics": []
295
241
  },
296
242
  {
297
243
  "uuid": "8407f9d5-7a7e-40c8-aace-a6a8294ae5e9",
@@ -299,9 +245,7 @@
299
245
  "core": false,
300
246
  "unlocked_by": null,
301
247
  "difficulty": 1,
302
- "topics": [
303
-
304
- ]
248
+ "topics": []
305
249
  },
306
250
  {
307
251
  "uuid": "a70e6027-eebe-43a1-84a6-763faa736169",
@@ -309,9 +253,7 @@
309
253
  "core": false,
310
254
  "unlocked_by": null,
311
255
  "difficulty": 1,
312
- "topics": [
313
-
314
- ]
256
+ "topics": []
315
257
  },
316
258
  {
317
259
  "uuid": "6ebe247c-3d11-48b7-8e6f-39f98359d233",
@@ -319,9 +261,7 @@
319
261
  "core": false,
320
262
  "unlocked_by": null,
321
263
  "difficulty": 1,
322
- "topics": [
323
-
324
- ]
264
+ "topics": []
325
265
  },
326
266
  {
327
267
  "uuid": "4dc30879-a589-4dd3-b7b6-22261f9d1520",
@@ -329,9 +269,7 @@
329
269
  "core": false,
330
270
  "unlocked_by": null,
331
271
  "difficulty": 1,
332
- "topics": [
333
-
334
- ]
272
+ "topics": []
335
273
  },
336
274
  {
337
275
  "uuid": "127287d1-ba44-4400-884a-6fe5f72e210f",
@@ -339,9 +277,7 @@
339
277
  "core": false,
340
278
  "unlocked_by": null,
341
279
  "difficulty": 1,
342
- "topics": [
343
-
344
- ]
280
+ "topics": []
345
281
  },
346
282
  {
347
283
  "uuid": "62d60b42-93bc-4de9-90d1-1ca18a847812",
@@ -349,9 +285,7 @@
349
285
  "core": false,
350
286
  "unlocked_by": null,
351
287
  "difficulty": 1,
352
- "topics": [
353
-
354
- ]
288
+ "topics": []
355
289
  },
356
290
  {
357
291
  "uuid": "28872cc9-f1ef-487f-9a79-6bf7983148bf",
@@ -359,9 +293,7 @@
359
293
  "core": false,
360
294
  "unlocked_by": null,
361
295
  "difficulty": 1,
362
- "topics": [
363
-
364
- ]
296
+ "topics": []
365
297
  },
366
298
  {
367
299
  "uuid": "16e25a38-7ce3-4ccd-b2f0-1550b837fe9b",
@@ -369,9 +301,7 @@
369
301
  "core": false,
370
302
  "unlocked_by": null,
371
303
  "difficulty": 1,
372
- "topics": [
373
-
374
- ]
304
+ "topics": []
375
305
  },
376
306
  {
377
307
  "uuid": "394755a3-c743-4b85-b9b8-387907f4e32d",
@@ -379,9 +309,7 @@
379
309
  "core": false,
380
310
  "unlocked_by": null,
381
311
  "difficulty": 1,
382
- "topics": [
383
-
384
- ]
312
+ "topics": []
385
313
  },
386
314
  {
387
315
  "uuid": "5178ae53-5364-46c9-bee3-70e6e8a8c2e3",
@@ -389,9 +317,7 @@
389
317
  "core": false,
390
318
  "unlocked_by": null,
391
319
  "difficulty": 1,
392
- "topics": [
393
-
394
- ]
320
+ "topics": []
395
321
  },
396
322
  {
397
323
  "uuid": "7dfa878c-83a6-48ef-9170-b6633d51d601",
@@ -399,9 +325,7 @@
399
325
  "core": false,
400
326
  "unlocked_by": null,
401
327
  "difficulty": 1,
402
- "topics": [
403
-
404
- ]
328
+ "topics": []
405
329
  },
406
330
  {
407
331
  "uuid": "74bbc9e3-edc5-41e0-84d7-5b2d98dd8370",
@@ -409,9 +333,7 @@
409
333
  "core": false,
410
334
  "unlocked_by": null,
411
335
  "difficulty": 1,
412
- "topics": [
413
-
414
- ]
336
+ "topics": []
415
337
  },
416
338
  {
417
339
  "uuid": "ec60a578-8889-46a1-b7b8-306dbd8551d5",
@@ -419,9 +341,7 @@
419
341
  "core": false,
420
342
  "unlocked_by": null,
421
343
  "difficulty": 1,
422
- "topics": [
423
-
424
- ]
344
+ "topics": []
425
345
  },
426
346
  {
427
347
  "uuid": "9131bdb8-2e0f-4526-b113-8a77712e7216",
@@ -429,9 +349,7 @@
429
349
  "core": false,
430
350
  "unlocked_by": null,
431
351
  "difficulty": 1,
432
- "topics": [
433
-
434
- ]
352
+ "topics": []
435
353
  },
436
354
  {
437
355
  "uuid": "1a6c4a3b-d5db-4a5a-b123-66cf085defe6",
@@ -450,9 +368,7 @@
450
368
  "core": false,
451
369
  "unlocked_by": null,
452
370
  "difficulty": 1,
453
- "topics": [
454
-
455
- ]
371
+ "topics": []
456
372
  },
457
373
  {
458
374
  "uuid": "13444eff-005a-405e-9737-7b64d99c1a61",
@@ -460,9 +376,7 @@
460
376
  "core": false,
461
377
  "unlocked_by": null,
462
378
  "difficulty": 1,
463
- "topics": [
464
-
465
- ]
379
+ "topics": []
466
380
  },
467
381
  {
468
382
  "uuid": "7c569e5d-bb00-44b8-8adc-34253790c19b",
@@ -470,9 +384,7 @@
470
384
  "core": false,
471
385
  "unlocked_by": null,
472
386
  "difficulty": 1,
473
- "topics": [
474
-
475
- ]
387
+ "topics": []
476
388
  },
477
389
  {
478
390
  "uuid": "7d9db056-5398-41b6-af3b-9707f5eb0dbc",
@@ -492,9 +404,7 @@
492
404
  "core": false,
493
405
  "unlocked_by": null,
494
406
  "difficulty": 1,
495
- "topics": [
496
-
497
- ]
407
+ "topics": []
498
408
  },
499
409
  {
500
410
  "uuid": "dd0b5e67-81f6-437e-8334-2ec0dfeb862a",
@@ -502,9 +412,7 @@
502
412
  "core": false,
503
413
  "unlocked_by": null,
504
414
  "difficulty": 1,
505
- "topics": [
506
-
507
- ]
415
+ "topics": []
508
416
  },
509
417
  {
510
418
  "uuid": "5174bd15-eee2-4b53-b3ee-ca3a8c958a31",
@@ -512,9 +420,7 @@
512
420
  "core": false,
513
421
  "unlocked_by": null,
514
422
  "difficulty": 1,
515
- "topics": [
516
-
517
- ]
423
+ "topics": []
518
424
  },
519
425
  {
520
426
  "uuid": "7ce09989-f202-4c3c-8b7e-72cef18808c3",
@@ -522,9 +428,7 @@
522
428
  "core": false,
523
429
  "unlocked_by": null,
524
430
  "difficulty": 1,
525
- "topics": [
526
-
527
- ]
431
+ "topics": []
528
432
  },
529
433
  {
530
434
  "uuid": "f6799d10-0210-4c73-ac08-d5cac1a00ff3",
@@ -532,9 +436,7 @@
532
436
  "core": false,
533
437
  "unlocked_by": null,
534
438
  "difficulty": 1,
535
- "topics": [
536
-
537
- ]
439
+ "topics": []
538
440
  },
539
441
  {
540
442
  "uuid": "99493160-4673-402f-acda-62db5378148d",
@@ -542,9 +444,7 @@
542
444
  "core": false,
543
445
  "unlocked_by": null,
544
446
  "difficulty": 1,
545
- "topics": [
546
-
547
- ]
447
+ "topics": []
548
448
  },
549
449
  {
550
450
  "uuid": "12989bb3-c593-4f68-bea4-e2c5b76bc3c0",
@@ -552,9 +452,7 @@
552
452
  "core": false,
553
453
  "unlocked_by": null,
554
454
  "difficulty": 1,
555
- "topics": [
556
-
557
- ]
455
+ "topics": []
558
456
  },
559
457
  {
560
458
  "uuid": "75199d72-4cac-49ce-bffb-23fb659c57ae",
@@ -562,9 +460,7 @@
562
460
  "core": false,
563
461
  "unlocked_by": null,
564
462
  "difficulty": 1,
565
- "topics": [
566
-
567
- ]
463
+ "topics": []
568
464
  },
569
465
  {
570
466
  "uuid": "f7452f71-795b-40b6-847c-67ef4bb9db45",
@@ -572,9 +468,7 @@
572
468
  "core": false,
573
469
  "unlocked_by": null,
574
470
  "difficulty": 1,
575
- "topics": [
576
-
577
- ]
471
+ "topics": []
578
472
  },
579
473
  {
580
474
  "uuid": "007a4cd4-7324-4512-8905-ead0c78146f7",
@@ -582,9 +476,7 @@
582
476
  "core": false,
583
477
  "unlocked_by": null,
584
478
  "difficulty": 1,
585
- "topics": [
586
-
587
- ]
479
+ "topics": []
588
480
  },
589
481
  {
590
482
  "uuid": "a01aa48c-65c4-4b1f-b3d9-3ec7da2ef754",
@@ -592,9 +484,7 @@
592
484
  "core": false,
593
485
  "unlocked_by": null,
594
486
  "difficulty": 1,
595
- "topics": [
596
-
597
- ]
487
+ "topics": []
598
488
  },
599
489
  {
600
490
  "uuid": "24c197ee-d492-4083-8615-629cb4b836b2",
@@ -602,9 +492,7 @@
602
492
  "core": false,
603
493
  "unlocked_by": null,
604
494
  "difficulty": 1,
605
- "topics": [
606
-
607
- ]
495
+ "topics": []
608
496
  },
609
497
  {
610
498
  "uuid": "98617798-b49d-4d43-9f65-7131ee73d626",
@@ -612,9 +500,7 @@
612
500
  "core": false,
613
501
  "unlocked_by": null,
614
502
  "difficulty": 1,
615
- "topics": [
616
-
617
- ]
503
+ "topics": []
618
504
  },
619
505
  {
620
506
  "uuid": "4d456646-3a9b-4393-9558-6b30e5c1039c",
@@ -622,9 +508,7 @@
622
508
  "core": false,
623
509
  "unlocked_by": null,
624
510
  "difficulty": 1,
625
- "topics": [
626
-
627
- ]
511
+ "topics": []
628
512
  },
629
513
  {
630
514
  "uuid": "0bc6b478-40a8-47ab-889b-c403b922f7e5",
@@ -632,9 +516,7 @@
632
516
  "core": false,
633
517
  "unlocked_by": null,
634
518
  "difficulty": 1,
635
- "topics": [
636
-
637
- ]
519
+ "topics": []
638
520
  },
639
521
  {
640
522
  "uuid": "6a1eee0e-f8d4-446d-9c52-f31c3700af1b",
@@ -642,9 +524,7 @@
642
524
  "core": false,
643
525
  "unlocked_by": null,
644
526
  "difficulty": 1,
645
- "topics": [
646
-
647
- ]
527
+ "topics": []
648
528
  },
649
529
  {
650
530
  "uuid": "3df577af-2854-40ee-b211-9b608dbbad58",
@@ -652,9 +532,7 @@
652
532
  "core": false,
653
533
  "unlocked_by": null,
654
534
  "difficulty": 1,
655
- "topics": [
656
-
657
- ]
535
+ "topics": []
658
536
  },
659
537
  {
660
538
  "uuid": "d2d3cd13-b06c-4c24-9964-fb1554f70dd4",
@@ -662,9 +540,7 @@
662
540
  "core": false,
663
541
  "unlocked_by": null,
664
542
  "difficulty": 1,
665
- "topics": [
666
-
667
- ]
543
+ "topics": []
668
544
  },
669
545
  {
670
546
  "uuid": "2fa2c262-77ae-409b-bfd8-1d643faae772",
@@ -672,9 +548,7 @@
672
548
  "core": false,
673
549
  "unlocked_by": null,
674
550
  "difficulty": 7,
675
- "topics": [
676
-
677
- ]
551
+ "topics": []
678
552
  },
679
553
  {
680
554
  "uuid": "8bafe6c4-9154-4037-9070-7f57f91d495a",
@@ -719,9 +593,18 @@
719
593
  "uuid": "dec66f89-39d0-4857-9679-a035cf4259d7",
720
594
  "slug": "octal",
721
595
  "deprecated": true
596
+ },
597
+ {
598
+ "uuid": "0e43944b-0a68-5680-ef11-70999d2df897c894476",
599
+ "slug": "twelve-days",
600
+ "core": false,
601
+ "difficulty": 4,
602
+ "topics": [
603
+ "Control flow (conditionals)",
604
+ "Control flow (loops)",
605
+ "Strings"
606
+ ]
722
607
  }
723
608
  ],
724
- "foregone": [
725
-
726
- ]
727
- }
609
+ "foregone": []
610
+ }