anchor.diff:      return webp;
     }
   
  +  TiffDecoder tiff = new TiffDecoder();
  +  if (tiff.isValidFile(bytes)) {
  +    return tiff;
  +  }
  +
     return null;
   }
   
  
positive.code:     return decodeWebP(bytes);
    }
    if (n.endsWith('.gif')) {
      return decodeGif(bytes);
    }
    return null;
  
negative.code: List<int> encodeGifAnimation(Animation anim) {
    return new GifEncoder().encodeAnimation(anim);
  }
  
  /**
   * Decode a TIFF formatted image.
   */
  Image decodeTiff(List<int> bytes) {
    return new TiffDecoder().decodeImage(bytes);
  }
  
  /**
   * Decode an multi-image (animated) TIFF file.  If the tiff doesn't have
   * multiple images, the animation will contain a single frame with the tiff's
   * image.
   */
  Animation decodeTiffAnimation(List<int> bytes) {
    return new TiffDecoder().decodeAnimation(bytes);
  }
  