package Ġat . pe tr ak . hex cast ing . common . cast ing . operators . math . bit Ċ Ċ import Ġat . pe tr ak . hex cast ing . api . spell .* Ċ import Ġat . pe tr ak . hex cast ing . api . spell . cast ing . Cast ing Context Ċ import Ġkotlin . math . round ToInt Ċ Ċ object ĠOp And Ġ: ĠConst Man a Operator Ġ{ ĊĠĠĠ Ġoverride Ġval Ġargc Ġ= Ġ 2 ĊĊĠĠĠ Ġoverride Ġfun Ġexecute ( args : ĠList < Spell Datum <* >>, Ġctx : ĠCast ing Context ): ĠList < Spell Datum <* >> Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġfirst Param Ġ= Ġnum Or List ( args [ 0 ], Ġ 0 ) ĊĊĠĠĠĠĠĠĠ Ġif Ġ( first Param . right (). isPresent ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlist 1 Ġ= Ġfirst Param . right (). get () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlist 2 Ġ= Ġargs . get Checked < Spell List >( 1 , Ġargc ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġlist 1 . filter Ġ{ Ġx Ġ-> Ġlist 2 . any ( x :: t oler ant Equals ) Ġ}. as Spell Result ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġnum 1 Ġ= Ġfirst Param . left (). get (). round ToInt () ĊĠĠĠĠĠĠĠ Ġval Ġnum 2 Ġ= Ġargs . get Checked < Double >( 1 , Ġargc ). round ToInt () ĊĠĠĠĠĠĠĠ Ġreturn Ġ( num 1 Ġand Ġnum 2 ). as Spell Result ĊĠĠĠ Ġ} Ċ } Ċ