package Ġcom . oval info . starter . model Ċ Ċ import Ġjava . time . LocalDate Ċ import Ġjava . time . Zone Id Ċ import Ġjava . util .* Ċ Ċ data Ġclass ĠAnimal ( val Ġnickname : ĠString , Ġvar Ġage : ĠInt , Ġvar Ġdate OfBirth : ĠDate Ġ= ĠDate ()) Ġ{ ĊĠĠĠ Ġfun Ġcopy ( nickname : ĠString Ġ= this . nickname , Ġage : ĠInt Ġ= Ġthis . age ) Ġ= ĠAnimal ( nickname , Ġage , ĊĠĠĠĠĠĠĠ Ġdate OfBirth Ġ= ĠDate . from ( LocalDate . now (). minus Years ( age . to Long ()). at Start OfDay (). at Zone ( ĊĠĠĠĠĠĠĠ ĠZone Id . system Default ()). to Instant ()) Ġ) ĊĠĠĠ Ġoperator Ġfun Ġplus ( anim : ĠAnimal ): ĠAnimal Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġanim ĊĠĠĠĠĠĠĠ Ġresult . age Ġ= Ġanim . age Ġ+ Ġthis . age ĊĠĠĠĠĠĠĠ Ġresult . date OfBirth Ġ= Ġanim . date OfBirth ĊĠĠĠĠĠĠĠ Ġreturn Ġresult ĊĠĠĠ Ġ} Ċ } ĊĊĊ