package Ġorg . k omp uting . k hash . ri pe md 1 6 0 Ċ Ċ /** Ċ Ġ* Ġimplementation Ġof ĠR I PE MD Ġsee , Ċ Ġ* Ġhttp :// www . es at . k ule u ven . ac . be /~ bos se la e / ri pe md 1 6 0 . html Ċ Ġ*/ Ċ public Ġclass ĠR ipe md 1 6 0 Digest Ġ{ ĊĊĠĠĠ Ġprivate Ġvar Ġh 0 : ĠInt Ġ= Ġ 0 ĊĠĠĠ Ġprivate Ġvar Ġh 1 : ĠInt Ġ= Ġ 0 ĊĠĠĠ Ġprivate Ġvar Ġh 2 : ĠInt Ġ= Ġ 0 ĊĠĠĠ Ġprivate Ġvar Ġh 3 : ĠInt Ġ= Ġ 0 ĊĠĠĠ Ġprivate Ġvar Ġh 4 : ĠInt Ġ= Ġ 0 Ġ// ĠIV 's ĊĊĠĠĠ Ġprivate Ġval Ġx Ġ= ĠInt Array ( 1 6 ) ĊĠĠĠ Ġprivate Ġvar Ġx Off : ĠInt Ġ= Ġ 0 ĊĊĠĠĠ Ġprivate Ġval Ġx Buf Ġ= ĠByteArray ( 4 ) ĊĠĠĠ Ġprivate Ġvar Ġx Buf Off : ĠInt Ġ= Ġ 0 ĊĊĠĠĠ Ġprivate Ġvar Ġbyte Count : ĠLong Ġ= Ġ 0 ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġreset () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġpublic Ġfun Ġupdate ( input : ĠByte ) Ġ{ ĊĠĠĠĠĠĠĠ Ġx Buf [ x Buf Off ++] Ġ= Ġinput ĊĊĠĠĠĠĠĠĠ Ġif Ġ( x Buf Off Ġ== Ġx Buf . size ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprocess Word ( x Buf , Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġx Buf Off Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġbyte Count ++ ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġpublic Ġfun Ġupdate ( input : ĠByteArray , Ġinput Offset : ĠInt , Ġlen : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġpos Ġ= Ġinput Offset ĊĠĠĠĠĠĠĠ Ġvar Ġto Process Ġ= Ġlen ĊĠĠĠĠĠĠĠ Ġ// ĊĠĠĠĠĠĠĠ Ġ// Ġfill Ġthe Ġcurrent Ġword ĊĠĠĠĠĠĠĠ Ġ// ĊĠĠĠĠĠĠĠ Ġwhile Ġ( x Buf Off Ġ!= Ġ 0 Ġ&& Ġto Process Ġ> Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġupdate ( input [ pos ]) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġpos ++ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġto Process -- ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// ĊĠĠĠĠĠĠĠ Ġ// Ġprocess Ġwhole Ġwords . ĊĠĠĠĠĠĠĠ Ġ// ĊĠĠĠĠĠĠĠ Ġwhile Ġ( to Process Ġ> Ġx Buf . size ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprocess Word ( input , Ġpos ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġpos Ġ+= Ġx Buf . size ĊĠĠĠĠĠĠĠĠĠĠĠ Ġto Process Ġ-= Ġx Buf . size ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbyte Count Ġ+= Ġx Buf . size . to Long () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// ĊĠĠĠĠĠĠĠ Ġ// Ġload Ġin Ġthe Ġremainder . ĊĠĠĠĠĠĠĠ Ġ// ĊĠĠĠĠĠĠĠ Ġwhile Ġ( to Process Ġ> Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġupdate ( input [ pos ]) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġpos ++ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġto Process -- ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġfinish () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġbit Length Ġ= Ġbyte Count Ġshl Ġ 3 ĊĊĠĠĠĠĠĠĠ Ġ// ĊĠĠĠĠĠĠĠ Ġ// Ġadd Ġthe Ġpad Ġbytes . ĊĠĠĠĠĠĠĠ Ġ// ĊĠĠĠĠĠĠĠ Ġupdate ( 1 2 8 . to Byte ()) ĊĊĠĠĠĠĠĠĠ Ġwhile Ġ( x Buf Off Ġ!= Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġupdate ( 0 . to Byte ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġprocess Length ( bit Length ) ĊĊĠĠĠĠĠĠĠ Ġprocess Block () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġreset Ġthe Ġchaining Ġvariables Ġto Ġthe ĠIV Ġvalues . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġreset () Ġ{ ĊĠĠĠĠĠĠĠ Ġbyte Count Ġ= Ġ 0 ĊĊĠĠĠĠĠĠĠ Ġx Buf Off Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġx Buf . indices ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġx Buf [ i ] Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġh 0 Ġ= Ġ 0 x 6 7 4 5 2 3 0 1 ĊĠĠĠĠĠĠĠ Ġh 1 Ġ= Ġ- 0 x 1 0 3 2 5 4 7 7 ĊĠĠĠĠĠĠĠ Ġh 2 Ġ= Ġ- 0 x 6 7 4 5 2 3 0 2 ĊĠĠĠĠĠĠĠ Ġh 3 Ġ= Ġ 0 x 1 0 3 2 5 4 7 6 ĊĠĠĠĠĠĠĠ Ġh 4 Ġ= Ġ- 0 x 3 c 2 d 1 e 1 0 ĊĊĠĠĠĠĠĠĠ Ġx Off Ġ= Ġ 0 ĊĊĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġx . indices ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġx [ i ] Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġprocess Word ( input Word : ĠByteArray , Ġinput Offset : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġx [ x Off ++] Ġ= Ġ( input Word [ input Offset ]. toInt () Ġand Ġ 0 xff Ġor Ġ( input Word [ input Offset Ġ+ Ġ 1 ]. toInt () Ġand Ġ 0 xff Ġshl Ġ 8 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġor Ġ( input Word [ input Offset Ġ+ Ġ 2 ]. toInt () Ġand Ġ 0 xff Ġshl Ġ 1 6 ) Ġor Ġ( input Word [ input Offset Ġ+ Ġ 3 ]. toInt () Ġand Ġ 0 xff Ġshl Ġ 2 4 )) ĊĊĠĠĠĠĠĠĠ Ġif Ġ( x Off Ġ== Ġ 1 6 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprocess Block () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġprocess Length ( bit Length : ĠLong ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( x Off Ġ> Ġ 1 4 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprocess Block () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġx [ 1 4 ] Ġ= Ġ( bit Length Ġand Ġ- 0 x 1 ). toInt () ĊĠĠĠĠĠĠĠ Ġx [ 1 5 ] Ġ= Ġbit Length . ush r ( 3 2 ). toInt () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġunpack Word ( word : ĠInt , Ġout : ĠByteArray , Ġout Offset : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġout [ out Offset ] Ġ= Ġword . to Byte () ĊĠĠĠĠĠĠĠ Ġout [ out Offset Ġ+ Ġ 1 ] Ġ= Ġword . ush r ( 8 ). to Byte () ĊĠĠĠĠĠĠĠ Ġout [ out Offset Ġ+ Ġ 2 ] Ġ= Ġword . ush r ( 1 6 ). to Byte () ĊĠĠĠĠĠĠĠ Ġout [ out Offset Ġ+ Ġ 3 ] Ġ= Ġword . ush r ( 2 4 ). to Byte () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġpublic Ġfun Ġdo Final ( out : ĠByteArray , Ġout Offset : ĠInt ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġfinish () ĊĊĠĠĠĠĠĠĠ Ġunpack Word ( h 0 , Ġout , Ġout Offset ) ĊĠĠĠĠĠĠĠ Ġunpack Word ( h 1 , Ġout , Ġout Offset Ġ+ Ġ 4 ) ĊĠĠĠĠĠĠĠ Ġunpack Word ( h 2 , Ġout , Ġout Offset Ġ+ Ġ 8 ) ĊĠĠĠĠĠĠĠ Ġunpack Word ( h 3 , Ġout , Ġout Offset Ġ+ Ġ 1 2 ) ĊĠĠĠĠĠĠĠ Ġunpack Word ( h 4 , Ġout , Ġout Offset Ġ+ Ġ 1 6 ) ĊĊĠĠĠĠĠĠĠ Ġreset () ĊĊĠĠĠĠĠĠĠ Ġreturn ĠDIG EST _ LENGTH ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/* ĊĠĠĠĠ Ġ* Ġrotate Ġint Ġx Ġleft Ġn Ġbits . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġrotate Left ( x : ĠInt , Ġn : ĠInt ) Ġ= Ġx Ġshl Ġn Ġor Ġx . ush r ( 3 2 Ġ- Ġn ) ĊĊĠĠĠ Ġ/* ĊĠĠĠĠ Ġ* Ġf 1 , f 2 , f 3 , f 4 , f 5 Ġare Ġthe Ġbasic ĠR I PE MD 1 6 0 Ġfunctions . ĊĠĠĠĠ Ġ*/ ĊĊĠĠĠ Ġ/* ĊĠĠĠĠ Ġ* Ġrounds Ġ 0 - 1 5 ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġf 1 ( x : ĠInt , Ġy : ĠInt , Ġz : ĠInt ) Ġ= Ġx Ġxor Ġy Ġxor Ġz ĊĊĠĠĠ Ġ/* ĊĠĠĠĠ Ġ* Ġrounds Ġ 1 6 - 3 1 ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġf 2 ( x : ĠInt , Ġy : ĠInt , Ġz : ĠInt ) Ġ= Ġx Ġand Ġy Ġor Ġ( x . inv () Ġand Ġz ) ĊĊĠĠĠ Ġ/* ĊĠĠĠĠ Ġ* Ġrounds Ġ 3 2 - 4 7 ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġf 3 ( x : ĠInt , Ġy : ĠInt , Ġz : ĠInt ) Ġ= Ġx Ġor Ġy . inv () Ġxor Ġz ĊĊĠĠĠ Ġ/* ĊĠĠĠĠ Ġ* Ġrounds Ġ 4 8 - 6 3 ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġf 4 ( x : ĠInt , Ġy : ĠInt , Ġz : ĠInt ) Ġ= Ġx Ġand Ġz Ġor Ġ( y Ġand Ġz . inv ()) ĊĊĠĠĠ Ġ/* ĊĠĠĠĠ Ġ* Ġrounds Ġ 6 4 - 7 9 ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġf 5 ( x : ĠInt , Ġy : ĠInt , Ġz : ĠInt ) Ġ= Ġx Ġxor Ġ( y Ġor Ġz . inv ()) ĊĊĠĠĠ Ġprivate Ġfun Ġprocess Block () Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġaa Ġ= Ġh 0 ĊĠĠĠĠĠĠĠ Ġvar Ġa Ġ= Ġaa ĊĠĠĠĠĠĠĠ Ġvar Ġbb Ġ= Ġh 1 ĊĠĠĠĠĠĠĠ Ġvar Ġb Ġ= Ġbb ĊĠĠĠĠĠĠĠ Ġvar Ġcc Ġ= Ġh 2 ĊĠĠĠĠĠĠĠ Ġvar Ġc Ġ= Ġcc ĊĠĠĠĠĠĠĠ Ġvar Ġdd Ġ= Ġh 3 ĊĠĠĠĠĠĠĠ Ġvar Ġd Ġ= Ġdd ĊĠĠĠĠĠĠĠ Ġvar Ġee Ġ= Ġh 4 ĊĠĠĠĠĠĠĠ Ġvar Ġe Ġ= Ġee ĊĊĠĠĠĠĠĠĠ Ġ// ĊĠĠĠĠĠĠĠ Ġ// ĠRound s Ġ 1 Ġ- Ġ 1 6 ĊĠĠĠĠĠĠĠ Ġ// ĊĠĠĠĠĠĠĠ Ġ// Ġleft ĊĠĠĠĠĠĠĠ Ġa Ġ= Ġrotate Left ( a Ġ+ Ġf 1 ( b , Ġc , Ġd ) Ġ+ Ġx [ 0 ], Ġ 1 1 ) Ġ+ Ġe ĊĠĠĠĠĠĠĠ Ġc Ġ= Ġrotate Left ( c , Ġ 1 0 ) ĊĠĠĠĠĠĠĠ Ġe Ġ= Ġrotate Left ( e Ġ+ Ġf 1 ( a , Ġb , Ġc ) Ġ+ Ġx [ 1 ], Ġ 1 4 ) Ġ+ Ġd ĊĠĠĠĠĠĠĠ Ġb Ġ= Ġrotate Left ( b , Ġ 1 0 ) ĊĠĠĠĠĠĠĠ Ġd Ġ= Ġrotate Left ( d Ġ+ Ġf 1 ( e , Ġa , Ġb ) Ġ+ Ġx [ 2 ], Ġ 1 5 ) Ġ+ Ġc ĊĠĠĠĠĠĠĠ Ġa Ġ= Ġrotate Left ( a , Ġ 1 0 ) ĊĠĠĠĠĠĠĠ Ġc Ġ= Ġrotate Left ( c Ġ+ Ġf 1 ( d , Ġe , Ġa ) Ġ+ Ġx [ 3 ], Ġ 1 2 ) Ġ+ Ġb ĊĠĠĠĠĠĠĠ Ġe Ġ= Ġrotate Left ( e , Ġ 1 0 ) ĊĠĠĠĠĠĠĠ Ġb Ġ= Ġrotate Left ( b Ġ+ Ġf 1 ( c , Ġd , Ġe ) Ġ+ Ġx [ 4 ], Ġ 5 ) Ġ+ Ġa ĊĠĠĠĠĠĠĠ Ġd Ġ= Ġrotate Left ( d , Ġ 1 0 ) ĊĠĠĠĠĠĠĠ Ġa Ġ= Ġrotate Left ( a Ġ+ Ġf 1 ( b , Ġc , Ġd ) Ġ+ Ġx [ 5 ], Ġ 8 ) Ġ+ Ġe ĊĠĠĠĠĠĠĠ Ġc Ġ= Ġrotate Left ( c , Ġ 1 0 ) ĊĠĠĠĠĠĠĠ Ġe Ġ= Ġrotate Left ( e Ġ+ Ġf 1 ( a , Ġb , Ġc ) Ġ+ Ġx [ 6 ], Ġ 7 ) Ġ+ Ġd ĊĠĠĠĠĠĠĠ Ġb Ġ= Ġrotate Left ( b , Ġ 1 0 ) ĊĠĠĠĠĠĠĠ Ġd Ġ= Ġrotate Left ( d Ġ+ Ġf 1 ( e , Ġa , Ġb ) Ġ+ Ġx [ 7 ], Ġ 9 ) Ġ+ Ġc ĊĠĠĠĠĠĠĠ Ġa Ġ= Ġrotate Left ( a , Ġ 1 0 ) ĊĠĠĠĠĠĠĠ Ġc Ġ= Ġrotate Left ( c Ġ+ Ġf 1 ( d , Ġe , Ġa ) Ġ+ Ġx [ 8 ], Ġ 1 1 ) Ġ+ Ġb ĊĠĠĠĠĠĠĠ Ġe Ġ= Ġrotate Left ( e , Ġ 1 0 ) ĊĠĠĠĠĠĠĠ Ġb Ġ= Ġrotate Left ( b Ġ+ Ġf 1 ( c , Ġd , Ġe ) Ġ+ Ġx [ 9 ], Ġ 1 3 ) Ġ+ Ġa ĊĠĠĠĠĠĠĠ Ġd Ġ= Ġrotate Left ( d , Ġ 1 0 ) ĊĠĠĠĠĠĠĠ Ġa Ġ= Ġrotate Left ( a Ġ+ Ġf 1 ( b , Ġc , Ġd ) Ġ+ Ġx [ 1 0 ], Ġ 1 4 ) Ġ+ Ġe ĊĠĠĠĠĠĠĠ Ġc Ġ= Ġrotate Left ( c , Ġ 1 0 ) ĊĠĠĠĠĠĠĠ Ġe Ġ= Ġrotate Left ( e Ġ+ Ġf 1 ( a , Ġb , Ġc ) Ġ+ Ġx [ 1 1 ], Ġ 1 5 ) Ġ+ Ġd ĊĠĠĠĠĠĠĠ Ġb Ġ= Ġrotate Left ( b , Ġ 1 0 ) ĊĠĠĠĠĠĠĠ Ġd Ġ= Ġrotate Left ( d Ġ+ Ġf 1 ( e , Ġa , Ġb ) Ġ+ Ġx [ 1 2 ], Ġ 6 ) Ġ+ Ġc ĊĠĠĠĠĠĠĠ Ġa Ġ= Ġrotate Left ( a , Ġ 1 0 ) ĊĠĠĠĠĠĠĠ Ġc Ġ= Ġrotate Left ( c Ġ+ Ġf 1 ( d , Ġe , Ġa ) Ġ+ Ġx [ 1 3 ], Ġ 7 ) Ġ+ Ġb ĊĠĠĠĠĠĠĠ Ġe Ġ= Ġrotate Left ( e , Ġ 1 0 ) ĊĠĠĠĠĠĠĠ Ġb Ġ= Ġrotate Left ( b Ġ+ Ġf 1 ( c , Ġd , Ġe ) Ġ+ Ġx [ 1 4 ], Ġ 9 ) Ġ+ Ġa ĊĠĠĠĠĠĠĠ Ġd Ġ= Ġrotate Left ( d , Ġ 1 0 ) ĊĠĠĠĠĠĠĠ Ġa Ġ= Ġrotate Left ( a Ġ+ Ġf 1 ( b , Ġc , Ġd ) Ġ+ Ġx [ 1 5 ], Ġ 8 ) Ġ+ Ġe ĊĠĠĠĠĠĠĠ Ġc Ġ= Ġrotate Left ( c , Ġ 1 0 ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġright ĊĠĠĠĠĠĠĠ Ġaa Ġ= Ġrotate Left ( aa Ġ+ Ġf 5 ( bb , Ġcc , Ġdd ) Ġ+ Ġx [ 5 ] Ġ+ Ġ 0 x 5 0 a 2 8 be 6 , Ġ 8 ) Ġ+ Ġee ĊĠĠĠĠĠĠĠ Ġcc Ġ= Ġrotate Left ( cc , Ġ 1 0 ) ĊĠĠĠĠĠĠĠ Ġee Ġ= Ġrotate Left ( ee Ġ+ Ġf 5 ( aa , Ġbb , Ġcc ) Ġ+ Ġx [ 1 4 ] Ġ+ Ġ 0 x 5 0 a 2 8 be 6 , Ġ 9 ) Ġ+ Ġdd ĊĠĠĠĠĠĠĠ Ġbb Ġ= Ġrotate Left ( bb , Ġ 1 0 ) ĊĠĠĠĠĠĠĠ Ġdd Ġ= Ġrotate Left ( dd Ġ+ Ġf 5 ( ee , Ġaa , Ġbb ) Ġ+ Ġx [ 7 ] Ġ+ Ġ 0 x 5 0 a 2 8 be 6 , Ġ 9 ) Ġ+ Ġcc ĊĠĠĠĠĠĠĠ Ġaa Ġ= Ġrotate Left ( aa , Ġ 1 0 ) ĊĠĠĠĠĠĠĠ Ġcc Ġ= Ġrotate Left ( cc Ġ+ Ġf 5 ( dd , Ġee , Ġaa ) Ġ+ Ġx [ 0 ] Ġ+ Ġ 0 x 5 0 a 2 8 be 6 , Ġ 1 1 ) Ġ+ Ġbb ĊĠĠĠĠĠĠĠ Ġee Ġ= Ġrotate Left ( ee , Ġ 1 0 ) ĊĠĠĠĠĠĠĠ Ġbb Ġ= Ġrotate Left ( bb Ġ+ Ġf 5 ( cc , Ġdd , Ġee ) Ġ+ Ġx [ 9 ] Ġ+ Ġ 0 x 5 0 a 2 8 be 6 , Ġ 1 3 ) Ġ+ Ġaa ĊĠĠĠĠĠĠĠ Ġdd Ġ= Ġrotate Left ( dd , Ġ 1 0 ) ĊĠĠĠĠĠĠĠ Ġaa Ġ= Ġrotate Left ( aa Ġ+ Ġf 5 ( bb , Ġcc , Ġdd ) Ġ+ Ġx [ 2 ] Ġ+ Ġ 0 x 5 0 a 2 8 be 6 , Ġ 1 5 ) Ġ+ Ġee ĊĠĠĠĠĠĠĠ Ġcc Ġ= Ġrotate Left ( cc , Ġ 1 0 ) ĊĠĠĠĠĠĠĠ Ġee Ġ= Ġrotate Left ( ee Ġ+ Ġf 5 ( aa , Ġbb , Ġcc ) Ġ+ Ġx [ 1 1 ] Ġ+ Ġ 0 x 5 0 a 2 8 be 6 , Ġ 1 5 ) Ġ+ Ġdd ĊĠĠĠĠĠĠĠ Ġbb Ġ= Ġrotate Left ( bb , Ġ 1 0 ) ĊĠĠĠĠĠĠĠ Ġdd Ġ= Ġrotate Left ( dd Ġ+ Ġf 5 ( ee , Ġaa , Ġbb ) Ġ+ Ġx [ 4 ] Ġ+ Ġ 0 x 5 0 a 2 8 be 6 , Ġ 5 ) Ġ+ Ġcc ĊĠĠĠĠĠĠĠ Ġaa Ġ= Ġrotate Left ( aa , Ġ 1 0 ) ĊĠĠĠĠĠĠĠ Ġcc Ġ= Ġrotate Left ( cc Ġ+ Ġf 5 ( dd , Ġee , Ġaa ) Ġ+ Ġx [ 1 3 ] Ġ+ Ġ 0 x 5 0 a 2 8 be 6 , Ġ 7 ) Ġ+ Ġbb ĊĠĠĠĠĠĠĠ Ġee Ġ= Ġrotate Left ( ee , Ġ 1 0 ) ĊĠĠĠĠĠĠĠ Ġbb Ġ= Ġrotate Left ( bb Ġ+ Ġf 5 ( cc , Ġdd , Ġee ) Ġ+ Ġx [ 6 ] Ġ+ Ġ 0 x 5 0 a 2 8 be 6 , Ġ 7 ) Ġ+ Ġaa ĊĠĠĠĠĠĠĠ Ġdd Ġ= Ġrotate Left ( dd , Ġ 1 0 ) ĊĠĠĠĠĠĠĠ Ġaa Ġ= Ġrotate Left ( aa Ġ+ Ġf 5 ( bb , Ġcc , Ġdd ) Ġ+ Ġx [ 1 5 ] Ġ+ Ġ 0 x 5 0 a 2 8 be 6 , Ġ 8 ) Ġ+ Ġee ĊĠĠĠĠĠĠĠ Ġcc Ġ= Ġrotate Left ( cc , Ġ 1 0 ) ĊĠĠĠĠĠĠĠ Ġee Ġ= Ġrotate Left ( ee Ġ+ Ġf 5 ( aa , Ġbb , Ġcc ) Ġ+ Ġx [ 8 ] Ġ+ Ġ 0 x 5 0 a 2 8 be 6 , Ġ 1 1 ) Ġ+ Ġdd ĊĠĠĠĠĠĠĠ Ġbb Ġ= Ġrotate Left ( bb , Ġ 1 0 ) ĊĠĠĠĠĠĠĠ Ġdd Ġ= Ġrotate Left ( dd Ġ+ Ġf 5 ( ee , Ġaa , Ġbb ) Ġ+ Ġx [ 1 ] Ġ+ Ġ 0 x 5 0 a 2 8 be 6 , Ġ 1 4 ) Ġ+ Ġcc ĊĠĠĠĠĠĠĠ Ġaa Ġ= Ġrotate Left ( aa , Ġ 1 0 ) ĊĠĠĠĠĠĠĠ Ġcc Ġ= Ġrotate Left ( cc Ġ+ Ġf 5 ( dd , Ġee , Ġaa ) Ġ+ Ġx [ 1 0 ] Ġ+ Ġ 0 x 5 0 a 2 8 be 6 , Ġ 1 4 ) Ġ+ Ġbb ĊĠĠĠĠĠĠĠ Ġee Ġ= Ġrotate Left ( ee , Ġ 1 0 ) ĊĠĠĠĠĠĠĠ Ġbb Ġ= Ġrotate Left ( bb Ġ+ Ġf 5 ( cc , Ġdd , Ġee ) Ġ+ Ġx [ 3 ] Ġ+ Ġ 0 x 5 0 a 2 8 be 6 , Ġ 1 2 ) Ġ+ Ġaa ĊĠĠĠĠĠĠĠ Ġdd Ġ= Ġrotate Left ( dd , Ġ 1 0 ) ĊĠĠĠĠĠĠĠ Ġaa Ġ= Ġrotate Left ( aa Ġ+ Ġf 5 ( bb , Ġcc , Ġdd ) Ġ+ Ġx [ 1 2 ] Ġ+ Ġ 0 x 5 0 a 2 8 be 6 , Ġ 6 ) Ġ+ Ġee ĊĠĠĠĠĠĠĠ Ġcc Ġ= Ġrotate Left ( cc , Ġ 1 0 ) ĊĊĠĠĠĠĠĠĠ Ġ// ĊĠĠĠĠĠĠĠ Ġ// ĠRound s Ġ 1 6 - 3 1 ĊĠĠĠĠĠĠĠ Ġ// ĊĠĠĠĠĠĠĠ Ġ// Ġleft ĊĠĠĠĠĠĠĠ Ġe Ġ= Ġrotate Left ( e Ġ+ Ġf 2 ( a , Ġb , Ġc ) Ġ+ Ġx [ 7 ] Ġ+ Ġ 0 x 5 a 8 2 7 9 9 9 , Ġ 7 ) Ġ+ Ġd ĊĠĠĠĠĠĠĠ Ġb Ġ= Ġrotate Left ( b , Ġ 1 0 ) ĊĠĠĠĠĠĠĠ Ġd Ġ= Ġrotate Left ( d Ġ+ Ġf 2 ( e , Ġa , Ġb ) Ġ+ Ġx [ 4 ] Ġ+ Ġ 0 x 5 a 8 2 7 9 9 9 , Ġ 6 ) Ġ+ Ġc ĊĠĠĠĠĠĠĠ Ġa Ġ= Ġrotate Left ( a , Ġ 1 0 ) ĊĠĠĠĠĠĠĠ Ġc Ġ= Ġrotate Left ( c Ġ+ Ġf 2 ( d , Ġe , Ġa ) Ġ+ Ġx [ 1 3 ] Ġ+ Ġ 0 x 5 a 8 2 7 9 9 9 , Ġ 8 ) Ġ+ Ġb ĊĠĠĠĠĠĠĠ Ġe Ġ= Ġrotate Left ( e , Ġ 1 0 ) ĊĠĠĠĠĠĠĠ Ġb Ġ= Ġrotate Left ( b Ġ+ Ġf 2 ( c , Ġd , Ġe ) Ġ+ Ġx [ 1 ] Ġ+ Ġ 0 x 5 a 8 2 7 9 9 9 , Ġ 1 3 ) Ġ+ Ġa ĊĠĠĠĠĠĠĠ Ġd Ġ= Ġrotate Left ( d , Ġ 1 0 ) ĊĠĠĠĠĠĠĠ Ġa Ġ= Ġrotate Left ( a Ġ+ Ġf 2 ( b , Ġc , Ġd ) Ġ+ Ġx [ 1 0 ] Ġ+ Ġ 0 x 5 a 8 2 7 9 9 9 , Ġ 1 1 ) Ġ+ Ġe ĊĠĠĠĠĠĠĠ Ġc Ġ= Ġrotate Left ( c , Ġ 1 0 ) ĊĠĠĠĠĠĠĠ Ġe Ġ= Ġrotate Left ( e Ġ+ Ġf 2 ( a , Ġb , Ġc ) Ġ+ Ġx [ 6 ] Ġ+ Ġ 0 x 5 a 8 2 7 9 9 9 , Ġ 9 ) Ġ+ Ġd ĊĠĠĠĠĠĠĠ Ġb Ġ= Ġrotate Left ( b , Ġ 1 0 ) ĊĠĠĠĠĠĠĠ Ġd Ġ= Ġrotate Left ( d Ġ+ Ġf 2 ( e , Ġa , Ġb ) Ġ+ Ġx [ 1 5 ] Ġ+ Ġ 0 x 5 a 8 2 7 9 9 9 , Ġ 7 ) Ġ+ Ġc ĊĠĠĠĠĠĠĠ Ġa Ġ= Ġrotate Left ( a , Ġ 1 0 ) ĊĠĠĠĠĠĠĠ Ġc Ġ= Ġrotate Left ( c Ġ+ Ġf 2 ( d , Ġe , Ġa ) Ġ+ Ġx [ 3 ] Ġ+ Ġ 0 x 5 a 8 2 7 9 9 9 , Ġ 1 5 ) Ġ+ Ġb ĊĠĠĠĠĠĠĠ Ġe Ġ= Ġrotate Left ( e , Ġ 1 0 ) ĊĠĠĠĠĠĠĠ Ġb Ġ= Ġrotate Left ( b Ġ+ Ġf 2 ( c , Ġd , Ġe ) Ġ+ Ġx [ 1 2 ] Ġ+ Ġ 0 x 5 a 8 2 7 9 9 9 , Ġ 7 ) Ġ+ Ġa ĊĠĠĠĠĠĠĠ Ġd Ġ= Ġrotate Left ( d , Ġ 1 0 ) ĊĠĠĠĠĠĠĠ Ġa Ġ= Ġrotate Left ( a Ġ+ Ġf 2 ( b , Ġc , Ġd ) Ġ+ Ġx [ 0 ] Ġ+ Ġ 0 x 5 a 8 2 7 9 9 9 , Ġ 1 2 ) Ġ+ Ġe ĊĠĠĠĠĠĠĠ Ġc Ġ= Ġrotate Left ( c , Ġ 1 0 ) ĊĠĠĠĠĠĠĠ Ġe Ġ= Ġrotate Left ( e Ġ+ Ġf 2 ( a , Ġb , Ġc ) Ġ+ Ġx [ 9 ] Ġ+ Ġ 0 x 5 a 8 2 7 9 9 9 , Ġ 1 5 ) Ġ+ Ġd ĊĠĠĠĠĠĠĠ Ġb Ġ= Ġrotate Left ( b , Ġ 1 0 ) ĊĠĠĠĠĠĠĠ Ġd Ġ= Ġrotate Left ( d Ġ+ Ġf 2 ( e , Ġa , Ġb ) Ġ+ Ġx [ 5 ] Ġ+ Ġ 0 x 5 a 8 2 7 9 9 9 , Ġ 9 ) Ġ+ Ġc ĊĠĠĠĠĠĠĠ Ġa Ġ= Ġrotate Left ( a , Ġ 1 0 ) ĊĠĠĠĠĠĠĠ Ġc Ġ= Ġrotate Left ( c Ġ+ Ġf 2 ( d , Ġe , Ġa ) Ġ+ Ġx [ 2 ] Ġ+ Ġ 0 x 5 a 8 2 7 9 9 9 , Ġ 1 1 ) Ġ+ Ġb ĊĠĠĠĠĠĠĠ Ġe Ġ= Ġrotate Left ( e , Ġ 1 0 ) ĊĠĠĠĠĠĠĠ Ġb Ġ= Ġrotate Left ( b Ġ+ Ġf 2 ( c , Ġd , Ġe ) Ġ+ Ġx [ 1 4 ] Ġ+ Ġ 0 x 5 a 8 2 7 9 9 9 , Ġ 7 ) Ġ+ Ġa ĊĠĠĠĠĠĠĠ Ġd Ġ= Ġrotate Left ( d , Ġ 1 0 ) ĊĠĠĠĠĠĠĠ Ġa Ġ= Ġrotate Left ( a Ġ+ Ġf 2 ( b , Ġc , Ġd ) Ġ+ Ġx [ 1 1 ] Ġ+ Ġ 0 x 5 a 8 2 7 9 9 9 , Ġ 1 3 ) Ġ+ Ġe ĊĠĠĠĠĠĠĠ Ġc Ġ= Ġrotate Left ( c , Ġ 1 0 ) ĊĠĠĠĠĠĠĠ Ġe Ġ= Ġrotate Left ( e Ġ+ Ġf 2 ( a , Ġb , Ġc ) Ġ+ Ġx [ 8 ] Ġ+ Ġ 0 x 5 a 8 2 7 9 9 9 , Ġ 1 2 ) Ġ+ Ġd ĊĠĠĠĠĠĠĠ Ġb Ġ= Ġrotate Left ( b , Ġ 1 0 ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġright ĊĠĠĠĠĠĠĠ Ġee Ġ= Ġrotate Left ( ee Ġ+ Ġf 4 ( aa , Ġbb , Ġcc ) Ġ+ Ġx [ 6 ] Ġ+ Ġ 0 x 5 c 4 dd 1 2 4 , Ġ 9 ) Ġ+ Ġdd ĊĠĠĠĠĠĠĠ Ġbb Ġ= Ġrotate Left ( bb , Ġ 1 0 ) ĊĠĠĠĠĠĠĠ Ġdd Ġ= Ġrotate Left ( dd Ġ+ Ġf 4 ( ee , Ġaa , Ġbb ) Ġ+ Ġx [ 1 1 ] Ġ+ Ġ 0 x 5 c 4 dd 1 2 4 , Ġ 1 3 ) Ġ+ Ġcc ĊĠĠĠĠĠĠĠ Ġaa Ġ= Ġrotate Left ( aa , Ġ 1 0 ) ĊĠĠĠĠĠĠĠ Ġcc Ġ= Ġrotate Left ( cc Ġ+ Ġf 4 ( dd , Ġee , Ġaa ) Ġ+ Ġx [ 3 ] Ġ+ Ġ 0 x 5 c 4 dd 1 2 4 , Ġ 1 5 ) Ġ+ Ġbb ĊĠĠĠĠĠĠĠ Ġee Ġ= Ġrotate Left ( ee , Ġ 1 0 ) ĊĠĠĠĠĠĠĠ Ġbb Ġ= Ġrotate Left ( bb Ġ+ Ġf 4 ( cc , Ġdd , Ġee ) Ġ+ Ġx [ 7 ] Ġ+ Ġ 0 x 5 c 4 dd 1 2 4 , Ġ 7 ) Ġ+ Ġaa ĊĠĠĠĠĠĠĠ Ġdd Ġ= Ġrotate Left ( dd , Ġ 1 0 ) ĊĠĠĠĠĠĠĠ Ġaa Ġ= Ġrotate Left ( aa Ġ+ Ġf 4 ( bb , Ġcc , Ġdd ) Ġ+ Ġx [ 0 ] Ġ+ Ġ 0 x 5 c 4 dd 1 2 4 , Ġ 1 2 ) Ġ+ Ġee ĊĠĠĠĠĠĠĠ Ġcc Ġ= Ġrotate Left ( cc , Ġ 1 0 ) ĊĠĠĠĠĠĠĠ Ġee Ġ= Ġrotate Left ( ee Ġ+ Ġf 4 ( aa , Ġbb , Ġcc ) Ġ+ Ġx [ 1 3 ] Ġ+ Ġ 0 x 5 c 4 dd 1 2 4 , Ġ 8 ) Ġ+ Ġdd ĊĠĠĠĠĠĠĠ Ġbb Ġ= Ġrotate Left ( bb , Ġ 1 0 ) ĊĠĠĠĠĠĠĠ Ġdd Ġ= Ġrotate Left ( dd Ġ+ Ġf 4 ( ee , Ġaa , Ġbb ) Ġ+ Ġx [ 5 ] Ġ+ Ġ 0 x 5 c 4 dd 1 2 4 , Ġ 9 ) Ġ+ Ġcc ĊĠĠĠĠĠĠĠ Ġaa Ġ= Ġrotate Left ( aa , Ġ 1 0 ) ĊĠĠĠĠĠĠĠ Ġcc Ġ= Ġrotate Left ( cc Ġ+ Ġf 4 ( dd , Ġee , Ġaa ) Ġ+ Ġx [ 1 0 ] Ġ+ Ġ 0 x 5 c 4 dd 1 2 4 , Ġ 1 1 ) Ġ+ Ġbb ĊĠĠĠĠĠĠĠ Ġee Ġ= Ġrotate Left ( ee , Ġ 1 0 ) ĊĠĠĠĠĠĠĠ Ġbb Ġ= Ġrotate Left ( bb Ġ+ Ġf 4 ( cc , Ġdd , Ġee ) Ġ+ Ġx [ 1 4 ] Ġ+ Ġ 0 x 5 c 4 dd 1 2 4 , Ġ 7 ) Ġ+ Ġaa ĊĠĠĠĠĠĠĠ Ġdd Ġ= Ġrotate Left ( dd , Ġ 1 0 ) ĊĠĠĠĠĠĠĠ Ġaa Ġ= Ġrotate Left ( aa Ġ+ Ġf 4 ( bb , Ġcc , Ġdd ) Ġ+ Ġx [ 1 5 ] Ġ+ Ġ 0 x 5 c 4 dd 1 2 4 , Ġ 7 ) Ġ+ Ġee ĊĠĠĠĠĠĠĠ Ġcc Ġ= Ġrotate Left ( cc , Ġ 1 0 ) ĊĠĠĠĠĠĠĠ Ġee Ġ= Ġrotate Left ( ee Ġ+ Ġf 4 ( aa , Ġbb , Ġcc ) Ġ+ Ġx [ 8 ] Ġ+ Ġ 0 x 5 c 4 dd 1 2 4 , Ġ 1 2 ) Ġ+ Ġdd ĊĠĠĠĠĠĠĠ Ġbb Ġ= Ġrotate Left ( bb , Ġ 1 0 ) ĊĠĠĠĠĠĠĠ Ġdd Ġ= Ġrotate Left ( dd Ġ+ Ġf 4 ( ee , Ġaa , Ġbb ) Ġ+ Ġx [ 1 2 ] Ġ+ Ġ 0 x 5 c 4 dd 1 2 4 , Ġ 7 ) Ġ+ Ġcc ĊĠĠĠĠĠĠĠ Ġaa Ġ= Ġrotate Left ( aa , Ġ 1 0 ) ĊĠĠĠĠĠĠĠ Ġcc Ġ= Ġrotate Left ( cc Ġ+ Ġf 4 ( dd , Ġee , Ġaa ) Ġ+ Ġx [ 4 ] Ġ+ Ġ 0 x 5 c 4 dd 1 2 4 , Ġ 6 ) Ġ+ Ġbb ĊĠĠĠĠĠĠĠ Ġee Ġ= Ġrotate Left ( ee , Ġ 1 0 ) ĊĠĠĠĠĠĠĠ Ġbb Ġ= Ġrotate Left ( bb Ġ+ Ġf 4 ( cc , Ġdd , Ġee ) Ġ+ Ġx [ 9 ] Ġ+ Ġ 0 x 5 c 4 dd 1 2 4 , Ġ 1 5 ) Ġ+ Ġaa ĊĠĠĠĠĠĠĠ Ġdd Ġ= Ġrotate Left ( dd , Ġ 1 0 ) ĊĠĠĠĠĠĠĠ Ġaa Ġ= Ġrotate Left ( aa Ġ+ Ġf 4 ( bb , Ġcc , Ġdd ) Ġ+ Ġx [ 1 ] Ġ+ Ġ 0 x 5 c 4 dd 1 2 4 , Ġ 1 3 ) Ġ+ Ġee ĊĠĠĠĠĠĠĠ Ġcc Ġ= Ġrotate Left ( cc , Ġ 1 0 ) ĊĠĠĠĠĠĠĠ Ġee Ġ= Ġrotate Left ( ee Ġ+ Ġf 4 ( aa , Ġbb , Ġcc ) Ġ+ Ġx [ 2 ] Ġ+ Ġ 0 x 5 c 4 dd 1 2 4 , Ġ 1 1 ) Ġ+ Ġdd ĊĠĠĠĠĠĠĠ Ġbb Ġ= Ġrotate Left ( bb , Ġ 1 0 ) ĊĊĠĠĠĠĠĠĠ Ġ// ĊĠĠĠĠĠĠĠ Ġ// ĠRound s Ġ 3 2 - 4 7 ĊĠĠĠĠĠĠĠ Ġ// ĊĠĠĠĠĠĠĠ Ġ// Ġleft ĊĠĠĠĠĠĠĠ Ġd Ġ= Ġrotate Left ( d Ġ+ Ġf 3 ( e , Ġa , Ġb ) Ġ+ Ġx [ 3 ] Ġ+ Ġ 0 x 6 ed 9 eba 1 , Ġ 1 1 ) Ġ+ Ġc ĊĠĠĠĠĠĠĠ Ġa Ġ= Ġrotate Left ( a , Ġ 1 0 ) ĊĠĠĠĠĠĠĠ Ġc Ġ= Ġrotate Left ( c Ġ+ Ġf 3 ( d , Ġe , Ġa ) Ġ+ Ġx [ 1 0 ] Ġ+ Ġ 0 x 6 ed 9 eba 1 , Ġ 1 3 ) Ġ+ Ġb ĊĠĠĠĠĠĠĠ Ġe Ġ= Ġrotate Left ( e , Ġ 1 0 ) ĊĠĠĠĠĠĠĠ Ġb Ġ= Ġrotate Left ( b Ġ+ Ġf 3 ( c , Ġd , Ġe ) Ġ+ Ġx [ 1 4 ] Ġ+ Ġ 0 x 6 ed 9 eba 1 , Ġ 6 ) Ġ+ Ġa ĊĠĠĠĠĠĠĠ Ġd Ġ= Ġrotate Left ( d , Ġ 1 0 ) ĊĠĠĠĠĠĠĠ Ġa Ġ= Ġrotate Left ( a Ġ+ Ġf 3 ( b , Ġc , Ġd ) Ġ+ Ġx [ 4 ] Ġ+ Ġ 0 x 6 ed 9 eba 1 , Ġ 7 ) Ġ+ Ġe ĊĠĠĠĠĠĠĠ Ġc Ġ= Ġrotate Left ( c , Ġ 1 0 ) ĊĠĠĠĠĠĠĠ Ġe Ġ= Ġrotate Left ( e Ġ+ Ġf 3 ( a , Ġb , Ġc ) Ġ+ Ġx [ 9 ] Ġ+ Ġ 0 x 6 ed 9 eba 1 , Ġ 1 4 ) Ġ+ Ġd ĊĠĠĠĠĠĠĠ Ġb Ġ= Ġrotate Left ( b , Ġ 1 0 ) ĊĠĠĠĠĠĠĠ Ġd Ġ= Ġrotate Left ( d Ġ+ Ġf 3 ( e , Ġa , Ġb ) Ġ+ Ġx [ 1 5 ] Ġ+ Ġ 0 x 6 ed 9 eba 1 , Ġ 9 ) Ġ+ Ġc ĊĠĠĠĠĠĠĠ Ġa Ġ= Ġrotate Left ( a , Ġ 1 0 ) ĊĠĠĠĠĠĠĠ Ġc Ġ= Ġrotate Left ( c Ġ+ Ġf 3 ( d , Ġe , Ġa ) Ġ+ Ġx [ 8 ] Ġ+ Ġ 0 x 6 ed 9 eba 1 , Ġ 1 3 ) Ġ+ Ġb ĊĠĠĠĠĠĠĠ Ġe Ġ= Ġrotate Left ( e , Ġ 1 0 ) ĊĠĠĠĠĠĠĠ Ġb Ġ= Ġrotate Left ( b Ġ+ Ġf 3 ( c , Ġd , Ġe ) Ġ+ Ġx [ 1 ] Ġ+ Ġ 0 x 6 ed 9 eba 1 , Ġ 1 5 ) Ġ+ Ġa ĊĠĠĠĠĠĠĠ Ġd Ġ= Ġrotate Left ( d , Ġ 1 0 ) ĊĠĠĠĠĠĠĠ Ġa Ġ= Ġrotate Left ( a Ġ+ Ġf 3 ( b , Ġc , Ġd ) Ġ+ Ġx [ 2 ] Ġ+ Ġ 0 x 6 ed 9 eba 1 , Ġ 1 4 ) Ġ+ Ġe ĊĠĠĠĠĠĠĠ Ġc Ġ= Ġrotate Left ( c , Ġ 1 0 ) ĊĠĠĠĠĠĠĠ Ġe Ġ= Ġrotate Left ( e Ġ+ Ġf 3 ( a , Ġb , Ġc ) Ġ+ Ġx [ 7 ] Ġ+ Ġ 0 x 6 ed 9 eba 1 , Ġ 8 ) Ġ+ Ġd ĊĠĠĠĠĠĠĠ Ġb Ġ= Ġrotate Left ( b , Ġ 1 0 ) ĊĠĠĠĠĠĠĠ Ġd Ġ= Ġrotate Left ( d Ġ+ Ġf 3 ( e , Ġa , Ġb ) Ġ+ Ġx [ 0 ] Ġ+ Ġ 0 x 6 ed 9 eba 1 , Ġ 1 3 ) Ġ+ Ġc ĊĠĠĠĠĠĠĠ Ġa Ġ= Ġrotate Left ( a , Ġ 1 0 ) ĊĠĠĠĠĠĠĠ Ġc Ġ= Ġrotate Left ( c Ġ+ Ġf 3 ( d , Ġe , Ġa ) Ġ+ Ġx [ 6 ] Ġ+ Ġ 0 x 6 ed 9 eba 1 , Ġ 6 ) Ġ+ Ġb ĊĠĠĠĠĠĠĠ Ġe Ġ= Ġrotate Left ( e , Ġ 1 0 ) ĊĠĠĠĠĠĠĠ Ġb Ġ= Ġrotate Left ( b Ġ+ Ġf 3 ( c , Ġd , Ġe ) Ġ+ Ġx [ 1 3 ] Ġ+ Ġ 0 x 6 ed 9 eba 1 , Ġ 5 ) Ġ+ Ġa ĊĠĠĠĠĠĠĠ Ġd Ġ= Ġrotate Left ( d , Ġ 1 0 ) ĊĠĠĠĠĠĠĠ Ġa Ġ= Ġrotate Left ( a Ġ+ Ġf 3 ( b , Ġc , Ġd ) Ġ+ Ġx [ 1 1 ] Ġ+ Ġ 0 x 6 ed 9 eba 1 , Ġ 1 2 ) Ġ+ Ġe ĊĠĠĠĠĠĠĠ Ġc Ġ= Ġrotate Left ( c , Ġ 1 0 ) ĊĠĠĠĠĠĠĠ Ġe Ġ= Ġrotate Left ( e Ġ+ Ġf 3 ( a , Ġb , Ġc ) Ġ+ Ġx [ 5 ] Ġ+ Ġ 0 x 6 ed 9 eba 1 , Ġ 7 ) Ġ+ Ġd ĊĠĠĠĠĠĠĠ Ġb Ġ= Ġrotate Left ( b , Ġ 1 0 ) ĊĠĠĠĠĠĠĠ Ġd Ġ= Ġrotate Left ( d Ġ+ Ġf 3 ( e , Ġa , Ġb ) Ġ+ Ġx [ 1 2 ] Ġ+ Ġ 0 x 6 ed 9 eba 1 , Ġ 5 ) Ġ+ Ġc ĊĠĠĠĠĠĠĠ Ġa Ġ= Ġrotate Left ( a , Ġ 1 0 ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġright ĊĠĠĠĠĠĠĠ Ġdd Ġ= Ġrotate Left ( dd Ġ+ Ġf 3 ( ee , Ġaa , Ġbb ) Ġ+ Ġx [ 1 5 ] Ġ+ Ġ 0 x 6 d 7 0 3 ef 3 , Ġ 9 ) Ġ+ Ġcc ĊĠĠĠĠĠĠĠ Ġaa Ġ= Ġrotate Left ( aa , Ġ 1 0 ) ĊĠĠĠĠĠĠĠ Ġcc Ġ= Ġrotate Left ( cc Ġ+ Ġf 3 ( dd , Ġee , Ġaa ) Ġ+ Ġx [ 5 ] Ġ+ Ġ 0 x 6 d 7 0 3 ef 3 , Ġ 7 ) Ġ+ Ġbb ĊĠĠĠĠĠĠĠ Ġee Ġ= Ġrotate Left ( ee , Ġ 1 0 ) ĊĠĠĠĠĠĠĠ Ġbb Ġ= Ġrotate Left ( bb Ġ+ Ġf 3 ( cc , Ġdd , Ġee ) Ġ+ Ġx [ 1 ] Ġ+ Ġ 0 x 6 d 7 0 3 ef 3 , Ġ 1 5 ) Ġ+ Ġaa ĊĠĠĠĠĠĠĠ Ġdd Ġ= Ġrotate Left ( dd , Ġ 1 0 ) ĊĠĠĠĠĠĠĠ Ġaa Ġ= Ġrotate Left ( aa Ġ+ Ġf 3 ( bb , Ġcc , Ġdd ) Ġ+ Ġx [ 3 ] Ġ+ Ġ 0 x 6 d 7 0 3 ef 3 , Ġ 1 1 ) Ġ+ Ġee ĊĠĠĠĠĠĠĠ Ġcc Ġ= Ġrotate Left ( cc , Ġ 1 0 ) ĊĠĠĠĠĠĠĠ Ġee Ġ= Ġrotate Left ( ee Ġ+ Ġf 3 ( aa , Ġbb , Ġcc ) Ġ+ Ġx [ 7 ] Ġ+ Ġ 0 x 6 d 7 0 3 ef 3 , Ġ 8 ) Ġ+ Ġdd ĊĠĠĠĠĠĠĠ Ġbb Ġ= Ġrotate Left ( bb , Ġ 1 0 ) ĊĠĠĠĠĠĠĠ Ġdd Ġ= Ġrotate Left ( dd Ġ+ Ġf 3 ( ee , Ġaa , Ġbb ) Ġ+ Ġx [ 1 4 ] Ġ+ Ġ 0 x 6 d 7 0 3 ef 3 , Ġ 6 ) Ġ+ Ġcc ĊĠĠĠĠĠĠĠ Ġaa Ġ= Ġrotate Left ( aa , Ġ 1 0 ) ĊĠĠĠĠĠĠĠ Ġcc Ġ= Ġrotate Left ( cc Ġ+ Ġf 3 ( dd , Ġee , Ġaa ) Ġ+ Ġx [ 6 ] Ġ+ Ġ 0 x 6 d 7 0 3 ef 3 , Ġ 6 ) Ġ+ Ġbb ĊĠĠĠĠĠĠĠ Ġee Ġ= Ġrotate Left ( ee , Ġ 1 0 ) ĊĠĠĠĠĠĠĠ Ġbb Ġ= Ġrotate Left ( bb Ġ+ Ġf 3 ( cc , Ġdd , Ġee ) Ġ+ Ġx [ 9 ] Ġ+ Ġ 0 x 6 d 7 0 3 ef 3 , Ġ 1 4 ) Ġ+ Ġaa ĊĠĠĠĠĠĠĠ Ġdd Ġ= Ġrotate Left ( dd , Ġ 1 0 ) ĊĠĠĠĠĠĠĠ Ġaa Ġ= Ġrotate Left ( aa Ġ+ Ġf 3 ( bb , Ġcc , Ġdd ) Ġ+ Ġx [ 1 1 ] Ġ+ Ġ 0 x 6 d 7 0 3 ef 3 , Ġ 1 2 ) Ġ+ Ġee ĊĠĠĠĠĠĠĠ Ġcc Ġ= Ġrotate Left ( cc , Ġ 1 0 ) ĊĠĠĠĠĠĠĠ Ġee Ġ= Ġrotate Left ( ee Ġ+ Ġf 3 ( aa , Ġbb , Ġcc ) Ġ+ Ġx [ 8 ] Ġ+ Ġ 0 x 6 d 7 0 3 ef 3 , Ġ 1 3 ) Ġ+ Ġdd ĊĠĠĠĠĠĠĠ Ġbb Ġ= Ġrotate Left ( bb , Ġ 1 0 ) ĊĠĠĠĠĠĠĠ Ġdd Ġ= Ġrotate Left ( dd Ġ+ Ġf 3 ( ee , Ġaa , Ġbb ) Ġ+ Ġx [ 1 2 ] Ġ+ Ġ 0 x 6 d 7 0 3 ef 3 , Ġ 5 ) Ġ+ Ġcc ĊĠĠĠĠĠĠĠ Ġaa Ġ= Ġrotate Left ( aa , Ġ 1 0 ) ĊĠĠĠĠĠĠĠ Ġcc Ġ= Ġrotate Left ( cc Ġ+ Ġf 3 ( dd , Ġee , Ġaa ) Ġ+ Ġx [ 2 ] Ġ+ Ġ 0 x 6 d 7 0 3 ef 3 , Ġ 1 4 ) Ġ+ Ġbb ĊĠĠĠĠĠĠĠ Ġee Ġ= Ġrotate Left ( ee , Ġ 1 0 ) ĊĠĠĠĠĠĠĠ Ġbb Ġ= Ġrotate Left ( bb Ġ+ Ġf 3 ( cc , Ġdd , Ġee ) Ġ+ Ġx [ 1 0 ] Ġ+ Ġ 0 x 6 d 7 0 3 ef 3 , Ġ 1 3 ) Ġ+ Ġaa ĊĠĠĠĠĠĠĠ Ġdd Ġ= Ġrotate Left ( dd , Ġ 1 0 ) ĊĠĠĠĠĠĠĠ Ġaa Ġ= Ġrotate Left ( aa Ġ+ Ġf 3 ( bb , Ġcc , Ġdd ) Ġ+ Ġx [ 0 ] Ġ+ Ġ 0 x 6 d 7 0 3 ef 3 , Ġ 1 3 ) Ġ+ Ġee ĊĠĠĠĠĠĠĠ Ġcc Ġ= Ġrotate Left ( cc , Ġ 1 0 ) ĊĠĠĠĠĠĠĠ Ġee Ġ= Ġrotate Left ( ee Ġ+ Ġf 3 ( aa , Ġbb , Ġcc ) Ġ+ Ġx [ 4 ] Ġ+ Ġ 0 x 6 d 7 0 3 ef 3 , Ġ 7 ) Ġ+ Ġdd ĊĠĠĠĠĠĠĠ Ġbb Ġ= Ġrotate Left ( bb , Ġ 1 0 ) ĊĠĠĠĠĠĠĠ Ġdd Ġ= Ġrotate Left ( dd Ġ+ Ġf 3 ( ee , Ġaa , Ġbb ) Ġ+ Ġx [ 1 3 ] Ġ+ Ġ 0 x 6 d 7 0 3 ef 3 , Ġ 5 ) Ġ+ Ġcc ĊĠĠĠĠĠĠĠ Ġaa Ġ= Ġrotate Left ( aa , Ġ 1 0 ) ĊĊĠĠĠĠĠĠĠ Ġ// ĊĠĠĠĠĠĠĠ Ġ// ĠRound s Ġ 4 8 - 6 3 ĊĠĠĠĠĠĠĠ Ġ// ĊĠĠĠĠĠĠĠ Ġ// Ġleft ĊĠĠĠĠĠĠĠ Ġc Ġ= Ġrotate Left ( c Ġ+ Ġf 4 ( d , Ġe , Ġa ) Ġ+ Ġx [ 1 ] Ġ+ Ġ- 0 x 7 0 e 4 4 3 2 4 , Ġ 1 1 ) Ġ+ Ġb ĊĠĠĠĠĠĠĠ Ġe Ġ= Ġrotate Left ( e , Ġ 1 0 ) ĊĠĠĠĠĠĠĠ Ġb Ġ= Ġrotate Left ( b Ġ+ Ġf 4 ( c , Ġd , Ġe ) Ġ+ Ġx [ 9 ] Ġ+ Ġ- 0 x 7 0 e 4 4 3 2 4 , Ġ 1 2 ) Ġ+ Ġa ĊĠĠĠĠĠĠĠ Ġd Ġ= Ġrotate Left ( d , Ġ 1 0 ) ĊĠĠĠĠĠĠĠ Ġa Ġ= Ġrotate Left ( a Ġ+ Ġf 4 ( b , Ġc , Ġd ) Ġ+ Ġx [ 1 1 ] Ġ+ Ġ- 0 x 7 0 e 4 4 3 2 4 , Ġ 1 4 ) Ġ+ Ġe ĊĠĠĠĠĠĠĠ Ġc Ġ= Ġrotate Left ( c , Ġ 1 0 ) ĊĠĠĠĠĠĠĠ Ġe Ġ= Ġrotate Left ( e Ġ+ Ġf 4 ( a , Ġb , Ġc ) Ġ+ Ġx [ 1 0 ] Ġ+ Ġ- 0 x 7 0 e 4 4 3 2 4 , Ġ 1 5 ) Ġ+ Ġd ĊĠĠĠĠĠĠĠ Ġb Ġ= Ġrotate Left ( b , Ġ 1 0 ) ĊĠĠĠĠĠĠĠ Ġd Ġ= Ġrotate Left ( d Ġ+ Ġf 4 ( e , Ġa , Ġb ) Ġ+ Ġx [ 0 ] Ġ+ Ġ- 0 x 7 0 e 4 4 3 2 4 , Ġ 1 4 ) Ġ+ Ġc ĊĠĠĠĠĠĠĠ Ġa Ġ= Ġrotate Left ( a , Ġ 1 0 ) ĊĠĠĠĠĠĠĠ Ġc Ġ= Ġrotate Left ( c Ġ+ Ġf 4 ( d , Ġe , Ġa ) Ġ+ Ġx [ 8 ] Ġ+ Ġ- 0 x 7 0 e 4 4 3 2 4 , Ġ 1 5 ) Ġ+ Ġb ĊĠĠĠĠĠĠĠ Ġe Ġ= Ġrotate Left ( e , Ġ 1 0 ) ĊĠĠĠĠĠĠĠ Ġb Ġ= Ġrotate Left ( b Ġ+ Ġf 4 ( c , Ġd , Ġe ) Ġ+ Ġx [ 1 2 ] Ġ+ Ġ- 0 x 7 0 e 4 4 3 2 4 , Ġ 9 ) Ġ+ Ġa ĊĠĠĠĠĠĠĠ Ġd Ġ= Ġrotate Left ( d , Ġ 1 0 ) ĊĠĠĠĠĠĠĠ Ġa Ġ= Ġrotate Left ( a Ġ+ Ġf 4 ( b , Ġc , Ġd ) Ġ+ Ġx [ 4 ] Ġ+ Ġ- 0 x 7 0 e 4 4 3 2 4 , Ġ 8 ) Ġ+ Ġe ĊĠĠĠĠĠĠĠ Ġc Ġ= Ġrotate Left ( c , Ġ 1 0 ) ĊĠĠĠĠĠĠĠ Ġe Ġ= Ġrotate Left ( e Ġ+ Ġf 4 ( a , Ġb , Ġc ) Ġ+ Ġx [ 1 3 ] Ġ+ Ġ- 0 x 7 0 e 4 4 3 2 4 , Ġ 9 ) Ġ+ Ġd ĊĠĠĠĠĠĠĠ Ġb Ġ= Ġrotate Left ( b , Ġ 1 0 ) ĊĠĠĠĠĠĠĠ Ġd Ġ= Ġrotate Left ( d Ġ+ Ġf 4 ( e , Ġa , Ġb ) Ġ+ Ġx [ 3 ] Ġ+ Ġ- 0 x 7 0 e 4 4 3 2 4 , Ġ 1 4 ) Ġ+ Ġc ĊĠĠĠĠĠĠĠ Ġa Ġ= Ġrotate Left ( a , Ġ 1 0 ) ĊĠĠĠĠĠĠĠ Ġc Ġ= Ġrotate Left ( c Ġ+ Ġf 4 ( d , Ġe , Ġa ) Ġ+ Ġx [ 7 ] Ġ+ Ġ- 0 x 7 0 e 4 4 3 2 4 , Ġ 5 ) Ġ+ Ġb ĊĠĠĠĠĠĠĠ Ġe Ġ= Ġrotate Left ( e , Ġ 1 0 ) ĊĠĠĠĠĠĠĠ Ġb Ġ= Ġrotate Left ( b Ġ+ Ġf 4 ( c , Ġd , Ġe ) Ġ+ Ġx [ 1 5 ] Ġ+ Ġ- 0 x 7 0 e 4 4 3 2 4 , Ġ 6 ) Ġ+ Ġa ĊĠĠĠĠĠĠĠ Ġd Ġ= Ġrotate Left ( d , Ġ 1 0 ) ĊĠĠĠĠĠĠĠ Ġa Ġ= Ġrotate Left ( a Ġ+ Ġf 4 ( b , Ġc , Ġd ) Ġ+ Ġx [ 1 4 ] Ġ+ Ġ- 0 x 7 0 e 4 4 3 2 4 , Ġ 8 ) Ġ+ Ġe ĊĠĠĠĠĠĠĠ Ġc Ġ= Ġrotate Left ( c , Ġ 1 0 ) ĊĠĠĠĠĠĠĠ Ġe Ġ= Ġrotate Left ( e Ġ+ Ġf 4 ( a , Ġb , Ġc ) Ġ+ Ġx [ 5 ] Ġ+ Ġ- 0 x 7 0 e 4 4 3 2 4 , Ġ 6 ) Ġ+ Ġd ĊĠĠĠĠĠĠĠ Ġb Ġ= Ġrotate Left ( b , Ġ 1 0 ) ĊĠĠĠĠĠĠĠ Ġd Ġ= Ġrotate Left ( d Ġ+ Ġf 4 ( e , Ġa , Ġb ) Ġ+ Ġx [ 6 ] Ġ+ Ġ- 0 x 7 0 e 4 4 3 2 4 , Ġ 5 ) Ġ+ Ġc ĊĠĠĠĠĠĠĠ Ġa Ġ= Ġrotate Left ( a , Ġ 1 0 ) ĊĠĠĠĠĠĠĠ Ġc Ġ= Ġrotate Left ( c Ġ+ Ġf 4 ( d , Ġe , Ġa ) Ġ+ Ġx [ 2 ] Ġ+ Ġ- 0 x 7 0 e 4 4 3 2 4 , Ġ 1 2 ) Ġ+ Ġb ĊĠĠĠĠĠĠĠ Ġe Ġ= Ġrotate Left ( e , Ġ 1 0 ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġright ĊĠĠĠĠĠĠĠ Ġcc Ġ= Ġrotate Left ( cc Ġ+ Ġf 2 ( dd , Ġee , Ġaa ) Ġ+ Ġx [ 8 ] Ġ+ Ġ 0 x 7 a 6 d 7 6 e 9 , Ġ 1 5 ) Ġ+ Ġbb ĊĠĠĠĠĠĠĠ Ġee Ġ= Ġrotate Left ( ee , Ġ 1 0 ) ĊĠĠĠĠĠĠĠ Ġbb Ġ= Ġrotate Left ( bb Ġ+ Ġf 2 ( cc , Ġdd , Ġee ) Ġ+ Ġx [ 6 ] Ġ+ Ġ 0 x 7 a 6 d 7 6 e 9 , Ġ 5 ) Ġ+ Ġaa ĊĠĠĠĠĠĠĠ Ġdd Ġ= Ġrotate Left ( dd , Ġ 1 0 ) ĊĠĠĠĠĠĠĠ Ġaa Ġ= Ġrotate Left ( aa Ġ+ Ġf 2 ( bb , Ġcc , Ġdd ) Ġ+ Ġx [ 4 ] Ġ+ Ġ 0 x 7 a 6 d 7 6 e 9 , Ġ 8 ) Ġ+ Ġee ĊĠĠĠĠĠĠĠ Ġcc Ġ= Ġrotate Left ( cc , Ġ 1 0 ) ĊĠĠĠĠĠĠĠ Ġee Ġ= Ġrotate Left ( ee Ġ+ Ġf 2 ( aa , Ġbb , Ġcc ) Ġ+ Ġx [ 1 ] Ġ+ Ġ 0 x 7 a 6 d 7 6 e 9 , Ġ 1 1 ) Ġ+ Ġdd ĊĠĠĠĠĠĠĠ Ġbb Ġ= Ġrotate Left ( bb , Ġ 1 0 ) ĊĠĠĠĠĠĠĠ Ġdd Ġ= Ġrotate Left ( dd Ġ+ Ġf 2 ( ee , Ġaa , Ġbb ) Ġ+ Ġx [ 3 ] Ġ+ Ġ 0 x 7 a 6 d 7 6 e 9 , Ġ 1 4 ) Ġ+ Ġcc ĊĠĠĠĠĠĠĠ Ġaa Ġ= Ġrotate Left ( aa , Ġ 1 0 ) ĊĠĠĠĠĠĠĠ Ġcc Ġ= Ġrotate Left ( cc Ġ+ Ġf 2 ( dd , Ġee , Ġaa ) Ġ+ Ġx [ 1 1 ] Ġ+ Ġ 0 x 7 a 6 d 7 6 e 9 , Ġ 1 4 ) Ġ+ Ġbb ĊĠĠĠĠĠĠĠ Ġee Ġ= Ġrotate Left ( ee , Ġ 1 0 ) ĊĠĠĠĠĠĠĠ Ġbb Ġ= Ġrotate Left ( bb Ġ+ Ġf 2 ( cc , Ġdd , Ġee ) Ġ+ Ġx [ 1 5 ] Ġ+ Ġ 0 x 7 a 6 d 7 6 e 9 , Ġ 6 ) Ġ+ Ġaa ĊĠĠĠĠĠĠĠ Ġdd Ġ= Ġrotate Left ( dd , Ġ 1 0 ) ĊĠĠĠĠĠĠĠ Ġaa Ġ= Ġrotate Left ( aa Ġ+ Ġf 2 ( bb , Ġcc , Ġdd ) Ġ+ Ġx [ 0 ] Ġ+ Ġ 0 x 7 a 6 d 7 6 e 9 , Ġ 1 4 ) Ġ+ Ġee ĊĠĠĠĠĠĠĠ Ġcc Ġ= Ġrotate Left ( cc , Ġ 1 0 ) ĊĠĠĠĠĠĠĠ Ġee Ġ= Ġrotate Left ( ee Ġ+ Ġf 2 ( aa , Ġbb , Ġcc ) Ġ+ Ġx [ 5 ] Ġ+ Ġ 0 x 7 a 6 d 7 6 e 9 , Ġ 6 ) Ġ+ Ġdd ĊĠĠĠĠĠĠĠ Ġbb Ġ= Ġrotate Left ( bb , Ġ 1 0 ) ĊĠĠĠĠĠĠĠ Ġdd Ġ= Ġrotate Left ( dd Ġ+ Ġf 2 ( ee , Ġaa , Ġbb ) Ġ+ Ġx [ 1 2 ] Ġ+ Ġ 0 x 7 a 6 d 7 6 e 9 , Ġ 9 ) Ġ+ Ġcc ĊĠĠĠĠĠĠĠ Ġaa Ġ= Ġrotate Left ( aa , Ġ 1 0 ) ĊĠĠĠĠĠĠĠ Ġcc Ġ= Ġrotate Left ( cc Ġ+ Ġf 2 ( dd , Ġee , Ġaa ) Ġ+ Ġx [ 2 ] Ġ+ Ġ 0 x 7 a 6 d 7 6 e 9 , Ġ 1 2 ) Ġ+ Ġbb ĊĠĠĠĠĠĠĠ Ġee Ġ= Ġrotate Left ( ee , Ġ 1 0 ) ĊĠĠĠĠĠĠĠ Ġbb Ġ= Ġrotate Left ( bb Ġ+ Ġf 2 ( cc , Ġdd , Ġee ) Ġ+ Ġx [ 1 3 ] Ġ+ Ġ 0 x 7 a 6 d 7 6 e 9 , Ġ 9 ) Ġ+ Ġaa ĊĠĠĠĠĠĠĠ Ġdd Ġ= Ġrotate Left ( dd , Ġ 1 0 ) ĊĠĠĠĠĠĠĠ Ġaa Ġ= Ġrotate Left ( aa Ġ+ Ġf 2 ( bb , Ġcc , Ġdd ) Ġ+ Ġx [ 9 ] Ġ+ Ġ 0 x 7 a 6 d 7 6 e 9 , Ġ 1 2 ) Ġ+ Ġee ĊĠĠĠĠĠĠĠ Ġcc Ġ= Ġrotate Left ( cc , Ġ 1 0 ) ĊĠĠĠĠĠĠĠ Ġee Ġ= Ġrotate Left ( ee Ġ+ Ġf 2 ( aa , Ġbb , Ġcc ) Ġ+ Ġx [ 7 ] Ġ+ Ġ 0 x 7 a 6 d 7 6 e 9 , Ġ 5 ) Ġ+ Ġdd ĊĠĠĠĠĠĠĠ Ġbb Ġ= Ġrotate Left ( bb , Ġ 1 0 ) ĊĠĠĠĠĠĠĠ Ġdd Ġ= Ġrotate Left ( dd Ġ+ Ġf 2 ( ee , Ġaa , Ġbb ) Ġ+ Ġx [ 1 0 ] Ġ+ Ġ 0 x 7 a 6 d 7 6 e 9 , Ġ 1 5 ) Ġ+ Ġcc ĊĠĠĠĠĠĠĠ Ġaa Ġ= Ġrotate Left ( aa , Ġ 1 0 ) ĊĠĠĠĠĠĠĠ Ġcc Ġ= Ġrotate Left ( cc Ġ+ Ġf 2 ( dd , Ġee , Ġaa ) Ġ+ Ġx [ 1 4 ] Ġ+ Ġ 0 x 7 a 6 d 7 6 e 9 , Ġ 8 ) Ġ+ Ġbb ĊĠĠĠĠĠĠĠ Ġee Ġ= Ġrotate Left ( ee , Ġ 1 0 ) ĊĊĠĠĠĠĠĠĠ Ġ// ĊĠĠĠĠĠĠĠ Ġ// ĠRound s Ġ 6 4 - 7 9 ĊĠĠĠĠĠĠĠ Ġ// ĊĠĠĠĠĠĠĠ Ġ// Ġleft ĊĠĠĠĠĠĠĠ Ġb Ġ= Ġrotate Left ( b Ġ+ Ġf 5 ( c , Ġd , Ġe ) Ġ+ Ġx [ 4 ] Ġ+ Ġ- 0 x 5 6 ac 0 2 b 2 , Ġ 9 ) Ġ+ Ġa ĊĠĠĠĠĠĠĠ Ġd Ġ= Ġrotate Left ( d , Ġ 1 0 ) ĊĠĠĠĠĠĠĠ Ġa Ġ= Ġrotate Left ( a Ġ+ Ġf 5 ( b , Ġc , Ġd ) Ġ+ Ġx [ 0 ] Ġ+ Ġ- 0 x 5 6 ac 0 2 b 2 , Ġ 1 5 ) Ġ+ Ġe ĊĠĠĠĠĠĠĠ Ġc Ġ= Ġrotate Left ( c , Ġ 1 0 ) ĊĠĠĠĠĠĠĠ Ġe Ġ= Ġrotate Left ( e Ġ+ Ġf 5 ( a , Ġb , Ġc ) Ġ+ Ġx [ 5 ] Ġ+ Ġ- 0 x 5 6 ac 0 2 b 2 , Ġ 5 ) Ġ+ Ġd ĊĠĠĠĠĠĠĠ Ġb Ġ= Ġrotate Left ( b , Ġ 1 0 ) ĊĠĠĠĠĠĠĠ Ġd Ġ= Ġrotate Left ( d Ġ+ Ġf 5 ( e , Ġa , Ġb ) Ġ+ Ġx [ 9 ] Ġ+ Ġ- 0 x 5 6 ac 0 2 b 2 , Ġ 1 1 ) Ġ+ Ġc ĊĠĠĠĠĠĠĠ Ġa Ġ= Ġrotate Left ( a , Ġ 1 0 ) ĊĠĠĠĠĠĠĠ Ġc Ġ= Ġrotate Left ( c Ġ+ Ġf 5 ( d , Ġe , Ġa ) Ġ+ Ġx [ 7 ] Ġ+ Ġ- 0 x 5 6 ac 0 2 b 2 , Ġ 6 ) Ġ+ Ġb ĊĠĠĠĠĠĠĠ Ġe Ġ= Ġrotate Left ( e , Ġ 1 0 ) ĊĠĠĠĠĠĠĠ Ġb Ġ= Ġrotate Left ( b Ġ+ Ġf 5 ( c , Ġd , Ġe ) Ġ+ Ġx [ 1 2 ] Ġ+ Ġ- 0 x 5 6 ac 0 2 b 2 , Ġ 8 ) Ġ+ Ġa ĊĠĠĠĠĠĠĠ Ġd Ġ= Ġrotate Left ( d , Ġ 1 0 ) ĊĠĠĠĠĠĠĠ Ġa Ġ= Ġrotate Left ( a Ġ+ Ġf 5 ( b , Ġc , Ġd ) Ġ+ Ġx [ 2 ] Ġ+ Ġ- 0 x 5 6 ac 0 2 b 2 , Ġ 1 3 ) Ġ+ Ġe ĊĠĠĠĠĠĠĠ Ġc Ġ= Ġrotate Left ( c , Ġ 1 0 ) ĊĠĠĠĠĠĠĠ Ġe Ġ= Ġrotate Left ( e Ġ+ Ġf 5 ( a , Ġb , Ġc ) Ġ+ Ġx [ 1 0 ] Ġ+ Ġ- 0 x 5 6 ac 0 2 b 2 , Ġ 1 2 ) Ġ+ Ġd ĊĠĠĠĠĠĠĠ Ġb Ġ= Ġrotate Left ( b , Ġ 1 0 ) ĊĠĠĠĠĠĠĠ Ġd Ġ= Ġrotate Left ( d Ġ+ Ġf 5 ( e , Ġa , Ġb ) Ġ+ Ġx [ 1 4 ] Ġ+ Ġ- 0 x 5 6 ac 0 2 b 2 , Ġ 5 ) Ġ+ Ġc ĊĠĠĠĠĠĠĠ Ġa Ġ= Ġrotate Left ( a , Ġ 1 0 ) ĊĠĠĠĠĠĠĠ Ġc Ġ= Ġrotate Left ( c Ġ+ Ġf 5 ( d , Ġe , Ġa ) Ġ+ Ġx [ 1 ] Ġ+ Ġ- 0 x 5 6 ac 0 2 b 2 , Ġ 1 2 ) Ġ+ Ġb ĊĠĠĠĠĠĠĠ Ġe Ġ= Ġrotate Left ( e , Ġ 1 0 ) ĊĠĠĠĠĠĠĠ Ġb Ġ= Ġrotate Left ( b Ġ+ Ġf 5 ( c , Ġd , Ġe ) Ġ+ Ġx [ 3 ] Ġ+ Ġ- 0 x 5 6 ac 0 2 b 2 , Ġ 1 3 ) Ġ+ Ġa ĊĠĠĠĠĠĠĠ Ġd Ġ= Ġrotate Left ( d , Ġ 1 0 ) ĊĠĠĠĠĠĠĠ Ġa Ġ= Ġrotate Left ( a Ġ+ Ġf 5 ( b , Ġc , Ġd ) Ġ+ Ġx [ 8 ] Ġ+ Ġ- 0 x 5 6 ac 0 2 b 2 , Ġ 1 4 ) Ġ+ Ġe ĊĠĠĠĠĠĠĠ Ġc Ġ= Ġrotate Left ( c , Ġ 1 0 ) ĊĠĠĠĠĠĠĠ Ġe Ġ= Ġrotate Left ( e Ġ+ Ġf 5 ( a , Ġb , Ġc ) Ġ+ Ġx [ 1 1 ] Ġ+ Ġ- 0 x 5 6 ac 0 2 b 2 , Ġ 1 1 ) Ġ+ Ġd ĊĠĠĠĠĠĠĠ Ġb Ġ= Ġrotate Left ( b , Ġ 1 0 ) ĊĠĠĠĠĠĠĠ Ġd Ġ= Ġrotate Left ( d Ġ+ Ġf 5 ( e , Ġa , Ġb ) Ġ+ Ġx [ 6 ] Ġ+ Ġ- 0 x 5 6 ac 0 2 b 2 , Ġ 8 ) Ġ+ Ġc ĊĠĠĠĠĠĠĠ Ġa Ġ= Ġrotate Left ( a , Ġ 1 0 ) ĊĠĠĠĠĠĠĠ Ġc Ġ= Ġrotate Left ( c Ġ+ Ġf 5 ( d , Ġe , Ġa ) Ġ+ Ġx [ 1 5 ] Ġ+ Ġ- 0 x 5 6 ac 0 2 b 2 , Ġ 5 ) Ġ+ Ġb ĊĠĠĠĠĠĠĠ Ġe Ġ= Ġrotate Left ( e , Ġ 1 0 ) ĊĠĠĠĠĠĠĠ Ġb Ġ= Ġrotate Left ( b Ġ+ Ġf 5 ( c , Ġd , Ġe ) Ġ+ Ġx [ 1 3 ] Ġ+ Ġ- 0 x 5 6 ac 0 2 b 2 , Ġ 6 ) Ġ+ Ġa ĊĠĠĠĠĠĠĠ Ġd Ġ= Ġrotate Left ( d , Ġ 1 0 ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġright ĊĠĠĠĠĠĠĠ Ġbb Ġ= Ġrotate Left ( bb Ġ+ Ġf 1 ( cc , Ġdd , Ġee ) Ġ+ Ġx [ 1 2 ], Ġ 8 ) Ġ+ Ġaa ĊĠĠĠĠĠĠĠ Ġdd Ġ= Ġrotate Left ( dd , Ġ 1 0 ) ĊĠĠĠĠĠĠĠ Ġaa Ġ= Ġrotate Left ( aa Ġ+ Ġf 1 ( bb , Ġcc , Ġdd ) Ġ+ Ġx [ 1 5 ], Ġ 5 ) Ġ+ Ġee ĊĠĠĠĠĠĠĠ Ġcc Ġ= Ġrotate Left ( cc , Ġ 1 0 ) ĊĠĠĠĠĠĠĠ Ġee Ġ= Ġrotate Left ( ee Ġ+ Ġf 1 ( aa , Ġbb , Ġcc ) Ġ+ Ġx [ 1 0 ], Ġ 1 2 ) Ġ+ Ġdd ĊĠĠĠĠĠĠĠ Ġbb Ġ= Ġrotate Left ( bb , Ġ 1 0 ) ĊĠĠĠĠĠĠĠ Ġdd Ġ= Ġrotate Left ( dd Ġ+ Ġf 1 ( ee , Ġaa , Ġbb ) Ġ+ Ġx [ 4 ], Ġ 9 ) Ġ+ Ġcc ĊĠĠĠĠĠĠĠ Ġaa Ġ= Ġrotate Left ( aa , Ġ 1 0 ) ĊĠĠĠĠĠĠĠ Ġcc Ġ= Ġrotate Left ( cc Ġ+ Ġf 1 ( dd , Ġee , Ġaa ) Ġ+ Ġx [ 1 ], Ġ 1 2 ) Ġ+ Ġbb ĊĠĠĠĠĠĠĠ Ġee Ġ= Ġrotate Left ( ee , Ġ 1 0 ) ĊĠĠĠĠĠĠĠ Ġbb Ġ= Ġrotate Left ( bb Ġ+ Ġf 1 ( cc , Ġdd , Ġee ) Ġ+ Ġx [ 5 ], Ġ 5 ) Ġ+ Ġaa ĊĠĠĠĠĠĠĠ Ġdd Ġ= Ġrotate Left ( dd , Ġ 1 0 ) ĊĠĠĠĠĠĠĠ Ġaa Ġ= Ġrotate Left ( aa Ġ+ Ġf 1 ( bb , Ġcc , Ġdd ) Ġ+ Ġx [ 8 ], Ġ 1 4 ) Ġ+ Ġee ĊĠĠĠĠĠĠĠ Ġcc Ġ= Ġrotate Left ( cc , Ġ 1 0 ) ĊĠĠĠĠĠĠĠ Ġee Ġ= Ġrotate Left ( ee Ġ+ Ġf 1 ( aa , Ġbb , Ġcc ) Ġ+ Ġx [ 7 ], Ġ 6 ) Ġ+ Ġdd ĊĠĠĠĠĠĠĠ Ġbb Ġ= Ġrotate Left ( bb , Ġ 1 0 ) ĊĠĠĠĠĠĠĠ Ġdd Ġ= Ġrotate Left ( dd Ġ+ Ġf 1 ( ee , Ġaa , Ġbb ) Ġ+ Ġx [ 6 ], Ġ 8 ) Ġ+ Ġcc ĊĠĠĠĠĠĠĠ Ġaa Ġ= Ġrotate Left ( aa , Ġ 1 0 ) ĊĠĠĠĠĠĠĠ Ġcc Ġ= Ġrotate Left ( cc Ġ+ Ġf 1 ( dd , Ġee , Ġaa ) Ġ+ Ġx [ 2 ], Ġ 1 3 ) Ġ+ Ġbb ĊĠĠĠĠĠĠĠ Ġee Ġ= Ġrotate Left ( ee , Ġ 1 0 ) ĊĠĠĠĠĠĠĠ Ġbb Ġ= Ġrotate Left ( bb Ġ+ Ġf 1 ( cc , Ġdd , Ġee ) Ġ+ Ġx [ 1 3 ], Ġ 6 ) Ġ+ Ġaa ĊĠĠĠĠĠĠĠ Ġdd Ġ= Ġrotate Left ( dd , Ġ 1 0 ) ĊĠĠĠĠĠĠĠ Ġaa Ġ= Ġrotate Left ( aa Ġ+ Ġf 1 ( bb , Ġcc , Ġdd ) Ġ+ Ġx [ 1 4 ], Ġ 5 ) Ġ+ Ġee ĊĠĠĠĠĠĠĠ Ġcc Ġ= Ġrotate Left ( cc , Ġ 1 0 ) ĊĠĠĠĠĠĠĠ Ġee Ġ= Ġrotate Left ( ee Ġ+ Ġf 1 ( aa , Ġbb , Ġcc ) Ġ+ Ġx [ 0 ], Ġ 1 5 ) Ġ+ Ġdd ĊĠĠĠĠĠĠĠ Ġbb Ġ= Ġrotate Left ( bb , Ġ 1 0 ) ĊĠĠĠĠĠĠĠ Ġdd Ġ= Ġrotate Left ( dd Ġ+ Ġf 1 ( ee , Ġaa , Ġbb ) Ġ+ Ġx [ 3 ], Ġ 1 3 ) Ġ+ Ġcc ĊĠĠĠĠĠĠĠ Ġaa Ġ= Ġrotate Left ( aa , Ġ 1 0 ) ĊĠĠĠĠĠĠĠ Ġcc Ġ= Ġrotate Left ( cc Ġ+ Ġf 1 ( dd , Ġee , Ġaa ) Ġ+ Ġx [ 9 ], Ġ 1 1 ) Ġ+ Ġbb ĊĠĠĠĠĠĠĠ Ġee Ġ= Ġrotate Left ( ee , Ġ 1 0 ) ĊĠĠĠĠĠĠĠ Ġbb Ġ= Ġrotate Left ( bb Ġ+ Ġf 1 ( cc , Ġdd , Ġee ) Ġ+ Ġx [ 1 1 ], Ġ 1 1 ) Ġ+ Ġaa ĊĠĠĠĠĠĠĠ Ġdd Ġ= Ġrotate Left ( dd , Ġ 1 0 ) ĊĊĠĠĠĠĠĠĠ Ġdd Ġ+= Ġc Ġ+ Ġh 1 ĊĠĠĠĠĠĠĠ Ġh 1 Ġ= Ġh 2 Ġ+ Ġd Ġ+ Ġee ĊĠĠĠĠĠĠĠ Ġh 2 Ġ= Ġh 3 Ġ+ Ġe Ġ+ Ġaa ĊĠĠĠĠĠĠĠ Ġh 3 Ġ= Ġh 4 Ġ+ Ġa Ġ+ Ġbb ĊĠĠĠĠĠĠĠ Ġh 4 Ġ= Ġh 0 Ġ+ Ġb Ġ+ Ġcc ĊĠĠĠĠĠĠĠ Ġh 0 Ġ= Ġdd ĊĊĠĠĠĠĠĠĠ Ġ// ĊĠĠĠĠĠĠĠ Ġ// Ġreset Ġthe Ġoffset Ġand Ġclean Ġout Ġthe Ġword Ġbuffer . ĊĠĠĠĠĠĠĠ Ġ// ĊĠĠĠĠĠĠĠ Ġx Off Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġx . indices ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġx [ i ] Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġpublic Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġpublic Ġconst Ġval ĠDIG EST _ LENGTH : ĠInt Ġ= Ġ 2 0 ĊĠĠĠ Ġ} Ċ } Ċ