whole_func_string: function getIndexOfSmallestSum(arrays) {
      var i = 0,
          len = arrays.length,
          sum,
          min,
          ind;
  
      while (i < len) {
        sum = absSum(arrays[i].slice(1));
  
        if (sum < min || !min) {
          min = sum;
          ind = i;
        }
  
        i++;
      }
  
      return ind;
    }
func_code_string: function getIndexOfSmallestSum(arrays) {
      var i = 0,
          len = arrays.length,
          sum,
          min,
          ind;
  
      while (i < len) {
        sum = absSum(arrays[i].slice(1));
  
        if (sum < min || !min) {
          min = sum;
          ind = i;
        }
  
        i++;
      }
  
      return ind;
    }
func_documentation_string: /*
  @see http://www.w3.org/TR/PNG-Chunks.html
  
  Color    Allowed      Interpretation
  Type     Bit Depths
  0       1,2,4,8,16  Each pixel is a grayscale sample.
  2       8,16        Each pixel is an R,G,B triple.
  3       1,2,4,8     Each pixel is a palette index;
  a PLTE chunk must appear.
  4       8,16        Each pixel is a grayscale sample,
  followed by an alpha sample.
  6       8,16        Each pixel is an R,G,B triple,
  followed by an alpha sample.
   /*
  PNG filter method types
  
  @see http://www.w3.org/TR/PNG-Filters.html
  @see http://www.libpng.org/pub/png/book/chapter09.html
  
  This is what the value 'Predictor' in decode params relates to
  
  15 is "optimal prediction", which means the prediction algorithm can change from line to line.
  In that case, you actually have to read the first byte off each line for the prediction algorthim (which should be 0-4, corresponding to PDF 10-14) and select the appropriate unprediction algorithm based on that byte.
  
  0       None
  1       Sub
  2       Up
  3       Average
  4       Paeth