diff options
Diffstat (limited to '2020/day4')
-rw-r--r-- | 2020/day4/input | 1000 | ||||
-rw-r--r-- | 2020/day4/passport.pl | 68 |
2 files changed, 1068 insertions, 0 deletions
diff --git a/2020/day4/input b/2020/day4/input new file mode 100644 index 0000000..734e50b --- /dev/null +++ b/2020/day4/input | |||
@@ -0,0 +1,1000 @@ | |||
1 | pid:827837505 byr:1976 | ||
2 | hgt:187cm | ||
3 | iyr:2016 | ||
4 | hcl:#fffffd | ||
5 | eyr:2024 | ||
6 | |||
7 | hgt:189cm byr:1987 pid:572028668 iyr:2014 hcl:#623a2f | ||
8 | eyr:2028 ecl:amb | ||
9 | |||
10 | pid:#e9bf38 hcl:z iyr:2029 byr:2028 ecl:#18f71a hgt:174in eyr:2036 | ||
11 | |||
12 | hcl:#cfa07d byr:1982 pid:573165334 ecl:gry eyr:2022 iyr:2012 hgt:180cm | ||
13 | |||
14 | cid:151 hcl:#c0946f | ||
15 | ecl:brn hgt:66cm iyr:2013 pid:694421369 | ||
16 | byr:1980 eyr:2029 | ||
17 | |||
18 | ecl:brn | ||
19 | pid:9337568136 eyr:2026 | ||
20 | hcl:#6b5442 | ||
21 | hgt:69cm iyr:2019 byr:2025 | ||
22 | |||
23 | cid:66 hcl:#efcc98 pid:791118269 iyr:2013 | ||
24 | eyr:2020 ecl:grn hgt:183cm byr:1993 | ||
25 | |||
26 | eyr:2022 | ||
27 | hgt:160cm iyr:2016 byr:1969 pid:767606888 ecl:gry hcl:#6b5442 | ||
28 | |||
29 | hgt:157cm eyr:2026 ecl:oth hcl:#efcc98 byr:1938 iyr:2014 | ||
30 | |||
31 | byr:1931 iyr:2015 | ||
32 | ecl:gry | ||
33 | hgt:76in | ||
34 | cid:227 hcl:#09592c eyr:2024 pid:276365391 | ||
35 | |||
36 | ecl:gry hgt:170cm iyr:2014 cid:285 pid:870052514 | ||
37 | hcl:#866857 byr:1925 eyr:2025 | ||
38 | |||
39 | eyr:2021 | ||
40 | byr:1960 pid:569950896 | ||
41 | iyr:2010 hgt:179cm hcl:#888785 cid:167 | ||
42 | |||
43 | hgt:154in cid:194 | ||
44 | pid:8142023665 byr:2010 hcl:7d22ff ecl:utc iyr:2026 eyr:1976 | ||
45 | |||
46 | ecl:blu eyr:2030 hgt:192cm | ||
47 | pid:363860866 iyr:2019 hcl:#ceb3a1 byr:1963 | ||
48 | |||
49 | byr:1947 hgt:167cm hcl:#7d3b0c ecl:amb | ||
50 | cid:70 eyr:2022 iyr:2019 pid:756932371 | ||
51 | |||
52 | hgt:185cm pid:871945454 | ||
53 | iyr:2020 | ||
54 | hcl:#866857 ecl:amb | ||
55 | byr:1989 cid:184 eyr:2030 | ||
56 | |||
57 | byr:1935 pid:322117407 | ||
58 | hgt:153cm iyr:2011 | ||
59 | cid:244 eyr:2022 hcl:#efcc98 ecl:hzl | ||
60 | |||
61 | ecl:blu hcl:#5e6c12 | ||
62 | eyr:2029 iyr:2011 hgt:191cm byr:1992 | ||
63 | |||
64 | hcl:#7d3b0c eyr:2029 | ||
65 | hgt:163cm | ||
66 | pid:625292172 byr:1932 ecl:brn | ||
67 | iyr:2020 | ||
68 | |||
69 | hgt:158cm | ||
70 | eyr:2030 iyr:2016 byr:1969 | ||
71 | cid:173 pid:092921211 hcl:#602927 ecl:grn | ||
72 | |||
73 | hcl:#733820 | ||
74 | iyr:2016 eyr:2029 | ||
75 | ecl:hzl hgt:180cm pid:292904469 byr:1984 | ||
76 | |||
77 | ecl:amb pid:901224456 hgt:190cm | ||
78 | iyr:2013 | ||
79 | hcl:#733820 | ||
80 | byr:1922 | ||
81 | |||
82 | pid:262285164 iyr:2010 | ||
83 | byr:2018 eyr:2026 hcl:#602927 hgt:179cm ecl:gmt cid:349 | ||
84 | |||
85 | byr:1956 eyr:2027 pid:351551997 hgt:71in cid:277 hcl:#cfa07d iyr:2010 ecl:grn | ||
86 | |||
87 | eyr:2027 hcl:#602927 hgt:157cm ecl:gry | ||
88 | cid:128 byr:1953 | ||
89 | pid:231551549 iyr:2012 | ||
90 | |||
91 | iyr:2011 pid:771266976 | ||
92 | cid:264 byr:1955 hcl:#b6652a | ||
93 | hgt:189cm ecl:blu | ||
94 | eyr:2030 | ||
95 | |||
96 | eyr:2026 pid:698455242 | ||
97 | byr:1949 ecl:gry hgt:190cm | ||
98 | iyr:2013 hcl:#efcc98 cid:139 | ||
99 | |||
100 | ecl:blu hgt:181cm byr:1977 iyr:2011 eyr:2022 | ||
101 | pid:454163967 hcl:#b6652a | ||
102 | |||
103 | pid:534506872 hgt:155cm iyr:2012 | ||
104 | byr:1968 | ||
105 | cid:333 eyr:2024 hcl:#623a2f | ||
106 | ecl:amb | ||
107 | |||
108 | hgt:162cm | ||
109 | iyr:2020 | ||
110 | hcl:#733820 eyr:2027 byr:1995 ecl:gry pid:084994685 | ||
111 | |||
112 | iyr:2016 byr:1990 | ||
113 | ecl:amb pid:185689022 eyr:2025 | ||
114 | hgt:184cm hcl:#866857 | ||
115 | |||
116 | byr:2016 hcl:z iyr:2022 hgt:166in | ||
117 | eyr:2040 | ||
118 | |||
119 | byr:1943 hgt:152cm hcl:#cfa07d ecl:hzl iyr:2016 cid:300 pid:376088014 | ||
120 | |||
121 | iyr:2020 eyr:2026 hcl:#602927 ecl:gry byr:1962 pid:453907789 hgt:172cm | ||
122 | |||
123 | eyr:2023 hgt:185cm | ||
124 | hcl:#623a2f pid:963767258 byr:1977 | ||
125 | iyr:2019 ecl:oth | ||
126 | |||
127 | hgt:159cm byr:1965 cid:349 ecl:blu pid:962908167 | ||
128 | iyr:2013 eyr:2024 | ||
129 | hcl:#fffffd | ||
130 | |||
131 | eyr:2026 | ||
132 | pid:912822238 hgt:66in byr:1985 iyr:2018 hcl:#c0946f ecl:hzl | ||
133 | |||
134 | hgt:167cm hcl:#ceb3a1 | ||
135 | byr:1990 eyr:2027 ecl:grn | ||
136 | iyr:2011 pid:642877667 | ||
137 | |||
138 | hcl:#7d3b0c byr:1921 pid:976412756 hgt:192cm | ||
139 | iyr:2013 ecl:gry | ||
140 | |||
141 | iyr:2030 pid:283599139 | ||
142 | eyr:2039 cid:203 | ||
143 | hcl:f943cb | ||
144 | hgt:111 | ||
145 | |||
146 | hgt:190cm | ||
147 | iyr:2027 ecl:blu hcl:z | ||
148 | byr:2004 eyr:2039 | ||
149 | pid:734570034 | ||
150 | |||
151 | hcl:#6b5442 hgt:191cm | ||
152 | ecl:oth byr:1989 pid:669414669 cid:196 iyr:2016 eyr:2023 | ||
153 | |||
154 | ecl:brn eyr:2028 byr:1965 pid:630674502 hcl:#602927 iyr:2020 hgt:61in | ||
155 | |||
156 | iyr:2016 eyr:2022 cid:225 | ||
157 | hcl:#733820 ecl:hzl hgt:166cm | ||
158 | byr:1934 | ||
159 | pid:232742206 | ||
160 | |||
161 | ecl:amb hcl:#602927 eyr:2029 | ||
162 | pid:897535300 | ||
163 | hgt:189cm byr:1952 | ||
164 | iyr:2017 | ||
165 | |||
166 | pid:853604345 | ||
167 | hgt:161cm cid:269 | ||
168 | hcl:#fffffd eyr:2030 iyr:2011 ecl:grn byr:1966 | ||
169 | |||
170 | hgt:151cm hcl:#18171d eyr:2026 ecl:grn iyr:2016 pid:176cm | ||
171 | byr:2000 | ||
172 | |||
173 | hcl:#341e13 | ||
174 | eyr:2022 | ||
175 | pid:536989527 cid:73 byr:1971 | ||
176 | ecl:hzl | ||
177 | |||
178 | pid:739005658 hcl:#b6652a | ||
179 | eyr:2026 hgt:154cm ecl:hzl | ||
180 | iyr:2019 byr:1935 | ||
181 | |||
182 | pid:373465835 ecl:oth byr:1932 cid:333 hgt:165cm | ||
183 | hcl:#b6652a eyr:2021 iyr:2014 | ||
184 | |||
185 | byr:1967 pid:486658617 hcl:#18171d hgt:174cm | ||
186 | eyr:2021 iyr:2015 ecl:gry cid:53 | ||
187 | |||
188 | eyr:2024 | ||
189 | cid:124 iyr:2017 hgt:152cm pid:095649305 hcl:#341e13 | ||
190 | byr:1920 ecl:oth | ||
191 | |||
192 | hcl:#623a2f | ||
193 | byr:1951 pid:993284548 | ||
194 | cid:106 | ||
195 | hgt:186cm | ||
196 | ecl:amb iyr:2017 eyr:2029 | ||
197 | |||
198 | cid:308 pid:080673934 | ||
199 | hgt:193cm | ||
200 | byr:1967 hcl:#623a2f iyr:2016 ecl:hzl | ||
201 | eyr:2021 | ||
202 | |||
203 | iyr:2010 eyr:2024 byr:1946 hgt:156cm | ||
204 | cid:199 | ||
205 | ecl:blu hcl:#866857 | ||
206 | |||
207 | ecl:blu byr:1955 eyr:2022 cid:95 pid:139391569 | ||
208 | iyr:2019 hgt:180cm | ||
209 | hcl:#efcc98 | ||
210 | |||
211 | ecl:brn pid:579889368 | ||
212 | eyr:2023 hgt:158cm byr:1935 | ||
213 | iyr:2018 hcl:#cfa07d | ||
214 | |||
215 | byr:1920 pid:90919899 hcl:#18171d | ||
216 | hgt:152cm | ||
217 | eyr:2029 ecl:oth iyr:2014 | ||
218 | |||
219 | byr:1961 eyr:2024 | ||
220 | ecl:#d401e3 iyr:2011 hgt:172cm pid:919145070 | ||
221 | cid:100 | ||
222 | hcl:#efcc98 | ||
223 | |||
224 | ecl:gry | ||
225 | hgt:168cm | ||
226 | hcl:#888785 byr:1942 pid:731032830 iyr:2014 | ||
227 | eyr:2028 | ||
228 | |||
229 | hcl:#6b5442 pid:265747619 hgt:191cm | ||
230 | cid:217 | ||
231 | eyr:2028 | ||
232 | iyr:2019 ecl:amb | ||
233 | byr:1948 | ||
234 | |||
235 | iyr:2011 ecl:brn | ||
236 | hgt:183cm hcl:#fffffd cid:258 byr:1983 | ||
237 | pid:835909246 | ||
238 | |||
239 | byr:2030 | ||
240 | iyr:2024 ecl:#f66808 | ||
241 | hcl:fd548d cid:183 | ||
242 | pid:#fced33 | ||
243 | hgt:160in | ||
244 | |||
245 | ecl:utc hgt:183in hcl:a92c31 pid:0394222041 | ||
246 | iyr:2008 | ||
247 | eyr:1976 byr:2020 | ||
248 | |||
249 | pid:126195650 iyr:2019 hcl:#341e13 | ||
250 | ecl:blu | ||
251 | hgt:150cm | ||
252 | eyr:2025 | ||
253 | byr:1964 | ||
254 | |||
255 | cid:71 iyr:2016 hgt:157 ecl:grt | ||
256 | hcl:#18171d pid:#1ab5ea eyr:2027 | ||
257 | |||
258 | eyr:2026 hcl:#b5266f | ||
259 | byr:1971 | ||
260 | cid:269 hgt:192cm iyr:2012 | ||
261 | pid:736578840 ecl:amb | ||
262 | |||
263 | pid:152109472 hcl:#ceb3a1 ecl:grn hgt:188cm eyr:2027 | ||
264 | byr:1923 | ||
265 | |||
266 | hcl:#341e13 pid:535175953 hgt:63in eyr:2028 iyr:2015 byr:1999 ecl:gry | ||
267 | |||
268 | hgt:183cm pid:611738968 byr:2001 | ||
269 | eyr:2020 hcl:#a97842 iyr:2014 | ||
270 | ecl:gry | ||
271 | |||
272 | eyr:2038 ecl:gmt pid:113210210 iyr:2012 byr:2011 | ||
273 | hcl:z | ||
274 | hgt:157cm | ||
275 | |||
276 | hgt:157cm | ||
277 | pid:699449127 | ||
278 | iyr:2014 ecl:gry byr:1980 hcl:#fffffd eyr:2029 | ||
279 | |||
280 | iyr:2028 hcl:z pid:152cm | ||
281 | eyr:2039 | ||
282 | ecl:#4760fb hgt:177in | ||
283 | byr:2017 | ||
284 | |||
285 | eyr:2026 hcl:#efcc98 | ||
286 | iyr:2020 hgt:180cm ecl:hzl pid:747449965 byr:2016 | ||
287 | |||
288 | byr:1974 iyr:2019 | ||
289 | cid:89 eyr:2023 pid:421418405 | ||
290 | hcl:#fffffd hgt:192cm | ||
291 | ecl:gry | ||
292 | |||
293 | hcl:26c2ef eyr:2029 cid:309 byr:1931 ecl:grn pid:#4eb099 iyr:2024 | ||
294 | hgt:174cm | ||
295 | |||
296 | ecl:gry | ||
297 | hgt:183cm | ||
298 | cid:281 | ||
299 | eyr:2022 pid:050492569 | ||
300 | byr:1968 hcl:c88145 | ||
301 | iyr:2015 | ||
302 | |||
303 | eyr:2028 | ||
304 | iyr:2014 pid:712984515 hgt:187cm cid:206 hcl:#866857 byr:1927 | ||
305 | ecl:brn | ||
306 | |||
307 | byr:1936 hgt:61in ecl:oth iyr:2012 pid:447813841 | ||
308 | hcl:#c0946f | ||
309 | cid:126 eyr:2021 | ||
310 | |||
311 | ecl:gry pid:791970272 | ||
312 | eyr:2020 | ||
313 | byr:1932 hcl:#623a2f hgt:161cm | ||
314 | iyr:2015 | ||
315 | |||
316 | hcl:#c0946f | ||
317 | byr:1935 pid:721144576 eyr:2025 hgt:162cm | ||
318 | iyr:2017 ecl:oth | ||
319 | |||
320 | byr:1959 | ||
321 | pid:551109135 | ||
322 | ecl:hzl hgt:68in | ||
323 | eyr:1977 hcl:#888785 | ||
324 | iyr:1955 cid:100 | ||
325 | |||
326 | hgt:190in eyr:1993 pid:8358180772 iyr:1975 | ||
327 | ecl:oth | ||
328 | byr:2024 | ||
329 | hcl:3de172 | ||
330 | |||
331 | eyr:2030 hgt:190cm hcl:#a40ef3 byr:1935 pid:484932501 | ||
332 | ecl:amb iyr:2016 | ||
333 | |||
334 | iyr:2015 | ||
335 | byr:1964 | ||
336 | hgt:176cm | ||
337 | pid:819552732 hcl:#c0946f ecl:amb cid:263 | ||
338 | eyr:2024 | ||
339 | |||
340 | hgt:65cm cid:59 eyr:2027 pid:074880819 ecl:utc iyr:2023 | ||
341 | byr:1954 hcl:#623a2f | ||
342 | |||
343 | byr:1954 hgt:167cm iyr:2020 | ||
344 | eyr:2023 hcl:#602927 | ||
345 | pid:280295309 | ||
346 | ecl:hzl cid:168 | ||
347 | |||
348 | hgt:168cm pid:311043701 iyr:2017 byr:1965 | ||
349 | ecl:hzl | ||
350 | eyr:2026 hcl:#fffffd | ||
351 | |||
352 | hcl:#fffffd ecl:grn pid:672987232 iyr:2012 eyr:2022 hgt:66in | ||
353 | |||
354 | iyr:2012 ecl:#6f4f9f | ||
355 | hgt:133 byr:1937 | ||
356 | eyr:1953 pid:7177768428 hcl:#602927 | ||
357 | |||
358 | iyr:2010 | ||
359 | byr:1922 hcl:#c0946f | ||
360 | eyr:2029 ecl:gry | ||
361 | hgt:165cm | ||
362 | pid:893045052 | ||
363 | |||
364 | iyr:2013 eyr:2028 hcl:#866857 pid:137143403 | ||
365 | ecl:brn hgt:170cm byr:1940 cid:194 | ||
366 | |||
367 | hgt:161cm | ||
368 | eyr:2027 pid:3966920279 ecl:gry iyr:2015 byr:1997 hcl:#cfa07d | ||
369 | |||
370 | ecl:amb | ||
371 | hgt:157cm byr:1971 | ||
372 | pid:562746894 cid:305 hcl:#0b0e1a eyr:2021 iyr:2016 | ||
373 | |||
374 | hcl:8b821d hgt:157cm pid:187cm cid:298 eyr:1926 iyr:2019 | ||
375 | ecl:amb | ||
376 | byr:2030 | ||
377 | |||
378 | hgt:155cm hcl:#341e13 byr:1924 pid:779847670 | ||
379 | ecl:hzl iyr:2015 | ||
380 | eyr:2024 | ||
381 | |||
382 | pid:768590475 hcl:#a97842 iyr:2014 cid:128 eyr:2029 | ||
383 | ecl:oth hgt:164cm byr:1990 | ||
384 | |||
385 | iyr:2019 hgt:181cm cid:342 | ||
386 | eyr:2020 ecl:gry byr:2001 | ||
387 | hcl:#623a2f | ||
388 | pid:473165431 | ||
389 | |||
390 | byr:1928 eyr:2026 hcl:#42a9cb iyr:2010 | ||
391 | ecl:grn hgt:157cm pid:638074984 | ||
392 | |||
393 | eyr:2028 | ||
394 | byr:1951 | ||
395 | pid:239781647 iyr:2020 hgt:156cm | ||
396 | ecl:hzl cid:215 hcl:#efcc98 | ||
397 | |||
398 | pid:636605355 ecl:hzl | ||
399 | iyr:2017 cid:323 eyr:2025 | ||
400 | byr:1995 | ||
401 | hcl:#18171d hgt:187cm | ||
402 | |||
403 | byr:1933 hcl:#866857 hgt:152cm ecl:oth iyr:2014 pid:900790914 eyr:2030 cid:267 | ||
404 | |||
405 | ecl:brn byr:1999 eyr:2027 hcl:#623a2f iyr:2017 | ||
406 | pid:853165955 | ||
407 | hgt:152cm | ||
408 | |||
409 | eyr:2030 pid:316704688 hcl:#c0946f ecl:brn iyr:2014 hgt:193cm | ||
410 | |||
411 | iyr:2012 byr:1928 | ||
412 | hgt:154cm pid:570535769 hcl:#623a2f eyr:2026 ecl:hzl | ||
413 | |||
414 | iyr:2016 cid:252 eyr:2030 hcl:#888785 | ||
415 | hgt:177cm ecl:grn byr:2002 pid:568715162 | ||
416 | |||
417 | pid:570999226 iyr:2012 hgt:150cm | ||
418 | byr:2024 | ||
419 | ecl:brn hcl:z eyr:2029 | ||
420 | |||
421 | pid:174002299 iyr:2019 hcl:#cfa07d ecl:brn byr:1927 | ||
422 | cid:77 hgt:159cm eyr:2027 | ||
423 | |||
424 | ecl:#d16191 eyr:2022 pid:166cm hgt:165cm hcl:#18171d iyr:2015 | ||
425 | |||
426 | pid:112585759 | ||
427 | hcl:#341e13 eyr:2025 byr:1962 hgt:164cm ecl:hzl iyr:2018 | ||
428 | |||
429 | pid:478415905 eyr:2025 cid:315 | ||
430 | ecl:amb hgt:91 | ||
431 | iyr:2014 hcl:#cc9d80 | ||
432 | byr:1985 | ||
433 | |||
434 | pid:561885837 hcl:#7d3b0c | ||
435 | hgt:169cm | ||
436 | byr:1921 iyr:2014 cid:178 | ||
437 | eyr:2022 ecl:gry | ||
438 | |||
439 | ecl:#c87497 hcl:5321a2 eyr:2020 hgt:74in | ||
440 | pid:#7a62c6 iyr:1976 | ||
441 | |||
442 | eyr:2037 | ||
443 | pid:858202391 hgt:162cm | ||
444 | ecl:grn byr:2003 | ||
445 | cid:278 | ||
446 | iyr:2010 hcl:cbf662 | ||
447 | |||
448 | ecl:blu iyr:2012 hgt:183cm hcl:#623a2f pid:848200472 byr:1997 eyr:2027 | ||
449 | |||
450 | byr:1942 | ||
451 | hgt:164cm | ||
452 | pid:464257339 | ||
453 | iyr:2016 | ||
454 | hcl:#7d3b0c ecl:gry | ||
455 | |||
456 | iyr:2012 hcl:#ceb3a1 | ||
457 | hgt:193cm ecl:amb | ||
458 | pid:667987561 eyr:2024 byr:1960 | ||
459 | |||
460 | hgt:187cm | ||
461 | pid:222340640 | ||
462 | iyr:2018 eyr:2022 | ||
463 | ecl:oth | ||
464 | byr:1957 | ||
465 | hcl:#336667 cid:83 | ||
466 | |||
467 | eyr:2025 iyr:2015 hcl:#733820 | ||
468 | ecl:brn | ||
469 | pid:131195653 | ||
470 | |||
471 | hgt:185cm eyr:2026 | ||
472 | ecl:amb byr:1998 pid:938587659 hcl:#733820 | ||
473 | iyr:2016 | ||
474 | |||
475 | ecl:oth pid:300949722 | ||
476 | eyr:2028 iyr:2016 | ||
477 | byr:1933 | ||
478 | hgt:179cm | ||
479 | hcl:#cfa07d | ||
480 | |||
481 | byr:1974 iyr:2019 | ||
482 | ecl:hzl hcl:#c0946f eyr:2024 pid:484547079 | ||
483 | cid:112 | ||
484 | hgt:185cm | ||
485 | |||
486 | eyr:2022 iyr:2018 hcl:#fffffd pid:118568279 | ||
487 | hgt:153cm ecl:gry byr:1941 cid:341 | ||
488 | |||
489 | iyr:2018 | ||
490 | eyr:2027 hcl:#888785 | ||
491 | byr:1970 hgt:165cm pid:773715893 | ||
492 | ecl:amb | ||
493 | |||
494 | hcl:#623a2f hgt:156cm byr:1938 iyr:2012 pid:745046822 | ||
495 | ecl:amb | ||
496 | eyr:2030 | ||
497 | |||
498 | iyr:2012 | ||
499 | pid:097961857 | ||
500 | eyr:2023 hgt:66in hcl:#fffffd byr:1962 ecl:utc | ||
501 | |||
502 | byr:1943 hgt:150cm | ||
503 | iyr:2012 | ||
504 | pid:740693353 eyr:2023 | ||
505 | hcl:#18171d cid:101 ecl:blu | ||
506 | |||
507 | iyr:2018 pid:183728523 byr:1924 hgt:154cm eyr:2030 | ||
508 | cid:167 ecl:blu hcl:#ceb3a1 | ||
509 | |||
510 | hgt:69cm | ||
511 | eyr:2025 hcl:z ecl:brn byr:1982 pid:250782159 | ||
512 | iyr:2011 | ||
513 | |||
514 | byr:1998 iyr:2018 hcl:#341e13 eyr:2022 hgt:157cm pid:497100444 cid:266 ecl:gry | ||
515 | |||
516 | eyr:2027 iyr:2011 hcl:#6b5442 hgt:156cm pid:494073085 | ||
517 | byr:1998 | ||
518 | ecl:hzl | ||
519 | |||
520 | byr:1947 hcl:#b6652a | ||
521 | iyr:2011 pid:228986686 eyr:2030 hgt:175cm cid:70 ecl:brn | ||
522 | |||
523 | eyr:2026 hgt:159cm | ||
524 | byr:1946 pid:534291476 | ||
525 | iyr:2018 ecl:gry cid:225 | ||
526 | hcl:#18171d | ||
527 | |||
528 | pid:439665905 | ||
529 | cid:311 ecl:amb iyr:2018 | ||
530 | eyr:2030 | ||
531 | hgt:186cm byr:1950 | ||
532 | hcl:#cfa07d | ||
533 | |||
534 | pid:250175056 hcl:#efcc98 | ||
535 | byr:1981 cid:262 hgt:154cm ecl:gry iyr:2020 eyr:2027 | ||
536 | |||
537 | pid:461335515 iyr:2014 hcl:#f1cf00 hgt:180cm ecl:amb eyr:2027 | ||
538 | byr:1956 | ||
539 | |||
540 | iyr:2014 eyr:2030 cid:194 | ||
541 | pid:234623720 hcl:#733820 | ||
542 | hgt:164cm byr:1929 | ||
543 | ecl:blu | ||
544 | |||
545 | byr:1992 | ||
546 | eyr:2024 hcl:#ef8161 cid:216 | ||
547 | ecl:brn hgt:177cm iyr:2018 | ||
548 | pid:101726770 | ||
549 | |||
550 | hcl:#341e13 hgt:178cm iyr:2016 eyr:2029 byr:1945 pid:045325957 ecl:grn cid:99 | ||
551 | |||
552 | ecl:gry | ||
553 | iyr:2012 | ||
554 | cid:52 hgt:168cm byr:1943 | ||
555 | hcl:#cfa07d | ||
556 | pid:899608935 eyr:2030 | ||
557 | |||
558 | cid:241 | ||
559 | byr:1934 hgt:161cm eyr:2027 iyr:2011 hcl:#c0946f ecl:amb pid:346857644 | ||
560 | |||
561 | iyr:2019 hgt:178cm | ||
562 | hcl:#c0946f byr:1957 | ||
563 | eyr:2026 | ||
564 | ecl:brn pid:222885240 | ||
565 | |||
566 | ecl:blu | ||
567 | eyr:2021 cid:312 hcl:#733820 hgt:186cm iyr:2012 byr:1969 | ||
568 | pid:821704316 | ||
569 | |||
570 | hcl:#6b5442 cid:159 | ||
571 | hgt:180cm | ||
572 | iyr:2018 | ||
573 | eyr:2028 | ||
574 | ecl:hzl byr:1966 | ||
575 | pid:#e0238e | ||
576 | |||
577 | pid:622400994 eyr:2022 hcl:#5b6635 iyr:2012 byr:1980 | ||
578 | hgt:190cm ecl:oth | ||
579 | |||
580 | byr:1976 ecl:gry eyr:2020 iyr:2020 hgt:171cm pid:219878671 hcl:#6b5442 | ||
581 | |||
582 | hgt:163cm byr:1968 | ||
583 | pid:003521394 ecl:oth | ||
584 | iyr:2010 | ||
585 | cid:61 hcl:#888785 | ||
586 | |||
587 | cid:115 pid:810722029 hgt:166cm byr:1955 | ||
588 | ecl:blu eyr:2030 iyr:2018 | ||
589 | |||
590 | hgt:176cm | ||
591 | eyr:2025 | ||
592 | pid:617393532 hcl:#733820 byr:1975 iyr:2018 ecl:grn | ||
593 | |||
594 | hcl:#733820 byr:1979 pid:838168666 | ||
595 | hgt:190cm ecl:oth cid:330 | ||
596 | eyr:2029 iyr:2018 | ||
597 | |||
598 | eyr:1940 hgt:67cm iyr:2009 ecl:gry pid:#e76a62 byr:2020 hcl:z | ||
599 | |||
600 | hgt:190cm ecl:brn pid:396113351 | ||
601 | byr:1956 iyr:2010 | ||
602 | hcl:#6b5442 eyr:2024 | ||
603 | cid:256 | ||
604 | |||
605 | hcl:#efcc98 | ||
606 | hgt:178cm byr:1984 iyr:2013 pid:752620212 eyr:2021 ecl:gry | ||
607 | |||
608 | iyr:2014 hcl:#a97842 | ||
609 | hgt:166cm ecl:blu eyr:2024 | ||
610 | byr:1935 | ||
611 | pid:836748873 | ||
612 | |||
613 | cid:236 ecl:amb hgt:168cm iyr:2010 hcl:#602927 byr:1950 eyr:2026 pid:404810674 | ||
614 | |||
615 | eyr:2030 ecl:grn | ||
616 | byr:1975 pid:064596263 hgt:193cm | ||
617 | iyr:2019 cid:71 hcl:#a97842 | ||
618 | |||
619 | iyr:2014 | ||
620 | pid:298386733 hcl:#c0946f | ||
621 | hgt:180cm ecl:hzl cid:115 byr:1940 eyr:2023 | ||
622 | |||
623 | iyr:1960 hgt:139 ecl:#9db7b8 byr:1980 pid:#ef597b cid:54 eyr:2028 hcl:fdcda3 | ||
624 | |||
625 | iyr:2015 byr:1954 ecl:blu hgt:62in hcl:#ceb3a1 pid:253593755 eyr:2028 | ||
626 | |||
627 | eyr:2025 ecl:blu pid:216388098 iyr:2017 byr:1968 hgt:151cm hcl:#602927 | ||
628 | |||
629 | eyr:2022 hcl:#a97842 | ||
630 | pid:606979543 iyr:2013 ecl:grn cid:63 | ||
631 | hgt:186cm byr:1992 | ||
632 | |||
633 | ecl:gry | ||
634 | hgt:168cm hcl:#18171d iyr:2017 pid:670898814 byr:1983 | ||
635 | eyr:2022 | ||
636 | |||
637 | hgt:155cm ecl:grn iyr:2012 pid:837979074 eyr:2024 hcl:#888785 byr:1972 | ||
638 | |||
639 | iyr:2015 pid:970743533 hcl:#866857 eyr:2027 | ||
640 | byr:1921 ecl:brn | ||
641 | |||
642 | eyr:2022 | ||
643 | hgt:160cm | ||
644 | byr:1964 hcl:#efcc98 iyr:2019 ecl:oth pid:141923637 | ||
645 | |||
646 | byr:2029 pid:3313111652 ecl:brn eyr:2034 | ||
647 | iyr:2013 hgt:193cm hcl:z | ||
648 | |||
649 | pid:853890227 eyr:2029 | ||
650 | hcl:#efcc98 iyr:2021 byr:2003 ecl:#037c39 hgt:160cm | ||
651 | |||
652 | iyr:1927 | ||
653 | byr:1992 | ||
654 | eyr:2030 | ||
655 | hcl:#efcc98 | ||
656 | ecl:amb hgt:152cm pid:436765906 | ||
657 | |||
658 | iyr:2014 | ||
659 | hcl:#c0946f pid:207052381 | ||
660 | eyr:2024 ecl:hzl | ||
661 | hgt:177cm | ||
662 | byr:1923 | ||
663 | |||
664 | ecl:blu | ||
665 | iyr:2014 | ||
666 | eyr:2025 hgt:165cm | ||
667 | hcl:#733820 pid:343011857 byr:1967 | ||
668 | |||
669 | ecl:xry | ||
670 | eyr:2028 | ||
671 | iyr:2011 hgt:166in hcl:#c0946f | ||
672 | pid:805297331 | ||
673 | cid:167 byr:1926 | ||
674 | |||
675 | byr:1947 | ||
676 | pid:468012954 eyr:2026 ecl:oth iyr:2018 hgt:170cm hcl:#b6652a | ||
677 | |||
678 | hcl:#6b5442 ecl:brn | ||
679 | hgt:180cm cid:233 | ||
680 | pid:029789713 | ||
681 | byr:1920 iyr:2010 eyr:2024 | ||
682 | |||
683 | iyr:2010 eyr:2027 | ||
684 | hgt:156cm | ||
685 | hcl:#c0946f | ||
686 | byr:1960 pid:312723130 ecl:hzl | ||
687 | |||
688 | eyr:2023 byr:1959 iyr:2010 hgt:186cm pid:066768932 ecl:grn hcl:#602927 cid:310 | ||
689 | |||
690 | eyr:2030 pid:460535178 hgt:171cm ecl:gry iyr:2020 byr:1934 hcl:#888785 | ||
691 | |||
692 | hgt:64cm eyr:2021 byr:1995 cid:336 | ||
693 | ecl:gmt pid:926714223 iyr:2017 hcl:#18171d | ||
694 | |||
695 | eyr:2022 iyr:2010 | ||
696 | ecl:grn pid:285994301 cid:215 | ||
697 | hgt:186cm byr:1978 | ||
698 | |||
699 | hgt:63in hcl:#866857 | ||
700 | pid:386128445 iyr:2020 byr:1971 eyr:2021 ecl:gry | ||
701 | |||
702 | hgt:183cm hcl:#733820 iyr:2015 | ||
703 | ecl:blu pid:216205626 eyr:2022 byr:1941 | ||
704 | |||
705 | cid:150 ecl:amb pid:872515243 byr:1926 | ||
706 | eyr:1996 | ||
707 | hcl:#dedc39 hgt:67in iyr:2020 | ||
708 | |||
709 | byr:1927 ecl:brn cid:153 iyr:2011 | ||
710 | pid:165190810 hcl:#fffffd | ||
711 | eyr:2028 hgt:64in | ||
712 | |||
713 | pid:502603734 | ||
714 | byr:1966 iyr:2015 hgt:176cm cid:205 ecl:brn hcl:#fffffd eyr:2021 | ||
715 | |||
716 | hcl:#18171d hgt:158cm byr:1943 iyr:2019 | ||
717 | pid:058840094 | ||
718 | eyr:2023 | ||
719 | |||
720 | byr:1962 hcl:#b6652a ecl:grn | ||
721 | cid:297 | ||
722 | iyr:2010 pid:990422650 | ||
723 | hgt:154cm eyr:2020 | ||
724 | |||
725 | eyr:1934 iyr:2011 | ||
726 | ecl:gry | ||
727 | hcl:z byr:2004 hgt:63cm pid:6173356201 | ||
728 | |||
729 | pid:329432364 eyr:2029 | ||
730 | ecl:grn hcl:#18171d iyr:2013 | ||
731 | hgt:158cm byr:1960 | ||
732 | |||
733 | hcl:#efcc98 iyr:2016 hgt:186cm cid:215 | ||
734 | pid:852781253 eyr:2027 ecl:blu byr:1937 | ||
735 | |||
736 | hcl:#623a2f ecl:gry iyr:2020 byr:1972 hgt:182cm pid:073426952 eyr:2027 | ||
737 | |||
738 | hcl:#3317b9 byr:1950 pid:304511418 hgt:177cm cid:124 eyr:2020 ecl:hzl iyr:2014 | ||
739 | |||
740 | eyr:2029 | ||
741 | pid:034754507 byr:1936 | ||
742 | cid:265 ecl:#b50997 hgt:183cm | ||
743 | hcl:#623a2f iyr:1924 | ||
744 | |||
745 | eyr:2024 byr:1927 cid:243 ecl:gry hcl:#6b5442 pid:714355627 hgt:160cm | ||
746 | iyr:2016 | ||
747 | |||
748 | hgt:152cm | ||
749 | ecl:gry hcl:#a97842 | ||
750 | eyr:2029 byr:1952 | ||
751 | pid:555308923 iyr:2010 | ||
752 | |||
753 | byr:2008 | ||
754 | pid:19681314 hgt:180in iyr:2030 ecl:gry cid:272 | ||
755 | eyr:2023 | ||
756 | hcl:#b6652a | ||
757 | |||
758 | cid:234 | ||
759 | iyr:2014 byr:1940 ecl:hzl pid:042231105 hcl:#3bf69c hgt:172cm eyr:2029 | ||
760 | |||
761 | hcl:#efcc98 pid:831567586 hgt:190cm iyr:2017 | ||
762 | byr:1966 eyr:2024 ecl:blu | ||
763 | |||
764 | hcl:#341e13 ecl:blu | ||
765 | eyr:2022 cid:161 pid:197839646 iyr:2014 | ||
766 | |||
767 | hcl:#cfa07d | ||
768 | byr:1957 | ||
769 | iyr:2019 hgt:181cm | ||
770 | pid:543775141 ecl:oth eyr:2021 | ||
771 | |||
772 | hcl:z | ||
773 | pid:#596c41 eyr:2035 | ||
774 | byr:2008 iyr:1975 | ||
775 | ecl:#c66ee6 | ||
776 | hgt:150in | ||
777 | |||
778 | ecl:grn | ||
779 | hcl:#7d3b0c iyr:2016 | ||
780 | pid:804255369 eyr:2028 byr:1983 hgt:69in cid:82 | ||
781 | |||
782 | eyr:2022 | ||
783 | iyr:2013 hgt:191cm ecl:gry | ||
784 | hcl:#a97842 pid:186827268 byr:1969 | ||
785 | |||
786 | pid:871672398 eyr:2026 byr:1946 ecl:oth | ||
787 | iyr:2015 | ||
788 | hcl:#866857 hgt:185cm | ||
789 | |||
790 | byr:1973 | ||
791 | hgt:150cm | ||
792 | pid:905076707 | ||
793 | iyr:2017 | ||
794 | hcl:#2edf01 ecl:oth cid:221 eyr:2026 | ||
795 | |||
796 | eyr:2024 ecl:grn pid:955444191 hcl:z iyr:2015 byr:2008 hgt:151cm | ||
797 | |||
798 | byr:1958 hcl:#fffffd pid:218986541 cid:203 ecl:brn hgt:154cm | ||
799 | iyr:2014 | ||
800 | eyr:2026 | ||
801 | |||
802 | hcl:#623a2f byr:1964 ecl:oth iyr:2010 pid:525843363 hgt:164cm eyr:2025 | ||
803 | |||
804 | ecl:blu iyr:2013 hgt:193cm byr:1990 pid:612387132 hcl:#18171d cid:280 eyr:2028 | ||
805 | |||
806 | ecl:oth eyr:2022 | ||
807 | pid:110447037 hgt:187cm byr:1967 hcl:#efcc98 | ||
808 | |||
809 | byr:1930 | ||
810 | eyr:2026 hgt:159cm | ||
811 | iyr:2011 | ||
812 | ecl:hzl hcl:#6b5442 pid:923471212 | ||
813 | |||
814 | cid:350 | ||
815 | eyr:2029 pid:823592758 iyr:2018 | ||
816 | ecl:grn byr:1972 hgt:167cm hcl:#18171d | ||
817 | |||
818 | cid:76 eyr:2027 hcl:#6b5442 pid:099579798 byr:1930 | ||
819 | iyr:2020 | ||
820 | ecl:gry hgt:153cm | ||
821 | |||
822 | byr:1957 ecl:brn | ||
823 | hcl:z iyr:2016 pid:352677969 hgt:189cm | ||
824 | eyr:2029 | ||
825 | |||
826 | cid:143 eyr:2035 pid:602952079 | ||
827 | ecl:#9b73f0 hcl:#602927 | ||
828 | iyr:2022 byr:1975 | ||
829 | hgt:174cm | ||
830 | |||
831 | byr:1971 pid:741305897 hgt:192cm | ||
832 | ecl:amb hcl:#888785 eyr:2028 iyr:2011 | ||
833 | |||
834 | ecl:oth iyr:2016 | ||
835 | byr:1942 hgt:189cm hcl:#888785 eyr:2024 pid:054290182 | ||
836 | |||
837 | hcl:#a97842 | ||
838 | byr:1945 | ||
839 | ecl:amb pid:370849304 | ||
840 | eyr:2028 | ||
841 | iyr:2016 hgt:168cm | ||
842 | |||
843 | hgt:154cm iyr:2015 eyr:2030 byr:1952 ecl:hzl hcl:#341e13 pid:996518075 | ||
844 | |||
845 | byr:1941 ecl:amb iyr:2014 | ||
846 | hcl:#fffffd pid:560990286 eyr:2022 hgt:173cm | ||
847 | |||
848 | ecl:blu byr:1974 | ||
849 | hgt:150cm hcl:#ceb3a1 eyr:2020 iyr:2013 | ||
850 | pid:827415351 | ||
851 | |||
852 | hcl:#623a2f eyr:2027 iyr:2011 pid:913199234 ecl:oth | ||
853 | byr:1990 hgt:178cm | ||
854 | |||
855 | ecl:blu byr:1989 hcl:#b6652a | ||
856 | eyr:2026 pid:724881482 hgt:185cm iyr:2014 | ||
857 | |||
858 | cid:115 pid:255002731 eyr:2025 ecl:amb | ||
859 | byr:1934 iyr:2020 hcl:#7d3b0c | ||
860 | |||
861 | hgt:150cm byr:1969 ecl:blu iyr:2023 | ||
862 | hcl:#866857 pid:754288625 eyr:2029 | ||
863 | |||
864 | iyr:2011 hcl:#7d3b0c ecl:hzl | ||
865 | byr:1930 | ||
866 | hgt:188cm | ||
867 | eyr:2023 | ||
868 | pid:256556076 cid:136 | ||
869 | |||
870 | iyr:2025 byr:1978 | ||
871 | ecl:#fe30a9 hcl:#efcc98 eyr:2029 | ||
872 | pid:392032459 hgt:178cm | ||
873 | |||
874 | eyr:2027 iyr:2017 hgt:160in | ||
875 | byr:1990 pid:131099122 hcl:#623a2f ecl:amb | ||
876 | |||
877 | ecl:grn | ||
878 | byr:1978 | ||
879 | eyr:2029 hcl:#18171d | ||
880 | hgt:165cm pid:172369888 | ||
881 | cid:93 | ||
882 | iyr:2011 | ||
883 | |||
884 | ecl:hzl | ||
885 | hcl:#733820 iyr:2010 eyr:2029 pid:127253449 | ||
886 | hgt:156cm | ||
887 | byr:1963 | ||
888 | |||
889 | hcl:#6c8530 | ||
890 | iyr:2020 | ||
891 | byr:1929 eyr:2021 hgt:177cm ecl:oth pid:347925482 | ||
892 | |||
893 | eyr:2037 iyr:2026 | ||
894 | pid:163cm | ||
895 | hgt:174in byr:2007 hcl:c1305f cid:134 | ||
896 | ecl:#0cf85c | ||
897 | |||
898 | iyr:2011 pid:033811215 | ||
899 | hcl:#a97842 byr:2002 eyr:2021 hgt:186cm | ||
900 | ecl:brn | ||
901 | |||
902 | hcl:#a97842 | ||
903 | iyr:2020 eyr:2029 byr:1972 pid:535511110 hgt:160cm ecl:oth | ||
904 | |||
905 | ecl:grn cid:89 hgt:193cm pid:73793987 iyr:2021 eyr:2027 byr:1939 hcl:z | ||
906 | |||
907 | hcl:#623a2f | ||
908 | hgt:182cm cid:154 | ||
909 | pid:873863966 iyr:2018 byr:1999 ecl:brn eyr:2031 | ||
910 | |||
911 | iyr:2014 eyr:2029 | ||
912 | cid:71 hcl:#fffffd byr:1924 hgt:63in | ||
913 | ecl:gry pid:897972798 | ||
914 | |||
915 | hgt:76cm | ||
916 | hcl:z eyr:1955 | ||
917 | iyr:2012 byr:2001 pid:9425090 ecl:hzl | ||
918 | |||
919 | eyr:2021 | ||
920 | pid:501861442 | ||
921 | ecl:grn hcl:#d71ae9 | ||
922 | byr:1977 | ||
923 | hgt:167cm iyr:2015 | ||
924 | |||
925 | iyr:2014 | ||
926 | hgt:170cm ecl:gry byr:1928 cid:314 hcl:#602927 eyr:2029 | ||
927 | pid:836710987 | ||
928 | |||
929 | eyr:2027 hcl:#efcc98 ecl:amb iyr:2016 byr:1995 pid:603705616 hgt:179cm | ||
930 | |||
931 | eyr:2030 hcl:#602927 cid:105 byr:1943 ecl:hzl | ||
932 | pid:381601507 | ||
933 | hgt:188cm iyr:2020 | ||
934 | |||
935 | iyr:2011 | ||
936 | byr:1993 hcl:#c0946f pid:292649640 hgt:139 ecl:hzl cid:268 | ||
937 | eyr:1999 | ||
938 | |||
939 | cid:339 byr:1928 | ||
940 | ecl:brn eyr:2022 hcl:#733820 hgt:191cm pid:282733347 iyr:2019 | ||
941 | |||
942 | hgt:176cm | ||
943 | byr:1935 ecl:brn cid:252 eyr:2023 pid:105060622 iyr:2020 hcl:#18171d | ||
944 | |||
945 | ecl:hzl eyr:2029 | ||
946 | hgt:193cm pid:770254253 | ||
947 | hcl:#efcc98 iyr:2020 byr:1926 | ||
948 | |||
949 | pid:977785261 eyr:2022 iyr:2015 byr:1978 | ||
950 | hcl:#733820 hgt:172cm | ||
951 | ecl:brn | ||
952 | |||
953 | byr:2021 | ||
954 | hgt:160in | ||
955 | ecl:gmt | ||
956 | eyr:2032 cid:345 pid:179cm | ||
957 | hcl:8f5c13 iyr:2029 | ||
958 | |||
959 | iyr:2018 hgt:182cm ecl:gry | ||
960 | pid:897076789 eyr:2023 hcl:#866857 | ||
961 | byr:1980 | ||
962 | |||
963 | hgt:88 eyr:2039 cid:99 byr:2007 hcl:a1bb42 ecl:#a2f6bb | ||
964 | pid:2264966188 | ||
965 | iyr:2022 | ||
966 | |||
967 | iyr:2012 cid:59 ecl:gry eyr:2021 | ||
968 | byr:1931 | ||
969 | hgt:172cm hcl:#7d3b0c pid:862416147 | ||
970 | |||
971 | byr:1962 eyr:2025 | ||
972 | ecl:grn | ||
973 | hcl:#866857 hgt:180cm iyr:2014 pid:313647071 | ||
974 | |||
975 | eyr:2030 hgt:157cm byr:1985 | ||
976 | iyr:2020 | ||
977 | hcl:#7d3b0c pid:911544768 | ||
978 | ecl:grn | ||
979 | |||
980 | hgt:175cm | ||
981 | byr:1938 | ||
982 | iyr:2020 ecl:amb hcl:#602927 eyr:2026 pid:144411560 | ||
983 | |||
984 | iyr:2019 ecl:amb hcl:#888785 eyr:2025 hgt:187cm | ||
985 | pid:942054361 byr:1939 | ||
986 | |||
987 | cid:168 pid:722146139 byr:1952 ecl:grn | ||
988 | iyr:2014 hgt:97 | ||
989 | hcl:z | ||
990 | eyr:2023 | ||
991 | |||
992 | eyr:2024 pid:567528498 ecl:gry iyr:2012 byr:1990 | ||
993 | hcl:#733820 hgt:193cm | ||
994 | cid:293 | ||
995 | |||
996 | hcl:#bc352c pid:321838059 byr:1930 hgt:178cm cid:213 eyr:2023 ecl:amb | ||
997 | iyr:2017 | ||
998 | |||
999 | hgt:173cm byr:1925 pid:070222017 iyr:2013 hcl:#ceb3a1 ecl:gry eyr:2024 | ||
1000 | |||
diff --git a/2020/day4/passport.pl b/2020/day4/passport.pl new file mode 100644 index 0000000..26c6e32 --- /dev/null +++ b/2020/day4/passport.pl | |||
@@ -0,0 +1,68 @@ | |||
1 | use strict; | ||
2 | use warnings; | ||
3 | use Smart::Comments; | ||
4 | use DDP; | ||
5 | |||
6 | my $batch; | ||
7 | { | ||
8 | local $/; | ||
9 | open my $fh, '<', "input" or die "no input present, $!"; | ||
10 | $batch = <$fh>; | ||
11 | } | ||
12 | |||
13 | my $valid = 0; | ||
14 | |||
15 | # the file has to end with a empty line... | ||
16 | while ($batch =~ m/((?:[^\n][\n]?)+)/gm ) { | ||
17 | my $person_passport = $1; | ||
18 | my %passport; | ||
19 | |||
20 | if ($person_passport =~ m/byr:(?<byr>\d{4})\s/) { | ||
21 | if ($+{byr} >= 1920 and $+{byr} <= 2002) { | ||
22 | $passport{"byr"} = $+{byr}; | ||
23 | } | ||
24 | } | ||
25 | |||
26 | if ($person_passport =~ m/iyr:(?<iyr>\d{4})\s/) { | ||
27 | if ($+{iyr} >= 2010 and $+{iyr} <= 2020) { | ||
28 | $passport{"iyr"} = $+{iyr}; | ||
29 | } | ||
30 | } | ||
31 | |||
32 | if ($person_passport =~ m/eyr:(?<eyr>\d{4})\s/) { | ||
33 | if ($+{eyr} >= 2020 and $+{eyr} <= 2030) { | ||
34 | $passport{"eyr"} = $+{eyr}; | ||
35 | } | ||
36 | } | ||
37 | |||
38 | if ($person_passport =~ m/hgt:(?<hgt>\d+)(?<unit>\w{2})\s/) { | ||
39 | if ($+{unit} eq "cm") { | ||
40 | if ($+{hgt} >= 150 and $+{hgt} <= 193) { | ||
41 | $passport{"hgt"} = "$+{hgt}" . $+{unit}; | ||
42 | } | ||
43 | } elsif ($+{unit} eq "in") { | ||
44 | if ($+{hgt} >= 59 and $+{hgt} <= 76) { | ||
45 | $passport{"hgt"} = "$+{hgt}" . $+{unit}; | ||
46 | } | ||
47 | } | ||
48 | } | ||
49 | |||
50 | if ($person_passport =~ m/hcl:(?<hcl>#[a-f0-9]{6})\s/) { | ||
51 | $passport{"hcl"} = $+{hcl}; | ||
52 | } | ||
53 | |||
54 | if ($person_passport =~ m/ecl:(?<ecl>amb|blu|brn|gry|grn|hzl|oth)\s/) { | ||
55 | $passport{"ecl"} = $+{ecl}; | ||
56 | } | ||
57 | |||
58 | if ($person_passport =~ m/pid:(?<pid>[0-9]{9})\s/) { | ||
59 | $passport{"pid"} = $+{pid}; | ||
60 | } | ||
61 | |||
62 | if (keys %passport == 7) { | ||
63 | $valid++; | ||
64 | $valids{$passport{"pid"}} = \%passport; | ||
65 | } | ||
66 | } | ||
67 | |||
68 | print("$valid"); | ||