anchor.diff:              {?FILE_TYPE_FLAG, Filename}
       end,
       file_header(FinalFilename, byte_size(Filename), FileSize, Mode, Timestamp, Type).
  -
  -
  -%% @private
  --spec data_padding(state() | non_neg_integer()) -> bytes().
  -data_padding(#state{current_file_bytes = FileSize}) ->
  -    data_padding(FileSize);
  -data_padding(FileSize) when FileSize rem ?BLOCK_SIZE == 0 -> 
  -    <<>>;
  -data_padding(FileSize) ->
  -    BytesToFill = (?BLOCK_SIZE - FileSize rem ?BLOCK_SIZE),
  -    binary:copy(?NUL, BytesToFill).
  -
  -
  -%% @private
  --spec ending_marker() -> bytes().
  -ending_marker() ->
  -    binary:copy(?NUL, 2 * ?BLOCK_SIZE).
   
   %% @private
   -spec file_header(binary(), FilenameSize :: non_neg_integer(), FileSize :: non_neg_integer(), 
  
positive.code: 
  
  %% @private
  -spec deflate(state(), binary()) -> binary().
  deflate(State, Data) ->
      deflate(State, Data, none).
  
  %% @private
  -spec deflate(state(), binary(), zlib:zflush()) -> binary().
  deflate(#state{zstream = undefined}, Data, _Flush) ->
      Data;
  deflate(#state{zstream = ZStream}, Data, Flush) ->
      iolist_to_binary(zlib:deflate(ZStream, Data, Flush)).
  
negative.code: -define(ZLIB_STRATEGY, default).
  
  -record(state, {
      buffer = <<>> :: binary(),
      current_file_size = 0 :: non_neg_integer(),
      zstream = undefined :: zlib:zstream()
  }).
  
  
  -opaque state() :: #state{}.
  -type bytes() :: binary().
  -type options() :: #{
      gzip => boolean()
  