/** Ċ Ġ* ĠCopyright Ġ( C ) Ġ 2 0 1 9 - present Ġa lex n 0 Ċ Ġ* ĠAll Ġrights Ġreserved . Ċ Ġ*/ Ċ package Ġcom . opt 2 code . core . bool . comp arable Ċ Ċ import Ġcom . opt 2 code . core . obj . Comparable V Ċ import Ġcom . opt 2 code . core . obj . Data Ċ import Ġcom . opt 2 code . core . obj . Pre Object V Ċ import Ġcom . opt 2 code . core . obj . Pre Object V _ Ċ Ċ class ĠL t V _< T : ĠComparable V >( ĊĠĠĠĠĠĠĠ Ġoverride Ġval Ġfirst : ĠT , ĊĠĠĠĠĠĠĠ Ġoverride Ġval Ġsecond : ĠT , ĊĠĠĠĠĠĠĠ Ġdata : ĠData Ġ= ĠData (), Ġo : ĠPre Object V Ġ= ĠPre Object V _. pre Object V ( data ) Ċ ): ĠPre Object V Ġby Ġo , ĠL t V < T > Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġnew _( substitute : ĠBoolean ): ĠL t V < T > Ġ= ĠL t V _( first , Ġsecond , Ġdata _. copy ( substitute Ġ= Ġsubstitute )) ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġ< T : ĠComparable V > Ġlt V ( first : ĠT , Ġsecond : ĠT ): ĠL t V < T > Ġ= ĠL t V _( first , Ġsecond ) ĊĠĠĠ Ġ} Ċ Ċ }