code: private void createHuffmanDecodingTables(final int alphaSize,
        final int nGroups) {
      final Data dataShadow = this.data;
      final char[][] len = dataShadow.temp_charArray2d;
      final int[] minLens = dataShadow.minLens;
      final int[][] limit = dataShadow.limit;
      final int[][] base = dataShadow.base;
      final int[][] perm = dataShadow.perm;
  
      for (int t = 0; t < nGroups; t++) {
        int minLen = 32;
        int maxLen = 0;
        final char[] len_t = len[t];
        for (int i = alphaSize; --i >= 0;) {
          final char lent = len_t[i];
          if (lent > maxLen) {
            maxLen = lent;
          }
          if (lent < minLen) {
            minLen = lent;
          }
        }
        hbCreateDecodeTables(limit[t], base[t], perm[t], len[t], minLen,
            maxLen, alphaSize);
        minLens[t] = minLen;
      }
    }
docs: Called by recvDecodingTables() exclusively.