class ĠSeries ( input : ĠString ) Ġ{ ĊĠĠĠ Ġprivate Ġval Ġdigits Ġ= Ġinput . map Ġ{ ĊĠĠĠĠĠĠĠ Ġrequire ( it . is Digit ()) ĊĠĠĠĠĠĠĠ Ġit . toString (). to Long () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget L argest Product ( span : ĠInt ): ĠLong Ġ{ ĊĠĠĠĠĠĠĠ Ġrequire ( span Ġ>= Ġ 0 ) ĊĠĠĠĠĠĠĠ Ġrequire ( span Ġ<= Ġdigits . size ) ĊĠĠĠĠĠĠĠ Ġval Ġmax Ġ= Ġ( 1 .. digits . size Ġ- Ġspan ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ Ġproduct ( it , Ġspan ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. max () ĊĠĠĠĠĠĠĠ Ġreturn Ġmax Ġ?: Ġ 1 ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġproduct ( index : ĠInt , Ġlength : ĠInt ) Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdigits . slice ( index Ġuntil Ġindex Ġ+ Ġlength ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. reduce Ġ{ Ġproduct , Ġnumber Ġ-> Ġproduct Ġ* Ġnumber Ġ} Ċ Ċ } Ċ