package Ġeu . qi ou . aaf 4 k . report ings . plan Ċ Ċ import Ġeu . qi ou . aaf 4 k . util . time . TimeSpan Ċ Ċ class ĠEnd Mat urity Loan ( ĊĠĠĠ Ġpal : ĠDouble , Ġprivate Ġval Ġperiods : ĠList < TimeSpan >, Ġprivate Ġval Ġdis ag io : ĠDouble , ĊĠĠĠ Ġprivate Ġval Ġnorm inal Interest Rate : ĠDouble Ċ ) Ġ: ĊĠĠĠ ĠLo an ( ĊĠĠĠĠĠĠĠ Ġpal Ġ= Ġpal , ĊĠĠĠĠĠĠĠ Ġpayments Ġ= Ġ( 1 .. periods . size ). map Ġ{ Ġ( if Ġ( it Ġ== Ġperiods . size ) Ġpal Ġ* Ġ- 1 . 0 Ġelse Ġ 0 . 0 ) Ġ+ Ġpal Ġ* Ġnorm inal Interest Rate Ġ* Ġ- 1 Ġ}, ĊĠĠĠĠĠĠĠ Ġperiod Ġ= ĠTimeSpan ( start Ġ= Ġperiods . first (). start , Ġend Ġ= Ġperiods . last (). end ) ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġcash flow (): ĠMap < TimeSpan , ĠDouble > Ġ= ĊĠĠĠĠĠĠĠ Ġ( listOf ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTimeSpan ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġperiods . first (). start , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġperiods . first (). start ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġto Ġpal Ġ* Ġ( 1 Ġ- Ġdis ag io ) ĊĠĠĠĠĠĠĠ Ġ) Ġ+ Ġperiods . zip ( payments )). toMap () Ċ }