public Buffer apply(OUT out) {
Buffer buff = delegate.encoder().apply(out);
try {
ByteArrayOutputStream bout = new ByteArrayOutputStream();
OutputStream zout = createOutputStream(bout);
zout.write(buff.asBytes());
zout.flush();
bout.flush();
zout.close();
return Buffer.wrap(bout.toByteArray());
} catch(IOException e) {