System.out.println("" + source[srcOffset + 2] + ": "
LOG.error("" + source[srcOffset + 2] + ": "
    private static int decode4to3(byte[] source, int srcOffset,            byte[] destination, int destOffset) {        // Example: Dk==        if (source[srcOffset + 2] == EQUALS_SIGN) {            // Two ways to do the same thing. Don't know which way I like best.            // int outBuff = ( ( DECODABET[ source[ srcOffset ] ] << 24 ) >>> 6            // )            // | ( ( DECODABET[ source[ srcOffset + 1] ] << 24 ) >>> 12 );            int outBuff = ((DECODABET[source[srcOffset]] & 0xFF) << 18)                    | ((DECODABET[source[srcOffset + 1]] & 0xFF) << 12);            destination[destOffset] = (byte) (outBuff >>> 16);            return 1;        }        // Example: DkL=        else if (source[srcOffset + 3] == EQUALS_SIGN) {            // Two ways to do the same thing. Don't know which way I like best.            // int outBuff = ( ( DECODABET[ source[ srcOffset ] ] << 24 ) >>> 6            // )            // | ( ( DECODABET[ source[ srcOffset + 1 ] ] << 24 ) >>> 12 )            // | ( ( DECODABET[ source[ srcOffset + 2 ] ] << 24 ) >>> 18 );            int outBuff = ((DECODABET[source[srcOffset]] & 0xFF) << 18)                    | ((DECODABET[source[srcOffset + 1]] & 0xFF) << 12)                    | ((DECODABET[source[srcOffset + 2]] & 0xFF) << 6);            destination[destOffset] = (byte) (outBuff >>> 16);            destination[destOffset + 1] = (byte) (outBuff >>> 8);            return 2;        }        // Example: DkLE        else {            try {                // Two ways to do the same thing. Don't know which way I like                // best.                // int outBuff = ( ( DECODABET[ source[ srcOffset ] ] << 24 )                // >>> 6 )                // | ( ( DECODABET[ source[ srcOffset + 1 ] ] << 24 ) >>> 12 )                // | ( ( DECODABET[ source[ srcOffset + 2 ] ] << 24 ) >>> 18 )                // | ( ( DECODABET[ source[ srcOffset + 3 ] ] << 24 ) >>> 24 );                int outBuff = ((DECODABET[source[srcOffset]] & 0xFF) << 18)                        | ((DECODABET[source[srcOffset + 1]] & 0xFF) << 12)                        | ((DECODABET[source[srcOffset + 2]] & 0xFF) << 6)                        | ((DECODABET[source[srcOffset + 3]] & 0xFF));                destination[destOffset] = (byte) (outBuff >> 16);                destination[destOffset + 1] = (byte) (outBuff >> 8);                destination[destOffset + 2] = (byte) (outBuff);                return 3;            } catch (Exception e) {                System.out.println("" + source[srcOffset] + ": "                        + (DECODABET[source[srcOffset]]));                System.out.println("" + source[srcOffset + 1] + ": "                        + (DECODABET[source[srcOffset + 1]]));                System.out.println("" + source[srcOffset + 2] + ": "                        + (DECODABET[source[srcOffset + 2]]));                System.out.println("" + source[srcOffset + 3] + ": "                        + (DECODABET[source[srcOffset + 3]]));                return -1;            } // e nd catch        }    } // end decodeToBytes