anchor.diff:      procedure AfterDeSerialize;
       procedure BeforeDeSerialize;
     published
  -    property AnyOf: TStrings read FAnyOf write SetAnyOf;
  -    property AllOf: TStrings read FAllOf write SetAllOf;
  -    property NoneOf: TStrings read FNoneOf write SetNoneOf;
  +    property AnyOf: TStrings read FAnyOf write SetAnyOf stored isAnyOfStored;
  +    property AllOf: TStrings read FAllOf write SetAllOf stored isAllOfStored;
  +    property NoneOf: TStrings read FNoneOf write SetNoneOf stored isNoneOfStored;
     end;
   
     {$pop}
  
positive.code:     FAllOf: TStrings;
      FAnyOf: TStrings;
      FNoneOf: TStrings;
      procedure SetAllOf(AValue: TStrings);
      procedure SetAnyOf(AValue: TStrings);
      procedure SetNoneOf(AValue: TStrings);
  
negative.code: begin
    if FAllOf=AValue then Exit;
    FAllOf:=AValue;
  end;
  
  function TLogicalIDCondition.isAllOfStored: Boolean;
  begin
    Result := FAllOf.Count >0;
  end;
  
  function TLogicalIDCondition.isAnyOfStored: Boolean;
  begin
    Result := FAnyOf.Count >0;
  end;
  
  function TLogicalIDCondition.isNoneOfStored: Boolean;
  begin
    Result := FNoneOf.Count >0;
  end;
  
  procedure TLogicalIDCondition.SetAnyOf(AValue: TStrings);
  