fun Ġday 0 4 ( file : ĠList < String >): ĠInt Ġ{ ĊĊĠ Ġval Ġfields Ġ= ĠlistOf < Pair < String , Ġ( String ) Ġ-> ĠBoolean >>( ĊĠĠĠ Ġ" by r " Ġto Ġ{ Ġit . toInt () Ġin Ġ 1 9 2 0 Ġ.. Ġ 2 0 0 2 Ġ}, ĊĠĠĠ Ġ" i yr " Ġto Ġ{ Ġit . toInt () Ġin Ġ 2 0 1 0 Ġ.. Ġ 2 0 2 0 Ġ}, ĊĠĠĠ Ġ" ey r " Ġto Ġ{ Ġit . toInt () Ġin Ġ 2 0 2 0 Ġ.. Ġ 2 0 3 0 Ġ}, ĊĠĠĠ Ġ" h gt " Ġto Ġ{ ĊĠĠĠĠĠ Ġwhen Ġ( it . take Last ( 2 )) Ġ{ ĊĠĠĠĠĠĠĠ Ġ" cm " Ġ-> Ġit . drop Last ( 2 ). toInt () Ġin Ġ 1 5 0 Ġ.. Ġ 1 9 3 ĊĠĠĠĠĠĠĠ Ġ" in " Ġ-> Ġit . drop Last ( 2 ). toInt () Ġin Ġ 5 9 Ġ.. Ġ 7 6 ĊĠĠĠĠĠĠĠ Ġelse Ġ-> Ġfalse ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ}, ĊĠĠĠ Ġ" h cl " Ġto Ġ{ Ġit . matches ( Regex ("# [ 0 - 9 a - f ]{ 6 } ")) Ġ}, ĊĠĠĠ Ġ" e cl " Ġto Ġ{ Ġit Ġin ĠlistOf (" amb ", Ġ" bl u ", Ġ" br n ", Ġ" gry ", Ġ" gr n ", Ġ" hz l ", Ġ" oth ") Ġ}, ĊĠĠĠ Ġ" pid " Ġto Ġ{ Ġit . matches ( Regex ("[ 0 - 9 ]{ 9 } ")) Ġ}, Ċ // ĠĠĠ Ġ" cid ", Ġnow Ġ 1 0 0 % Ġoptional Ġ^ _ ^ ĊĠ Ġ) ĊĊĠ Ġval Ġpass ports Ġ= Ġfile . join ToString ( separator Ġ= Ġ" Ġ"). split (" Ġ Ġ") ĊĊĠ Ġreturn Ġpass ports . count Ġ{ Ġp Ġ-> ĊĠĠĠ Ġp . split (" Ġ"). map Ġ{ Ġit . split (": ")[ 0 ] Ġ}. contains All ( fields . map Ġ{ Ġit . first Ġ}) Ġ&& ĊĠĠĠĠĠĠĠ Ġp . split (" Ġ"). map Ġ{ Ġit . split (": "). map Ġ{ Ġit . strip () Ġ} Ġ}. all Ġ{ Ġ( k , Ġv ) Ġ-> ĊĠĠĠĠĠĠĠĠĠ Ġk Ġ== Ġ" cid " Ġ|| Ġfields . first Ġ{ Ġit . first Ġ== Ġk Ġ}. second . invoke ( v ) Ġ?: Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĠ Ġ} Ċ } Ċ