@ file : Suppress (" NOTH ING _ TO _ INLINE ") Ċ Ċ package Ġs sch r 1 5 . a oc solutions . util Ċ Ċ import Ġjava . math . BigDecimal Ċ import Ġjava . math . BigInteger Ċ Ċ /** Ċ Ġ* ĠA Ġ[ Map ] Ġwhich Ġreturns Ġnon - null Ġvalues Ġfor Ġmissing Ġkeys . Ċ Ġ*/ Ċ class ĠSolid Map < K , ĠV > Ġinternal Ġconstructor ( private Ġval Ġmap : ĠMap < K , ĠV >, Ġprivate Ġval Ġdefault : Ġ( K ) Ġ-> ĠV ) Ġ: ĠMap < K , ĠV > Ġby Ġmap Ġ{ ĊĠĠĠ Ġoverride Ġoperator Ġfun Ġget ( key : ĠK ) Ġ= Ġmap [ key ] Ġ?: Ġdefault ( key ) ĊĠĠĠ Ġoverride Ġfun Ġget OrDefault ( key : ĠK , ĠdefaultValue : ĠV ) Ġ= Ġmap . get OrDefault ( key , ĠdefaultValue ) Ċ } Ċ Ċ fun Ġ< K , ĠV > ĠMap < K , ĠV >. solid ( default : ĠV ): ĠSolid Map < K , ĠV > Ġ= ĠSolid Map ( this ) Ġ{ Ġdefault Ġ} Ċ fun Ġ< K , ĠV > ĠMap < K , ĠV >. solid ( default : Ġ( K ) Ġ-> ĠV ): ĠSolid Map < K , ĠV > Ġ= ĠSolid Map ( this , Ġdefault ) Ċ Ċ inline Ġfun Ġ< K , ĠV > ĠMap < K , ĠMutable List < V >> . removeAll ( value : ĠV ) Ġ{ ĊĠĠĠ Ġthis . forEach Ġ{ Ġ(_, Ġlist ) Ġ-> ĊĠĠĠĠĠĠĠ Ġlist . remove ( value ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ inline Ġfun Ġ< T > ĠIterable < T >. contains All ( other : ĠIterable < T >): ĠBoolean Ġ{ ĊĠĠĠ Ġreturn Ġother . all Ġ{ Ġthis . contains ( it ) Ġ} Ċ } Ċ Ċ inline Ġfun Ġ< T > ĠIterable < T >. contains All ( var arg Ġother : ĠT ): ĠBoolean Ġ{ ĊĠĠĠ Ġreturn Ġother . all Ġ{ Ġthis . contains ( it ) Ġ} Ċ } Ċ Ċ inline Ġfun ĠMutable List < in ĠChar >. addAll ( other : ĠCharSequence ) Ġ{ ĊĠĠĠ Ġother . forEach Ġ{ Ġthis . add ( it ) Ġ} Ċ } Ċ Ċ inline Ġfun Ġ< K , ĠV > ĠMap < K , ĠMutable List < V >> . addTo All ( value : ĠV , Ġvar arg Ġkeys : ĠK ) Ġ{ ĊĠĠĠ Ġkeys . forEach Ġ{ Ġthis [ it ]?. add ( value ) Ġ} Ċ } Ċ Ċ inline Ġfun Ġ< K > ĠMap < K , ĠMutable List < in ĠChar >> . addAll To All ( other : ĠCharSequence , Ġvar arg Ġkeys : ĠK ) Ġ{ ĊĠĠĠ Ġkeys . forEach Ġ{ Ġthis [ it ]?. addAll ( other ) Ġ} Ċ } Ċ Ċ inline Ġfun Ġ< T > ĠList < T >. only ( var arg Ġindices : ĠInt ) Ġ= Ġindices . map Ġ{ Ġthis [ it ] Ġ} Ċ Ċ inline Ġfun Ġ< T > ĠArray < T >. only ( var arg Ġindices : ĠInt ) Ġ= Ġindices . map Ġ{ Ġthis [ it ] Ġ} Ċ inline Ġfun ĠChar Array . only ( var arg Ġindices : ĠInt ) Ġ= Ġindices . map Ġ{ Ġthis [ it ] Ġ} Ċ inline Ġfun ĠByteArray . only ( var arg Ġindices : ĠInt ) Ġ= Ġindices . map Ġ{ Ġthis [ it ] Ġ} Ċ inline Ġfun ĠShort Array . only ( var arg Ġindices : ĠInt ) Ġ= Ġindices . map Ġ{ Ġthis [ it ] Ġ} Ċ inline Ġfun ĠInt Array . only ( var arg Ġindices : ĠInt ) Ġ= Ġindices . map Ġ{ Ġthis [ it ] Ġ} Ċ inline Ġfun ĠLong Array . only ( var arg Ġindices : ĠInt ) Ġ= Ġindices . map Ġ{ Ġthis [ it ] Ġ} Ċ inline Ġfun ĠFloat Array . only ( var arg Ġindices : ĠInt ) Ġ= Ġindices . map Ġ{ Ġthis [ it ] Ġ} Ċ inline Ġfun ĠDouble Array . only ( var arg Ġindices : ĠInt ) Ġ= Ġindices . map Ġ{ Ġthis [ it ] Ġ} Ċ Ċ inline Ġfun ĠIterable < Int >. mul () Ġ= Ġthis . fold ( 1 ) Ġ{ Ġacc , Ġi Ġ-> Ġacc Ġ* Ġi Ġ} Ċ inline Ġfun ĠIterable < Long >. mul () Ġ= Ġthis . fold ( 1 L ) Ġ{ Ġacc , Ġi Ġ-> Ġacc Ġ* Ġi Ġ} Ċ inline Ġfun ĠIterable < Float >. mul () Ġ= Ġthis . fold ( 1 f ) Ġ{ Ġacc , Ġi Ġ-> Ġacc Ġ* Ġi Ġ} Ċ inline Ġfun ĠIterable < Double >. mul () Ġ= Ġthis . fold ( 1 . 0 ) Ġ{ Ġacc , Ġi Ġ-> Ġacc Ġ* Ġi Ġ} Ċ inline Ġfun ĠIterable < BigInteger >. mul () Ġ= Ġthis . fold ( 1 . to BigInteger ()) Ġ{ Ġacc , Ġi Ġ-> Ġacc Ġ* Ġi Ġ} Ċ inline Ġfun ĠIterable < BigDecimal >. mul () Ġ= Ġthis . fold ( 1 . to BigDecimal ()) Ġ{ Ġacc , Ġi Ġ-> Ġacc Ġ* Ġi Ġ} Ċ Ċ inline Ġfun Ġ< T > ĠIterable < T >. multiply By ( block : Ġ( T ) Ġ-> ĠInt ) Ġ= Ġthis . map ( block ). mul () Ċ inline Ġfun Ġ< T > ĠIterable < T >. multiply By ( block : Ġ( T ) Ġ-> ĠLong ) Ġ= Ġthis . map ( block ). mul () Ċ inline Ġfun Ġ< T > ĠIterable < T >. multiply By ( block : Ġ( T ) Ġ-> ĠFloat ) Ġ= Ġthis . map ( block ). mul () Ċ inline Ġfun Ġ< T > ĠIterable < T >. multiply By ( block : Ġ( T ) Ġ-> ĠDouble ) Ġ= Ġthis . map ( block ). mul () Ċ inline Ġfun Ġ< T > ĠIterable < T >. multiply By ( block : Ġ( T ) Ġ-> ĠBigInteger ) Ġ= Ġthis . map ( block ). mul () Ċ inline Ġfun Ġ< T > ĠIterable < T >. multiply By ( block : Ġ( T ) Ġ-> ĠBigDecimal ) Ġ= Ġthis . map ( block ). mul () ĊĊ