package Ġprocess Ċ Ċ import Ġkotlin . math . min Ċ import Ġmodel . Track Ċ Ċ fun ĠTrack . validate Notes () Ġ= ĊĠĠĠ Ġif Ġ( notes . isEmpty ()) Ġthis ĊĠĠĠ Ġelse Ġthis . copy ( ĊĠĠĠĠĠĠĠ Ġnotes Ġ= Ġnotes ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. sorted By Ġ{ Ġit . tick On Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . zip With Next () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ Ġ( note , Ġnext Note ) Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnote . copy ( tick Off Ġ= Ġmin ( note . tick Off , Ġnext Note . tick On )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. filter Ġ{ Ġnote Ġ-> Ġnote . length Ġ> Ġ 0 Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. plus ( it . last ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Indexed Ġ{ Ġindex , Ġnote Ġ-> Ġnote . copy ( id Ġ= Ġindex ) Ġ} ĊĠĠĠ Ġ) Ċ Ċ fun ĠTrack . fill Rest s ( excluded MaxLength : ĠLong ) Ġ= ĊĠĠĠ Ġif Ġ( notes . isEmpty ()) Ġthis ĊĠĠĠ Ġelse Ġthis . copy ( ĊĠĠĠĠĠĠĠ Ġnotes Ġ= Ġnotes . let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . zip With Next () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ Ġ( note , Ġnext Note ) Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( next Note . tick On Ġ- Ġnote . tick Off Ġ< Ġexcluded MaxLength ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnote . copy ( tick Off Ġ= Ġnext Note . tick On ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġnote ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. plus ( it . last ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ) Ċ Ċ const Ġval ĠREST S _ FILL ING _ MAX _ LENGTH _ DEN O MIN ATOR _ DEFAULT Ġ= Ġ 6 4 Ċ val Ġrest s Fill ing MaxLength Denom inator Options Ġ= ĠlistOf ( 8 , Ġ 1 6 , Ġ 3 2 , Ġ 6 4 , Ġ 1 2 8 ) Ċ