package Ġcom . ro si . mast s . utils čĊč Ċ import Ġkotlin . math . min čĊč Ċ fun ĠByteArray ?. to Hex Array String ( limit : ĠInt Ġ= Ġ- 1 ): ĠString Ġ{ čĊĠĠĠ Ġreturn Ġif Ġ( this Ġ== Ġnull ) Ġ{ čĊĠĠĠĠĠĠĠ Ġ" null " čĊĠĠĠ Ġ} Ġelse Ġ{ čĊĠĠĠĠĠĠĠ Ġtake ( if Ġ( limit Ġ> Ġ- 1 ) Ġlimit Ġelse Ġsize ). toByteArray (). as U ByteArray (). join ToString ( čĊĠĠĠĠĠĠĠĠĠĠĠ Ġlimit Ġ= Ġlimit , čĊĠĠĠĠĠĠĠĠĠĠĠ Ġprefix Ġ= Ġ"[", čĊĠĠĠĠĠĠĠĠĠĠĠ Ġpostfix Ġ= Ġ" ]", čĊĠĠĠĠĠĠĠĠĠĠĠ Ġseparator Ġ= Ġ", Ġ", čĊĠĠĠĠĠĠĠĠĠĠĠ Ġtransform Ġ= Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" 0 x " Ġ+ Ġit . toString ( 1 6 ). pad Start ( 2 , Ġ' 0 '). uppercase () čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) čĊĠĠĠ Ġ} č Ċ } čĊč Ċ object ĠByteArray Utils Ġ{ čĊĠĠĠ Ġfun Ġare Equals ( x : ĠByteArray ?, Ġx Length : ĠInt , Ġy : ĠByteArray ?, Ġy Length : ĠInt ): ĠBoolean Ġ{ čĊčĊĠĠĠĠĠĠĠ Ġif Ġ(( x Ġ== Ġnull Ġ&& Ġy Ġ!= Ġnull ) Ġ|| Ġ( x Ġ!= Ġnull Ġ&& Ġy Ġ== Ġnull )) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfalse čĊĠĠĠĠĠĠĠ Ġ} čĊčĊĠĠĠĠĠĠĠ Ġif Ġ( x Ġ== Ġnull Ġ&& Ġy Ġ== Ġnull ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtrue čĊĠĠĠĠĠĠĠ Ġ} čĊčĊčĊĠĠĠĠĠĠĠ Ġval Ġx Max Ġ= Ġmin ( x !!. size , Ġx Length ) čĊĠĠĠĠĠĠĠ Ġval Ġy Max Ġ= Ġmin ( y !!. size , Ġy Length ) čĊčĊĠĠĠĠĠĠĠ Ġprintln (" x : Ġ${ x . to Hex Array String () }") čĊĠĠĠĠĠĠĠ Ġprintln (" y : Ġ${ y . to Hex Array String () }") čĊčĊĠĠĠĠĠĠĠ Ġif Ġ( x Max Ġ!= Ġy Max ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfalse čĊĠĠĠĠĠĠĠ Ġ} čĊčĊĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 0 Ġuntil Ġx Max ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( x [ i ] Ġ!= Ġy [ i ]) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfalse čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠ Ġ} čĊčĊĠĠĠĠĠĠĠ Ġreturn Ġtrue čĊĠĠĠ Ġ} č Ċ }