package Ġcom . la oh u . kit . util Ċ Ċ object ĠHex Dump Ġ{ ĊĠĠĠ Ġprivate Ġval Ġm _ hex Codes Ġ= Ġchar ArrayOf ( ĊĠĠĠĠĠĠĠ Ġ' 0 ', Ġ' 1 ', Ġ' 2 ', Ġ' 3 ', Ġ' 4 ', Ġ' 5 ', ĊĠĠĠĠĠĠĠ Ġ' 6 ', Ġ' 7 ', Ġ' 8 ', Ġ' 9 ', Ġ' a ', Ġ' b ', Ġ' c ', Ġ' d ', Ġ' e ', Ġ' f ' ĊĠĠĠ Ġ) ĊĠĠĠ Ġprivate Ġval Ġm _ shifts Ġ= Ġint ArrayOf ( ĊĠĠĠĠĠĠĠĠ 6 0 , Ġ 5 6 , Ġ 5 2 , Ġ 4 8 , Ġ 4 4 , Ġ 4 0 , Ġ 3 6 , Ġ 3 2 , Ġ 2 8 , ĊĠĠĠĠĠĠĠĠ 2 4 , Ġ 2 0 , Ġ 1 6 , Ġ 1 2 , Ġ 8 , Ġ 4 , Ġ 0 ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġprivate Ġfun Ġto Hex ( value : ĠLong , Ġdigit Num : ĠInt ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= ĠStringBuilder ( digit Num ) ĊĠĠĠĠĠĠĠ Ġfor Ġ( j Ġin Ġ 0 Ġuntil Ġdigit Num ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġindex Ġ= Ġ( value Ġshr Ġm _ shifts [ j Ġ+ Ġ( 1 6 Ġ- Ġdigit Num )] Ġand Ġ 1 5 ). toInt () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresult . append ( m _ hex Codes [ index ]) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġresult . toString () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġto Hex ( value : ĠByte ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġto Hex ( value . to Long (), Ġ 2 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġto Hex ( value : ĠShort ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġto Hex ( value . to Long (), Ġ 4 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġto Hex ( value : ĠInt ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġto Hex ( value . to Long (), Ġ 8 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġto Hex ( value : ĠLong ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġto Hex ( value , Ġ 1 6 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Jvm Over loads ĊĠĠĠ Ġfun Ġto Hex ( ĊĠĠĠĠĠĠĠ Ġvalue : ĠByteArray , Ġoffset : ĠInt Ġ= Ġ 0 , ĊĠĠĠĠĠĠĠ Ġlength : ĠInt Ġ= Ġvalue . size ĊĠĠĠ Ġ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠretVal Ġ= ĠStringBuilder () ĊĠĠĠĠĠĠĠ Ġval Ġend Ġ= Ġoffset Ġ+ Ġlength ĊĠĠĠĠĠĠĠ Ġfor Ġ( x Ġin Ġoffset Ġuntil Ġend ) ĠretVal . append ( to Hex ( value [ x ])) ĊĠĠĠĠĠĠĠ Ġreturn ĠretVal . toString () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġrestore Bytes ( hex : ĠString ): ĠByteArray ? Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġbytes Ġ= ĠByteArray ( hex . length Ġ/ Ġ 2 ) ĊĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġbytes . indices ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġc 1 Ġ= Ġchar To Number ( hex [ 2 Ġ* Ġi ]) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġc 2 Ġ= Ġchar To Number ( hex [ 2 Ġ* Ġi Ġ+ Ġ 1 ]) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( c 1 Ġ== Ġ- 1 Ġ|| Ġc 2 Ġ== Ġ- 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbytes [ i ] Ġ= Ġ(( c 1 Ġshl Ġ 4 ) Ġ+ Ġc 2 ). to Byte () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġbytes ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġchar To Number ( c : ĠChar ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( c ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġin Ġ' 0 ' .. ' 9 ' Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġc Ġ- Ġ' 0 ' ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġin Ġ' a ' .. ' f ' Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġc Ġ- Ġ' a ' Ġ+ Ġ 0 xa ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġin Ġ' A ' .. ' F ' Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġc Ġ- Ġ' A ' Ġ+ Ġ 0 xA ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ- 1 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }