anchor.diff:  
   { TJSONValueReader }
   
  -function TJSONValueReader.AsObject: TObject;
  -begin
  -  Result := Self;
  -end;
   
   {$ifdef Delphi10Berlin_UP}
   function TJSONValueReader.ReadFrom(const AInputData: TBytes;
  
positive.code: {$endif}
    end;
  
  implementation
  
  uses
  
negative.code: end;
  {$endif}
  
  { TStreamReader }
  
  {$ifdef Delphi10Berlin_UP}
  function TStreamReader.ReadFrom(const AInputData: TBytes;
    const AAttributes: TAttributeArray;
    AMediaType: TMediaType; ARequestHeaders: TStrings): TValue;
  var
    LStream: TBytesStream;
  begin
    LStream := TBytesStream.Create(AInputData);
    try
      LStream.Position := 0;
      Result := LStream;
    except
      LStream.Free;
      raise;
    end;
  end;
  {$else}
  function TStreamReader.ReadFrom(const AInputData: AnsiString;
    const AAttributes: TAttributeArray;
    AMediaType: TMediaType; ARequestHeaders: TStrings): TValue;
  var
    LStream: TStringStream;
  begin
    LStream := TStringStream.Create(AInputData);
    try
      LStream.Position := 0;
      Result := LStream;
    except
      LStream.Free;
      raise;
    end;
  end;
  {$endif}
  
  procedure RegisterReaders;
  begin
    TMARSMessageBodyReaderRegistry.Instance.RegisterReader<TJSONValue>(TJSONValueReader);
    TMARSMessageBodyReaderRegistry.Instance.RegisterReader<TStream>(TStreamReader);
  end;
  
  initialization
  