anchor.diff:  
   destructor TmFilter.Destroy;
   begin
  +  FreeAndNil(FValuesAsStrings);
  +  FreeAndNil(FValuesDictionary);
     inherited Destroy;
  +end;
  +
  +procedure TmFilter.StartEvaluation;
  +begin
  +  FreeAndNil(FValuesAsStrings);
  +  FreeAndnil(FValuesDictionary);
  +  FValuesAsStrings := TStringList.Create;
  +  FValuesDictionary := TmStringDictionary.Create();
   end;
   
   function TmFilter.Evaluate(aActualValue: Variant): boolean;
  
positive.code:     function Add : TmFilter; overload;
      procedure Add(aFilter : TmFilter); overload;
      procedure Clear;
      function Count : integer;
      function Get(aIndex : integer) : TmFilter;
      procedure CopyFrom (aSource : TmFilters);
    end;
  
  implementation
  
negative.code:       end;
      foIn:
        begin
          if (FValuesAsStrings.Count = 0) then
          begin
            ConvertVariantToStringList(FValue, FValuesAsStrings);
            for i := 0 to FValuesAsStrings.Count - 1 do
            begin
              str := lowercase(FValuesAsStrings.Strings[i]);
  