static private void encodeBytes(byte previous, byte current, int byteIndex, StringBuilder output) {
        int chunk;
        int offset = byteIndex % 5;
        switch (offset) {
            case 0:
                chunk = ((current & 0xF8) >>> 3);
                output.append(lookupTable.charAt(chunk));
                break;
            case 1:
                chunk = (((previous & 0x07) << 2) | ((current & 0xC0) >>> 6));
                output.append(lookupTable.charAt(chunk));
                chunk = ((current & 0x3E) >>> 1);
                output.append(lookupTable.charAt(chunk));
                break;
            case 2:
                chunk = (((previous & 0x01) << 4) | ((current & 0xF0) >>> 4));
                output.append(lookupTable.charAt(chunk));
                break;
            case 3:
                chunk = (((previous & 0x0F) << 1) | ((current & 0x80) >>> 7));
                output.append(lookupTable.charAt(chunk));
                chunk = ((current & 0x7C) >>> 2);
                output.append(lookupTable.charAt(chunk));
                break;
            case 4:
                chunk = (((previous & 0x03) << 3) | ((current & 0xE0) >>> 5));
                output.append(lookupTable.charAt(chunk));
                chunk = (current & 0x1F);
                output.append(lookupTable.charAt(chunk));
                break;
        }
    }
static private void encodeBytes ( byte previous , byte current , int byteIndex , StringBuilder output ) { int chunk ; int offset = byteIndex % 5 ; switch ( offset ) { case 0 : chunk = ( ( current & 0xF8 ) > > > 3 ) ; output . append ( lookupTable . charAt ( chunk ) ) ; break ; case 1 : chunk = ( ( ( previous & 0x07 ) << 2 ) | ( ( current & 0xC0 ) > > > 6 ) ) ; output . append ( lookupTable . charAt ( chunk ) ) ; chunk = ( ( current & 0x3E ) > > > 1 ) ; output . append ( lookupTable . charAt ( chunk ) ) ; break ; case 2 : chunk = ( ( ( previous & 0x01 ) << 4 ) | ( ( current & 0xF0 ) > > > 4 ) ) ; output . append ( lookupTable . charAt ( chunk ) ) ; break ; case 3 : chunk = ( ( ( previous & 0x0F ) << 1 ) | ( ( current & 0x80 ) > > > 7 ) ) ; output . append ( lookupTable . charAt ( chunk ) ) ; chunk = ( ( current & 0x7C ) > > > 2 ) ; output . append ( lookupTable . charAt ( chunk ) ) ; break ; case 4 : chunk = ( ( ( previous & 0x03 ) << 3 ) | ( ( current & 0xE0 ) > > > 5 ) ) ; output . append ( lookupTable . charAt ( chunk ) ) ; chunk = ( current & 0x1F ) ; output . append ( lookupTable . charAt ( chunk ) ) ; break ; } }
mask:   F8  07  C0 3E  01 F0  0F 80  7C 03  E0  1F   F8  07