; Gc@sdkZdkZdkTgZgZgZgZgZdgdZdgdZ dgdZ dgdZ dgdZ dgdZ dgdZdZdZdZdZd Zd Zd Zdd Zdd ZdZdZdZdZdZdZdZdfdYZdZ dZ!eee"djoRdGHddZ#dZ$e e$e#Z%e!e$e%Z&dGe#GHdGe$GHd Ge&GHndS(!N(s*iiicCsd}tidtidtidtidxFtdD]8}tittid|t i|tqJWxFtdD]8}t ittid|t i|t qWd S( sA Populate lookup tables with some frequently used values cCs)d}x|D]}||}q W|SdS(s% return sum of array iN(ssumsarrse(sarrsessum((s:/mnt/gmirror/ports/security/py-rijndael/work/pyRijndael.pyssumArray+s i i i iiiiN( ssumArrayslutInCosappendsrangesis lutB2Powersintsmathspows lutBOnBitss lutL2Powers lutLOnBits(ssumArraysi((s:/mnt/gmirror/ports/security/py-rijndael/work/pyRijndael.pys buildLUTs&s      cCs|djo|SnM|djo|d@odSqadSn%|djp |djo dn|td|@o$|td|d@t|dBSn|td|@t|SdS(s: LShift does a n-bit left shift on a long(lValue) iiiis"iShiftBits not in specified range!N(s iShiftBitsslValues lutL2Powers lutLOnBits(slValues iShiftBits((s:/mnt/gmirror/ports/security/py-rijndael/work/pyRijndael.pysLShiftLAs    $cCs|djo|SnM|djo|d@odSqadSn%|djp |djo dn|d@t|}|d@o|dt|dBSn|SdS( s; RShift does a n-bit right shift on a long(lValue) iiiis"iShiftBits not in specified range!ii@N(s iShiftBitsslValues lutL2Powerstmp(slValues iShiftBitsstmp((s:/mnt/gmirror/ports/security/py-rijndael/work/pyRijndael.pysRShiftLTs     cCs}|djo|SnM|djo|d@odSqadSn%|djp |djo dn|td|@t|SdS(s: LShift does a n-bit left shift on a byte(bValue) iiiis"iShiftBits not in specified range!N(s iShiftBitssbValues lutBOnBitss lutB2Power(sbValues iShiftBits((s:/mnt/gmirror/ports/security/py-rijndael/work/pyRijndael.pysLShiftBis    cCsq|djo|SnM|djo|d@odSqadSn%|djp |djo dn|t|SdS(s; RShift does a n-bit right shift on a byte(bValue) iiiis"iShiftBits not in specified range!N(s iShiftBitssbValues lutB2Power(sbValues iShiftBits((s:/mnt/gmirror/ports/security/py-rijndael/work/pyRijndael.pysRShiftBxs    cCs"t||t|d|BSdS(Ni (sLShiftLslValues iShiftBitssRShiftL(slValues iShiftBits((s:/mnt/gmirror/ports/security/py-rijndael/work/pyRijndael.pys RotateLeftLscCs"t||t|d|BSdS(Ni(sLShiftBsbValues iShiftBitssRShiftB(sbValues iShiftBits((s:/mnt/gmirror/ports/security/py-rijndael/work/pyRijndael.pys RotateLeftBscCsDd}x3tdD]%}|t||||dB}qW|SdS(Niii(stmpsrangesisLShiftLsbsk(sbskstmpsi((s:/mnt/gmirror/ports/security/py-rijndael/work/pyRijndael.pysPacks  #cCsw|td@|d|