anchor.diff:      LoadStream.Read(fQueue[I].DemandID);
       LoadStream.Read(fQueue[I].JobStatus, SizeOf(fQueue[I].JobStatus));
     end;
  +
  +  {$IFDEF WDC}
  +  fOfferToDemandCache.Clear;
  +  LoadStream.Read(Count);
  +  for I := 0 to Count - 1 do
  +  begin
  +    LoadStream.Read(Key.FromUID);
  +    LoadStream.Read(Key.ToUID);
  +    LoadStream.Read(Value);
  +    fOfferToDemandCache.Add(Key, Value);
  +  end;
  +
  +  fSerfToOfferCache.Clear;
  +  LoadStream.Read(Count);
  +  for I := 0 to Count - 1 do
  +  begin
  +    LoadStream.Read(Key.FromUID);
  +    LoadStream.Read(Key.ToUID);
  +    LoadStream.Read(Value);
  +    fSerfToOfferCache.Add(Key, Value);
  +  end;
  +  {$ENDIF}
   end;
   
   
  
positive.code: procedure TKMDeliveries.Save(SaveStream: TKMemoryStream);
  var
    I: Integer;
  begin
    SaveStream.WriteA('Deliveries');
    SaveStream.Write(fOfferCount);
  
negative.code:     SaveStream.Write(fQueue[I].DemandID);
      SaveStream.Write(fQueue[I].JobStatus, SizeOf(fQueue[I].JobStatus));
    end;
  
    {$IFDEF WDC}
    SaveStream.Write(fOfferToDemandCache.Count);
    for Item in fOfferToDemandCache do
    begin
      SaveStream.Write(Item.Key.FromUID);
      SaveStream.Write(Item.Key.ToUID);
      SaveStream.Write(Item.Value);
    end;
  
    SaveStream.Write(fSerfToOfferCache.Count);
    for Item in fSerfToOfferCache do
    begin
      SaveStream.Write(Item.Key.FromUID);
      SaveStream.Write(Item.Key.ToUID);
      SaveStream.Write(Item.Value);
    end;
    {$ENDIF}
  end;
  
  
  procedure TKMDeliveries.Load(LoadStream: TKMemoryStream);
  var
    I, Count: Integer;
    Key: TKMDeliveryBidKey;
    Value: Single;
  begin
    {$IFDEF WDC}
    if CACHE_DELIVERY_BIDS then
  