package Ġke k . en xy . data . read write Ċ Ċ import Ġandroid . n fc . tech . M if are Classic Ċ import Ġke k . en xy . data . model . Sector Ċ import Ġke k . en xy . data . read write . model .* Ċ import Ġjava . nio . ByteBuffer Ċ import Ġkotlin . experimental . inv Ċ Ċ class ĠRead Write DataSource Impl Ġ: ĠRead Write DataSource Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġwrite Sector ( m if are Classic : ĠM if are Classic , Ġsector : ĠS ector ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġblock Ġ= Ġm if are Classic . sector To Block ( sector . index ) ĊĠĠĠĠĠĠĠ Ġval Ġblocks Count Ġ= Ġm if are Classic . getBlock Count In Sector ( sector . index ) ĊĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 0 Ġuntil Ġblocks Count Ġ- Ġ 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm if are Classic . write Block ( block Ġ+ Ġi , Ġsector . data [ i ]) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Sector ( m if are Classic : ĠM if are Classic , Ġsector Id : ĠInt ): ĠS ector Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġblock Ġ= Ġm if are Classic . sector To Block ( sector Id ) ĊĠĠĠĠĠĠĠ Ġval Ġblocks Count Ġ= Ġm if are Classic . getBlock Count In Sector ( sector Id ) ĊĠĠĠĠĠĠĠ Ġval Ġdata Ġ= ĠArray ( blocks Count ) Ġ{ ĠByteArray ( M if are Classic . BLOCK _ SIZE ) Ġ} ĊĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 0 Ġuntil Ġblocks Count ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdata [ i ] Ġ= Ġm if are Classic . read Block ( block Ġ+ Ġi ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn ĠS ector ( sector Id , Ġdata ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Dump From Sector s ( ĊĠĠĠĠĠĠĠ Ġuid : ĠString , ĊĠĠĠĠĠĠĠ Ġsector 4 : ĠS ector , ĊĠĠĠĠĠĠĠ Ġsector 5 : ĠS ector ĊĠĠĠ Ġ): ĠDump Ġ= ĠDump ( uid , Ġsector 4 , Ġsector 5 ) Ċ } Ċ