anchor.diff:  
   
   {TKMFavouriteMaps}
  -constructor TKMFavouriteMaps.Create;
  +constructor TKMMapsCRCList.Create;
   begin
     inherited;
  -  fFavouriteMPMaps := TStringList.Create;
  -  fFavouriteMPMaps.Delimiter       := FAVOURITE_MAPS_DELIMITER;
  -  fFavouriteMPMaps.StrictDelimiter := True; // Requires D2006 or newer.
  -end;
  -
  -
  -destructor TKMFavouriteMaps.Destroy;
  -begin
  -  FreeAndNil(fFavouriteMPMaps);
  +  fMapsList := TStringList.Create;
  +  fMapsList.Delimiter       := FAVOURITE_MAPS_DELIMITER;
  +  fMapsList.StrictDelimiter := True; // Requires D2006 or newer.
  +end;
  +
  +
  +destructor TKMMapsCRCList.Destroy;
  +begin
  +  FreeAndNil(fMapsList);
     inherited;
   end;
   
   
  -procedure TKMFavouriteMaps.FavoriteMapsUpdated;
  +procedure TKMMapsCRCList.FavoriteMapsUpdated;
   begin
     if Assigned(fOnMapsUpdate) then
       fOnMapsUpdate(PackToString);
   end;
   
   
  -procedure TKMFavouriteMaps.LoadFromString(const aString: UnicodeString);
  +procedure TKMMapsCRCList.LoadFromString(const aString: UnicodeString);
   var I: Integer;
       MapCRC : Int64;
       StringList: TStringList;
   begin
  -  fFavouriteMPMaps.Clear;
  +  fMapsList.Clear;
     StringList := TStringList.Create;
     StringList.Delimiter := FAVOURITE_MAPS_DELIMITER;
     StringList.DelimitedText   := Trim(aString);
  
positive.code:     fMenu_SPSaveFileName: UnicodeString;
      fMenu_LobbyMapType: Byte;
  
      fFavouriteMaps: TKMFavouriteMaps;
  
      //GFX
      procedure SetBrightness(aValue: Byte);
  
negative.code:   end;
  var I: Integer;
  begin
    I := fMapsList.Count - 1;
    //We must check, that all values from favorites are presented in maps CRC array. If not - then remove it from favourites
    while (fMapsList.Count > 0) and (I >= 0) do
    begin
      if not ArrayContains(StrToInt64(fMapsList[I])) then
      begin
        fMapsList.Delete(I);
        FavoriteMapsUpdated;
      end;
  
  