All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.apache.parquet.column.values.bitpacking.ByteBitPackingLE Maven / Gradle / Ivy

The newest version!
package org.apache.parquet.column.values.bitpacking;
import java.nio.ByteBuffer;

/**
 * Packs from the Least Significant Bit first
 * 
 * See ByteBasedBitPackingGenerator to make changes to this file
 * Automatically generated
 *
 */
public abstract class ByteBitPackingLE {

  private static final BytePacker[] packers = new BytePacker[33];
  static {
    packers[0] = new Packer0();
    packers[1] = new Packer1();
    packers[2] = new Packer2();
    packers[3] = new Packer3();
    packers[4] = new Packer4();
    packers[5] = new Packer5();
    packers[6] = new Packer6();
    packers[7] = new Packer7();
    packers[8] = new Packer8();
    packers[9] = new Packer9();
    packers[10] = new Packer10();
    packers[11] = new Packer11();
    packers[12] = new Packer12();
    packers[13] = new Packer13();
    packers[14] = new Packer14();
    packers[15] = new Packer15();
    packers[16] = new Packer16();
    packers[17] = new Packer17();
    packers[18] = new Packer18();
    packers[19] = new Packer19();
    packers[20] = new Packer20();
    packers[21] = new Packer21();
    packers[22] = new Packer22();
    packers[23] = new Packer23();
    packers[24] = new Packer24();
    packers[25] = new Packer25();
    packers[26] = new Packer26();
    packers[27] = new Packer27();
    packers[28] = new Packer28();
    packers[29] = new Packer29();
    packers[30] = new Packer30();
    packers[31] = new Packer31();
    packers[32] = new Packer32();
  }

  public static final BytePackerFactory factory = new BytePackerFactory() {
    public BytePacker newBytePacker(int bitWidth) {
      return packers[bitWidth];
    }
  };

  private static final class Packer0 extends BytePacker {

    private Packer0() {
      super(0);
    }

    public final void pack8Values(final int[] in, final int inPos, final byte[] out, final int outPos) {
    }
    public final void pack32Values(final int[] in, final int inPos, final byte[] out, final int outPos) {
    }
    public final void unpack8Values(final byte[] in, final int inPos, final int[] out, final int outPos) {
    }
    public final void unpack8Values(final ByteBuffer in, final int inPos, final int[] out, final int outPos) {
    }
    public final void unpack32Values(final byte[] in, final int inPos, final int[] out, final int outPos) {
    }
    public final void unpack32Values(final ByteBuffer in, final int inPos, final int[] out, final int outPos) {
    }
  }

  private static final class Packer1 extends BytePacker {

    private Packer1() {
      super(1);
    }

    public final void pack8Values(final int[] in, final int inPos, final byte[] out, final int outPos) {
      out[ 0 + outPos] = (byte)((
          //           [_______0]
          //                  [0]
           ((in[ 0 + inPos] & 1))
        | //           [______1_]
          //                 [0]
           ((in[ 1 + inPos] & 1) <<  1)
        | //           [_____2__]
          //                [0]
           ((in[ 2 + inPos] & 1) <<  2)
        | //           [____3___]
          //               [0]
           ((in[ 3 + inPos] & 1) <<  3)
        | //           [___4____]
          //              [0]
           ((in[ 4 + inPos] & 1) <<  4)
        | //           [__5_____]
          //             [0]
           ((in[ 5 + inPos] & 1) <<  5)
        | //           [_6______]
          //            [0]
           ((in[ 6 + inPos] & 1) <<  6)
        | //           [7_______]
          //           [0]
           ((in[ 7 + inPos] & 1) <<  7)) & 255);
    }
    public final void pack32Values(final int[] in, final int inPos, final byte[] out, final int outPos) {
      out[ 0 + outPos] = (byte)((
          //           [_______0]
          //                  [0]
           ((in[ 0 + inPos] & 1))
        | //           [______1_]
          //                 [0]
           ((in[ 1 + inPos] & 1) <<  1)
        | //           [_____2__]
          //                [0]
           ((in[ 2 + inPos] & 1) <<  2)
        | //           [____3___]
          //               [0]
           ((in[ 3 + inPos] & 1) <<  3)
        | //           [___4____]
          //              [0]
           ((in[ 4 + inPos] & 1) <<  4)
        | //           [__5_____]
          //             [0]
           ((in[ 5 + inPos] & 1) <<  5)
        | //           [_6______]
          //            [0]
           ((in[ 6 + inPos] & 1) <<  6)
        | //           [7_______]
          //           [0]
           ((in[ 7 + inPos] & 1) <<  7)) & 255);
      out[ 1 + outPos] = (byte)((
          //           [_______0]
          //                  [0]
           ((in[ 8 + inPos] & 1))
        | //           [______1_]
          //                 [0]
           ((in[ 9 + inPos] & 1) <<  1)
        | //           [_____2__]
          //                [0]
           ((in[10 + inPos] & 1) <<  2)
        | //           [____3___]
          //               [0]
           ((in[11 + inPos] & 1) <<  3)
        | //           [___4____]
          //              [0]
           ((in[12 + inPos] & 1) <<  4)
        | //           [__5_____]
          //             [0]
           ((in[13 + inPos] & 1) <<  5)
        | //           [_6______]
          //            [0]
           ((in[14 + inPos] & 1) <<  6)
        | //           [7_______]
          //           [0]
           ((in[15 + inPos] & 1) <<  7)) & 255);
      out[ 2 + outPos] = (byte)((
          //           [_______0]
          //                  [0]
           ((in[16 + inPos] & 1))
        | //           [______1_]
          //                 [0]
           ((in[17 + inPos] & 1) <<  1)
        | //           [_____2__]
          //                [0]
           ((in[18 + inPos] & 1) <<  2)
        | //           [____3___]
          //               [0]
           ((in[19 + inPos] & 1) <<  3)
        | //           [___4____]
          //              [0]
           ((in[20 + inPos] & 1) <<  4)
        | //           [__5_____]
          //             [0]
           ((in[21 + inPos] & 1) <<  5)
        | //           [_6______]
          //            [0]
           ((in[22 + inPos] & 1) <<  6)
        | //           [7_______]
          //           [0]
           ((in[23 + inPos] & 1) <<  7)) & 255);
      out[ 3 + outPos] = (byte)((
          //           [_______0]
          //                  [0]
           ((in[24 + inPos] & 1))
        | //           [______1_]
          //                 [0]
           ((in[25 + inPos] & 1) <<  1)
        | //           [_____2__]
          //                [0]
           ((in[26 + inPos] & 1) <<  2)
        | //           [____3___]
          //               [0]
           ((in[27 + inPos] & 1) <<  3)
        | //           [___4____]
          //              [0]
           ((in[28 + inPos] & 1) <<  4)
        | //           [__5_____]
          //             [0]
           ((in[29 + inPos] & 1) <<  5)
        | //           [_6______]
          //            [0]
           ((in[30 + inPos] & 1) <<  6)
        | //           [7_______]
          //           [0]
           ((in[31 + inPos] & 1) <<  7)) & 255);
    }
    public final void unpack8Values(final byte[] in, final int inPos, final int[] out, final int outPos) {
      out[ 0 + outPos] =
          //           [_______0]
          //                  [0]
            ((((int)in[ 0 + inPos]) ) & 1);
      out[ 1 + outPos] =
          //           [______1_]
          //                 [0]
            ((((int)in[ 0 + inPos]) >>  1) & 1);
      out[ 2 + outPos] =
          //           [_____2__]
          //                [0]
            ((((int)in[ 0 + inPos]) >>  2) & 1);
      out[ 3 + outPos] =
          //           [____3___]
          //               [0]
            ((((int)in[ 0 + inPos]) >>  3) & 1);
      out[ 4 + outPos] =
          //           [___4____]
          //              [0]
            ((((int)in[ 0 + inPos]) >>  4) & 1);
      out[ 5 + outPos] =
          //           [__5_____]
          //             [0]
            ((((int)in[ 0 + inPos]) >>  5) & 1);
      out[ 6 + outPos] =
          //           [_6______]
          //            [0]
            ((((int)in[ 0 + inPos]) >>  6) & 1);
      out[ 7 + outPos] =
          //           [7_______]
          //           [0]
            ((((int)in[ 0 + inPos]) >>  7) & 1);
    }
    public final void unpack8Values(final ByteBuffer in, final int inPos, final int[] out, final int outPos) {
      out[ 0 + outPos] =
          //           [_______0]
          //                  [0]
            ((((int)in.get( 0 + inPos)) ) & 1);
      out[ 1 + outPos] =
          //           [______1_]
          //                 [0]
            ((((int)in.get( 0 + inPos)) >>  1) & 1);
      out[ 2 + outPos] =
          //           [_____2__]
          //                [0]
            ((((int)in.get( 0 + inPos)) >>  2) & 1);
      out[ 3 + outPos] =
          //           [____3___]
          //               [0]
            ((((int)in.get( 0 + inPos)) >>  3) & 1);
      out[ 4 + outPos] =
          //           [___4____]
          //              [0]
            ((((int)in.get( 0 + inPos)) >>  4) & 1);
      out[ 5 + outPos] =
          //           [__5_____]
          //             [0]
            ((((int)in.get( 0 + inPos)) >>  5) & 1);
      out[ 6 + outPos] =
          //           [_6______]
          //            [0]
            ((((int)in.get( 0 + inPos)) >>  6) & 1);
      out[ 7 + outPos] =
          //           [7_______]
          //           [0]
            ((((int)in.get( 0 + inPos)) >>  7) & 1);
    }
    public final void unpack32Values(final byte[] in, final int inPos, final int[] out, final int outPos) {
      out[ 0 + outPos] =
          //           [_______0]
          //                  [0]
            ((((int)in[ 0 + inPos]) ) & 1);
      out[ 1 + outPos] =
          //           [______1_]
          //                 [0]
            ((((int)in[ 0 + inPos]) >>  1) & 1);
      out[ 2 + outPos] =
          //           [_____2__]
          //                [0]
            ((((int)in[ 0 + inPos]) >>  2) & 1);
      out[ 3 + outPos] =
          //           [____3___]
          //               [0]
            ((((int)in[ 0 + inPos]) >>  3) & 1);
      out[ 4 + outPos] =
          //           [___4____]
          //              [0]
            ((((int)in[ 0 + inPos]) >>  4) & 1);
      out[ 5 + outPos] =
          //           [__5_____]
          //             [0]
            ((((int)in[ 0 + inPos]) >>  5) & 1);
      out[ 6 + outPos] =
          //           [_6______]
          //            [0]
            ((((int)in[ 0 + inPos]) >>  6) & 1);
      out[ 7 + outPos] =
          //           [7_______]
          //           [0]
            ((((int)in[ 0 + inPos]) >>  7) & 1);
      out[ 8 + outPos] =
          //           [_______0]
          //                  [0]
            ((((int)in[ 1 + inPos]) ) & 1);
      out[ 9 + outPos] =
          //           [______1_]
          //                 [0]
            ((((int)in[ 1 + inPos]) >>  1) & 1);
      out[10 + outPos] =
          //           [_____2__]
          //                [0]
            ((((int)in[ 1 + inPos]) >>  2) & 1);
      out[11 + outPos] =
          //           [____3___]
          //               [0]
            ((((int)in[ 1 + inPos]) >>  3) & 1);
      out[12 + outPos] =
          //           [___4____]
          //              [0]
            ((((int)in[ 1 + inPos]) >>  4) & 1);
      out[13 + outPos] =
          //           [__5_____]
          //             [0]
            ((((int)in[ 1 + inPos]) >>  5) & 1);
      out[14 + outPos] =
          //           [_6______]
          //            [0]
            ((((int)in[ 1 + inPos]) >>  6) & 1);
      out[15 + outPos] =
          //           [7_______]
          //           [0]
            ((((int)in[ 1 + inPos]) >>  7) & 1);
      out[16 + outPos] =
          //           [_______0]
          //                  [0]
            ((((int)in[ 2 + inPos]) ) & 1);
      out[17 + outPos] =
          //           [______1_]
          //                 [0]
            ((((int)in[ 2 + inPos]) >>  1) & 1);
      out[18 + outPos] =
          //           [_____2__]
          //                [0]
            ((((int)in[ 2 + inPos]) >>  2) & 1);
      out[19 + outPos] =
          //           [____3___]
          //               [0]
            ((((int)in[ 2 + inPos]) >>  3) & 1);
      out[20 + outPos] =
          //           [___4____]
          //              [0]
            ((((int)in[ 2 + inPos]) >>  4) & 1);
      out[21 + outPos] =
          //           [__5_____]
          //             [0]
            ((((int)in[ 2 + inPos]) >>  5) & 1);
      out[22 + outPos] =
          //           [_6______]
          //            [0]
            ((((int)in[ 2 + inPos]) >>  6) & 1);
      out[23 + outPos] =
          //           [7_______]
          //           [0]
            ((((int)in[ 2 + inPos]) >>  7) & 1);
      out[24 + outPos] =
          //           [_______0]
          //                  [0]
            ((((int)in[ 3 + inPos]) ) & 1);
      out[25 + outPos] =
          //           [______1_]
          //                 [0]
            ((((int)in[ 3 + inPos]) >>  1) & 1);
      out[26 + outPos] =
          //           [_____2__]
          //                [0]
            ((((int)in[ 3 + inPos]) >>  2) & 1);
      out[27 + outPos] =
          //           [____3___]
          //               [0]
            ((((int)in[ 3 + inPos]) >>  3) & 1);
      out[28 + outPos] =
          //           [___4____]
          //              [0]
            ((((int)in[ 3 + inPos]) >>  4) & 1);
      out[29 + outPos] =
          //           [__5_____]
          //             [0]
            ((((int)in[ 3 + inPos]) >>  5) & 1);
      out[30 + outPos] =
          //           [_6______]
          //            [0]
            ((((int)in[ 3 + inPos]) >>  6) & 1);
      out[31 + outPos] =
          //           [7_______]
          //           [0]
            ((((int)in[ 3 + inPos]) >>  7) & 1);
    }
    public final void unpack32Values(final ByteBuffer in, final int inPos, final int[] out, final int outPos) {
      out[ 0 + outPos] =
          //           [_______0]
          //                  [0]
            ((((int)in.get( 0 + inPos)) ) & 1);
      out[ 1 + outPos] =
          //           [______1_]
          //                 [0]
            ((((int)in.get( 0 + inPos)) >>  1) & 1);
      out[ 2 + outPos] =
          //           [_____2__]
          //                [0]
            ((((int)in.get( 0 + inPos)) >>  2) & 1);
      out[ 3 + outPos] =
          //           [____3___]
          //               [0]
            ((((int)in.get( 0 + inPos)) >>  3) & 1);
      out[ 4 + outPos] =
          //           [___4____]
          //              [0]
            ((((int)in.get( 0 + inPos)) >>  4) & 1);
      out[ 5 + outPos] =
          //           [__5_____]
          //             [0]
            ((((int)in.get( 0 + inPos)) >>  5) & 1);
      out[ 6 + outPos] =
          //           [_6______]
          //            [0]
            ((((int)in.get( 0 + inPos)) >>  6) & 1);
      out[ 7 + outPos] =
          //           [7_______]
          //           [0]
            ((((int)in.get( 0 + inPos)) >>  7) & 1);
      out[ 8 + outPos] =
          //           [_______0]
          //                  [0]
            ((((int)in.get( 1 + inPos)) ) & 1);
      out[ 9 + outPos] =
          //           [______1_]
          //                 [0]
            ((((int)in.get( 1 + inPos)) >>  1) & 1);
      out[10 + outPos] =
          //           [_____2__]
          //                [0]
            ((((int)in.get( 1 + inPos)) >>  2) & 1);
      out[11 + outPos] =
          //           [____3___]
          //               [0]
            ((((int)in.get( 1 + inPos)) >>  3) & 1);
      out[12 + outPos] =
          //           [___4____]
          //              [0]
            ((((int)in.get( 1 + inPos)) >>  4) & 1);
      out[13 + outPos] =
          //           [__5_____]
          //             [0]
            ((((int)in.get( 1 + inPos)) >>  5) & 1);
      out[14 + outPos] =
          //           [_6______]
          //            [0]
            ((((int)in.get( 1 + inPos)) >>  6) & 1);
      out[15 + outPos] =
          //           [7_______]
          //           [0]
            ((((int)in.get( 1 + inPos)) >>  7) & 1);
      out[16 + outPos] =
          //           [_______0]
          //                  [0]
            ((((int)in.get( 2 + inPos)) ) & 1);
      out[17 + outPos] =
          //           [______1_]
          //                 [0]
            ((((int)in.get( 2 + inPos)) >>  1) & 1);
      out[18 + outPos] =
          //           [_____2__]
          //                [0]
            ((((int)in.get( 2 + inPos)) >>  2) & 1);
      out[19 + outPos] =
          //           [____3___]
          //               [0]
            ((((int)in.get( 2 + inPos)) >>  3) & 1);
      out[20 + outPos] =
          //           [___4____]
          //              [0]
            ((((int)in.get( 2 + inPos)) >>  4) & 1);
      out[21 + outPos] =
          //           [__5_____]
          //             [0]
            ((((int)in.get( 2 + inPos)) >>  5) & 1);
      out[22 + outPos] =
          //           [_6______]
          //            [0]
            ((((int)in.get( 2 + inPos)) >>  6) & 1);
      out[23 + outPos] =
          //           [7_______]
          //           [0]
            ((((int)in.get( 2 + inPos)) >>  7) & 1);
      out[24 + outPos] =
          //           [_______0]
          //                  [0]
            ((((int)in.get( 3 + inPos)) ) & 1);
      out[25 + outPos] =
          //           [______1_]
          //                 [0]
            ((((int)in.get( 3 + inPos)) >>  1) & 1);
      out[26 + outPos] =
          //           [_____2__]
          //                [0]
            ((((int)in.get( 3 + inPos)) >>  2) & 1);
      out[27 + outPos] =
          //           [____3___]
          //               [0]
            ((((int)in.get( 3 + inPos)) >>  3) & 1);
      out[28 + outPos] =
          //           [___4____]
          //              [0]
            ((((int)in.get( 3 + inPos)) >>  4) & 1);
      out[29 + outPos] =
          //           [__5_____]
          //             [0]
            ((((int)in.get( 3 + inPos)) >>  5) & 1);
      out[30 + outPos] =
          //           [_6______]
          //            [0]
            ((((int)in.get( 3 + inPos)) >>  6) & 1);
      out[31 + outPos] =
          //           [7_______]
          //           [0]
            ((((int)in.get( 3 + inPos)) >>  7) & 1);
    }
  }

  private static final class Packer2 extends BytePacker {

    private Packer2() {
      super(2);
    }

    public final void pack8Values(final int[] in, final int inPos, final byte[] out, final int outPos) {
      out[ 0 + outPos] = (byte)((
          //            [______10]
          //                  [10]
           ((in[ 0 + inPos] & 3))
        | //            [____32__]
          //                [10]
           ((in[ 1 + inPos] & 3) <<  2)
        | //            [__54____]
          //              [10]
           ((in[ 2 + inPos] & 3) <<  4)
        | //            [76______]
          //            [10]
           ((in[ 3 + inPos] & 3) <<  6)) & 255);
      out[ 1 + outPos] = (byte)((
          //            [______10]
          //                  [10]
           ((in[ 4 + inPos] & 3))
        | //            [____32__]
          //                [10]
           ((in[ 5 + inPos] & 3) <<  2)
        | //            [__54____]
          //              [10]
           ((in[ 6 + inPos] & 3) <<  4)
        | //            [76______]
          //            [10]
           ((in[ 7 + inPos] & 3) <<  6)) & 255);
    }
    public final void pack32Values(final int[] in, final int inPos, final byte[] out, final int outPos) {
      out[ 0 + outPos] = (byte)((
          //            [______10]
          //                  [10]
           ((in[ 0 + inPos] & 3))
        | //            [____32__]
          //                [10]
           ((in[ 1 + inPos] & 3) <<  2)
        | //            [__54____]
          //              [10]
           ((in[ 2 + inPos] & 3) <<  4)
        | //            [76______]
          //            [10]
           ((in[ 3 + inPos] & 3) <<  6)) & 255);
      out[ 1 + outPos] = (byte)((
          //            [______10]
          //                  [10]
           ((in[ 4 + inPos] & 3))
        | //            [____32__]
          //                [10]
           ((in[ 5 + inPos] & 3) <<  2)
        | //            [__54____]
          //              [10]
           ((in[ 6 + inPos] & 3) <<  4)
        | //            [76______]
          //            [10]
           ((in[ 7 + inPos] & 3) <<  6)) & 255);
      out[ 2 + outPos] = (byte)((
          //            [______10]
          //                  [10]
           ((in[ 8 + inPos] & 3))
        | //            [____32__]
          //                [10]
           ((in[ 9 + inPos] & 3) <<  2)
        | //            [__54____]
          //              [10]
           ((in[10 + inPos] & 3) <<  4)
        | //            [76______]
          //            [10]
           ((in[11 + inPos] & 3) <<  6)) & 255);
      out[ 3 + outPos] = (byte)((
          //            [______10]
          //                  [10]
           ((in[12 + inPos] & 3))
        | //            [____32__]
          //                [10]
           ((in[13 + inPos] & 3) <<  2)
        | //            [__54____]
          //              [10]
           ((in[14 + inPos] & 3) <<  4)
        | //            [76______]
          //            [10]
           ((in[15 + inPos] & 3) <<  6)) & 255);
      out[ 4 + outPos] = (byte)((
          //            [______10]
          //                  [10]
           ((in[16 + inPos] & 3))
        | //            [____32__]
          //                [10]
           ((in[17 + inPos] & 3) <<  2)
        | //            [__54____]
          //              [10]
           ((in[18 + inPos] & 3) <<  4)
        | //            [76______]
          //            [10]
           ((in[19 + inPos] & 3) <<  6)) & 255);
      out[ 5 + outPos] = (byte)((
          //            [______10]
          //                  [10]
           ((in[20 + inPos] & 3))
        | //            [____32__]
          //                [10]
           ((in[21 + inPos] & 3) <<  2)
        | //            [__54____]
          //              [10]
           ((in[22 + inPos] & 3) <<  4)
        | //            [76______]
          //            [10]
           ((in[23 + inPos] & 3) <<  6)) & 255);
      out[ 6 + outPos] = (byte)((
          //            [______10]
          //                  [10]
           ((in[24 + inPos] & 3))
        | //            [____32__]
          //                [10]
           ((in[25 + inPos] & 3) <<  2)
        | //            [__54____]
          //              [10]
           ((in[26 + inPos] & 3) <<  4)
        | //            [76______]
          //            [10]
           ((in[27 + inPos] & 3) <<  6)) & 255);
      out[ 7 + outPos] = (byte)((
          //            [______10]
          //                  [10]
           ((in[28 + inPos] & 3))
        | //            [____32__]
          //                [10]
           ((in[29 + inPos] & 3) <<  2)
        | //            [__54____]
          //              [10]
           ((in[30 + inPos] & 3) <<  4)
        | //            [76______]
          //            [10]
           ((in[31 + inPos] & 3) <<  6)) & 255);
    }
    public final void unpack8Values(final byte[] in, final int inPos, final int[] out, final int outPos) {
      out[ 0 + outPos] =
          //            [______10]
          //                  [10]
            ((((int)in[ 0 + inPos]) ) & 3);
      out[ 1 + outPos] =
          //            [____32__]
          //                [10]
            ((((int)in[ 0 + inPos]) >>  2) & 3);
      out[ 2 + outPos] =
          //            [__54____]
          //              [10]
            ((((int)in[ 0 + inPos]) >>  4) & 3);
      out[ 3 + outPos] =
          //            [76______]
          //            [10]
            ((((int)in[ 0 + inPos]) >>  6) & 3);
      out[ 4 + outPos] =
          //            [______10]
          //                  [10]
            ((((int)in[ 1 + inPos]) ) & 3);
      out[ 5 + outPos] =
          //            [____32__]
          //                [10]
            ((((int)in[ 1 + inPos]) >>  2) & 3);
      out[ 6 + outPos] =
          //            [__54____]
          //              [10]
            ((((int)in[ 1 + inPos]) >>  4) & 3);
      out[ 7 + outPos] =
          //            [76______]
          //            [10]
            ((((int)in[ 1 + inPos]) >>  6) & 3);
    }
    public final void unpack8Values(final ByteBuffer in, final int inPos, final int[] out, final int outPos) {
      out[ 0 + outPos] =
          //            [______10]
          //                  [10]
            ((((int)in.get( 0 + inPos)) ) & 3);
      out[ 1 + outPos] =
          //            [____32__]
          //                [10]
            ((((int)in.get( 0 + inPos)) >>  2) & 3);
      out[ 2 + outPos] =
          //            [__54____]
          //              [10]
            ((((int)in.get( 0 + inPos)) >>  4) & 3);
      out[ 3 + outPos] =
          //            [76______]
          //            [10]
            ((((int)in.get( 0 + inPos)) >>  6) & 3);
      out[ 4 + outPos] =
          //            [______10]
          //                  [10]
            ((((int)in.get( 1 + inPos)) ) & 3);
      out[ 5 + outPos] =
          //            [____32__]
          //                [10]
            ((((int)in.get( 1 + inPos)) >>  2) & 3);
      out[ 6 + outPos] =
          //            [__54____]
          //              [10]
            ((((int)in.get( 1 + inPos)) >>  4) & 3);
      out[ 7 + outPos] =
          //            [76______]
          //            [10]
            ((((int)in.get( 1 + inPos)) >>  6) & 3);
    }
    public final void unpack32Values(final byte[] in, final int inPos, final int[] out, final int outPos) {
      out[ 0 + outPos] =
          //            [______10]
          //                  [10]
            ((((int)in[ 0 + inPos]) ) & 3);
      out[ 1 + outPos] =
          //            [____32__]
          //                [10]
            ((((int)in[ 0 + inPos]) >>  2) & 3);
      out[ 2 + outPos] =
          //            [__54____]
          //              [10]
            ((((int)in[ 0 + inPos]) >>  4) & 3);
      out[ 3 + outPos] =
          //            [76______]
          //            [10]
            ((((int)in[ 0 + inPos]) >>  6) & 3);
      out[ 4 + outPos] =
          //            [______10]
          //                  [10]
            ((((int)in[ 1 + inPos]) ) & 3);
      out[ 5 + outPos] =
          //            [____32__]
          //                [10]
            ((((int)in[ 1 + inPos]) >>  2) & 3);
      out[ 6 + outPos] =
          //            [__54____]
          //              [10]
            ((((int)in[ 1 + inPos]) >>  4) & 3);
      out[ 7 + outPos] =
          //            [76______]
          //            [10]
            ((((int)in[ 1 + inPos]) >>  6) & 3);
      out[ 8 + outPos] =
          //            [______10]
          //                  [10]
            ((((int)in[ 2 + inPos]) ) & 3);
      out[ 9 + outPos] =
          //            [____32__]
          //                [10]
            ((((int)in[ 2 + inPos]) >>  2) & 3);
      out[10 + outPos] =
          //            [__54____]
          //              [10]
            ((((int)in[ 2 + inPos]) >>  4) & 3);
      out[11 + outPos] =
          //            [76______]
          //            [10]
            ((((int)in[ 2 + inPos]) >>  6) & 3);
      out[12 + outPos] =
          //            [______10]
          //                  [10]
            ((((int)in[ 3 + inPos]) ) & 3);
      out[13 + outPos] =
          //            [____32__]
          //                [10]
            ((((int)in[ 3 + inPos]) >>  2) & 3);
      out[14 + outPos] =
          //            [__54____]
          //              [10]
            ((((int)in[ 3 + inPos]) >>  4) & 3);
      out[15 + outPos] =
          //            [76______]
          //            [10]
            ((((int)in[ 3 + inPos]) >>  6) & 3);
      out[16 + outPos] =
          //            [______10]
          //                  [10]
            ((((int)in[ 4 + inPos]) ) & 3);
      out[17 + outPos] =
          //            [____32__]
          //                [10]
            ((((int)in[ 4 + inPos]) >>  2) & 3);
      out[18 + outPos] =
          //            [__54____]
          //              [10]
            ((((int)in[ 4 + inPos]) >>  4) & 3);
      out[19 + outPos] =
          //            [76______]
          //            [10]
            ((((int)in[ 4 + inPos]) >>  6) & 3);
      out[20 + outPos] =
          //            [______10]
          //                  [10]
            ((((int)in[ 5 + inPos]) ) & 3);
      out[21 + outPos] =
          //            [____32__]
          //                [10]
            ((((int)in[ 5 + inPos]) >>  2) & 3);
      out[22 + outPos] =
          //            [__54____]
          //              [10]
            ((((int)in[ 5 + inPos]) >>  4) & 3);
      out[23 + outPos] =
          //            [76______]
          //            [10]
            ((((int)in[ 5 + inPos]) >>  6) & 3);
      out[24 + outPos] =
          //            [______10]
          //                  [10]
            ((((int)in[ 6 + inPos]) ) & 3);
      out[25 + outPos] =
          //            [____32__]
          //                [10]
            ((((int)in[ 6 + inPos]) >>  2) & 3);
      out[26 + outPos] =
          //            [__54____]
          //              [10]
            ((((int)in[ 6 + inPos]) >>  4) & 3);
      out[27 + outPos] =
          //            [76______]
          //            [10]
            ((((int)in[ 6 + inPos]) >>  6) & 3);
      out[28 + outPos] =
          //            [______10]
          //                  [10]
            ((((int)in[ 7 + inPos]) ) & 3);
      out[29 + outPos] =
          //            [____32__]
          //                [10]
            ((((int)in[ 7 + inPos]) >>  2) & 3);
      out[30 + outPos] =
          //            [__54____]
          //              [10]
            ((((int)in[ 7 + inPos]) >>  4) & 3);
      out[31 + outPos] =
          //            [76______]
          //            [10]
            ((((int)in[ 7 + inPos]) >>  6) & 3);
    }
    public final void unpack32Values(final ByteBuffer in, final int inPos, final int[] out, final int outPos) {
      out[ 0 + outPos] =
          //            [______10]
          //                  [10]
            ((((int)in.get( 0 + inPos)) ) & 3);
      out[ 1 + outPos] =
          //            [____32__]
          //                [10]
            ((((int)in.get( 0 + inPos)) >>  2) & 3);
      out[ 2 + outPos] =
          //            [__54____]
          //              [10]
            ((((int)in.get( 0 + inPos)) >>  4) & 3);
      out[ 3 + outPos] =
          //            [76______]
          //            [10]
            ((((int)in.get( 0 + inPos)) >>  6) & 3);
      out[ 4 + outPos] =
          //            [______10]
          //                  [10]
            ((((int)in.get( 1 + inPos)) ) & 3);
      out[ 5 + outPos] =
          //            [____32__]
          //                [10]
            ((((int)in.get( 1 + inPos)) >>  2) & 3);
      out[ 6 + outPos] =
          //            [__54____]
          //              [10]
            ((((int)in.get( 1 + inPos)) >>  4) & 3);
      out[ 7 + outPos] =
          //            [76______]
          //            [10]
            ((((int)in.get( 1 + inPos)) >>  6) & 3);
      out[ 8 + outPos] =
          //            [______10]
          //                  [10]
            ((((int)in.get( 2 + inPos)) ) & 3);
      out[ 9 + outPos] =
          //            [____32__]
          //                [10]
            ((((int)in.get( 2 + inPos)) >>  2) & 3);
      out[10 + outPos] =
          //            [__54____]
          //              [10]
            ((((int)in.get( 2 + inPos)) >>  4) & 3);
      out[11 + outPos] =
          //            [76______]
          //            [10]
            ((((int)in.get( 2 + inPos)) >>  6) & 3);
      out[12 + outPos] =
          //            [______10]
          //                  [10]
            ((((int)in.get( 3 + inPos)) ) & 3);
      out[13 + outPos] =
          //            [____32__]
          //                [10]
            ((((int)in.get( 3 + inPos)) >>  2) & 3);
      out[14 + outPos] =
          //            [__54____]
          //              [10]
            ((((int)in.get( 3 + inPos)) >>  4) & 3);
      out[15 + outPos] =
          //            [76______]
          //            [10]
            ((((int)in.get( 3 + inPos)) >>  6) & 3);
      out[16 + outPos] =
          //            [______10]
          //                  [10]
            ((((int)in.get( 4 + inPos)) ) & 3);
      out[17 + outPos] =
          //            [____32__]
          //                [10]
            ((((int)in.get( 4 + inPos)) >>  2) & 3);
      out[18 + outPos] =
          //            [__54____]
          //              [10]
            ((((int)in.get( 4 + inPos)) >>  4) & 3);
      out[19 + outPos] =
          //            [76______]
          //            [10]
            ((((int)in.get( 4 + inPos)) >>  6) & 3);
      out[20 + outPos] =
          //            [______10]
          //                  [10]
            ((((int)in.get( 5 + inPos)) ) & 3);
      out[21 + outPos] =
          //            [____32__]
          //                [10]
            ((((int)in.get( 5 + inPos)) >>  2) & 3);
      out[22 + outPos] =
          //            [__54____]
          //              [10]
            ((((int)in.get( 5 + inPos)) >>  4) & 3);
      out[23 + outPos] =
          //            [76______]
          //            [10]
            ((((int)in.get( 5 + inPos)) >>  6) & 3);
      out[24 + outPos] =
          //            [______10]
          //                  [10]
            ((((int)in.get( 6 + inPos)) ) & 3);
      out[25 + outPos] =
          //            [____32__]
          //                [10]
            ((((int)in.get( 6 + inPos)) >>  2) & 3);
      out[26 + outPos] =
          //            [__54____]
          //              [10]
            ((((int)in.get( 6 + inPos)) >>  4) & 3);
      out[27 + outPos] =
          //            [76______]
          //            [10]
            ((((int)in.get( 6 + inPos)) >>  6) & 3);
      out[28 + outPos] =
          //            [______10]
          //                  [10]
            ((((int)in.get( 7 + inPos)) ) & 3);
      out[29 + outPos] =
          //            [____32__]
          //                [10]
            ((((int)in.get( 7 + inPos)) >>  2) & 3);
      out[30 + outPos] =
          //            [__54____]
          //              [10]
            ((((int)in.get( 7 + inPos)) >>  4) & 3);
      out[31 + outPos] =
          //            [76______]
          //            [10]
            ((((int)in.get( 7 + inPos)) >>  6) & 3);
    }
  }

  private static final class Packer3 extends BytePacker {

    private Packer3() {
      super(3);
    }

    public final void pack8Values(final int[] in, final int inPos, final byte[] out, final int outPos) {
      out[ 0 + outPos] = (byte)((
          //             [_____210]
          //                  [210]
           ((in[ 0 + inPos] & 7))
        | //             [__543___]
          //               [210]
           ((in[ 1 + inPos] & 7) <<  3)
        | //             [76______]
          //            [_10]
           ((in[ 2 + inPos] & 7) <<  6)) & 255);
      out[ 1 + outPos] = (byte)((
          //             [_______0]
          //                    [2__]
           ((in[ 2 + inPos] & 7) >>> 2)
        | //             [____321_]
          //                 [210]
           ((in[ 3 + inPos] & 7) <<  1)
        | //             [_654____]
          //              [210]
           ((in[ 4 + inPos] & 7) <<  4)
        | //             [7_______]
          //           [__0]
           ((in[ 5 + inPos] & 7) <<  7)) & 255);
      out[ 2 + outPos] = (byte)((
          //             [______10]
          //                   [21_]
           ((in[ 5 + inPos] & 7) >>> 1)
        | //             [___432__]
          //                [210]
           ((in[ 6 + inPos] & 7) <<  2)
        | //             [765_____]
          //             [210]
           ((in[ 7 + inPos] & 7) <<  5)) & 255);
    }
    public final void pack32Values(final int[] in, final int inPos, final byte[] out, final int outPos) {
      out[ 0 + outPos] = (byte)((
          //             [_____210]
          //                  [210]
           ((in[ 0 + inPos] & 7))
        | //             [__543___]
          //               [210]
           ((in[ 1 + inPos] & 7) <<  3)
        | //             [76______]
          //            [_10]
           ((in[ 2 + inPos] & 7) <<  6)) & 255);
      out[ 1 + outPos] = (byte)((
          //             [_______0]
          //                    [2__]
           ((in[ 2 + inPos] & 7) >>> 2)
        | //             [____321_]
          //                 [210]
           ((in[ 3 + inPos] & 7) <<  1)
        | //             [_654____]
          //              [210]
           ((in[ 4 + inPos] & 7) <<  4)
        | //             [7_______]
          //           [__0]
           ((in[ 5 + inPos] & 7) <<  7)) & 255);
      out[ 2 + outPos] = (byte)((
          //             [______10]
          //                   [21_]
           ((in[ 5 + inPos] & 7) >>> 1)
        | //             [___432__]
          //                [210]
           ((in[ 6 + inPos] & 7) <<  2)
        | //             [765_____]
          //             [210]
           ((in[ 7 + inPos] & 7) <<  5)) & 255);
      out[ 3 + outPos] = (byte)((
          //             [_____210]
          //                  [210]
           ((in[ 8 + inPos] & 7))
        | //             [__543___]
          //               [210]
           ((in[ 9 + inPos] & 7) <<  3)
        | //             [76______]
          //            [_10]
           ((in[10 + inPos] & 7) <<  6)) & 255);
      out[ 4 + outPos] = (byte)((
          //             [_______0]
          //                    [2__]
           ((in[10 + inPos] & 7) >>> 2)
        | //             [____321_]
          //                 [210]
           ((in[11 + inPos] & 7) <<  1)
        | //             [_654____]
          //              [210]
           ((in[12 + inPos] & 7) <<  4)
        | //             [7_______]
          //           [__0]
           ((in[13 + inPos] & 7) <<  7)) & 255);
      out[ 5 + outPos] = (byte)((
          //             [______10]
          //                   [21_]
           ((in[13 + inPos] & 7) >>> 1)
        | //             [___432__]
          //                [210]
           ((in[14 + inPos] & 7) <<  2)
        | //             [765_____]
          //             [210]
           ((in[15 + inPos] & 7) <<  5)) & 255);
      out[ 6 + outPos] = (byte)((
          //             [_____210]
          //                  [210]
           ((in[16 + inPos] & 7))
        | //             [__543___]
          //               [210]
           ((in[17 + inPos] & 7) <<  3)
        | //             [76______]
          //            [_10]
           ((in[18 + inPos] & 7) <<  6)) & 255);
      out[ 7 + outPos] = (byte)((
          //             [_______0]
          //                    [2__]
           ((in[18 + inPos] & 7) >>> 2)
        | //             [____321_]
          //                 [210]
           ((in[19 + inPos] & 7) <<  1)
        | //             [_654____]
          //              [210]
           ((in[20 + inPos] & 7) <<  4)
        | //             [7_______]
          //           [__0]
           ((in[21 + inPos] & 7) <<  7)) & 255);
      out[ 8 + outPos] = (byte)((
          //             [______10]
          //                   [21_]
           ((in[21 + inPos] & 7) >>> 1)
        | //             [___432__]
          //                [210]
           ((in[22 + inPos] & 7) <<  2)
        | //             [765_____]
          //             [210]
           ((in[23 + inPos] & 7) <<  5)) & 255);
      out[ 9 + outPos] = (byte)((
          //             [_____210]
          //                  [210]
           ((in[24 + inPos] & 7))
        | //             [__543___]
          //               [210]
           ((in[25 + inPos] & 7) <<  3)
        | //             [76______]
          //            [_10]
           ((in[26 + inPos] & 7) <<  6)) & 255);
      out[10 + outPos] = (byte)((
          //             [_______0]
          //                    [2__]
           ((in[26 + inPos] & 7) >>> 2)
        | //             [____321_]
          //                 [210]
           ((in[27 + inPos] & 7) <<  1)
        | //             [_654____]
          //              [210]
           ((in[28 + inPos] & 7) <<  4)
        | //             [7_______]
          //           [__0]
           ((in[29 + inPos] & 7) <<  7)) & 255);
      out[11 + outPos] = (byte)((
          //             [______10]
          //                   [21_]
           ((in[29 + inPos] & 7) >>> 1)
        | //             [___432__]
          //                [210]
           ((in[30 + inPos] & 7) <<  2)
        | //             [765_____]
          //             [210]
           ((in[31 + inPos] & 7) <<  5)) & 255);
    }
    public final void unpack8Values(final byte[] in, final int inPos, final int[] out, final int outPos) {
      out[ 0 + outPos] =
          //             [_____210]
          //                  [210]
            ((((int)in[ 0 + inPos]) ) & 7);
      out[ 1 + outPos] =
          //             [__543___]
          //               [210]
            ((((int)in[ 0 + inPos]) >>  3) & 7);
      out[ 2 + outPos] =
          //             [76______]
          //            [_10]
            ((((int)in[ 0 + inPos]) >>  6) & 3)
        | //             [_______0]
          //                    [2__]
            ((((int)in[ 1 + inPos]) <<  2) & 7);
      out[ 3 + outPos] =
          //             [____321_]
          //                 [210]
            ((((int)in[ 1 + inPos]) >>  1) & 7);
      out[ 4 + outPos] =
          //             [_654____]
          //              [210]
            ((((int)in[ 1 + inPos]) >>  4) & 7);
      out[ 5 + outPos] =
          //             [7_______]
          //           [__0]
            ((((int)in[ 1 + inPos]) >>  7) & 1)
        | //             [______10]
          //                   [21_]
            ((((int)in[ 2 + inPos]) <<  1) & 7);
      out[ 6 + outPos] =
          //             [___432__]
          //                [210]
            ((((int)in[ 2 + inPos]) >>  2) & 7);
      out[ 7 + outPos] =
          //             [765_____]
          //             [210]
            ((((int)in[ 2 + inPos]) >>  5) & 7);
    }
    public final void unpack8Values(final ByteBuffer in, final int inPos, final int[] out, final int outPos) {
      out[ 0 + outPos] =
          //             [_____210]
          //                  [210]
            ((((int)in.get( 0 + inPos)) ) & 7);
      out[ 1 + outPos] =
          //             [__543___]
          //               [210]
            ((((int)in.get( 0 + inPos)) >>  3) & 7);
      out[ 2 + outPos] =
          //             [76______]
          //            [_10]
            ((((int)in.get( 0 + inPos)) >>  6) & 3)
        | //             [_______0]
          //                    [2__]
            ((((int)in.get( 1 + inPos)) <<  2) & 7);
      out[ 3 + outPos] =
          //             [____321_]
          //                 [210]
            ((((int)in.get( 1 + inPos)) >>  1) & 7);
      out[ 4 + outPos] =
          //             [_654____]
          //              [210]
            ((((int)in.get( 1 + inPos)) >>  4) & 7);
      out[ 5 + outPos] =
          //             [7_______]
          //           [__0]
            ((((int)in.get( 1 + inPos)) >>  7) & 1)
        | //             [______10]
          //                   [21_]
            ((((int)in.get( 2 + inPos)) <<  1) & 7);
      out[ 6 + outPos] =
          //             [___432__]
          //                [210]
            ((((int)in.get( 2 + inPos)) >>  2) & 7);
      out[ 7 + outPos] =
          //             [765_____]
          //             [210]
            ((((int)in.get( 2 + inPos)) >>  5) & 7);
    }
    public final void unpack32Values(final byte[] in, final int inPos, final int[] out, final int outPos) {
      out[ 0 + outPos] =
          //             [_____210]
          //                  [210]
            ((((int)in[ 0 + inPos]) ) & 7);
      out[ 1 + outPos] =
          //             [__543___]
          //               [210]
            ((((int)in[ 0 + inPos]) >>  3) & 7);
      out[ 2 + outPos] =
          //             [76______]
          //            [_10]
            ((((int)in[ 0 + inPos]) >>  6) & 3)
        | //             [_______0]
          //                    [2__]
            ((((int)in[ 1 + inPos]) <<  2) & 7);
      out[ 3 + outPos] =
          //             [____321_]
          //                 [210]
            ((((int)in[ 1 + inPos]) >>  1) & 7);
      out[ 4 + outPos] =
          //             [_654____]
          //              [210]
            ((((int)in[ 1 + inPos]) >>  4) & 7);
      out[ 5 + outPos] =
          //             [7_______]
          //           [__0]
            ((((int)in[ 1 + inPos]) >>  7) & 1)
        | //             [______10]
          //                   [21_]
            ((((int)in[ 2 + inPos]) <<  1) & 7);
      out[ 6 + outPos] =
          //             [___432__]
          //                [210]
            ((((int)in[ 2 + inPos]) >>  2) & 7);
      out[ 7 + outPos] =
          //             [765_____]
          //             [210]
            ((((int)in[ 2 + inPos]) >>  5) & 7);
      out[ 8 + outPos] =
          //             [_____210]
          //                  [210]
            ((((int)in[ 3 + inPos]) ) & 7);
      out[ 9 + outPos] =
          //             [__543___]
          //               [210]
            ((((int)in[ 3 + inPos]) >>  3) & 7);
      out[10 + outPos] =
          //             [76______]
          //            [_10]
            ((((int)in[ 3 + inPos]) >>  6) & 3)
        | //             [_______0]
          //                    [2__]
            ((((int)in[ 4 + inPos]) <<  2) & 7);
      out[11 + outPos] =
          //             [____321_]
          //                 [210]
            ((((int)in[ 4 + inPos]) >>  1) & 7);
      out[12 + outPos] =
          //             [_654____]
          //              [210]
            ((((int)in[ 4 + inPos]) >>  4) & 7);
      out[13 + outPos] =
          //             [7_______]
          //           [__0]
            ((((int)in[ 4 + inPos]) >>  7) & 1)
        | //             [______10]
          //                   [21_]
            ((((int)in[ 5 + inPos]) <<  1) & 7);
      out[14 + outPos] =
          //             [___432__]
          //                [210]
            ((((int)in[ 5 + inPos]) >>  2) & 7);
      out[15 + outPos] =
          //             [765_____]
          //             [210]
            ((((int)in[ 5 + inPos]) >>  5) & 7);
      out[16 + outPos] =
          //             [_____210]
          //                  [210]
            ((((int)in[ 6 + inPos]) ) & 7);
      out[17 + outPos] =
          //             [__543___]
          //               [210]
            ((((int)in[ 6 + inPos]) >>  3) & 7);
      out[18 + outPos] =
          //             [76______]
          //            [_10]
            ((((int)in[ 6 + inPos]) >>  6) & 3)
        | //             [_______0]
          //                    [2__]
            ((((int)in[ 7 + inPos]) <<  2) & 7);
      out[19 + outPos] =
          //             [____321_]
          //                 [210]
            ((((int)in[ 7 + inPos]) >>  1) & 7);
      out[20 + outPos] =
          //             [_654____]
          //              [210]
            ((((int)in[ 7 + inPos]) >>  4) & 7);
      out[21 + outPos] =
          //             [7_______]
          //           [__0]
            ((((int)in[ 7 + inPos]) >>  7) & 1)
        | //             [______10]
          //                   [21_]
            ((((int)in[ 8 + inPos]) <<  1) & 7);
      out[22 + outPos] =
          //             [___432__]
          //                [210]
            ((((int)in[ 8 + inPos]) >>  2) & 7);
      out[23 + outPos] =
          //             [765_____]
          //             [210]
            ((((int)in[ 8 + inPos]) >>  5) & 7);
      out[24 + outPos] =
          //             [_____210]
          //                  [210]
            ((((int)in[ 9 + inPos]) ) & 7);
      out[25 + outPos] =
          //             [__543___]
          //               [210]
            ((((int)in[ 9 + inPos]) >>  3) & 7);
      out[26 + outPos] =
          //             [76______]
          //            [_10]
            ((((int)in[ 9 + inPos]) >>  6) & 3)
        | //             [_______0]
          //                    [2__]
            ((((int)in[10 + inPos]) <<  2) & 7);
      out[27 + outPos] =
          //             [____321_]
          //                 [210]
            ((((int)in[10 + inPos]) >>  1) & 7);
      out[28 + outPos] =
          //             [_654____]
          //              [210]
            ((((int)in[10 + inPos]) >>  4) & 7);
      out[29 + outPos] =
          //             [7_______]
          //           [__0]
            ((((int)in[10 + inPos]) >>  7) & 1)
        | //             [______10]
          //                   [21_]
            ((((int)in[11 + inPos]) <<  1) & 7);
      out[30 + outPos] =
          //             [___432__]
          //                [210]
            ((((int)in[11 + inPos]) >>  2) & 7);
      out[31 + outPos] =
          //             [765_____]
          //             [210]
            ((((int)in[11 + inPos]) >>  5) & 7);
    }
    public final void unpack32Values(final ByteBuffer in, final int inPos, final int[] out, final int outPos) {
      out[ 0 + outPos] =
          //             [_____210]
          //                  [210]
            ((((int)in.get( 0 + inPos)) ) & 7);
      out[ 1 + outPos] =
          //             [__543___]
          //               [210]
            ((((int)in.get( 0 + inPos)) >>  3) & 7);
      out[ 2 + outPos] =
          //             [76______]
          //            [_10]
            ((((int)in.get( 0 + inPos)) >>  6) & 3)
        | //             [_______0]
          //                    [2__]
            ((((int)in.get( 1 + inPos)) <<  2) & 7);
      out[ 3 + outPos] =
          //             [____321_]
          //                 [210]
            ((((int)in.get( 1 + inPos)) >>  1) & 7);
      out[ 4 + outPos] =
          //             [_654____]
          //              [210]
            ((((int)in.get( 1 + inPos)) >>  4) & 7);
      out[ 5 + outPos] =
          //             [7_______]
          //           [__0]
            ((((int)in.get( 1 + inPos)) >>  7) & 1)
        | //             [______10]
          //                   [21_]
            ((((int)in.get( 2 + inPos)) <<  1) & 7);
      out[ 6 + outPos] =
          //             [___432__]
          //                [210]
            ((((int)in.get( 2 + inPos)) >>  2) & 7);
      out[ 7 + outPos] =
          //             [765_____]
          //             [210]
            ((((int)in.get( 2 + inPos)) >>  5) & 7);
      out[ 8 + outPos] =
          //             [_____210]
          //                  [210]
            ((((int)in.get( 3 + inPos)) ) & 7);
      out[ 9 + outPos] =
          //             [__543___]
          //               [210]
            ((((int)in.get( 3 + inPos)) >>  3) & 7);
      out[10 + outPos] =
          //             [76______]
          //            [_10]
            ((((int)in.get( 3 + inPos)) >>  6) & 3)
        | //             [_______0]
          //                    [2__]
            ((((int)in.get( 4 + inPos)) <<  2) & 7);
      out[11 + outPos] =
          //             [____321_]
          //                 [210]
            ((((int)in.get( 4 + inPos)) >>  1) & 7);
      out[12 + outPos] =
          //             [_654____]
          //              [210]
            ((((int)in.get( 4 + inPos)) >>  4) & 7);
      out[13 + outPos] =
          //             [7_______]
          //           [__0]
            ((((int)in.get( 4 + inPos)) >>  7) & 1)
        | //             [______10]
          //                   [21_]
            ((((int)in.get( 5 + inPos)) <<  1) & 7);
      out[14 + outPos] =
          //             [___432__]
          //                [210]
            ((((int)in.get( 5 + inPos)) >>  2) & 7);
      out[15 + outPos] =
          //             [765_____]
          //             [210]
            ((((int)in.get( 5 + inPos)) >>  5) & 7);
      out[16 + outPos] =
          //             [_____210]
          //                  [210]
            ((((int)in.get( 6 + inPos)) ) & 7);
      out[17 + outPos] =
          //             [__543___]
          //               [210]
            ((((int)in.get( 6 + inPos)) >>  3) & 7);
      out[18 + outPos] =
          //             [76______]
          //            [_10]
            ((((int)in.get( 6 + inPos)) >>  6) & 3)
        | //             [_______0]
          //                    [2__]
            ((((int)in.get( 7 + inPos)) <<  2) & 7);
      out[19 + outPos] =
          //             [____321_]
          //                 [210]
            ((((int)in.get( 7 + inPos)) >>  1) & 7);
      out[20 + outPos] =
          //             [_654____]
          //              [210]
            ((((int)in.get( 7 + inPos)) >>  4) & 7);
      out[21 + outPos] =
          //             [7_______]
          //           [__0]
            ((((int)in.get( 7 + inPos)) >>  7) & 1)
        | //             [______10]
          //                   [21_]
            ((((int)in.get( 8 + inPos)) <<  1) & 7);
      out[22 + outPos] =
          //             [___432__]
          //                [210]
            ((((int)in.get( 8 + inPos)) >>  2) & 7);
      out[23 + outPos] =
          //             [765_____]
          //             [210]
            ((((int)in.get( 8 + inPos)) >>  5) & 7);
      out[24 + outPos] =
          //             [_____210]
          //                  [210]
            ((((int)in.get( 9 + inPos)) ) & 7);
      out[25 + outPos] =
          //             [__543___]
          //               [210]
            ((((int)in.get( 9 + inPos)) >>  3) & 7);
      out[26 + outPos] =
          //             [76______]
          //            [_10]
            ((((int)in.get( 9 + inPos)) >>  6) & 3)
        | //             [_______0]
          //                    [2__]
            ((((int)in.get(10 + inPos)) <<  2) & 7);
      out[27 + outPos] =
          //             [____321_]
          //                 [210]
            ((((int)in.get(10 + inPos)) >>  1) & 7);
      out[28 + outPos] =
          //             [_654____]
          //              [210]
            ((((int)in.get(10 + inPos)) >>  4) & 7);
      out[29 + outPos] =
          //             [7_______]
          //           [__0]
            ((((int)in.get(10 + inPos)) >>  7) & 1)
        | //             [______10]
          //                   [21_]
            ((((int)in.get(11 + inPos)) <<  1) & 7);
      out[30 + outPos] =
          //             [___432__]
          //                [210]
            ((((int)in.get(11 + inPos)) >>  2) & 7);
      out[31 + outPos] =
          //             [765_____]
          //             [210]
            ((((int)in.get(11 + inPos)) >>  5) & 7);
    }
  }

  private static final class Packer4 extends BytePacker {

    private Packer4() {
      super(4);
    }

    public final void pack8Values(final int[] in, final int inPos, final byte[] out, final int outPos) {
      out[ 0 + outPos] = (byte)((
          //              [____3210]
          //                  [3210]
           ((in[ 0 + inPos] & 15))
        | //              [7654____]
          //              [3210]
           ((in[ 1 + inPos] & 15) <<  4)) & 255);
      out[ 1 + outPos] = (byte)((
          //              [____3210]
          //                  [3210]
           ((in[ 2 + inPos] & 15))
        | //              [7654____]
          //              [3210]
           ((in[ 3 + inPos] & 15) <<  4)) & 255);
      out[ 2 + outPos] = (byte)((
          //              [____3210]
          //                  [3210]
           ((in[ 4 + inPos] & 15))
        | //              [7654____]
          //              [3210]
           ((in[ 5 + inPos] & 15) <<  4)) & 255);
      out[ 3 + outPos] = (byte)((
          //              [____3210]
          //                  [3210]
           ((in[ 6 + inPos] & 15))
        | //              [7654____]
          //              [3210]
           ((in[ 7 + inPos] & 15) <<  4)) & 255);
    }
    public final void pack32Values(final int[] in, final int inPos, final byte[] out, final int outPos) {
      out[ 0 + outPos] = (byte)((
          //              [____3210]
          //                  [3210]
           ((in[ 0 + inPos] & 15))
        | //              [7654____]
          //              [3210]
           ((in[ 1 + inPos] & 15) <<  4)) & 255);
      out[ 1 + outPos] = (byte)((
          //              [____3210]
          //                  [3210]
           ((in[ 2 + inPos] & 15))
        | //              [7654____]
          //              [3210]
           ((in[ 3 + inPos] & 15) <<  4)) & 255);
      out[ 2 + outPos] = (byte)((
          //              [____3210]
          //                  [3210]
           ((in[ 4 + inPos] & 15))
        | //              [7654____]
          //              [3210]
           ((in[ 5 + inPos] & 15) <<  4)) & 255);
      out[ 3 + outPos] = (byte)((
          //              [____3210]
          //                  [3210]
           ((in[ 6 + inPos] & 15))
        | //              [7654____]
          //              [3210]
           ((in[ 7 + inPos] & 15) <<  4)) & 255);
      out[ 4 + outPos] = (byte)((
          //              [____3210]
          //                  [3210]
           ((in[ 8 + inPos] & 15))
        | //              [7654____]
          //              [3210]
           ((in[ 9 + inPos] & 15) <<  4)) & 255);
      out[ 5 + outPos] = (byte)((
          //              [____3210]
          //                  [3210]
           ((in[10 + inPos] & 15))
        | //              [7654____]
          //              [3210]
           ((in[11 + inPos] & 15) <<  4)) & 255);
      out[ 6 + outPos] = (byte)((
          //              [____3210]
          //                  [3210]
           ((in[12 + inPos] & 15))
        | //              [7654____]
          //              [3210]
           ((in[13 + inPos] & 15) <<  4)) & 255);
      out[ 7 + outPos] = (byte)((
          //              [____3210]
          //                  [3210]
           ((in[14 + inPos] & 15))
        | //              [7654____]
          //              [3210]
           ((in[15 + inPos] & 15) <<  4)) & 255);
      out[ 8 + outPos] = (byte)((
          //              [____3210]
          //                  [3210]
           ((in[16 + inPos] & 15))
        | //              [7654____]
          //              [3210]
           ((in[17 + inPos] & 15) <<  4)) & 255);
      out[ 9 + outPos] = (byte)((
          //              [____3210]
          //                  [3210]
           ((in[18 + inPos] & 15))
        | //              [7654____]
          //              [3210]
           ((in[19 + inPos] & 15) <<  4)) & 255);
      out[10 + outPos] = (byte)((
          //              [____3210]
          //                  [3210]
           ((in[20 + inPos] & 15))
        | //              [7654____]
          //              [3210]
           ((in[21 + inPos] & 15) <<  4)) & 255);
      out[11 + outPos] = (byte)((
          //              [____3210]
          //                  [3210]
           ((in[22 + inPos] & 15))
        | //              [7654____]
          //              [3210]
           ((in[23 + inPos] & 15) <<  4)) & 255);
      out[12 + outPos] = (byte)((
          //              [____3210]
          //                  [3210]
           ((in[24 + inPos] & 15))
        | //              [7654____]
          //              [3210]
           ((in[25 + inPos] & 15) <<  4)) & 255);
      out[13 + outPos] = (byte)((
          //              [____3210]
          //                  [3210]
           ((in[26 + inPos] & 15))
        | //              [7654____]
          //              [3210]
           ((in[27 + inPos] & 15) <<  4)) & 255);
      out[14 + outPos] = (byte)((
          //              [____3210]
          //                  [3210]
           ((in[28 + inPos] & 15))
        | //              [7654____]
          //              [3210]
           ((in[29 + inPos] & 15) <<  4)) & 255);
      out[15 + outPos] = (byte)((
          //              [____3210]
          //                  [3210]
           ((in[30 + inPos] & 15))
        | //              [7654____]
          //              [3210]
           ((in[31 + inPos] & 15) <<  4)) & 255);
    }
    public final void unpack8Values(final byte[] in, final int inPos, final int[] out, final int outPos) {
      out[ 0 + outPos] =
          //              [____3210]
          //                  [3210]
            ((((int)in[ 0 + inPos]) ) & 15);
      out[ 1 + outPos] =
          //              [7654____]
          //              [3210]
            ((((int)in[ 0 + inPos]) >>  4) & 15);
      out[ 2 + outPos] =
          //              [____3210]
          //                  [3210]
            ((((int)in[ 1 + inPos]) ) & 15);
      out[ 3 + outPos] =
          //              [7654____]
          //              [3210]
            ((((int)in[ 1 + inPos]) >>  4) & 15);
      out[ 4 + outPos] =
          //              [____3210]
          //                  [3210]
            ((((int)in[ 2 + inPos]) ) & 15);
      out[ 5 + outPos] =
          //              [7654____]
          //              [3210]
            ((((int)in[ 2 + inPos]) >>  4) & 15);
      out[ 6 + outPos] =
          //              [____3210]
          //                  [3210]
            ((((int)in[ 3 + inPos]) ) & 15);
      out[ 7 + outPos] =
          //              [7654____]
          //              [3210]
            ((((int)in[ 3 + inPos]) >>  4) & 15);
    }
    public final void unpack8Values(final ByteBuffer in, final int inPos, final int[] out, final int outPos) {
      out[ 0 + outPos] =
          //              [____3210]
          //                  [3210]
            ((((int)in.get( 0 + inPos)) ) & 15);
      out[ 1 + outPos] =
          //              [7654____]
          //              [3210]
            ((((int)in.get( 0 + inPos)) >>  4) & 15);
      out[ 2 + outPos] =
          //              [____3210]
          //                  [3210]
            ((((int)in.get( 1 + inPos)) ) & 15);
      out[ 3 + outPos] =
          //              [7654____]
          //              [3210]
            ((((int)in.get( 1 + inPos)) >>  4) & 15);
      out[ 4 + outPos] =
          //              [____3210]
          //                  [3210]
            ((((int)in.get( 2 + inPos)) ) & 15);
      out[ 5 + outPos] =
          //              [7654____]
          //              [3210]
            ((((int)in.get( 2 + inPos)) >>  4) & 15);
      out[ 6 + outPos] =
          //              [____3210]
          //                  [3210]
            ((((int)in.get( 3 + inPos)) ) & 15);
      out[ 7 + outPos] =
          //              [7654____]
          //              [3210]
            ((((int)in.get( 3 + inPos)) >>  4) & 15);
    }
    public final void unpack32Values(final byte[] in, final int inPos, final int[] out, final int outPos) {
      out[ 0 + outPos] =
          //              [____3210]
          //                  [3210]
            ((((int)in[ 0 + inPos]) ) & 15);
      out[ 1 + outPos] =
          //              [7654____]
          //              [3210]
            ((((int)in[ 0 + inPos]) >>  4) & 15);
      out[ 2 + outPos] =
          //              [____3210]
          //                  [3210]
            ((((int)in[ 1 + inPos]) ) & 15);
      out[ 3 + outPos] =
          //              [7654____]
          //              [3210]
            ((((int)in[ 1 + inPos]) >>  4) & 15);
      out[ 4 + outPos] =
          //              [____3210]
          //                  [3210]
            ((((int)in[ 2 + inPos]) ) & 15);
      out[ 5 + outPos] =
          //              [7654____]
          //              [3210]
            ((((int)in[ 2 + inPos]) >>  4) & 15);
      out[ 6 + outPos] =
          //              [____3210]
          //                  [3210]
            ((((int)in[ 3 + inPos]) ) & 15);
      out[ 7 + outPos] =
          //              [7654____]
          //              [3210]
            ((((int)in[ 3 + inPos]) >>  4) & 15);
      out[ 8 + outPos] =
          //              [____3210]
          //                  [3210]
            ((((int)in[ 4 + inPos]) ) & 15);
      out[ 9 + outPos] =
          //              [7654____]
          //              [3210]
            ((((int)in[ 4 + inPos]) >>  4) & 15);
      out[10 + outPos] =
          //              [____3210]
          //                  [3210]
            ((((int)in[ 5 + inPos]) ) & 15);
      out[11 + outPos] =
          //              [7654____]
          //              [3210]
            ((((int)in[ 5 + inPos]) >>  4) & 15);
      out[12 + outPos] =
          //              [____3210]
          //                  [3210]
            ((((int)in[ 6 + inPos]) ) & 15);
      out[13 + outPos] =
          //              [7654____]
          //              [3210]
            ((((int)in[ 6 + inPos]) >>  4) & 15);
      out[14 + outPos] =
          //              [____3210]
          //                  [3210]
            ((((int)in[ 7 + inPos]) ) & 15);
      out[15 + outPos] =
          //              [7654____]
          //              [3210]
            ((((int)in[ 7 + inPos]) >>  4) & 15);
      out[16 + outPos] =
          //              [____3210]
          //                  [3210]
            ((((int)in[ 8 + inPos]) ) & 15);
      out[17 + outPos] =
          //              [7654____]
          //              [3210]
            ((((int)in[ 8 + inPos]) >>  4) & 15);
      out[18 + outPos] =
          //              [____3210]
          //                  [3210]
            ((((int)in[ 9 + inPos]) ) & 15);
      out[19 + outPos] =
          //              [7654____]
          //              [3210]
            ((((int)in[ 9 + inPos]) >>  4) & 15);
      out[20 + outPos] =
          //              [____3210]
          //                  [3210]
            ((((int)in[10 + inPos]) ) & 15);
      out[21 + outPos] =
          //              [7654____]
          //              [3210]
            ((((int)in[10 + inPos]) >>  4) & 15);
      out[22 + outPos] =
          //              [____3210]
          //                  [3210]
            ((((int)in[11 + inPos]) ) & 15);
      out[23 + outPos] =
          //              [7654____]
          //              [3210]
            ((((int)in[11 + inPos]) >>  4) & 15);
      out[24 + outPos] =
          //              [____3210]
          //                  [3210]
            ((((int)in[12 + inPos]) ) & 15);
      out[25 + outPos] =
          //              [7654____]
          //              [3210]
            ((((int)in[12 + inPos]) >>  4) & 15);
      out[26 + outPos] =
          //              [____3210]
          //                  [3210]
            ((((int)in[13 + inPos]) ) & 15);
      out[27 + outPos] =
          //              [7654____]
          //              [3210]
            ((((int)in[13 + inPos]) >>  4) & 15);
      out[28 + outPos] =
          //              [____3210]
          //                  [3210]
            ((((int)in[14 + inPos]) ) & 15);
      out[29 + outPos] =
          //              [7654____]
          //              [3210]
            ((((int)in[14 + inPos]) >>  4) & 15);
      out[30 + outPos] =
          //              [____3210]
          //                  [3210]
            ((((int)in[15 + inPos]) ) & 15);
      out[31 + outPos] =
          //              [7654____]
          //              [3210]
            ((((int)in[15 + inPos]) >>  4) & 15);
    }
    public final void unpack32Values(final ByteBuffer in, final int inPos, final int[] out, final int outPos) {
      out[ 0 + outPos] =
          //              [____3210]
          //                  [3210]
            ((((int)in.get( 0 + inPos)) ) & 15);
      out[ 1 + outPos] =
          //              [7654____]
          //              [3210]
            ((((int)in.get( 0 + inPos)) >>  4) & 15);
      out[ 2 + outPos] =
          //              [____3210]
          //                  [3210]
            ((((int)in.get( 1 + inPos)) ) & 15);
      out[ 3 + outPos] =
          //              [7654____]
          //              [3210]
            ((((int)in.get( 1 + inPos)) >>  4) & 15);
      out[ 4 + outPos] =
          //              [____3210]
          //                  [3210]
            ((((int)in.get( 2 + inPos)) ) & 15);
      out[ 5 + outPos] =
          //              [7654____]
          //              [3210]
            ((((int)in.get( 2 + inPos)) >>  4) & 15);
      out[ 6 + outPos] =
          //              [____3210]
          //                  [3210]
            ((((int)in.get( 3 + inPos)) ) & 15);
      out[ 7 + outPos] =
          //              [7654____]
          //              [3210]
            ((((int)in.get( 3 + inPos)) >>  4) & 15);
      out[ 8 + outPos] =
          //              [____3210]
          //                  [3210]
            ((((int)in.get( 4 + inPos)) ) & 15);
      out[ 9 + outPos] =
          //              [7654____]
          //              [3210]
            ((((int)in.get( 4 + inPos)) >>  4) & 15);
      out[10 + outPos] =
          //              [____3210]
          //                  [3210]
            ((((int)in.get( 5 + inPos)) ) & 15);
      out[11 + outPos] =
          //              [7654____]
          //              [3210]
            ((((int)in.get( 5 + inPos)) >>  4) & 15);
      out[12 + outPos] =
          //              [____3210]
          //                  [3210]
            ((((int)in.get( 6 + inPos)) ) & 15);
      out[13 + outPos] =
          //              [7654____]
          //              [3210]
            ((((int)in.get( 6 + inPos)) >>  4) & 15);
      out[14 + outPos] =
          //              [____3210]
          //                  [3210]
            ((((int)in.get( 7 + inPos)) ) & 15);
      out[15 + outPos] =
          //              [7654____]
          //              [3210]
            ((((int)in.get( 7 + inPos)) >>  4) & 15);
      out[16 + outPos] =
          //              [____3210]
          //                  [3210]
            ((((int)in.get( 8 + inPos)) ) & 15);
      out[17 + outPos] =
          //              [7654____]
          //              [3210]
            ((((int)in.get( 8 + inPos)) >>  4) & 15);
      out[18 + outPos] =
          //              [____3210]
          //                  [3210]
            ((((int)in.get( 9 + inPos)) ) & 15);
      out[19 + outPos] =
          //              [7654____]
          //              [3210]
            ((((int)in.get( 9 + inPos)) >>  4) & 15);
      out[20 + outPos] =
          //              [____3210]
          //                  [3210]
            ((((int)in.get(10 + inPos)) ) & 15);
      out[21 + outPos] =
          //              [7654____]
          //              [3210]
            ((((int)in.get(10 + inPos)) >>  4) & 15);
      out[22 + outPos] =
          //              [____3210]
          //                  [3210]
            ((((int)in.get(11 + inPos)) ) & 15);
      out[23 + outPos] =
          //              [7654____]
          //              [3210]
            ((((int)in.get(11 + inPos)) >>  4) & 15);
      out[24 + outPos] =
          //              [____3210]
          //                  [3210]
            ((((int)in.get(12 + inPos)) ) & 15);
      out[25 + outPos] =
          //              [7654____]
          //              [3210]
            ((((int)in.get(12 + inPos)) >>  4) & 15);
      out[26 + outPos] =
          //              [____3210]
          //                  [3210]
            ((((int)in.get(13 + inPos)) ) & 15);
      out[27 + outPos] =
          //              [7654____]
          //              [3210]
            ((((int)in.get(13 + inPos)) >>  4) & 15);
      out[28 + outPos] =
          //              [____3210]
          //                  [3210]
            ((((int)in.get(14 + inPos)) ) & 15);
      out[29 + outPos] =
          //              [7654____]
          //              [3210]
            ((((int)in.get(14 + inPos)) >>  4) & 15);
      out[30 + outPos] =
          //              [____3210]
          //                  [3210]
            ((((int)in.get(15 + inPos)) ) & 15);
      out[31 + outPos] =
          //              [7654____]
          //              [3210]
            ((((int)in.get(15 + inPos)) >>  4) & 15);
    }
  }

  private static final class Packer5 extends BytePacker {

    private Packer5() {
      super(5);
    }

    public final void pack8Values(final int[] in, final int inPos, final byte[] out, final int outPos) {
      out[ 0 + outPos] = (byte)((
          //               [___43210]
          //                  [43210]
           ((in[ 0 + inPos] & 31))
        | //               [765_____]
          //             [__210]
           ((in[ 1 + inPos] & 31) <<  5)) & 255);
      out[ 1 + outPos] = (byte)((
          //               [______10]
          //                     [43___]
           ((in[ 1 + inPos] & 31) >>> 3)
        | //               [_65432__]
          //                [43210]
           ((in[ 2 + inPos] & 31) <<  2)
        | //               [7_______]
          //           [____0]
           ((in[ 3 + inPos] & 31) <<  7)) & 255);
      out[ 2 + outPos] = (byte)((
          //               [____3210]
          //                   [4321_]
           ((in[ 3 + inPos] & 31) >>> 1)
        | //               [7654____]
          //              [_3210]
           ((in[ 4 + inPos] & 31) <<  4)) & 255);
      out[ 3 + outPos] = (byte)((
          //               [_______0]
          //                      [4____]
           ((in[ 4 + inPos] & 31) >>> 4)
        | //               [__54321_]
          //                 [43210]
           ((in[ 5 + inPos] & 31) <<  1)
        | //               [76______]
          //            [___10]
           ((in[ 6 + inPos] & 31) <<  6)) & 255);
      out[ 4 + outPos] = (byte)((
          //               [_____210]
          //                    [432__]
           ((in[ 6 + inPos] & 31) >>> 2)
        | //               [76543___]
          //               [43210]
           ((in[ 7 + inPos] & 31) <<  3)) & 255);
    }
    public final void pack32Values(final int[] in, final int inPos, final byte[] out, final int outPos) {
      out[ 0 + outPos] = (byte)((
          //               [___43210]
          //                  [43210]
           ((in[ 0 + inPos] & 31))
        | //               [765_____]
          //             [__210]
           ((in[ 1 + inPos] & 31) <<  5)) & 255);
      out[ 1 + outPos] = (byte)((
          //               [______10]
          //                     [43___]
           ((in[ 1 + inPos] & 31) >>> 3)
        | //               [_65432__]
          //                [43210]
           ((in[ 2 + inPos] & 31) <<  2)
        | //               [7_______]
          //           [____0]
           ((in[ 3 + inPos] & 31) <<  7)) & 255);
      out[ 2 + outPos] = (byte)((
          //               [____3210]
          //                   [4321_]
           ((in[ 3 + inPos] & 31) >>> 1)
        | //               [7654____]
          //              [_3210]
           ((in[ 4 + inPos] & 31) <<  4)) & 255);
      out[ 3 + outPos] = (byte)((
          //               [_______0]
          //                      [4____]
           ((in[ 4 + inPos] & 31) >>> 4)
        | //               [__54321_]
          //                 [43210]
           ((in[ 5 + inPos] & 31) <<  1)
        | //               [76______]
          //            [___10]
           ((in[ 6 + inPos] & 31) <<  6)) & 255);
      out[ 4 + outPos] = (byte)((
          //               [_____210]
          //                    [432__]
           ((in[ 6 + inPos] & 31) >>> 2)
        | //               [76543___]
          //               [43210]
           ((in[ 7 + inPos] & 31) <<  3)) & 255);
      out[ 5 + outPos] = (byte)((
          //               [___43210]
          //                  [43210]
           ((in[ 8 + inPos] & 31))
        | //               [765_____]
          //             [__210]
           ((in[ 9 + inPos] & 31) <<  5)) & 255);
      out[ 6 + outPos] = (byte)((
          //               [______10]
          //                     [43___]
           ((in[ 9 + inPos] & 31) >>> 3)
        | //               [_65432__]
          //                [43210]
           ((in[10 + inPos] & 31) <<  2)
        | //               [7_______]
          //           [____0]
           ((in[11 + inPos] & 31) <<  7)) & 255);
      out[ 7 + outPos] = (byte)((
          //               [____3210]
          //                   [4321_]
           ((in[11 + inPos] & 31) >>> 1)
        | //               [7654____]
          //              [_3210]
           ((in[12 + inPos] & 31) <<  4)) & 255);
      out[ 8 + outPos] = (byte)((
          //               [_______0]
          //                      [4____]
           ((in[12 + inPos] & 31) >>> 4)
        | //               [__54321_]
          //                 [43210]
           ((in[13 + inPos] & 31) <<  1)
        | //               [76______]
          //            [___10]
           ((in[14 + inPos] & 31) <<  6)) & 255);
      out[ 9 + outPos] = (byte)((
          //               [_____210]
          //                    [432__]
           ((in[14 + inPos] & 31) >>> 2)
        | //               [76543___]
          //               [43210]
           ((in[15 + inPos] & 31) <<  3)) & 255);
      out[10 + outPos] = (byte)((
          //               [___43210]
          //                  [43210]
           ((in[16 + inPos] & 31))
        | //               [765_____]
          //             [__210]
           ((in[17 + inPos] & 31) <<  5)) & 255);
      out[11 + outPos] = (byte)((
          //               [______10]
          //                     [43___]
           ((in[17 + inPos] & 31) >>> 3)
        | //               [_65432__]
          //                [43210]
           ((in[18 + inPos] & 31) <<  2)
        | //               [7_______]
          //           [____0]
           ((in[19 + inPos] & 31) <<  7)) & 255);
      out[12 + outPos] = (byte)((
          //               [____3210]
          //                   [4321_]
           ((in[19 + inPos] & 31) >>> 1)
        | //               [7654____]
          //              [_3210]
           ((in[20 + inPos] & 31) <<  4)) & 255);
      out[13 + outPos] = (byte)((
          //               [_______0]
          //                      [4____]
           ((in[20 + inPos] & 31) >>> 4)
        | //               [__54321_]
          //                 [43210]
           ((in[21 + inPos] & 31) <<  1)
        | //               [76______]
          //            [___10]
           ((in[22 + inPos] & 31) <<  6)) & 255);
      out[14 + outPos] = (byte)((
          //               [_____210]
          //                    [432__]
           ((in[22 + inPos] & 31) >>> 2)
        | //               [76543___]
          //               [43210]
           ((in[23 + inPos] & 31) <<  3)) & 255);
      out[15 + outPos] = (byte)((
          //               [___43210]
          //                  [43210]
           ((in[24 + inPos] & 31))
        | //               [765_____]
          //             [__210]
           ((in[25 + inPos] & 31) <<  5)) & 255);
      out[16 + outPos] = (byte)((
          //               [______10]
          //                     [43___]
           ((in[25 + inPos] & 31) >>> 3)
        | //               [_65432__]
          //                [43210]
           ((in[26 + inPos] & 31) <<  2)
        | //               [7_______]
          //           [____0]
           ((in[27 + inPos] & 31) <<  7)) & 255);
      out[17 + outPos] = (byte)((
          //               [____3210]
          //                   [4321_]
           ((in[27 + inPos] & 31) >>> 1)
        | //               [7654____]
          //              [_3210]
           ((in[28 + inPos] & 31) <<  4)) & 255);
      out[18 + outPos] = (byte)((
          //               [_______0]
          //                      [4____]
           ((in[28 + inPos] & 31) >>> 4)
        | //               [__54321_]
          //                 [43210]
           ((in[29 + inPos] & 31) <<  1)
        | //               [76______]
          //            [___10]
           ((in[30 + inPos] & 31) <<  6)) & 255);
      out[19 + outPos] = (byte)((
          //               [_____210]
          //                    [432__]
           ((in[30 + inPos] & 31) >>> 2)
        | //               [76543___]
          //               [43210]
           ((in[31 + inPos] & 31) <<  3)) & 255);
    }
    public final void unpack8Values(final byte[] in, final int inPos, final int[] out, final int outPos) {
      out[ 0 + outPos] =
          //               [___43210]
          //                  [43210]
            ((((int)in[ 0 + inPos]) ) & 31);
      out[ 1 + outPos] =
          //               [765_____]
          //             [__210]
            ((((int)in[ 0 + inPos]) >>  5) & 7)
        | //               [______10]
          //                     [43___]
            ((((int)in[ 1 + inPos]) <<  3) & 31);
      out[ 2 + outPos] =
          //               [_65432__]
          //                [43210]
            ((((int)in[ 1 + inPos]) >>  2) & 31);
      out[ 3 + outPos] =
          //               [7_______]
          //           [____0]
            ((((int)in[ 1 + inPos]) >>  7) & 1)
        | //               [____3210]
          //                   [4321_]
            ((((int)in[ 2 + inPos]) <<  1) & 31);
      out[ 4 + outPos] =
          //               [7654____]
          //              [_3210]
            ((((int)in[ 2 + inPos]) >>  4) & 15)
        | //               [_______0]
          //                      [4____]
            ((((int)in[ 3 + inPos]) <<  4) & 31);
      out[ 5 + outPos] =
          //               [__54321_]
          //                 [43210]
            ((((int)in[ 3 + inPos]) >>  1) & 31);
      out[ 6 + outPos] =
          //               [76______]
          //            [___10]
            ((((int)in[ 3 + inPos]) >>  6) & 3)
        | //               [_____210]
          //                    [432__]
            ((((int)in[ 4 + inPos]) <<  2) & 31);
      out[ 7 + outPos] =
          //               [76543___]
          //               [43210]
            ((((int)in[ 4 + inPos]) >>  3) & 31);
    }
    public final void unpack8Values(final ByteBuffer in, final int inPos, final int[] out, final int outPos) {
      out[ 0 + outPos] =
          //               [___43210]
          //                  [43210]
            ((((int)in.get( 0 + inPos)) ) & 31);
      out[ 1 + outPos] =
          //               [765_____]
          //             [__210]
            ((((int)in.get( 0 + inPos)) >>  5) & 7)
        | //               [______10]
          //                     [43___]
            ((((int)in.get( 1 + inPos)) <<  3) & 31);
      out[ 2 + outPos] =
          //               [_65432__]
          //                [43210]
            ((((int)in.get( 1 + inPos)) >>  2) & 31);
      out[ 3 + outPos] =
          //               [7_______]
          //           [____0]
            ((((int)in.get( 1 + inPos)) >>  7) & 1)
        | //               [____3210]
          //                   [4321_]
            ((((int)in.get( 2 + inPos)) <<  1) & 31);
      out[ 4 + outPos] =
          //               [7654____]
          //              [_3210]
            ((((int)in.get( 2 + inPos)) >>  4) & 15)
        | //               [_______0]
          //                      [4____]
            ((((int)in.get( 3 + inPos)) <<  4) & 31);
      out[ 5 + outPos] =
          //               [__54321_]
          //                 [43210]
            ((((int)in.get( 3 + inPos)) >>  1) & 31);
      out[ 6 + outPos] =
          //               [76______]
          //            [___10]
            ((((int)in.get( 3 + inPos)) >>  6) & 3)
        | //               [_____210]
          //                    [432__]
            ((((int)in.get( 4 + inPos)) <<  2) & 31);
      out[ 7 + outPos] =
          //               [76543___]
          //               [43210]
            ((((int)in.get( 4 + inPos)) >>  3) & 31);
    }
    public final void unpack32Values(final byte[] in, final int inPos, final int[] out, final int outPos) {
      out[ 0 + outPos] =
          //               [___43210]
          //                  [43210]
            ((((int)in[ 0 + inPos]) ) & 31);
      out[ 1 + outPos] =
          //               [765_____]
          //             [__210]
            ((((int)in[ 0 + inPos]) >>  5) & 7)
        | //               [______10]
          //                     [43___]
            ((((int)in[ 1 + inPos]) <<  3) & 31);
      out[ 2 + outPos] =
          //               [_65432__]
          //                [43210]
            ((((int)in[ 1 + inPos]) >>  2) & 31);
      out[ 3 + outPos] =
          //               [7_______]
          //           [____0]
            ((((int)in[ 1 + inPos]) >>  7) & 1)
        | //               [____3210]
          //                   [4321_]
            ((((int)in[ 2 + inPos]) <<  1) & 31);
      out[ 4 + outPos] =
          //               [7654____]
          //              [_3210]
            ((((int)in[ 2 + inPos]) >>  4) & 15)
        | //               [_______0]
          //                      [4____]
            ((((int)in[ 3 + inPos]) <<  4) & 31);
      out[ 5 + outPos] =
          //               [__54321_]
          //                 [43210]
            ((((int)in[ 3 + inPos]) >>  1) & 31);
      out[ 6 + outPos] =
          //               [76______]
          //            [___10]
            ((((int)in[ 3 + inPos]) >>  6) & 3)
        | //               [_____210]
          //                    [432__]
            ((((int)in[ 4 + inPos]) <<  2) & 31);
      out[ 7 + outPos] =
          //               [76543___]
          //               [43210]
            ((((int)in[ 4 + inPos]) >>  3) & 31);
      out[ 8 + outPos] =
          //               [___43210]
          //                  [43210]
            ((((int)in[ 5 + inPos]) ) & 31);
      out[ 9 + outPos] =
          //               [765_____]
          //             [__210]
            ((((int)in[ 5 + inPos]) >>  5) & 7)
        | //               [______10]
          //                     [43___]
            ((((int)in[ 6 + inPos]) <<  3) & 31);
      out[10 + outPos] =
          //               [_65432__]
          //                [43210]
            ((((int)in[ 6 + inPos]) >>  2) & 31);
      out[11 + outPos] =
          //               [7_______]
          //           [____0]
            ((((int)in[ 6 + inPos]) >>  7) & 1)
        | //               [____3210]
          //                   [4321_]
            ((((int)in[ 7 + inPos]) <<  1) & 31);
      out[12 + outPos] =
          //               [7654____]
          //              [_3210]
            ((((int)in[ 7 + inPos]) >>  4) & 15)
        | //               [_______0]
          //                      [4____]
            ((((int)in[ 8 + inPos]) <<  4) & 31);
      out[13 + outPos] =
          //               [__54321_]
          //                 [43210]
            ((((int)in[ 8 + inPos]) >>  1) & 31);
      out[14 + outPos] =
          //               [76______]
          //            [___10]
            ((((int)in[ 8 + inPos]) >>  6) & 3)
        | //               [_____210]
          //                    [432__]
            ((((int)in[ 9 + inPos]) <<  2) & 31);
      out[15 + outPos] =
          //               [76543___]
          //               [43210]
            ((((int)in[ 9 + inPos]) >>  3) & 31);
      out[16 + outPos] =
          //               [___43210]
          //                  [43210]
            ((((int)in[10 + inPos]) ) & 31);
      out[17 + outPos] =
          //               [765_____]
          //             [__210]
            ((((int)in[10 + inPos]) >>  5) & 7)
        | //               [______10]
          //                     [43___]
            ((((int)in[11 + inPos]) <<  3) & 31);
      out[18 + outPos] =
          //               [_65432__]
          //                [43210]
            ((((int)in[11 + inPos]) >>  2) & 31);
      out[19 + outPos] =
          //               [7_______]
          //           [____0]
            ((((int)in[11 + inPos]) >>  7) & 1)
        | //               [____3210]
          //                   [4321_]
            ((((int)in[12 + inPos]) <<  1) & 31);
      out[20 + outPos] =
          //               [7654____]
          //              [_3210]
            ((((int)in[12 + inPos]) >>  4) & 15)
        | //               [_______0]
          //                      [4____]
            ((((int)in[13 + inPos]) <<  4) & 31);
      out[21 + outPos] =
          //               [__54321_]
          //                 [43210]
            ((((int)in[13 + inPos]) >>  1) & 31);
      out[22 + outPos] =
          //               [76______]
          //            [___10]
            ((((int)in[13 + inPos]) >>  6) & 3)
        | //               [_____210]
          //                    [432__]
            ((((int)in[14 + inPos]) <<  2) & 31);
      out[23 + outPos] =
          //               [76543___]
          //               [43210]
            ((((int)in[14 + inPos]) >>  3) & 31);
      out[24 + outPos] =
          //               [___43210]
          //                  [43210]
            ((((int)in[15 + inPos]) ) & 31);
      out[25 + outPos] =
          //               [765_____]
          //             [__210]
            ((((int)in[15 + inPos]) >>  5) & 7)
        | //               [______10]
          //                     [43___]
            ((((int)in[16 + inPos]) <<  3) & 31);
      out[26 + outPos] =
          //               [_65432__]
          //                [43210]
            ((((int)in[16 + inPos]) >>  2) & 31);
      out[27 + outPos] =
          //               [7_______]
          //           [____0]
            ((((int)in[16 + inPos]) >>  7) & 1)
        | //               [____3210]
          //                   [4321_]
            ((((int)in[17 + inPos]) <<  1) & 31);
      out[28 + outPos] =
          //               [7654____]
          //              [_3210]
            ((((int)in[17 + inPos]) >>  4) & 15)
        | //               [_______0]
          //                      [4____]
            ((((int)in[18 + inPos]) <<  4) & 31);
      out[29 + outPos] =
          //               [__54321_]
          //                 [43210]
            ((((int)in[18 + inPos]) >>  1) & 31);
      out[30 + outPos] =
          //               [76______]
          //            [___10]
            ((((int)in[18 + inPos]) >>  6) & 3)
        | //               [_____210]
          //                    [432__]
            ((((int)in[19 + inPos]) <<  2) & 31);
      out[31 + outPos] =
          //               [76543___]
          //               [43210]
            ((((int)in[19 + inPos]) >>  3) & 31);
    }
    public final void unpack32Values(final ByteBuffer in, final int inPos, final int[] out, final int outPos) {
      out[ 0 + outPos] =
          //               [___43210]
          //                  [43210]
            ((((int)in.get( 0 + inPos)) ) & 31);
      out[ 1 + outPos] =
          //               [765_____]
          //             [__210]
            ((((int)in.get( 0 + inPos)) >>  5) & 7)
        | //               [______10]
          //                     [43___]
            ((((int)in.get( 1 + inPos)) <<  3) & 31);
      out[ 2 + outPos] =
          //               [_65432__]
          //                [43210]
            ((((int)in.get( 1 + inPos)) >>  2) & 31);
      out[ 3 + outPos] =
          //               [7_______]
          //           [____0]
            ((((int)in.get( 1 + inPos)) >>  7) & 1)
        | //               [____3210]
          //                   [4321_]
            ((((int)in.get( 2 + inPos)) <<  1) & 31);
      out[ 4 + outPos] =
          //               [7654____]
          //              [_3210]
            ((((int)in.get( 2 + inPos)) >>  4) & 15)
        | //               [_______0]
          //                      [4____]
            ((((int)in.get( 3 + inPos)) <<  4) & 31);
      out[ 5 + outPos] =
          //               [__54321_]
          //                 [43210]
            ((((int)in.get( 3 + inPos)) >>  1) & 31);
      out[ 6 + outPos] =
          //               [76______]
          //            [___10]
            ((((int)in.get( 3 + inPos)) >>  6) & 3)
        | //               [_____210]
          //                    [432__]
            ((((int)in.get( 4 + inPos)) <<  2) & 31);
      out[ 7 + outPos] =
          //               [76543___]
          //               [43210]
            ((((int)in.get( 4 + inPos)) >>  3) & 31);
      out[ 8 + outPos] =
          //               [___43210]
          //                  [43210]
            ((((int)in.get( 5 + inPos)) ) & 31);
      out[ 9 + outPos] =
          //               [765_____]
          //             [__210]
            ((((int)in.get( 5 + inPos)) >>  5) & 7)
        | //               [______10]
          //                     [43___]
            ((((int)in.get( 6 + inPos)) <<  3) & 31);
      out[10 + outPos] =
          //               [_65432__]
          //                [43210]
            ((((int)in.get( 6 + inPos)) >>  2) & 31);
      out[11 + outPos] =
          //               [7_______]
          //           [____0]
            ((((int)in.get( 6 + inPos)) >>  7) & 1)
        | //               [____3210]
          //                   [4321_]
            ((((int)in.get( 7 + inPos)) <<  1) & 31);
      out[12 + outPos] =
          //               [7654____]
          //              [_3210]
            ((((int)in.get( 7 + inPos)) >>  4) & 15)
        | //               [_______0]
          //                      [4____]
            ((((int)in.get( 8 + inPos)) <<  4) & 31);
      out[13 + outPos] =
          //               [__54321_]
          //                 [43210]
            ((((int)in.get( 8 + inPos)) >>  1) & 31);
      out[14 + outPos] =
          //               [76______]
          //            [___10]
            ((((int)in.get( 8 + inPos)) >>  6) & 3)
        | //               [_____210]
          //                    [432__]
            ((((int)in.get( 9 + inPos)) <<  2) & 31);
      out[15 + outPos] =
          //               [76543___]
          //               [43210]
            ((((int)in.get( 9 + inPos)) >>  3) & 31);
      out[16 + outPos] =
          //               [___43210]
          //                  [43210]
            ((((int)in.get(10 + inPos)) ) & 31);
      out[17 + outPos] =
          //               [765_____]
          //             [__210]
            ((((int)in.get(10 + inPos)) >>  5) & 7)
        | //               [______10]
          //                     [43___]
            ((((int)in.get(11 + inPos)) <<  3) & 31);
      out[18 + outPos] =
          //               [_65432__]
          //                [43210]
            ((((int)in.get(11 + inPos)) >>  2) & 31);
      out[19 + outPos] =
          //               [7_______]
          //           [____0]
            ((((int)in.get(11 + inPos)) >>  7) & 1)
        | //               [____3210]
          //                   [4321_]
            ((((int)in.get(12 + inPos)) <<  1) & 31);
      out[20 + outPos] =
          //               [7654____]
          //              [_3210]
            ((((int)in.get(12 + inPos)) >>  4) & 15)
        | //               [_______0]
          //                      [4____]
            ((((int)in.get(13 + inPos)) <<  4) & 31);
      out[21 + outPos] =
          //               [__54321_]
          //                 [43210]
            ((((int)in.get(13 + inPos)) >>  1) & 31);
      out[22 + outPos] =
          //               [76______]
          //            [___10]
            ((((int)in.get(13 + inPos)) >>  6) & 3)
        | //               [_____210]
          //                    [432__]
            ((((int)in.get(14 + inPos)) <<  2) & 31);
      out[23 + outPos] =
          //               [76543___]
          //               [43210]
            ((((int)in.get(14 + inPos)) >>  3) & 31);
      out[24 + outPos] =
          //               [___43210]
          //                  [43210]
            ((((int)in.get(15 + inPos)) ) & 31);
      out[25 + outPos] =
          //               [765_____]
          //             [__210]
            ((((int)in.get(15 + inPos)) >>  5) & 7)
        | //               [______10]
          //                     [43___]
            ((((int)in.get(16 + inPos)) <<  3) & 31);
      out[26 + outPos] =
          //               [_65432__]
          //                [43210]
            ((((int)in.get(16 + inPos)) >>  2) & 31);
      out[27 + outPos] =
          //               [7_______]
          //           [____0]
            ((((int)in.get(16 + inPos)) >>  7) & 1)
        | //               [____3210]
          //                   [4321_]
            ((((int)in.get(17 + inPos)) <<  1) & 31);
      out[28 + outPos] =
          //               [7654____]
          //              [_3210]
            ((((int)in.get(17 + inPos)) >>  4) & 15)
        | //               [_______0]
          //                      [4____]
            ((((int)in.get(18 + inPos)) <<  4) & 31);
      out[29 + outPos] =
          //               [__54321_]
          //                 [43210]
            ((((int)in.get(18 + inPos)) >>  1) & 31);
      out[30 + outPos] =
          //               [76______]
          //            [___10]
            ((((int)in.get(18 + inPos)) >>  6) & 3)
        | //               [_____210]
          //                    [432__]
            ((((int)in.get(19 + inPos)) <<  2) & 31);
      out[31 + outPos] =
          //               [76543___]
          //               [43210]
            ((((int)in.get(19 + inPos)) >>  3) & 31);
    }
  }

  private static final class Packer6 extends BytePacker {

    private Packer6() {
      super(6);
    }

    public final void pack8Values(final int[] in, final int inPos, final byte[] out, final int outPos) {
      out[ 0 + outPos] = (byte)((
          //                [__543210]
          //                  [543210]
           ((in[ 0 + inPos] & 63))
        | //                [76______]
          //            [____10]
           ((in[ 1 + inPos] & 63) <<  6)) & 255);
      out[ 1 + outPos] = (byte)((
          //                [____3210]
          //                    [5432__]
           ((in[ 1 + inPos] & 63) >>> 2)
        | //                [7654____]
          //              [__3210]
           ((in[ 2 + inPos] & 63) <<  4)) & 255);
      out[ 2 + outPos] = (byte)((
          //                [______10]
          //                      [54____]
           ((in[ 2 + inPos] & 63) >>> 4)
        | //                [765432__]
          //                [543210]
           ((in[ 3 + inPos] & 63) <<  2)) & 255);
      out[ 3 + outPos] = (byte)((
          //                [__543210]
          //                  [543210]
           ((in[ 4 + inPos] & 63))
        | //                [76______]
          //            [____10]
           ((in[ 5 + inPos] & 63) <<  6)) & 255);
      out[ 4 + outPos] = (byte)((
          //                [____3210]
          //                    [5432__]
           ((in[ 5 + inPos] & 63) >>> 2)
        | //                [7654____]
          //              [__3210]
           ((in[ 6 + inPos] & 63) <<  4)) & 255);
      out[ 5 + outPos] = (byte)((
          //                [______10]
          //                      [54____]
           ((in[ 6 + inPos] & 63) >>> 4)
        | //                [765432__]
          //                [543210]
           ((in[ 7 + inPos] & 63) <<  2)) & 255);
    }
    public final void pack32Values(final int[] in, final int inPos, final byte[] out, final int outPos) {
      out[ 0 + outPos] = (byte)((
          //                [__543210]
          //                  [543210]
           ((in[ 0 + inPos] & 63))
        | //                [76______]
          //            [____10]
           ((in[ 1 + inPos] & 63) <<  6)) & 255);
      out[ 1 + outPos] = (byte)((
          //                [____3210]
          //                    [5432__]
           ((in[ 1 + inPos] & 63) >>> 2)
        | //                [7654____]
          //              [__3210]
           ((in[ 2 + inPos] & 63) <<  4)) & 255);
      out[ 2 + outPos] = (byte)((
          //                [______10]
          //                      [54____]
           ((in[ 2 + inPos] & 63) >>> 4)
        | //                [765432__]
          //                [543210]
           ((in[ 3 + inPos] & 63) <<  2)) & 255);
      out[ 3 + outPos] = (byte)((
          //                [__543210]
          //                  [543210]
           ((in[ 4 + inPos] & 63))
        | //                [76______]
          //            [____10]
           ((in[ 5 + inPos] & 63) <<  6)) & 255);
      out[ 4 + outPos] = (byte)((
          //                [____3210]
          //                    [5432__]
           ((in[ 5 + inPos] & 63) >>> 2)
        | //                [7654____]
          //              [__3210]
           ((in[ 6 + inPos] & 63) <<  4)) & 255);
      out[ 5 + outPos] = (byte)((
          //                [______10]
          //                      [54____]
           ((in[ 6 + inPos] & 63) >>> 4)
        | //                [765432__]
          //                [543210]
           ((in[ 7 + inPos] & 63) <<  2)) & 255);
      out[ 6 + outPos] = (byte)((
          //                [__543210]
          //                  [543210]
           ((in[ 8 + inPos] & 63))
        | //                [76______]
          //            [____10]
           ((in[ 9 + inPos] & 63) <<  6)) & 255);
      out[ 7 + outPos] = (byte)((
          //                [____3210]
          //                    [5432__]
           ((in[ 9 + inPos] & 63) >>> 2)
        | //                [7654____]
          //              [__3210]
           ((in[10 + inPos] & 63) <<  4)) & 255);
      out[ 8 + outPos] = (byte)((
          //                [______10]
          //                      [54____]
           ((in[10 + inPos] & 63) >>> 4)
        | //                [765432__]
          //                [543210]
           ((in[11 + inPos] & 63) <<  2)) & 255);
      out[ 9 + outPos] = (byte)((
          //                [__543210]
          //                  [543210]
           ((in[12 + inPos] & 63))
        | //                [76______]
          //            [____10]
           ((in[13 + inPos] & 63) <<  6)) & 255);
      out[10 + outPos] = (byte)((
          //                [____3210]
          //                    [5432__]
           ((in[13 + inPos] & 63) >>> 2)
        | //                [7654____]
          //              [__3210]
           ((in[14 + inPos] & 63) <<  4)) & 255);
      out[11 + outPos] = (byte)((
          //                [______10]
          //                      [54____]
           ((in[14 + inPos] & 63) >>> 4)
        | //                [765432__]
          //                [543210]
           ((in[15 + inPos] & 63) <<  2)) & 255);
      out[12 + outPos] = (byte)((
          //                [__543210]
          //                  [543210]
           ((in[16 + inPos] & 63))
        | //                [76______]
          //            [____10]
           ((in[17 + inPos] & 63) <<  6)) & 255);
      out[13 + outPos] = (byte)((
          //                [____3210]
          //                    [5432__]
           ((in[17 + inPos] & 63) >>> 2)
        | //                [7654____]
          //              [__3210]
           ((in[18 + inPos] & 63) <<  4)) & 255);
      out[14 + outPos] = (byte)((
          //                [______10]
          //                      [54____]
           ((in[18 + inPos] & 63) >>> 4)
        | //                [765432__]
          //                [543210]
           ((in[19 + inPos] & 63) <<  2)) & 255);
      out[15 + outPos] = (byte)((
          //                [__543210]
          //                  [543210]
           ((in[20 + inPos] & 63))
        | //                [76______]
          //            [____10]
           ((in[21 + inPos] & 63) <<  6)) & 255);
      out[16 + outPos] = (byte)((
          //                [____3210]
          //                    [5432__]
           ((in[21 + inPos] & 63) >>> 2)
        | //                [7654____]
          //              [__3210]
           ((in[22 + inPos] & 63) <<  4)) & 255);
      out[17 + outPos] = (byte)((
          //                [______10]
          //                      [54____]
           ((in[22 + inPos] & 63) >>> 4)
        | //                [765432__]
          //                [543210]
           ((in[23 + inPos] & 63) <<  2)) & 255);
      out[18 + outPos] = (byte)((
          //                [__543210]
          //                  [543210]
           ((in[24 + inPos] & 63))
        | //                [76______]
          //            [____10]
           ((in[25 + inPos] & 63) <<  6)) & 255);
      out[19 + outPos] = (byte)((
          //                [____3210]
          //                    [5432__]
           ((in[25 + inPos] & 63) >>> 2)
        | //                [7654____]
          //              [__3210]
           ((in[26 + inPos] & 63) <<  4)) & 255);
      out[20 + outPos] = (byte)((
          //                [______10]
          //                      [54____]
           ((in[26 + inPos] & 63) >>> 4)
        | //                [765432__]
          //                [543210]
           ((in[27 + inPos] & 63) <<  2)) & 255);
      out[21 + outPos] = (byte)((
          //                [__543210]
          //                  [543210]
           ((in[28 + inPos] & 63))
        | //                [76______]
          //            [____10]
           ((in[29 + inPos] & 63) <<  6)) & 255);
      out[22 + outPos] = (byte)((
          //                [____3210]
          //                    [5432__]
           ((in[29 + inPos] & 63) >>> 2)
        | //                [7654____]
          //              [__3210]
           ((in[30 + inPos] & 63) <<  4)) & 255);
      out[23 + outPos] = (byte)((
          //                [______10]
          //                      [54____]
           ((in[30 + inPos] & 63) >>> 4)
        | //                [765432__]
          //                [543210]
           ((in[31 + inPos] & 63) <<  2)) & 255);
    }
    public final void unpack8Values(final byte[] in, final int inPos, final int[] out, final int outPos) {
      out[ 0 + outPos] =
          //                [__543210]
          //                  [543210]
            ((((int)in[ 0 + inPos]) ) & 63);
      out[ 1 + outPos] =
          //                [76______]
          //            [____10]
            ((((int)in[ 0 + inPos]) >>  6) & 3)
        | //                [____3210]
          //                    [5432__]
            ((((int)in[ 1 + inPos]) <<  2) & 63);
      out[ 2 + outPos] =
          //                [7654____]
          //              [__3210]
            ((((int)in[ 1 + inPos]) >>  4) & 15)
        | //                [______10]
          //                      [54____]
            ((((int)in[ 2 + inPos]) <<  4) & 63);
      out[ 3 + outPos] =
          //                [765432__]
          //                [543210]
            ((((int)in[ 2 + inPos]) >>  2) & 63);
      out[ 4 + outPos] =
          //                [__543210]
          //                  [543210]
            ((((int)in[ 3 + inPos]) ) & 63);
      out[ 5 + outPos] =
          //                [76______]
          //            [____10]
            ((((int)in[ 3 + inPos]) >>  6) & 3)
        | //                [____3210]
          //                    [5432__]
            ((((int)in[ 4 + inPos]) <<  2) & 63);
      out[ 6 + outPos] =
          //                [7654____]
          //              [__3210]
            ((((int)in[ 4 + inPos]) >>  4) & 15)
        | //                [______10]
          //                      [54____]
            ((((int)in[ 5 + inPos]) <<  4) & 63);
      out[ 7 + outPos] =
          //                [765432__]
          //                [543210]
            ((((int)in[ 5 + inPos]) >>  2) & 63);
    }
    public final void unpack8Values(final ByteBuffer in, final int inPos, final int[] out, final int outPos) {
      out[ 0 + outPos] =
          //                [__543210]
          //                  [543210]
            ((((int)in.get( 0 + inPos)) ) & 63);
      out[ 1 + outPos] =
          //                [76______]
          //            [____10]
            ((((int)in.get( 0 + inPos)) >>  6) & 3)
        | //                [____3210]
          //                    [5432__]
            ((((int)in.get( 1 + inPos)) <<  2) & 63);
      out[ 2 + outPos] =
          //                [7654____]
          //              [__3210]
            ((((int)in.get( 1 + inPos)) >>  4) & 15)
        | //                [______10]
          //                      [54____]
            ((((int)in.get( 2 + inPos)) <<  4) & 63);
      out[ 3 + outPos] =
          //                [765432__]
          //                [543210]
            ((((int)in.get( 2 + inPos)) >>  2) & 63);
      out[ 4 + outPos] =
          //                [__543210]
          //                  [543210]
            ((((int)in.get( 3 + inPos)) ) & 63);
      out[ 5 + outPos] =
          //                [76______]
          //            [____10]
            ((((int)in.get( 3 + inPos)) >>  6) & 3)
        | //                [____3210]
          //                    [5432__]
            ((((int)in.get( 4 + inPos)) <<  2) & 63);
      out[ 6 + outPos] =
          //                [7654____]
          //              [__3210]
            ((((int)in.get( 4 + inPos)) >>  4) & 15)
        | //                [______10]
          //                      [54____]
            ((((int)in.get( 5 + inPos)) <<  4) & 63);
      out[ 7 + outPos] =
          //                [765432__]
          //                [543210]
            ((((int)in.get( 5 + inPos)) >>  2) & 63);
    }
    public final void unpack32Values(final byte[] in, final int inPos, final int[] out, final int outPos) {
      out[ 0 + outPos] =
          //                [__543210]
          //                  [543210]
            ((((int)in[ 0 + inPos]) ) & 63);
      out[ 1 + outPos] =
          //                [76______]
          //            [____10]
            ((((int)in[ 0 + inPos]) >>  6) & 3)
        | //                [____3210]
          //                    [5432__]
            ((((int)in[ 1 + inPos]) <<  2) & 63);
      out[ 2 + outPos] =
          //                [7654____]
          //              [__3210]
            ((((int)in[ 1 + inPos]) >>  4) & 15)
        | //                [______10]
          //                      [54____]
            ((((int)in[ 2 + inPos]) <<  4) & 63);
      out[ 3 + outPos] =
          //                [765432__]
          //                [543210]
            ((((int)in[ 2 + inPos]) >>  2) & 63);
      out[ 4 + outPos] =
          //                [__543210]
          //                  [543210]
            ((((int)in[ 3 + inPos]) ) & 63);
      out[ 5 + outPos] =
          //                [76______]
          //            [____10]
            ((((int)in[ 3 + inPos]) >>  6) & 3)
        | //                [____3210]
          //                    [5432__]
            ((((int)in[ 4 + inPos]) <<  2) & 63);
      out[ 6 + outPos] =
          //                [7654____]
          //              [__3210]
            ((((int)in[ 4 + inPos]) >>  4) & 15)
        | //                [______10]
          //                      [54____]
            ((((int)in[ 5 + inPos]) <<  4) & 63);
      out[ 7 + outPos] =
          //                [765432__]
          //                [543210]
            ((((int)in[ 5 + inPos]) >>  2) & 63);
      out[ 8 + outPos] =
          //                [__543210]
          //                  [543210]
            ((((int)in[ 6 + inPos]) ) & 63);
      out[ 9 + outPos] =
          //                [76______]
          //            [____10]
            ((((int)in[ 6 + inPos]) >>  6) & 3)
        | //                [____3210]
          //                    [5432__]
            ((((int)in[ 7 + inPos]) <<  2) & 63);
      out[10 + outPos] =
          //                [7654____]
          //              [__3210]
            ((((int)in[ 7 + inPos]) >>  4) & 15)
        | //                [______10]
          //                      [54____]
            ((((int)in[ 8 + inPos]) <<  4) & 63);
      out[11 + outPos] =
          //                [765432__]
          //                [543210]
            ((((int)in[ 8 + inPos]) >>  2) & 63);
      out[12 + outPos] =
          //                [__543210]
          //                  [543210]
            ((((int)in[ 9 + inPos]) ) & 63);
      out[13 + outPos] =
          //                [76______]
          //            [____10]
            ((((int)in[ 9 + inPos]) >>  6) & 3)
        | //                [____3210]
          //                    [5432__]
            ((((int)in[10 + inPos]) <<  2) & 63);
      out[14 + outPos] =
          //                [7654____]
          //              [__3210]
            ((((int)in[10 + inPos]) >>  4) & 15)
        | //                [______10]
          //                      [54____]
            ((((int)in[11 + inPos]) <<  4) & 63);
      out[15 + outPos] =
          //                [765432__]
          //                [543210]
            ((((int)in[11 + inPos]) >>  2) & 63);
      out[16 + outPos] =
          //                [__543210]
          //                  [543210]
            ((((int)in[12 + inPos]) ) & 63);
      out[17 + outPos] =
          //                [76______]
          //            [____10]
            ((((int)in[12 + inPos]) >>  6) & 3)
        | //                [____3210]
          //                    [5432__]
            ((((int)in[13 + inPos]) <<  2) & 63);
      out[18 + outPos] =
          //                [7654____]
          //              [__3210]
            ((((int)in[13 + inPos]) >>  4) & 15)
        | //                [______10]
          //                      [54____]
            ((((int)in[14 + inPos]) <<  4) & 63);
      out[19 + outPos] =
          //                [765432__]
          //                [543210]
            ((((int)in[14 + inPos]) >>  2) & 63);
      out[20 + outPos] =
          //                [__543210]
          //                  [543210]
            ((((int)in[15 + inPos]) ) & 63);
      out[21 + outPos] =
          //                [76______]
          //            [____10]
            ((((int)in[15 + inPos]) >>  6) & 3)
        | //                [____3210]
          //                    [5432__]
            ((((int)in[16 + inPos]) <<  2) & 63);
      out[22 + outPos] =
          //                [7654____]
          //              [__3210]
            ((((int)in[16 + inPos]) >>  4) & 15)
        | //                [______10]
          //                      [54____]
            ((((int)in[17 + inPos]) <<  4) & 63);
      out[23 + outPos] =
          //                [765432__]
          //                [543210]
            ((((int)in[17 + inPos]) >>  2) & 63);
      out[24 + outPos] =
          //                [__543210]
          //                  [543210]
            ((((int)in[18 + inPos]) ) & 63);
      out[25 + outPos] =
          //                [76______]
          //            [____10]
            ((((int)in[18 + inPos]) >>  6) & 3)
        | //                [____3210]
          //                    [5432__]
            ((((int)in[19 + inPos]) <<  2) & 63);
      out[26 + outPos] =
          //                [7654____]
          //              [__3210]
            ((((int)in[19 + inPos]) >>  4) & 15)
        | //                [______10]
          //                      [54____]
            ((((int)in[20 + inPos]) <<  4) & 63);
      out[27 + outPos] =
          //                [765432__]
          //                [543210]
            ((((int)in[20 + inPos]) >>  2) & 63);
      out[28 + outPos] =
          //                [__543210]
          //                  [543210]
            ((((int)in[21 + inPos]) ) & 63);
      out[29 + outPos] =
          //                [76______]
          //            [____10]
            ((((int)in[21 + inPos]) >>  6) & 3)
        | //                [____3210]
          //                    [5432__]
            ((((int)in[22 + inPos]) <<  2) & 63);
      out[30 + outPos] =
          //                [7654____]
          //              [__3210]
            ((((int)in[22 + inPos]) >>  4) & 15)
        | //                [______10]
          //                      [54____]
            ((((int)in[23 + inPos]) <<  4) & 63);
      out[31 + outPos] =
          //                [765432__]
          //                [543210]
            ((((int)in[23 + inPos]) >>  2) & 63);
    }
    public final void unpack32Values(final ByteBuffer in, final int inPos, final int[] out, final int outPos) {
      out[ 0 + outPos] =
          //                [__543210]
          //                  [543210]
            ((((int)in.get( 0 + inPos)) ) & 63);
      out[ 1 + outPos] =
          //                [76______]
          //            [____10]
            ((((int)in.get( 0 + inPos)) >>  6) & 3)
        | //                [____3210]
          //                    [5432__]
            ((((int)in.get( 1 + inPos)) <<  2) & 63);
      out[ 2 + outPos] =
          //                [7654____]
          //              [__3210]
            ((((int)in.get( 1 + inPos)) >>  4) & 15)
        | //                [______10]
          //                      [54____]
            ((((int)in.get( 2 + inPos)) <<  4) & 63);
      out[ 3 + outPos] =
          //                [765432__]
          //                [543210]
            ((((int)in.get( 2 + inPos)) >>  2) & 63);
      out[ 4 + outPos] =
          //                [__543210]
          //                  [543210]
            ((((int)in.get( 3 + inPos)) ) & 63);
      out[ 5 + outPos] =
          //                [76______]
          //            [____10]
            ((((int)in.get( 3 + inPos)) >>  6) & 3)
        | //                [____3210]
          //                    [5432__]
            ((((int)in.get( 4 + inPos)) <<  2) & 63);
      out[ 6 + outPos] =
          //                [7654____]
          //              [__3210]
            ((((int)in.get( 4 + inPos)) >>  4) & 15)
        | //                [______10]
          //                      [54____]
            ((((int)in.get( 5 + inPos)) <<  4) & 63);
      out[ 7 + outPos] =
          //                [765432__]
          //                [543210]
            ((((int)in.get( 5 + inPos)) >>  2) & 63);
      out[ 8 + outPos] =
          //                [__543210]
          //                  [543210]
            ((((int)in.get( 6 + inPos)) ) & 63);
      out[ 9 + outPos] =
          //                [76______]
          //            [____10]
            ((((int)in.get( 6 + inPos)) >>  6) & 3)
        | //                [____3210]
          //                    [5432__]
            ((((int)in.get( 7 + inPos)) <<  2) & 63);
      out[10 + outPos] =
          //                [7654____]
          //              [__3210]
            ((((int)in.get( 7 + inPos)) >>  4) & 15)
        | //                [______10]
          //                      [54____]
            ((((int)in.get( 8 + inPos)) <<  4) & 63);
      out[11 + outPos] =
          //                [765432__]
          //                [543210]
            ((((int)in.get( 8 + inPos)) >>  2) & 63);
      out[12 + outPos] =
          //                [__543210]
          //                  [543210]
            ((((int)in.get( 9 + inPos)) ) & 63);
      out[13 + outPos] =
          //                [76______]
          //            [____10]
            ((((int)in.get( 9 + inPos)) >>  6) & 3)
        | //                [____3210]
          //                    [5432__]
            ((((int)in.get(10 + inPos)) <<  2) & 63);
      out[14 + outPos] =
          //                [7654____]
          //              [__3210]
            ((((int)in.get(10 + inPos)) >>  4) & 15)
        | //                [______10]
          //                      [54____]
            ((((int)in.get(11 + inPos)) <<  4) & 63);
      out[15 + outPos] =
          //                [765432__]
          //                [543210]
            ((((int)in.get(11 + inPos)) >>  2) & 63);
      out[16 + outPos] =
          //                [__543210]
          //                  [543210]
            ((((int)in.get(12 + inPos)) ) & 63);
      out[17 + outPos] =
          //                [76______]
          //            [____10]
            ((((int)in.get(12 + inPos)) >>  6) & 3)
        | //                [____3210]
          //                    [5432__]
            ((((int)in.get(13 + inPos)) <<  2) & 63);
      out[18 + outPos] =
          //                [7654____]
          //              [__3210]
            ((((int)in.get(13 + inPos)) >>  4) & 15)
        | //                [______10]
          //                      [54____]
            ((((int)in.get(14 + inPos)) <<  4) & 63);
      out[19 + outPos] =
          //                [765432__]
          //                [543210]
            ((((int)in.get(14 + inPos)) >>  2) & 63);
      out[20 + outPos] =
          //                [__543210]
          //                  [543210]
            ((((int)in.get(15 + inPos)) ) & 63);
      out[21 + outPos] =
          //                [76______]
          //            [____10]
            ((((int)in.get(15 + inPos)) >>  6) & 3)
        | //                [____3210]
          //                    [5432__]
            ((((int)in.get(16 + inPos)) <<  2) & 63);
      out[22 + outPos] =
          //                [7654____]
          //              [__3210]
            ((((int)in.get(16 + inPos)) >>  4) & 15)
        | //                [______10]
          //                      [54____]
            ((((int)in.get(17 + inPos)) <<  4) & 63);
      out[23 + outPos] =
          //                [765432__]
          //                [543210]
            ((((int)in.get(17 + inPos)) >>  2) & 63);
      out[24 + outPos] =
          //                [__543210]
          //                  [543210]
            ((((int)in.get(18 + inPos)) ) & 63);
      out[25 + outPos] =
          //                [76______]
          //            [____10]
            ((((int)in.get(18 + inPos)) >>  6) & 3)
        | //                [____3210]
          //                    [5432__]
            ((((int)in.get(19 + inPos)) <<  2) & 63);
      out[26 + outPos] =
          //                [7654____]
          //              [__3210]
            ((((int)in.get(19 + inPos)) >>  4) & 15)
        | //                [______10]
          //                      [54____]
            ((((int)in.get(20 + inPos)) <<  4) & 63);
      out[27 + outPos] =
          //                [765432__]
          //                [543210]
            ((((int)in.get(20 + inPos)) >>  2) & 63);
      out[28 + outPos] =
          //                [__543210]
          //                  [543210]
            ((((int)in.get(21 + inPos)) ) & 63);
      out[29 + outPos] =
          //                [76______]
          //            [____10]
            ((((int)in.get(21 + inPos)) >>  6) & 3)
        | //                [____3210]
          //                    [5432__]
            ((((int)in.get(22 + inPos)) <<  2) & 63);
      out[30 + outPos] =
          //                [7654____]
          //              [__3210]
            ((((int)in.get(22 + inPos)) >>  4) & 15)
        | //                [______10]
          //                      [54____]
            ((((int)in.get(23 + inPos)) <<  4) & 63);
      out[31 + outPos] =
          //                [765432__]
          //                [543210]
            ((((int)in.get(23 + inPos)) >>  2) & 63);
    }
  }

  private static final class Packer7 extends BytePacker {

    private Packer7() {
      super(7);
    }

    public final void pack8Values(final int[] in, final int inPos, final byte[] out, final int outPos) {
      out[ 0 + outPos] = (byte)((
          //                 [_6543210]
          //                  [6543210]
           ((in[ 0 + inPos] & 127))
        | //                 [7_______]
          //           [______0]
           ((in[ 1 + inPos] & 127) <<  7)) & 255);
      out[ 1 + outPos] = (byte)((
          //                 [__543210]
          //                   [654321_]
           ((in[ 1 + inPos] & 127) >>> 1)
        | //                 [76______]
          //            [_____10]
           ((in[ 2 + inPos] & 127) <<  6)) & 255);
      out[ 2 + outPos] = (byte)((
          //                 [___43210]
          //                    [65432__]
           ((in[ 2 + inPos] & 127) >>> 2)
        | //                 [765_____]
          //             [____210]
           ((in[ 3 + inPos] & 127) <<  5)) & 255);
      out[ 3 + outPos] = (byte)((
          //                 [____3210]
          //                     [6543___]
           ((in[ 3 + inPos] & 127) >>> 3)
        | //                 [7654____]
          //              [___3210]
           ((in[ 4 + inPos] & 127) <<  4)) & 255);
      out[ 4 + outPos] = (byte)((
          //                 [_____210]
          //                      [654____]
           ((in[ 4 + inPos] & 127) >>> 4)
        | //                 [76543___]
          //               [__43210]
           ((in[ 5 + inPos] & 127) <<  3)) & 255);
      out[ 5 + outPos] = (byte)((
          //                 [______10]
          //                       [65_____]
           ((in[ 5 + inPos] & 127) >>> 5)
        | //                 [765432__]
          //                [_543210]
           ((in[ 6 + inPos] & 127) <<  2)) & 255);
      out[ 6 + outPos] = (byte)((
          //                 [_______0]
          //                        [6______]
           ((in[ 6 + inPos] & 127) >>> 6)
        | //                 [7654321_]
          //                 [6543210]
           ((in[ 7 + inPos] & 127) <<  1)) & 255);
    }
    public final void pack32Values(final int[] in, final int inPos, final byte[] out, final int outPos) {
      out[ 0 + outPos] = (byte)((
          //                 [_6543210]
          //                  [6543210]
           ((in[ 0 + inPos] & 127))
        | //                 [7_______]
          //           [______0]
           ((in[ 1 + inPos] & 127) <<  7)) & 255);
      out[ 1 + outPos] = (byte)((
          //                 [__543210]
          //                   [654321_]
           ((in[ 1 + inPos] & 127) >>> 1)
        | //                 [76______]
          //            [_____10]
           ((in[ 2 + inPos] & 127) <<  6)) & 255);
      out[ 2 + outPos] = (byte)((
          //                 [___43210]
          //                    [65432__]
           ((in[ 2 + inPos] & 127) >>> 2)
        | //                 [765_____]
          //             [____210]
           ((in[ 3 + inPos] & 127) <<  5)) & 255);
      out[ 3 + outPos] = (byte)((
          //                 [____3210]
          //                     [6543___]
           ((in[ 3 + inPos] & 127) >>> 3)
        | //                 [7654____]
          //              [___3210]
           ((in[ 4 + inPos] & 127) <<  4)) & 255);
      out[ 4 + outPos] = (byte)((
          //                 [_____210]
          //                      [654____]
           ((in[ 4 + inPos] & 127) >>> 4)
        | //                 [76543___]
          //               [__43210]
           ((in[ 5 + inPos] & 127) <<  3)) & 255);
      out[ 5 + outPos] = (byte)((
          //                 [______10]
          //                       [65_____]
           ((in[ 5 + inPos] & 127) >>> 5)
        | //                 [765432__]
          //                [_543210]
           ((in[ 6 + inPos] & 127) <<  2)) & 255);
      out[ 6 + outPos] = (byte)((
          //                 [_______0]
          //                        [6______]
           ((in[ 6 + inPos] & 127) >>> 6)
        | //                 [7654321_]
          //                 [6543210]
           ((in[ 7 + inPos] & 127) <<  1)) & 255);
      out[ 7 + outPos] = (byte)((
          //                 [_6543210]
          //                  [6543210]
           ((in[ 8 + inPos] & 127))
        | //                 [7_______]
          //           [______0]
           ((in[ 9 + inPos] & 127) <<  7)) & 255);
      out[ 8 + outPos] = (byte)((
          //                 [__543210]
          //                   [654321_]
           ((in[ 9 + inPos] & 127) >>> 1)
        | //                 [76______]
          //            [_____10]
           ((in[10 + inPos] & 127) <<  6)) & 255);
      out[ 9 + outPos] = (byte)((
          //                 [___43210]
          //                    [65432__]
           ((in[10 + inPos] & 127) >>> 2)
        | //                 [765_____]
          //             [____210]
           ((in[11 + inPos] & 127) <<  5)) & 255);
      out[10 + outPos] = (byte)((
          //                 [____3210]
          //                     [6543___]
           ((in[11 + inPos] & 127) >>> 3)
        | //                 [7654____]
          //              [___3210]
           ((in[12 + inPos] & 127) <<  4)) & 255);
      out[11 + outPos] = (byte)((
          //                 [_____210]
          //                      [654____]
           ((in[12 + inPos] & 127) >>> 4)
        | //                 [76543___]
          //               [__43210]
           ((in[13 + inPos] & 127) <<  3)) & 255);
      out[12 + outPos] = (byte)((
          //                 [______10]
          //                       [65_____]
           ((in[13 + inPos] & 127) >>> 5)
        | //                 [765432__]
          //                [_543210]
           ((in[14 + inPos] & 127) <<  2)) & 255);
      out[13 + outPos] = (byte)((
          //                 [_______0]
          //                        [6______]
           ((in[14 + inPos] & 127) >>> 6)
        | //                 [7654321_]
          //                 [6543210]
           ((in[15 + inPos] & 127) <<  1)) & 255);
      out[14 + outPos] = (byte)((
          //                 [_6543210]
          //                  [6543210]
           ((in[16 + inPos] & 127))
        | //                 [7_______]
          //           [______0]
           ((in[17 + inPos] & 127) <<  7)) & 255);
      out[15 + outPos] = (byte)((
          //                 [__543210]
          //                   [654321_]
           ((in[17 + inPos] & 127) >>> 1)
        | //                 [76______]
          //            [_____10]
           ((in[18 + inPos] & 127) <<  6)) & 255);
      out[16 + outPos] = (byte)((
          //                 [___43210]
          //                    [65432__]
           ((in[18 + inPos] & 127) >>> 2)
        | //                 [765_____]
          //             [____210]
           ((in[19 + inPos] & 127) <<  5)) & 255);
      out[17 + outPos] = (byte)((
          //                 [____3210]
          //                     [6543___]
           ((in[19 + inPos] & 127) >>> 3)
        | //                 [7654____]
          //              [___3210]
           ((in[20 + inPos] & 127) <<  4)) & 255);
      out[18 + outPos] = (byte)((
          //                 [_____210]
          //                      [654____]
           ((in[20 + inPos] & 127) >>> 4)
        | //                 [76543___]
          //               [__43210]
           ((in[21 + inPos] & 127) <<  3)) & 255);
      out[19 + outPos] = (byte)((
          //                 [______10]
          //                       [65_____]
           ((in[21 + inPos] & 127) >>> 5)
        | //                 [765432__]
          //                [_543210]
           ((in[22 + inPos] & 127) <<  2)) & 255);
      out[20 + outPos] = (byte)((
          //                 [_______0]
          //                        [6______]
           ((in[22 + inPos] & 127) >>> 6)
        | //                 [7654321_]
          //                 [6543210]
           ((in[23 + inPos] & 127) <<  1)) & 255);
      out[21 + outPos] = (byte)((
          //                 [_6543210]
          //                  [6543210]
           ((in[24 + inPos] & 127))
        | //                 [7_______]
          //           [______0]
           ((in[25 + inPos] & 127) <<  7)) & 255);
      out[22 + outPos] = (byte)((
          //                 [__543210]
          //                   [654321_]
           ((in[25 + inPos] & 127) >>> 1)
        | //                 [76______]
          //            [_____10]
           ((in[26 + inPos] & 127) <<  6)) & 255);
      out[23 + outPos] = (byte)((
          //                 [___43210]
          //                    [65432__]
           ((in[26 + inPos] & 127) >>> 2)
        | //                 [765_____]
          //             [____210]
           ((in[27 + inPos] & 127) <<  5)) & 255);
      out[24 + outPos] = (byte)((
          //                 [____3210]
          //                     [6543___]
           ((in[27 + inPos] & 127) >>> 3)
        | //                 [7654____]
          //              [___3210]
           ((in[28 + inPos] & 127) <<  4)) & 255);
      out[25 + outPos] = (byte)((
          //                 [_____210]
          //                      [654____]
           ((in[28 + inPos] & 127) >>> 4)
        | //                 [76543___]
          //               [__43210]
           ((in[29 + inPos] & 127) <<  3)) & 255);
      out[26 + outPos] = (byte)((
          //                 [______10]
          //                       [65_____]
           ((in[29 + inPos] & 127) >>> 5)
        | //                 [765432__]
          //                [_543210]
           ((in[30 + inPos] & 127) <<  2)) & 255);
      out[27 + outPos] = (byte)((
          //                 [_______0]
          //                        [6______]
           ((in[30 + inPos] & 127) >>> 6)
        | //                 [7654321_]
          //                 [6543210]
           ((in[31 + inPos] & 127) <<  1)) & 255);
    }
    public final void unpack8Values(final byte[] in, final int inPos, final int[] out, final int outPos) {
      out[ 0 + outPos] =
          //                 [_6543210]
          //                  [6543210]
            ((((int)in[ 0 + inPos]) ) & 127);
      out[ 1 + outPos] =
          //                 [7_______]
          //           [______0]
            ((((int)in[ 0 + inPos]) >>  7) & 1)
        | //                 [__543210]
          //                   [654321_]
            ((((int)in[ 1 + inPos]) <<  1) & 127);
      out[ 2 + outPos] =
          //                 [76______]
          //            [_____10]
            ((((int)in[ 1 + inPos]) >>  6) & 3)
        | //                 [___43210]
          //                    [65432__]
            ((((int)in[ 2 + inPos]) <<  2) & 127);
      out[ 3 + outPos] =
          //                 [765_____]
          //             [____210]
            ((((int)in[ 2 + inPos]) >>  5) & 7)
        | //                 [____3210]
          //                     [6543___]
            ((((int)in[ 3 + inPos]) <<  3) & 127);
      out[ 4 + outPos] =
          //                 [7654____]
          //              [___3210]
            ((((int)in[ 3 + inPos]) >>  4) & 15)
        | //                 [_____210]
          //                      [654____]
            ((((int)in[ 4 + inPos]) <<  4) & 127);
      out[ 5 + outPos] =
          //                 [76543___]
          //               [__43210]
            ((((int)in[ 4 + inPos]) >>  3) & 31)
        | //                 [______10]
          //                       [65_____]
            ((((int)in[ 5 + inPos]) <<  5) & 127);
      out[ 6 + outPos] =
          //                 [765432__]
          //                [_543210]
            ((((int)in[ 5 + inPos]) >>  2) & 63)
        | //                 [_______0]
          //                        [6______]
            ((((int)in[ 6 + inPos]) <<  6) & 127);
      out[ 7 + outPos] =
          //                 [7654321_]
          //                 [6543210]
            ((((int)in[ 6 + inPos]) >>  1) & 127);
    }
    public final void unpack8Values(final ByteBuffer in, final int inPos, final int[] out, final int outPos) {
      out[ 0 + outPos] =
          //                 [_6543210]
          //                  [6543210]
            ((((int)in.get( 0 + inPos)) ) & 127);
      out[ 1 + outPos] =
          //                 [7_______]
          //           [______0]
            ((((int)in.get( 0 + inPos)) >>  7) & 1)
        | //                 [__543210]
          //                   [654321_]
            ((((int)in.get( 1 + inPos)) <<  1) & 127);
      out[ 2 + outPos] =
          //                 [76______]
          //            [_____10]
            ((((int)in.get( 1 + inPos)) >>  6) & 3)
        | //                 [___43210]
          //                    [65432__]
            ((((int)in.get( 2 + inPos)) <<  2) & 127);
      out[ 3 + outPos] =
          //                 [765_____]
          //             [____210]
            ((((int)in.get( 2 + inPos)) >>  5) & 7)
        | //                 [____3210]
          //                     [6543___]
            ((((int)in.get( 3 + inPos)) <<  3) & 127);
      out[ 4 + outPos] =
          //                 [7654____]
          //              [___3210]
            ((((int)in.get( 3 + inPos)) >>  4) & 15)
        | //                 [_____210]
          //                      [654____]
            ((((int)in.get( 4 + inPos)) <<  4) & 127);
      out[ 5 + outPos] =
          //                 [76543___]
          //               [__43210]
            ((((int)in.get( 4 + inPos)) >>  3) & 31)
        | //                 [______10]
          //                       [65_____]
            ((((int)in.get( 5 + inPos)) <<  5) & 127);
      out[ 6 + outPos] =
          //                 [765432__]
          //                [_543210]
            ((((int)in.get( 5 + inPos)) >>  2) & 63)
        | //                 [_______0]
          //                        [6______]
            ((((int)in.get( 6 + inPos)) <<  6) & 127);
      out[ 7 + outPos] =
          //                 [7654321_]
          //                 [6543210]
            ((((int)in.get( 6 + inPos)) >>  1) & 127);
    }
    public final void unpack32Values(final byte[] in, final int inPos, final int[] out, final int outPos) {
      out[ 0 + outPos] =
          //                 [_6543210]
          //                  [6543210]
            ((((int)in[ 0 + inPos]) ) & 127);
      out[ 1 + outPos] =
          //                 [7_______]
          //           [______0]
            ((((int)in[ 0 + inPos]) >>  7) & 1)
        | //                 [__543210]
          //                   [654321_]
            ((((int)in[ 1 + inPos]) <<  1) & 127);
      out[ 2 + outPos] =
          //                 [76______]
          //            [_____10]
            ((((int)in[ 1 + inPos]) >>  6) & 3)
        | //                 [___43210]
          //                    [65432__]
            ((((int)in[ 2 + inPos]) <<  2) & 127);
      out[ 3 + outPos] =
          //                 [765_____]
          //             [____210]
            ((((int)in[ 2 + inPos]) >>  5) & 7)
        | //                 [____3210]
          //                     [6543___]
            ((((int)in[ 3 + inPos]) <<  3) & 127);
      out[ 4 + outPos] =
          //                 [7654____]
          //              [___3210]
            ((((int)in[ 3 + inPos]) >>  4) & 15)
        | //                 [_____210]
          //                      [654____]
            ((((int)in[ 4 + inPos]) <<  4) & 127);
      out[ 5 + outPos] =
          //                 [76543___]
          //               [__43210]
            ((((int)in[ 4 + inPos]) >>  3) & 31)
        | //                 [______10]
          //                       [65_____]
            ((((int)in[ 5 + inPos]) <<  5) & 127);
      out[ 6 + outPos] =
          //                 [765432__]
          //                [_543210]
            ((((int)in[ 5 + inPos]) >>  2) & 63)
        | //                 [_______0]
          //                        [6______]
            ((((int)in[ 6 + inPos]) <<  6) & 127);
      out[ 7 + outPos] =
          //                 [7654321_]
          //                 [6543210]
            ((((int)in[ 6 + inPos]) >>  1) & 127);
      out[ 8 + outPos] =
          //                 [_6543210]
          //                  [6543210]
            ((((int)in[ 7 + inPos]) ) & 127);
      out[ 9 + outPos] =
          //                 [7_______]
          //           [______0]
            ((((int)in[ 7 + inPos]) >>  7) & 1)
        | //                 [__543210]
          //                   [654321_]
            ((((int)in[ 8 + inPos]) <<  1) & 127);
      out[10 + outPos] =
          //                 [76______]
          //            [_____10]
            ((((int)in[ 8 + inPos]) >>  6) & 3)
        | //                 [___43210]
          //                    [65432__]
            ((((int)in[ 9 + inPos]) <<  2) & 127);
      out[11 + outPos] =
          //                 [765_____]
          //             [____210]
            ((((int)in[ 9 + inPos]) >>  5) & 7)
        | //                 [____3210]
          //                     [6543___]
            ((((int)in[10 + inPos]) <<  3) & 127);
      out[12 + outPos] =
          //                 [7654____]
          //              [___3210]
            ((((int)in[10 + inPos]) >>  4) & 15)
        | //                 [_____210]
          //                      [654____]
            ((((int)in[11 + inPos]) <<  4) & 127);
      out[13 + outPos] =
          //                 [76543___]
          //               [__43210]
            ((((int)in[11 + inPos]) >>  3) & 31)
        | //                 [______10]
          //                       [65_____]
            ((((int)in[12 + inPos]) <<  5) & 127);
      out[14 + outPos] =
          //                 [765432__]
          //                [_543210]
            ((((int)in[12 + inPos]) >>  2) & 63)
        | //                 [_______0]
          //                        [6______]
            ((((int)in[13 + inPos]) <<  6) & 127);
      out[15 + outPos] =
          //                 [7654321_]
          //                 [6543210]
            ((((int)in[13 + inPos]) >>  1) & 127);
      out[16 + outPos] =
          //                 [_6543210]
          //                  [6543210]
            ((((int)in[14 + inPos]) ) & 127);
      out[17 + outPos] =
          //                 [7_______]
          //           [______0]
            ((((int)in[14 + inPos]) >>  7) & 1)
        | //                 [__543210]
          //                   [654321_]
            ((((int)in[15 + inPos]) <<  1) & 127);
      out[18 + outPos] =
          //                 [76______]
          //            [_____10]
            ((((int)in[15 + inPos]) >>  6) & 3)
        | //                 [___43210]
          //                    [65432__]
            ((((int)in[16 + inPos]) <<  2) & 127);
      out[19 + outPos] =
          //                 [765_____]
          //             [____210]
            ((((int)in[16 + inPos]) >>  5) & 7)
        | //                 [____3210]
          //                     [6543___]
            ((((int)in[17 + inPos]) <<  3) & 127);
      out[20 + outPos] =
          //                 [7654____]
          //              [___3210]
            ((((int)in[17 + inPos]) >>  4) & 15)
        | //                 [_____210]
          //                      [654____]
            ((((int)in[18 + inPos]) <<  4) & 127);
      out[21 + outPos] =
          //                 [76543___]
          //               [__43210]
            ((((int)in[18 + inPos]) >>  3) & 31)
        | //                 [______10]
          //                       [65_____]
            ((((int)in[19 + inPos]) <<  5) & 127);
      out[22 + outPos] =
          //                 [765432__]
          //                [_543210]
            ((((int)in[19 + inPos]) >>  2) & 63)
        | //                 [_______0]
          //                        [6______]
            ((((int)in[20 + inPos]) <<  6) & 127);
      out[23 + outPos] =
          //                 [7654321_]
          //                 [6543210]
            ((((int)in[20 + inPos]) >>  1) & 127);
      out[24 + outPos] =
          //                 [_6543210]
          //                  [6543210]
            ((((int)in[21 + inPos]) ) & 127);
      out[25 + outPos] =
          //                 [7_______]
          //           [______0]
            ((((int)in[21 + inPos]) >>  7) & 1)
        | //                 [__543210]
          //                   [654321_]
            ((((int)in[22 + inPos]) <<  1) & 127);
      out[26 + outPos] =
          //                 [76______]
          //            [_____10]
            ((((int)in[22 + inPos]) >>  6) & 3)
        | //                 [___43210]
          //                    [65432__]
            ((((int)in[23 + inPos]) <<  2) & 127);
      out[27 + outPos] =
          //                 [765_____]
          //             [____210]
            ((((int)in[23 + inPos]) >>  5) & 7)
        | //                 [____3210]
          //                     [6543___]
            ((((int)in[24 + inPos]) <<  3) & 127);
      out[28 + outPos] =
          //                 [7654____]
          //              [___3210]
            ((((int)in[24 + inPos]) >>  4) & 15)
        | //                 [_____210]
          //                      [654____]
            ((((int)in[25 + inPos]) <<  4) & 127);
      out[29 + outPos] =
          //                 [76543___]
          //               [__43210]
            ((((int)in[25 + inPos]) >>  3) & 31)
        | //                 [______10]
          //                       [65_____]
            ((((int)in[26 + inPos]) <<  5) & 127);
      out[30 + outPos] =
          //                 [765432__]
          //                [_543210]
            ((((int)in[26 + inPos]) >>  2) & 63)
        | //                 [_______0]
          //                        [6______]
            ((((int)in[27 + inPos]) <<  6) & 127);
      out[31 + outPos] =
          //                 [7654321_]
          //                 [6543210]
            ((((int)in[27 + inPos]) >>  1) & 127);
    }
    public final void unpack32Values(final ByteBuffer in, final int inPos, final int[] out, final int outPos) {
      out[ 0 + outPos] =
          //                 [_6543210]
          //                  [6543210]
            ((((int)in.get( 0 + inPos)) ) & 127);
      out[ 1 + outPos] =
          //                 [7_______]
          //           [______0]
            ((((int)in.get( 0 + inPos)) >>  7) & 1)
        | //                 [__543210]
          //                   [654321_]
            ((((int)in.get( 1 + inPos)) <<  1) & 127);
      out[ 2 + outPos] =
          //                 [76______]
          //            [_____10]
            ((((int)in.get( 1 + inPos)) >>  6) & 3)
        | //                 [___43210]
          //                    [65432__]
            ((((int)in.get( 2 + inPos)) <<  2) & 127);
      out[ 3 + outPos] =
          //                 [765_____]
          //             [____210]
            ((((int)in.get( 2 + inPos)) >>  5) & 7)
        | //                 [____3210]
          //                     [6543___]
            ((((int)in.get( 3 + inPos)) <<  3) & 127);
      out[ 4 + outPos] =
          //                 [7654____]
          //              [___3210]
            ((((int)in.get( 3 + inPos)) >>  4) & 15)
        | //                 [_____210]
          //                      [654____]
            ((((int)in.get( 4 + inPos)) <<  4) & 127);
      out[ 5 + outPos] =
          //                 [76543___]
          //               [__43210]
            ((((int)in.get( 4 + inPos)) >>  3) & 31)
        | //                 [______10]
          //                       [65_____]
            ((((int)in.get( 5 + inPos)) <<  5) & 127);
      out[ 6 + outPos] =
          //                 [765432__]
          //                [_543210]
            ((((int)in.get( 5 + inPos)) >>  2) & 63)
        | //                 [_______0]
          //                        [6______]
            ((((int)in.get( 6 + inPos)) <<  6) & 127);
      out[ 7 + outPos] =
          //                 [7654321_]
          //                 [6543210]
            ((((int)in.get( 6 + inPos)) >>  1) & 127);
      out[ 8 + outPos] =
          //                 [_6543210]
          //                  [6543210]
            ((((int)in.get( 7 + inPos)) ) & 127);
      out[ 9 + outPos] =
          //                 [7_______]
          //           [______0]
            ((((int)in.get( 7 + inPos)) >>  7) & 1)
        | //                 [__543210]
          //                   [654321_]
            ((((int)in.get( 8 + inPos)) <<  1) & 127);
      out[10 + outPos] =
          //                 [76______]
          //            [_____10]
            ((((int)in.get( 8 + inPos)) >>  6) & 3)
        | //                 [___43210]
          //                    [65432__]
            ((((int)in.get( 9 + inPos)) <<  2) & 127);
      out[11 + outPos] =
          //                 [765_____]
          //             [____210]
            ((((int)in.get( 9 + inPos)) >>  5) & 7)
        | //                 [____3210]
          //                     [6543___]
            ((((int)in.get(10 + inPos)) <<  3) & 127);
      out[12 + outPos] =
          //                 [7654____]
          //              [___3210]
            ((((int)in.get(10 + inPos)) >>  4) & 15)
        | //                 [_____210]
          //                      [654____]
            ((((int)in.get(11 + inPos)) <<  4) & 127);
      out[13 + outPos] =
          //                 [76543___]
          //               [__43210]
            ((((int)in.get(11 + inPos)) >>  3) & 31)
        | //                 [______10]
          //                       [65_____]
            ((((int)in.get(12 + inPos)) <<  5) & 127);
      out[14 + outPos] =
          //                 [765432__]
          //                [_543210]
            ((((int)in.get(12 + inPos)) >>  2) & 63)
        | //                 [_______0]
          //                        [6______]
            ((((int)in.get(13 + inPos)) <<  6) & 127);
      out[15 + outPos] =
          //                 [7654321_]
          //                 [6543210]
            ((((int)in.get(13 + inPos)) >>  1) & 127);
      out[16 + outPos] =
          //                 [_6543210]
          //                  [6543210]
            ((((int)in.get(14 + inPos)) ) & 127);
      out[17 + outPos] =
          //                 [7_______]
          //           [______0]
            ((((int)in.get(14 + inPos)) >>  7) & 1)
        | //                 [__543210]
          //                   [654321_]
            ((((int)in.get(15 + inPos)) <<  1) & 127);
      out[18 + outPos] =
          //                 [76______]
          //            [_____10]
            ((((int)in.get(15 + inPos)) >>  6) & 3)
        | //                 [___43210]
          //                    [65432__]
            ((((int)in.get(16 + inPos)) <<  2) & 127);
      out[19 + outPos] =
          //                 [765_____]
          //             [____210]
            ((((int)in.get(16 + inPos)) >>  5) & 7)
        | //                 [____3210]
          //                     [6543___]
            ((((int)in.get(17 + inPos)) <<  3) & 127);
      out[20 + outPos] =
          //                 [7654____]
          //              [___3210]
            ((((int)in.get(17 + inPos)) >>  4) & 15)
        | //                 [_____210]
          //                      [654____]
            ((((int)in.get(18 + inPos)) <<  4) & 127);
      out[21 + outPos] =
          //                 [76543___]
          //               [__43210]
            ((((int)in.get(18 + inPos)) >>  3) & 31)
        | //                 [______10]
          //                       [65_____]
            ((((int)in.get(19 + inPos)) <<  5) & 127);
      out[22 + outPos] =
          //                 [765432__]
          //                [_543210]
            ((((int)in.get(19 + inPos)) >>  2) & 63)
        | //                 [_______0]
          //                        [6______]
            ((((int)in.get(20 + inPos)) <<  6) & 127);
      out[23 + outPos] =
          //                 [7654321_]
          //                 [6543210]
            ((((int)in.get(20 + inPos)) >>  1) & 127);
      out[24 + outPos] =
          //                 [_6543210]
          //                  [6543210]
            ((((int)in.get(21 + inPos)) ) & 127);
      out[25 + outPos] =
          //                 [7_______]
          //           [______0]
            ((((int)in.get(21 + inPos)) >>  7) & 1)
        | //                 [__543210]
          //                   [654321_]
            ((((int)in.get(22 + inPos)) <<  1) & 127);
      out[26 + outPos] =
          //                 [76______]
          //            [_____10]
            ((((int)in.get(22 + inPos)) >>  6) & 3)
        | //                 [___43210]
          //                    [65432__]
            ((((int)in.get(23 + inPos)) <<  2) & 127);
      out[27 + outPos] =
          //                 [765_____]
          //             [____210]
            ((((int)in.get(23 + inPos)) >>  5) & 7)
        | //                 [____3210]
          //                     [6543___]
            ((((int)in.get(24 + inPos)) <<  3) & 127);
      out[28 + outPos] =
          //                 [7654____]
          //              [___3210]
            ((((int)in.get(24 + inPos)) >>  4) & 15)
        | //                 [_____210]
          //                      [654____]
            ((((int)in.get(25 + inPos)) <<  4) & 127);
      out[29 + outPos] =
          //                 [76543___]
          //               [__43210]
            ((((int)in.get(25 + inPos)) >>  3) & 31)
        | //                 [______10]
          //                       [65_____]
            ((((int)in.get(26 + inPos)) <<  5) & 127);
      out[30 + outPos] =
          //                 [765432__]
          //                [_543210]
            ((((int)in.get(26 + inPos)) >>  2) & 63)
        | //                 [_______0]
          //                        [6______]
            ((((int)in.get(27 + inPos)) <<  6) & 127);
      out[31 + outPos] =
          //                 [7654321_]
          //                 [6543210]
            ((((int)in.get(27 + inPos)) >>  1) & 127);
    }
  }

  private static final class Packer8 extends BytePacker {

    private Packer8() {
      super(8);
    }

    public final void pack8Values(final int[] in, final int inPos, final byte[] out, final int outPos) {
      out[ 0 + outPos] = (byte)((
          //                  [76543210]
          //                  [76543210]
           ((in[ 0 + inPos] & 255))) & 255);
      out[ 1 + outPos] = (byte)((
          //                  [76543210]
          //                  [76543210]
           ((in[ 1 + inPos] & 255))) & 255);
      out[ 2 + outPos] = (byte)((
          //                  [76543210]
          //                  [76543210]
           ((in[ 2 + inPos] & 255))) & 255);
      out[ 3 + outPos] = (byte)((
          //                  [76543210]
          //                  [76543210]
           ((in[ 3 + inPos] & 255))) & 255);
      out[ 4 + outPos] = (byte)((
          //                  [76543210]
          //                  [76543210]
           ((in[ 4 + inPos] & 255))) & 255);
      out[ 5 + outPos] = (byte)((
          //                  [76543210]
          //                  [76543210]
           ((in[ 5 + inPos] & 255))) & 255);
      out[ 6 + outPos] = (byte)((
          //                  [76543210]
          //                  [76543210]
           ((in[ 6 + inPos] & 255))) & 255);
      out[ 7 + outPos] = (byte)((
          //                  [76543210]
          //                  [76543210]
           ((in[ 7 + inPos] & 255))) & 255);
    }
    public final void pack32Values(final int[] in, final int inPos, final byte[] out, final int outPos) {
      out[ 0 + outPos] = (byte)((
          //                  [76543210]
          //                  [76543210]
           ((in[ 0 + inPos] & 255))) & 255);
      out[ 1 + outPos] = (byte)((
          //                  [76543210]
          //                  [76543210]
           ((in[ 1 + inPos] & 255))) & 255);
      out[ 2 + outPos] = (byte)((
          //                  [76543210]
          //                  [76543210]
           ((in[ 2 + inPos] & 255))) & 255);
      out[ 3 + outPos] = (byte)((
          //                  [76543210]
          //                  [76543210]
           ((in[ 3 + inPos] & 255))) & 255);
      out[ 4 + outPos] = (byte)((
          //                  [76543210]
          //                  [76543210]
           ((in[ 4 + inPos] & 255))) & 255);
      out[ 5 + outPos] = (byte)((
          //                  [76543210]
          //                  [76543210]
           ((in[ 5 + inPos] & 255))) & 255);
      out[ 6 + outPos] = (byte)((
          //                  [76543210]
          //                  [76543210]
           ((in[ 6 + inPos] & 255))) & 255);
      out[ 7 + outPos] = (byte)((
          //                  [76543210]
          //                  [76543210]
           ((in[ 7 + inPos] & 255))) & 255);
      out[ 8 + outPos] = (byte)((
          //                  [76543210]
          //                  [76543210]
           ((in[ 8 + inPos] & 255))) & 255);
      out[ 9 + outPos] = (byte)((
          //                  [76543210]
          //                  [76543210]
           ((in[ 9 + inPos] & 255))) & 255);
      out[10 + outPos] = (byte)((
          //                  [76543210]
          //                  [76543210]
           ((in[10 + inPos] & 255))) & 255);
      out[11 + outPos] = (byte)((
          //                  [76543210]
          //                  [76543210]
           ((in[11 + inPos] & 255))) & 255);
      out[12 + outPos] = (byte)((
          //                  [76543210]
          //                  [76543210]
           ((in[12 + inPos] & 255))) & 255);
      out[13 + outPos] = (byte)((
          //                  [76543210]
          //                  [76543210]
           ((in[13 + inPos] & 255))) & 255);
      out[14 + outPos] = (byte)((
          //                  [76543210]
          //                  [76543210]
           ((in[14 + inPos] & 255))) & 255);
      out[15 + outPos] = (byte)((
          //                  [76543210]
          //                  [76543210]
           ((in[15 + inPos] & 255))) & 255);
      out[16 + outPos] = (byte)((
          //                  [76543210]
          //                  [76543210]
           ((in[16 + inPos] & 255))) & 255);
      out[17 + outPos] = (byte)((
          //                  [76543210]
          //                  [76543210]
           ((in[17 + inPos] & 255))) & 255);
      out[18 + outPos] = (byte)((
          //                  [76543210]
          //                  [76543210]
           ((in[18 + inPos] & 255))) & 255);
      out[19 + outPos] = (byte)((
          //                  [76543210]
          //                  [76543210]
           ((in[19 + inPos] & 255))) & 255);
      out[20 + outPos] = (byte)((
          //                  [76543210]
          //                  [76543210]
           ((in[20 + inPos] & 255))) & 255);
      out[21 + outPos] = (byte)((
          //                  [76543210]
          //                  [76543210]
           ((in[21 + inPos] & 255))) & 255);
      out[22 + outPos] = (byte)((
          //                  [76543210]
          //                  [76543210]
           ((in[22 + inPos] & 255))) & 255);
      out[23 + outPos] = (byte)((
          //                  [76543210]
          //                  [76543210]
           ((in[23 + inPos] & 255))) & 255);
      out[24 + outPos] = (byte)((
          //                  [76543210]
          //                  [76543210]
           ((in[24 + inPos] & 255))) & 255);
      out[25 + outPos] = (byte)((
          //                  [76543210]
          //                  [76543210]
           ((in[25 + inPos] & 255))) & 255);
      out[26 + outPos] = (byte)((
          //                  [76543210]
          //                  [76543210]
           ((in[26 + inPos] & 255))) & 255);
      out[27 + outPos] = (byte)((
          //                  [76543210]
          //                  [76543210]
           ((in[27 + inPos] & 255))) & 255);
      out[28 + outPos] = (byte)((
          //                  [76543210]
          //                  [76543210]
           ((in[28 + inPos] & 255))) & 255);
      out[29 + outPos] = (byte)((
          //                  [76543210]
          //                  [76543210]
           ((in[29 + inPos] & 255))) & 255);
      out[30 + outPos] = (byte)((
          //                  [76543210]
          //                  [76543210]
           ((in[30 + inPos] & 255))) & 255);
      out[31 + outPos] = (byte)((
          //                  [76543210]
          //                  [76543210]
           ((in[31 + inPos] & 255))) & 255);
    }
    public final void unpack8Values(final byte[] in, final int inPos, final int[] out, final int outPos) {
      out[ 0 + outPos] =
          //                  [76543210]
          //                  [76543210]
            ((((int)in[ 0 + inPos]) ) & 255);
      out[ 1 + outPos] =
          //                  [76543210]
          //                  [76543210]
            ((((int)in[ 1 + inPos]) ) & 255);
      out[ 2 + outPos] =
          //                  [76543210]
          //                  [76543210]
            ((((int)in[ 2 + inPos]) ) & 255);
      out[ 3 + outPos] =
          //                  [76543210]
          //                  [76543210]
            ((((int)in[ 3 + inPos]) ) & 255);
      out[ 4 + outPos] =
          //                  [76543210]
          //                  [76543210]
            ((((int)in[ 4 + inPos]) ) & 255);
      out[ 5 + outPos] =
          //                  [76543210]
          //                  [76543210]
            ((((int)in[ 5 + inPos]) ) & 255);
      out[ 6 + outPos] =
          //                  [76543210]
          //                  [76543210]
            ((((int)in[ 6 + inPos]) ) & 255);
      out[ 7 + outPos] =
          //                  [76543210]
          //                  [76543210]
            ((((int)in[ 7 + inPos]) ) & 255);
    }
    public final void unpack8Values(final ByteBuffer in, final int inPos, final int[] out, final int outPos) {
      out[ 0 + outPos] =
          //                  [76543210]
          //                  [76543210]
            ((((int)in.get( 0 + inPos)) ) & 255);
      out[ 1 + outPos] =
          //                  [76543210]
          //                  [76543210]
            ((((int)in.get( 1 + inPos)) ) & 255);
      out[ 2 + outPos] =
          //                  [76543210]
          //                  [76543210]
            ((((int)in.get( 2 + inPos)) ) & 255);
      out[ 3 + outPos] =
          //                  [76543210]
          //                  [76543210]
            ((((int)in.get( 3 + inPos)) ) & 255);
      out[ 4 + outPos] =
          //                  [76543210]
          //                  [76543210]
            ((((int)in.get( 4 + inPos)) ) & 255);
      out[ 5 + outPos] =
          //                  [76543210]
          //                  [76543210]
            ((((int)in.get( 5 + inPos)) ) & 255);
      out[ 6 + outPos] =
          //                  [76543210]
          //                  [76543210]
            ((((int)in.get( 6 + inPos)) ) & 255);
      out[ 7 + outPos] =
          //                  [76543210]
          //                  [76543210]
            ((((int)in.get( 7 + inPos)) ) & 255);
    }
    public final void unpack32Values(final byte[] in, final int inPos, final int[] out, final int outPos) {
      out[ 0 + outPos] =
          //                  [76543210]
          //                  [76543210]
            ((((int)in[ 0 + inPos]) ) & 255);
      out[ 1 + outPos] =
          //                  [76543210]
          //                  [76543210]
            ((((int)in[ 1 + inPos]) ) & 255);
      out[ 2 + outPos] =
          //                  [76543210]
          //                  [76543210]
            ((((int)in[ 2 + inPos]) ) & 255);
      out[ 3 + outPos] =
          //                  [76543210]
          //                  [76543210]
            ((((int)in[ 3 + inPos]) ) & 255);
      out[ 4 + outPos] =
          //                  [76543210]
          //                  [76543210]
            ((((int)in[ 4 + inPos]) ) & 255);
      out[ 5 + outPos] =
          //                  [76543210]
          //                  [76543210]
            ((((int)in[ 5 + inPos]) ) & 255);
      out[ 6 + outPos] =
          //                  [76543210]
          //                  [76543210]
            ((((int)in[ 6 + inPos]) ) & 255);
      out[ 7 + outPos] =
          //                  [76543210]
          //                  [76543210]
            ((((int)in[ 7 + inPos]) ) & 255);
      out[ 8 + outPos] =
          //                  [76543210]
          //                  [76543210]
            ((((int)in[ 8 + inPos]) ) & 255);
      out[ 9 + outPos] =
          //                  [76543210]
          //                  [76543210]
            ((((int)in[ 9 + inPos]) ) & 255);
      out[10 + outPos] =
          //                  [76543210]
          //                  [76543210]
            ((((int)in[10 + inPos]) ) & 255);
      out[11 + outPos] =
          //                  [76543210]
          //                  [76543210]
            ((((int)in[11 + inPos]) ) & 255);
      out[12 + outPos] =
          //                  [76543210]
          //                  [76543210]
            ((((int)in[12 + inPos]) ) & 255);
      out[13 + outPos] =
          //                  [76543210]
          //                  [76543210]
            ((((int)in[13 + inPos]) ) & 255);
      out[14 + outPos] =
          //                  [76543210]
          //                  [76543210]
            ((((int)in[14 + inPos]) ) & 255);
      out[15 + outPos] =
          //                  [76543210]
          //                  [76543210]
            ((((int)in[15 + inPos]) ) & 255);
      out[16 + outPos] =
          //                  [76543210]
          //                  [76543210]
            ((((int)in[16 + inPos]) ) & 255);
      out[17 + outPos] =
          //                  [76543210]
          //                  [76543210]
            ((((int)in[17 + inPos]) ) & 255);
      out[18 + outPos] =
          //                  [76543210]
          //                  [76543210]
            ((((int)in[18 + inPos]) ) & 255);
      out[19 + outPos] =
          //                  [76543210]
          //                  [76543210]
            ((((int)in[19 + inPos]) ) & 255);
      out[20 + outPos] =
          //                  [76543210]
          //                  [76543210]
            ((((int)in[20 + inPos]) ) & 255);
      out[21 + outPos] =
          //                  [76543210]
          //                  [76543210]
            ((((int)in[21 + inPos]) ) & 255);
      out[22 + outPos] =
          //                  [76543210]
          //                  [76543210]
            ((((int)in[22 + inPos]) ) & 255);
      out[23 + outPos] =
          //                  [76543210]
          //                  [76543210]
            ((((int)in[23 + inPos]) ) & 255);
      out[24 + outPos] =
          //                  [76543210]
          //                  [76543210]
            ((((int)in[24 + inPos]) ) & 255);
      out[25 + outPos] =
          //                  [76543210]
          //                  [76543210]
            ((((int)in[25 + inPos]) ) & 255);
      out[26 + outPos] =
          //                  [76543210]
          //                  [76543210]
            ((((int)in[26 + inPos]) ) & 255);
      out[27 + outPos] =
          //                  [76543210]
          //                  [76543210]
            ((((int)in[27 + inPos]) ) & 255);
      out[28 + outPos] =
          //                  [76543210]
          //                  [76543210]
            ((((int)in[28 + inPos]) ) & 255);
      out[29 + outPos] =
          //                  [76543210]
          //                  [76543210]
            ((((int)in[29 + inPos]) ) & 255);
      out[30 + outPos] =
          //                  [76543210]
          //                  [76543210]
            ((((int)in[30 + inPos]) ) & 255);
      out[31 + outPos] =
          //                  [76543210]
          //                  [76543210]
            ((((int)in[31 + inPos]) ) & 255);
    }
    public final void unpack32Values(final ByteBuffer in, final int inPos, final int[] out, final int outPos) {
      out[ 0 + outPos] =
          //                  [76543210]
          //                  [76543210]
            ((((int)in.get( 0 + inPos)) ) & 255);
      out[ 1 + outPos] =
          //                  [76543210]
          //                  [76543210]
            ((((int)in.get( 1 + inPos)) ) & 255);
      out[ 2 + outPos] =
          //                  [76543210]
          //                  [76543210]
            ((((int)in.get( 2 + inPos)) ) & 255);
      out[ 3 + outPos] =
          //                  [76543210]
          //                  [76543210]
            ((((int)in.get( 3 + inPos)) ) & 255);
      out[ 4 + outPos] =
          //                  [76543210]
          //                  [76543210]
            ((((int)in.get( 4 + inPos)) ) & 255);
      out[ 5 + outPos] =
          //                  [76543210]
          //                  [76543210]
            ((((int)in.get( 5 + inPos)) ) & 255);
      out[ 6 + outPos] =
          //                  [76543210]
          //                  [76543210]
            ((((int)in.get( 6 + inPos)) ) & 255);
      out[ 7 + outPos] =
          //                  [76543210]
          //                  [76543210]
            ((((int)in.get( 7 + inPos)) ) & 255);
      out[ 8 + outPos] =
          //                  [76543210]
          //                  [76543210]
            ((((int)in.get( 8 + inPos)) ) & 255);
      out[ 9 + outPos] =
          //                  [76543210]
          //                  [76543210]
            ((((int)in.get( 9 + inPos)) ) & 255);
      out[10 + outPos] =
          //                  [76543210]
          //                  [76543210]
            ((((int)in.get(10 + inPos)) ) & 255);
      out[11 + outPos] =
          //                  [76543210]
          //                  [76543210]
            ((((int)in.get(11 + inPos)) ) & 255);
      out[12 + outPos] =
          //                  [76543210]
          //                  [76543210]
            ((((int)in.get(12 + inPos)) ) & 255);
      out[13 + outPos] =
          //                  [76543210]
          //                  [76543210]
            ((((int)in.get(13 + inPos)) ) & 255);
      out[14 + outPos] =
          //                  [76543210]
          //                  [76543210]
            ((((int)in.get(14 + inPos)) ) & 255);
      out[15 + outPos] =
          //                  [76543210]
          //                  [76543210]
            ((((int)in.get(15 + inPos)) ) & 255);
      out[16 + outPos] =
          //                  [76543210]
          //                  [76543210]
            ((((int)in.get(16 + inPos)) ) & 255);
      out[17 + outPos] =
          //                  [76543210]
          //                  [76543210]
            ((((int)in.get(17 + inPos)) ) & 255);
      out[18 + outPos] =
          //                  [76543210]
          //                  [76543210]
            ((((int)in.get(18 + inPos)) ) & 255);
      out[19 + outPos] =
          //                  [76543210]
          //                  [76543210]
            ((((int)in.get(19 + inPos)) ) & 255);
      out[20 + outPos] =
          //                  [76543210]
          //                  [76543210]
            ((((int)in.get(20 + inPos)) ) & 255);
      out[21 + outPos] =
          //                  [76543210]
          //                  [76543210]
            ((((int)in.get(21 + inPos)) ) & 255);
      out[22 + outPos] =
          //                  [76543210]
          //                  [76543210]
            ((((int)in.get(22 + inPos)) ) & 255);
      out[23 + outPos] =
          //                  [76543210]
          //                  [76543210]
            ((((int)in.get(23 + inPos)) ) & 255);
      out[24 + outPos] =
          //                  [76543210]
          //                  [76543210]
            ((((int)in.get(24 + inPos)) ) & 255);
      out[25 + outPos] =
          //                  [76543210]
          //                  [76543210]
            ((((int)in.get(25 + inPos)) ) & 255);
      out[26 + outPos] =
          //                  [76543210]
          //                  [76543210]
            ((((int)in.get(26 + inPos)) ) & 255);
      out[27 + outPos] =
          //                  [76543210]
          //                  [76543210]
            ((((int)in.get(27 + inPos)) ) & 255);
      out[28 + outPos] =
          //                  [76543210]
          //                  [76543210]
            ((((int)in.get(28 + inPos)) ) & 255);
      out[29 + outPos] =
          //                  [76543210]
          //                  [76543210]
            ((((int)in.get(29 + inPos)) ) & 255);
      out[30 + outPos] =
          //                  [76543210]
          //                  [76543210]
            ((((int)in.get(30 + inPos)) ) & 255);
      out[31 + outPos] =
          //                  [76543210]
          //                  [76543210]
            ((((int)in.get(31 + inPos)) ) & 255);
    }
  }

  private static final class Packer9 extends BytePacker {

    private Packer9() {
      super(9);
    }

    public final void pack8Values(final int[] in, final int inPos, final byte[] out, final int outPos) {
      out[ 0 + outPos] = (byte)((
          //                   [76543210]
          //                  [_76543210]
           ((in[ 0 + inPos] & 511))) & 255);
      out[ 1 + outPos] = (byte)((
          //                   [_______0]
          //                          [8________]
           ((in[ 0 + inPos] & 511) >>> 8)
        | //                   [7654321_]
          //                 [__6543210]
           ((in[ 1 + inPos] & 511) <<  1)) & 255);
      out[ 2 + outPos] = (byte)((
          //                   [______10]
          //                         [87_______]
           ((in[ 1 + inPos] & 511) >>> 7)
        | //                   [765432__]
          //                [___543210]
           ((in[ 2 + inPos] & 511) <<  2)) & 255);
      out[ 3 + outPos] = (byte)((
          //                   [_____210]
          //                        [876______]
           ((in[ 2 + inPos] & 511) >>> 6)
        | //                   [76543___]
          //               [____43210]
           ((in[ 3 + inPos] & 511) <<  3)) & 255);
      out[ 4 + outPos] = (byte)((
          //                   [____3210]
          //                       [8765_____]
           ((in[ 3 + inPos] & 511) >>> 5)
        | //                   [7654____]
          //              [_____3210]
           ((in[ 4 + inPos] & 511) <<  4)) & 255);
      out[ 5 + outPos] = (byte)((
          //                   [___43210]
          //                      [87654____]
           ((in[ 4 + inPos] & 511) >>> 4)
        | //                   [765_____]
          //             [______210]
           ((in[ 5 + inPos] & 511) <<  5)) & 255);
      out[ 6 + outPos] = (byte)((
          //                   [__543210]
          //                     [876543___]
           ((in[ 5 + inPos] & 511) >>> 3)
        | //                   [76______]
          //            [_______10]
           ((in[ 6 + inPos] & 511) <<  6)) & 255);
      out[ 7 + outPos] = (byte)((
          //                   [_6543210]
          //                    [8765432__]
           ((in[ 6 + inPos] & 511) >>> 2)
        | //                   [7_______]
          //           [________0]
           ((in[ 7 + inPos] & 511) <<  7)) & 255);
      out[ 8 + outPos] = (byte)((
          //                   [76543210]
          //                   [87654321_]
           ((in[ 7 + inPos] & 511) >>> 1)) & 255);
    }
    public final void pack32Values(final int[] in, final int inPos, final byte[] out, final int outPos) {
      out[ 0 + outPos] = (byte)((
          //                   [76543210]
          //                  [_76543210]
           ((in[ 0 + inPos] & 511))) & 255);
      out[ 1 + outPos] = (byte)((
          //                   [_______0]
          //                          [8________]
           ((in[ 0 + inPos] & 511) >>> 8)
        | //                   [7654321_]
          //                 [__6543210]
           ((in[ 1 + inPos] & 511) <<  1)) & 255);
      out[ 2 + outPos] = (byte)((
          //                   [______10]
          //                         [87_______]
           ((in[ 1 + inPos] & 511) >>> 7)
        | //                   [765432__]
          //                [___543210]
           ((in[ 2 + inPos] & 511) <<  2)) & 255);
      out[ 3 + outPos] = (byte)((
          //                   [_____210]
          //                        [876______]
           ((in[ 2 + inPos] & 511) >>> 6)
        | //                   [76543___]
          //               [____43210]
           ((in[ 3 + inPos] & 511) <<  3)) & 255);
      out[ 4 + outPos] = (byte)((
          //                   [____3210]
          //                       [8765_____]
           ((in[ 3 + inPos] & 511) >>> 5)
        | //                   [7654____]
          //              [_____3210]
           ((in[ 4 + inPos] & 511) <<  4)) & 255);
      out[ 5 + outPos] = (byte)((
          //                   [___43210]
          //                      [87654____]
           ((in[ 4 + inPos] & 511) >>> 4)
        | //                   [765_____]
          //             [______210]
           ((in[ 5 + inPos] & 511) <<  5)) & 255);
      out[ 6 + outPos] = (byte)((
          //                   [__543210]
          //                     [876543___]
           ((in[ 5 + inPos] & 511) >>> 3)
        | //                   [76______]
          //            [_______10]
           ((in[ 6 + inPos] & 511) <<  6)) & 255);
      out[ 7 + outPos] = (byte)((
          //                   [_6543210]
          //                    [8765432__]
           ((in[ 6 + inPos] & 511) >>> 2)
        | //                   [7_______]
          //           [________0]
           ((in[ 7 + inPos] & 511) <<  7)) & 255);
      out[ 8 + outPos] = (byte)((
          //                   [76543210]
          //                   [87654321_]
           ((in[ 7 + inPos] & 511) >>> 1)) & 255);
      out[ 9 + outPos] = (byte)((
          //                   [76543210]
          //                  [_76543210]
           ((in[ 8 + inPos] & 511))) & 255);
      out[10 + outPos] = (byte)((
          //                   [_______0]
          //                          [8________]
           ((in[ 8 + inPos] & 511) >>> 8)
        | //                   [7654321_]
          //                 [__6543210]
           ((in[ 9 + inPos] & 511) <<  1)) & 255);
      out[11 + outPos] = (byte)((
          //                   [______10]
          //                         [87_______]
           ((in[ 9 + inPos] & 511) >>> 7)
        | //                   [765432__]
          //                [___543210]
           ((in[10 + inPos] & 511) <<  2)) & 255);
      out[12 + outPos] = (byte)((
          //                   [_____210]
          //                        [876______]
           ((in[10 + inPos] & 511) >>> 6)
        | //                   [76543___]
          //               [____43210]
           ((in[11 + inPos] & 511) <<  3)) & 255);
      out[13 + outPos] = (byte)((
          //                   [____3210]
          //                       [8765_____]
           ((in[11 + inPos] & 511) >>> 5)
        | //                   [7654____]
          //              [_____3210]
           ((in[12 + inPos] & 511) <<  4)) & 255);
      out[14 + outPos] = (byte)((
          //                   [___43210]
          //                      [87654____]
           ((in[12 + inPos] & 511) >>> 4)
        | //                   [765_____]
          //             [______210]
           ((in[13 + inPos] & 511) <<  5)) & 255);
      out[15 + outPos] = (byte)((
          //                   [__543210]
          //                     [876543___]
           ((in[13 + inPos] & 511) >>> 3)
        | //                   [76______]
          //            [_______10]
           ((in[14 + inPos] & 511) <<  6)) & 255);
      out[16 + outPos] = (byte)((
          //                   [_6543210]
          //                    [8765432__]
           ((in[14 + inPos] & 511) >>> 2)
        | //                   [7_______]
          //           [________0]
           ((in[15 + inPos] & 511) <<  7)) & 255);
      out[17 + outPos] = (byte)((
          //                   [76543210]
          //                   [87654321_]
           ((in[15 + inPos] & 511) >>> 1)) & 255);
      out[18 + outPos] = (byte)((
          //                   [76543210]
          //                  [_76543210]
           ((in[16 + inPos] & 511))) & 255);
      out[19 + outPos] = (byte)((
          //                   [_______0]
          //                          [8________]
           ((in[16 + inPos] & 511) >>> 8)
        | //                   [7654321_]
          //                 [__6543210]
           ((in[17 + inPos] & 511) <<  1)) & 255);
      out[20 + outPos] = (byte)((
          //                   [______10]
          //                         [87_______]
           ((in[17 + inPos] & 511) >>> 7)
        | //                   [765432__]
          //                [___543210]
           ((in[18 + inPos] & 511) <<  2)) & 255);
      out[21 + outPos] = (byte)((
          //                   [_____210]
          //                        [876______]
           ((in[18 + inPos] & 511) >>> 6)
        | //                   [76543___]
          //               [____43210]
           ((in[19 + inPos] & 511) <<  3)) & 255);
      out[22 + outPos] = (byte)((
          //                   [____3210]
          //                       [8765_____]
           ((in[19 + inPos] & 511) >>> 5)
        | //                   [7654____]
          //              [_____3210]
           ((in[20 + inPos] & 511) <<  4)) & 255);
      out[23 + outPos] = (byte)((
          //                   [___43210]
          //                      [87654____]
           ((in[20 + inPos] & 511) >>> 4)
        | //                   [765_____]
          //             [______210]
           ((in[21 + inPos] & 511) <<  5)) & 255);
      out[24 + outPos] = (byte)((
          //                   [__543210]
          //                     [876543___]
           ((in[21 + inPos] & 511) >>> 3)
        | //                   [76______]
          //            [_______10]
           ((in[22 + inPos] & 511) <<  6)) & 255);
      out[25 + outPos] = (byte)((
          //                   [_6543210]
          //                    [8765432__]
           ((in[22 + inPos] & 511) >>> 2)
        | //                   [7_______]
          //           [________0]
           ((in[23 + inPos] & 511) <<  7)) & 255);
      out[26 + outPos] = (byte)((
          //                   [76543210]
          //                   [87654321_]
           ((in[23 + inPos] & 511) >>> 1)) & 255);
      out[27 + outPos] = (byte)((
          //                   [76543210]
          //                  [_76543210]
           ((in[24 + inPos] & 511))) & 255);
      out[28 + outPos] = (byte)((
          //                   [_______0]
          //                          [8________]
           ((in[24 + inPos] & 511) >>> 8)
        | //                   [7654321_]
          //                 [__6543210]
           ((in[25 + inPos] & 511) <<  1)) & 255);
      out[29 + outPos] = (byte)((
          //                   [______10]
          //                         [87_______]
           ((in[25 + inPos] & 511) >>> 7)
        | //                   [765432__]
          //                [___543210]
           ((in[26 + inPos] & 511) <<  2)) & 255);
      out[30 + outPos] = (byte)((
          //                   [_____210]
          //                        [876______]
           ((in[26 + inPos] & 511) >>> 6)
        | //                   [76543___]
          //               [____43210]
           ((in[27 + inPos] & 511) <<  3)) & 255);
      out[31 + outPos] = (byte)((
          //                   [____3210]
          //                       [8765_____]
           ((in[27 + inPos] & 511) >>> 5)
        | //                   [7654____]
          //              [_____3210]
           ((in[28 + inPos] & 511) <<  4)) & 255);
      out[32 + outPos] = (byte)((
          //                   [___43210]
          //                      [87654____]
           ((in[28 + inPos] & 511) >>> 4)
        | //                   [765_____]
          //             [______210]
           ((in[29 + inPos] & 511) <<  5)) & 255);
      out[33 + outPos] = (byte)((
          //                   [__543210]
          //                     [876543___]
           ((in[29 + inPos] & 511) >>> 3)
        | //                   [76______]
          //            [_______10]
           ((in[30 + inPos] & 511) <<  6)) & 255);
      out[34 + outPos] = (byte)((
          //                   [_6543210]
          //                    [8765432__]
           ((in[30 + inPos] & 511) >>> 2)
        | //                   [7_______]
          //           [________0]
           ((in[31 + inPos] & 511) <<  7)) & 255);
      out[35 + outPos] = (byte)((
          //                   [76543210]
          //                   [87654321_]
           ((in[31 + inPos] & 511) >>> 1)) & 255);
    }
    public final void unpack8Values(final byte[] in, final int inPos, final int[] out, final int outPos) {
      out[ 0 + outPos] =
          //                   [76543210]
          //                  [_76543210]
            ((((int)in[ 0 + inPos]) ) & 255)
        | //                   [_______0]
          //                          [8________]
            ((((int)in[ 1 + inPos]) <<  8) & 511);
      out[ 1 + outPos] =
          //                   [7654321_]
          //                 [__6543210]
            ((((int)in[ 1 + inPos]) >>  1) & 127)
        | //                   [______10]
          //                         [87_______]
            ((((int)in[ 2 + inPos]) <<  7) & 511);
      out[ 2 + outPos] =
          //                   [765432__]
          //                [___543210]
            ((((int)in[ 2 + inPos]) >>  2) & 63)
        | //                   [_____210]
          //                        [876______]
            ((((int)in[ 3 + inPos]) <<  6) & 511);
      out[ 3 + outPos] =
          //                   [76543___]
          //               [____43210]
            ((((int)in[ 3 + inPos]) >>  3) & 31)
        | //                   [____3210]
          //                       [8765_____]
            ((((int)in[ 4 + inPos]) <<  5) & 511);
      out[ 4 + outPos] =
          //                   [7654____]
          //              [_____3210]
            ((((int)in[ 4 + inPos]) >>  4) & 15)
        | //                   [___43210]
          //                      [87654____]
            ((((int)in[ 5 + inPos]) <<  4) & 511);
      out[ 5 + outPos] =
          //                   [765_____]
          //             [______210]
            ((((int)in[ 5 + inPos]) >>  5) & 7)
        | //                   [__543210]
          //                     [876543___]
            ((((int)in[ 6 + inPos]) <<  3) & 511);
      out[ 6 + outPos] =
          //                   [76______]
          //            [_______10]
            ((((int)in[ 6 + inPos]) >>  6) & 3)
        | //                   [_6543210]
          //                    [8765432__]
            ((((int)in[ 7 + inPos]) <<  2) & 511);
      out[ 7 + outPos] =
          //                   [7_______]
          //           [________0]
            ((((int)in[ 7 + inPos]) >>  7) & 1)
        | //                   [76543210]
          //                   [87654321_]
            ((((int)in[ 8 + inPos]) <<  1) & 511);
    }
    public final void unpack8Values(final ByteBuffer in, final int inPos, final int[] out, final int outPos) {
      out[ 0 + outPos] =
          //                   [76543210]
          //                  [_76543210]
            ((((int)in.get( 0 + inPos)) ) & 255)
        | //                   [_______0]
          //                          [8________]
            ((((int)in.get( 1 + inPos)) <<  8) & 511);
      out[ 1 + outPos] =
          //                   [7654321_]
          //                 [__6543210]
            ((((int)in.get( 1 + inPos)) >>  1) & 127)
        | //                   [______10]
          //                         [87_______]
            ((((int)in.get( 2 + inPos)) <<  7) & 511);
      out[ 2 + outPos] =
          //                   [765432__]
          //                [___543210]
            ((((int)in.get( 2 + inPos)) >>  2) & 63)
        | //                   [_____210]
          //                        [876______]
            ((((int)in.get( 3 + inPos)) <<  6) & 511);
      out[ 3 + outPos] =
          //                   [76543___]
          //               [____43210]
            ((((int)in.get( 3 + inPos)) >>  3) & 31)
        | //                   [____3210]
          //                       [8765_____]
            ((((int)in.get( 4 + inPos)) <<  5) & 511);
      out[ 4 + outPos] =
          //                   [7654____]
          //              [_____3210]
            ((((int)in.get( 4 + inPos)) >>  4) & 15)
        | //                   [___43210]
          //                      [87654____]
            ((((int)in.get( 5 + inPos)) <<  4) & 511);
      out[ 5 + outPos] =
          //                   [765_____]
          //             [______210]
            ((((int)in.get( 5 + inPos)) >>  5) & 7)
        | //                   [__543210]
          //                     [876543___]
            ((((int)in.get( 6 + inPos)) <<  3) & 511);
      out[ 6 + outPos] =
          //                   [76______]
          //            [_______10]
            ((((int)in.get( 6 + inPos)) >>  6) & 3)
        | //                   [_6543210]
          //                    [8765432__]
            ((((int)in.get( 7 + inPos)) <<  2) & 511);
      out[ 7 + outPos] =
          //                   [7_______]
          //           [________0]
            ((((int)in.get( 7 + inPos)) >>  7) & 1)
        | //                   [76543210]
          //                   [87654321_]
            ((((int)in.get( 8 + inPos)) <<  1) & 511);
    }
    public final void unpack32Values(final byte[] in, final int inPos, final int[] out, final int outPos) {
      out[ 0 + outPos] =
          //                   [76543210]
          //                  [_76543210]
            ((((int)in[ 0 + inPos]) ) & 255)
        | //                   [_______0]
          //                          [8________]
            ((((int)in[ 1 + inPos]) <<  8) & 511);
      out[ 1 + outPos] =
          //                   [7654321_]
          //                 [__6543210]
            ((((int)in[ 1 + inPos]) >>  1) & 127)
        | //                   [______10]
          //                         [87_______]
            ((((int)in[ 2 + inPos]) <<  7) & 511);
      out[ 2 + outPos] =
          //                   [765432__]
          //                [___543210]
            ((((int)in[ 2 + inPos]) >>  2) & 63)
        | //                   [_____210]
          //                        [876______]
            ((((int)in[ 3 + inPos]) <<  6) & 511);
      out[ 3 + outPos] =
          //                   [76543___]
          //               [____43210]
            ((((int)in[ 3 + inPos]) >>  3) & 31)
        | //                   [____3210]
          //                       [8765_____]
            ((((int)in[ 4 + inPos]) <<  5) & 511);
      out[ 4 + outPos] =
          //                   [7654____]
          //              [_____3210]
            ((((int)in[ 4 + inPos]) >>  4) & 15)
        | //                   [___43210]
          //                      [87654____]
            ((((int)in[ 5 + inPos]) <<  4) & 511);
      out[ 5 + outPos] =
          //                   [765_____]
          //             [______210]
            ((((int)in[ 5 + inPos]) >>  5) & 7)
        | //                   [__543210]
          //                     [876543___]
            ((((int)in[ 6 + inPos]) <<  3) & 511);
      out[ 6 + outPos] =
          //                   [76______]
          //            [_______10]
            ((((int)in[ 6 + inPos]) >>  6) & 3)
        | //                   [_6543210]
          //                    [8765432__]
            ((((int)in[ 7 + inPos]) <<  2) & 511);
      out[ 7 + outPos] =
          //                   [7_______]
          //           [________0]
            ((((int)in[ 7 + inPos]) >>  7) & 1)
        | //                   [76543210]
          //                   [87654321_]
            ((((int)in[ 8 + inPos]) <<  1) & 511);
      out[ 8 + outPos] =
          //                   [76543210]
          //                  [_76543210]
            ((((int)in[ 9 + inPos]) ) & 255)
        | //                   [_______0]
          //                          [8________]
            ((((int)in[10 + inPos]) <<  8) & 511);
      out[ 9 + outPos] =
          //                   [7654321_]
          //                 [__6543210]
            ((((int)in[10 + inPos]) >>  1) & 127)
        | //                   [______10]
          //                         [87_______]
            ((((int)in[11 + inPos]) <<  7) & 511);
      out[10 + outPos] =
          //                   [765432__]
          //                [___543210]
            ((((int)in[11 + inPos]) >>  2) & 63)
        | //                   [_____210]
          //                        [876______]
            ((((int)in[12 + inPos]) <<  6) & 511);
      out[11 + outPos] =
          //                   [76543___]
          //               [____43210]
            ((((int)in[12 + inPos]) >>  3) & 31)
        | //                   [____3210]
          //                       [8765_____]
            ((((int)in[13 + inPos]) <<  5) & 511);
      out[12 + outPos] =
          //                   [7654____]
          //              [_____3210]
            ((((int)in[13 + inPos]) >>  4) & 15)
        | //                   [___43210]
          //                      [87654____]
            ((((int)in[14 + inPos]) <<  4) & 511);
      out[13 + outPos] =
          //                   [765_____]
          //             [______210]
            ((((int)in[14 + inPos]) >>  5) & 7)
        | //                   [__543210]
          //                     [876543___]
            ((((int)in[15 + inPos]) <<  3) & 511);
      out[14 + outPos] =
          //                   [76______]
          //            [_______10]
            ((((int)in[15 + inPos]) >>  6) & 3)
        | //                   [_6543210]
          //                    [8765432__]
            ((((int)in[16 + inPos]) <<  2) & 511);
      out[15 + outPos] =
          //                   [7_______]
          //           [________0]
            ((((int)in[16 + inPos]) >>  7) & 1)
        | //                   [76543210]
          //                   [87654321_]
            ((((int)in[17 + inPos]) <<  1) & 511);
      out[16 + outPos] =
          //                   [76543210]
          //                  [_76543210]
            ((((int)in[18 + inPos]) ) & 255)
        | //                   [_______0]
          //                          [8________]
            ((((int)in[19 + inPos]) <<  8) & 511);
      out[17 + outPos] =
          //                   [7654321_]
          //                 [__6543210]
            ((((int)in[19 + inPos]) >>  1) & 127)
        | //                   [______10]
          //                         [87_______]
            ((((int)in[20 + inPos]) <<  7) & 511);
      out[18 + outPos] =
          //                   [765432__]
          //                [___543210]
            ((((int)in[20 + inPos]) >>  2) & 63)
        | //                   [_____210]
          //                        [876______]
            ((((int)in[21 + inPos]) <<  6) & 511);
      out[19 + outPos] =
          //                   [76543___]
          //               [____43210]
            ((((int)in[21 + inPos]) >>  3) & 31)
        | //                   [____3210]
          //                       [8765_____]
            ((((int)in[22 + inPos]) <<  5) & 511);
      out[20 + outPos] =
          //                   [7654____]
          //              [_____3210]
            ((((int)in[22 + inPos]) >>  4) & 15)
        | //                   [___43210]
          //                      [87654____]
            ((((int)in[23 + inPos]) <<  4) & 511);
      out[21 + outPos] =
          //                   [765_____]
          //             [______210]
            ((((int)in[23 + inPos]) >>  5) & 7)
        | //                   [__543210]
          //                     [876543___]
            ((((int)in[24 + inPos]) <<  3) & 511);
      out[22 + outPos] =
          //                   [76______]
          //            [_______10]
            ((((int)in[24 + inPos]) >>  6) & 3)
        | //                   [_6543210]
          //                    [8765432__]
            ((((int)in[25 + inPos]) <<  2) & 511);
      out[23 + outPos] =
          //                   [7_______]
          //           [________0]
            ((((int)in[25 + inPos]) >>  7) & 1)
        | //                   [76543210]
          //                   [87654321_]
            ((((int)in[26 + inPos]) <<  1) & 511);
      out[24 + outPos] =
          //                   [76543210]
          //                  [_76543210]
            ((((int)in[27 + inPos]) ) & 255)
        | //                   [_______0]
          //                          [8________]
            ((((int)in[28 + inPos]) <<  8) & 511);
      out[25 + outPos] =
          //                   [7654321_]
          //                 [__6543210]
            ((((int)in[28 + inPos]) >>  1) & 127)
        | //                   [______10]
          //                         [87_______]
            ((((int)in[29 + inPos]) <<  7) & 511);
      out[26 + outPos] =
          //                   [765432__]
          //                [___543210]
            ((((int)in[29 + inPos]) >>  2) & 63)
        | //                   [_____210]
          //                        [876______]
            ((((int)in[30 + inPos]) <<  6) & 511);
      out[27 + outPos] =
          //                   [76543___]
          //               [____43210]
            ((((int)in[30 + inPos]) >>  3) & 31)
        | //                   [____3210]
          //                       [8765_____]
            ((((int)in[31 + inPos]) <<  5) & 511);
      out[28 + outPos] =
          //                   [7654____]
          //              [_____3210]
            ((((int)in[31 + inPos]) >>  4) & 15)
        | //                   [___43210]
          //                      [87654____]
            ((((int)in[32 + inPos]) <<  4) & 511);
      out[29 + outPos] =
          //                   [765_____]
          //             [______210]
            ((((int)in[32 + inPos]) >>  5) & 7)
        | //                   [__543210]
          //                     [876543___]
            ((((int)in[33 + inPos]) <<  3) & 511);
      out[30 + outPos] =
          //                   [76______]
          //            [_______10]
            ((((int)in[33 + inPos]) >>  6) & 3)
        | //                   [_6543210]
          //                    [8765432__]
            ((((int)in[34 + inPos]) <<  2) & 511);
      out[31 + outPos] =
          //                   [7_______]
          //           [________0]
            ((((int)in[34 + inPos]) >>  7) & 1)
        | //                   [76543210]
          //                   [87654321_]
            ((((int)in[35 + inPos]) <<  1) & 511);
    }
    public final void unpack32Values(final ByteBuffer in, final int inPos, final int[] out, final int outPos) {
      out[ 0 + outPos] =
          //                   [76543210]
          //                  [_76543210]
            ((((int)in.get( 0 + inPos)) ) & 255)
        | //                   [_______0]
          //                          [8________]
            ((((int)in.get( 1 + inPos)) <<  8) & 511);
      out[ 1 + outPos] =
          //                   [7654321_]
          //                 [__6543210]
            ((((int)in.get( 1 + inPos)) >>  1) & 127)
        | //                   [______10]
          //                         [87_______]
            ((((int)in.get( 2 + inPos)) <<  7) & 511);
      out[ 2 + outPos] =
          //                   [765432__]
          //                [___543210]
            ((((int)in.get( 2 + inPos)) >>  2) & 63)
        | //                   [_____210]
          //                        [876______]
            ((((int)in.get( 3 + inPos)) <<  6) & 511);
      out[ 3 + outPos] =
          //                   [76543___]
          //               [____43210]
            ((((int)in.get( 3 + inPos)) >>  3) & 31)
        | //                   [____3210]
          //                       [8765_____]
            ((((int)in.get( 4 + inPos)) <<  5) & 511);
      out[ 4 + outPos] =
          //                   [7654____]
          //              [_____3210]
            ((((int)in.get( 4 + inPos)) >>  4) & 15)
        | //                   [___43210]
          //                      [87654____]
            ((((int)in.get( 5 + inPos)) <<  4) & 511);
      out[ 5 + outPos] =
          //                   [765_____]
          //             [______210]
            ((((int)in.get( 5 + inPos)) >>  5) & 7)
        | //                   [__543210]
          //                     [876543___]
            ((((int)in.get( 6 + inPos)) <<  3) & 511);
      out[ 6 + outPos] =
          //                   [76______]
          //            [_______10]
            ((((int)in.get( 6 + inPos)) >>  6) & 3)
        | //                   [_6543210]
          //                    [8765432__]
            ((((int)in.get( 7 + inPos)) <<  2) & 511);
      out[ 7 + outPos] =
          //                   [7_______]
          //           [________0]
            ((((int)in.get( 7 + inPos)) >>  7) & 1)
        | //                   [76543210]
          //                   [87654321_]
            ((((int)in.get( 8 + inPos)) <<  1) & 511);
      out[ 8 + outPos] =
          //                   [76543210]
          //                  [_76543210]
            ((((int)in.get( 9 + inPos)) ) & 255)
        | //                   [_______0]
          //                          [8________]
            ((((int)in.get(10 + inPos)) <<  8) & 511);
      out[ 9 + outPos] =
          //                   [7654321_]
          //                 [__6543210]
            ((((int)in.get(10 + inPos)) >>  1) & 127)
        | //                   [______10]
          //                         [87_______]
            ((((int)in.get(11 + inPos)) <<  7) & 511);
      out[10 + outPos] =
          //                   [765432__]
          //                [___543210]
            ((((int)in.get(11 + inPos)) >>  2) & 63)
        | //                   [_____210]
          //                        [876______]
            ((((int)in.get(12 + inPos)) <<  6) & 511);
      out[11 + outPos] =
          //                   [76543___]
          //               [____43210]
            ((((int)in.get(12 + inPos)) >>  3) & 31)
        | //                   [____3210]
          //                       [8765_____]
            ((((int)in.get(13 + inPos)) <<  5) & 511);
      out[12 + outPos] =
          //                   [7654____]
          //              [_____3210]
            ((((int)in.get(13 + inPos)) >>  4) & 15)
        | //                   [___43210]
          //                      [87654____]
            ((((int)in.get(14 + inPos)) <<  4) & 511);
      out[13 + outPos] =
          //                   [765_____]
          //             [______210]
            ((((int)in.get(14 + inPos)) >>  5) & 7)
        | //                   [__543210]
          //                     [876543___]
            ((((int)in.get(15 + inPos)) <<  3) & 511);
      out[14 + outPos] =
          //                   [76______]
          //            [_______10]
            ((((int)in.get(15 + inPos)) >>  6) & 3)
        | //                   [_6543210]
          //                    [8765432__]
            ((((int)in.get(16 + inPos)) <<  2) & 511);
      out[15 + outPos] =
          //                   [7_______]
          //           [________0]
            ((((int)in.get(16 + inPos)) >>  7) & 1)
        | //                   [76543210]
          //                   [87654321_]
            ((((int)in.get(17 + inPos)) <<  1) & 511);
      out[16 + outPos] =
          //                   [76543210]
          //                  [_76543210]
            ((((int)in.get(18 + inPos)) ) & 255)
        | //                   [_______0]
          //                          [8________]
            ((((int)in.get(19 + inPos)) <<  8) & 511);
      out[17 + outPos] =
          //                   [7654321_]
          //                 [__6543210]
            ((((int)in.get(19 + inPos)) >>  1) & 127)
        | //                   [______10]
          //                         [87_______]
            ((((int)in.get(20 + inPos)) <<  7) & 511);
      out[18 + outPos] =
          //                   [765432__]
          //                [___543210]
            ((((int)in.get(20 + inPos)) >>  2) & 63)
        | //                   [_____210]
          //                        [876______]
            ((((int)in.get(21 + inPos)) <<  6) & 511);
      out[19 + outPos] =
          //                   [76543___]
          //               [____43210]
            ((((int)in.get(21 + inPos)) >>  3) & 31)
        | //                   [____3210]
          //                       [8765_____]
            ((((int)in.get(22 + inPos)) <<  5) & 511);
      out[20 + outPos] =
          //                   [7654____]
          //              [_____3210]
            ((((int)in.get(22 + inPos)) >>  4) & 15)
        | //                   [___43210]
          //                      [87654____]
            ((((int)in.get(23 + inPos)) <<  4) & 511);
      out[21 + outPos] =
          //                   [765_____]
          //             [______210]
            ((((int)in.get(23 + inPos)) >>  5) & 7)
        | //                   [__543210]
          //                     [876543___]
            ((((int)in.get(24 + inPos)) <<  3) & 511);
      out[22 + outPos] =
          //                   [76______]
          //            [_______10]
            ((((int)in.get(24 + inPos)) >>  6) & 3)
        | //                   [_6543210]
          //                    [8765432__]
            ((((int)in.get(25 + inPos)) <<  2) & 511);
      out[23 + outPos] =
          //                   [7_______]
          //           [________0]
            ((((int)in.get(25 + inPos)) >>  7) & 1)
        | //                   [76543210]
          //                   [87654321_]
            ((((int)in.get(26 + inPos)) <<  1) & 511);
      out[24 + outPos] =
          //                   [76543210]
          //                  [_76543210]
            ((((int)in.get(27 + inPos)) ) & 255)
        | //                   [_______0]
          //                          [8________]
            ((((int)in.get(28 + inPos)) <<  8) & 511);
      out[25 + outPos] =
          //                   [7654321_]
          //                 [__6543210]
            ((((int)in.get(28 + inPos)) >>  1) & 127)
        | //                   [______10]
          //                         [87_______]
            ((((int)in.get(29 + inPos)) <<  7) & 511);
      out[26 + outPos] =
          //                   [765432__]
          //                [___543210]
            ((((int)in.get(29 + inPos)) >>  2) & 63)
        | //                   [_____210]
          //                        [876______]
            ((((int)in.get(30 + inPos)) <<  6) & 511);
      out[27 + outPos] =
          //                   [76543___]
          //               [____43210]
            ((((int)in.get(30 + inPos)) >>  3) & 31)
        | //                   [____3210]
          //                       [8765_____]
            ((((int)in.get(31 + inPos)) <<  5) & 511);
      out[28 + outPos] =
          //                   [7654____]
          //              [_____3210]
            ((((int)in.get(31 + inPos)) >>  4) & 15)
        | //                   [___43210]
          //                      [87654____]
            ((((int)in.get(32 + inPos)) <<  4) & 511);
      out[29 + outPos] =
          //                   [765_____]
          //             [______210]
            ((((int)in.get(32 + inPos)) >>  5) & 7)
        | //                   [__543210]
          //                     [876543___]
            ((((int)in.get(33 + inPos)) <<  3) & 511);
      out[30 + outPos] =
          //                   [76______]
          //            [_______10]
            ((((int)in.get(33 + inPos)) >>  6) & 3)
        | //                   [_6543210]
          //                    [8765432__]
            ((((int)in.get(34 + inPos)) <<  2) & 511);
      out[31 + outPos] =
          //                   [7_______]
          //           [________0]
            ((((int)in.get(34 + inPos)) >>  7) & 1)
        | //                   [76543210]
          //                   [87654321_]
            ((((int)in.get(35 + inPos)) <<  1) & 511);
    }
  }

  private static final class Packer10 extends BytePacker {

    private Packer10() {
      super(10);
    }

    public final void pack8Values(final int[] in, final int inPos, final byte[] out, final int outPos) {
      out[ 0 + outPos] = (byte)((
          //                    [76543210]
          //                  [__76543210]
           ((in[ 0 + inPos] & 1023))) & 255);
      out[ 1 + outPos] = (byte)((
          //                    [______10]
          //                          [98________]
           ((in[ 0 + inPos] & 1023) >>> 8)
        | //                    [765432__]
          //                [____543210]
           ((in[ 1 + inPos] & 1023) <<  2)) & 255);
      out[ 2 + outPos] = (byte)((
          //                    [____3210]
          //                        [9876______]
           ((in[ 1 + inPos] & 1023) >>> 6)
        | //                    [7654____]
          //              [______3210]
           ((in[ 2 + inPos] & 1023) <<  4)) & 255);
      out[ 3 + outPos] = (byte)((
          //                    [__543210]
          //                      [987654____]
           ((in[ 2 + inPos] & 1023) >>> 4)
        | //                    [76______]
          //            [________10]
           ((in[ 3 + inPos] & 1023) <<  6)) & 255);
      out[ 4 + outPos] = (byte)((
          //                    [76543210]
          //                    [98765432__]
           ((in[ 3 + inPos] & 1023) >>> 2)) & 255);
      out[ 5 + outPos] = (byte)((
          //                    [76543210]
          //                  [__76543210]
           ((in[ 4 + inPos] & 1023))) & 255);
      out[ 6 + outPos] = (byte)((
          //                    [______10]
          //                          [98________]
           ((in[ 4 + inPos] & 1023) >>> 8)
        | //                    [765432__]
          //                [____543210]
           ((in[ 5 + inPos] & 1023) <<  2)) & 255);
      out[ 7 + outPos] = (byte)((
          //                    [____3210]
          //                        [9876______]
           ((in[ 5 + inPos] & 1023) >>> 6)
        | //                    [7654____]
          //              [______3210]
           ((in[ 6 + inPos] & 1023) <<  4)) & 255);
      out[ 8 + outPos] = (byte)((
          //                    [__543210]
          //                      [987654____]
           ((in[ 6 + inPos] & 1023) >>> 4)
        | //                    [76______]
          //            [________10]
           ((in[ 7 + inPos] & 1023) <<  6)) & 255);
      out[ 9 + outPos] = (byte)((
          //                    [76543210]
          //                    [98765432__]
           ((in[ 7 + inPos] & 1023) >>> 2)) & 255);
    }
    public final void pack32Values(final int[] in, final int inPos, final byte[] out, final int outPos) {
      out[ 0 + outPos] = (byte)((
          //                    [76543210]
          //                  [__76543210]
           ((in[ 0 + inPos] & 1023))) & 255);
      out[ 1 + outPos] = (byte)((
          //                    [______10]
          //                          [98________]
           ((in[ 0 + inPos] & 1023) >>> 8)
        | //                    [765432__]
          //                [____543210]
           ((in[ 1 + inPos] & 1023) <<  2)) & 255);
      out[ 2 + outPos] = (byte)((
          //                    [____3210]
          //                        [9876______]
           ((in[ 1 + inPos] & 1023) >>> 6)
        | //                    [7654____]
          //              [______3210]
           ((in[ 2 + inPos] & 1023) <<  4)) & 255);
      out[ 3 + outPos] = (byte)((
          //                    [__543210]
          //                      [987654____]
           ((in[ 2 + inPos] & 1023) >>> 4)
        | //                    [76______]
          //            [________10]
           ((in[ 3 + inPos] & 1023) <<  6)) & 255);
      out[ 4 + outPos] = (byte)((
          //                    [76543210]
          //                    [98765432__]
           ((in[ 3 + inPos] & 1023) >>> 2)) & 255);
      out[ 5 + outPos] = (byte)((
          //                    [76543210]
          //                  [__76543210]
           ((in[ 4 + inPos] & 1023))) & 255);
      out[ 6 + outPos] = (byte)((
          //                    [______10]
          //                          [98________]
           ((in[ 4 + inPos] & 1023) >>> 8)
        | //                    [765432__]
          //                [____543210]
           ((in[ 5 + inPos] & 1023) <<  2)) & 255);
      out[ 7 + outPos] = (byte)((
          //                    [____3210]
          //                        [9876______]
           ((in[ 5 + inPos] & 1023) >>> 6)
        | //                    [7654____]
          //              [______3210]
           ((in[ 6 + inPos] & 1023) <<  4)) & 255);
      out[ 8 + outPos] = (byte)((
          //                    [__543210]
          //                      [987654____]
           ((in[ 6 + inPos] & 1023) >>> 4)
        | //                    [76______]
          //            [________10]
           ((in[ 7 + inPos] & 1023) <<  6)) & 255);
      out[ 9 + outPos] = (byte)((
          //                    [76543210]
          //                    [98765432__]
           ((in[ 7 + inPos] & 1023) >>> 2)) & 255);
      out[10 + outPos] = (byte)((
          //                    [76543210]
          //                  [__76543210]
           ((in[ 8 + inPos] & 1023))) & 255);
      out[11 + outPos] = (byte)((
          //                    [______10]
          //                          [98________]
           ((in[ 8 + inPos] & 1023) >>> 8)
        | //                    [765432__]
          //                [____543210]
           ((in[ 9 + inPos] & 1023) <<  2)) & 255);
      out[12 + outPos] = (byte)((
          //                    [____3210]
          //                        [9876______]
           ((in[ 9 + inPos] & 1023) >>> 6)
        | //                    [7654____]
          //              [______3210]
           ((in[10 + inPos] & 1023) <<  4)) & 255);
      out[13 + outPos] = (byte)((
          //                    [__543210]
          //                      [987654____]
           ((in[10 + inPos] & 1023) >>> 4)
        | //                    [76______]
          //            [________10]
           ((in[11 + inPos] & 1023) <<  6)) & 255);
      out[14 + outPos] = (byte)((
          //                    [76543210]
          //                    [98765432__]
           ((in[11 + inPos] & 1023) >>> 2)) & 255);
      out[15 + outPos] = (byte)((
          //                    [76543210]
          //                  [__76543210]
           ((in[12 + inPos] & 1023))) & 255);
      out[16 + outPos] = (byte)((
          //                    [______10]
          //                          [98________]
           ((in[12 + inPos] & 1023) >>> 8)
        | //                    [765432__]
          //                [____543210]
           ((in[13 + inPos] & 1023) <<  2)) & 255);
      out[17 + outPos] = (byte)((
          //                    [____3210]
          //                        [9876______]
           ((in[13 + inPos] & 1023) >>> 6)
        | //                    [7654____]
          //              [______3210]
           ((in[14 + inPos] & 1023) <<  4)) & 255);
      out[18 + outPos] = (byte)((
          //                    [__543210]
          //                      [987654____]
           ((in[14 + inPos] & 1023) >>> 4)
        | //                    [76______]
          //            [________10]
           ((in[15 + inPos] & 1023) <<  6)) & 255);
      out[19 + outPos] = (byte)((
          //                    [76543210]
          //                    [98765432__]
           ((in[15 + inPos] & 1023) >>> 2)) & 255);
      out[20 + outPos] = (byte)((
          //                    [76543210]
          //                  [__76543210]
           ((in[16 + inPos] & 1023))) & 255);
      out[21 + outPos] = (byte)((
          //                    [______10]
          //                          [98________]
           ((in[16 + inPos] & 1023) >>> 8)
        | //                    [765432__]
          //                [____543210]
           ((in[17 + inPos] & 1023) <<  2)) & 255);
      out[22 + outPos] = (byte)((
          //                    [____3210]
          //                        [9876______]
           ((in[17 + inPos] & 1023) >>> 6)
        | //                    [7654____]
          //              [______3210]
           ((in[18 + inPos] & 1023) <<  4)) & 255);
      out[23 + outPos] = (byte)((
          //                    [__543210]
          //                      [987654____]
           ((in[18 + inPos] & 1023) >>> 4)
        | //                    [76______]
          //            [________10]
           ((in[19 + inPos] & 1023) <<  6)) & 255);
      out[24 + outPos] = (byte)((
          //                    [76543210]
          //                    [98765432__]
           ((in[19 + inPos] & 1023) >>> 2)) & 255);
      out[25 + outPos] = (byte)((
          //                    [76543210]
          //                  [__76543210]
           ((in[20 + inPos] & 1023))) & 255);
      out[26 + outPos] = (byte)((
          //                    [______10]
          //                          [98________]
           ((in[20 + inPos] & 1023) >>> 8)
        | //                    [765432__]
          //                [____543210]
           ((in[21 + inPos] & 1023) <<  2)) & 255);
      out[27 + outPos] = (byte)((
          //                    [____3210]
          //                        [9876______]
           ((in[21 + inPos] & 1023) >>> 6)
        | //                    [7654____]
          //              [______3210]
           ((in[22 + inPos] & 1023) <<  4)) & 255);
      out[28 + outPos] = (byte)((
          //                    [__543210]
          //                      [987654____]
           ((in[22 + inPos] & 1023) >>> 4)
        | //                    [76______]
          //            [________10]
           ((in[23 + inPos] & 1023) <<  6)) & 255);
      out[29 + outPos] = (byte)((
          //                    [76543210]
          //                    [98765432__]
           ((in[23 + inPos] & 1023) >>> 2)) & 255);
      out[30 + outPos] = (byte)((
          //                    [76543210]
          //                  [__76543210]
           ((in[24 + inPos] & 1023))) & 255);
      out[31 + outPos] = (byte)((
          //                    [______10]
          //                          [98________]
           ((in[24 + inPos] & 1023) >>> 8)
        | //                    [765432__]
          //                [____543210]
           ((in[25 + inPos] & 1023) <<  2)) & 255);
      out[32 + outPos] = (byte)((
          //                    [____3210]
          //                        [9876______]
           ((in[25 + inPos] & 1023) >>> 6)
        | //                    [7654____]
          //              [______3210]
           ((in[26 + inPos] & 1023) <<  4)) & 255);
      out[33 + outPos] = (byte)((
          //                    [__543210]
          //                      [987654____]
           ((in[26 + inPos] & 1023) >>> 4)
        | //                    [76______]
          //            [________10]
           ((in[27 + inPos] & 1023) <<  6)) & 255);
      out[34 + outPos] = (byte)((
          //                    [76543210]
          //                    [98765432__]
           ((in[27 + inPos] & 1023) >>> 2)) & 255);
      out[35 + outPos] = (byte)((
          //                    [76543210]
          //                  [__76543210]
           ((in[28 + inPos] & 1023))) & 255);
      out[36 + outPos] = (byte)((
          //                    [______10]
          //                          [98________]
           ((in[28 + inPos] & 1023) >>> 8)
        | //                    [765432__]
          //                [____543210]
           ((in[29 + inPos] & 1023) <<  2)) & 255);
      out[37 + outPos] = (byte)((
          //                    [____3210]
          //                        [9876______]
           ((in[29 + inPos] & 1023) >>> 6)
        | //                    [7654____]
          //              [______3210]
           ((in[30 + inPos] & 1023) <<  4)) & 255);
      out[38 + outPos] = (byte)((
          //                    [__543210]
          //                      [987654____]
           ((in[30 + inPos] & 1023) >>> 4)
        | //                    [76______]
          //            [________10]
           ((in[31 + inPos] & 1023) <<  6)) & 255);
      out[39 + outPos] = (byte)((
          //                    [76543210]
          //                    [98765432__]
           ((in[31 + inPos] & 1023) >>> 2)) & 255);
    }
    public final void unpack8Values(final byte[] in, final int inPos, final int[] out, final int outPos) {
      out[ 0 + outPos] =
          //                    [76543210]
          //                  [__76543210]
            ((((int)in[ 0 + inPos]) ) & 255)
        | //                    [______10]
          //                          [98________]
            ((((int)in[ 1 + inPos]) <<  8) & 1023);
      out[ 1 + outPos] =
          //                    [765432__]
          //                [____543210]
            ((((int)in[ 1 + inPos]) >>  2) & 63)
        | //                    [____3210]
          //                        [9876______]
            ((((int)in[ 2 + inPos]) <<  6) & 1023);
      out[ 2 + outPos] =
          //                    [7654____]
          //              [______3210]
            ((((int)in[ 2 + inPos]) >>  4) & 15)
        | //                    [__543210]
          //                      [987654____]
            ((((int)in[ 3 + inPos]) <<  4) & 1023);
      out[ 3 + outPos] =
          //                    [76______]
          //            [________10]
            ((((int)in[ 3 + inPos]) >>  6) & 3)
        | //                    [76543210]
          //                    [98765432__]
            ((((int)in[ 4 + inPos]) <<  2) & 1023);
      out[ 4 + outPos] =
          //                    [76543210]
          //                  [__76543210]
            ((((int)in[ 5 + inPos]) ) & 255)
        | //                    [______10]
          //                          [98________]
            ((((int)in[ 6 + inPos]) <<  8) & 1023);
      out[ 5 + outPos] =
          //                    [765432__]
          //                [____543210]
            ((((int)in[ 6 + inPos]) >>  2) & 63)
        | //                    [____3210]
          //                        [9876______]
            ((((int)in[ 7 + inPos]) <<  6) & 1023);
      out[ 6 + outPos] =
          //                    [7654____]
          //              [______3210]
            ((((int)in[ 7 + inPos]) >>  4) & 15)
        | //                    [__543210]
          //                      [987654____]
            ((((int)in[ 8 + inPos]) <<  4) & 1023);
      out[ 7 + outPos] =
          //                    [76______]
          //            [________10]
            ((((int)in[ 8 + inPos]) >>  6) & 3)
        | //                    [76543210]
          //                    [98765432__]
            ((((int)in[ 9 + inPos]) <<  2) & 1023);
    }
    public final void unpack8Values(final ByteBuffer in, final int inPos, final int[] out, final int outPos) {
      out[ 0 + outPos] =
          //                    [76543210]
          //                  [__76543210]
            ((((int)in.get( 0 + inPos)) ) & 255)
        | //                    [______10]
          //                          [98________]
            ((((int)in.get( 1 + inPos)) <<  8) & 1023);
      out[ 1 + outPos] =
          //                    [765432__]
          //                [____543210]
            ((((int)in.get( 1 + inPos)) >>  2) & 63)
        | //                    [____3210]
          //                        [9876______]
            ((((int)in.get( 2 + inPos)) <<  6) & 1023);
      out[ 2 + outPos] =
          //                    [7654____]
          //              [______3210]
            ((((int)in.get( 2 + inPos)) >>  4) & 15)
        | //                    [__543210]
          //                      [987654____]
            ((((int)in.get( 3 + inPos)) <<  4) & 1023);
      out[ 3 + outPos] =
          //                    [76______]
          //            [________10]
            ((((int)in.get( 3 + inPos)) >>  6) & 3)
        | //                    [76543210]
          //                    [98765432__]
            ((((int)in.get( 4 + inPos)) <<  2) & 1023);
      out[ 4 + outPos] =
          //                    [76543210]
          //                  [__76543210]
            ((((int)in.get( 5 + inPos)) ) & 255)
        | //                    [______10]
          //                          [98________]
            ((((int)in.get( 6 + inPos)) <<  8) & 1023);
      out[ 5 + outPos] =
          //                    [765432__]
          //                [____543210]
            ((((int)in.get( 6 + inPos)) >>  2) & 63)
        | //                    [____3210]
          //                        [9876______]
            ((((int)in.get( 7 + inPos)) <<  6) & 1023);
      out[ 6 + outPos] =
          //                    [7654____]
          //              [______3210]
            ((((int)in.get( 7 + inPos)) >>  4) & 15)
        | //                    [__543210]
          //                      [987654____]
            ((((int)in.get( 8 + inPos)) <<  4) & 1023);
      out[ 7 + outPos] =
          //                    [76______]
          //            [________10]
            ((((int)in.get( 8 + inPos)) >>  6) & 3)
        | //                    [76543210]
          //                    [98765432__]
            ((((int)in.get( 9 + inPos)) <<  2) & 1023);
    }
    public final void unpack32Values(final byte[] in, final int inPos, final int[] out, final int outPos) {
      out[ 0 + outPos] =
          //                    [76543210]
          //                  [__76543210]
            ((((int)in[ 0 + inPos]) ) & 255)
        | //                    [______10]
          //                          [98________]
            ((((int)in[ 1 + inPos]) <<  8) & 1023);
      out[ 1 + outPos] =
          //                    [765432__]
          //                [____543210]
            ((((int)in[ 1 + inPos]) >>  2) & 63)
        | //                    [____3210]
          //                        [9876______]
            ((((int)in[ 2 + inPos]) <<  6) & 1023);
      out[ 2 + outPos] =
          //                    [7654____]
          //              [______3210]
            ((((int)in[ 2 + inPos]) >>  4) & 15)
        | //                    [__543210]
          //                      [987654____]
            ((((int)in[ 3 + inPos]) <<  4) & 1023);
      out[ 3 + outPos] =
          //                    [76______]
          //            [________10]
            ((((int)in[ 3 + inPos]) >>  6) & 3)
        | //                    [76543210]
          //                    [98765432__]
            ((((int)in[ 4 + inPos]) <<  2) & 1023);
      out[ 4 + outPos] =
          //                    [76543210]
          //                  [__76543210]
            ((((int)in[ 5 + inPos]) ) & 255)
        | //                    [______10]
          //                          [98________]
            ((((int)in[ 6 + inPos]) <<  8) & 1023);
      out[ 5 + outPos] =
          //                    [765432__]
          //                [____543210]
            ((((int)in[ 6 + inPos]) >>  2) & 63)
        | //                    [____3210]
          //                        [9876______]
            ((((int)in[ 7 + inPos]) <<  6) & 1023);
      out[ 6 + outPos] =
          //                    [7654____]
          //              [______3210]
            ((((int)in[ 7 + inPos]) >>  4) & 15)
        | //                    [__543210]
          //                      [987654____]
            ((((int)in[ 8 + inPos]) <<  4) & 1023);
      out[ 7 + outPos] =
          //                    [76______]
          //            [________10]
            ((((int)in[ 8 + inPos]) >>  6) & 3)
        | //                    [76543210]
          //                    [98765432__]
            ((((int)in[ 9 + inPos]) <<  2) & 1023);
      out[ 8 + outPos] =
          //                    [76543210]
          //                  [__76543210]
            ((((int)in[10 + inPos]) ) & 255)
        | //                    [______10]
          //                          [98________]
            ((((int)in[11 + inPos]) <<  8) & 1023);
      out[ 9 + outPos] =
          //                    [765432__]
          //                [____543210]
            ((((int)in[11 + inPos]) >>  2) & 63)
        | //                    [____3210]
          //                        [9876______]
            ((((int)in[12 + inPos]) <<  6) & 1023);
      out[10 + outPos] =
          //                    [7654____]
          //              [______3210]
            ((((int)in[12 + inPos]) >>  4) & 15)
        | //                    [__543210]
          //                      [987654____]
            ((((int)in[13 + inPos]) <<  4) & 1023);
      out[11 + outPos] =
          //                    [76______]
          //            [________10]
            ((((int)in[13 + inPos]) >>  6) & 3)
        | //                    [76543210]
          //                    [98765432__]
            ((((int)in[14 + inPos]) <<  2) & 1023);
      out[12 + outPos] =
          //                    [76543210]
          //                  [__76543210]
            ((((int)in[15 + inPos]) ) & 255)
        | //                    [______10]
          //                          [98________]
            ((((int)in[16 + inPos]) <<  8) & 1023);
      out[13 + outPos] =
          //                    [765432__]
          //                [____543210]
            ((((int)in[16 + inPos]) >>  2) & 63)
        | //                    [____3210]
          //                        [9876______]
            ((((int)in[17 + inPos]) <<  6) & 1023);
      out[14 + outPos] =
          //                    [7654____]
          //              [______3210]
            ((((int)in[17 + inPos]) >>  4) & 15)
        | //                    [__543210]
          //                      [987654____]
            ((((int)in[18 + inPos]) <<  4) & 1023);
      out[15 + outPos] =
          //                    [76______]
          //            [________10]
            ((((int)in[18 + inPos]) >>  6) & 3)
        | //                    [76543210]
          //                    [98765432__]
            ((((int)in[19 + inPos]) <<  2) & 1023);
      out[16 + outPos] =
          //                    [76543210]
          //                  [__76543210]
            ((((int)in[20 + inPos]) ) & 255)
        | //                    [______10]
          //                          [98________]
            ((((int)in[21 + inPos]) <<  8) & 1023);
      out[17 + outPos] =
          //                    [765432__]
          //                [____543210]
            ((((int)in[21 + inPos]) >>  2) & 63)
        | //                    [____3210]
          //                        [9876______]
            ((((int)in[22 + inPos]) <<  6) & 1023);
      out[18 + outPos] =
          //                    [7654____]
          //              [______3210]
            ((((int)in[22 + inPos]) >>  4) & 15)
        | //                    [__543210]
          //                      [987654____]
            ((((int)in[23 + inPos]) <<  4) & 1023);
      out[19 + outPos] =
          //                    [76______]
          //            [________10]
            ((((int)in[23 + inPos]) >>  6) & 3)
        | //                    [76543210]
          //                    [98765432__]
            ((((int)in[24 + inPos]) <<  2) & 1023);
      out[20 + outPos] =
          //                    [76543210]
          //                  [__76543210]
            ((((int)in[25 + inPos]) ) & 255)
        | //                    [______10]
          //                          [98________]
            ((((int)in[26 + inPos]) <<  8) & 1023);
      out[21 + outPos] =
          //                    [765432__]
          //                [____543210]
            ((((int)in[26 + inPos]) >>  2) & 63)
        | //                    [____3210]
          //                        [9876______]
            ((((int)in[27 + inPos]) <<  6) & 1023);
      out[22 + outPos] =
          //                    [7654____]
          //              [______3210]
            ((((int)in[27 + inPos]) >>  4) & 15)
        | //                    [__543210]
          //                      [987654____]
            ((((int)in[28 + inPos]) <<  4) & 1023);
      out[23 + outPos] =
          //                    [76______]
          //            [________10]
            ((((int)in[28 + inPos]) >>  6) & 3)
        | //                    [76543210]
          //                    [98765432__]
            ((((int)in[29 + inPos]) <<  2) & 1023);
      out[24 + outPos] =
          //                    [76543210]
          //                  [__76543210]
            ((((int)in[30 + inPos]) ) & 255)
        | //                    [______10]
          //                          [98________]
            ((((int)in[31 + inPos]) <<  8) & 1023);
      out[25 + outPos] =
          //                    [765432__]
          //                [____543210]
            ((((int)in[31 + inPos]) >>  2) & 63)
        | //                    [____3210]
          //                        [9876______]
            ((((int)in[32 + inPos]) <<  6) & 1023);
      out[26 + outPos] =
          //                    [7654____]
          //              [______3210]
            ((((int)in[32 + inPos]) >>  4) & 15)
        | //                    [__543210]
          //                      [987654____]
            ((((int)in[33 + inPos]) <<  4) & 1023);
      out[27 + outPos] =
          //                    [76______]
          //            [________10]
            ((((int)in[33 + inPos]) >>  6) & 3)
        | //                    [76543210]
          //                    [98765432__]
            ((((int)in[34 + inPos]) <<  2) & 1023);
      out[28 + outPos] =
          //                    [76543210]
          //                  [__76543210]
            ((((int)in[35 + inPos]) ) & 255)
        | //                    [______10]
          //                          [98________]
            ((((int)in[36 + inPos]) <<  8) & 1023);
      out[29 + outPos] =
          //                    [765432__]
          //                [____543210]
            ((((int)in[36 + inPos]) >>  2) & 63)
        | //                    [____3210]
          //                        [9876______]
            ((((int)in[37 + inPos]) <<  6) & 1023);
      out[30 + outPos] =
          //                    [7654____]
          //              [______3210]
            ((((int)in[37 + inPos]) >>  4) & 15)
        | //                    [__543210]
          //                      [987654____]
            ((((int)in[38 + inPos]) <<  4) & 1023);
      out[31 + outPos] =
          //                    [76______]
          //            [________10]
            ((((int)in[38 + inPos]) >>  6) & 3)
        | //                    [76543210]
          //                    [98765432__]
            ((((int)in[39 + inPos]) <<  2) & 1023);
    }
    public final void unpack32Values(final ByteBuffer in, final int inPos, final int[] out, final int outPos) {
      out[ 0 + outPos] =
          //                    [76543210]
          //                  [__76543210]
            ((((int)in.get( 0 + inPos)) ) & 255)
        | //                    [______10]
          //                          [98________]
            ((((int)in.get( 1 + inPos)) <<  8) & 1023);
      out[ 1 + outPos] =
          //                    [765432__]
          //                [____543210]
            ((((int)in.get( 1 + inPos)) >>  2) & 63)
        | //                    [____3210]
          //                        [9876______]
            ((((int)in.get( 2 + inPos)) <<  6) & 1023);
      out[ 2 + outPos] =
          //                    [7654____]
          //              [______3210]
            ((((int)in.get( 2 + inPos)) >>  4) & 15)
        | //                    [__543210]
          //                      [987654____]
            ((((int)in.get( 3 + inPos)) <<  4) & 1023);
      out[ 3 + outPos] =
          //                    [76______]
          //            [________10]
            ((((int)in.get( 3 + inPos)) >>  6) & 3)
        | //                    [76543210]
          //                    [98765432__]
            ((((int)in.get( 4 + inPos)) <<  2) & 1023);
      out[ 4 + outPos] =
          //                    [76543210]
          //                  [__76543210]
            ((((int)in.get( 5 + inPos)) ) & 255)
        | //                    [______10]
          //                          [98________]
            ((((int)in.get( 6 + inPos)) <<  8) & 1023);
      out[ 5 + outPos] =
          //                    [765432__]
          //                [____543210]
            ((((int)in.get( 6 + inPos)) >>  2) & 63)
        | //                    [____3210]
          //                        [9876______]
            ((((int)in.get( 7 + inPos)) <<  6) & 1023);
      out[ 6 + outPos] =
          //                    [7654____]
          //              [______3210]
            ((((int)in.get( 7 + inPos)) >>  4) & 15)
        | //                    [__543210]
          //                      [987654____]
            ((((int)in.get( 8 + inPos)) <<  4) & 1023);
      out[ 7 + outPos] =
          //                    [76______]
          //            [________10]
            ((((int)in.get( 8 + inPos)) >>  6) & 3)
        | //                    [76543210]
          //                    [98765432__]
            ((((int)in.get( 9 + inPos)) <<  2) & 1023);
      out[ 8 + outPos] =
          //                    [76543210]
          //                  [__76543210]
            ((((int)in.get(10 + inPos)) ) & 255)
        | //                    [______10]
          //                          [98________]
            ((((int)in.get(11 + inPos)) <<  8) & 1023);
      out[ 9 + outPos] =
          //                    [765432__]
          //                [____543210]
            ((((int)in.get(11 + inPos)) >>  2) & 63)
        | //                    [____3210]
          //                        [9876______]
            ((((int)in.get(12 + inPos)) <<  6) & 1023);
      out[10 + outPos] =
          //                    [7654____]
          //              [______3210]
            ((((int)in.get(12 + inPos)) >>  4) & 15)
        | //                    [__543210]
          //                      [987654____]
            ((((int)in.get(13 + inPos)) <<  4) & 1023);
      out[11 + outPos] =
          //                    [76______]
          //            [________10]
            ((((int)in.get(13 + inPos)) >>  6) & 3)
        | //                    [76543210]
          //                    [98765432__]
            ((((int)in.get(14 + inPos)) <<  2) & 1023);
      out[12 + outPos] =
          //                    [76543210]
          //                  [__76543210]
            ((((int)in.get(15 + inPos)) ) & 255)
        | //                    [______10]
          //                          [98________]
            ((((int)in.get(16 + inPos)) <<  8) & 1023);
      out[13 + outPos] =
          //                    [765432__]
          //                [____543210]
            ((((int)in.get(16 + inPos)) >>  2) & 63)
        | //                    [____3210]
          //                        [9876______]
            ((((int)in.get(17 + inPos)) <<  6) & 1023);
      out[14 + outPos] =
          //                    [7654____]
          //              [______3210]
            ((((int)in.get(17 + inPos)) >>  4) & 15)
        | //                    [__543210]
          //                      [987654____]
            ((((int)in.get(18 + inPos)) <<  4) & 1023);
      out[15 + outPos] =
          //                    [76______]
          //            [________10]
            ((((int)in.get(18 + inPos)) >>  6) & 3)
        | //                    [76543210]
          //                    [98765432__]
            ((((int)in.get(19 + inPos)) <<  2) & 1023);
      out[16 + outPos] =
          //                    [76543210]
          //                  [__76543210]
            ((((int)in.get(20 + inPos)) ) & 255)
        | //                    [______10]
          //                          [98________]
            ((((int)in.get(21 + inPos)) <<  8) & 1023);
      out[17 + outPos] =
          //                    [765432__]
          //                [____543210]
            ((((int)in.get(21 + inPos)) >>  2) & 63)
        | //                    [____3210]
          //                        [9876______]
            ((((int)in.get(22 + inPos)) <<  6) & 1023);
      out[18 + outPos] =
          //                    [7654____]
          //              [______3210]
            ((((int)in.get(22 + inPos)) >>  4) & 15)
        | //                    [__543210]
          //                      [987654____]
            ((((int)in.get(23 + inPos)) <<  4) & 1023);
      out[19 + outPos] =
          //                    [76______]
          //            [________10]
            ((((int)in.get(23 + inPos)) >>  6) & 3)
        | //                    [76543210]
          //                    [98765432__]
            ((((int)in.get(24 + inPos)) <<  2) & 1023);
      out[20 + outPos] =
          //                    [76543210]
          //                  [__76543210]
            ((((int)in.get(25 + inPos)) ) & 255)
        | //                    [______10]
          //                          [98________]
            ((((int)in.get(26 + inPos)) <<  8) & 1023);
      out[21 + outPos] =
          //                    [765432__]
          //                [____543210]
            ((((int)in.get(26 + inPos)) >>  2) & 63)
        | //                    [____3210]
          //                        [9876______]
            ((((int)in.get(27 + inPos)) <<  6) & 1023);
      out[22 + outPos] =
          //                    [7654____]
          //              [______3210]
            ((((int)in.get(27 + inPos)) >>  4) & 15)
        | //                    [__543210]
          //                      [987654____]
            ((((int)in.get(28 + inPos)) <<  4) & 1023);
      out[23 + outPos] =
          //                    [76______]
          //            [________10]
            ((((int)in.get(28 + inPos)) >>  6) & 3)
        | //                    [76543210]
          //                    [98765432__]
            ((((int)in.get(29 + inPos)) <<  2) & 1023);
      out[24 + outPos] =
          //                    [76543210]
          //                  [__76543210]
            ((((int)in.get(30 + inPos)) ) & 255)
        | //                    [______10]
          //                          [98________]
            ((((int)in.get(31 + inPos)) <<  8) & 1023);
      out[25 + outPos] =
          //                    [765432__]
          //                [____543210]
            ((((int)in.get(31 + inPos)) >>  2) & 63)
        | //                    [____3210]
          //                        [9876______]
            ((((int)in.get(32 + inPos)) <<  6) & 1023);
      out[26 + outPos] =
          //                    [7654____]
          //              [______3210]
            ((((int)in.get(32 + inPos)) >>  4) & 15)
        | //                    [__543210]
          //                      [987654____]
            ((((int)in.get(33 + inPos)) <<  4) & 1023);
      out[27 + outPos] =
          //                    [76______]
          //            [________10]
            ((((int)in.get(33 + inPos)) >>  6) & 3)
        | //                    [76543210]
          //                    [98765432__]
            ((((int)in.get(34 + inPos)) <<  2) & 1023);
      out[28 + outPos] =
          //                    [76543210]
          //                  [__76543210]
            ((((int)in.get(35 + inPos)) ) & 255)
        | //                    [______10]
          //                          [98________]
            ((((int)in.get(36 + inPos)) <<  8) & 1023);
      out[29 + outPos] =
          //                    [765432__]
          //                [____543210]
            ((((int)in.get(36 + inPos)) >>  2) & 63)
        | //                    [____3210]
          //                        [9876______]
            ((((int)in.get(37 + inPos)) <<  6) & 1023);
      out[30 + outPos] =
          //                    [7654____]
          //              [______3210]
            ((((int)in.get(37 + inPos)) >>  4) & 15)
        | //                    [__543210]
          //                      [987654____]
            ((((int)in.get(38 + inPos)) <<  4) & 1023);
      out[31 + outPos] =
          //                    [76______]
          //            [________10]
            ((((int)in.get(38 + inPos)) >>  6) & 3)
        | //                    [76543210]
          //                    [98765432__]
            ((((int)in.get(39 + inPos)) <<  2) & 1023);
    }
  }

  private static final class Packer11 extends BytePacker {

    private Packer11() {
      super(11);
    }

    public final void pack8Values(final int[] in, final int inPos, final byte[] out, final int outPos) {
      out[ 0 + outPos] = (byte)((
          //                     [76543210]
          //                  [___76543210]
           ((in[ 0 + inPos] & 2047))) & 255);
      out[ 1 + outPos] = (byte)((
          //                     [_____210]
          //                          [098________]
           ((in[ 0 + inPos] & 2047) >>> 8)
        | //                     [76543___]
          //               [______43210]
           ((in[ 1 + inPos] & 2047) <<  3)) & 255);
      out[ 2 + outPos] = (byte)((
          //                     [__543210]
          //                       [098765_____]
           ((in[ 1 + inPos] & 2047) >>> 5)
        | //                     [76______]
          //            [_________10]
           ((in[ 2 + inPos] & 2047) <<  6)) & 255);
      out[ 3 + outPos] = (byte)((
          //                     [76543210]
          //                    [_98765432__]
           ((in[ 2 + inPos] & 2047) >>> 2)) & 255);
      out[ 4 + outPos] = (byte)((
          //                     [_______0]
          //                            [0__________]
           ((in[ 2 + inPos] & 2047) >>> 10)
        | //                     [7654321_]
          //                 [____6543210]
           ((in[ 3 + inPos] & 2047) <<  1)) & 255);
      out[ 5 + outPos] = (byte)((
          //                     [____3210]
          //                         [0987_______]
           ((in[ 3 + inPos] & 2047) >>> 7)
        | //                     [7654____]
          //              [_______3210]
           ((in[ 4 + inPos] & 2047) <<  4)) & 255);
      out[ 6 + outPos] = (byte)((
          //                     [_6543210]
          //                      [0987654____]
           ((in[ 4 + inPos] & 2047) >>> 4)
        | //                     [7_______]
          //           [__________0]
           ((in[ 5 + inPos] & 2047) <<  7)) & 255);
      out[ 7 + outPos] = (byte)((
          //                     [76543210]
          //                   [__87654321_]
           ((in[ 5 + inPos] & 2047) >>> 1)) & 255);
      out[ 8 + outPos] = (byte)((
          //                     [______10]
          //                           [09_________]
           ((in[ 5 + inPos] & 2047) >>> 9)
        | //                     [765432__]
          //                [_____543210]
           ((in[ 6 + inPos] & 2047) <<  2)) & 255);
      out[ 9 + outPos] = (byte)((
          //                     [___43210]
          //                        [09876______]
           ((in[ 6 + inPos] & 2047) >>> 6)
        | //                     [765_____]
          //             [________210]
           ((in[ 7 + inPos] & 2047) <<  5)) & 255);
      out[10 + outPos] = (byte)((
          //                     [76543210]
          //                     [09876543___]
           ((in[ 7 + inPos] & 2047) >>> 3)) & 255);
    }
    public final void pack32Values(final int[] in, final int inPos, final byte[] out, final int outPos) {
      out[ 0 + outPos] = (byte)((
          //                     [76543210]
          //                  [___76543210]
           ((in[ 0 + inPos] & 2047))) & 255);
      out[ 1 + outPos] = (byte)((
          //                     [_____210]
          //                          [098________]
           ((in[ 0 + inPos] & 2047) >>> 8)
        | //                     [76543___]
          //               [______43210]
           ((in[ 1 + inPos] & 2047) <<  3)) & 255);
      out[ 2 + outPos] = (byte)((
          //                     [__543210]
          //                       [098765_____]
           ((in[ 1 + inPos] & 2047) >>> 5)
        | //                     [76______]
          //            [_________10]
           ((in[ 2 + inPos] & 2047) <<  6)) & 255);
      out[ 3 + outPos] = (byte)((
          //                     [76543210]
          //                    [_98765432__]
           ((in[ 2 + inPos] & 2047) >>> 2)) & 255);
      out[ 4 + outPos] = (byte)((
          //                     [_______0]
          //                            [0__________]
           ((in[ 2 + inPos] & 2047) >>> 10)
        | //                     [7654321_]
          //                 [____6543210]
           ((in[ 3 + inPos] & 2047) <<  1)) & 255);
      out[ 5 + outPos] = (byte)((
          //                     [____3210]
          //                         [0987_______]
           ((in[ 3 + inPos] & 2047) >>> 7)
        | //                     [7654____]
          //              [_______3210]
           ((in[ 4 + inPos] & 2047) <<  4)) & 255);
      out[ 6 + outPos] = (byte)((
          //                     [_6543210]
          //                      [0987654____]
           ((in[ 4 + inPos] & 2047) >>> 4)
        | //                     [7_______]
          //           [__________0]
           ((in[ 5 + inPos] & 2047) <<  7)) & 255);
      out[ 7 + outPos] = (byte)((
          //                     [76543210]
          //                   [__87654321_]
           ((in[ 5 + inPos] & 2047) >>> 1)) & 255);
      out[ 8 + outPos] = (byte)((
          //                     [______10]
          //                           [09_________]
           ((in[ 5 + inPos] & 2047) >>> 9)
        | //                     [765432__]
          //                [_____543210]
           ((in[ 6 + inPos] & 2047) <<  2)) & 255);
      out[ 9 + outPos] = (byte)((
          //                     [___43210]
          //                        [09876______]
           ((in[ 6 + inPos] & 2047) >>> 6)
        | //                     [765_____]
          //             [________210]
           ((in[ 7 + inPos] & 2047) <<  5)) & 255);
      out[10 + outPos] = (byte)((
          //                     [76543210]
          //                     [09876543___]
           ((in[ 7 + inPos] & 2047) >>> 3)) & 255);
      out[11 + outPos] = (byte)((
          //                     [76543210]
          //                  [___76543210]
           ((in[ 8 + inPos] & 2047))) & 255);
      out[12 + outPos] = (byte)((
          //                     [_____210]
          //                          [098________]
           ((in[ 8 + inPos] & 2047) >>> 8)
        | //                     [76543___]
          //               [______43210]
           ((in[ 9 + inPos] & 2047) <<  3)) & 255);
      out[13 + outPos] = (byte)((
          //                     [__543210]
          //                       [098765_____]
           ((in[ 9 + inPos] & 2047) >>> 5)
        | //                     [76______]
          //            [_________10]
           ((in[10 + inPos] & 2047) <<  6)) & 255);
      out[14 + outPos] = (byte)((
          //                     [76543210]
          //                    [_98765432__]
           ((in[10 + inPos] & 2047) >>> 2)) & 255);
      out[15 + outPos] = (byte)((
          //                     [_______0]
          //                            [0__________]
           ((in[10 + inPos] & 2047) >>> 10)
        | //                     [7654321_]
          //                 [____6543210]
           ((in[11 + inPos] & 2047) <<  1)) & 255);
      out[16 + outPos] = (byte)((
          //                     [____3210]
          //                         [0987_______]
           ((in[11 + inPos] & 2047) >>> 7)
        | //                     [7654____]
          //              [_______3210]
           ((in[12 + inPos] & 2047) <<  4)) & 255);
      out[17 + outPos] = (byte)((
          //                     [_6543210]
          //                      [0987654____]
           ((in[12 + inPos] & 2047) >>> 4)
        | //                     [7_______]
          //           [__________0]
           ((in[13 + inPos] & 2047) <<  7)) & 255);
      out[18 + outPos] = (byte)((
          //                     [76543210]
          //                   [__87654321_]
           ((in[13 + inPos] & 2047) >>> 1)) & 255);
      out[19 + outPos] = (byte)((
          //                     [______10]
          //                           [09_________]
           ((in[13 + inPos] & 2047) >>> 9)
        | //                     [765432__]
          //                [_____543210]
           ((in[14 + inPos] & 2047) <<  2)) & 255);
      out[20 + outPos] = (byte)((
          //                     [___43210]
          //                        [09876______]
           ((in[14 + inPos] & 2047) >>> 6)
        | //                     [765_____]
          //             [________210]
           ((in[15 + inPos] & 2047) <<  5)) & 255);
      out[21 + outPos] = (byte)((
          //                     [76543210]
          //                     [09876543___]
           ((in[15 + inPos] & 2047) >>> 3)) & 255);
      out[22 + outPos] = (byte)((
          //                     [76543210]
          //                  [___76543210]
           ((in[16 + inPos] & 2047))) & 255);
      out[23 + outPos] = (byte)((
          //                     [_____210]
          //                          [098________]
           ((in[16 + inPos] & 2047) >>> 8)
        | //                     [76543___]
          //               [______43210]
           ((in[17 + inPos] & 2047) <<  3)) & 255);
      out[24 + outPos] = (byte)((
          //                     [__543210]
          //                       [098765_____]
           ((in[17 + inPos] & 2047) >>> 5)
        | //                     [76______]
          //            [_________10]
           ((in[18 + inPos] & 2047) <<  6)) & 255);
      out[25 + outPos] = (byte)((
          //                     [76543210]
          //                    [_98765432__]
           ((in[18 + inPos] & 2047) >>> 2)) & 255);
      out[26 + outPos] = (byte)((
          //                     [_______0]
          //                            [0__________]
           ((in[18 + inPos] & 2047) >>> 10)
        | //                     [7654321_]
          //                 [____6543210]
           ((in[19 + inPos] & 2047) <<  1)) & 255);
      out[27 + outPos] = (byte)((
          //                     [____3210]
          //                         [0987_______]
           ((in[19 + inPos] & 2047) >>> 7)
        | //                     [7654____]
          //              [_______3210]
           ((in[20 + inPos] & 2047) <<  4)) & 255);
      out[28 + outPos] = (byte)((
          //                     [_6543210]
          //                      [0987654____]
           ((in[20 + inPos] & 2047) >>> 4)
        | //                     [7_______]
          //           [__________0]
           ((in[21 + inPos] & 2047) <<  7)) & 255);
      out[29 + outPos] = (byte)((
          //                     [76543210]
          //                   [__87654321_]
           ((in[21 + inPos] & 2047) >>> 1)) & 255);
      out[30 + outPos] = (byte)((
          //                     [______10]
          //                           [09_________]
           ((in[21 + inPos] & 2047) >>> 9)
        | //                     [765432__]
          //                [_____543210]
           ((in[22 + inPos] & 2047) <<  2)) & 255);
      out[31 + outPos] = (byte)((
          //                     [___43210]
          //                        [09876______]
           ((in[22 + inPos] & 2047) >>> 6)
        | //                     [765_____]
          //             [________210]
           ((in[23 + inPos] & 2047) <<  5)) & 255);
      out[32 + outPos] = (byte)((
          //                     [76543210]
          //                     [09876543___]
           ((in[23 + inPos] & 2047) >>> 3)) & 255);
      out[33 + outPos] = (byte)((
          //                     [76543210]
          //                  [___76543210]
           ((in[24 + inPos] & 2047))) & 255);
      out[34 + outPos] = (byte)((
          //                     [_____210]
          //                          [098________]
           ((in[24 + inPos] & 2047) >>> 8)
        | //                     [76543___]
          //               [______43210]
           ((in[25 + inPos] & 2047) <<  3)) & 255);
      out[35 + outPos] = (byte)((
          //                     [__543210]
          //                       [098765_____]
           ((in[25 + inPos] & 2047) >>> 5)
        | //                     [76______]
          //            [_________10]
           ((in[26 + inPos] & 2047) <<  6)) & 255);
      out[36 + outPos] = (byte)((
          //                     [76543210]
          //                    [_98765432__]
           ((in[26 + inPos] & 2047) >>> 2)) & 255);
      out[37 + outPos] = (byte)((
          //                     [_______0]
          //                            [0__________]
           ((in[26 + inPos] & 2047) >>> 10)
        | //                     [7654321_]
          //                 [____6543210]
           ((in[27 + inPos] & 2047) <<  1)) & 255);
      out[38 + outPos] = (byte)((
          //                     [____3210]
          //                         [0987_______]
           ((in[27 + inPos] & 2047) >>> 7)
        | //                     [7654____]
          //              [_______3210]
           ((in[28 + inPos] & 2047) <<  4)) & 255);
      out[39 + outPos] = (byte)((
          //                     [_6543210]
          //                      [0987654____]
           ((in[28 + inPos] & 2047) >>> 4)
        | //                     [7_______]
          //           [__________0]
           ((in[29 + inPos] & 2047) <<  7)) & 255);
      out[40 + outPos] = (byte)((
          //                     [76543210]
          //                   [__87654321_]
           ((in[29 + inPos] & 2047) >>> 1)) & 255);
      out[41 + outPos] = (byte)((
          //                     [______10]
          //                           [09_________]
           ((in[29 + inPos] & 2047) >>> 9)
        | //                     [765432__]
          //                [_____543210]
           ((in[30 + inPos] & 2047) <<  2)) & 255);
      out[42 + outPos] = (byte)((
          //                     [___43210]
          //                        [09876______]
           ((in[30 + inPos] & 2047) >>> 6)
        | //                     [765_____]
          //             [________210]
           ((in[31 + inPos] & 2047) <<  5)) & 255);
      out[43 + outPos] = (byte)((
          //                     [76543210]
          //                     [09876543___]
           ((in[31 + inPos] & 2047) >>> 3)) & 255);
    }
    public final void unpack8Values(final byte[] in, final int inPos, final int[] out, final int outPos) {
      out[ 0 + outPos] =
          //                     [76543210]
          //                  [___76543210]
            ((((int)in[ 0 + inPos]) ) & 255)
        | //                     [_____210]
          //                          [098________]
            ((((int)in[ 1 + inPos]) <<  8) & 2047);
      out[ 1 + outPos] =
          //                     [76543___]
          //               [______43210]
            ((((int)in[ 1 + inPos]) >>  3) & 31)
        | //                     [__543210]
          //                       [098765_____]
            ((((int)in[ 2 + inPos]) <<  5) & 2047);
      out[ 2 + outPos] =
          //                     [76______]
          //            [_________10]
            ((((int)in[ 2 + inPos]) >>  6) & 3)
        | //                     [76543210]
          //                    [_98765432__]
            ((((int)in[ 3 + inPos]) <<  2) & 1023)
        | //                     [_______0]
          //                            [0__________]
            ((((int)in[ 4 + inPos]) <<  10) & 2047);
      out[ 3 + outPos] =
          //                     [7654321_]
          //                 [____6543210]
            ((((int)in[ 4 + inPos]) >>  1) & 127)
        | //                     [____3210]
          //                         [0987_______]
            ((((int)in[ 5 + inPos]) <<  7) & 2047);
      out[ 4 + outPos] =
          //                     [7654____]
          //              [_______3210]
            ((((int)in[ 5 + inPos]) >>  4) & 15)
        | //                     [_6543210]
          //                      [0987654____]
            ((((int)in[ 6 + inPos]) <<  4) & 2047);
      out[ 5 + outPos] =
          //                     [7_______]
          //           [__________0]
            ((((int)in[ 6 + inPos]) >>  7) & 1)
        | //                     [76543210]
          //                   [__87654321_]
            ((((int)in[ 7 + inPos]) <<  1) & 511)
        | //                     [______10]
          //                           [09_________]
            ((((int)in[ 8 + inPos]) <<  9) & 2047);
      out[ 6 + outPos] =
          //                     [765432__]
          //                [_____543210]
            ((((int)in[ 8 + inPos]) >>  2) & 63)
        | //                     [___43210]
          //                        [09876______]
            ((((int)in[ 9 + inPos]) <<  6) & 2047);
      out[ 7 + outPos] =
          //                     [765_____]
          //             [________210]
            ((((int)in[ 9 + inPos]) >>  5) & 7)
        | //                     [76543210]
          //                     [09876543___]
            ((((int)in[10 + inPos]) <<  3) & 2047);
    }
    public final void unpack8Values(final ByteBuffer in, final int inPos, final int[] out, final int outPos) {
      out[ 0 + outPos] =
          //                     [76543210]
          //                  [___76543210]
            ((((int)in.get( 0 + inPos)) ) & 255)
        | //                     [_____210]
          //                          [098________]
            ((((int)in.get( 1 + inPos)) <<  8) & 2047);
      out[ 1 + outPos] =
          //                     [76543___]
          //               [______43210]
            ((((int)in.get( 1 + inPos)) >>  3) & 31)
        | //                     [__543210]
          //                       [098765_____]
            ((((int)in.get( 2 + inPos)) <<  5) & 2047);
      out[ 2 + outPos] =
          //                     [76______]
          //            [_________10]
            ((((int)in.get( 2 + inPos)) >>  6) & 3)
        | //                     [76543210]
          //                    [_98765432__]
            ((((int)in.get( 3 + inPos)) <<  2) & 1023)
        | //                     [_______0]
          //                            [0__________]
            ((((int)in.get( 4 + inPos)) <<  10) & 2047);
      out[ 3 + outPos] =
          //                     [7654321_]
          //                 [____6543210]
            ((((int)in.get( 4 + inPos)) >>  1) & 127)
        | //                     [____3210]
          //                         [0987_______]
            ((((int)in.get( 5 + inPos)) <<  7) & 2047);
      out[ 4 + outPos] =
          //                     [7654____]
          //              [_______3210]
            ((((int)in.get( 5 + inPos)) >>  4) & 15)
        | //                     [_6543210]
          //                      [0987654____]
            ((((int)in.get( 6 + inPos)) <<  4) & 2047);
      out[ 5 + outPos] =
          //                     [7_______]
          //           [__________0]
            ((((int)in.get( 6 + inPos)) >>  7) & 1)
        | //                     [76543210]
          //                   [__87654321_]
            ((((int)in.get( 7 + inPos)) <<  1) & 511)
        | //                     [______10]
          //                           [09_________]
            ((((int)in.get( 8 + inPos)) <<  9) & 2047);
      out[ 6 + outPos] =
          //                     [765432__]
          //                [_____543210]
            ((((int)in.get( 8 + inPos)) >>  2) & 63)
        | //                     [___43210]
          //                        [09876______]
            ((((int)in.get( 9 + inPos)) <<  6) & 2047);
      out[ 7 + outPos] =
          //                     [765_____]
          //             [________210]
            ((((int)in.get( 9 + inPos)) >>  5) & 7)
        | //                     [76543210]
          //                     [09876543___]
            ((((int)in.get(10 + inPos)) <<  3) & 2047);
    }
    public final void unpack32Values(final byte[] in, final int inPos, final int[] out, final int outPos) {
      out[ 0 + outPos] =
          //                     [76543210]
          //                  [___76543210]
            ((((int)in[ 0 + inPos]) ) & 255)
        | //                     [_____210]
          //                          [098________]
            ((((int)in[ 1 + inPos]) <<  8) & 2047);
      out[ 1 + outPos] =
          //                     [76543___]
          //               [______43210]
            ((((int)in[ 1 + inPos]) >>  3) & 31)
        | //                     [__543210]
          //                       [098765_____]
            ((((int)in[ 2 + inPos]) <<  5) & 2047);
      out[ 2 + outPos] =
          //                     [76______]
          //            [_________10]
            ((((int)in[ 2 + inPos]) >>  6) & 3)
        | //                     [76543210]
          //                    [_98765432__]
            ((((int)in[ 3 + inPos]) <<  2) & 1023)
        | //                     [_______0]
          //                            [0__________]
            ((((int)in[ 4 + inPos]) <<  10) & 2047);
      out[ 3 + outPos] =
          //                     [7654321_]
          //                 [____6543210]
            ((((int)in[ 4 + inPos]) >>  1) & 127)
        | //                     [____3210]
          //                         [0987_______]
            ((((int)in[ 5 + inPos]) <<  7) & 2047);
      out[ 4 + outPos] =
          //                     [7654____]
          //              [_______3210]
            ((((int)in[ 5 + inPos]) >>  4) & 15)
        | //                     [_6543210]
          //                      [0987654____]
            ((((int)in[ 6 + inPos]) <<  4) & 2047);
      out[ 5 + outPos] =
          //                     [7_______]
          //           [__________0]
            ((((int)in[ 6 + inPos]) >>  7) & 1)
        | //                     [76543210]
          //                   [__87654321_]
            ((((int)in[ 7 + inPos]) <<  1) & 511)
        | //                     [______10]
          //                           [09_________]
            ((((int)in[ 8 + inPos]) <<  9) & 2047);
      out[ 6 + outPos] =
          //                     [765432__]
          //                [_____543210]
            ((((int)in[ 8 + inPos]) >>  2) & 63)
        | //                     [___43210]
          //                        [09876______]
            ((((int)in[ 9 + inPos]) <<  6) & 2047);
      out[ 7 + outPos] =
          //                     [765_____]
          //             [________210]
            ((((int)in[ 9 + inPos]) >>  5) & 7)
        | //                     [76543210]
          //                     [09876543___]
            ((((int)in[10 + inPos]) <<  3) & 2047);
      out[ 8 + outPos] =
          //                     [76543210]
          //                  [___76543210]
            ((((int)in[11 + inPos]) ) & 255)
        | //                     [_____210]
          //                          [098________]
            ((((int)in[12 + inPos]) <<  8) & 2047);
      out[ 9 + outPos] =
          //                     [76543___]
          //               [______43210]
            ((((int)in[12 + inPos]) >>  3) & 31)
        | //                     [__543210]
          //                       [098765_____]
            ((((int)in[13 + inPos]) <<  5) & 2047);
      out[10 + outPos] =
          //                     [76______]
          //            [_________10]
            ((((int)in[13 + inPos]) >>  6) & 3)
        | //                     [76543210]
          //                    [_98765432__]
            ((((int)in[14 + inPos]) <<  2) & 1023)
        | //                     [_______0]
          //                            [0__________]
            ((((int)in[15 + inPos]) <<  10) & 2047);
      out[11 + outPos] =
          //                     [7654321_]
          //                 [____6543210]
            ((((int)in[15 + inPos]) >>  1) & 127)
        | //                     [____3210]
          //                         [0987_______]
            ((((int)in[16 + inPos]) <<  7) & 2047);
      out[12 + outPos] =
          //                     [7654____]
          //              [_______3210]
            ((((int)in[16 + inPos]) >>  4) & 15)
        | //                     [_6543210]
          //                      [0987654____]
            ((((int)in[17 + inPos]) <<  4) & 2047);
      out[13 + outPos] =
          //                     [7_______]
          //           [__________0]
            ((((int)in[17 + inPos]) >>  7) & 1)
        | //                     [76543210]
          //                   [__87654321_]
            ((((int)in[18 + inPos]) <<  1) & 511)
        | //                     [______10]
          //                           [09_________]
            ((((int)in[19 + inPos]) <<  9) & 2047);
      out[14 + outPos] =
          //                     [765432__]
          //                [_____543210]
            ((((int)in[19 + inPos]) >>  2) & 63)
        | //                     [___43210]
          //                        [09876______]
            ((((int)in[20 + inPos]) <<  6) & 2047);
      out[15 + outPos] =
          //                     [765_____]
          //             [________210]
            ((((int)in[20 + inPos]) >>  5) & 7)
        | //                     [76543210]
          //                     [09876543___]
            ((((int)in[21 + inPos]) <<  3) & 2047);
      out[16 + outPos] =
          //                     [76543210]
          //                  [___76543210]
            ((((int)in[22 + inPos]) ) & 255)
        | //                     [_____210]
          //                          [098________]
            ((((int)in[23 + inPos]) <<  8) & 2047);
      out[17 + outPos] =
          //                     [76543___]
          //               [______43210]
            ((((int)in[23 + inPos]) >>  3) & 31)
        | //                     [__543210]
          //                       [098765_____]
            ((((int)in[24 + inPos]) <<  5) & 2047);
      out[18 + outPos] =
          //                     [76______]
          //            [_________10]
            ((((int)in[24 + inPos]) >>  6) & 3)
        | //                     [76543210]
          //                    [_98765432__]
            ((((int)in[25 + inPos]) <<  2) & 1023)
        | //                     [_______0]
          //                            [0__________]
            ((((int)in[26 + inPos]) <<  10) & 2047);
      out[19 + outPos] =
          //                     [7654321_]
          //                 [____6543210]
            ((((int)in[26 + inPos]) >>  1) & 127)
        | //                     [____3210]
          //                         [0987_______]
            ((((int)in[27 + inPos]) <<  7) & 2047);
      out[20 + outPos] =
          //                     [7654____]
          //              [_______3210]
            ((((int)in[27 + inPos]) >>  4) & 15)
        | //                     [_6543210]
          //                      [0987654____]
            ((((int)in[28 + inPos]) <<  4) & 2047);
      out[21 + outPos] =
          //                     [7_______]
          //           [__________0]
            ((((int)in[28 + inPos]) >>  7) & 1)
        | //                     [76543210]
          //                   [__87654321_]
            ((((int)in[29 + inPos]) <<  1) & 511)
        | //                     [______10]
          //                           [09_________]
            ((((int)in[30 + inPos]) <<  9) & 2047);
      out[22 + outPos] =
          //                     [765432__]
          //                [_____543210]
            ((((int)in[30 + inPos]) >>  2) & 63)
        | //                     [___43210]
          //                        [09876______]
            ((((int)in[31 + inPos]) <<  6) & 2047);
      out[23 + outPos] =
          //                     [765_____]
          //             [________210]
            ((((int)in[31 + inPos]) >>  5) & 7)
        | //                     [76543210]
          //                     [09876543___]
            ((((int)in[32 + inPos]) <<  3) & 2047);
      out[24 + outPos] =
          //                     [76543210]
          //                  [___76543210]
            ((((int)in[33 + inPos]) ) & 255)
        | //                     [_____210]
          //                          [098________]
            ((((int)in[34 + inPos]) <<  8) & 2047);
      out[25 + outPos] =
          //                     [76543___]
          //               [______43210]
            ((((int)in[34 + inPos]) >>  3) & 31)
        | //                     [__543210]
          //                       [098765_____]
            ((((int)in[35 + inPos]) <<  5) & 2047);
      out[26 + outPos] =
          //                     [76______]
          //            [_________10]
            ((((int)in[35 + inPos]) >>  6) & 3)
        | //                     [76543210]
          //                    [_98765432__]
            ((((int)in[36 + inPos]) <<  2) & 1023)
        | //                     [_______0]
          //                            [0__________]
            ((((int)in[37 + inPos]) <<  10) & 2047);
      out[27 + outPos] =
          //                     [7654321_]
          //                 [____6543210]
            ((((int)in[37 + inPos]) >>  1) & 127)
        | //                     [____3210]
          //                         [0987_______]
            ((((int)in[38 + inPos]) <<  7) & 2047);
      out[28 + outPos] =
          //                     [7654____]
          //              [_______3210]
            ((((int)in[38 + inPos]) >>  4) & 15)
        | //                     [_6543210]
          //                      [0987654____]
            ((((int)in[39 + inPos]) <<  4) & 2047);
      out[29 + outPos] =
          //                     [7_______]
          //           [__________0]
            ((((int)in[39 + inPos]) >>  7) & 1)
        | //                     [76543210]
          //                   [__87654321_]
            ((((int)in[40 + inPos]) <<  1) & 511)
        | //                     [______10]
          //                           [09_________]
            ((((int)in[41 + inPos]) <<  9) & 2047);
      out[30 + outPos] =
          //                     [765432__]
          //                [_____543210]
            ((((int)in[41 + inPos]) >>  2) & 63)
        | //                     [___43210]
          //                        [09876______]
            ((((int)in[42 + inPos]) <<  6) & 2047);
      out[31 + outPos] =
          //                     [765_____]
          //             [________210]
            ((((int)in[42 + inPos]) >>  5) & 7)
        | //                     [76543210]
          //                     [09876543___]
            ((((int)in[43 + inPos]) <<  3) & 2047);
    }
    public final void unpack32Values(final ByteBuffer in, final int inPos, final int[] out, final int outPos) {
      out[ 0 + outPos] =
          //                     [76543210]
          //                  [___76543210]
            ((((int)in.get( 0 + inPos)) ) & 255)
        | //                     [_____210]
          //                          [098________]
            ((((int)in.get( 1 + inPos)) <<  8) & 2047);
      out[ 1 + outPos] =
          //                     [76543___]
          //               [______43210]
            ((((int)in.get( 1 + inPos)) >>  3) & 31)
        | //                     [__543210]
          //                       [098765_____]
            ((((int)in.get( 2 + inPos)) <<  5) & 2047);
      out[ 2 + outPos] =
          //                     [76______]
          //            [_________10]
            ((((int)in.get( 2 + inPos)) >>  6) & 3)
        | //                     [76543210]
          //                    [_98765432__]
            ((((int)in.get( 3 + inPos)) <<  2) & 1023)
        | //                     [_______0]
          //                            [0__________]
            ((((int)in.get( 4 + inPos)) <<  10) & 2047);
      out[ 3 + outPos] =
          //                     [7654321_]
          //                 [____6543210]
            ((((int)in.get( 4 + inPos)) >>  1) & 127)
        | //                     [____3210]
          //                         [0987_______]
            ((((int)in.get( 5 + inPos)) <<  7) & 2047);
      out[ 4 + outPos] =
          //                     [7654____]
          //              [_______3210]
            ((((int)in.get( 5 + inPos)) >>  4) & 15)
        | //                     [_6543210]
          //                      [0987654____]
            ((((int)in.get( 6 + inPos)) <<  4) & 2047);
      out[ 5 + outPos] =
          //                     [7_______]
          //           [__________0]
            ((((int)in.get( 6 + inPos)) >>  7) & 1)
        | //                     [76543210]
          //                   [__87654321_]
            ((((int)in.get( 7 + inPos)) <<  1) & 511)
        | //                     [______10]
          //                           [09_________]
            ((((int)in.get( 8 + inPos)) <<  9) & 2047);
      out[ 6 + outPos] =
          //                     [765432__]
          //                [_____543210]
            ((((int)in.get( 8 + inPos)) >>  2) & 63)
        | //                     [___43210]
          //                        [09876______]
            ((((int)in.get( 9 + inPos)) <<  6) & 2047);
      out[ 7 + outPos] =
          //                     [765_____]
          //             [________210]
            ((((int)in.get( 9 + inPos)) >>  5) & 7)
        | //                     [76543210]
          //                     [09876543___]
            ((((int)in.get(10 + inPos)) <<  3) & 2047);
      out[ 8 + outPos] =
          //                     [76543210]
          //                  [___76543210]
            ((((int)in.get(11 + inPos)) ) & 255)
        | //                     [_____210]
          //                          [098________]
            ((((int)in.get(12 + inPos)) <<  8) & 2047);
      out[ 9 + outPos] =
          //                     [76543___]
          //               [______43210]
            ((((int)in.get(12 + inPos)) >>  3) & 31)
        | //                     [__543210]
          //                       [098765_____]
            ((((int)in.get(13 + inPos)) <<  5) & 2047);
      out[10 + outPos] =
          //                     [76______]
          //            [_________10]
            ((((int)in.get(13 + inPos)) >>  6) & 3)
        | //                     [76543210]
          //                    [_98765432__]
            ((((int)in.get(14 + inPos)) <<  2) & 1023)
        | //                     [_______0]
          //                            [0__________]
            ((((int)in.get(15 + inPos)) <<  10) & 2047);
      out[11 + outPos] =
          //                     [7654321_]
          //                 [____6543210]
            ((((int)in.get(15 + inPos)) >>  1) & 127)
        | //                     [____3210]
          //                         [0987_______]
            ((((int)in.get(16 + inPos)) <<  7) & 2047);
      out[12 + outPos] =
          //                     [7654____]
          //              [_______3210]
            ((((int)in.get(16 + inPos)) >>  4) & 15)
        | //                     [_6543210]
          //                      [0987654____]
            ((((int)in.get(17 + inPos)) <<  4) & 2047);
      out[13 + outPos] =
          //                     [7_______]
          //           [__________0]
            ((((int)in.get(17 + inPos)) >>  7) & 1)
        | //                     [76543210]
          //                   [__87654321_]
            ((((int)in.get(18 + inPos)) <<  1) & 511)
        | //                     [______10]
          //                           [09_________]
            ((((int)in.get(19 + inPos)) <<  9) & 2047);
      out[14 + outPos] =
          //                     [765432__]
          //                [_____543210]
            ((((int)in.get(19 + inPos)) >>  2) & 63)
        | //                     [___43210]
          //                        [09876______]
            ((((int)in.get(20 + inPos)) <<  6) & 2047);
      out[15 + outPos] =
          //                     [765_____]
          //             [________210]
            ((((int)in.get(20 + inPos)) >>  5) & 7)
        | //                     [76543210]
          //                     [09876543___]
            ((((int)in.get(21 + inPos)) <<  3) & 2047);
      out[16 + outPos] =
          //                     [76543210]
          //                  [___76543210]
            ((((int)in.get(22 + inPos)) ) & 255)
        | //                     [_____210]
          //                          [098________]
            ((((int)in.get(23 + inPos)) <<  8) & 2047);
      out[17 + outPos] =
          //                     [76543___]
          //               [______43210]
            ((((int)in.get(23 + inPos)) >>  3) & 31)
        | //                     [__543210]
          //                       [098765_____]
            ((((int)in.get(24 + inPos)) <<  5) & 2047);
      out[18 + outPos] =
          //                     [76______]
          //            [_________10]
            ((((int)in.get(24 + inPos)) >>  6) & 3)
        | //                     [76543210]
          //                    [_98765432__]
            ((((int)in.get(25 + inPos)) <<  2) & 1023)
        | //                     [_______0]
          //                            [0__________]
            ((((int)in.get(26 + inPos)) <<  10) & 2047);
      out[19 + outPos] =
          //                     [7654321_]
          //                 [____6543210]
            ((((int)in.get(26 + inPos)) >>  1) & 127)
        | //                     [____3210]
          //                         [0987_______]
            ((((int)in.get(27 + inPos)) <<  7) & 2047);
      out[20 + outPos] =
          //                     [7654____]
          //              [_______3210]
            ((((int)in.get(27 + inPos)) >>  4) & 15)
        | //                     [_6543210]
          //                      [0987654____]
            ((((int)in.get(28 + inPos)) <<  4) & 2047);
      out[21 + outPos] =
          //                     [7_______]
          //           [__________0]
            ((((int)in.get(28 + inPos)) >>  7) & 1)
        | //                     [76543210]
          //                   [__87654321_]
            ((((int)in.get(29 + inPos)) <<  1) & 511)
        | //                     [______10]
          //                           [09_________]
            ((((int)in.get(30 + inPos)) <<  9) & 2047);
      out[22 + outPos] =
          //                     [765432__]
          //                [_____543210]
            ((((int)in.get(30 + inPos)) >>  2) & 63)
        | //                     [___43210]
          //                        [09876______]
            ((((int)in.get(31 + inPos)) <<  6) & 2047);
      out[23 + outPos] =
          //                     [765_____]
          //             [________210]
            ((((int)in.get(31 + inPos)) >>  5) & 7)
        | //                     [76543210]
          //                     [09876543___]
            ((((int)in.get(32 + inPos)) <<  3) & 2047);
      out[24 + outPos] =
          //                     [76543210]
          //                  [___76543210]
            ((((int)in.get(33 + inPos)) ) & 255)
        | //                     [_____210]
          //                          [098________]
            ((((int)in.get(34 + inPos)) <<  8) & 2047);
      out[25 + outPos] =
          //                     [76543___]
          //               [______43210]
            ((((int)in.get(34 + inPos)) >>  3) & 31)
        | //                     [__543210]
          //                       [098765_____]
            ((((int)in.get(35 + inPos)) <<  5) & 2047);
      out[26 + outPos] =
          //                     [76______]
          //            [_________10]
            ((((int)in.get(35 + inPos)) >>  6) & 3)
        | //                     [76543210]
          //                    [_98765432__]
            ((((int)in.get(36 + inPos)) <<  2) & 1023)
        | //                     [_______0]
          //                            [0__________]
            ((((int)in.get(37 + inPos)) <<  10) & 2047);
      out[27 + outPos] =
          //                     [7654321_]
          //                 [____6543210]
            ((((int)in.get(37 + inPos)) >>  1) & 127)
        | //                     [____3210]
          //                         [0987_______]
            ((((int)in.get(38 + inPos)) <<  7) & 2047);
      out[28 + outPos] =
          //                     [7654____]
          //              [_______3210]
            ((((int)in.get(38 + inPos)) >>  4) & 15)
        | //                     [_6543210]
          //                      [0987654____]
            ((((int)in.get(39 + inPos)) <<  4) & 2047);
      out[29 + outPos] =
          //                     [7_______]
          //           [__________0]
            ((((int)in.get(39 + inPos)) >>  7) & 1)
        | //                     [76543210]
          //                   [__87654321_]
            ((((int)in.get(40 + inPos)) <<  1) & 511)
        | //                     [______10]
          //                           [09_________]
            ((((int)in.get(41 + inPos)) <<  9) & 2047);
      out[30 + outPos] =
          //                     [765432__]
          //                [_____543210]
            ((((int)in.get(41 + inPos)) >>  2) & 63)
        | //                     [___43210]
          //                        [09876______]
            ((((int)in.get(42 + inPos)) <<  6) & 2047);
      out[31 + outPos] =
          //                     [765_____]
          //             [________210]
            ((((int)in.get(42 + inPos)) >>  5) & 7)
        | //                     [76543210]
          //                     [09876543___]
            ((((int)in.get(43 + inPos)) <<  3) & 2047);
    }
  }

  private static final class Packer12 extends BytePacker {

    private Packer12() {
      super(12);
    }

    public final void pack8Values(final int[] in, final int inPos, final byte[] out, final int outPos) {
      out[ 0 + outPos] = (byte)((
          //                      [76543210]
          //                  [____76543210]
           ((in[ 0 + inPos] & 4095))) & 255);
      out[ 1 + outPos] = (byte)((
          //                      [____3210]
          //                          [1098________]
           ((in[ 0 + inPos] & 4095) >>> 8)
        | //                      [7654____]
          //              [________3210]
           ((in[ 1 + inPos] & 4095) <<  4)) & 255);
      out[ 2 + outPos] = (byte)((
          //                      [76543210]
          //                      [10987654____]
           ((in[ 1 + inPos] & 4095) >>> 4)) & 255);
      out[ 3 + outPos] = (byte)((
          //                      [76543210]
          //                  [____76543210]
           ((in[ 2 + inPos] & 4095))) & 255);
      out[ 4 + outPos] = (byte)((
          //                      [____3210]
          //                          [1098________]
           ((in[ 2 + inPos] & 4095) >>> 8)
        | //                      [7654____]
          //              [________3210]
           ((in[ 3 + inPos] & 4095) <<  4)) & 255);
      out[ 5 + outPos] = (byte)((
          //                      [76543210]
          //                      [10987654____]
           ((in[ 3 + inPos] & 4095) >>> 4)) & 255);
      out[ 6 + outPos] = (byte)((
          //                      [76543210]
          //                  [____76543210]
           ((in[ 4 + inPos] & 4095))) & 255);
      out[ 7 + outPos] = (byte)((
          //                      [____3210]
          //                          [1098________]
           ((in[ 4 + inPos] & 4095) >>> 8)
        | //                      [7654____]
          //              [________3210]
           ((in[ 5 + inPos] & 4095) <<  4)) & 255);
      out[ 8 + outPos] = (byte)((
          //                      [76543210]
          //                      [10987654____]
           ((in[ 5 + inPos] & 4095) >>> 4)) & 255);
      out[ 9 + outPos] = (byte)((
          //                      [76543210]
          //                  [____76543210]
           ((in[ 6 + inPos] & 4095))) & 255);
      out[10 + outPos] = (byte)((
          //                      [____3210]
          //                          [1098________]
           ((in[ 6 + inPos] & 4095) >>> 8)
        | //                      [7654____]
          //              [________3210]
           ((in[ 7 + inPos] & 4095) <<  4)) & 255);
      out[11 + outPos] = (byte)((
          //                      [76543210]
          //                      [10987654____]
           ((in[ 7 + inPos] & 4095) >>> 4)) & 255);
    }
    public final void pack32Values(final int[] in, final int inPos, final byte[] out, final int outPos) {
      out[ 0 + outPos] = (byte)((
          //                      [76543210]
          //                  [____76543210]
           ((in[ 0 + inPos] & 4095))) & 255);
      out[ 1 + outPos] = (byte)((
          //                      [____3210]
          //                          [1098________]
           ((in[ 0 + inPos] & 4095) >>> 8)
        | //                      [7654____]
          //              [________3210]
           ((in[ 1 + inPos] & 4095) <<  4)) & 255);
      out[ 2 + outPos] = (byte)((
          //                      [76543210]
          //                      [10987654____]
           ((in[ 1 + inPos] & 4095) >>> 4)) & 255);
      out[ 3 + outPos] = (byte)((
          //                      [76543210]
          //                  [____76543210]
           ((in[ 2 + inPos] & 4095))) & 255);
      out[ 4 + outPos] = (byte)((
          //                      [____3210]
          //                          [1098________]
           ((in[ 2 + inPos] & 4095) >>> 8)
        | //                      [7654____]
          //              [________3210]
           ((in[ 3 + inPos] & 4095) <<  4)) & 255);
      out[ 5 + outPos] = (byte)((
          //                      [76543210]
          //                      [10987654____]
           ((in[ 3 + inPos] & 4095) >>> 4)) & 255);
      out[ 6 + outPos] = (byte)((
          //                      [76543210]
          //                  [____76543210]
           ((in[ 4 + inPos] & 4095))) & 255);
      out[ 7 + outPos] = (byte)((
          //                      [____3210]
          //                          [1098________]
           ((in[ 4 + inPos] & 4095) >>> 8)
        | //                      [7654____]
          //              [________3210]
           ((in[ 5 + inPos] & 4095) <<  4)) & 255);
      out[ 8 + outPos] = (byte)((
          //                      [76543210]
          //                      [10987654____]
           ((in[ 5 + inPos] & 4095) >>> 4)) & 255);
      out[ 9 + outPos] = (byte)((
          //                      [76543210]
          //                  [____76543210]
           ((in[ 6 + inPos] & 4095))) & 255);
      out[10 + outPos] = (byte)((
          //                      [____3210]
          //                          [1098________]
           ((in[ 6 + inPos] & 4095) >>> 8)
        | //                      [7654____]
          //              [________3210]
           ((in[ 7 + inPos] & 4095) <<  4)) & 255);
      out[11 + outPos] = (byte)((
          //                      [76543210]
          //                      [10987654____]
           ((in[ 7 + inPos] & 4095) >>> 4)) & 255);
      out[12 + outPos] = (byte)((
          //                      [76543210]
          //                  [____76543210]
           ((in[ 8 + inPos] & 4095))) & 255);
      out[13 + outPos] = (byte)((
          //                      [____3210]
          //                          [1098________]
           ((in[ 8 + inPos] & 4095) >>> 8)
        | //                      [7654____]
          //              [________3210]
           ((in[ 9 + inPos] & 4095) <<  4)) & 255);
      out[14 + outPos] = (byte)((
          //                      [76543210]
          //                      [10987654____]
           ((in[ 9 + inPos] & 4095) >>> 4)) & 255);
      out[15 + outPos] = (byte)((
          //                      [76543210]
          //                  [____76543210]
           ((in[10 + inPos] & 4095))) & 255);
      out[16 + outPos] = (byte)((
          //                      [____3210]
          //                          [1098________]
           ((in[10 + inPos] & 4095) >>> 8)
        | //                      [7654____]
          //              [________3210]
           ((in[11 + inPos] & 4095) <<  4)) & 255);
      out[17 + outPos] = (byte)((
          //                      [76543210]
          //                      [10987654____]
           ((in[11 + inPos] & 4095) >>> 4)) & 255);
      out[18 + outPos] = (byte)((
          //                      [76543210]
          //                  [____76543210]
           ((in[12 + inPos] & 4095))) & 255);
      out[19 + outPos] = (byte)((
          //                      [____3210]
          //                          [1098________]
           ((in[12 + inPos] & 4095) >>> 8)
        | //                      [7654____]
          //              [________3210]
           ((in[13 + inPos] & 4095) <<  4)) & 255);
      out[20 + outPos] = (byte)((
          //                      [76543210]
          //                      [10987654____]
           ((in[13 + inPos] & 4095) >>> 4)) & 255);
      out[21 + outPos] = (byte)((
          //                      [76543210]
          //                  [____76543210]
           ((in[14 + inPos] & 4095))) & 255);
      out[22 + outPos] = (byte)((
          //                      [____3210]
          //                          [1098________]
           ((in[14 + inPos] & 4095) >>> 8)
        | //                      [7654____]
          //              [________3210]
           ((in[15 + inPos] & 4095) <<  4)) & 255);
      out[23 + outPos] = (byte)((
          //                      [76543210]
          //                      [10987654____]
           ((in[15 + inPos] & 4095) >>> 4)) & 255);
      out[24 + outPos] = (byte)((
          //                      [76543210]
          //                  [____76543210]
           ((in[16 + inPos] & 4095))) & 255);
      out[25 + outPos] = (byte)((
          //                      [____3210]
          //                          [1098________]
           ((in[16 + inPos] & 4095) >>> 8)
        | //                      [7654____]
          //              [________3210]
           ((in[17 + inPos] & 4095) <<  4)) & 255);
      out[26 + outPos] = (byte)((
          //                      [76543210]
          //                      [10987654____]
           ((in[17 + inPos] & 4095) >>> 4)) & 255);
      out[27 + outPos] = (byte)((
          //                      [76543210]
          //                  [____76543210]
           ((in[18 + inPos] & 4095))) & 255);
      out[28 + outPos] = (byte)((
          //                      [____3210]
          //                          [1098________]
           ((in[18 + inPos] & 4095) >>> 8)
        | //                      [7654____]
          //              [________3210]
           ((in[19 + inPos] & 4095) <<  4)) & 255);
      out[29 + outPos] = (byte)((
          //                      [76543210]
          //                      [10987654____]
           ((in[19 + inPos] & 4095) >>> 4)) & 255);
      out[30 + outPos] = (byte)((
          //                      [76543210]
          //                  [____76543210]
           ((in[20 + inPos] & 4095))) & 255);
      out[31 + outPos] = (byte)((
          //                      [____3210]
          //                          [1098________]
           ((in[20 + inPos] & 4095) >>> 8)
        | //                      [7654____]
          //              [________3210]
           ((in[21 + inPos] & 4095) <<  4)) & 255);
      out[32 + outPos] = (byte)((
          //                      [76543210]
          //                      [10987654____]
           ((in[21 + inPos] & 4095) >>> 4)) & 255);
      out[33 + outPos] = (byte)((
          //                      [76543210]
          //                  [____76543210]
           ((in[22 + inPos] & 4095))) & 255);
      out[34 + outPos] = (byte)((
          //                      [____3210]
          //                          [1098________]
           ((in[22 + inPos] & 4095) >>> 8)
        | //                      [7654____]
          //              [________3210]
           ((in[23 + inPos] & 4095) <<  4)) & 255);
      out[35 + outPos] = (byte)((
          //                      [76543210]
          //                      [10987654____]
           ((in[23 + inPos] & 4095) >>> 4)) & 255);
      out[36 + outPos] = (byte)((
          //                      [76543210]
          //                  [____76543210]
           ((in[24 + inPos] & 4095))) & 255);
      out[37 + outPos] = (byte)((
          //                      [____3210]
          //                          [1098________]
           ((in[24 + inPos] & 4095) >>> 8)
        | //                      [7654____]
          //              [________3210]
           ((in[25 + inPos] & 4095) <<  4)) & 255);
      out[38 + outPos] = (byte)((
          //                      [76543210]
          //                      [10987654____]
           ((in[25 + inPos] & 4095) >>> 4)) & 255);
      out[39 + outPos] = (byte)((
          //                      [76543210]
          //                  [____76543210]
           ((in[26 + inPos] & 4095))) & 255);
      out[40 + outPos] = (byte)((
          //                      [____3210]
          //                          [1098________]
           ((in[26 + inPos] & 4095) >>> 8)
        | //                      [7654____]
          //              [________3210]
           ((in[27 + inPos] & 4095) <<  4)) & 255);
      out[41 + outPos] = (byte)((
          //                      [76543210]
          //                      [10987654____]
           ((in[27 + inPos] & 4095) >>> 4)) & 255);
      out[42 + outPos] = (byte)((
          //                      [76543210]
          //                  [____76543210]
           ((in[28 + inPos] & 4095))) & 255);
      out[43 + outPos] = (byte)((
          //                      [____3210]
          //                          [1098________]
           ((in[28 + inPos] & 4095) >>> 8)
        | //                      [7654____]
          //              [________3210]
           ((in[29 + inPos] & 4095) <<  4)) & 255);
      out[44 + outPos] = (byte)((
          //                      [76543210]
          //                      [10987654____]
           ((in[29 + inPos] & 4095) >>> 4)) & 255);
      out[45 + outPos] = (byte)((
          //                      [76543210]
          //                  [____76543210]
           ((in[30 + inPos] & 4095))) & 255);
      out[46 + outPos] = (byte)((
          //                      [____3210]
          //                          [1098________]
           ((in[30 + inPos] & 4095) >>> 8)
        | //                      [7654____]
          //              [________3210]
           ((in[31 + inPos] & 4095) <<  4)) & 255);
      out[47 + outPos] = (byte)((
          //                      [76543210]
          //                      [10987654____]
           ((in[31 + inPos] & 4095) >>> 4)) & 255);
    }
    public final void unpack8Values(final byte[] in, final int inPos, final int[] out, final int outPos) {
      out[ 0 + outPos] =
          //                      [76543210]
          //                  [____76543210]
            ((((int)in[ 0 + inPos]) ) & 255)
        | //                      [____3210]
          //                          [1098________]
            ((((int)in[ 1 + inPos]) <<  8) & 4095);
      out[ 1 + outPos] =
          //                      [7654____]
          //              [________3210]
            ((((int)in[ 1 + inPos]) >>  4) & 15)
        | //                      [76543210]
          //                      [10987654____]
            ((((int)in[ 2 + inPos]) <<  4) & 4095);
      out[ 2 + outPos] =
          //                      [76543210]
          //                  [____76543210]
            ((((int)in[ 3 + inPos]) ) & 255)
        | //                      [____3210]
          //                          [1098________]
            ((((int)in[ 4 + inPos]) <<  8) & 4095);
      out[ 3 + outPos] =
          //                      [7654____]
          //              [________3210]
            ((((int)in[ 4 + inPos]) >>  4) & 15)
        | //                      [76543210]
          //                      [10987654____]
            ((((int)in[ 5 + inPos]) <<  4) & 4095);
      out[ 4 + outPos] =
          //                      [76543210]
          //                  [____76543210]
            ((((int)in[ 6 + inPos]) ) & 255)
        | //                      [____3210]
          //                          [1098________]
            ((((int)in[ 7 + inPos]) <<  8) & 4095);
      out[ 5 + outPos] =
          //                      [7654____]
          //              [________3210]
            ((((int)in[ 7 + inPos]) >>  4) & 15)
        | //                      [76543210]
          //                      [10987654____]
            ((((int)in[ 8 + inPos]) <<  4) & 4095);
      out[ 6 + outPos] =
          //                      [76543210]
          //                  [____76543210]
            ((((int)in[ 9 + inPos]) ) & 255)
        | //                      [____3210]
          //                          [1098________]
            ((((int)in[10 + inPos]) <<  8) & 4095);
      out[ 7 + outPos] =
          //                      [7654____]
          //              [________3210]
            ((((int)in[10 + inPos]) >>  4) & 15)
        | //                      [76543210]
          //                      [10987654____]
            ((((int)in[11 + inPos]) <<  4) & 4095);
    }
    public final void unpack8Values(final ByteBuffer in, final int inPos, final int[] out, final int outPos) {
      out[ 0 + outPos] =
          //                      [76543210]
          //                  [____76543210]
            ((((int)in.get( 0 + inPos)) ) & 255)
        | //                      [____3210]
          //                          [1098________]
            ((((int)in.get( 1 + inPos)) <<  8) & 4095);
      out[ 1 + outPos] =
          //                      [7654____]
          //              [________3210]
            ((((int)in.get( 1 + inPos)) >>  4) & 15)
        | //                      [76543210]
          //                      [10987654____]
            ((((int)in.get( 2 + inPos)) <<  4) & 4095);
      out[ 2 + outPos] =
          //                      [76543210]
          //                  [____76543210]
            ((((int)in.get( 3 + inPos)) ) & 255)
        | //                      [____3210]
          //                          [1098________]
            ((((int)in.get( 4 + inPos)) <<  8) & 4095);
      out[ 3 + outPos] =
          //                      [7654____]
          //              [________3210]
            ((((int)in.get( 4 + inPos)) >>  4) & 15)
        | //                      [76543210]
          //                      [10987654____]
            ((((int)in.get( 5 + inPos)) <<  4) & 4095);
      out[ 4 + outPos] =
          //                      [76543210]
          //                  [____76543210]
            ((((int)in.get( 6 + inPos)) ) & 255)
        | //                      [____3210]
          //                          [1098________]
            ((((int)in.get( 7 + inPos)) <<  8) & 4095);
      out[ 5 + outPos] =
          //                      [7654____]
          //              [________3210]
            ((((int)in.get( 7 + inPos)) >>  4) & 15)
        | //                      [76543210]
          //                      [10987654____]
            ((((int)in.get( 8 + inPos)) <<  4) & 4095);
      out[ 6 + outPos] =
          //                      [76543210]
          //                  [____76543210]
            ((((int)in.get( 9 + inPos)) ) & 255)
        | //                      [____3210]
          //                          [1098________]
            ((((int)in.get(10 + inPos)) <<  8) & 4095);
      out[ 7 + outPos] =
          //                      [7654____]
          //              [________3210]
            ((((int)in.get(10 + inPos)) >>  4) & 15)
        | //                      [76543210]
          //                      [10987654____]
            ((((int)in.get(11 + inPos)) <<  4) & 4095);
    }
    public final void unpack32Values(final byte[] in, final int inPos, final int[] out, final int outPos) {
      out[ 0 + outPos] =
          //                      [76543210]
          //                  [____76543210]
            ((((int)in[ 0 + inPos]) ) & 255)
        | //                      [____3210]
          //                          [1098________]
            ((((int)in[ 1 + inPos]) <<  8) & 4095);
      out[ 1 + outPos] =
          //                      [7654____]
          //              [________3210]
            ((((int)in[ 1 + inPos]) >>  4) & 15)
        | //                      [76543210]
          //                      [10987654____]
            ((((int)in[ 2 + inPos]) <<  4) & 4095);
      out[ 2 + outPos] =
          //                      [76543210]
          //                  [____76543210]
            ((((int)in[ 3 + inPos]) ) & 255)
        | //                      [____3210]
          //                          [1098________]
            ((((int)in[ 4 + inPos]) <<  8) & 4095);
      out[ 3 + outPos] =
          //                      [7654____]
          //              [________3210]
            ((((int)in[ 4 + inPos]) >>  4) & 15)
        | //                      [76543210]
          //                      [10987654____]
            ((((int)in[ 5 + inPos]) <<  4) & 4095);
      out[ 4 + outPos] =
          //                      [76543210]
          //                  [____76543210]
            ((((int)in[ 6 + inPos]) ) & 255)
        | //                      [____3210]
          //                          [1098________]
            ((((int)in[ 7 + inPos]) <<  8) & 4095);
      out[ 5 + outPos] =
          //                      [7654____]
          //              [________3210]
            ((((int)in[ 7 + inPos]) >>  4) & 15)
        | //                      [76543210]
          //                      [10987654____]
            ((((int)in[ 8 + inPos]) <<  4) & 4095);
      out[ 6 + outPos] =
          //                      [76543210]
          //                  [____76543210]
            ((((int)in[ 9 + inPos]) ) & 255)
        | //                      [____3210]
          //                          [1098________]
            ((((int)in[10 + inPos]) <<  8) & 4095);
      out[ 7 + outPos] =
          //                      [7654____]
          //              [________3210]
            ((((int)in[10 + inPos]) >>  4) & 15)
        | //                      [76543210]
          //                      [10987654____]
            ((((int)in[11 + inPos]) <<  4) & 4095);
      out[ 8 + outPos] =
          //                      [76543210]
          //                  [____76543210]
            ((((int)in[12 + inPos]) ) & 255)
        | //                      [____3210]
          //                          [1098________]
            ((((int)in[13 + inPos]) <<  8) & 4095);
      out[ 9 + outPos] =
          //                      [7654____]
          //              [________3210]
            ((((int)in[13 + inPos]) >>  4) & 15)
        | //                      [76543210]
          //                      [10987654____]
            ((((int)in[14 + inPos]) <<  4) & 4095);
      out[10 + outPos] =
          //                      [76543210]
          //                  [____76543210]
            ((((int)in[15 + inPos]) ) & 255)
        | //                      [____3210]
          //                          [1098________]
            ((((int)in[16 + inPos]) <<  8) & 4095);
      out[11 + outPos] =
          //                      [7654____]
          //              [________3210]
            ((((int)in[16 + inPos]) >>  4) & 15)
        | //                      [76543210]
          //                      [10987654____]
            ((((int)in[17 + inPos]) <<  4) & 4095);
      out[12 + outPos] =
          //                      [76543210]
          //                  [____76543210]
            ((((int)in[18 + inPos]) ) & 255)
        | //                      [____3210]
          //                          [1098________]
            ((((int)in[19 + inPos]) <<  8) & 4095);
      out[13 + outPos] =
          //                      [7654____]
          //              [________3210]
            ((((int)in[19 + inPos]) >>  4) & 15)
        | //                      [76543210]
          //                      [10987654____]
            ((((int)in[20 + inPos]) <<  4) & 4095);
      out[14 + outPos] =
          //                      [76543210]
          //                  [____76543210]
            ((((int)in[21 + inPos]) ) & 255)
        | //                      [____3210]
          //                          [1098________]
            ((((int)in[22 + inPos]) <<  8) & 4095);
      out[15 + outPos] =
          //                      [7654____]
          //              [________3210]
            ((((int)in[22 + inPos]) >>  4) & 15)
        | //                      [76543210]
          //                      [10987654____]
            ((((int)in[23 + inPos]) <<  4) & 4095);
      out[16 + outPos] =
          //                      [76543210]
          //                  [____76543210]
            ((((int)in[24 + inPos]) ) & 255)
        | //                      [____3210]
          //                          [1098________]
            ((((int)in[25 + inPos]) <<  8) & 4095);
      out[17 + outPos] =
          //                      [7654____]
          //              [________3210]
            ((((int)in[25 + inPos]) >>  4) & 15)
        | //                      [76543210]
          //                      [10987654____]
            ((((int)in[26 + inPos]) <<  4) & 4095);
      out[18 + outPos] =
          //                      [76543210]
          //                  [____76543210]
            ((((int)in[27 + inPos]) ) & 255)
        | //                      [____3210]
          //                          [1098________]
            ((((int)in[28 + inPos]) <<  8) & 4095);
      out[19 + outPos] =
          //                      [7654____]
          //              [________3210]
            ((((int)in[28 + inPos]) >>  4) & 15)
        | //                      [76543210]
          //                      [10987654____]
            ((((int)in[29 + inPos]) <<  4) & 4095);
      out[20 + outPos] =
          //                      [76543210]
          //                  [____76543210]
            ((((int)in[30 + inPos]) ) & 255)
        | //                      [____3210]
          //                          [1098________]
            ((((int)in[31 + inPos]) <<  8) & 4095);
      out[21 + outPos] =
          //                      [7654____]
          //              [________3210]
            ((((int)in[31 + inPos]) >>  4) & 15)
        | //                      [76543210]
          //                      [10987654____]
            ((((int)in[32 + inPos]) <<  4) & 4095);
      out[22 + outPos] =
          //                      [76543210]
          //                  [____76543210]
            ((((int)in[33 + inPos]) ) & 255)
        | //                      [____3210]
          //                          [1098________]
            ((((int)in[34 + inPos]) <<  8) & 4095);
      out[23 + outPos] =
          //                      [7654____]
          //              [________3210]
            ((((int)in[34 + inPos]) >>  4) & 15)
        | //                      [76543210]
          //                      [10987654____]
            ((((int)in[35 + inPos]) <<  4) & 4095);
      out[24 + outPos] =
          //                      [76543210]
          //                  [____76543210]
            ((((int)in[36 + inPos]) ) & 255)
        | //                      [____3210]
          //                          [1098________]
            ((((int)in[37 + inPos]) <<  8) & 4095);
      out[25 + outPos] =
          //                      [7654____]
          //              [________3210]
            ((((int)in[37 + inPos]) >>  4) & 15)
        | //                      [76543210]
          //                      [10987654____]
            ((((int)in[38 + inPos]) <<  4) & 4095);
      out[26 + outPos] =
          //                      [76543210]
          //                  [____76543210]
            ((((int)in[39 + inPos]) ) & 255)
        | //                      [____3210]
          //                          [1098________]
            ((((int)in[40 + inPos]) <<  8) & 4095);
      out[27 + outPos] =
          //                      [7654____]
          //              [________3210]
            ((((int)in[40 + inPos]) >>  4) & 15)
        | //                      [76543210]
          //                      [10987654____]
            ((((int)in[41 + inPos]) <<  4) & 4095);
      out[28 + outPos] =
          //                      [76543210]
          //                  [____76543210]
            ((((int)in[42 + inPos]) ) & 255)
        | //                      [____3210]
          //                          [1098________]
            ((((int)in[43 + inPos]) <<  8) & 4095);
      out[29 + outPos] =
          //                      [7654____]
          //              [________3210]
            ((((int)in[43 + inPos]) >>  4) & 15)
        | //                      [76543210]
          //                      [10987654____]
            ((((int)in[44 + inPos]) <<  4) & 4095);
      out[30 + outPos] =
          //                      [76543210]
          //                  [____76543210]
            ((((int)in[45 + inPos]) ) & 255)
        | //                      [____3210]
          //                          [1098________]
            ((((int)in[46 + inPos]) <<  8) & 4095);
      out[31 + outPos] =
          //                      [7654____]
          //              [________3210]
            ((((int)in[46 + inPos]) >>  4) & 15)
        | //                      [76543210]
          //                      [10987654____]
            ((((int)in[47 + inPos]) <<  4) & 4095);
    }
    public final void unpack32Values(final ByteBuffer in, final int inPos, final int[] out, final int outPos) {
      out[ 0 + outPos] =
          //                      [76543210]
          //                  [____76543210]
            ((((int)in.get( 0 + inPos)) ) & 255)
        | //                      [____3210]
          //                          [1098________]
            ((((int)in.get( 1 + inPos)) <<  8) & 4095);
      out[ 1 + outPos] =
          //                      [7654____]
          //              [________3210]
            ((((int)in.get( 1 + inPos)) >>  4) & 15)
        | //                      [76543210]
          //                      [10987654____]
            ((((int)in.get( 2 + inPos)) <<  4) & 4095);
      out[ 2 + outPos] =
          //                      [76543210]
          //                  [____76543210]
            ((((int)in.get( 3 + inPos)) ) & 255)
        | //                      [____3210]
          //                          [1098________]
            ((((int)in.get( 4 + inPos)) <<  8) & 4095);
      out[ 3 + outPos] =
          //                      [7654____]
          //              [________3210]
            ((((int)in.get( 4 + inPos)) >>  4) & 15)
        | //                      [76543210]
          //                      [10987654____]
            ((((int)in.get( 5 + inPos)) <<  4) & 4095);
      out[ 4 + outPos] =
          //                      [76543210]
          //                  [____76543210]
            ((((int)in.get( 6 + inPos)) ) & 255)
        | //                      [____3210]
          //                          [1098________]
            ((((int)in.get( 7 + inPos)) <<  8) & 4095);
      out[ 5 + outPos] =
          //                      [7654____]
          //              [________3210]
            ((((int)in.get( 7 + inPos)) >>  4) & 15)
        | //                      [76543210]
          //                      [10987654____]
            ((((int)in.get( 8 + inPos)) <<  4) & 4095);
      out[ 6 + outPos] =
          //                      [76543210]
          //                  [____76543210]
            ((((int)in.get( 9 + inPos)) ) & 255)
        | //                      [____3210]
          //                          [1098________]
            ((((int)in.get(10 + inPos)) <<  8) & 4095);
      out[ 7 + outPos] =
          //                      [7654____]
          //              [________3210]
            ((((int)in.get(10 + inPos)) >>  4) & 15)
        | //                      [76543210]
          //                      [10987654____]
            ((((int)in.get(11 + inPos)) <<  4) & 4095);
      out[ 8 + outPos] =
          //                      [76543210]
          //                  [____76543210]
            ((((int)in.get(12 + inPos)) ) & 255)
        | //                      [____3210]
          //                          [1098________]
            ((((int)in.get(13 + inPos)) <<  8) & 4095);
      out[ 9 + outPos] =
          //                      [7654____]
          //              [________3210]
            ((((int)in.get(13 + inPos)) >>  4) & 15)
        | //                      [76543210]
          //                      [10987654____]
            ((((int)in.get(14 + inPos)) <<  4) & 4095);
      out[10 + outPos] =
          //                      [76543210]
          //                  [____76543210]
            ((((int)in.get(15 + inPos)) ) & 255)
        | //                      [____3210]
          //                          [1098________]
            ((((int)in.get(16 + inPos)) <<  8) & 4095);
      out[11 + outPos] =
          //                      [7654____]
          //              [________3210]
            ((((int)in.get(16 + inPos)) >>  4) & 15)
        | //                      [76543210]
          //                      [10987654____]
            ((((int)in.get(17 + inPos)) <<  4) & 4095);
      out[12 + outPos] =
          //                      [76543210]
          //                  [____76543210]
            ((((int)in.get(18 + inPos)) ) & 255)
        | //                      [____3210]
          //                          [1098________]
            ((((int)in.get(19 + inPos)) <<  8) & 4095);
      out[13 + outPos] =
          //                      [7654____]
          //              [________3210]
            ((((int)in.get(19 + inPos)) >>  4) & 15)
        | //                      [76543210]
          //                      [10987654____]
            ((((int)in.get(20 + inPos)) <<  4) & 4095);
      out[14 + outPos] =
          //                      [76543210]
          //                  [____76543210]
            ((((int)in.get(21 + inPos)) ) & 255)
        | //                      [____3210]
          //                          [1098________]
            ((((int)in.get(22 + inPos)) <<  8) & 4095);
      out[15 + outPos] =
          //                      [7654____]
          //              [________3210]
            ((((int)in.get(22 + inPos)) >>  4) & 15)
        | //                      [76543210]
          //                      [10987654____]
            ((((int)in.get(23 + inPos)) <<  4) & 4095);
      out[16 + outPos] =
          //                      [76543210]
          //                  [____76543210]
            ((((int)in.get(24 + inPos)) ) & 255)
        | //                      [____3210]
          //                          [1098________]
            ((((int)in.get(25 + inPos)) <<  8) & 4095);
      out[17 + outPos] =
          //                      [7654____]
          //              [________3210]
            ((((int)in.get(25 + inPos)) >>  4) & 15)
        | //                      [76543210]
          //                      [10987654____]
            ((((int)in.get(26 + inPos)) <<  4) & 4095);
      out[18 + outPos] =
          //                      [76543210]
          //                  [____76543210]
            ((((int)in.get(27 + inPos)) ) & 255)
        | //                      [____3210]
          //                          [1098________]
            ((((int)in.get(28 + inPos)) <<  8) & 4095);
      out[19 + outPos] =
          //                      [7654____]
          //              [________3210]
            ((((int)in.get(28 + inPos)) >>  4) & 15)
        | //                      [76543210]
          //                      [10987654____]
            ((((int)in.get(29 + inPos)) <<  4) & 4095);
      out[20 + outPos] =
          //                      [76543210]
          //                  [____76543210]
            ((((int)in.get(30 + inPos)) ) & 255)
        | //                      [____3210]
          //                          [1098________]
            ((((int)in.get(31 + inPos)) <<  8) & 4095);
      out[21 + outPos] =
          //                      [7654____]
          //              [________3210]
            ((((int)in.get(31 + inPos)) >>  4) & 15)
        | //                      [76543210]
          //                      [10987654____]
            ((((int)in.get(32 + inPos)) <<  4) & 4095);
      out[22 + outPos] =
          //                      [76543210]
          //                  [____76543210]
            ((((int)in.get(33 + inPos)) ) & 255)
        | //                      [____3210]
          //                          [1098________]
            ((((int)in.get(34 + inPos)) <<  8) & 4095);
      out[23 + outPos] =
          //                      [7654____]
          //              [________3210]
            ((((int)in.get(34 + inPos)) >>  4) & 15)
        | //                      [76543210]
          //                      [10987654____]
            ((((int)in.get(35 + inPos)) <<  4) & 4095);
      out[24 + outPos] =
          //                      [76543210]
          //                  [____76543210]
            ((((int)in.get(36 + inPos)) ) & 255)
        | //                      [____3210]
          //                          [1098________]
            ((((int)in.get(37 + inPos)) <<  8) & 4095);
      out[25 + outPos] =
          //                      [7654____]
          //              [________3210]
            ((((int)in.get(37 + inPos)) >>  4) & 15)
        | //                      [76543210]
          //                      [10987654____]
            ((((int)in.get(38 + inPos)) <<  4) & 4095);
      out[26 + outPos] =
          //                      [76543210]
          //                  [____76543210]
            ((((int)in.get(39 + inPos)) ) & 255)
        | //                      [____3210]
          //                          [1098________]
            ((((int)in.get(40 + inPos)) <<  8) & 4095);
      out[27 + outPos] =
          //                      [7654____]
          //              [________3210]
            ((((int)in.get(40 + inPos)) >>  4) & 15)
        | //                      [76543210]
          //                      [10987654____]
            ((((int)in.get(41 + inPos)) <<  4) & 4095);
      out[28 + outPos] =
          //                      [76543210]
          //                  [____76543210]
            ((((int)in.get(42 + inPos)) ) & 255)
        | //                      [____3210]
          //                          [1098________]
            ((((int)in.get(43 + inPos)) <<  8) & 4095);
      out[29 + outPos] =
          //                      [7654____]
          //              [________3210]
            ((((int)in.get(43 + inPos)) >>  4) & 15)
        | //                      [76543210]
          //                      [10987654____]
            ((((int)in.get(44 + inPos)) <<  4) & 4095);
      out[30 + outPos] =
          //                      [76543210]
          //                  [____76543210]
            ((((int)in.get(45 + inPos)) ) & 255)
        | //                      [____3210]
          //                          [1098________]
            ((((int)in.get(46 + inPos)) <<  8) & 4095);
      out[31 + outPos] =
          //                      [7654____]
          //              [________3210]
            ((((int)in.get(46 + inPos)) >>  4) & 15)
        | //                      [76543210]
          //                      [10987654____]
            ((((int)in.get(47 + inPos)) <<  4) & 4095);
    }
  }

  private static final class Packer13 extends BytePacker {

    private Packer13() {
      super(13);
    }

    public final void pack8Values(final int[] in, final int inPos, final byte[] out, final int outPos) {
      out[ 0 + outPos] = (byte)((
          //                       [76543210]
          //                  [_____76543210]
           ((in[ 0 + inPos] & 8191))) & 255);
      out[ 1 + outPos] = (byte)((
          //                       [___43210]
          //                          [21098________]
           ((in[ 0 + inPos] & 8191) >>> 8)
        | //                       [765_____]
          //             [__________210]
           ((in[ 1 + inPos] & 8191) <<  5)) & 255);
      out[ 2 + outPos] = (byte)((
          //                       [76543210]
          //                     [__09876543___]
           ((in[ 1 + inPos] & 8191) >>> 3)) & 255);
      out[ 3 + outPos] = (byte)((
          //                       [______10]
          //                             [21___________]
           ((in[ 1 + inPos] & 8191) >>> 11)
        | //                       [765432__]
          //                [_______543210]
           ((in[ 2 + inPos] & 8191) <<  2)) & 255);
      out[ 4 + outPos] = (byte)((
          //                       [_6543210]
          //                        [2109876______]
           ((in[ 2 + inPos] & 8191) >>> 6)
        | //                       [7_______]
          //           [____________0]
           ((in[ 3 + inPos] & 8191) <<  7)) & 255);
      out[ 5 + outPos] = (byte)((
          //                       [76543210]
          //                   [____87654321_]
           ((in[ 3 + inPos] & 8191) >>> 1)) & 255);
      out[ 6 + outPos] = (byte)((
          //                       [____3210]
          //                           [2109_________]
           ((in[ 3 + inPos] & 8191) >>> 9)
        | //                       [7654____]
          //              [_________3210]
           ((in[ 4 + inPos] & 8191) <<  4)) & 255);
      out[ 7 + outPos] = (byte)((
          //                       [76543210]
          //                      [_10987654____]
           ((in[ 4 + inPos] & 8191) >>> 4)) & 255);
      out[ 8 + outPos] = (byte)((
          //                       [_______0]
          //                              [2____________]
           ((in[ 4 + inPos] & 8191) >>> 12)
        | //                       [7654321_]
          //                 [______6543210]
           ((in[ 5 + inPos] & 8191) <<  1)) & 255);
      out[ 9 + outPos] = (byte)((
          //                       [__543210]
          //                         [210987_______]
           ((in[ 5 + inPos] & 8191) >>> 7)
        | //                       [76______]
          //            [___________10]
           ((in[ 6 + inPos] & 8191) <<  6)) & 255);
      out[10 + outPos] = (byte)((
          //                       [76543210]
          //                    [___98765432__]
           ((in[ 6 + inPos] & 8191) >>> 2)) & 255);
      out[11 + outPos] = (byte)((
          //                       [_____210]
          //                            [210__________]
           ((in[ 6 + inPos] & 8191) >>> 10)
        | //                       [76543___]
          //               [________43210]
           ((in[ 7 + inPos] & 8191) <<  3)) & 255);
      out[12 + outPos] = (byte)((
          //                       [76543210]
          //                       [21098765_____]
           ((in[ 7 + inPos] & 8191) >>> 5)) & 255);
    }
    public final void pack32Values(final int[] in, final int inPos, final byte[] out, final int outPos) {
      out[ 0 + outPos] = (byte)((
          //                       [76543210]
          //                  [_____76543210]
           ((in[ 0 + inPos] & 8191))) & 255);
      out[ 1 + outPos] = (byte)((
          //                       [___43210]
          //                          [21098________]
           ((in[ 0 + inPos] & 8191) >>> 8)
        | //                       [765_____]
          //             [__________210]
           ((in[ 1 + inPos] & 8191) <<  5)) & 255);
      out[ 2 + outPos] = (byte)((
          //                       [76543210]
          //                     [__09876543___]
           ((in[ 1 + inPos] & 8191) >>> 3)) & 255);
      out[ 3 + outPos] = (byte)((
          //                       [______10]
          //                             [21___________]
           ((in[ 1 + inPos] & 8191) >>> 11)
        | //                       [765432__]
          //                [_______543210]
           ((in[ 2 + inPos] & 8191) <<  2)) & 255);
      out[ 4 + outPos] = (byte)((
          //                       [_6543210]
          //                        [2109876______]
           ((in[ 2 + inPos] & 8191) >>> 6)
        | //                       [7_______]
          //           [____________0]
           ((in[ 3 + inPos] & 8191) <<  7)) & 255);
      out[ 5 + outPos] = (byte)((
          //                       [76543210]
          //                   [____87654321_]
           ((in[ 3 + inPos] & 8191) >>> 1)) & 255);
      out[ 6 + outPos] = (byte)((
          //                       [____3210]
          //                           [2109_________]
           ((in[ 3 + inPos] & 8191) >>> 9)
        | //                       [7654____]
          //              [_________3210]
           ((in[ 4 + inPos] & 8191) <<  4)) & 255);
      out[ 7 + outPos] = (byte)((
          //                       [76543210]
          //                      [_10987654____]
           ((in[ 4 + inPos] & 8191) >>> 4)) & 255);
      out[ 8 + outPos] = (byte)((
          //                       [_______0]
          //                              [2____________]
           ((in[ 4 + inPos] & 8191) >>> 12)
        | //                       [7654321_]
          //                 [______6543210]
           ((in[ 5 + inPos] & 8191) <<  1)) & 255);
      out[ 9 + outPos] = (byte)((
          //                       [__543210]
          //                         [210987_______]
           ((in[ 5 + inPos] & 8191) >>> 7)
        | //                       [76______]
          //            [___________10]
           ((in[ 6 + inPos] & 8191) <<  6)) & 255);
      out[10 + outPos] = (byte)((
          //                       [76543210]
          //                    [___98765432__]
           ((in[ 6 + inPos] & 8191) >>> 2)) & 255);
      out[11 + outPos] = (byte)((
          //                       [_____210]
          //                            [210__________]
           ((in[ 6 + inPos] & 8191) >>> 10)
        | //                       [76543___]
          //               [________43210]
           ((in[ 7 + inPos] & 8191) <<  3)) & 255);
      out[12 + outPos] = (byte)((
          //                       [76543210]
          //                       [21098765_____]
           ((in[ 7 + inPos] & 8191) >>> 5)) & 255);
      out[13 + outPos] = (byte)((
          //                       [76543210]
          //                  [_____76543210]
           ((in[ 8 + inPos] & 8191))) & 255);
      out[14 + outPos] = (byte)((
          //                       [___43210]
          //                          [21098________]
           ((in[ 8 + inPos] & 8191) >>> 8)
        | //                       [765_____]
          //             [__________210]
           ((in[ 9 + inPos] & 8191) <<  5)) & 255);
      out[15 + outPos] = (byte)((
          //                       [76543210]
          //                     [__09876543___]
           ((in[ 9 + inPos] & 8191) >>> 3)) & 255);
      out[16 + outPos] = (byte)((
          //                       [______10]
          //                             [21___________]
           ((in[ 9 + inPos] & 8191) >>> 11)
        | //                       [765432__]
          //                [_______543210]
           ((in[10 + inPos] & 8191) <<  2)) & 255);
      out[17 + outPos] = (byte)((
          //                       [_6543210]
          //                        [2109876______]
           ((in[10 + inPos] & 8191) >>> 6)
        | //                       [7_______]
          //           [____________0]
           ((in[11 + inPos] & 8191) <<  7)) & 255);
      out[18 + outPos] = (byte)((
          //                       [76543210]
          //                   [____87654321_]
           ((in[11 + inPos] & 8191) >>> 1)) & 255);
      out[19 + outPos] = (byte)((
          //                       [____3210]
          //                           [2109_________]
           ((in[11 + inPos] & 8191) >>> 9)
        | //                       [7654____]
          //              [_________3210]
           ((in[12 + inPos] & 8191) <<  4)) & 255);
      out[20 + outPos] = (byte)((
          //                       [76543210]
          //                      [_10987654____]
           ((in[12 + inPos] & 8191) >>> 4)) & 255);
      out[21 + outPos] = (byte)((
          //                       [_______0]
          //                              [2____________]
           ((in[12 + inPos] & 8191) >>> 12)
        | //                       [7654321_]
          //                 [______6543210]
           ((in[13 + inPos] & 8191) <<  1)) & 255);
      out[22 + outPos] = (byte)((
          //                       [__543210]
          //                         [210987_______]
           ((in[13 + inPos] & 8191) >>> 7)
        | //                       [76______]
          //            [___________10]
           ((in[14 + inPos] & 8191) <<  6)) & 255);
      out[23 + outPos] = (byte)((
          //                       [76543210]
          //                    [___98765432__]
           ((in[14 + inPos] & 8191) >>> 2)) & 255);
      out[24 + outPos] = (byte)((
          //                       [_____210]
          //                            [210__________]
           ((in[14 + inPos] & 8191) >>> 10)
        | //                       [76543___]
          //               [________43210]
           ((in[15 + inPos] & 8191) <<  3)) & 255);
      out[25 + outPos] = (byte)((
          //                       [76543210]
          //                       [21098765_____]
           ((in[15 + inPos] & 8191) >>> 5)) & 255);
      out[26 + outPos] = (byte)((
          //                       [76543210]
          //                  [_____76543210]
           ((in[16 + inPos] & 8191))) & 255);
      out[27 + outPos] = (byte)((
          //                       [___43210]
          //                          [21098________]
           ((in[16 + inPos] & 8191) >>> 8)
        | //                       [765_____]
          //             [__________210]
           ((in[17 + inPos] & 8191) <<  5)) & 255);
      out[28 + outPos] = (byte)((
          //                       [76543210]
          //                     [__09876543___]
           ((in[17 + inPos] & 8191) >>> 3)) & 255);
      out[29 + outPos] = (byte)((
          //                       [______10]
          //                             [21___________]
           ((in[17 + inPos] & 8191) >>> 11)
        | //                       [765432__]
          //                [_______543210]
           ((in[18 + inPos] & 8191) <<  2)) & 255);
      out[30 + outPos] = (byte)((
          //                       [_6543210]
          //                        [2109876______]
           ((in[18 + inPos] & 8191) >>> 6)
        | //                       [7_______]
          //           [____________0]
           ((in[19 + inPos] & 8191) <<  7)) & 255);
      out[31 + outPos] = (byte)((
          //                       [76543210]
          //                   [____87654321_]
           ((in[19 + inPos] & 8191) >>> 1)) & 255);
      out[32 + outPos] = (byte)((
          //                       [____3210]
          //                           [2109_________]
           ((in[19 + inPos] & 8191) >>> 9)
        | //                       [7654____]
          //              [_________3210]
           ((in[20 + inPos] & 8191) <<  4)) & 255);
      out[33 + outPos] = (byte)((
          //                       [76543210]
          //                      [_10987654____]
           ((in[20 + inPos] & 8191) >>> 4)) & 255);
      out[34 + outPos] = (byte)((
          //                       [_______0]
          //                              [2____________]
           ((in[20 + inPos] & 8191) >>> 12)
        | //                       [7654321_]
          //                 [______6543210]
           ((in[21 + inPos] & 8191) <<  1)) & 255);
      out[35 + outPos] = (byte)((
          //                       [__543210]
          //                         [210987_______]
           ((in[21 + inPos] & 8191) >>> 7)
        | //                       [76______]
          //            [___________10]
           ((in[22 + inPos] & 8191) <<  6)) & 255);
      out[36 + outPos] = (byte)((
          //                       [76543210]
          //                    [___98765432__]
           ((in[22 + inPos] & 8191) >>> 2)) & 255);
      out[37 + outPos] = (byte)((
          //                       [_____210]
          //                            [210__________]
           ((in[22 + inPos] & 8191) >>> 10)
        | //                       [76543___]
          //               [________43210]
           ((in[23 + inPos] & 8191) <<  3)) & 255);
      out[38 + outPos] = (byte)((
          //                       [76543210]
          //                       [21098765_____]
           ((in[23 + inPos] & 8191) >>> 5)) & 255);
      out[39 + outPos] = (byte)((
          //                       [76543210]
          //                  [_____76543210]
           ((in[24 + inPos] & 8191))) & 255);
      out[40 + outPos] = (byte)((
          //                       [___43210]
          //                          [21098________]
           ((in[24 + inPos] & 8191) >>> 8)
        | //                       [765_____]
          //             [__________210]
           ((in[25 + inPos] & 8191) <<  5)) & 255);
      out[41 + outPos] = (byte)((
          //                       [76543210]
          //                     [__09876543___]
           ((in[25 + inPos] & 8191) >>> 3)) & 255);
      out[42 + outPos] = (byte)((
          //                       [______10]
          //                             [21___________]
           ((in[25 + inPos] & 8191) >>> 11)
        | //                       [765432__]
          //                [_______543210]
           ((in[26 + inPos] & 8191) <<  2)) & 255);
      out[43 + outPos] = (byte)((
          //                       [_6543210]
          //                        [2109876______]
           ((in[26 + inPos] & 8191) >>> 6)
        | //                       [7_______]
          //           [____________0]
           ((in[27 + inPos] & 8191) <<  7)) & 255);
      out[44 + outPos] = (byte)((
          //                       [76543210]
          //                   [____87654321_]
           ((in[27 + inPos] & 8191) >>> 1)) & 255);
      out[45 + outPos] = (byte)((
          //                       [____3210]
          //                           [2109_________]
           ((in[27 + inPos] & 8191) >>> 9)
        | //                       [7654____]
          //              [_________3210]
           ((in[28 + inPos] & 8191) <<  4)) & 255);
      out[46 + outPos] = (byte)((
          //                       [76543210]
          //                      [_10987654____]
           ((in[28 + inPos] & 8191) >>> 4)) & 255);
      out[47 + outPos] = (byte)((
          //                       [_______0]
          //                              [2____________]
           ((in[28 + inPos] & 8191) >>> 12)
        | //                       [7654321_]
          //                 [______6543210]
           ((in[29 + inPos] & 8191) <<  1)) & 255);
      out[48 + outPos] = (byte)((
          //                       [__543210]
          //                         [210987_______]
           ((in[29 + inPos] & 8191) >>> 7)
        | //                       [76______]
          //            [___________10]
           ((in[30 + inPos] & 8191) <<  6)) & 255);
      out[49 + outPos] = (byte)((
          //                       [76543210]
          //                    [___98765432__]
           ((in[30 + inPos] & 8191) >>> 2)) & 255);
      out[50 + outPos] = (byte)((
          //                       [_____210]
          //                            [210__________]
           ((in[30 + inPos] & 8191) >>> 10)
        | //                       [76543___]
          //               [________43210]
           ((in[31 + inPos] & 8191) <<  3)) & 255);
      out[51 + outPos] = (byte)((
          //                       [76543210]
          //                       [21098765_____]
           ((in[31 + inPos] & 8191) >>> 5)) & 255);
    }
    public final void unpack8Values(final byte[] in, final int inPos, final int[] out, final int outPos) {
      out[ 0 + outPos] =
          //                       [76543210]
          //                  [_____76543210]
            ((((int)in[ 0 + inPos]) ) & 255)
        | //                       [___43210]
          //                          [21098________]
            ((((int)in[ 1 + inPos]) <<  8) & 8191);
      out[ 1 + outPos] =
          //                       [765_____]
          //             [__________210]
            ((((int)in[ 1 + inPos]) >>  5) & 7)
        | //                       [76543210]
          //                     [__09876543___]
            ((((int)in[ 2 + inPos]) <<  3) & 2047)
        | //                       [______10]
          //                             [21___________]
            ((((int)in[ 3 + inPos]) <<  11) & 8191);
      out[ 2 + outPos] =
          //                       [765432__]
          //                [_______543210]
            ((((int)in[ 3 + inPos]) >>  2) & 63)
        | //                       [_6543210]
          //                        [2109876______]
            ((((int)in[ 4 + inPos]) <<  6) & 8191);
      out[ 3 + outPos] =
          //                       [7_______]
          //           [____________0]
            ((((int)in[ 4 + inPos]) >>  7) & 1)
        | //                       [76543210]
          //                   [____87654321_]
            ((((int)in[ 5 + inPos]) <<  1) & 511)
        | //                       [____3210]
          //                           [2109_________]
            ((((int)in[ 6 + inPos]) <<  9) & 8191);
      out[ 4 + outPos] =
          //                       [7654____]
          //              [_________3210]
            ((((int)in[ 6 + inPos]) >>  4) & 15)
        | //                       [76543210]
          //                      [_10987654____]
            ((((int)in[ 7 + inPos]) <<  4) & 4095)
        | //                       [_______0]
          //                              [2____________]
            ((((int)in[ 8 + inPos]) <<  12) & 8191);
      out[ 5 + outPos] =
          //                       [7654321_]
          //                 [______6543210]
            ((((int)in[ 8 + inPos]) >>  1) & 127)
        | //                       [__543210]
          //                         [210987_______]
            ((((int)in[ 9 + inPos]) <<  7) & 8191);
      out[ 6 + outPos] =
          //                       [76______]
          //            [___________10]
            ((((int)in[ 9 + inPos]) >>  6) & 3)
        | //                       [76543210]
          //                    [___98765432__]
            ((((int)in[10 + inPos]) <<  2) & 1023)
        | //                       [_____210]
          //                            [210__________]
            ((((int)in[11 + inPos]) <<  10) & 8191);
      out[ 7 + outPos] =
          //                       [76543___]
          //               [________43210]
            ((((int)in[11 + inPos]) >>  3) & 31)
        | //                       [76543210]
          //                       [21098765_____]
            ((((int)in[12 + inPos]) <<  5) & 8191);
    }
    public final void unpack8Values(final ByteBuffer in, final int inPos, final int[] out, final int outPos) {
      out[ 0 + outPos] =
          //                       [76543210]
          //                  [_____76543210]
            ((((int)in.get( 0 + inPos)) ) & 255)
        | //                       [___43210]
          //                          [21098________]
            ((((int)in.get( 1 + inPos)) <<  8) & 8191);
      out[ 1 + outPos] =
          //                       [765_____]
          //             [__________210]
            ((((int)in.get( 1 + inPos)) >>  5) & 7)
        | //                       [76543210]
          //                     [__09876543___]
            ((((int)in.get( 2 + inPos)) <<  3) & 2047)
        | //                       [______10]
          //                             [21___________]
            ((((int)in.get( 3 + inPos)) <<  11) & 8191);
      out[ 2 + outPos] =
          //                       [765432__]
          //                [_______543210]
            ((((int)in.get( 3 + inPos)) >>  2) & 63)
        | //                       [_6543210]
          //                        [2109876______]
            ((((int)in.get( 4 + inPos)) <<  6) & 8191);
      out[ 3 + outPos] =
          //                       [7_______]
          //           [____________0]
            ((((int)in.get( 4 + inPos)) >>  7) & 1)
        | //                       [76543210]
          //                   [____87654321_]
            ((((int)in.get( 5 + inPos)) <<  1) & 511)
        | //                       [____3210]
          //                           [2109_________]
            ((((int)in.get( 6 + inPos)) <<  9) & 8191);
      out[ 4 + outPos] =
          //                       [7654____]
          //              [_________3210]
            ((((int)in.get( 6 + inPos)) >>  4) & 15)
        | //                       [76543210]
          //                      [_10987654____]
            ((((int)in.get( 7 + inPos)) <<  4) & 4095)
        | //                       [_______0]
          //                              [2____________]
            ((((int)in.get( 8 + inPos)) <<  12) & 8191);
      out[ 5 + outPos] =
          //                       [7654321_]
          //                 [______6543210]
            ((((int)in.get( 8 + inPos)) >>  1) & 127)
        | //                       [__543210]
          //                         [210987_______]
            ((((int)in.get( 9 + inPos)) <<  7) & 8191);
      out[ 6 + outPos] =
          //                       [76______]
          //            [___________10]
            ((((int)in.get( 9 + inPos)) >>  6) & 3)
        | //                       [76543210]
          //                    [___98765432__]
            ((((int)in.get(10 + inPos)) <<  2) & 1023)
        | //                       [_____210]
          //                            [210__________]
            ((((int)in.get(11 + inPos)) <<  10) & 8191);
      out[ 7 + outPos] =
          //                       [76543___]
          //               [________43210]
            ((((int)in.get(11 + inPos)) >>  3) & 31)
        | //                       [76543210]
          //                       [21098765_____]
            ((((int)in.get(12 + inPos)) <<  5) & 8191);
    }
    public final void unpack32Values(final byte[] in, final int inPos, final int[] out, final int outPos) {
      out[ 0 + outPos] =
          //                       [76543210]
          //                  [_____76543210]
            ((((int)in[ 0 + inPos]) ) & 255)
        | //                       [___43210]
          //                          [21098________]
            ((((int)in[ 1 + inPos]) <<  8) & 8191);
      out[ 1 + outPos] =
          //                       [765_____]
          //             [__________210]
            ((((int)in[ 1 + inPos]) >>  5) & 7)
        | //                       [76543210]
          //                     [__09876543___]
            ((((int)in[ 2 + inPos]) <<  3) & 2047)
        | //                       [______10]
          //                             [21___________]
            ((((int)in[ 3 + inPos]) <<  11) & 8191);
      out[ 2 + outPos] =
          //                       [765432__]
          //                [_______543210]
            ((((int)in[ 3 + inPos]) >>  2) & 63)
        | //                       [_6543210]
          //                        [2109876______]
            ((((int)in[ 4 + inPos]) <<  6) & 8191);
      out[ 3 + outPos] =
          //                       [7_______]
          //           [____________0]
            ((((int)in[ 4 + inPos]) >>  7) & 1)
        | //                       [76543210]
          //                   [____87654321_]
            ((((int)in[ 5 + inPos]) <<  1) & 511)
        | //                       [____3210]
          //                           [2109_________]
            ((((int)in[ 6 + inPos]) <<  9) & 8191);
      out[ 4 + outPos] =
          //                       [7654____]
          //              [_________3210]
            ((((int)in[ 6 + inPos]) >>  4) & 15)
        | //                       [76543210]
          //                      [_10987654____]
            ((((int)in[ 7 + inPos]) <<  4) & 4095)
        | //                       [_______0]
          //                              [2____________]
            ((((int)in[ 8 + inPos]) <<  12) & 8191);
      out[ 5 + outPos] =
          //                       [7654321_]
          //                 [______6543210]
            ((((int)in[ 8 + inPos]) >>  1) & 127)
        | //                       [__543210]
          //                         [210987_______]
            ((((int)in[ 9 + inPos]) <<  7) & 8191);
      out[ 6 + outPos] =
          //                       [76______]
          //            [___________10]
            ((((int)in[ 9 + inPos]) >>  6) & 3)
        | //                       [76543210]
          //                    [___98765432__]
            ((((int)in[10 + inPos]) <<  2) & 1023)
        | //                       [_____210]
          //                            [210__________]
            ((((int)in[11 + inPos]) <<  10) & 8191);
      out[ 7 + outPos] =
          //                       [76543___]
          //               [________43210]
            ((((int)in[11 + inPos]) >>  3) & 31)
        | //                       [76543210]
          //                       [21098765_____]
            ((((int)in[12 + inPos]) <<  5) & 8191);
      out[ 8 + outPos] =
          //                       [76543210]
          //                  [_____76543210]
            ((((int)in[13 + inPos]) ) & 255)
        | //                       [___43210]
          //                          [21098________]
            ((((int)in[14 + inPos]) <<  8) & 8191);
      out[ 9 + outPos] =
          //                       [765_____]
          //             [__________210]
            ((((int)in[14 + inPos]) >>  5) & 7)
        | //                       [76543210]
          //                     [__09876543___]
            ((((int)in[15 + inPos]) <<  3) & 2047)
        | //                       [______10]
          //                             [21___________]
            ((((int)in[16 + inPos]) <<  11) & 8191);
      out[10 + outPos] =
          //                       [765432__]
          //                [_______543210]
            ((((int)in[16 + inPos]) >>  2) & 63)
        | //                       [_6543210]
          //                        [2109876______]
            ((((int)in[17 + inPos]) <<  6) & 8191);
      out[11 + outPos] =
          //                       [7_______]
          //           [____________0]
            ((((int)in[17 + inPos]) >>  7) & 1)
        | //                       [76543210]
          //                   [____87654321_]
            ((((int)in[18 + inPos]) <<  1) & 511)
        | //                       [____3210]
          //                           [2109_________]
            ((((int)in[19 + inPos]) <<  9) & 8191);
      out[12 + outPos] =
          //                       [7654____]
          //              [_________3210]
            ((((int)in[19 + inPos]) >>  4) & 15)
        | //                       [76543210]
          //                      [_10987654____]
            ((((int)in[20 + inPos]) <<  4) & 4095)
        | //                       [_______0]
          //                              [2____________]
            ((((int)in[21 + inPos]) <<  12) & 8191);
      out[13 + outPos] =
          //                       [7654321_]
          //                 [______6543210]
            ((((int)in[21 + inPos]) >>  1) & 127)
        | //                       [__543210]
          //                         [210987_______]
            ((((int)in[22 + inPos]) <<  7) & 8191);
      out[14 + outPos] =
          //                       [76______]
          //            [___________10]
            ((((int)in[22 + inPos]) >>  6) & 3)
        | //                       [76543210]
          //                    [___98765432__]
            ((((int)in[23 + inPos]) <<  2) & 1023)
        | //                       [_____210]
          //                            [210__________]
            ((((int)in[24 + inPos]) <<  10) & 8191);
      out[15 + outPos] =
          //                       [76543___]
          //               [________43210]
            ((((int)in[24 + inPos]) >>  3) & 31)
        | //                       [76543210]
          //                       [21098765_____]
            ((((int)in[25 + inPos]) <<  5) & 8191);
      out[16 + outPos] =
          //                       [76543210]
          //                  [_____76543210]
            ((((int)in[26 + inPos]) ) & 255)
        | //                       [___43210]
          //                          [21098________]
            ((((int)in[27 + inPos]) <<  8) & 8191);
      out[17 + outPos] =
          //                       [765_____]
          //             [__________210]
            ((((int)in[27 + inPos]) >>  5) & 7)
        | //                       [76543210]
          //                     [__09876543___]
            ((((int)in[28 + inPos]) <<  3) & 2047)
        | //                       [______10]
          //                             [21___________]
            ((((int)in[29 + inPos]) <<  11) & 8191);
      out[18 + outPos] =
          //                       [765432__]
          //                [_______543210]
            ((((int)in[29 + inPos]) >>  2) & 63)
        | //                       [_6543210]
          //                        [2109876______]
            ((((int)in[30 + inPos]) <<  6) & 8191);
      out[19 + outPos] =
          //                       [7_______]
          //           [____________0]
            ((((int)in[30 + inPos]) >>  7) & 1)
        | //                       [76543210]
          //                   [____87654321_]
            ((((int)in[31 + inPos]) <<  1) & 511)
        | //                       [____3210]
          //                           [2109_________]
            ((((int)in[32 + inPos]) <<  9) & 8191);
      out[20 + outPos] =
          //                       [7654____]
          //              [_________3210]
            ((((int)in[32 + inPos]) >>  4) & 15)
        | //                       [76543210]
          //                      [_10987654____]
            ((((int)in[33 + inPos]) <<  4) & 4095)
        | //                       [_______0]
          //                              [2____________]
            ((((int)in[34 + inPos]) <<  12) & 8191);
      out[21 + outPos] =
          //                       [7654321_]
          //                 [______6543210]
            ((((int)in[34 + inPos]) >>  1) & 127)
        | //                       [__543210]
          //                         [210987_______]
            ((((int)in[35 + inPos]) <<  7) & 8191);
      out[22 + outPos] =
          //                       [76______]
          //            [___________10]
            ((((int)in[35 + inPos]) >>  6) & 3)
        | //                       [76543210]
          //                    [___98765432__]
            ((((int)in[36 + inPos]) <<  2) & 1023)
        | //                       [_____210]
          //                            [210__________]
            ((((int)in[37 + inPos]) <<  10) & 8191);
      out[23 + outPos] =
          //                       [76543___]
          //               [________43210]
            ((((int)in[37 + inPos]) >>  3) & 31)
        | //                       [76543210]
          //                       [21098765_____]
            ((((int)in[38 + inPos]) <<  5) & 8191);
      out[24 + outPos] =
          //                       [76543210]
          //                  [_____76543210]
            ((((int)in[39 + inPos]) ) & 255)
        | //                       [___43210]
          //                          [21098________]
            ((((int)in[40 + inPos]) <<  8) & 8191);
      out[25 + outPos] =
          //                       [765_____]
          //             [__________210]
            ((((int)in[40 + inPos]) >>  5) & 7)
        | //                       [76543210]
          //                     [__09876543___]
            ((((int)in[41 + inPos]) <<  3) & 2047)
        | //                       [______10]
          //                             [21___________]
            ((((int)in[42 + inPos]) <<  11) & 8191);
      out[26 + outPos] =
          //                       [765432__]
          //                [_______543210]
            ((((int)in[42 + inPos]) >>  2) & 63)
        | //                       [_6543210]
          //                        [2109876______]
            ((((int)in[43 + inPos]) <<  6) & 8191);
      out[27 + outPos] =
          //                       [7_______]
          //           [____________0]
            ((((int)in[43 + inPos]) >>  7) & 1)
        | //                       [76543210]
          //                   [____87654321_]
            ((((int)in[44 + inPos]) <<  1) & 511)
        | //                       [____3210]
          //                           [2109_________]
            ((((int)in[45 + inPos]) <<  9) & 8191);
      out[28 + outPos] =
          //                       [7654____]
          //              [_________3210]
            ((((int)in[45 + inPos]) >>  4) & 15)
        | //                       [76543210]
          //                      [_10987654____]
            ((((int)in[46 + inPos]) <<  4) & 4095)
        | //                       [_______0]
          //                              [2____________]
            ((((int)in[47 + inPos]) <<  12) & 8191);
      out[29 + outPos] =
          //                       [7654321_]
          //                 [______6543210]
            ((((int)in[47 + inPos]) >>  1) & 127)
        | //                       [__543210]
          //                         [210987_______]
            ((((int)in[48 + inPos]) <<  7) & 8191);
      out[30 + outPos] =
          //                       [76______]
          //            [___________10]
            ((((int)in[48 + inPos]) >>  6) & 3)
        | //                       [76543210]
          //                    [___98765432__]
            ((((int)in[49 + inPos]) <<  2) & 1023)
        | //                       [_____210]
          //                            [210__________]
            ((((int)in[50 + inPos]) <<  10) & 8191);
      out[31 + outPos] =
          //                       [76543___]
          //               [________43210]
            ((((int)in[50 + inPos]) >>  3) & 31)
        | //                       [76543210]
          //                       [21098765_____]
            ((((int)in[51 + inPos]) <<  5) & 8191);
    }
    public final void unpack32Values(final ByteBuffer in, final int inPos, final int[] out, final int outPos) {
      out[ 0 + outPos] =
          //                       [76543210]
          //                  [_____76543210]
            ((((int)in.get( 0 + inPos)) ) & 255)
        | //                       [___43210]
          //                          [21098________]
            ((((int)in.get( 1 + inPos)) <<  8) & 8191);
      out[ 1 + outPos] =
          //                       [765_____]
          //             [__________210]
            ((((int)in.get( 1 + inPos)) >>  5) & 7)
        | //                       [76543210]
          //                     [__09876543___]
            ((((int)in.get( 2 + inPos)) <<  3) & 2047)
        | //                       [______10]
          //                             [21___________]
            ((((int)in.get( 3 + inPos)) <<  11) & 8191);
      out[ 2 + outPos] =
          //                       [765432__]
          //                [_______543210]
            ((((int)in.get( 3 + inPos)) >>  2) & 63)
        | //                       [_6543210]
          //                        [2109876______]
            ((((int)in.get( 4 + inPos)) <<  6) & 8191);
      out[ 3 + outPos] =
          //                       [7_______]
          //           [____________0]
            ((((int)in.get( 4 + inPos)) >>  7) & 1)
        | //                       [76543210]
          //                   [____87654321_]
            ((((int)in.get( 5 + inPos)) <<  1) & 511)
        | //                       [____3210]
          //                           [2109_________]
            ((((int)in.get( 6 + inPos)) <<  9) & 8191);
      out[ 4 + outPos] =
          //                       [7654____]
          //              [_________3210]
            ((((int)in.get( 6 + inPos)) >>  4) & 15)
        | //                       [76543210]
          //                      [_10987654____]
            ((((int)in.get( 7 + inPos)) <<  4) & 4095)
        | //                       [_______0]
          //                              [2____________]
            ((((int)in.get( 8 + inPos)) <<  12) & 8191);
      out[ 5 + outPos] =
          //                       [7654321_]
          //                 [______6543210]
            ((((int)in.get( 8 + inPos)) >>  1) & 127)
        | //                       [__543210]
          //                         [210987_______]
            ((((int)in.get( 9 + inPos)) <<  7) & 8191);
      out[ 6 + outPos] =
          //                       [76______]
          //            [___________10]
            ((((int)in.get( 9 + inPos)) >>  6) & 3)
        | //                       [76543210]
          //                    [___98765432__]
            ((((int)in.get(10 + inPos)) <<  2) & 1023)
        | //                       [_____210]
          //                            [210__________]
            ((((int)in.get(11 + inPos)) <<  10) & 8191);
      out[ 7 + outPos] =
          //                       [76543___]
          //               [________43210]
            ((((int)in.get(11 + inPos)) >>  3) & 31)
        | //                       [76543210]
          //                       [21098765_____]
            ((((int)in.get(12 + inPos)) <<  5) & 8191);
      out[ 8 + outPos] =
          //                       [76543210]
          //                  [_____76543210]
            ((((int)in.get(13 + inPos)) ) & 255)
        | //                       [___43210]
          //                          [21098________]
            ((((int)in.get(14 + inPos)) <<  8) & 8191);
      out[ 9 + outPos] =
          //                       [765_____]
          //             [__________210]
            ((((int)in.get(14 + inPos)) >>  5) & 7)
        | //                       [76543210]
          //                     [__09876543___]
            ((((int)in.get(15 + inPos)) <<  3) & 2047)
        | //                       [______10]
          //                             [21___________]
            ((((int)in.get(16 + inPos)) <<  11) & 8191);
      out[10 + outPos] =
          //                       [765432__]
          //                [_______543210]
            ((((int)in.get(16 + inPos)) >>  2) & 63)
        | //                       [_6543210]
          //                        [2109876______]
            ((((int)in.get(17 + inPos)) <<  6) & 8191);
      out[11 + outPos] =
          //                       [7_______]
          //           [____________0]
            ((((int)in.get(17 + inPos)) >>  7) & 1)
        | //                       [76543210]
          //                   [____87654321_]
            ((((int)in.get(18 + inPos)) <<  1) & 511)
        | //                       [____3210]
          //                           [2109_________]
            ((((int)in.get(19 + inPos)) <<  9) & 8191);
      out[12 + outPos] =
          //                       [7654____]
          //              [_________3210]
            ((((int)in.get(19 + inPos)) >>  4) & 15)
        | //                       [76543210]
          //                      [_10987654____]
            ((((int)in.get(20 + inPos)) <<  4) & 4095)
        | //                       [_______0]
          //                              [2____________]
            ((((int)in.get(21 + inPos)) <<  12) & 8191);
      out[13 + outPos] =
          //                       [7654321_]
          //                 [______6543210]
            ((((int)in.get(21 + inPos)) >>  1) & 127)
        | //                       [__543210]
          //                         [210987_______]
            ((((int)in.get(22 + inPos)) <<  7) & 8191);
      out[14 + outPos] =
          //                       [76______]
          //            [___________10]
            ((((int)in.get(22 + inPos)) >>  6) & 3)
        | //                       [76543210]
          //                    [___98765432__]
            ((((int)in.get(23 + inPos)) <<  2) & 1023)
        | //                       [_____210]
          //                            [210__________]
            ((((int)in.get(24 + inPos)) <<  10) & 8191);
      out[15 + outPos] =
          //                       [76543___]
          //               [________43210]
            ((((int)in.get(24 + inPos)) >>  3) & 31)
        | //                       [76543210]
          //                       [21098765_____]
            ((((int)in.get(25 + inPos)) <<  5) & 8191);
      out[16 + outPos] =
          //                       [76543210]
          //                  [_____76543210]
            ((((int)in.get(26 + inPos)) ) & 255)
        | //                       [___43210]
          //                          [21098________]
            ((((int)in.get(27 + inPos)) <<  8) & 8191);
      out[17 + outPos] =
          //                       [765_____]
          //             [__________210]
            ((((int)in.get(27 + inPos)) >>  5) & 7)
        | //                       [76543210]
          //                     [__09876543___]
            ((((int)in.get(28 + inPos)) <<  3) & 2047)
        | //                       [______10]
          //                             [21___________]
            ((((int)in.get(29 + inPos)) <<  11) & 8191);
      out[18 + outPos] =
          //                       [765432__]
          //                [_______543210]
            ((((int)in.get(29 + inPos)) >>  2) & 63)
        | //                       [_6543210]
          //                        [2109876______]
            ((((int)in.get(30 + inPos)) <<  6) & 8191);
      out[19 + outPos] =
          //                       [7_______]
          //           [____________0]
            ((((int)in.get(30 + inPos)) >>  7) & 1)
        | //                       [76543210]
          //                   [____87654321_]
            ((((int)in.get(31 + inPos)) <<  1) & 511)
        | //                       [____3210]
          //                           [2109_________]
            ((((int)in.get(32 + inPos)) <<  9) & 8191);
      out[20 + outPos] =
          //                       [7654____]
          //              [_________3210]
            ((((int)in.get(32 + inPos)) >>  4) & 15)
        | //                       [76543210]
          //                      [_10987654____]
            ((((int)in.get(33 + inPos)) <<  4) & 4095)
        | //                       [_______0]
          //                              [2____________]
            ((((int)in.get(34 + inPos)) <<  12) & 8191);
      out[21 + outPos] =
          //                       [7654321_]
          //                 [______6543210]
            ((((int)in.get(34 + inPos)) >>  1) & 127)
        | //                       [__543210]
          //                         [210987_______]
            ((((int)in.get(35 + inPos)) <<  7) & 8191);
      out[22 + outPos] =
          //                       [76______]
          //            [___________10]
            ((((int)in.get(35 + inPos)) >>  6) & 3)
        | //                       [76543210]
          //                    [___98765432__]
            ((((int)in.get(36 + inPos)) <<  2) & 1023)
        | //                       [_____210]
          //                            [210__________]
            ((((int)in.get(37 + inPos)) <<  10) & 8191);
      out[23 + outPos] =
          //                       [76543___]
          //               [________43210]
            ((((int)in.get(37 + inPos)) >>  3) & 31)
        | //                       [76543210]
          //                       [21098765_____]
            ((((int)in.get(38 + inPos)) <<  5) & 8191);
      out[24 + outPos] =
          //                       [76543210]
          //                  [_____76543210]
            ((((int)in.get(39 + inPos)) ) & 255)
        | //                       [___43210]
          //                          [21098________]
            ((((int)in.get(40 + inPos)) <<  8) & 8191);
      out[25 + outPos] =
          //                       [765_____]
          //             [__________210]
            ((((int)in.get(40 + inPos)) >>  5) & 7)
        | //                       [76543210]
          //                     [__09876543___]
            ((((int)in.get(41 + inPos)) <<  3) & 2047)
        | //                       [______10]
          //                             [21___________]
            ((((int)in.get(42 + inPos)) <<  11) & 8191);
      out[26 + outPos] =
          //                       [765432__]
          //                [_______543210]
            ((((int)in.get(42 + inPos)) >>  2) & 63)
        | //                       [_6543210]
          //                        [2109876______]
            ((((int)in.get(43 + inPos)) <<  6) & 8191);
      out[27 + outPos] =
          //                       [7_______]
          //           [____________0]
            ((((int)in.get(43 + inPos)) >>  7) & 1)
        | //                       [76543210]
          //                   [____87654321_]
            ((((int)in.get(44 + inPos)) <<  1) & 511)
        | //                       [____3210]
          //                           [2109_________]
            ((((int)in.get(45 + inPos)) <<  9) & 8191);
      out[28 + outPos] =
          //                       [7654____]
          //              [_________3210]
            ((((int)in.get(45 + inPos)) >>  4) & 15)
        | //                       [76543210]
          //                      [_10987654____]
            ((((int)in.get(46 + inPos)) <<  4) & 4095)
        | //                       [_______0]
          //                              [2____________]
            ((((int)in.get(47 + inPos)) <<  12) & 8191);
      out[29 + outPos] =
          //                       [7654321_]
          //                 [______6543210]
            ((((int)in.get(47 + inPos)) >>  1) & 127)
        | //                       [__543210]
          //                         [210987_______]
            ((((int)in.get(48 + inPos)) <<  7) & 8191);
      out[30 + outPos] =
          //                       [76______]
          //            [___________10]
            ((((int)in.get(48 + inPos)) >>  6) & 3)
        | //                       [76543210]
          //                    [___98765432__]
            ((((int)in.get(49 + inPos)) <<  2) & 1023)
        | //                       [_____210]
          //                            [210__________]
            ((((int)in.get(50 + inPos)) <<  10) & 8191);
      out[31 + outPos] =
          //                       [76543___]
          //               [________43210]
            ((((int)in.get(50 + inPos)) >>  3) & 31)
        | //                       [76543210]
          //                       [21098765_____]
            ((((int)in.get(51 + inPos)) <<  5) & 8191);
    }
  }

  private static final class Packer14 extends BytePacker {

    private Packer14() {
      super(14);
    }

    public final void pack8Values(final int[] in, final int inPos, final byte[] out, final int outPos) {
      out[ 0 + outPos] = (byte)((
          //                        [76543210]
          //                  [______76543210]
           ((in[ 0 + inPos] & 16383))) & 255);
      out[ 1 + outPos] = (byte)((
          //                        [__543210]
          //                          [321098________]
           ((in[ 0 + inPos] & 16383) >>> 8)
        | //                        [76______]
          //            [____________10]
           ((in[ 1 + inPos] & 16383) <<  6)) & 255);
      out[ 2 + outPos] = (byte)((
          //                        [76543210]
          //                    [____98765432__]
           ((in[ 1 + inPos] & 16383) >>> 2)) & 255);
      out[ 3 + outPos] = (byte)((
          //                        [____3210]
          //                            [3210__________]
           ((in[ 1 + inPos] & 16383) >>> 10)
        | //                        [7654____]
          //              [__________3210]
           ((in[ 2 + inPos] & 16383) <<  4)) & 255);
      out[ 4 + outPos] = (byte)((
          //                        [76543210]
          //                      [__10987654____]
           ((in[ 2 + inPos] & 16383) >>> 4)) & 255);
      out[ 5 + outPos] = (byte)((
          //                        [______10]
          //                              [32____________]
           ((in[ 2 + inPos] & 16383) >>> 12)
        | //                        [765432__]
          //                [________543210]
           ((in[ 3 + inPos] & 16383) <<  2)) & 255);
      out[ 6 + outPos] = (byte)((
          //                        [76543210]
          //                        [32109876______]
           ((in[ 3 + inPos] & 16383) >>> 6)) & 255);
      out[ 7 + outPos] = (byte)((
          //                        [76543210]
          //                  [______76543210]
           ((in[ 4 + inPos] & 16383))) & 255);
      out[ 8 + outPos] = (byte)((
          //                        [__543210]
          //                          [321098________]
           ((in[ 4 + inPos] & 16383) >>> 8)
        | //                        [76______]
          //            [____________10]
           ((in[ 5 + inPos] & 16383) <<  6)) & 255);
      out[ 9 + outPos] = (byte)((
          //                        [76543210]
          //                    [____98765432__]
           ((in[ 5 + inPos] & 16383) >>> 2)) & 255);
      out[10 + outPos] = (byte)((
          //                        [____3210]
          //                            [3210__________]
           ((in[ 5 + inPos] & 16383) >>> 10)
        | //                        [7654____]
          //              [__________3210]
           ((in[ 6 + inPos] & 16383) <<  4)) & 255);
      out[11 + outPos] = (byte)((
          //                        [76543210]
          //                      [__10987654____]
           ((in[ 6 + inPos] & 16383) >>> 4)) & 255);
      out[12 + outPos] = (byte)((
          //                        [______10]
          //                              [32____________]
           ((in[ 6 + inPos] & 16383) >>> 12)
        | //                        [765432__]
          //                [________543210]
           ((in[ 7 + inPos] & 16383) <<  2)) & 255);
      out[13 + outPos] = (byte)((
          //                        [76543210]
          //                        [32109876______]
           ((in[ 7 + inPos] & 16383) >>> 6)) & 255);
    }
    public final void pack32Values(final int[] in, final int inPos, final byte[] out, final int outPos) {
      out[ 0 + outPos] = (byte)((
          //                        [76543210]
          //                  [______76543210]
           ((in[ 0 + inPos] & 16383))) & 255);
      out[ 1 + outPos] = (byte)((
          //                        [__543210]
          //                          [321098________]
           ((in[ 0 + inPos] & 16383) >>> 8)
        | //                        [76______]
          //            [____________10]
           ((in[ 1 + inPos] & 16383) <<  6)) & 255);
      out[ 2 + outPos] = (byte)((
          //                        [76543210]
          //                    [____98765432__]
           ((in[ 1 + inPos] & 16383) >>> 2)) & 255);
      out[ 3 + outPos] = (byte)((
          //                        [____3210]
          //                            [3210__________]
           ((in[ 1 + inPos] & 16383) >>> 10)
        | //                        [7654____]
          //              [__________3210]
           ((in[ 2 + inPos] & 16383) <<  4)) & 255);
      out[ 4 + outPos] = (byte)((
          //                        [76543210]
          //                      [__10987654____]
           ((in[ 2 + inPos] & 16383) >>> 4)) & 255);
      out[ 5 + outPos] = (byte)((
          //                        [______10]
          //                              [32____________]
           ((in[ 2 + inPos] & 16383) >>> 12)
        | //                        [765432__]
          //                [________543210]
           ((in[ 3 + inPos] & 16383) <<  2)) & 255);
      out[ 6 + outPos] = (byte)((
          //                        [76543210]
          //                        [32109876______]
           ((in[ 3 + inPos] & 16383) >>> 6)) & 255);
      out[ 7 + outPos] = (byte)((
          //                        [76543210]
          //                  [______76543210]
           ((in[ 4 + inPos] & 16383))) & 255);
      out[ 8 + outPos] = (byte)((
          //                        [__543210]
          //                          [321098________]
           ((in[ 4 + inPos] & 16383) >>> 8)
        | //                        [76______]
          //            [____________10]
           ((in[ 5 + inPos] & 16383) <<  6)) & 255);
      out[ 9 + outPos] = (byte)((
          //                        [76543210]
          //                    [____98765432__]
           ((in[ 5 + inPos] & 16383) >>> 2)) & 255);
      out[10 + outPos] = (byte)((
          //                        [____3210]
          //                            [3210__________]
           ((in[ 5 + inPos] & 16383) >>> 10)
        | //                        [7654____]
          //              [__________3210]
           ((in[ 6 + inPos] & 16383) <<  4)) & 255);
      out[11 + outPos] = (byte)((
          //                        [76543210]
          //                      [__10987654____]
           ((in[ 6 + inPos] & 16383) >>> 4)) & 255);
      out[12 + outPos] = (byte)((
          //                        [______10]
          //                              [32____________]
           ((in[ 6 + inPos] & 16383) >>> 12)
        | //                        [765432__]
          //                [________543210]
           ((in[ 7 + inPos] & 16383) <<  2)) & 255);
      out[13 + outPos] = (byte)((
          //                        [76543210]
          //                        [32109876______]
           ((in[ 7 + inPos] & 16383) >>> 6)) & 255);
      out[14 + outPos] = (byte)((
          //                        [76543210]
          //                  [______76543210]
           ((in[ 8 + inPos] & 16383))) & 255);
      out[15 + outPos] = (byte)((
          //                        [__543210]
          //                          [321098________]
           ((in[ 8 + inPos] & 16383) >>> 8)
        | //                        [76______]
          //            [____________10]
           ((in[ 9 + inPos] & 16383) <<  6)) & 255);
      out[16 + outPos] = (byte)((
          //                        [76543210]
          //                    [____98765432__]
           ((in[ 9 + inPos] & 16383) >>> 2)) & 255);
      out[17 + outPos] = (byte)((
          //                        [____3210]
          //                            [3210__________]
           ((in[ 9 + inPos] & 16383) >>> 10)
        | //                        [7654____]
          //              [__________3210]
           ((in[10 + inPos] & 16383) <<  4)) & 255);
      out[18 + outPos] = (byte)((
          //                        [76543210]
          //                      [__10987654____]
           ((in[10 + inPos] & 16383) >>> 4)) & 255);
      out[19 + outPos] = (byte)((
          //                        [______10]
          //                              [32____________]
           ((in[10 + inPos] & 16383) >>> 12)
        | //                        [765432__]
          //                [________543210]
           ((in[11 + inPos] & 16383) <<  2)) & 255);
      out[20 + outPos] = (byte)((
          //                        [76543210]
          //                        [32109876______]
           ((in[11 + inPos] & 16383) >>> 6)) & 255);
      out[21 + outPos] = (byte)((
          //                        [76543210]
          //                  [______76543210]
           ((in[12 + inPos] & 16383))) & 255);
      out[22 + outPos] = (byte)((
          //                        [__543210]
          //                          [321098________]
           ((in[12 + inPos] & 16383) >>> 8)
        | //                        [76______]
          //            [____________10]
           ((in[13 + inPos] & 16383) <<  6)) & 255);
      out[23 + outPos] = (byte)((
          //                        [76543210]
          //                    [____98765432__]
           ((in[13 + inPos] & 16383) >>> 2)) & 255);
      out[24 + outPos] = (byte)((
          //                        [____3210]
          //                            [3210__________]
           ((in[13 + inPos] & 16383) >>> 10)
        | //                        [7654____]
          //              [__________3210]
           ((in[14 + inPos] & 16383) <<  4)) & 255);
      out[25 + outPos] = (byte)((
          //                        [76543210]
          //                      [__10987654____]
           ((in[14 + inPos] & 16383) >>> 4)) & 255);
      out[26 + outPos] = (byte)((
          //                        [______10]
          //                              [32____________]
           ((in[14 + inPos] & 16383) >>> 12)
        | //                        [765432__]
          //                [________543210]
           ((in[15 + inPos] & 16383) <<  2)) & 255);
      out[27 + outPos] = (byte)((
          //                        [76543210]
          //                        [32109876______]
           ((in[15 + inPos] & 16383) >>> 6)) & 255);
      out[28 + outPos] = (byte)((
          //                        [76543210]
          //                  [______76543210]
           ((in[16 + inPos] & 16383))) & 255);
      out[29 + outPos] = (byte)((
          //                        [__543210]
          //                          [321098________]
           ((in[16 + inPos] & 16383) >>> 8)
        | //                        [76______]
          //            [____________10]
           ((in[17 + inPos] & 16383) <<  6)) & 255);
      out[30 + outPos] = (byte)((
          //                        [76543210]
          //                    [____98765432__]
           ((in[17 + inPos] & 16383) >>> 2)) & 255);
      out[31 + outPos] = (byte)((
          //                        [____3210]
          //                            [3210__________]
           ((in[17 + inPos] & 16383) >>> 10)
        | //                        [7654____]
          //              [__________3210]
           ((in[18 + inPos] & 16383) <<  4)) & 255);
      out[32 + outPos] = (byte)((
          //                        [76543210]
          //                      [__10987654____]
           ((in[18 + inPos] & 16383) >>> 4)) & 255);
      out[33 + outPos] = (byte)((
          //                        [______10]
          //                              [32____________]
           ((in[18 + inPos] & 16383) >>> 12)
        | //                        [765432__]
          //                [________543210]
           ((in[19 + inPos] & 16383) <<  2)) & 255);
      out[34 + outPos] = (byte)((
          //                        [76543210]
          //                        [32109876______]
           ((in[19 + inPos] & 16383) >>> 6)) & 255);
      out[35 + outPos] = (byte)((
          //                        [76543210]
          //                  [______76543210]
           ((in[20 + inPos] & 16383))) & 255);
      out[36 + outPos] = (byte)((
          //                        [__543210]
          //                          [321098________]
           ((in[20 + inPos] & 16383) >>> 8)
        | //                        [76______]
          //            [____________10]
           ((in[21 + inPos] & 16383) <<  6)) & 255);
      out[37 + outPos] = (byte)((
          //                        [76543210]
          //                    [____98765432__]
           ((in[21 + inPos] & 16383) >>> 2)) & 255);
      out[38 + outPos] = (byte)((
          //                        [____3210]
          //                            [3210__________]
           ((in[21 + inPos] & 16383) >>> 10)
        | //                        [7654____]
          //              [__________3210]
           ((in[22 + inPos] & 16383) <<  4)) & 255);
      out[39 + outPos] = (byte)((
          //                        [76543210]
          //                      [__10987654____]
           ((in[22 + inPos] & 16383) >>> 4)) & 255);
      out[40 + outPos] = (byte)((
          //                        [______10]
          //                              [32____________]
           ((in[22 + inPos] & 16383) >>> 12)
        | //                        [765432__]
          //                [________543210]
           ((in[23 + inPos] & 16383) <<  2)) & 255);
      out[41 + outPos] = (byte)((
          //                        [76543210]
          //                        [32109876______]
           ((in[23 + inPos] & 16383) >>> 6)) & 255);
      out[42 + outPos] = (byte)((
          //                        [76543210]
          //                  [______76543210]
           ((in[24 + inPos] & 16383))) & 255);
      out[43 + outPos] = (byte)((
          //                        [__543210]
          //                          [321098________]
           ((in[24 + inPos] & 16383) >>> 8)
        | //                        [76______]
          //            [____________10]
           ((in[25 + inPos] & 16383) <<  6)) & 255);
      out[44 + outPos] = (byte)((
          //                        [76543210]
          //                    [____98765432__]
           ((in[25 + inPos] & 16383) >>> 2)) & 255);
      out[45 + outPos] = (byte)((
          //                        [____3210]
          //                            [3210__________]
           ((in[25 + inPos] & 16383) >>> 10)
        | //                        [7654____]
          //              [__________3210]
           ((in[26 + inPos] & 16383) <<  4)) & 255);
      out[46 + outPos] = (byte)((
          //                        [76543210]
          //                      [__10987654____]
           ((in[26 + inPos] & 16383) >>> 4)) & 255);
      out[47 + outPos] = (byte)((
          //                        [______10]
          //                              [32____________]
           ((in[26 + inPos] & 16383) >>> 12)
        | //                        [765432__]
          //                [________543210]
           ((in[27 + inPos] & 16383) <<  2)) & 255);
      out[48 + outPos] = (byte)((
          //                        [76543210]
          //                        [32109876______]
           ((in[27 + inPos] & 16383) >>> 6)) & 255);
      out[49 + outPos] = (byte)((
          //                        [76543210]
          //                  [______76543210]
           ((in[28 + inPos] & 16383))) & 255);
      out[50 + outPos] = (byte)((
          //                        [__543210]
          //                          [321098________]
           ((in[28 + inPos] & 16383) >>> 8)
        | //                        [76______]
          //            [____________10]
           ((in[29 + inPos] & 16383) <<  6)) & 255);
      out[51 + outPos] = (byte)((
          //                        [76543210]
          //                    [____98765432__]
           ((in[29 + inPos] & 16383) >>> 2)) & 255);
      out[52 + outPos] = (byte)((
          //                        [____3210]
          //                            [3210__________]
           ((in[29 + inPos] & 16383) >>> 10)
        | //                        [7654____]
          //              [__________3210]
           ((in[30 + inPos] & 16383) <<  4)) & 255);
      out[53 + outPos] = (byte)((
          //                        [76543210]
          //                      [__10987654____]
           ((in[30 + inPos] & 16383) >>> 4)) & 255);
      out[54 + outPos] = (byte)((
          //                        [______10]
          //                              [32____________]
           ((in[30 + inPos] & 16383) >>> 12)
        | //                        [765432__]
          //                [________543210]
           ((in[31 + inPos] & 16383) <<  2)) & 255);
      out[55 + outPos] = (byte)((
          //                        [76543210]
          //                        [32109876______]
           ((in[31 + inPos] & 16383) >>> 6)) & 255);
    }
    public final void unpack8Values(final byte[] in, final int inPos, final int[] out, final int outPos) {
      out[ 0 + outPos] =
          //                        [76543210]
          //                  [______76543210]
            ((((int)in[ 0 + inPos]) ) & 255)
        | //                        [__543210]
          //                          [321098________]
            ((((int)in[ 1 + inPos]) <<  8) & 16383);
      out[ 1 + outPos] =
          //                        [76______]
          //            [____________10]
            ((((int)in[ 1 + inPos]) >>  6) & 3)
        | //                        [76543210]
          //                    [____98765432__]
            ((((int)in[ 2 + inPos]) <<  2) & 1023)
        | //                        [____3210]
          //                            [3210__________]
            ((((int)in[ 3 + inPos]) <<  10) & 16383);
      out[ 2 + outPos] =
          //                        [7654____]
          //              [__________3210]
            ((((int)in[ 3 + inPos]) >>  4) & 15)
        | //                        [76543210]
          //                      [__10987654____]
            ((((int)in[ 4 + inPos]) <<  4) & 4095)
        | //                        [______10]
          //                              [32____________]
            ((((int)in[ 5 + inPos]) <<  12) & 16383);
      out[ 3 + outPos] =
          //                        [765432__]
          //                [________543210]
            ((((int)in[ 5 + inPos]) >>  2) & 63)
        | //                        [76543210]
          //                        [32109876______]
            ((((int)in[ 6 + inPos]) <<  6) & 16383);
      out[ 4 + outPos] =
          //                        [76543210]
          //                  [______76543210]
            ((((int)in[ 7 + inPos]) ) & 255)
        | //                        [__543210]
          //                          [321098________]
            ((((int)in[ 8 + inPos]) <<  8) & 16383);
      out[ 5 + outPos] =
          //                        [76______]
          //            [____________10]
            ((((int)in[ 8 + inPos]) >>  6) & 3)
        | //                        [76543210]
          //                    [____98765432__]
            ((((int)in[ 9 + inPos]) <<  2) & 1023)
        | //                        [____3210]
          //                            [3210__________]
            ((((int)in[10 + inPos]) <<  10) & 16383);
      out[ 6 + outPos] =
          //                        [7654____]
          //              [__________3210]
            ((((int)in[10 + inPos]) >>  4) & 15)
        | //                        [76543210]
          //                      [__10987654____]
            ((((int)in[11 + inPos]) <<  4) & 4095)
        | //                        [______10]
          //                              [32____________]
            ((((int)in[12 + inPos]) <<  12) & 16383);
      out[ 7 + outPos] =
          //                        [765432__]
          //                [________543210]
            ((((int)in[12 + inPos]) >>  2) & 63)
        | //                        [76543210]
          //                        [32109876______]
            ((((int)in[13 + inPos]) <<  6) & 16383);
    }
    public final void unpack8Values(final ByteBuffer in, final int inPos, final int[] out, final int outPos) {
      out[ 0 + outPos] =
          //                        [76543210]
          //                  [______76543210]
            ((((int)in.get( 0 + inPos)) ) & 255)
        | //                        [__543210]
          //                          [321098________]
            ((((int)in.get( 1 + inPos)) <<  8) & 16383);
      out[ 1 + outPos] =
          //                        [76______]
          //            [____________10]
            ((((int)in.get( 1 + inPos)) >>  6) & 3)
        | //                        [76543210]
          //                    [____98765432__]
            ((((int)in.get( 2 + inPos)) <<  2) & 1023)
        | //                        [____3210]
          //                            [3210__________]
            ((((int)in.get( 3 + inPos)) <<  10) & 16383);
      out[ 2 + outPos] =
          //                        [7654____]
          //              [__________3210]
            ((((int)in.get( 3 + inPos)) >>  4) & 15)
        | //                        [76543210]
          //                      [__10987654____]
            ((((int)in.get( 4 + inPos)) <<  4) & 4095)
        | //                        [______10]
          //                              [32____________]
            ((((int)in.get( 5 + inPos)) <<  12) & 16383);
      out[ 3 + outPos] =
          //                        [765432__]
          //                [________543210]
            ((((int)in.get( 5 + inPos)) >>  2) & 63)
        | //                        [76543210]
          //                        [32109876______]
            ((((int)in.get( 6 + inPos)) <<  6) & 16383);
      out[ 4 + outPos] =
          //                        [76543210]
          //                  [______76543210]
            ((((int)in.get( 7 + inPos)) ) & 255)
        | //                        [__543210]
          //                          [321098________]
            ((((int)in.get( 8 + inPos)) <<  8) & 16383);
      out[ 5 + outPos] =
          //                        [76______]
          //            [____________10]
            ((((int)in.get( 8 + inPos)) >>  6) & 3)
        | //                        [76543210]
          //                    [____98765432__]
            ((((int)in.get( 9 + inPos)) <<  2) & 1023)
        | //                        [____3210]
          //                            [3210__________]
            ((((int)in.get(10 + inPos)) <<  10) & 16383);
      out[ 6 + outPos] =
          //                        [7654____]
          //              [__________3210]
            ((((int)in.get(10 + inPos)) >>  4) & 15)
        | //                        [76543210]
          //                      [__10987654____]
            ((((int)in.get(11 + inPos)) <<  4) & 4095)
        | //                        [______10]
          //                              [32____________]
            ((((int)in.get(12 + inPos)) <<  12) & 16383);
      out[ 7 + outPos] =
          //                        [765432__]
          //                [________543210]
            ((((int)in.get(12 + inPos)) >>  2) & 63)
        | //                        [76543210]
          //                        [32109876______]
            ((((int)in.get(13 + inPos)) <<  6) & 16383);
    }
    public final void unpack32Values(final byte[] in, final int inPos, final int[] out, final int outPos) {
      out[ 0 + outPos] =
          //                        [76543210]
          //                  [______76543210]
            ((((int)in[ 0 + inPos]) ) & 255)
        | //                        [__543210]
          //                          [321098________]
            ((((int)in[ 1 + inPos]) <<  8) & 16383);
      out[ 1 + outPos] =
          //                        [76______]
          //            [____________10]
            ((((int)in[ 1 + inPos]) >>  6) & 3)
        | //                        [76543210]
          //                    [____98765432__]
            ((((int)in[ 2 + inPos]) <<  2) & 1023)
        | //                        [____3210]
          //                            [3210__________]
            ((((int)in[ 3 + inPos]) <<  10) & 16383);
      out[ 2 + outPos] =
          //                        [7654____]
          //              [__________3210]
            ((((int)in[ 3 + inPos]) >>  4) & 15)
        | //                        [76543210]
          //                      [__10987654____]
            ((((int)in[ 4 + inPos]) <<  4) & 4095)
        | //                        [______10]
          //                              [32____________]
            ((((int)in[ 5 + inPos]) <<  12) & 16383);
      out[ 3 + outPos] =
          //                        [765432__]
          //                [________543210]
            ((((int)in[ 5 + inPos]) >>  2) & 63)
        | //                        [76543210]
          //                        [32109876______]
            ((((int)in[ 6 + inPos]) <<  6) & 16383);
      out[ 4 + outPos] =
          //                        [76543210]
          //                  [______76543210]
            ((((int)in[ 7 + inPos]) ) & 255)
        | //                        [__543210]
          //                          [321098________]
            ((((int)in[ 8 + inPos]) <<  8) & 16383);
      out[ 5 + outPos] =
          //                        [76______]
          //            [____________10]
            ((((int)in[ 8 + inPos]) >>  6) & 3)
        | //                        [76543210]
          //                    [____98765432__]
            ((((int)in[ 9 + inPos]) <<  2) & 1023)
        | //                        [____3210]
          //                            [3210__________]
            ((((int)in[10 + inPos]) <<  10) & 16383);
      out[ 6 + outPos] =
          //                        [7654____]
          //              [__________3210]
            ((((int)in[10 + inPos]) >>  4) & 15)
        | //                        [76543210]
          //                      [__10987654____]
            ((((int)in[11 + inPos]) <<  4) & 4095)
        | //                        [______10]
          //                              [32____________]
            ((((int)in[12 + inPos]) <<  12) & 16383);
      out[ 7 + outPos] =
          //                        [765432__]
          //                [________543210]
            ((((int)in[12 + inPos]) >>  2) & 63)
        | //                        [76543210]
          //                        [32109876______]
            ((((int)in[13 + inPos]) <<  6) & 16383);
      out[ 8 + outPos] =
          //                        [76543210]
          //                  [______76543210]
            ((((int)in[14 + inPos]) ) & 255)
        | //                        [__543210]
          //                          [321098________]
            ((((int)in[15 + inPos]) <<  8) & 16383);
      out[ 9 + outPos] =
          //                        [76______]
          //            [____________10]
            ((((int)in[15 + inPos]) >>  6) & 3)
        | //                        [76543210]
          //                    [____98765432__]
            ((((int)in[16 + inPos]) <<  2) & 1023)
        | //                        [____3210]
          //                            [3210__________]
            ((((int)in[17 + inPos]) <<  10) & 16383);
      out[10 + outPos] =
          //                        [7654____]
          //              [__________3210]
            ((((int)in[17 + inPos]) >>  4) & 15)
        | //                        [76543210]
          //                      [__10987654____]
            ((((int)in[18 + inPos]) <<  4) & 4095)
        | //                        [______10]
          //                              [32____________]
            ((((int)in[19 + inPos]) <<  12) & 16383);
      out[11 + outPos] =
          //                        [765432__]
          //                [________543210]
            ((((int)in[19 + inPos]) >>  2) & 63)
        | //                        [76543210]
          //                        [32109876______]
            ((((int)in[20 + inPos]) <<  6) & 16383);
      out[12 + outPos] =
          //                        [76543210]
          //                  [______76543210]
            ((((int)in[21 + inPos]) ) & 255)
        | //                        [__543210]
          //                          [321098________]
            ((((int)in[22 + inPos]) <<  8) & 16383);
      out[13 + outPos] =
          //                        [76______]
          //            [____________10]
            ((((int)in[22 + inPos]) >>  6) & 3)
        | //                        [76543210]
          //                    [____98765432__]
            ((((int)in[23 + inPos]) <<  2) & 1023)
        | //                        [____3210]
          //                            [3210__________]
            ((((int)in[24 + inPos]) <<  10) & 16383);
      out[14 + outPos] =
          //                        [7654____]
          //              [__________3210]
            ((((int)in[24 + inPos]) >>  4) & 15)
        | //                        [76543210]
          //                      [__10987654____]
            ((((int)in[25 + inPos]) <<  4) & 4095)
        | //                        [______10]
          //                              [32____________]
            ((((int)in[26 + inPos]) <<  12) & 16383);
      out[15 + outPos] =
          //                        [765432__]
          //                [________543210]
            ((((int)in[26 + inPos]) >>  2) & 63)
        | //                        [76543210]
          //                        [32109876______]
            ((((int)in[27 + inPos]) <<  6) & 16383);
      out[16 + outPos] =
          //                        [76543210]
          //                  [______76543210]
            ((((int)in[28 + inPos]) ) & 255)
        | //                        [__543210]
          //                          [321098________]
            ((((int)in[29 + inPos]) <<  8) & 16383);
      out[17 + outPos] =
          //                        [76______]
          //            [____________10]
            ((((int)in[29 + inPos]) >>  6) & 3)
        | //                        [76543210]
          //                    [____98765432__]
            ((((int)in[30 + inPos]) <<  2) & 1023)
        | //                        [____3210]
          //                            [3210__________]
            ((((int)in[31 + inPos]) <<  10) & 16383);
      out[18 + outPos] =
          //                        [7654____]
          //              [__________3210]
            ((((int)in[31 + inPos]) >>  4) & 15)
        | //                        [76543210]
          //                      [__10987654____]
            ((((int)in[32 + inPos]) <<  4) & 4095)
        | //                        [______10]
          //                              [32____________]
            ((((int)in[33 + inPos]) <<  12) & 16383);
      out[19 + outPos] =
          //                        [765432__]
          //                [________543210]
            ((((int)in[33 + inPos]) >>  2) & 63)
        | //                        [76543210]
          //                        [32109876______]
            ((((int)in[34 + inPos]) <<  6) & 16383);
      out[20 + outPos] =
          //                        [76543210]
          //                  [______76543210]
            ((((int)in[35 + inPos]) ) & 255)
        | //                        [__543210]
          //                          [321098________]
            ((((int)in[36 + inPos]) <<  8) & 16383);
      out[21 + outPos] =
          //                        [76______]
          //            [____________10]
            ((((int)in[36 + inPos]) >>  6) & 3)
        | //                        [76543210]
          //                    [____98765432__]
            ((((int)in[37 + inPos]) <<  2) & 1023)
        | //                        [____3210]
          //                            [3210__________]
            ((((int)in[38 + inPos]) <<  10) & 16383);
      out[22 + outPos] =
          //                        [7654____]
          //              [__________3210]
            ((((int)in[38 + inPos]) >>  4) & 15)
        | //                        [76543210]
          //                      [__10987654____]
            ((((int)in[39 + inPos]) <<  4) & 4095)
        | //                        [______10]
          //                              [32____________]
            ((((int)in[40 + inPos]) <<  12) & 16383);
      out[23 + outPos] =
          //                        [765432__]
          //                [________543210]
            ((((int)in[40 + inPos]) >>  2) & 63)
        | //                        [76543210]
          //                        [32109876______]
            ((((int)in[41 + inPos]) <<  6) & 16383);
      out[24 + outPos] =
          //                        [76543210]
          //                  [______76543210]
            ((((int)in[42 + inPos]) ) & 255)
        | //                        [__543210]
          //                          [321098________]
            ((((int)in[43 + inPos]) <<  8) & 16383);
      out[25 + outPos] =
          //                        [76______]
          //            [____________10]
            ((((int)in[43 + inPos]) >>  6) & 3)
        | //                        [76543210]
          //                    [____98765432__]
            ((((int)in[44 + inPos]) <<  2) & 1023)
        | //                        [____3210]
          //                            [3210__________]
            ((((int)in[45 + inPos]) <<  10) & 16383);
      out[26 + outPos] =
          //                        [7654____]
          //              [__________3210]
            ((((int)in[45 + inPos]) >>  4) & 15)
        | //                        [76543210]
          //                      [__10987654____]
            ((((int)in[46 + inPos]) <<  4) & 4095)
        | //                        [______10]
          //                              [32____________]
            ((((int)in[47 + inPos]) <<  12) & 16383);
      out[27 + outPos] =
          //                        [765432__]
          //                [________543210]
            ((((int)in[47 + inPos]) >>  2) & 63)
        | //                        [76543210]
          //                        [32109876______]
            ((((int)in[48 + inPos]) <<  6) & 16383);
      out[28 + outPos] =
          //                        [76543210]
          //                  [______76543210]
            ((((int)in[49 + inPos]) ) & 255)
        | //                        [__543210]
          //                          [321098________]
            ((((int)in[50 + inPos]) <<  8) & 16383);
      out[29 + outPos] =
          //                        [76______]
          //            [____________10]
            ((((int)in[50 + inPos]) >>  6) & 3)
        | //                        [76543210]
          //                    [____98765432__]
            ((((int)in[51 + inPos]) <<  2) & 1023)
        | //                        [____3210]
          //                            [3210__________]
            ((((int)in[52 + inPos]) <<  10) & 16383);
      out[30 + outPos] =
          //                        [7654____]
          //              [__________3210]
            ((((int)in[52 + inPos]) >>  4) & 15)
        | //                        [76543210]
          //                      [__10987654____]
            ((((int)in[53 + inPos]) <<  4) & 4095)
        | //                        [______10]
          //                              [32____________]
            ((((int)in[54 + inPos]) <<  12) & 16383);
      out[31 + outPos] =
          //                        [765432__]
          //                [________543210]
            ((((int)in[54 + inPos]) >>  2) & 63)
        | //                        [76543210]
          //                        [32109876______]
            ((((int)in[55 + inPos]) <<  6) & 16383);
    }
    public final void unpack32Values(final ByteBuffer in, final int inPos, final int[] out, final int outPos) {
      out[ 0 + outPos] =
          //                        [76543210]
          //                  [______76543210]
            ((((int)in.get( 0 + inPos)) ) & 255)
        | //                        [__543210]
          //                          [321098________]
            ((((int)in.get( 1 + inPos)) <<  8) & 16383);
      out[ 1 + outPos] =
          //                        [76______]
          //            [____________10]
            ((((int)in.get( 1 + inPos)) >>  6) & 3)
        | //                        [76543210]
          //                    [____98765432__]
            ((((int)in.get( 2 + inPos)) <<  2) & 1023)
        | //                        [____3210]
          //                            [3210__________]
            ((((int)in.get( 3 + inPos)) <<  10) & 16383);
      out[ 2 + outPos] =
          //                        [7654____]
          //              [__________3210]
            ((((int)in.get( 3 + inPos)) >>  4) & 15)
        | //                        [76543210]
          //                      [__10987654____]
            ((((int)in.get( 4 + inPos)) <<  4) & 4095)
        | //                        [______10]
          //                              [32____________]
            ((((int)in.get( 5 + inPos)) <<  12) & 16383);
      out[ 3 + outPos] =
          //                        [765432__]
          //                [________543210]
            ((((int)in.get( 5 + inPos)) >>  2) & 63)
        | //                        [76543210]
          //                        [32109876______]
            ((((int)in.get( 6 + inPos)) <<  6) & 16383);
      out[ 4 + outPos] =
          //                        [76543210]
          //                  [______76543210]
            ((((int)in.get( 7 + inPos)) ) & 255)
        | //                        [__543210]
          //                          [321098________]
            ((((int)in.get( 8 + inPos)) <<  8) & 16383);
      out[ 5 + outPos] =
          //                        [76______]
          //            [____________10]
            ((((int)in.get( 8 + inPos)) >>  6) & 3)
        | //                        [76543210]
          //                    [____98765432__]
            ((((int)in.get( 9 + inPos)) <<  2) & 1023)
        | //                        [____3210]
          //                            [3210__________]
            ((((int)in.get(10 + inPos)) <<  10) & 16383);
      out[ 6 + outPos] =
          //                        [7654____]
          //              [__________3210]
            ((((int)in.get(10 + inPos)) >>  4) & 15)
        | //                        [76543210]
          //                      [__10987654____]
            ((((int)in.get(11 + inPos)) <<  4) & 4095)
        | //                        [______10]
          //                              [32____________]
            ((((int)in.get(12 + inPos)) <<  12) & 16383);
      out[ 7 + outPos] =
          //                        [765432__]
          //                [________543210]
            ((((int)in.get(12 + inPos)) >>  2) & 63)
        | //                        [76543210]
          //                        [32109876______]
            ((((int)in.get(13 + inPos)) <<  6) & 16383);
      out[ 8 + outPos] =
          //                        [76543210]
          //                  [______76543210]
            ((((int)in.get(14 + inPos)) ) & 255)
        | //                        [__543210]
          //                          [321098________]
            ((((int)in.get(15 + inPos)) <<  8) & 16383);
      out[ 9 + outPos] =
          //                        [76______]
          //            [____________10]
            ((((int)in.get(15 + inPos)) >>  6) & 3)
        | //                        [76543210]
          //                    [____98765432__]
            ((((int)in.get(16 + inPos)) <<  2) & 1023)
        | //                        [____3210]
          //                            [3210__________]
            ((((int)in.get(17 + inPos)) <<  10) & 16383);
      out[10 + outPos] =
          //                        [7654____]
          //              [__________3210]
            ((((int)in.get(17 + inPos)) >>  4) & 15)
        | //                        [76543210]
          //                      [__10987654____]
            ((((int)in.get(18 + inPos)) <<  4) & 4095)
        | //                        [______10]
          //                              [32____________]
            ((((int)in.get(19 + inPos)) <<  12) & 16383);
      out[11 + outPos] =
          //                        [765432__]
          //                [________543210]
            ((((int)in.get(19 + inPos)) >>  2) & 63)
        | //                        [76543210]
          //                        [32109876______]
            ((((int)in.get(20 + inPos)) <<  6) & 16383);
      out[12 + outPos] =
          //                        [76543210]
          //                  [______76543210]
            ((((int)in.get(21 + inPos)) ) & 255)
        | //                        [__543210]
          //                          [321098________]
            ((((int)in.get(22 + inPos)) <<  8) & 16383);
      out[13 + outPos] =
          //                        [76______]
          //            [____________10]
            ((((int)in.get(22 + inPos)) >>  6) & 3)
        | //                        [76543210]
          //                    [____98765432__]
            ((((int)in.get(23 + inPos)) <<  2) & 1023)
        | //                        [____3210]
          //                            [3210__________]
            ((((int)in.get(24 + inPos)) <<  10) & 16383);
      out[14 + outPos] =
          //                        [7654____]
          //              [__________3210]
            ((((int)in.get(24 + inPos)) >>  4) & 15)
        | //                        [76543210]
          //                      [__10987654____]
            ((((int)in.get(25 + inPos)) <<  4) & 4095)
        | //                        [______10]
          //                              [32____________]
            ((((int)in.get(26 + inPos)) <<  12) & 16383);
      out[15 + outPos] =
          //                        [765432__]
          //                [________543210]
            ((((int)in.get(26 + inPos)) >>  2) & 63)
        | //                        [76543210]
          //                        [32109876______]
            ((((int)in.get(27 + inPos)) <<  6) & 16383);
      out[16 + outPos] =
          //                        [76543210]
          //                  [______76543210]
            ((((int)in.get(28 + inPos)) ) & 255)
        | //                        [__543210]
          //                          [321098________]
            ((((int)in.get(29 + inPos)) <<  8) & 16383);
      out[17 + outPos] =
          //                        [76______]
          //            [____________10]
            ((((int)in.get(29 + inPos)) >>  6) & 3)
        | //                        [76543210]
          //                    [____98765432__]
            ((((int)in.get(30 + inPos)) <<  2) & 1023)
        | //                        [____3210]
          //                            [3210__________]
            ((((int)in.get(31 + inPos)) <<  10) & 16383);
      out[18 + outPos] =
          //                        [7654____]
          //              [__________3210]
            ((((int)in.get(31 + inPos)) >>  4) & 15)
        | //                        [76543210]
          //                      [__10987654____]
            ((((int)in.get(32 + inPos)) <<  4) & 4095)
        | //                        [______10]
          //                              [32____________]
            ((((int)in.get(33 + inPos)) <<  12) & 16383);
      out[19 + outPos] =
          //                        [765432__]
          //                [________543210]
            ((((int)in.get(33 + inPos)) >>  2) & 63)
        | //                        [76543210]
          //                        [32109876______]
            ((((int)in.get(34 + inPos)) <<  6) & 16383);
      out[20 + outPos] =
          //                        [76543210]
          //                  [______76543210]
            ((((int)in.get(35 + inPos)) ) & 255)
        | //                        [__543210]
          //                          [321098________]
            ((((int)in.get(36 + inPos)) <<  8) & 16383);
      out[21 + outPos] =
          //                        [76______]
          //            [____________10]
            ((((int)in.get(36 + inPos)) >>  6) & 3)
        | //                        [76543210]
          //                    [____98765432__]
            ((((int)in.get(37 + inPos)) <<  2) & 1023)
        | //                        [____3210]
          //                            [3210__________]
            ((((int)in.get(38 + inPos)) <<  10) & 16383);
      out[22 + outPos] =
          //                        [7654____]
          //              [__________3210]
            ((((int)in.get(38 + inPos)) >>  4) & 15)
        | //                        [76543210]
          //                      [__10987654____]
            ((((int)in.get(39 + inPos)) <<  4) & 4095)
        | //                        [______10]
          //                              [32____________]
            ((((int)in.get(40 + inPos)) <<  12) & 16383);
      out[23 + outPos] =
          //                        [765432__]
          //                [________543210]
            ((((int)in.get(40 + inPos)) >>  2) & 63)
        | //                        [76543210]
          //                        [32109876______]
            ((((int)in.get(41 + inPos)) <<  6) & 16383);
      out[24 + outPos] =
          //                        [76543210]
          //                  [______76543210]
            ((((int)in.get(42 + inPos)) ) & 255)
        | //                        [__543210]
          //                          [321098________]
            ((((int)in.get(43 + inPos)) <<  8) & 16383);
      out[25 + outPos] =
          //                        [76______]
          //            [____________10]
            ((((int)in.get(43 + inPos)) >>  6) & 3)
        | //                        [76543210]
          //                    [____98765432__]
            ((((int)in.get(44 + inPos)) <<  2) & 1023)
        | //                        [____3210]
          //                            [3210__________]
            ((((int)in.get(45 + inPos)) <<  10) & 16383);
      out[26 + outPos] =
          //                        [7654____]
          //              [__________3210]
            ((((int)in.get(45 + inPos)) >>  4) & 15)
        | //                        [76543210]
          //                      [__10987654____]
            ((((int)in.get(46 + inPos)) <<  4) & 4095)
        | //                        [______10]
          //                              [32____________]
            ((((int)in.get(47 + inPos)) <<  12) & 16383);
      out[27 + outPos] =
          //                        [765432__]
          //                [________543210]
            ((((int)in.get(47 + inPos)) >>  2) & 63)
        | //                        [76543210]
          //                        [32109876______]
            ((((int)in.get(48 + inPos)) <<  6) & 16383);
      out[28 + outPos] =
          //                        [76543210]
          //                  [______76543210]
            ((((int)in.get(49 + inPos)) ) & 255)
        | //                        [__543210]
          //                          [321098________]
            ((((int)in.get(50 + inPos)) <<  8) & 16383);
      out[29 + outPos] =
          //                        [76______]
          //            [____________10]
            ((((int)in.get(50 + inPos)) >>  6) & 3)
        | //                        [76543210]
          //                    [____98765432__]
            ((((int)in.get(51 + inPos)) <<  2) & 1023)
        | //                        [____3210]
          //                            [3210__________]
            ((((int)in.get(52 + inPos)) <<  10) & 16383);
      out[30 + outPos] =
          //                        [7654____]
          //              [__________3210]
            ((((int)in.get(52 + inPos)) >>  4) & 15)
        | //                        [76543210]
          //                      [__10987654____]
            ((((int)in.get(53 + inPos)) <<  4) & 4095)
        | //                        [______10]
          //                              [32____________]
            ((((int)in.get(54 + inPos)) <<  12) & 16383);
      out[31 + outPos] =
          //                        [765432__]
          //                [________543210]
            ((((int)in.get(54 + inPos)) >>  2) & 63)
        | //                        [76543210]
          //                        [32109876______]
            ((((int)in.get(55 + inPos)) <<  6) & 16383);
    }
  }

  private static final class Packer15 extends BytePacker {

    private Packer15() {
      super(15);
    }

    public final void pack8Values(final int[] in, final int inPos, final byte[] out, final int outPos) {
      out[ 0 + outPos] = (byte)((
          //                         [76543210]
          //                  [_______76543210]
           ((in[ 0 + inPos] & 32767))) & 255);
      out[ 1 + outPos] = (byte)((
          //                         [_6543210]
          //                          [4321098________]
           ((in[ 0 + inPos] & 32767) >>> 8)
        | //                         [7_______]
          //           [______________0]
           ((in[ 1 + inPos] & 32767) <<  7)) & 255);
      out[ 2 + outPos] = (byte)((
          //                         [76543210]
          //                   [______87654321_]
           ((in[ 1 + inPos] & 32767) >>> 1)) & 255);
      out[ 3 + outPos] = (byte)((
          //                         [__543210]
          //                           [432109_________]
           ((in[ 1 + inPos] & 32767) >>> 9)
        | //                         [76______]
          //            [_____________10]
           ((in[ 2 + inPos] & 32767) <<  6)) & 255);
      out[ 4 + outPos] = (byte)((
          //                         [76543210]
          //                    [_____98765432__]
           ((in[ 2 + inPos] & 32767) >>> 2)) & 255);
      out[ 5 + outPos] = (byte)((
          //                         [___43210]
          //                            [43210__________]
           ((in[ 2 + inPos] & 32767) >>> 10)
        | //                         [765_____]
          //             [____________210]
           ((in[ 3 + inPos] & 32767) <<  5)) & 255);
      out[ 6 + outPos] = (byte)((
          //                         [76543210]
          //                     [____09876543___]
           ((in[ 3 + inPos] & 32767) >>> 3)) & 255);
      out[ 7 + outPos] = (byte)((
          //                         [____3210]
          //                             [4321___________]
           ((in[ 3 + inPos] & 32767) >>> 11)
        | //                         [7654____]
          //              [___________3210]
           ((in[ 4 + inPos] & 32767) <<  4)) & 255);
      out[ 8 + outPos] = (byte)((
          //                         [76543210]
          //                      [___10987654____]
           ((in[ 4 + inPos] & 32767) >>> 4)) & 255);
      out[ 9 + outPos] = (byte)((
          //                         [_____210]
          //                              [432____________]
           ((in[ 4 + inPos] & 32767) >>> 12)
        | //                         [76543___]
          //               [__________43210]
           ((in[ 5 + inPos] & 32767) <<  3)) & 255);
      out[10 + outPos] = (byte)((
          //                         [76543210]
          //                       [__21098765_____]
           ((in[ 5 + inPos] & 32767) >>> 5)) & 255);
      out[11 + outPos] = (byte)((
          //                         [______10]
          //                               [43_____________]
           ((in[ 5 + inPos] & 32767) >>> 13)
        | //                         [765432__]
          //                [_________543210]
           ((in[ 6 + inPos] & 32767) <<  2)) & 255);
      out[12 + outPos] = (byte)((
          //                         [76543210]
          //                        [_32109876______]
           ((in[ 6 + inPos] & 32767) >>> 6)) & 255);
      out[13 + outPos] = (byte)((
          //                         [_______0]
          //                                [4______________]
           ((in[ 6 + inPos] & 32767) >>> 14)
        | //                         [7654321_]
          //                 [________6543210]
           ((in[ 7 + inPos] & 32767) <<  1)) & 255);
      out[14 + outPos] = (byte)((
          //                         [76543210]
          //                         [43210987_______]
           ((in[ 7 + inPos] & 32767) >>> 7)) & 255);
    }
    public final void pack32Values(final int[] in, final int inPos, final byte[] out, final int outPos) {
      out[ 0 + outPos] = (byte)((
          //                         [76543210]
          //                  [_______76543210]
           ((in[ 0 + inPos] & 32767))) & 255);
      out[ 1 + outPos] = (byte)((
          //                         [_6543210]
          //                          [4321098________]
           ((in[ 0 + inPos] & 32767) >>> 8)
        | //                         [7_______]
          //           [______________0]
           ((in[ 1 + inPos] & 32767) <<  7)) & 255);
      out[ 2 + outPos] = (byte)((
          //                         [76543210]
          //                   [______87654321_]
           ((in[ 1 + inPos] & 32767) >>> 1)) & 255);
      out[ 3 + outPos] = (byte)((
          //                         [__543210]
          //                           [432109_________]
           ((in[ 1 + inPos] & 32767) >>> 9)
        | //                         [76______]
          //            [_____________10]
           ((in[ 2 + inPos] & 32767) <<  6)) & 255);
      out[ 4 + outPos] = (byte)((
          //                         [76543210]
          //                    [_____98765432__]
           ((in[ 2 + inPos] & 32767) >>> 2)) & 255);
      out[ 5 + outPos] = (byte)((
          //                         [___43210]
          //                            [43210__________]
           ((in[ 2 + inPos] & 32767) >>> 10)
        | //                         [765_____]
          //             [____________210]
           ((in[ 3 + inPos] & 32767) <<  5)) & 255);
      out[ 6 + outPos] = (byte)((
          //                         [76543210]
          //                     [____09876543___]
           ((in[ 3 + inPos] & 32767) >>> 3)) & 255);
      out[ 7 + outPos] = (byte)((
          //                         [____3210]
          //                             [4321___________]
           ((in[ 3 + inPos] & 32767) >>> 11)
        | //                         [7654____]
          //              [___________3210]
           ((in[ 4 + inPos] & 32767) <<  4)) & 255);
      out[ 8 + outPos] = (byte)((
          //                         [76543210]
          //                      [___10987654____]
           ((in[ 4 + inPos] & 32767) >>> 4)) & 255);
      out[ 9 + outPos] = (byte)((
          //                         [_____210]
          //                              [432____________]
           ((in[ 4 + inPos] & 32767) >>> 12)
        | //                         [76543___]
          //               [__________43210]
           ((in[ 5 + inPos] & 32767) <<  3)) & 255);
      out[10 + outPos] = (byte)((
          //                         [76543210]
          //                       [__21098765_____]
           ((in[ 5 + inPos] & 32767) >>> 5)) & 255);
      out[11 + outPos] = (byte)((
          //                         [______10]
          //                               [43_____________]
           ((in[ 5 + inPos] & 32767) >>> 13)
        | //                         [765432__]
          //                [_________543210]
           ((in[ 6 + inPos] & 32767) <<  2)) & 255);
      out[12 + outPos] = (byte)((
          //                         [76543210]
          //                        [_32109876______]
           ((in[ 6 + inPos] & 32767) >>> 6)) & 255);
      out[13 + outPos] = (byte)((
          //                         [_______0]
          //                                [4______________]
           ((in[ 6 + inPos] & 32767) >>> 14)
        | //                         [7654321_]
          //                 [________6543210]
           ((in[ 7 + inPos] & 32767) <<  1)) & 255);
      out[14 + outPos] = (byte)((
          //                         [76543210]
          //                         [43210987_______]
           ((in[ 7 + inPos] & 32767) >>> 7)) & 255);
      out[15 + outPos] = (byte)((
          //                         [76543210]
          //                  [_______76543210]
           ((in[ 8 + inPos] & 32767))) & 255);
      out[16 + outPos] = (byte)((
          //                         [_6543210]
          //                          [4321098________]
           ((in[ 8 + inPos] & 32767) >>> 8)
        | //                         [7_______]
          //           [______________0]
           ((in[ 9 + inPos] & 32767) <<  7)) & 255);
      out[17 + outPos] = (byte)((
          //                         [76543210]
          //                   [______87654321_]
           ((in[ 9 + inPos] & 32767) >>> 1)) & 255);
      out[18 + outPos] = (byte)((
          //                         [__543210]
          //                           [432109_________]
           ((in[ 9 + inPos] & 32767) >>> 9)
        | //                         [76______]
          //            [_____________10]
           ((in[10 + inPos] & 32767) <<  6)) & 255);
      out[19 + outPos] = (byte)((
          //                         [76543210]
          //                    [_____98765432__]
           ((in[10 + inPos] & 32767) >>> 2)) & 255);
      out[20 + outPos] = (byte)((
          //                         [___43210]
          //                            [43210__________]
           ((in[10 + inPos] & 32767) >>> 10)
        | //                         [765_____]
          //             [____________210]
           ((in[11 + inPos] & 32767) <<  5)) & 255);
      out[21 + outPos] = (byte)((
          //                         [76543210]
          //                     [____09876543___]
           ((in[11 + inPos] & 32767) >>> 3)) & 255);
      out[22 + outPos] = (byte)((
          //                         [____3210]
          //                             [4321___________]
           ((in[11 + inPos] & 32767) >>> 11)
        | //                         [7654____]
          //              [___________3210]
           ((in[12 + inPos] & 32767) <<  4)) & 255);
      out[23 + outPos] = (byte)((
          //                         [76543210]
          //                      [___10987654____]
           ((in[12 + inPos] & 32767) >>> 4)) & 255);
      out[24 + outPos] = (byte)((
          //                         [_____210]
          //                              [432____________]
           ((in[12 + inPos] & 32767) >>> 12)
        | //                         [76543___]
          //               [__________43210]
           ((in[13 + inPos] & 32767) <<  3)) & 255);
      out[25 + outPos] = (byte)((
          //                         [76543210]
          //                       [__21098765_____]
           ((in[13 + inPos] & 32767) >>> 5)) & 255);
      out[26 + outPos] = (byte)((
          //                         [______10]
          //                               [43_____________]
           ((in[13 + inPos] & 32767) >>> 13)
        | //                         [765432__]
          //                [_________543210]
           ((in[14 + inPos] & 32767) <<  2)) & 255);
      out[27 + outPos] = (byte)((
          //                         [76543210]
          //                        [_32109876______]
           ((in[14 + inPos] & 32767) >>> 6)) & 255);
      out[28 + outPos] = (byte)((
          //                         [_______0]
          //                                [4______________]
           ((in[14 + inPos] & 32767) >>> 14)
        | //                         [7654321_]
          //                 [________6543210]
           ((in[15 + inPos] & 32767) <<  1)) & 255);
      out[29 + outPos] = (byte)((
          //                         [76543210]
          //                         [43210987_______]
           ((in[15 + inPos] & 32767) >>> 7)) & 255);
      out[30 + outPos] = (byte)((
          //                         [76543210]
          //                  [_______76543210]
           ((in[16 + inPos] & 32767))) & 255);
      out[31 + outPos] = (byte)((
          //                         [_6543210]
          //                          [4321098________]
           ((in[16 + inPos] & 32767) >>> 8)
        | //                         [7_______]
          //           [______________0]
           ((in[17 + inPos] & 32767) <<  7)) & 255);
      out[32 + outPos] = (byte)((
          //                         [76543210]
          //                   [______87654321_]
           ((in[17 + inPos] & 32767) >>> 1)) & 255);
      out[33 + outPos] = (byte)((
          //                         [__543210]
          //                           [432109_________]
           ((in[17 + inPos] & 32767) >>> 9)
        | //                         [76______]
          //            [_____________10]
           ((in[18 + inPos] & 32767) <<  6)) & 255);
      out[34 + outPos] = (byte)((
          //                         [76543210]
          //                    [_____98765432__]
           ((in[18 + inPos] & 32767) >>> 2)) & 255);
      out[35 + outPos] = (byte)((
          //                         [___43210]
          //                            [43210__________]
           ((in[18 + inPos] & 32767) >>> 10)
        | //                         [765_____]
          //             [____________210]
           ((in[19 + inPos] & 32767) <<  5)) & 255);
      out[36 + outPos] = (byte)((
          //                         [76543210]
          //                     [____09876543___]
           ((in[19 + inPos] & 32767) >>> 3)) & 255);
      out[37 + outPos] = (byte)((
          //                         [____3210]
          //                             [4321___________]
           ((in[19 + inPos] & 32767) >>> 11)
        | //                         [7654____]
          //              [___________3210]
           ((in[20 + inPos] & 32767) <<  4)) & 255);
      out[38 + outPos] = (byte)((
          //                         [76543210]
          //                      [___10987654____]
           ((in[20 + inPos] & 32767) >>> 4)) & 255);
      out[39 + outPos] = (byte)((
          //                         [_____210]
          //                              [432____________]
           ((in[20 + inPos] & 32767) >>> 12)
        | //                         [76543___]
          //               [__________43210]
           ((in[21 + inPos] & 32767) <<  3)) & 255);
      out[40 + outPos] = (byte)((
          //                         [76543210]
          //                       [__21098765_____]
           ((in[21 + inPos] & 32767) >>> 5)) & 255);
      out[41 + outPos] = (byte)((
          //                         [______10]
          //                               [43_____________]
           ((in[21 + inPos] & 32767) >>> 13)
        | //                         [765432__]
          //                [_________543210]
           ((in[22 + inPos] & 32767) <<  2)) & 255);
      out[42 + outPos] = (byte)((
          //                         [76543210]
          //                        [_32109876______]
           ((in[22 + inPos] & 32767) >>> 6)) & 255);
      out[43 + outPos] = (byte)((
          //                         [_______0]
          //                                [4______________]
           ((in[22 + inPos] & 32767) >>> 14)
        | //                         [7654321_]
          //                 [________6543210]
           ((in[23 + inPos] & 32767) <<  1)) & 255);
      out[44 + outPos] = (byte)((
          //                         [76543210]
          //                         [43210987_______]
           ((in[23 + inPos] & 32767) >>> 7)) & 255);
      out[45 + outPos] = (byte)((
          //                         [76543210]
          //                  [_______76543210]
           ((in[24 + inPos] & 32767))) & 255);
      out[46 + outPos] = (byte)((
          //                         [_6543210]
          //                          [4321098________]
           ((in[24 + inPos] & 32767) >>> 8)
        | //                         [7_______]
          //           [______________0]
           ((in[25 + inPos] & 32767) <<  7)) & 255);
      out[47 + outPos] = (byte)((
          //                         [76543210]
          //                   [______87654321_]
           ((in[25 + inPos] & 32767) >>> 1)) & 255);
      out[48 + outPos] = (byte)((
          //                         [__543210]
          //                           [432109_________]
           ((in[25 + inPos] & 32767) >>> 9)
        | //                         [76______]
          //            [_____________10]
           ((in[26 + inPos] & 32767) <<  6)) & 255);
      out[49 + outPos] = (byte)((
          //                         [76543210]
          //                    [_____98765432__]
           ((in[26 + inPos] & 32767) >>> 2)) & 255);
      out[50 + outPos] = (byte)((
          //                         [___43210]
          //                            [43210__________]
           ((in[26 + inPos] & 32767) >>> 10)
        | //                         [765_____]
          //             [____________210]
           ((in[27 + inPos] & 32767) <<  5)) & 255);
      out[51 + outPos] = (byte)((
          //                         [76543210]
          //                     [____09876543___]
           ((in[27 + inPos] & 32767) >>> 3)) & 255);
      out[52 + outPos] = (byte)((
          //                         [____3210]
          //                             [4321___________]
           ((in[27 + inPos] & 32767) >>> 11)
        | //                         [7654____]
          //              [___________3210]
           ((in[28 + inPos] & 32767) <<  4)) & 255);
      out[53 + outPos] = (byte)((
          //                         [76543210]
          //                      [___10987654____]
           ((in[28 + inPos] & 32767) >>> 4)) & 255);
      out[54 + outPos] = (byte)((
          //                         [_____210]
          //                              [432____________]
           ((in[28 + inPos] & 32767) >>> 12)
        | //                         [76543___]
          //               [__________43210]
           ((in[29 + inPos] & 32767) <<  3)) & 255);
      out[55 + outPos] = (byte)((
          //                         [76543210]
          //                       [__21098765_____]
           ((in[29 + inPos] & 32767) >>> 5)) & 255);
      out[56 + outPos] = (byte)((
          //                         [______10]
          //                               [43_____________]
           ((in[29 + inPos] & 32767) >>> 13)
        | //                         [765432__]
          //                [_________543210]
           ((in[30 + inPos] & 32767) <<  2)) & 255);
      out[57 + outPos] = (byte)((
          //                         [76543210]
          //                        [_32109876______]
           ((in[30 + inPos] & 32767) >>> 6)) & 255);
      out[58 + outPos] = (byte)((
          //                         [_______0]
          //                                [4______________]
           ((in[30 + inPos] & 32767) >>> 14)
        | //                         [7654321_]
          //                 [________6543210]
           ((in[31 + inPos] & 32767) <<  1)) & 255);
      out[59 + outPos] = (byte)((
          //                         [76543210]
          //                         [43210987_______]
           ((in[31 + inPos] & 32767) >>> 7)) & 255);
    }
    public final void unpack8Values(final byte[] in, final int inPos, final int[] out, final int outPos) {
      out[ 0 + outPos] =
          //                         [76543210]
          //                  [_______76543210]
            ((((int)in[ 0 + inPos]) ) & 255)
        | //                         [_6543210]
          //                          [4321098________]
            ((((int)in[ 1 + inPos]) <<  8) & 32767);
      out[ 1 + outPos] =
          //                         [7_______]
          //           [______________0]
            ((((int)in[ 1 + inPos]) >>  7) & 1)
        | //                         [76543210]
          //                   [______87654321_]
            ((((int)in[ 2 + inPos]) <<  1) & 511)
        | //                         [__543210]
          //                           [432109_________]
            ((((int)in[ 3 + inPos]) <<  9) & 32767);
      out[ 2 + outPos] =
          //                         [76______]
          //            [_____________10]
            ((((int)in[ 3 + inPos]) >>  6) & 3)
        | //                         [76543210]
          //                    [_____98765432__]
            ((((int)in[ 4 + inPos]) <<  2) & 1023)
        | //                         [___43210]
          //                            [43210__________]
            ((((int)in[ 5 + inPos]) <<  10) & 32767);
      out[ 3 + outPos] =
          //                         [765_____]
          //             [____________210]
            ((((int)in[ 5 + inPos]) >>  5) & 7)
        | //                         [76543210]
          //                     [____09876543___]
            ((((int)in[ 6 + inPos]) <<  3) & 2047)
        | //                         [____3210]
          //                             [4321___________]
            ((((int)in[ 7 + inPos]) <<  11) & 32767);
      out[ 4 + outPos] =
          //                         [7654____]
          //              [___________3210]
            ((((int)in[ 7 + inPos]) >>  4) & 15)
        | //                         [76543210]
          //                      [___10987654____]
            ((((int)in[ 8 + inPos]) <<  4) & 4095)
        | //                         [_____210]
          //                              [432____________]
            ((((int)in[ 9 + inPos]) <<  12) & 32767);
      out[ 5 + outPos] =
          //                         [76543___]
          //               [__________43210]
            ((((int)in[ 9 + inPos]) >>  3) & 31)
        | //                         [76543210]
          //                       [__21098765_____]
            ((((int)in[10 + inPos]) <<  5) & 8191)
        | //                         [______10]
          //                               [43_____________]
            ((((int)in[11 + inPos]) <<  13) & 32767);
      out[ 6 + outPos] =
          //                         [765432__]
          //                [_________543210]
            ((((int)in[11 + inPos]) >>  2) & 63)
        | //                         [76543210]
          //                        [_32109876______]
            ((((int)in[12 + inPos]) <<  6) & 16383)
        | //                         [_______0]
          //                                [4______________]
            ((((int)in[13 + inPos]) <<  14) & 32767);
      out[ 7 + outPos] =
          //                         [7654321_]
          //                 [________6543210]
            ((((int)in[13 + inPos]) >>  1) & 127)
        | //                         [76543210]
          //                         [43210987_______]
            ((((int)in[14 + inPos]) <<  7) & 32767);
    }
    public final void unpack8Values(final ByteBuffer in, final int inPos, final int[] out, final int outPos) {
      out[ 0 + outPos] =
          //                         [76543210]
          //                  [_______76543210]
            ((((int)in.get( 0 + inPos)) ) & 255)
        | //                         [_6543210]
          //                          [4321098________]
            ((((int)in.get( 1 + inPos)) <<  8) & 32767);
      out[ 1 + outPos] =
          //                         [7_______]
          //           [______________0]
            ((((int)in.get( 1 + inPos)) >>  7) & 1)
        | //                         [76543210]
          //                   [______87654321_]
            ((((int)in.get( 2 + inPos)) <<  1) & 511)
        | //                         [__543210]
          //                           [432109_________]
            ((((int)in.get( 3 + inPos)) <<  9) & 32767);
      out[ 2 + outPos] =
          //                         [76______]
          //            [_____________10]
            ((((int)in.get( 3 + inPos)) >>  6) & 3)
        | //                         [76543210]
          //                    [_____98765432__]
            ((((int)in.get( 4 + inPos)) <<  2) & 1023)
        | //                         [___43210]
          //                            [43210__________]
            ((((int)in.get( 5 + inPos)) <<  10) & 32767);
      out[ 3 + outPos] =
          //                         [765_____]
          //             [____________210]
            ((((int)in.get( 5 + inPos)) >>  5) & 7)
        | //                         [76543210]
          //                     [____09876543___]
            ((((int)in.get( 6 + inPos)) <<  3) & 2047)
        | //                         [____3210]
          //                             [4321___________]
            ((((int)in.get( 7 + inPos)) <<  11) & 32767);
      out[ 4 + outPos] =
          //                         [7654____]
          //              [___________3210]
            ((((int)in.get( 7 + inPos)) >>  4) & 15)
        | //                         [76543210]
          //                      [___10987654____]
            ((((int)in.get( 8 + inPos)) <<  4) & 4095)
        | //                         [_____210]
          //                              [432____________]
            ((((int)in.get( 9 + inPos)) <<  12) & 32767);
      out[ 5 + outPos] =
          //                         [76543___]
          //               [__________43210]
            ((((int)in.get( 9 + inPos)) >>  3) & 31)
        | //                         [76543210]
          //                       [__21098765_____]
            ((((int)in.get(10 + inPos)) <<  5) & 8191)
        | //                         [______10]
          //                               [43_____________]
            ((((int)in.get(11 + inPos)) <<  13) & 32767);
      out[ 6 + outPos] =
          //                         [765432__]
          //                [_________543210]
            ((((int)in.get(11 + inPos)) >>  2) & 63)
        | //                         [76543210]
          //                        [_32109876______]
            ((((int)in.get(12 + inPos)) <<  6) & 16383)
        | //                         [_______0]
          //                                [4______________]
            ((((int)in.get(13 + inPos)) <<  14) & 32767);
      out[ 7 + outPos] =
          //                         [7654321_]
          //                 [________6543210]
            ((((int)in.get(13 + inPos)) >>  1) & 127)
        | //                         [76543210]
          //                         [43210987_______]
            ((((int)in.get(14 + inPos)) <<  7) & 32767);
    }
    public final void unpack32Values(final byte[] in, final int inPos, final int[] out, final int outPos) {
      out[ 0 + outPos] =
          //                         [76543210]
          //                  [_______76543210]
            ((((int)in[ 0 + inPos]) ) & 255)
        | //                         [_6543210]
          //                          [4321098________]
            ((((int)in[ 1 + inPos]) <<  8) & 32767);
      out[ 1 + outPos] =
          //                         [7_______]
          //           [______________0]
            ((((int)in[ 1 + inPos]) >>  7) & 1)
        | //                         [76543210]
          //                   [______87654321_]
            ((((int)in[ 2 + inPos]) <<  1) & 511)
        | //                         [__543210]
          //                           [432109_________]
            ((((int)in[ 3 + inPos]) <<  9) & 32767);
      out[ 2 + outPos] =
          //                         [76______]
          //            [_____________10]
            ((((int)in[ 3 + inPos]) >>  6) & 3)
        | //                         [76543210]
          //                    [_____98765432__]
            ((((int)in[ 4 + inPos]) <<  2) & 1023)
        | //                         [___43210]
          //                            [43210__________]
            ((((int)in[ 5 + inPos]) <<  10) & 32767);
      out[ 3 + outPos] =
          //                         [765_____]
          //             [____________210]
            ((((int)in[ 5 + inPos]) >>  5) & 7)
        | //                         [76543210]
          //                     [____09876543___]
            ((((int)in[ 6 + inPos]) <<  3) & 2047)
        | //                         [____3210]
          //                             [4321___________]
            ((((int)in[ 7 + inPos]) <<  11) & 32767);
      out[ 4 + outPos] =
          //                         [7654____]
          //              [___________3210]
            ((((int)in[ 7 + inPos]) >>  4) & 15)
        | //                         [76543210]
          //                      [___10987654____]
            ((((int)in[ 8 + inPos]) <<  4) & 4095)
        | //                         [_____210]
          //                              [432____________]
            ((((int)in[ 9 + inPos]) <<  12) & 32767);
      out[ 5 + outPos] =
          //                         [76543___]
          //               [__________43210]
            ((((int)in[ 9 + inPos]) >>  3) & 31)
        | //                         [76543210]
          //                       [__21098765_____]
            ((((int)in[10 + inPos]) <<  5) & 8191)
        | //                         [______10]
          //                               [43_____________]
            ((((int)in[11 + inPos]) <<  13) & 32767);
      out[ 6 + outPos] =
          //                         [765432__]
          //                [_________543210]
            ((((int)in[11 + inPos]) >>  2) & 63)
        | //                         [76543210]
          //                        [_32109876______]
            ((((int)in[12 + inPos]) <<  6) & 16383)
        | //                         [_______0]
          //                                [4______________]
            ((((int)in[13 + inPos]) <<  14) & 32767);
      out[ 7 + outPos] =
          //                         [7654321_]
          //                 [________6543210]
            ((((int)in[13 + inPos]) >>  1) & 127)
        | //                         [76543210]
          //                         [43210987_______]
            ((((int)in[14 + inPos]) <<  7) & 32767);
      out[ 8 + outPos] =
          //                         [76543210]
          //                  [_______76543210]
            ((((int)in[15 + inPos]) ) & 255)
        | //                         [_6543210]
          //                          [4321098________]
            ((((int)in[16 + inPos]) <<  8) & 32767);
      out[ 9 + outPos] =
          //                         [7_______]
          //           [______________0]
            ((((int)in[16 + inPos]) >>  7) & 1)
        | //                         [76543210]
          //                   [______87654321_]
            ((((int)in[17 + inPos]) <<  1) & 511)
        | //                         [__543210]
          //                           [432109_________]
            ((((int)in[18 + inPos]) <<  9) & 32767);
      out[10 + outPos] =
          //                         [76______]
          //            [_____________10]
            ((((int)in[18 + inPos]) >>  6) & 3)
        | //                         [76543210]
          //                    [_____98765432__]
            ((((int)in[19 + inPos]) <<  2) & 1023)
        | //                         [___43210]
          //                            [43210__________]
            ((((int)in[20 + inPos]) <<  10) & 32767);
      out[11 + outPos] =
          //                         [765_____]
          //             [____________210]
            ((((int)in[20 + inPos]) >>  5) & 7)
        | //                         [76543210]
          //                     [____09876543___]
            ((((int)in[21 + inPos]) <<  3) & 2047)
        | //                         [____3210]
          //                             [4321___________]
            ((((int)in[22 + inPos]) <<  11) & 32767);
      out[12 + outPos] =
          //                         [7654____]
          //              [___________3210]
            ((((int)in[22 + inPos]) >>  4) & 15)
        | //                         [76543210]
          //                      [___10987654____]
            ((((int)in[23 + inPos]) <<  4) & 4095)
        | //                         [_____210]
          //                              [432____________]
            ((((int)in[24 + inPos]) <<  12) & 32767);
      out[13 + outPos] =
          //                         [76543___]
          //               [__________43210]
            ((((int)in[24 + inPos]) >>  3) & 31)
        | //                         [76543210]
          //                       [__21098765_____]
            ((((int)in[25 + inPos]) <<  5) & 8191)
        | //                         [______10]
          //                               [43_____________]
            ((((int)in[26 + inPos]) <<  13) & 32767);
      out[14 + outPos] =
          //                         [765432__]
          //                [_________543210]
            ((((int)in[26 + inPos]) >>  2) & 63)
        | //                         [76543210]
          //                        [_32109876______]
            ((((int)in[27 + inPos]) <<  6) & 16383)
        | //                         [_______0]
          //                                [4______________]
            ((((int)in[28 + inPos]) <<  14) & 32767);
      out[15 + outPos] =
          //                         [7654321_]
          //                 [________6543210]
            ((((int)in[28 + inPos]) >>  1) & 127)
        | //                         [76543210]
          //                         [43210987_______]
            ((((int)in[29 + inPos]) <<  7) & 32767);
      out[16 + outPos] =
          //                         [76543210]
          //                  [_______76543210]
            ((((int)in[30 + inPos]) ) & 255)
        | //                         [_6543210]
          //                          [4321098________]
            ((((int)in[31 + inPos]) <<  8) & 32767);
      out[17 + outPos] =
          //                         [7_______]
          //           [______________0]
            ((((int)in[31 + inPos]) >>  7) & 1)
        | //                         [76543210]
          //                   [______87654321_]
            ((((int)in[32 + inPos]) <<  1) & 511)
        | //                         [__543210]
          //                           [432109_________]
            ((((int)in[33 + inPos]) <<  9) & 32767);
      out[18 + outPos] =
          //                         [76______]
          //            [_____________10]
            ((((int)in[33 + inPos]) >>  6) & 3)
        | //                         [76543210]
          //                    [_____98765432__]
            ((((int)in[34 + inPos]) <<  2) & 1023)
        | //                         [___43210]
          //                            [43210__________]
            ((((int)in[35 + inPos]) <<  10) & 32767);
      out[19 + outPos] =
          //                         [765_____]
          //             [____________210]
            ((((int)in[35 + inPos]) >>  5) & 7)
        | //                         [76543210]
          //                     [____09876543___]
            ((((int)in[36 + inPos]) <<  3) & 2047)
        | //                         [____3210]
          //                             [4321___________]
            ((((int)in[37 + inPos]) <<  11) & 32767);
      out[20 + outPos] =
          //                         [7654____]
          //              [___________3210]
            ((((int)in[37 + inPos]) >>  4) & 15)
        | //                         [76543210]
          //                      [___10987654____]
            ((((int)in[38 + inPos]) <<  4) & 4095)
        | //                         [_____210]
          //                              [432____________]
            ((((int)in[39 + inPos]) <<  12) & 32767);
      out[21 + outPos] =
          //                         [76543___]
          //               [__________43210]
            ((((int)in[39 + inPos]) >>  3) & 31)
        | //                         [76543210]
          //                       [__21098765_____]
            ((((int)in[40 + inPos]) <<  5) & 8191)
        | //                         [______10]
          //                               [43_____________]
            ((((int)in[41 + inPos]) <<  13) & 32767);
      out[22 + outPos] =
          //                         [765432__]
          //                [_________543210]
            ((((int)in[41 + inPos]) >>  2) & 63)
        | //                         [76543210]
          //                        [_32109876______]
            ((((int)in[42 + inPos]) <<  6) & 16383)
        | //                         [_______0]
          //                                [4______________]
            ((((int)in[43 + inPos]) <<  14) & 32767);
      out[23 + outPos] =
          //                         [7654321_]
          //                 [________6543210]
            ((((int)in[43 + inPos]) >>  1) & 127)
        | //                         [76543210]
          //                         [43210987_______]
            ((((int)in[44 + inPos]) <<  7) & 32767);
      out[24 + outPos] =
          //                         [76543210]
          //                  [_______76543210]
            ((((int)in[45 + inPos]) ) & 255)
        | //                         [_6543210]
          //                          [4321098________]
            ((((int)in[46 + inPos]) <<  8) & 32767);
      out[25 + outPos] =
          //                         [7_______]
          //           [______________0]
            ((((int)in[46 + inPos]) >>  7) & 1)
        | //                         [76543210]
          //                   [______87654321_]
            ((((int)in[47 + inPos]) <<  1) & 511)
        | //                         [__543210]
          //                           [432109_________]
            ((((int)in[48 + inPos]) <<  9) & 32767);
      out[26 + outPos] =
          //                         [76______]
          //            [_____________10]
            ((((int)in[48 + inPos]) >>  6) & 3)
        | //                         [76543210]
          //                    [_____98765432__]
            ((((int)in[49 + inPos]) <<  2) & 1023)
        | //                         [___43210]
          //                            [43210__________]
            ((((int)in[50 + inPos]) <<  10) & 32767);
      out[27 + outPos] =
          //                         [765_____]
          //             [____________210]
            ((((int)in[50 + inPos]) >>  5) & 7)
        | //                         [76543210]
          //                     [____09876543___]
            ((((int)in[51 + inPos]) <<  3) & 2047)
        | //                         [____3210]
          //                             [4321___________]
            ((((int)in[52 + inPos]) <<  11) & 32767);
      out[28 + outPos] =
          //                         [7654____]
          //              [___________3210]
            ((((int)in[52 + inPos]) >>  4) & 15)
        | //                         [76543210]
          //                      [___10987654____]
            ((((int)in[53 + inPos]) <<  4) & 4095)
        | //                         [_____210]
          //                              [432____________]
            ((((int)in[54 + inPos]) <<  12) & 32767);
      out[29 + outPos] =
          //                         [76543___]
          //               [__________43210]
            ((((int)in[54 + inPos]) >>  3) & 31)
        | //                         [76543210]
          //                       [__21098765_____]
            ((((int)in[55 + inPos]) <<  5) & 8191)
        | //                         [______10]
          //                               [43_____________]
            ((((int)in[56 + inPos]) <<  13) & 32767);
      out[30 + outPos] =
          //                         [765432__]
          //                [_________543210]
            ((((int)in[56 + inPos]) >>  2) & 63)
        | //                         [76543210]
          //                        [_32109876______]
            ((((int)in[57 + inPos]) <<  6) & 16383)
        | //                         [_______0]
          //                                [4______________]
            ((((int)in[58 + inPos]) <<  14) & 32767);
      out[31 + outPos] =
          //                         [7654321_]
          //                 [________6543210]
            ((((int)in[58 + inPos]) >>  1) & 127)
        | //                         [76543210]
          //                         [43210987_______]
            ((((int)in[59 + inPos]) <<  7) & 32767);
    }
    public final void unpack32Values(final ByteBuffer in, final int inPos, final int[] out, final int outPos) {
      out[ 0 + outPos] =
          //                         [76543210]
          //                  [_______76543210]
            ((((int)in.get( 0 + inPos)) ) & 255)
        | //                         [_6543210]
          //                          [4321098________]
            ((((int)in.get( 1 + inPos)) <<  8) & 32767);
      out[ 1 + outPos] =
          //                         [7_______]
          //           [______________0]
            ((((int)in.get( 1 + inPos)) >>  7) & 1)
        | //                         [76543210]
          //                   [______87654321_]
            ((((int)in.get( 2 + inPos)) <<  1) & 511)
        | //                         [__543210]
          //                           [432109_________]
            ((((int)in.get( 3 + inPos)) <<  9) & 32767);
      out[ 2 + outPos] =
          //                         [76______]
          //            [_____________10]
            ((((int)in.get( 3 + inPos)) >>  6) & 3)
        | //                         [76543210]
          //                    [_____98765432__]
            ((((int)in.get( 4 + inPos)) <<  2) & 1023)
        | //                         [___43210]
          //                            [43210__________]
            ((((int)in.get( 5 + inPos)) <<  10) & 32767);
      out[ 3 + outPos] =
          //                         [765_____]
          //             [____________210]
            ((((int)in.get( 5 + inPos)) >>  5) & 7)
        | //                         [76543210]
          //                     [____09876543___]
            ((((int)in.get( 6 + inPos)) <<  3) & 2047)
        | //                         [____3210]
          //                             [4321___________]
            ((((int)in.get( 7 + inPos)) <<  11) & 32767);
      out[ 4 + outPos] =
          //                         [7654____]
          //              [___________3210]
            ((((int)in.get( 7 + inPos)) >>  4) & 15)
        | //                         [76543210]
          //                      [___10987654____]
            ((((int)in.get( 8 + inPos)) <<  4) & 4095)
        | //                         [_____210]
          //                              [432____________]
            ((((int)in.get( 9 + inPos)) <<  12) & 32767);
      out[ 5 + outPos] =
          //                         [76543___]
          //               [__________43210]
            ((((int)in.get( 9 + inPos)) >>  3) & 31)
        | //                         [76543210]
          //                       [__21098765_____]
            ((((int)in.get(10 + inPos)) <<  5) & 8191)
        | //                         [______10]
          //                               [43_____________]
            ((((int)in.get(11 + inPos)) <<  13) & 32767);
      out[ 6 + outPos] =
          //                         [765432__]
          //                [_________543210]
            ((((int)in.get(11 + inPos)) >>  2) & 63)
        | //                         [76543210]
          //                        [_32109876______]
            ((((int)in.get(12 + inPos)) <<  6) & 16383)
        | //                         [_______0]
          //                                [4______________]
            ((((int)in.get(13 + inPos)) <<  14) & 32767);
      out[ 7 + outPos] =
          //                         [7654321_]
          //                 [________6543210]
            ((((int)in.get(13 + inPos)) >>  1) & 127)
        | //                         [76543210]
          //                         [43210987_______]
            ((((int)in.get(14 + inPos)) <<  7) & 32767);
      out[ 8 + outPos] =
          //                         [76543210]
          //                  [_______76543210]
            ((((int)in.get(15 + inPos)) ) & 255)
        | //                         [_6543210]
          //                          [4321098________]
            ((((int)in.get(16 + inPos)) <<  8) & 32767);
      out[ 9 + outPos] =
          //                         [7_______]
          //           [______________0]
            ((((int)in.get(16 + inPos)) >>  7) & 1)
        | //                         [76543210]
          //                   [______87654321_]
            ((((int)in.get(17 + inPos)) <<  1) & 511)
        | //                         [__543210]
          //                           [432109_________]
            ((((int)in.get(18 + inPos)) <<  9) & 32767);
      out[10 + outPos] =
          //                         [76______]
          //            [_____________10]
            ((((int)in.get(18 + inPos)) >>  6) & 3)
        | //                         [76543210]
          //                    [_____98765432__]
            ((((int)in.get(19 + inPos)) <<  2) & 1023)
        | //                         [___43210]
          //                            [43210__________]
            ((((int)in.get(20 + inPos)) <<  10) & 32767);
      out[11 + outPos] =
          //                         [765_____]
          //             [____________210]
            ((((int)in.get(20 + inPos)) >>  5) & 7)
        | //                         [76543210]
          //                     [____09876543___]
            ((((int)in.get(21 + inPos)) <<  3) & 2047)
        | //                         [____3210]
          //                             [4321___________]
            ((((int)in.get(22 + inPos)) <<  11) & 32767);
      out[12 + outPos] =
          //                         [7654____]
          //              [___________3210]
            ((((int)in.get(22 + inPos)) >>  4) & 15)
        | //                         [76543210]
          //                      [___10987654____]
            ((((int)in.get(23 + inPos)) <<  4) & 4095)
        | //                         [_____210]
          //                              [432____________]
            ((((int)in.get(24 + inPos)) <<  12) & 32767);
      out[13 + outPos] =
          //                         [76543___]
          //               [__________43210]
            ((((int)in.get(24 + inPos)) >>  3) & 31)
        | //                         [76543210]
          //                       [__21098765_____]
            ((((int)in.get(25 + inPos)) <<  5) & 8191)
        | //                         [______10]
          //                               [43_____________]
            ((((int)in.get(26 + inPos)) <<  13) & 32767);
      out[14 + outPos] =
          //                         [765432__]
          //                [_________543210]
            ((((int)in.get(26 + inPos)) >>  2) & 63)
        | //                         [76543210]
          //                        [_32109876______]
            ((((int)in.get(27 + inPos)) <<  6) & 16383)
        | //                         [_______0]
          //                                [4______________]
            ((((int)in.get(28 + inPos)) <<  14) & 32767);
      out[15 + outPos] =
          //                         [7654321_]
          //                 [________6543210]
            ((((int)in.get(28 + inPos)) >>  1) & 127)
        | //                         [76543210]
          //                         [43210987_______]
            ((((int)in.get(29 + inPos)) <<  7) & 32767);
      out[16 + outPos] =
          //                         [76543210]
          //                  [_______76543210]
            ((((int)in.get(30 + inPos)) ) & 255)
        | //                         [_6543210]
          //                          [4321098________]
            ((((int)in.get(31 + inPos)) <<  8) & 32767);
      out[17 + outPos] =
          //                         [7_______]
          //           [______________0]
            ((((int)in.get(31 + inPos)) >>  7) & 1)
        | //                         [76543210]
          //                   [______87654321_]
            ((((int)in.get(32 + inPos)) <<  1) & 511)
        | //                         [__543210]
          //                           [432109_________]
            ((((int)in.get(33 + inPos)) <<  9) & 32767);
      out[18 + outPos] =
          //                         [76______]
          //            [_____________10]
            ((((int)in.get(33 + inPos)) >>  6) & 3)
        | //                         [76543210]
          //                    [_____98765432__]
            ((((int)in.get(34 + inPos)) <<  2) & 1023)
        | //                         [___43210]
          //                            [43210__________]
            ((((int)in.get(35 + inPos)) <<  10) & 32767);
      out[19 + outPos] =
          //                         [765_____]
          //             [____________210]
            ((((int)in.get(35 + inPos)) >>  5) & 7)
        | //                         [76543210]
          //                     [____09876543___]
            ((((int)in.get(36 + inPos)) <<  3) & 2047)
        | //                         [____3210]
          //                             [4321___________]
            ((((int)in.get(37 + inPos)) <<  11) & 32767);
      out[20 + outPos] =
          //                         [7654____]
          //              [___________3210]
            ((((int)in.get(37 + inPos)) >>  4) & 15)
        | //                         [76543210]
          //                      [___10987654____]
            ((((int)in.get(38 + inPos)) <<  4) & 4095)
        | //                         [_____210]
          //                              [432____________]
            ((((int)in.get(39 + inPos)) <<  12) & 32767);
      out[21 + outPos] =
          //                         [76543___]
          //               [__________43210]
            ((((int)in.get(39 + inPos)) >>  3) & 31)
        | //                         [76543210]
          //                       [__21098765_____]
            ((((int)in.get(40 + inPos)) <<  5) & 8191)
        | //                         [______10]
          //                               [43_____________]
            ((((int)in.get(41 + inPos)) <<  13) & 32767);
      out[22 + outPos] =
          //                         [765432__]
          //                [_________543210]
            ((((int)in.get(41 + inPos)) >>  2) & 63)
        | //                         [76543210]
          //                        [_32109876______]
            ((((int)in.get(42 + inPos)) <<  6) & 16383)
        | //                         [_______0]
          //                                [4______________]
            ((((int)in.get(43 + inPos)) <<  14) & 32767);
      out[23 + outPos] =
          //                         [7654321_]
          //                 [________6543210]
            ((((int)in.get(43 + inPos)) >>  1) & 127)
        | //                         [76543210]
          //                         [43210987_______]
            ((((int)in.get(44 + inPos)) <<  7) & 32767);
      out[24 + outPos] =
          //                         [76543210]
          //                  [_______76543210]
            ((((int)in.get(45 + inPos)) ) & 255)
        | //                         [_6543210]
          //                          [4321098________]
            ((((int)in.get(46 + inPos)) <<  8) & 32767);
      out[25 + outPos] =
          //                         [7_______]
          //           [______________0]
            ((((int)in.get(46 + inPos)) >>  7) & 1)
        | //                         [76543210]
          //                   [______87654321_]
            ((((int)in.get(47 + inPos)) <<  1) & 511)
        | //                         [__543210]
          //                           [432109_________]
            ((((int)in.get(48 + inPos)) <<  9) & 32767);
      out[26 + outPos] =
          //                         [76______]
          //            [_____________10]
            ((((int)in.get(48 + inPos)) >>  6) & 3)
        | //                         [76543210]
          //                    [_____98765432__]
            ((((int)in.get(49 + inPos)) <<  2) & 1023)
        | //                         [___43210]
          //                            [43210__________]
            ((((int)in.get(50 + inPos)) <<  10) & 32767);
      out[27 + outPos] =
          //                         [765_____]
          //             [____________210]
            ((((int)in.get(50 + inPos)) >>  5) & 7)
        | //                         [76543210]
          //                     [____09876543___]
            ((((int)in.get(51 + inPos)) <<  3) & 2047)
        | //                         [____3210]
          //                             [4321___________]
            ((((int)in.get(52 + inPos)) <<  11) & 32767);
      out[28 + outPos] =
          //                         [7654____]
          //              [___________3210]
            ((((int)in.get(52 + inPos)) >>  4) & 15)
        | //                         [76543210]
          //                      [___10987654____]
            ((((int)in.get(53 + inPos)) <<  4) & 4095)
        | //                         [_____210]
          //                              [432____________]
            ((((int)in.get(54 + inPos)) <<  12) & 32767);
      out[29 + outPos] =
          //                         [76543___]
          //               [__________43210]
            ((((int)in.get(54 + inPos)) >>  3) & 31)
        | //                         [76543210]
          //                       [__21098765_____]
            ((((int)in.get(55 + inPos)) <<  5) & 8191)
        | //                         [______10]
          //                               [43_____________]
            ((((int)in.get(56 + inPos)) <<  13) & 32767);
      out[30 + outPos] =
          //                         [765432__]
          //                [_________543210]
            ((((int)in.get(56 + inPos)) >>  2) & 63)
        | //                         [76543210]
          //                        [_32109876______]
            ((((int)in.get(57 + inPos)) <<  6) & 16383)
        | //                         [_______0]
          //                                [4______________]
            ((((int)in.get(58 + inPos)) <<  14) & 32767);
      out[31 + outPos] =
          //                         [7654321_]
          //                 [________6543210]
            ((((int)in.get(58 + inPos)) >>  1) & 127)
        | //                         [76543210]
          //                         [43210987_______]
            ((((int)in.get(59 + inPos)) <<  7) & 32767);
    }
  }

  private static final class Packer16 extends BytePacker {

    private Packer16() {
      super(16);
    }

    public final void pack8Values(final int[] in, final int inPos, final byte[] out, final int outPos) {
      out[ 0 + outPos] = (byte)((
          //                          [76543210]
          //                  [________76543210]
           ((in[ 0 + inPos] & 65535))) & 255);
      out[ 1 + outPos] = (byte)((
          //                          [76543210]
          //                          [54321098________]
           ((in[ 0 + inPos] & 65535) >>> 8)) & 255);
      out[ 2 + outPos] = (byte)((
          //                          [76543210]
          //                  [________76543210]
           ((in[ 1 + inPos] & 65535))) & 255);
      out[ 3 + outPos] = (byte)((
          //                          [76543210]
          //                          [54321098________]
           ((in[ 1 + inPos] & 65535) >>> 8)) & 255);
      out[ 4 + outPos] = (byte)((
          //                          [76543210]
          //                  [________76543210]
           ((in[ 2 + inPos] & 65535))) & 255);
      out[ 5 + outPos] = (byte)((
          //                          [76543210]
          //                          [54321098________]
           ((in[ 2 + inPos] & 65535) >>> 8)) & 255);
      out[ 6 + outPos] = (byte)((
          //                          [76543210]
          //                  [________76543210]
           ((in[ 3 + inPos] & 65535))) & 255);
      out[ 7 + outPos] = (byte)((
          //                          [76543210]
          //                          [54321098________]
           ((in[ 3 + inPos] & 65535) >>> 8)) & 255);
      out[ 8 + outPos] = (byte)((
          //                          [76543210]
          //                  [________76543210]
           ((in[ 4 + inPos] & 65535))) & 255);
      out[ 9 + outPos] = (byte)((
          //                          [76543210]
          //                          [54321098________]
           ((in[ 4 + inPos] & 65535) >>> 8)) & 255);
      out[10 + outPos] = (byte)((
          //                          [76543210]
          //                  [________76543210]
           ((in[ 5 + inPos] & 65535))) & 255);
      out[11 + outPos] = (byte)((
          //                          [76543210]
          //                          [54321098________]
           ((in[ 5 + inPos] & 65535) >>> 8)) & 255);
      out[12 + outPos] = (byte)((
          //                          [76543210]
          //                  [________76543210]
           ((in[ 6 + inPos] & 65535))) & 255);
      out[13 + outPos] = (byte)((
          //                          [76543210]
          //                          [54321098________]
           ((in[ 6 + inPos] & 65535) >>> 8)) & 255);
      out[14 + outPos] = (byte)((
          //                          [76543210]
          //                  [________76543210]
           ((in[ 7 + inPos] & 65535))) & 255);
      out[15 + outPos] = (byte)((
          //                          [76543210]
          //                          [54321098________]
           ((in[ 7 + inPos] & 65535) >>> 8)) & 255);
    }
    public final void pack32Values(final int[] in, final int inPos, final byte[] out, final int outPos) {
      out[ 0 + outPos] = (byte)((
          //                          [76543210]
          //                  [________76543210]
           ((in[ 0 + inPos] & 65535))) & 255);
      out[ 1 + outPos] = (byte)((
          //                          [76543210]
          //                          [54321098________]
           ((in[ 0 + inPos] & 65535) >>> 8)) & 255);
      out[ 2 + outPos] = (byte)((
          //                          [76543210]
          //                  [________76543210]
           ((in[ 1 + inPos] & 65535))) & 255);
      out[ 3 + outPos] = (byte)((
          //                          [76543210]
          //                          [54321098________]
           ((in[ 1 + inPos] & 65535) >>> 8)) & 255);
      out[ 4 + outPos] = (byte)((
          //                          [76543210]
          //                  [________76543210]
           ((in[ 2 + inPos] & 65535))) & 255);
      out[ 5 + outPos] = (byte)((
          //                          [76543210]
          //                          [54321098________]
           ((in[ 2 + inPos] & 65535) >>> 8)) & 255);
      out[ 6 + outPos] = (byte)((
          //                          [76543210]
          //                  [________76543210]
           ((in[ 3 + inPos] & 65535))) & 255);
      out[ 7 + outPos] = (byte)((
          //                          [76543210]
          //                          [54321098________]
           ((in[ 3 + inPos] & 65535) >>> 8)) & 255);
      out[ 8 + outPos] = (byte)((
          //                          [76543210]
          //                  [________76543210]
           ((in[ 4 + inPos] & 65535))) & 255);
      out[ 9 + outPos] = (byte)((
          //                          [76543210]
          //                          [54321098________]
           ((in[ 4 + inPos] & 65535) >>> 8)) & 255);
      out[10 + outPos] = (byte)((
          //                          [76543210]
          //                  [________76543210]
           ((in[ 5 + inPos] & 65535))) & 255);
      out[11 + outPos] = (byte)((
          //                          [76543210]
          //                          [54321098________]
           ((in[ 5 + inPos] & 65535) >>> 8)) & 255);
      out[12 + outPos] = (byte)((
          //                          [76543210]
          //                  [________76543210]
           ((in[ 6 + inPos] & 65535))) & 255);
      out[13 + outPos] = (byte)((
          //                          [76543210]
          //                          [54321098________]
           ((in[ 6 + inPos] & 65535) >>> 8)) & 255);
      out[14 + outPos] = (byte)((
          //                          [76543210]
          //                  [________76543210]
           ((in[ 7 + inPos] & 65535))) & 255);
      out[15 + outPos] = (byte)((
          //                          [76543210]
          //                          [54321098________]
           ((in[ 7 + inPos] & 65535) >>> 8)) & 255);
      out[16 + outPos] = (byte)((
          //                          [76543210]
          //                  [________76543210]
           ((in[ 8 + inPos] & 65535))) & 255);
      out[17 + outPos] = (byte)((
          //                          [76543210]
          //                          [54321098________]
           ((in[ 8 + inPos] & 65535) >>> 8)) & 255);
      out[18 + outPos] = (byte)((
          //                          [76543210]
          //                  [________76543210]
           ((in[ 9 + inPos] & 65535))) & 255);
      out[19 + outPos] = (byte)((
          //                          [76543210]
          //                          [54321098________]
           ((in[ 9 + inPos] & 65535) >>> 8)) & 255);
      out[20 + outPos] = (byte)((
          //                          [76543210]
          //                  [________76543210]
           ((in[10 + inPos] & 65535))) & 255);
      out[21 + outPos] = (byte)((
          //                          [76543210]
          //                          [54321098________]
           ((in[10 + inPos] & 65535) >>> 8)) & 255);
      out[22 + outPos] = (byte)((
          //                          [76543210]
          //                  [________76543210]
           ((in[11 + inPos] & 65535))) & 255);
      out[23 + outPos] = (byte)((
          //                          [76543210]
          //                          [54321098________]
           ((in[11 + inPos] & 65535) >>> 8)) & 255);
      out[24 + outPos] = (byte)((
          //                          [76543210]
          //                  [________76543210]
           ((in[12 + inPos] & 65535))) & 255);
      out[25 + outPos] = (byte)((
          //                          [76543210]
          //                          [54321098________]
           ((in[12 + inPos] & 65535) >>> 8)) & 255);
      out[26 + outPos] = (byte)((
          //                          [76543210]
          //                  [________76543210]
           ((in[13 + inPos] & 65535))) & 255);
      out[27 + outPos] = (byte)((
          //                          [76543210]
          //                          [54321098________]
           ((in[13 + inPos] & 65535) >>> 8)) & 255);
      out[28 + outPos] = (byte)((
          //                          [76543210]
          //                  [________76543210]
           ((in[14 + inPos] & 65535))) & 255);
      out[29 + outPos] = (byte)((
          //                          [76543210]
          //                          [54321098________]
           ((in[14 + inPos] & 65535) >>> 8)) & 255);
      out[30 + outPos] = (byte)((
          //                          [76543210]
          //                  [________76543210]
           ((in[15 + inPos] & 65535))) & 255);
      out[31 + outPos] = (byte)((
          //                          [76543210]
          //                          [54321098________]
           ((in[15 + inPos] & 65535) >>> 8)) & 255);
      out[32 + outPos] = (byte)((
          //                          [76543210]
          //                  [________76543210]
           ((in[16 + inPos] & 65535))) & 255);
      out[33 + outPos] = (byte)((
          //                          [76543210]
          //                          [54321098________]
           ((in[16 + inPos] & 65535) >>> 8)) & 255);
      out[34 + outPos] = (byte)((
          //                          [76543210]
          //                  [________76543210]
           ((in[17 + inPos] & 65535))) & 255);
      out[35 + outPos] = (byte)((
          //                          [76543210]
          //                          [54321098________]
           ((in[17 + inPos] & 65535) >>> 8)) & 255);
      out[36 + outPos] = (byte)((
          //                          [76543210]
          //                  [________76543210]
           ((in[18 + inPos] & 65535))) & 255);
      out[37 + outPos] = (byte)((
          //                          [76543210]
          //                          [54321098________]
           ((in[18 + inPos] & 65535) >>> 8)) & 255);
      out[38 + outPos] = (byte)((
          //                          [76543210]
          //                  [________76543210]
           ((in[19 + inPos] & 65535))) & 255);
      out[39 + outPos] = (byte)((
          //                          [76543210]
          //                          [54321098________]
           ((in[19 + inPos] & 65535) >>> 8)) & 255);
      out[40 + outPos] = (byte)((
          //                          [76543210]
          //                  [________76543210]
           ((in[20 + inPos] & 65535))) & 255);
      out[41 + outPos] = (byte)((
          //                          [76543210]
          //                          [54321098________]
           ((in[20 + inPos] & 65535) >>> 8)) & 255);
      out[42 + outPos] = (byte)((
          //                          [76543210]
          //                  [________76543210]
           ((in[21 + inPos] & 65535))) & 255);
      out[43 + outPos] = (byte)((
          //                          [76543210]
          //                          [54321098________]
           ((in[21 + inPos] & 65535) >>> 8)) & 255);
      out[44 + outPos] = (byte)((
          //                          [76543210]
          //                  [________76543210]
           ((in[22 + inPos] & 65535))) & 255);
      out[45 + outPos] = (byte)((
          //                          [76543210]
          //                          [54321098________]
           ((in[22 + inPos] & 65535) >>> 8)) & 255);
      out[46 + outPos] = (byte)((
          //                          [76543210]
          //                  [________76543210]
           ((in[23 + inPos] & 65535))) & 255);
      out[47 + outPos] = (byte)((
          //                          [76543210]
          //                          [54321098________]
           ((in[23 + inPos] & 65535) >>> 8)) & 255);
      out[48 + outPos] = (byte)((
          //                          [76543210]
          //                  [________76543210]
           ((in[24 + inPos] & 65535))) & 255);
      out[49 + outPos] = (byte)((
          //                          [76543210]
          //                          [54321098________]
           ((in[24 + inPos] & 65535) >>> 8)) & 255);
      out[50 + outPos] = (byte)((
          //                          [76543210]
          //                  [________76543210]
           ((in[25 + inPos] & 65535))) & 255);
      out[51 + outPos] = (byte)((
          //                          [76543210]
          //                          [54321098________]
           ((in[25 + inPos] & 65535) >>> 8)) & 255);
      out[52 + outPos] = (byte)((
          //                          [76543210]
          //                  [________76543210]
           ((in[26 + inPos] & 65535))) & 255);
      out[53 + outPos] = (byte)((
          //                          [76543210]
          //                          [54321098________]
           ((in[26 + inPos] & 65535) >>> 8)) & 255);
      out[54 + outPos] = (byte)((
          //                          [76543210]
          //                  [________76543210]
           ((in[27 + inPos] & 65535))) & 255);
      out[55 + outPos] = (byte)((
          //                          [76543210]
          //                          [54321098________]
           ((in[27 + inPos] & 65535) >>> 8)) & 255);
      out[56 + outPos] = (byte)((
          //                          [76543210]
          //                  [________76543210]
           ((in[28 + inPos] & 65535))) & 255);
      out[57 + outPos] = (byte)((
          //                          [76543210]
          //                          [54321098________]
           ((in[28 + inPos] & 65535) >>> 8)) & 255);
      out[58 + outPos] = (byte)((
          //                          [76543210]
          //                  [________76543210]
           ((in[29 + inPos] & 65535))) & 255);
      out[59 + outPos] = (byte)((
          //                          [76543210]
          //                          [54321098________]
           ((in[29 + inPos] & 65535) >>> 8)) & 255);
      out[60 + outPos] = (byte)((
          //                          [76543210]
          //                  [________76543210]
           ((in[30 + inPos] & 65535))) & 255);
      out[61 + outPos] = (byte)((
          //                          [76543210]
          //                          [54321098________]
           ((in[30 + inPos] & 65535) >>> 8)) & 255);
      out[62 + outPos] = (byte)((
          //                          [76543210]
          //                  [________76543210]
           ((in[31 + inPos] & 65535))) & 255);
      out[63 + outPos] = (byte)((
          //                          [76543210]
          //                          [54321098________]
           ((in[31 + inPos] & 65535) >>> 8)) & 255);
    }
    public final void unpack8Values(final byte[] in, final int inPos, final int[] out, final int outPos) {
      out[ 0 + outPos] =
          //                          [76543210]
          //                  [________76543210]
            ((((int)in[ 0 + inPos]) ) & 255)
        | //                          [76543210]
          //                          [54321098________]
            ((((int)in[ 1 + inPos]) <<  8) & 65535);
      out[ 1 + outPos] =
          //                          [76543210]
          //                  [________76543210]
            ((((int)in[ 2 + inPos]) ) & 255)
        | //                          [76543210]
          //                          [54321098________]
            ((((int)in[ 3 + inPos]) <<  8) & 65535);
      out[ 2 + outPos] =
          //                          [76543210]
          //                  [________76543210]
            ((((int)in[ 4 + inPos]) ) & 255)
        | //                          [76543210]
          //                          [54321098________]
            ((((int)in[ 5 + inPos]) <<  8) & 65535);
      out[ 3 + outPos] =
          //                          [76543210]
          //                  [________76543210]
            ((((int)in[ 6 + inPos]) ) & 255)
        | //                          [76543210]
          //                          [54321098________]
            ((((int)in[ 7 + inPos]) <<  8) & 65535);
      out[ 4 + outPos] =
          //                          [76543210]
          //                  [________76543210]
            ((((int)in[ 8 + inPos]) ) & 255)
        | //                          [76543210]
          //                          [54321098________]
            ((((int)in[ 9 + inPos]) <<  8) & 65535);
      out[ 5 + outPos] =
          //                          [76543210]
          //                  [________76543210]
            ((((int)in[10 + inPos]) ) & 255)
        | //                          [76543210]
          //                          [54321098________]
            ((((int)in[11 + inPos]) <<  8) & 65535);
      out[ 6 + outPos] =
          //                          [76543210]
          //                  [________76543210]
            ((((int)in[12 + inPos]) ) & 255)
        | //                          [76543210]
          //                          [54321098________]
            ((((int)in[13 + inPos]) <<  8) & 65535);
      out[ 7 + outPos] =
          //                          [76543210]
          //                  [________76543210]
            ((((int)in[14 + inPos]) ) & 255)
        | //                          [76543210]
          //                          [54321098________]
            ((((int)in[15 + inPos]) <<  8) & 65535);
    }
    public final void unpack8Values(final ByteBuffer in, final int inPos, final int[] out, final int outPos) {
      out[ 0 + outPos] =
          //                          [76543210]
          //                  [________76543210]
            ((((int)in.get( 0 + inPos)) ) & 255)
        | //                          [76543210]
          //                          [54321098________]
            ((((int)in.get( 1 + inPos)) <<  8) & 65535);
      out[ 1 + outPos] =
          //                          [76543210]
          //                  [________76543210]
            ((((int)in.get( 2 + inPos)) ) & 255)
        | //                          [76543210]
          //                          [54321098________]
            ((((int)in.get( 3 + inPos)) <<  8) & 65535);
      out[ 2 + outPos] =
          //                          [76543210]
          //                  [________76543210]
            ((((int)in.get( 4 + inPos)) ) & 255)
        | //                          [76543210]
          //                          [54321098________]
            ((((int)in.get( 5 + inPos)) <<  8) & 65535);
      out[ 3 + outPos] =
          //                          [76543210]
          //                  [________76543210]
            ((((int)in.get( 6 + inPos)) ) & 255)
        | //                          [76543210]
          //                          [54321098________]
            ((((int)in.get( 7 + inPos)) <<  8) & 65535);
      out[ 4 + outPos] =
          //                          [76543210]
          //                  [________76543210]
            ((((int)in.get( 8 + inPos)) ) & 255)
        | //                          [76543210]
          //                          [54321098________]
            ((((int)in.get( 9 + inPos)) <<  8) & 65535);
      out[ 5 + outPos] =
          //                          [76543210]
          //                  [________76543210]
            ((((int)in.get(10 + inPos)) ) & 255)
        | //                          [76543210]
          //                          [54321098________]
            ((((int)in.get(11 + inPos)) <<  8) & 65535);
      out[ 6 + outPos] =
          //                          [76543210]
          //                  [________76543210]
            ((((int)in.get(12 + inPos)) ) & 255)
        | //                          [76543210]
          //                          [54321098________]
            ((((int)in.get(13 + inPos)) <<  8) & 65535);
      out[ 7 + outPos] =
          //                          [76543210]
          //                  [________76543210]
            ((((int)in.get(14 + inPos)) ) & 255)
        | //                          [76543210]
          //                          [54321098________]
            ((((int)in.get(15 + inPos)) <<  8) & 65535);
    }
    public final void unpack32Values(final byte[] in, final int inPos, final int[] out, final int outPos) {
      out[ 0 + outPos] =
          //                          [76543210]
          //                  [________76543210]
            ((((int)in[ 0 + inPos]) ) & 255)
        | //                          [76543210]
          //                          [54321098________]
            ((((int)in[ 1 + inPos]) <<  8) & 65535);
      out[ 1 + outPos] =
          //                          [76543210]
          //                  [________76543210]
            ((((int)in[ 2 + inPos]) ) & 255)
        | //                          [76543210]
          //                          [54321098________]
            ((((int)in[ 3 + inPos]) <<  8) & 65535);
      out[ 2 + outPos] =
          //                          [76543210]
          //                  [________76543210]
            ((((int)in[ 4 + inPos]) ) & 255)
        | //                          [76543210]
          //                          [54321098________]
            ((((int)in[ 5 + inPos]) <<  8) & 65535);
      out[ 3 + outPos] =
          //                          [76543210]
          //                  [________76543210]
            ((((int)in[ 6 + inPos]) ) & 255)
        | //                          [76543210]
          //                          [54321098________]
            ((((int)in[ 7 + inPos]) <<  8) & 65535);
      out[ 4 + outPos] =
          //                          [76543210]
          //                  [________76543210]
            ((((int)in[ 8 + inPos]) ) & 255)
        | //                          [76543210]
          //                          [54321098________]
            ((((int)in[ 9 + inPos]) <<  8) & 65535);
      out[ 5 + outPos] =
          //                          [76543210]
          //                  [________76543210]
            ((((int)in[10 + inPos]) ) & 255)
        | //                          [76543210]
          //                          [54321098________]
            ((((int)in[11 + inPos]) <<  8) & 65535);
      out[ 6 + outPos] =
          //                          [76543210]
          //                  [________76543210]
            ((((int)in[12 + inPos]) ) & 255)
        | //                          [76543210]
          //                          [54321098________]
            ((((int)in[13 + inPos]) <<  8) & 65535);
      out[ 7 + outPos] =
          //                          [76543210]
          //                  [________76543210]
            ((((int)in[14 + inPos]) ) & 255)
        | //                          [76543210]
          //                          [54321098________]
            ((((int)in[15 + inPos]) <<  8) & 65535);
      out[ 8 + outPos] =
          //                          [76543210]
          //                  [________76543210]
            ((((int)in[16 + inPos]) ) & 255)
        | //                          [76543210]
          //                          [54321098________]
            ((((int)in[17 + inPos]) <<  8) & 65535);
      out[ 9 + outPos] =
          //                          [76543210]
          //                  [________76543210]
            ((((int)in[18 + inPos]) ) & 255)
        | //                          [76543210]
          //                          [54321098________]
            ((((int)in[19 + inPos]) <<  8) & 65535);
      out[10 + outPos] =
          //                          [76543210]
          //                  [________76543210]
            ((((int)in[20 + inPos]) ) & 255)
        | //                          [76543210]
          //                          [54321098________]
            ((((int)in[21 + inPos]) <<  8) & 65535);
      out[11 + outPos] =
          //                          [76543210]
          //                  [________76543210]
            ((((int)in[22 + inPos]) ) & 255)
        | //                          [76543210]
          //                          [54321098________]
            ((((int)in[23 + inPos]) <<  8) & 65535);
      out[12 + outPos] =
          //                          [76543210]
          //                  [________76543210]
            ((((int)in[24 + inPos]) ) & 255)
        | //                          [76543210]
          //                          [54321098________]
            ((((int)in[25 + inPos]) <<  8) & 65535);
      out[13 + outPos] =
          //                          [76543210]
          //                  [________76543210]
            ((((int)in[26 + inPos]) ) & 255)
        | //                          [76543210]
          //                          [54321098________]
            ((((int)in[27 + inPos]) <<  8) & 65535);
      out[14 + outPos] =
          //                          [76543210]
          //                  [________76543210]
            ((((int)in[28 + inPos]) ) & 255)
        | //                          [76543210]
          //                          [54321098________]
            ((((int)in[29 + inPos]) <<  8) & 65535);
      out[15 + outPos] =
          //                          [76543210]
          //                  [________76543210]
            ((((int)in[30 + inPos]) ) & 255)
        | //                          [76543210]
          //                          [54321098________]
            ((((int)in[31 + inPos]) <<  8) & 65535);
      out[16 + outPos] =
          //                          [76543210]
          //                  [________76543210]
            ((((int)in[32 + inPos]) ) & 255)
        | //                          [76543210]
          //                          [54321098________]
            ((((int)in[33 + inPos]) <<  8) & 65535);
      out[17 + outPos] =
          //                          [76543210]
          //                  [________76543210]
            ((((int)in[34 + inPos]) ) & 255)
        | //                          [76543210]
          //                          [54321098________]
            ((((int)in[35 + inPos]) <<  8) & 65535);
      out[18 + outPos] =
          //                          [76543210]
          //                  [________76543210]
            ((((int)in[36 + inPos]) ) & 255)
        | //                          [76543210]
          //                          [54321098________]
            ((((int)in[37 + inPos]) <<  8) & 65535);
      out[19 + outPos] =
          //                          [76543210]
          //                  [________76543210]
            ((((int)in[38 + inPos]) ) & 255)
        | //                          [76543210]
          //                          [54321098________]
            ((((int)in[39 + inPos]) <<  8) & 65535);
      out[20 + outPos] =
          //                          [76543210]
          //                  [________76543210]
            ((((int)in[40 + inPos]) ) & 255)
        | //                          [76543210]
          //                          [54321098________]
            ((((int)in[41 + inPos]) <<  8) & 65535);
      out[21 + outPos] =
          //                          [76543210]
          //                  [________76543210]
            ((((int)in[42 + inPos]) ) & 255)
        | //                          [76543210]
          //                          [54321098________]
            ((((int)in[43 + inPos]) <<  8) & 65535);
      out[22 + outPos] =
          //                          [76543210]
          //                  [________76543210]
            ((((int)in[44 + inPos]) ) & 255)
        | //                          [76543210]
          //                          [54321098________]
            ((((int)in[45 + inPos]) <<  8) & 65535);
      out[23 + outPos] =
          //                          [76543210]
          //                  [________76543210]
            ((((int)in[46 + inPos]) ) & 255)
        | //                          [76543210]
          //                          [54321098________]
            ((((int)in[47 + inPos]) <<  8) & 65535);
      out[24 + outPos] =
          //                          [76543210]
          //                  [________76543210]
            ((((int)in[48 + inPos]) ) & 255)
        | //                          [76543210]
          //                          [54321098________]
            ((((int)in[49 + inPos]) <<  8) & 65535);
      out[25 + outPos] =
          //                          [76543210]
          //                  [________76543210]
            ((((int)in[50 + inPos]) ) & 255)
        | //                          [76543210]
          //                          [54321098________]
            ((((int)in[51 + inPos]) <<  8) & 65535);
      out[26 + outPos] =
          //                          [76543210]
          //                  [________76543210]
            ((((int)in[52 + inPos]) ) & 255)
        | //                          [76543210]
          //                          [54321098________]
            ((((int)in[53 + inPos]) <<  8) & 65535);
      out[27 + outPos] =
          //                          [76543210]
          //                  [________76543210]
            ((((int)in[54 + inPos]) ) & 255)
        | //                          [76543210]
          //                          [54321098________]
            ((((int)in[55 + inPos]) <<  8) & 65535);
      out[28 + outPos] =
          //                          [76543210]
          //                  [________76543210]
            ((((int)in[56 + inPos]) ) & 255)
        | //                          [76543210]
          //                          [54321098________]
            ((((int)in[57 + inPos]) <<  8) & 65535);
      out[29 + outPos] =
          //                          [76543210]
          //                  [________76543210]
            ((((int)in[58 + inPos]) ) & 255)
        | //                          [76543210]
          //                          [54321098________]
            ((((int)in[59 + inPos]) <<  8) & 65535);
      out[30 + outPos] =
          //                          [76543210]
          //                  [________76543210]
            ((((int)in[60 + inPos]) ) & 255)
        | //                          [76543210]
          //                          [54321098________]
            ((((int)in[61 + inPos]) <<  8) & 65535);
      out[31 + outPos] =
          //                          [76543210]
          //                  [________76543210]
            ((((int)in[62 + inPos]) ) & 255)
        | //                          [76543210]
          //                          [54321098________]
            ((((int)in[63 + inPos]) <<  8) & 65535);
    }
    public final void unpack32Values(final ByteBuffer in, final int inPos, final int[] out, final int outPos) {
      out[ 0 + outPos] =
          //                          [76543210]
          //                  [________76543210]
            ((((int)in.get( 0 + inPos)) ) & 255)
        | //                          [76543210]
          //                          [54321098________]
            ((((int)in.get( 1 + inPos)) <<  8) & 65535);
      out[ 1 + outPos] =
          //                          [76543210]
          //                  [________76543210]
            ((((int)in.get( 2 + inPos)) ) & 255)
        | //                          [76543210]
          //                          [54321098________]
            ((((int)in.get( 3 + inPos)) <<  8) & 65535);
      out[ 2 + outPos] =
          //                          [76543210]
          //                  [________76543210]
            ((((int)in.get( 4 + inPos)) ) & 255)
        | //                          [76543210]
          //                          [54321098________]
            ((((int)in.get( 5 + inPos)) <<  8) & 65535);
      out[ 3 + outPos] =
          //                          [76543210]
          //                  [________76543210]
            ((((int)in.get( 6 + inPos)) ) & 255)
        | //                          [76543210]
          //                          [54321098________]
            ((((int)in.get( 7 + inPos)) <<  8) & 65535);
      out[ 4 + outPos] =
          //                          [76543210]
          //                  [________76543210]
            ((((int)in.get( 8 + inPos)) ) & 255)
        | //                          [76543210]
          //                          [54321098________]
            ((((int)in.get( 9 + inPos)) <<  8) & 65535);
      out[ 5 + outPos] =
          //                          [76543210]
          //                  [________76543210]
            ((((int)in.get(10 + inPos)) ) & 255)
        | //                          [76543210]
          //                          [54321098________]
            ((((int)in.get(11 + inPos)) <<  8) & 65535);
      out[ 6 + outPos] =
          //                          [76543210]
          //                  [________76543210]
            ((((int)in.get(12 + inPos)) ) & 255)
        | //                          [76543210]
          //                          [54321098________]
            ((((int)in.get(13 + inPos)) <<  8) & 65535);
      out[ 7 + outPos] =
          //                          [76543210]
          //                  [________76543210]
            ((((int)in.get(14 + inPos)) ) & 255)
        | //                          [76543210]
          //                          [54321098________]
            ((((int)in.get(15 + inPos)) <<  8) & 65535);
      out[ 8 + outPos] =
          //                          [76543210]
          //                  [________76543210]
            ((((int)in.get(16 + inPos)) ) & 255)
        | //                          [76543210]
          //                          [54321098________]
            ((((int)in.get(17 + inPos)) <<  8) & 65535);
      out[ 9 + outPos] =
          //                          [76543210]
          //                  [________76543210]
            ((((int)in.get(18 + inPos)) ) & 255)
        | //                          [76543210]
          //                          [54321098________]
            ((((int)in.get(19 + inPos)) <<  8) & 65535);
      out[10 + outPos] =
          //                          [76543210]
          //                  [________76543210]
            ((((int)in.get(20 + inPos)) ) & 255)
        | //                          [76543210]
          //                          [54321098________]
            ((((int)in.get(21 + inPos)) <<  8) & 65535);
      out[11 + outPos] =
          //                          [76543210]
          //                  [________76543210]
            ((((int)in.get(22 + inPos)) ) & 255)
        | //                          [76543210]
          //                          [54321098________]
            ((((int)in.get(23 + inPos)) <<  8) & 65535);
      out[12 + outPos] =
          //                          [76543210]
          //                  [________76543210]
            ((((int)in.get(24 + inPos)) ) & 255)
        | //                          [76543210]
          //                          [54321098________]
            ((((int)in.get(25 + inPos)) <<  8) & 65535);
      out[13 + outPos] =
          //                          [76543210]
          //                  [________76543210]
            ((((int)in.get(26 + inPos)) ) & 255)
        | //                          [76543210]
          //                          [54321098________]
            ((((int)in.get(27 + inPos)) <<  8) & 65535);
      out[14 + outPos] =
          //                          [76543210]
          //                  [________76543210]
            ((((int)in.get(28 + inPos)) ) & 255)
        | //                          [76543210]
          //                          [54321098________]
            ((((int)in.get(29 + inPos)) <<  8) & 65535);
      out[15 + outPos] =
          //                          [76543210]
          //                  [________76543210]
            ((((int)in.get(30 + inPos)) ) & 255)
        | //                          [76543210]
          //                          [54321098________]
            ((((int)in.get(31 + inPos)) <<  8) & 65535);
      out[16 + outPos] =
          //                          [76543210]
          //                  [________76543210]
            ((((int)in.get(32 + inPos)) ) & 255)
        | //                          [76543210]
          //                          [54321098________]
            ((((int)in.get(33 + inPos)) <<  8) & 65535);
      out[17 + outPos] =
          //                          [76543210]
          //                  [________76543210]
            ((((int)in.get(34 + inPos)) ) & 255)
        | //                          [76543210]
          //                          [54321098________]
            ((((int)in.get(35 + inPos)) <<  8) & 65535);
      out[18 + outPos] =
          //                          [76543210]
          //                  [________76543210]
            ((((int)in.get(36 + inPos)) ) & 255)
        | //                          [76543210]
          //                          [54321098________]
            ((((int)in.get(37 + inPos)) <<  8) & 65535);
      out[19 + outPos] =
          //                          [76543210]
          //                  [________76543210]
            ((((int)in.get(38 + inPos)) ) & 255)
        | //                          [76543210]
          //                          [54321098________]
            ((((int)in.get(39 + inPos)) <<  8) & 65535);
      out[20 + outPos] =
          //                          [76543210]
          //                  [________76543210]
            ((((int)in.get(40 + inPos)) ) & 255)
        | //                          [76543210]
          //                          [54321098________]
            ((((int)in.get(41 + inPos)) <<  8) & 65535);
      out[21 + outPos] =
          //                          [76543210]
          //                  [________76543210]
            ((((int)in.get(42 + inPos)) ) & 255)
        | //                          [76543210]
          //                          [54321098________]
            ((((int)in.get(43 + inPos)) <<  8) & 65535);
      out[22 + outPos] =
          //                          [76543210]
          //                  [________76543210]
            ((((int)in.get(44 + inPos)) ) & 255)
        | //                          [76543210]
          //                          [54321098________]
            ((((int)in.get(45 + inPos)) <<  8) & 65535);
      out[23 + outPos] =
          //                          [76543210]
          //                  [________76543210]
            ((((int)in.get(46 + inPos)) ) & 255)
        | //                          [76543210]
          //                          [54321098________]
            ((((int)in.get(47 + inPos)) <<  8) & 65535);
      out[24 + outPos] =
          //                          [76543210]
          //                  [________76543210]
            ((((int)in.get(48 + inPos)) ) & 255)
        | //                          [76543210]
          //                          [54321098________]
            ((((int)in.get(49 + inPos)) <<  8) & 65535);
      out[25 + outPos] =
          //                          [76543210]
          //                  [________76543210]
            ((((int)in.get(50 + inPos)) ) & 255)
        | //                          [76543210]
          //                          [54321098________]
            ((((int)in.get(51 + inPos)) <<  8) & 65535);
      out[26 + outPos] =
          //                          [76543210]
          //                  [________76543210]
            ((((int)in.get(52 + inPos)) ) & 255)
        | //                          [76543210]
          //                          [54321098________]
            ((((int)in.get(53 + inPos)) <<  8) & 65535);
      out[27 + outPos] =
          //                          [76543210]
          //                  [________76543210]
            ((((int)in.get(54 + inPos)) ) & 255)
        | //                          [76543210]
          //                          [54321098________]
            ((((int)in.get(55 + inPos)) <<  8) & 65535);
      out[28 + outPos] =
          //                          [76543210]
          //                  [________76543210]
            ((((int)in.get(56 + inPos)) ) & 255)
        | //                          [76543210]
          //                          [54321098________]
            ((((int)in.get(57 + inPos)) <<  8) & 65535);
      out[29 + outPos] =
          //                          [76543210]
          //                  [________76543210]
            ((((int)in.get(58 + inPos)) ) & 255)
        | //                          [76543210]
          //                          [54321098________]
            ((((int)in.get(59 + inPos)) <<  8) & 65535);
      out[30 + outPos] =
          //                          [76543210]
          //                  [________76543210]
            ((((int)in.get(60 + inPos)) ) & 255)
        | //                          [76543210]
          //                          [54321098________]
            ((((int)in.get(61 + inPos)) <<  8) & 65535);
      out[31 + outPos] =
          //                          [76543210]
          //                  [________76543210]
            ((((int)in.get(62 + inPos)) ) & 255)
        | //                          [76543210]
          //                          [54321098________]
            ((((int)in.get(63 + inPos)) <<  8) & 65535);
    }
  }

  private static final class Packer17 extends BytePacker {

    private Packer17() {
      super(17);
    }

    public final void pack8Values(final int[] in, final int inPos, final byte[] out, final int outPos) {
      out[ 0 + outPos] = (byte)((
          //                           [76543210]
          //                  [_________76543210]
           ((in[ 0 + inPos] & 131071))) & 255);
      out[ 1 + outPos] = (byte)((
          //                           [76543210]
          //                          [_54321098________]
           ((in[ 0 + inPos] & 131071) >>> 8)) & 255);
      out[ 2 + outPos] = (byte)((
          //                           [_______0]
          //                                  [6________________]
           ((in[ 0 + inPos] & 131071) >>> 16)
        | //                           [7654321_]
          //                 [__________6543210]
           ((in[ 1 + inPos] & 131071) <<  1)) & 255);
      out[ 3 + outPos] = (byte)((
          //                           [76543210]
          //                         [__43210987_______]
           ((in[ 1 + inPos] & 131071) >>> 7)) & 255);
      out[ 4 + outPos] = (byte)((
          //                           [______10]
          //                                 [65_______________]
           ((in[ 1 + inPos] & 131071) >>> 15)
        | //                           [765432__]
          //                [___________543210]
           ((in[ 2 + inPos] & 131071) <<  2)) & 255);
      out[ 5 + outPos] = (byte)((
          //                           [76543210]
          //                        [___32109876______]
           ((in[ 2 + inPos] & 131071) >>> 6)) & 255);
      out[ 6 + outPos] = (byte)((
          //                           [_____210]
          //                                [654______________]
           ((in[ 2 + inPos] & 131071) >>> 14)
        | //                           [76543___]
          //               [____________43210]
           ((in[ 3 + inPos] & 131071) <<  3)) & 255);
      out[ 7 + outPos] = (byte)((
          //                           [76543210]
          //                       [____21098765_____]
           ((in[ 3 + inPos] & 131071) >>> 5)) & 255);
      out[ 8 + outPos] = (byte)((
          //                           [____3210]
          //                               [6543_____________]
           ((in[ 3 + inPos] & 131071) >>> 13)
        | //                           [7654____]
          //              [_____________3210]
           ((in[ 4 + inPos] & 131071) <<  4)) & 255);
      out[ 9 + outPos] = (byte)((
          //                           [76543210]
          //                      [_____10987654____]
           ((in[ 4 + inPos] & 131071) >>> 4)) & 255);
      out[10 + outPos] = (byte)((
          //                           [___43210]
          //                              [65432____________]
           ((in[ 4 + inPos] & 131071) >>> 12)
        | //                           [765_____]
          //             [______________210]
           ((in[ 5 + inPos] & 131071) <<  5)) & 255);
      out[11 + outPos] = (byte)((
          //                           [76543210]
          //                     [______09876543___]
           ((in[ 5 + inPos] & 131071) >>> 3)) & 255);
      out[12 + outPos] = (byte)((
          //                           [__543210]
          //                             [654321___________]
           ((in[ 5 + inPos] & 131071) >>> 11)
        | //                           [76______]
          //            [_______________10]
           ((in[ 6 + inPos] & 131071) <<  6)) & 255);
      out[13 + outPos] = (byte)((
          //                           [76543210]
          //                    [_______98765432__]
           ((in[ 6 + inPos] & 131071) >>> 2)) & 255);
      out[14 + outPos] = (byte)((
          //                           [_6543210]
          //                            [6543210__________]
           ((in[ 6 + inPos] & 131071) >>> 10)
        | //                           [7_______]
          //           [________________0]
           ((in[ 7 + inPos] & 131071) <<  7)) & 255);
      out[15 + outPos] = (byte)((
          //                           [76543210]
          //                   [________87654321_]
           ((in[ 7 + inPos] & 131071) >>> 1)) & 255);
      out[16 + outPos] = (byte)((
          //                           [76543210]
          //                           [65432109_________]
           ((in[ 7 + inPos] & 131071) >>> 9)) & 255);
    }
    public final void pack32Values(final int[] in, final int inPos, final byte[] out, final int outPos) {
      out[ 0 + outPos] = (byte)((
          //                           [76543210]
          //                  [_________76543210]
           ((in[ 0 + inPos] & 131071))) & 255);
      out[ 1 + outPos] = (byte)((
          //                           [76543210]
          //                          [_54321098________]
           ((in[ 0 + inPos] & 131071) >>> 8)) & 255);
      out[ 2 + outPos] = (byte)((
          //                           [_______0]
          //                                  [6________________]
           ((in[ 0 + inPos] & 131071) >>> 16)
        | //                           [7654321_]
          //                 [__________6543210]
           ((in[ 1 + inPos] & 131071) <<  1)) & 255);
      out[ 3 + outPos] = (byte)((
          //                           [76543210]
          //                         [__43210987_______]
           ((in[ 1 + inPos] & 131071) >>> 7)) & 255);
      out[ 4 + outPos] = (byte)((
          //                           [______10]
          //                                 [65_______________]
           ((in[ 1 + inPos] & 131071) >>> 15)
        | //                           [765432__]
          //                [___________543210]
           ((in[ 2 + inPos] & 131071) <<  2)) & 255);
      out[ 5 + outPos] = (byte)((
          //                           [76543210]
          //                        [___32109876______]
           ((in[ 2 + inPos] & 131071) >>> 6)) & 255);
      out[ 6 + outPos] = (byte)((
          //                           [_____210]
          //                                [654______________]
           ((in[ 2 + inPos] & 131071) >>> 14)
        | //                           [76543___]
          //               [____________43210]
           ((in[ 3 + inPos] & 131071) <<  3)) & 255);
      out[ 7 + outPos] = (byte)((
          //                           [76543210]
          //                       [____21098765_____]
           ((in[ 3 + inPos] & 131071) >>> 5)) & 255);
      out[ 8 + outPos] = (byte)((
          //                           [____3210]
          //                               [6543_____________]
           ((in[ 3 + inPos] & 131071) >>> 13)
        | //                           [7654____]
          //              [_____________3210]
           ((in[ 4 + inPos] & 131071) <<  4)) & 255);
      out[ 9 + outPos] = (byte)((
          //                           [76543210]
          //                      [_____10987654____]
           ((in[ 4 + inPos] & 131071) >>> 4)) & 255);
      out[10 + outPos] = (byte)((
          //                           [___43210]
          //                              [65432____________]
           ((in[ 4 + inPos] & 131071) >>> 12)
        | //                           [765_____]
          //             [______________210]
           ((in[ 5 + inPos] & 131071) <<  5)) & 255);
      out[11 + outPos] = (byte)((
          //                           [76543210]
          //                     [______09876543___]
           ((in[ 5 + inPos] & 131071) >>> 3)) & 255);
      out[12 + outPos] = (byte)((
          //                           [__543210]
          //                             [654321___________]
           ((in[ 5 + inPos] & 131071) >>> 11)
        | //                           [76______]
          //            [_______________10]
           ((in[ 6 + inPos] & 131071) <<  6)) & 255);
      out[13 + outPos] = (byte)((
          //                           [76543210]
          //                    [_______98765432__]
           ((in[ 6 + inPos] & 131071) >>> 2)) & 255);
      out[14 + outPos] = (byte)((
          //                           [_6543210]
          //                            [6543210__________]
           ((in[ 6 + inPos] & 131071) >>> 10)
        | //                           [7_______]
          //           [________________0]
           ((in[ 7 + inPos] & 131071) <<  7)) & 255);
      out[15 + outPos] = (byte)((
          //                           [76543210]
          //                   [________87654321_]
           ((in[ 7 + inPos] & 131071) >>> 1)) & 255);
      out[16 + outPos] = (byte)((
          //                           [76543210]
          //                           [65432109_________]
           ((in[ 7 + inPos] & 131071) >>> 9)) & 255);
      out[17 + outPos] = (byte)((
          //                           [76543210]
          //                  [_________76543210]
           ((in[ 8 + inPos] & 131071))) & 255);
      out[18 + outPos] = (byte)((
          //                           [76543210]
          //                          [_54321098________]
           ((in[ 8 + inPos] & 131071) >>> 8)) & 255);
      out[19 + outPos] = (byte)((
          //                           [_______0]
          //                                  [6________________]
           ((in[ 8 + inPos] & 131071) >>> 16)
        | //                           [7654321_]
          //                 [__________6543210]
           ((in[ 9 + inPos] & 131071) <<  1)) & 255);
      out[20 + outPos] = (byte)((
          //                           [76543210]
          //                         [__43210987_______]
           ((in[ 9 + inPos] & 131071) >>> 7)) & 255);
      out[21 + outPos] = (byte)((
          //                           [______10]
          //                                 [65_______________]
           ((in[ 9 + inPos] & 131071) >>> 15)
        | //                           [765432__]
          //                [___________543210]
           ((in[10 + inPos] & 131071) <<  2)) & 255);
      out[22 + outPos] = (byte)((
          //                           [76543210]
          //                        [___32109876______]
           ((in[10 + inPos] & 131071) >>> 6)) & 255);
      out[23 + outPos] = (byte)((
          //                           [_____210]
          //                                [654______________]
           ((in[10 + inPos] & 131071) >>> 14)
        | //                           [76543___]
          //               [____________43210]
           ((in[11 + inPos] & 131071) <<  3)) & 255);
      out[24 + outPos] = (byte)((
          //                           [76543210]
          //                       [____21098765_____]
           ((in[11 + inPos] & 131071) >>> 5)) & 255);
      out[25 + outPos] = (byte)((
          //                           [____3210]
          //                               [6543_____________]
           ((in[11 + inPos] & 131071) >>> 13)
        | //                           [7654____]
          //              [_____________3210]
           ((in[12 + inPos] & 131071) <<  4)) & 255);
      out[26 + outPos] = (byte)((
          //                           [76543210]
          //                      [_____10987654____]
           ((in[12 + inPos] & 131071) >>> 4)) & 255);
      out[27 + outPos] = (byte)((
          //                           [___43210]
          //                              [65432____________]
           ((in[12 + inPos] & 131071) >>> 12)
        | //                           [765_____]
          //             [______________210]
           ((in[13 + inPos] & 131071) <<  5)) & 255);
      out[28 + outPos] = (byte)((
          //                           [76543210]
          //                     [______09876543___]
           ((in[13 + inPos] & 131071) >>> 3)) & 255);
      out[29 + outPos] = (byte)((
          //                           [__543210]
          //                             [654321___________]
           ((in[13 + inPos] & 131071) >>> 11)
        | //                           [76______]
          //            [_______________10]
           ((in[14 + inPos] & 131071) <<  6)) & 255);
      out[30 + outPos] = (byte)((
          //                           [76543210]
          //                    [_______98765432__]
           ((in[14 + inPos] & 131071) >>> 2)) & 255);
      out[31 + outPos] = (byte)((
          //                           [_6543210]
          //                            [6543210__________]
           ((in[14 + inPos] & 131071) >>> 10)
        | //                           [7_______]
          //           [________________0]
           ((in[15 + inPos] & 131071) <<  7)) & 255);
      out[32 + outPos] = (byte)((
          //                           [76543210]
          //                   [________87654321_]
           ((in[15 + inPos] & 131071) >>> 1)) & 255);
      out[33 + outPos] = (byte)((
          //                           [76543210]
          //                           [65432109_________]
           ((in[15 + inPos] & 131071) >>> 9)) & 255);
      out[34 + outPos] = (byte)((
          //                           [76543210]
          //                  [_________76543210]
           ((in[16 + inPos] & 131071))) & 255);
      out[35 + outPos] = (byte)((
          //                           [76543210]
          //                          [_54321098________]
           ((in[16 + inPos] & 131071) >>> 8)) & 255);
      out[36 + outPos] = (byte)((
          //                           [_______0]
          //                                  [6________________]
           ((in[16 + inPos] & 131071) >>> 16)
        | //                           [7654321_]
          //                 [__________6543210]
           ((in[17 + inPos] & 131071) <<  1)) & 255);
      out[37 + outPos] = (byte)((
          //                           [76543210]
          //                         [__43210987_______]
           ((in[17 + inPos] & 131071) >>> 7)) & 255);
      out[38 + outPos] = (byte)((
          //                           [______10]
          //                                 [65_______________]
           ((in[17 + inPos] & 131071) >>> 15)
        | //                           [765432__]
          //                [___________543210]
           ((in[18 + inPos] & 131071) <<  2)) & 255);
      out[39 + outPos] = (byte)((
          //                           [76543210]
          //                        [___32109876______]
           ((in[18 + inPos] & 131071) >>> 6)) & 255);
      out[40 + outPos] = (byte)((
          //                           [_____210]
          //                                [654______________]
           ((in[18 + inPos] & 131071) >>> 14)
        | //                           [76543___]
          //               [____________43210]
           ((in[19 + inPos] & 131071) <<  3)) & 255);
      out[41 + outPos] = (byte)((
          //                           [76543210]
          //                       [____21098765_____]
           ((in[19 + inPos] & 131071) >>> 5)) & 255);
      out[42 + outPos] = (byte)((
          //                           [____3210]
          //                               [6543_____________]
           ((in[19 + inPos] & 131071) >>> 13)
        | //                           [7654____]
          //              [_____________3210]
           ((in[20 + inPos] & 131071) <<  4)) & 255);
      out[43 + outPos] = (byte)((
          //                           [76543210]
          //                      [_____10987654____]
           ((in[20 + inPos] & 131071) >>> 4)) & 255);
      out[44 + outPos] = (byte)((
          //                           [___43210]
          //                              [65432____________]
           ((in[20 + inPos] & 131071) >>> 12)
        | //                           [765_____]
          //             [______________210]
           ((in[21 + inPos] & 131071) <<  5)) & 255);
      out[45 + outPos] = (byte)((
          //                           [76543210]
          //                     [______09876543___]
           ((in[21 + inPos] & 131071) >>> 3)) & 255);
      out[46 + outPos] = (byte)((
          //                           [__543210]
          //                             [654321___________]
           ((in[21 + inPos] & 131071) >>> 11)
        | //                           [76______]
          //            [_______________10]
           ((in[22 + inPos] & 131071) <<  6)) & 255);
      out[47 + outPos] = (byte)((
          //                           [76543210]
          //                    [_______98765432__]
           ((in[22 + inPos] & 131071) >>> 2)) & 255);
      out[48 + outPos] = (byte)((
          //                           [_6543210]
          //                            [6543210__________]
           ((in[22 + inPos] & 131071) >>> 10)
        | //                           [7_______]
          //           [________________0]
           ((in[23 + inPos] & 131071) <<  7)) & 255);
      out[49 + outPos] = (byte)((
          //                           [76543210]
          //                   [________87654321_]
           ((in[23 + inPos] & 131071) >>> 1)) & 255);
      out[50 + outPos] = (byte)((
          //                           [76543210]
          //                           [65432109_________]
           ((in[23 + inPos] & 131071) >>> 9)) & 255);
      out[51 + outPos] = (byte)((
          //                           [76543210]
          //                  [_________76543210]
           ((in[24 + inPos] & 131071))) & 255);
      out[52 + outPos] = (byte)((
          //                           [76543210]
          //                          [_54321098________]
           ((in[24 + inPos] & 131071) >>> 8)) & 255);
      out[53 + outPos] = (byte)((
          //                           [_______0]
          //                                  [6________________]
           ((in[24 + inPos] & 131071) >>> 16)
        | //                           [7654321_]
          //                 [__________6543210]
           ((in[25 + inPos] & 131071) <<  1)) & 255);
      out[54 + outPos] = (byte)((
          //                           [76543210]
          //                         [__43210987_______]
           ((in[25 + inPos] & 131071) >>> 7)) & 255);
      out[55 + outPos] = (byte)((
          //                           [______10]
          //                                 [65_______________]
           ((in[25 + inPos] & 131071) >>> 15)
        | //                           [765432__]
          //                [___________543210]
           ((in[26 + inPos] & 131071) <<  2)) & 255);
      out[56 + outPos] = (byte)((
          //                           [76543210]
          //                        [___32109876______]
           ((in[26 + inPos] & 131071) >>> 6)) & 255);
      out[57 + outPos] = (byte)((
          //                           [_____210]
          //                                [654______________]
           ((in[26 + inPos] & 131071) >>> 14)
        | //                           [76543___]
          //               [____________43210]
           ((in[27 + inPos] & 131071) <<  3)) & 255);
      out[58 + outPos] = (byte)((
          //                           [76543210]
          //                       [____21098765_____]
           ((in[27 + inPos] & 131071) >>> 5)) & 255);
      out[59 + outPos] = (byte)((
          //                           [____3210]
          //                               [6543_____________]
           ((in[27 + inPos] & 131071) >>> 13)
        | //                           [7654____]
          //              [_____________3210]
           ((in[28 + inPos] & 131071) <<  4)) & 255);
      out[60 + outPos] = (byte)((
          //                           [76543210]
          //                      [_____10987654____]
           ((in[28 + inPos] & 131071) >>> 4)) & 255);
      out[61 + outPos] = (byte)((
          //                           [___43210]
          //                              [65432____________]
           ((in[28 + inPos] & 131071) >>> 12)
        | //                           [765_____]
          //             [______________210]
           ((in[29 + inPos] & 131071) <<  5)) & 255);
      out[62 + outPos] = (byte)((
          //                           [76543210]
          //                     [______09876543___]
           ((in[29 + inPos] & 131071) >>> 3)) & 255);
      out[63 + outPos] = (byte)((
          //                           [__543210]
          //                             [654321___________]
           ((in[29 + inPos] & 131071) >>> 11)
        | //                           [76______]
          //            [_______________10]
           ((in[30 + inPos] & 131071) <<  6)) & 255);
      out[64 + outPos] = (byte)((
          //                           [76543210]
          //                    [_______98765432__]
           ((in[30 + inPos] & 131071) >>> 2)) & 255);
      out[65 + outPos] = (byte)((
          //                           [_6543210]
          //                            [6543210__________]
           ((in[30 + inPos] & 131071) >>> 10)
        | //                           [7_______]
          //           [________________0]
           ((in[31 + inPos] & 131071) <<  7)) & 255);
      out[66 + outPos] = (byte)((
          //                           [76543210]
          //                   [________87654321_]
           ((in[31 + inPos] & 131071) >>> 1)) & 255);
      out[67 + outPos] = (byte)((
          //                           [76543210]
          //                           [65432109_________]
           ((in[31 + inPos] & 131071) >>> 9)) & 255);
    }
    public final void unpack8Values(final byte[] in, final int inPos, final int[] out, final int outPos) {
      out[ 0 + outPos] =
          //                           [76543210]
          //                  [_________76543210]
            ((((int)in[ 0 + inPos]) ) & 255)
        | //                           [76543210]
          //                          [_54321098________]
            ((((int)in[ 1 + inPos]) <<  8) & 65535)
        | //                           [_______0]
          //                                  [6________________]
            ((((int)in[ 2 + inPos]) <<  16) & 131071);
      out[ 1 + outPos] =
          //                           [7654321_]
          //                 [__________6543210]
            ((((int)in[ 2 + inPos]) >>  1) & 127)
        | //                           [76543210]
          //                         [__43210987_______]
            ((((int)in[ 3 + inPos]) <<  7) & 32767)
        | //                           [______10]
          //                                 [65_______________]
            ((((int)in[ 4 + inPos]) <<  15) & 131071);
      out[ 2 + outPos] =
          //                           [765432__]
          //                [___________543210]
            ((((int)in[ 4 + inPos]) >>  2) & 63)
        | //                           [76543210]
          //                        [___32109876______]
            ((((int)in[ 5 + inPos]) <<  6) & 16383)
        | //                           [_____210]
          //                                [654______________]
            ((((int)in[ 6 + inPos]) <<  14) & 131071);
      out[ 3 + outPos] =
          //                           [76543___]
          //               [____________43210]
            ((((int)in[ 6 + inPos]) >>  3) & 31)
        | //                           [76543210]
          //                       [____21098765_____]
            ((((int)in[ 7 + inPos]) <<  5) & 8191)
        | //                           [____3210]
          //                               [6543_____________]
            ((((int)in[ 8 + inPos]) <<  13) & 131071);
      out[ 4 + outPos] =
          //                           [7654____]
          //              [_____________3210]
            ((((int)in[ 8 + inPos]) >>  4) & 15)
        | //                           [76543210]
          //                      [_____10987654____]
            ((((int)in[ 9 + inPos]) <<  4) & 4095)
        | //                           [___43210]
          //                              [65432____________]
            ((((int)in[10 + inPos]) <<  12) & 131071);
      out[ 5 + outPos] =
          //                           [765_____]
          //             [______________210]
            ((((int)in[10 + inPos]) >>  5) & 7)
        | //                           [76543210]
          //                     [______09876543___]
            ((((int)in[11 + inPos]) <<  3) & 2047)
        | //                           [__543210]
          //                             [654321___________]
            ((((int)in[12 + inPos]) <<  11) & 131071);
      out[ 6 + outPos] =
          //                           [76______]
          //            [_______________10]
            ((((int)in[12 + inPos]) >>  6) & 3)
        | //                           [76543210]
          //                    [_______98765432__]
            ((((int)in[13 + inPos]) <<  2) & 1023)
        | //                           [_6543210]
          //                            [6543210__________]
            ((((int)in[14 + inPos]) <<  10) & 131071);
      out[ 7 + outPos] =
          //                           [7_______]
          //           [________________0]
            ((((int)in[14 + inPos]) >>  7) & 1)
        | //                           [76543210]
          //                   [________87654321_]
            ((((int)in[15 + inPos]) <<  1) & 511)
        | //                           [76543210]
          //                           [65432109_________]
            ((((int)in[16 + inPos]) <<  9) & 131071);
    }
    public final void unpack8Values(final ByteBuffer in, final int inPos, final int[] out, final int outPos) {
      out[ 0 + outPos] =
          //                           [76543210]
          //                  [_________76543210]
            ((((int)in.get( 0 + inPos)) ) & 255)
        | //                           [76543210]
          //                          [_54321098________]
            ((((int)in.get( 1 + inPos)) <<  8) & 65535)
        | //                           [_______0]
          //                                  [6________________]
            ((((int)in.get( 2 + inPos)) <<  16) & 131071);
      out[ 1 + outPos] =
          //                           [7654321_]
          //                 [__________6543210]
            ((((int)in.get( 2 + inPos)) >>  1) & 127)
        | //                           [76543210]
          //                         [__43210987_______]
            ((((int)in.get( 3 + inPos)) <<  7) & 32767)
        | //                           [______10]
          //                                 [65_______________]
            ((((int)in.get( 4 + inPos)) <<  15) & 131071);
      out[ 2 + outPos] =
          //                           [765432__]
          //                [___________543210]
            ((((int)in.get( 4 + inPos)) >>  2) & 63)
        | //                           [76543210]
          //                        [___32109876______]
            ((((int)in.get( 5 + inPos)) <<  6) & 16383)
        | //                           [_____210]
          //                                [654______________]
            ((((int)in.get( 6 + inPos)) <<  14) & 131071);
      out[ 3 + outPos] =
          //                           [76543___]
          //               [____________43210]
            ((((int)in.get( 6 + inPos)) >>  3) & 31)
        | //                           [76543210]
          //                       [____21098765_____]
            ((((int)in.get( 7 + inPos)) <<  5) & 8191)
        | //                           [____3210]
          //                               [6543_____________]
            ((((int)in.get( 8 + inPos)) <<  13) & 131071);
      out[ 4 + outPos] =
          //                           [7654____]
          //              [_____________3210]
            ((((int)in.get( 8 + inPos)) >>  4) & 15)
        | //                           [76543210]
          //                      [_____10987654____]
            ((((int)in.get( 9 + inPos)) <<  4) & 4095)
        | //                           [___43210]
          //                              [65432____________]
            ((((int)in.get(10 + inPos)) <<  12) & 131071);
      out[ 5 + outPos] =
          //                           [765_____]
          //             [______________210]
            ((((int)in.get(10 + inPos)) >>  5) & 7)
        | //                           [76543210]
          //                     [______09876543___]
            ((((int)in.get(11 + inPos)) <<  3) & 2047)
        | //                           [__543210]
          //                             [654321___________]
            ((((int)in.get(12 + inPos)) <<  11) & 131071);
      out[ 6 + outPos] =
          //                           [76______]
          //            [_______________10]
            ((((int)in.get(12 + inPos)) >>  6) & 3)
        | //                           [76543210]
          //                    [_______98765432__]
            ((((int)in.get(13 + inPos)) <<  2) & 1023)
        | //                           [_6543210]
          //                            [6543210__________]
            ((((int)in.get(14 + inPos)) <<  10) & 131071);
      out[ 7 + outPos] =
          //                           [7_______]
          //           [________________0]
            ((((int)in.get(14 + inPos)) >>  7) & 1)
        | //                           [76543210]
          //                   [________87654321_]
            ((((int)in.get(15 + inPos)) <<  1) & 511)
        | //                           [76543210]
          //                           [65432109_________]
            ((((int)in.get(16 + inPos)) <<  9) & 131071);
    }
    public final void unpack32Values(final byte[] in, final int inPos, final int[] out, final int outPos) {
      out[ 0 + outPos] =
          //                           [76543210]
          //                  [_________76543210]
            ((((int)in[ 0 + inPos]) ) & 255)
        | //                           [76543210]
          //                          [_54321098________]
            ((((int)in[ 1 + inPos]) <<  8) & 65535)
        | //                           [_______0]
          //                                  [6________________]
            ((((int)in[ 2 + inPos]) <<  16) & 131071);
      out[ 1 + outPos] =
          //                           [7654321_]
          //                 [__________6543210]
            ((((int)in[ 2 + inPos]) >>  1) & 127)
        | //                           [76543210]
          //                         [__43210987_______]
            ((((int)in[ 3 + inPos]) <<  7) & 32767)
        | //                           [______10]
          //                                 [65_______________]
            ((((int)in[ 4 + inPos]) <<  15) & 131071);
      out[ 2 + outPos] =
          //                           [765432__]
          //                [___________543210]
            ((((int)in[ 4 + inPos]) >>  2) & 63)
        | //                           [76543210]
          //                        [___32109876______]
            ((((int)in[ 5 + inPos]) <<  6) & 16383)
        | //                           [_____210]
          //                                [654______________]
            ((((int)in[ 6 + inPos]) <<  14) & 131071);
      out[ 3 + outPos] =
          //                           [76543___]
          //               [____________43210]
            ((((int)in[ 6 + inPos]) >>  3) & 31)
        | //                           [76543210]
          //                       [____21098765_____]
            ((((int)in[ 7 + inPos]) <<  5) & 8191)
        | //                           [____3210]
          //                               [6543_____________]
            ((((int)in[ 8 + inPos]) <<  13) & 131071);
      out[ 4 + outPos] =
          //                           [7654____]
          //              [_____________3210]
            ((((int)in[ 8 + inPos]) >>  4) & 15)
        | //                           [76543210]
          //                      [_____10987654____]
            ((((int)in[ 9 + inPos]) <<  4) & 4095)
        | //                           [___43210]
          //                              [65432____________]
            ((((int)in[10 + inPos]) <<  12) & 131071);
      out[ 5 + outPos] =
          //                           [765_____]
          //             [______________210]
            ((((int)in[10 + inPos]) >>  5) & 7)
        | //                           [76543210]
          //                     [______09876543___]
            ((((int)in[11 + inPos]) <<  3) & 2047)
        | //                           [__543210]
          //                             [654321___________]
            ((((int)in[12 + inPos]) <<  11) & 131071);
      out[ 6 + outPos] =
          //                           [76______]
          //            [_______________10]
            ((((int)in[12 + inPos]) >>  6) & 3)
        | //                           [76543210]
          //                    [_______98765432__]
            ((((int)in[13 + inPos]) <<  2) & 1023)
        | //                           [_6543210]
          //                            [6543210__________]
            ((((int)in[14 + inPos]) <<  10) & 131071);
      out[ 7 + outPos] =
          //                           [7_______]
          //           [________________0]
            ((((int)in[14 + inPos]) >>  7) & 1)
        | //                           [76543210]
          //                   [________87654321_]
            ((((int)in[15 + inPos]) <<  1) & 511)
        | //                           [76543210]
          //                           [65432109_________]
            ((((int)in[16 + inPos]) <<  9) & 131071);
      out[ 8 + outPos] =
          //                           [76543210]
          //                  [_________76543210]
            ((((int)in[17 + inPos]) ) & 255)
        | //                           [76543210]
          //                          [_54321098________]
            ((((int)in[18 + inPos]) <<  8) & 65535)
        | //                           [_______0]
          //                                  [6________________]
            ((((int)in[19 + inPos]) <<  16) & 131071);
      out[ 9 + outPos] =
          //                           [7654321_]
          //                 [__________6543210]
            ((((int)in[19 + inPos]) >>  1) & 127)
        | //                           [76543210]
          //                         [__43210987_______]
            ((((int)in[20 + inPos]) <<  7) & 32767)
        | //                           [______10]
          //                                 [65_______________]
            ((((int)in[21 + inPos]) <<  15) & 131071);
      out[10 + outPos] =
          //                           [765432__]
          //                [___________543210]
            ((((int)in[21 + inPos]) >>  2) & 63)
        | //                           [76543210]
          //                        [___32109876______]
            ((((int)in[22 + inPos]) <<  6) & 16383)
        | //                           [_____210]
          //                                [654______________]
            ((((int)in[23 + inPos]) <<  14) & 131071);
      out[11 + outPos] =
          //                           [76543___]
          //               [____________43210]
            ((((int)in[23 + inPos]) >>  3) & 31)
        | //                           [76543210]
          //                       [____21098765_____]
            ((((int)in[24 + inPos]) <<  5) & 8191)
        | //                           [____3210]
          //                               [6543_____________]
            ((((int)in[25 + inPos]) <<  13) & 131071);
      out[12 + outPos] =
          //                           [7654____]
          //              [_____________3210]
            ((((int)in[25 + inPos]) >>  4) & 15)
        | //                           [76543210]
          //                      [_____10987654____]
            ((((int)in[26 + inPos]) <<  4) & 4095)
        | //                           [___43210]
          //                              [65432____________]
            ((((int)in[27 + inPos]) <<  12) & 131071);
      out[13 + outPos] =
          //                           [765_____]
          //             [______________210]
            ((((int)in[27 + inPos]) >>  5) & 7)
        | //                           [76543210]
          //                     [______09876543___]
            ((((int)in[28 + inPos]) <<  3) & 2047)
        | //                           [__543210]
          //                             [654321___________]
            ((((int)in[29 + inPos]) <<  11) & 131071);
      out[14 + outPos] =
          //                           [76______]
          //            [_______________10]
            ((((int)in[29 + inPos]) >>  6) & 3)
        | //                           [76543210]
          //                    [_______98765432__]
            ((((int)in[30 + inPos]) <<  2) & 1023)
        | //                           [_6543210]
          //                            [6543210__________]
            ((((int)in[31 + inPos]) <<  10) & 131071);
      out[15 + outPos] =
          //                           [7_______]
          //           [________________0]
            ((((int)in[31 + inPos]) >>  7) & 1)
        | //                           [76543210]
          //                   [________87654321_]
            ((((int)in[32 + inPos]) <<  1) & 511)
        | //                           [76543210]
          //                           [65432109_________]
            ((((int)in[33 + inPos]) <<  9) & 131071);
      out[16 + outPos] =
          //                           [76543210]
          //                  [_________76543210]
            ((((int)in[34 + inPos]) ) & 255)
        | //                           [76543210]
          //                          [_54321098________]
            ((((int)in[35 + inPos]) <<  8) & 65535)
        | //                           [_______0]
          //                                  [6________________]
            ((((int)in[36 + inPos]) <<  16) & 131071);
      out[17 + outPos] =
          //                           [7654321_]
          //                 [__________6543210]
            ((((int)in[36 + inPos]) >>  1) & 127)
        | //                           [76543210]
          //                         [__43210987_______]
            ((((int)in[37 + inPos]) <<  7) & 32767)
        | //                           [______10]
          //                                 [65_______________]
            ((((int)in[38 + inPos]) <<  15) & 131071);
      out[18 + outPos] =
          //                           [765432__]
          //                [___________543210]
            ((((int)in[38 + inPos]) >>  2) & 63)
        | //                           [76543210]
          //                        [___32109876______]
            ((((int)in[39 + inPos]) <<  6) & 16383)
        | //                           [_____210]
          //                                [654______________]
            ((((int)in[40 + inPos]) <<  14) & 131071);
      out[19 + outPos] =
          //                           [76543___]
          //               [____________43210]
            ((((int)in[40 + inPos]) >>  3) & 31)
        | //                           [76543210]
          //                       [____21098765_____]
            ((((int)in[41 + inPos]) <<  5) & 8191)
        | //                           [____3210]
          //                               [6543_____________]
            ((((int)in[42 + inPos]) <<  13) & 131071);
      out[20 + outPos] =
          //                           [7654____]
          //              [_____________3210]
            ((((int)in[42 + inPos]) >>  4) & 15)
        | //                           [76543210]
          //                      [_____10987654____]
            ((((int)in[43 + inPos]) <<  4) & 4095)
        | //                           [___43210]
          //                              [65432____________]
            ((((int)in[44 + inPos]) <<  12) & 131071);
      out[21 + outPos] =
          //                           [765_____]
          //             [______________210]
            ((((int)in[44 + inPos]) >>  5) & 7)
        | //                           [76543210]
          //                     [______09876543___]
            ((((int)in[45 + inPos]) <<  3) & 2047)
        | //                           [__543210]
          //                             [654321___________]
            ((((int)in[46 + inPos]) <<  11) & 131071);
      out[22 + outPos] =
          //                           [76______]
          //            [_______________10]
            ((((int)in[46 + inPos]) >>  6) & 3)
        | //                           [76543210]
          //                    [_______98765432__]
            ((((int)in[47 + inPos]) <<  2) & 1023)
        | //                           [_6543210]
          //                            [6543210__________]
            ((((int)in[48 + inPos]) <<  10) & 131071);
      out[23 + outPos] =
          //                           [7_______]
          //           [________________0]
            ((((int)in[48 + inPos]) >>  7) & 1)
        | //                           [76543210]
          //                   [________87654321_]
            ((((int)in[49 + inPos]) <<  1) & 511)
        | //                           [76543210]
          //                           [65432109_________]
            ((((int)in[50 + inPos]) <<  9) & 131071);
      out[24 + outPos] =
          //                           [76543210]
          //                  [_________76543210]
            ((((int)in[51 + inPos]) ) & 255)
        | //                           [76543210]
          //                          [_54321098________]
            ((((int)in[52 + inPos]) <<  8) & 65535)
        | //                           [_______0]
          //                                  [6________________]
            ((((int)in[53 + inPos]) <<  16) & 131071);
      out[25 + outPos] =
          //                           [7654321_]
          //                 [__________6543210]
            ((((int)in[53 + inPos]) >>  1) & 127)
        | //                           [76543210]
          //                         [__43210987_______]
            ((((int)in[54 + inPos]) <<  7) & 32767)
        | //                           [______10]
          //                                 [65_______________]
            ((((int)in[55 + inPos]) <<  15) & 131071);
      out[26 + outPos] =
          //                           [765432__]
          //                [___________543210]
            ((((int)in[55 + inPos]) >>  2) & 63)
        | //                           [76543210]
          //                        [___32109876______]
            ((((int)in[56 + inPos]) <<  6) & 16383)
        | //                           [_____210]
          //                                [654______________]
            ((((int)in[57 + inPos]) <<  14) & 131071);
      out[27 + outPos] =
          //                           [76543___]
          //               [____________43210]
            ((((int)in[57 + inPos]) >>  3) & 31)
        | //                           [76543210]
          //                       [____21098765_____]
            ((((int)in[58 + inPos]) <<  5) & 8191)
        | //                           [____3210]
          //                               [6543_____________]
            ((((int)in[59 + inPos]) <<  13) & 131071);
      out[28 + outPos] =
          //                           [7654____]
          //              [_____________3210]
            ((((int)in[59 + inPos]) >>  4) & 15)
        | //                           [76543210]
          //                      [_____10987654____]
            ((((int)in[60 + inPos]) <<  4) & 4095)
        | //                           [___43210]
          //                              [65432____________]
            ((((int)in[61 + inPos]) <<  12) & 131071);
      out[29 + outPos] =
          //                           [765_____]
          //             [______________210]
            ((((int)in[61 + inPos]) >>  5) & 7)
        | //                           [76543210]
          //                     [______09876543___]
            ((((int)in[62 + inPos]) <<  3) & 2047)
        | //                           [__543210]
          //                             [654321___________]
            ((((int)in[63 + inPos]) <<  11) & 131071);
      out[30 + outPos] =
          //                           [76______]
          //            [_______________10]
            ((((int)in[63 + inPos]) >>  6) & 3)
        | //                           [76543210]
          //                    [_______98765432__]
            ((((int)in[64 + inPos]) <<  2) & 1023)
        | //                           [_6543210]
          //                            [6543210__________]
            ((((int)in[65 + inPos]) <<  10) & 131071);
      out[31 + outPos] =
          //                           [7_______]
          //           [________________0]
            ((((int)in[65 + inPos]) >>  7) & 1)
        | //                           [76543210]
          //                   [________87654321_]
            ((((int)in[66 + inPos]) <<  1) & 511)
        | //                           [76543210]
          //                           [65432109_________]
            ((((int)in[67 + inPos]) <<  9) & 131071);
    }
    public final void unpack32Values(final ByteBuffer in, final int inPos, final int[] out, final int outPos) {
      out[ 0 + outPos] =
          //                           [76543210]
          //                  [_________76543210]
            ((((int)in.get( 0 + inPos)) ) & 255)
        | //                           [76543210]
          //                          [_54321098________]
            ((((int)in.get( 1 + inPos)) <<  8) & 65535)
        | //                           [_______0]
          //                                  [6________________]
            ((((int)in.get( 2 + inPos)) <<  16) & 131071);
      out[ 1 + outPos] =
          //                           [7654321_]
          //                 [__________6543210]
            ((((int)in.get( 2 + inPos)) >>  1) & 127)
        | //                           [76543210]
          //                         [__43210987_______]
            ((((int)in.get( 3 + inPos)) <<  7) & 32767)
        | //                           [______10]
          //                                 [65_______________]
            ((((int)in.get( 4 + inPos)) <<  15) & 131071);
      out[ 2 + outPos] =
          //                           [765432__]
          //                [___________543210]
            ((((int)in.get( 4 + inPos)) >>  2) & 63)
        | //                           [76543210]
          //                        [___32109876______]
            ((((int)in.get( 5 + inPos)) <<  6) & 16383)
        | //                           [_____210]
          //                                [654______________]
            ((((int)in.get( 6 + inPos)) <<  14) & 131071);
      out[ 3 + outPos] =
          //                           [76543___]
          //               [____________43210]
            ((((int)in.get( 6 + inPos)) >>  3) & 31)
        | //                           [76543210]
          //                       [____21098765_____]
            ((((int)in.get( 7 + inPos)) <<  5) & 8191)
        | //                           [____3210]
          //                               [6543_____________]
            ((((int)in.get( 8 + inPos)) <<  13) & 131071);
      out[ 4 + outPos] =
          //                           [7654____]
          //              [_____________3210]
            ((((int)in.get( 8 + inPos)) >>  4) & 15)
        | //                           [76543210]
          //                      [_____10987654____]
            ((((int)in.get( 9 + inPos)) <<  4) & 4095)
        | //                           [___43210]
          //                              [65432____________]
            ((((int)in.get(10 + inPos)) <<  12) & 131071);
      out[ 5 + outPos] =
          //                           [765_____]
          //             [______________210]
            ((((int)in.get(10 + inPos)) >>  5) & 7)
        | //                           [76543210]
          //                     [______09876543___]
            ((((int)in.get(11 + inPos)) <<  3) & 2047)
        | //                           [__543210]
          //                             [654321___________]
            ((((int)in.get(12 + inPos)) <<  11) & 131071);
      out[ 6 + outPos] =
          //                           [76______]
          //            [_______________10]
            ((((int)in.get(12 + inPos)) >>  6) & 3)
        | //                           [76543210]
          //                    [_______98765432__]
            ((((int)in.get(13 + inPos)) <<  2) & 1023)
        | //                           [_6543210]
          //                            [6543210__________]
            ((((int)in.get(14 + inPos)) <<  10) & 131071);
      out[ 7 + outPos] =
          //                           [7_______]
          //           [________________0]
            ((((int)in.get(14 + inPos)) >>  7) & 1)
        | //                           [76543210]
          //                   [________87654321_]
            ((((int)in.get(15 + inPos)) <<  1) & 511)
        | //                           [76543210]
          //                           [65432109_________]
            ((((int)in.get(16 + inPos)) <<  9) & 131071);
      out[ 8 + outPos] =
          //                           [76543210]
          //                  [_________76543210]
            ((((int)in.get(17 + inPos)) ) & 255)
        | //                           [76543210]
          //                          [_54321098________]
            ((((int)in.get(18 + inPos)) <<  8) & 65535)
        | //                           [_______0]
          //                                  [6________________]
            ((((int)in.get(19 + inPos)) <<  16) & 131071);
      out[ 9 + outPos] =
          //                           [7654321_]
          //                 [__________6543210]
            ((((int)in.get(19 + inPos)) >>  1) & 127)
        | //                           [76543210]
          //                         [__43210987_______]
            ((((int)in.get(20 + inPos)) <<  7) & 32767)
        | //                           [______10]
          //                                 [65_______________]
            ((((int)in.get(21 + inPos)) <<  15) & 131071);
      out[10 + outPos] =
          //                           [765432__]
          //                [___________543210]
            ((((int)in.get(21 + inPos)) >>  2) & 63)
        | //                           [76543210]
          //                        [___32109876______]
            ((((int)in.get(22 + inPos)) <<  6) & 16383)
        | //                           [_____210]
          //                                [654______________]
            ((((int)in.get(23 + inPos)) <<  14) & 131071);
      out[11 + outPos] =
          //                           [76543___]
          //               [____________43210]
            ((((int)in.get(23 + inPos)) >>  3) & 31)
        | //                           [76543210]
          //                       [____21098765_____]
            ((((int)in.get(24 + inPos)) <<  5) & 8191)
        | //                           [____3210]
          //                               [6543_____________]
            ((((int)in.get(25 + inPos)) <<  13) & 131071);
      out[12 + outPos] =
          //                           [7654____]
          //              [_____________3210]
            ((((int)in.get(25 + inPos)) >>  4) & 15)
        | //                           [76543210]
          //                      [_____10987654____]
            ((((int)in.get(26 + inPos)) <<  4) & 4095)
        | //                           [___43210]
          //                              [65432____________]
            ((((int)in.get(27 + inPos)) <<  12) & 131071);
      out[13 + outPos] =
          //                           [765_____]
          //             [______________210]
            ((((int)in.get(27 + inPos)) >>  5) & 7)
        | //                           [76543210]
          //                     [______09876543___]
            ((((int)in.get(28 + inPos)) <<  3) & 2047)
        | //                           [__543210]
          //                             [654321___________]
            ((((int)in.get(29 + inPos)) <<  11) & 131071);
      out[14 + outPos] =
          //                           [76______]
          //            [_______________10]
            ((((int)in.get(29 + inPos)) >>  6) & 3)
        | //                           [76543210]
          //                    [_______98765432__]
            ((((int)in.get(30 + inPos)) <<  2) & 1023)
        | //                           [_6543210]
          //                            [6543210__________]
            ((((int)in.get(31 + inPos)) <<  10) & 131071);
      out[15 + outPos] =
          //                           [7_______]
          //           [________________0]
            ((((int)in.get(31 + inPos)) >>  7) & 1)
        | //                           [76543210]
          //                   [________87654321_]
            ((((int)in.get(32 + inPos)) <<  1) & 511)
        | //                           [76543210]
          //                           [65432109_________]
            ((((int)in.get(33 + inPos)) <<  9) & 131071);
      out[16 + outPos] =
          //                           [76543210]
          //                  [_________76543210]
            ((((int)in.get(34 + inPos)) ) & 255)
        | //                           [76543210]
          //                          [_54321098________]
            ((((int)in.get(35 + inPos)) <<  8) & 65535)
        | //                           [_______0]
          //                                  [6________________]
            ((((int)in.get(36 + inPos)) <<  16) & 131071);
      out[17 + outPos] =
          //                           [7654321_]
          //                 [__________6543210]
            ((((int)in.get(36 + inPos)) >>  1) & 127)
        | //                           [76543210]
          //                         [__43210987_______]
            ((((int)in.get(37 + inPos)) <<  7) & 32767)
        | //                           [______10]
          //                                 [65_______________]
            ((((int)in.get(38 + inPos)) <<  15) & 131071);
      out[18 + outPos] =
          //                           [765432__]
          //                [___________543210]
            ((((int)in.get(38 + inPos)) >>  2) & 63)
        | //                           [76543210]
          //                        [___32109876______]
            ((((int)in.get(39 + inPos)) <<  6) & 16383)
        | //                           [_____210]
          //                                [654______________]
            ((((int)in.get(40 + inPos)) <<  14) & 131071);
      out[19 + outPos] =
          //                           [76543___]
          //               [____________43210]
            ((((int)in.get(40 + inPos)) >>  3) & 31)
        | //                           [76543210]
          //                       [____21098765_____]
            ((((int)in.get(41 + inPos)) <<  5) & 8191)
        | //                           [____3210]
          //                               [6543_____________]
            ((((int)in.get(42 + inPos)) <<  13) & 131071);
      out[20 + outPos] =
          //                           [7654____]
          //              [_____________3210]
            ((((int)in.get(42 + inPos)) >>  4) & 15)
        | //                           [76543210]
          //                      [_____10987654____]
            ((((int)in.get(43 + inPos)) <<  4) & 4095)
        | //                           [___43210]
          //                              [65432____________]
            ((((int)in.get(44 + inPos)) <<  12) & 131071);
      out[21 + outPos] =
          //                           [765_____]
          //             [______________210]
            ((((int)in.get(44 + inPos)) >>  5) & 7)
        | //                           [76543210]
          //                     [______09876543___]
            ((((int)in.get(45 + inPos)) <<  3) & 2047)
        | //                           [__543210]
          //                             [654321___________]
            ((((int)in.get(46 + inPos)) <<  11) & 131071);
      out[22 + outPos] =
          //                           [76______]
          //            [_______________10]
            ((((int)in.get(46 + inPos)) >>  6) & 3)
        | //                           [76543210]
          //                    [_______98765432__]
            ((((int)in.get(47 + inPos)) <<  2) & 1023)
        | //                           [_6543210]
          //                            [6543210__________]
            ((((int)in.get(48 + inPos)) <<  10) & 131071);
      out[23 + outPos] =
          //                           [7_______]
          //           [________________0]
            ((((int)in.get(48 + inPos)) >>  7) & 1)
        | //                           [76543210]
          //                   [________87654321_]
            ((((int)in.get(49 + inPos)) <<  1) & 511)
        | //                           [76543210]
          //                           [65432109_________]
            ((((int)in.get(50 + inPos)) <<  9) & 131071);
      out[24 + outPos] =
          //                           [76543210]
          //                  [_________76543210]
            ((((int)in.get(51 + inPos)) ) & 255)
        | //                           [76543210]
          //                          [_54321098________]
            ((((int)in.get(52 + inPos)) <<  8) & 65535)
        | //                           [_______0]
          //                                  [6________________]
            ((((int)in.get(53 + inPos)) <<  16) & 131071);
      out[25 + outPos] =
          //                           [7654321_]
          //                 [__________6543210]
            ((((int)in.get(53 + inPos)) >>  1) & 127)
        | //                           [76543210]
          //                         [__43210987_______]
            ((((int)in.get(54 + inPos)) <<  7) & 32767)
        | //                           [______10]
          //                                 [65_______________]
            ((((int)in.get(55 + inPos)) <<  15) & 131071);
      out[26 + outPos] =
          //                           [765432__]
          //                [___________543210]
            ((((int)in.get(55 + inPos)) >>  2) & 63)
        | //                           [76543210]
          //                        [___32109876______]
            ((((int)in.get(56 + inPos)) <<  6) & 16383)
        | //                           [_____210]
          //                                [654______________]
            ((((int)in.get(57 + inPos)) <<  14) & 131071);
      out[27 + outPos] =
          //                           [76543___]
          //               [____________43210]
            ((((int)in.get(57 + inPos)) >>  3) & 31)
        | //                           [76543210]
          //                       [____21098765_____]
            ((((int)in.get(58 + inPos)) <<  5) & 8191)
        | //                           [____3210]
          //                               [6543_____________]
            ((((int)in.get(59 + inPos)) <<  13) & 131071);
      out[28 + outPos] =
          //                           [7654____]
          //              [_____________3210]
            ((((int)in.get(59 + inPos)) >>  4) & 15)
        | //                           [76543210]
          //                      [_____10987654____]
            ((((int)in.get(60 + inPos)) <<  4) & 4095)
        | //                           [___43210]
          //                              [65432____________]
            ((((int)in.get(61 + inPos)) <<  12) & 131071);
      out[29 + outPos] =
          //                           [765_____]
          //             [______________210]
            ((((int)in.get(61 + inPos)) >>  5) & 7)
        | //                           [76543210]
          //                     [______09876543___]
            ((((int)in.get(62 + inPos)) <<  3) & 2047)
        | //                           [__543210]
          //                             [654321___________]
            ((((int)in.get(63 + inPos)) <<  11) & 131071);
      out[30 + outPos] =
          //                           [76______]
          //            [_______________10]
            ((((int)in.get(63 + inPos)) >>  6) & 3)
        | //                           [76543210]
          //                    [_______98765432__]
            ((((int)in.get(64 + inPos)) <<  2) & 1023)
        | //                           [_6543210]
          //                            [6543210__________]
            ((((int)in.get(65 + inPos)) <<  10) & 131071);
      out[31 + outPos] =
          //                           [7_______]
          //           [________________0]
            ((((int)in.get(65 + inPos)) >>  7) & 1)
        | //                           [76543210]
          //                   [________87654321_]
            ((((int)in.get(66 + inPos)) <<  1) & 511)
        | //                           [76543210]
          //                           [65432109_________]
            ((((int)in.get(67 + inPos)) <<  9) & 131071);
    }
  }

  private static final class Packer18 extends BytePacker {

    private Packer18() {
      super(18);
    }

    public final void pack8Values(final int[] in, final int inPos, final byte[] out, final int outPos) {
      out[ 0 + outPos] = (byte)((
          //                            [76543210]
          //                  [__________76543210]
           ((in[ 0 + inPos] & 262143))) & 255);
      out[ 1 + outPos] = (byte)((
          //                            [76543210]
          //                          [__54321098________]
           ((in[ 0 + inPos] & 262143) >>> 8)) & 255);
      out[ 2 + outPos] = (byte)((
          //                            [______10]
          //                                  [76________________]
           ((in[ 0 + inPos] & 262143) >>> 16)
        | //                            [765432__]
          //                [____________543210]
           ((in[ 1 + inPos] & 262143) <<  2)) & 255);
      out[ 3 + outPos] = (byte)((
          //                            [76543210]
          //                        [____32109876______]
           ((in[ 1 + inPos] & 262143) >>> 6)) & 255);
      out[ 4 + outPos] = (byte)((
          //                            [____3210]
          //                                [7654______________]
           ((in[ 1 + inPos] & 262143) >>> 14)
        | //                            [7654____]
          //              [______________3210]
           ((in[ 2 + inPos] & 262143) <<  4)) & 255);
      out[ 5 + outPos] = (byte)((
          //                            [76543210]
          //                      [______10987654____]
           ((in[ 2 + inPos] & 262143) >>> 4)) & 255);
      out[ 6 + outPos] = (byte)((
          //                            [__543210]
          //                              [765432____________]
           ((in[ 2 + inPos] & 262143) >>> 12)
        | //                            [76______]
          //            [________________10]
           ((in[ 3 + inPos] & 262143) <<  6)) & 255);
      out[ 7 + outPos] = (byte)((
          //                            [76543210]
          //                    [________98765432__]
           ((in[ 3 + inPos] & 262143) >>> 2)) & 255);
      out[ 8 + outPos] = (byte)((
          //                            [76543210]
          //                            [76543210__________]
           ((in[ 3 + inPos] & 262143) >>> 10)) & 255);
      out[ 9 + outPos] = (byte)((
          //                            [76543210]
          //                  [__________76543210]
           ((in[ 4 + inPos] & 262143))) & 255);
      out[10 + outPos] = (byte)((
          //                            [76543210]
          //                          [__54321098________]
           ((in[ 4 + inPos] & 262143) >>> 8)) & 255);
      out[11 + outPos] = (byte)((
          //                            [______10]
          //                                  [76________________]
           ((in[ 4 + inPos] & 262143) >>> 16)
        | //                            [765432__]
          //                [____________543210]
           ((in[ 5 + inPos] & 262143) <<  2)) & 255);
      out[12 + outPos] = (byte)((
          //                            [76543210]
          //                        [____32109876______]
           ((in[ 5 + inPos] & 262143) >>> 6)) & 255);
      out[13 + outPos] = (byte)((
          //                            [____3210]
          //                                [7654______________]
           ((in[ 5 + inPos] & 262143) >>> 14)
        | //                            [7654____]
          //              [______________3210]
           ((in[ 6 + inPos] & 262143) <<  4)) & 255);
      out[14 + outPos] = (byte)((
          //                            [76543210]
          //                      [______10987654____]
           ((in[ 6 + inPos] & 262143) >>> 4)) & 255);
      out[15 + outPos] = (byte)((
          //                            [__543210]
          //                              [765432____________]
           ((in[ 6 + inPos] & 262143) >>> 12)
        | //                            [76______]
          //            [________________10]
           ((in[ 7 + inPos] & 262143) <<  6)) & 255);
      out[16 + outPos] = (byte)((
          //                            [76543210]
          //                    [________98765432__]
           ((in[ 7 + inPos] & 262143) >>> 2)) & 255);
      out[17 + outPos] = (byte)((
          //                            [76543210]
          //                            [76543210__________]
           ((in[ 7 + inPos] & 262143) >>> 10)) & 255);
    }
    public final void pack32Values(final int[] in, final int inPos, final byte[] out, final int outPos) {
      out[ 0 + outPos] = (byte)((
          //                            [76543210]
          //                  [__________76543210]
           ((in[ 0 + inPos] & 262143))) & 255);
      out[ 1 + outPos] = (byte)((
          //                            [76543210]
          //                          [__54321098________]
           ((in[ 0 + inPos] & 262143) >>> 8)) & 255);
      out[ 2 + outPos] = (byte)((
          //                            [______10]
          //                                  [76________________]
           ((in[ 0 + inPos] & 262143) >>> 16)
        | //                            [765432__]
          //                [____________543210]
           ((in[ 1 + inPos] & 262143) <<  2)) & 255);
      out[ 3 + outPos] = (byte)((
          //                            [76543210]
          //                        [____32109876______]
           ((in[ 1 + inPos] & 262143) >>> 6)) & 255);
      out[ 4 + outPos] = (byte)((
          //                            [____3210]
          //                                [7654______________]
           ((in[ 1 + inPos] & 262143) >>> 14)
        | //                            [7654____]
          //              [______________3210]
           ((in[ 2 + inPos] & 262143) <<  4)) & 255);
      out[ 5 + outPos] = (byte)((
          //                            [76543210]
          //                      [______10987654____]
           ((in[ 2 + inPos] & 262143) >>> 4)) & 255);
      out[ 6 + outPos] = (byte)((
          //                            [__543210]
          //                              [765432____________]
           ((in[ 2 + inPos] & 262143) >>> 12)
        | //                            [76______]
          //            [________________10]
           ((in[ 3 + inPos] & 262143) <<  6)) & 255);
      out[ 7 + outPos] = (byte)((
          //                            [76543210]
          //                    [________98765432__]
           ((in[ 3 + inPos] & 262143) >>> 2)) & 255);
      out[ 8 + outPos] = (byte)((
          //                            [76543210]
          //                            [76543210__________]
           ((in[ 3 + inPos] & 262143) >>> 10)) & 255);
      out[ 9 + outPos] = (byte)((
          //                            [76543210]
          //                  [__________76543210]
           ((in[ 4 + inPos] & 262143))) & 255);
      out[10 + outPos] = (byte)((
          //                            [76543210]
          //                          [__54321098________]
           ((in[ 4 + inPos] & 262143) >>> 8)) & 255);
      out[11 + outPos] = (byte)((
          //                            [______10]
          //                                  [76________________]
           ((in[ 4 + inPos] & 262143) >>> 16)
        | //                            [765432__]
          //                [____________543210]
           ((in[ 5 + inPos] & 262143) <<  2)) & 255);
      out[12 + outPos] = (byte)((
          //                            [76543210]
          //                        [____32109876______]
           ((in[ 5 + inPos] & 262143) >>> 6)) & 255);
      out[13 + outPos] = (byte)((
          //                            [____3210]
          //                                [7654______________]
           ((in[ 5 + inPos] & 262143) >>> 14)
        | //                            [7654____]
          //              [______________3210]
           ((in[ 6 + inPos] & 262143) <<  4)) & 255);
      out[14 + outPos] = (byte)((
          //                            [76543210]
          //                      [______10987654____]
           ((in[ 6 + inPos] & 262143) >>> 4)) & 255);
      out[15 + outPos] = (byte)((
          //                            [__543210]
          //                              [765432____________]
           ((in[ 6 + inPos] & 262143) >>> 12)
        | //                            [76______]
          //            [________________10]
           ((in[ 7 + inPos] & 262143) <<  6)) & 255);
      out[16 + outPos] = (byte)((
          //                            [76543210]
          //                    [________98765432__]
           ((in[ 7 + inPos] & 262143) >>> 2)) & 255);
      out[17 + outPos] = (byte)((
          //                            [76543210]
          //                            [76543210__________]
           ((in[ 7 + inPos] & 262143) >>> 10)) & 255);
      out[18 + outPos] = (byte)((
          //                            [76543210]
          //                  [__________76543210]
           ((in[ 8 + inPos] & 262143))) & 255);
      out[19 + outPos] = (byte)((
          //                            [76543210]
          //                          [__54321098________]
           ((in[ 8 + inPos] & 262143) >>> 8)) & 255);
      out[20 + outPos] = (byte)((
          //                            [______10]
          //                                  [76________________]
           ((in[ 8 + inPos] & 262143) >>> 16)
        | //                            [765432__]
          //                [____________543210]
           ((in[ 9 + inPos] & 262143) <<  2)) & 255);
      out[21 + outPos] = (byte)((
          //                            [76543210]
          //                        [____32109876______]
           ((in[ 9 + inPos] & 262143) >>> 6)) & 255);
      out[22 + outPos] = (byte)((
          //                            [____3210]
          //                                [7654______________]
           ((in[ 9 + inPos] & 262143) >>> 14)
        | //                            [7654____]
          //              [______________3210]
           ((in[10 + inPos] & 262143) <<  4)) & 255);
      out[23 + outPos] = (byte)((
          //                            [76543210]
          //                      [______10987654____]
           ((in[10 + inPos] & 262143) >>> 4)) & 255);
      out[24 + outPos] = (byte)((
          //                            [__543210]
          //                              [765432____________]
           ((in[10 + inPos] & 262143) >>> 12)
        | //                            [76______]
          //            [________________10]
           ((in[11 + inPos] & 262143) <<  6)) & 255);
      out[25 + outPos] = (byte)((
          //                            [76543210]
          //                    [________98765432__]
           ((in[11 + inPos] & 262143) >>> 2)) & 255);
      out[26 + outPos] = (byte)((
          //                            [76543210]
          //                            [76543210__________]
           ((in[11 + inPos] & 262143) >>> 10)) & 255);
      out[27 + outPos] = (byte)((
          //                            [76543210]
          //                  [__________76543210]
           ((in[12 + inPos] & 262143))) & 255);
      out[28 + outPos] = (byte)((
          //                            [76543210]
          //                          [__54321098________]
           ((in[12 + inPos] & 262143) >>> 8)) & 255);
      out[29 + outPos] = (byte)((
          //                            [______10]
          //                                  [76________________]
           ((in[12 + inPos] & 262143) >>> 16)
        | //                            [765432__]
          //                [____________543210]
           ((in[13 + inPos] & 262143) <<  2)) & 255);
      out[30 + outPos] = (byte)((
          //                            [76543210]
          //                        [____32109876______]
           ((in[13 + inPos] & 262143) >>> 6)) & 255);
      out[31 + outPos] = (byte)((
          //                            [____3210]
          //                                [7654______________]
           ((in[13 + inPos] & 262143) >>> 14)
        | //                            [7654____]
          //              [______________3210]
           ((in[14 + inPos] & 262143) <<  4)) & 255);
      out[32 + outPos] = (byte)((
          //                            [76543210]
          //                      [______10987654____]
           ((in[14 + inPos] & 262143) >>> 4)) & 255);
      out[33 + outPos] = (byte)((
          //                            [__543210]
          //                              [765432____________]
           ((in[14 + inPos] & 262143) >>> 12)
        | //                            [76______]
          //            [________________10]
           ((in[15 + inPos] & 262143) <<  6)) & 255);
      out[34 + outPos] = (byte)((
          //                            [76543210]
          //                    [________98765432__]
           ((in[15 + inPos] & 262143) >>> 2)) & 255);
      out[35 + outPos] = (byte)((
          //                            [76543210]
          //                            [76543210__________]
           ((in[15 + inPos] & 262143) >>> 10)) & 255);
      out[36 + outPos] = (byte)((
          //                            [76543210]
          //                  [__________76543210]
           ((in[16 + inPos] & 262143))) & 255);
      out[37 + outPos] = (byte)((
          //                            [76543210]
          //                          [__54321098________]
           ((in[16 + inPos] & 262143) >>> 8)) & 255);
      out[38 + outPos] = (byte)((
          //                            [______10]
          //                                  [76________________]
           ((in[16 + inPos] & 262143) >>> 16)
        | //                            [765432__]
          //                [____________543210]
           ((in[17 + inPos] & 262143) <<  2)) & 255);
      out[39 + outPos] = (byte)((
          //                            [76543210]
          //                        [____32109876______]
           ((in[17 + inPos] & 262143) >>> 6)) & 255);
      out[40 + outPos] = (byte)((
          //                            [____3210]
          //                                [7654______________]
           ((in[17 + inPos] & 262143) >>> 14)
        | //                            [7654____]
          //              [______________3210]
           ((in[18 + inPos] & 262143) <<  4)) & 255);
      out[41 + outPos] = (byte)((
          //                            [76543210]
          //                      [______10987654____]
           ((in[18 + inPos] & 262143) >>> 4)) & 255);
      out[42 + outPos] = (byte)((
          //                            [__543210]
          //                              [765432____________]
           ((in[18 + inPos] & 262143) >>> 12)
        | //                            [76______]
          //            [________________10]
           ((in[19 + inPos] & 262143) <<  6)) & 255);
      out[43 + outPos] = (byte)((
          //                            [76543210]
          //                    [________98765432__]
           ((in[19 + inPos] & 262143) >>> 2)) & 255);
      out[44 + outPos] = (byte)((
          //                            [76543210]
          //                            [76543210__________]
           ((in[19 + inPos] & 262143) >>> 10)) & 255);
      out[45 + outPos] = (byte)((
          //                            [76543210]
          //                  [__________76543210]
           ((in[20 + inPos] & 262143))) & 255);
      out[46 + outPos] = (byte)((
          //                            [76543210]
          //                          [__54321098________]
           ((in[20 + inPos] & 262143) >>> 8)) & 255);
      out[47 + outPos] = (byte)((
          //                            [______10]
          //                                  [76________________]
           ((in[20 + inPos] & 262143) >>> 16)
        | //                            [765432__]
          //                [____________543210]
           ((in[21 + inPos] & 262143) <<  2)) & 255);
      out[48 + outPos] = (byte)((
          //                            [76543210]
          //                        [____32109876______]
           ((in[21 + inPos] & 262143) >>> 6)) & 255);
      out[49 + outPos] = (byte)((
          //                            [____3210]
          //                                [7654______________]
           ((in[21 + inPos] & 262143) >>> 14)
        | //                            [7654____]
          //              [______________3210]
           ((in[22 + inPos] & 262143) <<  4)) & 255);
      out[50 + outPos] = (byte)((
          //                            [76543210]
          //                      [______10987654____]
           ((in[22 + inPos] & 262143) >>> 4)) & 255);
      out[51 + outPos] = (byte)((
          //                            [__543210]
          //                              [765432____________]
           ((in[22 + inPos] & 262143) >>> 12)
        | //                            [76______]
          //            [________________10]
           ((in[23 + inPos] & 262143) <<  6)) & 255);
      out[52 + outPos] = (byte)((
          //                            [76543210]
          //                    [________98765432__]
           ((in[23 + inPos] & 262143) >>> 2)) & 255);
      out[53 + outPos] = (byte)((
          //                            [76543210]
          //                            [76543210__________]
           ((in[23 + inPos] & 262143) >>> 10)) & 255);
      out[54 + outPos] = (byte)((
          //                            [76543210]
          //                  [__________76543210]
           ((in[24 + inPos] & 262143))) & 255);
      out[55 + outPos] = (byte)((
          //                            [76543210]
          //                          [__54321098________]
           ((in[24 + inPos] & 262143) >>> 8)) & 255);
      out[56 + outPos] = (byte)((
          //                            [______10]
          //                                  [76________________]
           ((in[24 + inPos] & 262143) >>> 16)
        | //                            [765432__]
          //                [____________543210]
           ((in[25 + inPos] & 262143) <<  2)) & 255);
      out[57 + outPos] = (byte)((
          //                            [76543210]
          //                        [____32109876______]
           ((in[25 + inPos] & 262143) >>> 6)) & 255);
      out[58 + outPos] = (byte)((
          //                            [____3210]
          //                                [7654______________]
           ((in[25 + inPos] & 262143) >>> 14)
        | //                            [7654____]
          //              [______________3210]
           ((in[26 + inPos] & 262143) <<  4)) & 255);
      out[59 + outPos] = (byte)((
          //                            [76543210]
          //                      [______10987654____]
           ((in[26 + inPos] & 262143) >>> 4)) & 255);
      out[60 + outPos] = (byte)((
          //                            [__543210]
          //                              [765432____________]
           ((in[26 + inPos] & 262143) >>> 12)
        | //                            [76______]
          //            [________________10]
           ((in[27 + inPos] & 262143) <<  6)) & 255);
      out[61 + outPos] = (byte)((
          //                            [76543210]
          //                    [________98765432__]
           ((in[27 + inPos] & 262143) >>> 2)) & 255);
      out[62 + outPos] = (byte)((
          //                            [76543210]
          //                            [76543210__________]
           ((in[27 + inPos] & 262143) >>> 10)) & 255);
      out[63 + outPos] = (byte)((
          //                            [76543210]
          //                  [__________76543210]
           ((in[28 + inPos] & 262143))) & 255);
      out[64 + outPos] = (byte)((
          //                            [76543210]
          //                          [__54321098________]
           ((in[28 + inPos] & 262143) >>> 8)) & 255);
      out[65 + outPos] = (byte)((
          //                            [______10]
          //                                  [76________________]
           ((in[28 + inPos] & 262143) >>> 16)
        | //                            [765432__]
          //                [____________543210]
           ((in[29 + inPos] & 262143) <<  2)) & 255);
      out[66 + outPos] = (byte)((
          //                            [76543210]
          //                        [____32109876______]
           ((in[29 + inPos] & 262143) >>> 6)) & 255);
      out[67 + outPos] = (byte)((
          //                            [____3210]
          //                                [7654______________]
           ((in[29 + inPos] & 262143) >>> 14)
        | //                            [7654____]
          //              [______________3210]
           ((in[30 + inPos] & 262143) <<  4)) & 255);
      out[68 + outPos] = (byte)((
          //                            [76543210]
          //                      [______10987654____]
           ((in[30 + inPos] & 262143) >>> 4)) & 255);
      out[69 + outPos] = (byte)((
          //                            [__543210]
          //                              [765432____________]
           ((in[30 + inPos] & 262143) >>> 12)
        | //                            [76______]
          //            [________________10]
           ((in[31 + inPos] & 262143) <<  6)) & 255);
      out[70 + outPos] = (byte)((
          //                            [76543210]
          //                    [________98765432__]
           ((in[31 + inPos] & 262143) >>> 2)) & 255);
      out[71 + outPos] = (byte)((
          //                            [76543210]
          //                            [76543210__________]
           ((in[31 + inPos] & 262143) >>> 10)) & 255);
    }
    public final void unpack8Values(final byte[] in, final int inPos, final int[] out, final int outPos) {
      out[ 0 + outPos] =
          //                            [76543210]
          //                  [__________76543210]
            ((((int)in[ 0 + inPos]) ) & 255)
        | //                            [76543210]
          //                          [__54321098________]
            ((((int)in[ 1 + inPos]) <<  8) & 65535)
        | //                            [______10]
          //                                  [76________________]
            ((((int)in[ 2 + inPos]) <<  16) & 262143);
      out[ 1 + outPos] =
          //                            [765432__]
          //                [____________543210]
            ((((int)in[ 2 + inPos]) >>  2) & 63)
        | //                            [76543210]
          //                        [____32109876______]
            ((((int)in[ 3 + inPos]) <<  6) & 16383)
        | //                            [____3210]
          //                                [7654______________]
            ((((int)in[ 4 + inPos]) <<  14) & 262143);
      out[ 2 + outPos] =
          //                            [7654____]
          //              [______________3210]
            ((((int)in[ 4 + inPos]) >>  4) & 15)
        | //                            [76543210]
          //                      [______10987654____]
            ((((int)in[ 5 + inPos]) <<  4) & 4095)
        | //                            [__543210]
          //                              [765432____________]
            ((((int)in[ 6 + inPos]) <<  12) & 262143);
      out[ 3 + outPos] =
          //                            [76______]
          //            [________________10]
            ((((int)in[ 6 + inPos]) >>  6) & 3)
        | //                            [76543210]
          //                    [________98765432__]
            ((((int)in[ 7 + inPos]) <<  2) & 1023)
        | //                            [76543210]
          //                            [76543210__________]
            ((((int)in[ 8 + inPos]) <<  10) & 262143);
      out[ 4 + outPos] =
          //                            [76543210]
          //                  [__________76543210]
            ((((int)in[ 9 + inPos]) ) & 255)
        | //                            [76543210]
          //                          [__54321098________]
            ((((int)in[10 + inPos]) <<  8) & 65535)
        | //                            [______10]
          //                                  [76________________]
            ((((int)in[11 + inPos]) <<  16) & 262143);
      out[ 5 + outPos] =
          //                            [765432__]
          //                [____________543210]
            ((((int)in[11 + inPos]) >>  2) & 63)
        | //                            [76543210]
          //                        [____32109876______]
            ((((int)in[12 + inPos]) <<  6) & 16383)
        | //                            [____3210]
          //                                [7654______________]
            ((((int)in[13 + inPos]) <<  14) & 262143);
      out[ 6 + outPos] =
          //                            [7654____]
          //              [______________3210]
            ((((int)in[13 + inPos]) >>  4) & 15)
        | //                            [76543210]
          //                      [______10987654____]
            ((((int)in[14 + inPos]) <<  4) & 4095)
        | //                            [__543210]
          //                              [765432____________]
            ((((int)in[15 + inPos]) <<  12) & 262143);
      out[ 7 + outPos] =
          //                            [76______]
          //            [________________10]
            ((((int)in[15 + inPos]) >>  6) & 3)
        | //                            [76543210]
          //                    [________98765432__]
            ((((int)in[16 + inPos]) <<  2) & 1023)
        | //                            [76543210]
          //                            [76543210__________]
            ((((int)in[17 + inPos]) <<  10) & 262143);
    }
    public final void unpack8Values(final ByteBuffer in, final int inPos, final int[] out, final int outPos) {
      out[ 0 + outPos] =
          //                            [76543210]
          //                  [__________76543210]
            ((((int)in.get( 0 + inPos)) ) & 255)
        | //                            [76543210]
          //                          [__54321098________]
            ((((int)in.get( 1 + inPos)) <<  8) & 65535)
        | //                            [______10]
          //                                  [76________________]
            ((((int)in.get( 2 + inPos)) <<  16) & 262143);
      out[ 1 + outPos] =
          //                            [765432__]
          //                [____________543210]
            ((((int)in.get( 2 + inPos)) >>  2) & 63)
        | //                            [76543210]
          //                        [____32109876______]
            ((((int)in.get( 3 + inPos)) <<  6) & 16383)
        | //                            [____3210]
          //                                [7654______________]
            ((((int)in.get( 4 + inPos)) <<  14) & 262143);
      out[ 2 + outPos] =
          //                            [7654____]
          //              [______________3210]
            ((((int)in.get( 4 + inPos)) >>  4) & 15)
        | //                            [76543210]
          //                      [______10987654____]
            ((((int)in.get( 5 + inPos)) <<  4) & 4095)
        | //                            [__543210]
          //                              [765432____________]
            ((((int)in.get( 6 + inPos)) <<  12) & 262143);
      out[ 3 + outPos] =
          //                            [76______]
          //            [________________10]
            ((((int)in.get( 6 + inPos)) >>  6) & 3)
        | //                            [76543210]
          //                    [________98765432__]
            ((((int)in.get( 7 + inPos)) <<  2) & 1023)
        | //                            [76543210]
          //                            [76543210__________]
            ((((int)in.get( 8 + inPos)) <<  10) & 262143);
      out[ 4 + outPos] =
          //                            [76543210]
          //                  [__________76543210]
            ((((int)in.get( 9 + inPos)) ) & 255)
        | //                            [76543210]
          //                          [__54321098________]
            ((((int)in.get(10 + inPos)) <<  8) & 65535)
        | //                            [______10]
          //                                  [76________________]
            ((((int)in.get(11 + inPos)) <<  16) & 262143);
      out[ 5 + outPos] =
          //                            [765432__]
          //                [____________543210]
            ((((int)in.get(11 + inPos)) >>  2) & 63)
        | //                            [76543210]
          //                        [____32109876______]
            ((((int)in.get(12 + inPos)) <<  6) & 16383)
        | //                            [____3210]
          //                                [7654______________]
            ((((int)in.get(13 + inPos)) <<  14) & 262143);
      out[ 6 + outPos] =
          //                            [7654____]
          //              [______________3210]
            ((((int)in.get(13 + inPos)) >>  4) & 15)
        | //                            [76543210]
          //                      [______10987654____]
            ((((int)in.get(14 + inPos)) <<  4) & 4095)
        | //                            [__543210]
          //                              [765432____________]
            ((((int)in.get(15 + inPos)) <<  12) & 262143);
      out[ 7 + outPos] =
          //                            [76______]
          //            [________________10]
            ((((int)in.get(15 + inPos)) >>  6) & 3)
        | //                            [76543210]
          //                    [________98765432__]
            ((((int)in.get(16 + inPos)) <<  2) & 1023)
        | //                            [76543210]
          //                            [76543210__________]
            ((((int)in.get(17 + inPos)) <<  10) & 262143);
    }
    public final void unpack32Values(final byte[] in, final int inPos, final int[] out, final int outPos) {
      out[ 0 + outPos] =
          //                            [76543210]
          //                  [__________76543210]
            ((((int)in[ 0 + inPos]) ) & 255)
        | //                            [76543210]
          //                          [__54321098________]
            ((((int)in[ 1 + inPos]) <<  8) & 65535)
        | //                            [______10]
          //                                  [76________________]
            ((((int)in[ 2 + inPos]) <<  16) & 262143);
      out[ 1 + outPos] =
          //                            [765432__]
          //                [____________543210]
            ((((int)in[ 2 + inPos]) >>  2) & 63)
        | //                            [76543210]
          //                        [____32109876______]
            ((((int)in[ 3 + inPos]) <<  6) & 16383)
        | //                            [____3210]
          //                                [7654______________]
            ((((int)in[ 4 + inPos]) <<  14) & 262143);
      out[ 2 + outPos] =
          //                            [7654____]
          //              [______________3210]
            ((((int)in[ 4 + inPos]) >>  4) & 15)
        | //                            [76543210]
          //                      [______10987654____]
            ((((int)in[ 5 + inPos]) <<  4) & 4095)
        | //                            [__543210]
          //                              [765432____________]
            ((((int)in[ 6 + inPos]) <<  12) & 262143);
      out[ 3 + outPos] =
          //                            [76______]
          //            [________________10]
            ((((int)in[ 6 + inPos]) >>  6) & 3)
        | //                            [76543210]
          //                    [________98765432__]
            ((((int)in[ 7 + inPos]) <<  2) & 1023)
        | //                            [76543210]
          //                            [76543210__________]
            ((((int)in[ 8 + inPos]) <<  10) & 262143);
      out[ 4 + outPos] =
          //                            [76543210]
          //                  [__________76543210]
            ((((int)in[ 9 + inPos]) ) & 255)
        | //                            [76543210]
          //                          [__54321098________]
            ((((int)in[10 + inPos]) <<  8) & 65535)
        | //                            [______10]
          //                                  [76________________]
            ((((int)in[11 + inPos]) <<  16) & 262143);
      out[ 5 + outPos] =
          //                            [765432__]
          //                [____________543210]
            ((((int)in[11 + inPos]) >>  2) & 63)
        | //                            [76543210]
          //                        [____32109876______]
            ((((int)in[12 + inPos]) <<  6) & 16383)
        | //                            [____3210]
          //                                [7654______________]
            ((((int)in[13 + inPos]) <<  14) & 262143);
      out[ 6 + outPos] =
          //                            [7654____]
          //              [______________3210]
            ((((int)in[13 + inPos]) >>  4) & 15)
        | //                            [76543210]
          //                      [______10987654____]
            ((((int)in[14 + inPos]) <<  4) & 4095)
        | //                            [__543210]
          //                              [765432____________]
            ((((int)in[15 + inPos]) <<  12) & 262143);
      out[ 7 + outPos] =
          //                            [76______]
          //            [________________10]
            ((((int)in[15 + inPos]) >>  6) & 3)
        | //                            [76543210]
          //                    [________98765432__]
            ((((int)in[16 + inPos]) <<  2) & 1023)
        | //                            [76543210]
          //                            [76543210__________]
            ((((int)in[17 + inPos]) <<  10) & 262143);
      out[ 8 + outPos] =
          //                            [76543210]
          //                  [__________76543210]
            ((((int)in[18 + inPos]) ) & 255)
        | //                            [76543210]
          //                          [__54321098________]
            ((((int)in[19 + inPos]) <<  8) & 65535)
        | //                            [______10]
          //                                  [76________________]
            ((((int)in[20 + inPos]) <<  16) & 262143);
      out[ 9 + outPos] =
          //                            [765432__]
          //                [____________543210]
            ((((int)in[20 + inPos]) >>  2) & 63)
        | //                            [76543210]
          //                        [____32109876______]
            ((((int)in[21 + inPos]) <<  6) & 16383)
        | //                            [____3210]
          //                                [7654______________]
            ((((int)in[22 + inPos]) <<  14) & 262143);
      out[10 + outPos] =
          //                            [7654____]
          //              [______________3210]
            ((((int)in[22 + inPos]) >>  4) & 15)
        | //                            [76543210]
          //                      [______10987654____]
            ((((int)in[23 + inPos]) <<  4) & 4095)
        | //                            [__543210]
          //                              [765432____________]
            ((((int)in[24 + inPos]) <<  12) & 262143);
      out[11 + outPos] =
          //                            [76______]
          //            [________________10]
            ((((int)in[24 + inPos]) >>  6) & 3)
        | //                            [76543210]
          //                    [________98765432__]
            ((((int)in[25 + inPos]) <<  2) & 1023)
        | //                            [76543210]
          //                            [76543210__________]
            ((((int)in[26 + inPos]) <<  10) & 262143);
      out[12 + outPos] =
          //                            [76543210]
          //                  [__________76543210]
            ((((int)in[27 + inPos]) ) & 255)
        | //                            [76543210]
          //                          [__54321098________]
            ((((int)in[28 + inPos]) <<  8) & 65535)
        | //                            [______10]
          //                                  [76________________]
            ((((int)in[29 + inPos]) <<  16) & 262143);
      out[13 + outPos] =
          //                            [765432__]
          //                [____________543210]
            ((((int)in[29 + inPos]) >>  2) & 63)
        | //                            [76543210]
          //                        [____32109876______]
            ((((int)in[30 + inPos]) <<  6) & 16383)
        | //                            [____3210]
          //                                [7654______________]
            ((((int)in[31 + inPos]) <<  14) & 262143);
      out[14 + outPos] =
          //                            [7654____]
          //              [______________3210]
            ((((int)in[31 + inPos]) >>  4) & 15)
        | //                            [76543210]
          //                      [______10987654____]
            ((((int)in[32 + inPos]) <<  4) & 4095)
        | //                            [__543210]
          //                              [765432____________]
            ((((int)in[33 + inPos]) <<  12) & 262143);
      out[15 + outPos] =
          //                            [76______]
          //            [________________10]
            ((((int)in[33 + inPos]) >>  6) & 3)
        | //                            [76543210]
          //                    [________98765432__]
            ((((int)in[34 + inPos]) <<  2) & 1023)
        | //                            [76543210]
          //                            [76543210__________]
            ((((int)in[35 + inPos]) <<  10) & 262143);
      out[16 + outPos] =
          //                            [76543210]
          //                  [__________76543210]
            ((((int)in[36 + inPos]) ) & 255)
        | //                            [76543210]
          //                          [__54321098________]
            ((((int)in[37 + inPos]) <<  8) & 65535)
        | //                            [______10]
          //                                  [76________________]
            ((((int)in[38 + inPos]) <<  16) & 262143);
      out[17 + outPos] =
          //                            [765432__]
          //                [____________543210]
            ((((int)in[38 + inPos]) >>  2) & 63)
        | //                            [76543210]
          //                        [____32109876______]
            ((((int)in[39 + inPos]) <<  6) & 16383)
        | //                            [____3210]
          //                                [7654______________]
            ((((int)in[40 + inPos]) <<  14) & 262143);
      out[18 + outPos] =
          //                            [7654____]
          //              [______________3210]
            ((((int)in[40 + inPos]) >>  4) & 15)
        | //                            [76543210]
          //                      [______10987654____]
            ((((int)in[41 + inPos]) <<  4) & 4095)
        | //                            [__543210]
          //                              [765432____________]
            ((((int)in[42 + inPos]) <<  12) & 262143);
      out[19 + outPos] =
          //                            [76______]
          //            [________________10]
            ((((int)in[42 + inPos]) >>  6) & 3)
        | //                            [76543210]
          //                    [________98765432__]
            ((((int)in[43 + inPos]) <<  2) & 1023)
        | //                            [76543210]
          //                            [76543210__________]
            ((((int)in[44 + inPos]) <<  10) & 262143);
      out[20 + outPos] =
          //                            [76543210]
          //                  [__________76543210]
            ((((int)in[45 + inPos]) ) & 255)
        | //                            [76543210]
          //                          [__54321098________]
            ((((int)in[46 + inPos]) <<  8) & 65535)
        | //                            [______10]
          //                                  [76________________]
            ((((int)in[47 + inPos]) <<  16) & 262143);
      out[21 + outPos] =
          //                            [765432__]
          //                [____________543210]
            ((((int)in[47 + inPos]) >>  2) & 63)
        | //                            [76543210]
          //                        [____32109876______]
            ((((int)in[48 + inPos]) <<  6) & 16383)
        | //                            [____3210]
          //                                [7654______________]
            ((((int)in[49 + inPos]) <<  14) & 262143);
      out[22 + outPos] =
          //                            [7654____]
          //              [______________3210]
            ((((int)in[49 + inPos]) >>  4) & 15)
        | //                            [76543210]
          //                      [______10987654____]
            ((((int)in[50 + inPos]) <<  4) & 4095)
        | //                            [__543210]
          //                              [765432____________]
            ((((int)in[51 + inPos]) <<  12) & 262143);
      out[23 + outPos] =
          //                            [76______]
          //            [________________10]
            ((((int)in[51 + inPos]) >>  6) & 3)
        | //                            [76543210]
          //                    [________98765432__]
            ((((int)in[52 + inPos]) <<  2) & 1023)
        | //                            [76543210]
          //                            [76543210__________]
            ((((int)in[53 + inPos]) <<  10) & 262143);
      out[24 + outPos] =
          //                            [76543210]
          //                  [__________76543210]
            ((((int)in[54 + inPos]) ) & 255)
        | //                            [76543210]
          //                          [__54321098________]
            ((((int)in[55 + inPos]) <<  8) & 65535)
        | //                            [______10]
          //                                  [76________________]
            ((((int)in[56 + inPos]) <<  16) & 262143);
      out[25 + outPos] =
          //                            [765432__]
          //                [____________543210]
            ((((int)in[56 + inPos]) >>  2) & 63)
        | //                            [76543210]
          //                        [____32109876______]
            ((((int)in[57 + inPos]) <<  6) & 16383)
        | //                            [____3210]
          //                                [7654______________]
            ((((int)in[58 + inPos]) <<  14) & 262143);
      out[26 + outPos] =
          //                            [7654____]
          //              [______________3210]
            ((((int)in[58 + inPos]) >>  4) & 15)
        | //                            [76543210]
          //                      [______10987654____]
            ((((int)in[59 + inPos]) <<  4) & 4095)
        | //                            [__543210]
          //                              [765432____________]
            ((((int)in[60 + inPos]) <<  12) & 262143);
      out[27 + outPos] =
          //                            [76______]
          //            [________________10]
            ((((int)in[60 + inPos]) >>  6) & 3)
        | //                            [76543210]
          //                    [________98765432__]
            ((((int)in[61 + inPos]) <<  2) & 1023)
        | //                            [76543210]
          //                            [76543210__________]
            ((((int)in[62 + inPos]) <<  10) & 262143);
      out[28 + outPos] =
          //                            [76543210]
          //                  [__________76543210]
            ((((int)in[63 + inPos]) ) & 255)
        | //                            [76543210]
          //                          [__54321098________]
            ((((int)in[64 + inPos]) <<  8) & 65535)
        | //                            [______10]
          //                                  [76________________]
            ((((int)in[65 + inPos]) <<  16) & 262143);
      out[29 + outPos] =
          //                            [765432__]
          //                [____________543210]
            ((((int)in[65 + inPos]) >>  2) & 63)
        | //                            [76543210]
          //                        [____32109876______]
            ((((int)in[66 + inPos]) <<  6) & 16383)
        | //                            [____3210]
          //                                [7654______________]
            ((((int)in[67 + inPos]) <<  14) & 262143);
      out[30 + outPos] =
          //                            [7654____]
          //              [______________3210]
            ((((int)in[67 + inPos]) >>  4) & 15)
        | //                            [76543210]
          //                      [______10987654____]
            ((((int)in[68 + inPos]) <<  4) & 4095)
        | //                            [__543210]
          //                              [765432____________]
            ((((int)in[69 + inPos]) <<  12) & 262143);
      out[31 + outPos] =
          //                            [76______]
          //            [________________10]
            ((((int)in[69 + inPos]) >>  6) & 3)
        | //                            [76543210]
          //                    [________98765432__]
            ((((int)in[70 + inPos]) <<  2) & 1023)
        | //                            [76543210]
          //                            [76543210__________]
            ((((int)in[71 + inPos]) <<  10) & 262143);
    }
    public final void unpack32Values(final ByteBuffer in, final int inPos, final int[] out, final int outPos) {
      out[ 0 + outPos] =
          //                            [76543210]
          //                  [__________76543210]
            ((((int)in.get( 0 + inPos)) ) & 255)
        | //                            [76543210]
          //                          [__54321098________]
            ((((int)in.get( 1 + inPos)) <<  8) & 65535)
        | //                            [______10]
          //                                  [76________________]
            ((((int)in.get( 2 + inPos)) <<  16) & 262143);
      out[ 1 + outPos] =
          //                            [765432__]
          //                [____________543210]
            ((((int)in.get( 2 + inPos)) >>  2) & 63)
        | //                            [76543210]
          //                        [____32109876______]
            ((((int)in.get( 3 + inPos)) <<  6) & 16383)
        | //                            [____3210]
          //                                [7654______________]
            ((((int)in.get( 4 + inPos)) <<  14) & 262143);
      out[ 2 + outPos] =
          //                            [7654____]
          //              [______________3210]
            ((((int)in.get( 4 + inPos)) >>  4) & 15)
        | //                            [76543210]
          //                      [______10987654____]
            ((((int)in.get( 5 + inPos)) <<  4) & 4095)
        | //                            [__543210]
          //                              [765432____________]
            ((((int)in.get( 6 + inPos)) <<  12) & 262143);
      out[ 3 + outPos] =
          //                            [76______]
          //            [________________10]
            ((((int)in.get( 6 + inPos)) >>  6) & 3)
        | //                            [76543210]
          //                    [________98765432__]
            ((((int)in.get( 7 + inPos)) <<  2) & 1023)
        | //                            [76543210]
          //                            [76543210__________]
            ((((int)in.get( 8 + inPos)) <<  10) & 262143);
      out[ 4 + outPos] =
          //                            [76543210]
          //                  [__________76543210]
            ((((int)in.get( 9 + inPos)) ) & 255)
        | //                            [76543210]
          //                          [__54321098________]
            ((((int)in.get(10 + inPos)) <<  8) & 65535)
        | //                            [______10]
          //                                  [76________________]
            ((((int)in.get(11 + inPos)) <<  16) & 262143);
      out[ 5 + outPos] =
          //                            [765432__]
          //                [____________543210]
            ((((int)in.get(11 + inPos)) >>  2) & 63)
        | //                            [76543210]
          //                        [____32109876______]
            ((((int)in.get(12 + inPos)) <<  6) & 16383)
        | //                            [____3210]
          //                                [7654______________]
            ((((int)in.get(13 + inPos)) <<  14) & 262143);
      out[ 6 + outPos] =
          //                            [7654____]
          //              [______________3210]
            ((((int)in.get(13 + inPos)) >>  4) & 15)
        | //                            [76543210]
          //                      [______10987654____]
            ((((int)in.get(14 + inPos)) <<  4) & 4095)
        | //                            [__543210]
          //                              [765432____________]
            ((((int)in.get(15 + inPos)) <<  12) & 262143);
      out[ 7 + outPos] =
          //                            [76______]
          //            [________________10]
            ((((int)in.get(15 + inPos)) >>  6) & 3)
        | //                            [76543210]
          //                    [________98765432__]
            ((((int)in.get(16 + inPos)) <<  2) & 1023)
        | //                            [76543210]
          //                            [76543210__________]
            ((((int)in.get(17 + inPos)) <<  10) & 262143);
      out[ 8 + outPos] =
          //                            [76543210]
          //                  [__________76543210]
            ((((int)in.get(18 + inPos)) ) & 255)
        | //                            [76543210]
          //                          [__54321098________]
            ((((int)in.get(19 + inPos)) <<  8) & 65535)
        | //                            [______10]
          //                                  [76________________]
            ((((int)in.get(20 + inPos)) <<  16) & 262143);
      out[ 9 + outPos] =
          //                            [765432__]
          //                [____________543210]
            ((((int)in.get(20 + inPos)) >>  2) & 63)
        | //                            [76543210]
          //                        [____32109876______]
            ((((int)in.get(21 + inPos)) <<  6) & 16383)
        | //                            [____3210]
          //                                [7654______________]
            ((((int)in.get(22 + inPos)) <<  14) & 262143);
      out[10 + outPos] =
          //                            [7654____]
          //              [______________3210]
            ((((int)in.get(22 + inPos)) >>  4) & 15)
        | //                            [76543210]
          //                      [______10987654____]
            ((((int)in.get(23 + inPos)) <<  4) & 4095)
        | //                            [__543210]
          //                              [765432____________]
            ((((int)in.get(24 + inPos)) <<  12) & 262143);
      out[11 + outPos] =
          //                            [76______]
          //            [________________10]
            ((((int)in.get(24 + inPos)) >>  6) & 3)
        | //                            [76543210]
          //                    [________98765432__]
            ((((int)in.get(25 + inPos)) <<  2) & 1023)
        | //                            [76543210]
          //                            [76543210__________]
            ((((int)in.get(26 + inPos)) <<  10) & 262143);
      out[12 + outPos] =
          //                            [76543210]
          //                  [__________76543210]
            ((((int)in.get(27 + inPos)) ) & 255)
        | //                            [76543210]
          //                          [__54321098________]
            ((((int)in.get(28 + inPos)) <<  8) & 65535)
        | //                            [______10]
          //                                  [76________________]
            ((((int)in.get(29 + inPos)) <<  16) & 262143);
      out[13 + outPos] =
          //                            [765432__]
          //                [____________543210]
            ((((int)in.get(29 + inPos)) >>  2) & 63)
        | //                            [76543210]
          //                        [____32109876______]
            ((((int)in.get(30 + inPos)) <<  6) & 16383)
        | //                            [____3210]
          //                                [7654______________]
            ((((int)in.get(31 + inPos)) <<  14) & 262143);
      out[14 + outPos] =
          //                            [7654____]
          //              [______________3210]
            ((((int)in.get(31 + inPos)) >>  4) & 15)
        | //                            [76543210]
          //                      [______10987654____]
            ((((int)in.get(32 + inPos)) <<  4) & 4095)
        | //                            [__543210]
          //                              [765432____________]
            ((((int)in.get(33 + inPos)) <<  12) & 262143);
      out[15 + outPos] =
          //                            [76______]
          //            [________________10]
            ((((int)in.get(33 + inPos)) >>  6) & 3)
        | //                            [76543210]
          //                    [________98765432__]
            ((((int)in.get(34 + inPos)) <<  2) & 1023)
        | //                            [76543210]
          //                            [76543210__________]
            ((((int)in.get(35 + inPos)) <<  10) & 262143);
      out[16 + outPos] =
          //                            [76543210]
          //                  [__________76543210]
            ((((int)in.get(36 + inPos)) ) & 255)
        | //                            [76543210]
          //                          [__54321098________]
            ((((int)in.get(37 + inPos)) <<  8) & 65535)
        | //                            [______10]
          //                                  [76________________]
            ((((int)in.get(38 + inPos)) <<  16) & 262143);
      out[17 + outPos] =
          //                            [765432__]
          //                [____________543210]
            ((((int)in.get(38 + inPos)) >>  2) & 63)
        | //                            [76543210]
          //                        [____32109876______]
            ((((int)in.get(39 + inPos)) <<  6) & 16383)
        | //                            [____3210]
          //                                [7654______________]
            ((((int)in.get(40 + inPos)) <<  14) & 262143);
      out[18 + outPos] =
          //                            [7654____]
          //              [______________3210]
            ((((int)in.get(40 + inPos)) >>  4) & 15)
        | //                            [76543210]
          //                      [______10987654____]
            ((((int)in.get(41 + inPos)) <<  4) & 4095)
        | //                            [__543210]
          //                              [765432____________]
            ((((int)in.get(42 + inPos)) <<  12) & 262143);
      out[19 + outPos] =
          //                            [76______]
          //            [________________10]
            ((((int)in.get(42 + inPos)) >>  6) & 3)
        | //                            [76543210]
          //                    [________98765432__]
            ((((int)in.get(43 + inPos)) <<  2) & 1023)
        | //                            [76543210]
          //                            [76543210__________]
            ((((int)in.get(44 + inPos)) <<  10) & 262143);
      out[20 + outPos] =
          //                            [76543210]
          //                  [__________76543210]
            ((((int)in.get(45 + inPos)) ) & 255)
        | //                            [76543210]
          //                          [__54321098________]
            ((((int)in.get(46 + inPos)) <<  8) & 65535)
        | //                            [______10]
          //                                  [76________________]
            ((((int)in.get(47 + inPos)) <<  16) & 262143);
      out[21 + outPos] =
          //                            [765432__]
          //                [____________543210]
            ((((int)in.get(47 + inPos)) >>  2) & 63)
        | //                            [76543210]
          //                        [____32109876______]
            ((((int)in.get(48 + inPos)) <<  6) & 16383)
        | //                            [____3210]
          //                                [7654______________]
            ((((int)in.get(49 + inPos)) <<  14) & 262143);
      out[22 + outPos] =
          //                            [7654____]
          //              [______________3210]
            ((((int)in.get(49 + inPos)) >>  4) & 15)
        | //                            [76543210]
          //                      [______10987654____]
            ((((int)in.get(50 + inPos)) <<  4) & 4095)
        | //                            [__543210]
          //                              [765432____________]
            ((((int)in.get(51 + inPos)) <<  12) & 262143);
      out[23 + outPos] =
          //                            [76______]
          //            [________________10]
            ((((int)in.get(51 + inPos)) >>  6) & 3)
        | //                            [76543210]
          //                    [________98765432__]
            ((((int)in.get(52 + inPos)) <<  2) & 1023)
        | //                            [76543210]
          //                            [76543210__________]
            ((((int)in.get(53 + inPos)) <<  10) & 262143);
      out[24 + outPos] =
          //                            [76543210]
          //                  [__________76543210]
            ((((int)in.get(54 + inPos)) ) & 255)
        | //                            [76543210]
          //                          [__54321098________]
            ((((int)in.get(55 + inPos)) <<  8) & 65535)
        | //                            [______10]
          //                                  [76________________]
            ((((int)in.get(56 + inPos)) <<  16) & 262143);
      out[25 + outPos] =
          //                            [765432__]
          //                [____________543210]
            ((((int)in.get(56 + inPos)) >>  2) & 63)
        | //                            [76543210]
          //                        [____32109876______]
            ((((int)in.get(57 + inPos)) <<  6) & 16383)
        | //                            [____3210]
          //                                [7654______________]
            ((((int)in.get(58 + inPos)) <<  14) & 262143);
      out[26 + outPos] =
          //                            [7654____]
          //              [______________3210]
            ((((int)in.get(58 + inPos)) >>  4) & 15)
        | //                            [76543210]
          //                      [______10987654____]
            ((((int)in.get(59 + inPos)) <<  4) & 4095)
        | //                            [__543210]
          //                              [765432____________]
            ((((int)in.get(60 + inPos)) <<  12) & 262143);
      out[27 + outPos] =
          //                            [76______]
          //            [________________10]
            ((((int)in.get(60 + inPos)) >>  6) & 3)
        | //                            [76543210]
          //                    [________98765432__]
            ((((int)in.get(61 + inPos)) <<  2) & 1023)
        | //                            [76543210]
          //                            [76543210__________]
            ((((int)in.get(62 + inPos)) <<  10) & 262143);
      out[28 + outPos] =
          //                            [76543210]
          //                  [__________76543210]
            ((((int)in.get(63 + inPos)) ) & 255)
        | //                            [76543210]
          //                          [__54321098________]
            ((((int)in.get(64 + inPos)) <<  8) & 65535)
        | //                            [______10]
          //                                  [76________________]
            ((((int)in.get(65 + inPos)) <<  16) & 262143);
      out[29 + outPos] =
          //                            [765432__]
          //                [____________543210]
            ((((int)in.get(65 + inPos)) >>  2) & 63)
        | //                            [76543210]
          //                        [____32109876______]
            ((((int)in.get(66 + inPos)) <<  6) & 16383)
        | //                            [____3210]
          //                                [7654______________]
            ((((int)in.get(67 + inPos)) <<  14) & 262143);
      out[30 + outPos] =
          //                            [7654____]
          //              [______________3210]
            ((((int)in.get(67 + inPos)) >>  4) & 15)
        | //                            [76543210]
          //                      [______10987654____]
            ((((int)in.get(68 + inPos)) <<  4) & 4095)
        | //                            [__543210]
          //                              [765432____________]
            ((((int)in.get(69 + inPos)) <<  12) & 262143);
      out[31 + outPos] =
          //                            [76______]
          //            [________________10]
            ((((int)in.get(69 + inPos)) >>  6) & 3)
        | //                            [76543210]
          //                    [________98765432__]
            ((((int)in.get(70 + inPos)) <<  2) & 1023)
        | //                            [76543210]
          //                            [76543210__________]
            ((((int)in.get(71 + inPos)) <<  10) & 262143);
    }
  }

  private static final class Packer19 extends BytePacker {

    private Packer19() {
      super(19);
    }

    public final void pack8Values(final int[] in, final int inPos, final byte[] out, final int outPos) {
      out[ 0 + outPos] = (byte)((
          //                             [76543210]
          //                  [___________76543210]
           ((in[ 0 + inPos] & 524287))) & 255);
      out[ 1 + outPos] = (byte)((
          //                             [76543210]
          //                          [___54321098________]
           ((in[ 0 + inPos] & 524287) >>> 8)) & 255);
      out[ 2 + outPos] = (byte)((
          //                             [_____210]
          //                                  [876________________]
           ((in[ 0 + inPos] & 524287) >>> 16)
        | //                             [76543___]
          //               [______________43210]
           ((in[ 1 + inPos] & 524287) <<  3)) & 255);
      out[ 3 + outPos] = (byte)((
          //                             [76543210]
          //                       [______21098765_____]
           ((in[ 1 + inPos] & 524287) >>> 5)) & 255);
      out[ 4 + outPos] = (byte)((
          //                             [__543210]
          //                               [876543_____________]
           ((in[ 1 + inPos] & 524287) >>> 13)
        | //                             [76______]
          //            [_________________10]
           ((in[ 2 + inPos] & 524287) <<  6)) & 255);
      out[ 5 + outPos] = (byte)((
          //                             [76543210]
          //                    [_________98765432__]
           ((in[ 2 + inPos] & 524287) >>> 2)) & 255);
      out[ 6 + outPos] = (byte)((
          //                             [76543210]
          //                            [_76543210__________]
           ((in[ 2 + inPos] & 524287) >>> 10)) & 255);
      out[ 7 + outPos] = (byte)((
          //                             [_______0]
          //                                    [8__________________]
           ((in[ 2 + inPos] & 524287) >>> 18)
        | //                             [7654321_]
          //                 [____________6543210]
           ((in[ 3 + inPos] & 524287) <<  1)) & 255);
      out[ 8 + outPos] = (byte)((
          //                             [76543210]
          //                         [____43210987_______]
           ((in[ 3 + inPos] & 524287) >>> 7)) & 255);
      out[ 9 + outPos] = (byte)((
          //                             [____3210]
          //                                 [8765_______________]
           ((in[ 3 + inPos] & 524287) >>> 15)
        | //                             [7654____]
          //              [_______________3210]
           ((in[ 4 + inPos] & 524287) <<  4)) & 255);
      out[10 + outPos] = (byte)((
          //                             [76543210]
          //                      [_______10987654____]
           ((in[ 4 + inPos] & 524287) >>> 4)) & 255);
      out[11 + outPos] = (byte)((
          //                             [_6543210]
          //                              [8765432____________]
           ((in[ 4 + inPos] & 524287) >>> 12)
        | //                             [7_______]
          //           [__________________0]
           ((in[ 5 + inPos] & 524287) <<  7)) & 255);
      out[12 + outPos] = (byte)((
          //                             [76543210]
          //                   [__________87654321_]
           ((in[ 5 + inPos] & 524287) >>> 1)) & 255);
      out[13 + outPos] = (byte)((
          //                             [76543210]
          //                           [__65432109_________]
           ((in[ 5 + inPos] & 524287) >>> 9)) & 255);
      out[14 + outPos] = (byte)((
          //                             [______10]
          //                                   [87_________________]
           ((in[ 5 + inPos] & 524287) >>> 17)
        | //                             [765432__]
          //                [_____________543210]
           ((in[ 6 + inPos] & 524287) <<  2)) & 255);
      out[15 + outPos] = (byte)((
          //                             [76543210]
          //                        [_____32109876______]
           ((in[ 6 + inPos] & 524287) >>> 6)) & 255);
      out[16 + outPos] = (byte)((
          //                             [___43210]
          //                                [87654______________]
           ((in[ 6 + inPos] & 524287) >>> 14)
        | //                             [765_____]
          //             [________________210]
           ((in[ 7 + inPos] & 524287) <<  5)) & 255);
      out[17 + outPos] = (byte)((
          //                             [76543210]
          //                     [________09876543___]
           ((in[ 7 + inPos] & 524287) >>> 3)) & 255);
      out[18 + outPos] = (byte)((
          //                             [76543210]
          //                             [87654321___________]
           ((in[ 7 + inPos] & 524287) >>> 11)) & 255);
    }
    public final void pack32Values(final int[] in, final int inPos, final byte[] out, final int outPos) {
      out[ 0 + outPos] = (byte)((
          //                             [76543210]
          //                  [___________76543210]
           ((in[ 0 + inPos] & 524287))) & 255);
      out[ 1 + outPos] = (byte)((
          //                             [76543210]
          //                          [___54321098________]
           ((in[ 0 + inPos] & 524287) >>> 8)) & 255);
      out[ 2 + outPos] = (byte)((
          //                             [_____210]
          //                                  [876________________]
           ((in[ 0 + inPos] & 524287) >>> 16)
        | //                             [76543___]
          //               [______________43210]
           ((in[ 1 + inPos] & 524287) <<  3)) & 255);
      out[ 3 + outPos] = (byte)((
          //                             [76543210]
          //                       [______21098765_____]
           ((in[ 1 + inPos] & 524287) >>> 5)) & 255);
      out[ 4 + outPos] = (byte)((
          //                             [__543210]
          //                               [876543_____________]
           ((in[ 1 + inPos] & 524287) >>> 13)
        | //                             [76______]
          //            [_________________10]
           ((in[ 2 + inPos] & 524287) <<  6)) & 255);
      out[ 5 + outPos] = (byte)((
          //                             [76543210]
          //                    [_________98765432__]
           ((in[ 2 + inPos] & 524287) >>> 2)) & 255);
      out[ 6 + outPos] = (byte)((
          //                             [76543210]
          //                            [_76543210__________]
           ((in[ 2 + inPos] & 524287) >>> 10)) & 255);
      out[ 7 + outPos] = (byte)((
          //                             [_______0]
          //                                    [8__________________]
           ((in[ 2 + inPos] & 524287) >>> 18)
        | //                             [7654321_]
          //                 [____________6543210]
           ((in[ 3 + inPos] & 524287) <<  1)) & 255);
      out[ 8 + outPos] = (byte)((
          //                             [76543210]
          //                         [____43210987_______]
           ((in[ 3 + inPos] & 524287) >>> 7)) & 255);
      out[ 9 + outPos] = (byte)((
          //                             [____3210]
          //                                 [8765_______________]
           ((in[ 3 + inPos] & 524287) >>> 15)
        | //                             [7654____]
          //              [_______________3210]
           ((in[ 4 + inPos] & 524287) <<  4)) & 255);
      out[10 + outPos] = (byte)((
          //                             [76543210]
          //                      [_______10987654____]
           ((in[ 4 + inPos] & 524287) >>> 4)) & 255);
      out[11 + outPos] = (byte)((
          //                             [_6543210]
          //                              [8765432____________]
           ((in[ 4 + inPos] & 524287) >>> 12)
        | //                             [7_______]
          //           [__________________0]
           ((in[ 5 + inPos] & 524287) <<  7)) & 255);
      out[12 + outPos] = (byte)((
          //                             [76543210]
          //                   [__________87654321_]
           ((in[ 5 + inPos] & 524287) >>> 1)) & 255);
      out[13 + outPos] = (byte)((
          //                             [76543210]
          //                           [__65432109_________]
           ((in[ 5 + inPos] & 524287) >>> 9)) & 255);
      out[14 + outPos] = (byte)((
          //                             [______10]
          //                                   [87_________________]
           ((in[ 5 + inPos] & 524287) >>> 17)
        | //                             [765432__]
          //                [_____________543210]
           ((in[ 6 + inPos] & 524287) <<  2)) & 255);
      out[15 + outPos] = (byte)((
          //                             [76543210]
          //                        [_____32109876______]
           ((in[ 6 + inPos] & 524287) >>> 6)) & 255);
      out[16 + outPos] = (byte)((
          //                             [___43210]
          //                                [87654______________]
           ((in[ 6 + inPos] & 524287) >>> 14)
        | //                             [765_____]
          //             [________________210]
           ((in[ 7 + inPos] & 524287) <<  5)) & 255);
      out[17 + outPos] = (byte)((
          //                             [76543210]
          //                     [________09876543___]
           ((in[ 7 + inPos] & 524287) >>> 3)) & 255);
      out[18 + outPos] = (byte)((
          //                             [76543210]
          //                             [87654321___________]
           ((in[ 7 + inPos] & 524287) >>> 11)) & 255);
      out[19 + outPos] = (byte)((
          //                             [76543210]
          //                  [___________76543210]
           ((in[ 8 + inPos] & 524287))) & 255);
      out[20 + outPos] = (byte)((
          //                             [76543210]
          //                          [___54321098________]
           ((in[ 8 + inPos] & 524287) >>> 8)) & 255);
      out[21 + outPos] = (byte)((
          //                             [_____210]
          //                                  [876________________]
           ((in[ 8 + inPos] & 524287) >>> 16)
        | //                             [76543___]
          //               [______________43210]
           ((in[ 9 + inPos] & 524287) <<  3)) & 255);
      out[22 + outPos] = (byte)((
          //                             [76543210]
          //                       [______21098765_____]
           ((in[ 9 + inPos] & 524287) >>> 5)) & 255);
      out[23 + outPos] = (byte)((
          //                             [__543210]
          //                               [876543_____________]
           ((in[ 9 + inPos] & 524287) >>> 13)
        | //                             [76______]
          //            [_________________10]
           ((in[10 + inPos] & 524287) <<  6)) & 255);
      out[24 + outPos] = (byte)((
          //                             [76543210]
          //                    [_________98765432__]
           ((in[10 + inPos] & 524287) >>> 2)) & 255);
      out[25 + outPos] = (byte)((
          //                             [76543210]
          //                            [_76543210__________]
           ((in[10 + inPos] & 524287) >>> 10)) & 255);
      out[26 + outPos] = (byte)((
          //                             [_______0]
          //                                    [8__________________]
           ((in[10 + inPos] & 524287) >>> 18)
        | //                             [7654321_]
          //                 [____________6543210]
           ((in[11 + inPos] & 524287) <<  1)) & 255);
      out[27 + outPos] = (byte)((
          //                             [76543210]
          //                         [____43210987_______]
           ((in[11 + inPos] & 524287) >>> 7)) & 255);
      out[28 + outPos] = (byte)((
          //                             [____3210]
          //                                 [8765_______________]
           ((in[11 + inPos] & 524287) >>> 15)
        | //                             [7654____]
          //              [_______________3210]
           ((in[12 + inPos] & 524287) <<  4)) & 255);
      out[29 + outPos] = (byte)((
          //                             [76543210]
          //                      [_______10987654____]
           ((in[12 + inPos] & 524287) >>> 4)) & 255);
      out[30 + outPos] = (byte)((
          //                             [_6543210]
          //                              [8765432____________]
           ((in[12 + inPos] & 524287) >>> 12)
        | //                             [7_______]
          //           [__________________0]
           ((in[13 + inPos] & 524287) <<  7)) & 255);
      out[31 + outPos] = (byte)((
          //                             [76543210]
          //                   [__________87654321_]
           ((in[13 + inPos] & 524287) >>> 1)) & 255);
      out[32 + outPos] = (byte)((
          //                             [76543210]
          //                           [__65432109_________]
           ((in[13 + inPos] & 524287) >>> 9)) & 255);
      out[33 + outPos] = (byte)((
          //                             [______10]
          //                                   [87_________________]
           ((in[13 + inPos] & 524287) >>> 17)
        | //                             [765432__]
          //                [_____________543210]
           ((in[14 + inPos] & 524287) <<  2)) & 255);
      out[34 + outPos] = (byte)((
          //                             [76543210]
          //                        [_____32109876______]
           ((in[14 + inPos] & 524287) >>> 6)) & 255);
      out[35 + outPos] = (byte)((
          //                             [___43210]
          //                                [87654______________]
           ((in[14 + inPos] & 524287) >>> 14)
        | //                             [765_____]
          //             [________________210]
           ((in[15 + inPos] & 524287) <<  5)) & 255);
      out[36 + outPos] = (byte)((
          //                             [76543210]
          //                     [________09876543___]
           ((in[15 + inPos] & 524287) >>> 3)) & 255);
      out[37 + outPos] = (byte)((
          //                             [76543210]
          //                             [87654321___________]
           ((in[15 + inPos] & 524287) >>> 11)) & 255);
      out[38 + outPos] = (byte)((
          //                             [76543210]
          //                  [___________76543210]
           ((in[16 + inPos] & 524287))) & 255);
      out[39 + outPos] = (byte)((
          //                             [76543210]
          //                          [___54321098________]
           ((in[16 + inPos] & 524287) >>> 8)) & 255);
      out[40 + outPos] = (byte)((
          //                             [_____210]
          //                                  [876________________]
           ((in[16 + inPos] & 524287) >>> 16)
        | //                             [76543___]
          //               [______________43210]
           ((in[17 + inPos] & 524287) <<  3)) & 255);
      out[41 + outPos] = (byte)((
          //                             [76543210]
          //                       [______21098765_____]
           ((in[17 + inPos] & 524287) >>> 5)) & 255);
      out[42 + outPos] = (byte)((
          //                             [__543210]
          //                               [876543_____________]
           ((in[17 + inPos] & 524287) >>> 13)
        | //                             [76______]
          //            [_________________10]
           ((in[18 + inPos] & 524287) <<  6)) & 255);
      out[43 + outPos] = (byte)((
          //                             [76543210]
          //                    [_________98765432__]
           ((in[18 + inPos] & 524287) >>> 2)) & 255);
      out[44 + outPos] = (byte)((
          //                             [76543210]
          //                            [_76543210__________]
           ((in[18 + inPos] & 524287) >>> 10)) & 255);
      out[45 + outPos] = (byte)((
          //                             [_______0]
          //                                    [8__________________]
           ((in[18 + inPos] & 524287) >>> 18)
        | //                             [7654321_]
          //                 [____________6543210]
           ((in[19 + inPos] & 524287) <<  1)) & 255);
      out[46 + outPos] = (byte)((
          //                             [76543210]
          //                         [____43210987_______]
           ((in[19 + inPos] & 524287) >>> 7)) & 255);
      out[47 + outPos] = (byte)((
          //                             [____3210]
          //                                 [8765_______________]
           ((in[19 + inPos] & 524287) >>> 15)
        | //                             [7654____]
          //              [_______________3210]
           ((in[20 + inPos] & 524287) <<  4)) & 255);
      out[48 + outPos] = (byte)((
          //                             [76543210]
          //                      [_______10987654____]
           ((in[20 + inPos] & 524287) >>> 4)) & 255);
      out[49 + outPos] = (byte)((
          //                             [_6543210]
          //                              [8765432____________]
           ((in[20 + inPos] & 524287) >>> 12)
        | //                             [7_______]
          //           [__________________0]
           ((in[21 + inPos] & 524287) <<  7)) & 255);
      out[50 + outPos] = (byte)((
          //                             [76543210]
          //                   [__________87654321_]
           ((in[21 + inPos] & 524287) >>> 1)) & 255);
      out[51 + outPos] = (byte)((
          //                             [76543210]
          //                           [__65432109_________]
           ((in[21 + inPos] & 524287) >>> 9)) & 255);
      out[52 + outPos] = (byte)((
          //                             [______10]
          //                                   [87_________________]
           ((in[21 + inPos] & 524287) >>> 17)
        | //                             [765432__]
          //                [_____________543210]
           ((in[22 + inPos] & 524287) <<  2)) & 255);
      out[53 + outPos] = (byte)((
          //                             [76543210]
          //                        [_____32109876______]
           ((in[22 + inPos] & 524287) >>> 6)) & 255);
      out[54 + outPos] = (byte)((
          //                             [___43210]
          //                                [87654______________]
           ((in[22 + inPos] & 524287) >>> 14)
        | //                             [765_____]
          //             [________________210]
           ((in[23 + inPos] & 524287) <<  5)) & 255);
      out[55 + outPos] = (byte)((
          //                             [76543210]
          //                     [________09876543___]
           ((in[23 + inPos] & 524287) >>> 3)) & 255);
      out[56 + outPos] = (byte)((
          //                             [76543210]
          //                             [87654321___________]
           ((in[23 + inPos] & 524287) >>> 11)) & 255);
      out[57 + outPos] = (byte)((
          //                             [76543210]
          //                  [___________76543210]
           ((in[24 + inPos] & 524287))) & 255);
      out[58 + outPos] = (byte)((
          //                             [76543210]
          //                          [___54321098________]
           ((in[24 + inPos] & 524287) >>> 8)) & 255);
      out[59 + outPos] = (byte)((
          //                             [_____210]
          //                                  [876________________]
           ((in[24 + inPos] & 524287) >>> 16)
        | //                             [76543___]
          //               [______________43210]
           ((in[25 + inPos] & 524287) <<  3)) & 255);
      out[60 + outPos] = (byte)((
          //                             [76543210]
          //                       [______21098765_____]
           ((in[25 + inPos] & 524287) >>> 5)) & 255);
      out[61 + outPos] = (byte)((
          //                             [__543210]
          //                               [876543_____________]
           ((in[25 + inPos] & 524287) >>> 13)
        | //                             [76______]
          //            [_________________10]
           ((in[26 + inPos] & 524287) <<  6)) & 255);
      out[62 + outPos] = (byte)((
          //                             [76543210]
          //                    [_________98765432__]
           ((in[26 + inPos] & 524287) >>> 2)) & 255);
      out[63 + outPos] = (byte)((
          //                             [76543210]
          //                            [_76543210__________]
           ((in[26 + inPos] & 524287) >>> 10)) & 255);
      out[64 + outPos] = (byte)((
          //                             [_______0]
          //                                    [8__________________]
           ((in[26 + inPos] & 524287) >>> 18)
        | //                             [7654321_]
          //                 [____________6543210]
           ((in[27 + inPos] & 524287) <<  1)) & 255);
      out[65 + outPos] = (byte)((
          //                             [76543210]
          //                         [____43210987_______]
           ((in[27 + inPos] & 524287) >>> 7)) & 255);
      out[66 + outPos] = (byte)((
          //                             [____3210]
          //                                 [8765_______________]
           ((in[27 + inPos] & 524287) >>> 15)
        | //                             [7654____]
          //              [_______________3210]
           ((in[28 + inPos] & 524287) <<  4)) & 255);
      out[67 + outPos] = (byte)((
          //                             [76543210]
          //                      [_______10987654____]
           ((in[28 + inPos] & 524287) >>> 4)) & 255);
      out[68 + outPos] = (byte)((
          //                             [_6543210]
          //                              [8765432____________]
           ((in[28 + inPos] & 524287) >>> 12)
        | //                             [7_______]
          //           [__________________0]
           ((in[29 + inPos] & 524287) <<  7)) & 255);
      out[69 + outPos] = (byte)((
          //                             [76543210]
          //                   [__________87654321_]
           ((in[29 + inPos] & 524287) >>> 1)) & 255);
      out[70 + outPos] = (byte)((
          //                             [76543210]
          //                           [__65432109_________]
           ((in[29 + inPos] & 524287) >>> 9)) & 255);
      out[71 + outPos] = (byte)((
          //                             [______10]
          //                                   [87_________________]
           ((in[29 + inPos] & 524287) >>> 17)
        | //                             [765432__]
          //                [_____________543210]
           ((in[30 + inPos] & 524287) <<  2)) & 255);
      out[72 + outPos] = (byte)((
          //                             [76543210]
          //                        [_____32109876______]
           ((in[30 + inPos] & 524287) >>> 6)) & 255);
      out[73 + outPos] = (byte)((
          //                             [___43210]
          //                                [87654______________]
           ((in[30 + inPos] & 524287) >>> 14)
        | //                             [765_____]
          //             [________________210]
           ((in[31 + inPos] & 524287) <<  5)) & 255);
      out[74 + outPos] = (byte)((
          //                             [76543210]
          //                     [________09876543___]
           ((in[31 + inPos] & 524287) >>> 3)) & 255);
      out[75 + outPos] = (byte)((
          //                             [76543210]
          //                             [87654321___________]
           ((in[31 + inPos] & 524287) >>> 11)) & 255);
    }
    public final void unpack8Values(final byte[] in, final int inPos, final int[] out, final int outPos) {
      out[ 0 + outPos] =
          //                             [76543210]
          //                  [___________76543210]
            ((((int)in[ 0 + inPos]) ) & 255)
        | //                             [76543210]
          //                          [___54321098________]
            ((((int)in[ 1 + inPos]) <<  8) & 65535)
        | //                             [_____210]
          //                                  [876________________]
            ((((int)in[ 2 + inPos]) <<  16) & 524287);
      out[ 1 + outPos] =
          //                             [76543___]
          //               [______________43210]
            ((((int)in[ 2 + inPos]) >>  3) & 31)
        | //                             [76543210]
          //                       [______21098765_____]
            ((((int)in[ 3 + inPos]) <<  5) & 8191)
        | //                             [__543210]
          //                               [876543_____________]
            ((((int)in[ 4 + inPos]) <<  13) & 524287);
      out[ 2 + outPos] =
          //                             [76______]
          //            [_________________10]
            ((((int)in[ 4 + inPos]) >>  6) & 3)
        | //                             [76543210]
          //                    [_________98765432__]
            ((((int)in[ 5 + inPos]) <<  2) & 1023)
        | //                             [76543210]
          //                            [_76543210__________]
            ((((int)in[ 6 + inPos]) <<  10) & 262143)
        | //                             [_______0]
          //                                    [8__________________]
            ((((int)in[ 7 + inPos]) <<  18) & 524287);
      out[ 3 + outPos] =
          //                             [7654321_]
          //                 [____________6543210]
            ((((int)in[ 7 + inPos]) >>  1) & 127)
        | //                             [76543210]
          //                         [____43210987_______]
            ((((int)in[ 8 + inPos]) <<  7) & 32767)
        | //                             [____3210]
          //                                 [8765_______________]
            ((((int)in[ 9 + inPos]) <<  15) & 524287);
      out[ 4 + outPos] =
          //                             [7654____]
          //              [_______________3210]
            ((((int)in[ 9 + inPos]) >>  4) & 15)
        | //                             [76543210]
          //                      [_______10987654____]
            ((((int)in[10 + inPos]) <<  4) & 4095)
        | //                             [_6543210]
          //                              [8765432____________]
            ((((int)in[11 + inPos]) <<  12) & 524287);
      out[ 5 + outPos] =
          //                             [7_______]
          //           [__________________0]
            ((((int)in[11 + inPos]) >>  7) & 1)
        | //                             [76543210]
          //                   [__________87654321_]
            ((((int)in[12 + inPos]) <<  1) & 511)
        | //                             [76543210]
          //                           [__65432109_________]
            ((((int)in[13 + inPos]) <<  9) & 131071)
        | //                             [______10]
          //                                   [87_________________]
            ((((int)in[14 + inPos]) <<  17) & 524287);
      out[ 6 + outPos] =
          //                             [765432__]
          //                [_____________543210]
            ((((int)in[14 + inPos]) >>  2) & 63)
        | //                             [76543210]
          //                        [_____32109876______]
            ((((int)in[15 + inPos]) <<  6) & 16383)
        | //                             [___43210]
          //                                [87654______________]
            ((((int)in[16 + inPos]) <<  14) & 524287);
      out[ 7 + outPos] =
          //                             [765_____]
          //             [________________210]
            ((((int)in[16 + inPos]) >>  5) & 7)
        | //                             [76543210]
          //                     [________09876543___]
            ((((int)in[17 + inPos]) <<  3) & 2047)
        | //                             [76543210]
          //                             [87654321___________]
            ((((int)in[18 + inPos]) <<  11) & 524287);
    }
    public final void unpack8Values(final ByteBuffer in, final int inPos, final int[] out, final int outPos) {
      out[ 0 + outPos] =
          //                             [76543210]
          //                  [___________76543210]
            ((((int)in.get( 0 + inPos)) ) & 255)
        | //                             [76543210]
          //                          [___54321098________]
            ((((int)in.get( 1 + inPos)) <<  8) & 65535)
        | //                             [_____210]
          //                                  [876________________]
            ((((int)in.get( 2 + inPos)) <<  16) & 524287);
      out[ 1 + outPos] =
          //                             [76543___]
          //               [______________43210]
            ((((int)in.get( 2 + inPos)) >>  3) & 31)
        | //                             [76543210]
          //                       [______21098765_____]
            ((((int)in.get( 3 + inPos)) <<  5) & 8191)
        | //                             [__543210]
          //                               [876543_____________]
            ((((int)in.get( 4 + inPos)) <<  13) & 524287);
      out[ 2 + outPos] =
          //                             [76______]
          //            [_________________10]
            ((((int)in.get( 4 + inPos)) >>  6) & 3)
        | //                             [76543210]
          //                    [_________98765432__]
            ((((int)in.get( 5 + inPos)) <<  2) & 1023)
        | //                             [76543210]
          //                            [_76543210__________]
            ((((int)in.get( 6 + inPos)) <<  10) & 262143)
        | //                             [_______0]
          //                                    [8__________________]
            ((((int)in.get( 7 + inPos)) <<  18) & 524287);
      out[ 3 + outPos] =
          //                             [7654321_]
          //                 [____________6543210]
            ((((int)in.get( 7 + inPos)) >>  1) & 127)
        | //                             [76543210]
          //                         [____43210987_______]
            ((((int)in.get( 8 + inPos)) <<  7) & 32767)
        | //                             [____3210]
          //                                 [8765_______________]
            ((((int)in.get( 9 + inPos)) <<  15) & 524287);
      out[ 4 + outPos] =
          //                             [7654____]
          //              [_______________3210]
            ((((int)in.get( 9 + inPos)) >>  4) & 15)
        | //                             [76543210]
          //                      [_______10987654____]
            ((((int)in.get(10 + inPos)) <<  4) & 4095)
        | //                             [_6543210]
          //                              [8765432____________]
            ((((int)in.get(11 + inPos)) <<  12) & 524287);
      out[ 5 + outPos] =
          //                             [7_______]
          //           [__________________0]
            ((((int)in.get(11 + inPos)) >>  7) & 1)
        | //                             [76543210]
          //                   [__________87654321_]
            ((((int)in.get(12 + inPos)) <<  1) & 511)
        | //                             [76543210]
          //                           [__65432109_________]
            ((((int)in.get(13 + inPos)) <<  9) & 131071)
        | //                             [______10]
          //                                   [87_________________]
            ((((int)in.get(14 + inPos)) <<  17) & 524287);
      out[ 6 + outPos] =
          //                             [765432__]
          //                [_____________543210]
            ((((int)in.get(14 + inPos)) >>  2) & 63)
        | //                             [76543210]
          //                        [_____32109876______]
            ((((int)in.get(15 + inPos)) <<  6) & 16383)
        | //                             [___43210]
          //                                [87654______________]
            ((((int)in.get(16 + inPos)) <<  14) & 524287);
      out[ 7 + outPos] =
          //                             [765_____]
          //             [________________210]
            ((((int)in.get(16 + inPos)) >>  5) & 7)
        | //                             [76543210]
          //                     [________09876543___]
            ((((int)in.get(17 + inPos)) <<  3) & 2047)
        | //                             [76543210]
          //                             [87654321___________]
            ((((int)in.get(18 + inPos)) <<  11) & 524287);
    }
    public final void unpack32Values(final byte[] in, final int inPos, final int[] out, final int outPos) {
      out[ 0 + outPos] =
          //                             [76543210]
          //                  [___________76543210]
            ((((int)in[ 0 + inPos]) ) & 255)
        | //                             [76543210]
          //                          [___54321098________]
            ((((int)in[ 1 + inPos]) <<  8) & 65535)
        | //                             [_____210]
          //                                  [876________________]
            ((((int)in[ 2 + inPos]) <<  16) & 524287);
      out[ 1 + outPos] =
          //                             [76543___]
          //               [______________43210]
            ((((int)in[ 2 + inPos]) >>  3) & 31)
        | //                             [76543210]
          //                       [______21098765_____]
            ((((int)in[ 3 + inPos]) <<  5) & 8191)
        | //                             [__543210]
          //                               [876543_____________]
            ((((int)in[ 4 + inPos]) <<  13) & 524287);
      out[ 2 + outPos] =
          //                             [76______]
          //            [_________________10]
            ((((int)in[ 4 + inPos]) >>  6) & 3)
        | //                             [76543210]
          //                    [_________98765432__]
            ((((int)in[ 5 + inPos]) <<  2) & 1023)
        | //                             [76543210]
          //                            [_76543210__________]
            ((((int)in[ 6 + inPos]) <<  10) & 262143)
        | //                             [_______0]
          //                                    [8__________________]
            ((((int)in[ 7 + inPos]) <<  18) & 524287);
      out[ 3 + outPos] =
          //                             [7654321_]
          //                 [____________6543210]
            ((((int)in[ 7 + inPos]) >>  1) & 127)
        | //                             [76543210]
          //                         [____43210987_______]
            ((((int)in[ 8 + inPos]) <<  7) & 32767)
        | //                             [____3210]
          //                                 [8765_______________]
            ((((int)in[ 9 + inPos]) <<  15) & 524287);
      out[ 4 + outPos] =
          //                             [7654____]
          //              [_______________3210]
            ((((int)in[ 9 + inPos]) >>  4) & 15)
        | //                             [76543210]
          //                      [_______10987654____]
            ((((int)in[10 + inPos]) <<  4) & 4095)
        | //                             [_6543210]
          //                              [8765432____________]
            ((((int)in[11 + inPos]) <<  12) & 524287);
      out[ 5 + outPos] =
          //                             [7_______]
          //           [__________________0]
            ((((int)in[11 + inPos]) >>  7) & 1)
        | //                             [76543210]
          //                   [__________87654321_]
            ((((int)in[12 + inPos]) <<  1) & 511)
        | //                             [76543210]
          //                           [__65432109_________]
            ((((int)in[13 + inPos]) <<  9) & 131071)
        | //                             [______10]
          //                                   [87_________________]
            ((((int)in[14 + inPos]) <<  17) & 524287);
      out[ 6 + outPos] =
          //                             [765432__]
          //                [_____________543210]
            ((((int)in[14 + inPos]) >>  2) & 63)
        | //                             [76543210]
          //                        [_____32109876______]
            ((((int)in[15 + inPos]) <<  6) & 16383)
        | //                             [___43210]
          //                                [87654______________]
            ((((int)in[16 + inPos]) <<  14) & 524287);
      out[ 7 + outPos] =
          //                             [765_____]
          //             [________________210]
            ((((int)in[16 + inPos]) >>  5) & 7)
        | //                             [76543210]
          //                     [________09876543___]
            ((((int)in[17 + inPos]) <<  3) & 2047)
        | //                             [76543210]
          //                             [87654321___________]
            ((((int)in[18 + inPos]) <<  11) & 524287);
      out[ 8 + outPos] =
          //                             [76543210]
          //                  [___________76543210]
            ((((int)in[19 + inPos]) ) & 255)
        | //                             [76543210]
          //                          [___54321098________]
            ((((int)in[20 + inPos]) <<  8) & 65535)
        | //                             [_____210]
          //                                  [876________________]
            ((((int)in[21 + inPos]) <<  16) & 524287);
      out[ 9 + outPos] =
          //                             [76543___]
          //               [______________43210]
            ((((int)in[21 + inPos]) >>  3) & 31)
        | //                             [76543210]
          //                       [______21098765_____]
            ((((int)in[22 + inPos]) <<  5) & 8191)
        | //                             [__543210]
          //                               [876543_____________]
            ((((int)in[23 + inPos]) <<  13) & 524287);
      out[10 + outPos] =
          //                             [76______]
          //            [_________________10]
            ((((int)in[23 + inPos]) >>  6) & 3)
        | //                             [76543210]
          //                    [_________98765432__]
            ((((int)in[24 + inPos]) <<  2) & 1023)
        | //                             [76543210]
          //                            [_76543210__________]
            ((((int)in[25 + inPos]) <<  10) & 262143)
        | //                             [_______0]
          //                                    [8__________________]
            ((((int)in[26 + inPos]) <<  18) & 524287);
      out[11 + outPos] =
          //                             [7654321_]
          //                 [____________6543210]
            ((((int)in[26 + inPos]) >>  1) & 127)
        | //                             [76543210]
          //                         [____43210987_______]
            ((((int)in[27 + inPos]) <<  7) & 32767)
        | //                             [____3210]
          //                                 [8765_______________]
            ((((int)in[28 + inPos]) <<  15) & 524287);
      out[12 + outPos] =
          //                             [7654____]
          //              [_______________3210]
            ((((int)in[28 + inPos]) >>  4) & 15)
        | //                             [76543210]
          //                      [_______10987654____]
            ((((int)in[29 + inPos]) <<  4) & 4095)
        | //                             [_6543210]
          //                              [8765432____________]
            ((((int)in[30 + inPos]) <<  12) & 524287);
      out[13 + outPos] =
          //                             [7_______]
          //           [__________________0]
            ((((int)in[30 + inPos]) >>  7) & 1)
        | //                             [76543210]
          //                   [__________87654321_]
            ((((int)in[31 + inPos]) <<  1) & 511)
        | //                             [76543210]
          //                           [__65432109_________]
            ((((int)in[32 + inPos]) <<  9) & 131071)
        | //                             [______10]
          //                                   [87_________________]
            ((((int)in[33 + inPos]) <<  17) & 524287);
      out[14 + outPos] =
          //                             [765432__]
          //                [_____________543210]
            ((((int)in[33 + inPos]) >>  2) & 63)
        | //                             [76543210]
          //                        [_____32109876______]
            ((((int)in[34 + inPos]) <<  6) & 16383)
        | //                             [___43210]
          //                                [87654______________]
            ((((int)in[35 + inPos]) <<  14) & 524287);
      out[15 + outPos] =
          //                             [765_____]
          //             [________________210]
            ((((int)in[35 + inPos]) >>  5) & 7)
        | //                             [76543210]
          //                     [________09876543___]
            ((((int)in[36 + inPos]) <<  3) & 2047)
        | //                             [76543210]
          //                             [87654321___________]
            ((((int)in[37 + inPos]) <<  11) & 524287);
      out[16 + outPos] =
          //                             [76543210]
          //                  [___________76543210]
            ((((int)in[38 + inPos]) ) & 255)
        | //                             [76543210]
          //                          [___54321098________]
            ((((int)in[39 + inPos]) <<  8) & 65535)
        | //                             [_____210]
          //                                  [876________________]
            ((((int)in[40 + inPos]) <<  16) & 524287);
      out[17 + outPos] =
          //                             [76543___]
          //               [______________43210]
            ((((int)in[40 + inPos]) >>  3) & 31)
        | //                             [76543210]
          //                       [______21098765_____]
            ((((int)in[41 + inPos]) <<  5) & 8191)
        | //                             [__543210]
          //                               [876543_____________]
            ((((int)in[42 + inPos]) <<  13) & 524287);
      out[18 + outPos] =
          //                             [76______]
          //            [_________________10]
            ((((int)in[42 + inPos]) >>  6) & 3)
        | //                             [76543210]
          //                    [_________98765432__]
            ((((int)in[43 + inPos]) <<  2) & 1023)
        | //                             [76543210]
          //                            [_76543210__________]
            ((((int)in[44 + inPos]) <<  10) & 262143)
        | //                             [_______0]
          //                                    [8__________________]
            ((((int)in[45 + inPos]) <<  18) & 524287);
      out[19 + outPos] =
          //                             [7654321_]
          //                 [____________6543210]
            ((((int)in[45 + inPos]) >>  1) & 127)
        | //                             [76543210]
          //                         [____43210987_______]
            ((((int)in[46 + inPos]) <<  7) & 32767)
        | //                             [____3210]
          //                                 [8765_______________]
            ((((int)in[47 + inPos]) <<  15) & 524287);
      out[20 + outPos] =
          //                             [7654____]
          //              [_______________3210]
            ((((int)in[47 + inPos]) >>  4) & 15)
        | //                             [76543210]
          //                      [_______10987654____]
            ((((int)in[48 + inPos]) <<  4) & 4095)
        | //                             [_6543210]
          //                              [8765432____________]
            ((((int)in[49 + inPos]) <<  12) & 524287);
      out[21 + outPos] =
          //                             [7_______]
          //           [__________________0]
            ((((int)in[49 + inPos]) >>  7) & 1)
        | //                             [76543210]
          //                   [__________87654321_]
            ((((int)in[50 + inPos]) <<  1) & 511)
        | //                             [76543210]
          //                           [__65432109_________]
            ((((int)in[51 + inPos]) <<  9) & 131071)
        | //                             [______10]
          //                                   [87_________________]
            ((((int)in[52 + inPos]) <<  17) & 524287);
      out[22 + outPos] =
          //                             [765432__]
          //                [_____________543210]
            ((((int)in[52 + inPos]) >>  2) & 63)
        | //                             [76543210]
          //                        [_____32109876______]
            ((((int)in[53 + inPos]) <<  6) & 16383)
        | //                             [___43210]
          //                                [87654______________]
            ((((int)in[54 + inPos]) <<  14) & 524287);
      out[23 + outPos] =
          //                             [765_____]
          //             [________________210]
            ((((int)in[54 + inPos]) >>  5) & 7)
        | //                             [76543210]
          //                     [________09876543___]
            ((((int)in[55 + inPos]) <<  3) & 2047)
        | //                             [76543210]
          //                             [87654321___________]
            ((((int)in[56 + inPos]) <<  11) & 524287);
      out[24 + outPos] =
          //                             [76543210]
          //                  [___________76543210]
            ((((int)in[57 + inPos]) ) & 255)
        | //                             [76543210]
          //                          [___54321098________]
            ((((int)in[58 + inPos]) <<  8) & 65535)
        | //                             [_____210]
          //                                  [876________________]
            ((((int)in[59 + inPos]) <<  16) & 524287);
      out[25 + outPos] =
          //                             [76543___]
          //               [______________43210]
            ((((int)in[59 + inPos]) >>  3) & 31)
        | //                             [76543210]
          //                       [______21098765_____]
            ((((int)in[60 + inPos]) <<  5) & 8191)
        | //                             [__543210]
          //                               [876543_____________]
            ((((int)in[61 + inPos]) <<  13) & 524287);
      out[26 + outPos] =
          //                             [76______]
          //            [_________________10]
            ((((int)in[61 + inPos]) >>  6) & 3)
        | //                             [76543210]
          //                    [_________98765432__]
            ((((int)in[62 + inPos]) <<  2) & 1023)
        | //                             [76543210]
          //                            [_76543210__________]
            ((((int)in[63 + inPos]) <<  10) & 262143)
        | //                             [_______0]
          //                                    [8__________________]
            ((((int)in[64 + inPos]) <<  18) & 524287);
      out[27 + outPos] =
          //                             [7654321_]
          //                 [____________6543210]
            ((((int)in[64 + inPos]) >>  1) & 127)
        | //                             [76543210]
          //                         [____43210987_______]
            ((((int)in[65 + inPos]) <<  7) & 32767)
        | //                             [____3210]
          //                                 [8765_______________]
            ((((int)in[66 + inPos]) <<  15) & 524287);
      out[28 + outPos] =
          //                             [7654____]
          //              [_______________3210]
            ((((int)in[66 + inPos]) >>  4) & 15)
        | //                             [76543210]
          //                      [_______10987654____]
            ((((int)in[67 + inPos]) <<  4) & 4095)
        | //                             [_6543210]
          //                              [8765432____________]
            ((((int)in[68 + inPos]) <<  12) & 524287);
      out[29 + outPos] =
          //                             [7_______]
          //           [__________________0]
            ((((int)in[68 + inPos]) >>  7) & 1)
        | //                             [76543210]
          //                   [__________87654321_]
            ((((int)in[69 + inPos]) <<  1) & 511)
        | //                             [76543210]
          //                           [__65432109_________]
            ((((int)in[70 + inPos]) <<  9) & 131071)
        | //                             [______10]
          //                                   [87_________________]
            ((((int)in[71 + inPos]) <<  17) & 524287);
      out[30 + outPos] =
          //                             [765432__]
          //                [_____________543210]
            ((((int)in[71 + inPos]) >>  2) & 63)
        | //                             [76543210]
          //                        [_____32109876______]
            ((((int)in[72 + inPos]) <<  6) & 16383)
        | //                             [___43210]
          //                                [87654______________]
            ((((int)in[73 + inPos]) <<  14) & 524287);
      out[31 + outPos] =
          //                             [765_____]
          //             [________________210]
            ((((int)in[73 + inPos]) >>  5) & 7)
        | //                             [76543210]
          //                     [________09876543___]
            ((((int)in[74 + inPos]) <<  3) & 2047)
        | //                             [76543210]
          //                             [87654321___________]
            ((((int)in[75 + inPos]) <<  11) & 524287);
    }
    public final void unpack32Values(final ByteBuffer in, final int inPos, final int[] out, final int outPos) {
      out[ 0 + outPos] =
          //                             [76543210]
          //                  [___________76543210]
            ((((int)in.get( 0 + inPos)) ) & 255)
        | //                             [76543210]
          //                          [___54321098________]
            ((((int)in.get( 1 + inPos)) <<  8) & 65535)
        | //                             [_____210]
          //                                  [876________________]
            ((((int)in.get( 2 + inPos)) <<  16) & 524287);
      out[ 1 + outPos] =
          //                             [76543___]
          //               [______________43210]
            ((((int)in.get( 2 + inPos)) >>  3) & 31)
        | //                             [76543210]
          //                       [______21098765_____]
            ((((int)in.get( 3 + inPos)) <<  5) & 8191)
        | //                             [__543210]
          //                               [876543_____________]
            ((((int)in.get( 4 + inPos)) <<  13) & 524287);
      out[ 2 + outPos] =
          //                             [76______]
          //            [_________________10]
            ((((int)in.get( 4 + inPos)) >>  6) & 3)
        | //                             [76543210]
          //                    [_________98765432__]
            ((((int)in.get( 5 + inPos)) <<  2) & 1023)
        | //                             [76543210]
          //                            [_76543210__________]
            ((((int)in.get( 6 + inPos)) <<  10) & 262143)
        | //                             [_______0]
          //                                    [8__________________]
            ((((int)in.get( 7 + inPos)) <<  18) & 524287);
      out[ 3 + outPos] =
          //                             [7654321_]
          //                 [____________6543210]
            ((((int)in.get( 7 + inPos)) >>  1) & 127)
        | //                             [76543210]
          //                         [____43210987_______]
            ((((int)in.get( 8 + inPos)) <<  7) & 32767)
        | //                             [____3210]
          //                                 [8765_______________]
            ((((int)in.get( 9 + inPos)) <<  15) & 524287);
      out[ 4 + outPos] =
          //                             [7654____]
          //              [_______________3210]
            ((((int)in.get( 9 + inPos)) >>  4) & 15)
        | //                             [76543210]
          //                      [_______10987654____]
            ((((int)in.get(10 + inPos)) <<  4) & 4095)
        | //                             [_6543210]
          //                              [8765432____________]
            ((((int)in.get(11 + inPos)) <<  12) & 524287);
      out[ 5 + outPos] =
          //                             [7_______]
          //           [__________________0]
            ((((int)in.get(11 + inPos)) >>  7) & 1)
        | //                             [76543210]
          //                   [__________87654321_]
            ((((int)in.get(12 + inPos)) <<  1) & 511)
        | //                             [76543210]
          //                           [__65432109_________]
            ((((int)in.get(13 + inPos)) <<  9) & 131071)
        | //                             [______10]
          //                                   [87_________________]
            ((((int)in.get(14 + inPos)) <<  17) & 524287);
      out[ 6 + outPos] =
          //                             [765432__]
          //                [_____________543210]
            ((((int)in.get(14 + inPos)) >>  2) & 63)
        | //                             [76543210]
          //                        [_____32109876______]
            ((((int)in.get(15 + inPos)) <<  6) & 16383)
        | //                             [___43210]
          //                                [87654______________]
            ((((int)in.get(16 + inPos)) <<  14) & 524287);
      out[ 7 + outPos] =
          //                             [765_____]
          //             [________________210]
            ((((int)in.get(16 + inPos)) >>  5) & 7)
        | //                             [76543210]
          //                     [________09876543___]
            ((((int)in.get(17 + inPos)) <<  3) & 2047)
        | //                             [76543210]
          //                             [87654321___________]
            ((((int)in.get(18 + inPos)) <<  11) & 524287);
      out[ 8 + outPos] =
          //                             [76543210]
          //                  [___________76543210]
            ((((int)in.get(19 + inPos)) ) & 255)
        | //                             [76543210]
          //                          [___54321098________]
            ((((int)in.get(20 + inPos)) <<  8) & 65535)
        | //                             [_____210]
          //                                  [876________________]
            ((((int)in.get(21 + inPos)) <<  16) & 524287);
      out[ 9 + outPos] =
          //                             [76543___]
          //               [______________43210]
            ((((int)in.get(21 + inPos)) >>  3) & 31)
        | //                             [76543210]
          //                       [______21098765_____]
            ((((int)in.get(22 + inPos)) <<  5) & 8191)
        | //                             [__543210]
          //                               [876543_____________]
            ((((int)in.get(23 + inPos)) <<  13) & 524287);
      out[10 + outPos] =
          //                             [76______]
          //            [_________________10]
            ((((int)in.get(23 + inPos)) >>  6) & 3)
        | //                             [76543210]
          //                    [_________98765432__]
            ((((int)in.get(24 + inPos)) <<  2) & 1023)
        | //                             [76543210]
          //                            [_76543210__________]
            ((((int)in.get(25 + inPos)) <<  10) & 262143)
        | //                             [_______0]
          //                                    [8__________________]
            ((((int)in.get(26 + inPos)) <<  18) & 524287);
      out[11 + outPos] =
          //                             [7654321_]
          //                 [____________6543210]
            ((((int)in.get(26 + inPos)) >>  1) & 127)
        | //                             [76543210]
          //                         [____43210987_______]
            ((((int)in.get(27 + inPos)) <<  7) & 32767)
        | //                             [____3210]
          //                                 [8765_______________]
            ((((int)in.get(28 + inPos)) <<  15) & 524287);
      out[12 + outPos] =
          //                             [7654____]
          //              [_______________3210]
            ((((int)in.get(28 + inPos)) >>  4) & 15)
        | //                             [76543210]
          //                      [_______10987654____]
            ((((int)in.get(29 + inPos)) <<  4) & 4095)
        | //                             [_6543210]
          //                              [8765432____________]
            ((((int)in.get(30 + inPos)) <<  12) & 524287);
      out[13 + outPos] =
          //                             [7_______]
          //           [__________________0]
            ((((int)in.get(30 + inPos)) >>  7) & 1)
        | //                             [76543210]
          //                   [__________87654321_]
            ((((int)in.get(31 + inPos)) <<  1) & 511)
        | //                             [76543210]
          //                           [__65432109_________]
            ((((int)in.get(32 + inPos)) <<  9) & 131071)
        | //                             [______10]
          //                                   [87_________________]
            ((((int)in.get(33 + inPos)) <<  17) & 524287);
      out[14 + outPos] =
          //                             [765432__]
          //                [_____________543210]
            ((((int)in.get(33 + inPos)) >>  2) & 63)
        | //                             [76543210]
          //                        [_____32109876______]
            ((((int)in.get(34 + inPos)) <<  6) & 16383)
        | //                             [___43210]
          //                                [87654______________]
            ((((int)in.get(35 + inPos)) <<  14) & 524287);
      out[15 + outPos] =
          //                             [765_____]
          //             [________________210]
            ((((int)in.get(35 + inPos)) >>  5) & 7)
        | //                             [76543210]
          //                     [________09876543___]
            ((((int)in.get(36 + inPos)) <<  3) & 2047)
        | //                             [76543210]
          //                             [87654321___________]
            ((((int)in.get(37 + inPos)) <<  11) & 524287);
      out[16 + outPos] =
          //                             [76543210]
          //                  [___________76543210]
            ((((int)in.get(38 + inPos)) ) & 255)
        | //                             [76543210]
          //                          [___54321098________]
            ((((int)in.get(39 + inPos)) <<  8) & 65535)
        | //                             [_____210]
          //                                  [876________________]
            ((((int)in.get(40 + inPos)) <<  16) & 524287);
      out[17 + outPos] =
          //                             [76543___]
          //               [______________43210]
            ((((int)in.get(40 + inPos)) >>  3) & 31)
        | //                             [76543210]
          //                       [______21098765_____]
            ((((int)in.get(41 + inPos)) <<  5) & 8191)
        | //                             [__543210]
          //                               [876543_____________]
            ((((int)in.get(42 + inPos)) <<  13) & 524287);
      out[18 + outPos] =
          //                             [76______]
          //            [_________________10]
            ((((int)in.get(42 + inPos)) >>  6) & 3)
        | //                             [76543210]
          //                    [_________98765432__]
            ((((int)in.get(43 + inPos)) <<  2) & 1023)
        | //                             [76543210]
          //                            [_76543210__________]
            ((((int)in.get(44 + inPos)) <<  10) & 262143)
        | //                             [_______0]
          //                                    [8__________________]
            ((((int)in.get(45 + inPos)) <<  18) & 524287);
      out[19 + outPos] =
          //                             [7654321_]
          //                 [____________6543210]
            ((((int)in.get(45 + inPos)) >>  1) & 127)
        | //                             [76543210]
          //                         [____43210987_______]
            ((((int)in.get(46 + inPos)) <<  7) & 32767)
        | //                             [____3210]
          //                                 [8765_______________]
            ((((int)in.get(47 + inPos)) <<  15) & 524287);
      out[20 + outPos] =
          //                             [7654____]
          //              [_______________3210]
            ((((int)in.get(47 + inPos)) >>  4) & 15)
        | //                             [76543210]
          //                      [_______10987654____]
            ((((int)in.get(48 + inPos)) <<  4) & 4095)
        | //                             [_6543210]
          //                              [8765432____________]
            ((((int)in.get(49 + inPos)) <<  12) & 524287);
      out[21 + outPos] =
          //                             [7_______]
          //           [__________________0]
            ((((int)in.get(49 + inPos)) >>  7) & 1)
        | //                             [76543210]
          //                   [__________87654321_]
            ((((int)in.get(50 + inPos)) <<  1) & 511)
        | //                             [76543210]
          //                           [__65432109_________]
            ((((int)in.get(51 + inPos)) <<  9) & 131071)
        | //                             [______10]
          //                                   [87_________________]
            ((((int)in.get(52 + inPos)) <<  17) & 524287);
      out[22 + outPos] =
          //                             [765432__]
          //                [_____________543210]
            ((((int)in.get(52 + inPos)) >>  2) & 63)
        | //                             [76543210]
          //                        [_____32109876______]
            ((((int)in.get(53 + inPos)) <<  6) & 16383)
        | //                             [___43210]
          //                                [87654______________]
            ((((int)in.get(54 + inPos)) <<  14) & 524287);
      out[23 + outPos] =
          //                             [765_____]
          //             [________________210]
            ((((int)in.get(54 + inPos)) >>  5) & 7)
        | //                             [76543210]
          //                     [________09876543___]
            ((((int)in.get(55 + inPos)) <<  3) & 2047)
        | //                             [76543210]
          //                             [87654321___________]
            ((((int)in.get(56 + inPos)) <<  11) & 524287);
      out[24 + outPos] =
          //                             [76543210]
          //                  [___________76543210]
            ((((int)in.get(57 + inPos)) ) & 255)
        | //                             [76543210]
          //                          [___54321098________]
            ((((int)in.get(58 + inPos)) <<  8) & 65535)
        | //                             [_____210]
          //                                  [876________________]
            ((((int)in.get(59 + inPos)) <<  16) & 524287);
      out[25 + outPos] =
          //                             [76543___]
          //               [______________43210]
            ((((int)in.get(59 + inPos)) >>  3) & 31)
        | //                             [76543210]
          //                       [______21098765_____]
            ((((int)in.get(60 + inPos)) <<  5) & 8191)
        | //                             [__543210]
          //                               [876543_____________]
            ((((int)in.get(61 + inPos)) <<  13) & 524287);
      out[26 + outPos] =
          //                             [76______]
          //            [_________________10]
            ((((int)in.get(61 + inPos)) >>  6) & 3)
        | //                             [76543210]
          //                    [_________98765432__]
            ((((int)in.get(62 + inPos)) <<  2) & 1023)
        | //                             [76543210]
          //                            [_76543210__________]
            ((((int)in.get(63 + inPos)) <<  10) & 262143)
        | //                             [_______0]
          //                                    [8__________________]
            ((((int)in.get(64 + inPos)) <<  18) & 524287);
      out[27 + outPos] =
          //                             [7654321_]
          //                 [____________6543210]
            ((((int)in.get(64 + inPos)) >>  1) & 127)
        | //                             [76543210]
          //                         [____43210987_______]
            ((((int)in.get(65 + inPos)) <<  7) & 32767)
        | //                             [____3210]
          //                                 [8765_______________]
            ((((int)in.get(66 + inPos)) <<  15) & 524287);
      out[28 + outPos] =
          //                             [7654____]
          //              [_______________3210]
            ((((int)in.get(66 + inPos)) >>  4) & 15)
        | //                             [76543210]
          //                      [_______10987654____]
            ((((int)in.get(67 + inPos)) <<  4) & 4095)
        | //                             [_6543210]
          //                              [8765432____________]
            ((((int)in.get(68 + inPos)) <<  12) & 524287);
      out[29 + outPos] =
          //                             [7_______]
          //           [__________________0]
            ((((int)in.get(68 + inPos)) >>  7) & 1)
        | //                             [76543210]
          //                   [__________87654321_]
            ((((int)in.get(69 + inPos)) <<  1) & 511)
        | //                             [76543210]
          //                           [__65432109_________]
            ((((int)in.get(70 + inPos)) <<  9) & 131071)
        | //                             [______10]
          //                                   [87_________________]
            ((((int)in.get(71 + inPos)) <<  17) & 524287);
      out[30 + outPos] =
          //                             [765432__]
          //                [_____________543210]
            ((((int)in.get(71 + inPos)) >>  2) & 63)
        | //                             [76543210]
          //                        [_____32109876______]
            ((((int)in.get(72 + inPos)) <<  6) & 16383)
        | //                             [___43210]
          //                                [87654______________]
            ((((int)in.get(73 + inPos)) <<  14) & 524287);
      out[31 + outPos] =
          //                             [765_____]
          //             [________________210]
            ((((int)in.get(73 + inPos)) >>  5) & 7)
        | //                             [76543210]
          //                     [________09876543___]
            ((((int)in.get(74 + inPos)) <<  3) & 2047)
        | //                             [76543210]
          //                             [87654321___________]
            ((((int)in.get(75 + inPos)) <<  11) & 524287);
    }
  }

  private static final class Packer20 extends BytePacker {

    private Packer20() {
      super(20);
    }

    public final void pack8Values(final int[] in, final int inPos, final byte[] out, final int outPos) {
      out[ 0 + outPos] = (byte)((
          //                              [76543210]
          //                  [____________76543210]
           ((in[ 0 + inPos] & 1048575))) & 255);
      out[ 1 + outPos] = (byte)((
          //                              [76543210]
          //                          [____54321098________]
           ((in[ 0 + inPos] & 1048575) >>> 8)) & 255);
      out[ 2 + outPos] = (byte)((
          //                              [____3210]
          //                                  [9876________________]
           ((in[ 0 + inPos] & 1048575) >>> 16)
        | //                              [7654____]
          //              [________________3210]
           ((in[ 1 + inPos] & 1048575) <<  4)) & 255);
      out[ 3 + outPos] = (byte)((
          //                              [76543210]
          //                      [________10987654____]
           ((in[ 1 + inPos] & 1048575) >>> 4)) & 255);
      out[ 4 + outPos] = (byte)((
          //                              [76543210]
          //                              [98765432____________]
           ((in[ 1 + inPos] & 1048575) >>> 12)) & 255);
      out[ 5 + outPos] = (byte)((
          //                              [76543210]
          //                  [____________76543210]
           ((in[ 2 + inPos] & 1048575))) & 255);
      out[ 6 + outPos] = (byte)((
          //                              [76543210]
          //                          [____54321098________]
           ((in[ 2 + inPos] & 1048575) >>> 8)) & 255);
      out[ 7 + outPos] = (byte)((
          //                              [____3210]
          //                                  [9876________________]
           ((in[ 2 + inPos] & 1048575) >>> 16)
        | //                              [7654____]
          //              [________________3210]
           ((in[ 3 + inPos] & 1048575) <<  4)) & 255);
      out[ 8 + outPos] = (byte)((
          //                              [76543210]
          //                      [________10987654____]
           ((in[ 3 + inPos] & 1048575) >>> 4)) & 255);
      out[ 9 + outPos] = (byte)((
          //                              [76543210]
          //                              [98765432____________]
           ((in[ 3 + inPos] & 1048575) >>> 12)) & 255);
      out[10 + outPos] = (byte)((
          //                              [76543210]
          //                  [____________76543210]
           ((in[ 4 + inPos] & 1048575))) & 255);
      out[11 + outPos] = (byte)((
          //                              [76543210]
          //                          [____54321098________]
           ((in[ 4 + inPos] & 1048575) >>> 8)) & 255);
      out[12 + outPos] = (byte)((
          //                              [____3210]
          //                                  [9876________________]
           ((in[ 4 + inPos] & 1048575) >>> 16)
        | //                              [7654____]
          //              [________________3210]
           ((in[ 5 + inPos] & 1048575) <<  4)) & 255);
      out[13 + outPos] = (byte)((
          //                              [76543210]
          //                      [________10987654____]
           ((in[ 5 + inPos] & 1048575) >>> 4)) & 255);
      out[14 + outPos] = (byte)((
          //                              [76543210]
          //                              [98765432____________]
           ((in[ 5 + inPos] & 1048575) >>> 12)) & 255);
      out[15 + outPos] = (byte)((
          //                              [76543210]
          //                  [____________76543210]
           ((in[ 6 + inPos] & 1048575))) & 255);
      out[16 + outPos] = (byte)((
          //                              [76543210]
          //                          [____54321098________]
           ((in[ 6 + inPos] & 1048575) >>> 8)) & 255);
      out[17 + outPos] = (byte)((
          //                              [____3210]
          //                                  [9876________________]
           ((in[ 6 + inPos] & 1048575) >>> 16)
        | //                              [7654____]
          //              [________________3210]
           ((in[ 7 + inPos] & 1048575) <<  4)) & 255);
      out[18 + outPos] = (byte)((
          //                              [76543210]
          //                      [________10987654____]
           ((in[ 7 + inPos] & 1048575) >>> 4)) & 255);
      out[19 + outPos] = (byte)((
          //                              [76543210]
          //                              [98765432____________]
           ((in[ 7 + inPos] & 1048575) >>> 12)) & 255);
    }
    public final void pack32Values(final int[] in, final int inPos, final byte[] out, final int outPos) {
      out[ 0 + outPos] = (byte)((
          //                              [76543210]
          //                  [____________76543210]
           ((in[ 0 + inPos] & 1048575))) & 255);
      out[ 1 + outPos] = (byte)((
          //                              [76543210]
          //                          [____54321098________]
           ((in[ 0 + inPos] & 1048575) >>> 8)) & 255);
      out[ 2 + outPos] = (byte)((
          //                              [____3210]
          //                                  [9876________________]
           ((in[ 0 + inPos] & 1048575) >>> 16)
        | //                              [7654____]
          //              [________________3210]
           ((in[ 1 + inPos] & 1048575) <<  4)) & 255);
      out[ 3 + outPos] = (byte)((
          //                              [76543210]
          //                      [________10987654____]
           ((in[ 1 + inPos] & 1048575) >>> 4)) & 255);
      out[ 4 + outPos] = (byte)((
          //                              [76543210]
          //                              [98765432____________]
           ((in[ 1 + inPos] & 1048575) >>> 12)) & 255);
      out[ 5 + outPos] = (byte)((
          //                              [76543210]
          //                  [____________76543210]
           ((in[ 2 + inPos] & 1048575))) & 255);
      out[ 6 + outPos] = (byte)((
          //                              [76543210]
          //                          [____54321098________]
           ((in[ 2 + inPos] & 1048575) >>> 8)) & 255);
      out[ 7 + outPos] = (byte)((
          //                              [____3210]
          //                                  [9876________________]
           ((in[ 2 + inPos] & 1048575) >>> 16)
        | //                              [7654____]
          //              [________________3210]
           ((in[ 3 + inPos] & 1048575) <<  4)) & 255);
      out[ 8 + outPos] = (byte)((
          //                              [76543210]
          //                      [________10987654____]
           ((in[ 3 + inPos] & 1048575) >>> 4)) & 255);
      out[ 9 + outPos] = (byte)((
          //                              [76543210]
          //                              [98765432____________]
           ((in[ 3 + inPos] & 1048575) >>> 12)) & 255);
      out[10 + outPos] = (byte)((
          //                              [76543210]
          //                  [____________76543210]
           ((in[ 4 + inPos] & 1048575))) & 255);
      out[11 + outPos] = (byte)((
          //                              [76543210]
          //                          [____54321098________]
           ((in[ 4 + inPos] & 1048575) >>> 8)) & 255);
      out[12 + outPos] = (byte)((
          //                              [____3210]
          //                                  [9876________________]
           ((in[ 4 + inPos] & 1048575) >>> 16)
        | //                              [7654____]
          //              [________________3210]
           ((in[ 5 + inPos] & 1048575) <<  4)) & 255);
      out[13 + outPos] = (byte)((
          //                              [76543210]
          //                      [________10987654____]
           ((in[ 5 + inPos] & 1048575) >>> 4)) & 255);
      out[14 + outPos] = (byte)((
          //                              [76543210]
          //                              [98765432____________]
           ((in[ 5 + inPos] & 1048575) >>> 12)) & 255);
      out[15 + outPos] = (byte)((
          //                              [76543210]
          //                  [____________76543210]
           ((in[ 6 + inPos] & 1048575))) & 255);
      out[16 + outPos] = (byte)((
          //                              [76543210]
          //                          [____54321098________]
           ((in[ 6 + inPos] & 1048575) >>> 8)) & 255);
      out[17 + outPos] = (byte)((
          //                              [____3210]
          //                                  [9876________________]
           ((in[ 6 + inPos] & 1048575) >>> 16)
        | //                              [7654____]
          //              [________________3210]
           ((in[ 7 + inPos] & 1048575) <<  4)) & 255);
      out[18 + outPos] = (byte)((
          //                              [76543210]
          //                      [________10987654____]
           ((in[ 7 + inPos] & 1048575) >>> 4)) & 255);
      out[19 + outPos] = (byte)((
          //                              [76543210]
          //                              [98765432____________]
           ((in[ 7 + inPos] & 1048575) >>> 12)) & 255);
      out[20 + outPos] = (byte)((
          //                              [76543210]
          //                  [____________76543210]
           ((in[ 8 + inPos] & 1048575))) & 255);
      out[21 + outPos] = (byte)((
          //                              [76543210]
          //                          [____54321098________]
           ((in[ 8 + inPos] & 1048575) >>> 8)) & 255);
      out[22 + outPos] = (byte)((
          //                              [____3210]
          //                                  [9876________________]
           ((in[ 8 + inPos] & 1048575) >>> 16)
        | //                              [7654____]
          //              [________________3210]
           ((in[ 9 + inPos] & 1048575) <<  4)) & 255);
      out[23 + outPos] = (byte)((
          //                              [76543210]
          //                      [________10987654____]
           ((in[ 9 + inPos] & 1048575) >>> 4)) & 255);
      out[24 + outPos] = (byte)((
          //                              [76543210]
          //                              [98765432____________]
           ((in[ 9 + inPos] & 1048575) >>> 12)) & 255);
      out[25 + outPos] = (byte)((
          //                              [76543210]
          //                  [____________76543210]
           ((in[10 + inPos] & 1048575))) & 255);
      out[26 + outPos] = (byte)((
          //                              [76543210]
          //                          [____54321098________]
           ((in[10 + inPos] & 1048575) >>> 8)) & 255);
      out[27 + outPos] = (byte)((
          //                              [____3210]
          //                                  [9876________________]
           ((in[10 + inPos] & 1048575) >>> 16)
        | //                              [7654____]
          //              [________________3210]
           ((in[11 + inPos] & 1048575) <<  4)) & 255);
      out[28 + outPos] = (byte)((
          //                              [76543210]
          //                      [________10987654____]
           ((in[11 + inPos] & 1048575) >>> 4)) & 255);
      out[29 + outPos] = (byte)((
          //                              [76543210]
          //                              [98765432____________]
           ((in[11 + inPos] & 1048575) >>> 12)) & 255);
      out[30 + outPos] = (byte)((
          //                              [76543210]
          //                  [____________76543210]
           ((in[12 + inPos] & 1048575))) & 255);
      out[31 + outPos] = (byte)((
          //                              [76543210]
          //                          [____54321098________]
           ((in[12 + inPos] & 1048575) >>> 8)) & 255);
      out[32 + outPos] = (byte)((
          //                              [____3210]
          //                                  [9876________________]
           ((in[12 + inPos] & 1048575) >>> 16)
        | //                              [7654____]
          //              [________________3210]
           ((in[13 + inPos] & 1048575) <<  4)) & 255);
      out[33 + outPos] = (byte)((
          //                              [76543210]
          //                      [________10987654____]
           ((in[13 + inPos] & 1048575) >>> 4)) & 255);
      out[34 + outPos] = (byte)((
          //                              [76543210]
          //                              [98765432____________]
           ((in[13 + inPos] & 1048575) >>> 12)) & 255);
      out[35 + outPos] = (byte)((
          //                              [76543210]
          //                  [____________76543210]
           ((in[14 + inPos] & 1048575))) & 255);
      out[36 + outPos] = (byte)((
          //                              [76543210]
          //                          [____54321098________]
           ((in[14 + inPos] & 1048575) >>> 8)) & 255);
      out[37 + outPos] = (byte)((
          //                              [____3210]
          //                                  [9876________________]
           ((in[14 + inPos] & 1048575) >>> 16)
        | //                              [7654____]
          //              [________________3210]
           ((in[15 + inPos] & 1048575) <<  4)) & 255);
      out[38 + outPos] = (byte)((
          //                              [76543210]
          //                      [________10987654____]
           ((in[15 + inPos] & 1048575) >>> 4)) & 255);
      out[39 + outPos] = (byte)((
          //                              [76543210]
          //                              [98765432____________]
           ((in[15 + inPos] & 1048575) >>> 12)) & 255);
      out[40 + outPos] = (byte)((
          //                              [76543210]
          //                  [____________76543210]
           ((in[16 + inPos] & 1048575))) & 255);
      out[41 + outPos] = (byte)((
          //                              [76543210]
          //                          [____54321098________]
           ((in[16 + inPos] & 1048575) >>> 8)) & 255);
      out[42 + outPos] = (byte)((
          //                              [____3210]
          //                                  [9876________________]
           ((in[16 + inPos] & 1048575) >>> 16)
        | //                              [7654____]
          //              [________________3210]
           ((in[17 + inPos] & 1048575) <<  4)) & 255);
      out[43 + outPos] = (byte)((
          //                              [76543210]
          //                      [________10987654____]
           ((in[17 + inPos] & 1048575) >>> 4)) & 255);
      out[44 + outPos] = (byte)((
          //                              [76543210]
          //                              [98765432____________]
           ((in[17 + inPos] & 1048575) >>> 12)) & 255);
      out[45 + outPos] = (byte)((
          //                              [76543210]
          //                  [____________76543210]
           ((in[18 + inPos] & 1048575))) & 255);
      out[46 + outPos] = (byte)((
          //                              [76543210]
          //                          [____54321098________]
           ((in[18 + inPos] & 1048575) >>> 8)) & 255);
      out[47 + outPos] = (byte)((
          //                              [____3210]
          //                                  [9876________________]
           ((in[18 + inPos] & 1048575) >>> 16)
        | //                              [7654____]
          //              [________________3210]
           ((in[19 + inPos] & 1048575) <<  4)) & 255);
      out[48 + outPos] = (byte)((
          //                              [76543210]
          //                      [________10987654____]
           ((in[19 + inPos] & 1048575) >>> 4)) & 255);
      out[49 + outPos] = (byte)((
          //                              [76543210]
          //                              [98765432____________]
           ((in[19 + inPos] & 1048575) >>> 12)) & 255);
      out[50 + outPos] = (byte)((
          //                              [76543210]
          //                  [____________76543210]
           ((in[20 + inPos] & 1048575))) & 255);
      out[51 + outPos] = (byte)((
          //                              [76543210]
          //                          [____54321098________]
           ((in[20 + inPos] & 1048575) >>> 8)) & 255);
      out[52 + outPos] = (byte)((
          //                              [____3210]
          //                                  [9876________________]
           ((in[20 + inPos] & 1048575) >>> 16)
        | //                              [7654____]
          //              [________________3210]
           ((in[21 + inPos] & 1048575) <<  4)) & 255);
      out[53 + outPos] = (byte)((
          //                              [76543210]
          //                      [________10987654____]
           ((in[21 + inPos] & 1048575) >>> 4)) & 255);
      out[54 + outPos] = (byte)((
          //                              [76543210]
          //                              [98765432____________]
           ((in[21 + inPos] & 1048575) >>> 12)) & 255);
      out[55 + outPos] = (byte)((
          //                              [76543210]
          //                  [____________76543210]
           ((in[22 + inPos] & 1048575))) & 255);
      out[56 + outPos] = (byte)((
          //                              [76543210]
          //                          [____54321098________]
           ((in[22 + inPos] & 1048575) >>> 8)) & 255);
      out[57 + outPos] = (byte)((
          //                              [____3210]
          //                                  [9876________________]
           ((in[22 + inPos] & 1048575) >>> 16)
        | //                              [7654____]
          //              [________________3210]
           ((in[23 + inPos] & 1048575) <<  4)) & 255);
      out[58 + outPos] = (byte)((
          //                              [76543210]
          //                      [________10987654____]
           ((in[23 + inPos] & 1048575) >>> 4)) & 255);
      out[59 + outPos] = (byte)((
          //                              [76543210]
          //                              [98765432____________]
           ((in[23 + inPos] & 1048575) >>> 12)) & 255);
      out[60 + outPos] = (byte)((
          //                              [76543210]
          //                  [____________76543210]
           ((in[24 + inPos] & 1048575))) & 255);
      out[61 + outPos] = (byte)((
          //                              [76543210]
          //                          [____54321098________]
           ((in[24 + inPos] & 1048575) >>> 8)) & 255);
      out[62 + outPos] = (byte)((
          //                              [____3210]
          //                                  [9876________________]
           ((in[24 + inPos] & 1048575) >>> 16)
        | //                              [7654____]
          //              [________________3210]
           ((in[25 + inPos] & 1048575) <<  4)) & 255);
      out[63 + outPos] = (byte)((
          //                              [76543210]
          //                      [________10987654____]
           ((in[25 + inPos] & 1048575) >>> 4)) & 255);
      out[64 + outPos] = (byte)((
          //                              [76543210]
          //                              [98765432____________]
           ((in[25 + inPos] & 1048575) >>> 12)) & 255);
      out[65 + outPos] = (byte)((
          //                              [76543210]
          //                  [____________76543210]
           ((in[26 + inPos] & 1048575))) & 255);
      out[66 + outPos] = (byte)((
          //                              [76543210]
          //                          [____54321098________]
           ((in[26 + inPos] & 1048575) >>> 8)) & 255);
      out[67 + outPos] = (byte)((
          //                              [____3210]
          //                                  [9876________________]
           ((in[26 + inPos] & 1048575) >>> 16)
        | //                              [7654____]
          //              [________________3210]
           ((in[27 + inPos] & 1048575) <<  4)) & 255);
      out[68 + outPos] = (byte)((
          //                              [76543210]
          //                      [________10987654____]
           ((in[27 + inPos] & 1048575) >>> 4)) & 255);
      out[69 + outPos] = (byte)((
          //                              [76543210]
          //                              [98765432____________]
           ((in[27 + inPos] & 1048575) >>> 12)) & 255);
      out[70 + outPos] = (byte)((
          //                              [76543210]
          //                  [____________76543210]
           ((in[28 + inPos] & 1048575))) & 255);
      out[71 + outPos] = (byte)((
          //                              [76543210]
          //                          [____54321098________]
           ((in[28 + inPos] & 1048575) >>> 8)) & 255);
      out[72 + outPos] = (byte)((
          //                              [____3210]
          //                                  [9876________________]
           ((in[28 + inPos] & 1048575) >>> 16)
        | //                              [7654____]
          //              [________________3210]
           ((in[29 + inPos] & 1048575) <<  4)) & 255);
      out[73 + outPos] = (byte)((
          //                              [76543210]
          //                      [________10987654____]
           ((in[29 + inPos] & 1048575) >>> 4)) & 255);
      out[74 + outPos] = (byte)((
          //                              [76543210]
          //                              [98765432____________]
           ((in[29 + inPos] & 1048575) >>> 12)) & 255);
      out[75 + outPos] = (byte)((
          //                              [76543210]
          //                  [____________76543210]
           ((in[30 + inPos] & 1048575))) & 255);
      out[76 + outPos] = (byte)((
          //                              [76543210]
          //                          [____54321098________]
           ((in[30 + inPos] & 1048575) >>> 8)) & 255);
      out[77 + outPos] = (byte)((
          //                              [____3210]
          //                                  [9876________________]
           ((in[30 + inPos] & 1048575) >>> 16)
        | //                              [7654____]
          //              [________________3210]
           ((in[31 + inPos] & 1048575) <<  4)) & 255);
      out[78 + outPos] = (byte)((
          //                              [76543210]
          //                      [________10987654____]
           ((in[31 + inPos] & 1048575) >>> 4)) & 255);
      out[79 + outPos] = (byte)((
          //                              [76543210]
          //                              [98765432____________]
           ((in[31 + inPos] & 1048575) >>> 12)) & 255);
    }
    public final void unpack8Values(final byte[] in, final int inPos, final int[] out, final int outPos) {
      out[ 0 + outPos] =
          //                              [76543210]
          //                  [____________76543210]
            ((((int)in[ 0 + inPos]) ) & 255)
        | //                              [76543210]
          //                          [____54321098________]
            ((((int)in[ 1 + inPos]) <<  8) & 65535)
        | //                              [____3210]
          //                                  [9876________________]
            ((((int)in[ 2 + inPos]) <<  16) & 1048575);
      out[ 1 + outPos] =
          //                              [7654____]
          //              [________________3210]
            ((((int)in[ 2 + inPos]) >>  4) & 15)
        | //                              [76543210]
          //                      [________10987654____]
            ((((int)in[ 3 + inPos]) <<  4) & 4095)
        | //                              [76543210]
          //                              [98765432____________]
            ((((int)in[ 4 + inPos]) <<  12) & 1048575);
      out[ 2 + outPos] =
          //                              [76543210]
          //                  [____________76543210]
            ((((int)in[ 5 + inPos]) ) & 255)
        | //                              [76543210]
          //                          [____54321098________]
            ((((int)in[ 6 + inPos]) <<  8) & 65535)
        | //                              [____3210]
          //                                  [9876________________]
            ((((int)in[ 7 + inPos]) <<  16) & 1048575);
      out[ 3 + outPos] =
          //                              [7654____]
          //              [________________3210]
            ((((int)in[ 7 + inPos]) >>  4) & 15)
        | //                              [76543210]
          //                      [________10987654____]
            ((((int)in[ 8 + inPos]) <<  4) & 4095)
        | //                              [76543210]
          //                              [98765432____________]
            ((((int)in[ 9 + inPos]) <<  12) & 1048575);
      out[ 4 + outPos] =
          //                              [76543210]
          //                  [____________76543210]
            ((((int)in[10 + inPos]) ) & 255)
        | //                              [76543210]
          //                          [____54321098________]
            ((((int)in[11 + inPos]) <<  8) & 65535)
        | //                              [____3210]
          //                                  [9876________________]
            ((((int)in[12 + inPos]) <<  16) & 1048575);
      out[ 5 + outPos] =
          //                              [7654____]
          //              [________________3210]
            ((((int)in[12 + inPos]) >>  4) & 15)
        | //                              [76543210]
          //                      [________10987654____]
            ((((int)in[13 + inPos]) <<  4) & 4095)
        | //                              [76543210]
          //                              [98765432____________]
            ((((int)in[14 + inPos]) <<  12) & 1048575);
      out[ 6 + outPos] =
          //                              [76543210]
          //                  [____________76543210]
            ((((int)in[15 + inPos]) ) & 255)
        | //                              [76543210]
          //                          [____54321098________]
            ((((int)in[16 + inPos]) <<  8) & 65535)
        | //                              [____3210]
          //                                  [9876________________]
            ((((int)in[17 + inPos]) <<  16) & 1048575);
      out[ 7 + outPos] =
          //                              [7654____]
          //              [________________3210]
            ((((int)in[17 + inPos]) >>  4) & 15)
        | //                              [76543210]
          //                      [________10987654____]
            ((((int)in[18 + inPos]) <<  4) & 4095)
        | //                              [76543210]
          //                              [98765432____________]
            ((((int)in[19 + inPos]) <<  12) & 1048575);
    }
    public final void unpack8Values(final ByteBuffer in, final int inPos, final int[] out, final int outPos) {
      out[ 0 + outPos] =
          //                              [76543210]
          //                  [____________76543210]
            ((((int)in.get( 0 + inPos)) ) & 255)
        | //                              [76543210]
          //                          [____54321098________]
            ((((int)in.get( 1 + inPos)) <<  8) & 65535)
        | //                              [____3210]
          //                                  [9876________________]
            ((((int)in.get( 2 + inPos)) <<  16) & 1048575);
      out[ 1 + outPos] =
          //                              [7654____]
          //              [________________3210]
            ((((int)in.get( 2 + inPos)) >>  4) & 15)
        | //                              [76543210]
          //                      [________10987654____]
            ((((int)in.get( 3 + inPos)) <<  4) & 4095)
        | //                              [76543210]
          //                              [98765432____________]
            ((((int)in.get( 4 + inPos)) <<  12) & 1048575);
      out[ 2 + outPos] =
          //                              [76543210]
          //                  [____________76543210]
            ((((int)in.get( 5 + inPos)) ) & 255)
        | //                              [76543210]
          //                          [____54321098________]
            ((((int)in.get( 6 + inPos)) <<  8) & 65535)
        | //                              [____3210]
          //                                  [9876________________]
            ((((int)in.get( 7 + inPos)) <<  16) & 1048575);
      out[ 3 + outPos] =
          //                              [7654____]
          //              [________________3210]
            ((((int)in.get( 7 + inPos)) >>  4) & 15)
        | //                              [76543210]
          //                      [________10987654____]
            ((((int)in.get( 8 + inPos)) <<  4) & 4095)
        | //                              [76543210]
          //                              [98765432____________]
            ((((int)in.get( 9 + inPos)) <<  12) & 1048575);
      out[ 4 + outPos] =
          //                              [76543210]
          //                  [____________76543210]
            ((((int)in.get(10 + inPos)) ) & 255)
        | //                              [76543210]
          //                          [____54321098________]
            ((((int)in.get(11 + inPos)) <<  8) & 65535)
        | //                              [____3210]
          //                                  [9876________________]
            ((((int)in.get(12 + inPos)) <<  16) & 1048575);
      out[ 5 + outPos] =
          //                              [7654____]
          //              [________________3210]
            ((((int)in.get(12 + inPos)) >>  4) & 15)
        | //                              [76543210]
          //                      [________10987654____]
            ((((int)in.get(13 + inPos)) <<  4) & 4095)
        | //                              [76543210]
          //                              [98765432____________]
            ((((int)in.get(14 + inPos)) <<  12) & 1048575);
      out[ 6 + outPos] =
          //                              [76543210]
          //                  [____________76543210]
            ((((int)in.get(15 + inPos)) ) & 255)
        | //                              [76543210]
          //                          [____54321098________]
            ((((int)in.get(16 + inPos)) <<  8) & 65535)
        | //                              [____3210]
          //                                  [9876________________]
            ((((int)in.get(17 + inPos)) <<  16) & 1048575);
      out[ 7 + outPos] =
          //                              [7654____]
          //              [________________3210]
            ((((int)in.get(17 + inPos)) >>  4) & 15)
        | //                              [76543210]
          //                      [________10987654____]
            ((((int)in.get(18 + inPos)) <<  4) & 4095)
        | //                              [76543210]
          //                              [98765432____________]
            ((((int)in.get(19 + inPos)) <<  12) & 1048575);
    }
    public final void unpack32Values(final byte[] in, final int inPos, final int[] out, final int outPos) {
      out[ 0 + outPos] =
          //                              [76543210]
          //                  [____________76543210]
            ((((int)in[ 0 + inPos]) ) & 255)
        | //                              [76543210]
          //                          [____54321098________]
            ((((int)in[ 1 + inPos]) <<  8) & 65535)
        | //                              [____3210]
          //                                  [9876________________]
            ((((int)in[ 2 + inPos]) <<  16) & 1048575);
      out[ 1 + outPos] =
          //                              [7654____]
          //              [________________3210]
            ((((int)in[ 2 + inPos]) >>  4) & 15)
        | //                              [76543210]
          //                      [________10987654____]
            ((((int)in[ 3 + inPos]) <<  4) & 4095)
        | //                              [76543210]
          //                              [98765432____________]
            ((((int)in[ 4 + inPos]) <<  12) & 1048575);
      out[ 2 + outPos] =
          //                              [76543210]
          //                  [____________76543210]
            ((((int)in[ 5 + inPos]) ) & 255)
        | //                              [76543210]
          //                          [____54321098________]
            ((((int)in[ 6 + inPos]) <<  8) & 65535)
        | //                              [____3210]
          //                                  [9876________________]
            ((((int)in[ 7 + inPos]) <<  16) & 1048575);
      out[ 3 + outPos] =
          //                              [7654____]
          //              [________________3210]
            ((((int)in[ 7 + inPos]) >>  4) & 15)
        | //                              [76543210]
          //                      [________10987654____]
            ((((int)in[ 8 + inPos]) <<  4) & 4095)
        | //                              [76543210]
          //                              [98765432____________]
            ((((int)in[ 9 + inPos]) <<  12) & 1048575);
      out[ 4 + outPos] =
          //                              [76543210]
          //                  [____________76543210]
            ((((int)in[10 + inPos]) ) & 255)
        | //                              [76543210]
          //                          [____54321098________]
            ((((int)in[11 + inPos]) <<  8) & 65535)
        | //                              [____3210]
          //                                  [9876________________]
            ((((int)in[12 + inPos]) <<  16) & 1048575);
      out[ 5 + outPos] =
          //                              [7654____]
          //              [________________3210]
            ((((int)in[12 + inPos]) >>  4) & 15)
        | //                              [76543210]
          //                      [________10987654____]
            ((((int)in[13 + inPos]) <<  4) & 4095)
        | //                              [76543210]
          //                              [98765432____________]
            ((((int)in[14 + inPos]) <<  12) & 1048575);
      out[ 6 + outPos] =
          //                              [76543210]
          //                  [____________76543210]
            ((((int)in[15 + inPos]) ) & 255)
        | //                              [76543210]
          //                          [____54321098________]
            ((((int)in[16 + inPos]) <<  8) & 65535)
        | //                              [____3210]
          //                                  [9876________________]
            ((((int)in[17 + inPos]) <<  16) & 1048575);
      out[ 7 + outPos] =
          //                              [7654____]
          //              [________________3210]
            ((((int)in[17 + inPos]) >>  4) & 15)
        | //                              [76543210]
          //                      [________10987654____]
            ((((int)in[18 + inPos]) <<  4) & 4095)
        | //                              [76543210]
          //                              [98765432____________]
            ((((int)in[19 + inPos]) <<  12) & 1048575);
      out[ 8 + outPos] =
          //                              [76543210]
          //                  [____________76543210]
            ((((int)in[20 + inPos]) ) & 255)
        | //                              [76543210]
          //                          [____54321098________]
            ((((int)in[21 + inPos]) <<  8) & 65535)
        | //                              [____3210]
          //                                  [9876________________]
            ((((int)in[22 + inPos]) <<  16) & 1048575);
      out[ 9 + outPos] =
          //                              [7654____]
          //              [________________3210]
            ((((int)in[22 + inPos]) >>  4) & 15)
        | //                              [76543210]
          //                      [________10987654____]
            ((((int)in[23 + inPos]) <<  4) & 4095)
        | //                              [76543210]
          //                              [98765432____________]
            ((((int)in[24 + inPos]) <<  12) & 1048575);
      out[10 + outPos] =
          //                              [76543210]
          //                  [____________76543210]
            ((((int)in[25 + inPos]) ) & 255)
        | //                              [76543210]
          //                          [____54321098________]
            ((((int)in[26 + inPos]) <<  8) & 65535)
        | //                              [____3210]
          //                                  [9876________________]
            ((((int)in[27 + inPos]) <<  16) & 1048575);
      out[11 + outPos] =
          //                              [7654____]
          //              [________________3210]
            ((((int)in[27 + inPos]) >>  4) & 15)
        | //                              [76543210]
          //                      [________10987654____]
            ((((int)in[28 + inPos]) <<  4) & 4095)
        | //                              [76543210]
          //                              [98765432____________]
            ((((int)in[29 + inPos]) <<  12) & 1048575);
      out[12 + outPos] =
          //                              [76543210]
          //                  [____________76543210]
            ((((int)in[30 + inPos]) ) & 255)
        | //                              [76543210]
          //                          [____54321098________]
            ((((int)in[31 + inPos]) <<  8) & 65535)
        | //                              [____3210]
          //                                  [9876________________]
            ((((int)in[32 + inPos]) <<  16) & 1048575);
      out[13 + outPos] =
          //                              [7654____]
          //              [________________3210]
            ((((int)in[32 + inPos]) >>  4) & 15)
        | //                              [76543210]
          //                      [________10987654____]
            ((((int)in[33 + inPos]) <<  4) & 4095)
        | //                              [76543210]
          //                              [98765432____________]
            ((((int)in[34 + inPos]) <<  12) & 1048575);
      out[14 + outPos] =
          //                              [76543210]
          //                  [____________76543210]
            ((((int)in[35 + inPos]) ) & 255)
        | //                              [76543210]
          //                          [____54321098________]
            ((((int)in[36 + inPos]) <<  8) & 65535)
        | //                              [____3210]
          //                                  [9876________________]
            ((((int)in[37 + inPos]) <<  16) & 1048575);
      out[15 + outPos] =
          //                              [7654____]
          //              [________________3210]
            ((((int)in[37 + inPos]) >>  4) & 15)
        | //                              [76543210]
          //                      [________10987654____]
            ((((int)in[38 + inPos]) <<  4) & 4095)
        | //                              [76543210]
          //                              [98765432____________]
            ((((int)in[39 + inPos]) <<  12) & 1048575);
      out[16 + outPos] =
          //                              [76543210]
          //                  [____________76543210]
            ((((int)in[40 + inPos]) ) & 255)
        | //                              [76543210]
          //                          [____54321098________]
            ((((int)in[41 + inPos]) <<  8) & 65535)
        | //                              [____3210]
          //                                  [9876________________]
            ((((int)in[42 + inPos]) <<  16) & 1048575);
      out[17 + outPos] =
          //                              [7654____]
          //              [________________3210]
            ((((int)in[42 + inPos]) >>  4) & 15)
        | //                              [76543210]
          //                      [________10987654____]
            ((((int)in[43 + inPos]) <<  4) & 4095)
        | //                              [76543210]
          //                              [98765432____________]
            ((((int)in[44 + inPos]) <<  12) & 1048575);
      out[18 + outPos] =
          //                              [76543210]
          //                  [____________76543210]
            ((((int)in[45 + inPos]) ) & 255)
        | //                              [76543210]
          //                          [____54321098________]
            ((((int)in[46 + inPos]) <<  8) & 65535)
        | //                              [____3210]
          //                                  [9876________________]
            ((((int)in[47 + inPos]) <<  16) & 1048575);
      out[19 + outPos] =
          //                              [7654____]
          //              [________________3210]
            ((((int)in[47 + inPos]) >>  4) & 15)
        | //                              [76543210]
          //                      [________10987654____]
            ((((int)in[48 + inPos]) <<  4) & 4095)
        | //                              [76543210]
          //                              [98765432____________]
            ((((int)in[49 + inPos]) <<  12) & 1048575);
      out[20 + outPos] =
          //                              [76543210]
          //                  [____________76543210]
            ((((int)in[50 + inPos]) ) & 255)
        | //                              [76543210]
          //                          [____54321098________]
            ((((int)in[51 + inPos]) <<  8) & 65535)
        | //                              [____3210]
          //                                  [9876________________]
            ((((int)in[52 + inPos]) <<  16) & 1048575);
      out[21 + outPos] =
          //                              [7654____]
          //              [________________3210]
            ((((int)in[52 + inPos]) >>  4) & 15)
        | //                              [76543210]
          //                      [________10987654____]
            ((((int)in[53 + inPos]) <<  4) & 4095)
        | //                              [76543210]
          //                              [98765432____________]
            ((((int)in[54 + inPos]) <<  12) & 1048575);
      out[22 + outPos] =
          //                              [76543210]
          //                  [____________76543210]
            ((((int)in[55 + inPos]) ) & 255)
        | //                              [76543210]
          //                          [____54321098________]
            ((((int)in[56 + inPos]) <<  8) & 65535)
        | //                              [____3210]
          //                                  [9876________________]
            ((((int)in[57 + inPos]) <<  16) & 1048575);
      out[23 + outPos] =
          //                              [7654____]
          //              [________________3210]
            ((((int)in[57 + inPos]) >>  4) & 15)
        | //                              [76543210]
          //                      [________10987654____]
            ((((int)in[58 + inPos]) <<  4) & 4095)
        | //                              [76543210]
          //                              [98765432____________]
            ((((int)in[59 + inPos]) <<  12) & 1048575);
      out[24 + outPos] =
          //                              [76543210]
          //                  [____________76543210]
            ((((int)in[60 + inPos]) ) & 255)
        | //                              [76543210]
          //                          [____54321098________]
            ((((int)in[61 + inPos]) <<  8) & 65535)
        | //                              [____3210]
          //                                  [9876________________]
            ((((int)in[62 + inPos]) <<  16) & 1048575);
      out[25 + outPos] =
          //                              [7654____]
          //              [________________3210]
            ((((int)in[62 + inPos]) >>  4) & 15)
        | //                              [76543210]
          //                      [________10987654____]
            ((((int)in[63 + inPos]) <<  4) & 4095)
        | //                              [76543210]
          //                              [98765432____________]
            ((((int)in[64 + inPos]) <<  12) & 1048575);
      out[26 + outPos] =
          //                              [76543210]
          //                  [____________76543210]
            ((((int)in[65 + inPos]) ) & 255)
        | //                              [76543210]
          //                          [____54321098________]
            ((((int)in[66 + inPos]) <<  8) & 65535)
        | //                              [____3210]
          //                                  [9876________________]
            ((((int)in[67 + inPos]) <<  16) & 1048575);
      out[27 + outPos] =
          //                              [7654____]
          //              [________________3210]
            ((((int)in[67 + inPos]) >>  4) & 15)
        | //                              [76543210]
          //                      [________10987654____]
            ((((int)in[68 + inPos]) <<  4) & 4095)
        | //                              [76543210]
          //                              [98765432____________]
            ((((int)in[69 + inPos]) <<  12) & 1048575);
      out[28 + outPos] =
          //                              [76543210]
          //                  [____________76543210]
            ((((int)in[70 + inPos]) ) & 255)
        | //                              [76543210]
          //                          [____54321098________]
            ((((int)in[71 + inPos]) <<  8) & 65535)
        | //                              [____3210]
          //                                  [9876________________]
            ((((int)in[72 + inPos]) <<  16) & 1048575);
      out[29 + outPos] =
          //                              [7654____]
          //              [________________3210]
            ((((int)in[72 + inPos]) >>  4) & 15)
        | //                              [76543210]
          //                      [________10987654____]
            ((((int)in[73 + inPos]) <<  4) & 4095)
        | //                              [76543210]
          //                              [98765432____________]
            ((((int)in[74 + inPos]) <<  12) & 1048575);
      out[30 + outPos] =
          //                              [76543210]
          //                  [____________76543210]
            ((((int)in[75 + inPos]) ) & 255)
        | //                              [76543210]
          //                          [____54321098________]
            ((((int)in[76 + inPos]) <<  8) & 65535)
        | //                              [____3210]
          //                                  [9876________________]
            ((((int)in[77 + inPos]) <<  16) & 1048575);
      out[31 + outPos] =
          //                              [7654____]
          //              [________________3210]
            ((((int)in[77 + inPos]) >>  4) & 15)
        | //                              [76543210]
          //                      [________10987654____]
            ((((int)in[78 + inPos]) <<  4) & 4095)
        | //                              [76543210]
          //                              [98765432____________]
            ((((int)in[79 + inPos]) <<  12) & 1048575);
    }
    public final void unpack32Values(final ByteBuffer in, final int inPos, final int[] out, final int outPos) {
      out[ 0 + outPos] =
          //                              [76543210]
          //                  [____________76543210]
            ((((int)in.get( 0 + inPos)) ) & 255)
        | //                              [76543210]
          //                          [____54321098________]
            ((((int)in.get( 1 + inPos)) <<  8) & 65535)
        | //                              [____3210]
          //                                  [9876________________]
            ((((int)in.get( 2 + inPos)) <<  16) & 1048575);
      out[ 1 + outPos] =
          //                              [7654____]
          //              [________________3210]
            ((((int)in.get( 2 + inPos)) >>  4) & 15)
        | //                              [76543210]
          //                      [________10987654____]
            ((((int)in.get( 3 + inPos)) <<  4) & 4095)
        | //                              [76543210]
          //                              [98765432____________]
            ((((int)in.get( 4 + inPos)) <<  12) & 1048575);
      out[ 2 + outPos] =
          //                              [76543210]
          //                  [____________76543210]
            ((((int)in.get( 5 + inPos)) ) & 255)
        | //                              [76543210]
          //                          [____54321098________]
            ((((int)in.get( 6 + inPos)) <<  8) & 65535)
        | //                              [____3210]
          //                                  [9876________________]
            ((((int)in.get( 7 + inPos)) <<  16) & 1048575);
      out[ 3 + outPos] =
          //                              [7654____]
          //              [________________3210]
            ((((int)in.get( 7 + inPos)) >>  4) & 15)
        | //                              [76543210]
          //                      [________10987654____]
            ((((int)in.get( 8 + inPos)) <<  4) & 4095)
        | //                              [76543210]
          //                              [98765432____________]
            ((((int)in.get( 9 + inPos)) <<  12) & 1048575);
      out[ 4 + outPos] =
          //                              [76543210]
          //                  [____________76543210]
            ((((int)in.get(10 + inPos)) ) & 255)
        | //                              [76543210]
          //                          [____54321098________]
            ((((int)in.get(11 + inPos)) <<  8) & 65535)
        | //                              [____3210]
          //                                  [9876________________]
            ((((int)in.get(12 + inPos)) <<  16) & 1048575);
      out[ 5 + outPos] =
          //                              [7654____]
          //              [________________3210]
            ((((int)in.get(12 + inPos)) >>  4) & 15)
        | //                              [76543210]
          //                      [________10987654____]
            ((((int)in.get(13 + inPos)) <<  4) & 4095)
        | //                              [76543210]
          //                              [98765432____________]
            ((((int)in.get(14 + inPos)) <<  12) & 1048575);
      out[ 6 + outPos] =
          //                              [76543210]
          //                  [____________76543210]
            ((((int)in.get(15 + inPos)) ) & 255)
        | //                              [76543210]
          //                          [____54321098________]
            ((((int)in.get(16 + inPos)) <<  8) & 65535)
        | //                              [____3210]
          //                                  [9876________________]
            ((((int)in.get(17 + inPos)) <<  16) & 1048575);
      out[ 7 + outPos] =
          //                              [7654____]
          //              [________________3210]
            ((((int)in.get(17 + inPos)) >>  4) & 15)
        | //                              [76543210]
          //                      [________10987654____]
            ((((int)in.get(18 + inPos)) <<  4) & 4095)
        | //                              [76543210]
          //                              [98765432____________]
            ((((int)in.get(19 + inPos)) <<  12) & 1048575);
      out[ 8 + outPos] =
          //                              [76543210]
          //                  [____________76543210]
            ((((int)in.get(20 + inPos)) ) & 255)
        | //                              [76543210]
          //                          [____54321098________]
            ((((int)in.get(21 + inPos)) <<  8) & 65535)
        | //                              [____3210]
          //                                  [9876________________]
            ((((int)in.get(22 + inPos)) <<  16) & 1048575);
      out[ 9 + outPos] =
          //                              [7654____]
          //              [________________3210]
            ((((int)in.get(22 + inPos)) >>  4) & 15)
        | //                              [76543210]
          //                      [________10987654____]
            ((((int)in.get(23 + inPos)) <<  4) & 4095)
        | //                              [76543210]
          //                              [98765432____________]
            ((((int)in.get(24 + inPos)) <<  12) & 1048575);
      out[10 + outPos] =
          //                              [76543210]
          //                  [____________76543210]
            ((((int)in.get(25 + inPos)) ) & 255)
        | //                              [76543210]
          //                          [____54321098________]
            ((((int)in.get(26 + inPos)) <<  8) & 65535)
        | //                              [____3210]
          //                                  [9876________________]
            ((((int)in.get(27 + inPos)) <<  16) & 1048575);
      out[11 + outPos] =
          //                              [7654____]
          //              [________________3210]
            ((((int)in.get(27 + inPos)) >>  4) & 15)
        | //                              [76543210]
          //                      [________10987654____]
            ((((int)in.get(28 + inPos)) <<  4) & 4095)
        | //                              [76543210]
          //                              [98765432____________]
            ((((int)in.get(29 + inPos)) <<  12) & 1048575);
      out[12 + outPos] =
          //                              [76543210]
          //                  [____________76543210]
            ((((int)in.get(30 + inPos)) ) & 255)
        | //                              [76543210]
          //                          [____54321098________]
            ((((int)in.get(31 + inPos)) <<  8) & 65535)
        | //                              [____3210]
          //                                  [9876________________]
            ((((int)in.get(32 + inPos)) <<  16) & 1048575);
      out[13 + outPos] =
          //                              [7654____]
          //              [________________3210]
            ((((int)in.get(32 + inPos)) >>  4) & 15)
        | //                              [76543210]
          //                      [________10987654____]
            ((((int)in.get(33 + inPos)) <<  4) & 4095)
        | //                              [76543210]
          //                              [98765432____________]
            ((((int)in.get(34 + inPos)) <<  12) & 1048575);
      out[14 + outPos] =
          //                              [76543210]
          //                  [____________76543210]
            ((((int)in.get(35 + inPos)) ) & 255)
        | //                              [76543210]
          //                          [____54321098________]
            ((((int)in.get(36 + inPos)) <<  8) & 65535)
        | //                              [____3210]
          //                                  [9876________________]
            ((((int)in.get(37 + inPos)) <<  16) & 1048575);
      out[15 + outPos] =
          //                              [7654____]
          //              [________________3210]
            ((((int)in.get(37 + inPos)) >>  4) & 15)
        | //                              [76543210]
          //                      [________10987654____]
            ((((int)in.get(38 + inPos)) <<  4) & 4095)
        | //                              [76543210]
          //                              [98765432____________]
            ((((int)in.get(39 + inPos)) <<  12) & 1048575);
      out[16 + outPos] =
          //                              [76543210]
          //                  [____________76543210]
            ((((int)in.get(40 + inPos)) ) & 255)
        | //                              [76543210]
          //                          [____54321098________]
            ((((int)in.get(41 + inPos)) <<  8) & 65535)
        | //                              [____3210]
          //                                  [9876________________]
            ((((int)in.get(42 + inPos)) <<  16) & 1048575);
      out[17 + outPos] =
          //                              [7654____]
          //              [________________3210]
            ((((int)in.get(42 + inPos)) >>  4) & 15)
        | //                              [76543210]
          //                      [________10987654____]
            ((((int)in.get(43 + inPos)) <<  4) & 4095)
        | //                              [76543210]
          //                              [98765432____________]
            ((((int)in.get(44 + inPos)) <<  12) & 1048575);
      out[18 + outPos] =
          //                              [76543210]
          //                  [____________76543210]
            ((((int)in.get(45 + inPos)) ) & 255)
        | //                              [76543210]
          //                          [____54321098________]
            ((((int)in.get(46 + inPos)) <<  8) & 65535)
        | //                              [____3210]
          //                                  [9876________________]
            ((((int)in.get(47 + inPos)) <<  16) & 1048575);
      out[19 + outPos] =
          //                              [7654____]
          //              [________________3210]
            ((((int)in.get(47 + inPos)) >>  4) & 15)
        | //                              [76543210]
          //                      [________10987654____]
            ((((int)in.get(48 + inPos)) <<  4) & 4095)
        | //                              [76543210]
          //                              [98765432____________]
            ((((int)in.get(49 + inPos)) <<  12) & 1048575);
      out[20 + outPos] =
          //                              [76543210]
          //                  [____________76543210]
            ((((int)in.get(50 + inPos)) ) & 255)
        | //                              [76543210]
          //                          [____54321098________]
            ((((int)in.get(51 + inPos)) <<  8) & 65535)
        | //                              [____3210]
          //                                  [9876________________]
            ((((int)in.get(52 + inPos)) <<  16) & 1048575);
      out[21 + outPos] =
          //                              [7654____]
          //              [________________3210]
            ((((int)in.get(52 + inPos)) >>  4) & 15)
        | //                              [76543210]
          //                      [________10987654____]
            ((((int)in.get(53 + inPos)) <<  4) & 4095)
        | //                              [76543210]
          //                              [98765432____________]
            ((((int)in.get(54 + inPos)) <<  12) & 1048575);
      out[22 + outPos] =
          //                              [76543210]
          //                  [____________76543210]
            ((((int)in.get(55 + inPos)) ) & 255)
        | //                              [76543210]
          //                          [____54321098________]
            ((((int)in.get(56 + inPos)) <<  8) & 65535)
        | //                              [____3210]
          //                                  [9876________________]
            ((((int)in.get(57 + inPos)) <<  16) & 1048575);
      out[23 + outPos] =
          //                              [7654____]
          //              [________________3210]
            ((((int)in.get(57 + inPos)) >>  4) & 15)
        | //                              [76543210]
          //                      [________10987654____]
            ((((int)in.get(58 + inPos)) <<  4) & 4095)
        | //                              [76543210]
          //                              [98765432____________]
            ((((int)in.get(59 + inPos)) <<  12) & 1048575);
      out[24 + outPos] =
          //                              [76543210]
          //                  [____________76543210]
            ((((int)in.get(60 + inPos)) ) & 255)
        | //                              [76543210]
          //                          [____54321098________]
            ((((int)in.get(61 + inPos)) <<  8) & 65535)
        | //                              [____3210]
          //                                  [9876________________]
            ((((int)in.get(62 + inPos)) <<  16) & 1048575);
      out[25 + outPos] =
          //                              [7654____]
          //              [________________3210]
            ((((int)in.get(62 + inPos)) >>  4) & 15)
        | //                              [76543210]
          //                      [________10987654____]
            ((((int)in.get(63 + inPos)) <<  4) & 4095)
        | //                              [76543210]
          //                              [98765432____________]
            ((((int)in.get(64 + inPos)) <<  12) & 1048575);
      out[26 + outPos] =
          //                              [76543210]
          //                  [____________76543210]
            ((((int)in.get(65 + inPos)) ) & 255)
        | //                              [76543210]
          //                          [____54321098________]
            ((((int)in.get(66 + inPos)) <<  8) & 65535)
        | //                              [____3210]
          //                                  [9876________________]
            ((((int)in.get(67 + inPos)) <<  16) & 1048575);
      out[27 + outPos] =
          //                              [7654____]
          //              [________________3210]
            ((((int)in.get(67 + inPos)) >>  4) & 15)
        | //                              [76543210]
          //                      [________10987654____]
            ((((int)in.get(68 + inPos)) <<  4) & 4095)
        | //                              [76543210]
          //                              [98765432____________]
            ((((int)in.get(69 + inPos)) <<  12) & 1048575);
      out[28 + outPos] =
          //                              [76543210]
          //                  [____________76543210]
            ((((int)in.get(70 + inPos)) ) & 255)
        | //                              [76543210]
          //                          [____54321098________]
            ((((int)in.get(71 + inPos)) <<  8) & 65535)
        | //                              [____3210]
          //                                  [9876________________]
            ((((int)in.get(72 + inPos)) <<  16) & 1048575);
      out[29 + outPos] =
          //                              [7654____]
          //              [________________3210]
            ((((int)in.get(72 + inPos)) >>  4) & 15)
        | //                              [76543210]
          //                      [________10987654____]
            ((((int)in.get(73 + inPos)) <<  4) & 4095)
        | //                              [76543210]
          //                              [98765432____________]
            ((((int)in.get(74 + inPos)) <<  12) & 1048575);
      out[30 + outPos] =
          //                              [76543210]
          //                  [____________76543210]
            ((((int)in.get(75 + inPos)) ) & 255)
        | //                              [76543210]
          //                          [____54321098________]
            ((((int)in.get(76 + inPos)) <<  8) & 65535)
        | //                              [____3210]
          //                                  [9876________________]
            ((((int)in.get(77 + inPos)) <<  16) & 1048575);
      out[31 + outPos] =
          //                              [7654____]
          //              [________________3210]
            ((((int)in.get(77 + inPos)) >>  4) & 15)
        | //                              [76543210]
          //                      [________10987654____]
            ((((int)in.get(78 + inPos)) <<  4) & 4095)
        | //                              [76543210]
          //                              [98765432____________]
            ((((int)in.get(79 + inPos)) <<  12) & 1048575);
    }
  }

  private static final class Packer21 extends BytePacker {

    private Packer21() {
      super(21);
    }

    public final void pack8Values(final int[] in, final int inPos, final byte[] out, final int outPos) {
      out[ 0 + outPos] = (byte)((
          //                               [76543210]
          //                  [_____________76543210]
           ((in[ 0 + inPos] & 2097151))) & 255);
      out[ 1 + outPos] = (byte)((
          //                               [76543210]
          //                          [_____54321098________]
           ((in[ 0 + inPos] & 2097151) >>> 8)) & 255);
      out[ 2 + outPos] = (byte)((
          //                               [___43210]
          //                                  [09876________________]
           ((in[ 0 + inPos] & 2097151) >>> 16)
        | //                               [765_____]
          //             [__________________210]
           ((in[ 1 + inPos] & 2097151) <<  5)) & 255);
      out[ 3 + outPos] = (byte)((
          //                               [76543210]
          //                     [__________09876543___]
           ((in[ 1 + inPos] & 2097151) >>> 3)) & 255);
      out[ 4 + outPos] = (byte)((
          //                               [76543210]
          //                             [__87654321___________]
           ((in[ 1 + inPos] & 2097151) >>> 11)) & 255);
      out[ 5 + outPos] = (byte)((
          //                               [______10]
          //                                     [09___________________]
           ((in[ 1 + inPos] & 2097151) >>> 19)
        | //                               [765432__]
          //                [_______________543210]
           ((in[ 2 + inPos] & 2097151) <<  2)) & 255);
      out[ 6 + outPos] = (byte)((
          //                               [76543210]
          //                        [_______32109876______]
           ((in[ 2 + inPos] & 2097151) >>> 6)) & 255);
      out[ 7 + outPos] = (byte)((
          //                               [_6543210]
          //                                [0987654______________]
           ((in[ 2 + inPos] & 2097151) >>> 14)
        | //                               [7_______]
          //           [____________________0]
           ((in[ 3 + inPos] & 2097151) <<  7)) & 255);
      out[ 8 + outPos] = (byte)((
          //                               [76543210]
          //                   [____________87654321_]
           ((in[ 3 + inPos] & 2097151) >>> 1)) & 255);
      out[ 9 + outPos] = (byte)((
          //                               [76543210]
          //                           [____65432109_________]
           ((in[ 3 + inPos] & 2097151) >>> 9)) & 255);
      out[10 + outPos] = (byte)((
          //                               [____3210]
          //                                   [0987_________________]
           ((in[ 3 + inPos] & 2097151) >>> 17)
        | //                               [7654____]
          //              [_________________3210]
           ((in[ 4 + inPos] & 2097151) <<  4)) & 255);
      out[11 + outPos] = (byte)((
          //                               [76543210]
          //                      [_________10987654____]
           ((in[ 4 + inPos] & 2097151) >>> 4)) & 255);
      out[12 + outPos] = (byte)((
          //                               [76543210]
          //                              [_98765432____________]
           ((in[ 4 + inPos] & 2097151) >>> 12)) & 255);
      out[13 + outPos] = (byte)((
          //                               [_______0]
          //                                      [0____________________]
           ((in[ 4 + inPos] & 2097151) >>> 20)
        | //                               [7654321_]
          //                 [______________6543210]
           ((in[ 5 + inPos] & 2097151) <<  1)) & 255);
      out[14 + outPos] = (byte)((
          //                               [76543210]
          //                         [______43210987_______]
           ((in[ 5 + inPos] & 2097151) >>> 7)) & 255);
      out[15 + outPos] = (byte)((
          //                               [__543210]
          //                                 [098765_______________]
           ((in[ 5 + inPos] & 2097151) >>> 15)
        | //                               [76______]
          //            [___________________10]
           ((in[ 6 + inPos] & 2097151) <<  6)) & 255);
      out[16 + outPos] = (byte)((
          //                               [76543210]
          //                    [___________98765432__]
           ((in[ 6 + inPos] & 2097151) >>> 2)) & 255);
      out[17 + outPos] = (byte)((
          //                               [76543210]
          //                            [___76543210__________]
           ((in[ 6 + inPos] & 2097151) >>> 10)) & 255);
      out[18 + outPos] = (byte)((
          //                               [_____210]
          //                                    [098__________________]
           ((in[ 6 + inPos] & 2097151) >>> 18)
        | //                               [76543___]
          //               [________________43210]
           ((in[ 7 + inPos] & 2097151) <<  3)) & 255);
      out[19 + outPos] = (byte)((
          //                               [76543210]
          //                       [________21098765_____]
           ((in[ 7 + inPos] & 2097151) >>> 5)) & 255);
      out[20 + outPos] = (byte)((
          //                               [76543210]
          //                               [09876543_____________]
           ((in[ 7 + inPos] & 2097151) >>> 13)) & 255);
    }
    public final void pack32Values(final int[] in, final int inPos, final byte[] out, final int outPos) {
      out[ 0 + outPos] = (byte)((
          //                               [76543210]
          //                  [_____________76543210]
           ((in[ 0 + inPos] & 2097151))) & 255);
      out[ 1 + outPos] = (byte)((
          //                               [76543210]
          //                          [_____54321098________]
           ((in[ 0 + inPos] & 2097151) >>> 8)) & 255);
      out[ 2 + outPos] = (byte)((
          //                               [___43210]
          //                                  [09876________________]
           ((in[ 0 + inPos] & 2097151) >>> 16)
        | //                               [765_____]
          //             [__________________210]
           ((in[ 1 + inPos] & 2097151) <<  5)) & 255);
      out[ 3 + outPos] = (byte)((
          //                               [76543210]
          //                     [__________09876543___]
           ((in[ 1 + inPos] & 2097151) >>> 3)) & 255);
      out[ 4 + outPos] = (byte)((
          //                               [76543210]
          //                             [__87654321___________]
           ((in[ 1 + inPos] & 2097151) >>> 11)) & 255);
      out[ 5 + outPos] = (byte)((
          //                               [______10]
          //                                     [09___________________]
           ((in[ 1 + inPos] & 2097151) >>> 19)
        | //                               [765432__]
          //                [_______________543210]
           ((in[ 2 + inPos] & 2097151) <<  2)) & 255);
      out[ 6 + outPos] = (byte)((
          //                               [76543210]
          //                        [_______32109876______]
           ((in[ 2 + inPos] & 2097151) >>> 6)) & 255);
      out[ 7 + outPos] = (byte)((
          //                               [_6543210]
          //                                [0987654______________]
           ((in[ 2 + inPos] & 2097151) >>> 14)
        | //                               [7_______]
          //           [____________________0]
           ((in[ 3 + inPos] & 2097151) <<  7)) & 255);
      out[ 8 + outPos] = (byte)((
          //                               [76543210]
          //                   [____________87654321_]
           ((in[ 3 + inPos] & 2097151) >>> 1)) & 255);
      out[ 9 + outPos] = (byte)((
          //                               [76543210]
          //                           [____65432109_________]
           ((in[ 3 + inPos] & 2097151) >>> 9)) & 255);
      out[10 + outPos] = (byte)((
          //                               [____3210]
          //                                   [0987_________________]
           ((in[ 3 + inPos] & 2097151) >>> 17)
        | //                               [7654____]
          //              [_________________3210]
           ((in[ 4 + inPos] & 2097151) <<  4)) & 255);
      out[11 + outPos] = (byte)((
          //                               [76543210]
          //                      [_________10987654____]
           ((in[ 4 + inPos] & 2097151) >>> 4)) & 255);
      out[12 + outPos] = (byte)((
          //                               [76543210]
          //                              [_98765432____________]
           ((in[ 4 + inPos] & 2097151) >>> 12)) & 255);
      out[13 + outPos] = (byte)((
          //                               [_______0]
          //                                      [0____________________]
           ((in[ 4 + inPos] & 2097151) >>> 20)
        | //                               [7654321_]
          //                 [______________6543210]
           ((in[ 5 + inPos] & 2097151) <<  1)) & 255);
      out[14 + outPos] = (byte)((
          //                               [76543210]
          //                         [______43210987_______]
           ((in[ 5 + inPos] & 2097151) >>> 7)) & 255);
      out[15 + outPos] = (byte)((
          //                               [__543210]
          //                                 [098765_______________]
           ((in[ 5 + inPos] & 2097151) >>> 15)
        | //                               [76______]
          //            [___________________10]
           ((in[ 6 + inPos] & 2097151) <<  6)) & 255);
      out[16 + outPos] = (byte)((
          //                               [76543210]
          //                    [___________98765432__]
           ((in[ 6 + inPos] & 2097151) >>> 2)) & 255);
      out[17 + outPos] = (byte)((
          //                               [76543210]
          //                            [___76543210__________]
           ((in[ 6 + inPos] & 2097151) >>> 10)) & 255);
      out[18 + outPos] = (byte)((
          //                               [_____210]
          //                                    [098__________________]
           ((in[ 6 + inPos] & 2097151) >>> 18)
        | //                               [76543___]
          //               [________________43210]
           ((in[ 7 + inPos] & 2097151) <<  3)) & 255);
      out[19 + outPos] = (byte)((
          //                               [76543210]
          //                       [________21098765_____]
           ((in[ 7 + inPos] & 2097151) >>> 5)) & 255);
      out[20 + outPos] = (byte)((
          //                               [76543210]
          //                               [09876543_____________]
           ((in[ 7 + inPos] & 2097151) >>> 13)) & 255);
      out[21 + outPos] = (byte)((
          //                               [76543210]
          //                  [_____________76543210]
           ((in[ 8 + inPos] & 2097151))) & 255);
      out[22 + outPos] = (byte)((
          //                               [76543210]
          //                          [_____54321098________]
           ((in[ 8 + inPos] & 2097151) >>> 8)) & 255);
      out[23 + outPos] = (byte)((
          //                               [___43210]
          //                                  [09876________________]
           ((in[ 8 + inPos] & 2097151) >>> 16)
        | //                               [765_____]
          //             [__________________210]
           ((in[ 9 + inPos] & 2097151) <<  5)) & 255);
      out[24 + outPos] = (byte)((
          //                               [76543210]
          //                     [__________09876543___]
           ((in[ 9 + inPos] & 2097151) >>> 3)) & 255);
      out[25 + outPos] = (byte)((
          //                               [76543210]
          //                             [__87654321___________]
           ((in[ 9 + inPos] & 2097151) >>> 11)) & 255);
      out[26 + outPos] = (byte)((
          //                               [______10]
          //                                     [09___________________]
           ((in[ 9 + inPos] & 2097151) >>> 19)
        | //                               [765432__]
          //                [_______________543210]
           ((in[10 + inPos] & 2097151) <<  2)) & 255);
      out[27 + outPos] = (byte)((
          //                               [76543210]
          //                        [_______32109876______]
           ((in[10 + inPos] & 2097151) >>> 6)) & 255);
      out[28 + outPos] = (byte)((
          //                               [_6543210]
          //                                [0987654______________]
           ((in[10 + inPos] & 2097151) >>> 14)
        | //                               [7_______]
          //           [____________________0]
           ((in[11 + inPos] & 2097151) <<  7)) & 255);
      out[29 + outPos] = (byte)((
          //                               [76543210]
          //                   [____________87654321_]
           ((in[11 + inPos] & 2097151) >>> 1)) & 255);
      out[30 + outPos] = (byte)((
          //                               [76543210]
          //                           [____65432109_________]
           ((in[11 + inPos] & 2097151) >>> 9)) & 255);
      out[31 + outPos] = (byte)((
          //                               [____3210]
          //                                   [0987_________________]
           ((in[11 + inPos] & 2097151) >>> 17)
        | //                               [7654____]
          //              [_________________3210]
           ((in[12 + inPos] & 2097151) <<  4)) & 255);
      out[32 + outPos] = (byte)((
          //                               [76543210]
          //                      [_________10987654____]
           ((in[12 + inPos] & 2097151) >>> 4)) & 255);
      out[33 + outPos] = (byte)((
          //                               [76543210]
          //                              [_98765432____________]
           ((in[12 + inPos] & 2097151) >>> 12)) & 255);
      out[34 + outPos] = (byte)((
          //                               [_______0]
          //                                      [0____________________]
           ((in[12 + inPos] & 2097151) >>> 20)
        | //                               [7654321_]
          //                 [______________6543210]
           ((in[13 + inPos] & 2097151) <<  1)) & 255);
      out[35 + outPos] = (byte)((
          //                               [76543210]
          //                         [______43210987_______]
           ((in[13 + inPos] & 2097151) >>> 7)) & 255);
      out[36 + outPos] = (byte)((
          //                               [__543210]
          //                                 [098765_______________]
           ((in[13 + inPos] & 2097151) >>> 15)
        | //                               [76______]
          //            [___________________10]
           ((in[14 + inPos] & 2097151) <<  6)) & 255);
      out[37 + outPos] = (byte)((
          //                               [76543210]
          //                    [___________98765432__]
           ((in[14 + inPos] & 2097151) >>> 2)) & 255);
      out[38 + outPos] = (byte)((
          //                               [76543210]
          //                            [___76543210__________]
           ((in[14 + inPos] & 2097151) >>> 10)) & 255);
      out[39 + outPos] = (byte)((
          //                               [_____210]
          //                                    [098__________________]
           ((in[14 + inPos] & 2097151) >>> 18)
        | //                               [76543___]
          //               [________________43210]
           ((in[15 + inPos] & 2097151) <<  3)) & 255);
      out[40 + outPos] = (byte)((
          //                               [76543210]
          //                       [________21098765_____]
           ((in[15 + inPos] & 2097151) >>> 5)) & 255);
      out[41 + outPos] = (byte)((
          //                               [76543210]
          //                               [09876543_____________]
           ((in[15 + inPos] & 2097151) >>> 13)) & 255);
      out[42 + outPos] = (byte)((
          //                               [76543210]
          //                  [_____________76543210]
           ((in[16 + inPos] & 2097151))) & 255);
      out[43 + outPos] = (byte)((
          //                               [76543210]
          //                          [_____54321098________]
           ((in[16 + inPos] & 2097151) >>> 8)) & 255);
      out[44 + outPos] = (byte)((
          //                               [___43210]
          //                                  [09876________________]
           ((in[16 + inPos] & 2097151) >>> 16)
        | //                               [765_____]
          //             [__________________210]
           ((in[17 + inPos] & 2097151) <<  5)) & 255);
      out[45 + outPos] = (byte)((
          //                               [76543210]
          //                     [__________09876543___]
           ((in[17 + inPos] & 2097151) >>> 3)) & 255);
      out[46 + outPos] = (byte)((
          //                               [76543210]
          //                             [__87654321___________]
           ((in[17 + inPos] & 2097151) >>> 11)) & 255);
      out[47 + outPos] = (byte)((
          //                               [______10]
          //                                     [09___________________]
           ((in[17 + inPos] & 2097151) >>> 19)
        | //                               [765432__]
          //                [_______________543210]
           ((in[18 + inPos] & 2097151) <<  2)) & 255);
      out[48 + outPos] = (byte)((
          //                               [76543210]
          //                        [_______32109876______]
           ((in[18 + inPos] & 2097151) >>> 6)) & 255);
      out[49 + outPos] = (byte)((
          //                               [_6543210]
          //                                [0987654______________]
           ((in[18 + inPos] & 2097151) >>> 14)
        | //                               [7_______]
          //           [____________________0]
           ((in[19 + inPos] & 2097151) <<  7)) & 255);
      out[50 + outPos] = (byte)((
          //                               [76543210]
          //                   [____________87654321_]
           ((in[19 + inPos] & 2097151) >>> 1)) & 255);
      out[51 + outPos] = (byte)((
          //                               [76543210]
          //                           [____65432109_________]
           ((in[19 + inPos] & 2097151) >>> 9)) & 255);
      out[52 + outPos] = (byte)((
          //                               [____3210]
          //                                   [0987_________________]
           ((in[19 + inPos] & 2097151) >>> 17)
        | //                               [7654____]
          //              [_________________3210]
           ((in[20 + inPos] & 2097151) <<  4)) & 255);
      out[53 + outPos] = (byte)((
          //                               [76543210]
          //                      [_________10987654____]
           ((in[20 + inPos] & 2097151) >>> 4)) & 255);
      out[54 + outPos] = (byte)((
          //                               [76543210]
          //                              [_98765432____________]
           ((in[20 + inPos] & 2097151) >>> 12)) & 255);
      out[55 + outPos] = (byte)((
          //                               [_______0]
          //                                      [0____________________]
           ((in[20 + inPos] & 2097151) >>> 20)
        | //                               [7654321_]
          //                 [______________6543210]
           ((in[21 + inPos] & 2097151) <<  1)) & 255);
      out[56 + outPos] = (byte)((
          //                               [76543210]
          //                         [______43210987_______]
           ((in[21 + inPos] & 2097151) >>> 7)) & 255);
      out[57 + outPos] = (byte)((
          //                               [__543210]
          //                                 [098765_______________]
           ((in[21 + inPos] & 2097151) >>> 15)
        | //                               [76______]
          //            [___________________10]
           ((in[22 + inPos] & 2097151) <<  6)) & 255);
      out[58 + outPos] = (byte)((
          //                               [76543210]
          //                    [___________98765432__]
           ((in[22 + inPos] & 2097151) >>> 2)) & 255);
      out[59 + outPos] = (byte)((
          //                               [76543210]
          //                            [___76543210__________]
           ((in[22 + inPos] & 2097151) >>> 10)) & 255);
      out[60 + outPos] = (byte)((
          //                               [_____210]
          //                                    [098__________________]
           ((in[22 + inPos] & 2097151) >>> 18)
        | //                               [76543___]
          //               [________________43210]
           ((in[23 + inPos] & 2097151) <<  3)) & 255);
      out[61 + outPos] = (byte)((
          //                               [76543210]
          //                       [________21098765_____]
           ((in[23 + inPos] & 2097151) >>> 5)) & 255);
      out[62 + outPos] = (byte)((
          //                               [76543210]
          //                               [09876543_____________]
           ((in[23 + inPos] & 2097151) >>> 13)) & 255);
      out[63 + outPos] = (byte)((
          //                               [76543210]
          //                  [_____________76543210]
           ((in[24 + inPos] & 2097151))) & 255);
      out[64 + outPos] = (byte)((
          //                               [76543210]
          //                          [_____54321098________]
           ((in[24 + inPos] & 2097151) >>> 8)) & 255);
      out[65 + outPos] = (byte)((
          //                               [___43210]
          //                                  [09876________________]
           ((in[24 + inPos] & 2097151) >>> 16)
        | //                               [765_____]
          //             [__________________210]
           ((in[25 + inPos] & 2097151) <<  5)) & 255);
      out[66 + outPos] = (byte)((
          //                               [76543210]
          //                     [__________09876543___]
           ((in[25 + inPos] & 2097151) >>> 3)) & 255);
      out[67 + outPos] = (byte)((
          //                               [76543210]
          //                             [__87654321___________]
           ((in[25 + inPos] & 2097151) >>> 11)) & 255);
      out[68 + outPos] = (byte)((
          //                               [______10]
          //                                     [09___________________]
           ((in[25 + inPos] & 2097151) >>> 19)
        | //                               [765432__]
          //                [_______________543210]
           ((in[26 + inPos] & 2097151) <<  2)) & 255);
      out[69 + outPos] = (byte)((
          //                               [76543210]
          //                        [_______32109876______]
           ((in[26 + inPos] & 2097151) >>> 6)) & 255);
      out[70 + outPos] = (byte)((
          //                               [_6543210]
          //                                [0987654______________]
           ((in[26 + inPos] & 2097151) >>> 14)
        | //                               [7_______]
          //           [____________________0]
           ((in[27 + inPos] & 2097151) <<  7)) & 255);
      out[71 + outPos] = (byte)((
          //                               [76543210]
          //                   [____________87654321_]
           ((in[27 + inPos] & 2097151) >>> 1)) & 255);
      out[72 + outPos] = (byte)((
          //                               [76543210]
          //                           [____65432109_________]
           ((in[27 + inPos] & 2097151) >>> 9)) & 255);
      out[73 + outPos] = (byte)((
          //                               [____3210]
          //                                   [0987_________________]
           ((in[27 + inPos] & 2097151) >>> 17)
        | //                               [7654____]
          //              [_________________3210]
           ((in[28 + inPos] & 2097151) <<  4)) & 255);
      out[74 + outPos] = (byte)((
          //                               [76543210]
          //                      [_________10987654____]
           ((in[28 + inPos] & 2097151) >>> 4)) & 255);
      out[75 + outPos] = (byte)((
          //                               [76543210]
          //                              [_98765432____________]
           ((in[28 + inPos] & 2097151) >>> 12)) & 255);
      out[76 + outPos] = (byte)((
          //                               [_______0]
          //                                      [0____________________]
           ((in[28 + inPos] & 2097151) >>> 20)
        | //                               [7654321_]
          //                 [______________6543210]
           ((in[29 + inPos] & 2097151) <<  1)) & 255);
      out[77 + outPos] = (byte)((
          //                               [76543210]
          //                         [______43210987_______]
           ((in[29 + inPos] & 2097151) >>> 7)) & 255);
      out[78 + outPos] = (byte)((
          //                               [__543210]
          //                                 [098765_______________]
           ((in[29 + inPos] & 2097151) >>> 15)
        | //                               [76______]
          //            [___________________10]
           ((in[30 + inPos] & 2097151) <<  6)) & 255);
      out[79 + outPos] = (byte)((
          //                               [76543210]
          //                    [___________98765432__]
           ((in[30 + inPos] & 2097151) >>> 2)) & 255);
      out[80 + outPos] = (byte)((
          //                               [76543210]
          //                            [___76543210__________]
           ((in[30 + inPos] & 2097151) >>> 10)) & 255);
      out[81 + outPos] = (byte)((
          //                               [_____210]
          //                                    [098__________________]
           ((in[30 + inPos] & 2097151) >>> 18)
        | //                               [76543___]
          //               [________________43210]
           ((in[31 + inPos] & 2097151) <<  3)) & 255);
      out[82 + outPos] = (byte)((
          //                               [76543210]
          //                       [________21098765_____]
           ((in[31 + inPos] & 2097151) >>> 5)) & 255);
      out[83 + outPos] = (byte)((
          //                               [76543210]
          //                               [09876543_____________]
           ((in[31 + inPos] & 2097151) >>> 13)) & 255);
    }
    public final void unpack8Values(final byte[] in, final int inPos, final int[] out, final int outPos) {
      out[ 0 + outPos] =
          //                               [76543210]
          //                  [_____________76543210]
            ((((int)in[ 0 + inPos]) ) & 255)
        | //                               [76543210]
          //                          [_____54321098________]
            ((((int)in[ 1 + inPos]) <<  8) & 65535)
        | //                               [___43210]
          //                                  [09876________________]
            ((((int)in[ 2 + inPos]) <<  16) & 2097151);
      out[ 1 + outPos] =
          //                               [765_____]
          //             [__________________210]
            ((((int)in[ 2 + inPos]) >>  5) & 7)
        | //                               [76543210]
          //                     [__________09876543___]
            ((((int)in[ 3 + inPos]) <<  3) & 2047)
        | //                               [76543210]
          //                             [__87654321___________]
            ((((int)in[ 4 + inPos]) <<  11) & 524287)
        | //                               [______10]
          //                                     [09___________________]
            ((((int)in[ 5 + inPos]) <<  19) & 2097151);
      out[ 2 + outPos] =
          //                               [765432__]
          //                [_______________543210]
            ((((int)in[ 5 + inPos]) >>  2) & 63)
        | //                               [76543210]
          //                        [_______32109876______]
            ((((int)in[ 6 + inPos]) <<  6) & 16383)
        | //                               [_6543210]
          //                                [0987654______________]
            ((((int)in[ 7 + inPos]) <<  14) & 2097151);
      out[ 3 + outPos] =
          //                               [7_______]
          //           [____________________0]
            ((((int)in[ 7 + inPos]) >>  7) & 1)
        | //                               [76543210]
          //                   [____________87654321_]
            ((((int)in[ 8 + inPos]) <<  1) & 511)
        | //                               [76543210]
          //                           [____65432109_________]
            ((((int)in[ 9 + inPos]) <<  9) & 131071)
        | //                               [____3210]
          //                                   [0987_________________]
            ((((int)in[10 + inPos]) <<  17) & 2097151);
      out[ 4 + outPos] =
          //                               [7654____]
          //              [_________________3210]
            ((((int)in[10 + inPos]) >>  4) & 15)
        | //                               [76543210]
          //                      [_________10987654____]
            ((((int)in[11 + inPos]) <<  4) & 4095)
        | //                               [76543210]
          //                              [_98765432____________]
            ((((int)in[12 + inPos]) <<  12) & 1048575)
        | //                               [_______0]
          //                                      [0____________________]
            ((((int)in[13 + inPos]) <<  20) & 2097151);
      out[ 5 + outPos] =
          //                               [7654321_]
          //                 [______________6543210]
            ((((int)in[13 + inPos]) >>  1) & 127)
        | //                               [76543210]
          //                         [______43210987_______]
            ((((int)in[14 + inPos]) <<  7) & 32767)
        | //                               [__543210]
          //                                 [098765_______________]
            ((((int)in[15 + inPos]) <<  15) & 2097151);
      out[ 6 + outPos] =
          //                               [76______]
          //            [___________________10]
            ((((int)in[15 + inPos]) >>  6) & 3)
        | //                               [76543210]
          //                    [___________98765432__]
            ((((int)in[16 + inPos]) <<  2) & 1023)
        | //                               [76543210]
          //                            [___76543210__________]
            ((((int)in[17 + inPos]) <<  10) & 262143)
        | //                               [_____210]
          //                                    [098__________________]
            ((((int)in[18 + inPos]) <<  18) & 2097151);
      out[ 7 + outPos] =
          //                               [76543___]
          //               [________________43210]
            ((((int)in[18 + inPos]) >>  3) & 31)
        | //                               [76543210]
          //                       [________21098765_____]
            ((((int)in[19 + inPos]) <<  5) & 8191)
        | //                               [76543210]
          //                               [09876543_____________]
            ((((int)in[20 + inPos]) <<  13) & 2097151);
    }
    public final void unpack8Values(final ByteBuffer in, final int inPos, final int[] out, final int outPos) {
      out[ 0 + outPos] =
          //                               [76543210]
          //                  [_____________76543210]
            ((((int)in.get( 0 + inPos)) ) & 255)
        | //                               [76543210]
          //                          [_____54321098________]
            ((((int)in.get( 1 + inPos)) <<  8) & 65535)
        | //                               [___43210]
          //                                  [09876________________]
            ((((int)in.get( 2 + inPos)) <<  16) & 2097151);
      out[ 1 + outPos] =
          //                               [765_____]
          //             [__________________210]
            ((((int)in.get( 2 + inPos)) >>  5) & 7)
        | //                               [76543210]
          //                     [__________09876543___]
            ((((int)in.get( 3 + inPos)) <<  3) & 2047)
        | //                               [76543210]
          //                             [__87654321___________]
            ((((int)in.get( 4 + inPos)) <<  11) & 524287)
        | //                               [______10]
          //                                     [09___________________]
            ((((int)in.get( 5 + inPos)) <<  19) & 2097151);
      out[ 2 + outPos] =
          //                               [765432__]
          //                [_______________543210]
            ((((int)in.get( 5 + inPos)) >>  2) & 63)
        | //                               [76543210]
          //                        [_______32109876______]
            ((((int)in.get( 6 + inPos)) <<  6) & 16383)
        | //                               [_6543210]
          //                                [0987654______________]
            ((((int)in.get( 7 + inPos)) <<  14) & 2097151);
      out[ 3 + outPos] =
          //                               [7_______]
          //           [____________________0]
            ((((int)in.get( 7 + inPos)) >>  7) & 1)
        | //                               [76543210]
          //                   [____________87654321_]
            ((((int)in.get( 8 + inPos)) <<  1) & 511)
        | //                               [76543210]
          //                           [____65432109_________]
            ((((int)in.get( 9 + inPos)) <<  9) & 131071)
        | //                               [____3210]
          //                                   [0987_________________]
            ((((int)in.get(10 + inPos)) <<  17) & 2097151);
      out[ 4 + outPos] =
          //                               [7654____]
          //              [_________________3210]
            ((((int)in.get(10 + inPos)) >>  4) & 15)
        | //                               [76543210]
          //                      [_________10987654____]
            ((((int)in.get(11 + inPos)) <<  4) & 4095)
        | //                               [76543210]
          //                              [_98765432____________]
            ((((int)in.get(12 + inPos)) <<  12) & 1048575)
        | //                               [_______0]
          //                                      [0____________________]
            ((((int)in.get(13 + inPos)) <<  20) & 2097151);
      out[ 5 + outPos] =
          //                               [7654321_]
          //                 [______________6543210]
            ((((int)in.get(13 + inPos)) >>  1) & 127)
        | //                               [76543210]
          //                         [______43210987_______]
            ((((int)in.get(14 + inPos)) <<  7) & 32767)
        | //                               [__543210]
          //                                 [098765_______________]
            ((((int)in.get(15 + inPos)) <<  15) & 2097151);
      out[ 6 + outPos] =
          //                               [76______]
          //            [___________________10]
            ((((int)in.get(15 + inPos)) >>  6) & 3)
        | //                               [76543210]
          //                    [___________98765432__]
            ((((int)in.get(16 + inPos)) <<  2) & 1023)
        | //                               [76543210]
          //                            [___76543210__________]
            ((((int)in.get(17 + inPos)) <<  10) & 262143)
        | //                               [_____210]
          //                                    [098__________________]
            ((((int)in.get(18 + inPos)) <<  18) & 2097151);
      out[ 7 + outPos] =
          //                               [76543___]
          //               [________________43210]
            ((((int)in.get(18 + inPos)) >>  3) & 31)
        | //                               [76543210]
          //                       [________21098765_____]
            ((((int)in.get(19 + inPos)) <<  5) & 8191)
        | //                               [76543210]
          //                               [09876543_____________]
            ((((int)in.get(20 + inPos)) <<  13) & 2097151);
    }
    public final void unpack32Values(final byte[] in, final int inPos, final int[] out, final int outPos) {
      out[ 0 + outPos] =
          //                               [76543210]
          //                  [_____________76543210]
            ((((int)in[ 0 + inPos]) ) & 255)
        | //                               [76543210]
          //                          [_____54321098________]
            ((((int)in[ 1 + inPos]) <<  8) & 65535)
        | //                               [___43210]
          //                                  [09876________________]
            ((((int)in[ 2 + inPos]) <<  16) & 2097151);
      out[ 1 + outPos] =
          //                               [765_____]
          //             [__________________210]
            ((((int)in[ 2 + inPos]) >>  5) & 7)
        | //                               [76543210]
          //                     [__________09876543___]
            ((((int)in[ 3 + inPos]) <<  3) & 2047)
        | //                               [76543210]
          //                             [__87654321___________]
            ((((int)in[ 4 + inPos]) <<  11) & 524287)
        | //                               [______10]
          //                                     [09___________________]
            ((((int)in[ 5 + inPos]) <<  19) & 2097151);
      out[ 2 + outPos] =
          //                               [765432__]
          //                [_______________543210]
            ((((int)in[ 5 + inPos]) >>  2) & 63)
        | //                               [76543210]
          //                        [_______32109876______]
            ((((int)in[ 6 + inPos]) <<  6) & 16383)
        | //                               [_6543210]
          //                                [0987654______________]
            ((((int)in[ 7 + inPos]) <<  14) & 2097151);
      out[ 3 + outPos] =
          //                               [7_______]
          //           [____________________0]
            ((((int)in[ 7 + inPos]) >>  7) & 1)
        | //                               [76543210]
          //                   [____________87654321_]
            ((((int)in[ 8 + inPos]) <<  1) & 511)
        | //                               [76543210]
          //                           [____65432109_________]
            ((((int)in[ 9 + inPos]) <<  9) & 131071)
        | //                               [____3210]
          //                                   [0987_________________]
            ((((int)in[10 + inPos]) <<  17) & 2097151);
      out[ 4 + outPos] =
          //                               [7654____]
          //              [_________________3210]
            ((((int)in[10 + inPos]) >>  4) & 15)
        | //                               [76543210]
          //                      [_________10987654____]
            ((((int)in[11 + inPos]) <<  4) & 4095)
        | //                               [76543210]
          //                              [_98765432____________]
            ((((int)in[12 + inPos]) <<  12) & 1048575)
        | //                               [_______0]
          //                                      [0____________________]
            ((((int)in[13 + inPos]) <<  20) & 2097151);
      out[ 5 + outPos] =
          //                               [7654321_]
          //                 [______________6543210]
            ((((int)in[13 + inPos]) >>  1) & 127)
        | //                               [76543210]
          //                         [______43210987_______]
            ((((int)in[14 + inPos]) <<  7) & 32767)
        | //                               [__543210]
          //                                 [098765_______________]
            ((((int)in[15 + inPos]) <<  15) & 2097151);
      out[ 6 + outPos] =
          //                               [76______]
          //            [___________________10]
            ((((int)in[15 + inPos]) >>  6) & 3)
        | //                               [76543210]
          //                    [___________98765432__]
            ((((int)in[16 + inPos]) <<  2) & 1023)
        | //                               [76543210]
          //                            [___76543210__________]
            ((((int)in[17 + inPos]) <<  10) & 262143)
        | //                               [_____210]
          //                                    [098__________________]
            ((((int)in[18 + inPos]) <<  18) & 2097151);
      out[ 7 + outPos] =
          //                               [76543___]
          //               [________________43210]
            ((((int)in[18 + inPos]) >>  3) & 31)
        | //                               [76543210]
          //                       [________21098765_____]
            ((((int)in[19 + inPos]) <<  5) & 8191)
        | //                               [76543210]
          //                               [09876543_____________]
            ((((int)in[20 + inPos]) <<  13) & 2097151);
      out[ 8 + outPos] =
          //                               [76543210]
          //                  [_____________76543210]
            ((((int)in[21 + inPos]) ) & 255)
        | //                               [76543210]
          //                          [_____54321098________]
            ((((int)in[22 + inPos]) <<  8) & 65535)
        | //                               [___43210]
          //                                  [09876________________]
            ((((int)in[23 + inPos]) <<  16) & 2097151);
      out[ 9 + outPos] =
          //                               [765_____]
          //             [__________________210]
            ((((int)in[23 + inPos]) >>  5) & 7)
        | //                               [76543210]
          //                     [__________09876543___]
            ((((int)in[24 + inPos]) <<  3) & 2047)
        | //                               [76543210]
          //                             [__87654321___________]
            ((((int)in[25 + inPos]) <<  11) & 524287)
        | //                               [______10]
          //                                     [09___________________]
            ((((int)in[26 + inPos]) <<  19) & 2097151);
      out[10 + outPos] =
          //                               [765432__]
          //                [_______________543210]
            ((((int)in[26 + inPos]) >>  2) & 63)
        | //                               [76543210]
          //                        [_______32109876______]
            ((((int)in[27 + inPos]) <<  6) & 16383)
        | //                               [_6543210]
          //                                [0987654______________]
            ((((int)in[28 + inPos]) <<  14) & 2097151);
      out[11 + outPos] =
          //                               [7_______]
          //           [____________________0]
            ((((int)in[28 + inPos]) >>  7) & 1)
        | //                               [76543210]
          //                   [____________87654321_]
            ((((int)in[29 + inPos]) <<  1) & 511)
        | //                               [76543210]
          //                           [____65432109_________]
            ((((int)in[30 + inPos]) <<  9) & 131071)
        | //                               [____3210]
          //                                   [0987_________________]
            ((((int)in[31 + inPos]) <<  17) & 2097151);
      out[12 + outPos] =
          //                               [7654____]
          //              [_________________3210]
            ((((int)in[31 + inPos]) >>  4) & 15)
        | //                               [76543210]
          //                      [_________10987654____]
            ((((int)in[32 + inPos]) <<  4) & 4095)
        | //                               [76543210]
          //                              [_98765432____________]
            ((((int)in[33 + inPos]) <<  12) & 1048575)
        | //                               [_______0]
          //                                      [0____________________]
            ((((int)in[34 + inPos]) <<  20) & 2097151);
      out[13 + outPos] =
          //                               [7654321_]
          //                 [______________6543210]
            ((((int)in[34 + inPos]) >>  1) & 127)
        | //                               [76543210]
          //                         [______43210987_______]
            ((((int)in[35 + inPos]) <<  7) & 32767)
        | //                               [__543210]
          //                                 [098765_______________]
            ((((int)in[36 + inPos]) <<  15) & 2097151);
      out[14 + outPos] =
          //                               [76______]
          //            [___________________10]
            ((((int)in[36 + inPos]) >>  6) & 3)
        | //                               [76543210]
          //                    [___________98765432__]
            ((((int)in[37 + inPos]) <<  2) & 1023)
        | //                               [76543210]
          //                            [___76543210__________]
            ((((int)in[38 + inPos]) <<  10) & 262143)
        | //                               [_____210]
          //                                    [098__________________]
            ((((int)in[39 + inPos]) <<  18) & 2097151);
      out[15 + outPos] =
          //                               [76543___]
          //               [________________43210]
            ((((int)in[39 + inPos]) >>  3) & 31)
        | //                               [76543210]
          //                       [________21098765_____]
            ((((int)in[40 + inPos]) <<  5) & 8191)
        | //                               [76543210]
          //                               [09876543_____________]
            ((((int)in[41 + inPos]) <<  13) & 2097151);
      out[16 + outPos] =
          //                               [76543210]
          //                  [_____________76543210]
            ((((int)in[42 + inPos]) ) & 255)
        | //                               [76543210]
          //                          [_____54321098________]
            ((((int)in[43 + inPos]) <<  8) & 65535)
        | //                               [___43210]
          //                                  [09876________________]
            ((((int)in[44 + inPos]) <<  16) & 2097151);
      out[17 + outPos] =
          //                               [765_____]
          //             [__________________210]
            ((((int)in[44 + inPos]) >>  5) & 7)
        | //                               [76543210]
          //                     [__________09876543___]
            ((((int)in[45 + inPos]) <<  3) & 2047)
        | //                               [76543210]
          //                             [__87654321___________]
            ((((int)in[46 + inPos]) <<  11) & 524287)
        | //                               [______10]
          //                                     [09___________________]
            ((((int)in[47 + inPos]) <<  19) & 2097151);
      out[18 + outPos] =
          //                               [765432__]
          //                [_______________543210]
            ((((int)in[47 + inPos]) >>  2) & 63)
        | //                               [76543210]
          //                        [_______32109876______]
            ((((int)in[48 + inPos]) <<  6) & 16383)
        | //                               [_6543210]
          //                                [0987654______________]
            ((((int)in[49 + inPos]) <<  14) & 2097151);
      out[19 + outPos] =
          //                               [7_______]
          //           [____________________0]
            ((((int)in[49 + inPos]) >>  7) & 1)
        | //                               [76543210]
          //                   [____________87654321_]
            ((((int)in[50 + inPos]) <<  1) & 511)
        | //                               [76543210]
          //                           [____65432109_________]
            ((((int)in[51 + inPos]) <<  9) & 131071)
        | //                               [____3210]
          //                                   [0987_________________]
            ((((int)in[52 + inPos]) <<  17) & 2097151);
      out[20 + outPos] =
          //                               [7654____]
          //              [_________________3210]
            ((((int)in[52 + inPos]) >>  4) & 15)
        | //                               [76543210]
          //                      [_________10987654____]
            ((((int)in[53 + inPos]) <<  4) & 4095)
        | //                               [76543210]
          //                              [_98765432____________]
            ((((int)in[54 + inPos]) <<  12) & 1048575)
        | //                               [_______0]
          //                                      [0____________________]
            ((((int)in[55 + inPos]) <<  20) & 2097151);
      out[21 + outPos] =
          //                               [7654321_]
          //                 [______________6543210]
            ((((int)in[55 + inPos]) >>  1) & 127)
        | //                               [76543210]
          //                         [______43210987_______]
            ((((int)in[56 + inPos]) <<  7) & 32767)
        | //                               [__543210]
          //                                 [098765_______________]
            ((((int)in[57 + inPos]) <<  15) & 2097151);
      out[22 + outPos] =
          //                               [76______]
          //            [___________________10]
            ((((int)in[57 + inPos]) >>  6) & 3)
        | //                               [76543210]
          //                    [___________98765432__]
            ((((int)in[58 + inPos]) <<  2) & 1023)
        | //                               [76543210]
          //                            [___76543210__________]
            ((((int)in[59 + inPos]) <<  10) & 262143)
        | //                               [_____210]
          //                                    [098__________________]
            ((((int)in[60 + inPos]) <<  18) & 2097151);
      out[23 + outPos] =
          //                               [76543___]
          //               [________________43210]
            ((((int)in[60 + inPos]) >>  3) & 31)
        | //                               [76543210]
          //                       [________21098765_____]
            ((((int)in[61 + inPos]) <<  5) & 8191)
        | //                               [76543210]
          //                               [09876543_____________]
            ((((int)in[62 + inPos]) <<  13) & 2097151);
      out[24 + outPos] =
          //                               [76543210]
          //                  [_____________76543210]
            ((((int)in[63 + inPos]) ) & 255)
        | //                               [76543210]
          //                          [_____54321098________]
            ((((int)in[64 + inPos]) <<  8) & 65535)
        | //                               [___43210]
          //                                  [09876________________]
            ((((int)in[65 + inPos]) <<  16) & 2097151);
      out[25 + outPos] =
          //                               [765_____]
          //             [__________________210]
            ((((int)in[65 + inPos]) >>  5) & 7)
        | //                               [76543210]
          //                     [__________09876543___]
            ((((int)in[66 + inPos]) <<  3) & 2047)
        | //                               [76543210]
          //                             [__87654321___________]
            ((((int)in[67 + inPos]) <<  11) & 524287)
        | //                               [______10]
          //                                     [09___________________]
            ((((int)in[68 + inPos]) <<  19) & 2097151);
      out[26 + outPos] =
          //                               [765432__]
          //                [_______________543210]
            ((((int)in[68 + inPos]) >>  2) & 63)
        | //                               [76543210]
          //                        [_______32109876______]
            ((((int)in[69 + inPos]) <<  6) & 16383)
        | //                               [_6543210]
          //                                [0987654______________]
            ((((int)in[70 + inPos]) <<  14) & 2097151);
      out[27 + outPos] =
          //                               [7_______]
          //           [____________________0]
            ((((int)in[70 + inPos]) >>  7) & 1)
        | //                               [76543210]
          //                   [____________87654321_]
            ((((int)in[71 + inPos]) <<  1) & 511)
        | //                               [76543210]
          //                           [____65432109_________]
            ((((int)in[72 + inPos]) <<  9) & 131071)
        | //                               [____3210]
          //                                   [0987_________________]
            ((((int)in[73 + inPos]) <<  17) & 2097151);
      out[28 + outPos] =
          //                               [7654____]
          //              [_________________3210]
            ((((int)in[73 + inPos]) >>  4) & 15)
        | //                               [76543210]
          //                      [_________10987654____]
            ((((int)in[74 + inPos]) <<  4) & 4095)
        | //                               [76543210]
          //                              [_98765432____________]
            ((((int)in[75 + inPos]) <<  12) & 1048575)
        | //                               [_______0]
          //                                      [0____________________]
            ((((int)in[76 + inPos]) <<  20) & 2097151);
      out[29 + outPos] =
          //                               [7654321_]
          //                 [______________6543210]
            ((((int)in[76 + inPos]) >>  1) & 127)
        | //                               [76543210]
          //                         [______43210987_______]
            ((((int)in[77 + inPos]) <<  7) & 32767)
        | //                               [__543210]
          //                                 [098765_______________]
            ((((int)in[78 + inPos]) <<  15) & 2097151);
      out[30 + outPos] =
          //                               [76______]
          //            [___________________10]
            ((((int)in[78 + inPos]) >>  6) & 3)
        | //                               [76543210]
          //                    [___________98765432__]
            ((((int)in[79 + inPos]) <<  2) & 1023)
        | //                               [76543210]
          //                            [___76543210__________]
            ((((int)in[80 + inPos]) <<  10) & 262143)
        | //                               [_____210]
          //                                    [098__________________]
            ((((int)in[81 + inPos]) <<  18) & 2097151);
      out[31 + outPos] =
          //                               [76543___]
          //               [________________43210]
            ((((int)in[81 + inPos]) >>  3) & 31)
        | //                               [76543210]
          //                       [________21098765_____]
            ((((int)in[82 + inPos]) <<  5) & 8191)
        | //                               [76543210]
          //                               [09876543_____________]
            ((((int)in[83 + inPos]) <<  13) & 2097151);
    }
    public final void unpack32Values(final ByteBuffer in, final int inPos, final int[] out, final int outPos) {
      out[ 0 + outPos] =
          //                               [76543210]
          //                  [_____________76543210]
            ((((int)in.get( 0 + inPos)) ) & 255)
        | //                               [76543210]
          //                          [_____54321098________]
            ((((int)in.get( 1 + inPos)) <<  8) & 65535)
        | //                               [___43210]
          //                                  [09876________________]
            ((((int)in.get( 2 + inPos)) <<  16) & 2097151);
      out[ 1 + outPos] =
          //                               [765_____]
          //             [__________________210]
            ((((int)in.get( 2 + inPos)) >>  5) & 7)
        | //                               [76543210]
          //                     [__________09876543___]
            ((((int)in.get( 3 + inPos)) <<  3) & 2047)
        | //                               [76543210]
          //                             [__87654321___________]
            ((((int)in.get( 4 + inPos)) <<  11) & 524287)
        | //                               [______10]
          //                                     [09___________________]
            ((((int)in.get( 5 + inPos)) <<  19) & 2097151);
      out[ 2 + outPos] =
          //                               [765432__]
          //                [_______________543210]
            ((((int)in.get( 5 + inPos)) >>  2) & 63)
        | //                               [76543210]
          //                        [_______32109876______]
            ((((int)in.get( 6 + inPos)) <<  6) & 16383)
        | //                               [_6543210]
          //                                [0987654______________]
            ((((int)in.get( 7 + inPos)) <<  14) & 2097151);
      out[ 3 + outPos] =
          //                               [7_______]
          //           [____________________0]
            ((((int)in.get( 7 + inPos)) >>  7) & 1)
        | //                               [76543210]
          //                   [____________87654321_]
            ((((int)in.get( 8 + inPos)) <<  1) & 511)
        | //                               [76543210]
          //                           [____65432109_________]
            ((((int)in.get( 9 + inPos)) <<  9) & 131071)
        | //                               [____3210]
          //                                   [0987_________________]
            ((((int)in.get(10 + inPos)) <<  17) & 2097151);
      out[ 4 + outPos] =
          //                               [7654____]
          //              [_________________3210]
            ((((int)in.get(10 + inPos)) >>  4) & 15)
        | //                               [76543210]
          //                      [_________10987654____]
            ((((int)in.get(11 + inPos)) <<  4) & 4095)
        | //                               [76543210]
          //                              [_98765432____________]
            ((((int)in.get(12 + inPos)) <<  12) & 1048575)
        | //                               [_______0]
          //                                      [0____________________]
            ((((int)in.get(13 + inPos)) <<  20) & 2097151);
      out[ 5 + outPos] =
          //                               [7654321_]
          //                 [______________6543210]
            ((((int)in.get(13 + inPos)) >>  1) & 127)
        | //                               [76543210]
          //                         [______43210987_______]
            ((((int)in.get(14 + inPos)) <<  7) & 32767)
        | //                               [__543210]
          //                                 [098765_______________]
            ((((int)in.get(15 + inPos)) <<  15) & 2097151);
      out[ 6 + outPos] =
          //                               [76______]
          //            [___________________10]
            ((((int)in.get(15 + inPos)) >>  6) & 3)
        | //                               [76543210]
          //                    [___________98765432__]
            ((((int)in.get(16 + inPos)) <<  2) & 1023)
        | //                               [76543210]
          //                            [___76543210__________]
            ((((int)in.get(17 + inPos)) <<  10) & 262143)
        | //                               [_____210]
          //                                    [098__________________]
            ((((int)in.get(18 + inPos)) <<  18) & 2097151);
      out[ 7 + outPos] =
          //                               [76543___]
          //               [________________43210]
            ((((int)in.get(18 + inPos)) >>  3) & 31)
        | //                               [76543210]
          //                       [________21098765_____]
            ((((int)in.get(19 + inPos)) <<  5) & 8191)
        | //                               [76543210]
          //                               [09876543_____________]
            ((((int)in.get(20 + inPos)) <<  13) & 2097151);
      out[ 8 + outPos] =
          //                               [76543210]
          //                  [_____________76543210]
            ((((int)in.get(21 + inPos)) ) & 255)
        | //                               [76543210]
          //                          [_____54321098________]
            ((((int)in.get(22 + inPos)) <<  8) & 65535)
        | //                               [___43210]
          //                                  [09876________________]
            ((((int)in.get(23 + inPos)) <<  16) & 2097151);
      out[ 9 + outPos] =
          //                               [765_____]
          //             [__________________210]
            ((((int)in.get(23 + inPos)) >>  5) & 7)
        | //                               [76543210]
          //                     [__________09876543___]
            ((((int)in.get(24 + inPos)) <<  3) & 2047)
        | //                               [76543210]
          //                             [__87654321___________]
            ((((int)in.get(25 + inPos)) <<  11) & 524287)
        | //                               [______10]
          //                                     [09___________________]
            ((((int)in.get(26 + inPos)) <<  19) & 2097151);
      out[10 + outPos] =
          //                               [765432__]
          //                [_______________543210]
            ((((int)in.get(26 + inPos)) >>  2) & 63)
        | //                               [76543210]
          //                        [_______32109876______]
            ((((int)in.get(27 + inPos)) <<  6) & 16383)
        | //                               [_6543210]
          //                                [0987654______________]
            ((((int)in.get(28 + inPos)) <<  14) & 2097151);
      out[11 + outPos] =
          //                               [7_______]
          //           [____________________0]
            ((((int)in.get(28 + inPos)) >>  7) & 1)
        | //                               [76543210]
          //                   [____________87654321_]
            ((((int)in.get(29 + inPos)) <<  1) & 511)
        | //                               [76543210]
          //                           [____65432109_________]
            ((((int)in.get(30 + inPos)) <<  9) & 131071)
        | //                               [____3210]
          //                                   [0987_________________]
            ((((int)in.get(31 + inPos)) <<  17) & 2097151);
      out[12 + outPos] =
          //                               [7654____]
          //              [_________________3210]
            ((((int)in.get(31 + inPos)) >>  4) & 15)
        | //                               [76543210]
          //                      [_________10987654____]
            ((((int)in.get(32 + inPos)) <<  4) & 4095)
        | //                               [76543210]
          //                              [_98765432____________]
            ((((int)in.get(33 + inPos)) <<  12) & 1048575)
        | //                               [_______0]
          //                                      [0____________________]
            ((((int)in.get(34 + inPos)) <<  20) & 2097151);
      out[13 + outPos] =
          //                               [7654321_]
          //                 [______________6543210]
            ((((int)in.get(34 + inPos)) >>  1) & 127)
        | //                               [76543210]
          //                         [______43210987_______]
            ((((int)in.get(35 + inPos)) <<  7) & 32767)
        | //                               [__543210]
          //                                 [098765_______________]
            ((((int)in.get(36 + inPos)) <<  15) & 2097151);
      out[14 + outPos] =
          //                               [76______]
          //            [___________________10]
            ((((int)in.get(36 + inPos)) >>  6) & 3)
        | //                               [76543210]
          //                    [___________98765432__]
            ((((int)in.get(37 + inPos)) <<  2) & 1023)
        | //                               [76543210]
          //                            [___76543210__________]
            ((((int)in.get(38 + inPos)) <<  10) & 262143)
        | //                               [_____210]
          //                                    [098__________________]
            ((((int)in.get(39 + inPos)) <<  18) & 2097151);
      out[15 + outPos] =
          //                               [76543___]
          //               [________________43210]
            ((((int)in.get(39 + inPos)) >>  3) & 31)
        | //                               [76543210]
          //                       [________21098765_____]
            ((((int)in.get(40 + inPos)) <<  5) & 8191)
        | //                               [76543210]
          //                               [09876543_____________]
            ((((int)in.get(41 + inPos)) <<  13) & 2097151);
      out[16 + outPos] =
          //                               [76543210]
          //                  [_____________76543210]
            ((((int)in.get(42 + inPos)) ) & 255)
        | //                               [76543210]
          //                          [_____54321098________]
            ((((int)in.get(43 + inPos)) <<  8) & 65535)
        | //                               [___43210]
          //                                  [09876________________]
            ((((int)in.get(44 + inPos)) <<  16) & 2097151);
      out[17 + outPos] =
          //                               [765_____]
          //             [__________________210]
            ((((int)in.get(44 + inPos)) >>  5) & 7)
        | //                               [76543210]
          //                     [__________09876543___]
            ((((int)in.get(45 + inPos)) <<  3) & 2047)
        | //                               [76543210]
          //                             [__87654321___________]
            ((((int)in.get(46 + inPos)) <<  11) & 524287)
        | //                               [______10]
          //                                     [09___________________]
            ((((int)in.get(47 + inPos)) <<  19) & 2097151);
      out[18 + outPos] =
          //                               [765432__]
          //                [_______________543210]
            ((((int)in.get(47 + inPos)) >>  2) & 63)
        | //                               [76543210]
          //                        [_______32109876______]
            ((((int)in.get(48 + inPos)) <<  6) & 16383)
        | //                               [_6543210]
          //                                [0987654______________]
            ((((int)in.get(49 + inPos)) <<  14) & 2097151);
      out[19 + outPos] =
          //                               [7_______]
          //           [____________________0]
            ((((int)in.get(49 + inPos)) >>  7) & 1)
        | //                               [76543210]
          //                   [____________87654321_]
            ((((int)in.get(50 + inPos)) <<  1) & 511)
        | //                               [76543210]
          //                           [____65432109_________]
            ((((int)in.get(51 + inPos)) <<  9) & 131071)
        | //                               [____3210]
          //                                   [0987_________________]
            ((((int)in.get(52 + inPos)) <<  17) & 2097151);
      out[20 + outPos] =
          //                               [7654____]
          //              [_________________3210]
            ((((int)in.get(52 + inPos)) >>  4) & 15)
        | //                               [76543210]
          //                      [_________10987654____]
            ((((int)in.get(53 + inPos)) <<  4) & 4095)
        | //                               [76543210]
          //                              [_98765432____________]
            ((((int)in.get(54 + inPos)) <<  12) & 1048575)
        | //                               [_______0]
          //                                      [0____________________]
            ((((int)in.get(55 + inPos)) <<  20) & 2097151);
      out[21 + outPos] =
          //                               [7654321_]
          //                 [______________6543210]
            ((((int)in.get(55 + inPos)) >>  1) & 127)
        | //                               [76543210]
          //                         [______43210987_______]
            ((((int)in.get(56 + inPos)) <<  7) & 32767)
        | //                               [__543210]
          //                                 [098765_______________]
            ((((int)in.get(57 + inPos)) <<  15) & 2097151);
      out[22 + outPos] =
          //                               [76______]
          //            [___________________10]
            ((((int)in.get(57 + inPos)) >>  6) & 3)
        | //                               [76543210]
          //                    [___________98765432__]
            ((((int)in.get(58 + inPos)) <<  2) & 1023)
        | //                               [76543210]
          //                            [___76543210__________]
            ((((int)in.get(59 + inPos)) <<  10) & 262143)
        | //                               [_____210]
          //                                    [098__________________]
            ((((int)in.get(60 + inPos)) <<  18) & 2097151);
      out[23 + outPos] =
          //                               [76543___]
          //               [________________43210]
            ((((int)in.get(60 + inPos)) >>  3) & 31)
        | //                               [76543210]
          //                       [________21098765_____]
            ((((int)in.get(61 + inPos)) <<  5) & 8191)
        | //                               [76543210]
          //                               [09876543_____________]
            ((((int)in.get(62 + inPos)) <<  13) & 2097151);
      out[24 + outPos] =
          //                               [76543210]
          //                  [_____________76543210]
            ((((int)in.get(63 + inPos)) ) & 255)
        | //                               [76543210]
          //                          [_____54321098________]
            ((((int)in.get(64 + inPos)) <<  8) & 65535)
        | //                               [___43210]
          //                                  [09876________________]
            ((((int)in.get(65 + inPos)) <<  16) & 2097151);
      out[25 + outPos] =
          //                               [765_____]
          //             [__________________210]
            ((((int)in.get(65 + inPos)) >>  5) & 7)
        | //                               [76543210]
          //                     [__________09876543___]
            ((((int)in.get(66 + inPos)) <<  3) & 2047)
        | //                               [76543210]
          //                             [__87654321___________]
            ((((int)in.get(67 + inPos)) <<  11) & 524287)
        | //                               [______10]
          //                                     [09___________________]
            ((((int)in.get(68 + inPos)) <<  19) & 2097151);
      out[26 + outPos] =
          //                               [765432__]
          //                [_______________543210]
            ((((int)in.get(68 + inPos)) >>  2) & 63)
        | //                               [76543210]
          //                        [_______32109876______]
            ((((int)in.get(69 + inPos)) <<  6) & 16383)
        | //                               [_6543210]
          //                                [0987654______________]
            ((((int)in.get(70 + inPos)) <<  14) & 2097151);
      out[27 + outPos] =
          //                               [7_______]
          //           [____________________0]
            ((((int)in.get(70 + inPos)) >>  7) & 1)
        | //                               [76543210]
          //                   [____________87654321_]
            ((((int)in.get(71 + inPos)) <<  1) & 511)
        | //                               [76543210]
          //                           [____65432109_________]
            ((((int)in.get(72 + inPos)) <<  9) & 131071)
        | //                               [____3210]
          //                                   [0987_________________]
            ((((int)in.get(73 + inPos)) <<  17) & 2097151);
      out[28 + outPos] =
          //                               [7654____]
          //              [_________________3210]
            ((((int)in.get(73 + inPos)) >>  4) & 15)
        | //                               [76543210]
          //                      [_________10987654____]
            ((((int)in.get(74 + inPos)) <<  4) & 4095)
        | //                               [76543210]
          //                              [_98765432____________]
            ((((int)in.get(75 + inPos)) <<  12) & 1048575)
        | //                               [_______0]
          //                                      [0____________________]
            ((((int)in.get(76 + inPos)) <<  20) & 2097151);
      out[29 + outPos] =
          //                               [7654321_]
          //                 [______________6543210]
            ((((int)in.get(76 + inPos)) >>  1) & 127)
        | //                               [76543210]
          //                         [______43210987_______]
            ((((int)in.get(77 + inPos)) <<  7) & 32767)
        | //                               [__543210]
          //                                 [098765_______________]
            ((((int)in.get(78 + inPos)) <<  15) & 2097151);
      out[30 + outPos] =
          //                               [76______]
          //            [___________________10]
            ((((int)in.get(78 + inPos)) >>  6) & 3)
        | //                               [76543210]
          //                    [___________98765432__]
            ((((int)in.get(79 + inPos)) <<  2) & 1023)
        | //                               [76543210]
          //                            [___76543210__________]
            ((((int)in.get(80 + inPos)) <<  10) & 262143)
        | //                               [_____210]
          //                                    [098__________________]
            ((((int)in.get(81 + inPos)) <<  18) & 2097151);
      out[31 + outPos] =
          //                               [76543___]
          //               [________________43210]
            ((((int)in.get(81 + inPos)) >>  3) & 31)
        | //                               [76543210]
          //                       [________21098765_____]
            ((((int)in.get(82 + inPos)) <<  5) & 8191)
        | //                               [76543210]
          //                               [09876543_____________]
            ((((int)in.get(83 + inPos)) <<  13) & 2097151);
    }
  }

  private static final class Packer22 extends BytePacker {

    private Packer22() {
      super(22);
    }

    public final void pack8Values(final int[] in, final int inPos, final byte[] out, final int outPos) {
      out[ 0 + outPos] = (byte)((
          //                                [76543210]
          //                  [______________76543210]
           ((in[ 0 + inPos] & 4194303))) & 255);
      out[ 1 + outPos] = (byte)((
          //                                [76543210]
          //                          [______54321098________]
           ((in[ 0 + inPos] & 4194303) >>> 8)) & 255);
      out[ 2 + outPos] = (byte)((
          //                                [__543210]
          //                                  [109876________________]
           ((in[ 0 + inPos] & 4194303) >>> 16)
        | //                                [76______]
          //            [____________________10]
           ((in[ 1 + inPos] & 4194303) <<  6)) & 255);
      out[ 3 + outPos] = (byte)((
          //                                [76543210]
          //                    [____________98765432__]
           ((in[ 1 + inPos] & 4194303) >>> 2)) & 255);
      out[ 4 + outPos] = (byte)((
          //                                [76543210]
          //                            [____76543210__________]
           ((in[ 1 + inPos] & 4194303) >>> 10)) & 255);
      out[ 5 + outPos] = (byte)((
          //                                [____3210]
          //                                    [1098__________________]
           ((in[ 1 + inPos] & 4194303) >>> 18)
        | //                                [7654____]
          //              [__________________3210]
           ((in[ 2 + inPos] & 4194303) <<  4)) & 255);
      out[ 6 + outPos] = (byte)((
          //                                [76543210]
          //                      [__________10987654____]
           ((in[ 2 + inPos] & 4194303) >>> 4)) & 255);
      out[ 7 + outPos] = (byte)((
          //                                [76543210]
          //                              [__98765432____________]
           ((in[ 2 + inPos] & 4194303) >>> 12)) & 255);
      out[ 8 + outPos] = (byte)((
          //                                [______10]
          //                                      [10____________________]
           ((in[ 2 + inPos] & 4194303) >>> 20)
        | //                                [765432__]
          //                [________________543210]
           ((in[ 3 + inPos] & 4194303) <<  2)) & 255);
      out[ 9 + outPos] = (byte)((
          //                                [76543210]
          //                        [________32109876______]
           ((in[ 3 + inPos] & 4194303) >>> 6)) & 255);
      out[10 + outPos] = (byte)((
          //                                [76543210]
          //                                [10987654______________]
           ((in[ 3 + inPos] & 4194303) >>> 14)) & 255);
      out[11 + outPos] = (byte)((
          //                                [76543210]
          //                  [______________76543210]
           ((in[ 4 + inPos] & 4194303))) & 255);
      out[12 + outPos] = (byte)((
          //                                [76543210]
          //                          [______54321098________]
           ((in[ 4 + inPos] & 4194303) >>> 8)) & 255);
      out[13 + outPos] = (byte)((
          //                                [__543210]
          //                                  [109876________________]
           ((in[ 4 + inPos] & 4194303) >>> 16)
        | //                                [76______]
          //            [____________________10]
           ((in[ 5 + inPos] & 4194303) <<  6)) & 255);
      out[14 + outPos] = (byte)((
          //                                [76543210]
          //                    [____________98765432__]
           ((in[ 5 + inPos] & 4194303) >>> 2)) & 255);
      out[15 + outPos] = (byte)((
          //                                [76543210]
          //                            [____76543210__________]
           ((in[ 5 + inPos] & 4194303) >>> 10)) & 255);
      out[16 + outPos] = (byte)((
          //                                [____3210]
          //                                    [1098__________________]
           ((in[ 5 + inPos] & 4194303) >>> 18)
        | //                                [7654____]
          //              [__________________3210]
           ((in[ 6 + inPos] & 4194303) <<  4)) & 255);
      out[17 + outPos] = (byte)((
          //                                [76543210]
          //                      [__________10987654____]
           ((in[ 6 + inPos] & 4194303) >>> 4)) & 255);
      out[18 + outPos] = (byte)((
          //                                [76543210]
          //                              [__98765432____________]
           ((in[ 6 + inPos] & 4194303) >>> 12)) & 255);
      out[19 + outPos] = (byte)((
          //                                [______10]
          //                                      [10____________________]
           ((in[ 6 + inPos] & 4194303) >>> 20)
        | //                                [765432__]
          //                [________________543210]
           ((in[ 7 + inPos] & 4194303) <<  2)) & 255);
      out[20 + outPos] = (byte)((
          //                                [76543210]
          //                        [________32109876______]
           ((in[ 7 + inPos] & 4194303) >>> 6)) & 255);
      out[21 + outPos] = (byte)((
          //                                [76543210]
          //                                [10987654______________]
           ((in[ 7 + inPos] & 4194303) >>> 14)) & 255);
    }
    public final void pack32Values(final int[] in, final int inPos, final byte[] out, final int outPos) {
      out[ 0 + outPos] = (byte)((
          //                                [76543210]
          //                  [______________76543210]
           ((in[ 0 + inPos] & 4194303))) & 255);
      out[ 1 + outPos] = (byte)((
          //                                [76543210]
          //                          [______54321098________]
           ((in[ 0 + inPos] & 4194303) >>> 8)) & 255);
      out[ 2 + outPos] = (byte)((
          //                                [__543210]
          //                                  [109876________________]
           ((in[ 0 + inPos] & 4194303) >>> 16)
        | //                                [76______]
          //            [____________________10]
           ((in[ 1 + inPos] & 4194303) <<  6)) & 255);
      out[ 3 + outPos] = (byte)((
          //                                [76543210]
          //                    [____________98765432__]
           ((in[ 1 + inPos] & 4194303) >>> 2)) & 255);
      out[ 4 + outPos] = (byte)((
          //                                [76543210]
          //                            [____76543210__________]
           ((in[ 1 + inPos] & 4194303) >>> 10)) & 255);
      out[ 5 + outPos] = (byte)((
          //                                [____3210]
          //                                    [1098__________________]
           ((in[ 1 + inPos] & 4194303) >>> 18)
        | //                                [7654____]
          //              [__________________3210]
           ((in[ 2 + inPos] & 4194303) <<  4)) & 255);
      out[ 6 + outPos] = (byte)((
          //                                [76543210]
          //                      [__________10987654____]
           ((in[ 2 + inPos] & 4194303) >>> 4)) & 255);
      out[ 7 + outPos] = (byte)((
          //                                [76543210]
          //                              [__98765432____________]
           ((in[ 2 + inPos] & 4194303) >>> 12)) & 255);
      out[ 8 + outPos] = (byte)((
          //                                [______10]
          //                                      [10____________________]
           ((in[ 2 + inPos] & 4194303) >>> 20)
        | //                                [765432__]
          //                [________________543210]
           ((in[ 3 + inPos] & 4194303) <<  2)) & 255);
      out[ 9 + outPos] = (byte)((
          //                                [76543210]
          //                        [________32109876______]
           ((in[ 3 + inPos] & 4194303) >>> 6)) & 255);
      out[10 + outPos] = (byte)((
          //                                [76543210]
          //                                [10987654______________]
           ((in[ 3 + inPos] & 4194303) >>> 14)) & 255);
      out[11 + outPos] = (byte)((
          //                                [76543210]
          //                  [______________76543210]
           ((in[ 4 + inPos] & 4194303))) & 255);
      out[12 + outPos] = (byte)((
          //                                [76543210]
          //                          [______54321098________]
           ((in[ 4 + inPos] & 4194303) >>> 8)) & 255);
      out[13 + outPos] = (byte)((
          //                                [__543210]
          //                                  [109876________________]
           ((in[ 4 + inPos] & 4194303) >>> 16)
        | //                                [76______]
          //            [____________________10]
           ((in[ 5 + inPos] & 4194303) <<  6)) & 255);
      out[14 + outPos] = (byte)((
          //                                [76543210]
          //                    [____________98765432__]
           ((in[ 5 + inPos] & 4194303) >>> 2)) & 255);
      out[15 + outPos] = (byte)((
          //                                [76543210]
          //                            [____76543210__________]
           ((in[ 5 + inPos] & 4194303) >>> 10)) & 255);
      out[16 + outPos] = (byte)((
          //                                [____3210]
          //                                    [1098__________________]
           ((in[ 5 + inPos] & 4194303) >>> 18)
        | //                                [7654____]
          //              [__________________3210]
           ((in[ 6 + inPos] & 4194303) <<  4)) & 255);
      out[17 + outPos] = (byte)((
          //                                [76543210]
          //                      [__________10987654____]
           ((in[ 6 + inPos] & 4194303) >>> 4)) & 255);
      out[18 + outPos] = (byte)((
          //                                [76543210]
          //                              [__98765432____________]
           ((in[ 6 + inPos] & 4194303) >>> 12)) & 255);
      out[19 + outPos] = (byte)((
          //                                [______10]
          //                                      [10____________________]
           ((in[ 6 + inPos] & 4194303) >>> 20)
        | //                                [765432__]
          //                [________________543210]
           ((in[ 7 + inPos] & 4194303) <<  2)) & 255);
      out[20 + outPos] = (byte)((
          //                                [76543210]
          //                        [________32109876______]
           ((in[ 7 + inPos] & 4194303) >>> 6)) & 255);
      out[21 + outPos] = (byte)((
          //                                [76543210]
          //                                [10987654______________]
           ((in[ 7 + inPos] & 4194303) >>> 14)) & 255);
      out[22 + outPos] = (byte)((
          //                                [76543210]
          //                  [______________76543210]
           ((in[ 8 + inPos] & 4194303))) & 255);
      out[23 + outPos] = (byte)((
          //                                [76543210]
          //                          [______54321098________]
           ((in[ 8 + inPos] & 4194303) >>> 8)) & 255);
      out[24 + outPos] = (byte)((
          //                                [__543210]
          //                                  [109876________________]
           ((in[ 8 + inPos] & 4194303) >>> 16)
        | //                                [76______]
          //            [____________________10]
           ((in[ 9 + inPos] & 4194303) <<  6)) & 255);
      out[25 + outPos] = (byte)((
          //                                [76543210]
          //                    [____________98765432__]
           ((in[ 9 + inPos] & 4194303) >>> 2)) & 255);
      out[26 + outPos] = (byte)((
          //                                [76543210]
          //                            [____76543210__________]
           ((in[ 9 + inPos] & 4194303) >>> 10)) & 255);
      out[27 + outPos] = (byte)((
          //                                [____3210]
          //                                    [1098__________________]
           ((in[ 9 + inPos] & 4194303) >>> 18)
        | //                                [7654____]
          //              [__________________3210]
           ((in[10 + inPos] & 4194303) <<  4)) & 255);
      out[28 + outPos] = (byte)((
          //                                [76543210]
          //                      [__________10987654____]
           ((in[10 + inPos] & 4194303) >>> 4)) & 255);
      out[29 + outPos] = (byte)((
          //                                [76543210]
          //                              [__98765432____________]
           ((in[10 + inPos] & 4194303) >>> 12)) & 255);
      out[30 + outPos] = (byte)((
          //                                [______10]
          //                                      [10____________________]
           ((in[10 + inPos] & 4194303) >>> 20)
        | //                                [765432__]
          //                [________________543210]
           ((in[11 + inPos] & 4194303) <<  2)) & 255);
      out[31 + outPos] = (byte)((
          //                                [76543210]
          //                        [________32109876______]
           ((in[11 + inPos] & 4194303) >>> 6)) & 255);
      out[32 + outPos] = (byte)((
          //                                [76543210]
          //                                [10987654______________]
           ((in[11 + inPos] & 4194303) >>> 14)) & 255);
      out[33 + outPos] = (byte)((
          //                                [76543210]
          //                  [______________76543210]
           ((in[12 + inPos] & 4194303))) & 255);
      out[34 + outPos] = (byte)((
          //                                [76543210]
          //                          [______54321098________]
           ((in[12 + inPos] & 4194303) >>> 8)) & 255);
      out[35 + outPos] = (byte)((
          //                                [__543210]
          //                                  [109876________________]
           ((in[12 + inPos] & 4194303) >>> 16)
        | //                                [76______]
          //            [____________________10]
           ((in[13 + inPos] & 4194303) <<  6)) & 255);
      out[36 + outPos] = (byte)((
          //                                [76543210]
          //                    [____________98765432__]
           ((in[13 + inPos] & 4194303) >>> 2)) & 255);
      out[37 + outPos] = (byte)((
          //                                [76543210]
          //                            [____76543210__________]
           ((in[13 + inPos] & 4194303) >>> 10)) & 255);
      out[38 + outPos] = (byte)((
          //                                [____3210]
          //                                    [1098__________________]
           ((in[13 + inPos] & 4194303) >>> 18)
        | //                                [7654____]
          //              [__________________3210]
           ((in[14 + inPos] & 4194303) <<  4)) & 255);
      out[39 + outPos] = (byte)((
          //                                [76543210]
          //                      [__________10987654____]
           ((in[14 + inPos] & 4194303) >>> 4)) & 255);
      out[40 + outPos] = (byte)((
          //                                [76543210]
          //                              [__98765432____________]
           ((in[14 + inPos] & 4194303) >>> 12)) & 255);
      out[41 + outPos] = (byte)((
          //                                [______10]
          //                                      [10____________________]
           ((in[14 + inPos] & 4194303) >>> 20)
        | //                                [765432__]
          //                [________________543210]
           ((in[15 + inPos] & 4194303) <<  2)) & 255);
      out[42 + outPos] = (byte)((
          //                                [76543210]
          //                        [________32109876______]
           ((in[15 + inPos] & 4194303) >>> 6)) & 255);
      out[43 + outPos] = (byte)((
          //                                [76543210]
          //                                [10987654______________]
           ((in[15 + inPos] & 4194303) >>> 14)) & 255);
      out[44 + outPos] = (byte)((
          //                                [76543210]
          //                  [______________76543210]
           ((in[16 + inPos] & 4194303))) & 255);
      out[45 + outPos] = (byte)((
          //                                [76543210]
          //                          [______54321098________]
           ((in[16 + inPos] & 4194303) >>> 8)) & 255);
      out[46 + outPos] = (byte)((
          //                                [__543210]
          //                                  [109876________________]
           ((in[16 + inPos] & 4194303) >>> 16)
        | //                                [76______]
          //            [____________________10]
           ((in[17 + inPos] & 4194303) <<  6)) & 255);
      out[47 + outPos] = (byte)((
          //                                [76543210]
          //                    [____________98765432__]
           ((in[17 + inPos] & 4194303) >>> 2)) & 255);
      out[48 + outPos] = (byte)((
          //                                [76543210]
          //                            [____76543210__________]
           ((in[17 + inPos] & 4194303) >>> 10)) & 255);
      out[49 + outPos] = (byte)((
          //                                [____3210]
          //                                    [1098__________________]
           ((in[17 + inPos] & 4194303) >>> 18)
        | //                                [7654____]
          //              [__________________3210]
           ((in[18 + inPos] & 4194303) <<  4)) & 255);
      out[50 + outPos] = (byte)((
          //                                [76543210]
          //                      [__________10987654____]
           ((in[18 + inPos] & 4194303) >>> 4)) & 255);
      out[51 + outPos] = (byte)((
          //                                [76543210]
          //                              [__98765432____________]
           ((in[18 + inPos] & 4194303) >>> 12)) & 255);
      out[52 + outPos] = (byte)((
          //                                [______10]
          //                                      [10____________________]
           ((in[18 + inPos] & 4194303) >>> 20)
        | //                                [765432__]
          //                [________________543210]
           ((in[19 + inPos] & 4194303) <<  2)) & 255);
      out[53 + outPos] = (byte)((
          //                                [76543210]
          //                        [________32109876______]
           ((in[19 + inPos] & 4194303) >>> 6)) & 255);
      out[54 + outPos] = (byte)((
          //                                [76543210]
          //                                [10987654______________]
           ((in[19 + inPos] & 4194303) >>> 14)) & 255);
      out[55 + outPos] = (byte)((
          //                                [76543210]
          //                  [______________76543210]
           ((in[20 + inPos] & 4194303))) & 255);
      out[56 + outPos] = (byte)((
          //                                [76543210]
          //                          [______54321098________]
           ((in[20 + inPos] & 4194303) >>> 8)) & 255);
      out[57 + outPos] = (byte)((
          //                                [__543210]
          //                                  [109876________________]
           ((in[20 + inPos] & 4194303) >>> 16)
        | //                                [76______]
          //            [____________________10]
           ((in[21 + inPos] & 4194303) <<  6)) & 255);
      out[58 + outPos] = (byte)((
          //                                [76543210]
          //                    [____________98765432__]
           ((in[21 + inPos] & 4194303) >>> 2)) & 255);
      out[59 + outPos] = (byte)((
          //                                [76543210]
          //                            [____76543210__________]
           ((in[21 + inPos] & 4194303) >>> 10)) & 255);
      out[60 + outPos] = (byte)((
          //                                [____3210]
          //                                    [1098__________________]
           ((in[21 + inPos] & 4194303) >>> 18)
        | //                                [7654____]
          //              [__________________3210]
           ((in[22 + inPos] & 4194303) <<  4)) & 255);
      out[61 + outPos] = (byte)((
          //                                [76543210]
          //                      [__________10987654____]
           ((in[22 + inPos] & 4194303) >>> 4)) & 255);
      out[62 + outPos] = (byte)((
          //                                [76543210]
          //                              [__98765432____________]
           ((in[22 + inPos] & 4194303) >>> 12)) & 255);
      out[63 + outPos] = (byte)((
          //                                [______10]
          //                                      [10____________________]
           ((in[22 + inPos] & 4194303) >>> 20)
        | //                                [765432__]
          //                [________________543210]
           ((in[23 + inPos] & 4194303) <<  2)) & 255);
      out[64 + outPos] = (byte)((
          //                                [76543210]
          //                        [________32109876______]
           ((in[23 + inPos] & 4194303) >>> 6)) & 255);
      out[65 + outPos] = (byte)((
          //                                [76543210]
          //                                [10987654______________]
           ((in[23 + inPos] & 4194303) >>> 14)) & 255);
      out[66 + outPos] = (byte)((
          //                                [76543210]
          //                  [______________76543210]
           ((in[24 + inPos] & 4194303))) & 255);
      out[67 + outPos] = (byte)((
          //                                [76543210]
          //                          [______54321098________]
           ((in[24 + inPos] & 4194303) >>> 8)) & 255);
      out[68 + outPos] = (byte)((
          //                                [__543210]
          //                                  [109876________________]
           ((in[24 + inPos] & 4194303) >>> 16)
        | //                                [76______]
          //            [____________________10]
           ((in[25 + inPos] & 4194303) <<  6)) & 255);
      out[69 + outPos] = (byte)((
          //                                [76543210]
          //                    [____________98765432__]
           ((in[25 + inPos] & 4194303) >>> 2)) & 255);
      out[70 + outPos] = (byte)((
          //                                [76543210]
          //                            [____76543210__________]
           ((in[25 + inPos] & 4194303) >>> 10)) & 255);
      out[71 + outPos] = (byte)((
          //                                [____3210]
          //                                    [1098__________________]
           ((in[25 + inPos] & 4194303) >>> 18)
        | //                                [7654____]
          //              [__________________3210]
           ((in[26 + inPos] & 4194303) <<  4)) & 255);
      out[72 + outPos] = (byte)((
          //                                [76543210]
          //                      [__________10987654____]
           ((in[26 + inPos] & 4194303) >>> 4)) & 255);
      out[73 + outPos] = (byte)((
          //                                [76543210]
          //                              [__98765432____________]
           ((in[26 + inPos] & 4194303) >>> 12)) & 255);
      out[74 + outPos] = (byte)((
          //                                [______10]
          //                                      [10____________________]
           ((in[26 + inPos] & 4194303) >>> 20)
        | //                                [765432__]
          //                [________________543210]
           ((in[27 + inPos] & 4194303) <<  2)) & 255);
      out[75 + outPos] = (byte)((
          //                                [76543210]
          //                        [________32109876______]
           ((in[27 + inPos] & 4194303) >>> 6)) & 255);
      out[76 + outPos] = (byte)((
          //                                [76543210]
          //                                [10987654______________]
           ((in[27 + inPos] & 4194303) >>> 14)) & 255);
      out[77 + outPos] = (byte)((
          //                                [76543210]
          //                  [______________76543210]
           ((in[28 + inPos] & 4194303))) & 255);
      out[78 + outPos] = (byte)((
          //                                [76543210]
          //                          [______54321098________]
           ((in[28 + inPos] & 4194303) >>> 8)) & 255);
      out[79 + outPos] = (byte)((
          //                                [__543210]
          //                                  [109876________________]
           ((in[28 + inPos] & 4194303) >>> 16)
        | //                                [76______]
          //            [____________________10]
           ((in[29 + inPos] & 4194303) <<  6)) & 255);
      out[80 + outPos] = (byte)((
          //                                [76543210]
          //                    [____________98765432__]
           ((in[29 + inPos] & 4194303) >>> 2)) & 255);
      out[81 + outPos] = (byte)((
          //                                [76543210]
          //                            [____76543210__________]
           ((in[29 + inPos] & 4194303) >>> 10)) & 255);
      out[82 + outPos] = (byte)((
          //                                [____3210]
          //                                    [1098__________________]
           ((in[29 + inPos] & 4194303) >>> 18)
        | //                                [7654____]
          //              [__________________3210]
           ((in[30 + inPos] & 4194303) <<  4)) & 255);
      out[83 + outPos] = (byte)((
          //                                [76543210]
          //                      [__________10987654____]
           ((in[30 + inPos] & 4194303) >>> 4)) & 255);
      out[84 + outPos] = (byte)((
          //                                [76543210]
          //                              [__98765432____________]
           ((in[30 + inPos] & 4194303) >>> 12)) & 255);
      out[85 + outPos] = (byte)((
          //                                [______10]
          //                                      [10____________________]
           ((in[30 + inPos] & 4194303) >>> 20)
        | //                                [765432__]
          //                [________________543210]
           ((in[31 + inPos] & 4194303) <<  2)) & 255);
      out[86 + outPos] = (byte)((
          //                                [76543210]
          //                        [________32109876______]
           ((in[31 + inPos] & 4194303) >>> 6)) & 255);
      out[87 + outPos] = (byte)((
          //                                [76543210]
          //                                [10987654______________]
           ((in[31 + inPos] & 4194303) >>> 14)) & 255);
    }
    public final void unpack8Values(final byte[] in, final int inPos, final int[] out, final int outPos) {
      out[ 0 + outPos] =
          //                                [76543210]
          //                  [______________76543210]
            ((((int)in[ 0 + inPos]) ) & 255)
        | //                                [76543210]
          //                          [______54321098________]
            ((((int)in[ 1 + inPos]) <<  8) & 65535)
        | //                                [__543210]
          //                                  [109876________________]
            ((((int)in[ 2 + inPos]) <<  16) & 4194303);
      out[ 1 + outPos] =
          //                                [76______]
          //            [____________________10]
            ((((int)in[ 2 + inPos]) >>  6) & 3)
        | //                                [76543210]
          //                    [____________98765432__]
            ((((int)in[ 3 + inPos]) <<  2) & 1023)
        | //                                [76543210]
          //                            [____76543210__________]
            ((((int)in[ 4 + inPos]) <<  10) & 262143)
        | //                                [____3210]
          //                                    [1098__________________]
            ((((int)in[ 5 + inPos]) <<  18) & 4194303);
      out[ 2 + outPos] =
          //                                [7654____]
          //              [__________________3210]
            ((((int)in[ 5 + inPos]) >>  4) & 15)
        | //                                [76543210]
          //                      [__________10987654____]
            ((((int)in[ 6 + inPos]) <<  4) & 4095)
        | //                                [76543210]
          //                              [__98765432____________]
            ((((int)in[ 7 + inPos]) <<  12) & 1048575)
        | //                                [______10]
          //                                      [10____________________]
            ((((int)in[ 8 + inPos]) <<  20) & 4194303);
      out[ 3 + outPos] =
          //                                [765432__]
          //                [________________543210]
            ((((int)in[ 8 + inPos]) >>  2) & 63)
        | //                                [76543210]
          //                        [________32109876______]
            ((((int)in[ 9 + inPos]) <<  6) & 16383)
        | //                                [76543210]
          //                                [10987654______________]
            ((((int)in[10 + inPos]) <<  14) & 4194303);
      out[ 4 + outPos] =
          //                                [76543210]
          //                  [______________76543210]
            ((((int)in[11 + inPos]) ) & 255)
        | //                                [76543210]
          //                          [______54321098________]
            ((((int)in[12 + inPos]) <<  8) & 65535)
        | //                                [__543210]
          //                                  [109876________________]
            ((((int)in[13 + inPos]) <<  16) & 4194303);
      out[ 5 + outPos] =
          //                                [76______]
          //            [____________________10]
            ((((int)in[13 + inPos]) >>  6) & 3)
        | //                                [76543210]
          //                    [____________98765432__]
            ((((int)in[14 + inPos]) <<  2) & 1023)
        | //                                [76543210]
          //                            [____76543210__________]
            ((((int)in[15 + inPos]) <<  10) & 262143)
        | //                                [____3210]
          //                                    [1098__________________]
            ((((int)in[16 + inPos]) <<  18) & 4194303);
      out[ 6 + outPos] =
          //                                [7654____]
          //              [__________________3210]
            ((((int)in[16 + inPos]) >>  4) & 15)
        | //                                [76543210]
          //                      [__________10987654____]
            ((((int)in[17 + inPos]) <<  4) & 4095)
        | //                                [76543210]
          //                              [__98765432____________]
            ((((int)in[18 + inPos]) <<  12) & 1048575)
        | //                                [______10]
          //                                      [10____________________]
            ((((int)in[19 + inPos]) <<  20) & 4194303);
      out[ 7 + outPos] =
          //                                [765432__]
          //                [________________543210]
            ((((int)in[19 + inPos]) >>  2) & 63)
        | //                                [76543210]
          //                        [________32109876______]
            ((((int)in[20 + inPos]) <<  6) & 16383)
        | //                                [76543210]
          //                                [10987654______________]
            ((((int)in[21 + inPos]) <<  14) & 4194303);
    }
    public final void unpack8Values(final ByteBuffer in, final int inPos, final int[] out, final int outPos) {
      out[ 0 + outPos] =
          //                                [76543210]
          //                  [______________76543210]
            ((((int)in.get( 0 + inPos)) ) & 255)
        | //                                [76543210]
          //                          [______54321098________]
            ((((int)in.get( 1 + inPos)) <<  8) & 65535)
        | //                                [__543210]
          //                                  [109876________________]
            ((((int)in.get( 2 + inPos)) <<  16) & 4194303);
      out[ 1 + outPos] =
          //                                [76______]
          //            [____________________10]
            ((((int)in.get( 2 + inPos)) >>  6) & 3)
        | //                                [76543210]
          //                    [____________98765432__]
            ((((int)in.get( 3 + inPos)) <<  2) & 1023)
        | //                                [76543210]
          //                            [____76543210__________]
            ((((int)in.get( 4 + inPos)) <<  10) & 262143)
        | //                                [____3210]
          //                                    [1098__________________]
            ((((int)in.get( 5 + inPos)) <<  18) & 4194303);
      out[ 2 + outPos] =
          //                                [7654____]
          //              [__________________3210]
            ((((int)in.get( 5 + inPos)) >>  4) & 15)
        | //                                [76543210]
          //                      [__________10987654____]
            ((((int)in.get( 6 + inPos)) <<  4) & 4095)
        | //                                [76543210]
          //                              [__98765432____________]
            ((((int)in.get( 7 + inPos)) <<  12) & 1048575)
        | //                                [______10]
          //                                      [10____________________]
            ((((int)in.get( 8 + inPos)) <<  20) & 4194303);
      out[ 3 + outPos] =
          //                                [765432__]
          //                [________________543210]
            ((((int)in.get( 8 + inPos)) >>  2) & 63)
        | //                                [76543210]
          //                        [________32109876______]
            ((((int)in.get( 9 + inPos)) <<  6) & 16383)
        | //                                [76543210]
          //                                [10987654______________]
            ((((int)in.get(10 + inPos)) <<  14) & 4194303);
      out[ 4 + outPos] =
          //                                [76543210]
          //                  [______________76543210]
            ((((int)in.get(11 + inPos)) ) & 255)
        | //                                [76543210]
          //                          [______54321098________]
            ((((int)in.get(12 + inPos)) <<  8) & 65535)
        | //                                [__543210]
          //                                  [109876________________]
            ((((int)in.get(13 + inPos)) <<  16) & 4194303);
      out[ 5 + outPos] =
          //                                [76______]
          //            [____________________10]
            ((((int)in.get(13 + inPos)) >>  6) & 3)
        | //                                [76543210]
          //                    [____________98765432__]
            ((((int)in.get(14 + inPos)) <<  2) & 1023)
        | //                                [76543210]
          //                            [____76543210__________]
            ((((int)in.get(15 + inPos)) <<  10) & 262143)
        | //                                [____3210]
          //                                    [1098__________________]
            ((((int)in.get(16 + inPos)) <<  18) & 4194303);
      out[ 6 + outPos] =
          //                                [7654____]
          //              [__________________3210]
            ((((int)in.get(16 + inPos)) >>  4) & 15)
        | //                                [76543210]
          //                      [__________10987654____]
            ((((int)in.get(17 + inPos)) <<  4) & 4095)
        | //                                [76543210]
          //                              [__98765432____________]
            ((((int)in.get(18 + inPos)) <<  12) & 1048575)
        | //                                [______10]
          //                                      [10____________________]
            ((((int)in.get(19 + inPos)) <<  20) & 4194303);
      out[ 7 + outPos] =
          //                                [765432__]
          //                [________________543210]
            ((((int)in.get(19 + inPos)) >>  2) & 63)
        | //                                [76543210]
          //                        [________32109876______]
            ((((int)in.get(20 + inPos)) <<  6) & 16383)
        | //                                [76543210]
          //                                [10987654______________]
            ((((int)in.get(21 + inPos)) <<  14) & 4194303);
    }
    public final void unpack32Values(final byte[] in, final int inPos, final int[] out, final int outPos) {
      out[ 0 + outPos] =
          //                                [76543210]
          //                  [______________76543210]
            ((((int)in[ 0 + inPos]) ) & 255)
        | //                                [76543210]
          //                          [______54321098________]
            ((((int)in[ 1 + inPos]) <<  8) & 65535)
        | //                                [__543210]
          //                                  [109876________________]
            ((((int)in[ 2 + inPos]) <<  16) & 4194303);
      out[ 1 + outPos] =
          //                                [76______]
          //            [____________________10]
            ((((int)in[ 2 + inPos]) >>  6) & 3)
        | //                                [76543210]
          //                    [____________98765432__]
            ((((int)in[ 3 + inPos]) <<  2) & 1023)
        | //                                [76543210]
          //                            [____76543210__________]
            ((((int)in[ 4 + inPos]) <<  10) & 262143)
        | //                                [____3210]
          //                                    [1098__________________]
            ((((int)in[ 5 + inPos]) <<  18) & 4194303);
      out[ 2 + outPos] =
          //                                [7654____]
          //              [__________________3210]
            ((((int)in[ 5 + inPos]) >>  4) & 15)
        | //                                [76543210]
          //                      [__________10987654____]
            ((((int)in[ 6 + inPos]) <<  4) & 4095)
        | //                                [76543210]
          //                              [__98765432____________]
            ((((int)in[ 7 + inPos]) <<  12) & 1048575)
        | //                                [______10]
          //                                      [10____________________]
            ((((int)in[ 8 + inPos]) <<  20) & 4194303);
      out[ 3 + outPos] =
          //                                [765432__]
          //                [________________543210]
            ((((int)in[ 8 + inPos]) >>  2) & 63)
        | //                                [76543210]
          //                        [________32109876______]
            ((((int)in[ 9 + inPos]) <<  6) & 16383)
        | //                                [76543210]
          //                                [10987654______________]
            ((((int)in[10 + inPos]) <<  14) & 4194303);
      out[ 4 + outPos] =
          //                                [76543210]
          //                  [______________76543210]
            ((((int)in[11 + inPos]) ) & 255)
        | //                                [76543210]
          //                          [______54321098________]
            ((((int)in[12 + inPos]) <<  8) & 65535)
        | //                                [__543210]
          //                                  [109876________________]
            ((((int)in[13 + inPos]) <<  16) & 4194303);
      out[ 5 + outPos] =
          //                                [76______]
          //            [____________________10]
            ((((int)in[13 + inPos]) >>  6) & 3)
        | //                                [76543210]
          //                    [____________98765432__]
            ((((int)in[14 + inPos]) <<  2) & 1023)
        | //                                [76543210]
          //                            [____76543210__________]
            ((((int)in[15 + inPos]) <<  10) & 262143)
        | //                                [____3210]
          //                                    [1098__________________]
            ((((int)in[16 + inPos]) <<  18) & 4194303);
      out[ 6 + outPos] =
          //                                [7654____]
          //              [__________________3210]
            ((((int)in[16 + inPos]) >>  4) & 15)
        | //                                [76543210]
          //                      [__________10987654____]
            ((((int)in[17 + inPos]) <<  4) & 4095)
        | //                                [76543210]
          //                              [__98765432____________]
            ((((int)in[18 + inPos]) <<  12) & 1048575)
        | //                                [______10]
          //                                      [10____________________]
            ((((int)in[19 + inPos]) <<  20) & 4194303);
      out[ 7 + outPos] =
          //                                [765432__]
          //                [________________543210]
            ((((int)in[19 + inPos]) >>  2) & 63)
        | //                                [76543210]
          //                        [________32109876______]
            ((((int)in[20 + inPos]) <<  6) & 16383)
        | //                                [76543210]
          //                                [10987654______________]
            ((((int)in[21 + inPos]) <<  14) & 4194303);
      out[ 8 + outPos] =
          //                                [76543210]
          //                  [______________76543210]
            ((((int)in[22 + inPos]) ) & 255)
        | //                                [76543210]
          //                          [______54321098________]
            ((((int)in[23 + inPos]) <<  8) & 65535)
        | //                                [__543210]
          //                                  [109876________________]
            ((((int)in[24 + inPos]) <<  16) & 4194303);
      out[ 9 + outPos] =
          //                                [76______]
          //            [____________________10]
            ((((int)in[24 + inPos]) >>  6) & 3)
        | //                                [76543210]
          //                    [____________98765432__]
            ((((int)in[25 + inPos]) <<  2) & 1023)
        | //                                [76543210]
          //                            [____76543210__________]
            ((((int)in[26 + inPos]) <<  10) & 262143)
        | //                                [____3210]
          //                                    [1098__________________]
            ((((int)in[27 + inPos]) <<  18) & 4194303);
      out[10 + outPos] =
          //                                [7654____]
          //              [__________________3210]
            ((((int)in[27 + inPos]) >>  4) & 15)
        | //                                [76543210]
          //                      [__________10987654____]
            ((((int)in[28 + inPos]) <<  4) & 4095)
        | //                                [76543210]
          //                              [__98765432____________]
            ((((int)in[29 + inPos]) <<  12) & 1048575)
        | //                                [______10]
          //                                      [10____________________]
            ((((int)in[30 + inPos]) <<  20) & 4194303);
      out[11 + outPos] =
          //                                [765432__]
          //                [________________543210]
            ((((int)in[30 + inPos]) >>  2) & 63)
        | //                                [76543210]
          //                        [________32109876______]
            ((((int)in[31 + inPos]) <<  6) & 16383)
        | //                                [76543210]
          //                                [10987654______________]
            ((((int)in[32 + inPos]) <<  14) & 4194303);
      out[12 + outPos] =
          //                                [76543210]
          //                  [______________76543210]
            ((((int)in[33 + inPos]) ) & 255)
        | //                                [76543210]
          //                          [______54321098________]
            ((((int)in[34 + inPos]) <<  8) & 65535)
        | //                                [__543210]
          //                                  [109876________________]
            ((((int)in[35 + inPos]) <<  16) & 4194303);
      out[13 + outPos] =
          //                                [76______]
          //            [____________________10]
            ((((int)in[35 + inPos]) >>  6) & 3)
        | //                                [76543210]
          //                    [____________98765432__]
            ((((int)in[36 + inPos]) <<  2) & 1023)
        | //                                [76543210]
          //                            [____76543210__________]
            ((((int)in[37 + inPos]) <<  10) & 262143)
        | //                                [____3210]
          //                                    [1098__________________]
            ((((int)in[38 + inPos]) <<  18) & 4194303);
      out[14 + outPos] =
          //                                [7654____]
          //              [__________________3210]
            ((((int)in[38 + inPos]) >>  4) & 15)
        | //                                [76543210]
          //                      [__________10987654____]
            ((((int)in[39 + inPos]) <<  4) & 4095)
        | //                                [76543210]
          //                              [__98765432____________]
            ((((int)in[40 + inPos]) <<  12) & 1048575)
        | //                                [______10]
          //                                      [10____________________]
            ((((int)in[41 + inPos]) <<  20) & 4194303);
      out[15 + outPos] =
          //                                [765432__]
          //                [________________543210]
            ((((int)in[41 + inPos]) >>  2) & 63)
        | //                                [76543210]
          //                        [________32109876______]
            ((((int)in[42 + inPos]) <<  6) & 16383)
        | //                                [76543210]
          //                                [10987654______________]
            ((((int)in[43 + inPos]) <<  14) & 4194303);
      out[16 + outPos] =
          //                                [76543210]
          //                  [______________76543210]
            ((((int)in[44 + inPos]) ) & 255)
        | //                                [76543210]
          //                          [______54321098________]
            ((((int)in[45 + inPos]) <<  8) & 65535)
        | //                                [__543210]
          //                                  [109876________________]
            ((((int)in[46 + inPos]) <<  16) & 4194303);
      out[17 + outPos] =
          //                                [76______]
          //            [____________________10]
            ((((int)in[46 + inPos]) >>  6) & 3)
        | //                                [76543210]
          //                    [____________98765432__]
            ((((int)in[47 + inPos]) <<  2) & 1023)
        | //                                [76543210]
          //                            [____76543210__________]
            ((((int)in[48 + inPos]) <<  10) & 262143)
        | //                                [____3210]
          //                                    [1098__________________]
            ((((int)in[49 + inPos]) <<  18) & 4194303);
      out[18 + outPos] =
          //                                [7654____]
          //              [__________________3210]
            ((((int)in[49 + inPos]) >>  4) & 15)
        | //                                [76543210]
          //                      [__________10987654____]
            ((((int)in[50 + inPos]) <<  4) & 4095)
        | //                                [76543210]
          //                              [__98765432____________]
            ((((int)in[51 + inPos]) <<  12) & 1048575)
        | //                                [______10]
          //                                      [10____________________]
            ((((int)in[52 + inPos]) <<  20) & 4194303);
      out[19 + outPos] =
          //                                [765432__]
          //                [________________543210]
            ((((int)in[52 + inPos]) >>  2) & 63)
        | //                                [76543210]
          //                        [________32109876______]
            ((((int)in[53 + inPos]) <<  6) & 16383)
        | //                                [76543210]
          //                                [10987654______________]
            ((((int)in[54 + inPos]) <<  14) & 4194303);
      out[20 + outPos] =
          //                                [76543210]
          //                  [______________76543210]
            ((((int)in[55 + inPos]) ) & 255)
        | //                                [76543210]
          //                          [______54321098________]
            ((((int)in[56 + inPos]) <<  8) & 65535)
        | //                                [__543210]
          //                                  [109876________________]
            ((((int)in[57 + inPos]) <<  16) & 4194303);
      out[21 + outPos] =
          //                                [76______]
          //            [____________________10]
            ((((int)in[57 + inPos]) >>  6) & 3)
        | //                                [76543210]
          //                    [____________98765432__]
            ((((int)in[58 + inPos]) <<  2) & 1023)
        | //                                [76543210]
          //                            [____76543210__________]
            ((((int)in[59 + inPos]) <<  10) & 262143)
        | //                                [____3210]
          //                                    [1098__________________]
            ((((int)in[60 + inPos]) <<  18) & 4194303);
      out[22 + outPos] =
          //                                [7654____]
          //              [__________________3210]
            ((((int)in[60 + inPos]) >>  4) & 15)
        | //                                [76543210]
          //                      [__________10987654____]
            ((((int)in[61 + inPos]) <<  4) & 4095)
        | //                                [76543210]
          //                              [__98765432____________]
            ((((int)in[62 + inPos]) <<  12) & 1048575)
        | //                                [______10]
          //                                      [10____________________]
            ((((int)in[63 + inPos]) <<  20) & 4194303);
      out[23 + outPos] =
          //                                [765432__]
          //                [________________543210]
            ((((int)in[63 + inPos]) >>  2) & 63)
        | //                                [76543210]
          //                        [________32109876______]
            ((((int)in[64 + inPos]) <<  6) & 16383)
        | //                                [76543210]
          //                                [10987654______________]
            ((((int)in[65 + inPos]) <<  14) & 4194303);
      out[24 + outPos] =
          //                                [76543210]
          //                  [______________76543210]
            ((((int)in[66 + inPos]) ) & 255)
        | //                                [76543210]
          //                          [______54321098________]
            ((((int)in[67 + inPos]) <<  8) & 65535)
        | //                                [__543210]
          //                                  [109876________________]
            ((((int)in[68 + inPos]) <<  16) & 4194303);
      out[25 + outPos] =
          //                                [76______]
          //            [____________________10]
            ((((int)in[68 + inPos]) >>  6) & 3)
        | //                                [76543210]
          //                    [____________98765432__]
            ((((int)in[69 + inPos]) <<  2) & 1023)
        | //                                [76543210]
          //                            [____76543210__________]
            ((((int)in[70 + inPos]) <<  10) & 262143)
        | //                                [____3210]
          //                                    [1098__________________]
            ((((int)in[71 + inPos]) <<  18) & 4194303);
      out[26 + outPos] =
          //                                [7654____]
          //              [__________________3210]
            ((((int)in[71 + inPos]) >>  4) & 15)
        | //                                [76543210]
          //                      [__________10987654____]
            ((((int)in[72 + inPos]) <<  4) & 4095)
        | //                                [76543210]
          //                              [__98765432____________]
            ((((int)in[73 + inPos]) <<  12) & 1048575)
        | //                                [______10]
          //                                      [10____________________]
            ((((int)in[74 + inPos]) <<  20) & 4194303);
      out[27 + outPos] =
          //                                [765432__]
          //                [________________543210]
            ((((int)in[74 + inPos]) >>  2) & 63)
        | //                                [76543210]
          //                        [________32109876______]
            ((((int)in[75 + inPos]) <<  6) & 16383)
        | //                                [76543210]
          //                                [10987654______________]
            ((((int)in[76 + inPos]) <<  14) & 4194303);
      out[28 + outPos] =
          //                                [76543210]
          //                  [______________76543210]
            ((((int)in[77 + inPos]) ) & 255)
        | //                                [76543210]
          //                          [______54321098________]
            ((((int)in[78 + inPos]) <<  8) & 65535)
        | //                                [__543210]
          //                                  [109876________________]
            ((((int)in[79 + inPos]) <<  16) & 4194303);
      out[29 + outPos] =
          //                                [76______]
          //            [____________________10]
            ((((int)in[79 + inPos]) >>  6) & 3)
        | //                                [76543210]
          //                    [____________98765432__]
            ((((int)in[80 + inPos]) <<  2) & 1023)
        | //                                [76543210]
          //                            [____76543210__________]
            ((((int)in[81 + inPos]) <<  10) & 262143)
        | //                                [____3210]
          //                                    [1098__________________]
            ((((int)in[82 + inPos]) <<  18) & 4194303);
      out[30 + outPos] =
          //                                [7654____]
          //              [__________________3210]
            ((((int)in[82 + inPos]) >>  4) & 15)
        | //                                [76543210]
          //                      [__________10987654____]
            ((((int)in[83 + inPos]) <<  4) & 4095)
        | //                                [76543210]
          //                              [__98765432____________]
            ((((int)in[84 + inPos]) <<  12) & 1048575)
        | //                                [______10]
          //                                      [10____________________]
            ((((int)in[85 + inPos]) <<  20) & 4194303);
      out[31 + outPos] =
          //                                [765432__]
          //                [________________543210]
            ((((int)in[85 + inPos]) >>  2) & 63)
        | //                                [76543210]
          //                        [________32109876______]
            ((((int)in[86 + inPos]) <<  6) & 16383)
        | //                                [76543210]
          //                                [10987654______________]
            ((((int)in[87 + inPos]) <<  14) & 4194303);
    }
    public final void unpack32Values(final ByteBuffer in, final int inPos, final int[] out, final int outPos) {
      out[ 0 + outPos] =
          //                                [76543210]
          //                  [______________76543210]
            ((((int)in.get( 0 + inPos)) ) & 255)
        | //                                [76543210]
          //                          [______54321098________]
            ((((int)in.get( 1 + inPos)) <<  8) & 65535)
        | //                                [__543210]
          //                                  [109876________________]
            ((((int)in.get( 2 + inPos)) <<  16) & 4194303);
      out[ 1 + outPos] =
          //                                [76______]
          //            [____________________10]
            ((((int)in.get( 2 + inPos)) >>  6) & 3)
        | //                                [76543210]
          //                    [____________98765432__]
            ((((int)in.get( 3 + inPos)) <<  2) & 1023)
        | //                                [76543210]
          //                            [____76543210__________]
            ((((int)in.get( 4 + inPos)) <<  10) & 262143)
        | //                                [____3210]
          //                                    [1098__________________]
            ((((int)in.get( 5 + inPos)) <<  18) & 4194303);
      out[ 2 + outPos] =
          //                                [7654____]
          //              [__________________3210]
            ((((int)in.get( 5 + inPos)) >>  4) & 15)
        | //                                [76543210]
          //                      [__________10987654____]
            ((((int)in.get( 6 + inPos)) <<  4) & 4095)
        | //                                [76543210]
          //                              [__98765432____________]
            ((((int)in.get( 7 + inPos)) <<  12) & 1048575)
        | //                                [______10]
          //                                      [10____________________]
            ((((int)in.get( 8 + inPos)) <<  20) & 4194303);
      out[ 3 + outPos] =
          //                                [765432__]
          //                [________________543210]
            ((((int)in.get( 8 + inPos)) >>  2) & 63)
        | //                                [76543210]
          //                        [________32109876______]
            ((((int)in.get( 9 + inPos)) <<  6) & 16383)
        | //                                [76543210]
          //                                [10987654______________]
            ((((int)in.get(10 + inPos)) <<  14) & 4194303);
      out[ 4 + outPos] =
          //                                [76543210]
          //                  [______________76543210]
            ((((int)in.get(11 + inPos)) ) & 255)
        | //                                [76543210]
          //                          [______54321098________]
            ((((int)in.get(12 + inPos)) <<  8) & 65535)
        | //                                [__543210]
          //                                  [109876________________]
            ((((int)in.get(13 + inPos)) <<  16) & 4194303);
      out[ 5 + outPos] =
          //                                [76______]
          //            [____________________10]
            ((((int)in.get(13 + inPos)) >>  6) & 3)
        | //                                [76543210]
          //                    [____________98765432__]
            ((((int)in.get(14 + inPos)) <<  2) & 1023)
        | //                                [76543210]
          //                            [____76543210__________]
            ((((int)in.get(15 + inPos)) <<  10) & 262143)
        | //                                [____3210]
          //                                    [1098__________________]
            ((((int)in.get(16 + inPos)) <<  18) & 4194303);
      out[ 6 + outPos] =
          //                                [7654____]
          //              [__________________3210]
            ((((int)in.get(16 + inPos)) >>  4) & 15)
        | //                                [76543210]
          //                      [__________10987654____]
            ((((int)in.get(17 + inPos)) <<  4) & 4095)
        | //                                [76543210]
          //                              [__98765432____________]
            ((((int)in.get(18 + inPos)) <<  12) & 1048575)
        | //                                [______10]
          //                                      [10____________________]
            ((((int)in.get(19 + inPos)) <<  20) & 4194303);
      out[ 7 + outPos] =
          //                                [765432__]
          //                [________________543210]
            ((((int)in.get(19 + inPos)) >>  2) & 63)
        | //                                [76543210]
          //                        [________32109876______]
            ((((int)in.get(20 + inPos)) <<  6) & 16383)
        | //                                [76543210]
          //                                [10987654______________]
            ((((int)in.get(21 + inPos)) <<  14) & 4194303);
      out[ 8 + outPos] =
          //                                [76543210]
          //                  [______________76543210]
            ((((int)in.get(22 + inPos)) ) & 255)
        | //                                [76543210]
          //                          [______54321098________]
            ((((int)in.get(23 + inPos)) <<  8) & 65535)
        | //                                [__543210]
          //                                  [109876________________]
            ((((int)in.get(24 + inPos)) <<  16) & 4194303);
      out[ 9 + outPos] =
          //                                [76______]
          //            [____________________10]
            ((((int)in.get(24 + inPos)) >>  6) & 3)
        | //                                [76543210]
          //                    [____________98765432__]
            ((((int)in.get(25 + inPos)) <<  2) & 1023)
        | //                                [76543210]
          //                            [____76543210__________]
            ((((int)in.get(26 + inPos)) <<  10) & 262143)
        | //                                [____3210]
          //                                    [1098__________________]
            ((((int)in.get(27 + inPos)) <<  18) & 4194303);
      out[10 + outPos] =
          //                                [7654____]
          //              [__________________3210]
            ((((int)in.get(27 + inPos)) >>  4) & 15)
        | //                                [76543210]
          //                      [__________10987654____]
            ((((int)in.get(28 + inPos)) <<  4) & 4095)
        | //                                [76543210]
          //                              [__98765432____________]
            ((((int)in.get(29 + inPos)) <<  12) & 1048575)
        | //                                [______10]
          //                                      [10____________________]
            ((((int)in.get(30 + inPos)) <<  20) & 4194303);
      out[11 + outPos] =
          //                                [765432__]
          //                [________________543210]
            ((((int)in.get(30 + inPos)) >>  2) & 63)
        | //                                [76543210]
          //                        [________32109876______]
            ((((int)in.get(31 + inPos)) <<  6) & 16383)
        | //                                [76543210]
          //                                [10987654______________]
            ((((int)in.get(32 + inPos)) <<  14) & 4194303);
      out[12 + outPos] =
          //                                [76543210]
          //                  [______________76543210]
            ((((int)in.get(33 + inPos)) ) & 255)
        | //                                [76543210]
          //                          [______54321098________]
            ((((int)in.get(34 + inPos)) <<  8) & 65535)
        | //                                [__543210]
          //                                  [109876________________]
            ((((int)in.get(35 + inPos)) <<  16) & 4194303);
      out[13 + outPos] =
          //                                [76______]
          //            [____________________10]
            ((((int)in.get(35 + inPos)) >>  6) & 3)
        | //                                [76543210]
          //                    [____________98765432__]
            ((((int)in.get(36 + inPos)) <<  2) & 1023)
        | //                                [76543210]
          //                            [____76543210__________]
            ((((int)in.get(37 + inPos)) <<  10) & 262143)
        | //                                [____3210]
          //                                    [1098__________________]
            ((((int)in.get(38 + inPos)) <<  18) & 4194303);
      out[14 + outPos] =
          //                                [7654____]
          //              [__________________3210]
            ((((int)in.get(38 + inPos)) >>  4) & 15)
        | //                                [76543210]
          //                      [__________10987654____]
            ((((int)in.get(39 + inPos)) <<  4) & 4095)
        | //                                [76543210]
          //                              [__98765432____________]
            ((((int)in.get(40 + inPos)) <<  12) & 1048575)
        | //                                [______10]
          //                                      [10____________________]
            ((((int)in.get(41 + inPos)) <<  20) & 4194303);
      out[15 + outPos] =
          //                                [765432__]
          //                [________________543210]
            ((((int)in.get(41 + inPos)) >>  2) & 63)
        | //                                [76543210]
          //                        [________32109876______]
            ((((int)in.get(42 + inPos)) <<  6) & 16383)
        | //                                [76543210]
          //                                [10987654______________]
            ((((int)in.get(43 + inPos)) <<  14) & 4194303);
      out[16 + outPos] =
          //                                [76543210]
          //                  [______________76543210]
            ((((int)in.get(44 + inPos)) ) & 255)
        | //                                [76543210]
          //                          [______54321098________]
            ((((int)in.get(45 + inPos)) <<  8) & 65535)
        | //                                [__543210]
          //                                  [109876________________]
            ((((int)in.get(46 + inPos)) <<  16) & 4194303);
      out[17 + outPos] =
          //                                [76______]
          //            [____________________10]
            ((((int)in.get(46 + inPos)) >>  6) & 3)
        | //                                [76543210]
          //                    [____________98765432__]
            ((((int)in.get(47 + inPos)) <<  2) & 1023)
        | //                                [76543210]
          //                            [____76543210__________]
            ((((int)in.get(48 + inPos)) <<  10) & 262143)
        | //                                [____3210]
          //                                    [1098__________________]
            ((((int)in.get(49 + inPos)) <<  18) & 4194303);
      out[18 + outPos] =
          //                                [7654____]
          //              [__________________3210]
            ((((int)in.get(49 + inPos)) >>  4) & 15)
        | //                                [76543210]
          //                      [__________10987654____]
            ((((int)in.get(50 + inPos)) <<  4) & 4095)
        | //                                [76543210]
          //                              [__98765432____________]
            ((((int)in.get(51 + inPos)) <<  12) & 1048575)
        | //                                [______10]
          //                                      [10____________________]
            ((((int)in.get(52 + inPos)) <<  20) & 4194303);
      out[19 + outPos] =
          //                                [765432__]
          //                [________________543210]
            ((((int)in.get(52 + inPos)) >>  2) & 63)
        | //                                [76543210]
          //                        [________32109876______]
            ((((int)in.get(53 + inPos)) <<  6) & 16383)
        | //                                [76543210]
          //                                [10987654______________]
            ((((int)in.get(54 + inPos)) <<  14) & 4194303);
      out[20 + outPos] =
          //                                [76543210]
          //                  [______________76543210]
            ((((int)in.get(55 + inPos)) ) & 255)
        | //                                [76543210]
          //                          [______54321098________]
            ((((int)in.get(56 + inPos)) <<  8) & 65535)
        | //                                [__543210]
          //                                  [109876________________]
            ((((int)in.get(57 + inPos)) <<  16) & 4194303);
      out[21 + outPos] =
          //                                [76______]
          //            [____________________10]
            ((((int)in.get(57 + inPos)) >>  6) & 3)
        | //                                [76543210]
          //                    [____________98765432__]
            ((((int)in.get(58 + inPos)) <<  2) & 1023)
        | //                                [76543210]
          //                            [____76543210__________]
            ((((int)in.get(59 + inPos)) <<  10) & 262143)
        | //                                [____3210]
          //                                    [1098__________________]
            ((((int)in.get(60 + inPos)) <<  18) & 4194303);
      out[22 + outPos] =
          //                                [7654____]
          //              [__________________3210]
            ((((int)in.get(60 + inPos)) >>  4) & 15)
        | //                                [76543210]
          //                      [__________10987654____]
            ((((int)in.get(61 + inPos)) <<  4) & 4095)
        | //                                [76543210]
          //                              [__98765432____________]
            ((((int)in.get(62 + inPos)) <<  12) & 1048575)
        | //                                [______10]
          //                                      [10____________________]
            ((((int)in.get(63 + inPos)) <<  20) & 4194303);
      out[23 + outPos] =
          //                                [765432__]
          //                [________________543210]
            ((((int)in.get(63 + inPos)) >>  2) & 63)
        | //                                [76543210]
          //                        [________32109876______]
            ((((int)in.get(64 + inPos)) <<  6) & 16383)
        | //                                [76543210]
          //                                [10987654______________]
            ((((int)in.get(65 + inPos)) <<  14) & 4194303);
      out[24 + outPos] =
          //                                [76543210]
          //                  [______________76543210]
            ((((int)in.get(66 + inPos)) ) & 255)
        | //                                [76543210]
          //                          [______54321098________]
            ((((int)in.get(67 + inPos)) <<  8) & 65535)
        | //                                [__543210]
          //                                  [109876________________]
            ((((int)in.get(68 + inPos)) <<  16) & 4194303);
      out[25 + outPos] =
          //                                [76______]
          //            [____________________10]
            ((((int)in.get(68 + inPos)) >>  6) & 3)
        | //                                [76543210]
          //                    [____________98765432__]
            ((((int)in.get(69 + inPos)) <<  2) & 1023)
        | //                                [76543210]
          //                            [____76543210__________]
            ((((int)in.get(70 + inPos)) <<  10) & 262143)
        | //                                [____3210]
          //                                    [1098__________________]
            ((((int)in.get(71 + inPos)) <<  18) & 4194303);
      out[26 + outPos] =
          //                                [7654____]
          //              [__________________3210]
            ((((int)in.get(71 + inPos)) >>  4) & 15)
        | //                                [76543210]
          //                      [__________10987654____]
            ((((int)in.get(72 + inPos)) <<  4) & 4095)
        | //                                [76543210]
          //                              [__98765432____________]
            ((((int)in.get(73 + inPos)) <<  12) & 1048575)
        | //                                [______10]
          //                                      [10____________________]
            ((((int)in.get(74 + inPos)) <<  20) & 4194303);
      out[27 + outPos] =
          //                                [765432__]
          //                [________________543210]
            ((((int)in.get(74 + inPos)) >>  2) & 63)
        | //                                [76543210]
          //                        [________32109876______]
            ((((int)in.get(75 + inPos)) <<  6) & 16383)
        | //                                [76543210]
          //                                [10987654______________]
            ((((int)in.get(76 + inPos)) <<  14) & 4194303);
      out[28 + outPos] =
          //                                [76543210]
          //                  [______________76543210]
            ((((int)in.get(77 + inPos)) ) & 255)
        | //                                [76543210]
          //                          [______54321098________]
            ((((int)in.get(78 + inPos)) <<  8) & 65535)
        | //                                [__543210]
          //                                  [109876________________]
            ((((int)in.get(79 + inPos)) <<  16) & 4194303);
      out[29 + outPos] =
          //                                [76______]
          //            [____________________10]
            ((((int)in.get(79 + inPos)) >>  6) & 3)
        | //                                [76543210]
          //                    [____________98765432__]
            ((((int)in.get(80 + inPos)) <<  2) & 1023)
        | //                                [76543210]
          //                            [____76543210__________]
            ((((int)in.get(81 + inPos)) <<  10) & 262143)
        | //                                [____3210]
          //                                    [1098__________________]
            ((((int)in.get(82 + inPos)) <<  18) & 4194303);
      out[30 + outPos] =
          //                                [7654____]
          //              [__________________3210]
            ((((int)in.get(82 + inPos)) >>  4) & 15)
        | //                                [76543210]
          //                      [__________10987654____]
            ((((int)in.get(83 + inPos)) <<  4) & 4095)
        | //                                [76543210]
          //                              [__98765432____________]
            ((((int)in.get(84 + inPos)) <<  12) & 1048575)
        | //                                [______10]
          //                                      [10____________________]
            ((((int)in.get(85 + inPos)) <<  20) & 4194303);
      out[31 + outPos] =
          //                                [765432__]
          //                [________________543210]
            ((((int)in.get(85 + inPos)) >>  2) & 63)
        | //                                [76543210]
          //                        [________32109876______]
            ((((int)in.get(86 + inPos)) <<  6) & 16383)
        | //                                [76543210]
          //                                [10987654______________]
            ((((int)in.get(87 + inPos)) <<  14) & 4194303);
    }
  }

  private static final class Packer23 extends BytePacker {

    private Packer23() {
      super(23);
    }

    public final void pack8Values(final int[] in, final int inPos, final byte[] out, final int outPos) {
      out[ 0 + outPos] = (byte)((
          //                                 [76543210]
          //                  [_______________76543210]
           ((in[ 0 + inPos] & 8388607))) & 255);
      out[ 1 + outPos] = (byte)((
          //                                 [76543210]
          //                          [_______54321098________]
           ((in[ 0 + inPos] & 8388607) >>> 8)) & 255);
      out[ 2 + outPos] = (byte)((
          //                                 [_6543210]
          //                                  [2109876________________]
           ((in[ 0 + inPos] & 8388607) >>> 16)
        | //                                 [7_______]
          //           [______________________0]
           ((in[ 1 + inPos] & 8388607) <<  7)) & 255);
      out[ 3 + outPos] = (byte)((
          //                                 [76543210]
          //                   [______________87654321_]
           ((in[ 1 + inPos] & 8388607) >>> 1)) & 255);
      out[ 4 + outPos] = (byte)((
          //                                 [76543210]
          //                           [______65432109_________]
           ((in[ 1 + inPos] & 8388607) >>> 9)) & 255);
      out[ 5 + outPos] = (byte)((
          //                                 [__543210]
          //                                   [210987_________________]
           ((in[ 1 + inPos] & 8388607) >>> 17)
        | //                                 [76______]
          //            [_____________________10]
           ((in[ 2 + inPos] & 8388607) <<  6)) & 255);
      out[ 6 + outPos] = (byte)((
          //                                 [76543210]
          //                    [_____________98765432__]
           ((in[ 2 + inPos] & 8388607) >>> 2)) & 255);
      out[ 7 + outPos] = (byte)((
          //                                 [76543210]
          //                            [_____76543210__________]
           ((in[ 2 + inPos] & 8388607) >>> 10)) & 255);
      out[ 8 + outPos] = (byte)((
          //                                 [___43210]
          //                                    [21098__________________]
           ((in[ 2 + inPos] & 8388607) >>> 18)
        | //                                 [765_____]
          //             [____________________210]
           ((in[ 3 + inPos] & 8388607) <<  5)) & 255);
      out[ 9 + outPos] = (byte)((
          //                                 [76543210]
          //                     [____________09876543___]
           ((in[ 3 + inPos] & 8388607) >>> 3)) & 255);
      out[10 + outPos] = (byte)((
          //                                 [76543210]
          //                             [____87654321___________]
           ((in[ 3 + inPos] & 8388607) >>> 11)) & 255);
      out[11 + outPos] = (byte)((
          //                                 [____3210]
          //                                     [2109___________________]
           ((in[ 3 + inPos] & 8388607) >>> 19)
        | //                                 [7654____]
          //              [___________________3210]
           ((in[ 4 + inPos] & 8388607) <<  4)) & 255);
      out[12 + outPos] = (byte)((
          //                                 [76543210]
          //                      [___________10987654____]
           ((in[ 4 + inPos] & 8388607) >>> 4)) & 255);
      out[13 + outPos] = (byte)((
          //                                 [76543210]
          //                              [___98765432____________]
           ((in[ 4 + inPos] & 8388607) >>> 12)) & 255);
      out[14 + outPos] = (byte)((
          //                                 [_____210]
          //                                      [210____________________]
           ((in[ 4 + inPos] & 8388607) >>> 20)
        | //                                 [76543___]
          //               [__________________43210]
           ((in[ 5 + inPos] & 8388607) <<  3)) & 255);
      out[15 + outPos] = (byte)((
          //                                 [76543210]
          //                       [__________21098765_____]
           ((in[ 5 + inPos] & 8388607) >>> 5)) & 255);
      out[16 + outPos] = (byte)((
          //                                 [76543210]
          //                               [__09876543_____________]
           ((in[ 5 + inPos] & 8388607) >>> 13)) & 255);
      out[17 + outPos] = (byte)((
          //                                 [______10]
          //                                       [21_____________________]
           ((in[ 5 + inPos] & 8388607) >>> 21)
        | //                                 [765432__]
          //                [_________________543210]
           ((in[ 6 + inPos] & 8388607) <<  2)) & 255);
      out[18 + outPos] = (byte)((
          //                                 [76543210]
          //                        [_________32109876______]
           ((in[ 6 + inPos] & 8388607) >>> 6)) & 255);
      out[19 + outPos] = (byte)((
          //                                 [76543210]
          //                                [_10987654______________]
           ((in[ 6 + inPos] & 8388607) >>> 14)) & 255);
      out[20 + outPos] = (byte)((
          //                                 [_______0]
          //                                        [2______________________]
           ((in[ 6 + inPos] & 8388607) >>> 22)
        | //                                 [7654321_]
          //                 [________________6543210]
           ((in[ 7 + inPos] & 8388607) <<  1)) & 255);
      out[21 + outPos] = (byte)((
          //                                 [76543210]
          //                         [________43210987_______]
           ((in[ 7 + inPos] & 8388607) >>> 7)) & 255);
      out[22 + outPos] = (byte)((
          //                                 [76543210]
          //                                 [21098765_______________]
           ((in[ 7 + inPos] & 8388607) >>> 15)) & 255);
    }
    public final void pack32Values(final int[] in, final int inPos, final byte[] out, final int outPos) {
      out[ 0 + outPos] = (byte)((
          //                                 [76543210]
          //                  [_______________76543210]
           ((in[ 0 + inPos] & 8388607))) & 255);
      out[ 1 + outPos] = (byte)((
          //                                 [76543210]
          //                          [_______54321098________]
           ((in[ 0 + inPos] & 8388607) >>> 8)) & 255);
      out[ 2 + outPos] = (byte)((
          //                                 [_6543210]
          //                                  [2109876________________]
           ((in[ 0 + inPos] & 8388607) >>> 16)
        | //                                 [7_______]
          //           [______________________0]
           ((in[ 1 + inPos] & 8388607) <<  7)) & 255);
      out[ 3 + outPos] = (byte)((
          //                                 [76543210]
          //                   [______________87654321_]
           ((in[ 1 + inPos] & 8388607) >>> 1)) & 255);
      out[ 4 + outPos] = (byte)((
          //                                 [76543210]
          //                           [______65432109_________]
           ((in[ 1 + inPos] & 8388607) >>> 9)) & 255);
      out[ 5 + outPos] = (byte)((
          //                                 [__543210]
          //                                   [210987_________________]
           ((in[ 1 + inPos] & 8388607) >>> 17)
        | //                                 [76______]
          //            [_____________________10]
           ((in[ 2 + inPos] & 8388607) <<  6)) & 255);
      out[ 6 + outPos] = (byte)((
          //                                 [76543210]
          //                    [_____________98765432__]
           ((in[ 2 + inPos] & 8388607) >>> 2)) & 255);
      out[ 7 + outPos] = (byte)((
          //                                 [76543210]
          //                            [_____76543210__________]
           ((in[ 2 + inPos] & 8388607) >>> 10)) & 255);
      out[ 8 + outPos] = (byte)((
          //                                 [___43210]
          //                                    [21098__________________]
           ((in[ 2 + inPos] & 8388607) >>> 18)
        | //                                 [765_____]
          //             [____________________210]
           ((in[ 3 + inPos] & 8388607) <<  5)) & 255);
      out[ 9 + outPos] = (byte)((
          //                                 [76543210]
          //                     [____________09876543___]
           ((in[ 3 + inPos] & 8388607) >>> 3)) & 255);
      out[10 + outPos] = (byte)((
          //                                 [76543210]
          //                             [____87654321___________]
           ((in[ 3 + inPos] & 8388607) >>> 11)) & 255);
      out[11 + outPos] = (byte)((
          //                                 [____3210]
          //                                     [2109___________________]
           ((in[ 3 + inPos] & 8388607) >>> 19)
        | //                                 [7654____]
          //              [___________________3210]
           ((in[ 4 + inPos] & 8388607) <<  4)) & 255);
      out[12 + outPos] = (byte)((
          //                                 [76543210]
          //                      [___________10987654____]
           ((in[ 4 + inPos] & 8388607) >>> 4)) & 255);
      out[13 + outPos] = (byte)((
          //                                 [76543210]
          //                              [___98765432____________]
           ((in[ 4 + inPos] & 8388607) >>> 12)) & 255);
      out[14 + outPos] = (byte)((
          //                                 [_____210]
          //                                      [210____________________]
           ((in[ 4 + inPos] & 8388607) >>> 20)
        | //                                 [76543___]
          //               [__________________43210]
           ((in[ 5 + inPos] & 8388607) <<  3)) & 255);
      out[15 + outPos] = (byte)((
          //                                 [76543210]
          //                       [__________21098765_____]
           ((in[ 5 + inPos] & 8388607) >>> 5)) & 255);
      out[16 + outPos] = (byte)((
          //                                 [76543210]
          //                               [__09876543_____________]
           ((in[ 5 + inPos] & 8388607) >>> 13)) & 255);
      out[17 + outPos] = (byte)((
          //                                 [______10]
          //                                       [21_____________________]
           ((in[ 5 + inPos] & 8388607) >>> 21)
        | //                                 [765432__]
          //                [_________________543210]
           ((in[ 6 + inPos] & 8388607) <<  2)) & 255);
      out[18 + outPos] = (byte)((
          //                                 [76543210]
          //                        [_________32109876______]
           ((in[ 6 + inPos] & 8388607) >>> 6)) & 255);
      out[19 + outPos] = (byte)((
          //                                 [76543210]
          //                                [_10987654______________]
           ((in[ 6 + inPos] & 8388607) >>> 14)) & 255);
      out[20 + outPos] = (byte)((
          //                                 [_______0]
          //                                        [2______________________]
           ((in[ 6 + inPos] & 8388607) >>> 22)
        | //                                 [7654321_]
          //                 [________________6543210]
           ((in[ 7 + inPos] & 8388607) <<  1)) & 255);
      out[21 + outPos] = (byte)((
          //                                 [76543210]
          //                         [________43210987_______]
           ((in[ 7 + inPos] & 8388607) >>> 7)) & 255);
      out[22 + outPos] = (byte)((
          //                                 [76543210]
          //                                 [21098765_______________]
           ((in[ 7 + inPos] & 8388607) >>> 15)) & 255);
      out[23 + outPos] = (byte)((
          //                                 [76543210]
          //                  [_______________76543210]
           ((in[ 8 + inPos] & 8388607))) & 255);
      out[24 + outPos] = (byte)((
          //                                 [76543210]
          //                          [_______54321098________]
           ((in[ 8 + inPos] & 8388607) >>> 8)) & 255);
      out[25 + outPos] = (byte)((
          //                                 [_6543210]
          //                                  [2109876________________]
           ((in[ 8 + inPos] & 8388607) >>> 16)
        | //                                 [7_______]
          //           [______________________0]
           ((in[ 9 + inPos] & 8388607) <<  7)) & 255);
      out[26 + outPos] = (byte)((
          //                                 [76543210]
          //                   [______________87654321_]
           ((in[ 9 + inPos] & 8388607) >>> 1)) & 255);
      out[27 + outPos] = (byte)((
          //                                 [76543210]
          //                           [______65432109_________]
           ((in[ 9 + inPos] & 8388607) >>> 9)) & 255);
      out[28 + outPos] = (byte)((
          //                                 [__543210]
          //                                   [210987_________________]
           ((in[ 9 + inPos] & 8388607) >>> 17)
        | //                                 [76______]
          //            [_____________________10]
           ((in[10 + inPos] & 8388607) <<  6)) & 255);
      out[29 + outPos] = (byte)((
          //                                 [76543210]
          //                    [_____________98765432__]
           ((in[10 + inPos] & 8388607) >>> 2)) & 255);
      out[30 + outPos] = (byte)((
          //                                 [76543210]
          //                            [_____76543210__________]
           ((in[10 + inPos] & 8388607) >>> 10)) & 255);
      out[31 + outPos] = (byte)((
          //                                 [___43210]
          //                                    [21098__________________]
           ((in[10 + inPos] & 8388607) >>> 18)
        | //                                 [765_____]
          //             [____________________210]
           ((in[11 + inPos] & 8388607) <<  5)) & 255);
      out[32 + outPos] = (byte)((
          //                                 [76543210]
          //                     [____________09876543___]
           ((in[11 + inPos] & 8388607) >>> 3)) & 255);
      out[33 + outPos] = (byte)((
          //                                 [76543210]
          //                             [____87654321___________]
           ((in[11 + inPos] & 8388607) >>> 11)) & 255);
      out[34 + outPos] = (byte)((
          //                                 [____3210]
          //                                     [2109___________________]
           ((in[11 + inPos] & 8388607) >>> 19)
        | //                                 [7654____]
          //              [___________________3210]
           ((in[12 + inPos] & 8388607) <<  4)) & 255);
      out[35 + outPos] = (byte)((
          //                                 [76543210]
          //                      [___________10987654____]
           ((in[12 + inPos] & 8388607) >>> 4)) & 255);
      out[36 + outPos] = (byte)((
          //                                 [76543210]
          //                              [___98765432____________]
           ((in[12 + inPos] & 8388607) >>> 12)) & 255);
      out[37 + outPos] = (byte)((
          //                                 [_____210]
          //                                      [210____________________]
           ((in[12 + inPos] & 8388607) >>> 20)
        | //                                 [76543___]
          //               [__________________43210]
           ((in[13 + inPos] & 8388607) <<  3)) & 255);
      out[38 + outPos] = (byte)((
          //                                 [76543210]
          //                       [__________21098765_____]
           ((in[13 + inPos] & 8388607) >>> 5)) & 255);
      out[39 + outPos] = (byte)((
          //                                 [76543210]
          //                               [__09876543_____________]
           ((in[13 + inPos] & 8388607) >>> 13)) & 255);
      out[40 + outPos] = (byte)((
          //                                 [______10]
          //                                       [21_____________________]
           ((in[13 + inPos] & 8388607) >>> 21)
        | //                                 [765432__]
          //                [_________________543210]
           ((in[14 + inPos] & 8388607) <<  2)) & 255);
      out[41 + outPos] = (byte)((
          //                                 [76543210]
          //                        [_________32109876______]
           ((in[14 + inPos] & 8388607) >>> 6)) & 255);
      out[42 + outPos] = (byte)((
          //                                 [76543210]
          //                                [_10987654______________]
           ((in[14 + inPos] & 8388607) >>> 14)) & 255);
      out[43 + outPos] = (byte)((
          //                                 [_______0]
          //                                        [2______________________]
           ((in[14 + inPos] & 8388607) >>> 22)
        | //                                 [7654321_]
          //                 [________________6543210]
           ((in[15 + inPos] & 8388607) <<  1)) & 255);
      out[44 + outPos] = (byte)((
          //                                 [76543210]
          //                         [________43210987_______]
           ((in[15 + inPos] & 8388607) >>> 7)) & 255);
      out[45 + outPos] = (byte)((
          //                                 [76543210]
          //                                 [21098765_______________]
           ((in[15 + inPos] & 8388607) >>> 15)) & 255);
      out[46 + outPos] = (byte)((
          //                                 [76543210]
          //                  [_______________76543210]
           ((in[16 + inPos] & 8388607))) & 255);
      out[47 + outPos] = (byte)((
          //                                 [76543210]
          //                          [_______54321098________]
           ((in[16 + inPos] & 8388607) >>> 8)) & 255);
      out[48 + outPos] = (byte)((
          //                                 [_6543210]
          //                                  [2109876________________]
           ((in[16 + inPos] & 8388607) >>> 16)
        | //                                 [7_______]
          //           [______________________0]
           ((in[17 + inPos] & 8388607) <<  7)) & 255);
      out[49 + outPos] = (byte)((
          //                                 [76543210]
          //                   [______________87654321_]
           ((in[17 + inPos] & 8388607) >>> 1)) & 255);
      out[50 + outPos] = (byte)((
          //                                 [76543210]
          //                           [______65432109_________]
           ((in[17 + inPos] & 8388607) >>> 9)) & 255);
      out[51 + outPos] = (byte)((
          //                                 [__543210]
          //                                   [210987_________________]
           ((in[17 + inPos] & 8388607) >>> 17)
        | //                                 [76______]
          //            [_____________________10]
           ((in[18 + inPos] & 8388607) <<  6)) & 255);
      out[52 + outPos] = (byte)((
          //                                 [76543210]
          //                    [_____________98765432__]
           ((in[18 + inPos] & 8388607) >>> 2)) & 255);
      out[53 + outPos] = (byte)((
          //                                 [76543210]
          //                            [_____76543210__________]
           ((in[18 + inPos] & 8388607) >>> 10)) & 255);
      out[54 + outPos] = (byte)((
          //                                 [___43210]
          //                                    [21098__________________]
           ((in[18 + inPos] & 8388607) >>> 18)
        | //                                 [765_____]
          //             [____________________210]
           ((in[19 + inPos] & 8388607) <<  5)) & 255);
      out[55 + outPos] = (byte)((
          //                                 [76543210]
          //                     [____________09876543___]
           ((in[19 + inPos] & 8388607) >>> 3)) & 255);
      out[56 + outPos] = (byte)((
          //                                 [76543210]
          //                             [____87654321___________]
           ((in[19 + inPos] & 8388607) >>> 11)) & 255);
      out[57 + outPos] = (byte)((
          //                                 [____3210]
          //                                     [2109___________________]
           ((in[19 + inPos] & 8388607) >>> 19)
        | //                                 [7654____]
          //              [___________________3210]
           ((in[20 + inPos] & 8388607) <<  4)) & 255);
      out[58 + outPos] = (byte)((
          //                                 [76543210]
          //                      [___________10987654____]
           ((in[20 + inPos] & 8388607) >>> 4)) & 255);
      out[59 + outPos] = (byte)((
          //                                 [76543210]
          //                              [___98765432____________]
           ((in[20 + inPos] & 8388607) >>> 12)) & 255);
      out[60 + outPos] = (byte)((
          //                                 [_____210]
          //                                      [210____________________]
           ((in[20 + inPos] & 8388607) >>> 20)
        | //                                 [76543___]
          //               [__________________43210]
           ((in[21 + inPos] & 8388607) <<  3)) & 255);
      out[61 + outPos] = (byte)((
          //                                 [76543210]
          //                       [__________21098765_____]
           ((in[21 + inPos] & 8388607) >>> 5)) & 255);
      out[62 + outPos] = (byte)((
          //                                 [76543210]
          //                               [__09876543_____________]
           ((in[21 + inPos] & 8388607) >>> 13)) & 255);
      out[63 + outPos] = (byte)((
          //                                 [______10]
          //                                       [21_____________________]
           ((in[21 + inPos] & 8388607) >>> 21)
        | //                                 [765432__]
          //                [_________________543210]
           ((in[22 + inPos] & 8388607) <<  2)) & 255);
      out[64 + outPos] = (byte)((
          //                                 [76543210]
          //                        [_________32109876______]
           ((in[22 + inPos] & 8388607) >>> 6)) & 255);
      out[65 + outPos] = (byte)((
          //                                 [76543210]
          //                                [_10987654______________]
           ((in[22 + inPos] & 8388607) >>> 14)) & 255);
      out[66 + outPos] = (byte)((
          //                                 [_______0]
          //                                        [2______________________]
           ((in[22 + inPos] & 8388607) >>> 22)
        | //                                 [7654321_]
          //                 [________________6543210]
           ((in[23 + inPos] & 8388607) <<  1)) & 255);
      out[67 + outPos] = (byte)((
          //                                 [76543210]
          //                         [________43210987_______]
           ((in[23 + inPos] & 8388607) >>> 7)) & 255);
      out[68 + outPos] = (byte)((
          //                                 [76543210]
          //                                 [21098765_______________]
           ((in[23 + inPos] & 8388607) >>> 15)) & 255);
      out[69 + outPos] = (byte)((
          //                                 [76543210]
          //                  [_______________76543210]
           ((in[24 + inPos] & 8388607))) & 255);
      out[70 + outPos] = (byte)((
          //                                 [76543210]
          //                          [_______54321098________]
           ((in[24 + inPos] & 8388607) >>> 8)) & 255);
      out[71 + outPos] = (byte)((
          //                                 [_6543210]
          //                                  [2109876________________]
           ((in[24 + inPos] & 8388607) >>> 16)
        | //                                 [7_______]
          //           [______________________0]
           ((in[25 + inPos] & 8388607) <<  7)) & 255);
      out[72 + outPos] = (byte)((
          //                                 [76543210]
          //                   [______________87654321_]
           ((in[25 + inPos] & 8388607) >>> 1)) & 255);
      out[73 + outPos] = (byte)((
          //                                 [76543210]
          //                           [______65432109_________]
           ((in[25 + inPos] & 8388607) >>> 9)) & 255);
      out[74 + outPos] = (byte)((
          //                                 [__543210]
          //                                   [210987_________________]
           ((in[25 + inPos] & 8388607) >>> 17)
        | //                                 [76______]
          //            [_____________________10]
           ((in[26 + inPos] & 8388607) <<  6)) & 255);
      out[75 + outPos] = (byte)((
          //                                 [76543210]
          //                    [_____________98765432__]
           ((in[26 + inPos] & 8388607) >>> 2)) & 255);
      out[76 + outPos] = (byte)((
          //                                 [76543210]
          //                            [_____76543210__________]
           ((in[26 + inPos] & 8388607) >>> 10)) & 255);
      out[77 + outPos] = (byte)((
          //                                 [___43210]
          //                                    [21098__________________]
           ((in[26 + inPos] & 8388607) >>> 18)
        | //                                 [765_____]
          //             [____________________210]
           ((in[27 + inPos] & 8388607) <<  5)) & 255);
      out[78 + outPos] = (byte)((
          //                                 [76543210]
          //                     [____________09876543___]
           ((in[27 + inPos] & 8388607) >>> 3)) & 255);
      out[79 + outPos] = (byte)((
          //                                 [76543210]
          //                             [____87654321___________]
           ((in[27 + inPos] & 8388607) >>> 11)) & 255);
      out[80 + outPos] = (byte)((
          //                                 [____3210]
          //                                     [2109___________________]
           ((in[27 + inPos] & 8388607) >>> 19)
        | //                                 [7654____]
          //              [___________________3210]
           ((in[28 + inPos] & 8388607) <<  4)) & 255);
      out[81 + outPos] = (byte)((
          //                                 [76543210]
          //                      [___________10987654____]
           ((in[28 + inPos] & 8388607) >>> 4)) & 255);
      out[82 + outPos] = (byte)((
          //                                 [76543210]
          //                              [___98765432____________]
           ((in[28 + inPos] & 8388607) >>> 12)) & 255);
      out[83 + outPos] = (byte)((
          //                                 [_____210]
          //                                      [210____________________]
           ((in[28 + inPos] & 8388607) >>> 20)
        | //                                 [76543___]
          //               [__________________43210]
           ((in[29 + inPos] & 8388607) <<  3)) & 255);
      out[84 + outPos] = (byte)((
          //                                 [76543210]
          //                       [__________21098765_____]
           ((in[29 + inPos] & 8388607) >>> 5)) & 255);
      out[85 + outPos] = (byte)((
          //                                 [76543210]
          //                               [__09876543_____________]
           ((in[29 + inPos] & 8388607) >>> 13)) & 255);
      out[86 + outPos] = (byte)((
          //                                 [______10]
          //                                       [21_____________________]
           ((in[29 + inPos] & 8388607) >>> 21)
        | //                                 [765432__]
          //                [_________________543210]
           ((in[30 + inPos] & 8388607) <<  2)) & 255);
      out[87 + outPos] = (byte)((
          //                                 [76543210]
          //                        [_________32109876______]
           ((in[30 + inPos] & 8388607) >>> 6)) & 255);
      out[88 + outPos] = (byte)((
          //                                 [76543210]
          //                                [_10987654______________]
           ((in[30 + inPos] & 8388607) >>> 14)) & 255);
      out[89 + outPos] = (byte)((
          //                                 [_______0]
          //                                        [2______________________]
           ((in[30 + inPos] & 8388607) >>> 22)
        | //                                 [7654321_]
          //                 [________________6543210]
           ((in[31 + inPos] & 8388607) <<  1)) & 255);
      out[90 + outPos] = (byte)((
          //                                 [76543210]
          //                         [________43210987_______]
           ((in[31 + inPos] & 8388607) >>> 7)) & 255);
      out[91 + outPos] = (byte)((
          //                                 [76543210]
          //                                 [21098765_______________]
           ((in[31 + inPos] & 8388607) >>> 15)) & 255);
    }
    public final void unpack8Values(final byte[] in, final int inPos, final int[] out, final int outPos) {
      out[ 0 + outPos] =
          //                                 [76543210]
          //                  [_______________76543210]
            ((((int)in[ 0 + inPos]) ) & 255)
        | //                                 [76543210]
          //                          [_______54321098________]
            ((((int)in[ 1 + inPos]) <<  8) & 65535)
        | //                                 [_6543210]
          //                                  [2109876________________]
            ((((int)in[ 2 + inPos]) <<  16) & 8388607);
      out[ 1 + outPos] =
          //                                 [7_______]
          //           [______________________0]
            ((((int)in[ 2 + inPos]) >>  7) & 1)
        | //                                 [76543210]
          //                   [______________87654321_]
            ((((int)in[ 3 + inPos]) <<  1) & 511)
        | //                                 [76543210]
          //                           [______65432109_________]
            ((((int)in[ 4 + inPos]) <<  9) & 131071)
        | //                                 [__543210]
          //                                   [210987_________________]
            ((((int)in[ 5 + inPos]) <<  17) & 8388607);
      out[ 2 + outPos] =
          //                                 [76______]
          //            [_____________________10]
            ((((int)in[ 5 + inPos]) >>  6) & 3)
        | //                                 [76543210]
          //                    [_____________98765432__]
            ((((int)in[ 6 + inPos]) <<  2) & 1023)
        | //                                 [76543210]
          //                            [_____76543210__________]
            ((((int)in[ 7 + inPos]) <<  10) & 262143)
        | //                                 [___43210]
          //                                    [21098__________________]
            ((((int)in[ 8 + inPos]) <<  18) & 8388607);
      out[ 3 + outPos] =
          //                                 [765_____]
          //             [____________________210]
            ((((int)in[ 8 + inPos]) >>  5) & 7)
        | //                                 [76543210]
          //                     [____________09876543___]
            ((((int)in[ 9 + inPos]) <<  3) & 2047)
        | //                                 [76543210]
          //                             [____87654321___________]
            ((((int)in[10 + inPos]) <<  11) & 524287)
        | //                                 [____3210]
          //                                     [2109___________________]
            ((((int)in[11 + inPos]) <<  19) & 8388607);
      out[ 4 + outPos] =
          //                                 [7654____]
          //              [___________________3210]
            ((((int)in[11 + inPos]) >>  4) & 15)
        | //                                 [76543210]
          //                      [___________10987654____]
            ((((int)in[12 + inPos]) <<  4) & 4095)
        | //                                 [76543210]
          //                              [___98765432____________]
            ((((int)in[13 + inPos]) <<  12) & 1048575)
        | //                                 [_____210]
          //                                      [210____________________]
            ((((int)in[14 + inPos]) <<  20) & 8388607);
      out[ 5 + outPos] =
          //                                 [76543___]
          //               [__________________43210]
            ((((int)in[14 + inPos]) >>  3) & 31)
        | //                                 [76543210]
          //                       [__________21098765_____]
            ((((int)in[15 + inPos]) <<  5) & 8191)
        | //                                 [76543210]
          //                               [__09876543_____________]
            ((((int)in[16 + inPos]) <<  13) & 2097151)
        | //                                 [______10]
          //                                       [21_____________________]
            ((((int)in[17 + inPos]) <<  21) & 8388607);
      out[ 6 + outPos] =
          //                                 [765432__]
          //                [_________________543210]
            ((((int)in[17 + inPos]) >>  2) & 63)
        | //                                 [76543210]
          //                        [_________32109876______]
            ((((int)in[18 + inPos]) <<  6) & 16383)
        | //                                 [76543210]
          //                                [_10987654______________]
            ((((int)in[19 + inPos]) <<  14) & 4194303)
        | //                                 [_______0]
          //                                        [2______________________]
            ((((int)in[20 + inPos]) <<  22) & 8388607);
      out[ 7 + outPos] =
          //                                 [7654321_]
          //                 [________________6543210]
            ((((int)in[20 + inPos]) >>  1) & 127)
        | //                                 [76543210]
          //                         [________43210987_______]
            ((((int)in[21 + inPos]) <<  7) & 32767)
        | //                                 [76543210]
          //                                 [21098765_______________]
            ((((int)in[22 + inPos]) <<  15) & 8388607);
    }
    public final void unpack8Values(final ByteBuffer in, final int inPos, final int[] out, final int outPos) {
      out[ 0 + outPos] =
          //                                 [76543210]
          //                  [_______________76543210]
            ((((int)in.get( 0 + inPos)) ) & 255)
        | //                                 [76543210]
          //                          [_______54321098________]
            ((((int)in.get( 1 + inPos)) <<  8) & 65535)
        | //                                 [_6543210]
          //                                  [2109876________________]
            ((((int)in.get( 2 + inPos)) <<  16) & 8388607);
      out[ 1 + outPos] =
          //                                 [7_______]
          //           [______________________0]
            ((((int)in.get( 2 + inPos)) >>  7) & 1)
        | //                                 [76543210]
          //                   [______________87654321_]
            ((((int)in.get( 3 + inPos)) <<  1) & 511)
        | //                                 [76543210]
          //                           [______65432109_________]
            ((((int)in.get( 4 + inPos)) <<  9) & 131071)
        | //                                 [__543210]
          //                                   [210987_________________]
            ((((int)in.get( 5 + inPos)) <<  17) & 8388607);
      out[ 2 + outPos] =
          //                                 [76______]
          //            [_____________________10]
            ((((int)in.get( 5 + inPos)) >>  6) & 3)
        | //                                 [76543210]
          //                    [_____________98765432__]
            ((((int)in.get( 6 + inPos)) <<  2) & 1023)
        | //                                 [76543210]
          //                            [_____76543210__________]
            ((((int)in.get( 7 + inPos)) <<  10) & 262143)
        | //                                 [___43210]
          //                                    [21098__________________]
            ((((int)in.get( 8 + inPos)) <<  18) & 8388607);
      out[ 3 + outPos] =
          //                                 [765_____]
          //             [____________________210]
            ((((int)in.get( 8 + inPos)) >>  5) & 7)
        | //                                 [76543210]
          //                     [____________09876543___]
            ((((int)in.get( 9 + inPos)) <<  3) & 2047)
        | //                                 [76543210]
          //                             [____87654321___________]
            ((((int)in.get(10 + inPos)) <<  11) & 524287)
        | //                                 [____3210]
          //                                     [2109___________________]
            ((((int)in.get(11 + inPos)) <<  19) & 8388607);
      out[ 4 + outPos] =
          //                                 [7654____]
          //              [___________________3210]
            ((((int)in.get(11 + inPos)) >>  4) & 15)
        | //                                 [76543210]
          //                      [___________10987654____]
            ((((int)in.get(12 + inPos)) <<  4) & 4095)
        | //                                 [76543210]
          //                              [___98765432____________]
            ((((int)in.get(13 + inPos)) <<  12) & 1048575)
        | //                                 [_____210]
          //                                      [210____________________]
            ((((int)in.get(14 + inPos)) <<  20) & 8388607);
      out[ 5 + outPos] =
          //                                 [76543___]
          //               [__________________43210]
            ((((int)in.get(14 + inPos)) >>  3) & 31)
        | //                                 [76543210]
          //                       [__________21098765_____]
            ((((int)in.get(15 + inPos)) <<  5) & 8191)
        | //                                 [76543210]
          //                               [__09876543_____________]
            ((((int)in.get(16 + inPos)) <<  13) & 2097151)
        | //                                 [______10]
          //                                       [21_____________________]
            ((((int)in.get(17 + inPos)) <<  21) & 8388607);
      out[ 6 + outPos] =
          //                                 [765432__]
          //                [_________________543210]
            ((((int)in.get(17 + inPos)) >>  2) & 63)
        | //                                 [76543210]
          //                        [_________32109876______]
            ((((int)in.get(18 + inPos)) <<  6) & 16383)
        | //                                 [76543210]
          //                                [_10987654______________]
            ((((int)in.get(19 + inPos)) <<  14) & 4194303)
        | //                                 [_______0]
          //                                        [2______________________]
            ((((int)in.get(20 + inPos)) <<  22) & 8388607);
      out[ 7 + outPos] =
          //                                 [7654321_]
          //                 [________________6543210]
            ((((int)in.get(20 + inPos)) >>  1) & 127)
        | //                                 [76543210]
          //                         [________43210987_______]
            ((((int)in.get(21 + inPos)) <<  7) & 32767)
        | //                                 [76543210]
          //                                 [21098765_______________]
            ((((int)in.get(22 + inPos)) <<  15) & 8388607);
    }
    public final void unpack32Values(final byte[] in, final int inPos, final int[] out, final int outPos) {
      out[ 0 + outPos] =
          //                                 [76543210]
          //                  [_______________76543210]
            ((((int)in[ 0 + inPos]) ) & 255)
        | //                                 [76543210]
          //                          [_______54321098________]
            ((((int)in[ 1 + inPos]) <<  8) & 65535)
        | //                                 [_6543210]
          //                                  [2109876________________]
            ((((int)in[ 2 + inPos]) <<  16) & 8388607);
      out[ 1 + outPos] =
          //                                 [7_______]
          //           [______________________0]
            ((((int)in[ 2 + inPos]) >>  7) & 1)
        | //                                 [76543210]
          //                   [______________87654321_]
            ((((int)in[ 3 + inPos]) <<  1) & 511)
        | //                                 [76543210]
          //                           [______65432109_________]
            ((((int)in[ 4 + inPos]) <<  9) & 131071)
        | //                                 [__543210]
          //                                   [210987_________________]
            ((((int)in[ 5 + inPos]) <<  17) & 8388607);
      out[ 2 + outPos] =
          //                                 [76______]
          //            [_____________________10]
            ((((int)in[ 5 + inPos]) >>  6) & 3)
        | //                                 [76543210]
          //                    [_____________98765432__]
            ((((int)in[ 6 + inPos]) <<  2) & 1023)
        | //                                 [76543210]
          //                            [_____76543210__________]
            ((((int)in[ 7 + inPos]) <<  10) & 262143)
        | //                                 [___43210]
          //                                    [21098__________________]
            ((((int)in[ 8 + inPos]) <<  18) & 8388607);
      out[ 3 + outPos] =
          //                                 [765_____]
          //             [____________________210]
            ((((int)in[ 8 + inPos]) >>  5) & 7)
        | //                                 [76543210]
          //                     [____________09876543___]
            ((((int)in[ 9 + inPos]) <<  3) & 2047)
        | //                                 [76543210]
          //                             [____87654321___________]
            ((((int)in[10 + inPos]) <<  11) & 524287)
        | //                                 [____3210]
          //                                     [2109___________________]
            ((((int)in[11 + inPos]) <<  19) & 8388607);
      out[ 4 + outPos] =
          //                                 [7654____]
          //              [___________________3210]
            ((((int)in[11 + inPos]) >>  4) & 15)
        | //                                 [76543210]
          //                      [___________10987654____]
            ((((int)in[12 + inPos]) <<  4) & 4095)
        | //                                 [76543210]
          //                              [___98765432____________]
            ((((int)in[13 + inPos]) <<  12) & 1048575)
        | //                                 [_____210]
          //                                      [210____________________]
            ((((int)in[14 + inPos]) <<  20) & 8388607);
      out[ 5 + outPos] =
          //                                 [76543___]
          //               [__________________43210]
            ((((int)in[14 + inPos]) >>  3) & 31)
        | //                                 [76543210]
          //                       [__________21098765_____]
            ((((int)in[15 + inPos]) <<  5) & 8191)
        | //                                 [76543210]
          //                               [__09876543_____________]
            ((((int)in[16 + inPos]) <<  13) & 2097151)
        | //                                 [______10]
          //                                       [21_____________________]
            ((((int)in[17 + inPos]) <<  21) & 8388607);
      out[ 6 + outPos] =
          //                                 [765432__]
          //                [_________________543210]
            ((((int)in[17 + inPos]) >>  2) & 63)
        | //                                 [76543210]
          //                        [_________32109876______]
            ((((int)in[18 + inPos]) <<  6) & 16383)
        | //                                 [76543210]
          //                                [_10987654______________]
            ((((int)in[19 + inPos]) <<  14) & 4194303)
        | //                                 [_______0]
          //                                        [2______________________]
            ((((int)in[20 + inPos]) <<  22) & 8388607);
      out[ 7 + outPos] =
          //                                 [7654321_]
          //                 [________________6543210]
            ((((int)in[20 + inPos]) >>  1) & 127)
        | //                                 [76543210]
          //                         [________43210987_______]
            ((((int)in[21 + inPos]) <<  7) & 32767)
        | //                                 [76543210]
          //                                 [21098765_______________]
            ((((int)in[22 + inPos]) <<  15) & 8388607);
      out[ 8 + outPos] =
          //                                 [76543210]
          //                  [_______________76543210]
            ((((int)in[23 + inPos]) ) & 255)
        | //                                 [76543210]
          //                          [_______54321098________]
            ((((int)in[24 + inPos]) <<  8) & 65535)
        | //                                 [_6543210]
          //                                  [2109876________________]
            ((((int)in[25 + inPos]) <<  16) & 8388607);
      out[ 9 + outPos] =
          //                                 [7_______]
          //           [______________________0]
            ((((int)in[25 + inPos]) >>  7) & 1)
        | //                                 [76543210]
          //                   [______________87654321_]
            ((((int)in[26 + inPos]) <<  1) & 511)
        | //                                 [76543210]
          //                           [______65432109_________]
            ((((int)in[27 + inPos]) <<  9) & 131071)
        | //                                 [__543210]
          //                                   [210987_________________]
            ((((int)in[28 + inPos]) <<  17) & 8388607);
      out[10 + outPos] =
          //                                 [76______]
          //            [_____________________10]
            ((((int)in[28 + inPos]) >>  6) & 3)
        | //                                 [76543210]
          //                    [_____________98765432__]
            ((((int)in[29 + inPos]) <<  2) & 1023)
        | //                                 [76543210]
          //                            [_____76543210__________]
            ((((int)in[30 + inPos]) <<  10) & 262143)
        | //                                 [___43210]
          //                                    [21098__________________]
            ((((int)in[31 + inPos]) <<  18) & 8388607);
      out[11 + outPos] =
          //                                 [765_____]
          //             [____________________210]
            ((((int)in[31 + inPos]) >>  5) & 7)
        | //                                 [76543210]
          //                     [____________09876543___]
            ((((int)in[32 + inPos]) <<  3) & 2047)
        | //                                 [76543210]
          //                             [____87654321___________]
            ((((int)in[33 + inPos]) <<  11) & 524287)
        | //                                 [____3210]
          //                                     [2109___________________]
            ((((int)in[34 + inPos]) <<  19) & 8388607);
      out[12 + outPos] =
          //                                 [7654____]
          //              [___________________3210]
            ((((int)in[34 + inPos]) >>  4) & 15)
        | //                                 [76543210]
          //                      [___________10987654____]
            ((((int)in[35 + inPos]) <<  4) & 4095)
        | //                                 [76543210]
          //                              [___98765432____________]
            ((((int)in[36 + inPos]) <<  12) & 1048575)
        | //                                 [_____210]
          //                                      [210____________________]
            ((((int)in[37 + inPos]) <<  20) & 8388607);
      out[13 + outPos] =
          //                                 [76543___]
          //               [__________________43210]
            ((((int)in[37 + inPos]) >>  3) & 31)
        | //                                 [76543210]
          //                       [__________21098765_____]
            ((((int)in[38 + inPos]) <<  5) & 8191)
        | //                                 [76543210]
          //                               [__09876543_____________]
            ((((int)in[39 + inPos]) <<  13) & 2097151)
        | //                                 [______10]
          //                                       [21_____________________]
            ((((int)in[40 + inPos]) <<  21) & 8388607);
      out[14 + outPos] =
          //                                 [765432__]
          //                [_________________543210]
            ((((int)in[40 + inPos]) >>  2) & 63)
        | //                                 [76543210]
          //                        [_________32109876______]
            ((((int)in[41 + inPos]) <<  6) & 16383)
        | //                                 [76543210]
          //                                [_10987654______________]
            ((((int)in[42 + inPos]) <<  14) & 4194303)
        | //                                 [_______0]
          //                                        [2______________________]
            ((((int)in[43 + inPos]) <<  22) & 8388607);
      out[15 + outPos] =
          //                                 [7654321_]
          //                 [________________6543210]
            ((((int)in[43 + inPos]) >>  1) & 127)
        | //                                 [76543210]
          //                         [________43210987_______]
            ((((int)in[44 + inPos]) <<  7) & 32767)
        | //                                 [76543210]
          //                                 [21098765_______________]
            ((((int)in[45 + inPos]) <<  15) & 8388607);
      out[16 + outPos] =
          //                                 [76543210]
          //                  [_______________76543210]
            ((((int)in[46 + inPos]) ) & 255)
        | //                                 [76543210]
          //                          [_______54321098________]
            ((((int)in[47 + inPos]) <<  8) & 65535)
        | //                                 [_6543210]
          //                                  [2109876________________]
            ((((int)in[48 + inPos]) <<  16) & 8388607);
      out[17 + outPos] =
          //                                 [7_______]
          //           [______________________0]
            ((((int)in[48 + inPos]) >>  7) & 1)
        | //                                 [76543210]
          //                   [______________87654321_]
            ((((int)in[49 + inPos]) <<  1) & 511)
        | //                                 [76543210]
          //                           [______65432109_________]
            ((((int)in[50 + inPos]) <<  9) & 131071)
        | //                                 [__543210]
          //                                   [210987_________________]
            ((((int)in[51 + inPos]) <<  17) & 8388607);
      out[18 + outPos] =
          //                                 [76______]
          //            [_____________________10]
            ((((int)in[51 + inPos]) >>  6) & 3)
        | //                                 [76543210]
          //                    [_____________98765432__]
            ((((int)in[52 + inPos]) <<  2) & 1023)
        | //                                 [76543210]
          //                            [_____76543210__________]
            ((((int)in[53 + inPos]) <<  10) & 262143)
        | //                                 [___43210]
          //                                    [21098__________________]
            ((((int)in[54 + inPos]) <<  18) & 8388607);
      out[19 + outPos] =
          //                                 [765_____]
          //             [____________________210]
            ((((int)in[54 + inPos]) >>  5) & 7)
        | //                                 [76543210]
          //                     [____________09876543___]
            ((((int)in[55 + inPos]) <<  3) & 2047)
        | //                                 [76543210]
          //                             [____87654321___________]
            ((((int)in[56 + inPos]) <<  11) & 524287)
        | //                                 [____3210]
          //                                     [2109___________________]
            ((((int)in[57 + inPos]) <<  19) & 8388607);
      out[20 + outPos] =
          //                                 [7654____]
          //              [___________________3210]
            ((((int)in[57 + inPos]) >>  4) & 15)
        | //                                 [76543210]
          //                      [___________10987654____]
            ((((int)in[58 + inPos]) <<  4) & 4095)
        | //                                 [76543210]
          //                              [___98765432____________]
            ((((int)in[59 + inPos]) <<  12) & 1048575)
        | //                                 [_____210]
          //                                      [210____________________]
            ((((int)in[60 + inPos]) <<  20) & 8388607);
      out[21 + outPos] =
          //                                 [76543___]
          //               [__________________43210]
            ((((int)in[60 + inPos]) >>  3) & 31)
        | //                                 [76543210]
          //                       [__________21098765_____]
            ((((int)in[61 + inPos]) <<  5) & 8191)
        | //                                 [76543210]
          //                               [__09876543_____________]
            ((((int)in[62 + inPos]) <<  13) & 2097151)
        | //                                 [______10]
          //                                       [21_____________________]
            ((((int)in[63 + inPos]) <<  21) & 8388607);
      out[22 + outPos] =
          //                                 [765432__]
          //                [_________________543210]
            ((((int)in[63 + inPos]) >>  2) & 63)
        | //                                 [76543210]
          //                        [_________32109876______]
            ((((int)in[64 + inPos]) <<  6) & 16383)
        | //                                 [76543210]
          //                                [_10987654______________]
            ((((int)in[65 + inPos]) <<  14) & 4194303)
        | //                                 [_______0]
          //                                        [2______________________]
            ((((int)in[66 + inPos]) <<  22) & 8388607);
      out[23 + outPos] =
          //                                 [7654321_]
          //                 [________________6543210]
            ((((int)in[66 + inPos]) >>  1) & 127)
        | //                                 [76543210]
          //                         [________43210987_______]
            ((((int)in[67 + inPos]) <<  7) & 32767)
        | //                                 [76543210]
          //                                 [21098765_______________]
            ((((int)in[68 + inPos]) <<  15) & 8388607);
      out[24 + outPos] =
          //                                 [76543210]
          //                  [_______________76543210]
            ((((int)in[69 + inPos]) ) & 255)
        | //                                 [76543210]
          //                          [_______54321098________]
            ((((int)in[70 + inPos]) <<  8) & 65535)
        | //                                 [_6543210]
          //                                  [2109876________________]
            ((((int)in[71 + inPos]) <<  16) & 8388607);
      out[25 + outPos] =
          //                                 [7_______]
          //           [______________________0]
            ((((int)in[71 + inPos]) >>  7) & 1)
        | //                                 [76543210]
          //                   [______________87654321_]
            ((((int)in[72 + inPos]) <<  1) & 511)
        | //                                 [76543210]
          //                           [______65432109_________]
            ((((int)in[73 + inPos]) <<  9) & 131071)
        | //                                 [__543210]
          //                                   [210987_________________]
            ((((int)in[74 + inPos]) <<  17) & 8388607);
      out[26 + outPos] =
          //                                 [76______]
          //            [_____________________10]
            ((((int)in[74 + inPos]) >>  6) & 3)
        | //                                 [76543210]
          //                    [_____________98765432__]
            ((((int)in[75 + inPos]) <<  2) & 1023)
        | //                                 [76543210]
          //                            [_____76543210__________]
            ((((int)in[76 + inPos]) <<  10) & 262143)
        | //                                 [___43210]
          //                                    [21098__________________]
            ((((int)in[77 + inPos]) <<  18) & 8388607);
      out[27 + outPos] =
          //                                 [765_____]
          //             [____________________210]
            ((((int)in[77 + inPos]) >>  5) & 7)
        | //                                 [76543210]
          //                     [____________09876543___]
            ((((int)in[78 + inPos]) <<  3) & 2047)
        | //                                 [76543210]
          //                             [____87654321___________]
            ((((int)in[79 + inPos]) <<  11) & 524287)
        | //                                 [____3210]
          //                                     [2109___________________]
            ((((int)in[80 + inPos]) <<  19) & 8388607);
      out[28 + outPos] =
          //                                 [7654____]
          //              [___________________3210]
            ((((int)in[80 + inPos]) >>  4) & 15)
        | //                                 [76543210]
          //                      [___________10987654____]
            ((((int)in[81 + inPos]) <<  4) & 4095)
        | //                                 [76543210]
          //                              [___98765432____________]
            ((((int)in[82 + inPos]) <<  12) & 1048575)
        | //                                 [_____210]
          //                                      [210____________________]
            ((((int)in[83 + inPos]) <<  20) & 8388607);
      out[29 + outPos] =
          //                                 [76543___]
          //               [__________________43210]
            ((((int)in[83 + inPos]) >>  3) & 31)
        | //                                 [76543210]
          //                       [__________21098765_____]
            ((((int)in[84 + inPos]) <<  5) & 8191)
        | //                                 [76543210]
          //                               [__09876543_____________]
            ((((int)in[85 + inPos]) <<  13) & 2097151)
        | //                                 [______10]
          //                                       [21_____________________]
            ((((int)in[86 + inPos]) <<  21) & 8388607);
      out[30 + outPos] =
          //                                 [765432__]
          //                [_________________543210]
            ((((int)in[86 + inPos]) >>  2) & 63)
        | //                                 [76543210]
          //                        [_________32109876______]
            ((((int)in[87 + inPos]) <<  6) & 16383)
        | //                                 [76543210]
          //                                [_10987654______________]
            ((((int)in[88 + inPos]) <<  14) & 4194303)
        | //                                 [_______0]
          //                                        [2______________________]
            ((((int)in[89 + inPos]) <<  22) & 8388607);
      out[31 + outPos] =
          //                                 [7654321_]
          //                 [________________6543210]
            ((((int)in[89 + inPos]) >>  1) & 127)
        | //                                 [76543210]
          //                         [________43210987_______]
            ((((int)in[90 + inPos]) <<  7) & 32767)
        | //                                 [76543210]
          //                                 [21098765_______________]
            ((((int)in[91 + inPos]) <<  15) & 8388607);
    }
    public final void unpack32Values(final ByteBuffer in, final int inPos, final int[] out, final int outPos) {
      out[ 0 + outPos] =
          //                                 [76543210]
          //                  [_______________76543210]
            ((((int)in.get( 0 + inPos)) ) & 255)
        | //                                 [76543210]
          //                          [_______54321098________]
            ((((int)in.get( 1 + inPos)) <<  8) & 65535)
        | //                                 [_6543210]
          //                                  [2109876________________]
            ((((int)in.get( 2 + inPos)) <<  16) & 8388607);
      out[ 1 + outPos] =
          //                                 [7_______]
          //           [______________________0]
            ((((int)in.get( 2 + inPos)) >>  7) & 1)
        | //                                 [76543210]
          //                   [______________87654321_]
            ((((int)in.get( 3 + inPos)) <<  1) & 511)
        | //                                 [76543210]
          //                           [______65432109_________]
            ((((int)in.get( 4 + inPos)) <<  9) & 131071)
        | //                                 [__543210]
          //                                   [210987_________________]
            ((((int)in.get( 5 + inPos)) <<  17) & 8388607);
      out[ 2 + outPos] =
          //                                 [76______]
          //            [_____________________10]
            ((((int)in.get( 5 + inPos)) >>  6) & 3)
        | //                                 [76543210]
          //                    [_____________98765432__]
            ((((int)in.get( 6 + inPos)) <<  2) & 1023)
        | //                                 [76543210]
          //                            [_____76543210__________]
            ((((int)in.get( 7 + inPos)) <<  10) & 262143)
        | //                                 [___43210]
          //                                    [21098__________________]
            ((((int)in.get( 8 + inPos)) <<  18) & 8388607);
      out[ 3 + outPos] =
          //                                 [765_____]
          //             [____________________210]
            ((((int)in.get( 8 + inPos)) >>  5) & 7)
        | //                                 [76543210]
          //                     [____________09876543___]
            ((((int)in.get( 9 + inPos)) <<  3) & 2047)
        | //                                 [76543210]
          //                             [____87654321___________]
            ((((int)in.get(10 + inPos)) <<  11) & 524287)
        | //                                 [____3210]
          //                                     [2109___________________]
            ((((int)in.get(11 + inPos)) <<  19) & 8388607);
      out[ 4 + outPos] =
          //                                 [7654____]
          //              [___________________3210]
            ((((int)in.get(11 + inPos)) >>  4) & 15)
        | //                                 [76543210]
          //                      [___________10987654____]
            ((((int)in.get(12 + inPos)) <<  4) & 4095)
        | //                                 [76543210]
          //                              [___98765432____________]
            ((((int)in.get(13 + inPos)) <<  12) & 1048575)
        | //                                 [_____210]
          //                                      [210____________________]
            ((((int)in.get(14 + inPos)) <<  20) & 8388607);
      out[ 5 + outPos] =
          //                                 [76543___]
          //               [__________________43210]
            ((((int)in.get(14 + inPos)) >>  3) & 31)
        | //                                 [76543210]
          //                       [__________21098765_____]
            ((((int)in.get(15 + inPos)) <<  5) & 8191)
        | //                                 [76543210]
          //                               [__09876543_____________]
            ((((int)in.get(16 + inPos)) <<  13) & 2097151)
        | //                                 [______10]
          //                                       [21_____________________]
            ((((int)in.get(17 + inPos)) <<  21) & 8388607);
      out[ 6 + outPos] =
          //                                 [765432__]
          //                [_________________543210]
            ((((int)in.get(17 + inPos)) >>  2) & 63)
        | //                                 [76543210]
          //                        [_________32109876______]
            ((((int)in.get(18 + inPos)) <<  6) & 16383)
        | //                                 [76543210]
          //                                [_10987654______________]
            ((((int)in.get(19 + inPos)) <<  14) & 4194303)
        | //                                 [_______0]
          //                                        [2______________________]
            ((((int)in.get(20 + inPos)) <<  22) & 8388607);
      out[ 7 + outPos] =
          //                                 [7654321_]
          //                 [________________6543210]
            ((((int)in.get(20 + inPos)) >>  1) & 127)
        | //                                 [76543210]
          //                         [________43210987_______]
            ((((int)in.get(21 + inPos)) <<  7) & 32767)
        | //                                 [76543210]
          //                                 [21098765_______________]
            ((((int)in.get(22 + inPos)) <<  15) & 8388607);
      out[ 8 + outPos] =
          //                                 [76543210]
          //                  [_______________76543210]
            ((((int)in.get(23 + inPos)) ) & 255)
        | //                                 [76543210]
          //                          [_______54321098________]
            ((((int)in.get(24 + inPos)) <<  8) & 65535)
        | //                                 [_6543210]
          //                                  [2109876________________]
            ((((int)in.get(25 + inPos)) <<  16) & 8388607);
      out[ 9 + outPos] =
          //                                 [7_______]
          //           [______________________0]
            ((((int)in.get(25 + inPos)) >>  7) & 1)
        | //                                 [76543210]
          //                   [______________87654321_]
            ((((int)in.get(26 + inPos)) <<  1) & 511)
        | //                                 [76543210]
          //                           [______65432109_________]
            ((((int)in.get(27 + inPos)) <<  9) & 131071)
        | //                                 [__543210]
          //                                   [210987_________________]
            ((((int)in.get(28 + inPos)) <<  17) & 8388607);
      out[10 + outPos] =
          //                                 [76______]
          //            [_____________________10]
            ((((int)in.get(28 + inPos)) >>  6) & 3)
        | //                                 [76543210]
          //                    [_____________98765432__]
            ((((int)in.get(29 + inPos)) <<  2) & 1023)
        | //                                 [76543210]
          //                            [_____76543210__________]
            ((((int)in.get(30 + inPos)) <<  10) & 262143)
        | //                                 [___43210]
          //                                    [21098__________________]
            ((((int)in.get(31 + inPos)) <<  18) & 8388607);
      out[11 + outPos] =
          //                                 [765_____]
          //             [____________________210]
            ((((int)in.get(31 + inPos)) >>  5) & 7)
        | //                                 [76543210]
          //                     [____________09876543___]
            ((((int)in.get(32 + inPos)) <<  3) & 2047)
        | //                                 [76543210]
          //                             [____87654321___________]
            ((((int)in.get(33 + inPos)) <<  11) & 524287)
        | //                                 [____3210]
          //                                     [2109___________________]
            ((((int)in.get(34 + inPos)) <<  19) & 8388607);
      out[12 + outPos] =
          //                                 [7654____]
          //              [___________________3210]
            ((((int)in.get(34 + inPos)) >>  4) & 15)
        | //                                 [76543210]
          //                      [___________10987654____]
            ((((int)in.get(35 + inPos)) <<  4) & 4095)
        | //                                 [76543210]
          //                              [___98765432____________]
            ((((int)in.get(36 + inPos)) <<  12) & 1048575)
        | //                                 [_____210]
          //                                      [210____________________]
            ((((int)in.get(37 + inPos)) <<  20) & 8388607);
      out[13 + outPos] =
          //                                 [76543___]
          //               [__________________43210]
            ((((int)in.get(37 + inPos)) >>  3) & 31)
        | //                                 [76543210]
          //                       [__________21098765_____]
            ((((int)in.get(38 + inPos)) <<  5) & 8191)
        | //                                 [76543210]
          //                               [__09876543_____________]
            ((((int)in.get(39 + inPos)) <<  13) & 2097151)
        | //                                 [______10]
          //                                       [21_____________________]
            ((((int)in.get(40 + inPos)) <<  21) & 8388607);
      out[14 + outPos] =
          //                                 [765432__]
          //                [_________________543210]
            ((((int)in.get(40 + inPos)) >>  2) & 63)
        | //                                 [76543210]
          //                        [_________32109876______]
            ((((int)in.get(41 + inPos)) <<  6) & 16383)
        | //                                 [76543210]
          //                                [_10987654______________]
            ((((int)in.get(42 + inPos)) <<  14) & 4194303)
        | //                                 [_______0]
          //                                        [2______________________]
            ((((int)in.get(43 + inPos)) <<  22) & 8388607);
      out[15 + outPos] =
          //                                 [7654321_]
          //                 [________________6543210]
            ((((int)in.get(43 + inPos)) >>  1) & 127)
        | //                                 [76543210]
          //                         [________43210987_______]
            ((((int)in.get(44 + inPos)) <<  7) & 32767)
        | //                                 [76543210]
          //                                 [21098765_______________]
            ((((int)in.get(45 + inPos)) <<  15) & 8388607);
      out[16 + outPos] =
          //                                 [76543210]
          //                  [_______________76543210]
            ((((int)in.get(46 + inPos)) ) & 255)
        | //                                 [76543210]
          //                          [_______54321098________]
            ((((int)in.get(47 + inPos)) <<  8) & 65535)
        | //                                 [_6543210]
          //                                  [2109876________________]
            ((((int)in.get(48 + inPos)) <<  16) & 8388607);
      out[17 + outPos] =
          //                                 [7_______]
          //           [______________________0]
            ((((int)in.get(48 + inPos)) >>  7) & 1)
        | //                                 [76543210]
          //                   [______________87654321_]
            ((((int)in.get(49 + inPos)) <<  1) & 511)
        | //                                 [76543210]
          //                           [______65432109_________]
            ((((int)in.get(50 + inPos)) <<  9) & 131071)
        | //                                 [__543210]
          //                                   [210987_________________]
            ((((int)in.get(51 + inPos)) <<  17) & 8388607);
      out[18 + outPos] =
          //                                 [76______]
          //            [_____________________10]
            ((((int)in.get(51 + inPos)) >>  6) & 3)
        | //                                 [76543210]
          //                    [_____________98765432__]
            ((((int)in.get(52 + inPos)) <<  2) & 1023)
        | //                                 [76543210]
          //                            [_____76543210__________]
            ((((int)in.get(53 + inPos)) <<  10) & 262143)
        | //                                 [___43210]
          //                                    [21098__________________]
            ((((int)in.get(54 + inPos)) <<  18) & 8388607);
      out[19 + outPos] =
          //                                 [765_____]
          //             [____________________210]
            ((((int)in.get(54 + inPos)) >>  5) & 7)
        | //                                 [76543210]
          //                     [____________09876543___]
            ((((int)in.get(55 + inPos)) <<  3) & 2047)
        | //                                 [76543210]
          //                             [____87654321___________]
            ((((int)in.get(56 + inPos)) <<  11) & 524287)
        | //                                 [____3210]
          //                                     [2109___________________]
            ((((int)in.get(57 + inPos)) <<  19) & 8388607);
      out[20 + outPos] =
          //                                 [7654____]
          //              [___________________3210]
            ((((int)in.get(57 + inPos)) >>  4) & 15)
        | //                                 [76543210]
          //                      [___________10987654____]
            ((((int)in.get(58 + inPos)) <<  4) & 4095)
        | //                                 [76543210]
          //                              [___98765432____________]
            ((((int)in.get(59 + inPos)) <<  12) & 1048575)
        | //                                 [_____210]
          //                                      [210____________________]
            ((((int)in.get(60 + inPos)) <<  20) & 8388607);
      out[21 + outPos] =
          //                                 [76543___]
          //               [__________________43210]
            ((((int)in.get(60 + inPos)) >>  3) & 31)
        | //                                 [76543210]
          //                       [__________21098765_____]
            ((((int)in.get(61 + inPos)) <<  5) & 8191)
        | //                                 [76543210]
          //                               [__09876543_____________]
            ((((int)in.get(62 + inPos)) <<  13) & 2097151)
        | //                                 [______10]
          //                                       [21_____________________]
            ((((int)in.get(63 + inPos)) <<  21) & 8388607);
      out[22 + outPos] =
          //                                 [765432__]
          //                [_________________543210]
            ((((int)in.get(63 + inPos)) >>  2) & 63)
        | //                                 [76543210]
          //                        [_________32109876______]
            ((((int)in.get(64 + inPos)) <<  6) & 16383)
        | //                                 [76543210]
          //                                [_10987654______________]
            ((((int)in.get(65 + inPos)) <<  14) & 4194303)
        | //                                 [_______0]
          //                                        [2______________________]
            ((((int)in.get(66 + inPos)) <<  22) & 8388607);
      out[23 + outPos] =
          //                                 [7654321_]
          //                 [________________6543210]
            ((((int)in.get(66 + inPos)) >>  1) & 127)
        | //                                 [76543210]
          //                         [________43210987_______]
            ((((int)in.get(67 + inPos)) <<  7) & 32767)
        | //                                 [76543210]
          //                                 [21098765_______________]
            ((((int)in.get(68 + inPos)) <<  15) & 8388607);
      out[24 + outPos] =
          //                                 [76543210]
          //                  [_______________76543210]
            ((((int)in.get(69 + inPos)) ) & 255)
        | //                                 [76543210]
          //                          [_______54321098________]
            ((((int)in.get(70 + inPos)) <<  8) & 65535)
        | //                                 [_6543210]
          //                                  [2109876________________]
            ((((int)in.get(71 + inPos)) <<  16) & 8388607);
      out[25 + outPos] =
          //                                 [7_______]
          //           [______________________0]
            ((((int)in.get(71 + inPos)) >>  7) & 1)
        | //                                 [76543210]
          //                   [______________87654321_]
            ((((int)in.get(72 + inPos)) <<  1) & 511)
        | //                                 [76543210]
          //                           [______65432109_________]
            ((((int)in.get(73 + inPos)) <<  9) & 131071)
        | //                                 [__543210]
          //                                   [210987_________________]
            ((((int)in.get(74 + inPos)) <<  17) & 8388607);
      out[26 + outPos] =
          //                                 [76______]
          //            [_____________________10]
            ((((int)in.get(74 + inPos)) >>  6) & 3)
        | //                                 [76543210]
          //                    [_____________98765432__]
            ((((int)in.get(75 + inPos)) <<  2) & 1023)
        | //                                 [76543210]
          //                            [_____76543210__________]
            ((((int)in.get(76 + inPos)) <<  10) & 262143)
        | //                                 [___43210]
          //                                    [21098__________________]
            ((((int)in.get(77 + inPos)) <<  18) & 8388607);
      out[27 + outPos] =
          //                                 [765_____]
          //             [____________________210]
            ((((int)in.get(77 + inPos)) >>  5) & 7)
        | //                                 [76543210]
          //                     [____________09876543___]
            ((((int)in.get(78 + inPos)) <<  3) & 2047)
        | //                                 [76543210]
          //                             [____87654321___________]
            ((((int)in.get(79 + inPos)) <<  11) & 524287)
        | //                                 [____3210]
          //                                     [2109___________________]
            ((((int)in.get(80 + inPos)) <<  19) & 8388607);
      out[28 + outPos] =
          //                                 [7654____]
          //              [___________________3210]
            ((((int)in.get(80 + inPos)) >>  4) & 15)
        | //                                 [76543210]
          //                      [___________10987654____]
            ((((int)in.get(81 + inPos)) <<  4) & 4095)
        | //                                 [76543210]
          //                              [___98765432____________]
            ((((int)in.get(82 + inPos)) <<  12) & 1048575)
        | //                                 [_____210]
          //                                      [210____________________]
            ((((int)in.get(83 + inPos)) <<  20) & 8388607);
      out[29 + outPos] =
          //                                 [76543___]
          //               [__________________43210]
            ((((int)in.get(83 + inPos)) >>  3) & 31)
        | //                                 [76543210]
          //                       [__________21098765_____]
            ((((int)in.get(84 + inPos)) <<  5) & 8191)
        | //                                 [76543210]
          //                               [__09876543_____________]
            ((((int)in.get(85 + inPos)) <<  13) & 2097151)
        | //                                 [______10]
          //                                       [21_____________________]
            ((((int)in.get(86 + inPos)) <<  21) & 8388607);
      out[30 + outPos] =
          //                                 [765432__]
          //                [_________________543210]
            ((((int)in.get(86 + inPos)) >>  2) & 63)
        | //                                 [76543210]
          //                        [_________32109876______]
            ((((int)in.get(87 + inPos)) <<  6) & 16383)
        | //                                 [76543210]
          //                                [_10987654______________]
            ((((int)in.get(88 + inPos)) <<  14) & 4194303)
        | //                                 [_______0]
          //                                        [2______________________]
            ((((int)in.get(89 + inPos)) <<  22) & 8388607);
      out[31 + outPos] =
          //                                 [7654321_]
          //                 [________________6543210]
            ((((int)in.get(89 + inPos)) >>  1) & 127)
        | //                                 [76543210]
          //                         [________43210987_______]
            ((((int)in.get(90 + inPos)) <<  7) & 32767)
        | //                                 [76543210]
          //                                 [21098765_______________]
            ((((int)in.get(91 + inPos)) <<  15) & 8388607);
    }
  }

  private static final class Packer24 extends BytePacker {

    private Packer24() {
      super(24);
    }

    public final void pack8Values(final int[] in, final int inPos, final byte[] out, final int outPos) {
      out[ 0 + outPos] = (byte)((
          //                                  [76543210]
          //                  [________________76543210]
           ((in[ 0 + inPos] & 16777215))) & 255);
      out[ 1 + outPos] = (byte)((
          //                                  [76543210]
          //                          [________54321098________]
           ((in[ 0 + inPos] & 16777215) >>> 8)) & 255);
      out[ 2 + outPos] = (byte)((
          //                                  [76543210]
          //                                  [32109876________________]
           ((in[ 0 + inPos] & 16777215) >>> 16)) & 255);
      out[ 3 + outPos] = (byte)((
          //                                  [76543210]
          //                  [________________76543210]
           ((in[ 1 + inPos] & 16777215))) & 255);
      out[ 4 + outPos] = (byte)((
          //                                  [76543210]
          //                          [________54321098________]
           ((in[ 1 + inPos] & 16777215) >>> 8)) & 255);
      out[ 5 + outPos] = (byte)((
          //                                  [76543210]
          //                                  [32109876________________]
           ((in[ 1 + inPos] & 16777215) >>> 16)) & 255);
      out[ 6 + outPos] = (byte)((
          //                                  [76543210]
          //                  [________________76543210]
           ((in[ 2 + inPos] & 16777215))) & 255);
      out[ 7 + outPos] = (byte)((
          //                                  [76543210]
          //                          [________54321098________]
           ((in[ 2 + inPos] & 16777215) >>> 8)) & 255);
      out[ 8 + outPos] = (byte)((
          //                                  [76543210]
          //                                  [32109876________________]
           ((in[ 2 + inPos] & 16777215) >>> 16)) & 255);
      out[ 9 + outPos] = (byte)((
          //                                  [76543210]
          //                  [________________76543210]
           ((in[ 3 + inPos] & 16777215))) & 255);
      out[10 + outPos] = (byte)((
          //                                  [76543210]
          //                          [________54321098________]
           ((in[ 3 + inPos] & 16777215) >>> 8)) & 255);
      out[11 + outPos] = (byte)((
          //                                  [76543210]
          //                                  [32109876________________]
           ((in[ 3 + inPos] & 16777215) >>> 16)) & 255);
      out[12 + outPos] = (byte)((
          //                                  [76543210]
          //                  [________________76543210]
           ((in[ 4 + inPos] & 16777215))) & 255);
      out[13 + outPos] = (byte)((
          //                                  [76543210]
          //                          [________54321098________]
           ((in[ 4 + inPos] & 16777215) >>> 8)) & 255);
      out[14 + outPos] = (byte)((
          //                                  [76543210]
          //                                  [32109876________________]
           ((in[ 4 + inPos] & 16777215) >>> 16)) & 255);
      out[15 + outPos] = (byte)((
          //                                  [76543210]
          //                  [________________76543210]
           ((in[ 5 + inPos] & 16777215))) & 255);
      out[16 + outPos] = (byte)((
          //                                  [76543210]
          //                          [________54321098________]
           ((in[ 5 + inPos] & 16777215) >>> 8)) & 255);
      out[17 + outPos] = (byte)((
          //                                  [76543210]
          //                                  [32109876________________]
           ((in[ 5 + inPos] & 16777215) >>> 16)) & 255);
      out[18 + outPos] = (byte)((
          //                                  [76543210]
          //                  [________________76543210]
           ((in[ 6 + inPos] & 16777215))) & 255);
      out[19 + outPos] = (byte)((
          //                                  [76543210]
          //                          [________54321098________]
           ((in[ 6 + inPos] & 16777215) >>> 8)) & 255);
      out[20 + outPos] = (byte)((
          //                                  [76543210]
          //                                  [32109876________________]
           ((in[ 6 + inPos] & 16777215) >>> 16)) & 255);
      out[21 + outPos] = (byte)((
          //                                  [76543210]
          //                  [________________76543210]
           ((in[ 7 + inPos] & 16777215))) & 255);
      out[22 + outPos] = (byte)((
          //                                  [76543210]
          //                          [________54321098________]
           ((in[ 7 + inPos] & 16777215) >>> 8)) & 255);
      out[23 + outPos] = (byte)((
          //                                  [76543210]
          //                                  [32109876________________]
           ((in[ 7 + inPos] & 16777215) >>> 16)) & 255);
    }
    public final void pack32Values(final int[] in, final int inPos, final byte[] out, final int outPos) {
      out[ 0 + outPos] = (byte)((
          //                                  [76543210]
          //                  [________________76543210]
           ((in[ 0 + inPos] & 16777215))) & 255);
      out[ 1 + outPos] = (byte)((
          //                                  [76543210]
          //                          [________54321098________]
           ((in[ 0 + inPos] & 16777215) >>> 8)) & 255);
      out[ 2 + outPos] = (byte)((
          //                                  [76543210]
          //                                  [32109876________________]
           ((in[ 0 + inPos] & 16777215) >>> 16)) & 255);
      out[ 3 + outPos] = (byte)((
          //                                  [76543210]
          //                  [________________76543210]
           ((in[ 1 + inPos] & 16777215))) & 255);
      out[ 4 + outPos] = (byte)((
          //                                  [76543210]
          //                          [________54321098________]
           ((in[ 1 + inPos] & 16777215) >>> 8)) & 255);
      out[ 5 + outPos] = (byte)((
          //                                  [76543210]
          //                                  [32109876________________]
           ((in[ 1 + inPos] & 16777215) >>> 16)) & 255);
      out[ 6 + outPos] = (byte)((
          //                                  [76543210]
          //                  [________________76543210]
           ((in[ 2 + inPos] & 16777215))) & 255);
      out[ 7 + outPos] = (byte)((
          //                                  [76543210]
          //                          [________54321098________]
           ((in[ 2 + inPos] & 16777215) >>> 8)) & 255);
      out[ 8 + outPos] = (byte)((
          //                                  [76543210]
          //                                  [32109876________________]
           ((in[ 2 + inPos] & 16777215) >>> 16)) & 255);
      out[ 9 + outPos] = (byte)((
          //                                  [76543210]
          //                  [________________76543210]
           ((in[ 3 + inPos] & 16777215))) & 255);
      out[10 + outPos] = (byte)((
          //                                  [76543210]
          //                          [________54321098________]
           ((in[ 3 + inPos] & 16777215) >>> 8)) & 255);
      out[11 + outPos] = (byte)((
          //                                  [76543210]
          //                                  [32109876________________]
           ((in[ 3 + inPos] & 16777215) >>> 16)) & 255);
      out[12 + outPos] = (byte)((
          //                                  [76543210]
          //                  [________________76543210]
           ((in[ 4 + inPos] & 16777215))) & 255);
      out[13 + outPos] = (byte)((
          //                                  [76543210]
          //                          [________54321098________]
           ((in[ 4 + inPos] & 16777215) >>> 8)) & 255);
      out[14 + outPos] = (byte)((
          //                                  [76543210]
          //                                  [32109876________________]
           ((in[ 4 + inPos] & 16777215) >>> 16)) & 255);
      out[15 + outPos] = (byte)((
          //                                  [76543210]
          //                  [________________76543210]
           ((in[ 5 + inPos] & 16777215))) & 255);
      out[16 + outPos] = (byte)((
          //                                  [76543210]
          //                          [________54321098________]
           ((in[ 5 + inPos] & 16777215) >>> 8)) & 255);
      out[17 + outPos] = (byte)((
          //                                  [76543210]
          //                                  [32109876________________]
           ((in[ 5 + inPos] & 16777215) >>> 16)) & 255);
      out[18 + outPos] = (byte)((
          //                                  [76543210]
          //                  [________________76543210]
           ((in[ 6 + inPos] & 16777215))) & 255);
      out[19 + outPos] = (byte)((
          //                                  [76543210]
          //                          [________54321098________]
           ((in[ 6 + inPos] & 16777215) >>> 8)) & 255);
      out[20 + outPos] = (byte)((
          //                                  [76543210]
          //                                  [32109876________________]
           ((in[ 6 + inPos] & 16777215) >>> 16)) & 255);
      out[21 + outPos] = (byte)((
          //                                  [76543210]
          //                  [________________76543210]
           ((in[ 7 + inPos] & 16777215))) & 255);
      out[22 + outPos] = (byte)((
          //                                  [76543210]
          //                          [________54321098________]
           ((in[ 7 + inPos] & 16777215) >>> 8)) & 255);
      out[23 + outPos] = (byte)((
          //                                  [76543210]
          //                                  [32109876________________]
           ((in[ 7 + inPos] & 16777215) >>> 16)) & 255);
      out[24 + outPos] = (byte)((
          //                                  [76543210]
          //                  [________________76543210]
           ((in[ 8 + inPos] & 16777215))) & 255);
      out[25 + outPos] = (byte)((
          //                                  [76543210]
          //                          [________54321098________]
           ((in[ 8 + inPos] & 16777215) >>> 8)) & 255);
      out[26 + outPos] = (byte)((
          //                                  [76543210]
          //                                  [32109876________________]
           ((in[ 8 + inPos] & 16777215) >>> 16)) & 255);
      out[27 + outPos] = (byte)((
          //                                  [76543210]
          //                  [________________76543210]
           ((in[ 9 + inPos] & 16777215))) & 255);
      out[28 + outPos] = (byte)((
          //                                  [76543210]
          //                          [________54321098________]
           ((in[ 9 + inPos] & 16777215) >>> 8)) & 255);
      out[29 + outPos] = (byte)((
          //                                  [76543210]
          //                                  [32109876________________]
           ((in[ 9 + inPos] & 16777215) >>> 16)) & 255);
      out[30 + outPos] = (byte)((
          //                                  [76543210]
          //                  [________________76543210]
           ((in[10 + inPos] & 16777215))) & 255);
      out[31 + outPos] = (byte)((
          //                                  [76543210]
          //                          [________54321098________]
           ((in[10 + inPos] & 16777215) >>> 8)) & 255);
      out[32 + outPos] = (byte)((
          //                                  [76543210]
          //                                  [32109876________________]
           ((in[10 + inPos] & 16777215) >>> 16)) & 255);
      out[33 + outPos] = (byte)((
          //                                  [76543210]
          //                  [________________76543210]
           ((in[11 + inPos] & 16777215))) & 255);
      out[34 + outPos] = (byte)((
          //                                  [76543210]
          //                          [________54321098________]
           ((in[11 + inPos] & 16777215) >>> 8)) & 255);
      out[35 + outPos] = (byte)((
          //                                  [76543210]
          //                                  [32109876________________]
           ((in[11 + inPos] & 16777215) >>> 16)) & 255);
      out[36 + outPos] = (byte)((
          //                                  [76543210]
          //                  [________________76543210]
           ((in[12 + inPos] & 16777215))) & 255);
      out[37 + outPos] = (byte)((
          //                                  [76543210]
          //                          [________54321098________]
           ((in[12 + inPos] & 16777215) >>> 8)) & 255);
      out[38 + outPos] = (byte)((
          //                                  [76543210]
          //                                  [32109876________________]
           ((in[12 + inPos] & 16777215) >>> 16)) & 255);
      out[39 + outPos] = (byte)((
          //                                  [76543210]
          //                  [________________76543210]
           ((in[13 + inPos] & 16777215))) & 255);
      out[40 + outPos] = (byte)((
          //                                  [76543210]
          //                          [________54321098________]
           ((in[13 + inPos] & 16777215) >>> 8)) & 255);
      out[41 + outPos] = (byte)((
          //                                  [76543210]
          //                                  [32109876________________]
           ((in[13 + inPos] & 16777215) >>> 16)) & 255);
      out[42 + outPos] = (byte)((
          //                                  [76543210]
          //                  [________________76543210]
           ((in[14 + inPos] & 16777215))) & 255);
      out[43 + outPos] = (byte)((
          //                                  [76543210]
          //                          [________54321098________]
           ((in[14 + inPos] & 16777215) >>> 8)) & 255);
      out[44 + outPos] = (byte)((
          //                                  [76543210]
          //                                  [32109876________________]
           ((in[14 + inPos] & 16777215) >>> 16)) & 255);
      out[45 + outPos] = (byte)((
          //                                  [76543210]
          //                  [________________76543210]
           ((in[15 + inPos] & 16777215))) & 255);
      out[46 + outPos] = (byte)((
          //                                  [76543210]
          //                          [________54321098________]
           ((in[15 + inPos] & 16777215) >>> 8)) & 255);
      out[47 + outPos] = (byte)((
          //                                  [76543210]
          //                                  [32109876________________]
           ((in[15 + inPos] & 16777215) >>> 16)) & 255);
      out[48 + outPos] = (byte)((
          //                                  [76543210]
          //                  [________________76543210]
           ((in[16 + inPos] & 16777215))) & 255);
      out[49 + outPos] = (byte)((
          //                                  [76543210]
          //                          [________54321098________]
           ((in[16 + inPos] & 16777215) >>> 8)) & 255);
      out[50 + outPos] = (byte)((
          //                                  [76543210]
          //                                  [32109876________________]
           ((in[16 + inPos] & 16777215) >>> 16)) & 255);
      out[51 + outPos] = (byte)((
          //                                  [76543210]
          //                  [________________76543210]
           ((in[17 + inPos] & 16777215))) & 255);
      out[52 + outPos] = (byte)((
          //                                  [76543210]
          //                          [________54321098________]
           ((in[17 + inPos] & 16777215) >>> 8)) & 255);
      out[53 + outPos] = (byte)((
          //                                  [76543210]
          //                                  [32109876________________]
           ((in[17 + inPos] & 16777215) >>> 16)) & 255);
      out[54 + outPos] = (byte)((
          //                                  [76543210]
          //                  [________________76543210]
           ((in[18 + inPos] & 16777215))) & 255);
      out[55 + outPos] = (byte)((
          //                                  [76543210]
          //                          [________54321098________]
           ((in[18 + inPos] & 16777215) >>> 8)) & 255);
      out[56 + outPos] = (byte)((
          //                                  [76543210]
          //                                  [32109876________________]
           ((in[18 + inPos] & 16777215) >>> 16)) & 255);
      out[57 + outPos] = (byte)((
          //                                  [76543210]
          //                  [________________76543210]
           ((in[19 + inPos] & 16777215))) & 255);
      out[58 + outPos] = (byte)((
          //                                  [76543210]
          //                          [________54321098________]
           ((in[19 + inPos] & 16777215) >>> 8)) & 255);
      out[59 + outPos] = (byte)((
          //                                  [76543210]
          //                                  [32109876________________]
           ((in[19 + inPos] & 16777215) >>> 16)) & 255);
      out[60 + outPos] = (byte)((
          //                                  [76543210]
          //                  [________________76543210]
           ((in[20 + inPos] & 16777215))) & 255);
      out[61 + outPos] = (byte)((
          //                                  [76543210]
          //                          [________54321098________]
           ((in[20 + inPos] & 16777215) >>> 8)) & 255);
      out[62 + outPos] = (byte)((
          //                                  [76543210]
          //                                  [32109876________________]
           ((in[20 + inPos] & 16777215) >>> 16)) & 255);
      out[63 + outPos] = (byte)((
          //                                  [76543210]
          //                  [________________76543210]
           ((in[21 + inPos] & 16777215))) & 255);
      out[64 + outPos] = (byte)((
          //                                  [76543210]
          //                          [________54321098________]
           ((in[21 + inPos] & 16777215) >>> 8)) & 255);
      out[65 + outPos] = (byte)((
          //                                  [76543210]
          //                                  [32109876________________]
           ((in[21 + inPos] & 16777215) >>> 16)) & 255);
      out[66 + outPos] = (byte)((
          //                                  [76543210]
          //                  [________________76543210]
           ((in[22 + inPos] & 16777215))) & 255);
      out[67 + outPos] = (byte)((
          //                                  [76543210]
          //                          [________54321098________]
           ((in[22 + inPos] & 16777215) >>> 8)) & 255);
      out[68 + outPos] = (byte)((
          //                                  [76543210]
          //                                  [32109876________________]
           ((in[22 + inPos] & 16777215) >>> 16)) & 255);
      out[69 + outPos] = (byte)((
          //                                  [76543210]
          //                  [________________76543210]
           ((in[23 + inPos] & 16777215))) & 255);
      out[70 + outPos] = (byte)((
          //                                  [76543210]
          //                          [________54321098________]
           ((in[23 + inPos] & 16777215) >>> 8)) & 255);
      out[71 + outPos] = (byte)((
          //                                  [76543210]
          //                                  [32109876________________]
           ((in[23 + inPos] & 16777215) >>> 16)) & 255);
      out[72 + outPos] = (byte)((
          //                                  [76543210]
          //                  [________________76543210]
           ((in[24 + inPos] & 16777215))) & 255);
      out[73 + outPos] = (byte)((
          //                                  [76543210]
          //                          [________54321098________]
           ((in[24 + inPos] & 16777215) >>> 8)) & 255);
      out[74 + outPos] = (byte)((
          //                                  [76543210]
          //                                  [32109876________________]
           ((in[24 + inPos] & 16777215) >>> 16)) & 255);
      out[75 + outPos] = (byte)((
          //                                  [76543210]
          //                  [________________76543210]
           ((in[25 + inPos] & 16777215))) & 255);
      out[76 + outPos] = (byte)((
          //                                  [76543210]
          //                          [________54321098________]
           ((in[25 + inPos] & 16777215) >>> 8)) & 255);
      out[77 + outPos] = (byte)((
          //                                  [76543210]
          //                                  [32109876________________]
           ((in[25 + inPos] & 16777215) >>> 16)) & 255);
      out[78 + outPos] = (byte)((
          //                                  [76543210]
          //                  [________________76543210]
           ((in[26 + inPos] & 16777215))) & 255);
      out[79 + outPos] = (byte)((
          //                                  [76543210]
          //                          [________54321098________]
           ((in[26 + inPos] & 16777215) >>> 8)) & 255);
      out[80 + outPos] = (byte)((
          //                                  [76543210]
          //                                  [32109876________________]
           ((in[26 + inPos] & 16777215) >>> 16)) & 255);
      out[81 + outPos] = (byte)((
          //                                  [76543210]
          //                  [________________76543210]
           ((in[27 + inPos] & 16777215))) & 255);
      out[82 + outPos] = (byte)((
          //                                  [76543210]
          //                          [________54321098________]
           ((in[27 + inPos] & 16777215) >>> 8)) & 255);
      out[83 + outPos] = (byte)((
          //                                  [76543210]
          //                                  [32109876________________]
           ((in[27 + inPos] & 16777215) >>> 16)) & 255);
      out[84 + outPos] = (byte)((
          //                                  [76543210]
          //                  [________________76543210]
           ((in[28 + inPos] & 16777215))) & 255);
      out[85 + outPos] = (byte)((
          //                                  [76543210]
          //                          [________54321098________]
           ((in[28 + inPos] & 16777215) >>> 8)) & 255);
      out[86 + outPos] = (byte)((
          //                                  [76543210]
          //                                  [32109876________________]
           ((in[28 + inPos] & 16777215) >>> 16)) & 255);
      out[87 + outPos] = (byte)((
          //                                  [76543210]
          //                  [________________76543210]
           ((in[29 + inPos] & 16777215))) & 255);
      out[88 + outPos] = (byte)((
          //                                  [76543210]
          //                          [________54321098________]
           ((in[29 + inPos] & 16777215) >>> 8)) & 255);
      out[89 + outPos] = (byte)((
          //                                  [76543210]
          //                                  [32109876________________]
           ((in[29 + inPos] & 16777215) >>> 16)) & 255);
      out[90 + outPos] = (byte)((
          //                                  [76543210]
          //                  [________________76543210]
           ((in[30 + inPos] & 16777215))) & 255);
      out[91 + outPos] = (byte)((
          //                                  [76543210]
          //                          [________54321098________]
           ((in[30 + inPos] & 16777215) >>> 8)) & 255);
      out[92 + outPos] = (byte)((
          //                                  [76543210]
          //                                  [32109876________________]
           ((in[30 + inPos] & 16777215) >>> 16)) & 255);
      out[93 + outPos] = (byte)((
          //                                  [76543210]
          //                  [________________76543210]
           ((in[31 + inPos] & 16777215))) & 255);
      out[94 + outPos] = (byte)((
          //                                  [76543210]
          //                          [________54321098________]
           ((in[31 + inPos] & 16777215) >>> 8)) & 255);
      out[95 + outPos] = (byte)((
          //                                  [76543210]
          //                                  [32109876________________]
           ((in[31 + inPos] & 16777215) >>> 16)) & 255);
    }
    public final void unpack8Values(final byte[] in, final int inPos, final int[] out, final int outPos) {
      out[ 0 + outPos] =
          //                                  [76543210]
          //                  [________________76543210]
            ((((int)in[ 0 + inPos]) ) & 255)
        | //                                  [76543210]
          //                          [________54321098________]
            ((((int)in[ 1 + inPos]) <<  8) & 65535)
        | //                                  [76543210]
          //                                  [32109876________________]
            ((((int)in[ 2 + inPos]) <<  16) & 16777215);
      out[ 1 + outPos] =
          //                                  [76543210]
          //                  [________________76543210]
            ((((int)in[ 3 + inPos]) ) & 255)
        | //                                  [76543210]
          //                          [________54321098________]
            ((((int)in[ 4 + inPos]) <<  8) & 65535)
        | //                                  [76543210]
          //                                  [32109876________________]
            ((((int)in[ 5 + inPos]) <<  16) & 16777215);
      out[ 2 + outPos] =
          //                                  [76543210]
          //                  [________________76543210]
            ((((int)in[ 6 + inPos]) ) & 255)
        | //                                  [76543210]
          //                          [________54321098________]
            ((((int)in[ 7 + inPos]) <<  8) & 65535)
        | //                                  [76543210]
          //                                  [32109876________________]
            ((((int)in[ 8 + inPos]) <<  16) & 16777215);
      out[ 3 + outPos] =
          //                                  [76543210]
          //                  [________________76543210]
            ((((int)in[ 9 + inPos]) ) & 255)
        | //                                  [76543210]
          //                          [________54321098________]
            ((((int)in[10 + inPos]) <<  8) & 65535)
        | //                                  [76543210]
          //                                  [32109876________________]
            ((((int)in[11 + inPos]) <<  16) & 16777215);
      out[ 4 + outPos] =
          //                                  [76543210]
          //                  [________________76543210]
            ((((int)in[12 + inPos]) ) & 255)
        | //                                  [76543210]
          //                          [________54321098________]
            ((((int)in[13 + inPos]) <<  8) & 65535)
        | //                                  [76543210]
          //                                  [32109876________________]
            ((((int)in[14 + inPos]) <<  16) & 16777215);
      out[ 5 + outPos] =
          //                                  [76543210]
          //                  [________________76543210]
            ((((int)in[15 + inPos]) ) & 255)
        | //                                  [76543210]
          //                          [________54321098________]
            ((((int)in[16 + inPos]) <<  8) & 65535)
        | //                                  [76543210]
          //                                  [32109876________________]
            ((((int)in[17 + inPos]) <<  16) & 16777215);
      out[ 6 + outPos] =
          //                                  [76543210]
          //                  [________________76543210]
            ((((int)in[18 + inPos]) ) & 255)
        | //                                  [76543210]
          //                          [________54321098________]
            ((((int)in[19 + inPos]) <<  8) & 65535)
        | //                                  [76543210]
          //                                  [32109876________________]
            ((((int)in[20 + inPos]) <<  16) & 16777215);
      out[ 7 + outPos] =
          //                                  [76543210]
          //                  [________________76543210]
            ((((int)in[21 + inPos]) ) & 255)
        | //                                  [76543210]
          //                          [________54321098________]
            ((((int)in[22 + inPos]) <<  8) & 65535)
        | //                                  [76543210]
          //                                  [32109876________________]
            ((((int)in[23 + inPos]) <<  16) & 16777215);
    }
    public final void unpack8Values(final ByteBuffer in, final int inPos, final int[] out, final int outPos) {
      out[ 0 + outPos] =
          //                                  [76543210]
          //                  [________________76543210]
            ((((int)in.get( 0 + inPos)) ) & 255)
        | //                                  [76543210]
          //                          [________54321098________]
            ((((int)in.get( 1 + inPos)) <<  8) & 65535)
        | //                                  [76543210]
          //                                  [32109876________________]
            ((((int)in.get( 2 + inPos)) <<  16) & 16777215);
      out[ 1 + outPos] =
          //                                  [76543210]
          //                  [________________76543210]
            ((((int)in.get( 3 + inPos)) ) & 255)
        | //                                  [76543210]
          //                          [________54321098________]
            ((((int)in.get( 4 + inPos)) <<  8) & 65535)
        | //                                  [76543210]
          //                                  [32109876________________]
            ((((int)in.get( 5 + inPos)) <<  16) & 16777215);
      out[ 2 + outPos] =
          //                                  [76543210]
          //                  [________________76543210]
            ((((int)in.get( 6 + inPos)) ) & 255)
        | //                                  [76543210]
          //                          [________54321098________]
            ((((int)in.get( 7 + inPos)) <<  8) & 65535)
        | //                                  [76543210]
          //                                  [32109876________________]
            ((((int)in.get( 8 + inPos)) <<  16) & 16777215);
      out[ 3 + outPos] =
          //                                  [76543210]
          //                  [________________76543210]
            ((((int)in.get( 9 + inPos)) ) & 255)
        | //                                  [76543210]
          //                          [________54321098________]
            ((((int)in.get(10 + inPos)) <<  8) & 65535)
        | //                                  [76543210]
          //                                  [32109876________________]
            ((((int)in.get(11 + inPos)) <<  16) & 16777215);
      out[ 4 + outPos] =
          //                                  [76543210]
          //                  [________________76543210]
            ((((int)in.get(12 + inPos)) ) & 255)
        | //                                  [76543210]
          //                          [________54321098________]
            ((((int)in.get(13 + inPos)) <<  8) & 65535)
        | //                                  [76543210]
          //                                  [32109876________________]
            ((((int)in.get(14 + inPos)) <<  16) & 16777215);
      out[ 5 + outPos] =
          //                                  [76543210]
          //                  [________________76543210]
            ((((int)in.get(15 + inPos)) ) & 255)
        | //                                  [76543210]
          //                          [________54321098________]
            ((((int)in.get(16 + inPos)) <<  8) & 65535)
        | //                                  [76543210]
          //                                  [32109876________________]
            ((((int)in.get(17 + inPos)) <<  16) & 16777215);
      out[ 6 + outPos] =
          //                                  [76543210]
          //                  [________________76543210]
            ((((int)in.get(18 + inPos)) ) & 255)
        | //                                  [76543210]
          //                          [________54321098________]
            ((((int)in.get(19 + inPos)) <<  8) & 65535)
        | //                                  [76543210]
          //                                  [32109876________________]
            ((((int)in.get(20 + inPos)) <<  16) & 16777215);
      out[ 7 + outPos] =
          //                                  [76543210]
          //                  [________________76543210]
            ((((int)in.get(21 + inPos)) ) & 255)
        | //                                  [76543210]
          //                          [________54321098________]
            ((((int)in.get(22 + inPos)) <<  8) & 65535)
        | //                                  [76543210]
          //                                  [32109876________________]
            ((((int)in.get(23 + inPos)) <<  16) & 16777215);
    }
    public final void unpack32Values(final byte[] in, final int inPos, final int[] out, final int outPos) {
      out[ 0 + outPos] =
          //                                  [76543210]
          //                  [________________76543210]
            ((((int)in[ 0 + inPos]) ) & 255)
        | //                                  [76543210]
          //                          [________54321098________]
            ((((int)in[ 1 + inPos]) <<  8) & 65535)
        | //                                  [76543210]
          //                                  [32109876________________]
            ((((int)in[ 2 + inPos]) <<  16) & 16777215);
      out[ 1 + outPos] =
          //                                  [76543210]
          //                  [________________76543210]
            ((((int)in[ 3 + inPos]) ) & 255)
        | //                                  [76543210]
          //                          [________54321098________]
            ((((int)in[ 4 + inPos]) <<  8) & 65535)
        | //                                  [76543210]
          //                                  [32109876________________]
            ((((int)in[ 5 + inPos]) <<  16) & 16777215);
      out[ 2 + outPos] =
          //                                  [76543210]
          //                  [________________76543210]
            ((((int)in[ 6 + inPos]) ) & 255)
        | //                                  [76543210]
          //                          [________54321098________]
            ((((int)in[ 7 + inPos]) <<  8) & 65535)
        | //                                  [76543210]
          //                                  [32109876________________]
            ((((int)in[ 8 + inPos]) <<  16) & 16777215);
      out[ 3 + outPos] =
          //                                  [76543210]
          //                  [________________76543210]
            ((((int)in[ 9 + inPos]) ) & 255)
        | //                                  [76543210]
          //                          [________54321098________]
            ((((int)in[10 + inPos]) <<  8) & 65535)
        | //                                  [76543210]
          //                                  [32109876________________]
            ((((int)in[11 + inPos]) <<  16) & 16777215);
      out[ 4 + outPos] =
          //                                  [76543210]
          //                  [________________76543210]
            ((((int)in[12 + inPos]) ) & 255)
        | //                                  [76543210]
          //                          [________54321098________]
            ((((int)in[13 + inPos]) <<  8) & 65535)
        | //                                  [76543210]
          //                                  [32109876________________]
            ((((int)in[14 + inPos]) <<  16) & 16777215);
      out[ 5 + outPos] =
          //                                  [76543210]
          //                  [________________76543210]
            ((((int)in[15 + inPos]) ) & 255)
        | //                                  [76543210]
          //                          [________54321098________]
            ((((int)in[16 + inPos]) <<  8) & 65535)
        | //                                  [76543210]
          //                                  [32109876________________]
            ((((int)in[17 + inPos]) <<  16) & 16777215);
      out[ 6 + outPos] =
          //                                  [76543210]
          //                  [________________76543210]
            ((((int)in[18 + inPos]) ) & 255)
        | //                                  [76543210]
          //                          [________54321098________]
            ((((int)in[19 + inPos]) <<  8) & 65535)
        | //                                  [76543210]
          //                                  [32109876________________]
            ((((int)in[20 + inPos]) <<  16) & 16777215);
      out[ 7 + outPos] =
          //                                  [76543210]
          //                  [________________76543210]
            ((((int)in[21 + inPos]) ) & 255)
        | //                                  [76543210]
          //                          [________54321098________]
            ((((int)in[22 + inPos]) <<  8) & 65535)
        | //                                  [76543210]
          //                                  [32109876________________]
            ((((int)in[23 + inPos]) <<  16) & 16777215);
      out[ 8 + outPos] =
          //                                  [76543210]
          //                  [________________76543210]
            ((((int)in[24 + inPos]) ) & 255)
        | //                                  [76543210]
          //                          [________54321098________]
            ((((int)in[25 + inPos]) <<  8) & 65535)
        | //                                  [76543210]
          //                                  [32109876________________]
            ((((int)in[26 + inPos]) <<  16) & 16777215);
      out[ 9 + outPos] =
          //                                  [76543210]
          //                  [________________76543210]
            ((((int)in[27 + inPos]) ) & 255)
        | //                                  [76543210]
          //                          [________54321098________]
            ((((int)in[28 + inPos]) <<  8) & 65535)
        | //                                  [76543210]
          //                                  [32109876________________]
            ((((int)in[29 + inPos]) <<  16) & 16777215);
      out[10 + outPos] =
          //                                  [76543210]
          //                  [________________76543210]
            ((((int)in[30 + inPos]) ) & 255)
        | //                                  [76543210]
          //                          [________54321098________]
            ((((int)in[31 + inPos]) <<  8) & 65535)
        | //                                  [76543210]
          //                                  [32109876________________]
            ((((int)in[32 + inPos]) <<  16) & 16777215);
      out[11 + outPos] =
          //                                  [76543210]
          //                  [________________76543210]
            ((((int)in[33 + inPos]) ) & 255)
        | //                                  [76543210]
          //                          [________54321098________]
            ((((int)in[34 + inPos]) <<  8) & 65535)
        | //                                  [76543210]
          //                                  [32109876________________]
            ((((int)in[35 + inPos]) <<  16) & 16777215);
      out[12 + outPos] =
          //                                  [76543210]
          //                  [________________76543210]
            ((((int)in[36 + inPos]) ) & 255)
        | //                                  [76543210]
          //                          [________54321098________]
            ((((int)in[37 + inPos]) <<  8) & 65535)
        | //                                  [76543210]
          //                                  [32109876________________]
            ((((int)in[38 + inPos]) <<  16) & 16777215);
      out[13 + outPos] =
          //                                  [76543210]
          //                  [________________76543210]
            ((((int)in[39 + inPos]) ) & 255)
        | //                                  [76543210]
          //                          [________54321098________]
            ((((int)in[40 + inPos]) <<  8) & 65535)
        | //                                  [76543210]
          //                                  [32109876________________]
            ((((int)in[41 + inPos]) <<  16) & 16777215);
      out[14 + outPos] =
          //                                  [76543210]
          //                  [________________76543210]
            ((((int)in[42 + inPos]) ) & 255)
        | //                                  [76543210]
          //                          [________54321098________]
            ((((int)in[43 + inPos]) <<  8) & 65535)
        | //                                  [76543210]
          //                                  [32109876________________]
            ((((int)in[44 + inPos]) <<  16) & 16777215);
      out[15 + outPos] =
          //                                  [76543210]
          //                  [________________76543210]
            ((((int)in[45 + inPos]) ) & 255)
        | //                                  [76543210]
          //                          [________54321098________]
            ((((int)in[46 + inPos]) <<  8) & 65535)
        | //                                  [76543210]
          //                                  [32109876________________]
            ((((int)in[47 + inPos]) <<  16) & 16777215);
      out[16 + outPos] =
          //                                  [76543210]
          //                  [________________76543210]
            ((((int)in[48 + inPos]) ) & 255)
        | //                                  [76543210]
          //                          [________54321098________]
            ((((int)in[49 + inPos]) <<  8) & 65535)
        | //                                  [76543210]
          //                                  [32109876________________]
            ((((int)in[50 + inPos]) <<  16) & 16777215);
      out[17 + outPos] =
          //                                  [76543210]
          //                  [________________76543210]
            ((((int)in[51 + inPos]) ) & 255)
        | //                                  [76543210]
          //                          [________54321098________]
            ((((int)in[52 + inPos]) <<  8) & 65535)
        | //                                  [76543210]
          //                                  [32109876________________]
            ((((int)in[53 + inPos]) <<  16) & 16777215);
      out[18 + outPos] =
          //                                  [76543210]
          //                  [________________76543210]
            ((((int)in[54 + inPos]) ) & 255)
        | //                                  [76543210]
          //                          [________54321098________]
            ((((int)in[55 + inPos]) <<  8) & 65535)
        | //                                  [76543210]
          //                                  [32109876________________]
            ((((int)in[56 + inPos]) <<  16) & 16777215);
      out[19 + outPos] =
          //                                  [76543210]
          //                  [________________76543210]
            ((((int)in[57 + inPos]) ) & 255)
        | //                                  [76543210]
          //                          [________54321098________]
            ((((int)in[58 + inPos]) <<  8) & 65535)
        | //                                  [76543210]
          //                                  [32109876________________]
            ((((int)in[59 + inPos]) <<  16) & 16777215);
      out[20 + outPos] =
          //                                  [76543210]
          //                  [________________76543210]
            ((((int)in[60 + inPos]) ) & 255)
        | //                                  [76543210]
          //                          [________54321098________]
            ((((int)in[61 + inPos]) <<  8) & 65535)
        | //                                  [76543210]
          //                                  [32109876________________]
            ((((int)in[62 + inPos]) <<  16) & 16777215);
      out[21 + outPos] =
          //                                  [76543210]
          //                  [________________76543210]
            ((((int)in[63 + inPos]) ) & 255)
        | //                                  [76543210]
          //                          [________54321098________]
            ((((int)in[64 + inPos]) <<  8) & 65535)
        | //                                  [76543210]
          //                                  [32109876________________]
            ((((int)in[65 + inPos]) <<  16) & 16777215);
      out[22 + outPos] =
          //                                  [76543210]
          //                  [________________76543210]
            ((((int)in[66 + inPos]) ) & 255)
        | //                                  [76543210]
          //                          [________54321098________]
            ((((int)in[67 + inPos]) <<  8) & 65535)
        | //                                  [76543210]
          //                                  [32109876________________]
            ((((int)in[68 + inPos]) <<  16) & 16777215);
      out[23 + outPos] =
          //                                  [76543210]
          //                  [________________76543210]
            ((((int)in[69 + inPos]) ) & 255)
        | //                                  [76543210]
          //                          [________54321098________]
            ((((int)in[70 + inPos]) <<  8) & 65535)
        | //                                  [76543210]
          //                                  [32109876________________]
            ((((int)in[71 + inPos]) <<  16) & 16777215);
      out[24 + outPos] =
          //                                  [76543210]
          //                  [________________76543210]
            ((((int)in[72 + inPos]) ) & 255)
        | //                                  [76543210]
          //                          [________54321098________]
            ((((int)in[73 + inPos]) <<  8) & 65535)
        | //                                  [76543210]
          //                                  [32109876________________]
            ((((int)in[74 + inPos]) <<  16) & 16777215);
      out[25 + outPos] =
          //                                  [76543210]
          //                  [________________76543210]
            ((((int)in[75 + inPos]) ) & 255)
        | //                                  [76543210]
          //                          [________54321098________]
            ((((int)in[76 + inPos]) <<  8) & 65535)
        | //                                  [76543210]
          //                                  [32109876________________]
            ((((int)in[77 + inPos]) <<  16) & 16777215);
      out[26 + outPos] =
          //                                  [76543210]
          //                  [________________76543210]
            ((((int)in[78 + inPos]) ) & 255)
        | //                                  [76543210]
          //                          [________54321098________]
            ((((int)in[79 + inPos]) <<  8) & 65535)
        | //                                  [76543210]
          //                                  [32109876________________]
            ((((int)in[80 + inPos]) <<  16) & 16777215);
      out[27 + outPos] =
          //                                  [76543210]
          //                  [________________76543210]
            ((((int)in[81 + inPos]) ) & 255)
        | //                                  [76543210]
          //                          [________54321098________]
            ((((int)in[82 + inPos]) <<  8) & 65535)
        | //                                  [76543210]
          //                                  [32109876________________]
            ((((int)in[83 + inPos]) <<  16) & 16777215);
      out[28 + outPos] =
          //                                  [76543210]
          //                  [________________76543210]
            ((((int)in[84 + inPos]) ) & 255)
        | //                                  [76543210]
          //                          [________54321098________]
            ((((int)in[85 + inPos]) <<  8) & 65535)
        | //                                  [76543210]
          //                                  [32109876________________]
            ((((int)in[86 + inPos]) <<  16) & 16777215);
      out[29 + outPos] =
          //                                  [76543210]
          //                  [________________76543210]
            ((((int)in[87 + inPos]) ) & 255)
        | //                                  [76543210]
          //                          [________54321098________]
            ((((int)in[88 + inPos]) <<  8) & 65535)
        | //                                  [76543210]
          //                                  [32109876________________]
            ((((int)in[89 + inPos]) <<  16) & 16777215);
      out[30 + outPos] =
          //                                  [76543210]
          //                  [________________76543210]
            ((((int)in[90 + inPos]) ) & 255)
        | //                                  [76543210]
          //                          [________54321098________]
            ((((int)in[91 + inPos]) <<  8) & 65535)
        | //                                  [76543210]
          //                                  [32109876________________]
            ((((int)in[92 + inPos]) <<  16) & 16777215);
      out[31 + outPos] =
          //                                  [76543210]
          //                  [________________76543210]
            ((((int)in[93 + inPos]) ) & 255)
        | //                                  [76543210]
          //                          [________54321098________]
            ((((int)in[94 + inPos]) <<  8) & 65535)
        | //                                  [76543210]
          //                                  [32109876________________]
            ((((int)in[95 + inPos]) <<  16) & 16777215);
    }
    public final void unpack32Values(final ByteBuffer in, final int inPos, final int[] out, final int outPos) {
      out[ 0 + outPos] =
          //                                  [76543210]
          //                  [________________76543210]
            ((((int)in.get( 0 + inPos)) ) & 255)
        | //                                  [76543210]
          //                          [________54321098________]
            ((((int)in.get( 1 + inPos)) <<  8) & 65535)
        | //                                  [76543210]
          //                                  [32109876________________]
            ((((int)in.get( 2 + inPos)) <<  16) & 16777215);
      out[ 1 + outPos] =
          //                                  [76543210]
          //                  [________________76543210]
            ((((int)in.get( 3 + inPos)) ) & 255)
        | //                                  [76543210]
          //                          [________54321098________]
            ((((int)in.get( 4 + inPos)) <<  8) & 65535)
        | //                                  [76543210]
          //                                  [32109876________________]
            ((((int)in.get( 5 + inPos)) <<  16) & 16777215);
      out[ 2 + outPos] =
          //                                  [76543210]
          //                  [________________76543210]
            ((((int)in.get( 6 + inPos)) ) & 255)
        | //                                  [76543210]
          //                          [________54321098________]
            ((((int)in.get( 7 + inPos)) <<  8) & 65535)
        | //                                  [76543210]
          //                                  [32109876________________]
            ((((int)in.get( 8 + inPos)) <<  16) & 16777215);
      out[ 3 + outPos] =
          //                                  [76543210]
          //                  [________________76543210]
            ((((int)in.get( 9 + inPos)) ) & 255)
        | //                                  [76543210]
          //                          [________54321098________]
            ((((int)in.get(10 + inPos)) <<  8) & 65535)
        | //                                  [76543210]
          //                                  [32109876________________]
            ((((int)in.get(11 + inPos)) <<  16) & 16777215);
      out[ 4 + outPos] =
          //                                  [76543210]
          //                  [________________76543210]
            ((((int)in.get(12 + inPos)) ) & 255)
        | //                                  [76543210]
          //                          [________54321098________]
            ((((int)in.get(13 + inPos)) <<  8) & 65535)
        | //                                  [76543210]
          //                                  [32109876________________]
            ((((int)in.get(14 + inPos)) <<  16) & 16777215);
      out[ 5 + outPos] =
          //                                  [76543210]
          //                  [________________76543210]
            ((((int)in.get(15 + inPos)) ) & 255)
        | //                                  [76543210]
          //                          [________54321098________]
            ((((int)in.get(16 + inPos)) <<  8) & 65535)
        | //                                  [76543210]
          //                                  [32109876________________]
            ((((int)in.get(17 + inPos)) <<  16) & 16777215);
      out[ 6 + outPos] =
          //                                  [76543210]
          //                  [________________76543210]
            ((((int)in.get(18 + inPos)) ) & 255)
        | //                                  [76543210]
          //                          [________54321098________]
            ((((int)in.get(19 + inPos)) <<  8) & 65535)
        | //                                  [76543210]
          //                                  [32109876________________]
            ((((int)in.get(20 + inPos)) <<  16) & 16777215);
      out[ 7 + outPos] =
          //                                  [76543210]
          //                  [________________76543210]
            ((((int)in.get(21 + inPos)) ) & 255)
        | //                                  [76543210]
          //                          [________54321098________]
            ((((int)in.get(22 + inPos)) <<  8) & 65535)
        | //                                  [76543210]
          //                                  [32109876________________]
            ((((int)in.get(23 + inPos)) <<  16) & 16777215);
      out[ 8 + outPos] =
          //                                  [76543210]
          //                  [________________76543210]
            ((((int)in.get(24 + inPos)) ) & 255)
        | //                                  [76543210]
          //                          [________54321098________]
            ((((int)in.get(25 + inPos)) <<  8) & 65535)
        | //                                  [76543210]
          //                                  [32109876________________]
            ((((int)in.get(26 + inPos)) <<  16) & 16777215);
      out[ 9 + outPos] =
          //                                  [76543210]
          //                  [________________76543210]
            ((((int)in.get(27 + inPos)) ) & 255)
        | //                                  [76543210]
          //                          [________54321098________]
            ((((int)in.get(28 + inPos)) <<  8) & 65535)
        | //                                  [76543210]
          //                                  [32109876________________]
            ((((int)in.get(29 + inPos)) <<  16) & 16777215);
      out[10 + outPos] =
          //                                  [76543210]
          //                  [________________76543210]
            ((((int)in.get(30 + inPos)) ) & 255)
        | //                                  [76543210]
          //                          [________54321098________]
            ((((int)in.get(31 + inPos)) <<  8) & 65535)
        | //                                  [76543210]
          //                                  [32109876________________]
            ((((int)in.get(32 + inPos)) <<  16) & 16777215);
      out[11 + outPos] =
          //                                  [76543210]
          //                  [________________76543210]
            ((((int)in.get(33 + inPos)) ) & 255)
        | //                                  [76543210]
          //                          [________54321098________]
            ((((int)in.get(34 + inPos)) <<  8) & 65535)
        | //                                  [76543210]
          //                                  [32109876________________]
            ((((int)in.get(35 + inPos)) <<  16) & 16777215);
      out[12 + outPos] =
          //                                  [76543210]
          //                  [________________76543210]
            ((((int)in.get(36 + inPos)) ) & 255)
        | //                                  [76543210]
          //                          [________54321098________]
            ((((int)in.get(37 + inPos)) <<  8) & 65535)
        | //                                  [76543210]
          //                                  [32109876________________]
            ((((int)in.get(38 + inPos)) <<  16) & 16777215);
      out[13 + outPos] =
          //                                  [76543210]
          //                  [________________76543210]
            ((((int)in.get(39 + inPos)) ) & 255)
        | //                                  [76543210]
          //                          [________54321098________]
            ((((int)in.get(40 + inPos)) <<  8) & 65535)
        | //                                  [76543210]
          //                                  [32109876________________]
            ((((int)in.get(41 + inPos)) <<  16) & 16777215);
      out[14 + outPos] =
          //                                  [76543210]
          //                  [________________76543210]
            ((((int)in.get(42 + inPos)) ) & 255)
        | //                                  [76543210]
          //                          [________54321098________]
            ((((int)in.get(43 + inPos)) <<  8) & 65535)
        | //                                  [76543210]
          //                                  [32109876________________]
            ((((int)in.get(44 + inPos)) <<  16) & 16777215);
      out[15 + outPos] =
          //                                  [76543210]
          //                  [________________76543210]
            ((((int)in.get(45 + inPos)) ) & 255)
        | //                                  [76543210]
          //                          [________54321098________]
            ((((int)in.get(46 + inPos)) <<  8) & 65535)
        | //                                  [76543210]
          //                                  [32109876________________]
            ((((int)in.get(47 + inPos)) <<  16) & 16777215);
      out[16 + outPos] =
          //                                  [76543210]
          //                  [________________76543210]
            ((((int)in.get(48 + inPos)) ) & 255)
        | //                                  [76543210]
          //                          [________54321098________]
            ((((int)in.get(49 + inPos)) <<  8) & 65535)
        | //                                  [76543210]
          //                                  [32109876________________]
            ((((int)in.get(50 + inPos)) <<  16) & 16777215);
      out[17 + outPos] =
          //                                  [76543210]
          //                  [________________76543210]
            ((((int)in.get(51 + inPos)) ) & 255)
        | //                                  [76543210]
          //                          [________54321098________]
            ((((int)in.get(52 + inPos)) <<  8) & 65535)
        | //                                  [76543210]
          //                                  [32109876________________]
            ((((int)in.get(53 + inPos)) <<  16) & 16777215);
      out[18 + outPos] =
          //                                  [76543210]
          //                  [________________76543210]
            ((((int)in.get(54 + inPos)) ) & 255)
        | //                                  [76543210]
          //                          [________54321098________]
            ((((int)in.get(55 + inPos)) <<  8) & 65535)
        | //                                  [76543210]
          //                                  [32109876________________]
            ((((int)in.get(56 + inPos)) <<  16) & 16777215);
      out[19 + outPos] =
          //                                  [76543210]
          //                  [________________76543210]
            ((((int)in.get(57 + inPos)) ) & 255)
        | //                                  [76543210]
          //                          [________54321098________]
            ((((int)in.get(58 + inPos)) <<  8) & 65535)
        | //                                  [76543210]
          //                                  [32109876________________]
            ((((int)in.get(59 + inPos)) <<  16) & 16777215);
      out[20 + outPos] =
          //                                  [76543210]
          //                  [________________76543210]
            ((((int)in.get(60 + inPos)) ) & 255)
        | //                                  [76543210]
          //                          [________54321098________]
            ((((int)in.get(61 + inPos)) <<  8) & 65535)
        | //                                  [76543210]
          //                                  [32109876________________]
            ((((int)in.get(62 + inPos)) <<  16) & 16777215);
      out[21 + outPos] =
          //                                  [76543210]
          //                  [________________76543210]
            ((((int)in.get(63 + inPos)) ) & 255)
        | //                                  [76543210]
          //                          [________54321098________]
            ((((int)in.get(64 + inPos)) <<  8) & 65535)
        | //                                  [76543210]
          //                                  [32109876________________]
            ((((int)in.get(65 + inPos)) <<  16) & 16777215);
      out[22 + outPos] =
          //                                  [76543210]
          //                  [________________76543210]
            ((((int)in.get(66 + inPos)) ) & 255)
        | //                                  [76543210]
          //                          [________54321098________]
            ((((int)in.get(67 + inPos)) <<  8) & 65535)
        | //                                  [76543210]
          //                                  [32109876________________]
            ((((int)in.get(68 + inPos)) <<  16) & 16777215);
      out[23 + outPos] =
          //                                  [76543210]
          //                  [________________76543210]
            ((((int)in.get(69 + inPos)) ) & 255)
        | //                                  [76543210]
          //                          [________54321098________]
            ((((int)in.get(70 + inPos)) <<  8) & 65535)
        | //                                  [76543210]
          //                                  [32109876________________]
            ((((int)in.get(71 + inPos)) <<  16) & 16777215);
      out[24 + outPos] =
          //                                  [76543210]
          //                  [________________76543210]
            ((((int)in.get(72 + inPos)) ) & 255)
        | //                                  [76543210]
          //                          [________54321098________]
            ((((int)in.get(73 + inPos)) <<  8) & 65535)
        | //                                  [76543210]
          //                                  [32109876________________]
            ((((int)in.get(74 + inPos)) <<  16) & 16777215);
      out[25 + outPos] =
          //                                  [76543210]
          //                  [________________76543210]
            ((((int)in.get(75 + inPos)) ) & 255)
        | //                                  [76543210]
          //                          [________54321098________]
            ((((int)in.get(76 + inPos)) <<  8) & 65535)
        | //                                  [76543210]
          //                                  [32109876________________]
            ((((int)in.get(77 + inPos)) <<  16) & 16777215);
      out[26 + outPos] =
          //                                  [76543210]
          //                  [________________76543210]
            ((((int)in.get(78 + inPos)) ) & 255)
        | //                                  [76543210]
          //                          [________54321098________]
            ((((int)in.get(79 + inPos)) <<  8) & 65535)
        | //                                  [76543210]
          //                                  [32109876________________]
            ((((int)in.get(80 + inPos)) <<  16) & 16777215);
      out[27 + outPos] =
          //                                  [76543210]
          //                  [________________76543210]
            ((((int)in.get(81 + inPos)) ) & 255)
        | //                                  [76543210]
          //                          [________54321098________]
            ((((int)in.get(82 + inPos)) <<  8) & 65535)
        | //                                  [76543210]
          //                                  [32109876________________]
            ((((int)in.get(83 + inPos)) <<  16) & 16777215);
      out[28 + outPos] =
          //                                  [76543210]
          //                  [________________76543210]
            ((((int)in.get(84 + inPos)) ) & 255)
        | //                                  [76543210]
          //                          [________54321098________]
            ((((int)in.get(85 + inPos)) <<  8) & 65535)
        | //                                  [76543210]
          //                                  [32109876________________]
            ((((int)in.get(86 + inPos)) <<  16) & 16777215);
      out[29 + outPos] =
          //                                  [76543210]
          //                  [________________76543210]
            ((((int)in.get(87 + inPos)) ) & 255)
        | //                                  [76543210]
          //                          [________54321098________]
            ((((int)in.get(88 + inPos)) <<  8) & 65535)
        | //                                  [76543210]
          //                                  [32109876________________]
            ((((int)in.get(89 + inPos)) <<  16) & 16777215);
      out[30 + outPos] =
          //                                  [76543210]
          //                  [________________76543210]
            ((((int)in.get(90 + inPos)) ) & 255)
        | //                                  [76543210]
          //                          [________54321098________]
            ((((int)in.get(91 + inPos)) <<  8) & 65535)
        | //                                  [76543210]
          //                                  [32109876________________]
            ((((int)in.get(92 + inPos)) <<  16) & 16777215);
      out[31 + outPos] =
          //                                  [76543210]
          //                  [________________76543210]
            ((((int)in.get(93 + inPos)) ) & 255)
        | //                                  [76543210]
          //                          [________54321098________]
            ((((int)in.get(94 + inPos)) <<  8) & 65535)
        | //                                  [76543210]
          //                                  [32109876________________]
            ((((int)in.get(95 + inPos)) <<  16) & 16777215);
    }
  }

  private static final class Packer25 extends BytePacker {

    private Packer25() {
      super(25);
    }

    public final void pack8Values(final int[] in, final int inPos, final byte[] out, final int outPos) {
      out[ 0 + outPos] = (byte)((
          //                                   [76543210]
          //                  [_________________76543210]
           ((in[ 0 + inPos] & 33554431))) & 255);
      out[ 1 + outPos] = (byte)((
          //                                   [76543210]
          //                          [_________54321098________]
           ((in[ 0 + inPos] & 33554431) >>> 8)) & 255);
      out[ 2 + outPos] = (byte)((
          //                                   [76543210]
          //                                  [_32109876________________]
           ((in[ 0 + inPos] & 33554431) >>> 16)) & 255);
      out[ 3 + outPos] = (byte)((
          //                                   [_______0]
          //                                          [4________________________]
           ((in[ 0 + inPos] & 33554431) >>> 24)
        | //                                   [7654321_]
          //                 [__________________6543210]
           ((in[ 1 + inPos] & 33554431) <<  1)) & 255);
      out[ 4 + outPos] = (byte)((
          //                                   [76543210]
          //                         [__________43210987_______]
           ((in[ 1 + inPos] & 33554431) >>> 7)) & 255);
      out[ 5 + outPos] = (byte)((
          //                                   [76543210]
          //                                 [__21098765_______________]
           ((in[ 1 + inPos] & 33554431) >>> 15)) & 255);
      out[ 6 + outPos] = (byte)((
          //                                   [______10]
          //                                         [43_______________________]
           ((in[ 1 + inPos] & 33554431) >>> 23)
        | //                                   [765432__]
          //                [___________________543210]
           ((in[ 2 + inPos] & 33554431) <<  2)) & 255);
      out[ 7 + outPos] = (byte)((
          //                                   [76543210]
          //                        [___________32109876______]
           ((in[ 2 + inPos] & 33554431) >>> 6)) & 255);
      out[ 8 + outPos] = (byte)((
          //                                   [76543210]
          //                                [___10987654______________]
           ((in[ 2 + inPos] & 33554431) >>> 14)) & 255);
      out[ 9 + outPos] = (byte)((
          //                                   [_____210]
          //                                        [432______________________]
           ((in[ 2 + inPos] & 33554431) >>> 22)
        | //                                   [76543___]
          //               [____________________43210]
           ((in[ 3 + inPos] & 33554431) <<  3)) & 255);
      out[10 + outPos] = (byte)((
          //                                   [76543210]
          //                       [____________21098765_____]
           ((in[ 3 + inPos] & 33554431) >>> 5)) & 255);
      out[11 + outPos] = (byte)((
          //                                   [76543210]
          //                               [____09876543_____________]
           ((in[ 3 + inPos] & 33554431) >>> 13)) & 255);
      out[12 + outPos] = (byte)((
          //                                   [____3210]
          //                                       [4321_____________________]
           ((in[ 3 + inPos] & 33554431) >>> 21)
        | //                                   [7654____]
          //              [_____________________3210]
           ((in[ 4 + inPos] & 33554431) <<  4)) & 255);
      out[13 + outPos] = (byte)((
          //                                   [76543210]
          //                      [_____________10987654____]
           ((in[ 4 + inPos] & 33554431) >>> 4)) & 255);
      out[14 + outPos] = (byte)((
          //                                   [76543210]
          //                              [_____98765432____________]
           ((in[ 4 + inPos] & 33554431) >>> 12)) & 255);
      out[15 + outPos] = (byte)((
          //                                   [___43210]
          //                                      [43210____________________]
           ((in[ 4 + inPos] & 33554431) >>> 20)
        | //                                   [765_____]
          //             [______________________210]
           ((in[ 5 + inPos] & 33554431) <<  5)) & 255);
      out[16 + outPos] = (byte)((
          //                                   [76543210]
          //                     [______________09876543___]
           ((in[ 5 + inPos] & 33554431) >>> 3)) & 255);
      out[17 + outPos] = (byte)((
          //                                   [76543210]
          //                             [______87654321___________]
           ((in[ 5 + inPos] & 33554431) >>> 11)) & 255);
      out[18 + outPos] = (byte)((
          //                                   [__543210]
          //                                     [432109___________________]
           ((in[ 5 + inPos] & 33554431) >>> 19)
        | //                                   [76______]
          //            [_______________________10]
           ((in[ 6 + inPos] & 33554431) <<  6)) & 255);
      out[19 + outPos] = (byte)((
          //                                   [76543210]
          //                    [_______________98765432__]
           ((in[ 6 + inPos] & 33554431) >>> 2)) & 255);
      out[20 + outPos] = (byte)((
          //                                   [76543210]
          //                            [_______76543210__________]
           ((in[ 6 + inPos] & 33554431) >>> 10)) & 255);
      out[21 + outPos] = (byte)((
          //                                   [_6543210]
          //                                    [4321098__________________]
           ((in[ 6 + inPos] & 33554431) >>> 18)
        | //                                   [7_______]
          //           [________________________0]
           ((in[ 7 + inPos] & 33554431) <<  7)) & 255);
      out[22 + outPos] = (byte)((
          //                                   [76543210]
          //                   [________________87654321_]
           ((in[ 7 + inPos] & 33554431) >>> 1)) & 255);
      out[23 + outPos] = (byte)((
          //                                   [76543210]
          //                           [________65432109_________]
           ((in[ 7 + inPos] & 33554431) >>> 9)) & 255);
      out[24 + outPos] = (byte)((
          //                                   [76543210]
          //                                   [43210987_________________]
           ((in[ 7 + inPos] & 33554431) >>> 17)) & 255);
    }
    public final void pack32Values(final int[] in, final int inPos, final byte[] out, final int outPos) {
      out[ 0 + outPos] = (byte)((
          //                                   [76543210]
          //                  [_________________76543210]
           ((in[ 0 + inPos] & 33554431))) & 255);
      out[ 1 + outPos] = (byte)((
          //                                   [76543210]
          //                          [_________54321098________]
           ((in[ 0 + inPos] & 33554431) >>> 8)) & 255);
      out[ 2 + outPos] = (byte)((
          //                                   [76543210]
          //                                  [_32109876________________]
           ((in[ 0 + inPos] & 33554431) >>> 16)) & 255);
      out[ 3 + outPos] = (byte)((
          //                                   [_______0]
          //                                          [4________________________]
           ((in[ 0 + inPos] & 33554431) >>> 24)
        | //                                   [7654321_]
          //                 [__________________6543210]
           ((in[ 1 + inPos] & 33554431) <<  1)) & 255);
      out[ 4 + outPos] = (byte)((
          //                                   [76543210]
          //                         [__________43210987_______]
           ((in[ 1 + inPos] & 33554431) >>> 7)) & 255);
      out[ 5 + outPos] = (byte)((
          //                                   [76543210]
          //                                 [__21098765_______________]
           ((in[ 1 + inPos] & 33554431) >>> 15)) & 255);
      out[ 6 + outPos] = (byte)((
          //                                   [______10]
          //                                         [43_______________________]
           ((in[ 1 + inPos] & 33554431) >>> 23)
        | //                                   [765432__]
          //                [___________________543210]
           ((in[ 2 + inPos] & 33554431) <<  2)) & 255);
      out[ 7 + outPos] = (byte)((
          //                                   [76543210]
          //                        [___________32109876______]
           ((in[ 2 + inPos] & 33554431) >>> 6)) & 255);
      out[ 8 + outPos] = (byte)((
          //                                   [76543210]
          //                                [___10987654______________]
           ((in[ 2 + inPos] & 33554431) >>> 14)) & 255);
      out[ 9 + outPos] = (byte)((
          //                                   [_____210]
          //                                        [432______________________]
           ((in[ 2 + inPos] & 33554431) >>> 22)
        | //                                   [76543___]
          //               [____________________43210]
           ((in[ 3 + inPos] & 33554431) <<  3)) & 255);
      out[10 + outPos] = (byte)((
          //                                   [76543210]
          //                       [____________21098765_____]
           ((in[ 3 + inPos] & 33554431) >>> 5)) & 255);
      out[11 + outPos] = (byte)((
          //                                   [76543210]
          //                               [____09876543_____________]
           ((in[ 3 + inPos] & 33554431) >>> 13)) & 255);
      out[12 + outPos] = (byte)((
          //                                   [____3210]
          //                                       [4321_____________________]
           ((in[ 3 + inPos] & 33554431) >>> 21)
        | //                                   [7654____]
          //              [_____________________3210]
           ((in[ 4 + inPos] & 33554431) <<  4)) & 255);
      out[13 + outPos] = (byte)((
          //                                   [76543210]
          //                      [_____________10987654____]
           ((in[ 4 + inPos] & 33554431) >>> 4)) & 255);
      out[14 + outPos] = (byte)((
          //                                   [76543210]
          //                              [_____98765432____________]
           ((in[ 4 + inPos] & 33554431) >>> 12)) & 255);
      out[15 + outPos] = (byte)((
          //                                   [___43210]
          //                                      [43210____________________]
           ((in[ 4 + inPos] & 33554431) >>> 20)
        | //                                   [765_____]
          //             [______________________210]
           ((in[ 5 + inPos] & 33554431) <<  5)) & 255);
      out[16 + outPos] = (byte)((
          //                                   [76543210]
          //                     [______________09876543___]
           ((in[ 5 + inPos] & 33554431) >>> 3)) & 255);
      out[17 + outPos] = (byte)((
          //                                   [76543210]
          //                             [______87654321___________]
           ((in[ 5 + inPos] & 33554431) >>> 11)) & 255);
      out[18 + outPos] = (byte)((
          //                                   [__543210]
          //                                     [432109___________________]
           ((in[ 5 + inPos] & 33554431) >>> 19)
        | //                                   [76______]
          //            [_______________________10]
           ((in[ 6 + inPos] & 33554431) <<  6)) & 255);
      out[19 + outPos] = (byte)((
          //                                   [76543210]
          //                    [_______________98765432__]
           ((in[ 6 + inPos] & 33554431) >>> 2)) & 255);
      out[20 + outPos] = (byte)((
          //                                   [76543210]
          //                            [_______76543210__________]
           ((in[ 6 + inPos] & 33554431) >>> 10)) & 255);
      out[21 + outPos] = (byte)((
          //                                   [_6543210]
          //                                    [4321098__________________]
           ((in[ 6 + inPos] & 33554431) >>> 18)
        | //                                   [7_______]
          //           [________________________0]
           ((in[ 7 + inPos] & 33554431) <<  7)) & 255);
      out[22 + outPos] = (byte)((
          //                                   [76543210]
          //                   [________________87654321_]
           ((in[ 7 + inPos] & 33554431) >>> 1)) & 255);
      out[23 + outPos] = (byte)((
          //                                   [76543210]
          //                           [________65432109_________]
           ((in[ 7 + inPos] & 33554431) >>> 9)) & 255);
      out[24 + outPos] = (byte)((
          //                                   [76543210]
          //                                   [43210987_________________]
           ((in[ 7 + inPos] & 33554431) >>> 17)) & 255);
      out[25 + outPos] = (byte)((
          //                                   [76543210]
          //                  [_________________76543210]
           ((in[ 8 + inPos] & 33554431))) & 255);
      out[26 + outPos] = (byte)((
          //                                   [76543210]
          //                          [_________54321098________]
           ((in[ 8 + inPos] & 33554431) >>> 8)) & 255);
      out[27 + outPos] = (byte)((
          //                                   [76543210]
          //                                  [_32109876________________]
           ((in[ 8 + inPos] & 33554431) >>> 16)) & 255);
      out[28 + outPos] = (byte)((
          //                                   [_______0]
          //                                          [4________________________]
           ((in[ 8 + inPos] & 33554431) >>> 24)
        | //                                   [7654321_]
          //                 [__________________6543210]
           ((in[ 9 + inPos] & 33554431) <<  1)) & 255);
      out[29 + outPos] = (byte)((
          //                                   [76543210]
          //                         [__________43210987_______]
           ((in[ 9 + inPos] & 33554431) >>> 7)) & 255);
      out[30 + outPos] = (byte)((
          //                                   [76543210]
          //                                 [__21098765_______________]
           ((in[ 9 + inPos] & 33554431) >>> 15)) & 255);
      out[31 + outPos] = (byte)((
          //                                   [______10]
          //                                         [43_______________________]
           ((in[ 9 + inPos] & 33554431) >>> 23)
        | //                                   [765432__]
          //                [___________________543210]
           ((in[10 + inPos] & 33554431) <<  2)) & 255);
      out[32 + outPos] = (byte)((
          //                                   [76543210]
          //                        [___________32109876______]
           ((in[10 + inPos] & 33554431) >>> 6)) & 255);
      out[33 + outPos] = (byte)((
          //                                   [76543210]
          //                                [___10987654______________]
           ((in[10 + inPos] & 33554431) >>> 14)) & 255);
      out[34 + outPos] = (byte)((
          //                                   [_____210]
          //                                        [432______________________]
           ((in[10 + inPos] & 33554431) >>> 22)
        | //                                   [76543___]
          //               [____________________43210]
           ((in[11 + inPos] & 33554431) <<  3)) & 255);
      out[35 + outPos] = (byte)((
          //                                   [76543210]
          //                       [____________21098765_____]
           ((in[11 + inPos] & 33554431) >>> 5)) & 255);
      out[36 + outPos] = (byte)((
          //                                   [76543210]
          //                               [____09876543_____________]
           ((in[11 + inPos] & 33554431) >>> 13)) & 255);
      out[37 + outPos] = (byte)((
          //                                   [____3210]
          //                                       [4321_____________________]
           ((in[11 + inPos] & 33554431) >>> 21)
        | //                                   [7654____]
          //              [_____________________3210]
           ((in[12 + inPos] & 33554431) <<  4)) & 255);
      out[38 + outPos] = (byte)((
          //                                   [76543210]
          //                      [_____________10987654____]
           ((in[12 + inPos] & 33554431) >>> 4)) & 255);
      out[39 + outPos] = (byte)((
          //                                   [76543210]
          //                              [_____98765432____________]
           ((in[12 + inPos] & 33554431) >>> 12)) & 255);
      out[40 + outPos] = (byte)((
          //                                   [___43210]
          //                                      [43210____________________]
           ((in[12 + inPos] & 33554431) >>> 20)
        | //                                   [765_____]
          //             [______________________210]
           ((in[13 + inPos] & 33554431) <<  5)) & 255);
      out[41 + outPos] = (byte)((
          //                                   [76543210]
          //                     [______________09876543___]
           ((in[13 + inPos] & 33554431) >>> 3)) & 255);
      out[42 + outPos] = (byte)((
          //                                   [76543210]
          //                             [______87654321___________]
           ((in[13 + inPos] & 33554431) >>> 11)) & 255);
      out[43 + outPos] = (byte)((
          //                                   [__543210]
          //                                     [432109___________________]
           ((in[13 + inPos] & 33554431) >>> 19)
        | //                                   [76______]
          //            [_______________________10]
           ((in[14 + inPos] & 33554431) <<  6)) & 255);
      out[44 + outPos] = (byte)((
          //                                   [76543210]
          //                    [_______________98765432__]
           ((in[14 + inPos] & 33554431) >>> 2)) & 255);
      out[45 + outPos] = (byte)((
          //                                   [76543210]
          //                            [_______76543210__________]
           ((in[14 + inPos] & 33554431) >>> 10)) & 255);
      out[46 + outPos] = (byte)((
          //                                   [_6543210]
          //                                    [4321098__________________]
           ((in[14 + inPos] & 33554431) >>> 18)
        | //                                   [7_______]
          //           [________________________0]
           ((in[15 + inPos] & 33554431) <<  7)) & 255);
      out[47 + outPos] = (byte)((
          //                                   [76543210]
          //                   [________________87654321_]
           ((in[15 + inPos] & 33554431) >>> 1)) & 255);
      out[48 + outPos] = (byte)((
          //                                   [76543210]
          //                           [________65432109_________]
           ((in[15 + inPos] & 33554431) >>> 9)) & 255);
      out[49 + outPos] = (byte)((
          //                                   [76543210]
          //                                   [43210987_________________]
           ((in[15 + inPos] & 33554431) >>> 17)) & 255);
      out[50 + outPos] = (byte)((
          //                                   [76543210]
          //                  [_________________76543210]
           ((in[16 + inPos] & 33554431))) & 255);
      out[51 + outPos] = (byte)((
          //                                   [76543210]
          //                          [_________54321098________]
           ((in[16 + inPos] & 33554431) >>> 8)) & 255);
      out[52 + outPos] = (byte)((
          //                                   [76543210]
          //                                  [_32109876________________]
           ((in[16 + inPos] & 33554431) >>> 16)) & 255);
      out[53 + outPos] = (byte)((
          //                                   [_______0]
          //                                          [4________________________]
           ((in[16 + inPos] & 33554431) >>> 24)
        | //                                   [7654321_]
          //                 [__________________6543210]
           ((in[17 + inPos] & 33554431) <<  1)) & 255);
      out[54 + outPos] = (byte)((
          //                                   [76543210]
          //                         [__________43210987_______]
           ((in[17 + inPos] & 33554431) >>> 7)) & 255);
      out[55 + outPos] = (byte)((
          //                                   [76543210]
          //                                 [__21098765_______________]
           ((in[17 + inPos] & 33554431) >>> 15)) & 255);
      out[56 + outPos] = (byte)((
          //                                   [______10]
          //                                         [43_______________________]
           ((in[17 + inPos] & 33554431) >>> 23)
        | //                                   [765432__]
          //                [___________________543210]
           ((in[18 + inPos] & 33554431) <<  2)) & 255);
      out[57 + outPos] = (byte)((
          //                                   [76543210]
          //                        [___________32109876______]
           ((in[18 + inPos] & 33554431) >>> 6)) & 255);
      out[58 + outPos] = (byte)((
          //                                   [76543210]
          //                                [___10987654______________]
           ((in[18 + inPos] & 33554431) >>> 14)) & 255);
      out[59 + outPos] = (byte)((
          //                                   [_____210]
          //                                        [432______________________]
           ((in[18 + inPos] & 33554431) >>> 22)
        | //                                   [76543___]
          //               [____________________43210]
           ((in[19 + inPos] & 33554431) <<  3)) & 255);
      out[60 + outPos] = (byte)((
          //                                   [76543210]
          //                       [____________21098765_____]
           ((in[19 + inPos] & 33554431) >>> 5)) & 255);
      out[61 + outPos] = (byte)((
          //                                   [76543210]
          //                               [____09876543_____________]
           ((in[19 + inPos] & 33554431) >>> 13)) & 255);
      out[62 + outPos] = (byte)((
          //                                   [____3210]
          //                                       [4321_____________________]
           ((in[19 + inPos] & 33554431) >>> 21)
        | //                                   [7654____]
          //              [_____________________3210]
           ((in[20 + inPos] & 33554431) <<  4)) & 255);
      out[63 + outPos] = (byte)((
          //                                   [76543210]
          //                      [_____________10987654____]
           ((in[20 + inPos] & 33554431) >>> 4)) & 255);
      out[64 + outPos] = (byte)((
          //                                   [76543210]
          //                              [_____98765432____________]
           ((in[20 + inPos] & 33554431) >>> 12)) & 255);
      out[65 + outPos] = (byte)((
          //                                   [___43210]
          //                                      [43210____________________]
           ((in[20 + inPos] & 33554431) >>> 20)
        | //                                   [765_____]
          //             [______________________210]
           ((in[21 + inPos] & 33554431) <<  5)) & 255);
      out[66 + outPos] = (byte)((
          //                                   [76543210]
          //                     [______________09876543___]
           ((in[21 + inPos] & 33554431) >>> 3)) & 255);
      out[67 + outPos] = (byte)((
          //                                   [76543210]
          //                             [______87654321___________]
           ((in[21 + inPos] & 33554431) >>> 11)) & 255);
      out[68 + outPos] = (byte)((
          //                                   [__543210]
          //                                     [432109___________________]
           ((in[21 + inPos] & 33554431) >>> 19)
        | //                                   [76______]
          //            [_______________________10]
           ((in[22 + inPos] & 33554431) <<  6)) & 255);
      out[69 + outPos] = (byte)((
          //                                   [76543210]
          //                    [_______________98765432__]
           ((in[22 + inPos] & 33554431) >>> 2)) & 255);
      out[70 + outPos] = (byte)((
          //                                   [76543210]
          //                            [_______76543210__________]
           ((in[22 + inPos] & 33554431) >>> 10)) & 255);
      out[71 + outPos] = (byte)((
          //                                   [_6543210]
          //                                    [4321098__________________]
           ((in[22 + inPos] & 33554431) >>> 18)
        | //                                   [7_______]
          //           [________________________0]
           ((in[23 + inPos] & 33554431) <<  7)) & 255);
      out[72 + outPos] = (byte)((
          //                                   [76543210]
          //                   [________________87654321_]
           ((in[23 + inPos] & 33554431) >>> 1)) & 255);
      out[73 + outPos] = (byte)((
          //                                   [76543210]
          //                           [________65432109_________]
           ((in[23 + inPos] & 33554431) >>> 9)) & 255);
      out[74 + outPos] = (byte)((
          //                                   [76543210]
          //                                   [43210987_________________]
           ((in[23 + inPos] & 33554431) >>> 17)) & 255);
      out[75 + outPos] = (byte)((
          //                                   [76543210]
          //                  [_________________76543210]
           ((in[24 + inPos] & 33554431))) & 255);
      out[76 + outPos] = (byte)((
          //                                   [76543210]
          //                          [_________54321098________]
           ((in[24 + inPos] & 33554431) >>> 8)) & 255);
      out[77 + outPos] = (byte)((
          //                                   [76543210]
          //                                  [_32109876________________]
           ((in[24 + inPos] & 33554431) >>> 16)) & 255);
      out[78 + outPos] = (byte)((
          //                                   [_______0]
          //                                          [4________________________]
           ((in[24 + inPos] & 33554431) >>> 24)
        | //                                   [7654321_]
          //                 [__________________6543210]
           ((in[25 + inPos] & 33554431) <<  1)) & 255);
      out[79 + outPos] = (byte)((
          //                                   [76543210]
          //                         [__________43210987_______]
           ((in[25 + inPos] & 33554431) >>> 7)) & 255);
      out[80 + outPos] = (byte)((
          //                                   [76543210]
          //                                 [__21098765_______________]
           ((in[25 + inPos] & 33554431) >>> 15)) & 255);
      out[81 + outPos] = (byte)((
          //                                   [______10]
          //                                         [43_______________________]
           ((in[25 + inPos] & 33554431) >>> 23)
        | //                                   [765432__]
          //                [___________________543210]
           ((in[26 + inPos] & 33554431) <<  2)) & 255);
      out[82 + outPos] = (byte)((
          //                                   [76543210]
          //                        [___________32109876______]
           ((in[26 + inPos] & 33554431) >>> 6)) & 255);
      out[83 + outPos] = (byte)((
          //                                   [76543210]
          //                                [___10987654______________]
           ((in[26 + inPos] & 33554431) >>> 14)) & 255);
      out[84 + outPos] = (byte)((
          //                                   [_____210]
          //                                        [432______________________]
           ((in[26 + inPos] & 33554431) >>> 22)
        | //                                   [76543___]
          //               [____________________43210]
           ((in[27 + inPos] & 33554431) <<  3)) & 255);
      out[85 + outPos] = (byte)((
          //                                   [76543210]
          //                       [____________21098765_____]
           ((in[27 + inPos] & 33554431) >>> 5)) & 255);
      out[86 + outPos] = (byte)((
          //                                   [76543210]
          //                               [____09876543_____________]
           ((in[27 + inPos] & 33554431) >>> 13)) & 255);
      out[87 + outPos] = (byte)((
          //                                   [____3210]
          //                                       [4321_____________________]
           ((in[27 + inPos] & 33554431) >>> 21)
        | //                                   [7654____]
          //              [_____________________3210]
           ((in[28 + inPos] & 33554431) <<  4)) & 255);
      out[88 + outPos] = (byte)((
          //                                   [76543210]
          //                      [_____________10987654____]
           ((in[28 + inPos] & 33554431) >>> 4)) & 255);
      out[89 + outPos] = (byte)((
          //                                   [76543210]
          //                              [_____98765432____________]
           ((in[28 + inPos] & 33554431) >>> 12)) & 255);
      out[90 + outPos] = (byte)((
          //                                   [___43210]
          //                                      [43210____________________]
           ((in[28 + inPos] & 33554431) >>> 20)
        | //                                   [765_____]
          //             [______________________210]
           ((in[29 + inPos] & 33554431) <<  5)) & 255);
      out[91 + outPos] = (byte)((
          //                                   [76543210]
          //                     [______________09876543___]
           ((in[29 + inPos] & 33554431) >>> 3)) & 255);
      out[92 + outPos] = (byte)((
          //                                   [76543210]
          //                             [______87654321___________]
           ((in[29 + inPos] & 33554431) >>> 11)) & 255);
      out[93 + outPos] = (byte)((
          //                                   [__543210]
          //                                     [432109___________________]
           ((in[29 + inPos] & 33554431) >>> 19)
        | //                                   [76______]
          //            [_______________________10]
           ((in[30 + inPos] & 33554431) <<  6)) & 255);
      out[94 + outPos] = (byte)((
          //                                   [76543210]
          //                    [_______________98765432__]
           ((in[30 + inPos] & 33554431) >>> 2)) & 255);
      out[95 + outPos] = (byte)((
          //                                   [76543210]
          //                            [_______76543210__________]
           ((in[30 + inPos] & 33554431) >>> 10)) & 255);
      out[96 + outPos] = (byte)((
          //                                   [_6543210]
          //                                    [4321098__________________]
           ((in[30 + inPos] & 33554431) >>> 18)
        | //                                   [7_______]
          //           [________________________0]
           ((in[31 + inPos] & 33554431) <<  7)) & 255);
      out[97 + outPos] = (byte)((
          //                                   [76543210]
          //                   [________________87654321_]
           ((in[31 + inPos] & 33554431) >>> 1)) & 255);
      out[98 + outPos] = (byte)((
          //                                   [76543210]
          //                           [________65432109_________]
           ((in[31 + inPos] & 33554431) >>> 9)) & 255);
      out[99 + outPos] = (byte)((
          //                                   [76543210]
          //                                   [43210987_________________]
           ((in[31 + inPos] & 33554431) >>> 17)) & 255);
    }
    public final void unpack8Values(final byte[] in, final int inPos, final int[] out, final int outPos) {
      out[ 0 + outPos] =
          //                                   [76543210]
          //                  [_________________76543210]
            ((((int)in[ 0 + inPos]) ) & 255)
        | //                                   [76543210]
          //                          [_________54321098________]
            ((((int)in[ 1 + inPos]) <<  8) & 65535)
        | //                                   [76543210]
          //                                  [_32109876________________]
            ((((int)in[ 2 + inPos]) <<  16) & 16777215)
        | //                                   [_______0]
          //                                          [4________________________]
            ((((int)in[ 3 + inPos]) <<  24) & 33554431);
      out[ 1 + outPos] =
          //                                   [7654321_]
          //                 [__________________6543210]
            ((((int)in[ 3 + inPos]) >>  1) & 127)
        | //                                   [76543210]
          //                         [__________43210987_______]
            ((((int)in[ 4 + inPos]) <<  7) & 32767)
        | //                                   [76543210]
          //                                 [__21098765_______________]
            ((((int)in[ 5 + inPos]) <<  15) & 8388607)
        | //                                   [______10]
          //                                         [43_______________________]
            ((((int)in[ 6 + inPos]) <<  23) & 33554431);
      out[ 2 + outPos] =
          //                                   [765432__]
          //                [___________________543210]
            ((((int)in[ 6 + inPos]) >>  2) & 63)
        | //                                   [76543210]
          //                        [___________32109876______]
            ((((int)in[ 7 + inPos]) <<  6) & 16383)
        | //                                   [76543210]
          //                                [___10987654______________]
            ((((int)in[ 8 + inPos]) <<  14) & 4194303)
        | //                                   [_____210]
          //                                        [432______________________]
            ((((int)in[ 9 + inPos]) <<  22) & 33554431);
      out[ 3 + outPos] =
          //                                   [76543___]
          //               [____________________43210]
            ((((int)in[ 9 + inPos]) >>  3) & 31)
        | //                                   [76543210]
          //                       [____________21098765_____]
            ((((int)in[10 + inPos]) <<  5) & 8191)
        | //                                   [76543210]
          //                               [____09876543_____________]
            ((((int)in[11 + inPos]) <<  13) & 2097151)
        | //                                   [____3210]
          //                                       [4321_____________________]
            ((((int)in[12 + inPos]) <<  21) & 33554431);
      out[ 4 + outPos] =
          //                                   [7654____]
          //              [_____________________3210]
            ((((int)in[12 + inPos]) >>  4) & 15)
        | //                                   [76543210]
          //                      [_____________10987654____]
            ((((int)in[13 + inPos]) <<  4) & 4095)
        | //                                   [76543210]
          //                              [_____98765432____________]
            ((((int)in[14 + inPos]) <<  12) & 1048575)
        | //                                   [___43210]
          //                                      [43210____________________]
            ((((int)in[15 + inPos]) <<  20) & 33554431);
      out[ 5 + outPos] =
          //                                   [765_____]
          //             [______________________210]
            ((((int)in[15 + inPos]) >>  5) & 7)
        | //                                   [76543210]
          //                     [______________09876543___]
            ((((int)in[16 + inPos]) <<  3) & 2047)
        | //                                   [76543210]
          //                             [______87654321___________]
            ((((int)in[17 + inPos]) <<  11) & 524287)
        | //                                   [__543210]
          //                                     [432109___________________]
            ((((int)in[18 + inPos]) <<  19) & 33554431);
      out[ 6 + outPos] =
          //                                   [76______]
          //            [_______________________10]
            ((((int)in[18 + inPos]) >>  6) & 3)
        | //                                   [76543210]
          //                    [_______________98765432__]
            ((((int)in[19 + inPos]) <<  2) & 1023)
        | //                                   [76543210]
          //                            [_______76543210__________]
            ((((int)in[20 + inPos]) <<  10) & 262143)
        | //                                   [_6543210]
          //                                    [4321098__________________]
            ((((int)in[21 + inPos]) <<  18) & 33554431);
      out[ 7 + outPos] =
          //                                   [7_______]
          //           [________________________0]
            ((((int)in[21 + inPos]) >>  7) & 1)
        | //                                   [76543210]
          //                   [________________87654321_]
            ((((int)in[22 + inPos]) <<  1) & 511)
        | //                                   [76543210]
          //                           [________65432109_________]
            ((((int)in[23 + inPos]) <<  9) & 131071)
        | //                                   [76543210]
          //                                   [43210987_________________]
            ((((int)in[24 + inPos]) <<  17) & 33554431);
    }
    public final void unpack8Values(final ByteBuffer in, final int inPos, final int[] out, final int outPos) {
      out[ 0 + outPos] =
          //                                   [76543210]
          //                  [_________________76543210]
            ((((int)in.get( 0 + inPos)) ) & 255)
        | //                                   [76543210]
          //                          [_________54321098________]
            ((((int)in.get( 1 + inPos)) <<  8) & 65535)
        | //                                   [76543210]
          //                                  [_32109876________________]
            ((((int)in.get( 2 + inPos)) <<  16) & 16777215)
        | //                                   [_______0]
          //                                          [4________________________]
            ((((int)in.get( 3 + inPos)) <<  24) & 33554431);
      out[ 1 + outPos] =
          //                                   [7654321_]
          //                 [__________________6543210]
            ((((int)in.get( 3 + inPos)) >>  1) & 127)
        | //                                   [76543210]
          //                         [__________43210987_______]
            ((((int)in.get( 4 + inPos)) <<  7) & 32767)
        | //                                   [76543210]
          //                                 [__21098765_______________]
            ((((int)in.get( 5 + inPos)) <<  15) & 8388607)
        | //                                   [______10]
          //                                         [43_______________________]
            ((((int)in.get( 6 + inPos)) <<  23) & 33554431);
      out[ 2 + outPos] =
          //                                   [765432__]
          //                [___________________543210]
            ((((int)in.get( 6 + inPos)) >>  2) & 63)
        | //                                   [76543210]
          //                        [___________32109876______]
            ((((int)in.get( 7 + inPos)) <<  6) & 16383)
        | //                                   [76543210]
          //                                [___10987654______________]
            ((((int)in.get( 8 + inPos)) <<  14) & 4194303)
        | //                                   [_____210]
          //                                        [432______________________]
            ((((int)in.get( 9 + inPos)) <<  22) & 33554431);
      out[ 3 + outPos] =
          //                                   [76543___]
          //               [____________________43210]
            ((((int)in.get( 9 + inPos)) >>  3) & 31)
        | //                                   [76543210]
          //                       [____________21098765_____]
            ((((int)in.get(10 + inPos)) <<  5) & 8191)
        | //                                   [76543210]
          //                               [____09876543_____________]
            ((((int)in.get(11 + inPos)) <<  13) & 2097151)
        | //                                   [____3210]
          //                                       [4321_____________________]
            ((((int)in.get(12 + inPos)) <<  21) & 33554431);
      out[ 4 + outPos] =
          //                                   [7654____]
          //              [_____________________3210]
            ((((int)in.get(12 + inPos)) >>  4) & 15)
        | //                                   [76543210]
          //                      [_____________10987654____]
            ((((int)in.get(13 + inPos)) <<  4) & 4095)
        | //                                   [76543210]
          //                              [_____98765432____________]
            ((((int)in.get(14 + inPos)) <<  12) & 1048575)
        | //                                   [___43210]
          //                                      [43210____________________]
            ((((int)in.get(15 + inPos)) <<  20) & 33554431);
      out[ 5 + outPos] =
          //                                   [765_____]
          //             [______________________210]
            ((((int)in.get(15 + inPos)) >>  5) & 7)
        | //                                   [76543210]
          //                     [______________09876543___]
            ((((int)in.get(16 + inPos)) <<  3) & 2047)
        | //                                   [76543210]
          //                             [______87654321___________]
            ((((int)in.get(17 + inPos)) <<  11) & 524287)
        | //                                   [__543210]
          //                                     [432109___________________]
            ((((int)in.get(18 + inPos)) <<  19) & 33554431);
      out[ 6 + outPos] =
          //                                   [76______]
          //            [_______________________10]
            ((((int)in.get(18 + inPos)) >>  6) & 3)
        | //                                   [76543210]
          //                    [_______________98765432__]
            ((((int)in.get(19 + inPos)) <<  2) & 1023)
        | //                                   [76543210]
          //                            [_______76543210__________]
            ((((int)in.get(20 + inPos)) <<  10) & 262143)
        | //                                   [_6543210]
          //                                    [4321098__________________]
            ((((int)in.get(21 + inPos)) <<  18) & 33554431);
      out[ 7 + outPos] =
          //                                   [7_______]
          //           [________________________0]
            ((((int)in.get(21 + inPos)) >>  7) & 1)
        | //                                   [76543210]
          //                   [________________87654321_]
            ((((int)in.get(22 + inPos)) <<  1) & 511)
        | //                                   [76543210]
          //                           [________65432109_________]
            ((((int)in.get(23 + inPos)) <<  9) & 131071)
        | //                                   [76543210]
          //                                   [43210987_________________]
            ((((int)in.get(24 + inPos)) <<  17) & 33554431);
    }
    public final void unpack32Values(final byte[] in, final int inPos, final int[] out, final int outPos) {
      out[ 0 + outPos] =
          //                                   [76543210]
          //                  [_________________76543210]
            ((((int)in[ 0 + inPos]) ) & 255)
        | //                                   [76543210]
          //                          [_________54321098________]
            ((((int)in[ 1 + inPos]) <<  8) & 65535)
        | //                                   [76543210]
          //                                  [_32109876________________]
            ((((int)in[ 2 + inPos]) <<  16) & 16777215)
        | //                                   [_______0]
          //                                          [4________________________]
            ((((int)in[ 3 + inPos]) <<  24) & 33554431);
      out[ 1 + outPos] =
          //                                   [7654321_]
          //                 [__________________6543210]
            ((((int)in[ 3 + inPos]) >>  1) & 127)
        | //                                   [76543210]
          //                         [__________43210987_______]
            ((((int)in[ 4 + inPos]) <<  7) & 32767)
        | //                                   [76543210]
          //                                 [__21098765_______________]
            ((((int)in[ 5 + inPos]) <<  15) & 8388607)
        | //                                   [______10]
          //                                         [43_______________________]
            ((((int)in[ 6 + inPos]) <<  23) & 33554431);
      out[ 2 + outPos] =
          //                                   [765432__]
          //                [___________________543210]
            ((((int)in[ 6 + inPos]) >>  2) & 63)
        | //                                   [76543210]
          //                        [___________32109876______]
            ((((int)in[ 7 + inPos]) <<  6) & 16383)
        | //                                   [76543210]
          //                                [___10987654______________]
            ((((int)in[ 8 + inPos]) <<  14) & 4194303)
        | //                                   [_____210]
          //                                        [432______________________]
            ((((int)in[ 9 + inPos]) <<  22) & 33554431);
      out[ 3 + outPos] =
          //                                   [76543___]
          //               [____________________43210]
            ((((int)in[ 9 + inPos]) >>  3) & 31)
        | //                                   [76543210]
          //                       [____________21098765_____]
            ((((int)in[10 + inPos]) <<  5) & 8191)
        | //                                   [76543210]
          //                               [____09876543_____________]
            ((((int)in[11 + inPos]) <<  13) & 2097151)
        | //                                   [____3210]
          //                                       [4321_____________________]
            ((((int)in[12 + inPos]) <<  21) & 33554431);
      out[ 4 + outPos] =
          //                                   [7654____]
          //              [_____________________3210]
            ((((int)in[12 + inPos]) >>  4) & 15)
        | //                                   [76543210]
          //                      [_____________10987654____]
            ((((int)in[13 + inPos]) <<  4) & 4095)
        | //                                   [76543210]
          //                              [_____98765432____________]
            ((((int)in[14 + inPos]) <<  12) & 1048575)
        | //                                   [___43210]
          //                                      [43210____________________]
            ((((int)in[15 + inPos]) <<  20) & 33554431);
      out[ 5 + outPos] =
          //                                   [765_____]
          //             [______________________210]
            ((((int)in[15 + inPos]) >>  5) & 7)
        | //                                   [76543210]
          //                     [______________09876543___]
            ((((int)in[16 + inPos]) <<  3) & 2047)
        | //                                   [76543210]
          //                             [______87654321___________]
            ((((int)in[17 + inPos]) <<  11) & 524287)
        | //                                   [__543210]
          //                                     [432109___________________]
            ((((int)in[18 + inPos]) <<  19) & 33554431);
      out[ 6 + outPos] =
          //                                   [76______]
          //            [_______________________10]
            ((((int)in[18 + inPos]) >>  6) & 3)
        | //                                   [76543210]
          //                    [_______________98765432__]
            ((((int)in[19 + inPos]) <<  2) & 1023)
        | //                                   [76543210]
          //                            [_______76543210__________]
            ((((int)in[20 + inPos]) <<  10) & 262143)
        | //                                   [_6543210]
          //                                    [4321098__________________]
            ((((int)in[21 + inPos]) <<  18) & 33554431);
      out[ 7 + outPos] =
          //                                   [7_______]
          //           [________________________0]
            ((((int)in[21 + inPos]) >>  7) & 1)
        | //                                   [76543210]
          //                   [________________87654321_]
            ((((int)in[22 + inPos]) <<  1) & 511)
        | //                                   [76543210]
          //                           [________65432109_________]
            ((((int)in[23 + inPos]) <<  9) & 131071)
        | //                                   [76543210]
          //                                   [43210987_________________]
            ((((int)in[24 + inPos]) <<  17) & 33554431);
      out[ 8 + outPos] =
          //                                   [76543210]
          //                  [_________________76543210]
            ((((int)in[25 + inPos]) ) & 255)
        | //                                   [76543210]
          //                          [_________54321098________]
            ((((int)in[26 + inPos]) <<  8) & 65535)
        | //                                   [76543210]
          //                                  [_32109876________________]
            ((((int)in[27 + inPos]) <<  16) & 16777215)
        | //                                   [_______0]
          //                                          [4________________________]
            ((((int)in[28 + inPos]) <<  24) & 33554431);
      out[ 9 + outPos] =
          //                                   [7654321_]
          //                 [__________________6543210]
            ((((int)in[28 + inPos]) >>  1) & 127)
        | //                                   [76543210]
          //                         [__________43210987_______]
            ((((int)in[29 + inPos]) <<  7) & 32767)
        | //                                   [76543210]
          //                                 [__21098765_______________]
            ((((int)in[30 + inPos]) <<  15) & 8388607)
        | //                                   [______10]
          //                                         [43_______________________]
            ((((int)in[31 + inPos]) <<  23) & 33554431);
      out[10 + outPos] =
          //                                   [765432__]
          //                [___________________543210]
            ((((int)in[31 + inPos]) >>  2) & 63)
        | //                                   [76543210]
          //                        [___________32109876______]
            ((((int)in[32 + inPos]) <<  6) & 16383)
        | //                                   [76543210]
          //                                [___10987654______________]
            ((((int)in[33 + inPos]) <<  14) & 4194303)
        | //                                   [_____210]
          //                                        [432______________________]
            ((((int)in[34 + inPos]) <<  22) & 33554431);
      out[11 + outPos] =
          //                                   [76543___]
          //               [____________________43210]
            ((((int)in[34 + inPos]) >>  3) & 31)
        | //                                   [76543210]
          //                       [____________21098765_____]
            ((((int)in[35 + inPos]) <<  5) & 8191)
        | //                                   [76543210]
          //                               [____09876543_____________]
            ((((int)in[36 + inPos]) <<  13) & 2097151)
        | //                                   [____3210]
          //                                       [4321_____________________]
            ((((int)in[37 + inPos]) <<  21) & 33554431);
      out[12 + outPos] =
          //                                   [7654____]
          //              [_____________________3210]
            ((((int)in[37 + inPos]) >>  4) & 15)
        | //                                   [76543210]
          //                      [_____________10987654____]
            ((((int)in[38 + inPos]) <<  4) & 4095)
        | //                                   [76543210]
          //                              [_____98765432____________]
            ((((int)in[39 + inPos]) <<  12) & 1048575)
        | //                                   [___43210]
          //                                      [43210____________________]
            ((((int)in[40 + inPos]) <<  20) & 33554431);
      out[13 + outPos] =
          //                                   [765_____]
          //             [______________________210]
            ((((int)in[40 + inPos]) >>  5) & 7)
        | //                                   [76543210]
          //                     [______________09876543___]
            ((((int)in[41 + inPos]) <<  3) & 2047)
        | //                                   [76543210]
          //                             [______87654321___________]
            ((((int)in[42 + inPos]) <<  11) & 524287)
        | //                                   [__543210]
          //                                     [432109___________________]
            ((((int)in[43 + inPos]) <<  19) & 33554431);
      out[14 + outPos] =
          //                                   [76______]
          //            [_______________________10]
            ((((int)in[43 + inPos]) >>  6) & 3)
        | //                                   [76543210]
          //                    [_______________98765432__]
            ((((int)in[44 + inPos]) <<  2) & 1023)
        | //                                   [76543210]
          //                            [_______76543210__________]
            ((((int)in[45 + inPos]) <<  10) & 262143)
        | //                                   [_6543210]
          //                                    [4321098__________________]
            ((((int)in[46 + inPos]) <<  18) & 33554431);
      out[15 + outPos] =
          //                                   [7_______]
          //           [________________________0]
            ((((int)in[46 + inPos]) >>  7) & 1)
        | //                                   [76543210]
          //                   [________________87654321_]
            ((((int)in[47 + inPos]) <<  1) & 511)
        | //                                   [76543210]
          //                           [________65432109_________]
            ((((int)in[48 + inPos]) <<  9) & 131071)
        | //                                   [76543210]
          //                                   [43210987_________________]
            ((((int)in[49 + inPos]) <<  17) & 33554431);
      out[16 + outPos] =
          //                                   [76543210]
          //                  [_________________76543210]
            ((((int)in[50 + inPos]) ) & 255)
        | //                                   [76543210]
          //                          [_________54321098________]
            ((((int)in[51 + inPos]) <<  8) & 65535)
        | //                                   [76543210]
          //                                  [_32109876________________]
            ((((int)in[52 + inPos]) <<  16) & 16777215)
        | //                                   [_______0]
          //                                          [4________________________]
            ((((int)in[53 + inPos]) <<  24) & 33554431);
      out[17 + outPos] =
          //                                   [7654321_]
          //                 [__________________6543210]
            ((((int)in[53 + inPos]) >>  1) & 127)
        | //                                   [76543210]
          //                         [__________43210987_______]
            ((((int)in[54 + inPos]) <<  7) & 32767)
        | //                                   [76543210]
          //                                 [__21098765_______________]
            ((((int)in[55 + inPos]) <<  15) & 8388607)
        | //                                   [______10]
          //                                         [43_______________________]
            ((((int)in[56 + inPos]) <<  23) & 33554431);
      out[18 + outPos] =
          //                                   [765432__]
          //                [___________________543210]
            ((((int)in[56 + inPos]) >>  2) & 63)
        | //                                   [76543210]
          //                        [___________32109876______]
            ((((int)in[57 + inPos]) <<  6) & 16383)
        | //                                   [76543210]
          //                                [___10987654______________]
            ((((int)in[58 + inPos]) <<  14) & 4194303)
        | //                                   [_____210]
          //                                        [432______________________]
            ((((int)in[59 + inPos]) <<  22) & 33554431);
      out[19 + outPos] =
          //                                   [76543___]
          //               [____________________43210]
            ((((int)in[59 + inPos]) >>  3) & 31)
        | //                                   [76543210]
          //                       [____________21098765_____]
            ((((int)in[60 + inPos]) <<  5) & 8191)
        | //                                   [76543210]
          //                               [____09876543_____________]
            ((((int)in[61 + inPos]) <<  13) & 2097151)
        | //                                   [____3210]
          //                                       [4321_____________________]
            ((((int)in[62 + inPos]) <<  21) & 33554431);
      out[20 + outPos] =
          //                                   [7654____]
          //              [_____________________3210]
            ((((int)in[62 + inPos]) >>  4) & 15)
        | //                                   [76543210]
          //                      [_____________10987654____]
            ((((int)in[63 + inPos]) <<  4) & 4095)
        | //                                   [76543210]
          //                              [_____98765432____________]
            ((((int)in[64 + inPos]) <<  12) & 1048575)
        | //                                   [___43210]
          //                                      [43210____________________]
            ((((int)in[65 + inPos]) <<  20) & 33554431);
      out[21 + outPos] =
          //                                   [765_____]
          //             [______________________210]
            ((((int)in[65 + inPos]) >>  5) & 7)
        | //                                   [76543210]
          //                     [______________09876543___]
            ((((int)in[66 + inPos]) <<  3) & 2047)
        | //                                   [76543210]
          //                             [______87654321___________]
            ((((int)in[67 + inPos]) <<  11) & 524287)
        | //                                   [__543210]
          //                                     [432109___________________]
            ((((int)in[68 + inPos]) <<  19) & 33554431);
      out[22 + outPos] =
          //                                   [76______]
          //            [_______________________10]
            ((((int)in[68 + inPos]) >>  6) & 3)
        | //                                   [76543210]
          //                    [_______________98765432__]
            ((((int)in[69 + inPos]) <<  2) & 1023)
        | //                                   [76543210]
          //                            [_______76543210__________]
            ((((int)in[70 + inPos]) <<  10) & 262143)
        | //                                   [_6543210]
          //                                    [4321098__________________]
            ((((int)in[71 + inPos]) <<  18) & 33554431);
      out[23 + outPos] =
          //                                   [7_______]
          //           [________________________0]
            ((((int)in[71 + inPos]) >>  7) & 1)
        | //                                   [76543210]
          //                   [________________87654321_]
            ((((int)in[72 + inPos]) <<  1) & 511)
        | //                                   [76543210]
          //                           [________65432109_________]
            ((((int)in[73 + inPos]) <<  9) & 131071)
        | //                                   [76543210]
          //                                   [43210987_________________]
            ((((int)in[74 + inPos]) <<  17) & 33554431);
      out[24 + outPos] =
          //                                   [76543210]
          //                  [_________________76543210]
            ((((int)in[75 + inPos]) ) & 255)
        | //                                   [76543210]
          //                          [_________54321098________]
            ((((int)in[76 + inPos]) <<  8) & 65535)
        | //                                   [76543210]
          //                                  [_32109876________________]
            ((((int)in[77 + inPos]) <<  16) & 16777215)
        | //                                   [_______0]
          //                                          [4________________________]
            ((((int)in[78 + inPos]) <<  24) & 33554431);
      out[25 + outPos] =
          //                                   [7654321_]
          //                 [__________________6543210]
            ((((int)in[78 + inPos]) >>  1) & 127)
        | //                                   [76543210]
          //                         [__________43210987_______]
            ((((int)in[79 + inPos]) <<  7) & 32767)
        | //                                   [76543210]
          //                                 [__21098765_______________]
            ((((int)in[80 + inPos]) <<  15) & 8388607)
        | //                                   [______10]
          //                                         [43_______________________]
            ((((int)in[81 + inPos]) <<  23) & 33554431);
      out[26 + outPos] =
          //                                   [765432__]
          //                [___________________543210]
            ((((int)in[81 + inPos]) >>  2) & 63)
        | //                                   [76543210]
          //                        [___________32109876______]
            ((((int)in[82 + inPos]) <<  6) & 16383)
        | //                                   [76543210]
          //                                [___10987654______________]
            ((((int)in[83 + inPos]) <<  14) & 4194303)
        | //                                   [_____210]
          //                                        [432______________________]
            ((((int)in[84 + inPos]) <<  22) & 33554431);
      out[27 + outPos] =
          //                                   [76543___]
          //               [____________________43210]
            ((((int)in[84 + inPos]) >>  3) & 31)
        | //                                   [76543210]
          //                       [____________21098765_____]
            ((((int)in[85 + inPos]) <<  5) & 8191)
        | //                                   [76543210]
          //                               [____09876543_____________]
            ((((int)in[86 + inPos]) <<  13) & 2097151)
        | //                                   [____3210]
          //                                       [4321_____________________]
            ((((int)in[87 + inPos]) <<  21) & 33554431);
      out[28 + outPos] =
          //                                   [7654____]
          //              [_____________________3210]
            ((((int)in[87 + inPos]) >>  4) & 15)
        | //                                   [76543210]
          //                      [_____________10987654____]
            ((((int)in[88 + inPos]) <<  4) & 4095)
        | //                                   [76543210]
          //                              [_____98765432____________]
            ((((int)in[89 + inPos]) <<  12) & 1048575)
        | //                                   [___43210]
          //                                      [43210____________________]
            ((((int)in[90 + inPos]) <<  20) & 33554431);
      out[29 + outPos] =
          //                                   [765_____]
          //             [______________________210]
            ((((int)in[90 + inPos]) >>  5) & 7)
        | //                                   [76543210]
          //                     [______________09876543___]
            ((((int)in[91 + inPos]) <<  3) & 2047)
        | //                                   [76543210]
          //                             [______87654321___________]
            ((((int)in[92 + inPos]) <<  11) & 524287)
        | //                                   [__543210]
          //                                     [432109___________________]
            ((((int)in[93 + inPos]) <<  19) & 33554431);
      out[30 + outPos] =
          //                                   [76______]
          //            [_______________________10]
            ((((int)in[93 + inPos]) >>  6) & 3)
        | //                                   [76543210]
          //                    [_______________98765432__]
            ((((int)in[94 + inPos]) <<  2) & 1023)
        | //                                   [76543210]
          //                            [_______76543210__________]
            ((((int)in[95 + inPos]) <<  10) & 262143)
        | //                                   [_6543210]
          //                                    [4321098__________________]
            ((((int)in[96 + inPos]) <<  18) & 33554431);
      out[31 + outPos] =
          //                                   [7_______]
          //           [________________________0]
            ((((int)in[96 + inPos]) >>  7) & 1)
        | //                                   [76543210]
          //                   [________________87654321_]
            ((((int)in[97 + inPos]) <<  1) & 511)
        | //                                   [76543210]
          //                           [________65432109_________]
            ((((int)in[98 + inPos]) <<  9) & 131071)
        | //                                   [76543210]
          //                                   [43210987_________________]
            ((((int)in[99 + inPos]) <<  17) & 33554431);
    }
    public final void unpack32Values(final ByteBuffer in, final int inPos, final int[] out, final int outPos) {
      out[ 0 + outPos] =
          //                                   [76543210]
          //                  [_________________76543210]
            ((((int)in.get( 0 + inPos)) ) & 255)
        | //                                   [76543210]
          //                          [_________54321098________]
            ((((int)in.get( 1 + inPos)) <<  8) & 65535)
        | //                                   [76543210]
          //                                  [_32109876________________]
            ((((int)in.get( 2 + inPos)) <<  16) & 16777215)
        | //                                   [_______0]
          //                                          [4________________________]
            ((((int)in.get( 3 + inPos)) <<  24) & 33554431);
      out[ 1 + outPos] =
          //                                   [7654321_]
          //                 [__________________6543210]
            ((((int)in.get( 3 + inPos)) >>  1) & 127)
        | //                                   [76543210]
          //                         [__________43210987_______]
            ((((int)in.get( 4 + inPos)) <<  7) & 32767)
        | //                                   [76543210]
          //                                 [__21098765_______________]
            ((((int)in.get( 5 + inPos)) <<  15) & 8388607)
        | //                                   [______10]
          //                                         [43_______________________]
            ((((int)in.get( 6 + inPos)) <<  23) & 33554431);
      out[ 2 + outPos] =
          //                                   [765432__]
          //                [___________________543210]
            ((((int)in.get( 6 + inPos)) >>  2) & 63)
        | //                                   [76543210]
          //                        [___________32109876______]
            ((((int)in.get( 7 + inPos)) <<  6) & 16383)
        | //                                   [76543210]
          //                                [___10987654______________]
            ((((int)in.get( 8 + inPos)) <<  14) & 4194303)
        | //                                   [_____210]
          //                                        [432______________________]
            ((((int)in.get( 9 + inPos)) <<  22) & 33554431);
      out[ 3 + outPos] =
          //                                   [76543___]
          //               [____________________43210]
            ((((int)in.get( 9 + inPos)) >>  3) & 31)
        | //                                   [76543210]
          //                       [____________21098765_____]
            ((((int)in.get(10 + inPos)) <<  5) & 8191)
        | //                                   [76543210]
          //                               [____09876543_____________]
            ((((int)in.get(11 + inPos)) <<  13) & 2097151)
        | //                                   [____3210]
          //                                       [4321_____________________]
            ((((int)in.get(12 + inPos)) <<  21) & 33554431);
      out[ 4 + outPos] =
          //                                   [7654____]
          //              [_____________________3210]
            ((((int)in.get(12 + inPos)) >>  4) & 15)
        | //                                   [76543210]
          //                      [_____________10987654____]
            ((((int)in.get(13 + inPos)) <<  4) & 4095)
        | //                                   [76543210]
          //                              [_____98765432____________]
            ((((int)in.get(14 + inPos)) <<  12) & 1048575)
        | //                                   [___43210]
          //                                      [43210____________________]
            ((((int)in.get(15 + inPos)) <<  20) & 33554431);
      out[ 5 + outPos] =
          //                                   [765_____]
          //             [______________________210]
            ((((int)in.get(15 + inPos)) >>  5) & 7)
        | //                                   [76543210]
          //                     [______________09876543___]
            ((((int)in.get(16 + inPos)) <<  3) & 2047)
        | //                                   [76543210]
          //                             [______87654321___________]
            ((((int)in.get(17 + inPos)) <<  11) & 524287)
        | //                                   [__543210]
          //                                     [432109___________________]
            ((((int)in.get(18 + inPos)) <<  19) & 33554431);
      out[ 6 + outPos] =
          //                                   [76______]
          //            [_______________________10]
            ((((int)in.get(18 + inPos)) >>  6) & 3)
        | //                                   [76543210]
          //                    [_______________98765432__]
            ((((int)in.get(19 + inPos)) <<  2) & 1023)
        | //                                   [76543210]
          //                            [_______76543210__________]
            ((((int)in.get(20 + inPos)) <<  10) & 262143)
        | //                                   [_6543210]
          //                                    [4321098__________________]
            ((((int)in.get(21 + inPos)) <<  18) & 33554431);
      out[ 7 + outPos] =
          //                                   [7_______]
          //           [________________________0]
            ((((int)in.get(21 + inPos)) >>  7) & 1)
        | //                                   [76543210]
          //                   [________________87654321_]
            ((((int)in.get(22 + inPos)) <<  1) & 511)
        | //                                   [76543210]
          //                           [________65432109_________]
            ((((int)in.get(23 + inPos)) <<  9) & 131071)
        | //                                   [76543210]
          //                                   [43210987_________________]
            ((((int)in.get(24 + inPos)) <<  17) & 33554431);
      out[ 8 + outPos] =
          //                                   [76543210]
          //                  [_________________76543210]
            ((((int)in.get(25 + inPos)) ) & 255)
        | //                                   [76543210]
          //                          [_________54321098________]
            ((((int)in.get(26 + inPos)) <<  8) & 65535)
        | //                                   [76543210]
          //                                  [_32109876________________]
            ((((int)in.get(27 + inPos)) <<  16) & 16777215)
        | //                                   [_______0]
          //                                          [4________________________]
            ((((int)in.get(28 + inPos)) <<  24) & 33554431);
      out[ 9 + outPos] =
          //                                   [7654321_]
          //                 [__________________6543210]
            ((((int)in.get(28 + inPos)) >>  1) & 127)
        | //                                   [76543210]
          //                         [__________43210987_______]
            ((((int)in.get(29 + inPos)) <<  7) & 32767)
        | //                                   [76543210]
          //                                 [__21098765_______________]
            ((((int)in.get(30 + inPos)) <<  15) & 8388607)
        | //                                   [______10]
          //                                         [43_______________________]
            ((((int)in.get(31 + inPos)) <<  23) & 33554431);
      out[10 + outPos] =
          //                                   [765432__]
          //                [___________________543210]
            ((((int)in.get(31 + inPos)) >>  2) & 63)
        | //                                   [76543210]
          //                        [___________32109876______]
            ((((int)in.get(32 + inPos)) <<  6) & 16383)
        | //                                   [76543210]
          //                                [___10987654______________]
            ((((int)in.get(33 + inPos)) <<  14) & 4194303)
        | //                                   [_____210]
          //                                        [432______________________]
            ((((int)in.get(34 + inPos)) <<  22) & 33554431);
      out[11 + outPos] =
          //                                   [76543___]
          //               [____________________43210]
            ((((int)in.get(34 + inPos)) >>  3) & 31)
        | //                                   [76543210]
          //                       [____________21098765_____]
            ((((int)in.get(35 + inPos)) <<  5) & 8191)
        | //                                   [76543210]
          //                               [____09876543_____________]
            ((((int)in.get(36 + inPos)) <<  13) & 2097151)
        | //                                   [____3210]
          //                                       [4321_____________________]
            ((((int)in.get(37 + inPos)) <<  21) & 33554431);
      out[12 + outPos] =
          //                                   [7654____]
          //              [_____________________3210]
            ((((int)in.get(37 + inPos)) >>  4) & 15)
        | //                                   [76543210]
          //                      [_____________10987654____]
            ((((int)in.get(38 + inPos)) <<  4) & 4095)
        | //                                   [76543210]
          //                              [_____98765432____________]
            ((((int)in.get(39 + inPos)) <<  12) & 1048575)
        | //                                   [___43210]
          //                                      [43210____________________]
            ((((int)in.get(40 + inPos)) <<  20) & 33554431);
      out[13 + outPos] =
          //                                   [765_____]
          //             [______________________210]
            ((((int)in.get(40 + inPos)) >>  5) & 7)
        | //                                   [76543210]
          //                     [______________09876543___]
            ((((int)in.get(41 + inPos)) <<  3) & 2047)
        | //                                   [76543210]
          //                             [______87654321___________]
            ((((int)in.get(42 + inPos)) <<  11) & 524287)
        | //                                   [__543210]
          //                                     [432109___________________]
            ((((int)in.get(43 + inPos)) <<  19) & 33554431);
      out[14 + outPos] =
          //                                   [76______]
          //            [_______________________10]
            ((((int)in.get(43 + inPos)) >>  6) & 3)
        | //                                   [76543210]
          //                    [_______________98765432__]
            ((((int)in.get(44 + inPos)) <<  2) & 1023)
        | //                                   [76543210]
          //                            [_______76543210__________]
            ((((int)in.get(45 + inPos)) <<  10) & 262143)
        | //                                   [_6543210]
          //                                    [4321098__________________]
            ((((int)in.get(46 + inPos)) <<  18) & 33554431);
      out[15 + outPos] =
          //                                   [7_______]
          //           [________________________0]
            ((((int)in.get(46 + inPos)) >>  7) & 1)
        | //                                   [76543210]
          //                   [________________87654321_]
            ((((int)in.get(47 + inPos)) <<  1) & 511)
        | //                                   [76543210]
          //                           [________65432109_________]
            ((((int)in.get(48 + inPos)) <<  9) & 131071)
        | //                                   [76543210]
          //                                   [43210987_________________]
            ((((int)in.get(49 + inPos)) <<  17) & 33554431);
      out[16 + outPos] =
          //                                   [76543210]
          //                  [_________________76543210]
            ((((int)in.get(50 + inPos)) ) & 255)
        | //                                   [76543210]
          //                          [_________54321098________]
            ((((int)in.get(51 + inPos)) <<  8) & 65535)
        | //                                   [76543210]
          //                                  [_32109876________________]
            ((((int)in.get(52 + inPos)) <<  16) & 16777215)
        | //                                   [_______0]
          //                                          [4________________________]
            ((((int)in.get(53 + inPos)) <<  24) & 33554431);
      out[17 + outPos] =
          //                                   [7654321_]
          //                 [__________________6543210]
            ((((int)in.get(53 + inPos)) >>  1) & 127)
        | //                                   [76543210]
          //                         [__________43210987_______]
            ((((int)in.get(54 + inPos)) <<  7) & 32767)
        | //                                   [76543210]
          //                                 [__21098765_______________]
            ((((int)in.get(55 + inPos)) <<  15) & 8388607)
        | //                                   [______10]
          //                                         [43_______________________]
            ((((int)in.get(56 + inPos)) <<  23) & 33554431);
      out[18 + outPos] =
          //                                   [765432__]
          //                [___________________543210]
            ((((int)in.get(56 + inPos)) >>  2) & 63)
        | //                                   [76543210]
          //                        [___________32109876______]
            ((((int)in.get(57 + inPos)) <<  6) & 16383)
        | //                                   [76543210]
          //                                [___10987654______________]
            ((((int)in.get(58 + inPos)) <<  14) & 4194303)
        | //                                   [_____210]
          //                                        [432______________________]
            ((((int)in.get(59 + inPos)) <<  22) & 33554431);
      out[19 + outPos] =
          //                                   [76543___]
          //               [____________________43210]
            ((((int)in.get(59 + inPos)) >>  3) & 31)
        | //                                   [76543210]
          //                       [____________21098765_____]
            ((((int)in.get(60 + inPos)) <<  5) & 8191)
        | //                                   [76543210]
          //                               [____09876543_____________]
            ((((int)in.get(61 + inPos)) <<  13) & 2097151)
        | //                                   [____3210]
          //                                       [4321_____________________]
            ((((int)in.get(62 + inPos)) <<  21) & 33554431);
      out[20 + outPos] =
          //                                   [7654____]
          //              [_____________________3210]
            ((((int)in.get(62 + inPos)) >>  4) & 15)
        | //                                   [76543210]
          //                      [_____________10987654____]
            ((((int)in.get(63 + inPos)) <<  4) & 4095)
        | //                                   [76543210]
          //                              [_____98765432____________]
            ((((int)in.get(64 + inPos)) <<  12) & 1048575)
        | //                                   [___43210]
          //                                      [43210____________________]
            ((((int)in.get(65 + inPos)) <<  20) & 33554431);
      out[21 + outPos] =
          //                                   [765_____]
          //             [______________________210]
            ((((int)in.get(65 + inPos)) >>  5) & 7)
        | //                                   [76543210]
          //                     [______________09876543___]
            ((((int)in.get(66 + inPos)) <<  3) & 2047)
        | //                                   [76543210]
          //                             [______87654321___________]
            ((((int)in.get(67 + inPos)) <<  11) & 524287)
        | //                                   [__543210]
          //                                     [432109___________________]
            ((((int)in.get(68 + inPos)) <<  19) & 33554431);
      out[22 + outPos] =
          //                                   [76______]
          //            [_______________________10]
            ((((int)in.get(68 + inPos)) >>  6) & 3)
        | //                                   [76543210]
          //                    [_______________98765432__]
            ((((int)in.get(69 + inPos)) <<  2) & 1023)
        | //                                   [76543210]
          //                            [_______76543210__________]
            ((((int)in.get(70 + inPos)) <<  10) & 262143)
        | //                                   [_6543210]
          //                                    [4321098__________________]
            ((((int)in.get(71 + inPos)) <<  18) & 33554431);
      out[23 + outPos] =
          //                                   [7_______]
          //           [________________________0]
            ((((int)in.get(71 + inPos)) >>  7) & 1)
        | //                                   [76543210]
          //                   [________________87654321_]
            ((((int)in.get(72 + inPos)) <<  1) & 511)
        | //                                   [76543210]
          //                           [________65432109_________]
            ((((int)in.get(73 + inPos)) <<  9) & 131071)
        | //                                   [76543210]
          //                                   [43210987_________________]
            ((((int)in.get(74 + inPos)) <<  17) & 33554431);
      out[24 + outPos] =
          //                                   [76543210]
          //                  [_________________76543210]
            ((((int)in.get(75 + inPos)) ) & 255)
        | //                                   [76543210]
          //                          [_________54321098________]
            ((((int)in.get(76 + inPos)) <<  8) & 65535)
        | //                                   [76543210]
          //                                  [_32109876________________]
            ((((int)in.get(77 + inPos)) <<  16) & 16777215)
        | //                                   [_______0]
          //                                          [4________________________]
            ((((int)in.get(78 + inPos)) <<  24) & 33554431);
      out[25 + outPos] =
          //                                   [7654321_]
          //                 [__________________6543210]
            ((((int)in.get(78 + inPos)) >>  1) & 127)
        | //                                   [76543210]
          //                         [__________43210987_______]
            ((((int)in.get(79 + inPos)) <<  7) & 32767)
        | //                                   [76543210]
          //                                 [__21098765_______________]
            ((((int)in.get(80 + inPos)) <<  15) & 8388607)
        | //                                   [______10]
          //                                         [43_______________________]
            ((((int)in.get(81 + inPos)) <<  23) & 33554431);
      out[26 + outPos] =
          //                                   [765432__]
          //                [___________________543210]
            ((((int)in.get(81 + inPos)) >>  2) & 63)
        | //                                   [76543210]
          //                        [___________32109876______]
            ((((int)in.get(82 + inPos)) <<  6) & 16383)
        | //                                   [76543210]
          //                                [___10987654______________]
            ((((int)in.get(83 + inPos)) <<  14) & 4194303)
        | //                                   [_____210]
          //                                        [432______________________]
            ((((int)in.get(84 + inPos)) <<  22) & 33554431);
      out[27 + outPos] =
          //                                   [76543___]
          //               [____________________43210]
            ((((int)in.get(84 + inPos)) >>  3) & 31)
        | //                                   [76543210]
          //                       [____________21098765_____]
            ((((int)in.get(85 + inPos)) <<  5) & 8191)
        | //                                   [76543210]
          //                               [____09876543_____________]
            ((((int)in.get(86 + inPos)) <<  13) & 2097151)
        | //                                   [____3210]
          //                                       [4321_____________________]
            ((((int)in.get(87 + inPos)) <<  21) & 33554431);
      out[28 + outPos] =
          //                                   [7654____]
          //              [_____________________3210]
            ((((int)in.get(87 + inPos)) >>  4) & 15)
        | //                                   [76543210]
          //                      [_____________10987654____]
            ((((int)in.get(88 + inPos)) <<  4) & 4095)
        | //                                   [76543210]
          //                              [_____98765432____________]
            ((((int)in.get(89 + inPos)) <<  12) & 1048575)
        | //                                   [___43210]
          //                                      [43210____________________]
            ((((int)in.get(90 + inPos)) <<  20) & 33554431);
      out[29 + outPos] =
          //                                   [765_____]
          //             [______________________210]
            ((((int)in.get(90 + inPos)) >>  5) & 7)
        | //                                   [76543210]
          //                     [______________09876543___]
            ((((int)in.get(91 + inPos)) <<  3) & 2047)
        | //                                   [76543210]
          //                             [______87654321___________]
            ((((int)in.get(92 + inPos)) <<  11) & 524287)
        | //                                   [__543210]
          //                                     [432109___________________]
            ((((int)in.get(93 + inPos)) <<  19) & 33554431);
      out[30 + outPos] =
          //                                   [76______]
          //            [_______________________10]
            ((((int)in.get(93 + inPos)) >>  6) & 3)
        | //                                   [76543210]
          //                    [_______________98765432__]
            ((((int)in.get(94 + inPos)) <<  2) & 1023)
        | //                                   [76543210]
          //                            [_______76543210__________]
            ((((int)in.get(95 + inPos)) <<  10) & 262143)
        | //                                   [_6543210]
          //                                    [4321098__________________]
            ((((int)in.get(96 + inPos)) <<  18) & 33554431);
      out[31 + outPos] =
          //                                   [7_______]
          //           [________________________0]
            ((((int)in.get(96 + inPos)) >>  7) & 1)
        | //                                   [76543210]
          //                   [________________87654321_]
            ((((int)in.get(97 + inPos)) <<  1) & 511)
        | //                                   [76543210]
          //                           [________65432109_________]
            ((((int)in.get(98 + inPos)) <<  9) & 131071)
        | //                                   [76543210]
          //                                   [43210987_________________]
            ((((int)in.get(99 + inPos)) <<  17) & 33554431);
    }
  }

  private static final class Packer26 extends BytePacker {

    private Packer26() {
      super(26);
    }

    public final void pack8Values(final int[] in, final int inPos, final byte[] out, final int outPos) {
      out[ 0 + outPos] = (byte)((
          //                                    [76543210]
          //                  [__________________76543210]
           ((in[ 0 + inPos] & 67108863))) & 255);
      out[ 1 + outPos] = (byte)((
          //                                    [76543210]
          //                          [__________54321098________]
           ((in[ 0 + inPos] & 67108863) >>> 8)) & 255);
      out[ 2 + outPos] = (byte)((
          //                                    [76543210]
          //                                  [__32109876________________]
           ((in[ 0 + inPos] & 67108863) >>> 16)) & 255);
      out[ 3 + outPos] = (byte)((
          //                                    [______10]
          //                                          [54________________________]
           ((in[ 0 + inPos] & 67108863) >>> 24)
        | //                                    [765432__]
          //                [____________________543210]
           ((in[ 1 + inPos] & 67108863) <<  2)) & 255);
      out[ 4 + outPos] = (byte)((
          //                                    [76543210]
          //                        [____________32109876______]
           ((in[ 1 + inPos] & 67108863) >>> 6)) & 255);
      out[ 5 + outPos] = (byte)((
          //                                    [76543210]
          //                                [____10987654______________]
           ((in[ 1 + inPos] & 67108863) >>> 14)) & 255);
      out[ 6 + outPos] = (byte)((
          //                                    [____3210]
          //                                        [5432______________________]
           ((in[ 1 + inPos] & 67108863) >>> 22)
        | //                                    [7654____]
          //              [______________________3210]
           ((in[ 2 + inPos] & 67108863) <<  4)) & 255);
      out[ 7 + outPos] = (byte)((
          //                                    [76543210]
          //                      [______________10987654____]
           ((in[ 2 + inPos] & 67108863) >>> 4)) & 255);
      out[ 8 + outPos] = (byte)((
          //                                    [76543210]
          //                              [______98765432____________]
           ((in[ 2 + inPos] & 67108863) >>> 12)) & 255);
      out[ 9 + outPos] = (byte)((
          //                                    [__543210]
          //                                      [543210____________________]
           ((in[ 2 + inPos] & 67108863) >>> 20)
        | //                                    [76______]
          //            [________________________10]
           ((in[ 3 + inPos] & 67108863) <<  6)) & 255);
      out[10 + outPos] = (byte)((
          //                                    [76543210]
          //                    [________________98765432__]
           ((in[ 3 + inPos] & 67108863) >>> 2)) & 255);
      out[11 + outPos] = (byte)((
          //                                    [76543210]
          //                            [________76543210__________]
           ((in[ 3 + inPos] & 67108863) >>> 10)) & 255);
      out[12 + outPos] = (byte)((
          //                                    [76543210]
          //                                    [54321098__________________]
           ((in[ 3 + inPos] & 67108863) >>> 18)) & 255);
      out[13 + outPos] = (byte)((
          //                                    [76543210]
          //                  [__________________76543210]
           ((in[ 4 + inPos] & 67108863))) & 255);
      out[14 + outPos] = (byte)((
          //                                    [76543210]
          //                          [__________54321098________]
           ((in[ 4 + inPos] & 67108863) >>> 8)) & 255);
      out[15 + outPos] = (byte)((
          //                                    [76543210]
          //                                  [__32109876________________]
           ((in[ 4 + inPos] & 67108863) >>> 16)) & 255);
      out[16 + outPos] = (byte)((
          //                                    [______10]
          //                                          [54________________________]
           ((in[ 4 + inPos] & 67108863) >>> 24)
        | //                                    [765432__]
          //                [____________________543210]
           ((in[ 5 + inPos] & 67108863) <<  2)) & 255);
      out[17 + outPos] = (byte)((
          //                                    [76543210]
          //                        [____________32109876______]
           ((in[ 5 + inPos] & 67108863) >>> 6)) & 255);
      out[18 + outPos] = (byte)((
          //                                    [76543210]
          //                                [____10987654______________]
           ((in[ 5 + inPos] & 67108863) >>> 14)) & 255);
      out[19 + outPos] = (byte)((
          //                                    [____3210]
          //                                        [5432______________________]
           ((in[ 5 + inPos] & 67108863) >>> 22)
        | //                                    [7654____]
          //              [______________________3210]
           ((in[ 6 + inPos] & 67108863) <<  4)) & 255);
      out[20 + outPos] = (byte)((
          //                                    [76543210]
          //                      [______________10987654____]
           ((in[ 6 + inPos] & 67108863) >>> 4)) & 255);
      out[21 + outPos] = (byte)((
          //                                    [76543210]
          //                              [______98765432____________]
           ((in[ 6 + inPos] & 67108863) >>> 12)) & 255);
      out[22 + outPos] = (byte)((
          //                                    [__543210]
          //                                      [543210____________________]
           ((in[ 6 + inPos] & 67108863) >>> 20)
        | //                                    [76______]
          //            [________________________10]
           ((in[ 7 + inPos] & 67108863) <<  6)) & 255);
      out[23 + outPos] = (byte)((
          //                                    [76543210]
          //                    [________________98765432__]
           ((in[ 7 + inPos] & 67108863) >>> 2)) & 255);
      out[24 + outPos] = (byte)((
          //                                    [76543210]
          //                            [________76543210__________]
           ((in[ 7 + inPos] & 67108863) >>> 10)) & 255);
      out[25 + outPos] = (byte)((
          //                                    [76543210]
          //                                    [54321098__________________]
           ((in[ 7 + inPos] & 67108863) >>> 18)) & 255);
    }
    public final void pack32Values(final int[] in, final int inPos, final byte[] out, final int outPos) {
      out[ 0 + outPos] = (byte)((
          //                                    [76543210]
          //                  [__________________76543210]
           ((in[ 0 + inPos] & 67108863))) & 255);
      out[ 1 + outPos] = (byte)((
          //                                    [76543210]
          //                          [__________54321098________]
           ((in[ 0 + inPos] & 67108863) >>> 8)) & 255);
      out[ 2 + outPos] = (byte)((
          //                                    [76543210]
          //                                  [__32109876________________]
           ((in[ 0 + inPos] & 67108863) >>> 16)) & 255);
      out[ 3 + outPos] = (byte)((
          //                                    [______10]
          //                                          [54________________________]
           ((in[ 0 + inPos] & 67108863) >>> 24)
        | //                                    [765432__]
          //                [____________________543210]
           ((in[ 1 + inPos] & 67108863) <<  2)) & 255);
      out[ 4 + outPos] = (byte)((
          //                                    [76543210]
          //                        [____________32109876______]
           ((in[ 1 + inPos] & 67108863) >>> 6)) & 255);
      out[ 5 + outPos] = (byte)((
          //                                    [76543210]
          //                                [____10987654______________]
           ((in[ 1 + inPos] & 67108863) >>> 14)) & 255);
      out[ 6 + outPos] = (byte)((
          //                                    [____3210]
          //                                        [5432______________________]
           ((in[ 1 + inPos] & 67108863) >>> 22)
        | //                                    [7654____]
          //              [______________________3210]
           ((in[ 2 + inPos] & 67108863) <<  4)) & 255);
      out[ 7 + outPos] = (byte)((
          //                                    [76543210]
          //                      [______________10987654____]
           ((in[ 2 + inPos] & 67108863) >>> 4)) & 255);
      out[ 8 + outPos] = (byte)((
          //                                    [76543210]
          //                              [______98765432____________]
           ((in[ 2 + inPos] & 67108863) >>> 12)) & 255);
      out[ 9 + outPos] = (byte)((
          //                                    [__543210]
          //                                      [543210____________________]
           ((in[ 2 + inPos] & 67108863) >>> 20)
        | //                                    [76______]
          //            [________________________10]
           ((in[ 3 + inPos] & 67108863) <<  6)) & 255);
      out[10 + outPos] = (byte)((
          //                                    [76543210]
          //                    [________________98765432__]
           ((in[ 3 + inPos] & 67108863) >>> 2)) & 255);
      out[11 + outPos] = (byte)((
          //                                    [76543210]
          //                            [________76543210__________]
           ((in[ 3 + inPos] & 67108863) >>> 10)) & 255);
      out[12 + outPos] = (byte)((
          //                                    [76543210]
          //                                    [54321098__________________]
           ((in[ 3 + inPos] & 67108863) >>> 18)) & 255);
      out[13 + outPos] = (byte)((
          //                                    [76543210]
          //                  [__________________76543210]
           ((in[ 4 + inPos] & 67108863))) & 255);
      out[14 + outPos] = (byte)((
          //                                    [76543210]
          //                          [__________54321098________]
           ((in[ 4 + inPos] & 67108863) >>> 8)) & 255);
      out[15 + outPos] = (byte)((
          //                                    [76543210]
          //                                  [__32109876________________]
           ((in[ 4 + inPos] & 67108863) >>> 16)) & 255);
      out[16 + outPos] = (byte)((
          //                                    [______10]
          //                                          [54________________________]
           ((in[ 4 + inPos] & 67108863) >>> 24)
        | //                                    [765432__]
          //                [____________________543210]
           ((in[ 5 + inPos] & 67108863) <<  2)) & 255);
      out[17 + outPos] = (byte)((
          //                                    [76543210]
          //                        [____________32109876______]
           ((in[ 5 + inPos] & 67108863) >>> 6)) & 255);
      out[18 + outPos] = (byte)((
          //                                    [76543210]
          //                                [____10987654______________]
           ((in[ 5 + inPos] & 67108863) >>> 14)) & 255);
      out[19 + outPos] = (byte)((
          //                                    [____3210]
          //                                        [5432______________________]
           ((in[ 5 + inPos] & 67108863) >>> 22)
        | //                                    [7654____]
          //              [______________________3210]
           ((in[ 6 + inPos] & 67108863) <<  4)) & 255);
      out[20 + outPos] = (byte)((
          //                                    [76543210]
          //                      [______________10987654____]
           ((in[ 6 + inPos] & 67108863) >>> 4)) & 255);
      out[21 + outPos] = (byte)((
          //                                    [76543210]
          //                              [______98765432____________]
           ((in[ 6 + inPos] & 67108863) >>> 12)) & 255);
      out[22 + outPos] = (byte)((
          //                                    [__543210]
          //                                      [543210____________________]
           ((in[ 6 + inPos] & 67108863) >>> 20)
        | //                                    [76______]
          //            [________________________10]
           ((in[ 7 + inPos] & 67108863) <<  6)) & 255);
      out[23 + outPos] = (byte)((
          //                                    [76543210]
          //                    [________________98765432__]
           ((in[ 7 + inPos] & 67108863) >>> 2)) & 255);
      out[24 + outPos] = (byte)((
          //                                    [76543210]
          //                            [________76543210__________]
           ((in[ 7 + inPos] & 67108863) >>> 10)) & 255);
      out[25 + outPos] = (byte)((
          //                                    [76543210]
          //                                    [54321098__________________]
           ((in[ 7 + inPos] & 67108863) >>> 18)) & 255);
      out[26 + outPos] = (byte)((
          //                                    [76543210]
          //                  [__________________76543210]
           ((in[ 8 + inPos] & 67108863))) & 255);
      out[27 + outPos] = (byte)((
          //                                    [76543210]
          //                          [__________54321098________]
           ((in[ 8 + inPos] & 67108863) >>> 8)) & 255);
      out[28 + outPos] = (byte)((
          //                                    [76543210]
          //                                  [__32109876________________]
           ((in[ 8 + inPos] & 67108863) >>> 16)) & 255);
      out[29 + outPos] = (byte)((
          //                                    [______10]
          //                                          [54________________________]
           ((in[ 8 + inPos] & 67108863) >>> 24)
        | //                                    [765432__]
          //                [____________________543210]
           ((in[ 9 + inPos] & 67108863) <<  2)) & 255);
      out[30 + outPos] = (byte)((
          //                                    [76543210]
          //                        [____________32109876______]
           ((in[ 9 + inPos] & 67108863) >>> 6)) & 255);
      out[31 + outPos] = (byte)((
          //                                    [76543210]
          //                                [____10987654______________]
           ((in[ 9 + inPos] & 67108863) >>> 14)) & 255);
      out[32 + outPos] = (byte)((
          //                                    [____3210]
          //                                        [5432______________________]
           ((in[ 9 + inPos] & 67108863) >>> 22)
        | //                                    [7654____]
          //              [______________________3210]
           ((in[10 + inPos] & 67108863) <<  4)) & 255);
      out[33 + outPos] = (byte)((
          //                                    [76543210]
          //                      [______________10987654____]
           ((in[10 + inPos] & 67108863) >>> 4)) & 255);
      out[34 + outPos] = (byte)((
          //                                    [76543210]
          //                              [______98765432____________]
           ((in[10 + inPos] & 67108863) >>> 12)) & 255);
      out[35 + outPos] = (byte)((
          //                                    [__543210]
          //                                      [543210____________________]
           ((in[10 + inPos] & 67108863) >>> 20)
        | //                                    [76______]
          //            [________________________10]
           ((in[11 + inPos] & 67108863) <<  6)) & 255);
      out[36 + outPos] = (byte)((
          //                                    [76543210]
          //                    [________________98765432__]
           ((in[11 + inPos] & 67108863) >>> 2)) & 255);
      out[37 + outPos] = (byte)((
          //                                    [76543210]
          //                            [________76543210__________]
           ((in[11 + inPos] & 67108863) >>> 10)) & 255);
      out[38 + outPos] = (byte)((
          //                                    [76543210]
          //                                    [54321098__________________]
           ((in[11 + inPos] & 67108863) >>> 18)) & 255);
      out[39 + outPos] = (byte)((
          //                                    [76543210]
          //                  [__________________76543210]
           ((in[12 + inPos] & 67108863))) & 255);
      out[40 + outPos] = (byte)((
          //                                    [76543210]
          //                          [__________54321098________]
           ((in[12 + inPos] & 67108863) >>> 8)) & 255);
      out[41 + outPos] = (byte)((
          //                                    [76543210]
          //                                  [__32109876________________]
           ((in[12 + inPos] & 67108863) >>> 16)) & 255);
      out[42 + outPos] = (byte)((
          //                                    [______10]
          //                                          [54________________________]
           ((in[12 + inPos] & 67108863) >>> 24)
        | //                                    [765432__]
          //                [____________________543210]
           ((in[13 + inPos] & 67108863) <<  2)) & 255);
      out[43 + outPos] = (byte)((
          //                                    [76543210]
          //                        [____________32109876______]
           ((in[13 + inPos] & 67108863) >>> 6)) & 255);
      out[44 + outPos] = (byte)((
          //                                    [76543210]
          //                                [____10987654______________]
           ((in[13 + inPos] & 67108863) >>> 14)) & 255);
      out[45 + outPos] = (byte)((
          //                                    [____3210]
          //                                        [5432______________________]
           ((in[13 + inPos] & 67108863) >>> 22)
        | //                                    [7654____]
          //              [______________________3210]
           ((in[14 + inPos] & 67108863) <<  4)) & 255);
      out[46 + outPos] = (byte)((
          //                                    [76543210]
          //                      [______________10987654____]
           ((in[14 + inPos] & 67108863) >>> 4)) & 255);
      out[47 + outPos] = (byte)((
          //                                    [76543210]
          //                              [______98765432____________]
           ((in[14 + inPos] & 67108863) >>> 12)) & 255);
      out[48 + outPos] = (byte)((
          //                                    [__543210]
          //                                      [543210____________________]
           ((in[14 + inPos] & 67108863) >>> 20)
        | //                                    [76______]
          //            [________________________10]
           ((in[15 + inPos] & 67108863) <<  6)) & 255);
      out[49 + outPos] = (byte)((
          //                                    [76543210]
          //                    [________________98765432__]
           ((in[15 + inPos] & 67108863) >>> 2)) & 255);
      out[50 + outPos] = (byte)((
          //                                    [76543210]
          //                            [________76543210__________]
           ((in[15 + inPos] & 67108863) >>> 10)) & 255);
      out[51 + outPos] = (byte)((
          //                                    [76543210]
          //                                    [54321098__________________]
           ((in[15 + inPos] & 67108863) >>> 18)) & 255);
      out[52 + outPos] = (byte)((
          //                                    [76543210]
          //                  [__________________76543210]
           ((in[16 + inPos] & 67108863))) & 255);
      out[53 + outPos] = (byte)((
          //                                    [76543210]
          //                          [__________54321098________]
           ((in[16 + inPos] & 67108863) >>> 8)) & 255);
      out[54 + outPos] = (byte)((
          //                                    [76543210]
          //                                  [__32109876________________]
           ((in[16 + inPos] & 67108863) >>> 16)) & 255);
      out[55 + outPos] = (byte)((
          //                                    [______10]
          //                                          [54________________________]
           ((in[16 + inPos] & 67108863) >>> 24)
        | //                                    [765432__]
          //                [____________________543210]
           ((in[17 + inPos] & 67108863) <<  2)) & 255);
      out[56 + outPos] = (byte)((
          //                                    [76543210]
          //                        [____________32109876______]
           ((in[17 + inPos] & 67108863) >>> 6)) & 255);
      out[57 + outPos] = (byte)((
          //                                    [76543210]
          //                                [____10987654______________]
           ((in[17 + inPos] & 67108863) >>> 14)) & 255);
      out[58 + outPos] = (byte)((
          //                                    [____3210]
          //                                        [5432______________________]
           ((in[17 + inPos] & 67108863) >>> 22)
        | //                                    [7654____]
          //              [______________________3210]
           ((in[18 + inPos] & 67108863) <<  4)) & 255);
      out[59 + outPos] = (byte)((
          //                                    [76543210]
          //                      [______________10987654____]
           ((in[18 + inPos] & 67108863) >>> 4)) & 255);
      out[60 + outPos] = (byte)((
          //                                    [76543210]
          //                              [______98765432____________]
           ((in[18 + inPos] & 67108863) >>> 12)) & 255);
      out[61 + outPos] = (byte)((
          //                                    [__543210]
          //                                      [543210____________________]
           ((in[18 + inPos] & 67108863) >>> 20)
        | //                                    [76______]
          //            [________________________10]
           ((in[19 + inPos] & 67108863) <<  6)) & 255);
      out[62 + outPos] = (byte)((
          //                                    [76543210]
          //                    [________________98765432__]
           ((in[19 + inPos] & 67108863) >>> 2)) & 255);
      out[63 + outPos] = (byte)((
          //                                    [76543210]
          //                            [________76543210__________]
           ((in[19 + inPos] & 67108863) >>> 10)) & 255);
      out[64 + outPos] = (byte)((
          //                                    [76543210]
          //                                    [54321098__________________]
           ((in[19 + inPos] & 67108863) >>> 18)) & 255);
      out[65 + outPos] = (byte)((
          //                                    [76543210]
          //                  [__________________76543210]
           ((in[20 + inPos] & 67108863))) & 255);
      out[66 + outPos] = (byte)((
          //                                    [76543210]
          //                          [__________54321098________]
           ((in[20 + inPos] & 67108863) >>> 8)) & 255);
      out[67 + outPos] = (byte)((
          //                                    [76543210]
          //                                  [__32109876________________]
           ((in[20 + inPos] & 67108863) >>> 16)) & 255);
      out[68 + outPos] = (byte)((
          //                                    [______10]
          //                                          [54________________________]
           ((in[20 + inPos] & 67108863) >>> 24)
        | //                                    [765432__]
          //                [____________________543210]
           ((in[21 + inPos] & 67108863) <<  2)) & 255);
      out[69 + outPos] = (byte)((
          //                                    [76543210]
          //                        [____________32109876______]
           ((in[21 + inPos] & 67108863) >>> 6)) & 255);
      out[70 + outPos] = (byte)((
          //                                    [76543210]
          //                                [____10987654______________]
           ((in[21 + inPos] & 67108863) >>> 14)) & 255);
      out[71 + outPos] = (byte)((
          //                                    [____3210]
          //                                        [5432______________________]
           ((in[21 + inPos] & 67108863) >>> 22)
        | //                                    [7654____]
          //              [______________________3210]
           ((in[22 + inPos] & 67108863) <<  4)) & 255);
      out[72 + outPos] = (byte)((
          //                                    [76543210]
          //                      [______________10987654____]
           ((in[22 + inPos] & 67108863) >>> 4)) & 255);
      out[73 + outPos] = (byte)((
          //                                    [76543210]
          //                              [______98765432____________]
           ((in[22 + inPos] & 67108863) >>> 12)) & 255);
      out[74 + outPos] = (byte)((
          //                                    [__543210]
          //                                      [543210____________________]
           ((in[22 + inPos] & 67108863) >>> 20)
        | //                                    [76______]
          //            [________________________10]
           ((in[23 + inPos] & 67108863) <<  6)) & 255);
      out[75 + outPos] = (byte)((
          //                                    [76543210]
          //                    [________________98765432__]
           ((in[23 + inPos] & 67108863) >>> 2)) & 255);
      out[76 + outPos] = (byte)((
          //                                    [76543210]
          //                            [________76543210__________]
           ((in[23 + inPos] & 67108863) >>> 10)) & 255);
      out[77 + outPos] = (byte)((
          //                                    [76543210]
          //                                    [54321098__________________]
           ((in[23 + inPos] & 67108863) >>> 18)) & 255);
      out[78 + outPos] = (byte)((
          //                                    [76543210]
          //                  [__________________76543210]
           ((in[24 + inPos] & 67108863))) & 255);
      out[79 + outPos] = (byte)((
          //                                    [76543210]
          //                          [__________54321098________]
           ((in[24 + inPos] & 67108863) >>> 8)) & 255);
      out[80 + outPos] = (byte)((
          //                                    [76543210]
          //                                  [__32109876________________]
           ((in[24 + inPos] & 67108863) >>> 16)) & 255);
      out[81 + outPos] = (byte)((
          //                                    [______10]
          //                                          [54________________________]
           ((in[24 + inPos] & 67108863) >>> 24)
        | //                                    [765432__]
          //                [____________________543210]
           ((in[25 + inPos] & 67108863) <<  2)) & 255);
      out[82 + outPos] = (byte)((
          //                                    [76543210]
          //                        [____________32109876______]
           ((in[25 + inPos] & 67108863) >>> 6)) & 255);
      out[83 + outPos] = (byte)((
          //                                    [76543210]
          //                                [____10987654______________]
           ((in[25 + inPos] & 67108863) >>> 14)) & 255);
      out[84 + outPos] = (byte)((
          //                                    [____3210]
          //                                        [5432______________________]
           ((in[25 + inPos] & 67108863) >>> 22)
        | //                                    [7654____]
          //              [______________________3210]
           ((in[26 + inPos] & 67108863) <<  4)) & 255);
      out[85 + outPos] = (byte)((
          //                                    [76543210]
          //                      [______________10987654____]
           ((in[26 + inPos] & 67108863) >>> 4)) & 255);
      out[86 + outPos] = (byte)((
          //                                    [76543210]
          //                              [______98765432____________]
           ((in[26 + inPos] & 67108863) >>> 12)) & 255);
      out[87 + outPos] = (byte)((
          //                                    [__543210]
          //                                      [543210____________________]
           ((in[26 + inPos] & 67108863) >>> 20)
        | //                                    [76______]
          //            [________________________10]
           ((in[27 + inPos] & 67108863) <<  6)) & 255);
      out[88 + outPos] = (byte)((
          //                                    [76543210]
          //                    [________________98765432__]
           ((in[27 + inPos] & 67108863) >>> 2)) & 255);
      out[89 + outPos] = (byte)((
          //                                    [76543210]
          //                            [________76543210__________]
           ((in[27 + inPos] & 67108863) >>> 10)) & 255);
      out[90 + outPos] = (byte)((
          //                                    [76543210]
          //                                    [54321098__________________]
           ((in[27 + inPos] & 67108863) >>> 18)) & 255);
      out[91 + outPos] = (byte)((
          //                                    [76543210]
          //                  [__________________76543210]
           ((in[28 + inPos] & 67108863))) & 255);
      out[92 + outPos] = (byte)((
          //                                    [76543210]
          //                          [__________54321098________]
           ((in[28 + inPos] & 67108863) >>> 8)) & 255);
      out[93 + outPos] = (byte)((
          //                                    [76543210]
          //                                  [__32109876________________]
           ((in[28 + inPos] & 67108863) >>> 16)) & 255);
      out[94 + outPos] = (byte)((
          //                                    [______10]
          //                                          [54________________________]
           ((in[28 + inPos] & 67108863) >>> 24)
        | //                                    [765432__]
          //                [____________________543210]
           ((in[29 + inPos] & 67108863) <<  2)) & 255);
      out[95 + outPos] = (byte)((
          //                                    [76543210]
          //                        [____________32109876______]
           ((in[29 + inPos] & 67108863) >>> 6)) & 255);
      out[96 + outPos] = (byte)((
          //                                    [76543210]
          //                                [____10987654______________]
           ((in[29 + inPos] & 67108863) >>> 14)) & 255);
      out[97 + outPos] = (byte)((
          //                                    [____3210]
          //                                        [5432______________________]
           ((in[29 + inPos] & 67108863) >>> 22)
        | //                                    [7654____]
          //              [______________________3210]
           ((in[30 + inPos] & 67108863) <<  4)) & 255);
      out[98 + outPos] = (byte)((
          //                                    [76543210]
          //                      [______________10987654____]
           ((in[30 + inPos] & 67108863) >>> 4)) & 255);
      out[99 + outPos] = (byte)((
          //                                    [76543210]
          //                              [______98765432____________]
           ((in[30 + inPos] & 67108863) >>> 12)) & 255);
      out[100 + outPos] = (byte)((
          //                                    [__543210]
          //                                      [543210____________________]
           ((in[30 + inPos] & 67108863) >>> 20)
        | //                                    [76______]
          //            [________________________10]
           ((in[31 + inPos] & 67108863) <<  6)) & 255);
      out[101 + outPos] = (byte)((
          //                                    [76543210]
          //                    [________________98765432__]
           ((in[31 + inPos] & 67108863) >>> 2)) & 255);
      out[102 + outPos] = (byte)((
          //                                    [76543210]
          //                            [________76543210__________]
           ((in[31 + inPos] & 67108863) >>> 10)) & 255);
      out[103 + outPos] = (byte)((
          //                                    [76543210]
          //                                    [54321098__________________]
           ((in[31 + inPos] & 67108863) >>> 18)) & 255);
    }
    public final void unpack8Values(final byte[] in, final int inPos, final int[] out, final int outPos) {
      out[ 0 + outPos] =
          //                                    [76543210]
          //                  [__________________76543210]
            ((((int)in[ 0 + inPos]) ) & 255)
        | //                                    [76543210]
          //                          [__________54321098________]
            ((((int)in[ 1 + inPos]) <<  8) & 65535)
        | //                                    [76543210]
          //                                  [__32109876________________]
            ((((int)in[ 2 + inPos]) <<  16) & 16777215)
        | //                                    [______10]
          //                                          [54________________________]
            ((((int)in[ 3 + inPos]) <<  24) & 67108863);
      out[ 1 + outPos] =
          //                                    [765432__]
          //                [____________________543210]
            ((((int)in[ 3 + inPos]) >>  2) & 63)
        | //                                    [76543210]
          //                        [____________32109876______]
            ((((int)in[ 4 + inPos]) <<  6) & 16383)
        | //                                    [76543210]
          //                                [____10987654______________]
            ((((int)in[ 5 + inPos]) <<  14) & 4194303)
        | //                                    [____3210]
          //                                        [5432______________________]
            ((((int)in[ 6 + inPos]) <<  22) & 67108863);
      out[ 2 + outPos] =
          //                                    [7654____]
          //              [______________________3210]
            ((((int)in[ 6 + inPos]) >>  4) & 15)
        | //                                    [76543210]
          //                      [______________10987654____]
            ((((int)in[ 7 + inPos]) <<  4) & 4095)
        | //                                    [76543210]
          //                              [______98765432____________]
            ((((int)in[ 8 + inPos]) <<  12) & 1048575)
        | //                                    [__543210]
          //                                      [543210____________________]
            ((((int)in[ 9 + inPos]) <<  20) & 67108863);
      out[ 3 + outPos] =
          //                                    [76______]
          //            [________________________10]
            ((((int)in[ 9 + inPos]) >>  6) & 3)
        | //                                    [76543210]
          //                    [________________98765432__]
            ((((int)in[10 + inPos]) <<  2) & 1023)
        | //                                    [76543210]
          //                            [________76543210__________]
            ((((int)in[11 + inPos]) <<  10) & 262143)
        | //                                    [76543210]
          //                                    [54321098__________________]
            ((((int)in[12 + inPos]) <<  18) & 67108863);
      out[ 4 + outPos] =
          //                                    [76543210]
          //                  [__________________76543210]
            ((((int)in[13 + inPos]) ) & 255)
        | //                                    [76543210]
          //                          [__________54321098________]
            ((((int)in[14 + inPos]) <<  8) & 65535)
        | //                                    [76543210]
          //                                  [__32109876________________]
            ((((int)in[15 + inPos]) <<  16) & 16777215)
        | //                                    [______10]
          //                                          [54________________________]
            ((((int)in[16 + inPos]) <<  24) & 67108863);
      out[ 5 + outPos] =
          //                                    [765432__]
          //                [____________________543210]
            ((((int)in[16 + inPos]) >>  2) & 63)
        | //                                    [76543210]
          //                        [____________32109876______]
            ((((int)in[17 + inPos]) <<  6) & 16383)
        | //                                    [76543210]
          //                                [____10987654______________]
            ((((int)in[18 + inPos]) <<  14) & 4194303)
        | //                                    [____3210]
          //                                        [5432______________________]
            ((((int)in[19 + inPos]) <<  22) & 67108863);
      out[ 6 + outPos] =
          //                                    [7654____]
          //              [______________________3210]
            ((((int)in[19 + inPos]) >>  4) & 15)
        | //                                    [76543210]
          //                      [______________10987654____]
            ((((int)in[20 + inPos]) <<  4) & 4095)
        | //                                    [76543210]
          //                              [______98765432____________]
            ((((int)in[21 + inPos]) <<  12) & 1048575)
        | //                                    [__543210]
          //                                      [543210____________________]
            ((((int)in[22 + inPos]) <<  20) & 67108863);
      out[ 7 + outPos] =
          //                                    [76______]
          //            [________________________10]
            ((((int)in[22 + inPos]) >>  6) & 3)
        | //                                    [76543210]
          //                    [________________98765432__]
            ((((int)in[23 + inPos]) <<  2) & 1023)
        | //                                    [76543210]
          //                            [________76543210__________]
            ((((int)in[24 + inPos]) <<  10) & 262143)
        | //                                    [76543210]
          //                                    [54321098__________________]
            ((((int)in[25 + inPos]) <<  18) & 67108863);
    }
    public final void unpack8Values(final ByteBuffer in, final int inPos, final int[] out, final int outPos) {
      out[ 0 + outPos] =
          //                                    [76543210]
          //                  [__________________76543210]
            ((((int)in.get( 0 + inPos)) ) & 255)
        | //                                    [76543210]
          //                          [__________54321098________]
            ((((int)in.get( 1 + inPos)) <<  8) & 65535)
        | //                                    [76543210]
          //                                  [__32109876________________]
            ((((int)in.get( 2 + inPos)) <<  16) & 16777215)
        | //                                    [______10]
          //                                          [54________________________]
            ((((int)in.get( 3 + inPos)) <<  24) & 67108863);
      out[ 1 + outPos] =
          //                                    [765432__]
          //                [____________________543210]
            ((((int)in.get( 3 + inPos)) >>  2) & 63)
        | //                                    [76543210]
          //                        [____________32109876______]
            ((((int)in.get( 4 + inPos)) <<  6) & 16383)
        | //                                    [76543210]
          //                                [____10987654______________]
            ((((int)in.get( 5 + inPos)) <<  14) & 4194303)
        | //                                    [____3210]
          //                                        [5432______________________]
            ((((int)in.get( 6 + inPos)) <<  22) & 67108863);
      out[ 2 + outPos] =
          //                                    [7654____]
          //              [______________________3210]
            ((((int)in.get( 6 + inPos)) >>  4) & 15)
        | //                                    [76543210]
          //                      [______________10987654____]
            ((((int)in.get( 7 + inPos)) <<  4) & 4095)
        | //                                    [76543210]
          //                              [______98765432____________]
            ((((int)in.get( 8 + inPos)) <<  12) & 1048575)
        | //                                    [__543210]
          //                                      [543210____________________]
            ((((int)in.get( 9 + inPos)) <<  20) & 67108863);
      out[ 3 + outPos] =
          //                                    [76______]
          //            [________________________10]
            ((((int)in.get( 9 + inPos)) >>  6) & 3)
        | //                                    [76543210]
          //                    [________________98765432__]
            ((((int)in.get(10 + inPos)) <<  2) & 1023)
        | //                                    [76543210]
          //                            [________76543210__________]
            ((((int)in.get(11 + inPos)) <<  10) & 262143)
        | //                                    [76543210]
          //                                    [54321098__________________]
            ((((int)in.get(12 + inPos)) <<  18) & 67108863);
      out[ 4 + outPos] =
          //                                    [76543210]
          //                  [__________________76543210]
            ((((int)in.get(13 + inPos)) ) & 255)
        | //                                    [76543210]
          //                          [__________54321098________]
            ((((int)in.get(14 + inPos)) <<  8) & 65535)
        | //                                    [76543210]
          //                                  [__32109876________________]
            ((((int)in.get(15 + inPos)) <<  16) & 16777215)
        | //                                    [______10]
          //                                          [54________________________]
            ((((int)in.get(16 + inPos)) <<  24) & 67108863);
      out[ 5 + outPos] =
          //                                    [765432__]
          //                [____________________543210]
            ((((int)in.get(16 + inPos)) >>  2) & 63)
        | //                                    [76543210]
          //                        [____________32109876______]
            ((((int)in.get(17 + inPos)) <<  6) & 16383)
        | //                                    [76543210]
          //                                [____10987654______________]
            ((((int)in.get(18 + inPos)) <<  14) & 4194303)
        | //                                    [____3210]
          //                                        [5432______________________]
            ((((int)in.get(19 + inPos)) <<  22) & 67108863);
      out[ 6 + outPos] =
          //                                    [7654____]
          //              [______________________3210]
            ((((int)in.get(19 + inPos)) >>  4) & 15)
        | //                                    [76543210]
          //                      [______________10987654____]
            ((((int)in.get(20 + inPos)) <<  4) & 4095)
        | //                                    [76543210]
          //                              [______98765432____________]
            ((((int)in.get(21 + inPos)) <<  12) & 1048575)
        | //                                    [__543210]
          //                                      [543210____________________]
            ((((int)in.get(22 + inPos)) <<  20) & 67108863);
      out[ 7 + outPos] =
          //                                    [76______]
          //            [________________________10]
            ((((int)in.get(22 + inPos)) >>  6) & 3)
        | //                                    [76543210]
          //                    [________________98765432__]
            ((((int)in.get(23 + inPos)) <<  2) & 1023)
        | //                                    [76543210]
          //                            [________76543210__________]
            ((((int)in.get(24 + inPos)) <<  10) & 262143)
        | //                                    [76543210]
          //                                    [54321098__________________]
            ((((int)in.get(25 + inPos)) <<  18) & 67108863);
    }
    public final void unpack32Values(final byte[] in, final int inPos, final int[] out, final int outPos) {
      out[ 0 + outPos] =
          //                                    [76543210]
          //                  [__________________76543210]
            ((((int)in[ 0 + inPos]) ) & 255)
        | //                                    [76543210]
          //                          [__________54321098________]
            ((((int)in[ 1 + inPos]) <<  8) & 65535)
        | //                                    [76543210]
          //                                  [__32109876________________]
            ((((int)in[ 2 + inPos]) <<  16) & 16777215)
        | //                                    [______10]
          //                                          [54________________________]
            ((((int)in[ 3 + inPos]) <<  24) & 67108863);
      out[ 1 + outPos] =
          //                                    [765432__]
          //                [____________________543210]
            ((((int)in[ 3 + inPos]) >>  2) & 63)
        | //                                    [76543210]
          //                        [____________32109876______]
            ((((int)in[ 4 + inPos]) <<  6) & 16383)
        | //                                    [76543210]
          //                                [____10987654______________]
            ((((int)in[ 5 + inPos]) <<  14) & 4194303)
        | //                                    [____3210]
          //                                        [5432______________________]
            ((((int)in[ 6 + inPos]) <<  22) & 67108863);
      out[ 2 + outPos] =
          //                                    [7654____]
          //              [______________________3210]
            ((((int)in[ 6 + inPos]) >>  4) & 15)
        | //                                    [76543210]
          //                      [______________10987654____]
            ((((int)in[ 7 + inPos]) <<  4) & 4095)
        | //                                    [76543210]
          //                              [______98765432____________]
            ((((int)in[ 8 + inPos]) <<  12) & 1048575)
        | //                                    [__543210]
          //                                      [543210____________________]
            ((((int)in[ 9 + inPos]) <<  20) & 67108863);
      out[ 3 + outPos] =
          //                                    [76______]
          //            [________________________10]
            ((((int)in[ 9 + inPos]) >>  6) & 3)
        | //                                    [76543210]
          //                    [________________98765432__]
            ((((int)in[10 + inPos]) <<  2) & 1023)
        | //                                    [76543210]
          //                            [________76543210__________]
            ((((int)in[11 + inPos]) <<  10) & 262143)
        | //                                    [76543210]
          //                                    [54321098__________________]
            ((((int)in[12 + inPos]) <<  18) & 67108863);
      out[ 4 + outPos] =
          //                                    [76543210]
          //                  [__________________76543210]
            ((((int)in[13 + inPos]) ) & 255)
        | //                                    [76543210]
          //                          [__________54321098________]
            ((((int)in[14 + inPos]) <<  8) & 65535)
        | //                                    [76543210]
          //                                  [__32109876________________]
            ((((int)in[15 + inPos]) <<  16) & 16777215)
        | //                                    [______10]
          //                                          [54________________________]
            ((((int)in[16 + inPos]) <<  24) & 67108863);
      out[ 5 + outPos] =
          //                                    [765432__]
          //                [____________________543210]
            ((((int)in[16 + inPos]) >>  2) & 63)
        | //                                    [76543210]
          //                        [____________32109876______]
            ((((int)in[17 + inPos]) <<  6) & 16383)
        | //                                    [76543210]
          //                                [____10987654______________]
            ((((int)in[18 + inPos]) <<  14) & 4194303)
        | //                                    [____3210]
          //                                        [5432______________________]
            ((((int)in[19 + inPos]) <<  22) & 67108863);
      out[ 6 + outPos] =
          //                                    [7654____]
          //              [______________________3210]
            ((((int)in[19 + inPos]) >>  4) & 15)
        | //                                    [76543210]
          //                      [______________10987654____]
            ((((int)in[20 + inPos]) <<  4) & 4095)
        | //                                    [76543210]
          //                              [______98765432____________]
            ((((int)in[21 + inPos]) <<  12) & 1048575)
        | //                                    [__543210]
          //                                      [543210____________________]
            ((((int)in[22 + inPos]) <<  20) & 67108863);
      out[ 7 + outPos] =
          //                                    [76______]
          //            [________________________10]
            ((((int)in[22 + inPos]) >>  6) & 3)
        | //                                    [76543210]
          //                    [________________98765432__]
            ((((int)in[23 + inPos]) <<  2) & 1023)
        | //                                    [76543210]
          //                            [________76543210__________]
            ((((int)in[24 + inPos]) <<  10) & 262143)
        | //                                    [76543210]
          //                                    [54321098__________________]
            ((((int)in[25 + inPos]) <<  18) & 67108863);
      out[ 8 + outPos] =
          //                                    [76543210]
          //                  [__________________76543210]
            ((((int)in[26 + inPos]) ) & 255)
        | //                                    [76543210]
          //                          [__________54321098________]
            ((((int)in[27 + inPos]) <<  8) & 65535)
        | //                                    [76543210]
          //                                  [__32109876________________]
            ((((int)in[28 + inPos]) <<  16) & 16777215)
        | //                                    [______10]
          //                                          [54________________________]
            ((((int)in[29 + inPos]) <<  24) & 67108863);
      out[ 9 + outPos] =
          //                                    [765432__]
          //                [____________________543210]
            ((((int)in[29 + inPos]) >>  2) & 63)
        | //                                    [76543210]
          //                        [____________32109876______]
            ((((int)in[30 + inPos]) <<  6) & 16383)
        | //                                    [76543210]
          //                                [____10987654______________]
            ((((int)in[31 + inPos]) <<  14) & 4194303)
        | //                                    [____3210]
          //                                        [5432______________________]
            ((((int)in[32 + inPos]) <<  22) & 67108863);
      out[10 + outPos] =
          //                                    [7654____]
          //              [______________________3210]
            ((((int)in[32 + inPos]) >>  4) & 15)
        | //                                    [76543210]
          //                      [______________10987654____]
            ((((int)in[33 + inPos]) <<  4) & 4095)
        | //                                    [76543210]
          //                              [______98765432____________]
            ((((int)in[34 + inPos]) <<  12) & 1048575)
        | //                                    [__543210]
          //                                      [543210____________________]
            ((((int)in[35 + inPos]) <<  20) & 67108863);
      out[11 + outPos] =
          //                                    [76______]
          //            [________________________10]
            ((((int)in[35 + inPos]) >>  6) & 3)
        | //                                    [76543210]
          //                    [________________98765432__]
            ((((int)in[36 + inPos]) <<  2) & 1023)
        | //                                    [76543210]
          //                            [________76543210__________]
            ((((int)in[37 + inPos]) <<  10) & 262143)
        | //                                    [76543210]
          //                                    [54321098__________________]
            ((((int)in[38 + inPos]) <<  18) & 67108863);
      out[12 + outPos] =
          //                                    [76543210]
          //                  [__________________76543210]
            ((((int)in[39 + inPos]) ) & 255)
        | //                                    [76543210]
          //                          [__________54321098________]
            ((((int)in[40 + inPos]) <<  8) & 65535)
        | //                                    [76543210]
          //                                  [__32109876________________]
            ((((int)in[41 + inPos]) <<  16) & 16777215)
        | //                                    [______10]
          //                                          [54________________________]
            ((((int)in[42 + inPos]) <<  24) & 67108863);
      out[13 + outPos] =
          //                                    [765432__]
          //                [____________________543210]
            ((((int)in[42 + inPos]) >>  2) & 63)
        | //                                    [76543210]
          //                        [____________32109876______]
            ((((int)in[43 + inPos]) <<  6) & 16383)
        | //                                    [76543210]
          //                                [____10987654______________]
            ((((int)in[44 + inPos]) <<  14) & 4194303)
        | //                                    [____3210]
          //                                        [5432______________________]
            ((((int)in[45 + inPos]) <<  22) & 67108863);
      out[14 + outPos] =
          //                                    [7654____]
          //              [______________________3210]
            ((((int)in[45 + inPos]) >>  4) & 15)
        | //                                    [76543210]
          //                      [______________10987654____]
            ((((int)in[46 + inPos]) <<  4) & 4095)
        | //                                    [76543210]
          //                              [______98765432____________]
            ((((int)in[47 + inPos]) <<  12) & 1048575)
        | //                                    [__543210]
          //                                      [543210____________________]
            ((((int)in[48 + inPos]) <<  20) & 67108863);
      out[15 + outPos] =
          //                                    [76______]
          //            [________________________10]
            ((((int)in[48 + inPos]) >>  6) & 3)
        | //                                    [76543210]
          //                    [________________98765432__]
            ((((int)in[49 + inPos]) <<  2) & 1023)
        | //                                    [76543210]
          //                            [________76543210__________]
            ((((int)in[50 + inPos]) <<  10) & 262143)
        | //                                    [76543210]
          //                                    [54321098__________________]
            ((((int)in[51 + inPos]) <<  18) & 67108863);
      out[16 + outPos] =
          //                                    [76543210]
          //                  [__________________76543210]
            ((((int)in[52 + inPos]) ) & 255)
        | //                                    [76543210]
          //                          [__________54321098________]
            ((((int)in[53 + inPos]) <<  8) & 65535)
        | //                                    [76543210]
          //                                  [__32109876________________]
            ((((int)in[54 + inPos]) <<  16) & 16777215)
        | //                                    [______10]
          //                                          [54________________________]
            ((((int)in[55 + inPos]) <<  24) & 67108863);
      out[17 + outPos] =
          //                                    [765432__]
          //                [____________________543210]
            ((((int)in[55 + inPos]) >>  2) & 63)
        | //                                    [76543210]
          //                        [____________32109876______]
            ((((int)in[56 + inPos]) <<  6) & 16383)
        | //                                    [76543210]
          //                                [____10987654______________]
            ((((int)in[57 + inPos]) <<  14) & 4194303)
        | //                                    [____3210]
          //                                        [5432______________________]
            ((((int)in[58 + inPos]) <<  22) & 67108863);
      out[18 + outPos] =
          //                                    [7654____]
          //              [______________________3210]
            ((((int)in[58 + inPos]) >>  4) & 15)
        | //                                    [76543210]
          //                      [______________10987654____]
            ((((int)in[59 + inPos]) <<  4) & 4095)
        | //                                    [76543210]
          //                              [______98765432____________]
            ((((int)in[60 + inPos]) <<  12) & 1048575)
        | //                                    [__543210]
          //                                      [543210____________________]
            ((((int)in[61 + inPos]) <<  20) & 67108863);
      out[19 + outPos] =
          //                                    [76______]
          //            [________________________10]
            ((((int)in[61 + inPos]) >>  6) & 3)
        | //                                    [76543210]
          //                    [________________98765432__]
            ((((int)in[62 + inPos]) <<  2) & 1023)
        | //                                    [76543210]
          //                            [________76543210__________]
            ((((int)in[63 + inPos]) <<  10) & 262143)
        | //                                    [76543210]
          //                                    [54321098__________________]
            ((((int)in[64 + inPos]) <<  18) & 67108863);
      out[20 + outPos] =
          //                                    [76543210]
          //                  [__________________76543210]
            ((((int)in[65 + inPos]) ) & 255)
        | //                                    [76543210]
          //                          [__________54321098________]
            ((((int)in[66 + inPos]) <<  8) & 65535)
        | //                                    [76543210]
          //                                  [__32109876________________]
            ((((int)in[67 + inPos]) <<  16) & 16777215)
        | //                                    [______10]
          //                                          [54________________________]
            ((((int)in[68 + inPos]) <<  24) & 67108863);
      out[21 + outPos] =
          //                                    [765432__]
          //                [____________________543210]
            ((((int)in[68 + inPos]) >>  2) & 63)
        | //                                    [76543210]
          //                        [____________32109876______]
            ((((int)in[69 + inPos]) <<  6) & 16383)
        | //                                    [76543210]
          //                                [____10987654______________]
            ((((int)in[70 + inPos]) <<  14) & 4194303)
        | //                                    [____3210]
          //                                        [5432______________________]
            ((((int)in[71 + inPos]) <<  22) & 67108863);
      out[22 + outPos] =
          //                                    [7654____]
          //              [______________________3210]
            ((((int)in[71 + inPos]) >>  4) & 15)
        | //                                    [76543210]
          //                      [______________10987654____]
            ((((int)in[72 + inPos]) <<  4) & 4095)
        | //                                    [76543210]
          //                              [______98765432____________]
            ((((int)in[73 + inPos]) <<  12) & 1048575)
        | //                                    [__543210]
          //                                      [543210____________________]
            ((((int)in[74 + inPos]) <<  20) & 67108863);
      out[23 + outPos] =
          //                                    [76______]
          //            [________________________10]
            ((((int)in[74 + inPos]) >>  6) & 3)
        | //                                    [76543210]
          //                    [________________98765432__]
            ((((int)in[75 + inPos]) <<  2) & 1023)
        | //                                    [76543210]
          //                            [________76543210__________]
            ((((int)in[76 + inPos]) <<  10) & 262143)
        | //                                    [76543210]
          //                                    [54321098__________________]
            ((((int)in[77 + inPos]) <<  18) & 67108863);
      out[24 + outPos] =
          //                                    [76543210]
          //                  [__________________76543210]
            ((((int)in[78 + inPos]) ) & 255)
        | //                                    [76543210]
          //                          [__________54321098________]
            ((((int)in[79 + inPos]) <<  8) & 65535)
        | //                                    [76543210]
          //                                  [__32109876________________]
            ((((int)in[80 + inPos]) <<  16) & 16777215)
        | //                                    [______10]
          //                                          [54________________________]
            ((((int)in[81 + inPos]) <<  24) & 67108863);
      out[25 + outPos] =
          //                                    [765432__]
          //                [____________________543210]
            ((((int)in[81 + inPos]) >>  2) & 63)
        | //                                    [76543210]
          //                        [____________32109876______]
            ((((int)in[82 + inPos]) <<  6) & 16383)
        | //                                    [76543210]
          //                                [____10987654______________]
            ((((int)in[83 + inPos]) <<  14) & 4194303)
        | //                                    [____3210]
          //                                        [5432______________________]
            ((((int)in[84 + inPos]) <<  22) & 67108863);
      out[26 + outPos] =
          //                                    [7654____]
          //              [______________________3210]
            ((((int)in[84 + inPos]) >>  4) & 15)
        | //                                    [76543210]
          //                      [______________10987654____]
            ((((int)in[85 + inPos]) <<  4) & 4095)
        | //                                    [76543210]
          //                              [______98765432____________]
            ((((int)in[86 + inPos]) <<  12) & 1048575)
        | //                                    [__543210]
          //                                      [543210____________________]
            ((((int)in[87 + inPos]) <<  20) & 67108863);
      out[27 + outPos] =
          //                                    [76______]
          //            [________________________10]
            ((((int)in[87 + inPos]) >>  6) & 3)
        | //                                    [76543210]
          //                    [________________98765432__]
            ((((int)in[88 + inPos]) <<  2) & 1023)
        | //                                    [76543210]
          //                            [________76543210__________]
            ((((int)in[89 + inPos]) <<  10) & 262143)
        | //                                    [76543210]
          //                                    [54321098__________________]
            ((((int)in[90 + inPos]) <<  18) & 67108863);
      out[28 + outPos] =
          //                                    [76543210]
          //                  [__________________76543210]
            ((((int)in[91 + inPos]) ) & 255)
        | //                                    [76543210]
          //                          [__________54321098________]
            ((((int)in[92 + inPos]) <<  8) & 65535)
        | //                                    [76543210]
          //                                  [__32109876________________]
            ((((int)in[93 + inPos]) <<  16) & 16777215)
        | //                                    [______10]
          //                                          [54________________________]
            ((((int)in[94 + inPos]) <<  24) & 67108863);
      out[29 + outPos] =
          //                                    [765432__]
          //                [____________________543210]
            ((((int)in[94 + inPos]) >>  2) & 63)
        | //                                    [76543210]
          //                        [____________32109876______]
            ((((int)in[95 + inPos]) <<  6) & 16383)
        | //                                    [76543210]
          //                                [____10987654______________]
            ((((int)in[96 + inPos]) <<  14) & 4194303)
        | //                                    [____3210]
          //                                        [5432______________________]
            ((((int)in[97 + inPos]) <<  22) & 67108863);
      out[30 + outPos] =
          //                                    [7654____]
          //              [______________________3210]
            ((((int)in[97 + inPos]) >>  4) & 15)
        | //                                    [76543210]
          //                      [______________10987654____]
            ((((int)in[98 + inPos]) <<  4) & 4095)
        | //                                    [76543210]
          //                              [______98765432____________]
            ((((int)in[99 + inPos]) <<  12) & 1048575)
        | //                                    [__543210]
          //                                      [543210____________________]
            ((((int)in[100 + inPos]) <<  20) & 67108863);
      out[31 + outPos] =
          //                                    [76______]
          //            [________________________10]
            ((((int)in[100 + inPos]) >>  6) & 3)
        | //                                    [76543210]
          //                    [________________98765432__]
            ((((int)in[101 + inPos]) <<  2) & 1023)
        | //                                    [76543210]
          //                            [________76543210__________]
            ((((int)in[102 + inPos]) <<  10) & 262143)
        | //                                    [76543210]
          //                                    [54321098__________________]
            ((((int)in[103 + inPos]) <<  18) & 67108863);
    }
    public final void unpack32Values(final ByteBuffer in, final int inPos, final int[] out, final int outPos) {
      out[ 0 + outPos] =
          //                                    [76543210]
          //                  [__________________76543210]
            ((((int)in.get( 0 + inPos)) ) & 255)
        | //                                    [76543210]
          //                          [__________54321098________]
            ((((int)in.get( 1 + inPos)) <<  8) & 65535)
        | //                                    [76543210]
          //                                  [__32109876________________]
            ((((int)in.get( 2 + inPos)) <<  16) & 16777215)
        | //                                    [______10]
          //                                          [54________________________]
            ((((int)in.get( 3 + inPos)) <<  24) & 67108863);
      out[ 1 + outPos] =
          //                                    [765432__]
          //                [____________________543210]
            ((((int)in.get( 3 + inPos)) >>  2) & 63)
        | //                                    [76543210]
          //                        [____________32109876______]
            ((((int)in.get( 4 + inPos)) <<  6) & 16383)
        | //                                    [76543210]
          //                                [____10987654______________]
            ((((int)in.get( 5 + inPos)) <<  14) & 4194303)
        | //                                    [____3210]
          //                                        [5432______________________]
            ((((int)in.get( 6 + inPos)) <<  22) & 67108863);
      out[ 2 + outPos] =
          //                                    [7654____]
          //              [______________________3210]
            ((((int)in.get( 6 + inPos)) >>  4) & 15)
        | //                                    [76543210]
          //                      [______________10987654____]
            ((((int)in.get( 7 + inPos)) <<  4) & 4095)
        | //                                    [76543210]
          //                              [______98765432____________]
            ((((int)in.get( 8 + inPos)) <<  12) & 1048575)
        | //                                    [__543210]
          //                                      [543210____________________]
            ((((int)in.get( 9 + inPos)) <<  20) & 67108863);
      out[ 3 + outPos] =
          //                                    [76______]
          //            [________________________10]
            ((((int)in.get( 9 + inPos)) >>  6) & 3)
        | //                                    [76543210]
          //                    [________________98765432__]
            ((((int)in.get(10 + inPos)) <<  2) & 1023)
        | //                                    [76543210]
          //                            [________76543210__________]
            ((((int)in.get(11 + inPos)) <<  10) & 262143)
        | //                                    [76543210]
          //                                    [54321098__________________]
            ((((int)in.get(12 + inPos)) <<  18) & 67108863);
      out[ 4 + outPos] =
          //                                    [76543210]
          //                  [__________________76543210]
            ((((int)in.get(13 + inPos)) ) & 255)
        | //                                    [76543210]
          //                          [__________54321098________]
            ((((int)in.get(14 + inPos)) <<  8) & 65535)
        | //                                    [76543210]
          //                                  [__32109876________________]
            ((((int)in.get(15 + inPos)) <<  16) & 16777215)
        | //                                    [______10]
          //                                          [54________________________]
            ((((int)in.get(16 + inPos)) <<  24) & 67108863);
      out[ 5 + outPos] =
          //                                    [765432__]
          //                [____________________543210]
            ((((int)in.get(16 + inPos)) >>  2) & 63)
        | //                                    [76543210]
          //                        [____________32109876______]
            ((((int)in.get(17 + inPos)) <<  6) & 16383)
        | //                                    [76543210]
          //                                [____10987654______________]
            ((((int)in.get(18 + inPos)) <<  14) & 4194303)
        | //                                    [____3210]
          //                                        [5432______________________]
            ((((int)in.get(19 + inPos)) <<  22) & 67108863);
      out[ 6 + outPos] =
          //                                    [7654____]
          //              [______________________3210]
            ((((int)in.get(19 + inPos)) >>  4) & 15)
        | //                                    [76543210]
          //                      [______________10987654____]
            ((((int)in.get(20 + inPos)) <<  4) & 4095)
        | //                                    [76543210]
          //                              [______98765432____________]
            ((((int)in.get(21 + inPos)) <<  12) & 1048575)
        | //                                    [__543210]
          //                                      [543210____________________]
            ((((int)in.get(22 + inPos)) <<  20) & 67108863);
      out[ 7 + outPos] =
          //                                    [76______]
          //            [________________________10]
            ((((int)in.get(22 + inPos)) >>  6) & 3)
        | //                                    [76543210]
          //                    [________________98765432__]
            ((((int)in.get(23 + inPos)) <<  2) & 1023)
        | //                                    [76543210]
          //                            [________76543210__________]
            ((((int)in.get(24 + inPos)) <<  10) & 262143)
        | //                                    [76543210]
          //                                    [54321098__________________]
            ((((int)in.get(25 + inPos)) <<  18) & 67108863);
      out[ 8 + outPos] =
          //                                    [76543210]
          //                  [__________________76543210]
            ((((int)in.get(26 + inPos)) ) & 255)
        | //                                    [76543210]
          //                          [__________54321098________]
            ((((int)in.get(27 + inPos)) <<  8) & 65535)
        | //                                    [76543210]
          //                                  [__32109876________________]
            ((((int)in.get(28 + inPos)) <<  16) & 16777215)
        | //                                    [______10]
          //                                          [54________________________]
            ((((int)in.get(29 + inPos)) <<  24) & 67108863);
      out[ 9 + outPos] =
          //                                    [765432__]
          //                [____________________543210]
            ((((int)in.get(29 + inPos)) >>  2) & 63)
        | //                                    [76543210]
          //                        [____________32109876______]
            ((((int)in.get(30 + inPos)) <<  6) & 16383)
        | //                                    [76543210]
          //                                [____10987654______________]
            ((((int)in.get(31 + inPos)) <<  14) & 4194303)
        | //                                    [____3210]
          //                                        [5432______________________]
            ((((int)in.get(32 + inPos)) <<  22) & 67108863);
      out[10 + outPos] =
          //                                    [7654____]
          //              [______________________3210]
            ((((int)in.get(32 + inPos)) >>  4) & 15)
        | //                                    [76543210]
          //                      [______________10987654____]
            ((((int)in.get(33 + inPos)) <<  4) & 4095)
        | //                                    [76543210]
          //                              [______98765432____________]
            ((((int)in.get(34 + inPos)) <<  12) & 1048575)
        | //                                    [__543210]
          //                                      [543210____________________]
            ((((int)in.get(35 + inPos)) <<  20) & 67108863);
      out[11 + outPos] =
          //                                    [76______]
          //            [________________________10]
            ((((int)in.get(35 + inPos)) >>  6) & 3)
        | //                                    [76543210]
          //                    [________________98765432__]
            ((((int)in.get(36 + inPos)) <<  2) & 1023)
        | //                                    [76543210]
          //                            [________76543210__________]
            ((((int)in.get(37 + inPos)) <<  10) & 262143)
        | //                                    [76543210]
          //                                    [54321098__________________]
            ((((int)in.get(38 + inPos)) <<  18) & 67108863);
      out[12 + outPos] =
          //                                    [76543210]
          //                  [__________________76543210]
            ((((int)in.get(39 + inPos)) ) & 255)
        | //                                    [76543210]
          //                          [__________54321098________]
            ((((int)in.get(40 + inPos)) <<  8) & 65535)
        | //                                    [76543210]
          //                                  [__32109876________________]
            ((((int)in.get(41 + inPos)) <<  16) & 16777215)
        | //                                    [______10]
          //                                          [54________________________]
            ((((int)in.get(42 + inPos)) <<  24) & 67108863);
      out[13 + outPos] =
          //                                    [765432__]
          //                [____________________543210]
            ((((int)in.get(42 + inPos)) >>  2) & 63)
        | //                                    [76543210]
          //                        [____________32109876______]
            ((((int)in.get(43 + inPos)) <<  6) & 16383)
        | //                                    [76543210]
          //                                [____10987654______________]
            ((((int)in.get(44 + inPos)) <<  14) & 4194303)
        | //                                    [____3210]
          //                                        [5432______________________]
            ((((int)in.get(45 + inPos)) <<  22) & 67108863);
      out[14 + outPos] =
          //                                    [7654____]
          //              [______________________3210]
            ((((int)in.get(45 + inPos)) >>  4) & 15)
        | //                                    [76543210]
          //                      [______________10987654____]
            ((((int)in.get(46 + inPos)) <<  4) & 4095)
        | //                                    [76543210]
          //                              [______98765432____________]
            ((((int)in.get(47 + inPos)) <<  12) & 1048575)
        | //                                    [__543210]
          //                                      [543210____________________]
            ((((int)in.get(48 + inPos)) <<  20) & 67108863);
      out[15 + outPos] =
          //                                    [76______]
          //            [________________________10]
            ((((int)in.get(48 + inPos)) >>  6) & 3)
        | //                                    [76543210]
          //                    [________________98765432__]
            ((((int)in.get(49 + inPos)) <<  2) & 1023)
        | //                                    [76543210]
          //                            [________76543210__________]
            ((((int)in.get(50 + inPos)) <<  10) & 262143)
        | //                                    [76543210]
          //                                    [54321098__________________]
            ((((int)in.get(51 + inPos)) <<  18) & 67108863);
      out[16 + outPos] =
          //                                    [76543210]
          //                  [__________________76543210]
            ((((int)in.get(52 + inPos)) ) & 255)
        | //                                    [76543210]
          //                          [__________54321098________]
            ((((int)in.get(53 + inPos)) <<  8) & 65535)
        | //                                    [76543210]
          //                                  [__32109876________________]
            ((((int)in.get(54 + inPos)) <<  16) & 16777215)
        | //                                    [______10]
          //                                          [54________________________]
            ((((int)in.get(55 + inPos)) <<  24) & 67108863);
      out[17 + outPos] =
          //                                    [765432__]
          //                [____________________543210]
            ((((int)in.get(55 + inPos)) >>  2) & 63)
        | //                                    [76543210]
          //                        [____________32109876______]
            ((((int)in.get(56 + inPos)) <<  6) & 16383)
        | //                                    [76543210]
          //                                [____10987654______________]
            ((((int)in.get(57 + inPos)) <<  14) & 4194303)
        | //                                    [____3210]
          //                                        [5432______________________]
            ((((int)in.get(58 + inPos)) <<  22) & 67108863);
      out[18 + outPos] =
          //                                    [7654____]
          //              [______________________3210]
            ((((int)in.get(58 + inPos)) >>  4) & 15)
        | //                                    [76543210]
          //                      [______________10987654____]
            ((((int)in.get(59 + inPos)) <<  4) & 4095)
        | //                                    [76543210]
          //                              [______98765432____________]
            ((((int)in.get(60 + inPos)) <<  12) & 1048575)
        | //                                    [__543210]
          //                                      [543210____________________]
            ((((int)in.get(61 + inPos)) <<  20) & 67108863);
      out[19 + outPos] =
          //                                    [76______]
          //            [________________________10]
            ((((int)in.get(61 + inPos)) >>  6) & 3)
        | //                                    [76543210]
          //                    [________________98765432__]
            ((((int)in.get(62 + inPos)) <<  2) & 1023)
        | //                                    [76543210]
          //                            [________76543210__________]
            ((((int)in.get(63 + inPos)) <<  10) & 262143)
        | //                                    [76543210]
          //                                    [54321098__________________]
            ((((int)in.get(64 + inPos)) <<  18) & 67108863);
      out[20 + outPos] =
          //                                    [76543210]
          //                  [__________________76543210]
            ((((int)in.get(65 + inPos)) ) & 255)
        | //                                    [76543210]
          //                          [__________54321098________]
            ((((int)in.get(66 + inPos)) <<  8) & 65535)
        | //                                    [76543210]
          //                                  [__32109876________________]
            ((((int)in.get(67 + inPos)) <<  16) & 16777215)
        | //                                    [______10]
          //                                          [54________________________]
            ((((int)in.get(68 + inPos)) <<  24) & 67108863);
      out[21 + outPos] =
          //                                    [765432__]
          //                [____________________543210]
            ((((int)in.get(68 + inPos)) >>  2) & 63)
        | //                                    [76543210]
          //                        [____________32109876______]
            ((((int)in.get(69 + inPos)) <<  6) & 16383)
        | //                                    [76543210]
          //                                [____10987654______________]
            ((((int)in.get(70 + inPos)) <<  14) & 4194303)
        | //                                    [____3210]
          //                                        [5432______________________]
            ((((int)in.get(71 + inPos)) <<  22) & 67108863);
      out[22 + outPos] =
          //                                    [7654____]
          //              [______________________3210]
            ((((int)in.get(71 + inPos)) >>  4) & 15)
        | //                                    [76543210]
          //                      [______________10987654____]
            ((((int)in.get(72 + inPos)) <<  4) & 4095)
        | //                                    [76543210]
          //                              [______98765432____________]
            ((((int)in.get(73 + inPos)) <<  12) & 1048575)
        | //                                    [__543210]
          //                                      [543210____________________]
            ((((int)in.get(74 + inPos)) <<  20) & 67108863);
      out[23 + outPos] =
          //                                    [76______]
          //            [________________________10]
            ((((int)in.get(74 + inPos)) >>  6) & 3)
        | //                                    [76543210]
          //                    [________________98765432__]
            ((((int)in.get(75 + inPos)) <<  2) & 1023)
        | //                                    [76543210]
          //                            [________76543210__________]
            ((((int)in.get(76 + inPos)) <<  10) & 262143)
        | //                                    [76543210]
          //                                    [54321098__________________]
            ((((int)in.get(77 + inPos)) <<  18) & 67108863);
      out[24 + outPos] =
          //                                    [76543210]
          //                  [__________________76543210]
            ((((int)in.get(78 + inPos)) ) & 255)
        | //                                    [76543210]
          //                          [__________54321098________]
            ((((int)in.get(79 + inPos)) <<  8) & 65535)
        | //                                    [76543210]
          //                                  [__32109876________________]
            ((((int)in.get(80 + inPos)) <<  16) & 16777215)
        | //                                    [______10]
          //                                          [54________________________]
            ((((int)in.get(81 + inPos)) <<  24) & 67108863);
      out[25 + outPos] =
          //                                    [765432__]
          //                [____________________543210]
            ((((int)in.get(81 + inPos)) >>  2) & 63)
        | //                                    [76543210]
          //                        [____________32109876______]
            ((((int)in.get(82 + inPos)) <<  6) & 16383)
        | //                                    [76543210]
          //                                [____10987654______________]
            ((((int)in.get(83 + inPos)) <<  14) & 4194303)
        | //                                    [____3210]
          //                                        [5432______________________]
            ((((int)in.get(84 + inPos)) <<  22) & 67108863);
      out[26 + outPos] =
          //                                    [7654____]
          //              [______________________3210]
            ((((int)in.get(84 + inPos)) >>  4) & 15)
        | //                                    [76543210]
          //                      [______________10987654____]
            ((((int)in.get(85 + inPos)) <<  4) & 4095)
        | //                                    [76543210]
          //                              [______98765432____________]
            ((((int)in.get(86 + inPos)) <<  12) & 1048575)
        | //                                    [__543210]
          //                                      [543210____________________]
            ((((int)in.get(87 + inPos)) <<  20) & 67108863);
      out[27 + outPos] =
          //                                    [76______]
          //            [________________________10]
            ((((int)in.get(87 + inPos)) >>  6) & 3)
        | //                                    [76543210]
          //                    [________________98765432__]
            ((((int)in.get(88 + inPos)) <<  2) & 1023)
        | //                                    [76543210]
          //                            [________76543210__________]
            ((((int)in.get(89 + inPos)) <<  10) & 262143)
        | //                                    [76543210]
          //                                    [54321098__________________]
            ((((int)in.get(90 + inPos)) <<  18) & 67108863);
      out[28 + outPos] =
          //                                    [76543210]
          //                  [__________________76543210]
            ((((int)in.get(91 + inPos)) ) & 255)
        | //                                    [76543210]
          //                          [__________54321098________]
            ((((int)in.get(92 + inPos)) <<  8) & 65535)
        | //                                    [76543210]
          //                                  [__32109876________________]
            ((((int)in.get(93 + inPos)) <<  16) & 16777215)
        | //                                    [______10]
          //                                          [54________________________]
            ((((int)in.get(94 + inPos)) <<  24) & 67108863);
      out[29 + outPos] =
          //                                    [765432__]
          //                [____________________543210]
            ((((int)in.get(94 + inPos)) >>  2) & 63)
        | //                                    [76543210]
          //                        [____________32109876______]
            ((((int)in.get(95 + inPos)) <<  6) & 16383)
        | //                                    [76543210]
          //                                [____10987654______________]
            ((((int)in.get(96 + inPos)) <<  14) & 4194303)
        | //                                    [____3210]
          //                                        [5432______________________]
            ((((int)in.get(97 + inPos)) <<  22) & 67108863);
      out[30 + outPos] =
          //                                    [7654____]
          //              [______________________3210]
            ((((int)in.get(97 + inPos)) >>  4) & 15)
        | //                                    [76543210]
          //                      [______________10987654____]
            ((((int)in.get(98 + inPos)) <<  4) & 4095)
        | //                                    [76543210]
          //                              [______98765432____________]
            ((((int)in.get(99 + inPos)) <<  12) & 1048575)
        | //                                    [__543210]
          //                                      [543210____________________]
            ((((int)in.get(100 + inPos)) <<  20) & 67108863);
      out[31 + outPos] =
          //                                    [76______]
          //            [________________________10]
            ((((int)in.get(100 + inPos)) >>  6) & 3)
        | //                                    [76543210]
          //                    [________________98765432__]
            ((((int)in.get(101 + inPos)) <<  2) & 1023)
        | //                                    [76543210]
          //                            [________76543210__________]
            ((((int)in.get(102 + inPos)) <<  10) & 262143)
        | //                                    [76543210]
          //                                    [54321098__________________]
            ((((int)in.get(103 + inPos)) <<  18) & 67108863);
    }
  }

  private static final class Packer27 extends BytePacker {

    private Packer27() {
      super(27);
    }

    public final void pack8Values(final int[] in, final int inPos, final byte[] out, final int outPos) {
      out[ 0 + outPos] = (byte)((
          //                                     [76543210]
          //                  [___________________76543210]
           ((in[ 0 + inPos] & 134217727))) & 255);
      out[ 1 + outPos] = (byte)((
          //                                     [76543210]
          //                          [___________54321098________]
           ((in[ 0 + inPos] & 134217727) >>> 8)) & 255);
      out[ 2 + outPos] = (byte)((
          //                                     [76543210]
          //                                  [___32109876________________]
           ((in[ 0 + inPos] & 134217727) >>> 16)) & 255);
      out[ 3 + outPos] = (byte)((
          //                                     [_____210]
          //                                          [654________________________]
           ((in[ 0 + inPos] & 134217727) >>> 24)
        | //                                     [76543___]
          //               [______________________43210]
           ((in[ 1 + inPos] & 134217727) <<  3)) & 255);
      out[ 4 + outPos] = (byte)((
          //                                     [76543210]
          //                       [______________21098765_____]
           ((in[ 1 + inPos] & 134217727) >>> 5)) & 255);
      out[ 5 + outPos] = (byte)((
          //                                     [76543210]
          //                               [______09876543_____________]
           ((in[ 1 + inPos] & 134217727) >>> 13)) & 255);
      out[ 6 + outPos] = (byte)((
          //                                     [__543210]
          //                                       [654321_____________________]
           ((in[ 1 + inPos] & 134217727) >>> 21)
        | //                                     [76______]
          //            [_________________________10]
           ((in[ 2 + inPos] & 134217727) <<  6)) & 255);
      out[ 7 + outPos] = (byte)((
          //                                     [76543210]
          //                    [_________________98765432__]
           ((in[ 2 + inPos] & 134217727) >>> 2)) & 255);
      out[ 8 + outPos] = (byte)((
          //                                     [76543210]
          //                            [_________76543210__________]
           ((in[ 2 + inPos] & 134217727) >>> 10)) & 255);
      out[ 9 + outPos] = (byte)((
          //                                     [76543210]
          //                                    [_54321098__________________]
           ((in[ 2 + inPos] & 134217727) >>> 18)) & 255);
      out[10 + outPos] = (byte)((
          //                                     [_______0]
          //                                            [6__________________________]
           ((in[ 2 + inPos] & 134217727) >>> 26)
        | //                                     [7654321_]
          //                 [____________________6543210]
           ((in[ 3 + inPos] & 134217727) <<  1)) & 255);
      out[11 + outPos] = (byte)((
          //                                     [76543210]
          //                         [____________43210987_______]
           ((in[ 3 + inPos] & 134217727) >>> 7)) & 255);
      out[12 + outPos] = (byte)((
          //                                     [76543210]
          //                                 [____21098765_______________]
           ((in[ 3 + inPos] & 134217727) >>> 15)) & 255);
      out[13 + outPos] = (byte)((
          //                                     [____3210]
          //                                         [6543_______________________]
           ((in[ 3 + inPos] & 134217727) >>> 23)
        | //                                     [7654____]
          //              [_______________________3210]
           ((in[ 4 + inPos] & 134217727) <<  4)) & 255);
      out[14 + outPos] = (byte)((
          //                                     [76543210]
          //                      [_______________10987654____]
           ((in[ 4 + inPos] & 134217727) >>> 4)) & 255);
      out[15 + outPos] = (byte)((
          //                                     [76543210]
          //                              [_______98765432____________]
           ((in[ 4 + inPos] & 134217727) >>> 12)) & 255);
      out[16 + outPos] = (byte)((
          //                                     [_6543210]
          //                                      [6543210____________________]
           ((in[ 4 + inPos] & 134217727) >>> 20)
        | //                                     [7_______]
          //           [__________________________0]
           ((in[ 5 + inPos] & 134217727) <<  7)) & 255);
      out[17 + outPos] = (byte)((
          //                                     [76543210]
          //                   [__________________87654321_]
           ((in[ 5 + inPos] & 134217727) >>> 1)) & 255);
      out[18 + outPos] = (byte)((
          //                                     [76543210]
          //                           [__________65432109_________]
           ((in[ 5 + inPos] & 134217727) >>> 9)) & 255);
      out[19 + outPos] = (byte)((
          //                                     [76543210]
          //                                   [__43210987_________________]
           ((in[ 5 + inPos] & 134217727) >>> 17)) & 255);
      out[20 + outPos] = (byte)((
          //                                     [______10]
          //                                           [65_________________________]
           ((in[ 5 + inPos] & 134217727) >>> 25)
        | //                                     [765432__]
          //                [_____________________543210]
           ((in[ 6 + inPos] & 134217727) <<  2)) & 255);
      out[21 + outPos] = (byte)((
          //                                     [76543210]
          //                        [_____________32109876______]
           ((in[ 6 + inPos] & 134217727) >>> 6)) & 255);
      out[22 + outPos] = (byte)((
          //                                     [76543210]
          //                                [_____10987654______________]
           ((in[ 6 + inPos] & 134217727) >>> 14)) & 255);
      out[23 + outPos] = (byte)((
          //                                     [___43210]
          //                                        [65432______________________]
           ((in[ 6 + inPos] & 134217727) >>> 22)
        | //                                     [765_____]
          //             [________________________210]
           ((in[ 7 + inPos] & 134217727) <<  5)) & 255);
      out[24 + outPos] = (byte)((
          //                                     [76543210]
          //                     [________________09876543___]
           ((in[ 7 + inPos] & 134217727) >>> 3)) & 255);
      out[25 + outPos] = (byte)((
          //                                     [76543210]
          //                             [________87654321___________]
           ((in[ 7 + inPos] & 134217727) >>> 11)) & 255);
      out[26 + outPos] = (byte)((
          //                                     [76543210]
          //                                     [65432109___________________]
           ((in[ 7 + inPos] & 134217727) >>> 19)) & 255);
    }
    public final void pack32Values(final int[] in, final int inPos, final byte[] out, final int outPos) {
      out[ 0 + outPos] = (byte)((
          //                                     [76543210]
          //                  [___________________76543210]
           ((in[ 0 + inPos] & 134217727))) & 255);
      out[ 1 + outPos] = (byte)((
          //                                     [76543210]
          //                          [___________54321098________]
           ((in[ 0 + inPos] & 134217727) >>> 8)) & 255);
      out[ 2 + outPos] = (byte)((
          //                                     [76543210]
          //                                  [___32109876________________]
           ((in[ 0 + inPos] & 134217727) >>> 16)) & 255);
      out[ 3 + outPos] = (byte)((
          //                                     [_____210]
          //                                          [654________________________]
           ((in[ 0 + inPos] & 134217727) >>> 24)
        | //                                     [76543___]
          //               [______________________43210]
           ((in[ 1 + inPos] & 134217727) <<  3)) & 255);
      out[ 4 + outPos] = (byte)((
          //                                     [76543210]
          //                       [______________21098765_____]
           ((in[ 1 + inPos] & 134217727) >>> 5)) & 255);
      out[ 5 + outPos] = (byte)((
          //                                     [76543210]
          //                               [______09876543_____________]
           ((in[ 1 + inPos] & 134217727) >>> 13)) & 255);
      out[ 6 + outPos] = (byte)((
          //                                     [__543210]
          //                                       [654321_____________________]
           ((in[ 1 + inPos] & 134217727) >>> 21)
        | //                                     [76______]
          //            [_________________________10]
           ((in[ 2 + inPos] & 134217727) <<  6)) & 255);
      out[ 7 + outPos] = (byte)((
          //                                     [76543210]
          //                    [_________________98765432__]
           ((in[ 2 + inPos] & 134217727) >>> 2)) & 255);
      out[ 8 + outPos] = (byte)((
          //                                     [76543210]
          //                            [_________76543210__________]
           ((in[ 2 + inPos] & 134217727) >>> 10)) & 255);
      out[ 9 + outPos] = (byte)((
          //                                     [76543210]
          //                                    [_54321098__________________]
           ((in[ 2 + inPos] & 134217727) >>> 18)) & 255);
      out[10 + outPos] = (byte)((
          //                                     [_______0]
          //                                            [6__________________________]
           ((in[ 2 + inPos] & 134217727) >>> 26)
        | //                                     [7654321_]
          //                 [____________________6543210]
           ((in[ 3 + inPos] & 134217727) <<  1)) & 255);
      out[11 + outPos] = (byte)((
          //                                     [76543210]
          //                         [____________43210987_______]
           ((in[ 3 + inPos] & 134217727) >>> 7)) & 255);
      out[12 + outPos] = (byte)((
          //                                     [76543210]
          //                                 [____21098765_______________]
           ((in[ 3 + inPos] & 134217727) >>> 15)) & 255);
      out[13 + outPos] = (byte)((
          //                                     [____3210]
          //                                         [6543_______________________]
           ((in[ 3 + inPos] & 134217727) >>> 23)
        | //                                     [7654____]
          //              [_______________________3210]
           ((in[ 4 + inPos] & 134217727) <<  4)) & 255);
      out[14 + outPos] = (byte)((
          //                                     [76543210]
          //                      [_______________10987654____]
           ((in[ 4 + inPos] & 134217727) >>> 4)) & 255);
      out[15 + outPos] = (byte)((
          //                                     [76543210]
          //                              [_______98765432____________]
           ((in[ 4 + inPos] & 134217727) >>> 12)) & 255);
      out[16 + outPos] = (byte)((
          //                                     [_6543210]
          //                                      [6543210____________________]
           ((in[ 4 + inPos] & 134217727) >>> 20)
        | //                                     [7_______]
          //           [__________________________0]
           ((in[ 5 + inPos] & 134217727) <<  7)) & 255);
      out[17 + outPos] = (byte)((
          //                                     [76543210]
          //                   [__________________87654321_]
           ((in[ 5 + inPos] & 134217727) >>> 1)) & 255);
      out[18 + outPos] = (byte)((
          //                                     [76543210]
          //                           [__________65432109_________]
           ((in[ 5 + inPos] & 134217727) >>> 9)) & 255);
      out[19 + outPos] = (byte)((
          //                                     [76543210]
          //                                   [__43210987_________________]
           ((in[ 5 + inPos] & 134217727) >>> 17)) & 255);
      out[20 + outPos] = (byte)((
          //                                     [______10]
          //                                           [65_________________________]
           ((in[ 5 + inPos] & 134217727) >>> 25)
        | //                                     [765432__]
          //                [_____________________543210]
           ((in[ 6 + inPos] & 134217727) <<  2)) & 255);
      out[21 + outPos] = (byte)((
          //                                     [76543210]
          //                        [_____________32109876______]
           ((in[ 6 + inPos] & 134217727) >>> 6)) & 255);
      out[22 + outPos] = (byte)((
          //                                     [76543210]
          //                                [_____10987654______________]
           ((in[ 6 + inPos] & 134217727) >>> 14)) & 255);
      out[23 + outPos] = (byte)((
          //                                     [___43210]
          //                                        [65432______________________]
           ((in[ 6 + inPos] & 134217727) >>> 22)
        | //                                     [765_____]
          //             [________________________210]
           ((in[ 7 + inPos] & 134217727) <<  5)) & 255);
      out[24 + outPos] = (byte)((
          //                                     [76543210]
          //                     [________________09876543___]
           ((in[ 7 + inPos] & 134217727) >>> 3)) & 255);
      out[25 + outPos] = (byte)((
          //                                     [76543210]
          //                             [________87654321___________]
           ((in[ 7 + inPos] & 134217727) >>> 11)) & 255);
      out[26 + outPos] = (byte)((
          //                                     [76543210]
          //                                     [65432109___________________]
           ((in[ 7 + inPos] & 134217727) >>> 19)) & 255);
      out[27 + outPos] = (byte)((
          //                                     [76543210]
          //                  [___________________76543210]
           ((in[ 8 + inPos] & 134217727))) & 255);
      out[28 + outPos] = (byte)((
          //                                     [76543210]
          //                          [___________54321098________]
           ((in[ 8 + inPos] & 134217727) >>> 8)) & 255);
      out[29 + outPos] = (byte)((
          //                                     [76543210]
          //                                  [___32109876________________]
           ((in[ 8 + inPos] & 134217727) >>> 16)) & 255);
      out[30 + outPos] = (byte)((
          //                                     [_____210]
          //                                          [654________________________]
           ((in[ 8 + inPos] & 134217727) >>> 24)
        | //                                     [76543___]
          //               [______________________43210]
           ((in[ 9 + inPos] & 134217727) <<  3)) & 255);
      out[31 + outPos] = (byte)((
          //                                     [76543210]
          //                       [______________21098765_____]
           ((in[ 9 + inPos] & 134217727) >>> 5)) & 255);
      out[32 + outPos] = (byte)((
          //                                     [76543210]
          //                               [______09876543_____________]
           ((in[ 9 + inPos] & 134217727) >>> 13)) & 255);
      out[33 + outPos] = (byte)((
          //                                     [__543210]
          //                                       [654321_____________________]
           ((in[ 9 + inPos] & 134217727) >>> 21)
        | //                                     [76______]
          //            [_________________________10]
           ((in[10 + inPos] & 134217727) <<  6)) & 255);
      out[34 + outPos] = (byte)((
          //                                     [76543210]
          //                    [_________________98765432__]
           ((in[10 + inPos] & 134217727) >>> 2)) & 255);
      out[35 + outPos] = (byte)((
          //                                     [76543210]
          //                            [_________76543210__________]
           ((in[10 + inPos] & 134217727) >>> 10)) & 255);
      out[36 + outPos] = (byte)((
          //                                     [76543210]
          //                                    [_54321098__________________]
           ((in[10 + inPos] & 134217727) >>> 18)) & 255);
      out[37 + outPos] = (byte)((
          //                                     [_______0]
          //                                            [6__________________________]
           ((in[10 + inPos] & 134217727) >>> 26)
        | //                                     [7654321_]
          //                 [____________________6543210]
           ((in[11 + inPos] & 134217727) <<  1)) & 255);
      out[38 + outPos] = (byte)((
          //                                     [76543210]
          //                         [____________43210987_______]
           ((in[11 + inPos] & 134217727) >>> 7)) & 255);
      out[39 + outPos] = (byte)((
          //                                     [76543210]
          //                                 [____21098765_______________]
           ((in[11 + inPos] & 134217727) >>> 15)) & 255);
      out[40 + outPos] = (byte)((
          //                                     [____3210]
          //                                         [6543_______________________]
           ((in[11 + inPos] & 134217727) >>> 23)
        | //                                     [7654____]
          //              [_______________________3210]
           ((in[12 + inPos] & 134217727) <<  4)) & 255);
      out[41 + outPos] = (byte)((
          //                                     [76543210]
          //                      [_______________10987654____]
           ((in[12 + inPos] & 134217727) >>> 4)) & 255);
      out[42 + outPos] = (byte)((
          //                                     [76543210]
          //                              [_______98765432____________]
           ((in[12 + inPos] & 134217727) >>> 12)) & 255);
      out[43 + outPos] = (byte)((
          //                                     [_6543210]
          //                                      [6543210____________________]
           ((in[12 + inPos] & 134217727) >>> 20)
        | //                                     [7_______]
          //           [__________________________0]
           ((in[13 + inPos] & 134217727) <<  7)) & 255);
      out[44 + outPos] = (byte)((
          //                                     [76543210]
          //                   [__________________87654321_]
           ((in[13 + inPos] & 134217727) >>> 1)) & 255);
      out[45 + outPos] = (byte)((
          //                                     [76543210]
          //                           [__________65432109_________]
           ((in[13 + inPos] & 134217727) >>> 9)) & 255);
      out[46 + outPos] = (byte)((
          //                                     [76543210]
          //                                   [__43210987_________________]
           ((in[13 + inPos] & 134217727) >>> 17)) & 255);
      out[47 + outPos] = (byte)((
          //                                     [______10]
          //                                           [65_________________________]
           ((in[13 + inPos] & 134217727) >>> 25)
        | //                                     [765432__]
          //                [_____________________543210]
           ((in[14 + inPos] & 134217727) <<  2)) & 255);
      out[48 + outPos] = (byte)((
          //                                     [76543210]
          //                        [_____________32109876______]
           ((in[14 + inPos] & 134217727) >>> 6)) & 255);
      out[49 + outPos] = (byte)((
          //                                     [76543210]
          //                                [_____10987654______________]
           ((in[14 + inPos] & 134217727) >>> 14)) & 255);
      out[50 + outPos] = (byte)((
          //                                     [___43210]
          //                                        [65432______________________]
           ((in[14 + inPos] & 134217727) >>> 22)
        | //                                     [765_____]
          //             [________________________210]
           ((in[15 + inPos] & 134217727) <<  5)) & 255);
      out[51 + outPos] = (byte)((
          //                                     [76543210]
          //                     [________________09876543___]
           ((in[15 + inPos] & 134217727) >>> 3)) & 255);
      out[52 + outPos] = (byte)((
          //                                     [76543210]
          //                             [________87654321___________]
           ((in[15 + inPos] & 134217727) >>> 11)) & 255);
      out[53 + outPos] = (byte)((
          //                                     [76543210]
          //                                     [65432109___________________]
           ((in[15 + inPos] & 134217727) >>> 19)) & 255);
      out[54 + outPos] = (byte)((
          //                                     [76543210]
          //                  [___________________76543210]
           ((in[16 + inPos] & 134217727))) & 255);
      out[55 + outPos] = (byte)((
          //                                     [76543210]
          //                          [___________54321098________]
           ((in[16 + inPos] & 134217727) >>> 8)) & 255);
      out[56 + outPos] = (byte)((
          //                                     [76543210]
          //                                  [___32109876________________]
           ((in[16 + inPos] & 134217727) >>> 16)) & 255);
      out[57 + outPos] = (byte)((
          //                                     [_____210]
          //                                          [654________________________]
           ((in[16 + inPos] & 134217727) >>> 24)
        | //                                     [76543___]
          //               [______________________43210]
           ((in[17 + inPos] & 134217727) <<  3)) & 255);
      out[58 + outPos] = (byte)((
          //                                     [76543210]
          //                       [______________21098765_____]
           ((in[17 + inPos] & 134217727) >>> 5)) & 255);
      out[59 + outPos] = (byte)((
          //                                     [76543210]
          //                               [______09876543_____________]
           ((in[17 + inPos] & 134217727) >>> 13)) & 255);
      out[60 + outPos] = (byte)((
          //                                     [__543210]
          //                                       [654321_____________________]
           ((in[17 + inPos] & 134217727) >>> 21)
        | //                                     [76______]
          //            [_________________________10]
           ((in[18 + inPos] & 134217727) <<  6)) & 255);
      out[61 + outPos] = (byte)((
          //                                     [76543210]
          //                    [_________________98765432__]
           ((in[18 + inPos] & 134217727) >>> 2)) & 255);
      out[62 + outPos] = (byte)((
          //                                     [76543210]
          //                            [_________76543210__________]
           ((in[18 + inPos] & 134217727) >>> 10)) & 255);
      out[63 + outPos] = (byte)((
          //                                     [76543210]
          //                                    [_54321098__________________]
           ((in[18 + inPos] & 134217727) >>> 18)) & 255);
      out[64 + outPos] = (byte)((
          //                                     [_______0]
          //                                            [6__________________________]
           ((in[18 + inPos] & 134217727) >>> 26)
        | //                                     [7654321_]
          //                 [____________________6543210]
           ((in[19 + inPos] & 134217727) <<  1)) & 255);
      out[65 + outPos] = (byte)((
          //                                     [76543210]
          //                         [____________43210987_______]
           ((in[19 + inPos] & 134217727) >>> 7)) & 255);
      out[66 + outPos] = (byte)((
          //                                     [76543210]
          //                                 [____21098765_______________]
           ((in[19 + inPos] & 134217727) >>> 15)) & 255);
      out[67 + outPos] = (byte)((
          //                                     [____3210]
          //                                         [6543_______________________]
           ((in[19 + inPos] & 134217727) >>> 23)
        | //                                     [7654____]
          //              [_______________________3210]
           ((in[20 + inPos] & 134217727) <<  4)) & 255);
      out[68 + outPos] = (byte)((
          //                                     [76543210]
          //                      [_______________10987654____]
           ((in[20 + inPos] & 134217727) >>> 4)) & 255);
      out[69 + outPos] = (byte)((
          //                                     [76543210]
          //                              [_______98765432____________]
           ((in[20 + inPos] & 134217727) >>> 12)) & 255);
      out[70 + outPos] = (byte)((
          //                                     [_6543210]
          //                                      [6543210____________________]
           ((in[20 + inPos] & 134217727) >>> 20)
        | //                                     [7_______]
          //           [__________________________0]
           ((in[21 + inPos] & 134217727) <<  7)) & 255);
      out[71 + outPos] = (byte)((
          //                                     [76543210]
          //                   [__________________87654321_]
           ((in[21 + inPos] & 134217727) >>> 1)) & 255);
      out[72 + outPos] = (byte)((
          //                                     [76543210]
          //                           [__________65432109_________]
           ((in[21 + inPos] & 134217727) >>> 9)) & 255);
      out[73 + outPos] = (byte)((
          //                                     [76543210]
          //                                   [__43210987_________________]
           ((in[21 + inPos] & 134217727) >>> 17)) & 255);
      out[74 + outPos] = (byte)((
          //                                     [______10]
          //                                           [65_________________________]
           ((in[21 + inPos] & 134217727) >>> 25)
        | //                                     [765432__]
          //                [_____________________543210]
           ((in[22 + inPos] & 134217727) <<  2)) & 255);
      out[75 + outPos] = (byte)((
          //                                     [76543210]
          //                        [_____________32109876______]
           ((in[22 + inPos] & 134217727) >>> 6)) & 255);
      out[76 + outPos] = (byte)((
          //                                     [76543210]
          //                                [_____10987654______________]
           ((in[22 + inPos] & 134217727) >>> 14)) & 255);
      out[77 + outPos] = (byte)((
          //                                     [___43210]
          //                                        [65432______________________]
           ((in[22 + inPos] & 134217727) >>> 22)
        | //                                     [765_____]
          //             [________________________210]
           ((in[23 + inPos] & 134217727) <<  5)) & 255);
      out[78 + outPos] = (byte)((
          //                                     [76543210]
          //                     [________________09876543___]
           ((in[23 + inPos] & 134217727) >>> 3)) & 255);
      out[79 + outPos] = (byte)((
          //                                     [76543210]
          //                             [________87654321___________]
           ((in[23 + inPos] & 134217727) >>> 11)) & 255);
      out[80 + outPos] = (byte)((
          //                                     [76543210]
          //                                     [65432109___________________]
           ((in[23 + inPos] & 134217727) >>> 19)) & 255);
      out[81 + outPos] = (byte)((
          //                                     [76543210]
          //                  [___________________76543210]
           ((in[24 + inPos] & 134217727))) & 255);
      out[82 + outPos] = (byte)((
          //                                     [76543210]
          //                          [___________54321098________]
           ((in[24 + inPos] & 134217727) >>> 8)) & 255);
      out[83 + outPos] = (byte)((
          //                                     [76543210]
          //                                  [___32109876________________]
           ((in[24 + inPos] & 134217727) >>> 16)) & 255);
      out[84 + outPos] = (byte)((
          //                                     [_____210]
          //                                          [654________________________]
           ((in[24 + inPos] & 134217727) >>> 24)
        | //                                     [76543___]
          //               [______________________43210]
           ((in[25 + inPos] & 134217727) <<  3)) & 255);
      out[85 + outPos] = (byte)((
          //                                     [76543210]
          //                       [______________21098765_____]
           ((in[25 + inPos] & 134217727) >>> 5)) & 255);
      out[86 + outPos] = (byte)((
          //                                     [76543210]
          //                               [______09876543_____________]
           ((in[25 + inPos] & 134217727) >>> 13)) & 255);
      out[87 + outPos] = (byte)((
          //                                     [__543210]
          //                                       [654321_____________________]
           ((in[25 + inPos] & 134217727) >>> 21)
        | //                                     [76______]
          //            [_________________________10]
           ((in[26 + inPos] & 134217727) <<  6)) & 255);
      out[88 + outPos] = (byte)((
          //                                     [76543210]
          //                    [_________________98765432__]
           ((in[26 + inPos] & 134217727) >>> 2)) & 255);
      out[89 + outPos] = (byte)((
          //                                     [76543210]
          //                            [_________76543210__________]
           ((in[26 + inPos] & 134217727) >>> 10)) & 255);
      out[90 + outPos] = (byte)((
          //                                     [76543210]
          //                                    [_54321098__________________]
           ((in[26 + inPos] & 134217727) >>> 18)) & 255);
      out[91 + outPos] = (byte)((
          //                                     [_______0]
          //                                            [6__________________________]
           ((in[26 + inPos] & 134217727) >>> 26)
        | //                                     [7654321_]
          //                 [____________________6543210]
           ((in[27 + inPos] & 134217727) <<  1)) & 255);
      out[92 + outPos] = (byte)((
          //                                     [76543210]
          //                         [____________43210987_______]
           ((in[27 + inPos] & 134217727) >>> 7)) & 255);
      out[93 + outPos] = (byte)((
          //                                     [76543210]
          //                                 [____21098765_______________]
           ((in[27 + inPos] & 134217727) >>> 15)) & 255);
      out[94 + outPos] = (byte)((
          //                                     [____3210]
          //                                         [6543_______________________]
           ((in[27 + inPos] & 134217727) >>> 23)
        | //                                     [7654____]
          //              [_______________________3210]
           ((in[28 + inPos] & 134217727) <<  4)) & 255);
      out[95 + outPos] = (byte)((
          //                                     [76543210]
          //                      [_______________10987654____]
           ((in[28 + inPos] & 134217727) >>> 4)) & 255);
      out[96 + outPos] = (byte)((
          //                                     [76543210]
          //                              [_______98765432____________]
           ((in[28 + inPos] & 134217727) >>> 12)) & 255);
      out[97 + outPos] = (byte)((
          //                                     [_6543210]
          //                                      [6543210____________________]
           ((in[28 + inPos] & 134217727) >>> 20)
        | //                                     [7_______]
          //           [__________________________0]
           ((in[29 + inPos] & 134217727) <<  7)) & 255);
      out[98 + outPos] = (byte)((
          //                                     [76543210]
          //                   [__________________87654321_]
           ((in[29 + inPos] & 134217727) >>> 1)) & 255);
      out[99 + outPos] = (byte)((
          //                                     [76543210]
          //                           [__________65432109_________]
           ((in[29 + inPos] & 134217727) >>> 9)) & 255);
      out[100 + outPos] = (byte)((
          //                                     [76543210]
          //                                   [__43210987_________________]
           ((in[29 + inPos] & 134217727) >>> 17)) & 255);
      out[101 + outPos] = (byte)((
          //                                     [______10]
          //                                           [65_________________________]
           ((in[29 + inPos] & 134217727) >>> 25)
        | //                                     [765432__]
          //                [_____________________543210]
           ((in[30 + inPos] & 134217727) <<  2)) & 255);
      out[102 + outPos] = (byte)((
          //                                     [76543210]
          //                        [_____________32109876______]
           ((in[30 + inPos] & 134217727) >>> 6)) & 255);
      out[103 + outPos] = (byte)((
          //                                     [76543210]
          //                                [_____10987654______________]
           ((in[30 + inPos] & 134217727) >>> 14)) & 255);
      out[104 + outPos] = (byte)((
          //                                     [___43210]
          //                                        [65432______________________]
           ((in[30 + inPos] & 134217727) >>> 22)
        | //                                     [765_____]
          //             [________________________210]
           ((in[31 + inPos] & 134217727) <<  5)) & 255);
      out[105 + outPos] = (byte)((
          //                                     [76543210]
          //                     [________________09876543___]
           ((in[31 + inPos] & 134217727) >>> 3)) & 255);
      out[106 + outPos] = (byte)((
          //                                     [76543210]
          //                             [________87654321___________]
           ((in[31 + inPos] & 134217727) >>> 11)) & 255);
      out[107 + outPos] = (byte)((
          //                                     [76543210]
          //                                     [65432109___________________]
           ((in[31 + inPos] & 134217727) >>> 19)) & 255);
    }
    public final void unpack8Values(final byte[] in, final int inPos, final int[] out, final int outPos) {
      out[ 0 + outPos] =
          //                                     [76543210]
          //                  [___________________76543210]
            ((((int)in[ 0 + inPos]) ) & 255)
        | //                                     [76543210]
          //                          [___________54321098________]
            ((((int)in[ 1 + inPos]) <<  8) & 65535)
        | //                                     [76543210]
          //                                  [___32109876________________]
            ((((int)in[ 2 + inPos]) <<  16) & 16777215)
        | //                                     [_____210]
          //                                          [654________________________]
            ((((int)in[ 3 + inPos]) <<  24) & 134217727);
      out[ 1 + outPos] =
          //                                     [76543___]
          //               [______________________43210]
            ((((int)in[ 3 + inPos]) >>  3) & 31)
        | //                                     [76543210]
          //                       [______________21098765_____]
            ((((int)in[ 4 + inPos]) <<  5) & 8191)
        | //                                     [76543210]
          //                               [______09876543_____________]
            ((((int)in[ 5 + inPos]) <<  13) & 2097151)
        | //                                     [__543210]
          //                                       [654321_____________________]
            ((((int)in[ 6 + inPos]) <<  21) & 134217727);
      out[ 2 + outPos] =
          //                                     [76______]
          //            [_________________________10]
            ((((int)in[ 6 + inPos]) >>  6) & 3)
        | //                                     [76543210]
          //                    [_________________98765432__]
            ((((int)in[ 7 + inPos]) <<  2) & 1023)
        | //                                     [76543210]
          //                            [_________76543210__________]
            ((((int)in[ 8 + inPos]) <<  10) & 262143)
        | //                                     [76543210]
          //                                    [_54321098__________________]
            ((((int)in[ 9 + inPos]) <<  18) & 67108863)
        | //                                     [_______0]
          //                                            [6__________________________]
            ((((int)in[10 + inPos]) <<  26) & 134217727);
      out[ 3 + outPos] =
          //                                     [7654321_]
          //                 [____________________6543210]
            ((((int)in[10 + inPos]) >>  1) & 127)
        | //                                     [76543210]
          //                         [____________43210987_______]
            ((((int)in[11 + inPos]) <<  7) & 32767)
        | //                                     [76543210]
          //                                 [____21098765_______________]
            ((((int)in[12 + inPos]) <<  15) & 8388607)
        | //                                     [____3210]
          //                                         [6543_______________________]
            ((((int)in[13 + inPos]) <<  23) & 134217727);
      out[ 4 + outPos] =
          //                                     [7654____]
          //              [_______________________3210]
            ((((int)in[13 + inPos]) >>  4) & 15)
        | //                                     [76543210]
          //                      [_______________10987654____]
            ((((int)in[14 + inPos]) <<  4) & 4095)
        | //                                     [76543210]
          //                              [_______98765432____________]
            ((((int)in[15 + inPos]) <<  12) & 1048575)
        | //                                     [_6543210]
          //                                      [6543210____________________]
            ((((int)in[16 + inPos]) <<  20) & 134217727);
      out[ 5 + outPos] =
          //                                     [7_______]
          //           [__________________________0]
            ((((int)in[16 + inPos]) >>  7) & 1)
        | //                                     [76543210]
          //                   [__________________87654321_]
            ((((int)in[17 + inPos]) <<  1) & 511)
        | //                                     [76543210]
          //                           [__________65432109_________]
            ((((int)in[18 + inPos]) <<  9) & 131071)
        | //                                     [76543210]
          //                                   [__43210987_________________]
            ((((int)in[19 + inPos]) <<  17) & 33554431)
        | //                                     [______10]
          //                                           [65_________________________]
            ((((int)in[20 + inPos]) <<  25) & 134217727);
      out[ 6 + outPos] =
          //                                     [765432__]
          //                [_____________________543210]
            ((((int)in[20 + inPos]) >>  2) & 63)
        | //                                     [76543210]
          //                        [_____________32109876______]
            ((((int)in[21 + inPos]) <<  6) & 16383)
        | //                                     [76543210]
          //                                [_____10987654______________]
            ((((int)in[22 + inPos]) <<  14) & 4194303)
        | //                                     [___43210]
          //                                        [65432______________________]
            ((((int)in[23 + inPos]) <<  22) & 134217727);
      out[ 7 + outPos] =
          //                                     [765_____]
          //             [________________________210]
            ((((int)in[23 + inPos]) >>  5) & 7)
        | //                                     [76543210]
          //                     [________________09876543___]
            ((((int)in[24 + inPos]) <<  3) & 2047)
        | //                                     [76543210]
          //                             [________87654321___________]
            ((((int)in[25 + inPos]) <<  11) & 524287)
        | //                                     [76543210]
          //                                     [65432109___________________]
            ((((int)in[26 + inPos]) <<  19) & 134217727);
    }
    public final void unpack8Values(final ByteBuffer in, final int inPos, final int[] out, final int outPos) {
      out[ 0 + outPos] =
          //                                     [76543210]
          //                  [___________________76543210]
            ((((int)in.get( 0 + inPos)) ) & 255)
        | //                                     [76543210]
          //                          [___________54321098________]
            ((((int)in.get( 1 + inPos)) <<  8) & 65535)
        | //                                     [76543210]
          //                                  [___32109876________________]
            ((((int)in.get( 2 + inPos)) <<  16) & 16777215)
        | //                                     [_____210]
          //                                          [654________________________]
            ((((int)in.get( 3 + inPos)) <<  24) & 134217727);
      out[ 1 + outPos] =
          //                                     [76543___]
          //               [______________________43210]
            ((((int)in.get( 3 + inPos)) >>  3) & 31)
        | //                                     [76543210]
          //                       [______________21098765_____]
            ((((int)in.get( 4 + inPos)) <<  5) & 8191)
        | //                                     [76543210]
          //                               [______09876543_____________]
            ((((int)in.get( 5 + inPos)) <<  13) & 2097151)
        | //                                     [__543210]
          //                                       [654321_____________________]
            ((((int)in.get( 6 + inPos)) <<  21) & 134217727);
      out[ 2 + outPos] =
          //                                     [76______]
          //            [_________________________10]
            ((((int)in.get( 6 + inPos)) >>  6) & 3)
        | //                                     [76543210]
          //                    [_________________98765432__]
            ((((int)in.get( 7 + inPos)) <<  2) & 1023)
        | //                                     [76543210]
          //                            [_________76543210__________]
            ((((int)in.get( 8 + inPos)) <<  10) & 262143)
        | //                                     [76543210]
          //                                    [_54321098__________________]
            ((((int)in.get( 9 + inPos)) <<  18) & 67108863)
        | //                                     [_______0]
          //                                            [6__________________________]
            ((((int)in.get(10 + inPos)) <<  26) & 134217727);
      out[ 3 + outPos] =
          //                                     [7654321_]
          //                 [____________________6543210]
            ((((int)in.get(10 + inPos)) >>  1) & 127)
        | //                                     [76543210]
          //                         [____________43210987_______]
            ((((int)in.get(11 + inPos)) <<  7) & 32767)
        | //                                     [76543210]
          //                                 [____21098765_______________]
            ((((int)in.get(12 + inPos)) <<  15) & 8388607)
        | //                                     [____3210]
          //                                         [6543_______________________]
            ((((int)in.get(13 + inPos)) <<  23) & 134217727);
      out[ 4 + outPos] =
          //                                     [7654____]
          //              [_______________________3210]
            ((((int)in.get(13 + inPos)) >>  4) & 15)
        | //                                     [76543210]
          //                      [_______________10987654____]
            ((((int)in.get(14 + inPos)) <<  4) & 4095)
        | //                                     [76543210]
          //                              [_______98765432____________]
            ((((int)in.get(15 + inPos)) <<  12) & 1048575)
        | //                                     [_6543210]
          //                                      [6543210____________________]
            ((((int)in.get(16 + inPos)) <<  20) & 134217727);
      out[ 5 + outPos] =
          //                                     [7_______]
          //           [__________________________0]
            ((((int)in.get(16 + inPos)) >>  7) & 1)
        | //                                     [76543210]
          //                   [__________________87654321_]
            ((((int)in.get(17 + inPos)) <<  1) & 511)
        | //                                     [76543210]
          //                           [__________65432109_________]
            ((((int)in.get(18 + inPos)) <<  9) & 131071)
        | //                                     [76543210]
          //                                   [__43210987_________________]
            ((((int)in.get(19 + inPos)) <<  17) & 33554431)
        | //                                     [______10]
          //                                           [65_________________________]
            ((((int)in.get(20 + inPos)) <<  25) & 134217727);
      out[ 6 + outPos] =
          //                                     [765432__]
          //                [_____________________543210]
            ((((int)in.get(20 + inPos)) >>  2) & 63)
        | //                                     [76543210]
          //                        [_____________32109876______]
            ((((int)in.get(21 + inPos)) <<  6) & 16383)
        | //                                     [76543210]
          //                                [_____10987654______________]
            ((((int)in.get(22 + inPos)) <<  14) & 4194303)
        | //                                     [___43210]
          //                                        [65432______________________]
            ((((int)in.get(23 + inPos)) <<  22) & 134217727);
      out[ 7 + outPos] =
          //                                     [765_____]
          //             [________________________210]
            ((((int)in.get(23 + inPos)) >>  5) & 7)
        | //                                     [76543210]
          //                     [________________09876543___]
            ((((int)in.get(24 + inPos)) <<  3) & 2047)
        | //                                     [76543210]
          //                             [________87654321___________]
            ((((int)in.get(25 + inPos)) <<  11) & 524287)
        | //                                     [76543210]
          //                                     [65432109___________________]
            ((((int)in.get(26 + inPos)) <<  19) & 134217727);
    }
    public final void unpack32Values(final byte[] in, final int inPos, final int[] out, final int outPos) {
      out[ 0 + outPos] =
          //                                     [76543210]
          //                  [___________________76543210]
            ((((int)in[ 0 + inPos]) ) & 255)
        | //                                     [76543210]
          //                          [___________54321098________]
            ((((int)in[ 1 + inPos]) <<  8) & 65535)
        | //                                     [76543210]
          //                                  [___32109876________________]
            ((((int)in[ 2 + inPos]) <<  16) & 16777215)
        | //                                     [_____210]
          //                                          [654________________________]
            ((((int)in[ 3 + inPos]) <<  24) & 134217727);
      out[ 1 + outPos] =
          //                                     [76543___]
          //               [______________________43210]
            ((((int)in[ 3 + inPos]) >>  3) & 31)
        | //                                     [76543210]
          //                       [______________21098765_____]
            ((((int)in[ 4 + inPos]) <<  5) & 8191)
        | //                                     [76543210]
          //                               [______09876543_____________]
            ((((int)in[ 5 + inPos]) <<  13) & 2097151)
        | //                                     [__543210]
          //                                       [654321_____________________]
            ((((int)in[ 6 + inPos]) <<  21) & 134217727);
      out[ 2 + outPos] =
          //                                     [76______]
          //            [_________________________10]
            ((((int)in[ 6 + inPos]) >>  6) & 3)
        | //                                     [76543210]
          //                    [_________________98765432__]
            ((((int)in[ 7 + inPos]) <<  2) & 1023)
        | //                                     [76543210]
          //                            [_________76543210__________]
            ((((int)in[ 8 + inPos]) <<  10) & 262143)
        | //                                     [76543210]
          //                                    [_54321098__________________]
            ((((int)in[ 9 + inPos]) <<  18) & 67108863)
        | //                                     [_______0]
          //                                            [6__________________________]
            ((((int)in[10 + inPos]) <<  26) & 134217727);
      out[ 3 + outPos] =
          //                                     [7654321_]
          //                 [____________________6543210]
            ((((int)in[10 + inPos]) >>  1) & 127)
        | //                                     [76543210]
          //                         [____________43210987_______]
            ((((int)in[11 + inPos]) <<  7) & 32767)
        | //                                     [76543210]
          //                                 [____21098765_______________]
            ((((int)in[12 + inPos]) <<  15) & 8388607)
        | //                                     [____3210]
          //                                         [6543_______________________]
            ((((int)in[13 + inPos]) <<  23) & 134217727);
      out[ 4 + outPos] =
          //                                     [7654____]
          //              [_______________________3210]
            ((((int)in[13 + inPos]) >>  4) & 15)
        | //                                     [76543210]
          //                      [_______________10987654____]
            ((((int)in[14 + inPos]) <<  4) & 4095)
        | //                                     [76543210]
          //                              [_______98765432____________]
            ((((int)in[15 + inPos]) <<  12) & 1048575)
        | //                                     [_6543210]
          //                                      [6543210____________________]
            ((((int)in[16 + inPos]) <<  20) & 134217727);
      out[ 5 + outPos] =
          //                                     [7_______]
          //           [__________________________0]
            ((((int)in[16 + inPos]) >>  7) & 1)
        | //                                     [76543210]
          //                   [__________________87654321_]
            ((((int)in[17 + inPos]) <<  1) & 511)
        | //                                     [76543210]
          //                           [__________65432109_________]
            ((((int)in[18 + inPos]) <<  9) & 131071)
        | //                                     [76543210]
          //                                   [__43210987_________________]
            ((((int)in[19 + inPos]) <<  17) & 33554431)
        | //                                     [______10]
          //                                           [65_________________________]
            ((((int)in[20 + inPos]) <<  25) & 134217727);
      out[ 6 + outPos] =
          //                                     [765432__]
          //                [_____________________543210]
            ((((int)in[20 + inPos]) >>  2) & 63)
        | //                                     [76543210]
          //                        [_____________32109876______]
            ((((int)in[21 + inPos]) <<  6) & 16383)
        | //                                     [76543210]
          //                                [_____10987654______________]
            ((((int)in[22 + inPos]) <<  14) & 4194303)
        | //                                     [___43210]
          //                                        [65432______________________]
            ((((int)in[23 + inPos]) <<  22) & 134217727);
      out[ 7 + outPos] =
          //                                     [765_____]
          //             [________________________210]
            ((((int)in[23 + inPos]) >>  5) & 7)
        | //                                     [76543210]
          //                     [________________09876543___]
            ((((int)in[24 + inPos]) <<  3) & 2047)
        | //                                     [76543210]
          //                             [________87654321___________]
            ((((int)in[25 + inPos]) <<  11) & 524287)
        | //                                     [76543210]
          //                                     [65432109___________________]
            ((((int)in[26 + inPos]) <<  19) & 134217727);
      out[ 8 + outPos] =
          //                                     [76543210]
          //                  [___________________76543210]
            ((((int)in[27 + inPos]) ) & 255)
        | //                                     [76543210]
          //                          [___________54321098________]
            ((((int)in[28 + inPos]) <<  8) & 65535)
        | //                                     [76543210]
          //                                  [___32109876________________]
            ((((int)in[29 + inPos]) <<  16) & 16777215)
        | //                                     [_____210]
          //                                          [654________________________]
            ((((int)in[30 + inPos]) <<  24) & 134217727);
      out[ 9 + outPos] =
          //                                     [76543___]
          //               [______________________43210]
            ((((int)in[30 + inPos]) >>  3) & 31)
        | //                                     [76543210]
          //                       [______________21098765_____]
            ((((int)in[31 + inPos]) <<  5) & 8191)
        | //                                     [76543210]
          //                               [______09876543_____________]
            ((((int)in[32 + inPos]) <<  13) & 2097151)
        | //                                     [__543210]
          //                                       [654321_____________________]
            ((((int)in[33 + inPos]) <<  21) & 134217727);
      out[10 + outPos] =
          //                                     [76______]
          //            [_________________________10]
            ((((int)in[33 + inPos]) >>  6) & 3)
        | //                                     [76543210]
          //                    [_________________98765432__]
            ((((int)in[34 + inPos]) <<  2) & 1023)
        | //                                     [76543210]
          //                            [_________76543210__________]
            ((((int)in[35 + inPos]) <<  10) & 262143)
        | //                                     [76543210]
          //                                    [_54321098__________________]
            ((((int)in[36 + inPos]) <<  18) & 67108863)
        | //                                     [_______0]
          //                                            [6__________________________]
            ((((int)in[37 + inPos]) <<  26) & 134217727);
      out[11 + outPos] =
          //                                     [7654321_]
          //                 [____________________6543210]
            ((((int)in[37 + inPos]) >>  1) & 127)
        | //                                     [76543210]
          //                         [____________43210987_______]
            ((((int)in[38 + inPos]) <<  7) & 32767)
        | //                                     [76543210]
          //                                 [____21098765_______________]
            ((((int)in[39 + inPos]) <<  15) & 8388607)
        | //                                     [____3210]
          //                                         [6543_______________________]
            ((((int)in[40 + inPos]) <<  23) & 134217727);
      out[12 + outPos] =
          //                                     [7654____]
          //              [_______________________3210]
            ((((int)in[40 + inPos]) >>  4) & 15)
        | //                                     [76543210]
          //                      [_______________10987654____]
            ((((int)in[41 + inPos]) <<  4) & 4095)
        | //                                     [76543210]
          //                              [_______98765432____________]
            ((((int)in[42 + inPos]) <<  12) & 1048575)
        | //                                     [_6543210]
          //                                      [6543210____________________]
            ((((int)in[43 + inPos]) <<  20) & 134217727);
      out[13 + outPos] =
          //                                     [7_______]
          //           [__________________________0]
            ((((int)in[43 + inPos]) >>  7) & 1)
        | //                                     [76543210]
          //                   [__________________87654321_]
            ((((int)in[44 + inPos]) <<  1) & 511)
        | //                                     [76543210]
          //                           [__________65432109_________]
            ((((int)in[45 + inPos]) <<  9) & 131071)
        | //                                     [76543210]
          //                                   [__43210987_________________]
            ((((int)in[46 + inPos]) <<  17) & 33554431)
        | //                                     [______10]
          //                                           [65_________________________]
            ((((int)in[47 + inPos]) <<  25) & 134217727);
      out[14 + outPos] =
          //                                     [765432__]
          //                [_____________________543210]
            ((((int)in[47 + inPos]) >>  2) & 63)
        | //                                     [76543210]
          //                        [_____________32109876______]
            ((((int)in[48 + inPos]) <<  6) & 16383)
        | //                                     [76543210]
          //                                [_____10987654______________]
            ((((int)in[49 + inPos]) <<  14) & 4194303)
        | //                                     [___43210]
          //                                        [65432______________________]
            ((((int)in[50 + inPos]) <<  22) & 134217727);
      out[15 + outPos] =
          //                                     [765_____]
          //             [________________________210]
            ((((int)in[50 + inPos]) >>  5) & 7)
        | //                                     [76543210]
          //                     [________________09876543___]
            ((((int)in[51 + inPos]) <<  3) & 2047)
        | //                                     [76543210]
          //                             [________87654321___________]
            ((((int)in[52 + inPos]) <<  11) & 524287)
        | //                                     [76543210]
          //                                     [65432109___________________]
            ((((int)in[53 + inPos]) <<  19) & 134217727);
      out[16 + outPos] =
          //                                     [76543210]
          //                  [___________________76543210]
            ((((int)in[54 + inPos]) ) & 255)
        | //                                     [76543210]
          //                          [___________54321098________]
            ((((int)in[55 + inPos]) <<  8) & 65535)
        | //                                     [76543210]
          //                                  [___32109876________________]
            ((((int)in[56 + inPos]) <<  16) & 16777215)
        | //                                     [_____210]
          //                                          [654________________________]
            ((((int)in[57 + inPos]) <<  24) & 134217727);
      out[17 + outPos] =
          //                                     [76543___]
          //               [______________________43210]
            ((((int)in[57 + inPos]) >>  3) & 31)
        | //                                     [76543210]
          //                       [______________21098765_____]
            ((((int)in[58 + inPos]) <<  5) & 8191)
        | //                                     [76543210]
          //                               [______09876543_____________]
            ((((int)in[59 + inPos]) <<  13) & 2097151)
        | //                                     [__543210]
          //                                       [654321_____________________]
            ((((int)in[60 + inPos]) <<  21) & 134217727);
      out[18 + outPos] =
          //                                     [76______]
          //            [_________________________10]
            ((((int)in[60 + inPos]) >>  6) & 3)
        | //                                     [76543210]
          //                    [_________________98765432__]
            ((((int)in[61 + inPos]) <<  2) & 1023)
        | //                                     [76543210]
          //                            [_________76543210__________]
            ((((int)in[62 + inPos]) <<  10) & 262143)
        | //                                     [76543210]
          //                                    [_54321098__________________]
            ((((int)in[63 + inPos]) <<  18) & 67108863)
        | //                                     [_______0]
          //                                            [6__________________________]
            ((((int)in[64 + inPos]) <<  26) & 134217727);
      out[19 + outPos] =
          //                                     [7654321_]
          //                 [____________________6543210]
            ((((int)in[64 + inPos]) >>  1) & 127)
        | //                                     [76543210]
          //                         [____________43210987_______]
            ((((int)in[65 + inPos]) <<  7) & 32767)
        | //                                     [76543210]
          //                                 [____21098765_______________]
            ((((int)in[66 + inPos]) <<  15) & 8388607)
        | //                                     [____3210]
          //                                         [6543_______________________]
            ((((int)in[67 + inPos]) <<  23) & 134217727);
      out[20 + outPos] =
          //                                     [7654____]
          //              [_______________________3210]
            ((((int)in[67 + inPos]) >>  4) & 15)
        | //                                     [76543210]
          //                      [_______________10987654____]
            ((((int)in[68 + inPos]) <<  4) & 4095)
        | //                                     [76543210]
          //                              [_______98765432____________]
            ((((int)in[69 + inPos]) <<  12) & 1048575)
        | //                                     [_6543210]
          //                                      [6543210____________________]
            ((((int)in[70 + inPos]) <<  20) & 134217727);
      out[21 + outPos] =
          //                                     [7_______]
          //           [__________________________0]
            ((((int)in[70 + inPos]) >>  7) & 1)
        | //                                     [76543210]
          //                   [__________________87654321_]
            ((((int)in[71 + inPos]) <<  1) & 511)
        | //                                     [76543210]
          //                           [__________65432109_________]
            ((((int)in[72 + inPos]) <<  9) & 131071)
        | //                                     [76543210]
          //                                   [__43210987_________________]
            ((((int)in[73 + inPos]) <<  17) & 33554431)
        | //                                     [______10]
          //                                           [65_________________________]
            ((((int)in[74 + inPos]) <<  25) & 134217727);
      out[22 + outPos] =
          //                                     [765432__]
          //                [_____________________543210]
            ((((int)in[74 + inPos]) >>  2) & 63)
        | //                                     [76543210]
          //                        [_____________32109876______]
            ((((int)in[75 + inPos]) <<  6) & 16383)
        | //                                     [76543210]
          //                                [_____10987654______________]
            ((((int)in[76 + inPos]) <<  14) & 4194303)
        | //                                     [___43210]
          //                                        [65432______________________]
            ((((int)in[77 + inPos]) <<  22) & 134217727);
      out[23 + outPos] =
          //                                     [765_____]
          //             [________________________210]
            ((((int)in[77 + inPos]) >>  5) & 7)
        | //                                     [76543210]
          //                     [________________09876543___]
            ((((int)in[78 + inPos]) <<  3) & 2047)
        | //                                     [76543210]
          //                             [________87654321___________]
            ((((int)in[79 + inPos]) <<  11) & 524287)
        | //                                     [76543210]
          //                                     [65432109___________________]
            ((((int)in[80 + inPos]) <<  19) & 134217727);
      out[24 + outPos] =
          //                                     [76543210]
          //                  [___________________76543210]
            ((((int)in[81 + inPos]) ) & 255)
        | //                                     [76543210]
          //                          [___________54321098________]
            ((((int)in[82 + inPos]) <<  8) & 65535)
        | //                                     [76543210]
          //                                  [___32109876________________]
            ((((int)in[83 + inPos]) <<  16) & 16777215)
        | //                                     [_____210]
          //                                          [654________________________]
            ((((int)in[84 + inPos]) <<  24) & 134217727);
      out[25 + outPos] =
          //                                     [76543___]
          //               [______________________43210]
            ((((int)in[84 + inPos]) >>  3) & 31)
        | //                                     [76543210]
          //                       [______________21098765_____]
            ((((int)in[85 + inPos]) <<  5) & 8191)
        | //                                     [76543210]
          //                               [______09876543_____________]
            ((((int)in[86 + inPos]) <<  13) & 2097151)
        | //                                     [__543210]
          //                                       [654321_____________________]
            ((((int)in[87 + inPos]) <<  21) & 134217727);
      out[26 + outPos] =
          //                                     [76______]
          //            [_________________________10]
            ((((int)in[87 + inPos]) >>  6) & 3)
        | //                                     [76543210]
          //                    [_________________98765432__]
            ((((int)in[88 + inPos]) <<  2) & 1023)
        | //                                     [76543210]
          //                            [_________76543210__________]
            ((((int)in[89 + inPos]) <<  10) & 262143)
        | //                                     [76543210]
          //                                    [_54321098__________________]
            ((((int)in[90 + inPos]) <<  18) & 67108863)
        | //                                     [_______0]
          //                                            [6__________________________]
            ((((int)in[91 + inPos]) <<  26) & 134217727);
      out[27 + outPos] =
          //                                     [7654321_]
          //                 [____________________6543210]
            ((((int)in[91 + inPos]) >>  1) & 127)
        | //                                     [76543210]
          //                         [____________43210987_______]
            ((((int)in[92 + inPos]) <<  7) & 32767)
        | //                                     [76543210]
          //                                 [____21098765_______________]
            ((((int)in[93 + inPos]) <<  15) & 8388607)
        | //                                     [____3210]
          //                                         [6543_______________________]
            ((((int)in[94 + inPos]) <<  23) & 134217727);
      out[28 + outPos] =
          //                                     [7654____]
          //              [_______________________3210]
            ((((int)in[94 + inPos]) >>  4) & 15)
        | //                                     [76543210]
          //                      [_______________10987654____]
            ((((int)in[95 + inPos]) <<  4) & 4095)
        | //                                     [76543210]
          //                              [_______98765432____________]
            ((((int)in[96 + inPos]) <<  12) & 1048575)
        | //                                     [_6543210]
          //                                      [6543210____________________]
            ((((int)in[97 + inPos]) <<  20) & 134217727);
      out[29 + outPos] =
          //                                     [7_______]
          //           [__________________________0]
            ((((int)in[97 + inPos]) >>  7) & 1)
        | //                                     [76543210]
          //                   [__________________87654321_]
            ((((int)in[98 + inPos]) <<  1) & 511)
        | //                                     [76543210]
          //                           [__________65432109_________]
            ((((int)in[99 + inPos]) <<  9) & 131071)
        | //                                     [76543210]
          //                                   [__43210987_________________]
            ((((int)in[100 + inPos]) <<  17) & 33554431)
        | //                                     [______10]
          //                                           [65_________________________]
            ((((int)in[101 + inPos]) <<  25) & 134217727);
      out[30 + outPos] =
          //                                     [765432__]
          //                [_____________________543210]
            ((((int)in[101 + inPos]) >>  2) & 63)
        | //                                     [76543210]
          //                        [_____________32109876______]
            ((((int)in[102 + inPos]) <<  6) & 16383)
        | //                                     [76543210]
          //                                [_____10987654______________]
            ((((int)in[103 + inPos]) <<  14) & 4194303)
        | //                                     [___43210]
          //                                        [65432______________________]
            ((((int)in[104 + inPos]) <<  22) & 134217727);
      out[31 + outPos] =
          //                                     [765_____]
          //             [________________________210]
            ((((int)in[104 + inPos]) >>  5) & 7)
        | //                                     [76543210]
          //                     [________________09876543___]
            ((((int)in[105 + inPos]) <<  3) & 2047)
        | //                                     [76543210]
          //                             [________87654321___________]
            ((((int)in[106 + inPos]) <<  11) & 524287)
        | //                                     [76543210]
          //                                     [65432109___________________]
            ((((int)in[107 + inPos]) <<  19) & 134217727);
    }
    public final void unpack32Values(final ByteBuffer in, final int inPos, final int[] out, final int outPos) {
      out[ 0 + outPos] =
          //                                     [76543210]
          //                  [___________________76543210]
            ((((int)in.get( 0 + inPos)) ) & 255)
        | //                                     [76543210]
          //                          [___________54321098________]
            ((((int)in.get( 1 + inPos)) <<  8) & 65535)
        | //                                     [76543210]
          //                                  [___32109876________________]
            ((((int)in.get( 2 + inPos)) <<  16) & 16777215)
        | //                                     [_____210]
          //                                          [654________________________]
            ((((int)in.get( 3 + inPos)) <<  24) & 134217727);
      out[ 1 + outPos] =
          //                                     [76543___]
          //               [______________________43210]
            ((((int)in.get( 3 + inPos)) >>  3) & 31)
        | //                                     [76543210]
          //                       [______________21098765_____]
            ((((int)in.get( 4 + inPos)) <<  5) & 8191)
        | //                                     [76543210]
          //                               [______09876543_____________]
            ((((int)in.get( 5 + inPos)) <<  13) & 2097151)
        | //                                     [__543210]
          //                                       [654321_____________________]
            ((((int)in.get( 6 + inPos)) <<  21) & 134217727);
      out[ 2 + outPos] =
          //                                     [76______]
          //            [_________________________10]
            ((((int)in.get( 6 + inPos)) >>  6) & 3)
        | //                                     [76543210]
          //                    [_________________98765432__]
            ((((int)in.get( 7 + inPos)) <<  2) & 1023)
        | //                                     [76543210]
          //                            [_________76543210__________]
            ((((int)in.get( 8 + inPos)) <<  10) & 262143)
        | //                                     [76543210]
          //                                    [_54321098__________________]
            ((((int)in.get( 9 + inPos)) <<  18) & 67108863)
        | //                                     [_______0]
          //                                            [6__________________________]
            ((((int)in.get(10 + inPos)) <<  26) & 134217727);
      out[ 3 + outPos] =
          //                                     [7654321_]
          //                 [____________________6543210]
            ((((int)in.get(10 + inPos)) >>  1) & 127)
        | //                                     [76543210]
          //                         [____________43210987_______]
            ((((int)in.get(11 + inPos)) <<  7) & 32767)
        | //                                     [76543210]
          //                                 [____21098765_______________]
            ((((int)in.get(12 + inPos)) <<  15) & 8388607)
        | //                                     [____3210]
          //                                         [6543_______________________]
            ((((int)in.get(13 + inPos)) <<  23) & 134217727);
      out[ 4 + outPos] =
          //                                     [7654____]
          //              [_______________________3210]
            ((((int)in.get(13 + inPos)) >>  4) & 15)
        | //                                     [76543210]
          //                      [_______________10987654____]
            ((((int)in.get(14 + inPos)) <<  4) & 4095)
        | //                                     [76543210]
          //                              [_______98765432____________]
            ((((int)in.get(15 + inPos)) <<  12) & 1048575)
        | //                                     [_6543210]
          //                                      [6543210____________________]
            ((((int)in.get(16 + inPos)) <<  20) & 134217727);
      out[ 5 + outPos] =
          //                                     [7_______]
          //           [__________________________0]
            ((((int)in.get(16 + inPos)) >>  7) & 1)
        | //                                     [76543210]
          //                   [__________________87654321_]
            ((((int)in.get(17 + inPos)) <<  1) & 511)
        | //                                     [76543210]
          //                           [__________65432109_________]
            ((((int)in.get(18 + inPos)) <<  9) & 131071)
        | //                                     [76543210]
          //                                   [__43210987_________________]
            ((((int)in.get(19 + inPos)) <<  17) & 33554431)
        | //                                     [______10]
          //                                           [65_________________________]
            ((((int)in.get(20 + inPos)) <<  25) & 134217727);
      out[ 6 + outPos] =
          //                                     [765432__]
          //                [_____________________543210]
            ((((int)in.get(20 + inPos)) >>  2) & 63)
        | //                                     [76543210]
          //                        [_____________32109876______]
            ((((int)in.get(21 + inPos)) <<  6) & 16383)
        | //                                     [76543210]
          //                                [_____10987654______________]
            ((((int)in.get(22 + inPos)) <<  14) & 4194303)
        | //                                     [___43210]
          //                                        [65432______________________]
            ((((int)in.get(23 + inPos)) <<  22) & 134217727);
      out[ 7 + outPos] =
          //                                     [765_____]
          //             [________________________210]
            ((((int)in.get(23 + inPos)) >>  5) & 7)
        | //                                     [76543210]
          //                     [________________09876543___]
            ((((int)in.get(24 + inPos)) <<  3) & 2047)
        | //                                     [76543210]
          //                             [________87654321___________]
            ((((int)in.get(25 + inPos)) <<  11) & 524287)
        | //                                     [76543210]
          //                                     [65432109___________________]
            ((((int)in.get(26 + inPos)) <<  19) & 134217727);
      out[ 8 + outPos] =
          //                                     [76543210]
          //                  [___________________76543210]
            ((((int)in.get(27 + inPos)) ) & 255)
        | //                                     [76543210]
          //                          [___________54321098________]
            ((((int)in.get(28 + inPos)) <<  8) & 65535)
        | //                                     [76543210]
          //                                  [___32109876________________]
            ((((int)in.get(29 + inPos)) <<  16) & 16777215)
        | //                                     [_____210]
          //                                          [654________________________]
            ((((int)in.get(30 + inPos)) <<  24) & 134217727);
      out[ 9 + outPos] =
          //                                     [76543___]
          //               [______________________43210]
            ((((int)in.get(30 + inPos)) >>  3) & 31)
        | //                                     [76543210]
          //                       [______________21098765_____]
            ((((int)in.get(31 + inPos)) <<  5) & 8191)
        | //                                     [76543210]
          //                               [______09876543_____________]
            ((((int)in.get(32 + inPos)) <<  13) & 2097151)
        | //                                     [__543210]
          //                                       [654321_____________________]
            ((((int)in.get(33 + inPos)) <<  21) & 134217727);
      out[10 + outPos] =
          //                                     [76______]
          //            [_________________________10]
            ((((int)in.get(33 + inPos)) >>  6) & 3)
        | //                                     [76543210]
          //                    [_________________98765432__]
            ((((int)in.get(34 + inPos)) <<  2) & 1023)
        | //                                     [76543210]
          //                            [_________76543210__________]
            ((((int)in.get(35 + inPos)) <<  10) & 262143)
        | //                                     [76543210]
          //                                    [_54321098__________________]
            ((((int)in.get(36 + inPos)) <<  18) & 67108863)
        | //                                     [_______0]
          //                                            [6__________________________]
            ((((int)in.get(37 + inPos)) <<  26) & 134217727);
      out[11 + outPos] =
          //                                     [7654321_]
          //                 [____________________6543210]
            ((((int)in.get(37 + inPos)) >>  1) & 127)
        | //                                     [76543210]
          //                         [____________43210987_______]
            ((((int)in.get(38 + inPos)) <<  7) & 32767)
        | //                                     [76543210]
          //                                 [____21098765_______________]
            ((((int)in.get(39 + inPos)) <<  15) & 8388607)
        | //                                     [____3210]
          //                                         [6543_______________________]
            ((((int)in.get(40 + inPos)) <<  23) & 134217727);
      out[12 + outPos] =
          //                                     [7654____]
          //              [_______________________3210]
            ((((int)in.get(40 + inPos)) >>  4) & 15)
        | //                                     [76543210]
          //                      [_______________10987654____]
            ((((int)in.get(41 + inPos)) <<  4) & 4095)
        | //                                     [76543210]
          //                              [_______98765432____________]
            ((((int)in.get(42 + inPos)) <<  12) & 1048575)
        | //                                     [_6543210]
          //                                      [6543210____________________]
            ((((int)in.get(43 + inPos)) <<  20) & 134217727);
      out[13 + outPos] =
          //                                     [7_______]
          //           [__________________________0]
            ((((int)in.get(43 + inPos)) >>  7) & 1)
        | //                                     [76543210]
          //                   [__________________87654321_]
            ((((int)in.get(44 + inPos)) <<  1) & 511)
        | //                                     [76543210]
          //                           [__________65432109_________]
            ((((int)in.get(45 + inPos)) <<  9) & 131071)
        | //                                     [76543210]
          //                                   [__43210987_________________]
            ((((int)in.get(46 + inPos)) <<  17) & 33554431)
        | //                                     [______10]
          //                                           [65_________________________]
            ((((int)in.get(47 + inPos)) <<  25) & 134217727);
      out[14 + outPos] =
          //                                     [765432__]
          //                [_____________________543210]
            ((((int)in.get(47 + inPos)) >>  2) & 63)
        | //                                     [76543210]
          //                        [_____________32109876______]
            ((((int)in.get(48 + inPos)) <<  6) & 16383)
        | //                                     [76543210]
          //                                [_____10987654______________]
            ((((int)in.get(49 + inPos)) <<  14) & 4194303)
        | //                                     [___43210]
          //                                        [65432______________________]
            ((((int)in.get(50 + inPos)) <<  22) & 134217727);
      out[15 + outPos] =
          //                                     [765_____]
          //             [________________________210]
            ((((int)in.get(50 + inPos)) >>  5) & 7)
        | //                                     [76543210]
          //                     [________________09876543___]
            ((((int)in.get(51 + inPos)) <<  3) & 2047)
        | //                                     [76543210]
          //                             [________87654321___________]
            ((((int)in.get(52 + inPos)) <<  11) & 524287)
        | //                                     [76543210]
          //                                     [65432109___________________]
            ((((int)in.get(53 + inPos)) <<  19) & 134217727);
      out[16 + outPos] =
          //                                     [76543210]
          //                  [___________________76543210]
            ((((int)in.get(54 + inPos)) ) & 255)
        | //                                     [76543210]
          //                          [___________54321098________]
            ((((int)in.get(55 + inPos)) <<  8) & 65535)
        | //                                     [76543210]
          //                                  [___32109876________________]
            ((((int)in.get(56 + inPos)) <<  16) & 16777215)
        | //                                     [_____210]
          //                                          [654________________________]
            ((((int)in.get(57 + inPos)) <<  24) & 134217727);
      out[17 + outPos] =
          //                                     [76543___]
          //               [______________________43210]
            ((((int)in.get(57 + inPos)) >>  3) & 31)
        | //                                     [76543210]
          //                       [______________21098765_____]
            ((((int)in.get(58 + inPos)) <<  5) & 8191)
        | //                                     [76543210]
          //                               [______09876543_____________]
            ((((int)in.get(59 + inPos)) <<  13) & 2097151)
        | //                                     [__543210]
          //                                       [654321_____________________]
            ((((int)in.get(60 + inPos)) <<  21) & 134217727);
      out[18 + outPos] =
          //                                     [76______]
          //            [_________________________10]
            ((((int)in.get(60 + inPos)) >>  6) & 3)
        | //                                     [76543210]
          //                    [_________________98765432__]
            ((((int)in.get(61 + inPos)) <<  2) & 1023)
        | //                                     [76543210]
          //                            [_________76543210__________]
            ((((int)in.get(62 + inPos)) <<  10) & 262143)
        | //                                     [76543210]
          //                                    [_54321098__________________]
            ((((int)in.get(63 + inPos)) <<  18) & 67108863)
        | //                                     [_______0]
          //                                            [6__________________________]
            ((((int)in.get(64 + inPos)) <<  26) & 134217727);
      out[19 + outPos] =
          //                                     [7654321_]
          //                 [____________________6543210]
            ((((int)in.get(64 + inPos)) >>  1) & 127)
        | //                                     [76543210]
          //                         [____________43210987_______]
            ((((int)in.get(65 + inPos)) <<  7) & 32767)
        | //                                     [76543210]
          //                                 [____21098765_______________]
            ((((int)in.get(66 + inPos)) <<  15) & 8388607)
        | //                                     [____3210]
          //                                         [6543_______________________]
            ((((int)in.get(67 + inPos)) <<  23) & 134217727);
      out[20 + outPos] =
          //                                     [7654____]
          //              [_______________________3210]
            ((((int)in.get(67 + inPos)) >>  4) & 15)
        | //                                     [76543210]
          //                      [_______________10987654____]
            ((((int)in.get(68 + inPos)) <<  4) & 4095)
        | //                                     [76543210]
          //                              [_______98765432____________]
            ((((int)in.get(69 + inPos)) <<  12) & 1048575)
        | //                                     [_6543210]
          //                                      [6543210____________________]
            ((((int)in.get(70 + inPos)) <<  20) & 134217727);
      out[21 + outPos] =
          //                                     [7_______]
          //           [__________________________0]
            ((((int)in.get(70 + inPos)) >>  7) & 1)
        | //                                     [76543210]
          //                   [__________________87654321_]
            ((((int)in.get(71 + inPos)) <<  1) & 511)
        | //                                     [76543210]
          //                           [__________65432109_________]
            ((((int)in.get(72 + inPos)) <<  9) & 131071)
        | //                                     [76543210]
          //                                   [__43210987_________________]
            ((((int)in.get(73 + inPos)) <<  17) & 33554431)
        | //                                     [______10]
          //                                           [65_________________________]
            ((((int)in.get(74 + inPos)) <<  25) & 134217727);
      out[22 + outPos] =
          //                                     [765432__]
          //                [_____________________543210]
            ((((int)in.get(74 + inPos)) >>  2) & 63)
        | //                                     [76543210]
          //                        [_____________32109876______]
            ((((int)in.get(75 + inPos)) <<  6) & 16383)
        | //                                     [76543210]
          //                                [_____10987654______________]
            ((((int)in.get(76 + inPos)) <<  14) & 4194303)
        | //                                     [___43210]
          //                                        [65432______________________]
            ((((int)in.get(77 + inPos)) <<  22) & 134217727);
      out[23 + outPos] =
          //                                     [765_____]
          //             [________________________210]
            ((((int)in.get(77 + inPos)) >>  5) & 7)
        | //                                     [76543210]
          //                     [________________09876543___]
            ((((int)in.get(78 + inPos)) <<  3) & 2047)
        | //                                     [76543210]
          //                             [________87654321___________]
            ((((int)in.get(79 + inPos)) <<  11) & 524287)
        | //                                     [76543210]
          //                                     [65432109___________________]
            ((((int)in.get(80 + inPos)) <<  19) & 134217727);
      out[24 + outPos] =
          //                                     [76543210]
          //                  [___________________76543210]
            ((((int)in.get(81 + inPos)) ) & 255)
        | //                                     [76543210]
          //                          [___________54321098________]
            ((((int)in.get(82 + inPos)) <<  8) & 65535)
        | //                                     [76543210]
          //                                  [___32109876________________]
            ((((int)in.get(83 + inPos)) <<  16) & 16777215)
        | //                                     [_____210]
          //                                          [654________________________]
            ((((int)in.get(84 + inPos)) <<  24) & 134217727);
      out[25 + outPos] =
          //                                     [76543___]
          //               [______________________43210]
            ((((int)in.get(84 + inPos)) >>  3) & 31)
        | //                                     [76543210]
          //                       [______________21098765_____]
            ((((int)in.get(85 + inPos)) <<  5) & 8191)
        | //                                     [76543210]
          //                               [______09876543_____________]
            ((((int)in.get(86 + inPos)) <<  13) & 2097151)
        | //                                     [__543210]
          //                                       [654321_____________________]
            ((((int)in.get(87 + inPos)) <<  21) & 134217727);
      out[26 + outPos] =
          //                                     [76______]
          //            [_________________________10]
            ((((int)in.get(87 + inPos)) >>  6) & 3)
        | //                                     [76543210]
          //                    [_________________98765432__]
            ((((int)in.get(88 + inPos)) <<  2) & 1023)
        | //                                     [76543210]
          //                            [_________76543210__________]
            ((((int)in.get(89 + inPos)) <<  10) & 262143)
        | //                                     [76543210]
          //                                    [_54321098__________________]
            ((((int)in.get(90 + inPos)) <<  18) & 67108863)
        | //                                     [_______0]
          //                                            [6__________________________]
            ((((int)in.get(91 + inPos)) <<  26) & 134217727);
      out[27 + outPos] =
          //                                     [7654321_]
          //                 [____________________6543210]
            ((((int)in.get(91 + inPos)) >>  1) & 127)
        | //                                     [76543210]
          //                         [____________43210987_______]
            ((((int)in.get(92 + inPos)) <<  7) & 32767)
        | //                                     [76543210]
          //                                 [____21098765_______________]
            ((((int)in.get(93 + inPos)) <<  15) & 8388607)
        | //                                     [____3210]
          //                                         [6543_______________________]
            ((((int)in.get(94 + inPos)) <<  23) & 134217727);
      out[28 + outPos] =
          //                                     [7654____]
          //              [_______________________3210]
            ((((int)in.get(94 + inPos)) >>  4) & 15)
        | //                                     [76543210]
          //                      [_______________10987654____]
            ((((int)in.get(95 + inPos)) <<  4) & 4095)
        | //                                     [76543210]
          //                              [_______98765432____________]
            ((((int)in.get(96 + inPos)) <<  12) & 1048575)
        | //                                     [_6543210]
          //                                      [6543210____________________]
            ((((int)in.get(97 + inPos)) <<  20) & 134217727);
      out[29 + outPos] =
          //                                     [7_______]
          //           [__________________________0]
            ((((int)in.get(97 + inPos)) >>  7) & 1)
        | //                                     [76543210]
          //                   [__________________87654321_]
            ((((int)in.get(98 + inPos)) <<  1) & 511)
        | //                                     [76543210]
          //                           [__________65432109_________]
            ((((int)in.get(99 + inPos)) <<  9) & 131071)
        | //                                     [76543210]
          //                                   [__43210987_________________]
            ((((int)in.get(100 + inPos)) <<  17) & 33554431)
        | //                                     [______10]
          //                                           [65_________________________]
            ((((int)in.get(101 + inPos)) <<  25) & 134217727);
      out[30 + outPos] =
          //                                     [765432__]
          //                [_____________________543210]
            ((((int)in.get(101 + inPos)) >>  2) & 63)
        | //                                     [76543210]
          //                        [_____________32109876______]
            ((((int)in.get(102 + inPos)) <<  6) & 16383)
        | //                                     [76543210]
          //                                [_____10987654______________]
            ((((int)in.get(103 + inPos)) <<  14) & 4194303)
        | //                                     [___43210]
          //                                        [65432______________________]
            ((((int)in.get(104 + inPos)) <<  22) & 134217727);
      out[31 + outPos] =
          //                                     [765_____]
          //             [________________________210]
            ((((int)in.get(104 + inPos)) >>  5) & 7)
        | //                                     [76543210]
          //                     [________________09876543___]
            ((((int)in.get(105 + inPos)) <<  3) & 2047)
        | //                                     [76543210]
          //                             [________87654321___________]
            ((((int)in.get(106 + inPos)) <<  11) & 524287)
        | //                                     [76543210]
          //                                     [65432109___________________]
            ((((int)in.get(107 + inPos)) <<  19) & 134217727);
    }
  }

  private static final class Packer28 extends BytePacker {

    private Packer28() {
      super(28);
    }

    public final void pack8Values(final int[] in, final int inPos, final byte[] out, final int outPos) {
      out[ 0 + outPos] = (byte)((
          //                                      [76543210]
          //                  [____________________76543210]
           ((in[ 0 + inPos] & 268435455))) & 255);
      out[ 1 + outPos] = (byte)((
          //                                      [76543210]
          //                          [____________54321098________]
           ((in[ 0 + inPos] & 268435455) >>> 8)) & 255);
      out[ 2 + outPos] = (byte)((
          //                                      [76543210]
          //                                  [____32109876________________]
           ((in[ 0 + inPos] & 268435455) >>> 16)) & 255);
      out[ 3 + outPos] = (byte)((
          //                                      [____3210]
          //                                          [7654________________________]
           ((in[ 0 + inPos] & 268435455) >>> 24)
        | //                                      [7654____]
          //              [________________________3210]
           ((in[ 1 + inPos] & 268435455) <<  4)) & 255);
      out[ 4 + outPos] = (byte)((
          //                                      [76543210]
          //                      [________________10987654____]
           ((in[ 1 + inPos] & 268435455) >>> 4)) & 255);
      out[ 5 + outPos] = (byte)((
          //                                      [76543210]
          //                              [________98765432____________]
           ((in[ 1 + inPos] & 268435455) >>> 12)) & 255);
      out[ 6 + outPos] = (byte)((
          //                                      [76543210]
          //                                      [76543210____________________]
           ((in[ 1 + inPos] & 268435455) >>> 20)) & 255);
      out[ 7 + outPos] = (byte)((
          //                                      [76543210]
          //                  [____________________76543210]
           ((in[ 2 + inPos] & 268435455))) & 255);
      out[ 8 + outPos] = (byte)((
          //                                      [76543210]
          //                          [____________54321098________]
           ((in[ 2 + inPos] & 268435455) >>> 8)) & 255);
      out[ 9 + outPos] = (byte)((
          //                                      [76543210]
          //                                  [____32109876________________]
           ((in[ 2 + inPos] & 268435455) >>> 16)) & 255);
      out[10 + outPos] = (byte)((
          //                                      [____3210]
          //                                          [7654________________________]
           ((in[ 2 + inPos] & 268435455) >>> 24)
        | //                                      [7654____]
          //              [________________________3210]
           ((in[ 3 + inPos] & 268435455) <<  4)) & 255);
      out[11 + outPos] = (byte)((
          //                                      [76543210]
          //                      [________________10987654____]
           ((in[ 3 + inPos] & 268435455) >>> 4)) & 255);
      out[12 + outPos] = (byte)((
          //                                      [76543210]
          //                              [________98765432____________]
           ((in[ 3 + inPos] & 268435455) >>> 12)) & 255);
      out[13 + outPos] = (byte)((
          //                                      [76543210]
          //                                      [76543210____________________]
           ((in[ 3 + inPos] & 268435455) >>> 20)) & 255);
      out[14 + outPos] = (byte)((
          //                                      [76543210]
          //                  [____________________76543210]
           ((in[ 4 + inPos] & 268435455))) & 255);
      out[15 + outPos] = (byte)((
          //                                      [76543210]
          //                          [____________54321098________]
           ((in[ 4 + inPos] & 268435455) >>> 8)) & 255);
      out[16 + outPos] = (byte)((
          //                                      [76543210]
          //                                  [____32109876________________]
           ((in[ 4 + inPos] & 268435455) >>> 16)) & 255);
      out[17 + outPos] = (byte)((
          //                                      [____3210]
          //                                          [7654________________________]
           ((in[ 4 + inPos] & 268435455) >>> 24)
        | //                                      [7654____]
          //              [________________________3210]
           ((in[ 5 + inPos] & 268435455) <<  4)) & 255);
      out[18 + outPos] = (byte)((
          //                                      [76543210]
          //                      [________________10987654____]
           ((in[ 5 + inPos] & 268435455) >>> 4)) & 255);
      out[19 + outPos] = (byte)((
          //                                      [76543210]
          //                              [________98765432____________]
           ((in[ 5 + inPos] & 268435455) >>> 12)) & 255);
      out[20 + outPos] = (byte)((
          //                                      [76543210]
          //                                      [76543210____________________]
           ((in[ 5 + inPos] & 268435455) >>> 20)) & 255);
      out[21 + outPos] = (byte)((
          //                                      [76543210]
          //                  [____________________76543210]
           ((in[ 6 + inPos] & 268435455))) & 255);
      out[22 + outPos] = (byte)((
          //                                      [76543210]
          //                          [____________54321098________]
           ((in[ 6 + inPos] & 268435455) >>> 8)) & 255);
      out[23 + outPos] = (byte)((
          //                                      [76543210]
          //                                  [____32109876________________]
           ((in[ 6 + inPos] & 268435455) >>> 16)) & 255);
      out[24 + outPos] = (byte)((
          //                                      [____3210]
          //                                          [7654________________________]
           ((in[ 6 + inPos] & 268435455) >>> 24)
        | //                                      [7654____]
          //              [________________________3210]
           ((in[ 7 + inPos] & 268435455) <<  4)) & 255);
      out[25 + outPos] = (byte)((
          //                                      [76543210]
          //                      [________________10987654____]
           ((in[ 7 + inPos] & 268435455) >>> 4)) & 255);
      out[26 + outPos] = (byte)((
          //                                      [76543210]
          //                              [________98765432____________]
           ((in[ 7 + inPos] & 268435455) >>> 12)) & 255);
      out[27 + outPos] = (byte)((
          //                                      [76543210]
          //                                      [76543210____________________]
           ((in[ 7 + inPos] & 268435455) >>> 20)) & 255);
    }
    public final void pack32Values(final int[] in, final int inPos, final byte[] out, final int outPos) {
      out[ 0 + outPos] = (byte)((
          //                                      [76543210]
          //                  [____________________76543210]
           ((in[ 0 + inPos] & 268435455))) & 255);
      out[ 1 + outPos] = (byte)((
          //                                      [76543210]
          //                          [____________54321098________]
           ((in[ 0 + inPos] & 268435455) >>> 8)) & 255);
      out[ 2 + outPos] = (byte)((
          //                                      [76543210]
          //                                  [____32109876________________]
           ((in[ 0 + inPos] & 268435455) >>> 16)) & 255);
      out[ 3 + outPos] = (byte)((
          //                                      [____3210]
          //                                          [7654________________________]
           ((in[ 0 + inPos] & 268435455) >>> 24)
        | //                                      [7654____]
          //              [________________________3210]
           ((in[ 1 + inPos] & 268435455) <<  4)) & 255);
      out[ 4 + outPos] = (byte)((
          //                                      [76543210]
          //                      [________________10987654____]
           ((in[ 1 + inPos] & 268435455) >>> 4)) & 255);
      out[ 5 + outPos] = (byte)((
          //                                      [76543210]
          //                              [________98765432____________]
           ((in[ 1 + inPos] & 268435455) >>> 12)) & 255);
      out[ 6 + outPos] = (byte)((
          //                                      [76543210]
          //                                      [76543210____________________]
           ((in[ 1 + inPos] & 268435455) >>> 20)) & 255);
      out[ 7 + outPos] = (byte)((
          //                                      [76543210]
          //                  [____________________76543210]
           ((in[ 2 + inPos] & 268435455))) & 255);
      out[ 8 + outPos] = (byte)((
          //                                      [76543210]
          //                          [____________54321098________]
           ((in[ 2 + inPos] & 268435455) >>> 8)) & 255);
      out[ 9 + outPos] = (byte)((
          //                                      [76543210]
          //                                  [____32109876________________]
           ((in[ 2 + inPos] & 268435455) >>> 16)) & 255);
      out[10 + outPos] = (byte)((
          //                                      [____3210]
          //                                          [7654________________________]
           ((in[ 2 + inPos] & 268435455) >>> 24)
        | //                                      [7654____]
          //              [________________________3210]
           ((in[ 3 + inPos] & 268435455) <<  4)) & 255);
      out[11 + outPos] = (byte)((
          //                                      [76543210]
          //                      [________________10987654____]
           ((in[ 3 + inPos] & 268435455) >>> 4)) & 255);
      out[12 + outPos] = (byte)((
          //                                      [76543210]
          //                              [________98765432____________]
           ((in[ 3 + inPos] & 268435455) >>> 12)) & 255);
      out[13 + outPos] = (byte)((
          //                                      [76543210]
          //                                      [76543210____________________]
           ((in[ 3 + inPos] & 268435455) >>> 20)) & 255);
      out[14 + outPos] = (byte)((
          //                                      [76543210]
          //                  [____________________76543210]
           ((in[ 4 + inPos] & 268435455))) & 255);
      out[15 + outPos] = (byte)((
          //                                      [76543210]
          //                          [____________54321098________]
           ((in[ 4 + inPos] & 268435455) >>> 8)) & 255);
      out[16 + outPos] = (byte)((
          //                                      [76543210]
          //                                  [____32109876________________]
           ((in[ 4 + inPos] & 268435455) >>> 16)) & 255);
      out[17 + outPos] = (byte)((
          //                                      [____3210]
          //                                          [7654________________________]
           ((in[ 4 + inPos] & 268435455) >>> 24)
        | //                                      [7654____]
          //              [________________________3210]
           ((in[ 5 + inPos] & 268435455) <<  4)) & 255);
      out[18 + outPos] = (byte)((
          //                                      [76543210]
          //                      [________________10987654____]
           ((in[ 5 + inPos] & 268435455) >>> 4)) & 255);
      out[19 + outPos] = (byte)((
          //                                      [76543210]
          //                              [________98765432____________]
           ((in[ 5 + inPos] & 268435455) >>> 12)) & 255);
      out[20 + outPos] = (byte)((
          //                                      [76543210]
          //                                      [76543210____________________]
           ((in[ 5 + inPos] & 268435455) >>> 20)) & 255);
      out[21 + outPos] = (byte)((
          //                                      [76543210]
          //                  [____________________76543210]
           ((in[ 6 + inPos] & 268435455))) & 255);
      out[22 + outPos] = (byte)((
          //                                      [76543210]
          //                          [____________54321098________]
           ((in[ 6 + inPos] & 268435455) >>> 8)) & 255);
      out[23 + outPos] = (byte)((
          //                                      [76543210]
          //                                  [____32109876________________]
           ((in[ 6 + inPos] & 268435455) >>> 16)) & 255);
      out[24 + outPos] = (byte)((
          //                                      [____3210]
          //                                          [7654________________________]
           ((in[ 6 + inPos] & 268435455) >>> 24)
        | //                                      [7654____]
          //              [________________________3210]
           ((in[ 7 + inPos] & 268435455) <<  4)) & 255);
      out[25 + outPos] = (byte)((
          //                                      [76543210]
          //                      [________________10987654____]
           ((in[ 7 + inPos] & 268435455) >>> 4)) & 255);
      out[26 + outPos] = (byte)((
          //                                      [76543210]
          //                              [________98765432____________]
           ((in[ 7 + inPos] & 268435455) >>> 12)) & 255);
      out[27 + outPos] = (byte)((
          //                                      [76543210]
          //                                      [76543210____________________]
           ((in[ 7 + inPos] & 268435455) >>> 20)) & 255);
      out[28 + outPos] = (byte)((
          //                                      [76543210]
          //                  [____________________76543210]
           ((in[ 8 + inPos] & 268435455))) & 255);
      out[29 + outPos] = (byte)((
          //                                      [76543210]
          //                          [____________54321098________]
           ((in[ 8 + inPos] & 268435455) >>> 8)) & 255);
      out[30 + outPos] = (byte)((
          //                                      [76543210]
          //                                  [____32109876________________]
           ((in[ 8 + inPos] & 268435455) >>> 16)) & 255);
      out[31 + outPos] = (byte)((
          //                                      [____3210]
          //                                          [7654________________________]
           ((in[ 8 + inPos] & 268435455) >>> 24)
        | //                                      [7654____]
          //              [________________________3210]
           ((in[ 9 + inPos] & 268435455) <<  4)) & 255);
      out[32 + outPos] = (byte)((
          //                                      [76543210]
          //                      [________________10987654____]
           ((in[ 9 + inPos] & 268435455) >>> 4)) & 255);
      out[33 + outPos] = (byte)((
          //                                      [76543210]
          //                              [________98765432____________]
           ((in[ 9 + inPos] & 268435455) >>> 12)) & 255);
      out[34 + outPos] = (byte)((
          //                                      [76543210]
          //                                      [76543210____________________]
           ((in[ 9 + inPos] & 268435455) >>> 20)) & 255);
      out[35 + outPos] = (byte)((
          //                                      [76543210]
          //                  [____________________76543210]
           ((in[10 + inPos] & 268435455))) & 255);
      out[36 + outPos] = (byte)((
          //                                      [76543210]
          //                          [____________54321098________]
           ((in[10 + inPos] & 268435455) >>> 8)) & 255);
      out[37 + outPos] = (byte)((
          //                                      [76543210]
          //                                  [____32109876________________]
           ((in[10 + inPos] & 268435455) >>> 16)) & 255);
      out[38 + outPos] = (byte)((
          //                                      [____3210]
          //                                          [7654________________________]
           ((in[10 + inPos] & 268435455) >>> 24)
        | //                                      [7654____]
          //              [________________________3210]
           ((in[11 + inPos] & 268435455) <<  4)) & 255);
      out[39 + outPos] = (byte)((
          //                                      [76543210]
          //                      [________________10987654____]
           ((in[11 + inPos] & 268435455) >>> 4)) & 255);
      out[40 + outPos] = (byte)((
          //                                      [76543210]
          //                              [________98765432____________]
           ((in[11 + inPos] & 268435455) >>> 12)) & 255);
      out[41 + outPos] = (byte)((
          //                                      [76543210]
          //                                      [76543210____________________]
           ((in[11 + inPos] & 268435455) >>> 20)) & 255);
      out[42 + outPos] = (byte)((
          //                                      [76543210]
          //                  [____________________76543210]
           ((in[12 + inPos] & 268435455))) & 255);
      out[43 + outPos] = (byte)((
          //                                      [76543210]
          //                          [____________54321098________]
           ((in[12 + inPos] & 268435455) >>> 8)) & 255);
      out[44 + outPos] = (byte)((
          //                                      [76543210]
          //                                  [____32109876________________]
           ((in[12 + inPos] & 268435455) >>> 16)) & 255);
      out[45 + outPos] = (byte)((
          //                                      [____3210]
          //                                          [7654________________________]
           ((in[12 + inPos] & 268435455) >>> 24)
        | //                                      [7654____]
          //              [________________________3210]
           ((in[13 + inPos] & 268435455) <<  4)) & 255);
      out[46 + outPos] = (byte)((
          //                                      [76543210]
          //                      [________________10987654____]
           ((in[13 + inPos] & 268435455) >>> 4)) & 255);
      out[47 + outPos] = (byte)((
          //                                      [76543210]
          //                              [________98765432____________]
           ((in[13 + inPos] & 268435455) >>> 12)) & 255);
      out[48 + outPos] = (byte)((
          //                                      [76543210]
          //                                      [76543210____________________]
           ((in[13 + inPos] & 268435455) >>> 20)) & 255);
      out[49 + outPos] = (byte)((
          //                                      [76543210]
          //                  [____________________76543210]
           ((in[14 + inPos] & 268435455))) & 255);
      out[50 + outPos] = (byte)((
          //                                      [76543210]
          //                          [____________54321098________]
           ((in[14 + inPos] & 268435455) >>> 8)) & 255);
      out[51 + outPos] = (byte)((
          //                                      [76543210]
          //                                  [____32109876________________]
           ((in[14 + inPos] & 268435455) >>> 16)) & 255);
      out[52 + outPos] = (byte)((
          //                                      [____3210]
          //                                          [7654________________________]
           ((in[14 + inPos] & 268435455) >>> 24)
        | //                                      [7654____]
          //              [________________________3210]
           ((in[15 + inPos] & 268435455) <<  4)) & 255);
      out[53 + outPos] = (byte)((
          //                                      [76543210]
          //                      [________________10987654____]
           ((in[15 + inPos] & 268435455) >>> 4)) & 255);
      out[54 + outPos] = (byte)((
          //                                      [76543210]
          //                              [________98765432____________]
           ((in[15 + inPos] & 268435455) >>> 12)) & 255);
      out[55 + outPos] = (byte)((
          //                                      [76543210]
          //                                      [76543210____________________]
           ((in[15 + inPos] & 268435455) >>> 20)) & 255);
      out[56 + outPos] = (byte)((
          //                                      [76543210]
          //                  [____________________76543210]
           ((in[16 + inPos] & 268435455))) & 255);
      out[57 + outPos] = (byte)((
          //                                      [76543210]
          //                          [____________54321098________]
           ((in[16 + inPos] & 268435455) >>> 8)) & 255);
      out[58 + outPos] = (byte)((
          //                                      [76543210]
          //                                  [____32109876________________]
           ((in[16 + inPos] & 268435455) >>> 16)) & 255);
      out[59 + outPos] = (byte)((
          //                                      [____3210]
          //                                          [7654________________________]
           ((in[16 + inPos] & 268435455) >>> 24)
        | //                                      [7654____]
          //              [________________________3210]
           ((in[17 + inPos] & 268435455) <<  4)) & 255);
      out[60 + outPos] = (byte)((
          //                                      [76543210]
          //                      [________________10987654____]
           ((in[17 + inPos] & 268435455) >>> 4)) & 255);
      out[61 + outPos] = (byte)((
          //                                      [76543210]
          //                              [________98765432____________]
           ((in[17 + inPos] & 268435455) >>> 12)) & 255);
      out[62 + outPos] = (byte)((
          //                                      [76543210]
          //                                      [76543210____________________]
           ((in[17 + inPos] & 268435455) >>> 20)) & 255);
      out[63 + outPos] = (byte)((
          //                                      [76543210]
          //                  [____________________76543210]
           ((in[18 + inPos] & 268435455))) & 255);
      out[64 + outPos] = (byte)((
          //                                      [76543210]
          //                          [____________54321098________]
           ((in[18 + inPos] & 268435455) >>> 8)) & 255);
      out[65 + outPos] = (byte)((
          //                                      [76543210]
          //                                  [____32109876________________]
           ((in[18 + inPos] & 268435455) >>> 16)) & 255);
      out[66 + outPos] = (byte)((
          //                                      [____3210]
          //                                          [7654________________________]
           ((in[18 + inPos] & 268435455) >>> 24)
        | //                                      [7654____]
          //              [________________________3210]
           ((in[19 + inPos] & 268435455) <<  4)) & 255);
      out[67 + outPos] = (byte)((
          //                                      [76543210]
          //                      [________________10987654____]
           ((in[19 + inPos] & 268435455) >>> 4)) & 255);
      out[68 + outPos] = (byte)((
          //                                      [76543210]
          //                              [________98765432____________]
           ((in[19 + inPos] & 268435455) >>> 12)) & 255);
      out[69 + outPos] = (byte)((
          //                                      [76543210]
          //                                      [76543210____________________]
           ((in[19 + inPos] & 268435455) >>> 20)) & 255);
      out[70 + outPos] = (byte)((
          //                                      [76543210]
          //                  [____________________76543210]
           ((in[20 + inPos] & 268435455))) & 255);
      out[71 + outPos] = (byte)((
          //                                      [76543210]
          //                          [____________54321098________]
           ((in[20 + inPos] & 268435455) >>> 8)) & 255);
      out[72 + outPos] = (byte)((
          //                                      [76543210]
          //                                  [____32109876________________]
           ((in[20 + inPos] & 268435455) >>> 16)) & 255);
      out[73 + outPos] = (byte)((
          //                                      [____3210]
          //                                          [7654________________________]
           ((in[20 + inPos] & 268435455) >>> 24)
        | //                                      [7654____]
          //              [________________________3210]
           ((in[21 + inPos] & 268435455) <<  4)) & 255);
      out[74 + outPos] = (byte)((
          //                                      [76543210]
          //                      [________________10987654____]
           ((in[21 + inPos] & 268435455) >>> 4)) & 255);
      out[75 + outPos] = (byte)((
          //                                      [76543210]
          //                              [________98765432____________]
           ((in[21 + inPos] & 268435455) >>> 12)) & 255);
      out[76 + outPos] = (byte)((
          //                                      [76543210]
          //                                      [76543210____________________]
           ((in[21 + inPos] & 268435455) >>> 20)) & 255);
      out[77 + outPos] = (byte)((
          //                                      [76543210]
          //                  [____________________76543210]
           ((in[22 + inPos] & 268435455))) & 255);
      out[78 + outPos] = (byte)((
          //                                      [76543210]
          //                          [____________54321098________]
           ((in[22 + inPos] & 268435455) >>> 8)) & 255);
      out[79 + outPos] = (byte)((
          //                                      [76543210]
          //                                  [____32109876________________]
           ((in[22 + inPos] & 268435455) >>> 16)) & 255);
      out[80 + outPos] = (byte)((
          //                                      [____3210]
          //                                          [7654________________________]
           ((in[22 + inPos] & 268435455) >>> 24)
        | //                                      [7654____]
          //              [________________________3210]
           ((in[23 + inPos] & 268435455) <<  4)) & 255);
      out[81 + outPos] = (byte)((
          //                                      [76543210]
          //                      [________________10987654____]
           ((in[23 + inPos] & 268435455) >>> 4)) & 255);
      out[82 + outPos] = (byte)((
          //                                      [76543210]
          //                              [________98765432____________]
           ((in[23 + inPos] & 268435455) >>> 12)) & 255);
      out[83 + outPos] = (byte)((
          //                                      [76543210]
          //                                      [76543210____________________]
           ((in[23 + inPos] & 268435455) >>> 20)) & 255);
      out[84 + outPos] = (byte)((
          //                                      [76543210]
          //                  [____________________76543210]
           ((in[24 + inPos] & 268435455))) & 255);
      out[85 + outPos] = (byte)((
          //                                      [76543210]
          //                          [____________54321098________]
           ((in[24 + inPos] & 268435455) >>> 8)) & 255);
      out[86 + outPos] = (byte)((
          //                                      [76543210]
          //                                  [____32109876________________]
           ((in[24 + inPos] & 268435455) >>> 16)) & 255);
      out[87 + outPos] = (byte)((
          //                                      [____3210]
          //                                          [7654________________________]
           ((in[24 + inPos] & 268435455) >>> 24)
        | //                                      [7654____]
          //              [________________________3210]
           ((in[25 + inPos] & 268435455) <<  4)) & 255);
      out[88 + outPos] = (byte)((
          //                                      [76543210]
          //                      [________________10987654____]
           ((in[25 + inPos] & 268435455) >>> 4)) & 255);
      out[89 + outPos] = (byte)((
          //                                      [76543210]
          //                              [________98765432____________]
           ((in[25 + inPos] & 268435455) >>> 12)) & 255);
      out[90 + outPos] = (byte)((
          //                                      [76543210]
          //                                      [76543210____________________]
           ((in[25 + inPos] & 268435455) >>> 20)) & 255);
      out[91 + outPos] = (byte)((
          //                                      [76543210]
          //                  [____________________76543210]
           ((in[26 + inPos] & 268435455))) & 255);
      out[92 + outPos] = (byte)((
          //                                      [76543210]
          //                          [____________54321098________]
           ((in[26 + inPos] & 268435455) >>> 8)) & 255);
      out[93 + outPos] = (byte)((
          //                                      [76543210]
          //                                  [____32109876________________]
           ((in[26 + inPos] & 268435455) >>> 16)) & 255);
      out[94 + outPos] = (byte)((
          //                                      [____3210]
          //                                          [7654________________________]
           ((in[26 + inPos] & 268435455) >>> 24)
        | //                                      [7654____]
          //              [________________________3210]
           ((in[27 + inPos] & 268435455) <<  4)) & 255);
      out[95 + outPos] = (byte)((
          //                                      [76543210]
          //                      [________________10987654____]
           ((in[27 + inPos] & 268435455) >>> 4)) & 255);
      out[96 + outPos] = (byte)((
          //                                      [76543210]
          //                              [________98765432____________]
           ((in[27 + inPos] & 268435455) >>> 12)) & 255);
      out[97 + outPos] = (byte)((
          //                                      [76543210]
          //                                      [76543210____________________]
           ((in[27 + inPos] & 268435455) >>> 20)) & 255);
      out[98 + outPos] = (byte)((
          //                                      [76543210]
          //                  [____________________76543210]
           ((in[28 + inPos] & 268435455))) & 255);
      out[99 + outPos] = (byte)((
          //                                      [76543210]
          //                          [____________54321098________]
           ((in[28 + inPos] & 268435455) >>> 8)) & 255);
      out[100 + outPos] = (byte)((
          //                                      [76543210]
          //                                  [____32109876________________]
           ((in[28 + inPos] & 268435455) >>> 16)) & 255);
      out[101 + outPos] = (byte)((
          //                                      [____3210]
          //                                          [7654________________________]
           ((in[28 + inPos] & 268435455) >>> 24)
        | //                                      [7654____]
          //              [________________________3210]
           ((in[29 + inPos] & 268435455) <<  4)) & 255);
      out[102 + outPos] = (byte)((
          //                                      [76543210]
          //                      [________________10987654____]
           ((in[29 + inPos] & 268435455) >>> 4)) & 255);
      out[103 + outPos] = (byte)((
          //                                      [76543210]
          //                              [________98765432____________]
           ((in[29 + inPos] & 268435455) >>> 12)) & 255);
      out[104 + outPos] = (byte)((
          //                                      [76543210]
          //                                      [76543210____________________]
           ((in[29 + inPos] & 268435455) >>> 20)) & 255);
      out[105 + outPos] = (byte)((
          //                                      [76543210]
          //                  [____________________76543210]
           ((in[30 + inPos] & 268435455))) & 255);
      out[106 + outPos] = (byte)((
          //                                      [76543210]
          //                          [____________54321098________]
           ((in[30 + inPos] & 268435455) >>> 8)) & 255);
      out[107 + outPos] = (byte)((
          //                                      [76543210]
          //                                  [____32109876________________]
           ((in[30 + inPos] & 268435455) >>> 16)) & 255);
      out[108 + outPos] = (byte)((
          //                                      [____3210]
          //                                          [7654________________________]
           ((in[30 + inPos] & 268435455) >>> 24)
        | //                                      [7654____]
          //              [________________________3210]
           ((in[31 + inPos] & 268435455) <<  4)) & 255);
      out[109 + outPos] = (byte)((
          //                                      [76543210]
          //                      [________________10987654____]
           ((in[31 + inPos] & 268435455) >>> 4)) & 255);
      out[110 + outPos] = (byte)((
          //                                      [76543210]
          //                              [________98765432____________]
           ((in[31 + inPos] & 268435455) >>> 12)) & 255);
      out[111 + outPos] = (byte)((
          //                                      [76543210]
          //                                      [76543210____________________]
           ((in[31 + inPos] & 268435455) >>> 20)) & 255);
    }
    public final void unpack8Values(final byte[] in, final int inPos, final int[] out, final int outPos) {
      out[ 0 + outPos] =
          //                                      [76543210]
          //                  [____________________76543210]
            ((((int)in[ 0 + inPos]) ) & 255)
        | //                                      [76543210]
          //                          [____________54321098________]
            ((((int)in[ 1 + inPos]) <<  8) & 65535)
        | //                                      [76543210]
          //                                  [____32109876________________]
            ((((int)in[ 2 + inPos]) <<  16) & 16777215)
        | //                                      [____3210]
          //                                          [7654________________________]
            ((((int)in[ 3 + inPos]) <<  24) & 268435455);
      out[ 1 + outPos] =
          //                                      [7654____]
          //              [________________________3210]
            ((((int)in[ 3 + inPos]) >>  4) & 15)
        | //                                      [76543210]
          //                      [________________10987654____]
            ((((int)in[ 4 + inPos]) <<  4) & 4095)
        | //                                      [76543210]
          //                              [________98765432____________]
            ((((int)in[ 5 + inPos]) <<  12) & 1048575)
        | //                                      [76543210]
          //                                      [76543210____________________]
            ((((int)in[ 6 + inPos]) <<  20) & 268435455);
      out[ 2 + outPos] =
          //                                      [76543210]
          //                  [____________________76543210]
            ((((int)in[ 7 + inPos]) ) & 255)
        | //                                      [76543210]
          //                          [____________54321098________]
            ((((int)in[ 8 + inPos]) <<  8) & 65535)
        | //                                      [76543210]
          //                                  [____32109876________________]
            ((((int)in[ 9 + inPos]) <<  16) & 16777215)
        | //                                      [____3210]
          //                                          [7654________________________]
            ((((int)in[10 + inPos]) <<  24) & 268435455);
      out[ 3 + outPos] =
          //                                      [7654____]
          //              [________________________3210]
            ((((int)in[10 + inPos]) >>  4) & 15)
        | //                                      [76543210]
          //                      [________________10987654____]
            ((((int)in[11 + inPos]) <<  4) & 4095)
        | //                                      [76543210]
          //                              [________98765432____________]
            ((((int)in[12 + inPos]) <<  12) & 1048575)
        | //                                      [76543210]
          //                                      [76543210____________________]
            ((((int)in[13 + inPos]) <<  20) & 268435455);
      out[ 4 + outPos] =
          //                                      [76543210]
          //                  [____________________76543210]
            ((((int)in[14 + inPos]) ) & 255)
        | //                                      [76543210]
          //                          [____________54321098________]
            ((((int)in[15 + inPos]) <<  8) & 65535)
        | //                                      [76543210]
          //                                  [____32109876________________]
            ((((int)in[16 + inPos]) <<  16) & 16777215)
        | //                                      [____3210]
          //                                          [7654________________________]
            ((((int)in[17 + inPos]) <<  24) & 268435455);
      out[ 5 + outPos] =
          //                                      [7654____]
          //              [________________________3210]
            ((((int)in[17 + inPos]) >>  4) & 15)
        | //                                      [76543210]
          //                      [________________10987654____]
            ((((int)in[18 + inPos]) <<  4) & 4095)
        | //                                      [76543210]
          //                              [________98765432____________]
            ((((int)in[19 + inPos]) <<  12) & 1048575)
        | //                                      [76543210]
          //                                      [76543210____________________]
            ((((int)in[20 + inPos]) <<  20) & 268435455);
      out[ 6 + outPos] =
          //                                      [76543210]
          //                  [____________________76543210]
            ((((int)in[21 + inPos]) ) & 255)
        | //                                      [76543210]
          //                          [____________54321098________]
            ((((int)in[22 + inPos]) <<  8) & 65535)
        | //                                      [76543210]
          //                                  [____32109876________________]
            ((((int)in[23 + inPos]) <<  16) & 16777215)
        | //                                      [____3210]
          //                                          [7654________________________]
            ((((int)in[24 + inPos]) <<  24) & 268435455);
      out[ 7 + outPos] =
          //                                      [7654____]
          //              [________________________3210]
            ((((int)in[24 + inPos]) >>  4) & 15)
        | //                                      [76543210]
          //                      [________________10987654____]
            ((((int)in[25 + inPos]) <<  4) & 4095)
        | //                                      [76543210]
          //                              [________98765432____________]
            ((((int)in[26 + inPos]) <<  12) & 1048575)
        | //                                      [76543210]
          //                                      [76543210____________________]
            ((((int)in[27 + inPos]) <<  20) & 268435455);
    }
    public final void unpack8Values(final ByteBuffer in, final int inPos, final int[] out, final int outPos) {
      out[ 0 + outPos] =
          //                                      [76543210]
          //                  [____________________76543210]
            ((((int)in.get( 0 + inPos)) ) & 255)
        | //                                      [76543210]
          //                          [____________54321098________]
            ((((int)in.get( 1 + inPos)) <<  8) & 65535)
        | //                                      [76543210]
          //                                  [____32109876________________]
            ((((int)in.get( 2 + inPos)) <<  16) & 16777215)
        | //                                      [____3210]
          //                                          [7654________________________]
            ((((int)in.get( 3 + inPos)) <<  24) & 268435455);
      out[ 1 + outPos] =
          //                                      [7654____]
          //              [________________________3210]
            ((((int)in.get( 3 + inPos)) >>  4) & 15)
        | //                                      [76543210]
          //                      [________________10987654____]
            ((((int)in.get( 4 + inPos)) <<  4) & 4095)
        | //                                      [76543210]
          //                              [________98765432____________]
            ((((int)in.get( 5 + inPos)) <<  12) & 1048575)
        | //                                      [76543210]
          //                                      [76543210____________________]
            ((((int)in.get( 6 + inPos)) <<  20) & 268435455);
      out[ 2 + outPos] =
          //                                      [76543210]
          //                  [____________________76543210]
            ((((int)in.get( 7 + inPos)) ) & 255)
        | //                                      [76543210]
          //                          [____________54321098________]
            ((((int)in.get( 8 + inPos)) <<  8) & 65535)
        | //                                      [76543210]
          //                                  [____32109876________________]
            ((((int)in.get( 9 + inPos)) <<  16) & 16777215)
        | //                                      [____3210]
          //                                          [7654________________________]
            ((((int)in.get(10 + inPos)) <<  24) & 268435455);
      out[ 3 + outPos] =
          //                                      [7654____]
          //              [________________________3210]
            ((((int)in.get(10 + inPos)) >>  4) & 15)
        | //                                      [76543210]
          //                      [________________10987654____]
            ((((int)in.get(11 + inPos)) <<  4) & 4095)
        | //                                      [76543210]
          //                              [________98765432____________]
            ((((int)in.get(12 + inPos)) <<  12) & 1048575)
        | //                                      [76543210]
          //                                      [76543210____________________]
            ((((int)in.get(13 + inPos)) <<  20) & 268435455);
      out[ 4 + outPos] =
          //                                      [76543210]
          //                  [____________________76543210]
            ((((int)in.get(14 + inPos)) ) & 255)
        | //                                      [76543210]
          //                          [____________54321098________]
            ((((int)in.get(15 + inPos)) <<  8) & 65535)
        | //                                      [76543210]
          //                                  [____32109876________________]
            ((((int)in.get(16 + inPos)) <<  16) & 16777215)
        | //                                      [____3210]
          //                                          [7654________________________]
            ((((int)in.get(17 + inPos)) <<  24) & 268435455);
      out[ 5 + outPos] =
          //                                      [7654____]
          //              [________________________3210]
            ((((int)in.get(17 + inPos)) >>  4) & 15)
        | //                                      [76543210]
          //                      [________________10987654____]
            ((((int)in.get(18 + inPos)) <<  4) & 4095)
        | //                                      [76543210]
          //                              [________98765432____________]
            ((((int)in.get(19 + inPos)) <<  12) & 1048575)
        | //                                      [76543210]
          //                                      [76543210____________________]
            ((((int)in.get(20 + inPos)) <<  20) & 268435455);
      out[ 6 + outPos] =
          //                                      [76543210]
          //                  [____________________76543210]
            ((((int)in.get(21 + inPos)) ) & 255)
        | //                                      [76543210]
          //                          [____________54321098________]
            ((((int)in.get(22 + inPos)) <<  8) & 65535)
        | //                                      [76543210]
          //                                  [____32109876________________]
            ((((int)in.get(23 + inPos)) <<  16) & 16777215)
        | //                                      [____3210]
          //                                          [7654________________________]
            ((((int)in.get(24 + inPos)) <<  24) & 268435455);
      out[ 7 + outPos] =
          //                                      [7654____]
          //              [________________________3210]
            ((((int)in.get(24 + inPos)) >>  4) & 15)
        | //                                      [76543210]
          //                      [________________10987654____]
            ((((int)in.get(25 + inPos)) <<  4) & 4095)
        | //                                      [76543210]
          //                              [________98765432____________]
            ((((int)in.get(26 + inPos)) <<  12) & 1048575)
        | //                                      [76543210]
          //                                      [76543210____________________]
            ((((int)in.get(27 + inPos)) <<  20) & 268435455);
    }
    public final void unpack32Values(final byte[] in, final int inPos, final int[] out, final int outPos) {
      out[ 0 + outPos] =
          //                                      [76543210]
          //                  [____________________76543210]
            ((((int)in[ 0 + inPos]) ) & 255)
        | //                                      [76543210]
          //                          [____________54321098________]
            ((((int)in[ 1 + inPos]) <<  8) & 65535)
        | //                                      [76543210]
          //                                  [____32109876________________]
            ((((int)in[ 2 + inPos]) <<  16) & 16777215)
        | //                                      [____3210]
          //                                          [7654________________________]
            ((((int)in[ 3 + inPos]) <<  24) & 268435455);
      out[ 1 + outPos] =
          //                                      [7654____]
          //              [________________________3210]
            ((((int)in[ 3 + inPos]) >>  4) & 15)
        | //                                      [76543210]
          //                      [________________10987654____]
            ((((int)in[ 4 + inPos]) <<  4) & 4095)
        | //                                      [76543210]
          //                              [________98765432____________]
            ((((int)in[ 5 + inPos]) <<  12) & 1048575)
        | //                                      [76543210]
          //                                      [76543210____________________]
            ((((int)in[ 6 + inPos]) <<  20) & 268435455);
      out[ 2 + outPos] =
          //                                      [76543210]
          //                  [____________________76543210]
            ((((int)in[ 7 + inPos]) ) & 255)
        | //                                      [76543210]
          //                          [____________54321098________]
            ((((int)in[ 8 + inPos]) <<  8) & 65535)
        | //                                      [76543210]
          //                                  [____32109876________________]
            ((((int)in[ 9 + inPos]) <<  16) & 16777215)
        | //                                      [____3210]
          //                                          [7654________________________]
            ((((int)in[10 + inPos]) <<  24) & 268435455);
      out[ 3 + outPos] =
          //                                      [7654____]
          //              [________________________3210]
            ((((int)in[10 + inPos]) >>  4) & 15)
        | //                                      [76543210]
          //                      [________________10987654____]
            ((((int)in[11 + inPos]) <<  4) & 4095)
        | //                                      [76543210]
          //                              [________98765432____________]
            ((((int)in[12 + inPos]) <<  12) & 1048575)
        | //                                      [76543210]
          //                                      [76543210____________________]
            ((((int)in[13 + inPos]) <<  20) & 268435455);
      out[ 4 + outPos] =
          //                                      [76543210]
          //                  [____________________76543210]
            ((((int)in[14 + inPos]) ) & 255)
        | //                                      [76543210]
          //                          [____________54321098________]
            ((((int)in[15 + inPos]) <<  8) & 65535)
        | //                                      [76543210]
          //                                  [____32109876________________]
            ((((int)in[16 + inPos]) <<  16) & 16777215)
        | //                                      [____3210]
          //                                          [7654________________________]
            ((((int)in[17 + inPos]) <<  24) & 268435455);
      out[ 5 + outPos] =
          //                                      [7654____]
          //              [________________________3210]
            ((((int)in[17 + inPos]) >>  4) & 15)
        | //                                      [76543210]
          //                      [________________10987654____]
            ((((int)in[18 + inPos]) <<  4) & 4095)
        | //                                      [76543210]
          //                              [________98765432____________]
            ((((int)in[19 + inPos]) <<  12) & 1048575)
        | //                                      [76543210]
          //                                      [76543210____________________]
            ((((int)in[20 + inPos]) <<  20) & 268435455);
      out[ 6 + outPos] =
          //                                      [76543210]
          //                  [____________________76543210]
            ((((int)in[21 + inPos]) ) & 255)
        | //                                      [76543210]
          //                          [____________54321098________]
            ((((int)in[22 + inPos]) <<  8) & 65535)
        | //                                      [76543210]
          //                                  [____32109876________________]
            ((((int)in[23 + inPos]) <<  16) & 16777215)
        | //                                      [____3210]
          //                                          [7654________________________]
            ((((int)in[24 + inPos]) <<  24) & 268435455);
      out[ 7 + outPos] =
          //                                      [7654____]
          //              [________________________3210]
            ((((int)in[24 + inPos]) >>  4) & 15)
        | //                                      [76543210]
          //                      [________________10987654____]
            ((((int)in[25 + inPos]) <<  4) & 4095)
        | //                                      [76543210]
          //                              [________98765432____________]
            ((((int)in[26 + inPos]) <<  12) & 1048575)
        | //                                      [76543210]
          //                                      [76543210____________________]
            ((((int)in[27 + inPos]) <<  20) & 268435455);
      out[ 8 + outPos] =
          //                                      [76543210]
          //                  [____________________76543210]
            ((((int)in[28 + inPos]) ) & 255)
        | //                                      [76543210]
          //                          [____________54321098________]
            ((((int)in[29 + inPos]) <<  8) & 65535)
        | //                                      [76543210]
          //                                  [____32109876________________]
            ((((int)in[30 + inPos]) <<  16) & 16777215)
        | //                                      [____3210]
          //                                          [7654________________________]
            ((((int)in[31 + inPos]) <<  24) & 268435455);
      out[ 9 + outPos] =
          //                                      [7654____]
          //              [________________________3210]
            ((((int)in[31 + inPos]) >>  4) & 15)
        | //                                      [76543210]
          //                      [________________10987654____]
            ((((int)in[32 + inPos]) <<  4) & 4095)
        | //                                      [76543210]
          //                              [________98765432____________]
            ((((int)in[33 + inPos]) <<  12) & 1048575)
        | //                                      [76543210]
          //                                      [76543210____________________]
            ((((int)in[34 + inPos]) <<  20) & 268435455);
      out[10 + outPos] =
          //                                      [76543210]
          //                  [____________________76543210]
            ((((int)in[35 + inPos]) ) & 255)
        | //                                      [76543210]
          //                          [____________54321098________]
            ((((int)in[36 + inPos]) <<  8) & 65535)
        | //                                      [76543210]
          //                                  [____32109876________________]
            ((((int)in[37 + inPos]) <<  16) & 16777215)
        | //                                      [____3210]
          //                                          [7654________________________]
            ((((int)in[38 + inPos]) <<  24) & 268435455);
      out[11 + outPos] =
          //                                      [7654____]
          //              [________________________3210]
            ((((int)in[38 + inPos]) >>  4) & 15)
        | //                                      [76543210]
          //                      [________________10987654____]
            ((((int)in[39 + inPos]) <<  4) & 4095)
        | //                                      [76543210]
          //                              [________98765432____________]
            ((((int)in[40 + inPos]) <<  12) & 1048575)
        | //                                      [76543210]
          //                                      [76543210____________________]
            ((((int)in[41 + inPos]) <<  20) & 268435455);
      out[12 + outPos] =
          //                                      [76543210]
          //                  [____________________76543210]
            ((((int)in[42 + inPos]) ) & 255)
        | //                                      [76543210]
          //                          [____________54321098________]
            ((((int)in[43 + inPos]) <<  8) & 65535)
        | //                                      [76543210]
          //                                  [____32109876________________]
            ((((int)in[44 + inPos]) <<  16) & 16777215)
        | //                                      [____3210]
          //                                          [7654________________________]
            ((((int)in[45 + inPos]) <<  24) & 268435455);
      out[13 + outPos] =
          //                                      [7654____]
          //              [________________________3210]
            ((((int)in[45 + inPos]) >>  4) & 15)
        | //                                      [76543210]
          //                      [________________10987654____]
            ((((int)in[46 + inPos]) <<  4) & 4095)
        | //                                      [76543210]
          //                              [________98765432____________]
            ((((int)in[47 + inPos]) <<  12) & 1048575)
        | //                                      [76543210]
          //                                      [76543210____________________]
            ((((int)in[48 + inPos]) <<  20) & 268435455);
      out[14 + outPos] =
          //                                      [76543210]
          //                  [____________________76543210]
            ((((int)in[49 + inPos]) ) & 255)
        | //                                      [76543210]
          //                          [____________54321098________]
            ((((int)in[50 + inPos]) <<  8) & 65535)
        | //                                      [76543210]
          //                                  [____32109876________________]
            ((((int)in[51 + inPos]) <<  16) & 16777215)
        | //                                      [____3210]
          //                                          [7654________________________]
            ((((int)in[52 + inPos]) <<  24) & 268435455);
      out[15 + outPos] =
          //                                      [7654____]
          //              [________________________3210]
            ((((int)in[52 + inPos]) >>  4) & 15)
        | //                                      [76543210]
          //                      [________________10987654____]
            ((((int)in[53 + inPos]) <<  4) & 4095)
        | //                                      [76543210]
          //                              [________98765432____________]
            ((((int)in[54 + inPos]) <<  12) & 1048575)
        | //                                      [76543210]
          //                                      [76543210____________________]
            ((((int)in[55 + inPos]) <<  20) & 268435455);
      out[16 + outPos] =
          //                                      [76543210]
          //                  [____________________76543210]
            ((((int)in[56 + inPos]) ) & 255)
        | //                                      [76543210]
          //                          [____________54321098________]
            ((((int)in[57 + inPos]) <<  8) & 65535)
        | //                                      [76543210]
          //                                  [____32109876________________]
            ((((int)in[58 + inPos]) <<  16) & 16777215)
        | //                                      [____3210]
          //                                          [7654________________________]
            ((((int)in[59 + inPos]) <<  24) & 268435455);
      out[17 + outPos] =
          //                                      [7654____]
          //              [________________________3210]
            ((((int)in[59 + inPos]) >>  4) & 15)
        | //                                      [76543210]
          //                      [________________10987654____]
            ((((int)in[60 + inPos]) <<  4) & 4095)
        | //                                      [76543210]
          //                              [________98765432____________]
            ((((int)in[61 + inPos]) <<  12) & 1048575)
        | //                                      [76543210]
          //                                      [76543210____________________]
            ((((int)in[62 + inPos]) <<  20) & 268435455);
      out[18 + outPos] =
          //                                      [76543210]
          //                  [____________________76543210]
            ((((int)in[63 + inPos]) ) & 255)
        | //                                      [76543210]
          //                          [____________54321098________]
            ((((int)in[64 + inPos]) <<  8) & 65535)
        | //                                      [76543210]
          //                                  [____32109876________________]
            ((((int)in[65 + inPos]) <<  16) & 16777215)
        | //                                      [____3210]
          //                                          [7654________________________]
            ((((int)in[66 + inPos]) <<  24) & 268435455);
      out[19 + outPos] =
          //                                      [7654____]
          //              [________________________3210]
            ((((int)in[66 + inPos]) >>  4) & 15)
        | //                                      [76543210]
          //                      [________________10987654____]
            ((((int)in[67 + inPos]) <<  4) & 4095)
        | //                                      [76543210]
          //                              [________98765432____________]
            ((((int)in[68 + inPos]) <<  12) & 1048575)
        | //                                      [76543210]
          //                                      [76543210____________________]
            ((((int)in[69 + inPos]) <<  20) & 268435455);
      out[20 + outPos] =
          //                                      [76543210]
          //                  [____________________76543210]
            ((((int)in[70 + inPos]) ) & 255)
        | //                                      [76543210]
          //                          [____________54321098________]
            ((((int)in[71 + inPos]) <<  8) & 65535)
        | //                                      [76543210]
          //                                  [____32109876________________]
            ((((int)in[72 + inPos]) <<  16) & 16777215)
        | //                                      [____3210]
          //                                          [7654________________________]
            ((((int)in[73 + inPos]) <<  24) & 268435455);
      out[21 + outPos] =
          //                                      [7654____]
          //              [________________________3210]
            ((((int)in[73 + inPos]) >>  4) & 15)
        | //                                      [76543210]
          //                      [________________10987654____]
            ((((int)in[74 + inPos]) <<  4) & 4095)
        | //                                      [76543210]
          //                              [________98765432____________]
            ((((int)in[75 + inPos]) <<  12) & 1048575)
        | //                                      [76543210]
          //                                      [76543210____________________]
            ((((int)in[76 + inPos]) <<  20) & 268435455);
      out[22 + outPos] =
          //                                      [76543210]
          //                  [____________________76543210]
            ((((int)in[77 + inPos]) ) & 255)
        | //                                      [76543210]
          //                          [____________54321098________]
            ((((int)in[78 + inPos]) <<  8) & 65535)
        | //                                      [76543210]
          //                                  [____32109876________________]
            ((((int)in[79 + inPos]) <<  16) & 16777215)
        | //                                      [____3210]
          //                                          [7654________________________]
            ((((int)in[80 + inPos]) <<  24) & 268435455);
      out[23 + outPos] =
          //                                      [7654____]
          //              [________________________3210]
            ((((int)in[80 + inPos]) >>  4) & 15)
        | //                                      [76543210]
          //                      [________________10987654____]
            ((((int)in[81 + inPos]) <<  4) & 4095)
        | //                                      [76543210]
          //                              [________98765432____________]
            ((((int)in[82 + inPos]) <<  12) & 1048575)
        | //                                      [76543210]
          //                                      [76543210____________________]
            ((((int)in[83 + inPos]) <<  20) & 268435455);
      out[24 + outPos] =
          //                                      [76543210]
          //                  [____________________76543210]
            ((((int)in[84 + inPos]) ) & 255)
        | //                                      [76543210]
          //                          [____________54321098________]
            ((((int)in[85 + inPos]) <<  8) & 65535)
        | //                                      [76543210]
          //                                  [____32109876________________]
            ((((int)in[86 + inPos]) <<  16) & 16777215)
        | //                                      [____3210]
          //                                          [7654________________________]
            ((((int)in[87 + inPos]) <<  24) & 268435455);
      out[25 + outPos] =
          //                                      [7654____]
          //              [________________________3210]
            ((((int)in[87 + inPos]) >>  4) & 15)
        | //                                      [76543210]
          //                      [________________10987654____]
            ((((int)in[88 + inPos]) <<  4) & 4095)
        | //                                      [76543210]
          //                              [________98765432____________]
            ((((int)in[89 + inPos]) <<  12) & 1048575)
        | //                                      [76543210]
          //                                      [76543210____________________]
            ((((int)in[90 + inPos]) <<  20) & 268435455);
      out[26 + outPos] =
          //                                      [76543210]
          //                  [____________________76543210]
            ((((int)in[91 + inPos]) ) & 255)
        | //                                      [76543210]
          //                          [____________54321098________]
            ((((int)in[92 + inPos]) <<  8) & 65535)
        | //                                      [76543210]
          //                                  [____32109876________________]
            ((((int)in[93 + inPos]) <<  16) & 16777215)
        | //                                      [____3210]
          //                                          [7654________________________]
            ((((int)in[94 + inPos]) <<  24) & 268435455);
      out[27 + outPos] =
          //                                      [7654____]
          //              [________________________3210]
            ((((int)in[94 + inPos]) >>  4) & 15)
        | //                                      [76543210]
          //                      [________________10987654____]
            ((((int)in[95 + inPos]) <<  4) & 4095)
        | //                                      [76543210]
          //                              [________98765432____________]
            ((((int)in[96 + inPos]) <<  12) & 1048575)
        | //                                      [76543210]
          //                                      [76543210____________________]
            ((((int)in[97 + inPos]) <<  20) & 268435455);
      out[28 + outPos] =
          //                                      [76543210]
          //                  [____________________76543210]
            ((((int)in[98 + inPos]) ) & 255)
        | //                                      [76543210]
          //                          [____________54321098________]
            ((((int)in[99 + inPos]) <<  8) & 65535)
        | //                                      [76543210]
          //                                  [____32109876________________]
            ((((int)in[100 + inPos]) <<  16) & 16777215)
        | //                                      [____3210]
          //                                          [7654________________________]
            ((((int)in[101 + inPos]) <<  24) & 268435455);
      out[29 + outPos] =
          //                                      [7654____]
          //              [________________________3210]
            ((((int)in[101 + inPos]) >>  4) & 15)
        | //                                      [76543210]
          //                      [________________10987654____]
            ((((int)in[102 + inPos]) <<  4) & 4095)
        | //                                      [76543210]
          //                              [________98765432____________]
            ((((int)in[103 + inPos]) <<  12) & 1048575)
        | //                                      [76543210]
          //                                      [76543210____________________]
            ((((int)in[104 + inPos]) <<  20) & 268435455);
      out[30 + outPos] =
          //                                      [76543210]
          //                  [____________________76543210]
            ((((int)in[105 + inPos]) ) & 255)
        | //                                      [76543210]
          //                          [____________54321098________]
            ((((int)in[106 + inPos]) <<  8) & 65535)
        | //                                      [76543210]
          //                                  [____32109876________________]
            ((((int)in[107 + inPos]) <<  16) & 16777215)
        | //                                      [____3210]
          //                                          [7654________________________]
            ((((int)in[108 + inPos]) <<  24) & 268435455);
      out[31 + outPos] =
          //                                      [7654____]
          //              [________________________3210]
            ((((int)in[108 + inPos]) >>  4) & 15)
        | //                                      [76543210]
          //                      [________________10987654____]
            ((((int)in[109 + inPos]) <<  4) & 4095)
        | //                                      [76543210]
          //                              [________98765432____________]
            ((((int)in[110 + inPos]) <<  12) & 1048575)
        | //                                      [76543210]
          //                                      [76543210____________________]
            ((((int)in[111 + inPos]) <<  20) & 268435455);
    }
    public final void unpack32Values(final ByteBuffer in, final int inPos, final int[] out, final int outPos) {
      out[ 0 + outPos] =
          //                                      [76543210]
          //                  [____________________76543210]
            ((((int)in.get( 0 + inPos)) ) & 255)
        | //                                      [76543210]
          //                          [____________54321098________]
            ((((int)in.get( 1 + inPos)) <<  8) & 65535)
        | //                                      [76543210]
          //                                  [____32109876________________]
            ((((int)in.get( 2 + inPos)) <<  16) & 16777215)
        | //                                      [____3210]
          //                                          [7654________________________]
            ((((int)in.get( 3 + inPos)) <<  24) & 268435455);
      out[ 1 + outPos] =
          //                                      [7654____]
          //              [________________________3210]
            ((((int)in.get( 3 + inPos)) >>  4) & 15)
        | //                                      [76543210]
          //                      [________________10987654____]
            ((((int)in.get( 4 + inPos)) <<  4) & 4095)
        | //                                      [76543210]
          //                              [________98765432____________]
            ((((int)in.get( 5 + inPos)) <<  12) & 1048575)
        | //                                      [76543210]
          //                                      [76543210____________________]
            ((((int)in.get( 6 + inPos)) <<  20) & 268435455);
      out[ 2 + outPos] =
          //                                      [76543210]
          //                  [____________________76543210]
            ((((int)in.get( 7 + inPos)) ) & 255)
        | //                                      [76543210]
          //                          [____________54321098________]
            ((((int)in.get( 8 + inPos)) <<  8) & 65535)
        | //                                      [76543210]
          //                                  [____32109876________________]
            ((((int)in.get( 9 + inPos)) <<  16) & 16777215)
        | //                                      [____3210]
          //                                          [7654________________________]
            ((((int)in.get(10 + inPos)) <<  24) & 268435455);
      out[ 3 + outPos] =
          //                                      [7654____]
          //              [________________________3210]
            ((((int)in.get(10 + inPos)) >>  4) & 15)
        | //                                      [76543210]
          //                      [________________10987654____]
            ((((int)in.get(11 + inPos)) <<  4) & 4095)
        | //                                      [76543210]
          //                              [________98765432____________]
            ((((int)in.get(12 + inPos)) <<  12) & 1048575)
        | //                                      [76543210]
          //                                      [76543210____________________]
            ((((int)in.get(13 + inPos)) <<  20) & 268435455);
      out[ 4 + outPos] =
          //                                      [76543210]
          //                  [____________________76543210]
            ((((int)in.get(14 + inPos)) ) & 255)
        | //                                      [76543210]
          //                          [____________54321098________]
            ((((int)in.get(15 + inPos)) <<  8) & 65535)
        | //                                      [76543210]
          //                                  [____32109876________________]
            ((((int)in.get(16 + inPos)) <<  16) & 16777215)
        | //                                      [____3210]
          //                                          [7654________________________]
            ((((int)in.get(17 + inPos)) <<  24) & 268435455);
      out[ 5 + outPos] =
          //                                      [7654____]
          //              [________________________3210]
            ((((int)in.get(17 + inPos)) >>  4) & 15)
        | //                                      [76543210]
          //                      [________________10987654____]
            ((((int)in.get(18 + inPos)) <<  4) & 4095)
        | //                                      [76543210]
          //                              [________98765432____________]
            ((((int)in.get(19 + inPos)) <<  12) & 1048575)
        | //                                      [76543210]
          //                                      [76543210____________________]
            ((((int)in.get(20 + inPos)) <<  20) & 268435455);
      out[ 6 + outPos] =
          //                                      [76543210]
          //                  [____________________76543210]
            ((((int)in.get(21 + inPos)) ) & 255)
        | //                                      [76543210]
          //                          [____________54321098________]
            ((((int)in.get(22 + inPos)) <<  8) & 65535)
        | //                                      [76543210]
          //                                  [____32109876________________]
            ((((int)in.get(23 + inPos)) <<  16) & 16777215)
        | //                                      [____3210]
          //                                          [7654________________________]
            ((((int)in.get(24 + inPos)) <<  24) & 268435455);
      out[ 7 + outPos] =
          //                                      [7654____]
          //              [________________________3210]
            ((((int)in.get(24 + inPos)) >>  4) & 15)
        | //                                      [76543210]
          //                      [________________10987654____]
            ((((int)in.get(25 + inPos)) <<  4) & 4095)
        | //                                      [76543210]
          //                              [________98765432____________]
            ((((int)in.get(26 + inPos)) <<  12) & 1048575)
        | //                                      [76543210]
          //                                      [76543210____________________]
            ((((int)in.get(27 + inPos)) <<  20) & 268435455);
      out[ 8 + outPos] =
          //                                      [76543210]
          //                  [____________________76543210]
            ((((int)in.get(28 + inPos)) ) & 255)
        | //                                      [76543210]
          //                          [____________54321098________]
            ((((int)in.get(29 + inPos)) <<  8) & 65535)
        | //                                      [76543210]
          //                                  [____32109876________________]
            ((((int)in.get(30 + inPos)) <<  16) & 16777215)
        | //                                      [____3210]
          //                                          [7654________________________]
            ((((int)in.get(31 + inPos)) <<  24) & 268435455);
      out[ 9 + outPos] =
          //                                      [7654____]
          //              [________________________3210]
            ((((int)in.get(31 + inPos)) >>  4) & 15)
        | //                                      [76543210]
          //                      [________________10987654____]
            ((((int)in.get(32 + inPos)) <<  4) & 4095)
        | //                                      [76543210]
          //                              [________98765432____________]
            ((((int)in.get(33 + inPos)) <<  12) & 1048575)
        | //                                      [76543210]
          //                                      [76543210____________________]
            ((((int)in.get(34 + inPos)) <<  20) & 268435455);
      out[10 + outPos] =
          //                                      [76543210]
          //                  [____________________76543210]
            ((((int)in.get(35 + inPos)) ) & 255)
        | //                                      [76543210]
          //                          [____________54321098________]
            ((((int)in.get(36 + inPos)) <<  8) & 65535)
        | //                                      [76543210]
          //                                  [____32109876________________]
            ((((int)in.get(37 + inPos)) <<  16) & 16777215)
        | //                                      [____3210]
          //                                          [7654________________________]
            ((((int)in.get(38 + inPos)) <<  24) & 268435455);
      out[11 + outPos] =
          //                                      [7654____]
          //              [________________________3210]
            ((((int)in.get(38 + inPos)) >>  4) & 15)
        | //                                      [76543210]
          //                      [________________10987654____]
            ((((int)in.get(39 + inPos)) <<  4) & 4095)
        | //                                      [76543210]
          //                              [________98765432____________]
            ((((int)in.get(40 + inPos)) <<  12) & 1048575)
        | //                                      [76543210]
          //                                      [76543210____________________]
            ((((int)in.get(41 + inPos)) <<  20) & 268435455);
      out[12 + outPos] =
          //                                      [76543210]
          //                  [____________________76543210]
            ((((int)in.get(42 + inPos)) ) & 255)
        | //                                      [76543210]
          //                          [____________54321098________]
            ((((int)in.get(43 + inPos)) <<  8) & 65535)
        | //                                      [76543210]
          //                                  [____32109876________________]
            ((((int)in.get(44 + inPos)) <<  16) & 16777215)
        | //                                      [____3210]
          //                                          [7654________________________]
            ((((int)in.get(45 + inPos)) <<  24) & 268435455);
      out[13 + outPos] =
          //                                      [7654____]
          //              [________________________3210]
            ((((int)in.get(45 + inPos)) >>  4) & 15)
        | //                                      [76543210]
          //                      [________________10987654____]
            ((((int)in.get(46 + inPos)) <<  4) & 4095)
        | //                                      [76543210]
          //                              [________98765432____________]
            ((((int)in.get(47 + inPos)) <<  12) & 1048575)
        | //                                      [76543210]
          //                                      [76543210____________________]
            ((((int)in.get(48 + inPos)) <<  20) & 268435455);
      out[14 + outPos] =
          //                                      [76543210]
          //                  [____________________76543210]
            ((((int)in.get(49 + inPos)) ) & 255)
        | //                                      [76543210]
          //                          [____________54321098________]
            ((((int)in.get(50 + inPos)) <<  8) & 65535)
        | //                                      [76543210]
          //                                  [____32109876________________]
            ((((int)in.get(51 + inPos)) <<  16) & 16777215)
        | //                                      [____3210]
          //                                          [7654________________________]
            ((((int)in.get(52 + inPos)) <<  24) & 268435455);
      out[15 + outPos] =
          //                                      [7654____]
          //              [________________________3210]
            ((((int)in.get(52 + inPos)) >>  4) & 15)
        | //                                      [76543210]
          //                      [________________10987654____]
            ((((int)in.get(53 + inPos)) <<  4) & 4095)
        | //                                      [76543210]
          //                              [________98765432____________]
            ((((int)in.get(54 + inPos)) <<  12) & 1048575)
        | //                                      [76543210]
          //                                      [76543210____________________]
            ((((int)in.get(55 + inPos)) <<  20) & 268435455);
      out[16 + outPos] =
          //                                      [76543210]
          //                  [____________________76543210]
            ((((int)in.get(56 + inPos)) ) & 255)
        | //                                      [76543210]
          //                          [____________54321098________]
            ((((int)in.get(57 + inPos)) <<  8) & 65535)
        | //                                      [76543210]
          //                                  [____32109876________________]
            ((((int)in.get(58 + inPos)) <<  16) & 16777215)
        | //                                      [____3210]
          //                                          [7654________________________]
            ((((int)in.get(59 + inPos)) <<  24) & 268435455);
      out[17 + outPos] =
          //                                      [7654____]
          //              [________________________3210]
            ((((int)in.get(59 + inPos)) >>  4) & 15)
        | //                                      [76543210]
          //                      [________________10987654____]
            ((((int)in.get(60 + inPos)) <<  4) & 4095)
        | //                                      [76543210]
          //                              [________98765432____________]
            ((((int)in.get(61 + inPos)) <<  12) & 1048575)
        | //                                      [76543210]
          //                                      [76543210____________________]
            ((((int)in.get(62 + inPos)) <<  20) & 268435455);
      out[18 + outPos] =
          //                                      [76543210]
          //                  [____________________76543210]
            ((((int)in.get(63 + inPos)) ) & 255)
        | //                                      [76543210]
          //                          [____________54321098________]
            ((((int)in.get(64 + inPos)) <<  8) & 65535)
        | //                                      [76543210]
          //                                  [____32109876________________]
            ((((int)in.get(65 + inPos)) <<  16) & 16777215)
        | //                                      [____3210]
          //                                          [7654________________________]
            ((((int)in.get(66 + inPos)) <<  24) & 268435455);
      out[19 + outPos] =
          //                                      [7654____]
          //              [________________________3210]
            ((((int)in.get(66 + inPos)) >>  4) & 15)
        | //                                      [76543210]
          //                      [________________10987654____]
            ((((int)in.get(67 + inPos)) <<  4) & 4095)
        | //                                      [76543210]
          //                              [________98765432____________]
            ((((int)in.get(68 + inPos)) <<  12) & 1048575)
        | //                                      [76543210]
          //                                      [76543210____________________]
            ((((int)in.get(69 + inPos)) <<  20) & 268435455);
      out[20 + outPos] =
          //                                      [76543210]
          //                  [____________________76543210]
            ((((int)in.get(70 + inPos)) ) & 255)
        | //                                      [76543210]
          //                          [____________54321098________]
            ((((int)in.get(71 + inPos)) <<  8) & 65535)
        | //                                      [76543210]
          //                                  [____32109876________________]
            ((((int)in.get(72 + inPos)) <<  16) & 16777215)
        | //                                      [____3210]
          //                                          [7654________________________]
            ((((int)in.get(73 + inPos)) <<  24) & 268435455);
      out[21 + outPos] =
          //                                      [7654____]
          //              [________________________3210]
            ((((int)in.get(73 + inPos)) >>  4) & 15)
        | //                                      [76543210]
          //                      [________________10987654____]
            ((((int)in.get(74 + inPos)) <<  4) & 4095)
        | //                                      [76543210]
          //                              [________98765432____________]
            ((((int)in.get(75 + inPos)) <<  12) & 1048575)
        | //                                      [76543210]
          //                                      [76543210____________________]
            ((((int)in.get(76 + inPos)) <<  20) & 268435455);
      out[22 + outPos] =
          //                                      [76543210]
          //                  [____________________76543210]
            ((((int)in.get(77 + inPos)) ) & 255)
        | //                                      [76543210]
          //                          [____________54321098________]
            ((((int)in.get(78 + inPos)) <<  8) & 65535)
        | //                                      [76543210]
          //                                  [____32109876________________]
            ((((int)in.get(79 + inPos)) <<  16) & 16777215)
        | //                                      [____3210]
          //                                          [7654________________________]
            ((((int)in.get(80 + inPos)) <<  24) & 268435455);
      out[23 + outPos] =
          //                                      [7654____]
          //              [________________________3210]
            ((((int)in.get(80 + inPos)) >>  4) & 15)
        | //                                      [76543210]
          //                      [________________10987654____]
            ((((int)in.get(81 + inPos)) <<  4) & 4095)
        | //                                      [76543210]
          //                              [________98765432____________]
            ((((int)in.get(82 + inPos)) <<  12) & 1048575)
        | //                                      [76543210]
          //                                      [76543210____________________]
            ((((int)in.get(83 + inPos)) <<  20) & 268435455);
      out[24 + outPos] =
          //                                      [76543210]
          //                  [____________________76543210]
            ((((int)in.get(84 + inPos)) ) & 255)
        | //                                      [76543210]
          //                          [____________54321098________]
            ((((int)in.get(85 + inPos)) <<  8) & 65535)
        | //                                      [76543210]
          //                                  [____32109876________________]
            ((((int)in.get(86 + inPos)) <<  16) & 16777215)
        | //                                      [____3210]
          //                                          [7654________________________]
            ((((int)in.get(87 + inPos)) <<  24) & 268435455);
      out[25 + outPos] =
          //                                      [7654____]
          //              [________________________3210]
            ((((int)in.get(87 + inPos)) >>  4) & 15)
        | //                                      [76543210]
          //                      [________________10987654____]
            ((((int)in.get(88 + inPos)) <<  4) & 4095)
        | //                                      [76543210]
          //                              [________98765432____________]
            ((((int)in.get(89 + inPos)) <<  12) & 1048575)
        | //                                      [76543210]
          //                                      [76543210____________________]
            ((((int)in.get(90 + inPos)) <<  20) & 268435455);
      out[26 + outPos] =
          //                                      [76543210]
          //                  [____________________76543210]
            ((((int)in.get(91 + inPos)) ) & 255)
        | //                                      [76543210]
          //                          [____________54321098________]
            ((((int)in.get(92 + inPos)) <<  8) & 65535)
        | //                                      [76543210]
          //                                  [____32109876________________]
            ((((int)in.get(93 + inPos)) <<  16) & 16777215)
        | //                                      [____3210]
          //                                          [7654________________________]
            ((((int)in.get(94 + inPos)) <<  24) & 268435455);
      out[27 + outPos] =
          //                                      [7654____]
          //              [________________________3210]
            ((((int)in.get(94 + inPos)) >>  4) & 15)
        | //                                      [76543210]
          //                      [________________10987654____]
            ((((int)in.get(95 + inPos)) <<  4) & 4095)
        | //                                      [76543210]
          //                              [________98765432____________]
            ((((int)in.get(96 + inPos)) <<  12) & 1048575)
        | //                                      [76543210]
          //                                      [76543210____________________]
            ((((int)in.get(97 + inPos)) <<  20) & 268435455);
      out[28 + outPos] =
          //                                      [76543210]
          //                  [____________________76543210]
            ((((int)in.get(98 + inPos)) ) & 255)
        | //                                      [76543210]
          //                          [____________54321098________]
            ((((int)in.get(99 + inPos)) <<  8) & 65535)
        | //                                      [76543210]
          //                                  [____32109876________________]
            ((((int)in.get(100 + inPos)) <<  16) & 16777215)
        | //                                      [____3210]
          //                                          [7654________________________]
            ((((int)in.get(101 + inPos)) <<  24) & 268435455);
      out[29 + outPos] =
          //                                      [7654____]
          //              [________________________3210]
            ((((int)in.get(101 + inPos)) >>  4) & 15)
        | //                                      [76543210]
          //                      [________________10987654____]
            ((((int)in.get(102 + inPos)) <<  4) & 4095)
        | //                                      [76543210]
          //                              [________98765432____________]
            ((((int)in.get(103 + inPos)) <<  12) & 1048575)
        | //                                      [76543210]
          //                                      [76543210____________________]
            ((((int)in.get(104 + inPos)) <<  20) & 268435455);
      out[30 + outPos] =
          //                                      [76543210]
          //                  [____________________76543210]
            ((((int)in.get(105 + inPos)) ) & 255)
        | //                                      [76543210]
          //                          [____________54321098________]
            ((((int)in.get(106 + inPos)) <<  8) & 65535)
        | //                                      [76543210]
          //                                  [____32109876________________]
            ((((int)in.get(107 + inPos)) <<  16) & 16777215)
        | //                                      [____3210]
          //                                          [7654________________________]
            ((((int)in.get(108 + inPos)) <<  24) & 268435455);
      out[31 + outPos] =
          //                                      [7654____]
          //              [________________________3210]
            ((((int)in.get(108 + inPos)) >>  4) & 15)
        | //                                      [76543210]
          //                      [________________10987654____]
            ((((int)in.get(109 + inPos)) <<  4) & 4095)
        | //                                      [76543210]
          //                              [________98765432____________]
            ((((int)in.get(110 + inPos)) <<  12) & 1048575)
        | //                                      [76543210]
          //                                      [76543210____________________]
            ((((int)in.get(111 + inPos)) <<  20) & 268435455);
    }
  }

  private static final class Packer29 extends BytePacker {

    private Packer29() {
      super(29);
    }

    public final void pack8Values(final int[] in, final int inPos, final byte[] out, final int outPos) {
      out[ 0 + outPos] = (byte)((
          //                                       [76543210]
          //                  [_____________________76543210]
           ((in[ 0 + inPos] & 536870911))) & 255);
      out[ 1 + outPos] = (byte)((
          //                                       [76543210]
          //                          [_____________54321098________]
           ((in[ 0 + inPos] & 536870911) >>> 8)) & 255);
      out[ 2 + outPos] = (byte)((
          //                                       [76543210]
          //                                  [_____32109876________________]
           ((in[ 0 + inPos] & 536870911) >>> 16)) & 255);
      out[ 3 + outPos] = (byte)((
          //                                       [___43210]
          //                                          [87654________________________]
           ((in[ 0 + inPos] & 536870911) >>> 24)
        | //                                       [765_____]
          //             [__________________________210]
           ((in[ 1 + inPos] & 536870911) <<  5)) & 255);
      out[ 4 + outPos] = (byte)((
          //                                       [76543210]
          //                     [__________________09876543___]
           ((in[ 1 + inPos] & 536870911) >>> 3)) & 255);
      out[ 5 + outPos] = (byte)((
          //                                       [76543210]
          //                             [__________87654321___________]
           ((in[ 1 + inPos] & 536870911) >>> 11)) & 255);
      out[ 6 + outPos] = (byte)((
          //                                       [76543210]
          //                                     [__65432109___________________]
           ((in[ 1 + inPos] & 536870911) >>> 19)) & 255);
      out[ 7 + outPos] = (byte)((
          //                                       [______10]
          //                                             [87___________________________]
           ((in[ 1 + inPos] & 536870911) >>> 27)
        | //                                       [765432__]
          //                [_______________________543210]
           ((in[ 2 + inPos] & 536870911) <<  2)) & 255);
      out[ 8 + outPos] = (byte)((
          //                                       [76543210]
          //                        [_______________32109876______]
           ((in[ 2 + inPos] & 536870911) >>> 6)) & 255);
      out[ 9 + outPos] = (byte)((
          //                                       [76543210]
          //                                [_______10987654______________]
           ((in[ 2 + inPos] & 536870911) >>> 14)) & 255);
      out[10 + outPos] = (byte)((
          //                                       [_6543210]
          //                                        [8765432______________________]
           ((in[ 2 + inPos] & 536870911) >>> 22)
        | //                                       [7_______]
          //           [____________________________0]
           ((in[ 3 + inPos] & 536870911) <<  7)) & 255);
      out[11 + outPos] = (byte)((
          //                                       [76543210]
          //                   [____________________87654321_]
           ((in[ 3 + inPos] & 536870911) >>> 1)) & 255);
      out[12 + outPos] = (byte)((
          //                                       [76543210]
          //                           [____________65432109_________]
           ((in[ 3 + inPos] & 536870911) >>> 9)) & 255);
      out[13 + outPos] = (byte)((
          //                                       [76543210]
          //                                   [____43210987_________________]
           ((in[ 3 + inPos] & 536870911) >>> 17)) & 255);
      out[14 + outPos] = (byte)((
          //                                       [____3210]
          //                                           [8765_________________________]
           ((in[ 3 + inPos] & 536870911) >>> 25)
        | //                                       [7654____]
          //              [_________________________3210]
           ((in[ 4 + inPos] & 536870911) <<  4)) & 255);
      out[15 + outPos] = (byte)((
          //                                       [76543210]
          //                      [_________________10987654____]
           ((in[ 4 + inPos] & 536870911) >>> 4)) & 255);
      out[16 + outPos] = (byte)((
          //                                       [76543210]
          //                              [_________98765432____________]
           ((in[ 4 + inPos] & 536870911) >>> 12)) & 255);
      out[17 + outPos] = (byte)((
          //                                       [76543210]
          //                                      [_76543210____________________]
           ((in[ 4 + inPos] & 536870911) >>> 20)) & 255);
      out[18 + outPos] = (byte)((
          //                                       [_______0]
          //                                              [8____________________________]
           ((in[ 4 + inPos] & 536870911) >>> 28)
        | //                                       [7654321_]
          //                 [______________________6543210]
           ((in[ 5 + inPos] & 536870911) <<  1)) & 255);
      out[19 + outPos] = (byte)((
          //                                       [76543210]
          //                         [______________43210987_______]
           ((in[ 5 + inPos] & 536870911) >>> 7)) & 255);
      out[20 + outPos] = (byte)((
          //                                       [76543210]
          //                                 [______21098765_______________]
           ((in[ 5 + inPos] & 536870911) >>> 15)) & 255);
      out[21 + outPos] = (byte)((
          //                                       [__543210]
          //                                         [876543_______________________]
           ((in[ 5 + inPos] & 536870911) >>> 23)
        | //                                       [76______]
          //            [___________________________10]
           ((in[ 6 + inPos] & 536870911) <<  6)) & 255);
      out[22 + outPos] = (byte)((
          //                                       [76543210]
          //                    [___________________98765432__]
           ((in[ 6 + inPos] & 536870911) >>> 2)) & 255);
      out[23 + outPos] = (byte)((
          //                                       [76543210]
          //                            [___________76543210__________]
           ((in[ 6 + inPos] & 536870911) >>> 10)) & 255);
      out[24 + outPos] = (byte)((
          //                                       [76543210]
          //                                    [___54321098__________________]
           ((in[ 6 + inPos] & 536870911) >>> 18)) & 255);
      out[25 + outPos] = (byte)((
          //                                       [_____210]
          //                                            [876__________________________]
           ((in[ 6 + inPos] & 536870911) >>> 26)
        | //                                       [76543___]
          //               [________________________43210]
           ((in[ 7 + inPos] & 536870911) <<  3)) & 255);
      out[26 + outPos] = (byte)((
          //                                       [76543210]
          //                       [________________21098765_____]
           ((in[ 7 + inPos] & 536870911) >>> 5)) & 255);
      out[27 + outPos] = (byte)((
          //                                       [76543210]
          //                               [________09876543_____________]
           ((in[ 7 + inPos] & 536870911) >>> 13)) & 255);
      out[28 + outPos] = (byte)((
          //                                       [76543210]
          //                                       [87654321_____________________]
           ((in[ 7 + inPos] & 536870911) >>> 21)) & 255);
    }
    public final void pack32Values(final int[] in, final int inPos, final byte[] out, final int outPos) {
      out[ 0 + outPos] = (byte)((
          //                                       [76543210]
          //                  [_____________________76543210]
           ((in[ 0 + inPos] & 536870911))) & 255);
      out[ 1 + outPos] = (byte)((
          //                                       [76543210]
          //                          [_____________54321098________]
           ((in[ 0 + inPos] & 536870911) >>> 8)) & 255);
      out[ 2 + outPos] = (byte)((
          //                                       [76543210]
          //                                  [_____32109876________________]
           ((in[ 0 + inPos] & 536870911) >>> 16)) & 255);
      out[ 3 + outPos] = (byte)((
          //                                       [___43210]
          //                                          [87654________________________]
           ((in[ 0 + inPos] & 536870911) >>> 24)
        | //                                       [765_____]
          //             [__________________________210]
           ((in[ 1 + inPos] & 536870911) <<  5)) & 255);
      out[ 4 + outPos] = (byte)((
          //                                       [76543210]
          //                     [__________________09876543___]
           ((in[ 1 + inPos] & 536870911) >>> 3)) & 255);
      out[ 5 + outPos] = (byte)((
          //                                       [76543210]
          //                             [__________87654321___________]
           ((in[ 1 + inPos] & 536870911) >>> 11)) & 255);
      out[ 6 + outPos] = (byte)((
          //                                       [76543210]
          //                                     [__65432109___________________]
           ((in[ 1 + inPos] & 536870911) >>> 19)) & 255);
      out[ 7 + outPos] = (byte)((
          //                                       [______10]
          //                                             [87___________________________]
           ((in[ 1 + inPos] & 536870911) >>> 27)
        | //                                       [765432__]
          //                [_______________________543210]
           ((in[ 2 + inPos] & 536870911) <<  2)) & 255);
      out[ 8 + outPos] = (byte)((
          //                                       [76543210]
          //                        [_______________32109876______]
           ((in[ 2 + inPos] & 536870911) >>> 6)) & 255);
      out[ 9 + outPos] = (byte)((
          //                                       [76543210]
          //                                [_______10987654______________]
           ((in[ 2 + inPos] & 536870911) >>> 14)) & 255);
      out[10 + outPos] = (byte)((
          //                                       [_6543210]
          //                                        [8765432______________________]
           ((in[ 2 + inPos] & 536870911) >>> 22)
        | //                                       [7_______]
          //           [____________________________0]
           ((in[ 3 + inPos] & 536870911) <<  7)) & 255);
      out[11 + outPos] = (byte)((
          //                                       [76543210]
          //                   [____________________87654321_]
           ((in[ 3 + inPos] & 536870911) >>> 1)) & 255);
      out[12 + outPos] = (byte)((
          //                                       [76543210]
          //                           [____________65432109_________]
           ((in[ 3 + inPos] & 536870911) >>> 9)) & 255);
      out[13 + outPos] = (byte)((
          //                                       [76543210]
          //                                   [____43210987_________________]
           ((in[ 3 + inPos] & 536870911) >>> 17)) & 255);
      out[14 + outPos] = (byte)((
          //                                       [____3210]
          //                                           [8765_________________________]
           ((in[ 3 + inPos] & 536870911) >>> 25)
        | //                                       [7654____]
          //              [_________________________3210]
           ((in[ 4 + inPos] & 536870911) <<  4)) & 255);
      out[15 + outPos] = (byte)((
          //                                       [76543210]
          //                      [_________________10987654____]
           ((in[ 4 + inPos] & 536870911) >>> 4)) & 255);
      out[16 + outPos] = (byte)((
          //                                       [76543210]
          //                              [_________98765432____________]
           ((in[ 4 + inPos] & 536870911) >>> 12)) & 255);
      out[17 + outPos] = (byte)((
          //                                       [76543210]
          //                                      [_76543210____________________]
           ((in[ 4 + inPos] & 536870911) >>> 20)) & 255);
      out[18 + outPos] = (byte)((
          //                                       [_______0]
          //                                              [8____________________________]
           ((in[ 4 + inPos] & 536870911) >>> 28)
        | //                                       [7654321_]
          //                 [______________________6543210]
           ((in[ 5 + inPos] & 536870911) <<  1)) & 255);
      out[19 + outPos] = (byte)((
          //                                       [76543210]
          //                         [______________43210987_______]
           ((in[ 5 + inPos] & 536870911) >>> 7)) & 255);
      out[20 + outPos] = (byte)((
          //                                       [76543210]
          //                                 [______21098765_______________]
           ((in[ 5 + inPos] & 536870911) >>> 15)) & 255);
      out[21 + outPos] = (byte)((
          //                                       [__543210]
          //                                         [876543_______________________]
           ((in[ 5 + inPos] & 536870911) >>> 23)
        | //                                       [76______]
          //            [___________________________10]
           ((in[ 6 + inPos] & 536870911) <<  6)) & 255);
      out[22 + outPos] = (byte)((
          //                                       [76543210]
          //                    [___________________98765432__]
           ((in[ 6 + inPos] & 536870911) >>> 2)) & 255);
      out[23 + outPos] = (byte)((
          //                                       [76543210]
          //                            [___________76543210__________]
           ((in[ 6 + inPos] & 536870911) >>> 10)) & 255);
      out[24 + outPos] = (byte)((
          //                                       [76543210]
          //                                    [___54321098__________________]
           ((in[ 6 + inPos] & 536870911) >>> 18)) & 255);
      out[25 + outPos] = (byte)((
          //                                       [_____210]
          //                                            [876__________________________]
           ((in[ 6 + inPos] & 536870911) >>> 26)
        | //                                       [76543___]
          //               [________________________43210]
           ((in[ 7 + inPos] & 536870911) <<  3)) & 255);
      out[26 + outPos] = (byte)((
          //                                       [76543210]
          //                       [________________21098765_____]
           ((in[ 7 + inPos] & 536870911) >>> 5)) & 255);
      out[27 + outPos] = (byte)((
          //                                       [76543210]
          //                               [________09876543_____________]
           ((in[ 7 + inPos] & 536870911) >>> 13)) & 255);
      out[28 + outPos] = (byte)((
          //                                       [76543210]
          //                                       [87654321_____________________]
           ((in[ 7 + inPos] & 536870911) >>> 21)) & 255);
      out[29 + outPos] = (byte)((
          //                                       [76543210]
          //                  [_____________________76543210]
           ((in[ 8 + inPos] & 536870911))) & 255);
      out[30 + outPos] = (byte)((
          //                                       [76543210]
          //                          [_____________54321098________]
           ((in[ 8 + inPos] & 536870911) >>> 8)) & 255);
      out[31 + outPos] = (byte)((
          //                                       [76543210]
          //                                  [_____32109876________________]
           ((in[ 8 + inPos] & 536870911) >>> 16)) & 255);
      out[32 + outPos] = (byte)((
          //                                       [___43210]
          //                                          [87654________________________]
           ((in[ 8 + inPos] & 536870911) >>> 24)
        | //                                       [765_____]
          //             [__________________________210]
           ((in[ 9 + inPos] & 536870911) <<  5)) & 255);
      out[33 + outPos] = (byte)((
          //                                       [76543210]
          //                     [__________________09876543___]
           ((in[ 9 + inPos] & 536870911) >>> 3)) & 255);
      out[34 + outPos] = (byte)((
          //                                       [76543210]
          //                             [__________87654321___________]
           ((in[ 9 + inPos] & 536870911) >>> 11)) & 255);
      out[35 + outPos] = (byte)((
          //                                       [76543210]
          //                                     [__65432109___________________]
           ((in[ 9 + inPos] & 536870911) >>> 19)) & 255);
      out[36 + outPos] = (byte)((
          //                                       [______10]
          //                                             [87___________________________]
           ((in[ 9 + inPos] & 536870911) >>> 27)
        | //                                       [765432__]
          //                [_______________________543210]
           ((in[10 + inPos] & 536870911) <<  2)) & 255);
      out[37 + outPos] = (byte)((
          //                                       [76543210]
          //                        [_______________32109876______]
           ((in[10 + inPos] & 536870911) >>> 6)) & 255);
      out[38 + outPos] = (byte)((
          //                                       [76543210]
          //                                [_______10987654______________]
           ((in[10 + inPos] & 536870911) >>> 14)) & 255);
      out[39 + outPos] = (byte)((
          //                                       [_6543210]
          //                                        [8765432______________________]
           ((in[10 + inPos] & 536870911) >>> 22)
        | //                                       [7_______]
          //           [____________________________0]
           ((in[11 + inPos] & 536870911) <<  7)) & 255);
      out[40 + outPos] = (byte)((
          //                                       [76543210]
          //                   [____________________87654321_]
           ((in[11 + inPos] & 536870911) >>> 1)) & 255);
      out[41 + outPos] = (byte)((
          //                                       [76543210]
          //                           [____________65432109_________]
           ((in[11 + inPos] & 536870911) >>> 9)) & 255);
      out[42 + outPos] = (byte)((
          //                                       [76543210]
          //                                   [____43210987_________________]
           ((in[11 + inPos] & 536870911) >>> 17)) & 255);
      out[43 + outPos] = (byte)((
          //                                       [____3210]
          //                                           [8765_________________________]
           ((in[11 + inPos] & 536870911) >>> 25)
        | //                                       [7654____]
          //              [_________________________3210]
           ((in[12 + inPos] & 536870911) <<  4)) & 255);
      out[44 + outPos] = (byte)((
          //                                       [76543210]
          //                      [_________________10987654____]
           ((in[12 + inPos] & 536870911) >>> 4)) & 255);
      out[45 + outPos] = (byte)((
          //                                       [76543210]
          //                              [_________98765432____________]
           ((in[12 + inPos] & 536870911) >>> 12)) & 255);
      out[46 + outPos] = (byte)((
          //                                       [76543210]
          //                                      [_76543210____________________]
           ((in[12 + inPos] & 536870911) >>> 20)) & 255);
      out[47 + outPos] = (byte)((
          //                                       [_______0]
          //                                              [8____________________________]
           ((in[12 + inPos] & 536870911) >>> 28)
        | //                                       [7654321_]
          //                 [______________________6543210]
           ((in[13 + inPos] & 536870911) <<  1)) & 255);
      out[48 + outPos] = (byte)((
          //                                       [76543210]
          //                         [______________43210987_______]
           ((in[13 + inPos] & 536870911) >>> 7)) & 255);
      out[49 + outPos] = (byte)((
          //                                       [76543210]
          //                                 [______21098765_______________]
           ((in[13 + inPos] & 536870911) >>> 15)) & 255);
      out[50 + outPos] = (byte)((
          //                                       [__543210]
          //                                         [876543_______________________]
           ((in[13 + inPos] & 536870911) >>> 23)
        | //                                       [76______]
          //            [___________________________10]
           ((in[14 + inPos] & 536870911) <<  6)) & 255);
      out[51 + outPos] = (byte)((
          //                                       [76543210]
          //                    [___________________98765432__]
           ((in[14 + inPos] & 536870911) >>> 2)) & 255);
      out[52 + outPos] = (byte)((
          //                                       [76543210]
          //                            [___________76543210__________]
           ((in[14 + inPos] & 536870911) >>> 10)) & 255);
      out[53 + outPos] = (byte)((
          //                                       [76543210]
          //                                    [___54321098__________________]
           ((in[14 + inPos] & 536870911) >>> 18)) & 255);
      out[54 + outPos] = (byte)((
          //                                       [_____210]
          //                                            [876__________________________]
           ((in[14 + inPos] & 536870911) >>> 26)
        | //                                       [76543___]
          //               [________________________43210]
           ((in[15 + inPos] & 536870911) <<  3)) & 255);
      out[55 + outPos] = (byte)((
          //                                       [76543210]
          //                       [________________21098765_____]
           ((in[15 + inPos] & 536870911) >>> 5)) & 255);
      out[56 + outPos] = (byte)((
          //                                       [76543210]
          //                               [________09876543_____________]
           ((in[15 + inPos] & 536870911) >>> 13)) & 255);
      out[57 + outPos] = (byte)((
          //                                       [76543210]
          //                                       [87654321_____________________]
           ((in[15 + inPos] & 536870911) >>> 21)) & 255);
      out[58 + outPos] = (byte)((
          //                                       [76543210]
          //                  [_____________________76543210]
           ((in[16 + inPos] & 536870911))) & 255);
      out[59 + outPos] = (byte)((
          //                                       [76543210]
          //                          [_____________54321098________]
           ((in[16 + inPos] & 536870911) >>> 8)) & 255);
      out[60 + outPos] = (byte)((
          //                                       [76543210]
          //                                  [_____32109876________________]
           ((in[16 + inPos] & 536870911) >>> 16)) & 255);
      out[61 + outPos] = (byte)((
          //                                       [___43210]
          //                                          [87654________________________]
           ((in[16 + inPos] & 536870911) >>> 24)
        | //                                       [765_____]
          //             [__________________________210]
           ((in[17 + inPos] & 536870911) <<  5)) & 255);
      out[62 + outPos] = (byte)((
          //                                       [76543210]
          //                     [__________________09876543___]
           ((in[17 + inPos] & 536870911) >>> 3)) & 255);
      out[63 + outPos] = (byte)((
          //                                       [76543210]
          //                             [__________87654321___________]
           ((in[17 + inPos] & 536870911) >>> 11)) & 255);
      out[64 + outPos] = (byte)((
          //                                       [76543210]
          //                                     [__65432109___________________]
           ((in[17 + inPos] & 536870911) >>> 19)) & 255);
      out[65 + outPos] = (byte)((
          //                                       [______10]
          //                                             [87___________________________]
           ((in[17 + inPos] & 536870911) >>> 27)
        | //                                       [765432__]
          //                [_______________________543210]
           ((in[18 + inPos] & 536870911) <<  2)) & 255);
      out[66 + outPos] = (byte)((
          //                                       [76543210]
          //                        [_______________32109876______]
           ((in[18 + inPos] & 536870911) >>> 6)) & 255);
      out[67 + outPos] = (byte)((
          //                                       [76543210]
          //                                [_______10987654______________]
           ((in[18 + inPos] & 536870911) >>> 14)) & 255);
      out[68 + outPos] = (byte)((
          //                                       [_6543210]
          //                                        [8765432______________________]
           ((in[18 + inPos] & 536870911) >>> 22)
        | //                                       [7_______]
          //           [____________________________0]
           ((in[19 + inPos] & 536870911) <<  7)) & 255);
      out[69 + outPos] = (byte)((
          //                                       [76543210]
          //                   [____________________87654321_]
           ((in[19 + inPos] & 536870911) >>> 1)) & 255);
      out[70 + outPos] = (byte)((
          //                                       [76543210]
          //                           [____________65432109_________]
           ((in[19 + inPos] & 536870911) >>> 9)) & 255);
      out[71 + outPos] = (byte)((
          //                                       [76543210]
          //                                   [____43210987_________________]
           ((in[19 + inPos] & 536870911) >>> 17)) & 255);
      out[72 + outPos] = (byte)((
          //                                       [____3210]
          //                                           [8765_________________________]
           ((in[19 + inPos] & 536870911) >>> 25)
        | //                                       [7654____]
          //              [_________________________3210]
           ((in[20 + inPos] & 536870911) <<  4)) & 255);
      out[73 + outPos] = (byte)((
          //                                       [76543210]
          //                      [_________________10987654____]
           ((in[20 + inPos] & 536870911) >>> 4)) & 255);
      out[74 + outPos] = (byte)((
          //                                       [76543210]
          //                              [_________98765432____________]
           ((in[20 + inPos] & 536870911) >>> 12)) & 255);
      out[75 + outPos] = (byte)((
          //                                       [76543210]
          //                                      [_76543210____________________]
           ((in[20 + inPos] & 536870911) >>> 20)) & 255);
      out[76 + outPos] = (byte)((
          //                                       [_______0]
          //                                              [8____________________________]
           ((in[20 + inPos] & 536870911) >>> 28)
        | //                                       [7654321_]
          //                 [______________________6543210]
           ((in[21 + inPos] & 536870911) <<  1)) & 255);
      out[77 + outPos] = (byte)((
          //                                       [76543210]
          //                         [______________43210987_______]
           ((in[21 + inPos] & 536870911) >>> 7)) & 255);
      out[78 + outPos] = (byte)((
          //                                       [76543210]
          //                                 [______21098765_______________]
           ((in[21 + inPos] & 536870911) >>> 15)) & 255);
      out[79 + outPos] = (byte)((
          //                                       [__543210]
          //                                         [876543_______________________]
           ((in[21 + inPos] & 536870911) >>> 23)
        | //                                       [76______]
          //            [___________________________10]
           ((in[22 + inPos] & 536870911) <<  6)) & 255);
      out[80 + outPos] = (byte)((
          //                                       [76543210]
          //                    [___________________98765432__]
           ((in[22 + inPos] & 536870911) >>> 2)) & 255);
      out[81 + outPos] = (byte)((
          //                                       [76543210]
          //                            [___________76543210__________]
           ((in[22 + inPos] & 536870911) >>> 10)) & 255);
      out[82 + outPos] = (byte)((
          //                                       [76543210]
          //                                    [___54321098__________________]
           ((in[22 + inPos] & 536870911) >>> 18)) & 255);
      out[83 + outPos] = (byte)((
          //                                       [_____210]
          //                                            [876__________________________]
           ((in[22 + inPos] & 536870911) >>> 26)
        | //                                       [76543___]
          //               [________________________43210]
           ((in[23 + inPos] & 536870911) <<  3)) & 255);
      out[84 + outPos] = (byte)((
          //                                       [76543210]
          //                       [________________21098765_____]
           ((in[23 + inPos] & 536870911) >>> 5)) & 255);
      out[85 + outPos] = (byte)((
          //                                       [76543210]
          //                               [________09876543_____________]
           ((in[23 + inPos] & 536870911) >>> 13)) & 255);
      out[86 + outPos] = (byte)((
          //                                       [76543210]
          //                                       [87654321_____________________]
           ((in[23 + inPos] & 536870911) >>> 21)) & 255);
      out[87 + outPos] = (byte)((
          //                                       [76543210]
          //                  [_____________________76543210]
           ((in[24 + inPos] & 536870911))) & 255);
      out[88 + outPos] = (byte)((
          //                                       [76543210]
          //                          [_____________54321098________]
           ((in[24 + inPos] & 536870911) >>> 8)) & 255);
      out[89 + outPos] = (byte)((
          //                                       [76543210]
          //                                  [_____32109876________________]
           ((in[24 + inPos] & 536870911) >>> 16)) & 255);
      out[90 + outPos] = (byte)((
          //                                       [___43210]
          //                                          [87654________________________]
           ((in[24 + inPos] & 536870911) >>> 24)
        | //                                       [765_____]
          //             [__________________________210]
           ((in[25 + inPos] & 536870911) <<  5)) & 255);
      out[91 + outPos] = (byte)((
          //                                       [76543210]
          //                     [__________________09876543___]
           ((in[25 + inPos] & 536870911) >>> 3)) & 255);
      out[92 + outPos] = (byte)((
          //                                       [76543210]
          //                             [__________87654321___________]
           ((in[25 + inPos] & 536870911) >>> 11)) & 255);
      out[93 + outPos] = (byte)((
          //                                       [76543210]
          //                                     [__65432109___________________]
           ((in[25 + inPos] & 536870911) >>> 19)) & 255);
      out[94 + outPos] = (byte)((
          //                                       [______10]
          //                                             [87___________________________]
           ((in[25 + inPos] & 536870911) >>> 27)
        | //                                       [765432__]
          //                [_______________________543210]
           ((in[26 + inPos] & 536870911) <<  2)) & 255);
      out[95 + outPos] = (byte)((
          //                                       [76543210]
          //                        [_______________32109876______]
           ((in[26 + inPos] & 536870911) >>> 6)) & 255);
      out[96 + outPos] = (byte)((
          //                                       [76543210]
          //                                [_______10987654______________]
           ((in[26 + inPos] & 536870911) >>> 14)) & 255);
      out[97 + outPos] = (byte)((
          //                                       [_6543210]
          //                                        [8765432______________________]
           ((in[26 + inPos] & 536870911) >>> 22)
        | //                                       [7_______]
          //           [____________________________0]
           ((in[27 + inPos] & 536870911) <<  7)) & 255);
      out[98 + outPos] = (byte)((
          //                                       [76543210]
          //                   [____________________87654321_]
           ((in[27 + inPos] & 536870911) >>> 1)) & 255);
      out[99 + outPos] = (byte)((
          //                                       [76543210]
          //                           [____________65432109_________]
           ((in[27 + inPos] & 536870911) >>> 9)) & 255);
      out[100 + outPos] = (byte)((
          //                                       [76543210]
          //                                   [____43210987_________________]
           ((in[27 + inPos] & 536870911) >>> 17)) & 255);
      out[101 + outPos] = (byte)((
          //                                       [____3210]
          //                                           [8765_________________________]
           ((in[27 + inPos] & 536870911) >>> 25)
        | //                                       [7654____]
          //              [_________________________3210]
           ((in[28 + inPos] & 536870911) <<  4)) & 255);
      out[102 + outPos] = (byte)((
          //                                       [76543210]
          //                      [_________________10987654____]
           ((in[28 + inPos] & 536870911) >>> 4)) & 255);
      out[103 + outPos] = (byte)((
          //                                       [76543210]
          //                              [_________98765432____________]
           ((in[28 + inPos] & 536870911) >>> 12)) & 255);
      out[104 + outPos] = (byte)((
          //                                       [76543210]
          //                                      [_76543210____________________]
           ((in[28 + inPos] & 536870911) >>> 20)) & 255);
      out[105 + outPos] = (byte)((
          //                                       [_______0]
          //                                              [8____________________________]
           ((in[28 + inPos] & 536870911) >>> 28)
        | //                                       [7654321_]
          //                 [______________________6543210]
           ((in[29 + inPos] & 536870911) <<  1)) & 255);
      out[106 + outPos] = (byte)((
          //                                       [76543210]
          //                         [______________43210987_______]
           ((in[29 + inPos] & 536870911) >>> 7)) & 255);
      out[107 + outPos] = (byte)((
          //                                       [76543210]
          //                                 [______21098765_______________]
           ((in[29 + inPos] & 536870911) >>> 15)) & 255);
      out[108 + outPos] = (byte)((
          //                                       [__543210]
          //                                         [876543_______________________]
           ((in[29 + inPos] & 536870911) >>> 23)
        | //                                       [76______]
          //            [___________________________10]
           ((in[30 + inPos] & 536870911) <<  6)) & 255);
      out[109 + outPos] = (byte)((
          //                                       [76543210]
          //                    [___________________98765432__]
           ((in[30 + inPos] & 536870911) >>> 2)) & 255);
      out[110 + outPos] = (byte)((
          //                                       [76543210]
          //                            [___________76543210__________]
           ((in[30 + inPos] & 536870911) >>> 10)) & 255);
      out[111 + outPos] = (byte)((
          //                                       [76543210]
          //                                    [___54321098__________________]
           ((in[30 + inPos] & 536870911) >>> 18)) & 255);
      out[112 + outPos] = (byte)((
          //                                       [_____210]
          //                                            [876__________________________]
           ((in[30 + inPos] & 536870911) >>> 26)
        | //                                       [76543___]
          //               [________________________43210]
           ((in[31 + inPos] & 536870911) <<  3)) & 255);
      out[113 + outPos] = (byte)((
          //                                       [76543210]
          //                       [________________21098765_____]
           ((in[31 + inPos] & 536870911) >>> 5)) & 255);
      out[114 + outPos] = (byte)((
          //                                       [76543210]
          //                               [________09876543_____________]
           ((in[31 + inPos] & 536870911) >>> 13)) & 255);
      out[115 + outPos] = (byte)((
          //                                       [76543210]
          //                                       [87654321_____________________]
           ((in[31 + inPos] & 536870911) >>> 21)) & 255);
    }
    public final void unpack8Values(final byte[] in, final int inPos, final int[] out, final int outPos) {
      out[ 0 + outPos] =
          //                                       [76543210]
          //                  [_____________________76543210]
            ((((int)in[ 0 + inPos]) ) & 255)
        | //                                       [76543210]
          //                          [_____________54321098________]
            ((((int)in[ 1 + inPos]) <<  8) & 65535)
        | //                                       [76543210]
          //                                  [_____32109876________________]
            ((((int)in[ 2 + inPos]) <<  16) & 16777215)
        | //                                       [___43210]
          //                                          [87654________________________]
            ((((int)in[ 3 + inPos]) <<  24) & 536870911);
      out[ 1 + outPos] =
          //                                       [765_____]
          //             [__________________________210]
            ((((int)in[ 3 + inPos]) >>  5) & 7)
        | //                                       [76543210]
          //                     [__________________09876543___]
            ((((int)in[ 4 + inPos]) <<  3) & 2047)
        | //                                       [76543210]
          //                             [__________87654321___________]
            ((((int)in[ 5 + inPos]) <<  11) & 524287)
        | //                                       [76543210]
          //                                     [__65432109___________________]
            ((((int)in[ 6 + inPos]) <<  19) & 134217727)
        | //                                       [______10]
          //                                             [87___________________________]
            ((((int)in[ 7 + inPos]) <<  27) & 536870911);
      out[ 2 + outPos] =
          //                                       [765432__]
          //                [_______________________543210]
            ((((int)in[ 7 + inPos]) >>  2) & 63)
        | //                                       [76543210]
          //                        [_______________32109876______]
            ((((int)in[ 8 + inPos]) <<  6) & 16383)
        | //                                       [76543210]
          //                                [_______10987654______________]
            ((((int)in[ 9 + inPos]) <<  14) & 4194303)
        | //                                       [_6543210]
          //                                        [8765432______________________]
            ((((int)in[10 + inPos]) <<  22) & 536870911);
      out[ 3 + outPos] =
          //                                       [7_______]
          //           [____________________________0]
            ((((int)in[10 + inPos]) >>  7) & 1)
        | //                                       [76543210]
          //                   [____________________87654321_]
            ((((int)in[11 + inPos]) <<  1) & 511)
        | //                                       [76543210]
          //                           [____________65432109_________]
            ((((int)in[12 + inPos]) <<  9) & 131071)
        | //                                       [76543210]
          //                                   [____43210987_________________]
            ((((int)in[13 + inPos]) <<  17) & 33554431)
        | //                                       [____3210]
          //                                           [8765_________________________]
            ((((int)in[14 + inPos]) <<  25) & 536870911);
      out[ 4 + outPos] =
          //                                       [7654____]
          //              [_________________________3210]
            ((((int)in[14 + inPos]) >>  4) & 15)
        | //                                       [76543210]
          //                      [_________________10987654____]
            ((((int)in[15 + inPos]) <<  4) & 4095)
        | //                                       [76543210]
          //                              [_________98765432____________]
            ((((int)in[16 + inPos]) <<  12) & 1048575)
        | //                                       [76543210]
          //                                      [_76543210____________________]
            ((((int)in[17 + inPos]) <<  20) & 268435455)
        | //                                       [_______0]
          //                                              [8____________________________]
            ((((int)in[18 + inPos]) <<  28) & 536870911);
      out[ 5 + outPos] =
          //                                       [7654321_]
          //                 [______________________6543210]
            ((((int)in[18 + inPos]) >>  1) & 127)
        | //                                       [76543210]
          //                         [______________43210987_______]
            ((((int)in[19 + inPos]) <<  7) & 32767)
        | //                                       [76543210]
          //                                 [______21098765_______________]
            ((((int)in[20 + inPos]) <<  15) & 8388607)
        | //                                       [__543210]
          //                                         [876543_______________________]
            ((((int)in[21 + inPos]) <<  23) & 536870911);
      out[ 6 + outPos] =
          //                                       [76______]
          //            [___________________________10]
            ((((int)in[21 + inPos]) >>  6) & 3)
        | //                                       [76543210]
          //                    [___________________98765432__]
            ((((int)in[22 + inPos]) <<  2) & 1023)
        | //                                       [76543210]
          //                            [___________76543210__________]
            ((((int)in[23 + inPos]) <<  10) & 262143)
        | //                                       [76543210]
          //                                    [___54321098__________________]
            ((((int)in[24 + inPos]) <<  18) & 67108863)
        | //                                       [_____210]
          //                                            [876__________________________]
            ((((int)in[25 + inPos]) <<  26) & 536870911);
      out[ 7 + outPos] =
          //                                       [76543___]
          //               [________________________43210]
            ((((int)in[25 + inPos]) >>  3) & 31)
        | //                                       [76543210]
          //                       [________________21098765_____]
            ((((int)in[26 + inPos]) <<  5) & 8191)
        | //                                       [76543210]
          //                               [________09876543_____________]
            ((((int)in[27 + inPos]) <<  13) & 2097151)
        | //                                       [76543210]
          //                                       [87654321_____________________]
            ((((int)in[28 + inPos]) <<  21) & 536870911);
    }
    public final void unpack8Values(final ByteBuffer in, final int inPos, final int[] out, final int outPos) {
      out[ 0 + outPos] =
          //                                       [76543210]
          //                  [_____________________76543210]
            ((((int)in.get( 0 + inPos)) ) & 255)
        | //                                       [76543210]
          //                          [_____________54321098________]
            ((((int)in.get( 1 + inPos)) <<  8) & 65535)
        | //                                       [76543210]
          //                                  [_____32109876________________]
            ((((int)in.get( 2 + inPos)) <<  16) & 16777215)
        | //                                       [___43210]
          //                                          [87654________________________]
            ((((int)in.get( 3 + inPos)) <<  24) & 536870911);
      out[ 1 + outPos] =
          //                                       [765_____]
          //             [__________________________210]
            ((((int)in.get( 3 + inPos)) >>  5) & 7)
        | //                                       [76543210]
          //                     [__________________09876543___]
            ((((int)in.get( 4 + inPos)) <<  3) & 2047)
        | //                                       [76543210]
          //                             [__________87654321___________]
            ((((int)in.get( 5 + inPos)) <<  11) & 524287)
        | //                                       [76543210]
          //                                     [__65432109___________________]
            ((((int)in.get( 6 + inPos)) <<  19) & 134217727)
        | //                                       [______10]
          //                                             [87___________________________]
            ((((int)in.get( 7 + inPos)) <<  27) & 536870911);
      out[ 2 + outPos] =
          //                                       [765432__]
          //                [_______________________543210]
            ((((int)in.get( 7 + inPos)) >>  2) & 63)
        | //                                       [76543210]
          //                        [_______________32109876______]
            ((((int)in.get( 8 + inPos)) <<  6) & 16383)
        | //                                       [76543210]
          //                                [_______10987654______________]
            ((((int)in.get( 9 + inPos)) <<  14) & 4194303)
        | //                                       [_6543210]
          //                                        [8765432______________________]
            ((((int)in.get(10 + inPos)) <<  22) & 536870911);
      out[ 3 + outPos] =
          //                                       [7_______]
          //           [____________________________0]
            ((((int)in.get(10 + inPos)) >>  7) & 1)
        | //                                       [76543210]
          //                   [____________________87654321_]
            ((((int)in.get(11 + inPos)) <<  1) & 511)
        | //                                       [76543210]
          //                           [____________65432109_________]
            ((((int)in.get(12 + inPos)) <<  9) & 131071)
        | //                                       [76543210]
          //                                   [____43210987_________________]
            ((((int)in.get(13 + inPos)) <<  17) & 33554431)
        | //                                       [____3210]
          //                                           [8765_________________________]
            ((((int)in.get(14 + inPos)) <<  25) & 536870911);
      out[ 4 + outPos] =
          //                                       [7654____]
          //              [_________________________3210]
            ((((int)in.get(14 + inPos)) >>  4) & 15)
        | //                                       [76543210]
          //                      [_________________10987654____]
            ((((int)in.get(15 + inPos)) <<  4) & 4095)
        | //                                       [76543210]
          //                              [_________98765432____________]
            ((((int)in.get(16 + inPos)) <<  12) & 1048575)
        | //                                       [76543210]
          //                                      [_76543210____________________]
            ((((int)in.get(17 + inPos)) <<  20) & 268435455)
        | //                                       [_______0]
          //                                              [8____________________________]
            ((((int)in.get(18 + inPos)) <<  28) & 536870911);
      out[ 5 + outPos] =
          //                                       [7654321_]
          //                 [______________________6543210]
            ((((int)in.get(18 + inPos)) >>  1) & 127)
        | //                                       [76543210]
          //                         [______________43210987_______]
            ((((int)in.get(19 + inPos)) <<  7) & 32767)
        | //                                       [76543210]
          //                                 [______21098765_______________]
            ((((int)in.get(20 + inPos)) <<  15) & 8388607)
        | //                                       [__543210]
          //                                         [876543_______________________]
            ((((int)in.get(21 + inPos)) <<  23) & 536870911);
      out[ 6 + outPos] =
          //                                       [76______]
          //            [___________________________10]
            ((((int)in.get(21 + inPos)) >>  6) & 3)
        | //                                       [76543210]
          //                    [___________________98765432__]
            ((((int)in.get(22 + inPos)) <<  2) & 1023)
        | //                                       [76543210]
          //                            [___________76543210__________]
            ((((int)in.get(23 + inPos)) <<  10) & 262143)
        | //                                       [76543210]
          //                                    [___54321098__________________]
            ((((int)in.get(24 + inPos)) <<  18) & 67108863)
        | //                                       [_____210]
          //                                            [876__________________________]
            ((((int)in.get(25 + inPos)) <<  26) & 536870911);
      out[ 7 + outPos] =
          //                                       [76543___]
          //               [________________________43210]
            ((((int)in.get(25 + inPos)) >>  3) & 31)
        | //                                       [76543210]
          //                       [________________21098765_____]
            ((((int)in.get(26 + inPos)) <<  5) & 8191)
        | //                                       [76543210]
          //                               [________09876543_____________]
            ((((int)in.get(27 + inPos)) <<  13) & 2097151)
        | //                                       [76543210]
          //                                       [87654321_____________________]
            ((((int)in.get(28 + inPos)) <<  21) & 536870911);
    }
    public final void unpack32Values(final byte[] in, final int inPos, final int[] out, final int outPos) {
      out[ 0 + outPos] =
          //                                       [76543210]
          //                  [_____________________76543210]
            ((((int)in[ 0 + inPos]) ) & 255)
        | //                                       [76543210]
          //                          [_____________54321098________]
            ((((int)in[ 1 + inPos]) <<  8) & 65535)
        | //                                       [76543210]
          //                                  [_____32109876________________]
            ((((int)in[ 2 + inPos]) <<  16) & 16777215)
        | //                                       [___43210]
          //                                          [87654________________________]
            ((((int)in[ 3 + inPos]) <<  24) & 536870911);
      out[ 1 + outPos] =
          //                                       [765_____]
          //             [__________________________210]
            ((((int)in[ 3 + inPos]) >>  5) & 7)
        | //                                       [76543210]
          //                     [__________________09876543___]
            ((((int)in[ 4 + inPos]) <<  3) & 2047)
        | //                                       [76543210]
          //                             [__________87654321___________]
            ((((int)in[ 5 + inPos]) <<  11) & 524287)
        | //                                       [76543210]
          //                                     [__65432109___________________]
            ((((int)in[ 6 + inPos]) <<  19) & 134217727)
        | //                                       [______10]
          //                                             [87___________________________]
            ((((int)in[ 7 + inPos]) <<  27) & 536870911);
      out[ 2 + outPos] =
          //                                       [765432__]
          //                [_______________________543210]
            ((((int)in[ 7 + inPos]) >>  2) & 63)
        | //                                       [76543210]
          //                        [_______________32109876______]
            ((((int)in[ 8 + inPos]) <<  6) & 16383)
        | //                                       [76543210]
          //                                [_______10987654______________]
            ((((int)in[ 9 + inPos]) <<  14) & 4194303)
        | //                                       [_6543210]
          //                                        [8765432______________________]
            ((((int)in[10 + inPos]) <<  22) & 536870911);
      out[ 3 + outPos] =
          //                                       [7_______]
          //           [____________________________0]
            ((((int)in[10 + inPos]) >>  7) & 1)
        | //                                       [76543210]
          //                   [____________________87654321_]
            ((((int)in[11 + inPos]) <<  1) & 511)
        | //                                       [76543210]
          //                           [____________65432109_________]
            ((((int)in[12 + inPos]) <<  9) & 131071)
        | //                                       [76543210]
          //                                   [____43210987_________________]
            ((((int)in[13 + inPos]) <<  17) & 33554431)
        | //                                       [____3210]
          //                                           [8765_________________________]
            ((((int)in[14 + inPos]) <<  25) & 536870911);
      out[ 4 + outPos] =
          //                                       [7654____]
          //              [_________________________3210]
            ((((int)in[14 + inPos]) >>  4) & 15)
        | //                                       [76543210]
          //                      [_________________10987654____]
            ((((int)in[15 + inPos]) <<  4) & 4095)
        | //                                       [76543210]
          //                              [_________98765432____________]
            ((((int)in[16 + inPos]) <<  12) & 1048575)
        | //                                       [76543210]
          //                                      [_76543210____________________]
            ((((int)in[17 + inPos]) <<  20) & 268435455)
        | //                                       [_______0]
          //                                              [8____________________________]
            ((((int)in[18 + inPos]) <<  28) & 536870911);
      out[ 5 + outPos] =
          //                                       [7654321_]
          //                 [______________________6543210]
            ((((int)in[18 + inPos]) >>  1) & 127)
        | //                                       [76543210]
          //                         [______________43210987_______]
            ((((int)in[19 + inPos]) <<  7) & 32767)
        | //                                       [76543210]
          //                                 [______21098765_______________]
            ((((int)in[20 + inPos]) <<  15) & 8388607)
        | //                                       [__543210]
          //                                         [876543_______________________]
            ((((int)in[21 + inPos]) <<  23) & 536870911);
      out[ 6 + outPos] =
          //                                       [76______]
          //            [___________________________10]
            ((((int)in[21 + inPos]) >>  6) & 3)
        | //                                       [76543210]
          //                    [___________________98765432__]
            ((((int)in[22 + inPos]) <<  2) & 1023)
        | //                                       [76543210]
          //                            [___________76543210__________]
            ((((int)in[23 + inPos]) <<  10) & 262143)
        | //                                       [76543210]
          //                                    [___54321098__________________]
            ((((int)in[24 + inPos]) <<  18) & 67108863)
        | //                                       [_____210]
          //                                            [876__________________________]
            ((((int)in[25 + inPos]) <<  26) & 536870911);
      out[ 7 + outPos] =
          //                                       [76543___]
          //               [________________________43210]
            ((((int)in[25 + inPos]) >>  3) & 31)
        | //                                       [76543210]
          //                       [________________21098765_____]
            ((((int)in[26 + inPos]) <<  5) & 8191)
        | //                                       [76543210]
          //                               [________09876543_____________]
            ((((int)in[27 + inPos]) <<  13) & 2097151)
        | //                                       [76543210]
          //                                       [87654321_____________________]
            ((((int)in[28 + inPos]) <<  21) & 536870911);
      out[ 8 + outPos] =
          //                                       [76543210]
          //                  [_____________________76543210]
            ((((int)in[29 + inPos]) ) & 255)
        | //                                       [76543210]
          //                          [_____________54321098________]
            ((((int)in[30 + inPos]) <<  8) & 65535)
        | //                                       [76543210]
          //                                  [_____32109876________________]
            ((((int)in[31 + inPos]) <<  16) & 16777215)
        | //                                       [___43210]
          //                                          [87654________________________]
            ((((int)in[32 + inPos]) <<  24) & 536870911);
      out[ 9 + outPos] =
          //                                       [765_____]
          //             [__________________________210]
            ((((int)in[32 + inPos]) >>  5) & 7)
        | //                                       [76543210]
          //                     [__________________09876543___]
            ((((int)in[33 + inPos]) <<  3) & 2047)
        | //                                       [76543210]
          //                             [__________87654321___________]
            ((((int)in[34 + inPos]) <<  11) & 524287)
        | //                                       [76543210]
          //                                     [__65432109___________________]
            ((((int)in[35 + inPos]) <<  19) & 134217727)
        | //                                       [______10]
          //                                             [87___________________________]
            ((((int)in[36 + inPos]) <<  27) & 536870911);
      out[10 + outPos] =
          //                                       [765432__]
          //                [_______________________543210]
            ((((int)in[36 + inPos]) >>  2) & 63)
        | //                                       [76543210]
          //                        [_______________32109876______]
            ((((int)in[37 + inPos]) <<  6) & 16383)
        | //                                       [76543210]
          //                                [_______10987654______________]
            ((((int)in[38 + inPos]) <<  14) & 4194303)
        | //                                       [_6543210]
          //                                        [8765432______________________]
            ((((int)in[39 + inPos]) <<  22) & 536870911);
      out[11 + outPos] =
          //                                       [7_______]
          //           [____________________________0]
            ((((int)in[39 + inPos]) >>  7) & 1)
        | //                                       [76543210]
          //                   [____________________87654321_]
            ((((int)in[40 + inPos]) <<  1) & 511)
        | //                                       [76543210]
          //                           [____________65432109_________]
            ((((int)in[41 + inPos]) <<  9) & 131071)
        | //                                       [76543210]
          //                                   [____43210987_________________]
            ((((int)in[42 + inPos]) <<  17) & 33554431)
        | //                                       [____3210]
          //                                           [8765_________________________]
            ((((int)in[43 + inPos]) <<  25) & 536870911);
      out[12 + outPos] =
          //                                       [7654____]
          //              [_________________________3210]
            ((((int)in[43 + inPos]) >>  4) & 15)
        | //                                       [76543210]
          //                      [_________________10987654____]
            ((((int)in[44 + inPos]) <<  4) & 4095)
        | //                                       [76543210]
          //                              [_________98765432____________]
            ((((int)in[45 + inPos]) <<  12) & 1048575)
        | //                                       [76543210]
          //                                      [_76543210____________________]
            ((((int)in[46 + inPos]) <<  20) & 268435455)
        | //                                       [_______0]
          //                                              [8____________________________]
            ((((int)in[47 + inPos]) <<  28) & 536870911);
      out[13 + outPos] =
          //                                       [7654321_]
          //                 [______________________6543210]
            ((((int)in[47 + inPos]) >>  1) & 127)
        | //                                       [76543210]
          //                         [______________43210987_______]
            ((((int)in[48 + inPos]) <<  7) & 32767)
        | //                                       [76543210]
          //                                 [______21098765_______________]
            ((((int)in[49 + inPos]) <<  15) & 8388607)
        | //                                       [__543210]
          //                                         [876543_______________________]
            ((((int)in[50 + inPos]) <<  23) & 536870911);
      out[14 + outPos] =
          //                                       [76______]
          //            [___________________________10]
            ((((int)in[50 + inPos]) >>  6) & 3)
        | //                                       [76543210]
          //                    [___________________98765432__]
            ((((int)in[51 + inPos]) <<  2) & 1023)
        | //                                       [76543210]
          //                            [___________76543210__________]
            ((((int)in[52 + inPos]) <<  10) & 262143)
        | //                                       [76543210]
          //                                    [___54321098__________________]
            ((((int)in[53 + inPos]) <<  18) & 67108863)
        | //                                       [_____210]
          //                                            [876__________________________]
            ((((int)in[54 + inPos]) <<  26) & 536870911);
      out[15 + outPos] =
          //                                       [76543___]
          //               [________________________43210]
            ((((int)in[54 + inPos]) >>  3) & 31)
        | //                                       [76543210]
          //                       [________________21098765_____]
            ((((int)in[55 + inPos]) <<  5) & 8191)
        | //                                       [76543210]
          //                               [________09876543_____________]
            ((((int)in[56 + inPos]) <<  13) & 2097151)
        | //                                       [76543210]
          //                                       [87654321_____________________]
            ((((int)in[57 + inPos]) <<  21) & 536870911);
      out[16 + outPos] =
          //                                       [76543210]
          //                  [_____________________76543210]
            ((((int)in[58 + inPos]) ) & 255)
        | //                                       [76543210]
          //                          [_____________54321098________]
            ((((int)in[59 + inPos]) <<  8) & 65535)
        | //                                       [76543210]
          //                                  [_____32109876________________]
            ((((int)in[60 + inPos]) <<  16) & 16777215)
        | //                                       [___43210]
          //                                          [87654________________________]
            ((((int)in[61 + inPos]) <<  24) & 536870911);
      out[17 + outPos] =
          //                                       [765_____]
          //             [__________________________210]
            ((((int)in[61 + inPos]) >>  5) & 7)
        | //                                       [76543210]
          //                     [__________________09876543___]
            ((((int)in[62 + inPos]) <<  3) & 2047)
        | //                                       [76543210]
          //                             [__________87654321___________]
            ((((int)in[63 + inPos]) <<  11) & 524287)
        | //                                       [76543210]
          //                                     [__65432109___________________]
            ((((int)in[64 + inPos]) <<  19) & 134217727)
        | //                                       [______10]
          //                                             [87___________________________]
            ((((int)in[65 + inPos]) <<  27) & 536870911);
      out[18 + outPos] =
          //                                       [765432__]
          //                [_______________________543210]
            ((((int)in[65 + inPos]) >>  2) & 63)
        | //                                       [76543210]
          //                        [_______________32109876______]
            ((((int)in[66 + inPos]) <<  6) & 16383)
        | //                                       [76543210]
          //                                [_______10987654______________]
            ((((int)in[67 + inPos]) <<  14) & 4194303)
        | //                                       [_6543210]
          //                                        [8765432______________________]
            ((((int)in[68 + inPos]) <<  22) & 536870911);
      out[19 + outPos] =
          //                                       [7_______]
          //           [____________________________0]
            ((((int)in[68 + inPos]) >>  7) & 1)
        | //                                       [76543210]
          //                   [____________________87654321_]
            ((((int)in[69 + inPos]) <<  1) & 511)
        | //                                       [76543210]
          //                           [____________65432109_________]
            ((((int)in[70 + inPos]) <<  9) & 131071)
        | //                                       [76543210]
          //                                   [____43210987_________________]
            ((((int)in[71 + inPos]) <<  17) & 33554431)
        | //                                       [____3210]
          //                                           [8765_________________________]
            ((((int)in[72 + inPos]) <<  25) & 536870911);
      out[20 + outPos] =
          //                                       [7654____]
          //              [_________________________3210]
            ((((int)in[72 + inPos]) >>  4) & 15)
        | //                                       [76543210]
          //                      [_________________10987654____]
            ((((int)in[73 + inPos]) <<  4) & 4095)
        | //                                       [76543210]
          //                              [_________98765432____________]
            ((((int)in[74 + inPos]) <<  12) & 1048575)
        | //                                       [76543210]
          //                                      [_76543210____________________]
            ((((int)in[75 + inPos]) <<  20) & 268435455)
        | //                                       [_______0]
          //                                              [8____________________________]
            ((((int)in[76 + inPos]) <<  28) & 536870911);
      out[21 + outPos] =
          //                                       [7654321_]
          //                 [______________________6543210]
            ((((int)in[76 + inPos]) >>  1) & 127)
        | //                                       [76543210]
          //                         [______________43210987_______]
            ((((int)in[77 + inPos]) <<  7) & 32767)
        | //                                       [76543210]
          //                                 [______21098765_______________]
            ((((int)in[78 + inPos]) <<  15) & 8388607)
        | //                                       [__543210]
          //                                         [876543_______________________]
            ((((int)in[79 + inPos]) <<  23) & 536870911);
      out[22 + outPos] =
          //                                       [76______]
          //            [___________________________10]
            ((((int)in[79 + inPos]) >>  6) & 3)
        | //                                       [76543210]
          //                    [___________________98765432__]
            ((((int)in[80 + inPos]) <<  2) & 1023)
        | //                                       [76543210]
          //                            [___________76543210__________]
            ((((int)in[81 + inPos]) <<  10) & 262143)
        | //                                       [76543210]
          //                                    [___54321098__________________]
            ((((int)in[82 + inPos]) <<  18) & 67108863)
        | //                                       [_____210]
          //                                            [876__________________________]
            ((((int)in[83 + inPos]) <<  26) & 536870911);
      out[23 + outPos] =
          //                                       [76543___]
          //               [________________________43210]
            ((((int)in[83 + inPos]) >>  3) & 31)
        | //                                       [76543210]
          //                       [________________21098765_____]
            ((((int)in[84 + inPos]) <<  5) & 8191)
        | //                                       [76543210]
          //                               [________09876543_____________]
            ((((int)in[85 + inPos]) <<  13) & 2097151)
        | //                                       [76543210]
          //                                       [87654321_____________________]
            ((((int)in[86 + inPos]) <<  21) & 536870911);
      out[24 + outPos] =
          //                                       [76543210]
          //                  [_____________________76543210]
            ((((int)in[87 + inPos]) ) & 255)
        | //                                       [76543210]
          //                          [_____________54321098________]
            ((((int)in[88 + inPos]) <<  8) & 65535)
        | //                                       [76543210]
          //                                  [_____32109876________________]
            ((((int)in[89 + inPos]) <<  16) & 16777215)
        | //                                       [___43210]
          //                                          [87654________________________]
            ((((int)in[90 + inPos]) <<  24) & 536870911);
      out[25 + outPos] =
          //                                       [765_____]
          //             [__________________________210]
            ((((int)in[90 + inPos]) >>  5) & 7)
        | //                                       [76543210]
          //                     [__________________09876543___]
            ((((int)in[91 + inPos]) <<  3) & 2047)
        | //                                       [76543210]
          //                             [__________87654321___________]
            ((((int)in[92 + inPos]) <<  11) & 524287)
        | //                                       [76543210]
          //                                     [__65432109___________________]
            ((((int)in[93 + inPos]) <<  19) & 134217727)
        | //                                       [______10]
          //                                             [87___________________________]
            ((((int)in[94 + inPos]) <<  27) & 536870911);
      out[26 + outPos] =
          //                                       [765432__]
          //                [_______________________543210]
            ((((int)in[94 + inPos]) >>  2) & 63)
        | //                                       [76543210]
          //                        [_______________32109876______]
            ((((int)in[95 + inPos]) <<  6) & 16383)
        | //                                       [76543210]
          //                                [_______10987654______________]
            ((((int)in[96 + inPos]) <<  14) & 4194303)
        | //                                       [_6543210]
          //                                        [8765432______________________]
            ((((int)in[97 + inPos]) <<  22) & 536870911);
      out[27 + outPos] =
          //                                       [7_______]
          //           [____________________________0]
            ((((int)in[97 + inPos]) >>  7) & 1)
        | //                                       [76543210]
          //                   [____________________87654321_]
            ((((int)in[98 + inPos]) <<  1) & 511)
        | //                                       [76543210]
          //                           [____________65432109_________]
            ((((int)in[99 + inPos]) <<  9) & 131071)
        | //                                       [76543210]
          //                                   [____43210987_________________]
            ((((int)in[100 + inPos]) <<  17) & 33554431)
        | //                                       [____3210]
          //                                           [8765_________________________]
            ((((int)in[101 + inPos]) <<  25) & 536870911);
      out[28 + outPos] =
          //                                       [7654____]
          //              [_________________________3210]
            ((((int)in[101 + inPos]) >>  4) & 15)
        | //                                       [76543210]
          //                      [_________________10987654____]
            ((((int)in[102 + inPos]) <<  4) & 4095)
        | //                                       [76543210]
          //                              [_________98765432____________]
            ((((int)in[103 + inPos]) <<  12) & 1048575)
        | //                                       [76543210]
          //                                      [_76543210____________________]
            ((((int)in[104 + inPos]) <<  20) & 268435455)
        | //                                       [_______0]
          //                                              [8____________________________]
            ((((int)in[105 + inPos]) <<  28) & 536870911);
      out[29 + outPos] =
          //                                       [7654321_]
          //                 [______________________6543210]
            ((((int)in[105 + inPos]) >>  1) & 127)
        | //                                       [76543210]
          //                         [______________43210987_______]
            ((((int)in[106 + inPos]) <<  7) & 32767)
        | //                                       [76543210]
          //                                 [______21098765_______________]
            ((((int)in[107 + inPos]) <<  15) & 8388607)
        | //                                       [__543210]
          //                                         [876543_______________________]
            ((((int)in[108 + inPos]) <<  23) & 536870911);
      out[30 + outPos] =
          //                                       [76______]
          //            [___________________________10]
            ((((int)in[108 + inPos]) >>  6) & 3)
        | //                                       [76543210]
          //                    [___________________98765432__]
            ((((int)in[109 + inPos]) <<  2) & 1023)
        | //                                       [76543210]
          //                            [___________76543210__________]
            ((((int)in[110 + inPos]) <<  10) & 262143)
        | //                                       [76543210]
          //                                    [___54321098__________________]
            ((((int)in[111 + inPos]) <<  18) & 67108863)
        | //                                       [_____210]
          //                                            [876__________________________]
            ((((int)in[112 + inPos]) <<  26) & 536870911);
      out[31 + outPos] =
          //                                       [76543___]
          //               [________________________43210]
            ((((int)in[112 + inPos]) >>  3) & 31)
        | //                                       [76543210]
          //                       [________________21098765_____]
            ((((int)in[113 + inPos]) <<  5) & 8191)
        | //                                       [76543210]
          //                               [________09876543_____________]
            ((((int)in[114 + inPos]) <<  13) & 2097151)
        | //                                       [76543210]
          //                                       [87654321_____________________]
            ((((int)in[115 + inPos]) <<  21) & 536870911);
    }
    public final void unpack32Values(final ByteBuffer in, final int inPos, final int[] out, final int outPos) {
      out[ 0 + outPos] =
          //                                       [76543210]
          //                  [_____________________76543210]
            ((((int)in.get( 0 + inPos)) ) & 255)
        | //                                       [76543210]
          //                          [_____________54321098________]
            ((((int)in.get( 1 + inPos)) <<  8) & 65535)
        | //                                       [76543210]
          //                                  [_____32109876________________]
            ((((int)in.get( 2 + inPos)) <<  16) & 16777215)
        | //                                       [___43210]
          //                                          [87654________________________]
            ((((int)in.get( 3 + inPos)) <<  24) & 536870911);
      out[ 1 + outPos] =
          //                                       [765_____]
          //             [__________________________210]
            ((((int)in.get( 3 + inPos)) >>  5) & 7)
        | //                                       [76543210]
          //                     [__________________09876543___]
            ((((int)in.get( 4 + inPos)) <<  3) & 2047)
        | //                                       [76543210]
          //                             [__________87654321___________]
            ((((int)in.get( 5 + inPos)) <<  11) & 524287)
        | //                                       [76543210]
          //                                     [__65432109___________________]
            ((((int)in.get( 6 + inPos)) <<  19) & 134217727)
        | //                                       [______10]
          //                                             [87___________________________]
            ((((int)in.get( 7 + inPos)) <<  27) & 536870911);
      out[ 2 + outPos] =
          //                                       [765432__]
          //                [_______________________543210]
            ((((int)in.get( 7 + inPos)) >>  2) & 63)
        | //                                       [76543210]
          //                        [_______________32109876______]
            ((((int)in.get( 8 + inPos)) <<  6) & 16383)
        | //                                       [76543210]
          //                                [_______10987654______________]
            ((((int)in.get( 9 + inPos)) <<  14) & 4194303)
        | //                                       [_6543210]
          //                                        [8765432______________________]
            ((((int)in.get(10 + inPos)) <<  22) & 536870911);
      out[ 3 + outPos] =
          //                                       [7_______]
          //           [____________________________0]
            ((((int)in.get(10 + inPos)) >>  7) & 1)
        | //                                       [76543210]
          //                   [____________________87654321_]
            ((((int)in.get(11 + inPos)) <<  1) & 511)
        | //                                       [76543210]
          //                           [____________65432109_________]
            ((((int)in.get(12 + inPos)) <<  9) & 131071)
        | //                                       [76543210]
          //                                   [____43210987_________________]
            ((((int)in.get(13 + inPos)) <<  17) & 33554431)
        | //                                       [____3210]
          //                                           [8765_________________________]
            ((((int)in.get(14 + inPos)) <<  25) & 536870911);
      out[ 4 + outPos] =
          //                                       [7654____]
          //              [_________________________3210]
            ((((int)in.get(14 + inPos)) >>  4) & 15)
        | //                                       [76543210]
          //                      [_________________10987654____]
            ((((int)in.get(15 + inPos)) <<  4) & 4095)
        | //                                       [76543210]
          //                              [_________98765432____________]
            ((((int)in.get(16 + inPos)) <<  12) & 1048575)
        | //                                       [76543210]
          //                                      [_76543210____________________]
            ((((int)in.get(17 + inPos)) <<  20) & 268435455)
        | //                                       [_______0]
          //                                              [8____________________________]
            ((((int)in.get(18 + inPos)) <<  28) & 536870911);
      out[ 5 + outPos] =
          //                                       [7654321_]
          //                 [______________________6543210]
            ((((int)in.get(18 + inPos)) >>  1) & 127)
        | //                                       [76543210]
          //                         [______________43210987_______]
            ((((int)in.get(19 + inPos)) <<  7) & 32767)
        | //                                       [76543210]
          //                                 [______21098765_______________]
            ((((int)in.get(20 + inPos)) <<  15) & 8388607)
        | //                                       [__543210]
          //                                         [876543_______________________]
            ((((int)in.get(21 + inPos)) <<  23) & 536870911);
      out[ 6 + outPos] =
          //                                       [76______]
          //            [___________________________10]
            ((((int)in.get(21 + inPos)) >>  6) & 3)
        | //                                       [76543210]
          //                    [___________________98765432__]
            ((((int)in.get(22 + inPos)) <<  2) & 1023)
        | //                                       [76543210]
          //                            [___________76543210__________]
            ((((int)in.get(23 + inPos)) <<  10) & 262143)
        | //                                       [76543210]
          //                                    [___54321098__________________]
            ((((int)in.get(24 + inPos)) <<  18) & 67108863)
        | //                                       [_____210]
          //                                            [876__________________________]
            ((((int)in.get(25 + inPos)) <<  26) & 536870911);
      out[ 7 + outPos] =
          //                                       [76543___]
          //               [________________________43210]
            ((((int)in.get(25 + inPos)) >>  3) & 31)
        | //                                       [76543210]
          //                       [________________21098765_____]
            ((((int)in.get(26 + inPos)) <<  5) & 8191)
        | //                                       [76543210]
          //                               [________09876543_____________]
            ((((int)in.get(27 + inPos)) <<  13) & 2097151)
        | //                                       [76543210]
          //                                       [87654321_____________________]
            ((((int)in.get(28 + inPos)) <<  21) & 536870911);
      out[ 8 + outPos] =
          //                                       [76543210]
          //                  [_____________________76543210]
            ((((int)in.get(29 + inPos)) ) & 255)
        | //                                       [76543210]
          //                          [_____________54321098________]
            ((((int)in.get(30 + inPos)) <<  8) & 65535)
        | //                                       [76543210]
          //                                  [_____32109876________________]
            ((((int)in.get(31 + inPos)) <<  16) & 16777215)
        | //                                       [___43210]
          //                                          [87654________________________]
            ((((int)in.get(32 + inPos)) <<  24) & 536870911);
      out[ 9 + outPos] =
          //                                       [765_____]
          //             [__________________________210]
            ((((int)in.get(32 + inPos)) >>  5) & 7)
        | //                                       [76543210]
          //                     [__________________09876543___]
            ((((int)in.get(33 + inPos)) <<  3) & 2047)
        | //                                       [76543210]
          //                             [__________87654321___________]
            ((((int)in.get(34 + inPos)) <<  11) & 524287)
        | //                                       [76543210]
          //                                     [__65432109___________________]
            ((((int)in.get(35 + inPos)) <<  19) & 134217727)
        | //                                       [______10]
          //                                             [87___________________________]
            ((((int)in.get(36 + inPos)) <<  27) & 536870911);
      out[10 + outPos] =
          //                                       [765432__]
          //                [_______________________543210]
            ((((int)in.get(36 + inPos)) >>  2) & 63)
        | //                                       [76543210]
          //                        [_______________32109876______]
            ((((int)in.get(37 + inPos)) <<  6) & 16383)
        | //                                       [76543210]
          //                                [_______10987654______________]
            ((((int)in.get(38 + inPos)) <<  14) & 4194303)
        | //                                       [_6543210]
          //                                        [8765432______________________]
            ((((int)in.get(39 + inPos)) <<  22) & 536870911);
      out[11 + outPos] =
          //                                       [7_______]
          //           [____________________________0]
            ((((int)in.get(39 + inPos)) >>  7) & 1)
        | //                                       [76543210]
          //                   [____________________87654321_]
            ((((int)in.get(40 + inPos)) <<  1) & 511)
        | //                                       [76543210]
          //                           [____________65432109_________]
            ((((int)in.get(41 + inPos)) <<  9) & 131071)
        | //                                       [76543210]
          //                                   [____43210987_________________]
            ((((int)in.get(42 + inPos)) <<  17) & 33554431)
        | //                                       [____3210]
          //                                           [8765_________________________]
            ((((int)in.get(43 + inPos)) <<  25) & 536870911);
      out[12 + outPos] =
          //                                       [7654____]
          //              [_________________________3210]
            ((((int)in.get(43 + inPos)) >>  4) & 15)
        | //                                       [76543210]
          //                      [_________________10987654____]
            ((((int)in.get(44 + inPos)) <<  4) & 4095)
        | //                                       [76543210]
          //                              [_________98765432____________]
            ((((int)in.get(45 + inPos)) <<  12) & 1048575)
        | //                                       [76543210]
          //                                      [_76543210____________________]
            ((((int)in.get(46 + inPos)) <<  20) & 268435455)
        | //                                       [_______0]
          //                                              [8____________________________]
            ((((int)in.get(47 + inPos)) <<  28) & 536870911);
      out[13 + outPos] =
          //                                       [7654321_]
          //                 [______________________6543210]
            ((((int)in.get(47 + inPos)) >>  1) & 127)
        | //                                       [76543210]
          //                         [______________43210987_______]
            ((((int)in.get(48 + inPos)) <<  7) & 32767)
        | //                                       [76543210]
          //                                 [______21098765_______________]
            ((((int)in.get(49 + inPos)) <<  15) & 8388607)
        | //                                       [__543210]
          //                                         [876543_______________________]
            ((((int)in.get(50 + inPos)) <<  23) & 536870911);
      out[14 + outPos] =
          //                                       [76______]
          //            [___________________________10]
            ((((int)in.get(50 + inPos)) >>  6) & 3)
        | //                                       [76543210]
          //                    [___________________98765432__]
            ((((int)in.get(51 + inPos)) <<  2) & 1023)
        | //                                       [76543210]
          //                            [___________76543210__________]
            ((((int)in.get(52 + inPos)) <<  10) & 262143)
        | //                                       [76543210]
          //                                    [___54321098__________________]
            ((((int)in.get(53 + inPos)) <<  18) & 67108863)
        | //                                       [_____210]
          //                                            [876__________________________]
            ((((int)in.get(54 + inPos)) <<  26) & 536870911);
      out[15 + outPos] =
          //                                       [76543___]
          //               [________________________43210]
            ((((int)in.get(54 + inPos)) >>  3) & 31)
        | //                                       [76543210]
          //                       [________________21098765_____]
            ((((int)in.get(55 + inPos)) <<  5) & 8191)
        | //                                       [76543210]
          //                               [________09876543_____________]
            ((((int)in.get(56 + inPos)) <<  13) & 2097151)
        | //                                       [76543210]
          //                                       [87654321_____________________]
            ((((int)in.get(57 + inPos)) <<  21) & 536870911);
      out[16 + outPos] =
          //                                       [76543210]
          //                  [_____________________76543210]
            ((((int)in.get(58 + inPos)) ) & 255)
        | //                                       [76543210]
          //                          [_____________54321098________]
            ((((int)in.get(59 + inPos)) <<  8) & 65535)
        | //                                       [76543210]
          //                                  [_____32109876________________]
            ((((int)in.get(60 + inPos)) <<  16) & 16777215)
        | //                                       [___43210]
          //                                          [87654________________________]
            ((((int)in.get(61 + inPos)) <<  24) & 536870911);
      out[17 + outPos] =
          //                                       [765_____]
          //             [__________________________210]
            ((((int)in.get(61 + inPos)) >>  5) & 7)
        | //                                       [76543210]
          //                     [__________________09876543___]
            ((((int)in.get(62 + inPos)) <<  3) & 2047)
        | //                                       [76543210]
          //                             [__________87654321___________]
            ((((int)in.get(63 + inPos)) <<  11) & 524287)
        | //                                       [76543210]
          //                                     [__65432109___________________]
            ((((int)in.get(64 + inPos)) <<  19) & 134217727)
        | //                                       [______10]
          //                                             [87___________________________]
            ((((int)in.get(65 + inPos)) <<  27) & 536870911);
      out[18 + outPos] =
          //                                       [765432__]
          //                [_______________________543210]
            ((((int)in.get(65 + inPos)) >>  2) & 63)
        | //                                       [76543210]
          //                        [_______________32109876______]
            ((((int)in.get(66 + inPos)) <<  6) & 16383)
        | //                                       [76543210]
          //                                [_______10987654______________]
            ((((int)in.get(67 + inPos)) <<  14) & 4194303)
        | //                                       [_6543210]
          //                                        [8765432______________________]
            ((((int)in.get(68 + inPos)) <<  22) & 536870911);
      out[19 + outPos] =
          //                                       [7_______]
          //           [____________________________0]
            ((((int)in.get(68 + inPos)) >>  7) & 1)
        | //                                       [76543210]
          //                   [____________________87654321_]
            ((((int)in.get(69 + inPos)) <<  1) & 511)
        | //                                       [76543210]
          //                           [____________65432109_________]
            ((((int)in.get(70 + inPos)) <<  9) & 131071)
        | //                                       [76543210]
          //                                   [____43210987_________________]
            ((((int)in.get(71 + inPos)) <<  17) & 33554431)
        | //                                       [____3210]
          //                                           [8765_________________________]
            ((((int)in.get(72 + inPos)) <<  25) & 536870911);
      out[20 + outPos] =
          //                                       [7654____]
          //              [_________________________3210]
            ((((int)in.get(72 + inPos)) >>  4) & 15)
        | //                                       [76543210]
          //                      [_________________10987654____]
            ((((int)in.get(73 + inPos)) <<  4) & 4095)
        | //                                       [76543210]
          //                              [_________98765432____________]
            ((((int)in.get(74 + inPos)) <<  12) & 1048575)
        | //                                       [76543210]
          //                                      [_76543210____________________]
            ((((int)in.get(75 + inPos)) <<  20) & 268435455)
        | //                                       [_______0]
          //                                              [8____________________________]
            ((((int)in.get(76 + inPos)) <<  28) & 536870911);
      out[21 + outPos] =
          //                                       [7654321_]
          //                 [______________________6543210]
            ((((int)in.get(76 + inPos)) >>  1) & 127)
        | //                                       [76543210]
          //                         [______________43210987_______]
            ((((int)in.get(77 + inPos)) <<  7) & 32767)
        | //                                       [76543210]
          //                                 [______21098765_______________]
            ((((int)in.get(78 + inPos)) <<  15) & 8388607)
        | //                                       [__543210]
          //                                         [876543_______________________]
            ((((int)in.get(79 + inPos)) <<  23) & 536870911);
      out[22 + outPos] =
          //                                       [76______]
          //            [___________________________10]
            ((((int)in.get(79 + inPos)) >>  6) & 3)
        | //                                       [76543210]
          //                    [___________________98765432__]
            ((((int)in.get(80 + inPos)) <<  2) & 1023)
        | //                                       [76543210]
          //                            [___________76543210__________]
            ((((int)in.get(81 + inPos)) <<  10) & 262143)
        | //                                       [76543210]
          //                                    [___54321098__________________]
            ((((int)in.get(82 + inPos)) <<  18) & 67108863)
        | //                                       [_____210]
          //                                            [876__________________________]
            ((((int)in.get(83 + inPos)) <<  26) & 536870911);
      out[23 + outPos] =
          //                                       [76543___]
          //               [________________________43210]
            ((((int)in.get(83 + inPos)) >>  3) & 31)
        | //                                       [76543210]
          //                       [________________21098765_____]
            ((((int)in.get(84 + inPos)) <<  5) & 8191)
        | //                                       [76543210]
          //                               [________09876543_____________]
            ((((int)in.get(85 + inPos)) <<  13) & 2097151)
        | //                                       [76543210]
          //                                       [87654321_____________________]
            ((((int)in.get(86 + inPos)) <<  21) & 536870911);
      out[24 + outPos] =
          //                                       [76543210]
          //                  [_____________________76543210]
            ((((int)in.get(87 + inPos)) ) & 255)
        | //                                       [76543210]
          //                          [_____________54321098________]
            ((((int)in.get(88 + inPos)) <<  8) & 65535)
        | //                                       [76543210]
          //                                  [_____32109876________________]
            ((((int)in.get(89 + inPos)) <<  16) & 16777215)
        | //                                       [___43210]
          //                                          [87654________________________]
            ((((int)in.get(90 + inPos)) <<  24) & 536870911);
      out[25 + outPos] =
          //                                       [765_____]
          //             [__________________________210]
            ((((int)in.get(90 + inPos)) >>  5) & 7)
        | //                                       [76543210]
          //                     [__________________09876543___]
            ((((int)in.get(91 + inPos)) <<  3) & 2047)
        | //                                       [76543210]
          //                             [__________87654321___________]
            ((((int)in.get(92 + inPos)) <<  11) & 524287)
        | //                                       [76543210]
          //                                     [__65432109___________________]
            ((((int)in.get(93 + inPos)) <<  19) & 134217727)
        | //                                       [______10]
          //                                             [87___________________________]
            ((((int)in.get(94 + inPos)) <<  27) & 536870911);
      out[26 + outPos] =
          //                                       [765432__]
          //                [_______________________543210]
            ((((int)in.get(94 + inPos)) >>  2) & 63)
        | //                                       [76543210]
          //                        [_______________32109876______]
            ((((int)in.get(95 + inPos)) <<  6) & 16383)
        | //                                       [76543210]
          //                                [_______10987654______________]
            ((((int)in.get(96 + inPos)) <<  14) & 4194303)
        | //                                       [_6543210]
          //                                        [8765432______________________]
            ((((int)in.get(97 + inPos)) <<  22) & 536870911);
      out[27 + outPos] =
          //                                       [7_______]
          //           [____________________________0]
            ((((int)in.get(97 + inPos)) >>  7) & 1)
        | //                                       [76543210]
          //                   [____________________87654321_]
            ((((int)in.get(98 + inPos)) <<  1) & 511)
        | //                                       [76543210]
          //                           [____________65432109_________]
            ((((int)in.get(99 + inPos)) <<  9) & 131071)
        | //                                       [76543210]
          //                                   [____43210987_________________]
            ((((int)in.get(100 + inPos)) <<  17) & 33554431)
        | //                                       [____3210]
          //                                           [8765_________________________]
            ((((int)in.get(101 + inPos)) <<  25) & 536870911);
      out[28 + outPos] =
          //                                       [7654____]
          //              [_________________________3210]
            ((((int)in.get(101 + inPos)) >>  4) & 15)
        | //                                       [76543210]
          //                      [_________________10987654____]
            ((((int)in.get(102 + inPos)) <<  4) & 4095)
        | //                                       [76543210]
          //                              [_________98765432____________]
            ((((int)in.get(103 + inPos)) <<  12) & 1048575)
        | //                                       [76543210]
          //                                      [_76543210____________________]
            ((((int)in.get(104 + inPos)) <<  20) & 268435455)
        | //                                       [_______0]
          //                                              [8____________________________]
            ((((int)in.get(105 + inPos)) <<  28) & 536870911);
      out[29 + outPos] =
          //                                       [7654321_]
          //                 [______________________6543210]
            ((((int)in.get(105 + inPos)) >>  1) & 127)
        | //                                       [76543210]
          //                         [______________43210987_______]
            ((((int)in.get(106 + inPos)) <<  7) & 32767)
        | //                                       [76543210]
          //                                 [______21098765_______________]
            ((((int)in.get(107 + inPos)) <<  15) & 8388607)
        | //                                       [__543210]
          //                                         [876543_______________________]
            ((((int)in.get(108 + inPos)) <<  23) & 536870911);
      out[30 + outPos] =
          //                                       [76______]
          //            [___________________________10]
            ((((int)in.get(108 + inPos)) >>  6) & 3)
        | //                                       [76543210]
          //                    [___________________98765432__]
            ((((int)in.get(109 + inPos)) <<  2) & 1023)
        | //                                       [76543210]
          //                            [___________76543210__________]
            ((((int)in.get(110 + inPos)) <<  10) & 262143)
        | //                                       [76543210]
          //                                    [___54321098__________________]
            ((((int)in.get(111 + inPos)) <<  18) & 67108863)
        | //                                       [_____210]
          //                                            [876__________________________]
            ((((int)in.get(112 + inPos)) <<  26) & 536870911);
      out[31 + outPos] =
          //                                       [76543___]
          //               [________________________43210]
            ((((int)in.get(112 + inPos)) >>  3) & 31)
        | //                                       [76543210]
          //                       [________________21098765_____]
            ((((int)in.get(113 + inPos)) <<  5) & 8191)
        | //                                       [76543210]
          //                               [________09876543_____________]
            ((((int)in.get(114 + inPos)) <<  13) & 2097151)
        | //                                       [76543210]
          //                                       [87654321_____________________]
            ((((int)in.get(115 + inPos)) <<  21) & 536870911);
    }
  }

  private static final class Packer30 extends BytePacker {

    private Packer30() {
      super(30);
    }

    public final void pack8Values(final int[] in, final int inPos, final byte[] out, final int outPos) {
      out[ 0 + outPos] = (byte)((
          //                                        [76543210]
          //                  [______________________76543210]
           ((in[ 0 + inPos] & 1073741823))) & 255);
      out[ 1 + outPos] = (byte)((
          //                                        [76543210]
          //                          [______________54321098________]
           ((in[ 0 + inPos] & 1073741823) >>> 8)) & 255);
      out[ 2 + outPos] = (byte)((
          //                                        [76543210]
          //                                  [______32109876________________]
           ((in[ 0 + inPos] & 1073741823) >>> 16)) & 255);
      out[ 3 + outPos] = (byte)((
          //                                        [__543210]
          //                                          [987654________________________]
           ((in[ 0 + inPos] & 1073741823) >>> 24)
        | //                                        [76______]
          //            [____________________________10]
           ((in[ 1 + inPos] & 1073741823) <<  6)) & 255);
      out[ 4 + outPos] = (byte)((
          //                                        [76543210]
          //                    [____________________98765432__]
           ((in[ 1 + inPos] & 1073741823) >>> 2)) & 255);
      out[ 5 + outPos] = (byte)((
          //                                        [76543210]
          //                            [____________76543210__________]
           ((in[ 1 + inPos] & 1073741823) >>> 10)) & 255);
      out[ 6 + outPos] = (byte)((
          //                                        [76543210]
          //                                    [____54321098__________________]
           ((in[ 1 + inPos] & 1073741823) >>> 18)) & 255);
      out[ 7 + outPos] = (byte)((
          //                                        [____3210]
          //                                            [9876__________________________]
           ((in[ 1 + inPos] & 1073741823) >>> 26)
        | //                                        [7654____]
          //              [__________________________3210]
           ((in[ 2 + inPos] & 1073741823) <<  4)) & 255);
      out[ 8 + outPos] = (byte)((
          //                                        [76543210]
          //                      [__________________10987654____]
           ((in[ 2 + inPos] & 1073741823) >>> 4)) & 255);
      out[ 9 + outPos] = (byte)((
          //                                        [76543210]
          //                              [__________98765432____________]
           ((in[ 2 + inPos] & 1073741823) >>> 12)) & 255);
      out[10 + outPos] = (byte)((
          //                                        [76543210]
          //                                      [__76543210____________________]
           ((in[ 2 + inPos] & 1073741823) >>> 20)) & 255);
      out[11 + outPos] = (byte)((
          //                                        [______10]
          //                                              [98____________________________]
           ((in[ 2 + inPos] & 1073741823) >>> 28)
        | //                                        [765432__]
          //                [________________________543210]
           ((in[ 3 + inPos] & 1073741823) <<  2)) & 255);
      out[12 + outPos] = (byte)((
          //                                        [76543210]
          //                        [________________32109876______]
           ((in[ 3 + inPos] & 1073741823) >>> 6)) & 255);
      out[13 + outPos] = (byte)((
          //                                        [76543210]
          //                                [________10987654______________]
           ((in[ 3 + inPos] & 1073741823) >>> 14)) & 255);
      out[14 + outPos] = (byte)((
          //                                        [76543210]
          //                                        [98765432______________________]
           ((in[ 3 + inPos] & 1073741823) >>> 22)) & 255);
      out[15 + outPos] = (byte)((
          //                                        [76543210]
          //                  [______________________76543210]
           ((in[ 4 + inPos] & 1073741823))) & 255);
      out[16 + outPos] = (byte)((
          //                                        [76543210]
          //                          [______________54321098________]
           ((in[ 4 + inPos] & 1073741823) >>> 8)) & 255);
      out[17 + outPos] = (byte)((
          //                                        [76543210]
          //                                  [______32109876________________]
           ((in[ 4 + inPos] & 1073741823) >>> 16)) & 255);
      out[18 + outPos] = (byte)((
          //                                        [__543210]
          //                                          [987654________________________]
           ((in[ 4 + inPos] & 1073741823) >>> 24)
        | //                                        [76______]
          //            [____________________________10]
           ((in[ 5 + inPos] & 1073741823) <<  6)) & 255);
      out[19 + outPos] = (byte)((
          //                                        [76543210]
          //                    [____________________98765432__]
           ((in[ 5 + inPos] & 1073741823) >>> 2)) & 255);
      out[20 + outPos] = (byte)((
          //                                        [76543210]
          //                            [____________76543210__________]
           ((in[ 5 + inPos] & 1073741823) >>> 10)) & 255);
      out[21 + outPos] = (byte)((
          //                                        [76543210]
          //                                    [____54321098__________________]
           ((in[ 5 + inPos] & 1073741823) >>> 18)) & 255);
      out[22 + outPos] = (byte)((
          //                                        [____3210]
          //                                            [9876__________________________]
           ((in[ 5 + inPos] & 1073741823) >>> 26)
        | //                                        [7654____]
          //              [__________________________3210]
           ((in[ 6 + inPos] & 1073741823) <<  4)) & 255);
      out[23 + outPos] = (byte)((
          //                                        [76543210]
          //                      [__________________10987654____]
           ((in[ 6 + inPos] & 1073741823) >>> 4)) & 255);
      out[24 + outPos] = (byte)((
          //                                        [76543210]
          //                              [__________98765432____________]
           ((in[ 6 + inPos] & 1073741823) >>> 12)) & 255);
      out[25 + outPos] = (byte)((
          //                                        [76543210]
          //                                      [__76543210____________________]
           ((in[ 6 + inPos] & 1073741823) >>> 20)) & 255);
      out[26 + outPos] = (byte)((
          //                                        [______10]
          //                                              [98____________________________]
           ((in[ 6 + inPos] & 1073741823) >>> 28)
        | //                                        [765432__]
          //                [________________________543210]
           ((in[ 7 + inPos] & 1073741823) <<  2)) & 255);
      out[27 + outPos] = (byte)((
          //                                        [76543210]
          //                        [________________32109876______]
           ((in[ 7 + inPos] & 1073741823) >>> 6)) & 255);
      out[28 + outPos] = (byte)((
          //                                        [76543210]
          //                                [________10987654______________]
           ((in[ 7 + inPos] & 1073741823) >>> 14)) & 255);
      out[29 + outPos] = (byte)((
          //                                        [76543210]
          //                                        [98765432______________________]
           ((in[ 7 + inPos] & 1073741823) >>> 22)) & 255);
    }
    public final void pack32Values(final int[] in, final int inPos, final byte[] out, final int outPos) {
      out[ 0 + outPos] = (byte)((
          //                                        [76543210]
          //                  [______________________76543210]
           ((in[ 0 + inPos] & 1073741823))) & 255);
      out[ 1 + outPos] = (byte)((
          //                                        [76543210]
          //                          [______________54321098________]
           ((in[ 0 + inPos] & 1073741823) >>> 8)) & 255);
      out[ 2 + outPos] = (byte)((
          //                                        [76543210]
          //                                  [______32109876________________]
           ((in[ 0 + inPos] & 1073741823) >>> 16)) & 255);
      out[ 3 + outPos] = (byte)((
          //                                        [__543210]
          //                                          [987654________________________]
           ((in[ 0 + inPos] & 1073741823) >>> 24)
        | //                                        [76______]
          //            [____________________________10]
           ((in[ 1 + inPos] & 1073741823) <<  6)) & 255);
      out[ 4 + outPos] = (byte)((
          //                                        [76543210]
          //                    [____________________98765432__]
           ((in[ 1 + inPos] & 1073741823) >>> 2)) & 255);
      out[ 5 + outPos] = (byte)((
          //                                        [76543210]
          //                            [____________76543210__________]
           ((in[ 1 + inPos] & 1073741823) >>> 10)) & 255);
      out[ 6 + outPos] = (byte)((
          //                                        [76543210]
          //                                    [____54321098__________________]
           ((in[ 1 + inPos] & 1073741823) >>> 18)) & 255);
      out[ 7 + outPos] = (byte)((
          //                                        [____3210]
          //                                            [9876__________________________]
           ((in[ 1 + inPos] & 1073741823) >>> 26)
        | //                                        [7654____]
          //              [__________________________3210]
           ((in[ 2 + inPos] & 1073741823) <<  4)) & 255);
      out[ 8 + outPos] = (byte)((
          //                                        [76543210]
          //                      [__________________10987654____]
           ((in[ 2 + inPos] & 1073741823) >>> 4)) & 255);
      out[ 9 + outPos] = (byte)((
          //                                        [76543210]
          //                              [__________98765432____________]
           ((in[ 2 + inPos] & 1073741823) >>> 12)) & 255);
      out[10 + outPos] = (byte)((
          //                                        [76543210]
          //                                      [__76543210____________________]
           ((in[ 2 + inPos] & 1073741823) >>> 20)) & 255);
      out[11 + outPos] = (byte)((
          //                                        [______10]
          //                                              [98____________________________]
           ((in[ 2 + inPos] & 1073741823) >>> 28)
        | //                                        [765432__]
          //                [________________________543210]
           ((in[ 3 + inPos] & 1073741823) <<  2)) & 255);
      out[12 + outPos] = (byte)((
          //                                        [76543210]
          //                        [________________32109876______]
           ((in[ 3 + inPos] & 1073741823) >>> 6)) & 255);
      out[13 + outPos] = (byte)((
          //                                        [76543210]
          //                                [________10987654______________]
           ((in[ 3 + inPos] & 1073741823) >>> 14)) & 255);
      out[14 + outPos] = (byte)((
          //                                        [76543210]
          //                                        [98765432______________________]
           ((in[ 3 + inPos] & 1073741823) >>> 22)) & 255);
      out[15 + outPos] = (byte)((
          //                                        [76543210]
          //                  [______________________76543210]
           ((in[ 4 + inPos] & 1073741823))) & 255);
      out[16 + outPos] = (byte)((
          //                                        [76543210]
          //                          [______________54321098________]
           ((in[ 4 + inPos] & 1073741823) >>> 8)) & 255);
      out[17 + outPos] = (byte)((
          //                                        [76543210]
          //                                  [______32109876________________]
           ((in[ 4 + inPos] & 1073741823) >>> 16)) & 255);
      out[18 + outPos] = (byte)((
          //                                        [__543210]
          //                                          [987654________________________]
           ((in[ 4 + inPos] & 1073741823) >>> 24)
        | //                                        [76______]
          //            [____________________________10]
           ((in[ 5 + inPos] & 1073741823) <<  6)) & 255);
      out[19 + outPos] = (byte)((
          //                                        [76543210]
          //                    [____________________98765432__]
           ((in[ 5 + inPos] & 1073741823) >>> 2)) & 255);
      out[20 + outPos] = (byte)((
          //                                        [76543210]
          //                            [____________76543210__________]
           ((in[ 5 + inPos] & 1073741823) >>> 10)) & 255);
      out[21 + outPos] = (byte)((
          //                                        [76543210]
          //                                    [____54321098__________________]
           ((in[ 5 + inPos] & 1073741823) >>> 18)) & 255);
      out[22 + outPos] = (byte)((
          //                                        [____3210]
          //                                            [9876__________________________]
           ((in[ 5 + inPos] & 1073741823) >>> 26)
        | //                                        [7654____]
          //              [__________________________3210]
           ((in[ 6 + inPos] & 1073741823) <<  4)) & 255);
      out[23 + outPos] = (byte)((
          //                                        [76543210]
          //                      [__________________10987654____]
           ((in[ 6 + inPos] & 1073741823) >>> 4)) & 255);
      out[24 + outPos] = (byte)((
          //                                        [76543210]
          //                              [__________98765432____________]
           ((in[ 6 + inPos] & 1073741823) >>> 12)) & 255);
      out[25 + outPos] = (byte)((
          //                                        [76543210]
          //                                      [__76543210____________________]
           ((in[ 6 + inPos] & 1073741823) >>> 20)) & 255);
      out[26 + outPos] = (byte)((
          //                                        [______10]
          //                                              [98____________________________]
           ((in[ 6 + inPos] & 1073741823) >>> 28)
        | //                                        [765432__]
          //                [________________________543210]
           ((in[ 7 + inPos] & 1073741823) <<  2)) & 255);
      out[27 + outPos] = (byte)((
          //                                        [76543210]
          //                        [________________32109876______]
           ((in[ 7 + inPos] & 1073741823) >>> 6)) & 255);
      out[28 + outPos] = (byte)((
          //                                        [76543210]
          //                                [________10987654______________]
           ((in[ 7 + inPos] & 1073741823) >>> 14)) & 255);
      out[29 + outPos] = (byte)((
          //                                        [76543210]
          //                                        [98765432______________________]
           ((in[ 7 + inPos] & 1073741823) >>> 22)) & 255);
      out[30 + outPos] = (byte)((
          //                                        [76543210]
          //                  [______________________76543210]
           ((in[ 8 + inPos] & 1073741823))) & 255);
      out[31 + outPos] = (byte)((
          //                                        [76543210]
          //                          [______________54321098________]
           ((in[ 8 + inPos] & 1073741823) >>> 8)) & 255);
      out[32 + outPos] = (byte)((
          //                                        [76543210]
          //                                  [______32109876________________]
           ((in[ 8 + inPos] & 1073741823) >>> 16)) & 255);
      out[33 + outPos] = (byte)((
          //                                        [__543210]
          //                                          [987654________________________]
           ((in[ 8 + inPos] & 1073741823) >>> 24)
        | //                                        [76______]
          //            [____________________________10]
           ((in[ 9 + inPos] & 1073741823) <<  6)) & 255);
      out[34 + outPos] = (byte)((
          //                                        [76543210]
          //                    [____________________98765432__]
           ((in[ 9 + inPos] & 1073741823) >>> 2)) & 255);
      out[35 + outPos] = (byte)((
          //                                        [76543210]
          //                            [____________76543210__________]
           ((in[ 9 + inPos] & 1073741823) >>> 10)) & 255);
      out[36 + outPos] = (byte)((
          //                                        [76543210]
          //                                    [____54321098__________________]
           ((in[ 9 + inPos] & 1073741823) >>> 18)) & 255);
      out[37 + outPos] = (byte)((
          //                                        [____3210]
          //                                            [9876__________________________]
           ((in[ 9 + inPos] & 1073741823) >>> 26)
        | //                                        [7654____]
          //              [__________________________3210]
           ((in[10 + inPos] & 1073741823) <<  4)) & 255);
      out[38 + outPos] = (byte)((
          //                                        [76543210]
          //                      [__________________10987654____]
           ((in[10 + inPos] & 1073741823) >>> 4)) & 255);
      out[39 + outPos] = (byte)((
          //                                        [76543210]
          //                              [__________98765432____________]
           ((in[10 + inPos] & 1073741823) >>> 12)) & 255);
      out[40 + outPos] = (byte)((
          //                                        [76543210]
          //                                      [__76543210____________________]
           ((in[10 + inPos] & 1073741823) >>> 20)) & 255);
      out[41 + outPos] = (byte)((
          //                                        [______10]
          //                                              [98____________________________]
           ((in[10 + inPos] & 1073741823) >>> 28)
        | //                                        [765432__]
          //                [________________________543210]
           ((in[11 + inPos] & 1073741823) <<  2)) & 255);
      out[42 + outPos] = (byte)((
          //                                        [76543210]
          //                        [________________32109876______]
           ((in[11 + inPos] & 1073741823) >>> 6)) & 255);
      out[43 + outPos] = (byte)((
          //                                        [76543210]
          //                                [________10987654______________]
           ((in[11 + inPos] & 1073741823) >>> 14)) & 255);
      out[44 + outPos] = (byte)((
          //                                        [76543210]
          //                                        [98765432______________________]
           ((in[11 + inPos] & 1073741823) >>> 22)) & 255);
      out[45 + outPos] = (byte)((
          //                                        [76543210]
          //                  [______________________76543210]
           ((in[12 + inPos] & 1073741823))) & 255);
      out[46 + outPos] = (byte)((
          //                                        [76543210]
          //                          [______________54321098________]
           ((in[12 + inPos] & 1073741823) >>> 8)) & 255);
      out[47 + outPos] = (byte)((
          //                                        [76543210]
          //                                  [______32109876________________]
           ((in[12 + inPos] & 1073741823) >>> 16)) & 255);
      out[48 + outPos] = (byte)((
          //                                        [__543210]
          //                                          [987654________________________]
           ((in[12 + inPos] & 1073741823) >>> 24)
        | //                                        [76______]
          //            [____________________________10]
           ((in[13 + inPos] & 1073741823) <<  6)) & 255);
      out[49 + outPos] = (byte)((
          //                                        [76543210]
          //                    [____________________98765432__]
           ((in[13 + inPos] & 1073741823) >>> 2)) & 255);
      out[50 + outPos] = (byte)((
          //                                        [76543210]
          //                            [____________76543210__________]
           ((in[13 + inPos] & 1073741823) >>> 10)) & 255);
      out[51 + outPos] = (byte)((
          //                                        [76543210]
          //                                    [____54321098__________________]
           ((in[13 + inPos] & 1073741823) >>> 18)) & 255);
      out[52 + outPos] = (byte)((
          //                                        [____3210]
          //                                            [9876__________________________]
           ((in[13 + inPos] & 1073741823) >>> 26)
        | //                                        [7654____]
          //              [__________________________3210]
           ((in[14 + inPos] & 1073741823) <<  4)) & 255);
      out[53 + outPos] = (byte)((
          //                                        [76543210]
          //                      [__________________10987654____]
           ((in[14 + inPos] & 1073741823) >>> 4)) & 255);
      out[54 + outPos] = (byte)((
          //                                        [76543210]
          //                              [__________98765432____________]
           ((in[14 + inPos] & 1073741823) >>> 12)) & 255);
      out[55 + outPos] = (byte)((
          //                                        [76543210]
          //                                      [__76543210____________________]
           ((in[14 + inPos] & 1073741823) >>> 20)) & 255);
      out[56 + outPos] = (byte)((
          //                                        [______10]
          //                                              [98____________________________]
           ((in[14 + inPos] & 1073741823) >>> 28)
        | //                                        [765432__]
          //                [________________________543210]
           ((in[15 + inPos] & 1073741823) <<  2)) & 255);
      out[57 + outPos] = (byte)((
          //                                        [76543210]
          //                        [________________32109876______]
           ((in[15 + inPos] & 1073741823) >>> 6)) & 255);
      out[58 + outPos] = (byte)((
          //                                        [76543210]
          //                                [________10987654______________]
           ((in[15 + inPos] & 1073741823) >>> 14)) & 255);
      out[59 + outPos] = (byte)((
          //                                        [76543210]
          //                                        [98765432______________________]
           ((in[15 + inPos] & 1073741823) >>> 22)) & 255);
      out[60 + outPos] = (byte)((
          //                                        [76543210]
          //                  [______________________76543210]
           ((in[16 + inPos] & 1073741823))) & 255);
      out[61 + outPos] = (byte)((
          //                                        [76543210]
          //                          [______________54321098________]
           ((in[16 + inPos] & 1073741823) >>> 8)) & 255);
      out[62 + outPos] = (byte)((
          //                                        [76543210]
          //                                  [______32109876________________]
           ((in[16 + inPos] & 1073741823) >>> 16)) & 255);
      out[63 + outPos] = (byte)((
          //                                        [__543210]
          //                                          [987654________________________]
           ((in[16 + inPos] & 1073741823) >>> 24)
        | //                                        [76______]
          //            [____________________________10]
           ((in[17 + inPos] & 1073741823) <<  6)) & 255);
      out[64 + outPos] = (byte)((
          //                                        [76543210]
          //                    [____________________98765432__]
           ((in[17 + inPos] & 1073741823) >>> 2)) & 255);
      out[65 + outPos] = (byte)((
          //                                        [76543210]
          //                            [____________76543210__________]
           ((in[17 + inPos] & 1073741823) >>> 10)) & 255);
      out[66 + outPos] = (byte)((
          //                                        [76543210]
          //                                    [____54321098__________________]
           ((in[17 + inPos] & 1073741823) >>> 18)) & 255);
      out[67 + outPos] = (byte)((
          //                                        [____3210]
          //                                            [9876__________________________]
           ((in[17 + inPos] & 1073741823) >>> 26)
        | //                                        [7654____]
          //              [__________________________3210]
           ((in[18 + inPos] & 1073741823) <<  4)) & 255);
      out[68 + outPos] = (byte)((
          //                                        [76543210]
          //                      [__________________10987654____]
           ((in[18 + inPos] & 1073741823) >>> 4)) & 255);
      out[69 + outPos] = (byte)((
          //                                        [76543210]
          //                              [__________98765432____________]
           ((in[18 + inPos] & 1073741823) >>> 12)) & 255);
      out[70 + outPos] = (byte)((
          //                                        [76543210]
          //                                      [__76543210____________________]
           ((in[18 + inPos] & 1073741823) >>> 20)) & 255);
      out[71 + outPos] = (byte)((
          //                                        [______10]
          //                                              [98____________________________]
           ((in[18 + inPos] & 1073741823) >>> 28)
        | //                                        [765432__]
          //                [________________________543210]
           ((in[19 + inPos] & 1073741823) <<  2)) & 255);
      out[72 + outPos] = (byte)((
          //                                        [76543210]
          //                        [________________32109876______]
           ((in[19 + inPos] & 1073741823) >>> 6)) & 255);
      out[73 + outPos] = (byte)((
          //                                        [76543210]
          //                                [________10987654______________]
           ((in[19 + inPos] & 1073741823) >>> 14)) & 255);
      out[74 + outPos] = (byte)((
          //                                        [76543210]
          //                                        [98765432______________________]
           ((in[19 + inPos] & 1073741823) >>> 22)) & 255);
      out[75 + outPos] = (byte)((
          //                                        [76543210]
          //                  [______________________76543210]
           ((in[20 + inPos] & 1073741823))) & 255);
      out[76 + outPos] = (byte)((
          //                                        [76543210]
          //                          [______________54321098________]
           ((in[20 + inPos] & 1073741823) >>> 8)) & 255);
      out[77 + outPos] = (byte)((
          //                                        [76543210]
          //                                  [______32109876________________]
           ((in[20 + inPos] & 1073741823) >>> 16)) & 255);
      out[78 + outPos] = (byte)((
          //                                        [__543210]
          //                                          [987654________________________]
           ((in[20 + inPos] & 1073741823) >>> 24)
        | //                                        [76______]
          //            [____________________________10]
           ((in[21 + inPos] & 1073741823) <<  6)) & 255);
      out[79 + outPos] = (byte)((
          //                                        [76543210]
          //                    [____________________98765432__]
           ((in[21 + inPos] & 1073741823) >>> 2)) & 255);
      out[80 + outPos] = (byte)((
          //                                        [76543210]
          //                            [____________76543210__________]
           ((in[21 + inPos] & 1073741823) >>> 10)) & 255);
      out[81 + outPos] = (byte)((
          //                                        [76543210]
          //                                    [____54321098__________________]
           ((in[21 + inPos] & 1073741823) >>> 18)) & 255);
      out[82 + outPos] = (byte)((
          //                                        [____3210]
          //                                            [9876__________________________]
           ((in[21 + inPos] & 1073741823) >>> 26)
        | //                                        [7654____]
          //              [__________________________3210]
           ((in[22 + inPos] & 1073741823) <<  4)) & 255);
      out[83 + outPos] = (byte)((
          //                                        [76543210]
          //                      [__________________10987654____]
           ((in[22 + inPos] & 1073741823) >>> 4)) & 255);
      out[84 + outPos] = (byte)((
          //                                        [76543210]
          //                              [__________98765432____________]
           ((in[22 + inPos] & 1073741823) >>> 12)) & 255);
      out[85 + outPos] = (byte)((
          //                                        [76543210]
          //                                      [__76543210____________________]
           ((in[22 + inPos] & 1073741823) >>> 20)) & 255);
      out[86 + outPos] = (byte)((
          //                                        [______10]
          //                                              [98____________________________]
           ((in[22 + inPos] & 1073741823) >>> 28)
        | //                                        [765432__]
          //                [________________________543210]
           ((in[23 + inPos] & 1073741823) <<  2)) & 255);
      out[87 + outPos] = (byte)((
          //                                        [76543210]
          //                        [________________32109876______]
           ((in[23 + inPos] & 1073741823) >>> 6)) & 255);
      out[88 + outPos] = (byte)((
          //                                        [76543210]
          //                                [________10987654______________]
           ((in[23 + inPos] & 1073741823) >>> 14)) & 255);
      out[89 + outPos] = (byte)((
          //                                        [76543210]
          //                                        [98765432______________________]
           ((in[23 + inPos] & 1073741823) >>> 22)) & 255);
      out[90 + outPos] = (byte)((
          //                                        [76543210]
          //                  [______________________76543210]
           ((in[24 + inPos] & 1073741823))) & 255);
      out[91 + outPos] = (byte)((
          //                                        [76543210]
          //                          [______________54321098________]
           ((in[24 + inPos] & 1073741823) >>> 8)) & 255);
      out[92 + outPos] = (byte)((
          //                                        [76543210]
          //                                  [______32109876________________]
           ((in[24 + inPos] & 1073741823) >>> 16)) & 255);
      out[93 + outPos] = (byte)((
          //                                        [__543210]
          //                                          [987654________________________]
           ((in[24 + inPos] & 1073741823) >>> 24)
        | //                                        [76______]
          //            [____________________________10]
           ((in[25 + inPos] & 1073741823) <<  6)) & 255);
      out[94 + outPos] = (byte)((
          //                                        [76543210]
          //                    [____________________98765432__]
           ((in[25 + inPos] & 1073741823) >>> 2)) & 255);
      out[95 + outPos] = (byte)((
          //                                        [76543210]
          //                            [____________76543210__________]
           ((in[25 + inPos] & 1073741823) >>> 10)) & 255);
      out[96 + outPos] = (byte)((
          //                                        [76543210]
          //                                    [____54321098__________________]
           ((in[25 + inPos] & 1073741823) >>> 18)) & 255);
      out[97 + outPos] = (byte)((
          //                                        [____3210]
          //                                            [9876__________________________]
           ((in[25 + inPos] & 1073741823) >>> 26)
        | //                                        [7654____]
          //              [__________________________3210]
           ((in[26 + inPos] & 1073741823) <<  4)) & 255);
      out[98 + outPos] = (byte)((
          //                                        [76543210]
          //                      [__________________10987654____]
           ((in[26 + inPos] & 1073741823) >>> 4)) & 255);
      out[99 + outPos] = (byte)((
          //                                        [76543210]
          //                              [__________98765432____________]
           ((in[26 + inPos] & 1073741823) >>> 12)) & 255);
      out[100 + outPos] = (byte)((
          //                                        [76543210]
          //                                      [__76543210____________________]
           ((in[26 + inPos] & 1073741823) >>> 20)) & 255);
      out[101 + outPos] = (byte)((
          //                                        [______10]
          //                                              [98____________________________]
           ((in[26 + inPos] & 1073741823) >>> 28)
        | //                                        [765432__]
          //                [________________________543210]
           ((in[27 + inPos] & 1073741823) <<  2)) & 255);
      out[102 + outPos] = (byte)((
          //                                        [76543210]
          //                        [________________32109876______]
           ((in[27 + inPos] & 1073741823) >>> 6)) & 255);
      out[103 + outPos] = (byte)((
          //                                        [76543210]
          //                                [________10987654______________]
           ((in[27 + inPos] & 1073741823) >>> 14)) & 255);
      out[104 + outPos] = (byte)((
          //                                        [76543210]
          //                                        [98765432______________________]
           ((in[27 + inPos] & 1073741823) >>> 22)) & 255);
      out[105 + outPos] = (byte)((
          //                                        [76543210]
          //                  [______________________76543210]
           ((in[28 + inPos] & 1073741823))) & 255);
      out[106 + outPos] = (byte)((
          //                                        [76543210]
          //                          [______________54321098________]
           ((in[28 + inPos] & 1073741823) >>> 8)) & 255);
      out[107 + outPos] = (byte)((
          //                                        [76543210]
          //                                  [______32109876________________]
           ((in[28 + inPos] & 1073741823) >>> 16)) & 255);
      out[108 + outPos] = (byte)((
          //                                        [__543210]
          //                                          [987654________________________]
           ((in[28 + inPos] & 1073741823) >>> 24)
        | //                                        [76______]
          //            [____________________________10]
           ((in[29 + inPos] & 1073741823) <<  6)) & 255);
      out[109 + outPos] = (byte)((
          //                                        [76543210]
          //                    [____________________98765432__]
           ((in[29 + inPos] & 1073741823) >>> 2)) & 255);
      out[110 + outPos] = (byte)((
          //                                        [76543210]
          //                            [____________76543210__________]
           ((in[29 + inPos] & 1073741823) >>> 10)) & 255);
      out[111 + outPos] = (byte)((
          //                                        [76543210]
          //                                    [____54321098__________________]
           ((in[29 + inPos] & 1073741823) >>> 18)) & 255);
      out[112 + outPos] = (byte)((
          //                                        [____3210]
          //                                            [9876__________________________]
           ((in[29 + inPos] & 1073741823) >>> 26)
        | //                                        [7654____]
          //              [__________________________3210]
           ((in[30 + inPos] & 1073741823) <<  4)) & 255);
      out[113 + outPos] = (byte)((
          //                                        [76543210]
          //                      [__________________10987654____]
           ((in[30 + inPos] & 1073741823) >>> 4)) & 255);
      out[114 + outPos] = (byte)((
          //                                        [76543210]
          //                              [__________98765432____________]
           ((in[30 + inPos] & 1073741823) >>> 12)) & 255);
      out[115 + outPos] = (byte)((
          //                                        [76543210]
          //                                      [__76543210____________________]
           ((in[30 + inPos] & 1073741823) >>> 20)) & 255);
      out[116 + outPos] = (byte)((
          //                                        [______10]
          //                                              [98____________________________]
           ((in[30 + inPos] & 1073741823) >>> 28)
        | //                                        [765432__]
          //                [________________________543210]
           ((in[31 + inPos] & 1073741823) <<  2)) & 255);
      out[117 + outPos] = (byte)((
          //                                        [76543210]
          //                        [________________32109876______]
           ((in[31 + inPos] & 1073741823) >>> 6)) & 255);
      out[118 + outPos] = (byte)((
          //                                        [76543210]
          //                                [________10987654______________]
           ((in[31 + inPos] & 1073741823) >>> 14)) & 255);
      out[119 + outPos] = (byte)((
          //                                        [76543210]
          //                                        [98765432______________________]
           ((in[31 + inPos] & 1073741823) >>> 22)) & 255);
    }
    public final void unpack8Values(final byte[] in, final int inPos, final int[] out, final int outPos) {
      out[ 0 + outPos] =
          //                                        [76543210]
          //                  [______________________76543210]
            ((((int)in[ 0 + inPos]) ) & 255)
        | //                                        [76543210]
          //                          [______________54321098________]
            ((((int)in[ 1 + inPos]) <<  8) & 65535)
        | //                                        [76543210]
          //                                  [______32109876________________]
            ((((int)in[ 2 + inPos]) <<  16) & 16777215)
        | //                                        [__543210]
          //                                          [987654________________________]
            ((((int)in[ 3 + inPos]) <<  24) & 1073741823);
      out[ 1 + outPos] =
          //                                        [76______]
          //            [____________________________10]
            ((((int)in[ 3 + inPos]) >>  6) & 3)
        | //                                        [76543210]
          //                    [____________________98765432__]
            ((((int)in[ 4 + inPos]) <<  2) & 1023)
        | //                                        [76543210]
          //                            [____________76543210__________]
            ((((int)in[ 5 + inPos]) <<  10) & 262143)
        | //                                        [76543210]
          //                                    [____54321098__________________]
            ((((int)in[ 6 + inPos]) <<  18) & 67108863)
        | //                                        [____3210]
          //                                            [9876__________________________]
            ((((int)in[ 7 + inPos]) <<  26) & 1073741823);
      out[ 2 + outPos] =
          //                                        [7654____]
          //              [__________________________3210]
            ((((int)in[ 7 + inPos]) >>  4) & 15)
        | //                                        [76543210]
          //                      [__________________10987654____]
            ((((int)in[ 8 + inPos]) <<  4) & 4095)
        | //                                        [76543210]
          //                              [__________98765432____________]
            ((((int)in[ 9 + inPos]) <<  12) & 1048575)
        | //                                        [76543210]
          //                                      [__76543210____________________]
            ((((int)in[10 + inPos]) <<  20) & 268435455)
        | //                                        [______10]
          //                                              [98____________________________]
            ((((int)in[11 + inPos]) <<  28) & 1073741823);
      out[ 3 + outPos] =
          //                                        [765432__]
          //                [________________________543210]
            ((((int)in[11 + inPos]) >>  2) & 63)
        | //                                        [76543210]
          //                        [________________32109876______]
            ((((int)in[12 + inPos]) <<  6) & 16383)
        | //                                        [76543210]
          //                                [________10987654______________]
            ((((int)in[13 + inPos]) <<  14) & 4194303)
        | //                                        [76543210]
          //                                        [98765432______________________]
            ((((int)in[14 + inPos]) <<  22) & 1073741823);
      out[ 4 + outPos] =
          //                                        [76543210]
          //                  [______________________76543210]
            ((((int)in[15 + inPos]) ) & 255)
        | //                                        [76543210]
          //                          [______________54321098________]
            ((((int)in[16 + inPos]) <<  8) & 65535)
        | //                                        [76543210]
          //                                  [______32109876________________]
            ((((int)in[17 + inPos]) <<  16) & 16777215)
        | //                                        [__543210]
          //                                          [987654________________________]
            ((((int)in[18 + inPos]) <<  24) & 1073741823);
      out[ 5 + outPos] =
          //                                        [76______]
          //            [____________________________10]
            ((((int)in[18 + inPos]) >>  6) & 3)
        | //                                        [76543210]
          //                    [____________________98765432__]
            ((((int)in[19 + inPos]) <<  2) & 1023)
        | //                                        [76543210]
          //                            [____________76543210__________]
            ((((int)in[20 + inPos]) <<  10) & 262143)
        | //                                        [76543210]
          //                                    [____54321098__________________]
            ((((int)in[21 + inPos]) <<  18) & 67108863)
        | //                                        [____3210]
          //                                            [9876__________________________]
            ((((int)in[22 + inPos]) <<  26) & 1073741823);
      out[ 6 + outPos] =
          //                                        [7654____]
          //              [__________________________3210]
            ((((int)in[22 + inPos]) >>  4) & 15)
        | //                                        [76543210]
          //                      [__________________10987654____]
            ((((int)in[23 + inPos]) <<  4) & 4095)
        | //                                        [76543210]
          //                              [__________98765432____________]
            ((((int)in[24 + inPos]) <<  12) & 1048575)
        | //                                        [76543210]
          //                                      [__76543210____________________]
            ((((int)in[25 + inPos]) <<  20) & 268435455)
        | //                                        [______10]
          //                                              [98____________________________]
            ((((int)in[26 + inPos]) <<  28) & 1073741823);
      out[ 7 + outPos] =
          //                                        [765432__]
          //                [________________________543210]
            ((((int)in[26 + inPos]) >>  2) & 63)
        | //                                        [76543210]
          //                        [________________32109876______]
            ((((int)in[27 + inPos]) <<  6) & 16383)
        | //                                        [76543210]
          //                                [________10987654______________]
            ((((int)in[28 + inPos]) <<  14) & 4194303)
        | //                                        [76543210]
          //                                        [98765432______________________]
            ((((int)in[29 + inPos]) <<  22) & 1073741823);
    }
    public final void unpack8Values(final ByteBuffer in, final int inPos, final int[] out, final int outPos) {
      out[ 0 + outPos] =
          //                                        [76543210]
          //                  [______________________76543210]
            ((((int)in.get( 0 + inPos)) ) & 255)
        | //                                        [76543210]
          //                          [______________54321098________]
            ((((int)in.get( 1 + inPos)) <<  8) & 65535)
        | //                                        [76543210]
          //                                  [______32109876________________]
            ((((int)in.get( 2 + inPos)) <<  16) & 16777215)
        | //                                        [__543210]
          //                                          [987654________________________]
            ((((int)in.get( 3 + inPos)) <<  24) & 1073741823);
      out[ 1 + outPos] =
          //                                        [76______]
          //            [____________________________10]
            ((((int)in.get( 3 + inPos)) >>  6) & 3)
        | //                                        [76543210]
          //                    [____________________98765432__]
            ((((int)in.get( 4 + inPos)) <<  2) & 1023)
        | //                                        [76543210]
          //                            [____________76543210__________]
            ((((int)in.get( 5 + inPos)) <<  10) & 262143)
        | //                                        [76543210]
          //                                    [____54321098__________________]
            ((((int)in.get( 6 + inPos)) <<  18) & 67108863)
        | //                                        [____3210]
          //                                            [9876__________________________]
            ((((int)in.get( 7 + inPos)) <<  26) & 1073741823);
      out[ 2 + outPos] =
          //                                        [7654____]
          //              [__________________________3210]
            ((((int)in.get( 7 + inPos)) >>  4) & 15)
        | //                                        [76543210]
          //                      [__________________10987654____]
            ((((int)in.get( 8 + inPos)) <<  4) & 4095)
        | //                                        [76543210]
          //                              [__________98765432____________]
            ((((int)in.get( 9 + inPos)) <<  12) & 1048575)
        | //                                        [76543210]
          //                                      [__76543210____________________]
            ((((int)in.get(10 + inPos)) <<  20) & 268435455)
        | //                                        [______10]
          //                                              [98____________________________]
            ((((int)in.get(11 + inPos)) <<  28) & 1073741823);
      out[ 3 + outPos] =
          //                                        [765432__]
          //                [________________________543210]
            ((((int)in.get(11 + inPos)) >>  2) & 63)
        | //                                        [76543210]
          //                        [________________32109876______]
            ((((int)in.get(12 + inPos)) <<  6) & 16383)
        | //                                        [76543210]
          //                                [________10987654______________]
            ((((int)in.get(13 + inPos)) <<  14) & 4194303)
        | //                                        [76543210]
          //                                        [98765432______________________]
            ((((int)in.get(14 + inPos)) <<  22) & 1073741823);
      out[ 4 + outPos] =
          //                                        [76543210]
          //                  [______________________76543210]
            ((((int)in.get(15 + inPos)) ) & 255)
        | //                                        [76543210]
          //                          [______________54321098________]
            ((((int)in.get(16 + inPos)) <<  8) & 65535)
        | //                                        [76543210]
          //                                  [______32109876________________]
            ((((int)in.get(17 + inPos)) <<  16) & 16777215)
        | //                                        [__543210]
          //                                          [987654________________________]
            ((((int)in.get(18 + inPos)) <<  24) & 1073741823);
      out[ 5 + outPos] =
          //                                        [76______]
          //            [____________________________10]
            ((((int)in.get(18 + inPos)) >>  6) & 3)
        | //                                        [76543210]
          //                    [____________________98765432__]
            ((((int)in.get(19 + inPos)) <<  2) & 1023)
        | //                                        [76543210]
          //                            [____________76543210__________]
            ((((int)in.get(20 + inPos)) <<  10) & 262143)
        | //                                        [76543210]
          //                                    [____54321098__________________]
            ((((int)in.get(21 + inPos)) <<  18) & 67108863)
        | //                                        [____3210]
          //                                            [9876__________________________]
            ((((int)in.get(22 + inPos)) <<  26) & 1073741823);
      out[ 6 + outPos] =
          //                                        [7654____]
          //              [__________________________3210]
            ((((int)in.get(22 + inPos)) >>  4) & 15)
        | //                                        [76543210]
          //                      [__________________10987654____]
            ((((int)in.get(23 + inPos)) <<  4) & 4095)
        | //                                        [76543210]
          //                              [__________98765432____________]
            ((((int)in.get(24 + inPos)) <<  12) & 1048575)
        | //                                        [76543210]
          //                                      [__76543210____________________]
            ((((int)in.get(25 + inPos)) <<  20) & 268435455)
        | //                                        [______10]
          //                                              [98____________________________]
            ((((int)in.get(26 + inPos)) <<  28) & 1073741823);
      out[ 7 + outPos] =
          //                                        [765432__]
          //                [________________________543210]
            ((((int)in.get(26 + inPos)) >>  2) & 63)
        | //                                        [76543210]
          //                        [________________32109876______]
            ((((int)in.get(27 + inPos)) <<  6) & 16383)
        | //                                        [76543210]
          //                                [________10987654______________]
            ((((int)in.get(28 + inPos)) <<  14) & 4194303)
        | //                                        [76543210]
          //                                        [98765432______________________]
            ((((int)in.get(29 + inPos)) <<  22) & 1073741823);
    }
    public final void unpack32Values(final byte[] in, final int inPos, final int[] out, final int outPos) {
      out[ 0 + outPos] =
          //                                        [76543210]
          //                  [______________________76543210]
            ((((int)in[ 0 + inPos]) ) & 255)
        | //                                        [76543210]
          //                          [______________54321098________]
            ((((int)in[ 1 + inPos]) <<  8) & 65535)
        | //                                        [76543210]
          //                                  [______32109876________________]
            ((((int)in[ 2 + inPos]) <<  16) & 16777215)
        | //                                        [__543210]
          //                                          [987654________________________]
            ((((int)in[ 3 + inPos]) <<  24) & 1073741823);
      out[ 1 + outPos] =
          //                                        [76______]
          //            [____________________________10]
            ((((int)in[ 3 + inPos]) >>  6) & 3)
        | //                                        [76543210]
          //                    [____________________98765432__]
            ((((int)in[ 4 + inPos]) <<  2) & 1023)
        | //                                        [76543210]
          //                            [____________76543210__________]
            ((((int)in[ 5 + inPos]) <<  10) & 262143)
        | //                                        [76543210]
          //                                    [____54321098__________________]
            ((((int)in[ 6 + inPos]) <<  18) & 67108863)
        | //                                        [____3210]
          //                                            [9876__________________________]
            ((((int)in[ 7 + inPos]) <<  26) & 1073741823);
      out[ 2 + outPos] =
          //                                        [7654____]
          //              [__________________________3210]
            ((((int)in[ 7 + inPos]) >>  4) & 15)
        | //                                        [76543210]
          //                      [__________________10987654____]
            ((((int)in[ 8 + inPos]) <<  4) & 4095)
        | //                                        [76543210]
          //                              [__________98765432____________]
            ((((int)in[ 9 + inPos]) <<  12) & 1048575)
        | //                                        [76543210]
          //                                      [__76543210____________________]
            ((((int)in[10 + inPos]) <<  20) & 268435455)
        | //                                        [______10]
          //                                              [98____________________________]
            ((((int)in[11 + inPos]) <<  28) & 1073741823);
      out[ 3 + outPos] =
          //                                        [765432__]
          //                [________________________543210]
            ((((int)in[11 + inPos]) >>  2) & 63)
        | //                                        [76543210]
          //                        [________________32109876______]
            ((((int)in[12 + inPos]) <<  6) & 16383)
        | //                                        [76543210]
          //                                [________10987654______________]
            ((((int)in[13 + inPos]) <<  14) & 4194303)
        | //                                        [76543210]
          //                                        [98765432______________________]
            ((((int)in[14 + inPos]) <<  22) & 1073741823);
      out[ 4 + outPos] =
          //                                        [76543210]
          //                  [______________________76543210]
            ((((int)in[15 + inPos]) ) & 255)
        | //                                        [76543210]
          //                          [______________54321098________]
            ((((int)in[16 + inPos]) <<  8) & 65535)
        | //                                        [76543210]
          //                                  [______32109876________________]
            ((((int)in[17 + inPos]) <<  16) & 16777215)
        | //                                        [__543210]
          //                                          [987654________________________]
            ((((int)in[18 + inPos]) <<  24) & 1073741823);
      out[ 5 + outPos] =
          //                                        [76______]
          //            [____________________________10]
            ((((int)in[18 + inPos]) >>  6) & 3)
        | //                                        [76543210]
          //                    [____________________98765432__]
            ((((int)in[19 + inPos]) <<  2) & 1023)
        | //                                        [76543210]
          //                            [____________76543210__________]
            ((((int)in[20 + inPos]) <<  10) & 262143)
        | //                                        [76543210]
          //                                    [____54321098__________________]
            ((((int)in[21 + inPos]) <<  18) & 67108863)
        | //                                        [____3210]
          //                                            [9876__________________________]
            ((((int)in[22 + inPos]) <<  26) & 1073741823);
      out[ 6 + outPos] =
          //                                        [7654____]
          //              [__________________________3210]
            ((((int)in[22 + inPos]) >>  4) & 15)
        | //                                        [76543210]
          //                      [__________________10987654____]
            ((((int)in[23 + inPos]) <<  4) & 4095)
        | //                                        [76543210]
          //                              [__________98765432____________]
            ((((int)in[24 + inPos]) <<  12) & 1048575)
        | //                                        [76543210]
          //                                      [__76543210____________________]
            ((((int)in[25 + inPos]) <<  20) & 268435455)
        | //                                        [______10]
          //                                              [98____________________________]
            ((((int)in[26 + inPos]) <<  28) & 1073741823);
      out[ 7 + outPos] =
          //                                        [765432__]
          //                [________________________543210]
            ((((int)in[26 + inPos]) >>  2) & 63)
        | //                                        [76543210]
          //                        [________________32109876______]
            ((((int)in[27 + inPos]) <<  6) & 16383)
        | //                                        [76543210]
          //                                [________10987654______________]
            ((((int)in[28 + inPos]) <<  14) & 4194303)
        | //                                        [76543210]
          //                                        [98765432______________________]
            ((((int)in[29 + inPos]) <<  22) & 1073741823);
      out[ 8 + outPos] =
          //                                        [76543210]
          //                  [______________________76543210]
            ((((int)in[30 + inPos]) ) & 255)
        | //                                        [76543210]
          //                          [______________54321098________]
            ((((int)in[31 + inPos]) <<  8) & 65535)
        | //                                        [76543210]
          //                                  [______32109876________________]
            ((((int)in[32 + inPos]) <<  16) & 16777215)
        | //                                        [__543210]
          //                                          [987654________________________]
            ((((int)in[33 + inPos]) <<  24) & 1073741823);
      out[ 9 + outPos] =
          //                                        [76______]
          //            [____________________________10]
            ((((int)in[33 + inPos]) >>  6) & 3)
        | //                                        [76543210]
          //                    [____________________98765432__]
            ((((int)in[34 + inPos]) <<  2) & 1023)
        | //                                        [76543210]
          //                            [____________76543210__________]
            ((((int)in[35 + inPos]) <<  10) & 262143)
        | //                                        [76543210]
          //                                    [____54321098__________________]
            ((((int)in[36 + inPos]) <<  18) & 67108863)
        | //                                        [____3210]
          //                                            [9876__________________________]
            ((((int)in[37 + inPos]) <<  26) & 1073741823);
      out[10 + outPos] =
          //                                        [7654____]
          //              [__________________________3210]
            ((((int)in[37 + inPos]) >>  4) & 15)
        | //                                        [76543210]
          //                      [__________________10987654____]
            ((((int)in[38 + inPos]) <<  4) & 4095)
        | //                                        [76543210]
          //                              [__________98765432____________]
            ((((int)in[39 + inPos]) <<  12) & 1048575)
        | //                                        [76543210]
          //                                      [__76543210____________________]
            ((((int)in[40 + inPos]) <<  20) & 268435455)
        | //                                        [______10]
          //                                              [98____________________________]
            ((((int)in[41 + inPos]) <<  28) & 1073741823);
      out[11 + outPos] =
          //                                        [765432__]
          //                [________________________543210]
            ((((int)in[41 + inPos]) >>  2) & 63)
        | //                                        [76543210]
          //                        [________________32109876______]
            ((((int)in[42 + inPos]) <<  6) & 16383)
        | //                                        [76543210]
          //                                [________10987654______________]
            ((((int)in[43 + inPos]) <<  14) & 4194303)
        | //                                        [76543210]
          //                                        [98765432______________________]
            ((((int)in[44 + inPos]) <<  22) & 1073741823);
      out[12 + outPos] =
          //                                        [76543210]
          //                  [______________________76543210]
            ((((int)in[45 + inPos]) ) & 255)
        | //                                        [76543210]
          //                          [______________54321098________]
            ((((int)in[46 + inPos]) <<  8) & 65535)
        | //                                        [76543210]
          //                                  [______32109876________________]
            ((((int)in[47 + inPos]) <<  16) & 16777215)
        | //                                        [__543210]
          //                                          [987654________________________]
            ((((int)in[48 + inPos]) <<  24) & 1073741823);
      out[13 + outPos] =
          //                                        [76______]
          //            [____________________________10]
            ((((int)in[48 + inPos]) >>  6) & 3)
        | //                                        [76543210]
          //                    [____________________98765432__]
            ((((int)in[49 + inPos]) <<  2) & 1023)
        | //                                        [76543210]
          //                            [____________76543210__________]
            ((((int)in[50 + inPos]) <<  10) & 262143)
        | //                                        [76543210]
          //                                    [____54321098__________________]
            ((((int)in[51 + inPos]) <<  18) & 67108863)
        | //                                        [____3210]
          //                                            [9876__________________________]
            ((((int)in[52 + inPos]) <<  26) & 1073741823);
      out[14 + outPos] =
          //                                        [7654____]
          //              [__________________________3210]
            ((((int)in[52 + inPos]) >>  4) & 15)
        | //                                        [76543210]
          //                      [__________________10987654____]
            ((((int)in[53 + inPos]) <<  4) & 4095)
        | //                                        [76543210]
          //                              [__________98765432____________]
            ((((int)in[54 + inPos]) <<  12) & 1048575)
        | //                                        [76543210]
          //                                      [__76543210____________________]
            ((((int)in[55 + inPos]) <<  20) & 268435455)
        | //                                        [______10]
          //                                              [98____________________________]
            ((((int)in[56 + inPos]) <<  28) & 1073741823);
      out[15 + outPos] =
          //                                        [765432__]
          //                [________________________543210]
            ((((int)in[56 + inPos]) >>  2) & 63)
        | //                                        [76543210]
          //                        [________________32109876______]
            ((((int)in[57 + inPos]) <<  6) & 16383)
        | //                                        [76543210]
          //                                [________10987654______________]
            ((((int)in[58 + inPos]) <<  14) & 4194303)
        | //                                        [76543210]
          //                                        [98765432______________________]
            ((((int)in[59 + inPos]) <<  22) & 1073741823);
      out[16 + outPos] =
          //                                        [76543210]
          //                  [______________________76543210]
            ((((int)in[60 + inPos]) ) & 255)
        | //                                        [76543210]
          //                          [______________54321098________]
            ((((int)in[61 + inPos]) <<  8) & 65535)
        | //                                        [76543210]
          //                                  [______32109876________________]
            ((((int)in[62 + inPos]) <<  16) & 16777215)
        | //                                        [__543210]
          //                                          [987654________________________]
            ((((int)in[63 + inPos]) <<  24) & 1073741823);
      out[17 + outPos] =
          //                                        [76______]
          //            [____________________________10]
            ((((int)in[63 + inPos]) >>  6) & 3)
        | //                                        [76543210]
          //                    [____________________98765432__]
            ((((int)in[64 + inPos]) <<  2) & 1023)
        | //                                        [76543210]
          //                            [____________76543210__________]
            ((((int)in[65 + inPos]) <<  10) & 262143)
        | //                                        [76543210]
          //                                    [____54321098__________________]
            ((((int)in[66 + inPos]) <<  18) & 67108863)
        | //                                        [____3210]
          //                                            [9876__________________________]
            ((((int)in[67 + inPos]) <<  26) & 1073741823);
      out[18 + outPos] =
          //                                        [7654____]
          //              [__________________________3210]
            ((((int)in[67 + inPos]) >>  4) & 15)
        | //                                        [76543210]
          //                      [__________________10987654____]
            ((((int)in[68 + inPos]) <<  4) & 4095)
        | //                                        [76543210]
          //                              [__________98765432____________]
            ((((int)in[69 + inPos]) <<  12) & 1048575)
        | //                                        [76543210]
          //                                      [__76543210____________________]
            ((((int)in[70 + inPos]) <<  20) & 268435455)
        | //                                        [______10]
          //                                              [98____________________________]
            ((((int)in[71 + inPos]) <<  28) & 1073741823);
      out[19 + outPos] =
          //                                        [765432__]
          //                [________________________543210]
            ((((int)in[71 + inPos]) >>  2) & 63)
        | //                                        [76543210]
          //                        [________________32109876______]
            ((((int)in[72 + inPos]) <<  6) & 16383)
        | //                                        [76543210]
          //                                [________10987654______________]
            ((((int)in[73 + inPos]) <<  14) & 4194303)
        | //                                        [76543210]
          //                                        [98765432______________________]
            ((((int)in[74 + inPos]) <<  22) & 1073741823);
      out[20 + outPos] =
          //                                        [76543210]
          //                  [______________________76543210]
            ((((int)in[75 + inPos]) ) & 255)
        | //                                        [76543210]
          //                          [______________54321098________]
            ((((int)in[76 + inPos]) <<  8) & 65535)
        | //                                        [76543210]
          //                                  [______32109876________________]
            ((((int)in[77 + inPos]) <<  16) & 16777215)
        | //                                        [__543210]
          //                                          [987654________________________]
            ((((int)in[78 + inPos]) <<  24) & 1073741823);
      out[21 + outPos] =
          //                                        [76______]
          //            [____________________________10]
            ((((int)in[78 + inPos]) >>  6) & 3)
        | //                                        [76543210]
          //                    [____________________98765432__]
            ((((int)in[79 + inPos]) <<  2) & 1023)
        | //                                        [76543210]
          //                            [____________76543210__________]
            ((((int)in[80 + inPos]) <<  10) & 262143)
        | //                                        [76543210]
          //                                    [____54321098__________________]
            ((((int)in[81 + inPos]) <<  18) & 67108863)
        | //                                        [____3210]
          //                                            [9876__________________________]
            ((((int)in[82 + inPos]) <<  26) & 1073741823);
      out[22 + outPos] =
          //                                        [7654____]
          //              [__________________________3210]
            ((((int)in[82 + inPos]) >>  4) & 15)
        | //                                        [76543210]
          //                      [__________________10987654____]
            ((((int)in[83 + inPos]) <<  4) & 4095)
        | //                                        [76543210]
          //                              [__________98765432____________]
            ((((int)in[84 + inPos]) <<  12) & 1048575)
        | //                                        [76543210]
          //                                      [__76543210____________________]
            ((((int)in[85 + inPos]) <<  20) & 268435455)
        | //                                        [______10]
          //                                              [98____________________________]
            ((((int)in[86 + inPos]) <<  28) & 1073741823);
      out[23 + outPos] =
          //                                        [765432__]
          //                [________________________543210]
            ((((int)in[86 + inPos]) >>  2) & 63)
        | //                                        [76543210]
          //                        [________________32109876______]
            ((((int)in[87 + inPos]) <<  6) & 16383)
        | //                                        [76543210]
          //                                [________10987654______________]
            ((((int)in[88 + inPos]) <<  14) & 4194303)
        | //                                        [76543210]
          //                                        [98765432______________________]
            ((((int)in[89 + inPos]) <<  22) & 1073741823);
      out[24 + outPos] =
          //                                        [76543210]
          //                  [______________________76543210]
            ((((int)in[90 + inPos]) ) & 255)
        | //                                        [76543210]
          //                          [______________54321098________]
            ((((int)in[91 + inPos]) <<  8) & 65535)
        | //                                        [76543210]
          //                                  [______32109876________________]
            ((((int)in[92 + inPos]) <<  16) & 16777215)
        | //                                        [__543210]
          //                                          [987654________________________]
            ((((int)in[93 + inPos]) <<  24) & 1073741823);
      out[25 + outPos] =
          //                                        [76______]
          //            [____________________________10]
            ((((int)in[93 + inPos]) >>  6) & 3)
        | //                                        [76543210]
          //                    [____________________98765432__]
            ((((int)in[94 + inPos]) <<  2) & 1023)
        | //                                        [76543210]
          //                            [____________76543210__________]
            ((((int)in[95 + inPos]) <<  10) & 262143)
        | //                                        [76543210]
          //                                    [____54321098__________________]
            ((((int)in[96 + inPos]) <<  18) & 67108863)
        | //                                        [____3210]
          //                                            [9876__________________________]
            ((((int)in[97 + inPos]) <<  26) & 1073741823);
      out[26 + outPos] =
          //                                        [7654____]
          //              [__________________________3210]
            ((((int)in[97 + inPos]) >>  4) & 15)
        | //                                        [76543210]
          //                      [__________________10987654____]
            ((((int)in[98 + inPos]) <<  4) & 4095)
        | //                                        [76543210]
          //                              [__________98765432____________]
            ((((int)in[99 + inPos]) <<  12) & 1048575)
        | //                                        [76543210]
          //                                      [__76543210____________________]
            ((((int)in[100 + inPos]) <<  20) & 268435455)
        | //                                        [______10]
          //                                              [98____________________________]
            ((((int)in[101 + inPos]) <<  28) & 1073741823);
      out[27 + outPos] =
          //                                        [765432__]
          //                [________________________543210]
            ((((int)in[101 + inPos]) >>  2) & 63)
        | //                                        [76543210]
          //                        [________________32109876______]
            ((((int)in[102 + inPos]) <<  6) & 16383)
        | //                                        [76543210]
          //                                [________10987654______________]
            ((((int)in[103 + inPos]) <<  14) & 4194303)
        | //                                        [76543210]
          //                                        [98765432______________________]
            ((((int)in[104 + inPos]) <<  22) & 1073741823);
      out[28 + outPos] =
          //                                        [76543210]
          //                  [______________________76543210]
            ((((int)in[105 + inPos]) ) & 255)
        | //                                        [76543210]
          //                          [______________54321098________]
            ((((int)in[106 + inPos]) <<  8) & 65535)
        | //                                        [76543210]
          //                                  [______32109876________________]
            ((((int)in[107 + inPos]) <<  16) & 16777215)
        | //                                        [__543210]
          //                                          [987654________________________]
            ((((int)in[108 + inPos]) <<  24) & 1073741823);
      out[29 + outPos] =
          //                                        [76______]
          //            [____________________________10]
            ((((int)in[108 + inPos]) >>  6) & 3)
        | //                                        [76543210]
          //                    [____________________98765432__]
            ((((int)in[109 + inPos]) <<  2) & 1023)
        | //                                        [76543210]
          //                            [____________76543210__________]
            ((((int)in[110 + inPos]) <<  10) & 262143)
        | //                                        [76543210]
          //                                    [____54321098__________________]
            ((((int)in[111 + inPos]) <<  18) & 67108863)
        | //                                        [____3210]
          //                                            [9876__________________________]
            ((((int)in[112 + inPos]) <<  26) & 1073741823);
      out[30 + outPos] =
          //                                        [7654____]
          //              [__________________________3210]
            ((((int)in[112 + inPos]) >>  4) & 15)
        | //                                        [76543210]
          //                      [__________________10987654____]
            ((((int)in[113 + inPos]) <<  4) & 4095)
        | //                                        [76543210]
          //                              [__________98765432____________]
            ((((int)in[114 + inPos]) <<  12) & 1048575)
        | //                                        [76543210]
          //                                      [__76543210____________________]
            ((((int)in[115 + inPos]) <<  20) & 268435455)
        | //                                        [______10]
          //                                              [98____________________________]
            ((((int)in[116 + inPos]) <<  28) & 1073741823);
      out[31 + outPos] =
          //                                        [765432__]
          //                [________________________543210]
            ((((int)in[116 + inPos]) >>  2) & 63)
        | //                                        [76543210]
          //                        [________________32109876______]
            ((((int)in[117 + inPos]) <<  6) & 16383)
        | //                                        [76543210]
          //                                [________10987654______________]
            ((((int)in[118 + inPos]) <<  14) & 4194303)
        | //                                        [76543210]
          //                                        [98765432______________________]
            ((((int)in[119 + inPos]) <<  22) & 1073741823);
    }
    public final void unpack32Values(final ByteBuffer in, final int inPos, final int[] out, final int outPos) {
      out[ 0 + outPos] =
          //                                        [76543210]
          //                  [______________________76543210]
            ((((int)in.get( 0 + inPos)) ) & 255)
        | //                                        [76543210]
          //                          [______________54321098________]
            ((((int)in.get( 1 + inPos)) <<  8) & 65535)
        | //                                        [76543210]
          //                                  [______32109876________________]
            ((((int)in.get( 2 + inPos)) <<  16) & 16777215)
        | //                                        [__543210]
          //                                          [987654________________________]
            ((((int)in.get( 3 + inPos)) <<  24) & 1073741823);
      out[ 1 + outPos] =
          //                                        [76______]
          //            [____________________________10]
            ((((int)in.get( 3 + inPos)) >>  6) & 3)
        | //                                        [76543210]
          //                    [____________________98765432__]
            ((((int)in.get( 4 + inPos)) <<  2) & 1023)
        | //                                        [76543210]
          //                            [____________76543210__________]
            ((((int)in.get( 5 + inPos)) <<  10) & 262143)
        | //                                        [76543210]
          //                                    [____54321098__________________]
            ((((int)in.get( 6 + inPos)) <<  18) & 67108863)
        | //                                        [____3210]
          //                                            [9876__________________________]
            ((((int)in.get( 7 + inPos)) <<  26) & 1073741823);
      out[ 2 + outPos] =
          //                                        [7654____]
          //              [__________________________3210]
            ((((int)in.get( 7 + inPos)) >>  4) & 15)
        | //                                        [76543210]
          //                      [__________________10987654____]
            ((((int)in.get( 8 + inPos)) <<  4) & 4095)
        | //                                        [76543210]
          //                              [__________98765432____________]
            ((((int)in.get( 9 + inPos)) <<  12) & 1048575)
        | //                                        [76543210]
          //                                      [__76543210____________________]
            ((((int)in.get(10 + inPos)) <<  20) & 268435455)
        | //                                        [______10]
          //                                              [98____________________________]
            ((((int)in.get(11 + inPos)) <<  28) & 1073741823);
      out[ 3 + outPos] =
          //                                        [765432__]
          //                [________________________543210]
            ((((int)in.get(11 + inPos)) >>  2) & 63)
        | //                                        [76543210]
          //                        [________________32109876______]
            ((((int)in.get(12 + inPos)) <<  6) & 16383)
        | //                                        [76543210]
          //                                [________10987654______________]
            ((((int)in.get(13 + inPos)) <<  14) & 4194303)
        | //                                        [76543210]
          //                                        [98765432______________________]
            ((((int)in.get(14 + inPos)) <<  22) & 1073741823);
      out[ 4 + outPos] =
          //                                        [76543210]
          //                  [______________________76543210]
            ((((int)in.get(15 + inPos)) ) & 255)
        | //                                        [76543210]
          //                          [______________54321098________]
            ((((int)in.get(16 + inPos)) <<  8) & 65535)
        | //                                        [76543210]
          //                                  [______32109876________________]
            ((((int)in.get(17 + inPos)) <<  16) & 16777215)
        | //                                        [__543210]
          //                                          [987654________________________]
            ((((int)in.get(18 + inPos)) <<  24) & 1073741823);
      out[ 5 + outPos] =
          //                                        [76______]
          //            [____________________________10]
            ((((int)in.get(18 + inPos)) >>  6) & 3)
        | //                                        [76543210]
          //                    [____________________98765432__]
            ((((int)in.get(19 + inPos)) <<  2) & 1023)
        | //                                        [76543210]
          //                            [____________76543210__________]
            ((((int)in.get(20 + inPos)) <<  10) & 262143)
        | //                                        [76543210]
          //                                    [____54321098__________________]
            ((((int)in.get(21 + inPos)) <<  18) & 67108863)
        | //                                        [____3210]
          //                                            [9876__________________________]
            ((((int)in.get(22 + inPos)) <<  26) & 1073741823);
      out[ 6 + outPos] =
          //                                        [7654____]
          //              [__________________________3210]
            ((((int)in.get(22 + inPos)) >>  4) & 15)
        | //                                        [76543210]
          //                      [__________________10987654____]
            ((((int)in.get(23 + inPos)) <<  4) & 4095)
        | //                                        [76543210]
          //                              [__________98765432____________]
            ((((int)in.get(24 + inPos)) <<  12) & 1048575)
        | //                                        [76543210]
          //                                      [__76543210____________________]
            ((((int)in.get(25 + inPos)) <<  20) & 268435455)
        | //                                        [______10]
          //                                              [98____________________________]
            ((((int)in.get(26 + inPos)) <<  28) & 1073741823);
      out[ 7 + outPos] =
          //                                        [765432__]
          //                [________________________543210]
            ((((int)in.get(26 + inPos)) >>  2) & 63)
        | //                                        [76543210]
          //                        [________________32109876______]
            ((((int)in.get(27 + inPos)) <<  6) & 16383)
        | //                                        [76543210]
          //                                [________10987654______________]
            ((((int)in.get(28 + inPos)) <<  14) & 4194303)
        | //                                        [76543210]
          //                                        [98765432______________________]
            ((((int)in.get(29 + inPos)) <<  22) & 1073741823);
      out[ 8 + outPos] =
          //                                        [76543210]
          //                  [______________________76543210]
            ((((int)in.get(30 + inPos)) ) & 255)
        | //                                        [76543210]
          //                          [______________54321098________]
            ((((int)in.get(31 + inPos)) <<  8) & 65535)
        | //                                        [76543210]
          //                                  [______32109876________________]
            ((((int)in.get(32 + inPos)) <<  16) & 16777215)
        | //                                        [__543210]
          //                                          [987654________________________]
            ((((int)in.get(33 + inPos)) <<  24) & 1073741823);
      out[ 9 + outPos] =
          //                                        [76______]
          //            [____________________________10]
            ((((int)in.get(33 + inPos)) >>  6) & 3)
        | //                                        [76543210]
          //                    [____________________98765432__]
            ((((int)in.get(34 + inPos)) <<  2) & 1023)
        | //                                        [76543210]
          //                            [____________76543210__________]
            ((((int)in.get(35 + inPos)) <<  10) & 262143)
        | //                                        [76543210]
          //                                    [____54321098__________________]
            ((((int)in.get(36 + inPos)) <<  18) & 67108863)
        | //                                        [____3210]
          //                                            [9876__________________________]
            ((((int)in.get(37 + inPos)) <<  26) & 1073741823);
      out[10 + outPos] =
          //                                        [7654____]
          //              [__________________________3210]
            ((((int)in.get(37 + inPos)) >>  4) & 15)
        | //                                        [76543210]
          //                      [__________________10987654____]
            ((((int)in.get(38 + inPos)) <<  4) & 4095)
        | //                                        [76543210]
          //                              [__________98765432____________]
            ((((int)in.get(39 + inPos)) <<  12) & 1048575)
        | //                                        [76543210]
          //                                      [__76543210____________________]
            ((((int)in.get(40 + inPos)) <<  20) & 268435455)
        | //                                        [______10]
          //                                              [98____________________________]
            ((((int)in.get(41 + inPos)) <<  28) & 1073741823);
      out[11 + outPos] =
          //                                        [765432__]
          //                [________________________543210]
            ((((int)in.get(41 + inPos)) >>  2) & 63)
        | //                                        [76543210]
          //                        [________________32109876______]
            ((((int)in.get(42 + inPos)) <<  6) & 16383)
        | //                                        [76543210]
          //                                [________10987654______________]
            ((((int)in.get(43 + inPos)) <<  14) & 4194303)
        | //                                        [76543210]
          //                                        [98765432______________________]
            ((((int)in.get(44 + inPos)) <<  22) & 1073741823);
      out[12 + outPos] =
          //                                        [76543210]
          //                  [______________________76543210]
            ((((int)in.get(45 + inPos)) ) & 255)
        | //                                        [76543210]
          //                          [______________54321098________]
            ((((int)in.get(46 + inPos)) <<  8) & 65535)
        | //                                        [76543210]
          //                                  [______32109876________________]
            ((((int)in.get(47 + inPos)) <<  16) & 16777215)
        | //                                        [__543210]
          //                                          [987654________________________]
            ((((int)in.get(48 + inPos)) <<  24) & 1073741823);
      out[13 + outPos] =
          //                                        [76______]
          //            [____________________________10]
            ((((int)in.get(48 + inPos)) >>  6) & 3)
        | //                                        [76543210]
          //                    [____________________98765432__]
            ((((int)in.get(49 + inPos)) <<  2) & 1023)
        | //                                        [76543210]
          //                            [____________76543210__________]
            ((((int)in.get(50 + inPos)) <<  10) & 262143)
        | //                                        [76543210]
          //                                    [____54321098__________________]
            ((((int)in.get(51 + inPos)) <<  18) & 67108863)
        | //                                        [____3210]
          //                                            [9876__________________________]
            ((((int)in.get(52 + inPos)) <<  26) & 1073741823);
      out[14 + outPos] =
          //                                        [7654____]
          //              [__________________________3210]
            ((((int)in.get(52 + inPos)) >>  4) & 15)
        | //                                        [76543210]
          //                      [__________________10987654____]
            ((((int)in.get(53 + inPos)) <<  4) & 4095)
        | //                                        [76543210]
          //                              [__________98765432____________]
            ((((int)in.get(54 + inPos)) <<  12) & 1048575)
        | //                                        [76543210]
          //                                      [__76543210____________________]
            ((((int)in.get(55 + inPos)) <<  20) & 268435455)
        | //                                        [______10]
          //                                              [98____________________________]
            ((((int)in.get(56 + inPos)) <<  28) & 1073741823);
      out[15 + outPos] =
          //                                        [765432__]
          //                [________________________543210]
            ((((int)in.get(56 + inPos)) >>  2) & 63)
        | //                                        [76543210]
          //                        [________________32109876______]
            ((((int)in.get(57 + inPos)) <<  6) & 16383)
        | //                                        [76543210]
          //                                [________10987654______________]
            ((((int)in.get(58 + inPos)) <<  14) & 4194303)
        | //                                        [76543210]
          //                                        [98765432______________________]
            ((((int)in.get(59 + inPos)) <<  22) & 1073741823);
      out[16 + outPos] =
          //                                        [76543210]
          //                  [______________________76543210]
            ((((int)in.get(60 + inPos)) ) & 255)
        | //                                        [76543210]
          //                          [______________54321098________]
            ((((int)in.get(61 + inPos)) <<  8) & 65535)
        | //                                        [76543210]
          //                                  [______32109876________________]
            ((((int)in.get(62 + inPos)) <<  16) & 16777215)
        | //                                        [__543210]
          //                                          [987654________________________]
            ((((int)in.get(63 + inPos)) <<  24) & 1073741823);
      out[17 + outPos] =
          //                                        [76______]
          //            [____________________________10]
            ((((int)in.get(63 + inPos)) >>  6) & 3)
        | //                                        [76543210]
          //                    [____________________98765432__]
            ((((int)in.get(64 + inPos)) <<  2) & 1023)
        | //                                        [76543210]
          //                            [____________76543210__________]
            ((((int)in.get(65 + inPos)) <<  10) & 262143)
        | //                                        [76543210]
          //                                    [____54321098__________________]
            ((((int)in.get(66 + inPos)) <<  18) & 67108863)
        | //                                        [____3210]
          //                                            [9876__________________________]
            ((((int)in.get(67 + inPos)) <<  26) & 1073741823);
      out[18 + outPos] =
          //                                        [7654____]
          //              [__________________________3210]
            ((((int)in.get(67 + inPos)) >>  4) & 15)
        | //                                        [76543210]
          //                      [__________________10987654____]
            ((((int)in.get(68 + inPos)) <<  4) & 4095)
        | //                                        [76543210]
          //                              [__________98765432____________]
            ((((int)in.get(69 + inPos)) <<  12) & 1048575)
        | //                                        [76543210]
          //                                      [__76543210____________________]
            ((((int)in.get(70 + inPos)) <<  20) & 268435455)
        | //                                        [______10]
          //                                              [98____________________________]
            ((((int)in.get(71 + inPos)) <<  28) & 1073741823);
      out[19 + outPos] =
          //                                        [765432__]
          //                [________________________543210]
            ((((int)in.get(71 + inPos)) >>  2) & 63)
        | //                                        [76543210]
          //                        [________________32109876______]
            ((((int)in.get(72 + inPos)) <<  6) & 16383)
        | //                                        [76543210]
          //                                [________10987654______________]
            ((((int)in.get(73 + inPos)) <<  14) & 4194303)
        | //                                        [76543210]
          //                                        [98765432______________________]
            ((((int)in.get(74 + inPos)) <<  22) & 1073741823);
      out[20 + outPos] =
          //                                        [76543210]
          //                  [______________________76543210]
            ((((int)in.get(75 + inPos)) ) & 255)
        | //                                        [76543210]
          //                          [______________54321098________]
            ((((int)in.get(76 + inPos)) <<  8) & 65535)
        | //                                        [76543210]
          //                                  [______32109876________________]
            ((((int)in.get(77 + inPos)) <<  16) & 16777215)
        | //                                        [__543210]
          //                                          [987654________________________]
            ((((int)in.get(78 + inPos)) <<  24) & 1073741823);
      out[21 + outPos] =
          //                                        [76______]
          //            [____________________________10]
            ((((int)in.get(78 + inPos)) >>  6) & 3)
        | //                                        [76543210]
          //                    [____________________98765432__]
            ((((int)in.get(79 + inPos)) <<  2) & 1023)
        | //                                        [76543210]
          //                            [____________76543210__________]
            ((((int)in.get(80 + inPos)) <<  10) & 262143)
        | //                                        [76543210]
          //                                    [____54321098__________________]
            ((((int)in.get(81 + inPos)) <<  18) & 67108863)
        | //                                        [____3210]
          //                                            [9876__________________________]
            ((((int)in.get(82 + inPos)) <<  26) & 1073741823);
      out[22 + outPos] =
          //                                        [7654____]
          //              [__________________________3210]
            ((((int)in.get(82 + inPos)) >>  4) & 15)
        | //                                        [76543210]
          //                      [__________________10987654____]
            ((((int)in.get(83 + inPos)) <<  4) & 4095)
        | //                                        [76543210]
          //                              [__________98765432____________]
            ((((int)in.get(84 + inPos)) <<  12) & 1048575)
        | //                                        [76543210]
          //                                      [__76543210____________________]
            ((((int)in.get(85 + inPos)) <<  20) & 268435455)
        | //                                        [______10]
          //                                              [98____________________________]
            ((((int)in.get(86 + inPos)) <<  28) & 1073741823);
      out[23 + outPos] =
          //                                        [765432__]
          //                [________________________543210]
            ((((int)in.get(86 + inPos)) >>  2) & 63)
        | //                                        [76543210]
          //                        [________________32109876______]
            ((((int)in.get(87 + inPos)) <<  6) & 16383)
        | //                                        [76543210]
          //                                [________10987654______________]
            ((((int)in.get(88 + inPos)) <<  14) & 4194303)
        | //                                        [76543210]
          //                                        [98765432______________________]
            ((((int)in.get(89 + inPos)) <<  22) & 1073741823);
      out[24 + outPos] =
          //                                        [76543210]
          //                  [______________________76543210]
            ((((int)in.get(90 + inPos)) ) & 255)
        | //                                        [76543210]
          //                          [______________54321098________]
            ((((int)in.get(91 + inPos)) <<  8) & 65535)
        | //                                        [76543210]
          //                                  [______32109876________________]
            ((((int)in.get(92 + inPos)) <<  16) & 16777215)
        | //                                        [__543210]
          //                                          [987654________________________]
            ((((int)in.get(93 + inPos)) <<  24) & 1073741823);
      out[25 + outPos] =
          //                                        [76______]
          //            [____________________________10]
            ((((int)in.get(93 + inPos)) >>  6) & 3)
        | //                                        [76543210]
          //                    [____________________98765432__]
            ((((int)in.get(94 + inPos)) <<  2) & 1023)
        | //                                        [76543210]
          //                            [____________76543210__________]
            ((((int)in.get(95 + inPos)) <<  10) & 262143)
        | //                                        [76543210]
          //                                    [____54321098__________________]
            ((((int)in.get(96 + inPos)) <<  18) & 67108863)
        | //                                        [____3210]
          //                                            [9876__________________________]
            ((((int)in.get(97 + inPos)) <<  26) & 1073741823);
      out[26 + outPos] =
          //                                        [7654____]
          //              [__________________________3210]
            ((((int)in.get(97 + inPos)) >>  4) & 15)
        | //                                        [76543210]
          //                      [__________________10987654____]
            ((((int)in.get(98 + inPos)) <<  4) & 4095)
        | //                                        [76543210]
          //                              [__________98765432____________]
            ((((int)in.get(99 + inPos)) <<  12) & 1048575)
        | //                                        [76543210]
          //                                      [__76543210____________________]
            ((((int)in.get(100 + inPos)) <<  20) & 268435455)
        | //                                        [______10]
          //                                              [98____________________________]
            ((((int)in.get(101 + inPos)) <<  28) & 1073741823);
      out[27 + outPos] =
          //                                        [765432__]
          //                [________________________543210]
            ((((int)in.get(101 + inPos)) >>  2) & 63)
        | //                                        [76543210]
          //                        [________________32109876______]
            ((((int)in.get(102 + inPos)) <<  6) & 16383)
        | //                                        [76543210]
          //                                [________10987654______________]
            ((((int)in.get(103 + inPos)) <<  14) & 4194303)
        | //                                        [76543210]
          //                                        [98765432______________________]
            ((((int)in.get(104 + inPos)) <<  22) & 1073741823);
      out[28 + outPos] =
          //                                        [76543210]
          //                  [______________________76543210]
            ((((int)in.get(105 + inPos)) ) & 255)
        | //                                        [76543210]
          //                          [______________54321098________]
            ((((int)in.get(106 + inPos)) <<  8) & 65535)
        | //                                        [76543210]
          //                                  [______32109876________________]
            ((((int)in.get(107 + inPos)) <<  16) & 16777215)
        | //                                        [__543210]
          //                                          [987654________________________]
            ((((int)in.get(108 + inPos)) <<  24) & 1073741823);
      out[29 + outPos] =
          //                                        [76______]
          //            [____________________________10]
            ((((int)in.get(108 + inPos)) >>  6) & 3)
        | //                                        [76543210]
          //                    [____________________98765432__]
            ((((int)in.get(109 + inPos)) <<  2) & 1023)
        | //                                        [76543210]
          //                            [____________76543210__________]
            ((((int)in.get(110 + inPos)) <<  10) & 262143)
        | //                                        [76543210]
          //                                    [____54321098__________________]
            ((((int)in.get(111 + inPos)) <<  18) & 67108863)
        | //                                        [____3210]
          //                                            [9876__________________________]
            ((((int)in.get(112 + inPos)) <<  26) & 1073741823);
      out[30 + outPos] =
          //                                        [7654____]
          //              [__________________________3210]
            ((((int)in.get(112 + inPos)) >>  4) & 15)
        | //                                        [76543210]
          //                      [__________________10987654____]
            ((((int)in.get(113 + inPos)) <<  4) & 4095)
        | //                                        [76543210]
          //                              [__________98765432____________]
            ((((int)in.get(114 + inPos)) <<  12) & 1048575)
        | //                                        [76543210]
          //                                      [__76543210____________________]
            ((((int)in.get(115 + inPos)) <<  20) & 268435455)
        | //                                        [______10]
          //                                              [98____________________________]
            ((((int)in.get(116 + inPos)) <<  28) & 1073741823);
      out[31 + outPos] =
          //                                        [765432__]
          //                [________________________543210]
            ((((int)in.get(116 + inPos)) >>  2) & 63)
        | //                                        [76543210]
          //                        [________________32109876______]
            ((((int)in.get(117 + inPos)) <<  6) & 16383)
        | //                                        [76543210]
          //                                [________10987654______________]
            ((((int)in.get(118 + inPos)) <<  14) & 4194303)
        | //                                        [76543210]
          //                                        [98765432______________________]
            ((((int)in.get(119 + inPos)) <<  22) & 1073741823);
    }
  }

  private static final class Packer31 extends BytePacker {

    private Packer31() {
      super(31);
    }

    public final void pack8Values(final int[] in, final int inPos, final byte[] out, final int outPos) {
      out[ 0 + outPos] = (byte)((
          //                                         [76543210]
          //                  [_______________________76543210]
           ((in[ 0 + inPos] & 2147483647))) & 255);
      out[ 1 + outPos] = (byte)((
          //                                         [76543210]
          //                          [_______________54321098________]
           ((in[ 0 + inPos] & 2147483647) >>> 8)) & 255);
      out[ 2 + outPos] = (byte)((
          //                                         [76543210]
          //                                  [_______32109876________________]
           ((in[ 0 + inPos] & 2147483647) >>> 16)) & 255);
      out[ 3 + outPos] = (byte)((
          //                                         [_6543210]
          //                                          [0987654________________________]
           ((in[ 0 + inPos] & 2147483647) >>> 24)
        | //                                         [7_______]
          //           [______________________________0]
           ((in[ 1 + inPos] & 2147483647) <<  7)) & 255);
      out[ 4 + outPos] = (byte)((
          //                                         [76543210]
          //                   [______________________87654321_]
           ((in[ 1 + inPos] & 2147483647) >>> 1)) & 255);
      out[ 5 + outPos] = (byte)((
          //                                         [76543210]
          //                           [______________65432109_________]
           ((in[ 1 + inPos] & 2147483647) >>> 9)) & 255);
      out[ 6 + outPos] = (byte)((
          //                                         [76543210]
          //                                   [______43210987_________________]
           ((in[ 1 + inPos] & 2147483647) >>> 17)) & 255);
      out[ 7 + outPos] = (byte)((
          //                                         [__543210]
          //                                           [098765_________________________]
           ((in[ 1 + inPos] & 2147483647) >>> 25)
        | //                                         [76______]
          //            [_____________________________10]
           ((in[ 2 + inPos] & 2147483647) <<  6)) & 255);
      out[ 8 + outPos] = (byte)((
          //                                         [76543210]
          //                    [_____________________98765432__]
           ((in[ 2 + inPos] & 2147483647) >>> 2)) & 255);
      out[ 9 + outPos] = (byte)((
          //                                         [76543210]
          //                            [_____________76543210__________]
           ((in[ 2 + inPos] & 2147483647) >>> 10)) & 255);
      out[10 + outPos] = (byte)((
          //                                         [76543210]
          //                                    [_____54321098__________________]
           ((in[ 2 + inPos] & 2147483647) >>> 18)) & 255);
      out[11 + outPos] = (byte)((
          //                                         [___43210]
          //                                            [09876__________________________]
           ((in[ 2 + inPos] & 2147483647) >>> 26)
        | //                                         [765_____]
          //             [____________________________210]
           ((in[ 3 + inPos] & 2147483647) <<  5)) & 255);
      out[12 + outPos] = (byte)((
          //                                         [76543210]
          //                     [____________________09876543___]
           ((in[ 3 + inPos] & 2147483647) >>> 3)) & 255);
      out[13 + outPos] = (byte)((
          //                                         [76543210]
          //                             [____________87654321___________]
           ((in[ 3 + inPos] & 2147483647) >>> 11)) & 255);
      out[14 + outPos] = (byte)((
          //                                         [76543210]
          //                                     [____65432109___________________]
           ((in[ 3 + inPos] & 2147483647) >>> 19)) & 255);
      out[15 + outPos] = (byte)((
          //                                         [____3210]
          //                                             [0987___________________________]
           ((in[ 3 + inPos] & 2147483647) >>> 27)
        | //                                         [7654____]
          //              [___________________________3210]
           ((in[ 4 + inPos] & 2147483647) <<  4)) & 255);
      out[16 + outPos] = (byte)((
          //                                         [76543210]
          //                      [___________________10987654____]
           ((in[ 4 + inPos] & 2147483647) >>> 4)) & 255);
      out[17 + outPos] = (byte)((
          //                                         [76543210]
          //                              [___________98765432____________]
           ((in[ 4 + inPos] & 2147483647) >>> 12)) & 255);
      out[18 + outPos] = (byte)((
          //                                         [76543210]
          //                                      [___76543210____________________]
           ((in[ 4 + inPos] & 2147483647) >>> 20)) & 255);
      out[19 + outPos] = (byte)((
          //                                         [_____210]
          //                                              [098____________________________]
           ((in[ 4 + inPos] & 2147483647) >>> 28)
        | //                                         [76543___]
          //               [__________________________43210]
           ((in[ 5 + inPos] & 2147483647) <<  3)) & 255);
      out[20 + outPos] = (byte)((
          //                                         [76543210]
          //                       [__________________21098765_____]
           ((in[ 5 + inPos] & 2147483647) >>> 5)) & 255);
      out[21 + outPos] = (byte)((
          //                                         [76543210]
          //                               [__________09876543_____________]
           ((in[ 5 + inPos] & 2147483647) >>> 13)) & 255);
      out[22 + outPos] = (byte)((
          //                                         [76543210]
          //                                       [__87654321_____________________]
           ((in[ 5 + inPos] & 2147483647) >>> 21)) & 255);
      out[23 + outPos] = (byte)((
          //                                         [______10]
          //                                               [09_____________________________]
           ((in[ 5 + inPos] & 2147483647) >>> 29)
        | //                                         [765432__]
          //                [_________________________543210]
           ((in[ 6 + inPos] & 2147483647) <<  2)) & 255);
      out[24 + outPos] = (byte)((
          //                                         [76543210]
          //                        [_________________32109876______]
           ((in[ 6 + inPos] & 2147483647) >>> 6)) & 255);
      out[25 + outPos] = (byte)((
          //                                         [76543210]
          //                                [_________10987654______________]
           ((in[ 6 + inPos] & 2147483647) >>> 14)) & 255);
      out[26 + outPos] = (byte)((
          //                                         [76543210]
          //                                        [_98765432______________________]
           ((in[ 6 + inPos] & 2147483647) >>> 22)) & 255);
      out[27 + outPos] = (byte)((
          //                                         [_______0]
          //                                                [0______________________________]
           ((in[ 6 + inPos] & 2147483647) >>> 30)
        | //                                         [7654321_]
          //                 [________________________6543210]
           ((in[ 7 + inPos] & 2147483647) <<  1)) & 255);
      out[28 + outPos] = (byte)((
          //                                         [76543210]
          //                         [________________43210987_______]
           ((in[ 7 + inPos] & 2147483647) >>> 7)) & 255);
      out[29 + outPos] = (byte)((
          //                                         [76543210]
          //                                 [________21098765_______________]
           ((in[ 7 + inPos] & 2147483647) >>> 15)) & 255);
      out[30 + outPos] = (byte)((
          //                                         [76543210]
          //                                         [09876543_______________________]
           ((in[ 7 + inPos] & 2147483647) >>> 23)) & 255);
    }
    public final void pack32Values(final int[] in, final int inPos, final byte[] out, final int outPos) {
      out[ 0 + outPos] = (byte)((
          //                                         [76543210]
          //                  [_______________________76543210]
           ((in[ 0 + inPos] & 2147483647))) & 255);
      out[ 1 + outPos] = (byte)((
          //                                         [76543210]
          //                          [_______________54321098________]
           ((in[ 0 + inPos] & 2147483647) >>> 8)) & 255);
      out[ 2 + outPos] = (byte)((
          //                                         [76543210]
          //                                  [_______32109876________________]
           ((in[ 0 + inPos] & 2147483647) >>> 16)) & 255);
      out[ 3 + outPos] = (byte)((
          //                                         [_6543210]
          //                                          [0987654________________________]
           ((in[ 0 + inPos] & 2147483647) >>> 24)
        | //                                         [7_______]
          //           [______________________________0]
           ((in[ 1 + inPos] & 2147483647) <<  7)) & 255);
      out[ 4 + outPos] = (byte)((
          //                                         [76543210]
          //                   [______________________87654321_]
           ((in[ 1 + inPos] & 2147483647) >>> 1)) & 255);
      out[ 5 + outPos] = (byte)((
          //                                         [76543210]
          //                           [______________65432109_________]
           ((in[ 1 + inPos] & 2147483647) >>> 9)) & 255);
      out[ 6 + outPos] = (byte)((
          //                                         [76543210]
          //                                   [______43210987_________________]
           ((in[ 1 + inPos] & 2147483647) >>> 17)) & 255);
      out[ 7 + outPos] = (byte)((
          //                                         [__543210]
          //                                           [098765_________________________]
           ((in[ 1 + inPos] & 2147483647) >>> 25)
        | //                                         [76______]
          //            [_____________________________10]
           ((in[ 2 + inPos] & 2147483647) <<  6)) & 255);
      out[ 8 + outPos] = (byte)((
          //                                         [76543210]
          //                    [_____________________98765432__]
           ((in[ 2 + inPos] & 2147483647) >>> 2)) & 255);
      out[ 9 + outPos] = (byte)((
          //                                         [76543210]
          //                            [_____________76543210__________]
           ((in[ 2 + inPos] & 2147483647) >>> 10)) & 255);
      out[10 + outPos] = (byte)((
          //                                         [76543210]
          //                                    [_____54321098__________________]
           ((in[ 2 + inPos] & 2147483647) >>> 18)) & 255);
      out[11 + outPos] = (byte)((
          //                                         [___43210]
          //                                            [09876__________________________]
           ((in[ 2 + inPos] & 2147483647) >>> 26)
        | //                                         [765_____]
          //             [____________________________210]
           ((in[ 3 + inPos] & 2147483647) <<  5)) & 255);
      out[12 + outPos] = (byte)((
          //                                         [76543210]
          //                     [____________________09876543___]
           ((in[ 3 + inPos] & 2147483647) >>> 3)) & 255);
      out[13 + outPos] = (byte)((
          //                                         [76543210]
          //                             [____________87654321___________]
           ((in[ 3 + inPos] & 2147483647) >>> 11)) & 255);
      out[14 + outPos] = (byte)((
          //                                         [76543210]
          //                                     [____65432109___________________]
           ((in[ 3 + inPos] & 2147483647) >>> 19)) & 255);
      out[15 + outPos] = (byte)((
          //                                         [____3210]
          //                                             [0987___________________________]
           ((in[ 3 + inPos] & 2147483647) >>> 27)
        | //                                         [7654____]
          //              [___________________________3210]
           ((in[ 4 + inPos] & 2147483647) <<  4)) & 255);
      out[16 + outPos] = (byte)((
          //                                         [76543210]
          //                      [___________________10987654____]
           ((in[ 4 + inPos] & 2147483647) >>> 4)) & 255);
      out[17 + outPos] = (byte)((
          //                                         [76543210]
          //                              [___________98765432____________]
           ((in[ 4 + inPos] & 2147483647) >>> 12)) & 255);
      out[18 + outPos] = (byte)((
          //                                         [76543210]
          //                                      [___76543210____________________]
           ((in[ 4 + inPos] & 2147483647) >>> 20)) & 255);
      out[19 + outPos] = (byte)((
          //                                         [_____210]
          //                                              [098____________________________]
           ((in[ 4 + inPos] & 2147483647) >>> 28)
        | //                                         [76543___]
          //               [__________________________43210]
           ((in[ 5 + inPos] & 2147483647) <<  3)) & 255);
      out[20 + outPos] = (byte)((
          //                                         [76543210]
          //                       [__________________21098765_____]
           ((in[ 5 + inPos] & 2147483647) >>> 5)) & 255);
      out[21 + outPos] = (byte)((
          //                                         [76543210]
          //                               [__________09876543_____________]
           ((in[ 5 + inPos] & 2147483647) >>> 13)) & 255);
      out[22 + outPos] = (byte)((
          //                                         [76543210]
          //                                       [__87654321_____________________]
           ((in[ 5 + inPos] & 2147483647) >>> 21)) & 255);
      out[23 + outPos] = (byte)((
          //                                         [______10]
          //                                               [09_____________________________]
           ((in[ 5 + inPos] & 2147483647) >>> 29)
        | //                                         [765432__]
          //                [_________________________543210]
           ((in[ 6 + inPos] & 2147483647) <<  2)) & 255);
      out[24 + outPos] = (byte)((
          //                                         [76543210]
          //                        [_________________32109876______]
           ((in[ 6 + inPos] & 2147483647) >>> 6)) & 255);
      out[25 + outPos] = (byte)((
          //                                         [76543210]
          //                                [_________10987654______________]
           ((in[ 6 + inPos] & 2147483647) >>> 14)) & 255);
      out[26 + outPos] = (byte)((
          //                                         [76543210]
          //                                        [_98765432______________________]
           ((in[ 6 + inPos] & 2147483647) >>> 22)) & 255);
      out[27 + outPos] = (byte)((
          //                                         [_______0]
          //                                                [0______________________________]
           ((in[ 6 + inPos] & 2147483647) >>> 30)
        | //                                         [7654321_]
          //                 [________________________6543210]
           ((in[ 7 + inPos] & 2147483647) <<  1)) & 255);
      out[28 + outPos] = (byte)((
          //                                         [76543210]
          //                         [________________43210987_______]
           ((in[ 7 + inPos] & 2147483647) >>> 7)) & 255);
      out[29 + outPos] = (byte)((
          //                                         [76543210]
          //                                 [________21098765_______________]
           ((in[ 7 + inPos] & 2147483647) >>> 15)) & 255);
      out[30 + outPos] = (byte)((
          //                                         [76543210]
          //                                         [09876543_______________________]
           ((in[ 7 + inPos] & 2147483647) >>> 23)) & 255);
      out[31 + outPos] = (byte)((
          //                                         [76543210]
          //                  [_______________________76543210]
           ((in[ 8 + inPos] & 2147483647))) & 255);
      out[32 + outPos] = (byte)((
          //                                         [76543210]
          //                          [_______________54321098________]
           ((in[ 8 + inPos] & 2147483647) >>> 8)) & 255);
      out[33 + outPos] = (byte)((
          //                                         [76543210]
          //                                  [_______32109876________________]
           ((in[ 8 + inPos] & 2147483647) >>> 16)) & 255);
      out[34 + outPos] = (byte)((
          //                                         [_6543210]
          //                                          [0987654________________________]
           ((in[ 8 + inPos] & 2147483647) >>> 24)
        | //                                         [7_______]
          //           [______________________________0]
           ((in[ 9 + inPos] & 2147483647) <<  7)) & 255);
      out[35 + outPos] = (byte)((
          //                                         [76543210]
          //                   [______________________87654321_]
           ((in[ 9 + inPos] & 2147483647) >>> 1)) & 255);
      out[36 + outPos] = (byte)((
          //                                         [76543210]
          //                           [______________65432109_________]
           ((in[ 9 + inPos] & 2147483647) >>> 9)) & 255);
      out[37 + outPos] = (byte)((
          //                                         [76543210]
          //                                   [______43210987_________________]
           ((in[ 9 + inPos] & 2147483647) >>> 17)) & 255);
      out[38 + outPos] = (byte)((
          //                                         [__543210]
          //                                           [098765_________________________]
           ((in[ 9 + inPos] & 2147483647) >>> 25)
        | //                                         [76______]
          //            [_____________________________10]
           ((in[10 + inPos] & 2147483647) <<  6)) & 255);
      out[39 + outPos] = (byte)((
          //                                         [76543210]
          //                    [_____________________98765432__]
           ((in[10 + inPos] & 2147483647) >>> 2)) & 255);
      out[40 + outPos] = (byte)((
          //                                         [76543210]
          //                            [_____________76543210__________]
           ((in[10 + inPos] & 2147483647) >>> 10)) & 255);
      out[41 + outPos] = (byte)((
          //                                         [76543210]
          //                                    [_____54321098__________________]
           ((in[10 + inPos] & 2147483647) >>> 18)) & 255);
      out[42 + outPos] = (byte)((
          //                                         [___43210]
          //                                            [09876__________________________]
           ((in[10 + inPos] & 2147483647) >>> 26)
        | //                                         [765_____]
          //             [____________________________210]
           ((in[11 + inPos] & 2147483647) <<  5)) & 255);
      out[43 + outPos] = (byte)((
          //                                         [76543210]
          //                     [____________________09876543___]
           ((in[11 + inPos] & 2147483647) >>> 3)) & 255);
      out[44 + outPos] = (byte)((
          //                                         [76543210]
          //                             [____________87654321___________]
           ((in[11 + inPos] & 2147483647) >>> 11)) & 255);
      out[45 + outPos] = (byte)((
          //                                         [76543210]
          //                                     [____65432109___________________]
           ((in[11 + inPos] & 2147483647) >>> 19)) & 255);
      out[46 + outPos] = (byte)((
          //                                         [____3210]
          //                                             [0987___________________________]
           ((in[11 + inPos] & 2147483647) >>> 27)
        | //                                         [7654____]
          //              [___________________________3210]
           ((in[12 + inPos] & 2147483647) <<  4)) & 255);
      out[47 + outPos] = (byte)((
          //                                         [76543210]
          //                      [___________________10987654____]
           ((in[12 + inPos] & 2147483647) >>> 4)) & 255);
      out[48 + outPos] = (byte)((
          //                                         [76543210]
          //                              [___________98765432____________]
           ((in[12 + inPos] & 2147483647) >>> 12)) & 255);
      out[49 + outPos] = (byte)((
          //                                         [76543210]
          //                                      [___76543210____________________]
           ((in[12 + inPos] & 2147483647) >>> 20)) & 255);
      out[50 + outPos] = (byte)((
          //                                         [_____210]
          //                                              [098____________________________]
           ((in[12 + inPos] & 2147483647) >>> 28)
        | //                                         [76543___]
          //               [__________________________43210]
           ((in[13 + inPos] & 2147483647) <<  3)) & 255);
      out[51 + outPos] = (byte)((
          //                                         [76543210]
          //                       [__________________21098765_____]
           ((in[13 + inPos] & 2147483647) >>> 5)) & 255);
      out[52 + outPos] = (byte)((
          //                                         [76543210]
          //                               [__________09876543_____________]
           ((in[13 + inPos] & 2147483647) >>> 13)) & 255);
      out[53 + outPos] = (byte)((
          //                                         [76543210]
          //                                       [__87654321_____________________]
           ((in[13 + inPos] & 2147483647) >>> 21)) & 255);
      out[54 + outPos] = (byte)((
          //                                         [______10]
          //                                               [09_____________________________]
           ((in[13 + inPos] & 2147483647) >>> 29)
        | //                                         [765432__]
          //                [_________________________543210]
           ((in[14 + inPos] & 2147483647) <<  2)) & 255);
      out[55 + outPos] = (byte)((
          //                                         [76543210]
          //                        [_________________32109876______]
           ((in[14 + inPos] & 2147483647) >>> 6)) & 255);
      out[56 + outPos] = (byte)((
          //                                         [76543210]
          //                                [_________10987654______________]
           ((in[14 + inPos] & 2147483647) >>> 14)) & 255);
      out[57 + outPos] = (byte)((
          //                                         [76543210]
          //                                        [_98765432______________________]
           ((in[14 + inPos] & 2147483647) >>> 22)) & 255);
      out[58 + outPos] = (byte)((
          //                                         [_______0]
          //                                                [0______________________________]
           ((in[14 + inPos] & 2147483647) >>> 30)
        | //                                         [7654321_]
          //                 [________________________6543210]
           ((in[15 + inPos] & 2147483647) <<  1)) & 255);
      out[59 + outPos] = (byte)((
          //                                         [76543210]
          //                         [________________43210987_______]
           ((in[15 + inPos] & 2147483647) >>> 7)) & 255);
      out[60 + outPos] = (byte)((
          //                                         [76543210]
          //                                 [________21098765_______________]
           ((in[15 + inPos] & 2147483647) >>> 15)) & 255);
      out[61 + outPos] = (byte)((
          //                                         [76543210]
          //                                         [09876543_______________________]
           ((in[15 + inPos] & 2147483647) >>> 23)) & 255);
      out[62 + outPos] = (byte)((
          //                                         [76543210]
          //                  [_______________________76543210]
           ((in[16 + inPos] & 2147483647))) & 255);
      out[63 + outPos] = (byte)((
          //                                         [76543210]
          //                          [_______________54321098________]
           ((in[16 + inPos] & 2147483647) >>> 8)) & 255);
      out[64 + outPos] = (byte)((
          //                                         [76543210]
          //                                  [_______32109876________________]
           ((in[16 + inPos] & 2147483647) >>> 16)) & 255);
      out[65 + outPos] = (byte)((
          //                                         [_6543210]
          //                                          [0987654________________________]
           ((in[16 + inPos] & 2147483647) >>> 24)
        | //                                         [7_______]
          //           [______________________________0]
           ((in[17 + inPos] & 2147483647) <<  7)) & 255);
      out[66 + outPos] = (byte)((
          //                                         [76543210]
          //                   [______________________87654321_]
           ((in[17 + inPos] & 2147483647) >>> 1)) & 255);
      out[67 + outPos] = (byte)((
          //                                         [76543210]
          //                           [______________65432109_________]
           ((in[17 + inPos] & 2147483647) >>> 9)) & 255);
      out[68 + outPos] = (byte)((
          //                                         [76543210]
          //                                   [______43210987_________________]
           ((in[17 + inPos] & 2147483647) >>> 17)) & 255);
      out[69 + outPos] = (byte)((
          //                                         [__543210]
          //                                           [098765_________________________]
           ((in[17 + inPos] & 2147483647) >>> 25)
        | //                                         [76______]
          //            [_____________________________10]
           ((in[18 + inPos] & 2147483647) <<  6)) & 255);
      out[70 + outPos] = (byte)((
          //                                         [76543210]
          //                    [_____________________98765432__]
           ((in[18 + inPos] & 2147483647) >>> 2)) & 255);
      out[71 + outPos] = (byte)((
          //                                         [76543210]
          //                            [_____________76543210__________]
           ((in[18 + inPos] & 2147483647) >>> 10)) & 255);
      out[72 + outPos] = (byte)((
          //                                         [76543210]
          //                                    [_____54321098__________________]
           ((in[18 + inPos] & 2147483647) >>> 18)) & 255);
      out[73 + outPos] = (byte)((
          //                                         [___43210]
          //                                            [09876__________________________]
           ((in[18 + inPos] & 2147483647) >>> 26)
        | //                                         [765_____]
          //             [____________________________210]
           ((in[19 + inPos] & 2147483647) <<  5)) & 255);
      out[74 + outPos] = (byte)((
          //                                         [76543210]
          //                     [____________________09876543___]
           ((in[19 + inPos] & 2147483647) >>> 3)) & 255);
      out[75 + outPos] = (byte)((
          //                                         [76543210]
          //                             [____________87654321___________]
           ((in[19 + inPos] & 2147483647) >>> 11)) & 255);
      out[76 + outPos] = (byte)((
          //                                         [76543210]
          //                                     [____65432109___________________]
           ((in[19 + inPos] & 2147483647) >>> 19)) & 255);
      out[77 + outPos] = (byte)((
          //                                         [____3210]
          //                                             [0987___________________________]
           ((in[19 + inPos] & 2147483647) >>> 27)
        | //                                         [7654____]
          //              [___________________________3210]
           ((in[20 + inPos] & 2147483647) <<  4)) & 255);
      out[78 + outPos] = (byte)((
          //                                         [76543210]
          //                      [___________________10987654____]
           ((in[20 + inPos] & 2147483647) >>> 4)) & 255);
      out[79 + outPos] = (byte)((
          //                                         [76543210]
          //                              [___________98765432____________]
           ((in[20 + inPos] & 2147483647) >>> 12)) & 255);
      out[80 + outPos] = (byte)((
          //                                         [76543210]
          //                                      [___76543210____________________]
           ((in[20 + inPos] & 2147483647) >>> 20)) & 255);
      out[81 + outPos] = (byte)((
          //                                         [_____210]
          //                                              [098____________________________]
           ((in[20 + inPos] & 2147483647) >>> 28)
        | //                                         [76543___]
          //               [__________________________43210]
           ((in[21 + inPos] & 2147483647) <<  3)) & 255);
      out[82 + outPos] = (byte)((
          //                                         [76543210]
          //                       [__________________21098765_____]
           ((in[21 + inPos] & 2147483647) >>> 5)) & 255);
      out[83 + outPos] = (byte)((
          //                                         [76543210]
          //                               [__________09876543_____________]
           ((in[21 + inPos] & 2147483647) >>> 13)) & 255);
      out[84 + outPos] = (byte)((
          //                                         [76543210]
          //                                       [__87654321_____________________]
           ((in[21 + inPos] & 2147483647) >>> 21)) & 255);
      out[85 + outPos] = (byte)((
          //                                         [______10]
          //                                               [09_____________________________]
           ((in[21 + inPos] & 2147483647) >>> 29)
        | //                                         [765432__]
          //                [_________________________543210]
           ((in[22 + inPos] & 2147483647) <<  2)) & 255);
      out[86 + outPos] = (byte)((
          //                                         [76543210]
          //                        [_________________32109876______]
           ((in[22 + inPos] & 2147483647) >>> 6)) & 255);
      out[87 + outPos] = (byte)((
          //                                         [76543210]
          //                                [_________10987654______________]
           ((in[22 + inPos] & 2147483647) >>> 14)) & 255);
      out[88 + outPos] = (byte)((
          //                                         [76543210]
          //                                        [_98765432______________________]
           ((in[22 + inPos] & 2147483647) >>> 22)) & 255);
      out[89 + outPos] = (byte)((
          //                                         [_______0]
          //                                                [0______________________________]
           ((in[22 + inPos] & 2147483647) >>> 30)
        | //                                         [7654321_]
          //                 [________________________6543210]
           ((in[23 + inPos] & 2147483647) <<  1)) & 255);
      out[90 + outPos] = (byte)((
          //                                         [76543210]
          //                         [________________43210987_______]
           ((in[23 + inPos] & 2147483647) >>> 7)) & 255);
      out[91 + outPos] = (byte)((
          //                                         [76543210]
          //                                 [________21098765_______________]
           ((in[23 + inPos] & 2147483647) >>> 15)) & 255);
      out[92 + outPos] = (byte)((
          //                                         [76543210]
          //                                         [09876543_______________________]
           ((in[23 + inPos] & 2147483647) >>> 23)) & 255);
      out[93 + outPos] = (byte)((
          //                                         [76543210]
          //                  [_______________________76543210]
           ((in[24 + inPos] & 2147483647))) & 255);
      out[94 + outPos] = (byte)((
          //                                         [76543210]
          //                          [_______________54321098________]
           ((in[24 + inPos] & 2147483647) >>> 8)) & 255);
      out[95 + outPos] = (byte)((
          //                                         [76543210]
          //                                  [_______32109876________________]
           ((in[24 + inPos] & 2147483647) >>> 16)) & 255);
      out[96 + outPos] = (byte)((
          //                                         [_6543210]
          //                                          [0987654________________________]
           ((in[24 + inPos] & 2147483647) >>> 24)
        | //                                         [7_______]
          //           [______________________________0]
           ((in[25 + inPos] & 2147483647) <<  7)) & 255);
      out[97 + outPos] = (byte)((
          //                                         [76543210]
          //                   [______________________87654321_]
           ((in[25 + inPos] & 2147483647) >>> 1)) & 255);
      out[98 + outPos] = (byte)((
          //                                         [76543210]
          //                           [______________65432109_________]
           ((in[25 + inPos] & 2147483647) >>> 9)) & 255);
      out[99 + outPos] = (byte)((
          //                                         [76543210]
          //                                   [______43210987_________________]
           ((in[25 + inPos] & 2147483647) >>> 17)) & 255);
      out[100 + outPos] = (byte)((
          //                                         [__543210]
          //                                           [098765_________________________]
           ((in[25 + inPos] & 2147483647) >>> 25)
        | //                                         [76______]
          //            [_____________________________10]
           ((in[26 + inPos] & 2147483647) <<  6)) & 255);
      out[101 + outPos] = (byte)((
          //                                         [76543210]
          //                    [_____________________98765432__]
           ((in[26 + inPos] & 2147483647) >>> 2)) & 255);
      out[102 + outPos] = (byte)((
          //                                         [76543210]
          //                            [_____________76543210__________]
           ((in[26 + inPos] & 2147483647) >>> 10)) & 255);
      out[103 + outPos] = (byte)((
          //                                         [76543210]
          //                                    [_____54321098__________________]
           ((in[26 + inPos] & 2147483647) >>> 18)) & 255);
      out[104 + outPos] = (byte)((
          //                                         [___43210]
          //                                            [09876__________________________]
           ((in[26 + inPos] & 2147483647) >>> 26)
        | //                                         [765_____]
          //             [____________________________210]
           ((in[27 + inPos] & 2147483647) <<  5)) & 255);
      out[105 + outPos] = (byte)((
          //                                         [76543210]
          //                     [____________________09876543___]
           ((in[27 + inPos] & 2147483647) >>> 3)) & 255);
      out[106 + outPos] = (byte)((
          //                                         [76543210]
          //                             [____________87654321___________]
           ((in[27 + inPos] & 2147483647) >>> 11)) & 255);
      out[107 + outPos] = (byte)((
          //                                         [76543210]
          //                                     [____65432109___________________]
           ((in[27 + inPos] & 2147483647) >>> 19)) & 255);
      out[108 + outPos] = (byte)((
          //                                         [____3210]
          //                                             [0987___________________________]
           ((in[27 + inPos] & 2147483647) >>> 27)
        | //                                         [7654____]
          //              [___________________________3210]
           ((in[28 + inPos] & 2147483647) <<  4)) & 255);
      out[109 + outPos] = (byte)((
          //                                         [76543210]
          //                      [___________________10987654____]
           ((in[28 + inPos] & 2147483647) >>> 4)) & 255);
      out[110 + outPos] = (byte)((
          //                                         [76543210]
          //                              [___________98765432____________]
           ((in[28 + inPos] & 2147483647) >>> 12)) & 255);
      out[111 + outPos] = (byte)((
          //                                         [76543210]
          //                                      [___76543210____________________]
           ((in[28 + inPos] & 2147483647) >>> 20)) & 255);
      out[112 + outPos] = (byte)((
          //                                         [_____210]
          //                                              [098____________________________]
           ((in[28 + inPos] & 2147483647) >>> 28)
        | //                                         [76543___]
          //               [__________________________43210]
           ((in[29 + inPos] & 2147483647) <<  3)) & 255);
      out[113 + outPos] = (byte)((
          //                                         [76543210]
          //                       [__________________21098765_____]
           ((in[29 + inPos] & 2147483647) >>> 5)) & 255);
      out[114 + outPos] = (byte)((
          //                                         [76543210]
          //                               [__________09876543_____________]
           ((in[29 + inPos] & 2147483647) >>> 13)) & 255);
      out[115 + outPos] = (byte)((
          //                                         [76543210]
          //                                       [__87654321_____________________]
           ((in[29 + inPos] & 2147483647) >>> 21)) & 255);
      out[116 + outPos] = (byte)((
          //                                         [______10]
          //                                               [09_____________________________]
           ((in[29 + inPos] & 2147483647) >>> 29)
        | //                                         [765432__]
          //                [_________________________543210]
           ((in[30 + inPos] & 2147483647) <<  2)) & 255);
      out[117 + outPos] = (byte)((
          //                                         [76543210]
          //                        [_________________32109876______]
           ((in[30 + inPos] & 2147483647) >>> 6)) & 255);
      out[118 + outPos] = (byte)((
          //                                         [76543210]
          //                                [_________10987654______________]
           ((in[30 + inPos] & 2147483647) >>> 14)) & 255);
      out[119 + outPos] = (byte)((
          //                                         [76543210]
          //                                        [_98765432______________________]
           ((in[30 + inPos] & 2147483647) >>> 22)) & 255);
      out[120 + outPos] = (byte)((
          //                                         [_______0]
          //                                                [0______________________________]
           ((in[30 + inPos] & 2147483647) >>> 30)
        | //                                         [7654321_]
          //                 [________________________6543210]
           ((in[31 + inPos] & 2147483647) <<  1)) & 255);
      out[121 + outPos] = (byte)((
          //                                         [76543210]
          //                         [________________43210987_______]
           ((in[31 + inPos] & 2147483647) >>> 7)) & 255);
      out[122 + outPos] = (byte)((
          //                                         [76543210]
          //                                 [________21098765_______________]
           ((in[31 + inPos] & 2147483647) >>> 15)) & 255);
      out[123 + outPos] = (byte)((
          //                                         [76543210]
          //                                         [09876543_______________________]
           ((in[31 + inPos] & 2147483647) >>> 23)) & 255);
    }
    public final void unpack8Values(final byte[] in, final int inPos, final int[] out, final int outPos) {
      out[ 0 + outPos] =
          //                                         [76543210]
          //                  [_______________________76543210]
            ((((int)in[ 0 + inPos]) ) & 255)
        | //                                         [76543210]
          //                          [_______________54321098________]
            ((((int)in[ 1 + inPos]) <<  8) & 65535)
        | //                                         [76543210]
          //                                  [_______32109876________________]
            ((((int)in[ 2 + inPos]) <<  16) & 16777215)
        | //                                         [_6543210]
          //                                          [0987654________________________]
            ((((int)in[ 3 + inPos]) <<  24) & 2147483647);
      out[ 1 + outPos] =
          //                                         [7_______]
          //           [______________________________0]
            ((((int)in[ 3 + inPos]) >>  7) & 1)
        | //                                         [76543210]
          //                   [______________________87654321_]
            ((((int)in[ 4 + inPos]) <<  1) & 511)
        | //                                         [76543210]
          //                           [______________65432109_________]
            ((((int)in[ 5 + inPos]) <<  9) & 131071)
        | //                                         [76543210]
          //                                   [______43210987_________________]
            ((((int)in[ 6 + inPos]) <<  17) & 33554431)
        | //                                         [__543210]
          //                                           [098765_________________________]
            ((((int)in[ 7 + inPos]) <<  25) & 2147483647);
      out[ 2 + outPos] =
          //                                         [76______]
          //            [_____________________________10]
            ((((int)in[ 7 + inPos]) >>  6) & 3)
        | //                                         [76543210]
          //                    [_____________________98765432__]
            ((((int)in[ 8 + inPos]) <<  2) & 1023)
        | //                                         [76543210]
          //                            [_____________76543210__________]
            ((((int)in[ 9 + inPos]) <<  10) & 262143)
        | //                                         [76543210]
          //                                    [_____54321098__________________]
            ((((int)in[10 + inPos]) <<  18) & 67108863)
        | //                                         [___43210]
          //                                            [09876__________________________]
            ((((int)in[11 + inPos]) <<  26) & 2147483647);
      out[ 3 + outPos] =
          //                                         [765_____]
          //             [____________________________210]
            ((((int)in[11 + inPos]) >>  5) & 7)
        | //                                         [76543210]
          //                     [____________________09876543___]
            ((((int)in[12 + inPos]) <<  3) & 2047)
        | //                                         [76543210]
          //                             [____________87654321___________]
            ((((int)in[13 + inPos]) <<  11) & 524287)
        | //                                         [76543210]
          //                                     [____65432109___________________]
            ((((int)in[14 + inPos]) <<  19) & 134217727)
        | //                                         [____3210]
          //                                             [0987___________________________]
            ((((int)in[15 + inPos]) <<  27) & 2147483647);
      out[ 4 + outPos] =
          //                                         [7654____]
          //              [___________________________3210]
            ((((int)in[15 + inPos]) >>  4) & 15)
        | //                                         [76543210]
          //                      [___________________10987654____]
            ((((int)in[16 + inPos]) <<  4) & 4095)
        | //                                         [76543210]
          //                              [___________98765432____________]
            ((((int)in[17 + inPos]) <<  12) & 1048575)
        | //                                         [76543210]
          //                                      [___76543210____________________]
            ((((int)in[18 + inPos]) <<  20) & 268435455)
        | //                                         [_____210]
          //                                              [098____________________________]
            ((((int)in[19 + inPos]) <<  28) & 2147483647);
      out[ 5 + outPos] =
          //                                         [76543___]
          //               [__________________________43210]
            ((((int)in[19 + inPos]) >>  3) & 31)
        | //                                         [76543210]
          //                       [__________________21098765_____]
            ((((int)in[20 + inPos]) <<  5) & 8191)
        | //                                         [76543210]
          //                               [__________09876543_____________]
            ((((int)in[21 + inPos]) <<  13) & 2097151)
        | //                                         [76543210]
          //                                       [__87654321_____________________]
            ((((int)in[22 + inPos]) <<  21) & 536870911)
        | //                                         [______10]
          //                                               [09_____________________________]
            ((((int)in[23 + inPos]) <<  29) & 2147483647);
      out[ 6 + outPos] =
          //                                         [765432__]
          //                [_________________________543210]
            ((((int)in[23 + inPos]) >>  2) & 63)
        | //                                         [76543210]
          //                        [_________________32109876______]
            ((((int)in[24 + inPos]) <<  6) & 16383)
        | //                                         [76543210]
          //                                [_________10987654______________]
            ((((int)in[25 + inPos]) <<  14) & 4194303)
        | //                                         [76543210]
          //                                        [_98765432______________________]
            ((((int)in[26 + inPos]) <<  22) & 1073741823)
        | //                                         [_______0]
          //                                                [0______________________________]
            ((((int)in[27 + inPos]) <<  30) & 2147483647);
      out[ 7 + outPos] =
          //                                         [7654321_]
          //                 [________________________6543210]
            ((((int)in[27 + inPos]) >>  1) & 127)
        | //                                         [76543210]
          //                         [________________43210987_______]
            ((((int)in[28 + inPos]) <<  7) & 32767)
        | //                                         [76543210]
          //                                 [________21098765_______________]
            ((((int)in[29 + inPos]) <<  15) & 8388607)
        | //                                         [76543210]
          //                                         [09876543_______________________]
            ((((int)in[30 + inPos]) <<  23) & 2147483647);
    }
    public final void unpack8Values(final ByteBuffer in, final int inPos, final int[] out, final int outPos) {
      out[ 0 + outPos] =
          //                                         [76543210]
          //                  [_______________________76543210]
            ((((int)in.get( 0 + inPos)) ) & 255)
        | //                                         [76543210]
          //                          [_______________54321098________]
            ((((int)in.get( 1 + inPos)) <<  8) & 65535)
        | //                                         [76543210]
          //                                  [_______32109876________________]
            ((((int)in.get( 2 + inPos)) <<  16) & 16777215)
        | //                                         [_6543210]
          //                                          [0987654________________________]
            ((((int)in.get( 3 + inPos)) <<  24) & 2147483647);
      out[ 1 + outPos] =
          //                                         [7_______]
          //           [______________________________0]
            ((((int)in.get( 3 + inPos)) >>  7) & 1)
        | //                                         [76543210]
          //                   [______________________87654321_]
            ((((int)in.get( 4 + inPos)) <<  1) & 511)
        | //                                         [76543210]
          //                           [______________65432109_________]
            ((((int)in.get( 5 + inPos)) <<  9) & 131071)
        | //                                         [76543210]
          //                                   [______43210987_________________]
            ((((int)in.get( 6 + inPos)) <<  17) & 33554431)
        | //                                         [__543210]
          //                                           [098765_________________________]
            ((((int)in.get( 7 + inPos)) <<  25) & 2147483647);
      out[ 2 + outPos] =
          //                                         [76______]
          //            [_____________________________10]
            ((((int)in.get( 7 + inPos)) >>  6) & 3)
        | //                                         [76543210]
          //                    [_____________________98765432__]
            ((((int)in.get( 8 + inPos)) <<  2) & 1023)
        | //                                         [76543210]
          //                            [_____________76543210__________]
            ((((int)in.get( 9 + inPos)) <<  10) & 262143)
        | //                                         [76543210]
          //                                    [_____54321098__________________]
            ((((int)in.get(10 + inPos)) <<  18) & 67108863)
        | //                                         [___43210]
          //                                            [09876__________________________]
            ((((int)in.get(11 + inPos)) <<  26) & 2147483647);
      out[ 3 + outPos] =
          //                                         [765_____]
          //             [____________________________210]
            ((((int)in.get(11 + inPos)) >>  5) & 7)
        | //                                         [76543210]
          //                     [____________________09876543___]
            ((((int)in.get(12 + inPos)) <<  3) & 2047)
        | //                                         [76543210]
          //                             [____________87654321___________]
            ((((int)in.get(13 + inPos)) <<  11) & 524287)
        | //                                         [76543210]
          //                                     [____65432109___________________]
            ((((int)in.get(14 + inPos)) <<  19) & 134217727)
        | //                                         [____3210]
          //                                             [0987___________________________]
            ((((int)in.get(15 + inPos)) <<  27) & 2147483647);
      out[ 4 + outPos] =
          //                                         [7654____]
          //              [___________________________3210]
            ((((int)in.get(15 + inPos)) >>  4) & 15)
        | //                                         [76543210]
          //                      [___________________10987654____]
            ((((int)in.get(16 + inPos)) <<  4) & 4095)
        | //                                         [76543210]
          //                              [___________98765432____________]
            ((((int)in.get(17 + inPos)) <<  12) & 1048575)
        | //                                         [76543210]
          //                                      [___76543210____________________]
            ((((int)in.get(18 + inPos)) <<  20) & 268435455)
        | //                                         [_____210]
          //                                              [098____________________________]
            ((((int)in.get(19 + inPos)) <<  28) & 2147483647);
      out[ 5 + outPos] =
          //                                         [76543___]
          //               [__________________________43210]
            ((((int)in.get(19 + inPos)) >>  3) & 31)
        | //                                         [76543210]
          //                       [__________________21098765_____]
            ((((int)in.get(20 + inPos)) <<  5) & 8191)
        | //                                         [76543210]
          //                               [__________09876543_____________]
            ((((int)in.get(21 + inPos)) <<  13) & 2097151)
        | //                                         [76543210]
          //                                       [__87654321_____________________]
            ((((int)in.get(22 + inPos)) <<  21) & 536870911)
        | //                                         [______10]
          //                                               [09_____________________________]
            ((((int)in.get(23 + inPos)) <<  29) & 2147483647);
      out[ 6 + outPos] =
          //                                         [765432__]
          //                [_________________________543210]
            ((((int)in.get(23 + inPos)) >>  2) & 63)
        | //                                         [76543210]
          //                        [_________________32109876______]
            ((((int)in.get(24 + inPos)) <<  6) & 16383)
        | //                                         [76543210]
          //                                [_________10987654______________]
            ((((int)in.get(25 + inPos)) <<  14) & 4194303)
        | //                                         [76543210]
          //                                        [_98765432______________________]
            ((((int)in.get(26 + inPos)) <<  22) & 1073741823)
        | //                                         [_______0]
          //                                                [0______________________________]
            ((((int)in.get(27 + inPos)) <<  30) & 2147483647);
      out[ 7 + outPos] =
          //                                         [7654321_]
          //                 [________________________6543210]
            ((((int)in.get(27 + inPos)) >>  1) & 127)
        | //                                         [76543210]
          //                         [________________43210987_______]
            ((((int)in.get(28 + inPos)) <<  7) & 32767)
        | //                                         [76543210]
          //                                 [________21098765_______________]
            ((((int)in.get(29 + inPos)) <<  15) & 8388607)
        | //                                         [76543210]
          //                                         [09876543_______________________]
            ((((int)in.get(30 + inPos)) <<  23) & 2147483647);
    }
    public final void unpack32Values(final byte[] in, final int inPos, final int[] out, final int outPos) {
      out[ 0 + outPos] =
          //                                         [76543210]
          //                  [_______________________76543210]
            ((((int)in[ 0 + inPos]) ) & 255)
        | //                                         [76543210]
          //                          [_______________54321098________]
            ((((int)in[ 1 + inPos]) <<  8) & 65535)
        | //                                         [76543210]
          //                                  [_______32109876________________]
            ((((int)in[ 2 + inPos]) <<  16) & 16777215)
        | //                                         [_6543210]
          //                                          [0987654________________________]
            ((((int)in[ 3 + inPos]) <<  24) & 2147483647);
      out[ 1 + outPos] =
          //                                         [7_______]
          //           [______________________________0]
            ((((int)in[ 3 + inPos]) >>  7) & 1)
        | //                                         [76543210]
          //                   [______________________87654321_]
            ((((int)in[ 4 + inPos]) <<  1) & 511)
        | //                                         [76543210]
          //                           [______________65432109_________]
            ((((int)in[ 5 + inPos]) <<  9) & 131071)
        | //                                         [76543210]
          //                                   [______43210987_________________]
            ((((int)in[ 6 + inPos]) <<  17) & 33554431)
        | //                                         [__543210]
          //                                           [098765_________________________]
            ((((int)in[ 7 + inPos]) <<  25) & 2147483647);
      out[ 2 + outPos] =
          //                                         [76______]
          //            [_____________________________10]
            ((((int)in[ 7 + inPos]) >>  6) & 3)
        | //                                         [76543210]
          //                    [_____________________98765432__]
            ((((int)in[ 8 + inPos]) <<  2) & 1023)
        | //                                         [76543210]
          //                            [_____________76543210__________]
            ((((int)in[ 9 + inPos]) <<  10) & 262143)
        | //                                         [76543210]
          //                                    [_____54321098__________________]
            ((((int)in[10 + inPos]) <<  18) & 67108863)
        | //                                         [___43210]
          //                                            [09876__________________________]
            ((((int)in[11 + inPos]) <<  26) & 2147483647);
      out[ 3 + outPos] =
          //                                         [765_____]
          //             [____________________________210]
            ((((int)in[11 + inPos]) >>  5) & 7)
        | //                                         [76543210]
          //                     [____________________09876543___]
            ((((int)in[12 + inPos]) <<  3) & 2047)
        | //                                         [76543210]
          //                             [____________87654321___________]
            ((((int)in[13 + inPos]) <<  11) & 524287)
        | //                                         [76543210]
          //                                     [____65432109___________________]
            ((((int)in[14 + inPos]) <<  19) & 134217727)
        | //                                         [____3210]
          //                                             [0987___________________________]
            ((((int)in[15 + inPos]) <<  27) & 2147483647);
      out[ 4 + outPos] =
          //                                         [7654____]
          //              [___________________________3210]
            ((((int)in[15 + inPos]) >>  4) & 15)
        | //                                         [76543210]
          //                      [___________________10987654____]
            ((((int)in[16 + inPos]) <<  4) & 4095)
        | //                                         [76543210]
          //                              [___________98765432____________]
            ((((int)in[17 + inPos]) <<  12) & 1048575)
        | //                                         [76543210]
          //                                      [___76543210____________________]
            ((((int)in[18 + inPos]) <<  20) & 268435455)
        | //                                         [_____210]
          //                                              [098____________________________]
            ((((int)in[19 + inPos]) <<  28) & 2147483647);
      out[ 5 + outPos] =
          //                                         [76543___]
          //               [__________________________43210]
            ((((int)in[19 + inPos]) >>  3) & 31)
        | //                                         [76543210]
          //                       [__________________21098765_____]
            ((((int)in[20 + inPos]) <<  5) & 8191)
        | //                                         [76543210]
          //                               [__________09876543_____________]
            ((((int)in[21 + inPos]) <<  13) & 2097151)
        | //                                         [76543210]
          //                                       [__87654321_____________________]
            ((((int)in[22 + inPos]) <<  21) & 536870911)
        | //                                         [______10]
          //                                               [09_____________________________]
            ((((int)in[23 + inPos]) <<  29) & 2147483647);
      out[ 6 + outPos] =
          //                                         [765432__]
          //                [_________________________543210]
            ((((int)in[23 + inPos]) >>  2) & 63)
        | //                                         [76543210]
          //                        [_________________32109876______]
            ((((int)in[24 + inPos]) <<  6) & 16383)
        | //                                         [76543210]
          //                                [_________10987654______________]
            ((((int)in[25 + inPos]) <<  14) & 4194303)
        | //                                         [76543210]
          //                                        [_98765432______________________]
            ((((int)in[26 + inPos]) <<  22) & 1073741823)
        | //                                         [_______0]
          //                                                [0______________________________]
            ((((int)in[27 + inPos]) <<  30) & 2147483647);
      out[ 7 + outPos] =
          //                                         [7654321_]
          //                 [________________________6543210]
            ((((int)in[27 + inPos]) >>  1) & 127)
        | //                                         [76543210]
          //                         [________________43210987_______]
            ((((int)in[28 + inPos]) <<  7) & 32767)
        | //                                         [76543210]
          //                                 [________21098765_______________]
            ((((int)in[29 + inPos]) <<  15) & 8388607)
        | //                                         [76543210]
          //                                         [09876543_______________________]
            ((((int)in[30 + inPos]) <<  23) & 2147483647);
      out[ 8 + outPos] =
          //                                         [76543210]
          //                  [_______________________76543210]
            ((((int)in[31 + inPos]) ) & 255)
        | //                                         [76543210]
          //                          [_______________54321098________]
            ((((int)in[32 + inPos]) <<  8) & 65535)
        | //                                         [76543210]
          //                                  [_______32109876________________]
            ((((int)in[33 + inPos]) <<  16) & 16777215)
        | //                                         [_6543210]
          //                                          [0987654________________________]
            ((((int)in[34 + inPos]) <<  24) & 2147483647);
      out[ 9 + outPos] =
          //                                         [7_______]
          //           [______________________________0]
            ((((int)in[34 + inPos]) >>  7) & 1)
        | //                                         [76543210]
          //                   [______________________87654321_]
            ((((int)in[35 + inPos]) <<  1) & 511)
        | //                                         [76543210]
          //                           [______________65432109_________]
            ((((int)in[36 + inPos]) <<  9) & 131071)
        | //                                         [76543210]
          //                                   [______43210987_________________]
            ((((int)in[37 + inPos]) <<  17) & 33554431)
        | //                                         [__543210]
          //                                           [098765_________________________]
            ((((int)in[38 + inPos]) <<  25) & 2147483647);
      out[10 + outPos] =
          //                                         [76______]
          //            [_____________________________10]
            ((((int)in[38 + inPos]) >>  6) & 3)
        | //                                         [76543210]
          //                    [_____________________98765432__]
            ((((int)in[39 + inPos]) <<  2) & 1023)
        | //                                         [76543210]
          //                            [_____________76543210__________]
            ((((int)in[40 + inPos]) <<  10) & 262143)
        | //                                         [76543210]
          //                                    [_____54321098__________________]
            ((((int)in[41 + inPos]) <<  18) & 67108863)
        | //                                         [___43210]
          //                                            [09876__________________________]
            ((((int)in[42 + inPos]) <<  26) & 2147483647);
      out[11 + outPos] =
          //                                         [765_____]
          //             [____________________________210]
            ((((int)in[42 + inPos]) >>  5) & 7)
        | //                                         [76543210]
          //                     [____________________09876543___]
            ((((int)in[43 + inPos]) <<  3) & 2047)
        | //                                         [76543210]
          //                             [____________87654321___________]
            ((((int)in[44 + inPos]) <<  11) & 524287)
        | //                                         [76543210]
          //                                     [____65432109___________________]
            ((((int)in[45 + inPos]) <<  19) & 134217727)
        | //                                         [____3210]
          //                                             [0987___________________________]
            ((((int)in[46 + inPos]) <<  27) & 2147483647);
      out[12 + outPos] =
          //                                         [7654____]
          //              [___________________________3210]
            ((((int)in[46 + inPos]) >>  4) & 15)
        | //                                         [76543210]
          //                      [___________________10987654____]
            ((((int)in[47 + inPos]) <<  4) & 4095)
        | //                                         [76543210]
          //                              [___________98765432____________]
            ((((int)in[48 + inPos]) <<  12) & 1048575)
        | //                                         [76543210]
          //                                      [___76543210____________________]
            ((((int)in[49 + inPos]) <<  20) & 268435455)
        | //                                         [_____210]
          //                                              [098____________________________]
            ((((int)in[50 + inPos]) <<  28) & 2147483647);
      out[13 + outPos] =
          //                                         [76543___]
          //               [__________________________43210]
            ((((int)in[50 + inPos]) >>  3) & 31)
        | //                                         [76543210]
          //                       [__________________21098765_____]
            ((((int)in[51 + inPos]) <<  5) & 8191)
        | //                                         [76543210]
          //                               [__________09876543_____________]
            ((((int)in[52 + inPos]) <<  13) & 2097151)
        | //                                         [76543210]
          //                                       [__87654321_____________________]
            ((((int)in[53 + inPos]) <<  21) & 536870911)
        | //                                         [______10]
          //                                               [09_____________________________]
            ((((int)in[54 + inPos]) <<  29) & 2147483647);
      out[14 + outPos] =
          //                                         [765432__]
          //                [_________________________543210]
            ((((int)in[54 + inPos]) >>  2) & 63)
        | //                                         [76543210]
          //                        [_________________32109876______]
            ((((int)in[55 + inPos]) <<  6) & 16383)
        | //                                         [76543210]
          //                                [_________10987654______________]
            ((((int)in[56 + inPos]) <<  14) & 4194303)
        | //                                         [76543210]
          //                                        [_98765432______________________]
            ((((int)in[57 + inPos]) <<  22) & 1073741823)
        | //                                         [_______0]
          //                                                [0______________________________]
            ((((int)in[58 + inPos]) <<  30) & 2147483647);
      out[15 + outPos] =
          //                                         [7654321_]
          //                 [________________________6543210]
            ((((int)in[58 + inPos]) >>  1) & 127)
        | //                                         [76543210]
          //                         [________________43210987_______]
            ((((int)in[59 + inPos]) <<  7) & 32767)
        | //                                         [76543210]
          //                                 [________21098765_______________]
            ((((int)in[60 + inPos]) <<  15) & 8388607)
        | //                                         [76543210]
          //                                         [09876543_______________________]
            ((((int)in[61 + inPos]) <<  23) & 2147483647);
      out[16 + outPos] =
          //                                         [76543210]
          //                  [_______________________76543210]
            ((((int)in[62 + inPos]) ) & 255)
        | //                                         [76543210]
          //                          [_______________54321098________]
            ((((int)in[63 + inPos]) <<  8) & 65535)
        | //                                         [76543210]
          //                                  [_______32109876________________]
            ((((int)in[64 + inPos]) <<  16) & 16777215)
        | //                                         [_6543210]
          //                                          [0987654________________________]
            ((((int)in[65 + inPos]) <<  24) & 2147483647);
      out[17 + outPos] =
          //                                         [7_______]
          //           [______________________________0]
            ((((int)in[65 + inPos]) >>  7) & 1)
        | //                                         [76543210]
          //                   [______________________87654321_]
            ((((int)in[66 + inPos]) <<  1) & 511)
        | //                                         [76543210]
          //                           [______________65432109_________]
            ((((int)in[67 + inPos]) <<  9) & 131071)
        | //                                         [76543210]
          //                                   [______43210987_________________]
            ((((int)in[68 + inPos]) <<  17) & 33554431)
        | //                                         [__543210]
          //                                           [098765_________________________]
            ((((int)in[69 + inPos]) <<  25) & 2147483647);
      out[18 + outPos] =
          //                                         [76______]
          //            [_____________________________10]
            ((((int)in[69 + inPos]) >>  6) & 3)
        | //                                         [76543210]
          //                    [_____________________98765432__]
            ((((int)in[70 + inPos]) <<  2) & 1023)
        | //                                         [76543210]
          //                            [_____________76543210__________]
            ((((int)in[71 + inPos]) <<  10) & 262143)
        | //                                         [76543210]
          //                                    [_____54321098__________________]
            ((((int)in[72 + inPos]) <<  18) & 67108863)
        | //                                         [___43210]
          //                                            [09876__________________________]
            ((((int)in[73 + inPos]) <<  26) & 2147483647);
      out[19 + outPos] =
          //                                         [765_____]
          //             [____________________________210]
            ((((int)in[73 + inPos]) >>  5) & 7)
        | //                                         [76543210]
          //                     [____________________09876543___]
            ((((int)in[74 + inPos]) <<  3) & 2047)
        | //                                         [76543210]
          //                             [____________87654321___________]
            ((((int)in[75 + inPos]) <<  11) & 524287)
        | //                                         [76543210]
          //                                     [____65432109___________________]
            ((((int)in[76 + inPos]) <<  19) & 134217727)
        | //                                         [____3210]
          //                                             [0987___________________________]
            ((((int)in[77 + inPos]) <<  27) & 2147483647);
      out[20 + outPos] =
          //                                         [7654____]
          //              [___________________________3210]
            ((((int)in[77 + inPos]) >>  4) & 15)
        | //                                         [76543210]
          //                      [___________________10987654____]
            ((((int)in[78 + inPos]) <<  4) & 4095)
        | //                                         [76543210]
          //                              [___________98765432____________]
            ((((int)in[79 + inPos]) <<  12) & 1048575)
        | //                                         [76543210]
          //                                      [___76543210____________________]
            ((((int)in[80 + inPos]) <<  20) & 268435455)
        | //                                         [_____210]
          //                                              [098____________________________]
            ((((int)in[81 + inPos]) <<  28) & 2147483647);
      out[21 + outPos] =
          //                                         [76543___]
          //               [__________________________43210]
            ((((int)in[81 + inPos]) >>  3) & 31)
        | //                                         [76543210]
          //                       [__________________21098765_____]
            ((((int)in[82 + inPos]) <<  5) & 8191)
        | //                                         [76543210]
          //                               [__________09876543_____________]
            ((((int)in[83 + inPos]) <<  13) & 2097151)
        | //                                         [76543210]
          //                                       [__87654321_____________________]
            ((((int)in[84 + inPos]) <<  21) & 536870911)
        | //                                         [______10]
          //                                               [09_____________________________]
            ((((int)in[85 + inPos]) <<  29) & 2147483647);
      out[22 + outPos] =
          //                                         [765432__]
          //                [_________________________543210]
            ((((int)in[85 + inPos]) >>  2) & 63)
        | //                                         [76543210]
          //                        [_________________32109876______]
            ((((int)in[86 + inPos]) <<  6) & 16383)
        | //                                         [76543210]
          //                                [_________10987654______________]
            ((((int)in[87 + inPos]) <<  14) & 4194303)
        | //                                         [76543210]
          //                                        [_98765432______________________]
            ((((int)in[88 + inPos]) <<  22) & 1073741823)
        | //                                         [_______0]
          //                                                [0______________________________]
            ((((int)in[89 + inPos]) <<  30) & 2147483647);
      out[23 + outPos] =
          //                                         [7654321_]
          //                 [________________________6543210]
            ((((int)in[89 + inPos]) >>  1) & 127)
        | //                                         [76543210]
          //                         [________________43210987_______]
            ((((int)in[90 + inPos]) <<  7) & 32767)
        | //                                         [76543210]
          //                                 [________21098765_______________]
            ((((int)in[91 + inPos]) <<  15) & 8388607)
        | //                                         [76543210]
          //                                         [09876543_______________________]
            ((((int)in[92 + inPos]) <<  23) & 2147483647);
      out[24 + outPos] =
          //                                         [76543210]
          //                  [_______________________76543210]
            ((((int)in[93 + inPos]) ) & 255)
        | //                                         [76543210]
          //                          [_______________54321098________]
            ((((int)in[94 + inPos]) <<  8) & 65535)
        | //                                         [76543210]
          //                                  [_______32109876________________]
            ((((int)in[95 + inPos]) <<  16) & 16777215)
        | //                                         [_6543210]
          //                                          [0987654________________________]
            ((((int)in[96 + inPos]) <<  24) & 2147483647);
      out[25 + outPos] =
          //                                         [7_______]
          //           [______________________________0]
            ((((int)in[96 + inPos]) >>  7) & 1)
        | //                                         [76543210]
          //                   [______________________87654321_]
            ((((int)in[97 + inPos]) <<  1) & 511)
        | //                                         [76543210]
          //                           [______________65432109_________]
            ((((int)in[98 + inPos]) <<  9) & 131071)
        | //                                         [76543210]
          //                                   [______43210987_________________]
            ((((int)in[99 + inPos]) <<  17) & 33554431)
        | //                                         [__543210]
          //                                           [098765_________________________]
            ((((int)in[100 + inPos]) <<  25) & 2147483647);
      out[26 + outPos] =
          //                                         [76______]
          //            [_____________________________10]
            ((((int)in[100 + inPos]) >>  6) & 3)
        | //                                         [76543210]
          //                    [_____________________98765432__]
            ((((int)in[101 + inPos]) <<  2) & 1023)
        | //                                         [76543210]
          //                            [_____________76543210__________]
            ((((int)in[102 + inPos]) <<  10) & 262143)
        | //                                         [76543210]
          //                                    [_____54321098__________________]
            ((((int)in[103 + inPos]) <<  18) & 67108863)
        | //                                         [___43210]
          //                                            [09876__________________________]
            ((((int)in[104 + inPos]) <<  26) & 2147483647);
      out[27 + outPos] =
          //                                         [765_____]
          //             [____________________________210]
            ((((int)in[104 + inPos]) >>  5) & 7)
        | //                                         [76543210]
          //                     [____________________09876543___]
            ((((int)in[105 + inPos]) <<  3) & 2047)
        | //                                         [76543210]
          //                             [____________87654321___________]
            ((((int)in[106 + inPos]) <<  11) & 524287)
        | //                                         [76543210]
          //                                     [____65432109___________________]
            ((((int)in[107 + inPos]) <<  19) & 134217727)
        | //                                         [____3210]
          //                                             [0987___________________________]
            ((((int)in[108 + inPos]) <<  27) & 2147483647);
      out[28 + outPos] =
          //                                         [7654____]
          //              [___________________________3210]
            ((((int)in[108 + inPos]) >>  4) & 15)
        | //                                         [76543210]
          //                      [___________________10987654____]
            ((((int)in[109 + inPos]) <<  4) & 4095)
        | //                                         [76543210]
          //                              [___________98765432____________]
            ((((int)in[110 + inPos]) <<  12) & 1048575)
        | //                                         [76543210]
          //                                      [___76543210____________________]
            ((((int)in[111 + inPos]) <<  20) & 268435455)
        | //                                         [_____210]
          //                                              [098____________________________]
            ((((int)in[112 + inPos]) <<  28) & 2147483647);
      out[29 + outPos] =
          //                                         [76543___]
          //               [__________________________43210]
            ((((int)in[112 + inPos]) >>  3) & 31)
        | //                                         [76543210]
          //                       [__________________21098765_____]
            ((((int)in[113 + inPos]) <<  5) & 8191)
        | //                                         [76543210]
          //                               [__________09876543_____________]
            ((((int)in[114 + inPos]) <<  13) & 2097151)
        | //                                         [76543210]
          //                                       [__87654321_____________________]
            ((((int)in[115 + inPos]) <<  21) & 536870911)
        | //                                         [______10]
          //                                               [09_____________________________]
            ((((int)in[116 + inPos]) <<  29) & 2147483647);
      out[30 + outPos] =
          //                                         [765432__]
          //                [_________________________543210]
            ((((int)in[116 + inPos]) >>  2) & 63)
        | //                                         [76543210]
          //                        [_________________32109876______]
            ((((int)in[117 + inPos]) <<  6) & 16383)
        | //                                         [76543210]
          //                                [_________10987654______________]
            ((((int)in[118 + inPos]) <<  14) & 4194303)
        | //                                         [76543210]
          //                                        [_98765432______________________]
            ((((int)in[119 + inPos]) <<  22) & 1073741823)
        | //                                         [_______0]
          //                                                [0______________________________]
            ((((int)in[120 + inPos]) <<  30) & 2147483647);
      out[31 + outPos] =
          //                                         [7654321_]
          //                 [________________________6543210]
            ((((int)in[120 + inPos]) >>  1) & 127)
        | //                                         [76543210]
          //                         [________________43210987_______]
            ((((int)in[121 + inPos]) <<  7) & 32767)
        | //                                         [76543210]
          //                                 [________21098765_______________]
            ((((int)in[122 + inPos]) <<  15) & 8388607)
        | //                                         [76543210]
          //                                         [09876543_______________________]
            ((((int)in[123 + inPos]) <<  23) & 2147483647);
    }
    public final void unpack32Values(final ByteBuffer in, final int inPos, final int[] out, final int outPos) {
      out[ 0 + outPos] =
          //                                         [76543210]
          //                  [_______________________76543210]
            ((((int)in.get( 0 + inPos)) ) & 255)
        | //                                         [76543210]
          //                          [_______________54321098________]
            ((((int)in.get( 1 + inPos)) <<  8) & 65535)
        | //                                         [76543210]
          //                                  [_______32109876________________]
            ((((int)in.get( 2 + inPos)) <<  16) & 16777215)
        | //                                         [_6543210]
          //                                          [0987654________________________]
            ((((int)in.get( 3 + inPos)) <<  24) & 2147483647);
      out[ 1 + outPos] =
          //                                         [7_______]
          //           [______________________________0]
            ((((int)in.get( 3 + inPos)) >>  7) & 1)
        | //                                         [76543210]
          //                   [______________________87654321_]
            ((((int)in.get( 4 + inPos)) <<  1) & 511)
        | //                                         [76543210]
          //                           [______________65432109_________]
            ((((int)in.get( 5 + inPos)) <<  9) & 131071)
        | //                                         [76543210]
          //                                   [______43210987_________________]
            ((((int)in.get( 6 + inPos)) <<  17) & 33554431)
        | //                                         [__543210]
          //                                           [098765_________________________]
            ((((int)in.get( 7 + inPos)) <<  25) & 2147483647);
      out[ 2 + outPos] =
          //                                         [76______]
          //            [_____________________________10]
            ((((int)in.get( 7 + inPos)) >>  6) & 3)
        | //                                         [76543210]
          //                    [_____________________98765432__]
            ((((int)in.get( 8 + inPos)) <<  2) & 1023)
        | //                                         [76543210]
          //                            [_____________76543210__________]
            ((((int)in.get( 9 + inPos)) <<  10) & 262143)
        | //                                         [76543210]
          //                                    [_____54321098__________________]
            ((((int)in.get(10 + inPos)) <<  18) & 67108863)
        | //                                         [___43210]
          //                                            [09876__________________________]
            ((((int)in.get(11 + inPos)) <<  26) & 2147483647);
      out[ 3 + outPos] =
          //                                         [765_____]
          //             [____________________________210]
            ((((int)in.get(11 + inPos)) >>  5) & 7)
        | //                                         [76543210]
          //                     [____________________09876543___]
            ((((int)in.get(12 + inPos)) <<  3) & 2047)
        | //                                         [76543210]
          //                             [____________87654321___________]
            ((((int)in.get(13 + inPos)) <<  11) & 524287)
        | //                                         [76543210]
          //                                     [____65432109___________________]
            ((((int)in.get(14 + inPos)) <<  19) & 134217727)
        | //                                         [____3210]
          //                                             [0987___________________________]
            ((((int)in.get(15 + inPos)) <<  27) & 2147483647);
      out[ 4 + outPos] =
          //                                         [7654____]
          //              [___________________________3210]
            ((((int)in.get(15 + inPos)) >>  4) & 15)
        | //                                         [76543210]
          //                      [___________________10987654____]
            ((((int)in.get(16 + inPos)) <<  4) & 4095)
        | //                                         [76543210]
          //                              [___________98765432____________]
            ((((int)in.get(17 + inPos)) <<  12) & 1048575)
        | //                                         [76543210]
          //                                      [___76543210____________________]
            ((((int)in.get(18 + inPos)) <<  20) & 268435455)
        | //                                         [_____210]
          //                                              [098____________________________]
            ((((int)in.get(19 + inPos)) <<  28) & 2147483647);
      out[ 5 + outPos] =
          //                                         [76543___]
          //               [__________________________43210]
            ((((int)in.get(19 + inPos)) >>  3) & 31)
        | //                                         [76543210]
          //                       [__________________21098765_____]
            ((((int)in.get(20 + inPos)) <<  5) & 8191)
        | //                                         [76543210]
          //                               [__________09876543_____________]
            ((((int)in.get(21 + inPos)) <<  13) & 2097151)
        | //                                         [76543210]
          //                                       [__87654321_____________________]
            ((((int)in.get(22 + inPos)) <<  21) & 536870911)
        | //                                         [______10]
          //                                               [09_____________________________]
            ((((int)in.get(23 + inPos)) <<  29) & 2147483647);
      out[ 6 + outPos] =
          //                                         [765432__]
          //                [_________________________543210]
            ((((int)in.get(23 + inPos)) >>  2) & 63)
        | //                                         [76543210]
          //                        [_________________32109876______]
            ((((int)in.get(24 + inPos)) <<  6) & 16383)
        | //                                         [76543210]
          //                                [_________10987654______________]
            ((((int)in.get(25 + inPos)) <<  14) & 4194303)
        | //                                         [76543210]
          //                                        [_98765432______________________]
            ((((int)in.get(26 + inPos)) <<  22) & 1073741823)
        | //                                         [_______0]
          //                                                [0______________________________]
            ((((int)in.get(27 + inPos)) <<  30) & 2147483647);
      out[ 7 + outPos] =
          //                                         [7654321_]
          //                 [________________________6543210]
            ((((int)in.get(27 + inPos)) >>  1) & 127)
        | //                                         [76543210]
          //                         [________________43210987_______]
            ((((int)in.get(28 + inPos)) <<  7) & 32767)
        | //                                         [76543210]
          //                                 [________21098765_______________]
            ((((int)in.get(29 + inPos)) <<  15) & 8388607)
        | //                                         [76543210]
          //                                         [09876543_______________________]
            ((((int)in.get(30 + inPos)) <<  23) & 2147483647);
      out[ 8 + outPos] =
          //                                         [76543210]
          //                  [_______________________76543210]
            ((((int)in.get(31 + inPos)) ) & 255)
        | //                                         [76543210]
          //                          [_______________54321098________]
            ((((int)in.get(32 + inPos)) <<  8) & 65535)
        | //                                         [76543210]
          //                                  [_______32109876________________]
            ((((int)in.get(33 + inPos)) <<  16) & 16777215)
        | //                                         [_6543210]
          //                                          [0987654________________________]
            ((((int)in.get(34 + inPos)) <<  24) & 2147483647);
      out[ 9 + outPos] =
          //                                         [7_______]
          //           [______________________________0]
            ((((int)in.get(34 + inPos)) >>  7) & 1)
        | //                                         [76543210]
          //                   [______________________87654321_]
            ((((int)in.get(35 + inPos)) <<  1) & 511)
        | //                                         [76543210]
          //                           [______________65432109_________]
            ((((int)in.get(36 + inPos)) <<  9) & 131071)
        | //                                         [76543210]
          //                                   [______43210987_________________]
            ((((int)in.get(37 + inPos)) <<  17) & 33554431)
        | //                                         [__543210]
          //                                           [098765_________________________]
            ((((int)in.get(38 + inPos)) <<  25) & 2147483647);
      out[10 + outPos] =
          //                                         [76______]
          //            [_____________________________10]
            ((((int)in.get(38 + inPos)) >>  6) & 3)
        | //                                         [76543210]
          //                    [_____________________98765432__]
            ((((int)in.get(39 + inPos)) <<  2) & 1023)
        | //                                         [76543210]
          //                            [_____________76543210__________]
            ((((int)in.get(40 + inPos)) <<  10) & 262143)
        | //                                         [76543210]
          //                                    [_____54321098__________________]
            ((((int)in.get(41 + inPos)) <<  18) & 67108863)
        | //                                         [___43210]
          //                                            [09876__________________________]
            ((((int)in.get(42 + inPos)) <<  26) & 2147483647);
      out[11 + outPos] =
          //                                         [765_____]
          //             [____________________________210]
            ((((int)in.get(42 + inPos)) >>  5) & 7)
        | //                                         [76543210]
          //                     [____________________09876543___]
            ((((int)in.get(43 + inPos)) <<  3) & 2047)
        | //                                         [76543210]
          //                             [____________87654321___________]
            ((((int)in.get(44 + inPos)) <<  11) & 524287)
        | //                                         [76543210]
          //                                     [____65432109___________________]
            ((((int)in.get(45 + inPos)) <<  19) & 134217727)
        | //                                         [____3210]
          //                                             [0987___________________________]
            ((((int)in.get(46 + inPos)) <<  27) & 2147483647);
      out[12 + outPos] =
          //                                         [7654____]
          //              [___________________________3210]
            ((((int)in.get(46 + inPos)) >>  4) & 15)
        | //                                         [76543210]
          //                      [___________________10987654____]
            ((((int)in.get(47 + inPos)) <<  4) & 4095)
        | //                                         [76543210]
          //                              [___________98765432____________]
            ((((int)in.get(48 + inPos)) <<  12) & 1048575)
        | //                                         [76543210]
          //                                      [___76543210____________________]
            ((((int)in.get(49 + inPos)) <<  20) & 268435455)
        | //                                         [_____210]
          //                                              [098____________________________]
            ((((int)in.get(50 + inPos)) <<  28) & 2147483647);
      out[13 + outPos] =
          //                                         [76543___]
          //               [__________________________43210]
            ((((int)in.get(50 + inPos)) >>  3) & 31)
        | //                                         [76543210]
          //                       [__________________21098765_____]
            ((((int)in.get(51 + inPos)) <<  5) & 8191)
        | //                                         [76543210]
          //                               [__________09876543_____________]
            ((((int)in.get(52 + inPos)) <<  13) & 2097151)
        | //                                         [76543210]
          //                                       [__87654321_____________________]
            ((((int)in.get(53 + inPos)) <<  21) & 536870911)
        | //                                         [______10]
          //                                               [09_____________________________]
            ((((int)in.get(54 + inPos)) <<  29) & 2147483647);
      out[14 + outPos] =
          //                                         [765432__]
          //                [_________________________543210]
            ((((int)in.get(54 + inPos)) >>  2) & 63)
        | //                                         [76543210]
          //                        [_________________32109876______]
            ((((int)in.get(55 + inPos)) <<  6) & 16383)
        | //                                         [76543210]
          //                                [_________10987654______________]
            ((((int)in.get(56 + inPos)) <<  14) & 4194303)
        | //                                         [76543210]
          //                                        [_98765432______________________]
            ((((int)in.get(57 + inPos)) <<  22) & 1073741823)
        | //                                         [_______0]
          //                                                [0______________________________]
            ((((int)in.get(58 + inPos)) <<  30) & 2147483647);
      out[15 + outPos] =
          //                                         [7654321_]
          //                 [________________________6543210]
            ((((int)in.get(58 + inPos)) >>  1) & 127)
        | //                                         [76543210]
          //                         [________________43210987_______]
            ((((int)in.get(59 + inPos)) <<  7) & 32767)
        | //                                         [76543210]
          //                                 [________21098765_______________]
            ((((int)in.get(60 + inPos)) <<  15) & 8388607)
        | //                                         [76543210]
          //                                         [09876543_______________________]
            ((((int)in.get(61 + inPos)) <<  23) & 2147483647);
      out[16 + outPos] =
          //                                         [76543210]
          //                  [_______________________76543210]
            ((((int)in.get(62 + inPos)) ) & 255)
        | //                                         [76543210]
          //                          [_______________54321098________]
            ((((int)in.get(63 + inPos)) <<  8) & 65535)
        | //                                         [76543210]
          //                                  [_______32109876________________]
            ((((int)in.get(64 + inPos)) <<  16) & 16777215)
        | //                                         [_6543210]
          //                                          [0987654________________________]
            ((((int)in.get(65 + inPos)) <<  24) & 2147483647);
      out[17 + outPos] =
          //                                         [7_______]
          //           [______________________________0]
            ((((int)in.get(65 + inPos)) >>  7) & 1)
        | //                                         [76543210]
          //                   [______________________87654321_]
            ((((int)in.get(66 + inPos)) <<  1) & 511)
        | //                                         [76543210]
          //                           [______________65432109_________]
            ((((int)in.get(67 + inPos)) <<  9) & 131071)
        | //                                         [76543210]
          //                                   [______43210987_________________]
            ((((int)in.get(68 + inPos)) <<  17) & 33554431)
        | //                                         [__543210]
          //                                           [098765_________________________]
            ((((int)in.get(69 + inPos)) <<  25) & 2147483647);
      out[18 + outPos] =
          //                                         [76______]
          //            [_____________________________10]
            ((((int)in.get(69 + inPos)) >>  6) & 3)
        | //                                         [76543210]
          //                    [_____________________98765432__]
            ((((int)in.get(70 + inPos)) <<  2) & 1023)
        | //                                         [76543210]
          //                            [_____________76543210__________]
            ((((int)in.get(71 + inPos)) <<  10) & 262143)
        | //                                         [76543210]
          //                                    [_____54321098__________________]
            ((((int)in.get(72 + inPos)) <<  18) & 67108863)
        | //                                         [___43210]
          //                                            [09876__________________________]
            ((((int)in.get(73 + inPos)) <<  26) & 2147483647);
      out[19 + outPos] =
          //                                         [765_____]
          //             [____________________________210]
            ((((int)in.get(73 + inPos)) >>  5) & 7)
        | //                                         [76543210]
          //                     [____________________09876543___]
            ((((int)in.get(74 + inPos)) <<  3) & 2047)
        | //                                         [76543210]
          //                             [____________87654321___________]
            ((((int)in.get(75 + inPos)) <<  11) & 524287)
        | //                                         [76543210]
          //                                     [____65432109___________________]
            ((((int)in.get(76 + inPos)) <<  19) & 134217727)
        | //                                         [____3210]
          //                                             [0987___________________________]
            ((((int)in.get(77 + inPos)) <<  27) & 2147483647);
      out[20 + outPos] =
          //                                         [7654____]
          //              [___________________________3210]
            ((((int)in.get(77 + inPos)) >>  4) & 15)
        | //                                         [76543210]
          //                      [___________________10987654____]
            ((((int)in.get(78 + inPos)) <<  4) & 4095)
        | //                                         [76543210]
          //                              [___________98765432____________]
            ((((int)in.get(79 + inPos)) <<  12) & 1048575)
        | //                                         [76543210]
          //                                      [___76543210____________________]
            ((((int)in.get(80 + inPos)) <<  20) & 268435455)
        | //                                         [_____210]
          //                                              [098____________________________]
            ((((int)in.get(81 + inPos)) <<  28) & 2147483647);
      out[21 + outPos] =
          //                                         [76543___]
          //               [__________________________43210]
            ((((int)in.get(81 + inPos)) >>  3) & 31)
        | //                                         [76543210]
          //                       [__________________21098765_____]
            ((((int)in.get(82 + inPos)) <<  5) & 8191)
        | //                                         [76543210]
          //                               [__________09876543_____________]
            ((((int)in.get(83 + inPos)) <<  13) & 2097151)
        | //                                         [76543210]
          //                                       [__87654321_____________________]
            ((((int)in.get(84 + inPos)) <<  21) & 536870911)
        | //                                         [______10]
          //                                               [09_____________________________]
            ((((int)in.get(85 + inPos)) <<  29) & 2147483647);
      out[22 + outPos] =
          //                                         [765432__]
          //                [_________________________543210]
            ((((int)in.get(85 + inPos)) >>  2) & 63)
        | //                                         [76543210]
          //                        [_________________32109876______]
            ((((int)in.get(86 + inPos)) <<  6) & 16383)
        | //                                         [76543210]
          //                                [_________10987654______________]
            ((((int)in.get(87 + inPos)) <<  14) & 4194303)
        | //                                         [76543210]
          //                                        [_98765432______________________]
            ((((int)in.get(88 + inPos)) <<  22) & 1073741823)
        | //                                         [_______0]
          //                                                [0______________________________]
            ((((int)in.get(89 + inPos)) <<  30) & 2147483647);
      out[23 + outPos] =
          //                                         [7654321_]
          //                 [________________________6543210]
            ((((int)in.get(89 + inPos)) >>  1) & 127)
        | //                                         [76543210]
          //                         [________________43210987_______]
            ((((int)in.get(90 + inPos)) <<  7) & 32767)
        | //                                         [76543210]
          //                                 [________21098765_______________]
            ((((int)in.get(91 + inPos)) <<  15) & 8388607)
        | //                                         [76543210]
          //                                         [09876543_______________________]
            ((((int)in.get(92 + inPos)) <<  23) & 2147483647);
      out[24 + outPos] =
          //                                         [76543210]
          //                  [_______________________76543210]
            ((((int)in.get(93 + inPos)) ) & 255)
        | //                                         [76543210]
          //                          [_______________54321098________]
            ((((int)in.get(94 + inPos)) <<  8) & 65535)
        | //                                         [76543210]
          //                                  [_______32109876________________]
            ((((int)in.get(95 + inPos)) <<  16) & 16777215)
        | //                                         [_6543210]
          //                                          [0987654________________________]
            ((((int)in.get(96 + inPos)) <<  24) & 2147483647);
      out[25 + outPos] =
          //                                         [7_______]
          //           [______________________________0]
            ((((int)in.get(96 + inPos)) >>  7) & 1)
        | //                                         [76543210]
          //                   [______________________87654321_]
            ((((int)in.get(97 + inPos)) <<  1) & 511)
        | //                                         [76543210]
          //                           [______________65432109_________]
            ((((int)in.get(98 + inPos)) <<  9) & 131071)
        | //                                         [76543210]
          //                                   [______43210987_________________]
            ((((int)in.get(99 + inPos)) <<  17) & 33554431)
        | //                                         [__543210]
          //                                           [098765_________________________]
            ((((int)in.get(100 + inPos)) <<  25) & 2147483647);
      out[26 + outPos] =
          //                                         [76______]
          //            [_____________________________10]
            ((((int)in.get(100 + inPos)) >>  6) & 3)
        | //                                         [76543210]
          //                    [_____________________98765432__]
            ((((int)in.get(101 + inPos)) <<  2) & 1023)
        | //                                         [76543210]
          //                            [_____________76543210__________]
            ((((int)in.get(102 + inPos)) <<  10) & 262143)
        | //                                         [76543210]
          //                                    [_____54321098__________________]
            ((((int)in.get(103 + inPos)) <<  18) & 67108863)
        | //                                         [___43210]
          //                                            [09876__________________________]
            ((((int)in.get(104 + inPos)) <<  26) & 2147483647);
      out[27 + outPos] =
          //                                         [765_____]
          //             [____________________________210]
            ((((int)in.get(104 + inPos)) >>  5) & 7)
        | //                                         [76543210]
          //                     [____________________09876543___]
            ((((int)in.get(105 + inPos)) <<  3) & 2047)
        | //                                         [76543210]
          //                             [____________87654321___________]
            ((((int)in.get(106 + inPos)) <<  11) & 524287)
        | //                                         [76543210]
          //                                     [____65432109___________________]
            ((((int)in.get(107 + inPos)) <<  19) & 134217727)
        | //                                         [____3210]
          //                                             [0987___________________________]
            ((((int)in.get(108 + inPos)) <<  27) & 2147483647);
      out[28 + outPos] =
          //                                         [7654____]
          //              [___________________________3210]
            ((((int)in.get(108 + inPos)) >>  4) & 15)
        | //                                         [76543210]
          //                      [___________________10987654____]
            ((((int)in.get(109 + inPos)) <<  4) & 4095)
        | //                                         [76543210]
          //                              [___________98765432____________]
            ((((int)in.get(110 + inPos)) <<  12) & 1048575)
        | //                                         [76543210]
          //                                      [___76543210____________________]
            ((((int)in.get(111 + inPos)) <<  20) & 268435455)
        | //                                         [_____210]
          //                                              [098____________________________]
            ((((int)in.get(112 + inPos)) <<  28) & 2147483647);
      out[29 + outPos] =
          //                                         [76543___]
          //               [__________________________43210]
            ((((int)in.get(112 + inPos)) >>  3) & 31)
        | //                                         [76543210]
          //                       [__________________21098765_____]
            ((((int)in.get(113 + inPos)) <<  5) & 8191)
        | //                                         [76543210]
          //                               [__________09876543_____________]
            ((((int)in.get(114 + inPos)) <<  13) & 2097151)
        | //                                         [76543210]
          //                                       [__87654321_____________________]
            ((((int)in.get(115 + inPos)) <<  21) & 536870911)
        | //                                         [______10]
          //                                               [09_____________________________]
            ((((int)in.get(116 + inPos)) <<  29) & 2147483647);
      out[30 + outPos] =
          //                                         [765432__]
          //                [_________________________543210]
            ((((int)in.get(116 + inPos)) >>  2) & 63)
        | //                                         [76543210]
          //                        [_________________32109876______]
            ((((int)in.get(117 + inPos)) <<  6) & 16383)
        | //                                         [76543210]
          //                                [_________10987654______________]
            ((((int)in.get(118 + inPos)) <<  14) & 4194303)
        | //                                         [76543210]
          //                                        [_98765432______________________]
            ((((int)in.get(119 + inPos)) <<  22) & 1073741823)
        | //                                         [_______0]
          //                                                [0______________________________]
            ((((int)in.get(120 + inPos)) <<  30) & 2147483647);
      out[31 + outPos] =
          //                                         [7654321_]
          //                 [________________________6543210]
            ((((int)in.get(120 + inPos)) >>  1) & 127)
        | //                                         [76543210]
          //                         [________________43210987_______]
            ((((int)in.get(121 + inPos)) <<  7) & 32767)
        | //                                         [76543210]
          //                                 [________21098765_______________]
            ((((int)in.get(122 + inPos)) <<  15) & 8388607)
        | //                                         [76543210]
          //                                         [09876543_______________________]
            ((((int)in.get(123 + inPos)) <<  23) & 2147483647);
    }
  }

  private static final class Packer32 extends BytePacker {

    private Packer32() {
      super(32);
    }

    public final void pack8Values(final int[] in, final int inPos, final byte[] out, final int outPos) {
      out[ 0 + outPos] = (byte)((
          //                                          [76543210]
          //                  [________________________76543210]
           ((in[ 0 + inPos] & -1))) & 255);
      out[ 1 + outPos] = (byte)((
          //                                          [76543210]
          //                          [________________54321098________]
           ((in[ 0 + inPos] & -1) >>> 8)) & 255);
      out[ 2 + outPos] = (byte)((
          //                                          [76543210]
          //                                  [________32109876________________]
           ((in[ 0 + inPos] & -1) >>> 16)) & 255);
      out[ 3 + outPos] = (byte)((
          //                                          [76543210]
          //                                          [10987654________________________]
           ((in[ 0 + inPos] & -1) >>> 24)) & 255);
      out[ 4 + outPos] = (byte)((
          //                                          [76543210]
          //                  [________________________76543210]
           ((in[ 1 + inPos] & -1))) & 255);
      out[ 5 + outPos] = (byte)((
          //                                          [76543210]
          //                          [________________54321098________]
           ((in[ 1 + inPos] & -1) >>> 8)) & 255);
      out[ 6 + outPos] = (byte)((
          //                                          [76543210]
          //                                  [________32109876________________]
           ((in[ 1 + inPos] & -1) >>> 16)) & 255);
      out[ 7 + outPos] = (byte)((
          //                                          [76543210]
          //                                          [10987654________________________]
           ((in[ 1 + inPos] & -1) >>> 24)) & 255);
      out[ 8 + outPos] = (byte)((
          //                                          [76543210]
          //                  [________________________76543210]
           ((in[ 2 + inPos] & -1))) & 255);
      out[ 9 + outPos] = (byte)((
          //                                          [76543210]
          //                          [________________54321098________]
           ((in[ 2 + inPos] & -1) >>> 8)) & 255);
      out[10 + outPos] = (byte)((
          //                                          [76543210]
          //                                  [________32109876________________]
           ((in[ 2 + inPos] & -1) >>> 16)) & 255);
      out[11 + outPos] = (byte)((
          //                                          [76543210]
          //                                          [10987654________________________]
           ((in[ 2 + inPos] & -1) >>> 24)) & 255);
      out[12 + outPos] = (byte)((
          //                                          [76543210]
          //                  [________________________76543210]
           ((in[ 3 + inPos] & -1))) & 255);
      out[13 + outPos] = (byte)((
          //                                          [76543210]
          //                          [________________54321098________]
           ((in[ 3 + inPos] & -1) >>> 8)) & 255);
      out[14 + outPos] = (byte)((
          //                                          [76543210]
          //                                  [________32109876________________]
           ((in[ 3 + inPos] & -1) >>> 16)) & 255);
      out[15 + outPos] = (byte)((
          //                                          [76543210]
          //                                          [10987654________________________]
           ((in[ 3 + inPos] & -1) >>> 24)) & 255);
      out[16 + outPos] = (byte)((
          //                                          [76543210]
          //                  [________________________76543210]
           ((in[ 4 + inPos] & -1))) & 255);
      out[17 + outPos] = (byte)((
          //                                          [76543210]
          //                          [________________54321098________]
           ((in[ 4 + inPos] & -1) >>> 8)) & 255);
      out[18 + outPos] = (byte)((
          //                                          [76543210]
          //                                  [________32109876________________]
           ((in[ 4 + inPos] & -1) >>> 16)) & 255);
      out[19 + outPos] = (byte)((
          //                                          [76543210]
          //                                          [10987654________________________]
           ((in[ 4 + inPos] & -1) >>> 24)) & 255);
      out[20 + outPos] = (byte)((
          //                                          [76543210]
          //                  [________________________76543210]
           ((in[ 5 + inPos] & -1))) & 255);
      out[21 + outPos] = (byte)((
          //                                          [76543210]
          //                          [________________54321098________]
           ((in[ 5 + inPos] & -1) >>> 8)) & 255);
      out[22 + outPos] = (byte)((
          //                                          [76543210]
          //                                  [________32109876________________]
           ((in[ 5 + inPos] & -1) >>> 16)) & 255);
      out[23 + outPos] = (byte)((
          //                                          [76543210]
          //                                          [10987654________________________]
           ((in[ 5 + inPos] & -1) >>> 24)) & 255);
      out[24 + outPos] = (byte)((
          //                                          [76543210]
          //                  [________________________76543210]
           ((in[ 6 + inPos] & -1))) & 255);
      out[25 + outPos] = (byte)((
          //                                          [76543210]
          //                          [________________54321098________]
           ((in[ 6 + inPos] & -1) >>> 8)) & 255);
      out[26 + outPos] = (byte)((
          //                                          [76543210]
          //                                  [________32109876________________]
           ((in[ 6 + inPos] & -1) >>> 16)) & 255);
      out[27 + outPos] = (byte)((
          //                                          [76543210]
          //                                          [10987654________________________]
           ((in[ 6 + inPos] & -1) >>> 24)) & 255);
      out[28 + outPos] = (byte)((
          //                                          [76543210]
          //                  [________________________76543210]
           ((in[ 7 + inPos] & -1))) & 255);
      out[29 + outPos] = (byte)((
          //                                          [76543210]
          //                          [________________54321098________]
           ((in[ 7 + inPos] & -1) >>> 8)) & 255);
      out[30 + outPos] = (byte)((
          //                                          [76543210]
          //                                  [________32109876________________]
           ((in[ 7 + inPos] & -1) >>> 16)) & 255);
      out[31 + outPos] = (byte)((
          //                                          [76543210]
          //                                          [10987654________________________]
           ((in[ 7 + inPos] & -1) >>> 24)) & 255);
    }
    public final void pack32Values(final int[] in, final int inPos, final byte[] out, final int outPos) {
      out[ 0 + outPos] = (byte)((
          //                                          [76543210]
          //                  [________________________76543210]
           ((in[ 0 + inPos] & -1))) & 255);
      out[ 1 + outPos] = (byte)((
          //                                          [76543210]
          //                          [________________54321098________]
           ((in[ 0 + inPos] & -1) >>> 8)) & 255);
      out[ 2 + outPos] = (byte)((
          //                                          [76543210]
          //                                  [________32109876________________]
           ((in[ 0 + inPos] & -1) >>> 16)) & 255);
      out[ 3 + outPos] = (byte)((
          //                                          [76543210]
          //                                          [10987654________________________]
           ((in[ 0 + inPos] & -1) >>> 24)) & 255);
      out[ 4 + outPos] = (byte)((
          //                                          [76543210]
          //                  [________________________76543210]
           ((in[ 1 + inPos] & -1))) & 255);
      out[ 5 + outPos] = (byte)((
          //                                          [76543210]
          //                          [________________54321098________]
           ((in[ 1 + inPos] & -1) >>> 8)) & 255);
      out[ 6 + outPos] = (byte)((
          //                                          [76543210]
          //                                  [________32109876________________]
           ((in[ 1 + inPos] & -1) >>> 16)) & 255);
      out[ 7 + outPos] = (byte)((
          //                                          [76543210]
          //                                          [10987654________________________]
           ((in[ 1 + inPos] & -1) >>> 24)) & 255);
      out[ 8 + outPos] = (byte)((
          //                                          [76543210]
          //                  [________________________76543210]
           ((in[ 2 + inPos] & -1))) & 255);
      out[ 9 + outPos] = (byte)((
          //                                          [76543210]
          //                          [________________54321098________]
           ((in[ 2 + inPos] & -1) >>> 8)) & 255);
      out[10 + outPos] = (byte)((
          //                                          [76543210]
          //                                  [________32109876________________]
           ((in[ 2 + inPos] & -1) >>> 16)) & 255);
      out[11 + outPos] = (byte)((
          //                                          [76543210]
          //                                          [10987654________________________]
           ((in[ 2 + inPos] & -1) >>> 24)) & 255);
      out[12 + outPos] = (byte)((
          //                                          [76543210]
          //                  [________________________76543210]
           ((in[ 3 + inPos] & -1))) & 255);
      out[13 + outPos] = (byte)((
          //                                          [76543210]
          //                          [________________54321098________]
           ((in[ 3 + inPos] & -1) >>> 8)) & 255);
      out[14 + outPos] = (byte)((
          //                                          [76543210]
          //                                  [________32109876________________]
           ((in[ 3 + inPos] & -1) >>> 16)) & 255);
      out[15 + outPos] = (byte)((
          //                                          [76543210]
          //                                          [10987654________________________]
           ((in[ 3 + inPos] & -1) >>> 24)) & 255);
      out[16 + outPos] = (byte)((
          //                                          [76543210]
          //                  [________________________76543210]
           ((in[ 4 + inPos] & -1))) & 255);
      out[17 + outPos] = (byte)((
          //                                          [76543210]
          //                          [________________54321098________]
           ((in[ 4 + inPos] & -1) >>> 8)) & 255);
      out[18 + outPos] = (byte)((
          //                                          [76543210]
          //                                  [________32109876________________]
           ((in[ 4 + inPos] & -1) >>> 16)) & 255);
      out[19 + outPos] = (byte)((
          //                                          [76543210]
          //                                          [10987654________________________]
           ((in[ 4 + inPos] & -1) >>> 24)) & 255);
      out[20 + outPos] = (byte)((
          //                                          [76543210]
          //                  [________________________76543210]
           ((in[ 5 + inPos] & -1))) & 255);
      out[21 + outPos] = (byte)((
          //                                          [76543210]
          //                          [________________54321098________]
           ((in[ 5 + inPos] & -1) >>> 8)) & 255);
      out[22 + outPos] = (byte)((
          //                                          [76543210]
          //                                  [________32109876________________]
           ((in[ 5 + inPos] & -1) >>> 16)) & 255);
      out[23 + outPos] = (byte)((
          //                                          [76543210]
          //                                          [10987654________________________]
           ((in[ 5 + inPos] & -1) >>> 24)) & 255);
      out[24 + outPos] = (byte)((
          //                                          [76543210]
          //                  [________________________76543210]
           ((in[ 6 + inPos] & -1))) & 255);
      out[25 + outPos] = (byte)((
          //                                          [76543210]
          //                          [________________54321098________]
           ((in[ 6 + inPos] & -1) >>> 8)) & 255);
      out[26 + outPos] = (byte)((
          //                                          [76543210]
          //                                  [________32109876________________]
           ((in[ 6 + inPos] & -1) >>> 16)) & 255);
      out[27 + outPos] = (byte)((
          //                                          [76543210]
          //                                          [10987654________________________]
           ((in[ 6 + inPos] & -1) >>> 24)) & 255);
      out[28 + outPos] = (byte)((
          //                                          [76543210]
          //                  [________________________76543210]
           ((in[ 7 + inPos] & -1))) & 255);
      out[29 + outPos] = (byte)((
          //                                          [76543210]
          //                          [________________54321098________]
           ((in[ 7 + inPos] & -1) >>> 8)) & 255);
      out[30 + outPos] = (byte)((
          //                                          [76543210]
          //                                  [________32109876________________]
           ((in[ 7 + inPos] & -1) >>> 16)) & 255);
      out[31 + outPos] = (byte)((
          //                                          [76543210]
          //                                          [10987654________________________]
           ((in[ 7 + inPos] & -1) >>> 24)) & 255);
      out[32 + outPos] = (byte)((
          //                                          [76543210]
          //                  [________________________76543210]
           ((in[ 8 + inPos] & -1))) & 255);
      out[33 + outPos] = (byte)((
          //                                          [76543210]
          //                          [________________54321098________]
           ((in[ 8 + inPos] & -1) >>> 8)) & 255);
      out[34 + outPos] = (byte)((
          //                                          [76543210]
          //                                  [________32109876________________]
           ((in[ 8 + inPos] & -1) >>> 16)) & 255);
      out[35 + outPos] = (byte)((
          //                                          [76543210]
          //                                          [10987654________________________]
           ((in[ 8 + inPos] & -1) >>> 24)) & 255);
      out[36 + outPos] = (byte)((
          //                                          [76543210]
          //                  [________________________76543210]
           ((in[ 9 + inPos] & -1))) & 255);
      out[37 + outPos] = (byte)((
          //                                          [76543210]
          //                          [________________54321098________]
           ((in[ 9 + inPos] & -1) >>> 8)) & 255);
      out[38 + outPos] = (byte)((
          //                                          [76543210]
          //                                  [________32109876________________]
           ((in[ 9 + inPos] & -1) >>> 16)) & 255);
      out[39 + outPos] = (byte)((
          //                                          [76543210]
          //                                          [10987654________________________]
           ((in[ 9 + inPos] & -1) >>> 24)) & 255);
      out[40 + outPos] = (byte)((
          //                                          [76543210]
          //                  [________________________76543210]
           ((in[10 + inPos] & -1))) & 255);
      out[41 + outPos] = (byte)((
          //                                          [76543210]
          //                          [________________54321098________]
           ((in[10 + inPos] & -1) >>> 8)) & 255);
      out[42 + outPos] = (byte)((
          //                                          [76543210]
          //                                  [________32109876________________]
           ((in[10 + inPos] & -1) >>> 16)) & 255);
      out[43 + outPos] = (byte)((
          //                                          [76543210]
          //                                          [10987654________________________]
           ((in[10 + inPos] & -1) >>> 24)) & 255);
      out[44 + outPos] = (byte)((
          //                                          [76543210]
          //                  [________________________76543210]
           ((in[11 + inPos] & -1))) & 255);
      out[45 + outPos] = (byte)((
          //                                          [76543210]
          //                          [________________54321098________]
           ((in[11 + inPos] & -1) >>> 8)) & 255);
      out[46 + outPos] = (byte)((
          //                                          [76543210]
          //                                  [________32109876________________]
           ((in[11 + inPos] & -1) >>> 16)) & 255);
      out[47 + outPos] = (byte)((
          //                                          [76543210]
          //                                          [10987654________________________]
           ((in[11 + inPos] & -1) >>> 24)) & 255);
      out[48 + outPos] = (byte)((
          //                                          [76543210]
          //                  [________________________76543210]
           ((in[12 + inPos] & -1))) & 255);
      out[49 + outPos] = (byte)((
          //                                          [76543210]
          //                          [________________54321098________]
           ((in[12 + inPos] & -1) >>> 8)) & 255);
      out[50 + outPos] = (byte)((
          //                                          [76543210]
          //                                  [________32109876________________]
           ((in[12 + inPos] & -1) >>> 16)) & 255);
      out[51 + outPos] = (byte)((
          //                                          [76543210]
          //                                          [10987654________________________]
           ((in[12 + inPos] & -1) >>> 24)) & 255);
      out[52 + outPos] = (byte)((
          //                                          [76543210]
          //                  [________________________76543210]
           ((in[13 + inPos] & -1))) & 255);
      out[53 + outPos] = (byte)((
          //                                          [76543210]
          //                          [________________54321098________]
           ((in[13 + inPos] & -1) >>> 8)) & 255);
      out[54 + outPos] = (byte)((
          //                                          [76543210]
          //                                  [________32109876________________]
           ((in[13 + inPos] & -1) >>> 16)) & 255);
      out[55 + outPos] = (byte)((
          //                                          [76543210]
          //                                          [10987654________________________]
           ((in[13 + inPos] & -1) >>> 24)) & 255);
      out[56 + outPos] = (byte)((
          //                                          [76543210]
          //                  [________________________76543210]
           ((in[14 + inPos] & -1))) & 255);
      out[57 + outPos] = (byte)((
          //                                          [76543210]
          //                          [________________54321098________]
           ((in[14 + inPos] & -1) >>> 8)) & 255);
      out[58 + outPos] = (byte)((
          //                                          [76543210]
          //                                  [________32109876________________]
           ((in[14 + inPos] & -1) >>> 16)) & 255);
      out[59 + outPos] = (byte)((
          //                                          [76543210]
          //                                          [10987654________________________]
           ((in[14 + inPos] & -1) >>> 24)) & 255);
      out[60 + outPos] = (byte)((
          //                                          [76543210]
          //                  [________________________76543210]
           ((in[15 + inPos] & -1))) & 255);
      out[61 + outPos] = (byte)((
          //                                          [76543210]
          //                          [________________54321098________]
           ((in[15 + inPos] & -1) >>> 8)) & 255);
      out[62 + outPos] = (byte)((
          //                                          [76543210]
          //                                  [________32109876________________]
           ((in[15 + inPos] & -1) >>> 16)) & 255);
      out[63 + outPos] = (byte)((
          //                                          [76543210]
          //                                          [10987654________________________]
           ((in[15 + inPos] & -1) >>> 24)) & 255);
      out[64 + outPos] = (byte)((
          //                                          [76543210]
          //                  [________________________76543210]
           ((in[16 + inPos] & -1))) & 255);
      out[65 + outPos] = (byte)((
          //                                          [76543210]
          //                          [________________54321098________]
           ((in[16 + inPos] & -1) >>> 8)) & 255);
      out[66 + outPos] = (byte)((
          //                                          [76543210]
          //                                  [________32109876________________]
           ((in[16 + inPos] & -1) >>> 16)) & 255);
      out[67 + outPos] = (byte)((
          //                                          [76543210]
          //                                          [10987654________________________]
           ((in[16 + inPos] & -1) >>> 24)) & 255);
      out[68 + outPos] = (byte)((
          //                                          [76543210]
          //                  [________________________76543210]
           ((in[17 + inPos] & -1))) & 255);
      out[69 + outPos] = (byte)((
          //                                          [76543210]
          //                          [________________54321098________]
           ((in[17 + inPos] & -1) >>> 8)) & 255);
      out[70 + outPos] = (byte)((
          //                                          [76543210]
          //                                  [________32109876________________]
           ((in[17 + inPos] & -1) >>> 16)) & 255);
      out[71 + outPos] = (byte)((
          //                                          [76543210]
          //                                          [10987654________________________]
           ((in[17 + inPos] & -1) >>> 24)) & 255);
      out[72 + outPos] = (byte)((
          //                                          [76543210]
          //                  [________________________76543210]
           ((in[18 + inPos] & -1))) & 255);
      out[73 + outPos] = (byte)((
          //                                          [76543210]
          //                          [________________54321098________]
           ((in[18 + inPos] & -1) >>> 8)) & 255);
      out[74 + outPos] = (byte)((
          //                                          [76543210]
          //                                  [________32109876________________]
           ((in[18 + inPos] & -1) >>> 16)) & 255);
      out[75 + outPos] = (byte)((
          //                                          [76543210]
          //                                          [10987654________________________]
           ((in[18 + inPos] & -1) >>> 24)) & 255);
      out[76 + outPos] = (byte)((
          //                                          [76543210]
          //                  [________________________76543210]
           ((in[19 + inPos] & -1))) & 255);
      out[77 + outPos] = (byte)((
          //                                          [76543210]
          //                          [________________54321098________]
           ((in[19 + inPos] & -1) >>> 8)) & 255);
      out[78 + outPos] = (byte)((
          //                                          [76543210]
          //                                  [________32109876________________]
           ((in[19 + inPos] & -1) >>> 16)) & 255);
      out[79 + outPos] = (byte)((
          //                                          [76543210]
          //                                          [10987654________________________]
           ((in[19 + inPos] & -1) >>> 24)) & 255);
      out[80 + outPos] = (byte)((
          //                                          [76543210]
          //                  [________________________76543210]
           ((in[20 + inPos] & -1))) & 255);
      out[81 + outPos] = (byte)((
          //                                          [76543210]
          //                          [________________54321098________]
           ((in[20 + inPos] & -1) >>> 8)) & 255);
      out[82 + outPos] = (byte)((
          //                                          [76543210]
          //                                  [________32109876________________]
           ((in[20 + inPos] & -1) >>> 16)) & 255);
      out[83 + outPos] = (byte)((
          //                                          [76543210]
          //                                          [10987654________________________]
           ((in[20 + inPos] & -1) >>> 24)) & 255);
      out[84 + outPos] = (byte)((
          //                                          [76543210]
          //                  [________________________76543210]
           ((in[21 + inPos] & -1))) & 255);
      out[85 + outPos] = (byte)((
          //                                          [76543210]
          //                          [________________54321098________]
           ((in[21 + inPos] & -1) >>> 8)) & 255);
      out[86 + outPos] = (byte)((
          //                                          [76543210]
          //                                  [________32109876________________]
           ((in[21 + inPos] & -1) >>> 16)) & 255);
      out[87 + outPos] = (byte)((
          //                                          [76543210]
          //                                          [10987654________________________]
           ((in[21 + inPos] & -1) >>> 24)) & 255);
      out[88 + outPos] = (byte)((
          //                                          [76543210]
          //                  [________________________76543210]
           ((in[22 + inPos] & -1))) & 255);
      out[89 + outPos] = (byte)((
          //                                          [76543210]
          //                          [________________54321098________]
           ((in[22 + inPos] & -1) >>> 8)) & 255);
      out[90 + outPos] = (byte)((
          //                                          [76543210]
          //                                  [________32109876________________]
           ((in[22 + inPos] & -1) >>> 16)) & 255);
      out[91 + outPos] = (byte)((
          //                                          [76543210]
          //                                          [10987654________________________]
           ((in[22 + inPos] & -1) >>> 24)) & 255);
      out[92 + outPos] = (byte)((
          //                                          [76543210]
          //                  [________________________76543210]
           ((in[23 + inPos] & -1))) & 255);
      out[93 + outPos] = (byte)((
          //                                          [76543210]
          //                          [________________54321098________]
           ((in[23 + inPos] & -1) >>> 8)) & 255);
      out[94 + outPos] = (byte)((
          //                                          [76543210]
          //                                  [________32109876________________]
           ((in[23 + inPos] & -1) >>> 16)) & 255);
      out[95 + outPos] = (byte)((
          //                                          [76543210]
          //                                          [10987654________________________]
           ((in[23 + inPos] & -1) >>> 24)) & 255);
      out[96 + outPos] = (byte)((
          //                                          [76543210]
          //                  [________________________76543210]
           ((in[24 + inPos] & -1))) & 255);
      out[97 + outPos] = (byte)((
          //                                          [76543210]
          //                          [________________54321098________]
           ((in[24 + inPos] & -1) >>> 8)) & 255);
      out[98 + outPos] = (byte)((
          //                                          [76543210]
          //                                  [________32109876________________]
           ((in[24 + inPos] & -1) >>> 16)) & 255);
      out[99 + outPos] = (byte)((
          //                                          [76543210]
          //                                          [10987654________________________]
           ((in[24 + inPos] & -1) >>> 24)) & 255);
      out[100 + outPos] = (byte)((
          //                                          [76543210]
          //                  [________________________76543210]
           ((in[25 + inPos] & -1))) & 255);
      out[101 + outPos] = (byte)((
          //                                          [76543210]
          //                          [________________54321098________]
           ((in[25 + inPos] & -1) >>> 8)) & 255);
      out[102 + outPos] = (byte)((
          //                                          [76543210]
          //                                  [________32109876________________]
           ((in[25 + inPos] & -1) >>> 16)) & 255);
      out[103 + outPos] = (byte)((
          //                                          [76543210]
          //                                          [10987654________________________]
           ((in[25 + inPos] & -1) >>> 24)) & 255);
      out[104 + outPos] = (byte)((
          //                                          [76543210]
          //                  [________________________76543210]
           ((in[26 + inPos] & -1))) & 255);
      out[105 + outPos] = (byte)((
          //                                          [76543210]
          //                          [________________54321098________]
           ((in[26 + inPos] & -1) >>> 8)) & 255);
      out[106 + outPos] = (byte)((
          //                                          [76543210]
          //                                  [________32109876________________]
           ((in[26 + inPos] & -1) >>> 16)) & 255);
      out[107 + outPos] = (byte)((
          //                                          [76543210]
          //                                          [10987654________________________]
           ((in[26 + inPos] & -1) >>> 24)) & 255);
      out[108 + outPos] = (byte)((
          //                                          [76543210]
          //                  [________________________76543210]
           ((in[27 + inPos] & -1))) & 255);
      out[109 + outPos] = (byte)((
          //                                          [76543210]
          //                          [________________54321098________]
           ((in[27 + inPos] & -1) >>> 8)) & 255);
      out[110 + outPos] = (byte)((
          //                                          [76543210]
          //                                  [________32109876________________]
           ((in[27 + inPos] & -1) >>> 16)) & 255);
      out[111 + outPos] = (byte)((
          //                                          [76543210]
          //                                          [10987654________________________]
           ((in[27 + inPos] & -1) >>> 24)) & 255);
      out[112 + outPos] = (byte)((
          //                                          [76543210]
          //                  [________________________76543210]
           ((in[28 + inPos] & -1))) & 255);
      out[113 + outPos] = (byte)((
          //                                          [76543210]
          //                          [________________54321098________]
           ((in[28 + inPos] & -1) >>> 8)) & 255);
      out[114 + outPos] = (byte)((
          //                                          [76543210]
          //                                  [________32109876________________]
           ((in[28 + inPos] & -1) >>> 16)) & 255);
      out[115 + outPos] = (byte)((
          //                                          [76543210]
          //                                          [10987654________________________]
           ((in[28 + inPos] & -1) >>> 24)) & 255);
      out[116 + outPos] = (byte)((
          //                                          [76543210]
          //                  [________________________76543210]
           ((in[29 + inPos] & -1))) & 255);
      out[117 + outPos] = (byte)((
          //                                          [76543210]
          //                          [________________54321098________]
           ((in[29 + inPos] & -1) >>> 8)) & 255);
      out[118 + outPos] = (byte)((
          //                                          [76543210]
          //                                  [________32109876________________]
           ((in[29 + inPos] & -1) >>> 16)) & 255);
      out[119 + outPos] = (byte)((
          //                                          [76543210]
          //                                          [10987654________________________]
           ((in[29 + inPos] & -1) >>> 24)) & 255);
      out[120 + outPos] = (byte)((
          //                                          [76543210]
          //                  [________________________76543210]
           ((in[30 + inPos] & -1))) & 255);
      out[121 + outPos] = (byte)((
          //                                          [76543210]
          //                          [________________54321098________]
           ((in[30 + inPos] & -1) >>> 8)) & 255);
      out[122 + outPos] = (byte)((
          //                                          [76543210]
          //                                  [________32109876________________]
           ((in[30 + inPos] & -1) >>> 16)) & 255);
      out[123 + outPos] = (byte)((
          //                                          [76543210]
          //                                          [10987654________________________]
           ((in[30 + inPos] & -1) >>> 24)) & 255);
      out[124 + outPos] = (byte)((
          //                                          [76543210]
          //                  [________________________76543210]
           ((in[31 + inPos] & -1))) & 255);
      out[125 + outPos] = (byte)((
          //                                          [76543210]
          //                          [________________54321098________]
           ((in[31 + inPos] & -1) >>> 8)) & 255);
      out[126 + outPos] = (byte)((
          //                                          [76543210]
          //                                  [________32109876________________]
           ((in[31 + inPos] & -1) >>> 16)) & 255);
      out[127 + outPos] = (byte)((
          //                                          [76543210]
          //                                          [10987654________________________]
           ((in[31 + inPos] & -1) >>> 24)) & 255);
    }
    public final void unpack8Values(final byte[] in, final int inPos, final int[] out, final int outPos) {
      out[ 0 + outPos] =
          //                                          [76543210]
          //                  [________________________76543210]
            ((((int)in[ 0 + inPos]) ) & 255)
        | //                                          [76543210]
          //                          [________________54321098________]
            ((((int)in[ 1 + inPos]) <<  8) & 65535)
        | //                                          [76543210]
          //                                  [________32109876________________]
            ((((int)in[ 2 + inPos]) <<  16) & 16777215)
        | //                                          [76543210]
          //                                          [10987654________________________]
            ((((int)in[ 3 + inPos]) <<  24) & -1);
      out[ 1 + outPos] =
          //                                          [76543210]
          //                  [________________________76543210]
            ((((int)in[ 4 + inPos]) ) & 255)
        | //                                          [76543210]
          //                          [________________54321098________]
            ((((int)in[ 5 + inPos]) <<  8) & 65535)
        | //                                          [76543210]
          //                                  [________32109876________________]
            ((((int)in[ 6 + inPos]) <<  16) & 16777215)
        | //                                          [76543210]
          //                                          [10987654________________________]
            ((((int)in[ 7 + inPos]) <<  24) & -1);
      out[ 2 + outPos] =
          //                                          [76543210]
          //                  [________________________76543210]
            ((((int)in[ 8 + inPos]) ) & 255)
        | //                                          [76543210]
          //                          [________________54321098________]
            ((((int)in[ 9 + inPos]) <<  8) & 65535)
        | //                                          [76543210]
          //                                  [________32109876________________]
            ((((int)in[10 + inPos]) <<  16) & 16777215)
        | //                                          [76543210]
          //                                          [10987654________________________]
            ((((int)in[11 + inPos]) <<  24) & -1);
      out[ 3 + outPos] =
          //                                          [76543210]
          //                  [________________________76543210]
            ((((int)in[12 + inPos]) ) & 255)
        | //                                          [76543210]
          //                          [________________54321098________]
            ((((int)in[13 + inPos]) <<  8) & 65535)
        | //                                          [76543210]
          //                                  [________32109876________________]
            ((((int)in[14 + inPos]) <<  16) & 16777215)
        | //                                          [76543210]
          //                                          [10987654________________________]
            ((((int)in[15 + inPos]) <<  24) & -1);
      out[ 4 + outPos] =
          //                                          [76543210]
          //                  [________________________76543210]
            ((((int)in[16 + inPos]) ) & 255)
        | //                                          [76543210]
          //                          [________________54321098________]
            ((((int)in[17 + inPos]) <<  8) & 65535)
        | //                                          [76543210]
          //                                  [________32109876________________]
            ((((int)in[18 + inPos]) <<  16) & 16777215)
        | //                                          [76543210]
          //                                          [10987654________________________]
            ((((int)in[19 + inPos]) <<  24) & -1);
      out[ 5 + outPos] =
          //                                          [76543210]
          //                  [________________________76543210]
            ((((int)in[20 + inPos]) ) & 255)
        | //                                          [76543210]
          //                          [________________54321098________]
            ((((int)in[21 + inPos]) <<  8) & 65535)
        | //                                          [76543210]
          //                                  [________32109876________________]
            ((((int)in[22 + inPos]) <<  16) & 16777215)
        | //                                          [76543210]
          //                                          [10987654________________________]
            ((((int)in[23 + inPos]) <<  24) & -1);
      out[ 6 + outPos] =
          //                                          [76543210]
          //                  [________________________76543210]
            ((((int)in[24 + inPos]) ) & 255)
        | //                                          [76543210]
          //                          [________________54321098________]
            ((((int)in[25 + inPos]) <<  8) & 65535)
        | //                                          [76543210]
          //                                  [________32109876________________]
            ((((int)in[26 + inPos]) <<  16) & 16777215)
        | //                                          [76543210]
          //                                          [10987654________________________]
            ((((int)in[27 + inPos]) <<  24) & -1);
      out[ 7 + outPos] =
          //                                          [76543210]
          //                  [________________________76543210]
            ((((int)in[28 + inPos]) ) & 255)
        | //                                          [76543210]
          //                          [________________54321098________]
            ((((int)in[29 + inPos]) <<  8) & 65535)
        | //                                          [76543210]
          //                                  [________32109876________________]
            ((((int)in[30 + inPos]) <<  16) & 16777215)
        | //                                          [76543210]
          //                                          [10987654________________________]
            ((((int)in[31 + inPos]) <<  24) & -1);
    }
    public final void unpack8Values(final ByteBuffer in, final int inPos, final int[] out, final int outPos) {
      out[ 0 + outPos] =
          //                                          [76543210]
          //                  [________________________76543210]
            ((((int)in.get( 0 + inPos)) ) & 255)
        | //                                          [76543210]
          //                          [________________54321098________]
            ((((int)in.get( 1 + inPos)) <<  8) & 65535)
        | //                                          [76543210]
          //                                  [________32109876________________]
            ((((int)in.get( 2 + inPos)) <<  16) & 16777215)
        | //                                          [76543210]
          //                                          [10987654________________________]
            ((((int)in.get( 3 + inPos)) <<  24) & -1);
      out[ 1 + outPos] =
          //                                          [76543210]
          //                  [________________________76543210]
            ((((int)in.get( 4 + inPos)) ) & 255)
        | //                                          [76543210]
          //                          [________________54321098________]
            ((((int)in.get( 5 + inPos)) <<  8) & 65535)
        | //                                          [76543210]
          //                                  [________32109876________________]
            ((((int)in.get( 6 + inPos)) <<  16) & 16777215)
        | //                                          [76543210]
          //                                          [10987654________________________]
            ((((int)in.get( 7 + inPos)) <<  24) & -1);
      out[ 2 + outPos] =
          //                                          [76543210]
          //                  [________________________76543210]
            ((((int)in.get( 8 + inPos)) ) & 255)
        | //                                          [76543210]
          //                          [________________54321098________]
            ((((int)in.get( 9 + inPos)) <<  8) & 65535)
        | //                                          [76543210]
          //                                  [________32109876________________]
            ((((int)in.get(10 + inPos)) <<  16) & 16777215)
        | //                                          [76543210]
          //                                          [10987654________________________]
            ((((int)in.get(11 + inPos)) <<  24) & -1);
      out[ 3 + outPos] =
          //                                          [76543210]
          //                  [________________________76543210]
            ((((int)in.get(12 + inPos)) ) & 255)
        | //                                          [76543210]
          //                          [________________54321098________]
            ((((int)in.get(13 + inPos)) <<  8) & 65535)
        | //                                          [76543210]
          //                                  [________32109876________________]
            ((((int)in.get(14 + inPos)) <<  16) & 16777215)
        | //                                          [76543210]
          //                                          [10987654________________________]
            ((((int)in.get(15 + inPos)) <<  24) & -1);
      out[ 4 + outPos] =
          //                                          [76543210]
          //                  [________________________76543210]
            ((((int)in.get(16 + inPos)) ) & 255)
        | //                                          [76543210]
          //                          [________________54321098________]
            ((((int)in.get(17 + inPos)) <<  8) & 65535)
        | //                                          [76543210]
          //                                  [________32109876________________]
            ((((int)in.get(18 + inPos)) <<  16) & 16777215)
        | //                                          [76543210]
          //                                          [10987654________________________]
            ((((int)in.get(19 + inPos)) <<  24) & -1);
      out[ 5 + outPos] =
          //                                          [76543210]
          //                  [________________________76543210]
            ((((int)in.get(20 + inPos)) ) & 255)
        | //                                          [76543210]
          //                          [________________54321098________]
            ((((int)in.get(21 + inPos)) <<  8) & 65535)
        | //                                          [76543210]
          //                                  [________32109876________________]
            ((((int)in.get(22 + inPos)) <<  16) & 16777215)
        | //                                          [76543210]
          //                                          [10987654________________________]
            ((((int)in.get(23 + inPos)) <<  24) & -1);
      out[ 6 + outPos] =
          //                                          [76543210]
          //                  [________________________76543210]
            ((((int)in.get(24 + inPos)) ) & 255)
        | //                                          [76543210]
          //                          [________________54321098________]
            ((((int)in.get(25 + inPos)) <<  8) & 65535)
        | //                                          [76543210]
          //                                  [________32109876________________]
            ((((int)in.get(26 + inPos)) <<  16) & 16777215)
        | //                                          [76543210]
          //                                          [10987654________________________]
            ((((int)in.get(27 + inPos)) <<  24) & -1);
      out[ 7 + outPos] =
          //                                          [76543210]
          //                  [________________________76543210]
            ((((int)in.get(28 + inPos)) ) & 255)
        | //                                          [76543210]
          //                          [________________54321098________]
            ((((int)in.get(29 + inPos)) <<  8) & 65535)
        | //                                          [76543210]
          //                                  [________32109876________________]
            ((((int)in.get(30 + inPos)) <<  16) & 16777215)
        | //                                          [76543210]
          //                                          [10987654________________________]
            ((((int)in.get(31 + inPos)) <<  24) & -1);
    }
    public final void unpack32Values(final byte[] in, final int inPos, final int[] out, final int outPos) {
      out[ 0 + outPos] =
          //                                          [76543210]
          //                  [________________________76543210]
            ((((int)in[ 0 + inPos]) ) & 255)
        | //                                          [76543210]
          //                          [________________54321098________]
            ((((int)in[ 1 + inPos]) <<  8) & 65535)
        | //                                          [76543210]
          //                                  [________32109876________________]
            ((((int)in[ 2 + inPos]) <<  16) & 16777215)
        | //                                          [76543210]
          //                                          [10987654________________________]
            ((((int)in[ 3 + inPos]) <<  24) & -1);
      out[ 1 + outPos] =
          //                                          [76543210]
          //                  [________________________76543210]
            ((((int)in[ 4 + inPos]) ) & 255)
        | //                                          [76543210]
          //                          [________________54321098________]
            ((((int)in[ 5 + inPos]) <<  8) & 65535)
        | //                                          [76543210]
          //                                  [________32109876________________]
            ((((int)in[ 6 + inPos]) <<  16) & 16777215)
        | //                                          [76543210]
          //                                          [10987654________________________]
            ((((int)in[ 7 + inPos]) <<  24) & -1);
      out[ 2 + outPos] =
          //                                          [76543210]
          //                  [________________________76543210]
            ((((int)in[ 8 + inPos]) ) & 255)
        | //                                          [76543210]
          //                          [________________54321098________]
            ((((int)in[ 9 + inPos]) <<  8) & 65535)
        | //                                          [76543210]
          //                                  [________32109876________________]
            ((((int)in[10 + inPos]) <<  16) & 16777215)
        | //                                          [76543210]
          //                                          [10987654________________________]
            ((((int)in[11 + inPos]) <<  24) & -1);
      out[ 3 + outPos] =
          //                                          [76543210]
          //                  [________________________76543210]
            ((((int)in[12 + inPos]) ) & 255)
        | //                                          [76543210]
          //                          [________________54321098________]
            ((((int)in[13 + inPos]) <<  8) & 65535)
        | //                                          [76543210]
          //                                  [________32109876________________]
            ((((int)in[14 + inPos]) <<  16) & 16777215)
        | //                                          [76543210]
          //                                          [10987654________________________]
            ((((int)in[15 + inPos]) <<  24) & -1);
      out[ 4 + outPos] =
          //                                          [76543210]
          //                  [________________________76543210]
            ((((int)in[16 + inPos]) ) & 255)
        | //                                          [76543210]
          //                          [________________54321098________]
            ((((int)in[17 + inPos]) <<  8) & 65535)
        | //                                          [76543210]
          //                                  [________32109876________________]
            ((((int)in[18 + inPos]) <<  16) & 16777215)
        | //                                          [76543210]
          //                                          [10987654________________________]
            ((((int)in[19 + inPos]) <<  24) & -1);
      out[ 5 + outPos] =
          //                                          [76543210]
          //                  [________________________76543210]
            ((((int)in[20 + inPos]) ) & 255)
        | //                                          [76543210]
          //                          [________________54321098________]
            ((((int)in[21 + inPos]) <<  8) & 65535)
        | //                                          [76543210]
          //                                  [________32109876________________]
            ((((int)in[22 + inPos]) <<  16) & 16777215)
        | //                                          [76543210]
          //                                          [10987654________________________]
            ((((int)in[23 + inPos]) <<  24) & -1);
      out[ 6 + outPos] =
          //                                          [76543210]
          //                  [________________________76543210]
            ((((int)in[24 + inPos]) ) & 255)
        | //                                          [76543210]
          //                          [________________54321098________]
            ((((int)in[25 + inPos]) <<  8) & 65535)
        | //                                          [76543210]
          //                                  [________32109876________________]
            ((((int)in[26 + inPos]) <<  16) & 16777215)
        | //                                          [76543210]
          //                                          [10987654________________________]
            ((((int)in[27 + inPos]) <<  24) & -1);
      out[ 7 + outPos] =
          //                                          [76543210]
          //                  [________________________76543210]
            ((((int)in[28 + inPos]) ) & 255)
        | //                                          [76543210]
          //                          [________________54321098________]
            ((((int)in[29 + inPos]) <<  8) & 65535)
        | //                                          [76543210]
          //                                  [________32109876________________]
            ((((int)in[30 + inPos]) <<  16) & 16777215)
        | //                                          [76543210]
          //                                          [10987654________________________]
            ((((int)in[31 + inPos]) <<  24) & -1);
      out[ 8 + outPos] =
          //                                          [76543210]
          //                  [________________________76543210]
            ((((int)in[32 + inPos]) ) & 255)
        | //                                          [76543210]
          //                          [________________54321098________]
            ((((int)in[33 + inPos]) <<  8) & 65535)
        | //                                          [76543210]
          //                                  [________32109876________________]
            ((((int)in[34 + inPos]) <<  16) & 16777215)
        | //                                          [76543210]
          //                                          [10987654________________________]
            ((((int)in[35 + inPos]) <<  24) & -1);
      out[ 9 + outPos] =
          //                                          [76543210]
          //                  [________________________76543210]
            ((((int)in[36 + inPos]) ) & 255)
        | //                                          [76543210]
          //                          [________________54321098________]
            ((((int)in[37 + inPos]) <<  8) & 65535)
        | //                                          [76543210]
          //                                  [________32109876________________]
            ((((int)in[38 + inPos]) <<  16) & 16777215)
        | //                                          [76543210]
          //                                          [10987654________________________]
            ((((int)in[39 + inPos]) <<  24) & -1);
      out[10 + outPos] =
          //                                          [76543210]
          //                  [________________________76543210]
            ((((int)in[40 + inPos]) ) & 255)
        | //                                          [76543210]
          //                          [________________54321098________]
            ((((int)in[41 + inPos]) <<  8) & 65535)
        | //                                          [76543210]
          //                                  [________32109876________________]
            ((((int)in[42 + inPos]) <<  16) & 16777215)
        | //                                          [76543210]
          //                                          [10987654________________________]
            ((((int)in[43 + inPos]) <<  24) & -1);
      out[11 + outPos] =
          //                                          [76543210]
          //                  [________________________76543210]
            ((((int)in[44 + inPos]) ) & 255)
        | //                                          [76543210]
          //                          [________________54321098________]
            ((((int)in[45 + inPos]) <<  8) & 65535)
        | //                                          [76543210]
          //                                  [________32109876________________]
            ((((int)in[46 + inPos]) <<  16) & 16777215)
        | //                                          [76543210]
          //                                          [10987654________________________]
            ((((int)in[47 + inPos]) <<  24) & -1);
      out[12 + outPos] =
          //                                          [76543210]
          //                  [________________________76543210]
            ((((int)in[48 + inPos]) ) & 255)
        | //                                          [76543210]
          //                          [________________54321098________]
            ((((int)in[49 + inPos]) <<  8) & 65535)
        | //                                          [76543210]
          //                                  [________32109876________________]
            ((((int)in[50 + inPos]) <<  16) & 16777215)
        | //                                          [76543210]
          //                                          [10987654________________________]
            ((((int)in[51 + inPos]) <<  24) & -1);
      out[13 + outPos] =
          //                                          [76543210]
          //                  [________________________76543210]
            ((((int)in[52 + inPos]) ) & 255)
        | //                                          [76543210]
          //                          [________________54321098________]
            ((((int)in[53 + inPos]) <<  8) & 65535)
        | //                                          [76543210]
          //                                  [________32109876________________]
            ((((int)in[54 + inPos]) <<  16) & 16777215)
        | //                                          [76543210]
          //                                          [10987654________________________]
            ((((int)in[55 + inPos]) <<  24) & -1);
      out[14 + outPos] =
          //                                          [76543210]
          //                  [________________________76543210]
            ((((int)in[56 + inPos]) ) & 255)
        | //                                          [76543210]
          //                          [________________54321098________]
            ((((int)in[57 + inPos]) <<  8) & 65535)
        | //                                          [76543210]
          //                                  [________32109876________________]
            ((((int)in[58 + inPos]) <<  16) & 16777215)
        | //                                          [76543210]
          //                                          [10987654________________________]
            ((((int)in[59 + inPos]) <<  24) & -1);
      out[15 + outPos] =
          //                                          [76543210]
          //                  [________________________76543210]
            ((((int)in[60 + inPos]) ) & 255)
        | //                                          [76543210]
          //                          [________________54321098________]
            ((((int)in[61 + inPos]) <<  8) & 65535)
        | //                                          [76543210]
          //                                  [________32109876________________]
            ((((int)in[62 + inPos]) <<  16) & 16777215)
        | //                                          [76543210]
          //                                          [10987654________________________]
            ((((int)in[63 + inPos]) <<  24) & -1);
      out[16 + outPos] =
          //                                          [76543210]
          //                  [________________________76543210]
            ((((int)in[64 + inPos]) ) & 255)
        | //                                          [76543210]
          //                          [________________54321098________]
            ((((int)in[65 + inPos]) <<  8) & 65535)
        | //                                          [76543210]
          //                                  [________32109876________________]
            ((((int)in[66 + inPos]) <<  16) & 16777215)
        | //                                          [76543210]
          //                                          [10987654________________________]
            ((((int)in[67 + inPos]) <<  24) & -1);
      out[17 + outPos] =
          //                                          [76543210]
          //                  [________________________76543210]
            ((((int)in[68 + inPos]) ) & 255)
        | //                                          [76543210]
          //                          [________________54321098________]
            ((((int)in[69 + inPos]) <<  8) & 65535)
        | //                                          [76543210]
          //                                  [________32109876________________]
            ((((int)in[70 + inPos]) <<  16) & 16777215)
        | //                                          [76543210]
          //                                          [10987654________________________]
            ((((int)in[71 + inPos]) <<  24) & -1);
      out[18 + outPos] =
          //                                          [76543210]
          //                  [________________________76543210]
            ((((int)in[72 + inPos]) ) & 255)
        | //                                          [76543210]
          //                          [________________54321098________]
            ((((int)in[73 + inPos]) <<  8) & 65535)
        | //                                          [76543210]
          //                                  [________32109876________________]
            ((((int)in[74 + inPos]) <<  16) & 16777215)
        | //                                          [76543210]
          //                                          [10987654________________________]
            ((((int)in[75 + inPos]) <<  24) & -1);
      out[19 + outPos] =
          //                                          [76543210]
          //                  [________________________76543210]
            ((((int)in[76 + inPos]) ) & 255)
        | //                                          [76543210]
          //                          [________________54321098________]
            ((((int)in[77 + inPos]) <<  8) & 65535)
        | //                                          [76543210]
          //                                  [________32109876________________]
            ((((int)in[78 + inPos]) <<  16) & 16777215)
        | //                                          [76543210]
          //                                          [10987654________________________]
            ((((int)in[79 + inPos]) <<  24) & -1);
      out[20 + outPos] =
          //                                          [76543210]
          //                  [________________________76543210]
            ((((int)in[80 + inPos]) ) & 255)
        | //                                          [76543210]
          //                          [________________54321098________]
            ((((int)in[81 + inPos]) <<  8) & 65535)
        | //                                          [76543210]
          //                                  [________32109876________________]
            ((((int)in[82 + inPos]) <<  16) & 16777215)
        | //                                          [76543210]
          //                                          [10987654________________________]
            ((((int)in[83 + inPos]) <<  24) & -1);
      out[21 + outPos] =
          //                                          [76543210]
          //                  [________________________76543210]
            ((((int)in[84 + inPos]) ) & 255)
        | //                                          [76543210]
          //                          [________________54321098________]
            ((((int)in[85 + inPos]) <<  8) & 65535)
        | //                                          [76543210]
          //                                  [________32109876________________]
            ((((int)in[86 + inPos]) <<  16) & 16777215)
        | //                                          [76543210]
          //                                          [10987654________________________]
            ((((int)in[87 + inPos]) <<  24) & -1);
      out[22 + outPos] =
          //                                          [76543210]
          //                  [________________________76543210]
            ((((int)in[88 + inPos]) ) & 255)
        | //                                          [76543210]
          //                          [________________54321098________]
            ((((int)in[89 + inPos]) <<  8) & 65535)
        | //                                          [76543210]
          //                                  [________32109876________________]
            ((((int)in[90 + inPos]) <<  16) & 16777215)
        | //                                          [76543210]
          //                                          [10987654________________________]
            ((((int)in[91 + inPos]) <<  24) & -1);
      out[23 + outPos] =
          //                                          [76543210]
          //                  [________________________76543210]
            ((((int)in[92 + inPos]) ) & 255)
        | //                                          [76543210]
          //                          [________________54321098________]
            ((((int)in[93 + inPos]) <<  8) & 65535)
        | //                                          [76543210]
          //                                  [________32109876________________]
            ((((int)in[94 + inPos]) <<  16) & 16777215)
        | //                                          [76543210]
          //                                          [10987654________________________]
            ((((int)in[95 + inPos]) <<  24) & -1);
      out[24 + outPos] =
          //                                          [76543210]
          //                  [________________________76543210]
            ((((int)in[96 + inPos]) ) & 255)
        | //                                          [76543210]
          //                          [________________54321098________]
            ((((int)in[97 + inPos]) <<  8) & 65535)
        | //                                          [76543210]
          //                                  [________32109876________________]
            ((((int)in[98 + inPos]) <<  16) & 16777215)
        | //                                          [76543210]
          //                                          [10987654________________________]
            ((((int)in[99 + inPos]) <<  24) & -1);
      out[25 + outPos] =
          //                                          [76543210]
          //                  [________________________76543210]
            ((((int)in[100 + inPos]) ) & 255)
        | //                                          [76543210]
          //                          [________________54321098________]
            ((((int)in[101 + inPos]) <<  8) & 65535)
        | //                                          [76543210]
          //                                  [________32109876________________]
            ((((int)in[102 + inPos]) <<  16) & 16777215)
        | //                                          [76543210]
          //                                          [10987654________________________]
            ((((int)in[103 + inPos]) <<  24) & -1);
      out[26 + outPos] =
          //                                          [76543210]
          //                  [________________________76543210]
            ((((int)in[104 + inPos]) ) & 255)
        | //                                          [76543210]
          //                          [________________54321098________]
            ((((int)in[105 + inPos]) <<  8) & 65535)
        | //                                          [76543210]
          //                                  [________32109876________________]
            ((((int)in[106 + inPos]) <<  16) & 16777215)
        | //                                          [76543210]
          //                                          [10987654________________________]
            ((((int)in[107 + inPos]) <<  24) & -1);
      out[27 + outPos] =
          //                                          [76543210]
          //                  [________________________76543210]
            ((((int)in[108 + inPos]) ) & 255)
        | //                                          [76543210]
          //                          [________________54321098________]
            ((((int)in[109 + inPos]) <<  8) & 65535)
        | //                                          [76543210]
          //                                  [________32109876________________]
            ((((int)in[110 + inPos]) <<  16) & 16777215)
        | //                                          [76543210]
          //                                          [10987654________________________]
            ((((int)in[111 + inPos]) <<  24) & -1);
      out[28 + outPos] =
          //                                          [76543210]
          //                  [________________________76543210]
            ((((int)in[112 + inPos]) ) & 255)
        | //                                          [76543210]
          //                          [________________54321098________]
            ((((int)in[113 + inPos]) <<  8) & 65535)
        | //                                          [76543210]
          //                                  [________32109876________________]
            ((((int)in[114 + inPos]) <<  16) & 16777215)
        | //                                          [76543210]
          //                                          [10987654________________________]
            ((((int)in[115 + inPos]) <<  24) & -1);
      out[29 + outPos] =
          //                                          [76543210]
          //                  [________________________76543210]
            ((((int)in[116 + inPos]) ) & 255)
        | //                                          [76543210]
          //                          [________________54321098________]
            ((((int)in[117 + inPos]) <<  8) & 65535)
        | //                                          [76543210]
          //                                  [________32109876________________]
            ((((int)in[118 + inPos]) <<  16) & 16777215)
        | //                                          [76543210]
          //                                          [10987654________________________]
            ((((int)in[119 + inPos]) <<  24) & -1);
      out[30 + outPos] =
          //                                          [76543210]
          //                  [________________________76543210]
            ((((int)in[120 + inPos]) ) & 255)
        | //                                          [76543210]
          //                          [________________54321098________]
            ((((int)in[121 + inPos]) <<  8) & 65535)
        | //                                          [76543210]
          //                                  [________32109876________________]
            ((((int)in[122 + inPos]) <<  16) & 16777215)
        | //                                          [76543210]
          //                                          [10987654________________________]
            ((((int)in[123 + inPos]) <<  24) & -1);
      out[31 + outPos] =
          //                                          [76543210]
          //                  [________________________76543210]
            ((((int)in[124 + inPos]) ) & 255)
        | //                                          [76543210]
          //                          [________________54321098________]
            ((((int)in[125 + inPos]) <<  8) & 65535)
        | //                                          [76543210]
          //                                  [________32109876________________]
            ((((int)in[126 + inPos]) <<  16) & 16777215)
        | //                                          [76543210]
          //                                          [10987654________________________]
            ((((int)in[127 + inPos]) <<  24) & -1);
    }
    public final void unpack32Values(final ByteBuffer in, final int inPos, final int[] out, final int outPos) {
      out[ 0 + outPos] =
          //                                          [76543210]
          //                  [________________________76543210]
            ((((int)in.get( 0 + inPos)) ) & 255)
        | //                                          [76543210]
          //                          [________________54321098________]
            ((((int)in.get( 1 + inPos)) <<  8) & 65535)
        | //                                          [76543210]
          //                                  [________32109876________________]
            ((((int)in.get( 2 + inPos)) <<  16) & 16777215)
        | //                                          [76543210]
          //                                          [10987654________________________]
            ((((int)in.get( 3 + inPos)) <<  24) & -1);
      out[ 1 + outPos] =
          //                                          [76543210]
          //                  [________________________76543210]
            ((((int)in.get( 4 + inPos)) ) & 255)
        | //                                          [76543210]
          //                          [________________54321098________]
            ((((int)in.get( 5 + inPos)) <<  8) & 65535)
        | //                                          [76543210]
          //                                  [________32109876________________]
            ((((int)in.get( 6 + inPos)) <<  16) & 16777215)
        | //                                          [76543210]
          //                                          [10987654________________________]
            ((((int)in.get( 7 + inPos)) <<  24) & -1);
      out[ 2 + outPos] =
          //                                          [76543210]
          //                  [________________________76543210]
            ((((int)in.get( 8 + inPos)) ) & 255)
        | //                                          [76543210]
          //                          [________________54321098________]
            ((((int)in.get( 9 + inPos)) <<  8) & 65535)
        | //                                          [76543210]
          //                                  [________32109876________________]
            ((((int)in.get(10 + inPos)) <<  16) & 16777215)
        | //                                          [76543210]
          //                                          [10987654________________________]
            ((((int)in.get(11 + inPos)) <<  24) & -1);
      out[ 3 + outPos] =
          //                                          [76543210]
          //                  [________________________76543210]
            ((((int)in.get(12 + inPos)) ) & 255)
        | //                                          [76543210]
          //                          [________________54321098________]
            ((((int)in.get(13 + inPos)) <<  8) & 65535)
        | //                                          [76543210]
          //                                  [________32109876________________]
            ((((int)in.get(14 + inPos)) <<  16) & 16777215)
        | //                                          [76543210]
          //                                          [10987654________________________]
            ((((int)in.get(15 + inPos)) <<  24) & -1);
      out[ 4 + outPos] =
          //                                          [76543210]
          //                  [________________________76543210]
            ((((int)in.get(16 + inPos)) ) & 255)
        | //                                          [76543210]
          //                          [________________54321098________]
            ((((int)in.get(17 + inPos)) <<  8) & 65535)
        | //                                          [76543210]
          //                                  [________32109876________________]
            ((((int)in.get(18 + inPos)) <<  16) & 16777215)
        | //                                          [76543210]
          //                                          [10987654________________________]
            ((((int)in.get(19 + inPos)) <<  24) & -1);
      out[ 5 + outPos] =
          //                                          [76543210]
          //                  [________________________76543210]
            ((((int)in.get(20 + inPos)) ) & 255)
        | //                                          [76543210]
          //                          [________________54321098________]
            ((((int)in.get(21 + inPos)) <<  8) & 65535)
        | //                                          [76543210]
          //                                  [________32109876________________]
            ((((int)in.get(22 + inPos)) <<  16) & 16777215)
        | //                                          [76543210]
          //                                          [10987654________________________]
            ((((int)in.get(23 + inPos)) <<  24) & -1);
      out[ 6 + outPos] =
          //                                          [76543210]
          //                  [________________________76543210]
            ((((int)in.get(24 + inPos)) ) & 255)
        | //                                          [76543210]
          //                          [________________54321098________]
            ((((int)in.get(25 + inPos)) <<  8) & 65535)
        | //                                          [76543210]
          //                                  [________32109876________________]
            ((((int)in.get(26 + inPos)) <<  16) & 16777215)
        | //                                          [76543210]
          //                                          [10987654________________________]
            ((((int)in.get(27 + inPos)) <<  24) & -1);
      out[ 7 + outPos] =
          //                                          [76543210]
          //                  [________________________76543210]
            ((((int)in.get(28 + inPos)) ) & 255)
        | //                                          [76543210]
          //                          [________________54321098________]
            ((((int)in.get(29 + inPos)) <<  8) & 65535)
        | //                                          [76543210]
          //                                  [________32109876________________]
            ((((int)in.get(30 + inPos)) <<  16) & 16777215)
        | //                                          [76543210]
          //                                          [10987654________________________]
            ((((int)in.get(31 + inPos)) <<  24) & -1);
      out[ 8 + outPos] =
          //                                          [76543210]
          //                  [________________________76543210]
            ((((int)in.get(32 + inPos)) ) & 255)
        | //                                          [76543210]
          //                          [________________54321098________]
            ((((int)in.get(33 + inPos)) <<  8) & 65535)
        | //                                          [76543210]
          //                                  [________32109876________________]
            ((((int)in.get(34 + inPos)) <<  16) & 16777215)
        | //                                          [76543210]
          //                                          [10987654________________________]
            ((((int)in.get(35 + inPos)) <<  24) & -1);
      out[ 9 + outPos] =
          //                                          [76543210]
          //                  [________________________76543210]
            ((((int)in.get(36 + inPos)) ) & 255)
        | //                                          [76543210]
          //                          [________________54321098________]
            ((((int)in.get(37 + inPos)) <<  8) & 65535)
        | //                                          [76543210]
          //                                  [________32109876________________]
            ((((int)in.get(38 + inPos)) <<  16) & 16777215)
        | //                                          [76543210]
          //                                          [10987654________________________]
            ((((int)in.get(39 + inPos)) <<  24) & -1);
      out[10 + outPos] =
          //                                          [76543210]
          //                  [________________________76543210]
            ((((int)in.get(40 + inPos)) ) & 255)
        | //                                          [76543210]
          //                          [________________54321098________]
            ((((int)in.get(41 + inPos)) <<  8) & 65535)
        | //                                          [76543210]
          //                                  [________32109876________________]
            ((((int)in.get(42 + inPos)) <<  16) & 16777215)
        | //                                          [76543210]
          //                                          [10987654________________________]
            ((((int)in.get(43 + inPos)) <<  24) & -1);
      out[11 + outPos] =
          //                                          [76543210]
          //                  [________________________76543210]
            ((((int)in.get(44 + inPos)) ) & 255)
        | //                                          [76543210]
          //                          [________________54321098________]
            ((((int)in.get(45 + inPos)) <<  8) & 65535)
        | //                                          [76543210]
          //                                  [________32109876________________]
            ((((int)in.get(46 + inPos)) <<  16) & 16777215)
        | //                                          [76543210]
          //                                          [10987654________________________]
            ((((int)in.get(47 + inPos)) <<  24) & -1);
      out[12 + outPos] =
          //                                          [76543210]
          //                  [________________________76543210]
            ((((int)in.get(48 + inPos)) ) & 255)
        | //                                          [76543210]
          //                          [________________54321098________]
            ((((int)in.get(49 + inPos)) <<  8) & 65535)
        | //                                          [76543210]
          //                                  [________32109876________________]
            ((((int)in.get(50 + inPos)) <<  16) & 16777215)
        | //                                          [76543210]
          //                                          [10987654________________________]
            ((((int)in.get(51 + inPos)) <<  24) & -1);
      out[13 + outPos] =
          //                                          [76543210]
          //                  [________________________76543210]
            ((((int)in.get(52 + inPos)) ) & 255)
        | //                                          [76543210]
          //                          [________________54321098________]
            ((((int)in.get(53 + inPos)) <<  8) & 65535)
        | //                                          [76543210]
          //                                  [________32109876________________]
            ((((int)in.get(54 + inPos)) <<  16) & 16777215)
        | //                                          [76543210]
          //                                          [10987654________________________]
            ((((int)in.get(55 + inPos)) <<  24) & -1);
      out[14 + outPos] =
          //                                          [76543210]
          //                  [________________________76543210]
            ((((int)in.get(56 + inPos)) ) & 255)
        | //                                          [76543210]
          //                          [________________54321098________]
            ((((int)in.get(57 + inPos)) <<  8) & 65535)
        | //                                          [76543210]
          //                                  [________32109876________________]
            ((((int)in.get(58 + inPos)) <<  16) & 16777215)
        | //                                          [76543210]
          //                                          [10987654________________________]
            ((((int)in.get(59 + inPos)) <<  24) & -1);
      out[15 + outPos] =
          //                                          [76543210]
          //                  [________________________76543210]
            ((((int)in.get(60 + inPos)) ) & 255)
        | //                                          [76543210]
          //                          [________________54321098________]
            ((((int)in.get(61 + inPos)) <<  8) & 65535)
        | //                                          [76543210]
          //                                  [________32109876________________]
            ((((int)in.get(62 + inPos)) <<  16) & 16777215)
        | //                                          [76543210]
          //                                          [10987654________________________]
            ((((int)in.get(63 + inPos)) <<  24) & -1);
      out[16 + outPos] =
          //                                          [76543210]
          //                  [________________________76543210]
            ((((int)in.get(64 + inPos)) ) & 255)
        | //                                          [76543210]
          //                          [________________54321098________]
            ((((int)in.get(65 + inPos)) <<  8) & 65535)
        | //                                          [76543210]
          //                                  [________32109876________________]
            ((((int)in.get(66 + inPos)) <<  16) & 16777215)
        | //                                          [76543210]
          //                                          [10987654________________________]
            ((((int)in.get(67 + inPos)) <<  24) & -1);
      out[17 + outPos] =
          //                                          [76543210]
          //                  [________________________76543210]
            ((((int)in.get(68 + inPos)) ) & 255)
        | //                                          [76543210]
          //                          [________________54321098________]
            ((((int)in.get(69 + inPos)) <<  8) & 65535)
        | //                                          [76543210]
          //                                  [________32109876________________]
            ((((int)in.get(70 + inPos)) <<  16) & 16777215)
        | //                                          [76543210]
          //                                          [10987654________________________]
            ((((int)in.get(71 + inPos)) <<  24) & -1);
      out[18 + outPos] =
          //                                          [76543210]
          //                  [________________________76543210]
            ((((int)in.get(72 + inPos)) ) & 255)
        | //                                          [76543210]
          //                          [________________54321098________]
            ((((int)in.get(73 + inPos)) <<  8) & 65535)
        | //                                          [76543210]
          //                                  [________32109876________________]
            ((((int)in.get(74 + inPos)) <<  16) & 16777215)
        | //                                          [76543210]
          //                                          [10987654________________________]
            ((((int)in.get(75 + inPos)) <<  24) & -1);
      out[19 + outPos] =
          //                                          [76543210]
          //                  [________________________76543210]
            ((((int)in.get(76 + inPos)) ) & 255)
        | //                                          [76543210]
          //                          [________________54321098________]
            ((((int)in.get(77 + inPos)) <<  8) & 65535)
        | //                                          [76543210]
          //                                  [________32109876________________]
            ((((int)in.get(78 + inPos)) <<  16) & 16777215)
        | //                                          [76543210]
          //                                          [10987654________________________]
            ((((int)in.get(79 + inPos)) <<  24) & -1);
      out[20 + outPos] =
          //                                          [76543210]
          //                  [________________________76543210]
            ((((int)in.get(80 + inPos)) ) & 255)
        | //                                          [76543210]
          //                          [________________54321098________]
            ((((int)in.get(81 + inPos)) <<  8) & 65535)
        | //                                          [76543210]
          //                                  [________32109876________________]
            ((((int)in.get(82 + inPos)) <<  16) & 16777215)
        | //                                          [76543210]
          //                                          [10987654________________________]
            ((((int)in.get(83 + inPos)) <<  24) & -1);
      out[21 + outPos] =
          //                                          [76543210]
          //                  [________________________76543210]
            ((((int)in.get(84 + inPos)) ) & 255)
        | //                                          [76543210]
          //                          [________________54321098________]
            ((((int)in.get(85 + inPos)) <<  8) & 65535)
        | //                                          [76543210]
          //                                  [________32109876________________]
            ((((int)in.get(86 + inPos)) <<  16) & 16777215)
        | //                                          [76543210]
          //                                          [10987654________________________]
            ((((int)in.get(87 + inPos)) <<  24) & -1);
      out[22 + outPos] =
          //                                          [76543210]
          //                  [________________________76543210]
            ((((int)in.get(88 + inPos)) ) & 255)
        | //                                          [76543210]
          //                          [________________54321098________]
            ((((int)in.get(89 + inPos)) <<  8) & 65535)
        | //                                          [76543210]
          //                                  [________32109876________________]
            ((((int)in.get(90 + inPos)) <<  16) & 16777215)
        | //                                          [76543210]
          //                                          [10987654________________________]
            ((((int)in.get(91 + inPos)) <<  24) & -1);
      out[23 + outPos] =
          //                                          [76543210]
          //                  [________________________76543210]
            ((((int)in.get(92 + inPos)) ) & 255)
        | //                                          [76543210]
          //                          [________________54321098________]
            ((((int)in.get(93 + inPos)) <<  8) & 65535)
        | //                                          [76543210]
          //                                  [________32109876________________]
            ((((int)in.get(94 + inPos)) <<  16) & 16777215)
        | //                                          [76543210]
          //                                          [10987654________________________]
            ((((int)in.get(95 + inPos)) <<  24) & -1);
      out[24 + outPos] =
          //                                          [76543210]
          //                  [________________________76543210]
            ((((int)in.get(96 + inPos)) ) & 255)
        | //                                          [76543210]
          //                          [________________54321098________]
            ((((int)in.get(97 + inPos)) <<  8) & 65535)
        | //                                          [76543210]
          //                                  [________32109876________________]
            ((((int)in.get(98 + inPos)) <<  16) & 16777215)
        | //                                          [76543210]
          //                                          [10987654________________________]
            ((((int)in.get(99 + inPos)) <<  24) & -1);
      out[25 + outPos] =
          //                                          [76543210]
          //                  [________________________76543210]
            ((((int)in.get(100 + inPos)) ) & 255)
        | //                                          [76543210]
          //                          [________________54321098________]
            ((((int)in.get(101 + inPos)) <<  8) & 65535)
        | //                                          [76543210]
          //                                  [________32109876________________]
            ((((int)in.get(102 + inPos)) <<  16) & 16777215)
        | //                                          [76543210]
          //                                          [10987654________________________]
            ((((int)in.get(103 + inPos)) <<  24) & -1);
      out[26 + outPos] =
          //                                          [76543210]
          //                  [________________________76543210]
            ((((int)in.get(104 + inPos)) ) & 255)
        | //                                          [76543210]
          //                          [________________54321098________]
            ((((int)in.get(105 + inPos)) <<  8) & 65535)
        | //                                          [76543210]
          //                                  [________32109876________________]
            ((((int)in.get(106 + inPos)) <<  16) & 16777215)
        | //                                          [76543210]
          //                                          [10987654________________________]
            ((((int)in.get(107 + inPos)) <<  24) & -1);
      out[27 + outPos] =
          //                                          [76543210]
          //                  [________________________76543210]
            ((((int)in.get(108 + inPos)) ) & 255)
        | //                                          [76543210]
          //                          [________________54321098________]
            ((((int)in.get(109 + inPos)) <<  8) & 65535)
        | //                                          [76543210]
          //                                  [________32109876________________]
            ((((int)in.get(110 + inPos)) <<  16) & 16777215)
        | //                                          [76543210]
          //                                          [10987654________________________]
            ((((int)in.get(111 + inPos)) <<  24) & -1);
      out[28 + outPos] =
          //                                          [76543210]
          //                  [________________________76543210]
            ((((int)in.get(112 + inPos)) ) & 255)
        | //                                          [76543210]
          //                          [________________54321098________]
            ((((int)in.get(113 + inPos)) <<  8) & 65535)
        | //                                          [76543210]
          //                                  [________32109876________________]
            ((((int)in.get(114 + inPos)) <<  16) & 16777215)
        | //                                          [76543210]
          //                                          [10987654________________________]
            ((((int)in.get(115 + inPos)) <<  24) & -1);
      out[29 + outPos] =
          //                                          [76543210]
          //                  [________________________76543210]
            ((((int)in.get(116 + inPos)) ) & 255)
        | //                                          [76543210]
          //                          [________________54321098________]
            ((((int)in.get(117 + inPos)) <<  8) & 65535)
        | //                                          [76543210]
          //                                  [________32109876________________]
            ((((int)in.get(118 + inPos)) <<  16) & 16777215)
        | //                                          [76543210]
          //                                          [10987654________________________]
            ((((int)in.get(119 + inPos)) <<  24) & -1);
      out[30 + outPos] =
          //                                          [76543210]
          //                  [________________________76543210]
            ((((int)in.get(120 + inPos)) ) & 255)
        | //                                          [76543210]
          //                          [________________54321098________]
            ((((int)in.get(121 + inPos)) <<  8) & 65535)
        | //                                          [76543210]
          //                                  [________32109876________________]
            ((((int)in.get(122 + inPos)) <<  16) & 16777215)
        | //                                          [76543210]
          //                                          [10987654________________________]
            ((((int)in.get(123 + inPos)) <<  24) & -1);
      out[31 + outPos] =
          //                                          [76543210]
          //                  [________________________76543210]
            ((((int)in.get(124 + inPos)) ) & 255)
        | //                                          [76543210]
          //                          [________________54321098________]
            ((((int)in.get(125 + inPos)) <<  8) & 65535)
        | //                                          [76543210]
          //                                  [________32109876________________]
            ((((int)in.get(126 + inPos)) <<  16) & 16777215)
        | //                                          [76543210]
          //                                          [10987654________________________]
            ((((int)in.get(127 + inPos)) <<  24) & -1);
    }
  }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy