public override object Read(BinaryReader reader, byte version)
{
var r = new ExecutionReport();
r.DateTime = new DateTime(reader.ReadInt64());
r.OrderId = reader.ReadInt32();
r.ClOrderId = reader.ReadString();
r.ProviderOrderId = reader.ReadString();
r.InstrumentId = reader.ReadInt32();
r.CurrencyId = reader.ReadByte();
r.ClientId = reader.ReadInt32();
r.ExecType = (ExecType)reader.ReadByte();
r.OrdStatus = (OrderStatus)reader.ReadByte();
r.OrdType = (OrderType)reader.ReadByte();
r.Side = (OrderSide)reader.ReadByte();
r.TimeInForce = (TimeInForce)reader.ReadByte();
r.ExpireTime = new DateTime(reader.ReadInt64());
r.Price = reader.ReadDouble();
r.StopPx = reader.ReadDouble();
r.OrdQty = reader.ReadDouble();
r.CumQty = reader.ReadDouble();
r.LeavesQty = reader.ReadDouble();
r.LastPx = reader.ReadDouble();
r.LastQty = reader.ReadDouble();
r.Commission = reader.ReadDouble();
r.Text = reader.ReadString();
r.ExecId = reader.ReadString();
if (reader.ReadBoolean())
r.Fields = (ObjectTable)this.streamerManager.Deserialize(reader);
return r;
}