diff --git a/src/Sarif.Converters/ConverterResources.Designer.cs b/src/Sarif.Converters/ConverterResources.Designer.cs index 1fc8f2ad6..622debbb7 100644 --- a/src/Sarif.Converters/ConverterResources.Designer.cs +++ b/src/Sarif.Converters/ConverterResources.Designer.cs @@ -312,6 +312,15 @@ internal static string FortifyNotValidResult { } } + /// + /// Looks up a localized string similar to FxCop does not provide messages for suppressed results.. + /// + internal static string FxCopNoMessage { + get { + return ResourceManager.GetString("FxCopNoMessage", resourceCulture); + } + } + /// /// Looks up a localized string similar to The value "{0}" in the {1} field is not an integer.. /// diff --git a/src/Sarif.Converters/ConverterResources.resx b/src/Sarif.Converters/ConverterResources.resx index 65bd18507..5698c1292 100644 --- a/src/Sarif.Converters/ConverterResources.resx +++ b/src/Sarif.Converters/ConverterResources.resx @@ -210,4 +210,7 @@ The root URI of the web site that was analyzed. + + FxCop does not provide messages for suppressed results. + \ No newline at end of file diff --git a/src/Sarif.Converters/FxCopConverter.cs b/src/Sarif.Converters/FxCopConverter.cs index 178700968..d4d525fab 100644 --- a/src/Sarif.Converters/FxCopConverter.cs +++ b/src/Sarif.Converters/FxCopConverter.cs @@ -121,7 +121,8 @@ internal Result CreateResult(FxCopLogReader.Context context) } result.RuleId = context.CheckId; - result.Message = new Message { Arguments = context.Items, Id = context.ResolutionName, Text = context.Message }; + string messageText = context.Message ?? ConverterResources.FxCopNoMessage; + result.Message = new Message { Arguments = context.Items, Id = context.ResolutionName, Text = messageText }; var location = new Location(); string sourceFile = GetFilePath(context); diff --git a/src/Test.FunctionalTests.Sarif/v2/ConverterTestData/FxCop/SarifSdkTest.xml.sarif b/src/Test.FunctionalTests.Sarif/v2/ConverterTestData/FxCop/SarifSdkTest.xml.sarif index aa572b68f..fc3218f9d 100644 --- a/src/Test.FunctionalTests.Sarif/v2/ConverterTestData/FxCop/SarifSdkTest.xml.sarif +++ b/src/Test.FunctionalTests.Sarif/v2/ConverterTestData/FxCop/SarifSdkTest.xml.sarif @@ -1,8073 +1,24836 @@ { - "$schema": "http://json.schemastore.org/sarif-2.0.0-csd.2.beta.2018-09-26", - "version": "2.0.0-csd.2.beta.2018-09-26", + "$schema": "https://schemastore.azurewebsites.net/schemas/json/sarif-2.1.0-rtm.4.json", + "version": "2.1.0", "runs": [ { - "tool": { - "name": "FxCop" - }, - "files": { - "#$(ProjectDir)#../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Microsoft.Json.Pointer.dll": { - "mimeType": "application/octet-stream" - }, - "#$(ProjectDir)#../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Microsoft.Json.Schema.dll": { - "mimeType": "application/octet-stream" - }, - "#$(ProjectDir)#../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Microsoft.Json.Schema.Validation.dll": { - "mimeType": "application/octet-stream" - }, - "#$(ProjectDir)#../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll": { - "mimeType": "application/octet-stream" - }, - "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/AndroidStudioConverter.cs": { - "mimeType": "text/x-csharp", - "contents": { - "binary": "77u/Ly8gQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuDQovLyBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UuIFNlZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHByb2plY3Qgcm9vdCBmb3IgZnVsbCBsaWNlbnNlIGluZm9ybWF0aW9uLg0KDQp1c2luZyBTeXN0ZW07DQp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsNCnVzaW5nIFN5c3RlbS5Db2xsZWN0aW9ucy5JbW11dGFibGU7DQp1c2luZyBTeXN0ZW0uR2xvYmFsaXphdGlvbjsNCnVzaW5nIFN5c3RlbS5JTzsNCnVzaW5nIFN5c3RlbS5MaW5xOw0KdXNpbmcgU3lzdGVtLlRleHQ7DQp1c2luZyBTeXN0ZW0uWG1sOw0KDQpuYW1lc3BhY2UgTWljcm9zb2Z0LkNvZGVBbmFseXNpcy5TYXJpZi5Db252ZXJ0ZXJzDQp7DQogICAgLy8vIDxzdW1tYXJ5Pg0KICAgIC8vLyBDb252ZXJ0cyBhbiB4bWwgbG9nIGZpbGUgb2YgdGhlIEFuZHJvaWQgU3R1ZGlvIGZvcm1hdCBpbnRvIHRoZSBTQVJJRiBmb3JtYXQNCiAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgIGludGVybmFsIGNsYXNzIEFuZHJvaWRTdHVkaW9Db252ZXJ0ZXIgOiBUb29sRmlsZUNvbnZlcnRlckJhc2UNCiAgICB7DQogICAgICAgIHByaXZhdGUgcmVhZG9ubHkgTmFtZVRhYmxlIF9uYW1lVGFibGU7DQogICAgICAgIHByaXZhdGUgcmVhZG9ubHkgQW5kcm9pZFN0dWRpb1N0cmluZ3MgX3N0cmluZ3M7DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gSW5pdGlhbGl6ZXMgYSBuZXcgaW5zdGFuY2Ugb2YgdGhlIDxzZWUgY3JlZj0iQW5kcm9pZFN0dWRpb0NvbnZlcnRlciIvPiBjbGFzcy4NCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgcHVibGljIEFuZHJvaWRTdHVkaW9Db252ZXJ0ZXIoKQ0KICAgICAgICB7DQogICAgICAgICAgICBfbmFtZVRhYmxlID0gbmV3IE5hbWVUYWJsZSgpOw0KICAgICAgICAgICAgX3N0cmluZ3MgPSBuZXcgQW5kcm9pZFN0dWRpb1N0cmluZ3MoX25hbWVUYWJsZSk7DQogICAgICAgIH0NCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBDb252ZXJ0cyBhbiBBbmRyb2lkIFN0dWRpbyBmb3JtYXR0ZWQgbG9nIGFzIGlucHV0IGludG8gYSBTQVJJRiBTYXJpZkxvZyB1c2luZyB0aGUgb3V0cHV0Lg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICAvLy8gPHBhcmFtIG5hbWU9ImlucHV0Ij5UaGUgQW5kcm9pZCBTdHVkaW8gZm9ybWF0dGVkIGxvZy48L3BhcmFtPg0KICAgICAgICAvLy8gPHBhcmFtIG5hbWU9Im91dHB1dCI+VGhlIFNhcmlmTG9nIHRvIHdyaXRlIHRoZSBvdXRwdXQgdG8uPC9wYXJhbT4NCiAgICAgICAgLy8vIDxwYXJhbSBuYW1lPSJkYXRhVG9JbnNlcnQiPk9wdGlvbmFsbHkgZW1pdHRlZCBwcm9wZXJ0aWVzIHRoYXQgc2hvdWxkIGJlIHdyaXR0ZW4gdG8gbG9nLjwvcGFyYW0+DQogICAgICAgIHB1YmxpYyBvdmVycmlkZSB2b2lkIENvbnZlcnQoU3RyZWFtIGlucHV0LCBJUmVzdWx0TG9nV3JpdGVyIG91dHB1dCwgT3B0aW9uYWxseUVtaXR0ZWREYXRhIGRhdGFUb0luc2VydCkNCiAgICAgICAgew0KICAgICAgICAgICAgaWYgKGlucHV0ID09IG51bGwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgdGhyb3cgbmV3IEFyZ3VtZW50TnVsbEV4Y2VwdGlvbihuYW1lb2YoaW5wdXQpKTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgaWYgKG91dHB1dCA9PSBudWxsKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHRocm93IG5ldyBBcmd1bWVudE51bGxFeGNlcHRpb24obmFtZW9mKG91dHB1dCkpOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBMb2dpY2FsTG9jYXRpb25zRGljdGlvbmFyeS5DbGVhcigpOw0KDQogICAgICAgICAgICBYbWxSZWFkZXJTZXR0aW5ncyBzZXR0aW5ncyA9IG5ldyBYbWxSZWFkZXJTZXR0aW5ncw0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIElnbm9yZVdoaXRlc3BhY2UgPSB0cnVlLA0KICAgICAgICAgICAgICAgIElnbm9yZUNvbW1lbnRzID0gdHJ1ZSwNCiAgICAgICAgICAgICAgICBJZ25vcmVQcm9jZXNzaW5nSW5zdHJ1Y3Rpb25zID0gdHJ1ZSwNCiAgICAgICAgICAgICAgICBOYW1lVGFibGUgPSBfbmFtZVRhYmxlLA0KICAgICAgICAgICAgICAgIER0ZFByb2Nlc3NpbmcgPSBEdGRQcm9jZXNzaW5nLklnbm9yZSwNCiAgICAgICAgICAgICAgICBYbWxSZXNvbHZlciA9IG51bGwNCiAgICAgICAgICAgIH07DQoNCiAgICAgICAgICAgIElTZXQ8UmVzdWx0PiByZXN1bHRzOw0KICAgICAgICAgICAgdXNpbmcgKFhtbFJlYWRlciB4bWxSZWFkZXIgPSBYbWxSZWFkZXIuQ3JlYXRlKGlucHV0LCBzZXR0aW5ncykpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgcmVzdWx0cyA9IFByb2Nlc3NBbmRyb2lkU3R1ZGlvTG9nKHhtbFJlYWRlcik7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIHZhciB0b29sID0gbmV3IFRvb2wNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBOYW1lID0gIkFuZHJvaWRTdHVkaW8iDQogICAgICAgICAgICB9Ow0KDQogICAgICAgICAgICB2YXIgZmlsZUluZm9GYWN0b3J5ID0gbmV3IEZpbGVJbmZvRmFjdG9yeShudWxsLCBkYXRhVG9JbnNlcnQpOw0KICAgICAgICAgICAgRGljdGlvbmFyeTxzdHJpbmcsIEZpbGVEYXRhPiBmaWxlRGljdGlvbmFyeSA9IGZpbGVJbmZvRmFjdG9yeS5DcmVhdGUocmVzdWx0cyk7DQoNCiAgICAgICAgICAgIHZhciBydW4gPSBuZXcgUnVuKCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBUb29sID0gdG9vbA0KICAgICAgICAgICAgfTsNCg0KICAgICAgICAgICAgb3V0cHV0LkluaXRpYWxpemUocnVuKTsNCg0KICAgICAgICAgICAgaWYgKGZpbGVEaWN0aW9uYXJ5ICE9IG51bGwgJiYgZmlsZURpY3Rpb25hcnkuQW55KCkpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgb3V0cHV0LldyaXRlRmlsZXMoZmlsZURpY3Rpb25hcnkpOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBpZiAoTG9naWNhbExvY2F0aW9uc0RpY3Rpb25hcnkgIT0gbnVsbCAmJiBMb2dpY2FsTG9jYXRpb25zRGljdGlvbmFyeS5BbnkoKSkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBvdXRwdXQuV3JpdGVMb2dpY2FsTG9jYXRpb25zKExvZ2ljYWxMb2NhdGlvbnNEaWN0aW9uYXJ5KTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgb3V0cHV0Lk9wZW5SZXN1bHRzKCk7DQogICAgICAgICAgICBvdXRwdXQuV3JpdGVSZXN1bHRzKHJlc3VsdHMpOw0KICAgICAgICAgICAgb3V0cHV0LkNsb3NlUmVzdWx0cygpOw0KICAgICAgICB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5PlByb2Nlc3NlcyBhbiBBbmRyb2lkIFN0dWRpbyBsb2cgYW5kIHdyaXRlcyBpc3N1ZXMgdGhlcmVpbiB0byBhbiBpbnN0YW5jZSBvZg0KICAgICAgICAvLy8gPHNlZSBjcmVmPSJJUmVzdWx0TG9nV3JpdGVyIi8+Ljwvc3VtbWFyeT4NCiAgICAgICAgLy8vIDxwYXJhbSBuYW1lPSJ4bWxSZWFkZXIiPlRoZSBYTUwgcmVhZGVyIGZyb20gd2hpY2ggQW5kcm9pZFN0dWRpbyBmb3JtYXQgc2hhbGwgYmUgcmVhZC48L3BhcmFtPg0KICAgICAgICAvLy8gPHJldHVybnM+DQogICAgICAgIC8vLyBBIGxpc3Qgb2YgdGhlIDxzZWUgY3JlZj0iUmVzdWx0Ii8+IG9iamVjdHMgdHJhbnNsYXRlZCBmcm9tIHRoZSBBbmRyb2lkU3R1ZGlvIGZvcm1hdC4NCiAgICAgICAgLy8vIDwvcmV0dXJucz4NCiAgICAgICAgcHJpdmF0ZSBJU2V0PFJlc3VsdD4gUHJvY2Vzc0FuZHJvaWRTdHVkaW9Mb2coWG1sUmVhZGVyIHhtbFJlYWRlcikNCiAgICAgICAgew0KICAgICAgICAgICAgdmFyIHJlc3VsdHMgPSBuZXcgSGFzaFNldDxSZXN1bHQ+KFJlc3VsdC5WYWx1ZUNvbXBhcmVyKTsNCg0KICAgICAgICAgICAgaW50IHByb2JsZW1zRGVwdGggPSB4bWxSZWFkZXIuRGVwdGg7DQogICAgICAgICAgICB4bWxSZWFkZXIuUmVhZFN0YXJ0RWxlbWVudChfc3RyaW5ncy5Qcm9ibGVtcyk7DQoNCiAgICAgICAgICAgIHdoaWxlICh4bWxSZWFkZXIuRGVwdGggPiBwcm9ibGVtc0RlcHRoKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHZhciBwcm9ibGVtID0gQW5kcm9pZFN0dWRpb1Byb2JsZW0uUGFyc2UoeG1sUmVhZGVyLCBfc3RyaW5ncyk7DQogICAgICAgICAgICAgICAgaWYgKHByb2JsZW0gIT0gbnVsbCkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIHJlc3VsdHMuQWRkKENvbnZlcnRQcm9ibGVtVG9TYXJpZlJlc3VsdChwcm9ibGVtKSk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICB4bWxSZWFkZXIuUmVhZEVuZEVsZW1lbnQoKTsgLy8gPC9wcm9ibGVtcz4NCg0KICAgICAgICAgICAgcmV0dXJuIHJlc3VsdHM7DQogICAgICAgIH0NCg0KICAgICAgICBwdWJsaWMgUmVzdWx0IENvbnZlcnRQcm9ibGVtVG9TYXJpZlJlc3VsdChBbmRyb2lkU3R1ZGlvUHJvYmxlbSBwcm9ibGVtKQ0KICAgICAgICB7DQogICAgICAgICAgICB2YXIgcmVzdWx0ID0gbmV3IFJlc3VsdCgpOw0KICAgICAgICAgICAgcmVzdWx0LlJ1bGVJZCA9IHByb2JsZW0uUHJvYmxlbUNsYXNzOw0KICAgICAgICAgICAgc3RyaW5nIGRlc2NyaXB0aW9uID0gQW5kcm9pZFN0dWRpb0NvbnZlcnRlci5HZXRTaG9ydERlc2NyaXB0aW9uRm9yUHJvYmxlbShwcm9ibGVtKTsNCiAgICAgICAgICAgIGlmIChwcm9ibGVtLkhpbnRzLklzRW1wdHkpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgcmVzdWx0Lk1lc3NhZ2UgPSBuZXcgTWVzc2FnZSB7IFRleHQgPSBkZXNjcmlwdGlvbiB9Ow0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZWxzZQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHJlc3VsdC5NZXNzYWdlID0gbmV3IE1lc3NhZ2UgeyBUZXh0ID0gR2VuZXJhdGVGdWxsTWVzc2FnZShkZXNjcmlwdGlvbiwgcHJvYmxlbS5IaW50cykgfTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgU2V0U2FyaWZSZXN1bHRQcm9wZXJ0aWVzRm9yUHJvYmxlbShyZXN1bHQsIHByb2JsZW0pOw0KICAgICAgICAgICAgdmFyIGxvY2F0aW9uID0gbmV3IExvY2F0aW9uKCk7DQogICAgICAgICAgICBsb2NhdGlvbi5GdWxseVF1YWxpZmllZExvZ2ljYWxOYW1lID0gQ3JlYXRlRnVsbHlRdWFsaWZpZWRMb2dpY2FsTmFtZShwcm9ibGVtKTsNCg0KICAgICAgICAgICAgVXJpIHVyaTsNCiAgICAgICAgICAgIHN0cmluZyBmaWxlID0gcHJvYmxlbS5GaWxlOw0KICAgICAgICAgICAgaWYgKCFTdHJpbmcuSXNOdWxsT3JFbXB0eShmaWxlKSkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBsb2NhdGlvbi5QaHlzaWNhbExvY2F0aW9uID0gbmV3IFBoeXNpY2FsTG9jYXRpb24NCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIEZpbGVMb2NhdGlvbiA9IG5ldyBGaWxlTG9jYXRpb24oKSwNCiAgICAgICAgICAgICAgICAgICAgUmVnaW9uID0gcHJvYmxlbS5MaW5lIDw9IDAgPyBudWxsIDogRXh0ZW5zaW9ucy5DcmVhdGVSZWdpb24ocHJvYmxlbS5MaW5lKQ0KICAgICAgICAgICAgICAgIH07DQoNCiAgICAgICAgICAgICAgICBSZW1vdmVCYWRSb290KGZpbGUsIG91dCB1cmkpOw0KICAgICAgICAgICAgICAgIGxvY2F0aW9uLlBoeXNpY2FsTG9jYXRpb24uRmlsZUxvY2F0aW9uLlVyaSA9IHVyaTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgcmVzdWx0LkxvY2F0aW9ucyA9IG5ldyBMaXN0PExvY2F0aW9uPiB7IGxvY2F0aW9uIH07DQoNCiAgICAgICAgICAgIHJldHVybiByZXN1bHQ7DQogICAgICAgIH0NCg0KICAgICAgICBwcml2YXRlIHN0cmluZyBDcmVhdGVGdWxseVF1YWxpZmllZExvZ2ljYWxOYW1lKEFuZHJvaWRTdHVkaW9Qcm9ibGVtIHByb2JsZW0pDQogICAgICAgIHsNCiAgICAgICAgICAgIHN0cmluZyBwYXJlbnRMb2dpY2FsTG9jYXRpb25LZXkgPSBudWxsOw0KDQogICAgICAgICAgICBwYXJlbnRMb2dpY2FsTG9jYXRpb25LZXkgPSBBZGRMb2dpY2FsTG9jYXRpb24ocGFyZW50TG9naWNhbExvY2F0aW9uS2V5LCBwcm9ibGVtLk1vZHVsZSwgTG9naWNhbExvY2F0aW9uS2luZC5Nb2R1bGUpOw0KICAgICAgICAgICAgcGFyZW50TG9naWNhbExvY2F0aW9uS2V5ID0gQWRkTG9naWNhbExvY2F0aW9uKHBhcmVudExvZ2ljYWxMb2NhdGlvbktleSwgcHJvYmxlbS5QYWNrYWdlLCBMb2dpY2FsTG9jYXRpb25LaW5kLlBhY2thZ2UpOw0KDQogICAgICAgICAgICBpZiAocHJvYmxlbS5FbnRyeVBvaW50TmFtZSAhPSBudWxsKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIGlmICgiY2xhc3MiLkVxdWFscyhwcm9ibGVtLkVudHJ5UG9pbnRUeXBlLCBTdHJpbmdDb21wYXJpc29uLk9yZGluYWxJZ25vcmVDYXNlKSkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIHBhcmVudExvZ2ljYWxMb2NhdGlvbktleSA9IEFkZExvZ2ljYWxMb2NhdGlvbihwYXJlbnRMb2dpY2FsTG9jYXRpb25LZXksIHByb2JsZW0uRW50cnlQb2ludE5hbWUsIExvZ2ljYWxMb2NhdGlvbktpbmQuVHlwZSk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGVsc2UgaWYgKCJtZXRob2QiLkVxdWFscyhwcm9ibGVtLkVudHJ5UG9pbnRUeXBlLCBTdHJpbmdDb21wYXJpc29uLk9yZGluYWxJZ25vcmVDYXNlKSkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIHBhcmVudExvZ2ljYWxMb2NhdGlvbktleSA9IEFkZExvZ2ljYWxMb2NhdGlvbihwYXJlbnRMb2dpY2FsTG9jYXRpb25LZXksIHByb2JsZW0uRW50cnlQb2ludE5hbWUsIExvZ2ljYWxMb2NhdGlvbktpbmQuTWVtYmVyKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIHJldHVybiBwYXJlbnRMb2dpY2FsTG9jYXRpb25LZXk7DQogICAgICAgIH0NCg0KICAgICAgICBwcml2YXRlIHN0cmluZyBBZGRMb2dpY2FsTG9jYXRpb24oc3RyaW5nIHBhcmVudEtleSwgc3RyaW5nIHZhbHVlLCBzdHJpbmcga2luZCwgc3RyaW5nIGRlbGltaXRlciA9IEAiXCIpDQogICAgICAgIHsNCiAgICAgICAgICAgIGlmICghU3RyaW5nLklzTnVsbE9yRW1wdHkodmFsdWUpKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHZhciBsb2dpY2FsTG9jYXRpb24gPSBuZXcgTG9naWNhbExvY2F0aW9uDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBQYXJlbnRLZXkgPSBwYXJlbnRLZXksDQogICAgICAgICAgICAgICAgICAgIEtpbmQgPSBraW5kLA0KICAgICAgICAgICAgICAgICAgICBOYW1lID0gdmFsdWUNCiAgICAgICAgICAgICAgICB9Ow0KDQogICAgICAgICAgICAgICAgcmV0dXJuIEFkZExvZ2ljYWxMb2NhdGlvbihsb2dpY2FsTG9jYXRpb24sIGRlbGltaXRlcik7DQogICAgICAgICAgICB9DQogICAgICAgICAgICByZXR1cm4gcGFyZW50S2V5Ow0KICAgICAgICB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5PkdlbmVyYXRlcyBhIHVzZXItZmFjaW5nIGRlc2NyaXB0aW9uIGZvciBhIHByb2JsZW0sIHVzaW5nIHRoZSBkZXNjcmlwdGlvbiBzdXBwbGllZCBhdA0KICAgICAgICAvLy8gY29uc3RydWN0aW9uIHRpbWUgaWYgaXQgaXMgcHJlc2VudDsgb3RoZXJ3aXNlLCBnZW5lcmF0ZXMgYSBkZXNjcmlwdGlvbiBmcm9tIHRoZSBwcm9ibGVtIHR5cGUuPC9zdW1tYXJ5Pg0KICAgICAgICAvLy8gPHBhcmFtIG5hbWU9InByb2JsZW0iPlRoZSBwcm9ibGVtLjwvcGFyYW0+DQogICAgICAgIC8vLyA8cmV0dXJucz5BIHVzZXIgdXNhYmxlIGRlc2NyaXB0aW9uIG1lc3NhZ2UuPC9yZXR1cm5zPg0KICAgICAgICBwdWJsaWMgc3RhdGljIHN0cmluZyBHZXRTaG9ydERlc2NyaXB0aW9uRm9yUHJvYmxlbShBbmRyb2lkU3R1ZGlvUHJvYmxlbSBwcm9ibGVtKQ0KICAgICAgICB7DQogICAgICAgICAgICBzdHJpbmcgZGVzYyA9IHByb2JsZW0uRGVzY3JpcHRpb247DQogICAgICAgICAgICBpZiAoZGVzYyA9PSBudWxsKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHJldHVybiBTdHJpbmcuRm9ybWF0KEN1bHR1cmVJbmZvLkludmFyaWFudEN1bHR1cmUsIENvbnZlcnRlclJlc291cmNlcy5BbmRyb2lkU3R1ZGlvRGVzY3JpcHRpb25Vbmtub3duLCBwcm9ibGVtLlByb2JsZW1DbGFzcyk7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIHJldHVybiBkZXNjOw0KICAgICAgICB9DQoNCiAgICAgICAgcHJpdmF0ZSBzdGF0aWMgdm9pZCBTZXRTYXJpZlJlc3VsdFByb3BlcnRpZXNGb3JQcm9ibGVtKFJlc3VsdCByZXN1bHQsIEFuZHJvaWRTdHVkaW9Qcm9ibGVtIHByb2JsZW0pDQogICAgICAgIHsNCiAgICAgICAgICAgIGlmIChwcm9ibGVtLlNldmVyaXR5ICE9IG51bGwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgcmVzdWx0LlNldFByb3BlcnR5KCJzZXZlcml0eSIsIHByb2JsZW0uU2V2ZXJpdHkpOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBpZiAocHJvYmxlbS5BdHRyaWJ1dGVLZXkgIT0gbnVsbCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICByZXN1bHQuU2V0UHJvcGVydHkoImF0dHJpYnV0ZUtleSIsIHByb2JsZW0uQXR0cmlidXRlS2V5KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgIHByaXZhdGUgc3RhdGljIHN0cmluZyBHZW5lcmF0ZUZ1bGxNZXNzYWdlKHN0cmluZyBkZXNjcmlwdGlvbiwgSW1tdXRhYmxlQXJyYXk8c3RyaW5nPiBoaW50cykNCiAgICAgICAgew0KICAgICAgICAgICAgU3RyaW5nQnVpbGRlciBzYiA9IG5ldyBTdHJpbmdCdWlsZGVyKCk7DQogICAgICAgICAgICBzYi5BcHBlbmQoZGVzY3JpcHRpb24pOw0KICAgICAgICAgICAgZm9yZWFjaCAoc3RyaW5nIGhpbnQgaW4gaGludHMpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgc2IuQXBwZW5kTGluZSgpOw0KICAgICAgICAgICAgICAgIHNiLkFwcGVuZEZvcm1hdChDdWx0dXJlSW5mby5JbnZhcmlhbnRDdWx0dXJlLCBDb252ZXJ0ZXJSZXNvdXJjZXMuQW5kcm9pZFN0dWRpb0hpbnRTdGFwbGUsIGhpbnQpOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICByZXR1cm4gc2IuVG9TdHJpbmcoKTsNCiAgICAgICAgfQ0KDQogICAgICAgIHByaXZhdGUgY29uc3Qgc3RyaW5nIFBST0pFQ1RfRElSID0gIiRQUk9KRUNUX0RJUiQiOw0KDQogICAgICAgIHByaXZhdGUgc3RhdGljIGJvb2wgUmVtb3ZlQmFkUm9vdChzdHJpbmcgcGF0aCwgb3V0IFVyaSB1cmkpDQogICAgICAgIHsNCiAgICAgICAgICAgIGNvbnN0IHN0cmluZyBiYWRSb290ID0gImZpbGU6Ly8iICsgUFJPSkVDVF9ESVIgKyIvIjsNCiAgICAgICAgICAgIGJvb2wgcmVtb3ZlZEJhZFJvb3Q7DQogICAgICAgICAgICBzdHJpbmcgcmVtb3ZlZDsNCiAgICAgICAgICAgIGlmIChwYXRoLlN0YXJ0c1dpdGgoYmFkUm9vdCwgU3RyaW5nQ29tcGFyaXNvbi5PcmRpbmFsKSkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICByZW1vdmVkID0gcGF0aC5TdWJzdHJpbmcoYmFkUm9vdC5MZW5ndGgpOw0KICAgICAgICAgICAgICAgIHJlbW92ZWRCYWRSb290ID0gdHJ1ZTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2UNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICByZW1vdmVkID0gcGF0aDsNCiAgICAgICAgICAgICAgICByZW1vdmVkQmFkUm9vdCA9IGZhbHNlOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICB1cmkgPSBuZXcgVXJpKHJlbW92ZWQsIFVyaUtpbmQuUmVsYXRpdmVPckFic29sdXRlKTsNCiAgICAgICAgICAgIHJldHVybiByZW1vdmVkQmFkUm9vdDsNCiAgICAgICAgfQ0KICAgIH0NCn0=" + "results": [ + { + "ruleId": "CA1704", + "message": { + "text": "Correct the spelling of 'Sarif' in namespace name 'Microsoft.CodeAnalysis.Sarif'.", + "id": "Namespace" }, - "hashes": [ - { - "value": "3562F58BD918D44B51356B602D0C322D", - "algorithm": "md5" - }, - { - "value": "CC2CA93566C7901E75517C537CDAAEF13869D7F8", - "algorithm": "sha-1" - }, + "locations": [ { - "value": "2F411F04128E0697F7CE35D3E104A9E244CB1BF521261093CA55E27206F67059", - "algorithm": "sha-256" + "logicalLocations": [ + { + "index": 0, + "fullyQualifiedName": "Microsoft.CodeAnalysis.Sarif" + } + ] } - ] + ], + "partialFingerprints": { + "UniqueId": "Sarif#Namespace" + }, + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" + } }, - "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/ClangAnalyzerConverter.cs": { - "mimeType": "text/x-csharp", - "contents": { - "binary": "77u/Ly8gQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuDQovLyBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UuIFNlZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHByb2plY3Qgcm9vdCBmb3IgZnVsbCBsaWNlbnNlIGluZm9ybWF0aW9uLg0KDQp1c2luZyBTeXN0ZW07DQp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsNCnVzaW5nIFN5c3RlbS5JTzsNCnVzaW5nIFN5c3RlbS5YbWw7DQp1c2luZyBNaWNyb3NvZnQuQ29kZUFuYWx5c2lzLlNhcmlmLldyaXRlcnM7DQoNCm5hbWVzcGFjZSBNaWNyb3NvZnQuQ29kZUFuYWx5c2lzLlNhcmlmLkNvbnZlcnRlcnMNCnsNCiAgICBwdWJsaWMgY2xhc3MgQ2xhbmdBbmFseXplckNvbnZlcnRlciA6IFRvb2xGaWxlQ29udmVydGVyQmFzZQ0KICAgIHsNCiAgICAgICAgcHJpdmF0ZSBJTGlzdDxvYmplY3Q+IF9maWxlcyA9IG51bGw7DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5PkNvbnZlcnQgYSBDbGFuZyBwbGlzdCByZXBvcnQgaW50byB0aGUgU0FSSUYgZm9ybWF0Ljwvc3VtbWFyeT4NCiAgICAgICAgLy8vIDxleGNlcHRpb24gY3JlZj0iQXJndW1lbnROdWxsRXhjZXB0aW9uIj5UaHJvd24gd2hlbiBvbmUgb3IgbW9yZSByZXF1aXJlZCBhcmd1bWVudHMgYXJlIG51bGwuPC9leGNlcHRpb24+DQogICAgICAgIC8vLyA8cGFyYW0gbmFtZT0iaW5wdXQiPkNMYW5nIGxvZyBmaWxlIHN0cmVhbS48L3BhcmFtPg0KICAgICAgICAvLy8gPHBhcmFtIG5hbWU9Im91dHB1dCI+UmVzdWx0IGxvZyB3cml0ZXIuPC9wYXJhbT4NCiAgICAgICAgLy8vIDxwYXJhbSBuYW1lPSJkYXRhVG9JbnNlcnQiPk9wdGlvbmFsbHkgZW1pdHRlZCBwcm9wZXJ0aWVzIHRoYXQgc2hvdWxkIGJlIHdyaXR0ZW4gdG8gbG9nLjwvcGFyYW0+DQogICAgICAgIHB1YmxpYyBvdmVycmlkZSB2b2lkIENvbnZlcnQoU3RyZWFtIGlucHV0LCBJUmVzdWx0TG9nV3JpdGVyIG91dHB1dCwgT3B0aW9uYWxseUVtaXR0ZWREYXRhIGRhdGFUb0luc2VydCkNCiAgICAgICAgew0KICAgICAgICAgICAgLy8gVG9EbyByZW1vdmUgdGhpcyBjb21tZW50IGFmdGVyIGFsbCBpc3N1ZXMgYXJlIHJlc29sdmVkLg0KICAgICAgICAgICAgLy8gUm9kbmV5IGlzIHRhc2tlZCB3aXRoIGJyaW5naW5nIENsYW5nIGFuYWx5emVyIHJlc3VsdHMgaW50byB0aGUgU0FSSUYgZm9sZC4NCiAgICAgICAgICAgIC8vIE9uY2UgdGhpcyB3b3JrIGlzIGNvbXBsZXRlLCBoZSBjYW4gY2xvc2UgdGhlIGZvbGxvd2luZyB0YXNrOg0KICAgICAgICAgICAgLy8gaHR0cDovL3R3Y3NlYy10ZnMwMTo4MDgwL3Rmcy9EZWZhdWx0Q29sbGVjdGlvbi9TZWNEZXZUb29scy9fd29ya2l0ZW1zI19hPWVkaXQmaWQ9MTM0MDkNCiAgICAgICAgICAgIGlmIChpbnB1dCA9PSBudWxsKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHRocm93IG5ldyBBcmd1bWVudE51bGxFeGNlcHRpb24obmFtZW9mKGlucHV0KSk7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIGlmIChvdXRwdXQgPT0gbnVsbCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgQXJndW1lbnROdWxsRXhjZXB0aW9uKG5hbWVvZihvdXRwdXQpKTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgdHJ5DQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgWG1sUmVhZGVyU2V0dGluZ3Mgc2V0dGluZ3MgPSBuZXcgWG1sUmVhZGVyU2V0dGluZ3MNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIElnbm9yZVdoaXRlc3BhY2UgPSB0cnVlLA0KICAgICAgICAgICAgICAgICAgICBEdGRQcm9jZXNzaW5nID0gRHRkUHJvY2Vzc2luZy5JZ25vcmUsDQogICAgICAgICAgICAgICAgICAgIFhtbFJlc29sdmVyID0gbnVsbA0KICAgICAgICAgICAgICAgIH07DQoNCiAgICAgICAgICAgICAgICB2YXIgcmVzdWx0cyA9IG5ldyBMaXN0PFJlc3VsdD4oKTsNCg0KICAgICAgICAgICAgICAgIHVzaW5nIChYbWxSZWFkZXIgeG1sUmVhZGVyID0gWG1sUmVhZGVyLkNyZWF0ZShpbnB1dCwgc2V0dGluZ3MpKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgeG1sUmVhZGVyLk1vdmVUb0NvbnRlbnQoKTsNCiAgICAgICAgICAgICAgICAgICAgeG1sUmVhZGVyLlJlYWRTdGFydEVsZW1lbnQoQ2xhbmdTY2hlbWFTdHJpbmdzLlBsaXN0TmFtZSk7DQogICAgICAgICAgICAgICAgICAgIGlmICh4bWxSZWFkZXIuTm9kZVR5cGUgPT0gWG1sTm9kZVR5cGUuRWxlbWVudCkNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgdXNpbmcgKHZhciBwTGlzdFJlYWRlciA9IHhtbFJlYWRlci5SZWFkU3VidHJlZSgpKQ0KICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuUmVhZFBsaXN0KHBMaXN0UmVhZGVyLCByZXN1bHRzKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgIHZhciB0b29sID0gbmV3IFRvb2wNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIE5hbWUgPSAiQ2xhbmciDQogICAgICAgICAgICAgICAgfTsNCg0KICAgICAgICAgICAgICAgIHZhciBmaWxlSW5mb0ZhY3RvcnkgPSBuZXcgRmlsZUluZm9GYWN0b3J5KE1pbWVUeXBlLkRldGVybWluZUZyb21GaWxlRXh0ZW5zaW9uLCBkYXRhVG9JbnNlcnQpOw0KICAgICAgICAgICAgICAgIERpY3Rpb25hcnk8c3RyaW5nLCBGaWxlRGF0YT4gZmlsZURpY3Rpb25hcnkgPSBmaWxlSW5mb0ZhY3RvcnkuQ3JlYXRlKHJlc3VsdHMpOw0KDQoNCiAgICAgICAgICAgICAgICB2YXIgcnVuID0gbmV3IFJ1bigpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBUb29sID0gdG9vbA0KICAgICAgICAgICAgICAgIH07DQoNCiAgICAgICAgICAgICAgICBvdXRwdXQuSW5pdGlhbGl6ZShydW4pOw0KDQogICAgICAgICAgICAgICAgaWYgKGZpbGVEaWN0aW9uYXJ5ICE9IG51bGwgJiYgZmlsZURpY3Rpb25hcnkuQ291bnQgPiAwKSB7IG91dHB1dC5Xcml0ZUZpbGVzKGZpbGVEaWN0aW9uYXJ5KTsgfQ0KDQogICAgICAgICAgICAgICAgb3V0cHV0Lk9wZW5SZXN1bHRzKCk7DQogICAgICAgICAgICAgICAgb3V0cHV0LldyaXRlUmVzdWx0cyhyZXN1bHRzKTsNCiAgICAgICAgICAgICAgICBvdXRwdXQuQ2xvc2VSZXN1bHRzKCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBmaW5hbGx5DQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgX2ZpbGVzID0gbnVsbDsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgIHByaXZhdGUgc3RhdGljIElEaWN0aW9uYXJ5PHN0cmluZywgb2JqZWN0PiBGaW5kRGljdGlvbmFyeShJRGljdGlvbmFyeTxzdHJpbmcsIG9iamVjdD4gZGljdGlvbmFyeSwgc3RyaW5nIGtleSkNCiAgICAgICAgew0KICAgICAgICAgICAgRGljdGlvbmFyeTxzdHJpbmcsIG9iamVjdD4gdmFsdWUgPSBudWxsOw0KDQogICAgICAgICAgICBpZiAoZGljdGlvbmFyeS5UcnlHZXRWYWx1ZShrZXksIG91dCBvYmplY3QgZ2V0T2JqZWN0KSkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICB2YWx1ZSA9IGdldE9iamVjdCBhcyBEaWN0aW9uYXJ5PHN0cmluZywgb2JqZWN0PjsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgcmV0dXJuIHZhbHVlID8/IG5ldyBEaWN0aW9uYXJ5PHN0cmluZywgb2JqZWN0PigpOw0KICAgICAgICB9DQoNCiAgICAgICAgcHJpdmF0ZSBzdGF0aWMgaW50IEZpbmRJbnQoSURpY3Rpb25hcnk8c3RyaW5nLCBvYmplY3Q+IGRpY3Rpb25hcnksIHN0cmluZyBrZXkpDQogICAgICAgIHsNCiAgICAgICAgICAgIHN0cmluZyB2YWx1ZSA9IG51bGw7DQogICAgICAgICAgICBpbnQgcmV0dXJuVmFsdWUgPSAwOw0KDQogICAgICAgICAgICBpZiAoZGljdGlvbmFyeS5UcnlHZXRWYWx1ZShrZXksIG91dCBvYmplY3QgZ2V0T2JqZWN0KSkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICB2YWx1ZSA9IGdldE9iamVjdCBhcyBzdHJpbmc7DQogICAgICAgICAgICAgICAgaWYgKCFpbnQuVHJ5UGFyc2UodmFsdWUsIG91dCByZXR1cm5WYWx1ZSkpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSW52YWxpZERhdGFFeGNlcHRpb24oIkV4cGVjdGVkIGFuIGludCB2YWx1ZSBmb3IgIiArIGtleSArICIgZm91bmQgOiAiICsgdmFsdWUpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgcmV0dXJuIHJldHVyblZhbHVlOw0KICAgICAgICB9DQoNCiAgICAgICAgcHJpdmF0ZSBzdGF0aWMgc3RyaW5nIEZpbmRTdHJpbmcoSURpY3Rpb25hcnk8c3RyaW5nLCBvYmplY3Q+IGRpY3Rpb25hcnksIHN0cmluZyBrZXkpDQogICAgICAgIHsNCiAgICAgICAgICAgIHN0cmluZyB2YWx1ZSA9IG51bGw7DQoNCiAgICAgICAgICAgIGlmIChkaWN0aW9uYXJ5LlRyeUdldFZhbHVlKGtleSwgb3V0IG9iamVjdCBnZXRPYmplY3QpKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHZhbHVlID0gZ2V0T2JqZWN0IGFzIHN0cmluZzsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgcmV0dXJuIHZhbHVlID8/IHN0cmluZy5FbXB0eTsNCiAgICAgICAgfQ0KDQogICAgICAgIHByaXZhdGUgUmVzdWx0IENyZWF0ZVJlc3VsdChJRGljdGlvbmFyeTxzdHJpbmcsIG9iamVjdD4gaXNzdWVEYXRhKQ0KICAgICAgICB7DQogICAgICAgICAgICBpZiAoaXNzdWVEYXRhICE9IG51bGwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgLy8gVXNlZCBmb3IgUmVzdWx0LkZ1bGxNZXNzYWdlIA0KICAgICAgICAgICAgICAgIHN0cmluZyBkZXNjcmlwdGlvbiA9IEZpbmRTdHJpbmcoaXNzdWVEYXRhLCAiZGVzY3JpcHRpb24iKTsNCg0KICAgICAgICAgICAgICAgIC8vIFVzZWQgYXMgcnVsZSBpZC4gDQogICAgICAgICAgICAgICAgc3RyaW5nIGlzc3VlVHlwZSA9IEZpbmRTdHJpbmcoaXNzdWVEYXRhLCAidHlwZSIpOw0KICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgIC8vIFRoaXMgZGF0YSBwZXJzaXN0ZWQgdG8gcmVzdWx0IHByb3BlcnR5IGJhZw0KICAgICAgICAgICAgICAgIHN0cmluZyBjYXRlZ29yeSA9IEZpbmRTdHJpbmcoaXNzdWVEYXRhLCAiY2F0ZWdvcnkiKTsNCiAgICAgICAgICAgICAgICBzdHJpbmcgaXNzdWVDb250ZXh0S2luZCA9IEZpbmRTdHJpbmcoaXNzdWVEYXRhLCAiaXNzdWVfY29udGV4dF9raW5kIik7DQogICAgICAgICAgICAgICAgc3RyaW5nIGlzc3VlQ29udGV4dCA9IEZpbmRTdHJpbmcoaXNzdWVEYXRhLCAiaXNzdWVfY29udGV4dCIpOw0KICAgICAgICAgICAgICAgIHN0cmluZyBpc3N1ZUhhc2ggPSBGaW5kU3RyaW5nKGlzc3VlRGF0YSwgImlzc3VlX2hhc2giKTsNCg0KICAgICAgICAgICAgICAgIGludCBpc3N1ZUxpbmUgPSAwOw0KICAgICAgICAgICAgICAgIGludCBpc3N1ZUNvbHVtbiA9IDA7DQogICAgICAgICAgICAgICAgc3RyaW5nIGZpbGVOYW1lID0gbnVsbDsNCg0KICAgICAgICAgICAgICAgIElEaWN0aW9uYXJ5PHN0cmluZywgb2JqZWN0PiBsb2NhdGlvbiA9IEZpbmREaWN0aW9uYXJ5KGlzc3VlRGF0YSwgImxvY2F0aW9uIik7DQogICAgICAgICAgICAgICAgaWYgKGxvY2F0aW9uICE9IG51bGwpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBpc3N1ZUxpbmUgPSBGaW5kSW50KGxvY2F0aW9uLCAibGluZSIpOw0KICAgICAgICAgICAgICAgICAgICBpc3N1ZUNvbHVtbiA9IEZpbmRJbnQobG9jYXRpb24sICJjb2wiKTsNCiAgICAgICAgICAgICAgICAgICAgaW50IGZpbGVOdW1iZXIgPSBGaW5kSW50KGxvY2F0aW9uLCAiZmlsZSIpOw0KICAgICAgICAgICAgICAgICAgICBpZiAoX2ZpbGVzICE9IG51bGwgJiYgZmlsZU51bWJlciA8IF9maWxlcy5Db3VudCkNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgZmlsZU5hbWUgPSBfZmlsZXNbZmlsZU51bWJlcl0gYXMgc3RyaW5nOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgdmFyIHJlc3VsdCA9IG5ldyBSZXN1bHQNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIFJ1bGVJZCA9IGlzc3VlVHlwZSwNCiAgICAgICAgICAgICAgICAgICAgTWVzc2FnZSA9IG5ldyBNZXNzYWdlIHsgVGV4dCA9IGRlc2NyaXB0aW9uIH0sDQogICAgICAgICAgICAgICAgICAgIExvY2F0aW9ucyA9IG5ldyBMaXN0PExvY2F0aW9uPg0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICBuZXcgTG9jYXRpb24NCiAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBQaHlzaWNhbExvY2F0aW9uID0gbmV3IFBoeXNpY2FsTG9jYXRpb24NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZpbGVMb2NhdGlvbiA9IG5ldyBGaWxlTG9jYXRpb24NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVXJpID0gbmV3IFVyaShmaWxlTmFtZSwgVXJpS2luZC5SZWxhdGl2ZU9yQWJzb2x1dGUpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlZ2lvbiA9IG5ldyBSZWdpb24oKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdGFydExpbmUgPSBpc3N1ZUxpbmUsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdGFydENvbHVtbiA9IGlzc3VlQ29sdW1uDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIH0sDQogICAgICAgICAgICAgICAgfTsNCg0KICAgICAgICAgICAgICAgIHJlc3VsdC5TZXRQcm9wZXJ0eSgiY2F0ZWdvcnkiLCBjYXRlZ29yeSk7DQogICAgICAgICAgICAgICAgcmVzdWx0LlNldFByb3BlcnR5KCJpc3N1ZV9jb250ZXh0X2tpbmQiLCBpc3N1ZUNvbnRleHRLaW5kKTsNCiAgICAgICAgICAgICAgICByZXN1bHQuU2V0UHJvcGVydHkoImlzc3VlQ29udGV4dCIsIGlzc3VlQ29udGV4dCk7DQogICAgICAgICAgICAgICAgcmVzdWx0LlNldFByb3BlcnR5KCJpc3N1ZUhhc2giLCBpc3N1ZUhhc2gpOw0KDQogICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2UNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgIHByaXZhdGUgc3RhdGljIElMaXN0PG9iamVjdD4gUmVhZEFycmF5KFhtbFJlYWRlciB4bWxSZWFkZXIpDQogICAgICAgIHsNCiAgICAgICAgICAgIExpc3Q8b2JqZWN0PiBsaXN0ID0gbmV3IExpc3Q8b2JqZWN0PigpOw0KICAgICAgICAgICAgYm9vbCByZWFkZXJNb3ZlZCA9IGZhbHNlOyAvLyBSZWFkRWxlbWVudENvbnRlbnRBc1N0cmluZyBtb3ZlcyB0aGUgcmVhZGVyIHNvIHByZXZlbnQgZG91YmxlIG1vdmVzLg0KDQogICAgICAgICAgICB4bWxSZWFkZXIuUmVhZCgpOyAvLyBSZWFkIHBhc3QgdGhlICJhcnJheSIgZWxlbWVudCBzdGFydC4NCg0KICAgICAgICAgICAgd2hpbGUgKHJlYWRlck1vdmVkIHx8IHhtbFJlYWRlci5SZWFkKCkpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgcmVhZGVyTW92ZWQgPSBmYWxzZTsNCg0KICAgICAgICAgICAgICAgIGlmICh4bWxSZWFkZXIuTm9kZVR5cGUgPT0gWG1sTm9kZVR5cGUuRWxlbWVudCkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIHN3aXRjaCAoeG1sUmVhZGVyLk5hbWUpDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgQ2xhbmdTY2hlbWFTdHJpbmdzLlN0cmluZ05hbWU6DQogICAgICAgICAgICAgICAgICAgICAgICBjYXNlIENsYW5nU2NoZW1hU3RyaW5ncy5JbnRlZ2VyTmFtZToNCiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgQ2xhbmdTY2hlbWFTdHJpbmdzLlJlYWxOYW1lOg0KICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBDbGFuZ1NjaGVtYVN0cmluZ3MuRGF0YU5hbWU6DQogICAgICAgICAgICAgICAgICAgICAgICBjYXNlIENsYW5nU2NoZW1hU3RyaW5ncy5EYXRlTmFtZToNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cmluZyB2YWx1ZSA9IHhtbFJlYWRlci5SZWFkRWxlbWVudENvbnRlbnRBc1N0cmluZygpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWFkZXJNb3ZlZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpc3QuQWRkKHZhbHVlKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgICAgICAgICBjYXNlIENsYW5nU2NoZW1hU3RyaW5ncy5BcnJheU5hbWU6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1c2luZyAodmFyIHN1YlRyZWVSZWFkZXIgPSB4bWxSZWFkZXIuUmVhZFN1YnRyZWUoKSkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSUxpc3Q8b2JqZWN0PiBhcnJheSA9IFJlYWRBcnJheShzdWJUcmVlUmVhZGVyKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpc3QuQWRkKGFycmF5KTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgQ2xhbmdTY2hlbWFTdHJpbmdzLkRpY3Rpb25hcnlOYW1lOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNpbmcgKHZhciBzdWJUcmVlUmVhZGVyID0geG1sUmVhZGVyLlJlYWRTdWJ0cmVlKCkpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElEaWN0aW9uYXJ5PHN0cmluZywgb2JqZWN0PiBkaWN0aW9uYXJ5ID0gUmVhZERpY3Rpb25hcnkoc3ViVHJlZVJlYWRlcik7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaXN0LkFkZChkaWN0aW9uYXJ5KTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICBpZiAoeG1sUmVhZGVyLk5vZGVUeXBlID09IFhtbE5vZGVUeXBlLkVuZEVsZW1lbnQgJiYgKHhtbFJlYWRlci5OYW1lID09IENsYW5nU2NoZW1hU3RyaW5ncy5BcnJheU5hbWUpKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICByZXR1cm4gbGlzdDsNCiAgICAgICAgfQ0KDQogICAgICAgIHByaXZhdGUgc3RhdGljIElEaWN0aW9uYXJ5PHN0cmluZywgb2JqZWN0PiBSZWFkRGljdGlvbmFyeShYbWxSZWFkZXIgeG1sUmVhZGVyKQ0KICAgICAgICB7DQogICAgICAgICAgICBJRGljdGlvbmFyeTxzdHJpbmcsIG9iamVjdD4gZGljdGlvbmFyeSA9IG5ldyBEaWN0aW9uYXJ5PHN0cmluZywgb2JqZWN0PigpOw0KICAgICAgICAgICAgc3RyaW5nIGtleU5hbWUgPSBzdHJpbmcuRW1wdHk7DQogICAgICAgICAgICBib29sIHJlYWRlck1vdmVkID0gZmFsc2U7ICAgICAgIC8vIFJlYWRFbGVtZW50Q29udGVudEFzU3RyaW5nIHJlYWRzIHRvIG5leHQgZWxlbWVudA0KDQogICAgICAgICAgICB4bWxSZWFkZXIuUmVhZCgpOyAgICAgICAgICAgICAgIC8vIHJlYWQgcGFzdCB0aGUgZGljdGlvbmFyeSBlbGVtZW50Ow0KICAgICAgICAgICAgd2hpbGUgKHJlYWRlck1vdmVkIHx8IHhtbFJlYWRlci5SZWFkKCkpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgcmVhZGVyTW92ZWQgPSBmYWxzZTsNCg0KICAgICAgICAgICAgICAgIGlmICh4bWxSZWFkZXIuTm9kZVR5cGUgPT0gWG1sTm9kZVR5cGUuRWxlbWVudCkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIHN3aXRjaCAoeG1sUmVhZGVyLk5hbWUpDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgQ2xhbmdTY2hlbWFTdHJpbmdzLktleU5hbWU6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXlOYW1lID0geG1sUmVhZGVyLlJlYWRFbGVtZW50Q29udGVudEFzU3RyaW5nKCk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlYWRlck1vdmVkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgICAgICAgICBjYXNlIENsYW5nU2NoZW1hU3RyaW5ncy5TdHJpbmdOYW1lOg0KICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBDbGFuZ1NjaGVtYVN0cmluZ3MuSW50ZWdlck5hbWU6DQogICAgICAgICAgICAgICAgICAgICAgICBjYXNlIENsYW5nU2NoZW1hU3RyaW5ncy5SZWFsTmFtZToNCiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgQ2xhbmdTY2hlbWFTdHJpbmdzLkRhdGFOYW1lOg0KICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBDbGFuZ1NjaGVtYVN0cmluZ3MuRGF0ZU5hbWU6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoc3RyaW5nLklzTnVsbE9yRW1wdHkoa2V5TmFtZSkpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbnZhbGlkRGF0YUV4Y2VwdGlvbigiRXhwZWN0ZWQga2V5IHZhbHVlIGJlZm9yZSBkaWN0aW9uYXJ5IGRhdGEuIik7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJpbmcgdmFsdWUgPSB4bWxSZWFkZXIuUmVhZEVsZW1lbnRDb250ZW50QXNTdHJpbmcoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVhZGVyTW92ZWQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaWN0aW9uYXJ5LkFkZChrZXlOYW1lLCB2YWx1ZSk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleU5hbWUgPSBzdHJpbmcuRW1wdHk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBDbGFuZ1NjaGVtYVN0cmluZ3MuQXJyYXlOYW1lOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHN0cmluZy5Jc051bGxPckVtcHR5KGtleU5hbWUpKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSW52YWxpZERhdGFFeGNlcHRpb24oIkV4cGVjdGVkIGtleSB2YWx1ZSBiZWZvcmUgZGljdGlvbmFyeSBkYXRhLiIpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNpbmcgKHZhciBzdWJUcmVlUmVhZGVyID0geG1sUmVhZGVyLlJlYWRTdWJ0cmVlKCkpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElMaXN0PG9iamVjdD4gYXJyYXkgPSBSZWFkQXJyYXkoc3ViVHJlZVJlYWRlcik7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaWN0aW9uYXJ5LkFkZChrZXlOYW1lLCBhcnJheSk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXlOYW1lID0gc3RyaW5nLkVtcHR5Ow0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBDbGFuZ1NjaGVtYVN0cmluZ3MuRGljdGlvbmFyeU5hbWU6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoc3RyaW5nLklzTnVsbE9yRW1wdHkoa2V5TmFtZSkpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbnZhbGlkRGF0YUV4Y2VwdGlvbigiRXhwZWN0ZWQga2V5IHZhbHVlIGJlZm9yZSBkaWN0aW9uYXJ5IGRhdGEuIik7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1c2luZyAodmFyIHN1YlRyZWVSZWFkZXIgPSB4bWxSZWFkZXIuUmVhZFN1YnRyZWUoKSkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSURpY3Rpb25hcnk8c3RyaW5nLCBvYmplY3Q+IGNoaWxkID0gUmVhZERpY3Rpb25hcnkoc3ViVHJlZVJlYWRlcik7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaWN0aW9uYXJ5LkFkZChrZXlOYW1lLCBjaGlsZCk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXlOYW1lID0gc3RyaW5nLkVtcHR5Ow0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBlbHNlIGlmICh4bWxSZWFkZXIuTm9kZVR5cGUgPT0gWG1sTm9kZVR5cGUuRW5kRWxlbWVudCAmJiB4bWxSZWFkZXIuTmFtZSA9PSBDbGFuZ1NjaGVtYVN0cmluZ3MuRGljdGlvbmFyeU5hbWUpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIHJldHVybiBkaWN0aW9uYXJ5Ow0KICAgICAgICB9DQoNCiAgICAgICAgcHJpdmF0ZSB2b2lkIFJlYWRQbGlzdERpY3Rpb25hcnkoWG1sUmVhZGVyIHhtbFJlYWRlciwgSUxpc3Q8UmVzdWx0PiByZXN1bHRzKQ0KICAgICAgICB7DQogICAgICAgICAgICBzdHJpbmcga2V5TmFtZSA9IHN0cmluZy5FbXB0eTsNCiAgICAgICAgICAgIGJvb2wgcmVhZGVyTW92ZWQgPSBmYWxzZTsgICAgICAgLy8gUmVhZEVsZW1lbnRDb250ZW50QXNTdHJpbmcgcmVhZHMgdG8gbmV4dCBlbGVtZW50DQoNCiAgICAgICAgICAgIHhtbFJlYWRlci5SZWFkKCk7ICAgICAgICAgICAgICAgLy8gcmVhZCBwYXN0IHRoZSBkaWN0aW9uYXJ5IGVsZW1lbnQ7DQogICAgICAgICAgICB3aGlsZSAocmVhZGVyTW92ZWQgfHwgeG1sUmVhZGVyLlJlYWQoKSkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICByZWFkZXJNb3ZlZCA9IGZhbHNlOw0KDQogICAgICAgICAgICAgICAgaWYgKHhtbFJlYWRlci5Ob2RlVHlwZSA9PSBYbWxOb2RlVHlwZS5FbGVtZW50KQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgc3dpdGNoICh4bWxSZWFkZXIuTmFtZSkNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBDbGFuZ1NjaGVtYVN0cmluZ3MuS2V5TmFtZToNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleU5hbWUgPSB4bWxSZWFkZXIuUmVhZEVsZW1lbnRDb250ZW50QXNTdHJpbmcoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVhZGVyTW92ZWQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgQ2xhbmdTY2hlbWFTdHJpbmdzLlN0cmluZ05hbWU6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoc3RyaW5nLklzTnVsbE9yRW1wdHkoa2V5TmFtZSkpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbnZhbGlkRGF0YUV4Y2VwdGlvbigiRXhwZWN0ZWQga2V5IHZhbHVlIGJlZm9yZSBkaWN0aW9uYXJ5IGRhdGEuIik7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxSZWFkZXIuUmVhZEVsZW1lbnRDb250ZW50QXNTdHJpbmcoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVhZGVyTW92ZWQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXlOYW1lID0gc3RyaW5nLkVtcHR5Ow0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgQ2xhbmdTY2hlbWFTdHJpbmdzLkFycmF5TmFtZToNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzdHJpbmcuSXNOdWxsT3JFbXB0eShrZXlOYW1lKSkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEludmFsaWREYXRhRXhjZXB0aW9uKCJFeHBlY3RlZCBrZXkgdmFsdWUgYmVmb3JlIGRpY3Rpb25hcnkgZGF0YS4iKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVzaW5nICh2YXIgc3ViVHJlZVJlYWRlciA9IHhtbFJlYWRlci5SZWFkU3VidHJlZSgpKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoa2V5TmFtZS5FcXVhbHMoImZpbGVzIikpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX2ZpbGVzID0gUmVhZEFycmF5KHN1YlRyZWVSZWFkZXIpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoa2V5TmFtZS5FcXVhbHMoImRpYWdub3N0aWNzIikpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVhZERpYWdub3N0aWNzKHN1YlRyZWVSZWFkZXIsIHJlc3VsdHMpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXlOYW1lID0gc3RyaW5nLkVtcHR5Ow0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBlbHNlIGlmICh4bWxSZWFkZXIuTm9kZVR5cGUgPT0gWG1sTm9kZVR5cGUuRW5kRWxlbWVudCAmJiB4bWxSZWFkZXIuTmFtZSA9PSBDbGFuZ1NjaGVtYVN0cmluZ3MuRGljdGlvbmFyeU5hbWUpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICBwcml2YXRlIHZvaWQgUmVhZERpYWdub3N0aWNzKFhtbFJlYWRlciB4bWxSZWFkZXIsIElMaXN0PFJlc3VsdD4gcmVzdWx0cykNCiAgICAgICAgew0KICAgICAgICAgICAgeG1sUmVhZGVyLlJlYWQoKTsgLy8gUmVhZCBwYXN0IHRoZSAiYXJyYXkiIGVsZW1lbnQgc3RhcnQuDQoNCiAgICAgICAgICAgIHdoaWxlICh4bWxSZWFkZXIuUmVhZCgpKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIGlmICh4bWxSZWFkZXIuTm9kZVR5cGUgPT0gWG1sTm9kZVR5cGUuRWxlbWVudCkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIGlmICh4bWxSZWFkZXIuTmFtZS5FcXVhbHMoQ2xhbmdTY2hlbWFTdHJpbmdzLkRpY3Rpb25hcnlOYW1lKSkNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgdXNpbmcgKHZhciBzdWJUcmVlUmVhZGVyID0geG1sUmVhZGVyLlJlYWRTdWJ0cmVlKCkpDQogICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgSURpY3Rpb25hcnk8c3RyaW5nLCBvYmplY3Q+IGRpY3Rpb25hcnkgPSBSZWFkRGljdGlvbmFyeShzdWJUcmVlUmVhZGVyKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXN1bHQgcmVzdWx0ID0gdGhpcy5DcmVhdGVSZXN1bHQoZGljdGlvbmFyeSk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3VsdCAhPSBudWxsKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0cy5BZGQocmVzdWx0KTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICBpZiAoeG1sUmVhZGVyLk5vZGVUeXBlID09IFhtbE5vZGVUeXBlLkVuZEVsZW1lbnQgJiYgeG1sUmVhZGVyLk5hbWUgPT0gQ2xhbmdTY2hlbWFTdHJpbmdzLkFycmF5TmFtZSkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgIHByaXZhdGUgdm9pZCBSZWFkUGxpc3QoWG1sUmVhZGVyIHhtbFJlYWRlciwgSUxpc3Q8UmVzdWx0PiByZXN1bHRzKQ0KICAgICAgICB7DQogICAgICAgICAgICB3aGlsZSAoeG1sUmVhZGVyLlJlYWQoKSkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBpZiAoeG1sUmVhZGVyLk5vZGVUeXBlID09IFhtbE5vZGVUeXBlLkVsZW1lbnQpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBpZiAoeG1sUmVhZGVyLk5hbWUuRXF1YWxzKENsYW5nU2NoZW1hU3RyaW5ncy5EaWN0aW9uYXJ5TmFtZSkpDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHVzaW5nICh2YXIgc3ViVHJlZVJlYWRlciA9IHhtbFJlYWRlci5SZWFkU3VidHJlZSgpKQ0KICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuUmVhZFBsaXN0RGljdGlvbmFyeShzdWJUcmVlUmVhZGVyLCByZXN1bHRzKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgIHByaXZhdGUgc3RhdGljIGNsYXNzIENsYW5nU2NoZW1hU3RyaW5ncw0KICAgICAgICB7DQogICAgICAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIEFycmF5TmFtZSA9ICJhcnJheSI7DQogICAgICAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIERhdGFOYW1lID0gImRhdGEiOw0KICAgICAgICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBEYXRlTmFtZSA9ICJkYXRlIjsNCiAgICAgICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcgRGljdGlvbmFyeU5hbWUgPSAiZGljdCI7DQogICAgICAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIEludGVnZXJOYW1lID0gImludGVnZXIiOw0KICAgICAgICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBLZXlOYW1lID0gImtleSI7DQogICAgICAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIFBsaXN0TmFtZSA9ICJwbGlzdCI7DQogICAgICAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIFJlYWxOYW1lID0gInJlYWwiOw0KICAgICAgICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBTdHJpbmdOYW1lID0gInN0cmluZyI7DQogICAgICAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIFZlcnNpb25OYW1lID0gInZlcnNpb24iOw0KICAgICAgICB9DQogICAgfQ0KfQ==" + { + "ruleId": "CA1020", + "message": { + "text": "Consider merging the types defined in 'Microsoft.CodeAnalysis.Sarif.Baseline' with another namespace." }, - "hashes": [ - { - "value": "7A73E6161A07804745FC02381CD74041", - "algorithm": "md5" - }, - { - "value": "F3A391CCCEB8498C5C3F35C2A9EA8361B088187C", - "algorithm": "sha-1" - }, + "locations": [ { - "value": "02ECEA972BD59B48ECCB838AF3CF6E160ABD9E27E233E131284B888499611FF1", - "algorithm": "sha-256" + "logicalLocations": [ + { + "index": 1, + "fullyQualifiedName": "Microsoft.CodeAnalysis.Sarif.Baseline" + } + ] } - ] + ], + "properties": { + "Category": "Microsoft.Design", + "FixCategory": "Breaking" + } }, - "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/CppCheckConverter.cs": { - "mimeType": "text/x-csharp", - "contents": { - "binary": "77u/Ly8gQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuDQovLyBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UuIFNlZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHByb2plY3Qgcm9vdCBmb3IgZnVsbCBsaWNlbnNlIGluZm9ybWF0aW9uLg0KDQp1c2luZyBTeXN0ZW07DQp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsNCnVzaW5nIFN5c3RlbS5JTzsNCnVzaW5nIFN5c3RlbS5YbWw7DQoNCnVzaW5nIE1pY3Jvc29mdC5Db2RlQW5hbHlzaXMuU2FyaWYuV3JpdGVyczsNCg0KbmFtZXNwYWNlIE1pY3Jvc29mdC5Db2RlQW5hbHlzaXMuU2FyaWYuQ29udmVydGVycw0Kew0KICAgIHB1YmxpYyBjbGFzcyBDcHBDaGVja0NvbnZlcnRlciA6IFRvb2xGaWxlQ29udmVydGVyQmFzZQ0KICAgIHsNCiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBOYW1lVGFibGUgX25hbWVUYWJsZTsNCiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBDcHBDaGVja1N0cmluZ3MgX3N0cmluZ3M7DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5PkluaXRpYWxpemVzIGEgbmV3IGluc3RhbmNlIG9mIHRoZSA8c2VlIGNyZWY9IkNwcENoZWNrQ29udmVydGVyIi8+IGNsYXNzLjwvc3VtbWFyeT4NCiAgICAgICAgcHVibGljIENwcENoZWNrQ29udmVydGVyKCkNCiAgICAgICAgew0KICAgICAgICAgICAgX25hbWVUYWJsZSA9IG5ldyBOYW1lVGFibGUoKTsNCiAgICAgICAgICAgIF9zdHJpbmdzID0gbmV3IENwcENoZWNrU3RyaW5ncyhfbmFtZVRhYmxlKTsNCiAgICAgICAgfQ0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIEludGVyZmFjZSBpbXBsZW1lbnRhdGlvbiB0aGF0IHRha2VzIGEgQ3BwQ2hlY2tlciBsb2cgc3RyZWFtIGFuZCBjb252ZXJ0cyBpdHMgZGF0YSB0byBhIFNBUklGIGpzb24gc3RyZWFtLg0KICAgICAgICAvLy8gUmVhZCBpbiBDcHBDaGVja2VyIGRhdGEgZnJvbSBhbiBpbnB1dCBzdHJlYW0gYW5kIHdyaXRlIFJlc3VsdCBvYmplY3RzLg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICAvLy8gPHBhcmFtIG5hbWU9ImlucHV0Ij5TdHJlYW0gb2YgYSBDcHBDaGVja2VyIGxvZzwvcGFyYW0+DQogICAgICAgIC8vLyA8cGFyYW0gbmFtZT0ib3V0cHV0Ij5TQVJJRiBqc29uIHN0cmVhbSBvZiB0aGUgY29udmVydGVkIENwcENoZWNrZXIgbG9nPC9wYXJhbT4NCiAgICAgICAgLy8vIDxwYXJhbSBuYW1lPSJkYXRhVG9JbnNlcnQiPk9wdGlvbmFsbHkgZW1pdHRlZCBwcm9wZXJ0aWVzIHRoYXQgc2hvdWxkIGJlIHdyaXR0ZW4gdG8gbG9nLjwvcGFyYW0+DQogICAgICAgIHB1YmxpYyBvdmVycmlkZSB2b2lkIENvbnZlcnQoU3RyZWFtIGlucHV0LCBJUmVzdWx0TG9nV3JpdGVyIG91dHB1dCwgT3B0aW9uYWxseUVtaXR0ZWREYXRhIGRhdGFUb0luc2VydCkNCiAgICAgICAgew0KICAgICAgICAgICAgaWYgKGlucHV0ID09IG51bGwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgdGhyb3cgbmV3IEFyZ3VtZW50TnVsbEV4Y2VwdGlvbihuYW1lb2YoaW5wdXQpKTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgaWYgKG91dHB1dCA9PSBudWxsKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHRocm93IG5ldyBBcmd1bWVudE51bGxFeGNlcHRpb24obmFtZW9mKG91dHB1dCkpOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBYbWxSZWFkZXJTZXR0aW5ncyBzZXR0aW5ncyA9IG5ldyBYbWxSZWFkZXJTZXR0aW5ncw0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIElnbm9yZVdoaXRlc3BhY2UgPSB0cnVlLA0KICAgICAgICAgICAgICAgIER0ZFByb2Nlc3NpbmcgPSBEdGRQcm9jZXNzaW5nLklnbm9yZSwNCiAgICAgICAgICAgICAgICBOYW1lVGFibGUgPSBfbmFtZVRhYmxlLA0KICAgICAgICAgICAgICAgIFhtbFJlc29sdmVyID0gbnVsbA0KICAgICAgICAgICAgfTsNCg0KICAgICAgICAgICAgdXNpbmcgKFhtbFJlYWRlciB4bWxSZWFkZXIgPSBYbWxSZWFkZXIuQ3JlYXRlKGlucHV0LCBzZXR0aW5ncykpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgUHJvY2Vzc0NwcENoZWNrTG9nKHhtbFJlYWRlciwgb3V0cHV0LCBkYXRhVG9JbnNlcnQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICAgICAgcHJpdmF0ZSB2b2lkIFByb2Nlc3NDcHBDaGVja0xvZyhYbWxSZWFkZXIgcmVhZGVyLCBJUmVzdWx0TG9nV3JpdGVyIG91dHB1dCwgT3B0aW9uYWxseUVtaXR0ZWREYXRhIGRhdGFUb0luc2VydCkNCiAgICAgICAgew0KICAgICAgICAgICAgcmVhZGVyLlJlYWRTdGFydEVsZW1lbnQoX3N0cmluZ3MuUmVzdWx0cyk7DQoNCiAgICAgICAgICAgIGlmICghU3RyaW5nUmVmZXJlbmNlLkFyZUVxdWFsKHJlYWRlci5Mb2NhbE5hbWUsIF9zdHJpbmdzLkNwcENoZWNrKSkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICB0aHJvdyByZWFkZXIuQ3JlYXRlRXhjZXB0aW9uKENvbnZlcnRlclJlc291cmNlcy5DcHBDaGVja0NwcENoZWNrRWxlbWVudE1pc3NpbmcpOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBzdHJpbmcgdmVyc2lvbiA9IHJlYWRlci5HZXRBdHRyaWJ1dGUoX3N0cmluZ3MuVmVyc2lvbik7DQoNCiAgICAgICAgICAgIGlmICh2ZXJzaW9uICE9IG51bGwgJiYgIXZlcnNpb24uSXNTZW1hbnRpY1ZlcnNpb25pbmdDb21wYXRpYmxlKCkpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgLy8gVGhpcyBsb2dpYyBvbmx5IGZpeGVzIHVwIHNpbXBsZSBjYXNlcywgc3VjaCBhcyBiZWluZyBwYXNzZWQNCiAgICAgICAgICAgICAgICAvLyAxLjY2LCB3aGVyZSBTZW1hbnRpYyBWZXJzaW9uaW5nIDIuMCByZXF1aXJlcyAxLjY2LjAuIEFsc28NCiAgICAgICAgICAgICAgICAvLyBzdHJpcHMgUmV2aXNpb24gbWVtYmVyIGlmIHBhc3NlZCBhIGNvbXBsZXRlIC5ORVQgdmVyc2lvbi4NCiAgICAgICAgICAgICAgICBWZXJzaW9uIGRvdE5ldFZlcnNpb247DQogICAgICAgICAgICAgICAgaWYgKFZlcnNpb24uVHJ5UGFyc2UodmVyc2lvbiwgb3V0IGRvdE5ldFZlcnNpb24pKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgdmVyc2lvbiA9IA0KICAgICAgICAgICAgICAgICAgICAgICAgTWF0aC5NYXgoMCwgZG90TmV0VmVyc2lvbi5NYWpvcikgKyAiLiIgKyANCiAgICAgICAgICAgICAgICAgICAgICAgIE1hdGguTWF4KDAsIGRvdE5ldFZlcnNpb24uTWlub3IpICsgIi4iICsgDQogICAgICAgICAgICAgICAgICAgICAgICBNYXRoLk1heCgwLCBkb3ROZXRWZXJzaW9uLkJ1aWxkKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIGlmIChTdHJpbmcuSXNOdWxsT3JXaGl0ZVNwYWNlKHZlcnNpb24pKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHRocm93IHJlYWRlci5DcmVhdGVFeGNlcHRpb24oQ29udmVydGVyUmVzb3VyY2VzLkNwcENoZWNrQ3BwQ2hlY2tFbGVtZW50TWlzc2luZyk7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIHJlYWRlci5Ta2lwKCk7IC8vIDxjcHBjaGVjayAvPg0KDQogICAgICAgICAgICBpZiAoIVN0cmluZ1JlZmVyZW5jZS5BcmVFcXVhbChyZWFkZXIuTG9jYWxOYW1lLCBfc3RyaW5ncy5FcnJvcnMpKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHRocm93IHJlYWRlci5DcmVhdGVFeGNlcHRpb24oQ29udmVydGVyUmVzb3VyY2VzLkNwcENoZWNrRXJyb3JzRWxlbWVudE1pc3NpbmcpOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICB2YXIgcmVzdWx0cyA9IG5ldyBMaXN0PFJlc3VsdD4oKTsNCiAgICAgICAgICAgIGlmIChyZWFkZXIuSXNFbXB0eUVsZW1lbnQpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgcmVhZGVyLlNraXAoKTsgLy8gPGVycm9ycyAvPg0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZWxzZQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIGludCBlcnJvcnNEZXB0aCA9IHJlYWRlci5EZXB0aDsNCiAgICAgICAgICAgICAgICByZWFkZXIuUmVhZCgpOyAvLyA8ZXJyb3JzPg0KDQogICAgICAgICAgICAgICAgd2hpbGUgKHJlYWRlci5EZXB0aCA+IGVycm9yc0RlcHRoKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHBhcnNlZEVycm9yID0gQ3BwQ2hlY2tFcnJvci5QYXJzZShyZWFkZXIsIF9zdHJpbmdzKTsNCiAgICAgICAgICAgICAgICAgICAgcmVzdWx0cy5BZGQocGFyc2VkRXJyb3IuVG9TYXJpZklzc3VlKCkpOw0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgIHJlYWRlci5SZWFkRW5kRWxlbWVudCgpOyAvLyA8L2Vycm9ycz4NCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgcmVhZGVyLlJlYWRFbmRFbGVtZW50KCk7IC8vIDwvcmVzdWx0cz4NCg0KICAgICAgICAgICAgdmFyIHRvb2wgPSBuZXcgVG9vbA0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIE5hbWUgPSAiQ3BwQ2hlY2siLA0KICAgICAgICAgICAgICAgIFZlcnNpb24gPSB2ZXJzaW9uLA0KICAgICAgICAgICAgfTsNCg0KICAgICAgICAgICAgdmFyIGZpbGVJbmZvRmFjdG9yeSA9IG5ldyBGaWxlSW5mb0ZhY3RvcnkodXJpID0+IE1pbWVUeXBlLkNwcCwgZGF0YVRvSW5zZXJ0KTsNCiAgICAgICAgICAgIERpY3Rpb25hcnk8c3RyaW5nLCBGaWxlRGF0YT4gZmlsZURpY3Rpb25hcnkgPSBmaWxlSW5mb0ZhY3RvcnkuQ3JlYXRlKHJlc3VsdHMpOw0KDQogICAgICAgICAgICB2YXIgcnVuID0gbmV3IFJ1bigpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgVG9vbCA9IHRvb2wNCiAgICAgICAgICAgIH07DQoNCiAgICAgICAgICAgIG91dHB1dC5Jbml0aWFsaXplKHJ1bik7DQoNCiAgICAgICAgICAgIGlmIChmaWxlRGljdGlvbmFyeSAhPSBudWxsICYmIGZpbGVEaWN0aW9uYXJ5LkNvdW50ID4gMCkgeyBvdXRwdXQuV3JpdGVGaWxlcyhmaWxlRGljdGlvbmFyeSk7IH0NCg0KICAgICAgICAgICAgb3V0cHV0Lk9wZW5SZXN1bHRzKCk7DQogICAgICAgICAgICBvdXRwdXQuV3JpdGVSZXN1bHRzKHJlc3VsdHMpOw0KICAgICAgICAgICAgb3V0cHV0LkNsb3NlUmVzdWx0cygpOw0KICAgICAgICB9DQogICAgfQ0KfQ0K" + { + "ruleId": "CA1704", + "message": { + "text": "Correct the spelling of 'Sarif' in namespace name 'Microsoft.CodeAnalysis.Sarif.Baseline'.", + "id": "Namespace" }, - "hashes": [ - { - "value": "034EB22574ABF9E8243CAB64E545A2D6", - "algorithm": "md5" - }, - { - "value": "C0A196A4DB5F9E8527F8C8FD7265E8397A219BAD", - "algorithm": "sha-1" - }, + "locations": [ { - "value": "E3613DF357FF33177A5FDED22EF2C729FF8E4E2A6F6B8608B11A91DD12FE4EDF", - "algorithm": "sha-256" + "logicalLocations": [ + { + "index": 1, + "fullyQualifiedName": "Microsoft.CodeAnalysis.Sarif.Baseline" + } + ] } - ] + ], + "partialFingerprints": { + "UniqueId": "Sarif#Namespace" + }, + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" + } }, - "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/Extensions.cs": { - "mimeType": "text/x-csharp", - "contents": { - "binary": "77u/Ly8gQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuDQovLyBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UuIFNlZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHByb2plY3Qgcm9vdCBmb3IgZnVsbCBsaWNlbnNlIGluZm9ybWF0aW9uLg0KDQp1c2luZyBTeXN0ZW07DQp1c2luZyBTeXN0ZW0uR2xvYmFsaXphdGlvbjsNCnVzaW5nIFN5c3RlbS5SZWZsZWN0aW9uOw0KdXNpbmcgU3lzdGVtLlhtbDsNCg0KbmFtZXNwYWNlIE1pY3Jvc29mdC5Db2RlQW5hbHlzaXMuU2FyaWYuQ29udmVydGVycw0Kew0KICAgIHB1YmxpYyBzdGF0aWMgY2xhc3MgRXh0ZW5zaW9ucw0KICAgIHsNCiAgICAgICAgLy8gQ29tcGFyZSB0b29sIGZvcm1hdCBzdHJpbmdzIHdpdGggYXBwcm9wcmlhdGUgY29tcGFyaXNvbiB0eXBlLg0KICAgICAgICBwdWJsaWMgc3RhdGljIGJvb2wgTWF0Y2hlc1Rvb2xGb3JtYXQodGhpcyBzdHJpbmcgdG9vbEZvcm1hdCwgc3RyaW5nIG90aGVyKQ0KICAgICAgICB7DQogICAgICAgICAgICByZXR1cm4gdG9vbEZvcm1hdC5FcXVhbHMob3RoZXIsIFN0cmluZ0NvbXBhcmlzb24uT3JkaW5hbElnbm9yZUNhc2UpOw0KICAgICAgICB9DQoNCiAgICAgICAgLy8gRGV0ZXJtaW5lIHdoZXRoZXIgYSB0eXBlIGhhcyBhIGNvbnN0cnVjdG9yIHRoYXQgdGFrZXMgbm8gYXJndW1lbnRzLg0KICAgICAgICBwdWJsaWMgc3RhdGljIGJvb2wgSGFzRGVmYXVsdENvbnN0cnVjdG9yKHRoaXMgVHlwZSB0eXBlKQ0KICAgICAgICB7DQogICAgICAgICAgICByZXR1cm4gdHlwZS5HZXRDb25zdHJ1Y3RvcigNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBCaW5kaW5nRmxhZ3MuSW5zdGFuY2UgfCBCaW5kaW5nRmxhZ3MuUHVibGljLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJpbmRlcjogbnVsbCwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlczogbmV3IFR5cGVbMF0sIC8vIFRoZSB0eXBlcyBvZiB0aGUgY29uc3RydWN0b3IgYXJndW1lbnRzLg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vZGlmaWVyczogbmV3IFBhcmFtZXRlck1vZGlmaWVyWzBdKSAhPSBudWxsOw0KICAgICAgICB9DQoNCiAgICAgICAgLy8gRW5mb3JjZSB0aGUgY29udmVudGlvbiB0aGF0IHRoZSBjb252ZXJ0ZXIgdHlwZSBuYW1lIGlzIGRlcml2ZWQgZnJvbSB0aGUgdG9vbCBuYW1lLg0KICAgICAgICAvLyBJdCBjYW4gcmVzaWRlIGluIGFueSBuYW1lc3BhY2UuDQogICAgICAgIHB1YmxpYyBzdGF0aWMgc3RyaW5nIENvbnZlcnRlclR5cGVOYW1lKHRoaXMgc3RyaW5nIHRvb2xGb3JtYXQpDQogICAgICAgIHsNCiAgICAgICAgICAgIHJldHVybiB0b29sRm9ybWF0ICsgIkNvbnZlcnRlciI7DQogICAgICAgIH0NCg0KICAgICAgICAvLy8gPHN1bW1hcnk+QW4gWG1sUmVhZGVyIGV4dGVuc2lvbiBtZXRob2QgdGhhdCByZWFkcyBvcHRpb25hbCBlbGVtZW50J3MgY29udGVudCBhcyBzdHJpbmcuPC9zdW1tYXJ5Pg0KICAgICAgICAvLy8gPHBhcmFtIG5hbWU9InhtbFJlYWRlciI+VGhlIHhtbFJlYWRlciBmcm9tIHdoaWNoIGxpbmUgZGF0YSBzaGFsbCBiZSByZXRyaWV2ZWQuPC9wYXJhbT4NCiAgICAgICAgLy8vIDxwYXJhbSBuYW1lPSJlbGVtZW50TmFtZSI+TmFtZSBvZiB0aGUgZWxlbWVudCBleHBlY3RlZC48L3BhcmFtPg0KICAgICAgICAvLy8gPHJldHVybnM+VGhlIG9wdGlvbmFsIGVsZW1lbnQgY29udGVudCBhcyBzdHJpbmcgaWYgdGhlIGVsZW1lbnQgaXMgcHJlc2VudDsgb3RoZXJ3aXNlLCBudWxsLjwvcmV0dXJucz4NCiAgICAgICAgaW50ZXJuYWwgc3RhdGljIHN0cmluZyBSZWFkT3B0aW9uYWxFbGVtZW50Q29udGVudEFzU3RyaW5nKHRoaXMgWG1sUmVhZGVyIHhtbFJlYWRlciwgc3RyaW5nIGVsZW1lbnROYW1lKQ0KICAgICAgICB7DQogICAgICAgICAgICBpZiAoeG1sUmVhZGVyLk5vZGVUeXBlID09IFhtbE5vZGVUeXBlLkVsZW1lbnQgJiYgU3RyaW5nUmVmZXJlbmNlLkFyZUVxdWFsKHhtbFJlYWRlci5Mb2NhbE5hbWUsIGVsZW1lbnROYW1lKSkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICByZXR1cm4geG1sUmVhZGVyLlJlYWRFbGVtZW50Q29udGVudEFzU3RyaW5nKCk7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIHJldHVybiBudWxsOw0KICAgICAgICB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gQ3JlYXRlcyBhbiBleGNlcHRpb24gd2l0aCBsaW5lIG51bWJlciBhbmQgcG9zaXRpb24gZGF0YSBmcm9tIGFuIDxzZWUgY3JlZj0iWG1sUmVhZGVyIi8+Lg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICAvLy8gPHBhcmFtIG5hbWU9InhtbFJlYWRlciI+VGhlIHhtbFJlYWRlciBmcm9tIHdoaWNoIGxpbmUgZGF0YSBzaGFsbCBiZSByZXRyaWV2ZWQuPC9wYXJhbT4NCiAgICAgICAgLy8vIDxwYXJhbSBuYW1lPSJtZXNzYWdlIj5UaGUgbWVzc2FnZSB0byBhdHRhY2ggdG8gdGhlIGV4Y2VwdGlvbi48L3BhcmFtPg0KICAgICAgICAvLy8gPHJldHVybnM+DQogICAgICAgIC8vLyBUaGUgbmV3IGV4Y2VwdGlvbiB3aXRoIDxwYXJhbXJlZiBuYW1lPSJtZXNzYWdlIi8+LCBhbmQgZmlsZSBhbmQgbGluZSBpbmZvcm1hdGlvbiBmcm9tDQogICAgICAgIC8vLyA8cGFyYW1yZWYgbmFtZT0ieG1sUmVhZGVyIi8+Lg0KICAgICAgICAvLy8gPC9yZXR1cm5zPg0KICAgICAgICBpbnRlcm5hbCBzdGF0aWMgWG1sRXhjZXB0aW9uIENyZWF0ZUV4Y2VwdGlvbih0aGlzIFhtbFJlYWRlciB4bWxSZWFkZXIsIHN0cmluZyBtZXNzYWdlKQ0KICAgICAgICB7DQogICAgICAgICAgICB2YXIgcG9zaXRpb25JbmZvID0geG1sUmVhZGVyIGFzIElYbWxMaW5lSW5mbzsNCiAgICAgICAgICAgIGlmIChwb3NpdGlvbkluZm8gPT0gbnVsbCB8fCAhcG9zaXRpb25JbmZvLkhhc0xpbmVJbmZvKCkpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBYbWxFeGNlcHRpb24obWVzc2FnZSk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBYbWxFeGNlcHRpb24obWVzc2FnZSwgbnVsbCwgcG9zaXRpb25JbmZvLkxpbmVOdW1iZXIsIHBvc2l0aW9uSW5mby5MaW5lUG9zaXRpb24pOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5PkNyZWF0ZXMgYW4gZXhjZXB0aW9uIHdpdGggbGluZSBudW1iZXIgYW5kIHBvc2l0aW9uIGRhdGEgZnJvbSBhbg0KICAgICAgICAvLy8gPHNlZSBjcmVmPSJYbWxSZWFkZXIiLz4uPC9zdW1tYXJ5Pg0KICAgICAgICAvLy8gPHBhcmFtIG5hbWU9InhtbFJlYWRlciI+VGhlIHhtbFJlYWRlciBmcm9tIHdoaWNoIGxpbmUgZGF0YSBzaGFsbCBiZSByZXRyaWV2ZWQuPC9wYXJhbT4NCiAgICAgICAgLy8vIDxwYXJhbSBuYW1lPSJtZXNzYWdlIj5UaGUgbWVzc2FnZSB0byBhdHRhY2ggdG8gdGhlIGV4Y2VwdGlvbi48L3BhcmFtPg0KICAgICAgICAvLy8gPHBhcmFtIG5hbWU9ImFyZ3MiPkEgdmFyaWFibGUtbGVuZ3RoIHBhcmFtZXRlcnMgbGlzdCBjb250YWluaW5nIGFyZ3VtZW50cyBmb3JtYXR0ZWQgaW50bw0KICAgICAgICAvLy8gPHBhcmFtcmVmIG5hbWU9Im1lc3NhZ2UiLz4uPC9wYXJhbT4NCiAgICAgICAgLy8vIDxyZXR1cm5zPlRoZSBuZXcgZXhjZXB0aW9uIHdpdGggPHBhcmFtcmVmIG5hbWU9Im1lc3NhZ2UiLz4sIGFuZCBmaWxlIGFuZCBsaW5lIGluZm9ybWF0aW9uIGZyb20NCiAgICAgICAgLy8vIDxwYXJhbXJlZiBuYW1lPSJ4bWxSZWFkZXIiLz4uPC9yZXR1cm5zPg0KICAgICAgICBpbnRlcm5hbCBzdGF0aWMgWG1sRXhjZXB0aW9uIENyZWF0ZUV4Y2VwdGlvbih0aGlzIFhtbFJlYWRlciB4bWxSZWFkZXIsIHN0cmluZyBtZXNzYWdlLCBwYXJhbXMgb2JqZWN0W10gYXJncykNCiAgICAgICAgew0KICAgICAgICAgICAgcmV0dXJuIHhtbFJlYWRlci5DcmVhdGVFeGNlcHRpb24oU3RyaW5nLkZvcm1hdChDdWx0dXJlSW5mby5DdXJyZW50Q3VsdHVyZSwgbWVzc2FnZSwgYXJncykpOw0KICAgICAgICB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5PkFzc2VydHMgdGhhdCB0aGUgbG9jYWwgbmFtZSBvZiBhIGdpdmVuIGVsZW1lbnQgaXMgdGhlIG5hbWUgaW5kaWNhdGVkLCBhbmQgaWdub3JlcyB0aGUNCiAgICAgICAgLy8vIGVsZW1lbnQncyBjb250ZW50cy48L3N1bW1hcnk+DQogICAgICAgIC8vLyA8ZXhjZXB0aW9uIGNyZWY9IlhtbEV4Y2VwdGlvbiI+VGhyb3duIHdoZW4gdGhlIFhNTCBjb250ZW50IHBvaW50ZWQgdG8gYnkNCiAgICAgICAgLy8vIDxwYXJhbXJlZiBuYW1lPSJ4bWxSZWFkZXIiLz4gZG9lcyBub3QgbWF0Y2ggdGhlIGluZGljYXRlZCA8cGFyYW1yZWYgbmFtZT0iZWxlbWVudE5hbWUiLz4gYW5kDQogICAgICAgIC8vLyA8cGFyYW1yZWYgbmFtZT0ib3B0aW9ucyIvPi48L2V4Y2VwdGlvbj4NCiAgICAgICAgLy8vIDxwYXJhbSBuYW1lPSJ4bWxSZWFkZXIiPlRoZSBYTUwgcmVhZGVyIGZyb20gd2hpY2ggdGhlIGVsZW1lbnQgc2hhbGwgYmUgcmVhZC48L3BhcmFtPg0KICAgICAgICAvLy8gPHBhcmFtIG5hbWU9ImVsZW1lbnROYW1lIj5OYW1lIG9mIHRoZSBlbGVtZW50LjwvcGFyYW0+DQogICAgICAgIC8vLyA8cGFyYW0gbmFtZT0ib3B0aW9ucyI+T3B0aW9ucyBkZWNpZGluZyB3aGF0IGNvbnRlbnQgdG8gc2tpcC48L3BhcmFtPg0KICAgICAgICBpbnRlcm5hbCBzdGF0aWMgdm9pZCBJZ25vcmVFbGVtZW50KHRoaXMgWG1sUmVhZGVyIHhtbFJlYWRlciwgc3RyaW5nIGVsZW1lbnROYW1lLCBJZ25vcmVPcHRpb25zIG9wdGlvbnMpDQogICAgICAgIHsNCiAgICAgICAgICAgIGlmICghSXNPbkVsZW1lbnQoeG1sUmVhZGVyLCBlbGVtZW50TmFtZSkpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgaWYgKG9wdGlvbnMuSGFzRmxhZyhJZ25vcmVPcHRpb25zLk9wdGlvbmFsKSkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgZWxzZQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgdGhyb3cgeG1sUmVhZGVyLkNyZWF0ZUV4Y2VwdGlvbihDb252ZXJ0ZXJSZXNvdXJjZXMuRXhwZWN0ZWRFbGVtZW50TmFtZWQsIGVsZW1lbnROYW1lKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIHhtbFJlYWRlci5Ta2lwKCk7DQogICAgICAgICAgICBpZiAob3B0aW9ucy5IYXNGbGFnKElnbm9yZU9wdGlvbnMuTXVsdGlwbGUpKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHdoaWxlIChJc09uRWxlbWVudCh4bWxSZWFkZXIsIGVsZW1lbnROYW1lKSkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIHhtbFJlYWRlci5Ta2lwKCk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICAgICAgLy8gU2FtZSBhcyBYbWxSZWFkZXIuSXNTdGFydEVsZW1lbnQgZXhjZXB0IGRvZXMgbm90IGNhbGwgTW92ZVRvQ29udGVudCBmaXJzdC4NCiAgICAgICAgcHJpdmF0ZSBzdGF0aWMgYm9vbCBJc09uRWxlbWVudChYbWxSZWFkZXIgeG1sUmVhZGVyLCBzdHJpbmcgZWxlbWVudE5hbWUpDQogICAgICAgIHsNCiAgICAgICAgICAgIHJldHVybiB4bWxSZWFkZXIuTm9kZVR5cGUgPT0gWG1sTm9kZVR5cGUuRWxlbWVudCAmJiBTdHJpbmdSZWZlcmVuY2UuQXJlRXF1YWwoeG1sUmVhZGVyLkxvY2FsTmFtZSwgZWxlbWVudE5hbWUpOw0KICAgICAgICB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gQ3JlYXRlcyBhIG5ldyByZWdpb24gd2l0aCB0aGUgc3RhcnQgbGluZSBmaWxsZWQgb3V0Lg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICAvLy8gPHBhcmFtIG5hbWU9InN0YXJ0TGluZSI+VGhlIGxpbmUgdG8gc2V0IGluIHRoZSByZWdpb24uPC9wYXJhbT4NCiAgICAgICAgLy8vIDxyZXR1cm5zPkEgPHNlZSBjcmVmPSJSZWdpb24iLz4gd2l0aCA8c2VlIGNyZWY9IlJlZ2lvbi5TdGFydExpbmUiLz4gZmlsbGVkIG91dC48L3JldHVybnM+DQogICAgICAgIGludGVybmFsIHN0YXRpYyBSZWdpb24gQ3JlYXRlUmVnaW9uKGludCBzdGFydExpbmUpDQogICAgICAgIHsNCiAgICAgICAgICAgIHJldHVybiBuZXcgUmVnaW9uDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgU3RhcnRMaW5lID0gc3RhcnRMaW5lDQogICAgICAgICAgICB9Ow0KICAgICAgICB9DQogICAgfQ0KfQ0K" + { + "ruleId": "CA1020", + "message": { + "text": "Consider merging the types defined in 'Microsoft.CodeAnalysis.Sarif.Baseline.DefaultBaseline' with another namespace." }, - "hashes": [ - { - "value": "B6852CB5FFBE15421CCCDA9390042ACF", - "algorithm": "md5" - }, - { - "value": "84814144ECEA14B754FD656B9C126078F6BE4551", - "algorithm": "sha-1" - }, + "locations": [ { - "value": "7354460BC465D9413635288ECC9EA611D2EB6C0B6B4EB5E4B6C9D907E699613D", - "algorithm": "sha-256" + "logicalLocations": [ + { + "index": 2, + "fullyQualifiedName": "Microsoft.CodeAnalysis.Sarif.Baseline.DefaultBaseline" + } + ] } - ] + ], + "properties": { + "Category": "Microsoft.Design", + "FixCategory": "Breaking" + } }, - "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/FortifyConverter.cs": { - "mimeType": "text/x-csharp", - "contents": { - "binary": "77u/Ly8gQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuDQovLyBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UuIFNlZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHByb2plY3Qgcm9vdCBmb3IgZnVsbCBsaWNlbnNlIGluZm9ybWF0aW9uLg0KDQp1c2luZyBTeXN0ZW07DQp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsNCnVzaW5nIFN5c3RlbS5HbG9iYWxpemF0aW9uOw0KdXNpbmcgU3lzdGVtLklPOw0KdXNpbmcgU3lzdGVtLkxpbnE7DQp1c2luZyBTeXN0ZW0uWG1sOw0KdXNpbmcgTWljcm9zb2Z0LkNvZGVBbmFseXNpcy5TYXJpZi5Xcml0ZXJzOw0KDQpuYW1lc3BhY2UgTWljcm9zb2Z0LkNvZGVBbmFseXNpcy5TYXJpZi5Db252ZXJ0ZXJzDQp7DQogICAgaW50ZXJuYWwgY2xhc3MgRm9ydGlmeUNvbnZlcnRlciA6IFRvb2xGaWxlQ29udmVydGVyQmFzZQ0KICAgIHsNCiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBOYW1lVGFibGUgX25hbWVUYWJsZTsNCiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBGb3J0aWZ5U3RyaW5ncyBfc3RyaW5nczsNCg0KICAgICAgICAvLy8gPHN1bW1hcnk+SW5pdGlhbGl6ZXMgYSBuZXcgaW5zdGFuY2Ugb2YgdGhlIDxzZWUgY3JlZj0iRm9ydGlmeUNvbnZlcnRlciIvPiBjbGFzcy48L3N1bW1hcnk+DQogICAgICAgIHB1YmxpYyBGb3J0aWZ5Q29udmVydGVyKCkNCiAgICAgICAgew0KICAgICAgICAgICAgX25hbWVUYWJsZSA9IG5ldyBOYW1lVGFibGUoKTsNCiAgICAgICAgICAgIF9zdHJpbmdzID0gbmV3IEZvcnRpZnlTdHJpbmdzKF9uYW1lVGFibGUpOw0KICAgICAgICB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gSW50ZXJmYWNlIGltcGxlbWVudGF0aW9uIGZvciBjb252ZXJ0aW5nIGEgc3RyZWFtIG9mIEZvcnRpZnkgcmVwb3J0IGluIFhNTCBmb3JtYXQgdG8gYQ0KICAgICAgICAvLy8gU0FSSUYganNvbiBmb3JtYXQgc3RyZWFtLg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICAvLy8gPGV4Y2VwdGlvbiBjcmVmPSJBcmd1bWVudE51bGxFeGNlcHRpb24iPlRocm93biB3aGVuIG9uZSBvciBtb3JlIHJlcXVpcmVkIGFyZ3VtZW50cyBhcmUgbnVsbC48L2V4Y2VwdGlvbj4NCiAgICAgICAgLy8vIDxwYXJhbSBuYW1lPSJpbnB1dCI+U3RyZWFtIG9mIHRoZSBGb3J0aWZ5IHJlcG9ydC48L3BhcmFtPg0KICAgICAgICAvLy8gPHBhcmFtIG5hbWU9Im91dHB1dCI+U3RyZWFtIG9mIFNBUklGIGpzb24uPC9wYXJhbT4NCiAgICAgICAgLy8vIDxwYXJhbSBuYW1lPSJkYXRhVG9JbnNlcnQiPk9wdGlvbmFsbHkgZW1pdHRlZCBwcm9wZXJ0aWVzIHRoYXQgc2hvdWxkIGJlIHdyaXR0ZW4gdG8gbG9nLjwvcGFyYW0+DQogICAgICAgIHB1YmxpYyBvdmVycmlkZSB2b2lkIENvbnZlcnQoU3RyZWFtIGlucHV0LCBJUmVzdWx0TG9nV3JpdGVyIG91dHB1dCwgT3B0aW9uYWxseUVtaXR0ZWREYXRhIGRhdGFUb0luc2VydCkNCiAgICAgICAgew0KICAgICAgICAgICAgaWYgKGlucHV0ID09IG51bGwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgdGhyb3cgbmV3IEFyZ3VtZW50TnVsbEV4Y2VwdGlvbihuYW1lb2YoaW5wdXQpKTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgaWYgKG91dHB1dCA9PSBudWxsKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHRocm93IG5ldyBBcmd1bWVudE51bGxFeGNlcHRpb24obmFtZW9mKG91dHB1dCkpOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICB2YXIgc2V0dGluZ3MgPSBuZXcgWG1sUmVhZGVyU2V0dGluZ3MNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBEdGRQcm9jZXNzaW5nID0gRHRkUHJvY2Vzc2luZy5JZ25vcmUsDQogICAgICAgICAgICAgICAgSWdub3JlV2hpdGVzcGFjZSA9IHRydWUsDQogICAgICAgICAgICAgICAgTmFtZVRhYmxlID0gX25hbWVUYWJsZSwNCiAgICAgICAgICAgICAgICBYbWxSZXNvbHZlciA9IG51bGwNCiAgICAgICAgICAgIH07DQoNCiAgICAgICAgICAgIHN0cmluZyBydW5EZXNjcmlwdGlvbiA9IG51bGw7DQogICAgICAgICAgICB2YXIgcmVzdWx0cyA9IG5ldyBMaXN0PFJlc3VsdD4oKTsNCg0KICAgICAgICAgICAgdXNpbmcgKFhtbFJlYWRlciByZWFkZXIgPSBYbWxSZWFkZXIuQ3JlYXRlKGlucHV0LCBzZXR0aW5ncykpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgd2hpbGUgKHJlYWRlci5SZWFkKCkpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBpZiAocnVuRGVzY3JpcHRpb24gPT0gbnVsbCkNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgLy8gRmluZCB0aGUgZXhlY3V0aXZlIHN1bW1hcnkgPFJlcG9ydFNlY3Rpb24+IGVsZW1lbnQNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChTdHJpbmdSZWZlcmVuY2UuQXJlRXF1YWwocmVhZGVyLkxvY2FsTmFtZSwgX3N0cmluZ3MuUmVwb3J0U2VjdGlvbikgJiYgcmVhZGVyLklzU3RhcnRFbGVtZW50KCkpDQogICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVhZGVyLlJlYWQoKTsgLy8gTW92ZSB0byBUaXRsZSBlbGVtZW50DQoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVhZGVyLlJlYWRFbGVtZW50Q29udGVudEFzU3RyaW5nKF9zdHJpbmdzLlRpdGxlLCBTdHJpbmcuRW1wdHkpID09ICJFeGVjdXRpdmUgU3VtbWFyeSIpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWFkZXIuUmVhZCgpOyAvLyBNb3ZlIHRvIFN1YlNlY3Rpb24gZWxlbWVudA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWFkZXIuSWdub3JlRWxlbWVudChfc3RyaW5ncy5UaXRsZSwgSWdub3JlT3B0aW9ucy5SZXF1aXJlZCk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlYWRlci5JZ25vcmVFbGVtZW50KF9zdHJpbmdzLkRlc2NyaXB0aW9uLCBJZ25vcmVPcHRpb25zLlJlcXVpcmVkKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnVuRGVzY3JpcHRpb24gPSByZWFkZXIuUmVhZEVsZW1lbnRDb250ZW50QXNTdHJpbmcoX3N0cmluZ3MuVGV4dCwgU3RyaW5nLkVtcHR5KTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgZWxzZQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICB3aGlsZSAoU3RyaW5nUmVmZXJlbmNlLkFyZUVxdWFsKHJlYWRlci5Mb2NhbE5hbWUsIF9zdHJpbmdzLklzc3VlKSkNCiAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBGb3J0aWZ5SXNzdWUgZm9ydGlmeSA9IEZvcnRpZnlJc3N1ZS5QYXJzZShyZWFkZXIsIF9zdHJpbmdzKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHRzLkFkZChDb252ZXJ0Rm9ydGlmeUlzc3VlVG9TYXJpZklzc3VlKGZvcnRpZnkpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgdmFyIHRvb2wgPSBuZXcgVG9vbA0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIE5hbWUgPSAiRm9ydGlmeSINCiAgICAgICAgICAgIH07DQoNCiAgICAgICAgICAgIHZhciBmaWxlSW5mb0ZhY3RvcnkgPSBuZXcgRmlsZUluZm9GYWN0b3J5KE1pbWVUeXBlLkRldGVybWluZUZyb21GaWxlRXh0ZW5zaW9uLCBkYXRhVG9JbnNlcnQpOw0KICAgICAgICAgICAgRGljdGlvbmFyeTxzdHJpbmcsIEZpbGVEYXRhPiBmaWxlRGljdGlvbmFyeSA9IGZpbGVJbmZvRmFjdG9yeS5DcmVhdGUocmVzdWx0cyk7DQoNCiAgICAgICAgICAgIHZhciBydW4gPSBuZXcgUnVuKCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBEZXNjcmlwdGlvbiA9IG5ldyBNZXNzYWdlDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBUZXh0ID0gcnVuRGVzY3JpcHRpb24NCiAgICAgICAgICAgICAgICB9LA0KICAgICAgICAgICAgICAgIFRvb2wgPSB0b29sDQogICAgICAgICAgICB9Ow0KDQogICAgICAgICAgICBvdXRwdXQuSW5pdGlhbGl6ZShydW4pOw0KDQogICAgICAgICAgICBpZiAoZmlsZURpY3Rpb25hcnkgIT0gbnVsbCAmJiBmaWxlRGljdGlvbmFyeS5Db3VudCA+IDApIHsgb3V0cHV0LldyaXRlRmlsZXMoZmlsZURpY3Rpb25hcnkpOyB9DQoNCiAgICAgICAgICAgIG91dHB1dC5PcGVuUmVzdWx0cygpOw0KICAgICAgICAgICAgb3V0cHV0LldyaXRlUmVzdWx0cyhyZXN1bHRzKTsNCiAgICAgICAgICAgIG91dHB1dC5DbG9zZVJlc3VsdHMoKTsNCiAgICAgICAgfQ0KDQogICAgICAgIC8vLyA8c3VtbWFyeT5Db252ZXJ0cyBhIEZvcnRpZnkgcmVzdWx0IHRvIGEgc3RhdGljIGFuYWx5c2lzIHJlc3VsdHMgaW50ZXJjaGFuZ2UgZm9ybWF0IHJlc3VsdC48L3N1bW1hcnk+DQogICAgICAgIC8vLyA8cGFyYW0gbmFtZT0iZm9ydGlmeSI+VGhlIEZvcnRpZnkgcmVzdWx0IGNvbnZlcnQuPC9wYXJhbT4NCiAgICAgICAgLy8vIDxyZXR1cm5zPg0KICAgICAgICAvLy8gQSBTQVJJRiByZXN1bHQgPHNlZSBjcmVmPSJSZXN1bHQiLz4gY29udGFpbmluZyB0aGUgc2FtZSBjb250ZW50IGFzIHRoZSBzdXBwbGllZA0KICAgICAgICAvLy8gPHNlZSBjcmVmPSJGb3J0aWZ5SXNzdWUiLz4uDQogICAgICAgIC8vLyA8L3JldHVybnM+DQogICAgICAgIHB1YmxpYyBzdGF0aWMgUmVzdWx0IENvbnZlcnRGb3J0aWZ5SXNzdWVUb1NhcmlmSXNzdWUoRm9ydGlmeUlzc3VlIGZvcnRpZnkpDQogICAgICAgIHsNCiAgICAgICAgICAgIHZhciByZXN1bHQgPSBuZXcgUmVzdWx0KCk7DQogICAgICAgICAgICByZXN1bHQuUnVsZUlkID0gZm9ydGlmeS5DYXRlZ29yeTsNCg0KICAgICAgICAgICAgaWYgKCFzdHJpbmcuSXNOdWxsT3JXaGl0ZVNwYWNlKGZvcnRpZnkuSW5zdGFuY2VJZCkpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgaWYgKHJlc3VsdC5QYXJ0aWFsRmluZ2VycHJpbnRzID09IG51bGwpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICByZXN1bHQuUGFydGlhbEZpbmdlcnByaW50cyA9IG5ldyBEaWN0aW9uYXJ5PHN0cmluZywgc3RyaW5nPigpOw0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgIFNhcmlmVXRpbGl0aWVzLkFkZE9yVXBkYXRlRGljdGlvbmFyeUVudHJ5KHJlc3VsdC5QYXJ0aWFsRmluZ2VycHJpbnRzLCAiSW5zdGFuY2VJZCIsIGZvcnRpZnkuSW5zdGFuY2VJZCk7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIExpc3Q8c3RyaW5nPiBtZXNzYWdlQ29tcG9uZW50cyA9IG5ldyBMaXN0PHN0cmluZz4oKTsNCiAgICAgICAgICAgIGlmIChmb3J0aWZ5LkFic3RyYWN0ICE9IG51bGwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgbWVzc2FnZUNvbXBvbmVudHMuQWRkKGZvcnRpZnkuQWJzdHJhY3QpOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBpZiAoZm9ydGlmeS5BYnN0cmFjdEN1c3RvbSAhPSBudWxsKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIG1lc3NhZ2VDb21wb25lbnRzLkFkZChmb3J0aWZ5LkFic3RyYWN0Q3VzdG9tKTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgaWYgKG1lc3NhZ2VDb21wb25lbnRzLkNvdW50ID09IDApDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgcmVzdWx0Lk1lc3NhZ2UgPSBuZXcgTWVzc2FnZQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgVGV4dCA9IFN0cmluZy5Gb3JtYXQoQ3VsdHVyZUluZm8uSW52YXJpYW50Q3VsdHVyZSwgQ29udmVydGVyUmVzb3VyY2VzLkZvcnRpZnlGYWxsYmFja01lc3NhZ2UsIHJlc3VsdC5SdWxlSWQpDQogICAgICAgICAgICAgICAgfTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2UNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICByZXN1bHQuTWVzc2FnZSA9IG5ldyBNZXNzYWdlDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBUZXh0ID0gU3RyaW5nLkpvaW4oRW52aXJvbm1lbnQuTmV3TGluZSwgbWVzc2FnZUNvbXBvbmVudHMpDQogICAgICAgICAgICAgICAgfTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgcmVzdWx0LlNldFByb3BlcnR5KCJraW5nZG9tIiwgZm9ydGlmeS5LaW5nZG9tKTsNCiAgICAgICAgICAgIGlmIChmb3J0aWZ5LlByaW9yaXR5ICE9IG51bGwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgcmVzdWx0LlNldFByb3BlcnR5KCJwcmlvcml0eSIsIGZvcnRpZnkuUHJpb3JpdHkpOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBpZiAoIWZvcnRpZnkuQ3dlSWRzLklzRGVmYXVsdE9yRW1wdHkpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgcmVzdWx0LlNldFByb3BlcnR5KCJjd2UiLCBTdHJpbmcuSm9pbigiLCAiLA0KICAgICAgICAgICAgICAgICAgICBmb3J0aWZ5LkN3ZUlkcy5TZWxlY3QoaWQgPT4gaWQuVG9TdHJpbmcoQ3VsdHVyZUluZm8uSW52YXJpYW50Q3VsdHVyZSkpKSk7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIGlmIChmb3J0aWZ5LlJ1bGVJZCAhPSBudWxsKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHJlc3VsdC5TZXRQcm9wZXJ0eSgiZm9ydGlmeVJ1bGVJZCIsIGZvcnRpZnkuUnVsZUlkKTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgUGh5c2ljYWxMb2NhdGlvbiBwcmltYXJ5T3JTaW5rID0gQ29udmVydEZvcnRpZnlMb2NhdGlvblRvUGh5c2ljYWxMb2NhdGlvbihmb3J0aWZ5LlByaW1hcnlPclNpbmspOw0KICAgICAgICAgICAgcmVzdWx0LkxvY2F0aW9ucyA9IG5ldyBMaXN0PExvY2F0aW9uPg0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIG5ldyBMb2NhdGlvbg0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgUGh5c2ljYWxMb2NhdGlvbiA9IHByaW1hcnlPclNpbmsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9Ow0KDQogICAgICAgICAgICBpZiAoZm9ydGlmeS5Tb3VyY2UgIT0gbnVsbCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBQaHlzaWNhbExvY2F0aW9uIHNvdXJjZSA9IENvbnZlcnRGb3J0aWZ5TG9jYXRpb25Ub1BoeXNpY2FsTG9jYXRpb24oZm9ydGlmeS5Tb3VyY2UpOw0KDQogICAgICAgICAgICAgICAgdmFyIGxvY2F0aW9ucyA9IG5ldyBMaXN0PFRocmVhZEZsb3dMb2NhdGlvbj4oKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgbmV3IFRocmVhZEZsb3dMb2NhdGlvbiB7IExvY2F0aW9uID0gbmV3IExvY2F0aW9uIHsgUGh5c2ljYWxMb2NhdGlvbiA9IHNvdXJjZSB9IH0sDQogICAgICAgICAgICAgICAgICAgIG5ldyBUaHJlYWRGbG93TG9jYXRpb24geyBMb2NhdGlvbiA9IG5ldyBMb2NhdGlvbiB7IFBoeXNpY2FsTG9jYXRpb24gPSBwcmltYXJ5T3JTaW5rIH0gfQ0KICAgICAgICAgICAgICAgIH07DQogICAgICAgICAgICAgICAgcmVzdWx0LkNvZGVGbG93cyA9IG5ldyBMaXN0PENvZGVGbG93PigpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBTYXJpZlV0aWxpdGllcy5DcmVhdGVTaW5nbGVUaHJlYWRlZENvZGVGbG93KGxvY2F0aW9ucykNCiAgICAgICAgICAgICAgICB9Ow0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICByZXR1cm4gcmVzdWx0Ow0KICAgICAgICB9DQoNCiAgICAgICAgcHJpdmF0ZSBzdGF0aWMgUGh5c2ljYWxMb2NhdGlvbiBDb252ZXJ0Rm9ydGlmeUxvY2F0aW9uVG9QaHlzaWNhbExvY2F0aW9uKEZvcnRpZnlQYXRoRWxlbWVudCBlbGVtZW50KQ0KICAgICAgICB7DQogICAgICAgICAgICByZXR1cm4gbmV3IFBoeXNpY2FsTG9jYXRpb24NCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBGaWxlTG9jYXRpb24gPSBuZXcgRmlsZUxvY2F0aW9uDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBVcmkgPSBuZXcgVXJpKGVsZW1lbnQuRmlsZVBhdGgsIFVyaUtpbmQuUmVsYXRpdmVPckFic29sdXRlKQ0KICAgICAgICAgICAgICAgIH0sDQogICAgICAgICAgICAgICAgUmVnaW9uID0gRXh0ZW5zaW9ucy5DcmVhdGVSZWdpb24oZWxlbWVudC5MaW5lU3RhcnQpDQogICAgICAgICAgICB9Ow0KICAgICAgICB9DQogICAgfQ0KfQ0K" + { + "ruleId": "CA1704", + "message": { + "text": "Correct the spelling of 'Sarif' in namespace name 'Microsoft.CodeAnalysis.Sarif.Baseline.DefaultBaseline'.", + "id": "Namespace" }, - "hashes": [ - { - "value": "559B3E8B95DF86D716230FD8CF74F25E", - "algorithm": "md5" - }, - { - "value": "1E8174678A9C7F8D6149913461D6F962CEDB71F8", - "algorithm": "sha-1" - }, + "locations": [ { - "value": "DC6B16D68385508D9D04E47E0B2DF0EC731BCEED13D22AFC51A262213B42122A", - "algorithm": "sha-256" + "logicalLocations": [ + { + "index": 2, + "fullyQualifiedName": "Microsoft.CodeAnalysis.Sarif.Baseline.DefaultBaseline" + } + ] } - ] + ], + "partialFingerprints": { + "UniqueId": "Sarif#Namespace" + }, + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" + } }, - "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/FortifyFprConverter.cs": { - "mimeType": "text/x-csharp", - "contents": { - "binary": "77u/Ly8gQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuDQovLyBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UuIFNlZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHByb2plY3Qgcm9vdCBmb3IgZnVsbCBsaWNlbnNlIGluZm9ybWF0aW9uLg0KDQp1c2luZyBTeXN0ZW07DQp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsNCnVzaW5nIFN5c3RlbS5HbG9iYWxpemF0aW9uOw0KdXNpbmcgU3lzdGVtLklPOw0KdXNpbmcgU3lzdGVtLklPLkNvbXByZXNzaW9uOw0KdXNpbmcgU3lzdGVtLkxpbnE7DQp1c2luZyBTeXN0ZW0uVGV4dDsNCnVzaW5nIFN5c3RlbS5YbWw7DQp1c2luZyBNaWNyb3NvZnQuQ29kZUFuYWx5c2lzLlNhcmlmLldyaXRlcnM7DQoNCm5hbWVzcGFjZSBNaWNyb3NvZnQuQ29kZUFuYWx5c2lzLlNhcmlmLkNvbnZlcnRlcnMNCnsNCiAgICBpbnRlcm5hbCBjbGFzcyBGb3J0aWZ5RnByQ29udmVydGVyIDogVG9vbEZpbGVDb252ZXJ0ZXJCYXNlDQogICAgew0KICAgICAgICBwcml2YXRlIGNvbnN0IHN0cmluZyBGb3J0aWZ5VG9vbE5hbWUgPSAiSFAgRm9ydGlmeSBTdGF0aWMgQ29kZSBBbmFseXplciI7DQogICAgICAgIHByaXZhdGUgY29uc3Qgc3RyaW5nIEZvcnRpZnlFeGVjdXRhYmxlID0gIltSRU1PVkVEXWluc291cmNlYW5hbHl6ZXIuZXhlIjsNCiAgICAgICAgcHJpdmF0ZSBjb25zdCBzdHJpbmcgUmVwbGFjZW1lbnRUb2tlbkZvcm1hdCA9ICI8UmVwbGFjZSBrZXk9XCJ7MH1cIi8+IjsNCiAgICAgICAgcHJpdmF0ZSBjb25zdCBzdHJpbmcgRW1iZWRkZWRMaW5rRm9ybWF0ID0gIlt7MH1dKDEpIjsNCg0KICAgICAgICBwcml2YXRlIHJlYWRvbmx5IE5hbWVUYWJsZSBfbmFtZVRhYmxlOw0KICAgICAgICBwcml2YXRlIHJlYWRvbmx5IEZvcnRpZnlGcHJTdHJpbmdzIF9zdHJpbmdzOw0KICAgICAgICBwcml2YXRlIHJlYWRvbmx5IHN0cmluZ1tdIFN1cHBvcnRlZFJlcGxhY2VtZW50VG9rZW5zID0gbmV3W10geyAiUHJpbWFyeUxvY2F0aW9uLmZpbGUiLCAiUHJpbWFyeUxvY2F0aW9uLmxpbmUiIH07DQoNCiAgICAgICAgcHJpdmF0ZSBYbWxSZWFkZXIgX3JlYWRlcjsNCiAgICAgICAgcHJpdmF0ZSBJbnZvY2F0aW9uIF9pbnZvY2F0aW9uOw0KICAgICAgICBwcml2YXRlIHN0cmluZyBfcnVuSWQ7DQogICAgICAgIHByaXZhdGUgc3RyaW5nIF9hdXRvbWF0aW9uSWQ7DQogICAgICAgIHByaXZhdGUgTGlzdDxSZXN1bHQ+IF9yZXN1bHRzID0gbmV3IExpc3Q8UmVzdWx0PigpOw0KICAgICAgICBwcml2YXRlIExpc3Q8Tm90aWZpY2F0aW9uPiBfdG9vbE5vdGlmaWNhdGlvbnM7DQogICAgICAgIHByaXZhdGUgRGljdGlvbmFyeTxzdHJpbmcsIEZpbGVEYXRhPiBfZmlsZURpY3Rpb25hcnk7DQogICAgICAgIHByaXZhdGUgRGljdGlvbmFyeTxzdHJpbmcsIElSdWxlPiBfcnVsZURpY3Rpb25hcnk7DQogICAgICAgIHByaXZhdGUgRGljdGlvbmFyeTxUaHJlYWRGbG93TG9jYXRpb24sIHN0cmluZz4gX3RmbFRvTm9kZUlkRGljdGlvbmFyeTsNCiAgICAgICAgcHJpdmF0ZSBEaWN0aW9uYXJ5PFRocmVhZEZsb3dMb2NhdGlvbiwgc3RyaW5nPiBfdGZsVG9TbmlwcGV0SWREaWN0aW9uYXJ5Ow0KICAgICAgICBwcml2YXRlIERpY3Rpb25hcnk8TG9jYXRpb24sIHN0cmluZz4gX2xvY2F0aW9uVG9TbmlwcGV0SWREaWN0aW9uYXJ5Ow0KICAgICAgICBwcml2YXRlIERpY3Rpb25hcnk8UmVzdWx0LCBzdHJpbmc+IF9yZXN1bHRUb1NuaXBwZXRJZERpY3Rpb25hcnk7DQogICAgICAgIHByaXZhdGUgRGljdGlvbmFyeTxSZXN1bHQsIERpY3Rpb25hcnk8c3RyaW5nLCBzdHJpbmc+PiBfcmVzdWx0VG9SZXBsYWNlbWVudERlZmluaXRpb25EaWN0aW9uYXJ5Ow0KICAgICAgICBwcml2YXRlIERpY3Rpb25hcnk8c3RyaW5nLCBMb2NhdGlvbj4gX25vZGVJZFRvTG9jYXRpb25EaWN0aW9uYXJ5Ow0KICAgICAgICBwcml2YXRlIERpY3Rpb25hcnk8c3RyaW5nLCBSZWdpb25bXT4gX3NuaXBwZXRJZFRvUmVnaW9uc0RpY3Rpb25hcnk7DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5PkluaXRpYWxpemVzIGEgbmV3IGluc3RhbmNlIG9mIHRoZSA8c2VlIGNyZWY9IkZvcnRpZnlGcHJDb252ZXJ0ZXIiLz4gY2xhc3MuPC9zdW1tYXJ5Pg0KICAgICAgICBwdWJsaWMgRm9ydGlmeUZwckNvbnZlcnRlcigpDQogICAgICAgIHsNCiAgICAgICAgICAgIF9uYW1lVGFibGUgPSBuZXcgTmFtZVRhYmxlKCk7DQogICAgICAgICAgICBfc3RyaW5ncyA9IG5ldyBGb3J0aWZ5RnByU3RyaW5ncyhfbmFtZVRhYmxlKTsNCg0KICAgICAgICAgICAgX3Jlc3VsdHMgPSBuZXcgTGlzdDxSZXN1bHQ+KCk7DQogICAgICAgICAgICBfdG9vbE5vdGlmaWNhdGlvbnMgPSBuZXcgTGlzdDxOb3RpZmljYXRpb24+KCk7DQogICAgICAgICAgICBfZmlsZURpY3Rpb25hcnkgPSBuZXcgRGljdGlvbmFyeTxzdHJpbmcsIEZpbGVEYXRhPigpOw0KICAgICAgICAgICAgX3J1bGVEaWN0aW9uYXJ5ID0gbmV3IERpY3Rpb25hcnk8c3RyaW5nLCBJUnVsZT4oKTsNCiAgICAgICAgICAgIF90ZmxUb05vZGVJZERpY3Rpb25hcnkgPSBuZXcgRGljdGlvbmFyeTxUaHJlYWRGbG93TG9jYXRpb24sIHN0cmluZz4oKTsNCiAgICAgICAgICAgIF90ZmxUb1NuaXBwZXRJZERpY3Rpb25hcnkgPSBuZXcgRGljdGlvbmFyeTxUaHJlYWRGbG93TG9jYXRpb24sIHN0cmluZz4oKTsNCiAgICAgICAgICAgIF9sb2NhdGlvblRvU25pcHBldElkRGljdGlvbmFyeSA9IG5ldyBEaWN0aW9uYXJ5PExvY2F0aW9uLCBzdHJpbmc+KCk7DQogICAgICAgICAgICBfcmVzdWx0VG9TbmlwcGV0SWREaWN0aW9uYXJ5ID0gbmV3IERpY3Rpb25hcnk8UmVzdWx0LCBzdHJpbmc+KCk7DQogICAgICAgICAgICBfcmVzdWx0VG9SZXBsYWNlbWVudERlZmluaXRpb25EaWN0aW9uYXJ5ID0gbmV3IERpY3Rpb25hcnk8UmVzdWx0LCBEaWN0aW9uYXJ5PHN0cmluZywgc3RyaW5nPj4oKTsNCiAgICAgICAgICAgIF9ub2RlSWRUb0xvY2F0aW9uRGljdGlvbmFyeSA9IG5ldyBEaWN0aW9uYXJ5PHN0cmluZywgTG9jYXRpb24+KCk7DQogICAgICAgICAgICBfc25pcHBldElkVG9SZWdpb25zRGljdGlvbmFyeSA9IG5ldyBEaWN0aW9uYXJ5PHN0cmluZywgUmVnaW9uW10+KCk7DQogICAgICAgIH0NCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBJbnRlcmZhY2UgaW1wbGVtZW50YXRpb24gZm9yIGNvbnZlcnRpbmcgYSBzdHJlYW0gaW4gRm9ydGlmeSBGUFIgZm9ybWF0IHRvIGEgc3RyZWFtIGluDQogICAgICAgIC8vLyBTQVJJRiBmb3JtYXQuDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIC8vLyA8ZXhjZXB0aW9uIGNyZWY9IkFyZ3VtZW50TnVsbEV4Y2VwdGlvbiI+VGhyb3duIHdoZW4gb25lIG9yIG1vcmUgcmVxdWlyZWQgYXJndW1lbnRzIGFyZSBudWxsLjwvZXhjZXB0aW9uPg0KICAgICAgICAvLy8gPHBhcmFtIG5hbWU9ImlucHV0Ij5TdHJlYW0gaW4gRm9ydGlmeSBGUFIgZm9ybWF0LjwvcGFyYW0+DQogICAgICAgIC8vLyA8cGFyYW0gbmFtZT0ib3V0cHV0Ij5TdHJlYW0gaW4gU0FSSUYgZm9ybWF0LjwvcGFyYW0+DQogICAgICAgIC8vLyA8cGFyYW0gbmFtZT0iZGF0YVRvSW5zZXJ0Ij5PcHRpb25hbGx5IGVtaXR0ZWQgcHJvcGVydGllcyB0aGF0IHNob3VsZCBiZSB3cml0dGVuIHRvIGxvZy48L3BhcmFtPg0KICAgICAgICBwdWJsaWMgb3ZlcnJpZGUgdm9pZCBDb252ZXJ0KFN0cmVhbSBpbnB1dCwgSVJlc3VsdExvZ1dyaXRlciBvdXRwdXQsIE9wdGlvbmFsbHlFbWl0dGVkRGF0YSBkYXRhVG9JbnNlcnQpDQogICAgICAgIHsNCiAgICAgICAgICAgIGlmIChpbnB1dCA9PSBudWxsKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHRocm93IG5ldyBBcmd1bWVudE51bGxFeGNlcHRpb24obmFtZW9mKGlucHV0KSk7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIGlmIChvdXRwdXQgPT0gbnVsbCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgQXJndW1lbnROdWxsRXhjZXB0aW9uKG5hbWVvZihvdXRwdXQpKTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgdmFyIHRvb2wgPSBuZXcgVG9vbA0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIE5hbWUgPSBGb3J0aWZ5VG9vbE5hbWUNCiAgICAgICAgICAgIH07DQoNCiAgICAgICAgICAgIF9pbnZvY2F0aW9uID0gbmV3IEludm9jYXRpb24oKTsNCiAgICAgICAgICAgIF9yZXN1bHRzLkNsZWFyKCk7DQogICAgICAgICAgICBfdG9vbE5vdGlmaWNhdGlvbnMuQ2xlYXIoKTsNCiAgICAgICAgICAgIF9maWxlRGljdGlvbmFyeS5DbGVhcigpOw0KICAgICAgICAgICAgX3J1bGVEaWN0aW9uYXJ5LkNsZWFyKCk7DQogICAgICAgICAgICBfdGZsVG9Ob2RlSWREaWN0aW9uYXJ5LkNsZWFyKCk7DQogICAgICAgICAgICBfdGZsVG9TbmlwcGV0SWREaWN0aW9uYXJ5LkNsZWFyKCk7DQogICAgICAgICAgICBfbG9jYXRpb25Ub1NuaXBwZXRJZERpY3Rpb25hcnkuQ2xlYXIoKTsNCiAgICAgICAgICAgIF9yZXN1bHRUb1NuaXBwZXRJZERpY3Rpb25hcnkuQ2xlYXIoKTsNCiAgICAgICAgICAgIF9yZXN1bHRUb1JlcGxhY2VtZW50RGVmaW5pdGlvbkRpY3Rpb25hcnkuQ2xlYXIoKTsNCiAgICAgICAgICAgIF9ub2RlSWRUb0xvY2F0aW9uRGljdGlvbmFyeS5DbGVhcigpOw0KICAgICAgICAgICAgX3NuaXBwZXRJZFRvUmVnaW9uc0RpY3Rpb25hcnkuQ2xlYXIoKTsNCg0KICAgICAgICAgICAgUGFyc2VGcHJGaWxlKGlucHV0KTsNCiAgICAgICAgICAgIEFkZE1lc3NhZ2VzVG9SZXN1bHRzKCk7DQogICAgICAgICAgICBBZGRTbmlwcGV0c1RvUmVzdWx0cygpOw0KICAgICAgICAgICAgQWRkTm9kZUxvY2F0aW9uc1RvVGhyZWFkRmxvd0xvY2F0aW9ucygpOw0KICAgICAgICAgICAgQWRkU25pcHBldHNUb1RocmVhZEZsb3dMb2NhdGlvbnMoKTsNCg0KICAgICAgICAgICAgdmFyIHJ1biA9IG5ldyBSdW4oKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIEluc3RhbmNlR3VpZCA9IF9ydW5JZCwNCiAgICAgICAgICAgICAgICBBdXRvbWF0aW9uTG9naWNhbElkID0gX2F1dG9tYXRpb25JZCwNCiAgICAgICAgICAgICAgICBUb29sID0gdG9vbCwNCiAgICAgICAgICAgICAgICBJbnZvY2F0aW9ucyA9IG5ld1tdIHsgX2ludm9jYXRpb24gfQ0KICAgICAgICAgICAgfTsNCg0KICAgICAgICAgICAgb3V0cHV0LkluaXRpYWxpemUocnVuKTsNCg0KICAgICAgICAgICAgKG91dHB1dCBhcyBSZXN1bHRMb2dKc29uV3JpdGVyKS5Xcml0ZUludm9jYXRpb25zKHJ1bi5JbnZvY2F0aW9ucyk7DQoNCiAgICAgICAgICAgIGlmIChfZmlsZURpY3Rpb25hcnkuQW55KCkpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgb3V0cHV0LldyaXRlRmlsZXMoX2ZpbGVEaWN0aW9uYXJ5KTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgb3V0cHV0Lk9wZW5SZXN1bHRzKCk7DQogICAgICAgICAgICBvdXRwdXQuV3JpdGVSZXN1bHRzKF9yZXN1bHRzKTsNCiAgICAgICAgICAgIG91dHB1dC5DbG9zZVJlc3VsdHMoKTsNCg0KICAgICAgICAgICAgaWYgKF9ydWxlRGljdGlvbmFyeS5BbnkoKSkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBvdXRwdXQuV3JpdGVSdWxlcyhfcnVsZURpY3Rpb25hcnkpOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBpZiAoX3Rvb2xOb3RpZmljYXRpb25zLkFueSgpKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIG91dHB1dC5Xcml0ZVRvb2xOb3RpZmljYXRpb25zKF90b29sTm90aWZpY2F0aW9ucyk7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICBwcml2YXRlIHZvaWQgUGFyc2VGcHJGaWxlKFN0cmVhbSBpbnB1dCkNCiAgICAgICAgew0KICAgICAgICAgICAgdXNpbmcgKFppcEFyY2hpdmUgZnByQXJjaGl2ZSA9IG5ldyBaaXBBcmNoaXZlKGlucHV0KSkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICB1c2luZyAoU3RyZWFtIGF1ZGl0U3RyZWFtID0gT3BlbkF1ZGl0U3RyZWFtKGZwckFyY2hpdmUpKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgUGFyc2VBdWRpdFN0cmVhbShhdWRpdFN0cmVhbSk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICAgICAgcHJpdmF0ZSBzdGF0aWMgU3RyZWFtIE9wZW5BdWRpdFN0cmVhbShaaXBBcmNoaXZlIGZwckFyY2hpdmUpDQogICAgICAgIHsNCiAgICAgICAgICAgIFppcEFyY2hpdmVFbnRyeSBhdWRpdEVudHJ5ID0gZnByQXJjaGl2ZS5FbnRyaWVzLlNpbmdsZShlID0+IGUuRnVsbE5hbWUuRXF1YWxzKCJhdWRpdC5mdmRsIikpOw0KICAgICAgICAgICAgcmV0dXJuIGF1ZGl0RW50cnkuT3BlbigpOw0KICAgICAgICB9DQoNCiAgICAgICAgcHJpdmF0ZSB2b2lkIFBhcnNlQXVkaXRTdHJlYW0oU3RyZWFtIGF1ZGl0U3RyZWFtKQ0KICAgICAgICB7DQogICAgICAgICAgICB2YXIgc2V0dGluZ3MgPSBuZXcgWG1sUmVhZGVyU2V0dGluZ3MNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBEdGRQcm9jZXNzaW5nID0gRHRkUHJvY2Vzc2luZy5JZ25vcmUsDQogICAgICAgICAgICAgICAgSWdub3JlV2hpdGVzcGFjZSA9IHRydWUsDQogICAgICAgICAgICAgICAgTmFtZVRhYmxlID0gX25hbWVUYWJsZSwNCiAgICAgICAgICAgICAgICBYbWxSZXNvbHZlciA9IG51bGwNCiAgICAgICAgICAgIH07DQoNCiAgICAgICAgICAgIHVzaW5nIChfcmVhZGVyID0gWG1sUmVhZGVyLkNyZWF0ZShhdWRpdFN0cmVhbSwgc2V0dGluZ3MpKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHdoaWxlIChfcmVhZGVyLlJlYWQoKSkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIGlmIChBdFN0YXJ0T2ZOb25FbXB0eShfc3RyaW5ncy5VdWlkKSkNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgUGFyc2VVdWlkKCk7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgLy8gTm90ZTogQ3JlYXRlZFRTIGlzIGFuIGVtcHR5IGVsZW1lbnQgKGl0IGhhcyBvbmx5IGF0dHJpYnV0ZXMpLA0KICAgICAgICAgICAgICAgICAgICAvLyBzbyB3ZSBjYW4ndCBjYWxsIEF0U3RhcnRPZk5vbkVtcHR5IGhlcmUuDQogICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKEF0U3RhcnRPZihfc3RyaW5ncy5DcmVhdGVkVGltZXN0YW1wKSkNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgUGFyc2VDcmVhdGVkVGltZXN0YW1wKCk7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoQXRTdGFydE9mTm9uRW1wdHkoX3N0cmluZ3MuQnVpbGQpKQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICBQYXJzZUJ1aWxkKCk7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoQXRTdGFydE9mTm9uRW1wdHkoX3N0cmluZ3MuVnVsbmVyYWJpbGl0aWVzKSkNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgUGFyc2VWdWxuZXJhYmlsaXRpZXMoKTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBlbHNlIGlmIChBdFN0YXJ0T2ZOb25FbXB0eShfc3RyaW5ncy5EZXNjcmlwdGlvbikpDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIFBhcnNlUnVsZUZyb21EZXNjcmlwdGlvbigpOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKEF0U3RhcnRPZk5vbkVtcHR5KF9zdHJpbmdzLlVuaWZpZWROb2RlUG9vbCkpDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIFBhcnNlTm9kZXMoKTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBlbHNlIGlmIChBdFN0YXJ0T2ZOb25FbXB0eShfc3RyaW5ncy5TbmlwcGV0cykpDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIFBhcnNlU25pcHBldHMoKTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBlbHNlIGlmIChBdFN0YXJ0T2ZOb25FbXB0eShfc3RyaW5ncy5Db21tYW5kTGluZSkpDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIFBhcnNlQ29tbWFuZExpbmUoKTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBlbHNlIGlmIChBdFN0YXJ0T2ZOb25FbXB0eShfc3RyaW5ncy5FcnJvcnMpKQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICBQYXJzZUVycm9ycygpOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKEF0U3RhcnRPZk5vbkVtcHR5KF9zdHJpbmdzLk1hY2hpbmVJbmZvKSkNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgUGFyc2VNYWNoaW5lSW5mbygpOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICAgICAgcHJpdmF0ZSB2b2lkIFBhcnNlVXVpZCgpDQogICAgICAgIHsNCiAgICAgICAgICAgIF9ydW5JZCA9IF9yZWFkZXIuUmVhZEVsZW1lbnRDb250ZW50QXNTdHJpbmcoKTsNCiAgICAgICAgfQ0KDQogICAgICAgIHByaXZhdGUgdm9pZCBQYXJzZUNyZWF0ZWRUaW1lc3RhbXAoKQ0KICAgICAgICB7DQogICAgICAgICAgICBzdHJpbmcgZGF0ZSA9IF9yZWFkZXIuR2V0QXR0cmlidXRlKF9zdHJpbmdzLkRhdGVBdHRyaWJ1dGUpOw0KICAgICAgICAgICAgc3RyaW5nIHRpbWUgPSBfcmVhZGVyLkdldEF0dHJpYnV0ZShfc3RyaW5ncy5UaW1lQXR0cmlidXRlKTsNCiAgICAgICAgICAgIGlmICghc3RyaW5nLklzTnVsbE9yRW1wdHkoZGF0ZSkgJiYgIXN0cmluZy5Jc051bGxPckVtcHR5KHRpbWUpKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHN0cmluZyBkYXRlVGltZSA9IGRhdGUgKyAiVCIgKyB0aW1lOw0KICAgICAgICAgICAgICAgIF9pbnZvY2F0aW9uLlN0YXJ0VGltZSA9IERhdGVUaW1lLlBhcnNlKGRhdGVUaW1lLCBDdWx0dXJlSW5mby5JbnZhcmlhbnRDdWx0dXJlKTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgLy8gU3RlcCBwYXN0IHRoZSBlbXB0eSBlbGVtZW50Lg0KICAgICAgICAgICAgX3JlYWRlci5SZWFkKCk7DQogICAgICAgIH0NCg0KICAgICAgICBwcml2YXRlIHZvaWQgUGFyc2VCdWlsZCgpDQogICAgICAgIHsNCiAgICAgICAgICAgIF9yZWFkZXIuUmVhZCgpOw0KICAgICAgICAgICAgd2hpbGUgKCFBdEVuZE9mKF9zdHJpbmdzLkJ1aWxkKSkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBpZiAoQXRTdGFydE9mTm9uRW1wdHkoX3N0cmluZ3MuQnVpbGRJZCkpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBfYXV0b21hdGlvbklkID0gX3JlYWRlci5SZWFkRWxlbWVudENvbnRlbnRBc1N0cmluZygpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBlbHNlIGlmIChBdFN0YXJ0T2ZOb25FbXB0eShfc3RyaW5ncy5Tb3VyY2VGaWxlcykpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBQYXJzZVNvdXJjZUZpbGVzKCk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGVsc2UNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIF9yZWFkZXIuUmVhZCgpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgIHByaXZhdGUgdm9pZCBQYXJzZVNvdXJjZUZpbGVzKCkNCiAgICAgICAgew0KICAgICAgICAgICAgX3JlYWRlci5SZWFkKCk7DQogICAgICAgICAgICB3aGlsZSAoIUF0RW5kT2YoX3N0cmluZ3MuU291cmNlRmlsZXMpKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIGlmIChBdFN0YXJ0T2ZOb25FbXB0eShfc3RyaW5ncy5GaWxlKSkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIFBhcnNlRmlsZSgpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBlbHNlDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBfcmVhZGVyLlJlYWQoKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICBwcml2YXRlIHZvaWQgUGFyc2VGaWxlKCkNCiAgICAgICAgew0KICAgICAgICAgICAgaW50IGxlbmd0aCA9IDA7DQogICAgICAgICAgICBzdHJpbmcgc2l6ZUF0dHJpYnV0ZSA9IF9yZWFkZXIuR2V0QXR0cmlidXRlKF9zdHJpbmdzLlNpemVBdHRyaWJ1dGUpOw0KICAgICAgICAgICAgaWYgKHNpemVBdHRyaWJ1dGUgIT0gbnVsbCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBpbnQuVHJ5UGFyc2Uoc2l6ZUF0dHJpYnV0ZSwgb3V0IGxlbmd0aCk7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIHN0cmluZyBlbmNvZGluZyA9IF9yZWFkZXIuR2V0QXR0cmlidXRlKF9zdHJpbmdzLkVuY29kaW5nQXR0cmlidXRlKTsNCg0KICAgICAgICAgICAgc3RyaW5nIGZpbGVOYW1lID0gbnVsbDsNCiAgICAgICAgICAgIF9yZWFkZXIuUmVhZCgpOw0KICAgICAgICAgICAgd2hpbGUgKCFBdEVuZE9mKF9zdHJpbmdzLkZpbGUpKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIGlmIChBdFN0YXJ0T2ZOb25FbXB0eShfc3RyaW5ncy5OYW1lKSkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIGZpbGVOYW1lID0gVXJpSGVscGVyLk1ha2VWYWxpZFVyaShfcmVhZGVyLlJlYWRFbGVtZW50Q29udGVudEFzU3RyaW5nKCkpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBlbHNlDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBfcmVhZGVyLlJlYWQoKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIGlmICghc3RyaW5nLklzTnVsbE9yRW1wdHkoZmlsZU5hbWUpKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHZhciBmaWxlRGF0YSA9IG5ldyBGaWxlRGF0YQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgRW5jb2RpbmcgPSBlbmNvZGluZywNCiAgICAgICAgICAgICAgICAgICAgTWltZVR5cGUgPSBNaW1lVHlwZS5EZXRlcm1pbmVGcm9tRmlsZUV4dGVuc2lvbihmaWxlTmFtZSksDQogICAgICAgICAgICAgICAgICAgIExlbmd0aCA9IGxlbmd0aA0KICAgICAgICAgICAgICAgIH07DQoNCiAgICAgICAgICAgICAgICBfZmlsZURpY3Rpb25hcnkuQWRkKGZpbGVOYW1lLCBmaWxlRGF0YSk7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICBwcml2YXRlIHZvaWQgUGFyc2VWdWxuZXJhYmlsaXRpZXMoKQ0KICAgICAgICB7DQogICAgICAgICAgICBfcmVhZGVyLlJlYWQoKTsNCiAgICAgICAgICAgIHdoaWxlICghQXRFbmRPZihfc3RyaW5ncy5WdWxuZXJhYmlsaXRpZXMpKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIGlmIChBdFN0YXJ0T2ZOb25FbXB0eShfc3RyaW5ncy5WdWxuZXJhYmlsaXR5KSkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIFBhcnNlVnVsbmVyYWJpbGl0eSgpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBlbHNlDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBfcmVhZGVyLlJlYWQoKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICBwcml2YXRlIHZvaWQgUGFyc2VWdWxuZXJhYmlsaXR5KCkNCiAgICAgICAgew0KICAgICAgICAgICAgdmFyIHJlc3VsdCA9IG5ldyBSZXN1bHQNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBMb2NhdGlvbnMgPSBuZXcgTGlzdDxMb2NhdGlvbj4oKSwNCiAgICAgICAgICAgICAgICBSZWxhdGVkTG9jYXRpb25zID0gbmV3IExpc3Q8TG9jYXRpb24+KCksDQogICAgICAgICAgICAgICAgQ29kZUZsb3dzID0gbmV3IFtdDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBTYXJpZlV0aWxpdGllcy5DcmVhdGVTaW5nbGVUaHJlYWRlZENvZGVGbG93KCkNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9Ow0KDQogICAgICAgICAgICBfcmVhZGVyLlJlYWQoKTsNCiAgICAgICAgICAgIHdoaWxlICghQXRFbmRPZihfc3RyaW5ncy5WdWxuZXJhYmlsaXR5KSkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBpZiAoQXRTdGFydE9mTm9uRW1wdHkoX3N0cmluZ3MuQ2xhc3NJZCkpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICByZXN1bHQuUnVsZUlkID0gX3JlYWRlci5SZWFkRWxlbWVudENvbnRlbnRBc1N0cmluZygpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBlbHNlIGlmIChBdFN0YXJ0T2ZOb25FbXB0eShfc3RyaW5ncy5SZXBsYWNlbWVudERlZmluaXRpb25zKSkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIFBhcnNlUmVwbGFjZW1lbnREZWZpbml0aW9ucyhyZXN1bHQpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBlbHNlIGlmIChBdFN0YXJ0T2ZOb25FbXB0eShfc3RyaW5ncy5UcmFjZSkpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBQYXJzZUxvY2F0aW9uRnJvbVRyYWNlKHJlc3VsdCk7DQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgX3JlYWRlci5SZWFkKCk7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIF9yZXN1bHRzLkFkZChyZXN1bHQpOw0KICAgICAgICB9DQoNCiAgICAgICAgcHJpdmF0ZSB2b2lkIFBhcnNlTG9jYXRpb25Gcm9tVHJhY2UoUmVzdWx0IHJlc3VsdCkNCiAgICAgICAgew0KICAgICAgICAgICAgQ29kZUZsb3cgY29kZUZsb3cgPSByZXN1bHQuQ29kZUZsb3dzLkZpcnN0KCk7DQogICAgICAgICAgICBpbnQgc3RlcCA9IDA7DQogICAgICAgICAgICBzdHJpbmcgbm9kZUxhYmVsID0gbnVsbDsNCiAgICAgICAgICAgIHN0cmluZyBsYXN0Tm9kZUlkID0gbnVsbDsNCg0KICAgICAgICAgICAgX3JlYWRlci5SZWFkKCk7DQoNCiAgICAgICAgICAgIHdoaWxlICghQXRFbmRPZihfc3RyaW5ncy5UcmFjZSkpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgaWYgKEF0U3RhcnRPZihfc3RyaW5ncy5Ob2RlUmVmKSkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIHN0cmluZyBub2RlSWQgPSBfcmVhZGVyLkdldEF0dHJpYnV0ZShfc3RyaW5ncy5JZEF0dHJpYnV0ZSk7DQoNCiAgICAgICAgICAgICAgICAgICAgaWYgKCFzdHJpbmcuSXNOdWxsT3JXaGl0ZVNwYWNlKG5vZGVJZCkpDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciB0ZmwgPSBuZXcgVGhyZWFkRmxvd0xvY2F0aW9uDQogICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RlcCA9ICsrc3RlcA0KICAgICAgICAgICAgICAgICAgICAgICAgfTsNCg0KICAgICAgICAgICAgICAgICAgICAgICAgX3RmbFRvTm9kZUlkRGljdGlvbmFyeS5BZGQodGZsLCBub2RlSWQpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY29kZUZsb3cuVGhyZWFkRmxvd3NbMF0uTG9jYXRpb25zLkFkZCh0ZmwpOw0KICAgICAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAgICAgX3JlYWRlci5SZWFkKCk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGVsc2UgaWYgKEF0U3RhcnRPZihfc3RyaW5ncy5Ob2RlKSkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIG5vZGVMYWJlbCA9IF9yZWFkZXIuR2V0QXR0cmlidXRlKF9zdHJpbmdzLkxhYmVsQXR0cmlidXRlKTsNCiAgICAgICAgICAgICAgICAgICAgX3JlYWRlci5SZWFkKCk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGVsc2UgaWYgKEF0U3RhcnRPZihfc3RyaW5ncy5Tb3VyY2VMb2NhdGlvbikpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAvLyBOb3RlOiBTb3VyY2VMb2NhdGlvbiBpcyBhbiBlbXB0eSBlbGVtZW50IChpdCBoYXMgb25seSBhdHRyaWJ1dGVzKSwNCiAgICAgICAgICAgICAgICAgICAgLy8gc28gd2UgY2FuJ3QgY2FsbCBBdFN0YXJ0T2ZOb25FbXB0eSBoZXJlLg0KDQogICAgICAgICAgICAgICAgICAgIHN0cmluZyBzbmlwcGV0SWQgPSBfcmVhZGVyLkdldEF0dHJpYnV0ZShfc3RyaW5ncy5TbmlwcGV0QXR0cmlidXRlKTsNCiAgICAgICAgICAgICAgICAgICAgUGh5c2ljYWxMb2NhdGlvbiBwaHlzaWNhbExvY2F0aW9uID0gUGFyc2VQaHlzaWNhbExvY2F0aW9uRnJvbVNvdXJjZUluZm8oKTsNCg0KICAgICAgICAgICAgICAgICAgICAvLyBTdGVwIHBhc3QgdGhlIGVtcHR5IFNvdXJjZUxvY2F0aW9uIGVsZW1lbnQuDQogICAgICAgICAgICAgICAgICAgIF9yZWFkZXIuUmVhZCgpOw0KDQogICAgICAgICAgICAgICAgICAgIC8vIElmIHdlIGRvbid0IGhhdmUgYSBsYWJlbCwgZ2V0IHRoZSA8QWN0aW9uPiB2YWx1ZQ0KICAgICAgICAgICAgICAgICAgICBpZiAoc3RyaW5nLklzTnVsbE9yV2hpdGVTcGFjZShub2RlTGFiZWwpKQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICBub2RlTGFiZWwgPSBfcmVhZGVyLlJlYWRFbGVtZW50Q29udGVudEFzU3RyaW5nKCk7DQogICAgICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgICAgICB2YXIgdGZsID0gbmV3IFRocmVhZEZsb3dMb2NhdGlvbg0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICBTdGVwID0gKytzdGVwLA0KICAgICAgICAgICAgICAgICAgICAgICAgTG9jYXRpb24gPSBuZXcgTG9jYXRpb24NCiAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBNZXNzYWdlID0gbmV3IE1lc3NhZ2UNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRleHQgPSBub2RlTGFiZWwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBoeXNpY2FsTG9jYXRpb24gPSBwaHlzaWNhbExvY2F0aW9uDQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIH07DQoNCiAgICAgICAgICAgICAgICAgICAgLy8gUmVtZW1iZXIgdGhlIGlkIG9mIHRoZSBzbmlwcGV0IGFzc29jaWF0ZWQgd2l0aCB0aGlzIGxvY2F0aW9uLg0KICAgICAgICAgICAgICAgICAgICAvLyBXZSdsbCB1c2UgaXQgdG8gZmlsbCB0aGUgc25pcHBldCB0ZXh0IHdoZW4gd2UgcmVhZCB0aGUgU25pcHBldHMgZWxlbWVudCBsYXRlciBvbi4NCiAgICAgICAgICAgICAgICAgICAgaWYgKCFzdHJpbmcuSXNOdWxsT3JFbXB0eShzbmlwcGV0SWQpKQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICBfdGZsVG9TbmlwcGV0SWREaWN0aW9uYXJ5LkFkZCh0ZmwsIHNuaXBwZXRJZCk7DQogICAgICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgICAgICBjb2RlRmxvdy5UaHJlYWRGbG93c1swXS5Mb2NhdGlvbnMuQWRkKHRmbCk7DQoNCiAgICAgICAgICAgICAgICAgICAgLy8gS2VlcCB0cmFjayBvZiB0aGUgc25pcHBldCBhc3NvY2lhdGVkIHdpdGggdGhlIGxhc3QgbG9jYXRpb24gaW4gdGhlDQogICAgICAgICAgICAgICAgICAgIC8vIENvZGVGbG93OyB0aGF0J3MgdGhlIHNuaXBwZXQgdGhhdCB3ZSdsbCBhc3NvY2lhdGUgd2l0aCB0aGUgUmVzdWx0DQogICAgICAgICAgICAgICAgICAgIC8vIGFzIGEgd2hvbGUuDQogICAgICAgICAgICAgICAgICAgIGxhc3ROb2RlSWQgPSBzbmlwcGV0SWQ7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGVsc2UNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIF9yZWFkZXIuUmVhZCgpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgaWYgKGNvZGVGbG93LlRocmVhZEZsb3dzWzBdLkxvY2F0aW9ucy5BbnkoKSkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICByZXN1bHQuTG9jYXRpb25zLkFkZChuZXcgTG9jYXRpb24NCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIC8vIFRPRE86IENvbmZpcm0gdGhhdCB0aGUgdHJhY2VzIGFyZSBvcmRlcmVkIGNocm9ub2xvZ2ljYWxseQ0KICAgICAgICAgICAgICAgICAgICAvLyAoc28gdGhhdCB3ZSByZWFsbHkgZG8gd2FudCB0byB1c2UgdGhlIGxhc3Qgb25lIGFzIHRoZQ0KICAgICAgICAgICAgICAgICAgICAvLyBvdmVyYWxsIHJlc3VsdCBsb2NhdGlvbikuDQogICAgICAgICAgICAgICAgICAgIFBoeXNpY2FsTG9jYXRpb24gPSBjb2RlRmxvdy5UaHJlYWRGbG93c1swXS5Mb2NhdGlvbnMuTGFzdCgpLkxvY2F0aW9uPy5QaHlzaWNhbExvY2F0aW9uLkRlZXBDbG9uZSgpDQogICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAgICAgcmVzdWx0LlJlbGF0ZWRMb2NhdGlvbnMuQWRkKG5ldyBMb2NhdGlvbg0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgLy8gTGlua3MgZW1iZWRkZWQgaW4gdGhlIHJlc3VsdCBtZXNzYWdlIHJlZmVyIHRvIHJlbGF0ZWQgcGh5c2ljYWxMb2NhdGlvbi5pZA0KICAgICAgICAgICAgICAgICAgICBQaHlzaWNhbExvY2F0aW9uID0gY29kZUZsb3cuVGhyZWFkRmxvd3NbMF0uTG9jYXRpb25zLkxhc3QoKS5Mb2NhdGlvbj8uUGh5c2ljYWxMb2NhdGlvbi5EZWVwQ2xvbmUoKQ0KICAgICAgICAgICAgICAgIH0pOw0KDQogICAgICAgICAgICAgICAgcmVzdWx0LlJlbGF0ZWRMb2NhdGlvbnMuTGFzdCgpLlBoeXNpY2FsTG9jYXRpb24uSWQgPSAxOw0KDQogICAgICAgICAgICAgICAgaWYgKCFzdHJpbmcuSXNOdWxsT3JFbXB0eShsYXN0Tm9kZUlkKSkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIF9yZXN1bHRUb1NuaXBwZXRJZERpY3Rpb25hcnkuQWRkKHJlc3VsdCwgbGFzdE5vZGVJZCk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICAgICAgcHJpdmF0ZSB2b2lkIFBhcnNlUmVwbGFjZW1lbnREZWZpbml0aW9ucyhSZXN1bHQgcmVzdWx0KQ0KICAgICAgICB7DQogICAgICAgICAgICB2YXIgcmVwbGFjZW1lbnRzID0gbmV3IERpY3Rpb25hcnk8c3RyaW5nLCBzdHJpbmc+KCk7DQogICAgICAgICAgICBfcmVhZGVyLlJlYWQoKTsNCg0KICAgICAgICAgICAgd2hpbGUgKCFBdEVuZE9mKF9zdHJpbmdzLlJlcGxhY2VtZW50RGVmaW5pdGlvbnMpKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIGlmIChfcmVhZGVyLk5hbWUgPT0gX3N0cmluZ3MuRGVmICYmICFBdEVuZE9mKF9zdHJpbmdzLkRlZikpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBzdHJpbmcga2V5ID0gX3JlYWRlci5HZXRBdHRyaWJ1dGUoX3N0cmluZ3MuS2V5QXR0cmlidXRlKTsNCiAgICAgICAgICAgICAgICAgICAgc3RyaW5nIHZhbHVlID0gX3JlYWRlci5HZXRBdHRyaWJ1dGUoX3N0cmluZ3MuVmFsdWVBdHRyaWJ1dGUpOw0KICAgICAgICAgICAgICAgICAgICByZXBsYWNlbWVudHMuQWRkKGtleSwgdmFsdWUpOw0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgIF9yZWFkZXIuUmVhZCgpOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBpZiAocmVwbGFjZW1lbnRzLkFueSgpKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIF9yZXN1bHRUb1JlcGxhY2VtZW50RGVmaW5pdGlvbkRpY3Rpb25hcnkuQWRkKHJlc3VsdCwgcmVwbGFjZW1lbnRzKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgIHByaXZhdGUgUGh5c2ljYWxMb2NhdGlvbiBQYXJzZVBoeXNpY2FsTG9jYXRpb25Gcm9tU291cmNlSW5mbygpDQogICAgICAgIHsNCiAgICAgICAgICAgIHN0cmluZyBwYXRoID0gX3JlYWRlci5HZXRBdHRyaWJ1dGUoX3N0cmluZ3MuUGF0aEF0dHJpYnV0ZSk7DQoNCiAgICAgICAgICAgIHJldHVybiBuZXcgUGh5c2ljYWxMb2NhdGlvbg0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIEZpbGVMb2NhdGlvbiA9IG5ldyBGaWxlTG9jYXRpb24NCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIFVyaSA9IG5ldyBVcmkocGF0aCwgVXJpS2luZC5SZWxhdGl2ZSkNCiAgICAgICAgICAgICAgICB9LA0KICAgICAgICAgICAgICAgIFJlZ2lvbiA9IFBhcnNlUmVnaW9uKCkNCiAgICAgICAgICAgIH07DQogICAgICAgIH0NCg0KICAgICAgICBwcml2YXRlIFJlZ2lvbiBQYXJzZVJlZ2lvbigpDQogICAgICAgIHsNCiAgICAgICAgICAgIGludCBzdGFydExpbmUgPSAwOw0KICAgICAgICAgICAgc3RyaW5nIGxpbmVBdHRyID0gX3JlYWRlci5HZXRBdHRyaWJ1dGUoX3N0cmluZ3MuTGluZUF0dHJpYnV0ZSk7DQogICAgICAgICAgICBpZiAobGluZUF0dHIgIT0gbnVsbCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBpbnQuVHJ5UGFyc2UobGluZUF0dHIsIG91dCBzdGFydExpbmUpOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBpbnQgZW5kTGluZSA9IDA7DQogICAgICAgICAgICBzdHJpbmcgbGluZWxFbmRBdHRyID0gX3JlYWRlci5HZXRBdHRyaWJ1dGUoX3N0cmluZ3MuTGluZUVuZEF0dHJpYnV0ZSk7DQogICAgICAgICAgICBpZiAobGluZWxFbmRBdHRyICE9IG51bGwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgaW50LlRyeVBhcnNlKGxpbmVsRW5kQXR0ciwgb3V0IGVuZExpbmUpOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBpbnQgc3RhcnRDb2x1bW4gPSAwOw0KICAgICAgICAgICAgc3RyaW5nIGNvbFN0YXJ0QXR0ciA9IF9yZWFkZXIuR2V0QXR0cmlidXRlKF9zdHJpbmdzLkNvbFN0YXJ0QXR0cmlidXRlKTsNCiAgICAgICAgICAgIGlmIChjb2xTdGFydEF0dHIgIT0gbnVsbCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBpbnQuVHJ5UGFyc2UoY29sU3RhcnRBdHRyLCBvdXQgc3RhcnRDb2x1bW4pOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBpbnQgZW5kQ29sdW1uID0gMDsNCiAgICAgICAgICAgIHN0cmluZyBjb2xFbmRBdHRyID0gX3JlYWRlci5HZXRBdHRyaWJ1dGUoX3N0cmluZ3MuQ29sRW5kQXR0cmlidXRlKTsNCiAgICAgICAgICAgIGlmIChjb2xFbmRBdHRyICE9IG51bGwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgaW50LlRyeVBhcnNlKGNvbEVuZEF0dHIsIG91dCBlbmRDb2x1bW4pOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICByZXR1cm4gbmV3IFJlZ2lvbg0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIFN0YXJ0TGluZSA9IHN0YXJ0TGluZSwNCiAgICAgICAgICAgICAgICBFbmRMaW5lID0gZW5kTGluZSwNCiAgICAgICAgICAgICAgICBTdGFydENvbHVtbiA9IHN0YXJ0Q29sdW1uLA0KICAgICAgICAgICAgICAgIEVuZENvbHVtbiA9IGVuZENvbHVtbg0KICAgICAgICAgICAgfTsNCiAgICAgICAgfQ0KDQogICAgICAgIHByaXZhdGUgdm9pZCBQYXJzZVJ1bGVGcm9tRGVzY3JpcHRpb24oKQ0KICAgICAgICB7DQogICAgICAgICAgICB2YXIgcnVsZSA9IG5ldyBSdWxlDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgSWQgPSBfcmVhZGVyLkdldEF0dHJpYnV0ZShfc3RyaW5ncy5DbGFzc0lkQXR0cmlidXRlKQ0KICAgICAgICAgICAgfTsNCg0KICAgICAgICAgICAgX3JlYWRlci5SZWFkKCk7DQogICAgICAgICAgICB3aGlsZSAoIUF0RW5kT2YoX3N0cmluZ3MuRGVzY3JpcHRpb24pKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIGlmIChBdFN0YXJ0T2ZOb25FbXB0eShfc3RyaW5ncy5BYnN0cmFjdCkpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBzdHJpbmcgY29udGVudCA9IF9yZWFkZXIuUmVhZEVsZW1lbnRDb250ZW50QXNTdHJpbmcoKTsNCiAgICAgICAgICAgICAgICAgICAgcnVsZS5TaG9ydERlc2NyaXB0aW9uID0gbmV3IE1lc3NhZ2UgeyBUZXh0ID0gRm9ydGlmeVV0aWxpdGllcy5QYXJzZUZvcm1hdHRlZENvbnRlbnRUZXh0KGNvbnRlbnQpIH07DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGVsc2UgaWYgKEF0U3RhcnRPZk5vbkVtcHR5KF9zdHJpbmdzLkV4cGxhbmF0aW9uKSkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIHN0cmluZyBjb250ZW50ID0gX3JlYWRlci5SZWFkRWxlbWVudENvbnRlbnRBc1N0cmluZygpOw0KICAgICAgICAgICAgICAgICAgICBydWxlLkZ1bGxEZXNjcmlwdGlvbiA9IG5ldyBNZXNzYWdlIHsgVGV4dCA9IEZvcnRpZnlVdGlsaXRpZXMuUGFyc2VGb3JtYXR0ZWRDb250ZW50VGV4dChjb250ZW50KSB9Ow0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBlbHNlIGlmIChBdFN0YXJ0T2ZOb25FbXB0eShfc3RyaW5ncy5DdXN0b21EZXNjcmlwdGlvbikpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAvLyBTa2lwIHRoZSBjdXN0b20gZGVzY3JpcHRpb24gYmxvY2sNCiAgICAgICAgICAgICAgICAgICAgd2hpbGUgKCFBdEVuZE9mKF9zdHJpbmdzLkN1c3RvbURlc2NyaXB0aW9uKSkNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgX3JlYWRlci5SZWFkKCk7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgZWxzZQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgX3JlYWRlci5SZWFkKCk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBfcnVsZURpY3Rpb25hcnkuQWRkKHJ1bGUuSWQsIHJ1bGUpOw0KICAgICAgICB9DQoNCiAgICAgICAgcHJpdmF0ZSB2b2lkIFBhcnNlTm9kZXMoKQ0KICAgICAgICB7DQogICAgICAgICAgICBfcmVhZGVyLlJlYWQoKTsNCiAgICAgICAgICAgIHdoaWxlICghQXRFbmRPZihfc3RyaW5ncy5VbmlmaWVkTm9kZVBvb2wpKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIGlmIChBdFN0YXJ0T2ZOb25FbXB0eShfc3RyaW5ncy5Ob2RlKSkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIFBhcnNlTm9kZSgpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBlbHNlDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBfcmVhZGVyLlJlYWQoKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICBwcml2YXRlIHZvaWQgUGFyc2VOb2RlKCkNCiAgICAgICAgew0KICAgICAgICAgICAgc3RyaW5nIG5vZGVJZCA9IF9yZWFkZXIuR2V0QXR0cmlidXRlKF9zdHJpbmdzLklkQXR0cmlidXRlKTsNCiAgICAgICAgICAgIF9yZWFkZXIuUmVhZCgpOw0KICAgICAgICAgICAgd2hpbGUgKCFBdEVuZE9mKF9zdHJpbmdzLk5vZGUpKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIGlmIChBdFN0YXJ0T2YoX3N0cmluZ3MuU291cmNlTG9jYXRpb24pKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgUGh5c2ljYWxMb2NhdGlvbiBwaHlzaWNhbExvY2F0aW9uID0gUGFyc2VQaHlzaWNhbExvY2F0aW9uRnJvbVNvdXJjZUluZm8oKTsNCg0KICAgICAgICAgICAgICAgICAgICBzdHJpbmcgc25pcHBldElkID0gX3JlYWRlci5HZXRBdHRyaWJ1dGUoX3N0cmluZ3MuU25pcHBldEF0dHJpYnV0ZSk7DQoNCiAgICAgICAgICAgICAgICAgICAgLy8gU3RlcCBwYXN0IHRoZSBlbXB0eSBTb3VyY2VMb2NhdGlvbiBlbGVtZW50Lg0KICAgICAgICAgICAgICAgICAgICBfcmVhZGVyLlJlYWQoKTsNCg0KICAgICAgICAgICAgICAgICAgICAvLyBHZXQgdGhlIG5vZGUgdGV4dCBmcm9tIHRoZSBBY3Rpb24gZWxlbWVudA0KICAgICAgICAgICAgICAgICAgICBzdHJpbmcgbm9kZUxhYmVsID0gX3JlYWRlci5SZWFkRWxlbWVudENvbnRlbnRBc1N0cmluZygpOw0KDQogICAgICAgICAgICAgICAgICAgIC8vIENyZWF0ZSB0aGUgbG9jYXRpb24NCiAgICAgICAgICAgICAgICAgICAgdmFyIGxvY2F0aW9uID0gbmV3IExvY2F0aW9uDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIE1lc3NhZ2UgPSBuZXcgTWVzc2FnZQ0KICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRleHQgPSBub2RlTGFiZWwNCiAgICAgICAgICAgICAgICAgICAgICAgIH0sDQogICAgICAgICAgICAgICAgICAgICAgICBQaHlzaWNhbExvY2F0aW9uID0gcGh5c2ljYWxMb2NhdGlvbg0KICAgICAgICAgICAgICAgICAgICB9Ow0KDQogICAgICAgICAgICAgICAgICAgIF9ub2RlSWRUb0xvY2F0aW9uRGljdGlvbmFyeS5BZGQobm9kZUlkLCBsb2NhdGlvbik7DQogICAgICAgICAgICAgICAgICAgIF9sb2NhdGlvblRvU25pcHBldElkRGljdGlvbmFyeS5BZGQobG9jYXRpb24sIHNuaXBwZXRJZCk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGVsc2UNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIF9yZWFkZXIuUmVhZCgpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgIHByaXZhdGUgdm9pZCBQYXJzZVNuaXBwZXRzKCkNCiAgICAgICAgew0KICAgICAgICAgICAgX3JlYWRlci5SZWFkKCk7DQogICAgICAgICAgICB3aGlsZSAoIUF0RW5kT2YoX3N0cmluZ3MuU25pcHBldHMpKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIGlmIChBdFN0YXJ0T2ZOb25FbXB0eShfc3RyaW5ncy5TbmlwcGV0KSkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIFBhcnNlU25pcHBldCgpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBlbHNlDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBfcmVhZGVyLlJlYWQoKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICBwcml2YXRlIHZvaWQgUGFyc2VTbmlwcGV0KCkNCiAgICAgICAgew0KICAgICAgICAgICAgLy8gRm9ybWF0OiA8Z3VpZD4jPGZpbGUgcGF0aD46PHN0YXJ0IGxpbmU+OjxlbmQgbGluZT4NCiAgICAgICAgICAgIHN0cmluZyBzbmlwcGV0SWQgPSBfcmVhZGVyLkdldEF0dHJpYnV0ZShfc3RyaW5ncy5JZEF0dHJpYnV0ZSk7DQogICAgICAgICAgICBpbnQgc25pcHBldFN0YXJ0TGluZSA9IDA7DQogICAgICAgICAgICBpbnQgc25pcHBldEVuZExpbmUgPSAwOw0KICAgICAgICAgICAgaW50IHJlZ2lvblN0YXJ0TGluZSA9IDA7DQogICAgICAgICAgICBpbnQgcmVnaW9uRW5kTGluZSA9IDA7DQoNCiAgICAgICAgICAgIHN0cmluZ1tdIHBhcnRzID0gc25pcHBldElkLlNwbGl0KCc6Jyk7DQoNCiAgICAgICAgICAgIGludC5UcnlQYXJzZShwYXJ0c1twYXJ0cy5MZW5ndGggLSAyXSwgb3V0IHJlZ2lvblN0YXJ0TGluZSk7DQogICAgICAgICAgICBpbnQuVHJ5UGFyc2UocGFydHNbcGFydHMuTGVuZ3RoIC0gMV0sIG91dCByZWdpb25FbmRMaW5lKTsNCiAgICAgICAgICAgIHN0cmluZyB0ZXh0ID0gbnVsbDsNCg0KICAgICAgICAgICAgX3JlYWRlci5SZWFkKCk7DQoNCiAgICAgICAgICAgIHdoaWxlICghQXRFbmRPZihfc3RyaW5ncy5TbmlwcGV0KSkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBpZiAoQXRTdGFydE9mTm9uRW1wdHkoX3N0cmluZ3MuU3RhcnRMaW5lKSkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIHN0cmluZyB2YWx1ZSA9IF9yZWFkZXIuUmVhZEVsZW1lbnRDb250ZW50QXNTdHJpbmcoKTsNCiAgICAgICAgICAgICAgICAgICAgaW50LlRyeVBhcnNlKHZhbHVlLCBvdXQgc25pcHBldFN0YXJ0TGluZSk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGVsc2UgaWYgKEF0U3RhcnRPZk5vbkVtcHR5KF9zdHJpbmdzLkVuZExpbmUpKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgc3RyaW5nIHZhbHVlID0gX3JlYWRlci5SZWFkRWxlbWVudENvbnRlbnRBc1N0cmluZygpOw0KICAgICAgICAgICAgICAgICAgICBpbnQuVHJ5UGFyc2UodmFsdWUsIG91dCBzbmlwcGV0RW5kTGluZSk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGVsc2UgaWYgKEF0U3RhcnRPZk5vbkVtcHR5KF9zdHJpbmdzLlRleHQpKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgdGV4dCA9IF9yZWFkZXIuUmVhZEVsZW1lbnRDb250ZW50QXNTdHJpbmcoKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgZWxzZQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgX3JlYWRlci5SZWFkKCk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBSZWdpb24gcmVnaW9uID0gbnVsbDsNCiAgICAgICAgICAgIFJlZ2lvbiBjb250ZXh0UmVnaW9uID0gbnVsbDsNCg0KICAgICAgICAgICAgaWYgKCFzdHJpbmcuSXNOdWxsT3JXaGl0ZVNwYWNlKHRleHQpKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHJlZ2lvbiA9IG5ldyBSZWdpb24NCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIFN0YXJ0TGluZSA9IHJlZ2lvblN0YXJ0TGluZSwNCiAgICAgICAgICAgICAgICAgICAgRW5kTGluZSA9IHJlZ2lvbkVuZExpbmUNCiAgICAgICAgICAgICAgICB9Ow0KDQogICAgICAgICAgICAgICAgY29udGV4dFJlZ2lvbiA9IG5ldyBSZWdpb24NCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIFN0YXJ0TGluZSA9IHNuaXBwZXRTdGFydExpbmUsDQogICAgICAgICAgICAgICAgICAgIEVuZExpbmUgPSBzbmlwcGV0RW5kTGluZSwNCiAgICAgICAgICAgICAgICAgICAgU25pcHBldCA9IG5ldyBGaWxlQ29udGVudA0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICBUZXh0ID0gdGV4dA0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfTsNCg0KICAgICAgICAgICAgICAgIHVzaW5nIChTdHJpbmdSZWFkZXIgcmVhZGVyID0gbmV3IFN0cmluZ1JlYWRlcih0ZXh0KSkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIC8vIFJlYWQgZG93biB0byB0aGUgZmlyc3QgbGluZSB3ZSB3YW50IHRvIGluY2x1ZGUNCiAgICAgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCByZWdpb25TdGFydExpbmUgLSBzbmlwcGV0U3RhcnRMaW5lOyBpKyspDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHJlYWRlci5SZWFkTGluZSgpOw0KICAgICAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAgICAgdmFyIHNiID0gbmV3IFN0cmluZ0J1aWxkZXIoKTsNCg0KICAgICAgICAgICAgICAgICAgICAvLyBHYXRoZXIgdGhlIGxpbmVzIHdlIHdhbnQNCiAgICAgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPD0gcmVnaW9uRW5kTGluZSAtIHJlZ2lvblN0YXJ0TGluZTsgaSsrKQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICBzYi5BcHBlbmRMaW5lKHJlYWRlci5SZWFkTGluZSgpKTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgICAgIC8vIFRyaW0gdGhlIHRyYWlsaW5nIGxpbmUgYnJlYWsNCiAgICAgICAgICAgICAgICAgICAgdGV4dCA9IHNiLlRvU3RyaW5nKCkuVHJpbUVuZChuZXdbXSB7ICdccicsICdcbicgfSk7DQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgcmVnaW9uLlNuaXBwZXQgPSBuZXcgRmlsZUNvbnRlbnQgeyBUZXh0ID0gdGV4dCB9Ow0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAvLyBSZWdpb25zWzBdID0+IHBoeXNpY2FsTG9jYXRpb24ucmVnaW9uDQogICAgICAgICAgICAvLyBSZWdpb25zWzFdID0+IHBoeXNpY2FsTG9jYXRpb24uY29udGV4dFJlZ2lvbg0KICAgICAgICAgICAgX3NuaXBwZXRJZFRvUmVnaW9uc0RpY3Rpb25hcnkuQWRkKHNuaXBwZXRJZCwgbmV3W10geyByZWdpb24sIGNvbnRleHRSZWdpb24gfSk7DQogICAgICAgIH0NCg0KICAgICAgICBwcml2YXRlIHZvaWQgUGFyc2VDb21tYW5kTGluZSgpDQogICAgICAgIHsNCiAgICAgICAgICAgIHZhciBzYiA9IG5ldyBTdHJpbmdCdWlsZGVyKEZvcnRpZnlFeGVjdXRhYmxlKTsNCiAgICAgICAgICAgIF9yZWFkZXIuUmVhZCgpOw0KICAgICAgICAgICAgd2hpbGUgKCFBdEVuZE9mKF9zdHJpbmdzLkNvbW1hbmRMaW5lKSkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBpZiAoQXRTdGFydE9mTm9uRW1wdHkoX3N0cmluZ3MuQXJndW1lbnQpKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgc3RyaW5nIGFyZ3VtZW50ID0gX3JlYWRlci5SZWFkRWxlbWVudENvbnRlbnRBc1N0cmluZygpOw0KICAgICAgICAgICAgICAgICAgICBzYi5BcHBlbmQoJyAnKTsNCiAgICAgICAgICAgICAgICAgICAgc2IuQXBwZW5kKGFyZ3VtZW50KTsNCiAgICAgICAgICAgICAgICAgICAgX3JlYWRlci5Nb3ZlVG9FbGVtZW50KCk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGVsc2UNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIF9yZWFkZXIuUmVhZCgpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgX2ludm9jYXRpb24uQ29tbWFuZExpbmUgPSBzYi5Ub1N0cmluZygpOw0KICAgICAgICB9DQoNCiAgICAgICAgcHJpdmF0ZSB2b2lkIFBhcnNlRXJyb3JzKCkNCiAgICAgICAgew0KICAgICAgICAgICAgX3JlYWRlci5SZWFkKCk7DQogICAgICAgICAgICB3aGlsZSAoIUF0RW5kT2YoX3N0cmluZ3MuRXJyb3JzKSkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBpZiAoQXRTdGFydE9mTm9uRW1wdHkoX3N0cmluZ3MuRXJyb3IpKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgc3RyaW5nIGVycm9yQ29kZSA9IF9yZWFkZXIuR2V0QXR0cmlidXRlKF9zdHJpbmdzLkNvZGVBdHRyaWJ1dGUpOw0KICAgICAgICAgICAgICAgICAgICBzdHJpbmcgbWVzc2FnZSA9IF9yZWFkZXIuUmVhZEVsZW1lbnRDb250ZW50QXNTdHJpbmcoKTsNCg0KICAgICAgICAgICAgICAgICAgICBfdG9vbE5vdGlmaWNhdGlvbnMuQWRkKG5ldyBOb3RpZmljYXRpb24NCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgSWQgPSBlcnJvckNvZGUsDQogICAgICAgICAgICAgICAgICAgICAgICBMZXZlbCA9IE5vdGlmaWNhdGlvbkxldmVsLkVycm9yLA0KICAgICAgICAgICAgICAgICAgICAgICAgTWVzc2FnZSA9IG5ldyBNZXNzYWdlIHsgVGV4dCA9IG1lc3NhZ2UgfQ0KICAgICAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgZWxzZQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgX3JlYWRlci5SZWFkKCk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICAgICAgcHJpdmF0ZSB2b2lkIFBhcnNlTWFjaGluZUluZm8oKQ0KICAgICAgICB7DQogICAgICAgICAgICBfcmVhZGVyLlJlYWQoKTsNCiAgICAgICAgICAgIHdoaWxlICghQXRFbmRPZihfc3RyaW5ncy5NYWNoaW5lSW5mbykpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgaWYgKEF0U3RhcnRPZk5vbkVtcHR5KF9zdHJpbmdzLkhvc3RuYW1lKSkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIF9pbnZvY2F0aW9uLk1hY2hpbmUgPSBfcmVhZGVyLlJlYWRFbGVtZW50Q29udGVudEFzU3RyaW5nKCk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGVsc2UgaWYgKEF0U3RhcnRPZk5vbkVtcHR5KF9zdHJpbmdzLlVzZXJuYW1lKSkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIF9pbnZvY2F0aW9uLkFjY291bnQgPSBfcmVhZGVyLlJlYWRFbGVtZW50Q29udGVudEFzU3RyaW5nKCk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGVsc2UgaWYgKEF0U3RhcnRPZk5vbkVtcHR5KF9zdHJpbmdzLlBsYXRmb3JtKSkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIF9pbnZvY2F0aW9uLlNldFByb3BlcnR5KCJQbGF0Zm9ybSIsIF9yZWFkZXIuUmVhZEVsZW1lbnRDb250ZW50QXNTdHJpbmcoKSk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGVsc2UNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIF9yZWFkZXIuUmVhZCgpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgIHByaXZhdGUgYm9vbCBBdFN0YXJ0T2ZOb25FbXB0eShzdHJpbmcgZWxlbWVudE5hbWUpDQogICAgICAgIHsNCiAgICAgICAgICAgIHJldHVybiBBdFN0YXJ0T2YoZWxlbWVudE5hbWUpICYmICFfcmVhZGVyLklzRW1wdHlFbGVtZW50Ow0KICAgICAgICB9DQoNCiAgICAgICAgcHJpdmF0ZSBib29sIEF0U3RhcnRPZihzdHJpbmcgZWxlbWVudE5hbWUpDQogICAgICAgIHsNCiAgICAgICAgICAgIHJldHVybiAhX3JlYWRlci5FT0YgJiYNCiAgICAgICAgICAgICAgICAoX3JlYWRlci5Ob2RlVHlwZSA9PSBYbWxOb2RlVHlwZS5FbGVtZW50ICYmIFN0cmluZ1JlZmVyZW5jZS5BcmVFcXVhbChfcmVhZGVyLkxvY2FsTmFtZSwgZWxlbWVudE5hbWUpKTsNCiAgICAgICAgfQ0KDQogICAgICAgIHByaXZhdGUgYm9vbCBBdEVuZE9mKHN0cmluZyBlbGVtZW50TmFtZSkNCiAgICAgICAgew0KICAgICAgICAgICAgcmV0dXJuIF9yZWFkZXIuRU9GIHx8DQogICAgICAgICAgICAgICAgKF9yZWFkZXIuTm9kZVR5cGUgPT0gWG1sTm9kZVR5cGUuRW5kRWxlbWVudCAmJiBTdHJpbmdSZWZlcmVuY2UuQXJlRXF1YWwoX3JlYWRlci5Mb2NhbE5hbWUsIGVsZW1lbnROYW1lKSk7DQogICAgICAgIH0NCg0KICAgICAgICBwcml2YXRlIHZvaWQgQWRkTWVzc2FnZXNUb1Jlc3VsdHMoKQ0KICAgICAgICB7DQogICAgICAgICAgICBmb3JlYWNoIChSZXN1bHQgcmVzdWx0IGluIF9yZXN1bHRzKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIElSdWxlIHJ1bGU7DQogICAgICAgICAgICAgICAgaWYgKF9ydWxlRGljdGlvbmFyeS5UcnlHZXRWYWx1ZShyZXN1bHQuUnVsZUlkLCBvdXQgcnVsZSkpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBNZXNzYWdlIG1lc3NhZ2UgPSBydWxlLlNob3J0RGVzY3JpcHRpb24gPz8gcnVsZS5GdWxsRGVzY3JpcHRpb247DQogICAgICAgICAgICAgICAgICAgIERpY3Rpb25hcnk8c3RyaW5nLCBzdHJpbmc+IHJlcGxhY2VtZW50cyA9IG51bGw7DQoNCiAgICAgICAgICAgICAgICAgICAgaWYgKF9yZXN1bHRUb1JlcGxhY2VtZW50RGVmaW5pdGlvbkRpY3Rpb25hcnkuVHJ5R2V0VmFsdWUocmVzdWx0LCBvdXQgcmVwbGFjZW1lbnRzKSkNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgc3RyaW5nIG1lc3NhZ2VUZXh0ID0gbWVzc2FnZT8uVGV4dDsNCiAgICAgICAgICAgICAgICAgICAgICAgIGZvcmVhY2ggKHN0cmluZyBrZXkgaW4gcmVwbGFjZW1lbnRzLktleXMpDQogICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyaW5nIHZhbHVlID0gcmVwbGFjZW1lbnRzW2tleV07DQoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoU3VwcG9ydGVkUmVwbGFjZW1lbnRUb2tlbnMuQ29udGFpbnMoa2V5KSkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFJlcGxhY2UgdGhlIHRva2VuIHdpdGggYW4gZW1iZWRkZWQgaHlwZXJsaW5rDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2VUZXh0ID0gbWVzc2FnZVRleHQuUmVwbGFjZShzdHJpbmcuRm9ybWF0KFJlcGxhY2VtZW50VG9rZW5Gb3JtYXQsIGtleSksDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJpbmcuRm9ybWF0KEVtYmVkZGVkTGlua0Zvcm1hdCwgdmFsdWUpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gUmVwbGFjZSB0aGUgdG9rZW4gd2l0aCBwbGFpbiB0ZXh0DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2VUZXh0ID0gbWVzc2FnZVRleHQuUmVwbGFjZShzdHJpbmcuRm9ybWF0KFJlcGxhY2VtZW50VG9rZW5Gb3JtYXQsIGtleSksIHZhbHVlKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2UgPSBtZXNzYWdlLkRlZXBDbG9uZSgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZS5UZXh0ID0gbWVzc2FnZVRleHQ7DQogICAgICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgICAgICByZXN1bHQuTWVzc2FnZSA9IG1lc3NhZ2U7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICAgICAgcHJpdmF0ZSB2b2lkIEFkZFNuaXBwZXRzVG9SZXN1bHRzKCkNCiAgICAgICAgew0KICAgICAgICAgICAgZm9yZWFjaCAoUmVzdWx0IHJlc3VsdCBpbiBfcmVzdWx0cykNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBzdHJpbmcgc25pcHBldElkOw0KICAgICAgICAgICAgICAgIFJlZ2lvbltdIHJlZ2lvbnM7DQoNCiAgICAgICAgICAgICAgICBpZiAocmVzdWx0LkxvY2F0aW9ucz9bMF0/LlBoeXNpY2FsTG9jYXRpb24/LlJlZ2lvbiAhPSBudWxsICYmDQogICAgICAgICAgICAgICAgICAgIF9yZXN1bHRUb1NuaXBwZXRJZERpY3Rpb25hcnkuVHJ5R2V0VmFsdWUocmVzdWx0LCBvdXQgc25pcHBldElkKSAmJg0KICAgICAgICAgICAgICAgICAgICBfc25pcHBldElkVG9SZWdpb25zRGljdGlvbmFyeS5UcnlHZXRWYWx1ZShzbmlwcGV0SWQsIG91dCByZWdpb25zKSAmJg0KICAgICAgICAgICAgICAgICAgICAhc3RyaW5nLklzTnVsbE9yV2hpdGVTcGFjZShyZWdpb25zWzBdPy5TbmlwcGV0LlRleHQpKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgLy8gUmVnaW9uc1swXSA9PiBwaHlzaWNhbExvY2F0aW9uLnJlZ2lvbg0KICAgICAgICAgICAgICAgICAgICAvLyBSZWdpb25zWzFdID0+IHBoeXNpY2FsTG9jYXRpb24uY29udGV4dFJlZ2lvbg0KICAgICAgICAgICAgICAgICAgICByZXN1bHQuTG9jYXRpb25zWzBdLlBoeXNpY2FsTG9jYXRpb24uUmVnaW9uID0gcmVnaW9uc1swXTsNCiAgICAgICAgICAgICAgICAgICAgcmVzdWx0LkxvY2F0aW9uc1swXS5QaHlzaWNhbExvY2F0aW9uLkNvbnRleHRSZWdpb24gPSByZWdpb25zWzFdOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIExvY2F0ZXMgdGhlIHJlZ2lvbiAoaW5jbHVkaW5nIHNuaXBwZXQgdGV4dCkgZm9yIHRocmVhZEZsb3dMb2NhdGlvbnMgdGhhdA0KICAgICAgICAvLy8gd2VyZSBjcmVhdGVkIGZyb20gTm9kZSBlbGVtZW50cyB3aXRoaW4gYSBUcmFjZQ0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICBwcml2YXRlIHZvaWQgQWRkU25pcHBldHNUb1RocmVhZEZsb3dMb2NhdGlvbnMoKQ0KICAgICAgICB7DQogICAgICAgICAgICBmb3JlYWNoIChSZXN1bHQgcmVzdWx0IGluIF9yZXN1bHRzKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIGlmIChyZXN1bHQuQ29kZUZsb3dzICE9IG51bGwpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBmb3JlYWNoIChDb2RlRmxvdyBjb2RlRmxvdyBpbiByZXN1bHQuQ29kZUZsb3dzKQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoY29kZUZsb3cuVGhyZWFkRmxvd3NbMF0uTG9jYXRpb25zICE9IG51bGwpDQogICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yZWFjaCAoVGhyZWFkRmxvd0xvY2F0aW9uIHRmbCBpbiBjb2RlRmxvdy5UaHJlYWRGbG93c1swXS5Mb2NhdGlvbnMpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJpbmcgc25pcHBldElkOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZWdpb25bXSByZWdpb25zID0gbnVsbDsNCg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoX3RmbFRvU25pcHBldElkRGljdGlvbmFyeS5UcnlHZXRWYWx1ZSh0ZmwsIG91dCBzbmlwcGV0SWQpICYmDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfc25pcHBldElkVG9SZWdpb25zRGljdGlvbmFyeS5UcnlHZXRWYWx1ZShzbmlwcGV0SWQsIG91dCByZWdpb25zKSkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gUmVnaW9uc1swXSA9PiBwaHlzaWNhbExvY2F0aW9uLnJlZ2lvbg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gUmVnaW9uc1sxXSA9PiBwaHlzaWNhbExvY2F0aW9uLmNvbnRleHRSZWdpb24NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRmbC5Mb2NhdGlvbi5QaHlzaWNhbExvY2F0aW9uLlJlZ2lvbiA9IHJlZ2lvbnNbMF07DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZmwuTG9jYXRpb24uUGh5c2ljYWxMb2NhdGlvbi5Db250ZXh0UmVnaW9uID0gcmVnaW9uc1sxXTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIExvY2F0ZXMgdGhlIGxvY2F0aW9uIGFuZCByZWdpb24gKGluY2x1ZGluZyBzbmlwcGV0KSBmb3IgdGhyZWFkRmxvd0xvY2F0aW9ucw0KICAgICAgICAvLy8gdGhhdCB3ZXJlIGNyZWF0ZWQgZnJvbSBOb2RlUmVmIGVsZW1lbnRzDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIHByaXZhdGUgdm9pZCBBZGROb2RlTG9jYXRpb25zVG9UaHJlYWRGbG93TG9jYXRpb25zKCkNCiAgICAgICAgew0KICAgICAgICAgICAgZm9yZWFjaCAoUmVzdWx0IHJlc3VsdCBpbiBfcmVzdWx0cykNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBpZiAocmVzdWx0LkNvZGVGbG93cyAhPSBudWxsKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgZm9yZWFjaCAoQ29kZUZsb3cgY29kZUZsb3cgaW4gcmVzdWx0LkNvZGVGbG93cykNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNvZGVGbG93LlRocmVhZEZsb3dzWzBdLkxvY2F0aW9ucyAhPSBudWxsKQ0KICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcmVhY2ggKFRocmVhZEZsb3dMb2NhdGlvbiB0ZmwgaW4gY29kZUZsb3cuVGhyZWFkRmxvd3NbMF0uTG9jYXRpb25zKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyaW5nIG5vZGVJZDsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyaW5nIHNuaXBwZXRJZDsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVnaW9uW10gcmVnaW9ucyA9IG51bGw7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2F0aW9uIGxvY2F0aW9uID0gbnVsbDsNCg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoX3RmbFRvTm9kZUlkRGljdGlvbmFyeS5UcnlHZXRWYWx1ZSh0ZmwsIG91dCBub2RlSWQpICYmDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfbm9kZUlkVG9Mb2NhdGlvbkRpY3Rpb25hcnkuVHJ5R2V0VmFsdWUobm9kZUlkLCBvdXQgbG9jYXRpb24pICYmDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfbG9jYXRpb25Ub1NuaXBwZXRJZERpY3Rpb25hcnkuVHJ5R2V0VmFsdWUobG9jYXRpb24sIG91dCBzbmlwcGV0SWQpICYmDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfc25pcHBldElkVG9SZWdpb25zRGljdGlvbmFyeS5UcnlHZXRWYWx1ZShzbmlwcGV0SWQsIG91dCByZWdpb25zKSkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gUmVnaW9uc1swXSA9PiBwaHlzaWNhbExvY2F0aW9uLnJlZ2lvbg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gUmVnaW9uc1sxXSA9PiBwaHlzaWNhbExvY2F0aW9uLmNvbnRleHRSZWdpb24NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvY2F0aW9uLlBoeXNpY2FsTG9jYXRpb24uUmVnaW9uID0gcmVnaW9uc1swXTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvY2F0aW9uLlBoeXNpY2FsTG9jYXRpb24uQ29udGV4dFJlZ2lvbiA9IHJlZ2lvbnNbMV07DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZmwuTG9jYXRpb24gPSBsb2NhdGlvbjsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgIH0NCn0=" + { + "ruleId": "CA1704", + "message": { + "text": "Correct the spelling of 'Sarif' in namespace name 'Microsoft.CodeAnalysis.Sarif.Converters'.", + "id": "Namespace" }, - "hashes": [ - { - "value": "63F99F35F6471519204236EABE998A00", - "algorithm": "md5" - }, - { - "value": "9B0ED6B0609582F5389AB409ACFA497637C411E4", - "algorithm": "sha-1" - }, + "locations": [ { - "value": "45BB52F2A833D9D048C8B23E5FA94105711685EC4DE9624834B3C8E06BD272E2", - "algorithm": "sha-256" + "logicalLocations": [ + { + "index": 3, + "fullyQualifiedName": "Microsoft.CodeAnalysis.Sarif.Converters" + } + ] } - ] + ], + "partialFingerprints": { + "UniqueId": "Sarif#Namespace" + }, + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" + } }, - "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/FxCopConverter.cs": { - "mimeType": "text/x-csharp", - "contents": { - "binary": "77u/Ly8gQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuDQovLyBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UuIFNlZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHByb2plY3Qgcm9vdCBmb3IgZnVsbCBsaWNlbnNlIGluZm9ybWF0aW9uLg0KDQp1c2luZyBTeXN0ZW07DQp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsNCnVzaW5nIFN5c3RlbS5EaWFnbm9zdGljczsNCnVzaW5nIFN5c3RlbS5HbG9iYWxpemF0aW9uOw0KdXNpbmcgU3lzdGVtLklPOw0KdXNpbmcgU3lzdGVtLkxpbnE7DQp1c2luZyBTeXN0ZW0uUmVmbGVjdGlvbjsNCnVzaW5nIFN5c3RlbS5YbWw7DQp1c2luZyBTeXN0ZW0uWG1sLlNjaGVtYTsNCnVzaW5nIE1pY3Jvc29mdC5Db2RlQW5hbHlzaXMuU2FyaWYuV3JpdGVyczsNCg0KbmFtZXNwYWNlIE1pY3Jvc29mdC5Db2RlQW5hbHlzaXMuU2FyaWYuQ29udmVydGVycw0Kew0KICAgIC8vLyA8c3VtbWFyeT4NCiAgICAvLy8gQ29udmVydHMgRnhDb3AgcmVwb3J0IGZpbGVzIHRvIHNhcmlmIGZvcm1hdA0KICAgIC8vLyA8L3N1bW1hcnk+DQogICAgLy8vPHJlbWFya3M+DQogICAgLy8vIEZ4Q29wIHByb2plY3QgZmlsZXMgYXJlIG5vdCBzdXBwb3J0ZWQgZHVlIHRvIA0KICAgIC8vLyBsb3NzIG9mIHNvdXJjZSBsb2NhdGlvbiBpbmZvcm1hdGlvbg0KICAgIC8vLzwvcmVtYXJrcz4NCiAgICBpbnRlcm5hbCBzZWFsZWQgY2xhc3MgRnhDb3BDb252ZXJ0ZXIgOiBUb29sRmlsZUNvbnZlcnRlckJhc2UNCiAgICB7DQogICAgICAgIHByaXZhdGUgY29uc3Qgc3RyaW5nIFByb2plY3REaXJlY3RvcnlWYXJpYWJsZSA9ICIkKFByb2plY3REaXIpIjsNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gQ29udmVydCBGeENvcCBsb2cgdG8gU0FSSUYgZm9ybWF0IHN0cmVhbQ0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICAvLy8gPHBhcmFtIG5hbWU9ImlucHV0Ij5GeENvcCBsb2cgc3RyZWFtPC9wYXJhbT4NCiAgICAgICAgLy8vIDxwYXJhbSBuYW1lPSJvdXRwdXQiPm91dHB1dCBzdHJlYW08L3BhcmFtPg0KICAgICAgICAvLy8gPHBhcmFtIG5hbWU9ImRhdGFUb0luc2VydCI+T3B0aW9uYWxseSBlbWl0dGVkIHByb3BlcnRpZXMgdGhhdCBzaG91bGQgYmUgd3JpdHRlbiB0byBsb2cuPC9wYXJhbT4NCiAgICAgICAgcHVibGljIG92ZXJyaWRlIHZvaWQgQ29udmVydChTdHJlYW0gaW5wdXQsIElSZXN1bHRMb2dXcml0ZXIgb3V0cHV0LCBPcHRpb25hbGx5RW1pdHRlZERhdGEgZGF0YVRvSW5zZXJ0KQ0KICAgICAgICB7DQogICAgICAgICAgICBpZiAoaW5wdXQgPT0gbnVsbCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICB0aHJvdyAobmV3IEFyZ3VtZW50TnVsbEV4Y2VwdGlvbihuYW1lb2YoaW5wdXQpKSk7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIGlmIChvdXRwdXQgPT0gbnVsbCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICB0aHJvdyAobmV3IEFyZ3VtZW50TnVsbEV4Y2VwdGlvbihuYW1lb2Yob3V0cHV0KSkpOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBMb2dpY2FsTG9jYXRpb25zRGljdGlvbmFyeS5DbGVhcigpOw0KDQogICAgICAgICAgICB2YXIgY29udGV4dCA9IG5ldyBGeENvcExvZ1JlYWRlci5Db250ZXh0KCk7DQoNCiAgICAgICAgICAgIHZhciByZXN1bHRzID0gbmV3IExpc3Q8UmVzdWx0PigpOw0KICAgICAgICAgICAgdmFyIHJ1bGVzID0gbmV3IExpc3Q8UnVsZT4oKTsNCiAgICAgICAgICAgIHZhciByZWFkZXIgPSBuZXcgRnhDb3BMb2dSZWFkZXIoKTsNCiAgICAgICAgICAgIHJlYWRlci5SdWxlUmVhZCArPSAoRnhDb3BMb2dSZWFkZXIuQ29udGV4dCBjdXJyZW50KSA9PiB7IHJ1bGVzLkFkZChDcmVhdGVSdWxlKGN1cnJlbnQpKTsgfTsNCiAgICAgICAgICAgIHJlYWRlci5SZXN1bHRSZWFkICs9IChGeENvcExvZ1JlYWRlci5Db250ZXh0IGN1cnJlbnQpID0+IHsgcmVzdWx0cy5BZGQoQ3JlYXRlUmVzdWx0KGN1cnJlbnQpKTsgfTsNCiAgICAgICAgICAgIHJlYWRlci5SZWFkKGNvbnRleHQsIGlucHV0KTsNCg0KICAgICAgICAgICAgVG9vbCB0b29sID0gbmV3IFRvb2wNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBOYW1lID0gIkZ4Q29wIg0KICAgICAgICAgICAgfTsNCg0KICAgICAgICAgICAgdmFyIGZpbGVJbmZvRmFjdG9yeSA9IG5ldyBGaWxlSW5mb0ZhY3RvcnkoTWltZVR5cGUuRGV0ZXJtaW5lRnJvbUZpbGVFeHRlbnNpb24sIGRhdGFUb0luc2VydCk7DQogICAgICAgICAgICBEaWN0aW9uYXJ5PHN0cmluZywgRmlsZURhdGE+IGZpbGVEaWN0aW9uYXJ5ID0gZmlsZUluZm9GYWN0b3J5LkNyZWF0ZShyZXN1bHRzKTsNCg0KICAgICAgICAgICAgdmFyIHJ1biA9IG5ldyBSdW4oKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIFRvb2wgPSB0b29sDQogICAgICAgICAgICB9Ow0KDQogICAgICAgICAgICBvdXRwdXQuSW5pdGlhbGl6ZShydW4pOw0KDQogICAgICAgICAgICBpZiAoZmlsZURpY3Rpb25hcnkgIT0gbnVsbCAmJiBmaWxlRGljdGlvbmFyeS5BbnkoKSkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBvdXRwdXQuV3JpdGVGaWxlcyhmaWxlRGljdGlvbmFyeSk7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIGlmIChMb2dpY2FsTG9jYXRpb25zRGljdGlvbmFyeSAhPSBudWxsICYmIExvZ2ljYWxMb2NhdGlvbnNEaWN0aW9uYXJ5LkFueSgpKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIG91dHB1dC5Xcml0ZUxvZ2ljYWxMb2NhdGlvbnMoTG9naWNhbExvY2F0aW9uc0RpY3Rpb25hcnkpOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBvdXRwdXQuT3BlblJlc3VsdHMoKTsNCiAgICAgICAgICAgIG91dHB1dC5Xcml0ZVJlc3VsdHMocmVzdWx0cyk7DQogICAgICAgICAgICBvdXRwdXQuQ2xvc2VSZXN1bHRzKCk7DQoNCiAgICAgICAgICAgIGlmIChydWxlcy5Db3VudCA+IDApDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgdmFyIHJ1bGVzRGljdGlvbmFyeSA9IG5ldyBEaWN0aW9uYXJ5PHN0cmluZywgSVJ1bGU+KCk7DQoNCiAgICAgICAgICAgICAgICBmb3JlYWNoIChSdWxlIHJ1bGUgaW4gcnVsZXMpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBydWxlc0RpY3Rpb25hcnlbcnVsZS5JZF0gPSBydWxlOw0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgIG91dHB1dC5Xcml0ZVJ1bGVzKHJ1bGVzRGljdGlvbmFyeSk7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICBpbnRlcm5hbCBSdWxlIENyZWF0ZVJ1bGUoRnhDb3BMb2dSZWFkZXIuQ29udGV4dCBjb250ZXh0KQ0KICAgICAgICB7DQogICAgICAgICAgICB2YXIgcnVsZSA9IG5ldyBSdWxlDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgSWQgPSBjb250ZXh0LkNoZWNrSWQsDQogICAgICAgICAgICAgICAgTmFtZSA9IGNvbnRleHQuUnVsZVR5cGVOYW1lLlRvTWVzc2FnZSgpLA0KICAgICAgICAgICAgICAgIE1lc3NhZ2VTdHJpbmdzID0gY29udGV4dC5SZXNvbHV0aW9ucw0KICAgICAgICAgICAgfTsNCg0KICAgICAgICAgICAgcnVsZS5TZXRQcm9wZXJ0eSgiQ2F0ZWdvcnkiLCBjb250ZXh0LlJ1bGVDYXRlZ29yeSk7DQoNCiAgICAgICAgICAgIHJldHVybiBydWxlOw0KICAgICAgICB9DQoNCiAgICAgICAgaW50ZXJuYWwgUmVzdWx0IENyZWF0ZVJlc3VsdChGeENvcExvZ1JlYWRlci5Db250ZXh0IGNvbnRleHQpDQogICAgICAgIHsNCiAgICAgICAgICAgIFJlc3VsdCByZXN1bHQgPSBuZXcgUmVzdWx0KCk7DQoNCiAgICAgICAgICAgIHN0cmluZyB1bmlxdWVJZCA9IGNvbnRleHQuR2V0VW5pcXVlSWQoKTsNCg0KICAgICAgICAgICAgaWYgKCFTdHJpbmcuSXNOdWxsT3JXaGl0ZVNwYWNlKHVuaXF1ZUlkKSkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBpZiAocmVzdWx0LlBhcnRpYWxGaW5nZXJwcmludHMgPT0gbnVsbCkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIHJlc3VsdC5QYXJ0aWFsRmluZ2VycHJpbnRzID0gbmV3IERpY3Rpb25hcnk8c3RyaW5nLCBzdHJpbmc+KCk7DQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgU2FyaWZVdGlsaXRpZXMuQWRkT3JVcGRhdGVEaWN0aW9uYXJ5RW50cnkocmVzdWx0LlBhcnRpYWxGaW5nZXJwcmludHMsICJVbmlxdWVJZCIsIHVuaXF1ZUlkKTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgc3RyaW5nIHN0YXR1cyA9IGNvbnRleHQuU3RhdHVzOw0KDQogICAgICAgICAgICBpZiAoIkV4Y2x1ZGVkSW5Tb3VyY2UiLkVxdWFscyhzdGF0dXMpKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHJlc3VsdC5TdXBwcmVzc2lvblN0YXRlcyA9IFN1cHByZXNzaW9uU3RhdGVzLlN1cHByZXNzZWRJblNvdXJjZTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2UgaWYgKCJFeGNsdWRlZEluUHJvamVjdCIuRXF1YWxzKHN0YXR1cykpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgcmVzdWx0LkJhc2VsaW5lU3RhdGUgPSBCYXNlbGluZVN0YXRlLkV4aXN0aW5nOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICByZXN1bHQuUnVsZUlkID0gY29udGV4dC5DaGVja0lkOw0KICAgICAgICAgICAgcmVzdWx0Lk1lc3NhZ2UgPSBuZXcgTWVzc2FnZSB7IEFyZ3VtZW50cyA9IGNvbnRleHQuSXRlbXMsIE1lc3NhZ2VJZCA9IGNvbnRleHQuUmVzb2x1dGlvbk5hbWUsIFRleHQgPSBjb250ZXh0Lk1lc3NhZ2UgfTsNCiAgICAgICAgICAgIHZhciBsb2NhdGlvbiA9IG5ldyBMb2NhdGlvbigpOw0KDQogICAgICAgICAgICBzdHJpbmcgc291cmNlRmlsZSA9IEdldEZpbGVQYXRoKGNvbnRleHQpOw0KICAgICAgICAgICAgc3RyaW5nIHRhcmdldEZpbGUgPSBjb250ZXh0LlRhcmdldDsNCg0KICAgICAgICAgICAgLy8gSWYgYm90aCBzb3VyY2UgYW5kIHRhcmdldCBoYXZlIHZhbHVlcyBhbmQgdGhleSdyZSBkaWZmZXJlbnQsIHNldCBhbmFseXNpcyB0YXJnZXQNCiAgICAgICAgICAgIGlmICghc3RyaW5nLklzTnVsbE9yV2hpdGVTcGFjZShzb3VyY2VGaWxlKSAmJg0KICAgICAgICAgICAgICAgICFzdHJpbmcuSXNOdWxsT3JXaGl0ZVNwYWNlKHRhcmdldEZpbGUpICYmDQogICAgICAgICAgICAgICAgIXNvdXJjZUZpbGUuRXF1YWxzKHRhcmdldEZpbGUpKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHJlc3VsdC5BbmFseXNpc1RhcmdldCA9IEJ1aWxkRmlsZUxvY2F0aW9uRnJvbUZ4Q29wUmVmZXJlbmNlKHRhcmdldEZpbGUpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZWxzZQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIC8vIE9uZSBvciB0aGUgb3RoZXIgb3IgYm90aCBpcyBudWxsLCBvciB0aGV5J3JlIGRpZmZlcmVudA0KICAgICAgICAgICAgICAgIHNvdXJjZUZpbGUgPSBzdHJpbmcuSXNOdWxsT3JXaGl0ZVNwYWNlKHNvdXJjZUZpbGUpID8gdGFyZ2V0RmlsZSA6IHNvdXJjZUZpbGU7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIC8vIElmIHdlIGhhdmUgYSB2YWx1ZSwgc2V0IHBoeXNpY2FsIGxvY2F0aW9uDQogICAgICAgICAgICBpZiAoIXN0cmluZy5Jc051bGxPcldoaXRlU3BhY2Uoc291cmNlRmlsZSkpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgbG9jYXRpb24uUGh5c2ljYWxMb2NhdGlvbiA9IG5ldyBQaHlzaWNhbExvY2F0aW9uDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBGaWxlTG9jYXRpb24gPSBCdWlsZEZpbGVMb2NhdGlvbkZyb21GeENvcFJlZmVyZW5jZShzb3VyY2VGaWxlKSwNCiAgICAgICAgICAgICAgICAgICAgUmVnaW9uID0gY29udGV4dC5MaW5lID09IG51bGwgPyBudWxsIDogRXh0ZW5zaW9ucy5DcmVhdGVSZWdpb24oY29udGV4dC5MaW5lLlZhbHVlKQ0KICAgICAgICAgICAgICAgIH07DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIGxvY2F0aW9uLkZ1bGx5UXVhbGlmaWVkTG9naWNhbE5hbWUgPSBDcmVhdGVGdWxseVF1YWxpZmllZExvZ2ljYWxOYW1lKGNvbnRleHQpOw0KDQogICAgICAgICAgICByZXN1bHQuTG9jYXRpb25zID0gbmV3IExpc3Q8TG9jYXRpb24+IHsgbG9jYXRpb24gfTsNCg0KICAgICAgICAgICAgYm9vbCBtYXBzRGlyZWN0bHlUb1NhcmlmTmFtZTsNCg0KICAgICAgICAgICAgcmVzdWx0LkxldmVsID0gQ29udmVydEZ4Q29wTGV2ZWxUb1Jlc3VsdExldmVsKGNvbnRleHQuTGV2ZWwsIG91dCBtYXBzRGlyZWN0bHlUb1NhcmlmTmFtZSk7DQoNCiAgICAgICAgICAgIGlmICghbWFwc0RpcmVjdGx5VG9TYXJpZk5hbWUpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgLy8gV2Ugd2lsbCBub3QgcmVjYXBpdHVsYXRlIEZ4Q29wIE1lc3NhZ2VMZXZlbCBuYW1lcyAoc3VjaCBhcyANCiAgICAgICAgICAgICAgICAvLyAiRXJyb3IiIGFuZCAiV2FybmluZyIpIGFzIGEgcHJvcGVydHkuIEZvciBuYW1lcyB0aGF0IGRpZmZlcg0KICAgICAgICAgICAgICAgIC8vIChzdWNoIGFzICJDcml0aWNhbFdhcm5pbmciIGFuZCAiSW5mb3JtYXRpb24iKSwgd2Ugd2lsbCBhbHNvIA0KICAgICAgICAgICAgICAgIC8vIGluY2x1ZGUgdGhlIEZ4Q29wLXNwZWNpZmljIHZhbHVlcyBpbiB0aGUgcHJvcGVydHkgYmFnLg0KICAgICAgICAgICAgICAgIEFkZFByb3BlcnR5KHJlc3VsdCwgY29udGV4dC5MZXZlbCwgIkxldmVsIik7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIEFkZFByb3BlcnR5KHJlc3VsdCwgY29udGV4dC5DYXRlZ29yeSwgIkNhdGVnb3J5Iik7DQogICAgICAgICAgICBBZGRQcm9wZXJ0eShyZXN1bHQsIGNvbnRleHQuRml4Q2F0ZWdvcnksICJGaXhDYXRlZ29yeSIpOw0KDQogICAgICAgICAgICByZXR1cm4gcmVzdWx0Ow0KICAgICAgICB9DQoNCiAgICAgICAgcHJpdmF0ZSBGaWxlTG9jYXRpb24gQnVpbGRGaWxlTG9jYXRpb25Gcm9tRnhDb3BSZWZlcmVuY2Uoc3RyaW5nIGZpbGVSZWZlcmVuY2UpDQogICAgICAgIHsNCiAgICAgICAgICAgIHN0cmluZyB1cmlCYXNlSWQgPSBudWxsOw0KDQogICAgICAgICAgICBpZiAoZmlsZVJlZmVyZW5jZS5TdGFydHNXaXRoKFByb2plY3REaXJlY3RvcnlWYXJpYWJsZSArICIvIikpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgdXJpQmFzZUlkID0gUHJvamVjdERpcmVjdG9yeVZhcmlhYmxlOw0KICAgICAgICAgICAgICAgIGZpbGVSZWZlcmVuY2UgPSBmaWxlUmVmZXJlbmNlLlN1YnN0cmluZyhQcm9qZWN0RGlyZWN0b3J5VmFyaWFibGUuTGVuZ3RoICsgMSk7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIHJldHVybiBuZXcgRmlsZUxvY2F0aW9uKCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBVcmlCYXNlSWQgPSB1cmlCYXNlSWQsDQogICAgICAgICAgICAgICAgVXJpID0gbmV3IFVyaShmaWxlUmVmZXJlbmNlLCBVcmlLaW5kLlJlbGF0aXZlT3JBYnNvbHV0ZSkNCiAgICAgICAgICAgIH07DQogICAgICAgIH0NCg0KICAgICAgICBwcml2YXRlIHN0YXRpYyBSZXN1bHRMZXZlbCBDb252ZXJ0RnhDb3BMZXZlbFRvUmVzdWx0TGV2ZWwoc3RyaW5nIGZ4Y29wTGV2ZWwsIG91dCBib29sIG1hcHNEaXJlY3RseVRvU2FyaWZOYW1lKQ0KICAgICAgICB7DQogICAgICAgICAgICBtYXBzRGlyZWN0bHlUb1NhcmlmTmFtZSA9IHRydWU7DQoNCiAgICAgICAgICAgIC8vIFZhbHVlcyBiZWxvdyBkZXJpdmVkIGZyb20gZGVmaW5pdGlvbiBvZiBGeENvcCBNZXNzYWdlTGV2ZWwgZW51bQ0KICAgICAgICAgICAgLy8gTWljcm9zb2Z0LlZpc3VhbFN0dWRpby5Db2RlQW5hbHlzaXMuRXh0ZW5zaWJpbGl0eS5NZXNzYWdlTGV2ZWwNCg0KICAgICAgICAgICAgc3dpdGNoIChmeGNvcExldmVsKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIGNhc2UgIkVycm9yIjoNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIHJldHVybiBSZXN1bHRMZXZlbC5FcnJvcjsNCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICBjYXNlICJDcml0aWNhbEVycm9yIjoNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIG1hcHNEaXJlY3RseVRvU2FyaWZOYW1lID0gZmFsc2U7DQogICAgICAgICAgICAgICAgICAgIHJldHVybiBSZXN1bHRMZXZlbC5FcnJvcjsNCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICBjYXNlICJXYXJuaW5nIjoNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIHJldHVybiBSZXN1bHRMZXZlbC5XYXJuaW5nOw0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgIGNhc2UgIkNyaXRpY2FsV2FybmluZyI6DQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBtYXBzRGlyZWN0bHlUb1NhcmlmTmFtZSA9IGZhbHNlOw0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gUmVzdWx0TGV2ZWwuV2FybmluZzsNCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICBjYXNlICJJbmZvcm1hdGlvbiI6DQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBtYXBzRGlyZWN0bHlUb1NhcmlmTmFtZSA9IGZhbHNlOw0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gUmVzdWx0TGV2ZWwuTm90ZTsNCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAvLyBJbiBzb21lIGNpcmN1bXN0YW5jZXMsIHN1Y2ggYXMgcmVwb3J0aW5nIGFuICdleGNsdWRlZCcgbWVzc2FnZSwNCiAgICAgICAgICAgIC8vIEZ4Q29wIHByb3ZpZGVzIG5vIE1lc3NhZ2VMZXZlbC4gRm9yIHRoZXNlIGlzc3Vlcywgd2Ugc2hvdWxkbid0DQogICAgICAgICAgICAvLyBlbWl0IGFueSB2YWx1ZSBhdCBhbGwNCiAgICAgICAgICAgIG1hcHNEaXJlY3RseVRvU2FyaWZOYW1lID0gZmFsc2U7DQogICAgICAgICAgICByZXR1cm4gUmVzdWx0TGV2ZWwuRGVmYXVsdDsNCiAgICAgICAgfQ0KDQogICAgICAgIHByaXZhdGUgc3RhdGljIHN0cmluZyBHZXRGaWxlUGF0aChGeENvcExvZ1JlYWRlci5Db250ZXh0IGNvbnRleHQpDQogICAgICAgIHsNCiAgICAgICAgICAgIGlmIChjb250ZXh0LlBhdGggPT0gbnVsbCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gY29udGV4dC5GaWxlOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZWxzZSBpZiAoY29udGV4dC5GaWxlID09IG51bGwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgRGVidWcuRmFpbCgiRnhDb3Agd2l0aCBwYXRoIHNldCBidXQgZmlsZSB1bnNldC4iKTsNCiAgICAgICAgICAgICAgICByZXR1cm4gY29udGV4dC5QYXRoOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZWxzZQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHJldHVybiBQYXRoLkNvbWJpbmUoY29udGV4dC5QYXRoLCBjb250ZXh0LkZpbGUpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICAgICAgcHJpdmF0ZSBzdHJpbmcgQ3JlYXRlRnVsbHlRdWFsaWZpZWRMb2dpY2FsTmFtZShGeENvcExvZ1JlYWRlci5Db250ZXh0IGNvbnRleHQpDQogICAgICAgIHsNCiAgICAgICAgICAgIHN0cmluZyBwYXJlbnRMb2dpY2FsTG9jYXRpb25LZXkgPSBudWxsOw0KICAgICAgICAgICAgc3RyaW5nIGRlbGltaXRlciA9IHN0cmluZy5FbXB0eTsNCg0KICAgICAgICAgICAgaWYgKCFzdHJpbmcuSXNOdWxsT3JFbXB0eShjb250ZXh0Lk1vZHVsZSkpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgcGFyZW50TG9naWNhbExvY2F0aW9uS2V5ID0gQWRkTG9naWNhbExvY2F0aW9uKHBhcmVudExvZ2ljYWxMb2NhdGlvbktleSwgY29udGV4dC5Nb2R1bGUsIExvZ2ljYWxMb2NhdGlvbktpbmQuTW9kdWxlLCBkZWxpbWl0ZXIpOw0KICAgICAgICAgICAgICAgIGRlbGltaXRlciA9ICIhIjsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgaWYgKCFzdHJpbmcuSXNOdWxsT3JFbXB0eShjb250ZXh0LlJlc291cmNlKSkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBwYXJlbnRMb2dpY2FsTG9jYXRpb25LZXkgPSBBZGRMb2dpY2FsTG9jYXRpb24ocGFyZW50TG9naWNhbExvY2F0aW9uS2V5LCBjb250ZXh0LlJlc291cmNlLCBMb2dpY2FsTG9jYXRpb25LaW5kLlJlc291cmNlLCBkZWxpbWl0ZXIpOw0KICAgICAgICAgICAgICAgIGRlbGltaXRlciA9ICIuIjsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgaWYgKCFzdHJpbmcuSXNOdWxsT3JFbXB0eShjb250ZXh0Lk5hbWVzcGFjZSkpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgcGFyZW50TG9naWNhbExvY2F0aW9uS2V5ID0gQWRkTG9naWNhbExvY2F0aW9uKHBhcmVudExvZ2ljYWxMb2NhdGlvbktleSwgY29udGV4dC5OYW1lc3BhY2UsIExvZ2ljYWxMb2NhdGlvbktpbmQuTmFtZXNwYWNlLCBkZWxpbWl0ZXIpOw0KICAgICAgICAgICAgICAgIGRlbGltaXRlciA9ICIuIjsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgaWYgKCFzdHJpbmcuSXNOdWxsT3JFbXB0eShjb250ZXh0LlR5cGUpKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHBhcmVudExvZ2ljYWxMb2NhdGlvbktleSA9IEFkZExvZ2ljYWxMb2NhdGlvbihwYXJlbnRMb2dpY2FsTG9jYXRpb25LZXksIGNvbnRleHQuVHlwZSwgTG9naWNhbExvY2F0aW9uS2luZC5UeXBlLCBkZWxpbWl0ZXIpOw0KICAgICAgICAgICAgICAgIGRlbGltaXRlciA9ICIuIjsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgaWYgKCFzdHJpbmcuSXNOdWxsT3JFbXB0eShjb250ZXh0Lk1lbWJlcikpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgc3RyaW5nIG1lbWJlciA9IGNvbnRleHQuTWVtYmVyICE9IG51bGwgPyBjb250ZXh0Lk1lbWJlci5UcmltKCcjJykgOiBudWxsOw0KICAgICAgICAgICAgICAgIHBhcmVudExvZ2ljYWxMb2NhdGlvbktleSA9IEFkZExvZ2ljYWxMb2NhdGlvbihwYXJlbnRMb2dpY2FsTG9jYXRpb25LZXksIG1lbWJlciwgTG9naWNhbExvY2F0aW9uS2luZC5NZW1iZXIsIGRlbGltaXRlcik7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIHJldHVybiBwYXJlbnRMb2dpY2FsTG9jYXRpb25LZXk7DQogICAgICAgIH0NCg0KICAgICAgICBwcml2YXRlIHN0cmluZyBBZGRMb2dpY2FsTG9jYXRpb24oc3RyaW5nIHBhcmVudEtleSwgc3RyaW5nIHZhbHVlLCBzdHJpbmcga2luZCwgc3RyaW5nIGRlbGltaXRlciA9ICIuIikNCiAgICAgICAgew0KICAgICAgICAgICAgdmFyIGxvZ2ljYWxMb2NhdGlvbiA9IG5ldyBMb2dpY2FsTG9jYXRpb24NCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBQYXJlbnRLZXkgPSBwYXJlbnRLZXksDQogICAgICAgICAgICAgICAgS2luZCA9IGtpbmQsDQogICAgICAgICAgICAgICAgTmFtZSA9IHZhbHVlDQogICAgICAgICAgICB9Ow0KDQogICAgICAgICAgICByZXR1cm4gQWRkTG9naWNhbExvY2F0aW9uKGxvZ2ljYWxMb2NhdGlvbiwgZGVsaW1pdGVyKTsNCiAgICAgICAgfQ0KDQogICAgICAgIHByaXZhdGUgc3RhdGljIHZvaWQgQWRkUHJvcGVydHkoUmVzdWx0IHJlc3VsdCwgc3RyaW5nIHZhbHVlLCBzdHJpbmcga2V5KQ0KICAgICAgICB7DQogICAgICAgICAgICBpZiAoIVN0cmluZy5Jc051bGxPcldoaXRlU3BhY2UodmFsdWUpKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHJlc3VsdC5TZXRQcm9wZXJ0eShrZXksIHZhbHVlKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgIH0NCg0KICAgIC8vLyA8c3VtbWFyeT4NCiAgICAvLy8gUGx1Z2dhYmxlIEZ4Q29wIGxvZyByZWFkZXINCiAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgIGludGVybmFsIHNlYWxlZCBjbGFzcyBGeENvcExvZ1JlYWRlcg0KICAgIHsNCiAgICAgICAgcHVibGljIGRlbGVnYXRlIHZvaWQgT25SdWxlUmVhZChDb250ZXh0IGNvbnRleHQpOw0KICAgICAgICBwdWJsaWMgZGVsZWdhdGUgdm9pZCBPbklzc3VlUmVhZChDb250ZXh0IGNvbnRleHQpOw0KDQogICAgICAgIHB1YmxpYyBldmVudCBPblJ1bGVSZWFkIFJ1bGVSZWFkOw0KICAgICAgICBwdWJsaWMgZXZlbnQgT25Jc3N1ZVJlYWQgUmVzdWx0UmVhZDsNCg0KICAgICAgICBwcml2YXRlIGJvb2wgX3JlYWRpbmdQcm9qZWN0RmlsZTsNCiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBTcGFyc2VSZWFkZXJEaXNwYXRjaFRhYmxlIF9kaXNwYXRjaFRhYmxlOw0KDQogICAgICAgIHByaXZhdGUgY29uc3Qgc3RyaW5nIEZ4Q29wUmVwb3J0U2NoZW1hID0gIk1pY3Jvc29mdC5Db2RlQW5hbHlzaXMuU2FyaWYuQ29udmVydGVycy5TY2hlbWF0YS5GeENvcFJlcG9ydC54c2QiOw0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIEN1cnJlbnQgY29udGV4dCBvZiB0aGUgcmVzdWx0IA0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICAvLy8gPHJlbWFya3M+DQogICAgICAgIC8vLyBUaGUgY29udGV4dCBhY2N1bXVsYXRlcyBpbiBtZW1vcnkgZHVyaW5nIHRoZSBzdHJlYW1pbmcsDQogICAgICAgIC8vLyBidXQgdGhlIGluZm9ybWF0aW9uIHdlIGdhdGhlciBpcyB2ZXJ5IGxpbWl0ZWQsDQogICAgICAgIC8vLyBhbmQgdGhlcmUgaXMgb25seSBvbmUgY29udGV4dCBvYmplY3QgcGVyIGlucHV0IGZpbGUNCiAgICAgICAgLy8vIGN1cnJlbnRseSBjb25zdHJ1Y3RlZA0KICAgICAgICAvLy8gPC9yZW1hcmtzPg0KICAgICAgICBpbnRlcm5hbCBjbGFzcyBDb250ZXh0DQogICAgICAgIHsNCiAgICAgICAgICAgIHB1YmxpYyBzdHJpbmcgUmVwb3J0IHsgZ2V0OyBwcml2YXRlIHNldDsgfQ0KICAgICAgICAgICAgcHVibGljIGJvb2wgRXhjZXB0aW9uIHsgZ2V0OyBwcml2YXRlIHNldDsgfQ0KICAgICAgICAgICAgcHVibGljIHN0cmluZyBFeGNlcHRpb25UeXBlIHsgZ2V0OyBwcml2YXRlIHNldDsgfQ0KICAgICAgICAgICAgcHVibGljIHN0cmluZyBFeGNlcHRpb25NZXNzYWdlIHsgZ2V0OyBwcml2YXRlIHNldDsgfQ0KICAgICAgICAgICAgcHVibGljIHN0cmluZyBTdGFja1RyYWNlIHsgZ2V0OyBwcml2YXRlIHNldDsgfQ0KICAgICAgICAgICAgcHVibGljIHN0cmluZyBJbm5lckV4Y2VwdGlvblR5cGUgeyBnZXQ7IHByaXZhdGUgc2V0OyB9DQogICAgICAgICAgICBwdWJsaWMgc3RyaW5nIElubmVyRXhjZXB0aW9uTWVzc2FnZSB7IGdldDsgcHJpdmF0ZSBzZXQ7IH0NCiAgICAgICAgICAgIHB1YmxpYyBzdHJpbmcgSW5uZXJTdGFja1RyYWNlIHsgZ2V0OyBwcml2YXRlIHNldDsgfQ0KICAgICAgICAgICAgcHVibGljIHN0cmluZyBFeGNlcHRpb25UYXJnZXQgeyBnZXQ7IHByaXZhdGUgc2V0OyB9DQogICAgICAgICAgICBwdWJsaWMgc3RyaW5nIFRhcmdldCB7IGdldDsgcHJpdmF0ZSBzZXQ7IH0NCiAgICAgICAgICAgIHB1YmxpYyBzdHJpbmcgTW9kdWxlIHsgZ2V0OyBwcml2YXRlIHNldDsgfQ0KICAgICAgICAgICAgcHVibGljIHN0cmluZyBOYW1lc3BhY2UgeyBnZXQ7IHByaXZhdGUgc2V0OyB9DQogICAgICAgICAgICBwdWJsaWMgc3RyaW5nIFJlc291cmNlIHsgZ2V0OyBwcml2YXRlIHNldDsgfQ0KICAgICAgICAgICAgcHVibGljIHN0cmluZyBNZW1iZXIgeyBnZXQ7IHByaXZhdGUgc2V0OyB9DQogICAgICAgICAgICBwdWJsaWMgc3RyaW5nIFR5cGUgeyBnZXQ7IHByaXZhdGUgc2V0OyB9DQogICAgICAgICAgICBwdWJsaWMgc3RyaW5nIENoZWNrSWQgeyBnZXQ7IHByaXZhdGUgc2V0OyB9DQogICAgICAgICAgICBwdWJsaWMgc3RyaW5nIE1lc3NhZ2VJZCB7IGdldDsgcHJpdmF0ZSBzZXQ7IH0NCiAgICAgICAgICAgIHB1YmxpYyBzdHJpbmcgQ2F0ZWdvcnkgeyBnZXQ7IHByaXZhdGUgc2V0OyB9DQogICAgICAgICAgICBwdWJsaWMgc3RyaW5nIFR5cGVuYW1lIHsgZ2V0OyBwcml2YXRlIHNldDsgfQ0KICAgICAgICAgICAgcHVibGljIHN0cmluZyBGaXhDYXRlZ29yeSB7IGdldDsgcHJpdmF0ZSBzZXQ7IH0NCiAgICAgICAgICAgIHB1YmxpYyBzdHJpbmcgU3RhdHVzIHsgZ2V0OyBwcml2YXRlIHNldDsgfQ0KICAgICAgICAgICAgcHVibGljIHN0cmluZyBNZXNzYWdlIHsgZ2V0OyBwcml2YXRlIHNldDsgfQ0KICAgICAgICAgICAgcHVibGljIElMaXN0PHN0cmluZz4gSXRlbXMgeyBnZXQ7IHNldDsgfQ0KICAgICAgICAgICAgcHVibGljIHN0cmluZyBSZXNvbHV0aW9uTmFtZSB7IGdldDsgcHJpdmF0ZSBzZXQ7IH0NCiAgICAgICAgICAgIHB1YmxpYyBzdHJpbmcgQ2VydGFpbnR5IHsgZ2V0OyBwcml2YXRlIHNldDsgfQ0KICAgICAgICAgICAgcHVibGljIHN0cmluZyBMZXZlbCB7IGdldDsgcHJpdmF0ZSBzZXQ7IH0NCiAgICAgICAgICAgIHB1YmxpYyBzdHJpbmcgUGF0aCB7IGdldDsgcHJpdmF0ZSBzZXQ7IH0NCiAgICAgICAgICAgIHB1YmxpYyBzdHJpbmcgRmlsZSB7IGdldDsgcHJpdmF0ZSBzZXQ7IH0NCiAgICAgICAgICAgIHB1YmxpYyBpbnQ/IExpbmUgeyBnZXQ7IHByaXZhdGUgc2V0OyB9DQogICAgICAgICAgICBwdWJsaWMgRGljdGlvbmFyeTxzdHJpbmcsIHN0cmluZz4gUmVzb2x1dGlvbnMgeyBnZXQ7IHByaXZhdGUgc2V0OyB9DQogICAgICAgICAgICBwdWJsaWMgc3RyaW5nIFJ1bGVUeXBlTmFtZSB7IGdldDsgcHJpdmF0ZSBzZXQ7IH0NCiAgICAgICAgICAgIHB1YmxpYyBzdHJpbmcgUnVsZUNhdGVnb3J5IHsgZ2V0OyBwcml2YXRlIHNldDsgfQ0KDQogICAgICAgICAgICAvLyBjYWxjdWxhdGUgcmVzdWx0J3MgdW5pcXVlIGlkIGJhc2VkIG9uIHRoZSBjdXJyZW50IGNvbnRleHQNCiAgICAgICAgICAgIHB1YmxpYyBzdHJpbmcgR2V0VW5pcXVlSWQoKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIGlmIChFeGNlcHRpb24pDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gQ3JlYXRlSWQoRXhjZXB0aW9uVGFyZ2V0LCBFeGNlcHRpb25UeXBlLCBNZXNzYWdlSWQsIFJlc29sdXRpb25OYW1lKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgcmV0dXJuIENyZWF0ZUlkKE1lc3NhZ2VJZCwgUmVzb2x1dGlvbk5hbWUpOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBwcml2YXRlIHN0YXRpYyBzdHJpbmcgQ3JlYXRlSWQocGFyYW1zIHN0cmluZ1tdIHBhcnRzKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHZhciB1cGRhdGVkID0gcGFydHMNCiAgICAgICAgICAgICAgICAgICAgLldoZXJlKHBhcnQgPT4gIVN0cmluZy5Jc051bGxPckVtcHR5KHBhcnQpKQ0KICAgICAgICAgICAgICAgICAgICAuU2VsZWN0KHBhcnQgPT4gcGFydC5UcmltU3RhcnQoJyMnKSk7DQoNCiAgICAgICAgICAgICAgICByZXR1cm4gU3RyaW5nLkpvaW4oIiMiLCB1cGRhdGVkLlRvQXJyYXkoKSk7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIHB1YmxpYyB2b2lkIFJlZmluZVJlcG9ydChzdHJpbmcgcmVwb3J0KQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIFJlcG9ydCA9IHJlcG9ydDsNCiAgICAgICAgICAgICAgICBDbGVhclRhcmdldCgpOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBwdWJsaWMgdm9pZCBSZWZpbmVSdWxlKHN0cmluZyB0eXBlTmFtZSwgc3RyaW5nIGNhdGVnb3J5LCBzdHJpbmcgY2hlY2tJZCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBSdWxlVHlwZU5hbWUgPSB0eXBlTmFtZTsNCiAgICAgICAgICAgICAgICBSdWxlQ2F0ZWdvcnkgPSBjYXRlZ29yeTsNCiAgICAgICAgICAgICAgICBDaGVja0lkID0gY2hlY2tJZDsNCiAgICAgICAgICAgICAgICBDbGVhclJlc29sdXRpb25zKCk7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIHB1YmxpYyB2b2lkIFJlZmluZVRhcmdldChzdHJpbmcgdGFyZ2V0KQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIFRhcmdldCA9IHRhcmdldDsNCiAgICAgICAgICAgICAgICBDbGVhck1vZHVsZSgpOw0KICAgICAgICAgICAgICAgIENsZWFyUmVzb3VyY2UoKTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgcHVibGljIHZvaWQgUmVmaW5lUmVzb3VyY2Uoc3RyaW5nIHJlc291cmNlKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIFJlc291cmNlID0gcmVzb3VyY2U7DQogICAgICAgICAgICAgICAgQ2xlYXJOYW1lc3BhY2UoKTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgcHVibGljIHZvaWQgUmVmaW5lTW9kdWxlKHN0cmluZyBtb2R1bGUpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgTW9kdWxlID0gbW9kdWxlOw0KICAgICAgICAgICAgICAgIENsZWFyTWVzc2FnZSgpOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBwdWJsaWMgdm9pZCBSZWZpbmVOYW1lc3BhY2Uoc3RyaW5nIG5hbWVTcGFjZSkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBOYW1lc3BhY2UgPSBuYW1lU3BhY2U7DQogICAgICAgICAgICAgICAgQ2xlYXJUeXBlKCk7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIHB1YmxpYyB2b2lkIFJlZmluZVR5cGUoc3RyaW5nIHR5cGUpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgVHlwZSA9IHR5cGU7DQogICAgICAgICAgICAgICAgQ2xlYXJNZW1iZXIoKTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgcHVibGljIHZvaWQgUmVmaW5lTWVtYmVyKHN0cmluZyBtZW1iZXIpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgTWVtYmVyID0gbWVtYmVyOw0KICAgICAgICAgICAgICAgIENsZWFyTWVzc2FnZSgpOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBwdWJsaWMgdm9pZCBSZWZpbmVNZXNzYWdlKHN0cmluZyBjaGVja0lkLCBzdHJpbmcgdHlwZW5hbWUsIHN0cmluZyBtZXNzYWdlSWQsIHN0cmluZyBjYXRlZ29yeSwgc3RyaW5nIGZpeGNhdGVnb3J5LCBzdHJpbmcgc3RhdHVzKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIENoZWNrSWQgPSBjaGVja0lkOw0KICAgICAgICAgICAgICAgIE1lc3NhZ2VJZCA9IG1lc3NhZ2VJZDsNCiAgICAgICAgICAgICAgICBDYXRlZ29yeSA9IGNhdGVnb3J5Ow0KICAgICAgICAgICAgICAgIFR5cGVuYW1lID0gdHlwZW5hbWU7DQogICAgICAgICAgICAgICAgRml4Q2F0ZWdvcnkgPSBmaXhjYXRlZ29yeTsNCiAgICAgICAgICAgICAgICBTdGF0dXMgPSBzdGF0dXM7DQoNCiAgICAgICAgICAgICAgICBDbGVhcklzc3VlKCk7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIHB1YmxpYyB2b2lkIFJlZmluZUlzc3VlKHN0cmluZyBtZXNzYWdlLCBzdHJpbmcgcmVzdWx0LCBzdHJpbmcgY2VydGFpbnR5LCBzdHJpbmcgbGV2ZWwsIHN0cmluZyBwYXRoLCBzdHJpbmcgZmlsZSwgaW50PyBsaW5lKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIE1lc3NhZ2UgPSBtZXNzYWdlOw0KICAgICAgICAgICAgICAgIFJlc29sdXRpb25OYW1lID0gcmVzdWx0Ow0KICAgICAgICAgICAgICAgIENlcnRhaW50eSA9IGNlcnRhaW50eTsNCiAgICAgICAgICAgICAgICBMZXZlbCA9IGxldmVsOw0KICAgICAgICAgICAgICAgIFBhdGggPSBwYXRoOw0KICAgICAgICAgICAgICAgIEZpbGUgPSBmaWxlOw0KICAgICAgICAgICAgICAgIExpbmUgPSBsaW5lOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBwdWJsaWMgdm9pZCBSZWZpbmVJdGVtKHN0cmluZyBpdGVtKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIEl0ZW1zID0gSXRlbXMgPz8gbmV3IExpc3Q8c3RyaW5nPigpOw0KICAgICAgICAgICAgICAgIEl0ZW1zLkFkZChpdGVtKTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgcHVibGljIHZvaWQgUmVmaW5lUmVzb2x1dGlvbihzdHJpbmcgbmFtZSwgc3RyaW5nIGZvcm1hdFN0cmluZykNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBSZXNvbHV0aW9ucyA9IFJlc29sdXRpb25zID8/IG5ldyBEaWN0aW9uYXJ5PHN0cmluZywgc3RyaW5nPigpOw0KICAgICAgICAgICAgICAgIFJlc29sdXRpb25zW25hbWVdID0gZm9ybWF0U3RyaW5nOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBwdWJsaWMgdm9pZCBSZWZpbmVFeGNlcHRpb24oYm9vbCBpc0V4Y2VwdGlvbiwgc3RyaW5nIGNoZWNrSWQsIHN0cmluZyB0YXJnZXQpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgQ2xlYXJUYXJnZXQoKTsNCg0KICAgICAgICAgICAgICAgIEV4Y2VwdGlvbiA9IGlzRXhjZXB0aW9uOw0KICAgICAgICAgICAgICAgIENoZWNrSWQgPSBjaGVja0lkOw0KICAgICAgICAgICAgICAgIEV4Y2VwdGlvblRhcmdldCA9IHRhcmdldDsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgcHVibGljIHZvaWQgUmVmaW5lRXhjZXB0aW9uVHlwZShzdHJpbmcgdHlwZSkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBFeGNlcHRpb25UeXBlID0gdHlwZTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgcHVibGljIHZvaWQgUmVmaW5lRXhjZXB0aW9uTWVzc2FnZShzdHJpbmcgbWVzc2FnZSkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBFeGNlcHRpb25NZXNzYWdlID0gbWVzc2FnZTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgcHVibGljIHZvaWQgUmVmaW5lU3RhY2tUcmFjZShzdHJpbmcgc3RhY2spDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgU3RhY2tUcmFjZSA9IHN0YWNrOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBwdWJsaWMgdm9pZCBSZWZpbmVJbm5lckV4Y2VwdGlvblR5cGUoc3RyaW5nIHR5cGUpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgSW5uZXJFeGNlcHRpb25UeXBlID0gdHlwZTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgcHVibGljIHZvaWQgUmVmaW5lSW5uZXJFeGNlcHRpb25NZXNzYWdlKHN0cmluZyBtZXNzYWdlKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIElubmVyRXhjZXB0aW9uTWVzc2FnZSA9IG1lc3NhZ2U7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIHB1YmxpYyB2b2lkIFJlZmluZUlubmVyU3RhY2tUcmFjZShzdHJpbmcgc3RhY2spDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgSW5uZXJTdGFja1RyYWNlID0gc3RhY2s7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIHB1YmxpYyB2b2lkIENsZWFyUmVwb3J0KCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBSZWZpbmVSZXBvcnQobnVsbCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBwdWJsaWMgdm9pZCBDbGVhckV4Y2VwdGlvbigpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgUmVmaW5lRXhjZXB0aW9uKGZhbHNlLCBudWxsLCBudWxsKTsNCiAgICAgICAgICAgICAgICBFeGNlcHRpb25NZXNzYWdlID0gbnVsbDsNCiAgICAgICAgICAgICAgICBFeGNlcHRpb25UeXBlID0gbnVsbDsNCiAgICAgICAgICAgICAgICBTdGFja1RyYWNlID0gbnVsbDsNCiAgICAgICAgICAgICAgICBJbm5lckV4Y2VwdGlvbk1lc3NhZ2UgPSBudWxsOw0KICAgICAgICAgICAgICAgIElubmVyRXhjZXB0aW9uVHlwZSA9IG51bGw7DQogICAgICAgICAgICAgICAgSW5uZXJTdGFja1RyYWNlID0gbnVsbDsNCg0KICAgICAgICAgICAgICAgIENsZWFySXNzdWUoKTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgcHVibGljIHZvaWQgQ2xlYXJUYXJnZXQoKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIFJlZmluZVRhcmdldChudWxsKTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgcHVibGljIHZvaWQgQ2xlYXJNb2R1bGUoKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIFJlZmluZU1vZHVsZShudWxsKTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgcHVibGljIHZvaWQgQ2xlYXJSZXNvdXJjZSgpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgUmVmaW5lUmVzb3VyY2UobnVsbCk7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIHB1YmxpYyB2b2lkIENsZWFyTmFtZXNwYWNlKCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBSZWZpbmVOYW1lc3BhY2UobnVsbCk7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIHB1YmxpYyB2b2lkIENsZWFyVHlwZSgpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgUmVmaW5lVHlwZShudWxsKTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgcHVibGljIHZvaWQgQ2xlYXJNZW1iZXIoKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIFJlZmluZU1lbWJlcihudWxsKTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgcHVibGljIHZvaWQgQ2xlYXJNZXNzYWdlKCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBSZWZpbmVNZXNzYWdlKG51bGwsIG51bGwsIG51bGwsIG51bGwsIG51bGwsIG51bGwpOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBwdWJsaWMgdm9pZCBDbGVhcklzc3VlKCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBSZWZpbmVJc3N1ZShudWxsLCBudWxsLCBudWxsLCBudWxsLCBudWxsLCBudWxsLCBudWxsKTsNCiAgICAgICAgICAgICAgICBJdGVtcyA9IG51bGw7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIHB1YmxpYyB2b2lkIENsZWFyUnVsZSgpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgUmVmaW5lUnVsZShudWxsLCBudWxsLCBudWxsKTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgcHVibGljIHZvaWQgQ2xlYXJSZXNvbHV0aW9ucygpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgUmVzb2x1dGlvbnMgPSBudWxsOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gRnhDb3AgeG1sIGVsZW1lbnRzIGFuZCBhdHRyaWJ1dGVzDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIHByaXZhdGUgc3RhdGljIGNsYXNzIFNjaGVtYVN0cmluZ3MNCiAgICAgICAgew0KICAgICAgICAgICAgLy8gZWxlbWVudHMNCiAgICAgICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcgRWxlbWVudEZ4Q29wUHJvamVjdCA9ICJGeENvcFByb2plY3QiOw0KICAgICAgICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBFbGVtZW50RnhDb3BSZXBvcnQgPSAiRnhDb3BSZXBvcnQiOw0KICAgICAgICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBFbGVtZW50RXhjZXB0aW9ucyA9ICJFeGNlcHRpb25zIjsNCiAgICAgICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcgRWxlbWVudEV4Y2VwdGlvbiA9ICJFeGNlcHRpb24iOw0KICAgICAgICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBFbGVtZW50RXhjZXB0aW9uTWVzc2FnZSA9ICJFeGNlcHRpb25NZXNzYWdlIjsNCiAgICAgICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcgRWxlbWVudFN0YWNrVHJhY2UgPSAiU3RhY2tUcmFjZSI7DQogICAgICAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIEVsZW1lbnRJbm5lclR5cGUgPSAiSW5uZXJUeXBlIjsNCiAgICAgICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcgRWxlbWVudElubmVyRXhjZXB0aW9uTWVzc2FnZSA9ICJJbm5lckV4Y2VwdGlvbk1lc3NhZ2UiOw0KICAgICAgICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBFbGVtZW50SW5uZXJTdGFja1RyYWNlID0gIklubmVyU3RhY2tUcmFjZSI7DQogICAgICAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIEVsZW1lbnRSdWxlcyA9ICJSdWxlcyI7DQogICAgICAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIEVsZW1lbnRSdWxlID0gIlJ1bGUiOw0KICAgICAgICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBFbGVtZW50VGFyZ2V0cyA9ICJUYXJnZXRzIjsNCiAgICAgICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcgRWxlbWVudFRhcmdldCA9ICJUYXJnZXQiOw0KICAgICAgICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBFbGVtZW50TW9kdWxlcyA9ICJNb2R1bGVzIjsNCiAgICAgICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcgRWxlbWVudE1vZHVsZSA9ICJNb2R1bGUiOw0KICAgICAgICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBFbGVtZW50UmVzb3VyY2VzID0gIlJlc291cmNlcyI7DQogICAgICAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIEVsZW1lbnRSZXNvdXJjZSA9ICJSZXNvdXJjZSI7DQogICAgICAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIEVsZW1lbnROYW1lc3BhY2VzID0gIk5hbWVzcGFjZXMiOw0KICAgICAgICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBFbGVtZW50TmFtZXNwYWNlID0gIk5hbWVzcGFjZSI7DQogICAgICAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIEVsZW1lbnRUeXBlcyA9ICJUeXBlcyI7DQogICAgICAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIEVsZW1lbnRUeXBlID0gIlR5cGUiOw0KICAgICAgICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBFbGVtZW50TWVtYmVycyA9ICJNZW1iZXJzIjsNCiAgICAgICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcgRWxlbWVudE1lbWJlciA9ICJNZW1iZXIiOw0KICAgICAgICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBFbGVtZW50TWVzc2FnZXMgPSAiTWVzc2FnZXMiOw0KICAgICAgICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBFbGVtZW50TWVzc2FnZSA9ICJNZXNzYWdlIjsNCiAgICAgICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcgRWxlbWVudElzc3VlID0gIklzc3VlIjsNCiAgICAgICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcgRWxlbWVudEl0ZW0gPSAiSXRlbSI7DQogICAgICAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIEVsZW1lbnRSZXNvbHV0aW9uID0gIlJlc29sdXRpb24iOw0KDQogICAgICAgICAgICAvLyBhdHRyaWJ1dGVzIChyZXBvcnQpDQogICAgICAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIEF0dHJpYnV0ZVZlcnNpb24gPSAiVmVyc2lvbiI7DQoNCiAgICAgICAgICAgIC8vIGF0dHJpYnV0ZXMgKHRhcmdldCArIHJ1bGUpDQogICAgICAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIEF0dHJpYnV0ZU5hbWUgPSAiTmFtZSI7DQoNCiAgICAgICAgICAgIC8vIGF0dHJpYnV0ZXMgKHR5cGUpDQogICAgICAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIEF0dHJpYnV0ZUtpbmQgPSAiS2luZCI7DQogICAgICAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIEF0dHJpYnV0ZUFjY2Vzc2liaWxpdHkgPSAiQWNjZXNzaWJpbGl0eSI7DQogICAgICAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIEF0dHJpYnV0ZUV4dGVybmFsbHlWaXNpYmxlID0gIkV4dGVybmFsbHlWaXNpYmxlIjsNCg0KICAgICAgICAgICAgLy8gYXR0cmlidXRlcyAobWVtYmVyKQ0KICAgICAgICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBBdHRyaWJ1dGVTdGF0aWMgPSAiU3RhdGljIjsNCg0KICAgICAgICAgICAgLy8gYXR0cmlidXRlcyAobWVzc2FnZSArIHJ1bGUpDQogICAgICAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIEF0dHJpYnV0ZUlkID0gIklkIjsNCiAgICAgICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcgQXR0cmlidXRlVHlwZU5hbWUgPSAiVHlwZU5hbWUiOw0KICAgICAgICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBBdHRyaWJ1dGVDYXRlZ29yeSA9ICJDYXRlZ29yeSI7DQogICAgICAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIEF0dHJpYnV0ZUNoZWNrSWQgPSAiQ2hlY2tJZCI7DQogICAgICAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIEF0dHJpYnV0ZVN0YXR1cyA9ICJTdGF0dXMiOw0KICAgICAgICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBBdHRyaWJ1dGVDcmVhdGVkID0gIkNyZWF0ZWQiOw0KICAgICAgICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBBdHRyaWJ1dGVGaXhDYXRlZ29yeSA9ICJGaXhDYXRlZ29yeSI7DQoNCiAgICAgICAgICAgIC8vIGF0dHJpYnV0ZXMgKHJlc3VsdCkNCiAgICAgICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcgQXR0cmlidXRlQ2VydGFpbnR5ID0gIkNlcnRhaW50eSI7DQogICAgICAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIEF0dHJpYnV0ZUxldmVsID0gIkxldmVsIjsNCiAgICAgICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcgQXR0cmlidXRlUGF0aCA9ICJQYXRoIjsNCiAgICAgICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcgQXR0cmlidXRlRmlsZSA9ICJGaWxlIjsNCiAgICAgICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcgQXR0cmlidXRlTGluZSA9ICJMaW5lIjsNCg0KICAgICAgICAgICAgLy8gYXR0cmlidXRlcyAoZXhjZXB0aW9uKQ0KICAgICAgICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBBdHRyaWJ1dGVLZXl3b3JkID0gIktleXdvcmQiOw0KICAgICAgICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBBdHRyaWJ1dGVUYXJnZXQgPSAiVGFyZ2V0IjsNCg0KICAgICAgICAgICAgLy8gZW51bXMgKGV4Y2VwdGlvbiBraW5kKQ0KICAgICAgICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBFbnVtRW5naW5lID0gIkVuZ2luZSI7DQogICAgICAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIEVudW1SdWxlID0gIlJ1bGUiOw0KICAgICAgICB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gQ29uc3RydWN0b3IgdG8gaHlkcmF0ZSB0aGUgcHJpdmF0ZSBtZW1iZXJzDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIHB1YmxpYyBGeENvcExvZ1JlYWRlcigpDQogICAgICAgIHsNCiAgICAgICAgICAgIF9kaXNwYXRjaFRhYmxlID0gbmV3IFNwYXJzZVJlYWRlckRpc3BhdGNoVGFibGUNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICB7U2NoZW1hU3RyaW5ncy5FbGVtZW50RnhDb3BSZXBvcnQsIFJlYWRGeENvcFJlcG9ydH0sDQogICAgICAgICAgICAgICAge1NjaGVtYVN0cmluZ3MuRWxlbWVudEV4Y2VwdGlvbnMsIFJlYWRFeGNlcHRpb25zfSwNCiAgICAgICAgICAgICAgICB7U2NoZW1hU3RyaW5ncy5FbGVtZW50RXhjZXB0aW9uLCBSZWFkRXhjZXB0aW9ufSwNCiAgICAgICAgICAgICAgICB7U2NoZW1hU3RyaW5ncy5FbGVtZW50RXhjZXB0aW9uTWVzc2FnZSwgUmVhZEV4Y2VwdGlvbk1lc3NhZ2V9LA0KICAgICAgICAgICAgICAgIHtTY2hlbWFTdHJpbmdzLkVsZW1lbnRTdGFja1RyYWNlLCBSZWFkU3RhY2tUcmFjZX0sDQogICAgICAgICAgICAgICAge1NjaGVtYVN0cmluZ3MuRWxlbWVudElubmVyVHlwZSwgUmVhZElubmVyRXhjZXB0aW9uVHlwZX0sDQogICAgICAgICAgICAgICAge1NjaGVtYVN0cmluZ3MuRWxlbWVudElubmVyRXhjZXB0aW9uTWVzc2FnZSwgUmVhZElubmVyRXhjZXB0aW9uTWVzc2FnZX0sDQogICAgICAgICAgICAgICAge1NjaGVtYVN0cmluZ3MuRWxlbWVudElubmVyU3RhY2tUcmFjZSwgUmVhZElubmVyU3RhY2tUcmFjZX0sDQogICAgICAgICAgICAgICAge1NjaGVtYVN0cmluZ3MuRWxlbWVudFJ1bGVzLCBSZWFkUnVsZXN9LA0KICAgICAgICAgICAgICAgIHtTY2hlbWFTdHJpbmdzLkVsZW1lbnRSdWxlLCBSZWFkUnVsZX0sDQogICAgICAgICAgICAgICAge1NjaGVtYVN0cmluZ3MuRWxlbWVudFJlc29sdXRpb24sIFJlYWRSZXNvbHV0aW9ufSwNCiAgICAgICAgICAgICAgICB7U2NoZW1hU3RyaW5ncy5FbGVtZW50VGFyZ2V0cywgUmVhZFRhcmdldHN9LA0KICAgICAgICAgICAgICAgIHtTY2hlbWFTdHJpbmdzLkVsZW1lbnRUYXJnZXQsIFJlYWRUYXJnZXR9LA0KICAgICAgICAgICAgICAgIHtTY2hlbWFTdHJpbmdzLkVsZW1lbnRSZXNvdXJjZXMsIFJlYWRSZXNvdXJjZXN9LA0KICAgICAgICAgICAgICAgIHtTY2hlbWFTdHJpbmdzLkVsZW1lbnRSZXNvdXJjZSwgUmVhZFJlc291cmNlfSwNCiAgICAgICAgICAgICAgICB7U2NoZW1hU3RyaW5ncy5FbGVtZW50TW9kdWxlcywgUmVhZE1vZHVsZXN9LA0KICAgICAgICAgICAgICAgIHtTY2hlbWFTdHJpbmdzLkVsZW1lbnRNb2R1bGUsIFJlYWRNb2R1bGV9LA0KICAgICAgICAgICAgICAgIHtTY2hlbWFTdHJpbmdzLkVsZW1lbnROYW1lc3BhY2VzLCBSZWFkTmFtZXNwYWNlc30sDQogICAgICAgICAgICAgICAge1NjaGVtYVN0cmluZ3MuRWxlbWVudE5hbWVzcGFjZSwgUmVhZE5hbWVzcGFjZX0sDQogICAgICAgICAgICAgICAge1NjaGVtYVN0cmluZ3MuRWxlbWVudFR5cGVzLCBSZWFkVHlwZXN9LA0KICAgICAgICAgICAgICAgIHtTY2hlbWFTdHJpbmdzLkVsZW1lbnRUeXBlLCBSZWFkVHlwZX0sDQogICAgICAgICAgICAgICAge1NjaGVtYVN0cmluZ3MuRWxlbWVudE1lbWJlcnMsIFJlYWRNZW1iZXJzfSwNCiAgICAgICAgICAgICAgICB7U2NoZW1hU3RyaW5ncy5FbGVtZW50TWVtYmVyLCBSZWFkTWVtYmVyfSwNCiAgICAgICAgICAgICAgICB7U2NoZW1hU3RyaW5ncy5FbGVtZW50TWVzc2FnZXMsIFJlYWRNZXNzYWdlc30sDQogICAgICAgICAgICAgICAge1NjaGVtYVN0cmluZ3MuRWxlbWVudE1lc3NhZ2UsIFJlYWRNZXNzYWdlfSwNCiAgICAgICAgICAgICAgICB7U2NoZW1hU3RyaW5ncy5FbGVtZW50SXNzdWUsIFJlYWRJc3N1ZX0sDQogICAgICAgICAgICAgICAge1NjaGVtYVN0cmluZ3MuRWxlbWVudEl0ZW0sIFJlYWRJdGVtfSwNCiAgICAgICAgICAgIH07DQogICAgICAgIH0NCg0KICAgICAgICBwdWJsaWMgdm9pZCBSZWFkKENvbnRleHQgY29udGV4dCwgU3RyZWFtIGlucHV0KQ0KICAgICAgICB7DQogICAgICAgICAgICBYbWxTY2hlbWFTZXQgc2NoZW1hU2V0ID0gbmV3IFhtbFNjaGVtYVNldCgpOw0KICAgICAgICAgICAgQXNzZW1ibHkgYXNzZW1ibHkgPSB0eXBlb2YoRnhDb3BMb2dSZWFkZXIpLkFzc2VtYmx5Ow0KICAgICAgICAgICAgdmFyIHNldHRpbmdzID0gbmV3IFhtbFJlYWRlclNldHRpbmdzDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgRHRkUHJvY2Vzc2luZyA9IER0ZFByb2Nlc3NpbmcuSWdub3JlLA0KICAgICAgICAgICAgICAgIFhtbFJlc29sdmVyID0gbnVsbA0KICAgICAgICAgICAgfTsNCg0KICAgICAgICAgICAgdXNpbmcgKHZhciBzdHJlYW0gPSBhc3NlbWJseS5HZXRNYW5pZmVzdFJlc291cmNlU3RyZWFtKEZ4Q29wTG9nUmVhZGVyLkZ4Q29wUmVwb3J0U2NoZW1hKSkNCiAgICAgICAgICAgIHVzaW5nICh2YXIgcmVhZGVyID0gWG1sUmVhZGVyLkNyZWF0ZShzdHJlYW0sIHNldHRpbmdzKSkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBYbWxTY2hlbWEgc2NoZW1hID0gWG1sU2NoZW1hLlJlYWQocmVhZGVyLCBuZXcgVmFsaWRhdGlvbkV2ZW50SGFuZGxlcihSZXBvcnRFcnJvcikpOw0KICAgICAgICAgICAgICAgIHNjaGVtYVNldC5BZGQoc2NoZW1hKTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgdXNpbmcgKHZhciBzcGFyc2VSZWFkZXIgPSBTcGFyc2VSZWFkZXIuQ3JlYXRlRnJvbVN0cmVhbShfZGlzcGF0Y2hUYWJsZSwgaW5wdXQsIHNjaGVtYVNldCkpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgLy8gRnhDb3AgZGlzdGluY3Rpb25zIGJldHdlZW4gcHJvamVjdCBhbmQgcmVwb3J0IGZpbGVzLg0KICAgICAgICAgICAgICAgIC8vIA0KICAgICAgICAgICAgICAgIC8vIDEuIFByb2plY3QgZmlsZXMgYXJlIGRlc2lnbmVkIHRvIGJlIGRldGVybWluaXN0aWMgaW4gb3V0cHV0IGFuZCB0aGVyZWZvcmUNCiAgICAgICAgICAgICAgICAvLyAgICBkbyBub3QgZW1pdCBhbnkgZmlsZSBsb2NhdGlvbnMsIG9ubHkgbG9naWNhbCBsb2NhdGlvbnMuDQogICAgICAgICAgICAgICAgLy8gMi4gUHJvamVjdCBmaWxlcyBkbyBub3QgZW1pdCBmdWxseS1jb25zdHJ1Y3RlZCBtZXNzYWdlcywgb25seSBkeW5hbWljDQogICAgICAgICAgICAgICAgLy8gICAgYXJndW1lbnRzIHRoYXQgY2FuIGJlIHVzZWQgd2l0aCBydWxlIGZvcm1hdCBzdHJpbmdzIHRvIGNvbnN0cnVjdCBhIG1lc3NhZ2UuDQogICAgICAgICAgICAgICAgLy8gMy4gUHJvamVjdCBmaWxlcyBieSBkZWZhdWx0IHBlcnNpc3QgZXhjbHVkZWQgbWVzc2FnZSBidXQgbm90IGFic2VudA0KICAgICAgICAgICAgICAgIC8vICAgIG1lc3NhZ2VzLiBSZXBvcnQgZmlsZXMgYnkgZGVmYXVsdCBwZXJzaXN0IG5laXRoZXIgZXhjbHVkZWQgb3IgYWJzZW50DQogICAgICAgICAgICAgICAgLy8gICAgbWVzc2FnZXMuDQoNCiAgICAgICAgICAgICAgICBpZiAoc3BhcnNlUmVhZGVyLkxvY2FsTmFtZS5FcXVhbHMoU2NoZW1hU3RyaW5ncy5FbGVtZW50RnhDb3BQcm9qZWN0KSkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIF9yZWFkaW5nUHJvamVjdEZpbGUgPSB0cnVlOw0KDQogICAgICAgICAgICAgICAgICAgIC8vIFNraXAgcHJvamVjdCBpbmZvcm1hdGlvbiwgd2hpY2ggc2hvdWxkIGxlYWQgdXMgdG8gdGhlIHJlcG9ydCB0aGF0DQogICAgICAgICAgICAgICAgICAgIC8vIGhvbGRzIGVtaXR0ZWQgbWVzc2FnZXMuDQogICAgICAgICAgICAgICAgICAgIHNwYXJzZVJlYWRlci5SZWFkQ2hpbGRyZW4oU2NoZW1hU3RyaW5ncy5FbGVtZW50RnhDb3BQcm9qZWN0LCBjb250ZXh0KTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgZWxzZSBpZiAoc3BhcnNlUmVhZGVyLkxvY2FsTmFtZS5FcXVhbHMoU2NoZW1hU3RyaW5ncy5FbGVtZW50RnhDb3BSZXBvcnQpKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgUmVhZEZ4Q29wUmVwb3J0KHNwYXJzZVJlYWRlciwgY29udGV4dCk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGVsc2UNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBYbWxFeGNlcHRpb24oU3RyaW5nLkZvcm1hdChDdWx0dXJlSW5mby5JbnZhcmlhbnRDdWx0dXJlLCAiSW52YWxpZCByb290IGVsZW1lbnQgaW4gRnhDb3AgbG9nIGZpbGU6IHswfSIsIHNwYXJzZVJlYWRlci5Mb2NhbE5hbWUpKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICBwcml2YXRlIHN0YXRpYyB2b2lkIFJlcG9ydEVycm9yKG9iamVjdCBzZW5kZXIsIEV2ZW50QXJncyBlKQ0KICAgICAgICB7DQogICAgICAgICAgICB0aHJvdyBuZXcgWG1sRXhjZXB0aW9uKGUuVG9TdHJpbmcoKSk7DQogICAgICAgIH0NCg0KICAgICAgICBwcml2YXRlIHN0YXRpYyB2b2lkIFJlYWRGeENvcFJlcG9ydChTcGFyc2VSZWFkZXIgcmVhZGVyLCBvYmplY3QgcGFyZW50KQ0KICAgICAgICB7DQogICAgICAgICAgICBDb250ZXh0IGNvbnRleHQgPSAoQ29udGV4dClwYXJlbnQ7DQoNCiAgICAgICAgICAgIGNvbnRleHQuUmVmaW5lUmVwb3J0KHJlYWRlci5SZWFkQXR0cmlidXRlU3RyaW5nKFNjaGVtYVN0cmluZ3MuQXR0cmlidXRlVmVyc2lvbikpOw0KICAgICAgICAgICAgcmVhZGVyLlJlYWRDaGlsZHJlbihTY2hlbWFTdHJpbmdzLkVsZW1lbnRGeENvcFJlcG9ydCwgcGFyZW50KTsNCiAgICAgICAgICAgIGNvbnRleHQuQ2xlYXJSZXBvcnQoKTsNCiAgICAgICAgfQ0KDQogICAgICAgIHByaXZhdGUgc3RhdGljIHZvaWQgUmVhZEV4Y2VwdGlvbnMoU3BhcnNlUmVhZGVyIHJlYWRlciwgb2JqZWN0IHBhcmVudCkNCiAgICAgICAgew0KICAgICAgICAgICAgcmVhZGVyLlJlYWRDaGlsZHJlbihTY2hlbWFTdHJpbmdzLkVsZW1lbnRFeGNlcHRpb25zLCBwYXJlbnQpOw0KICAgICAgICB9DQoNCiAgICAgICAgcHJpdmF0ZSB2b2lkIFJlYWRFeGNlcHRpb24oU3BhcnNlUmVhZGVyIHJlYWRlciwgb2JqZWN0IHBhcmVudCkNCiAgICAgICAgew0KICAgICAgICAgICAgQ29udGV4dCBjb250ZXh0ID0gKENvbnRleHQpcGFyZW50Ow0KDQogICAgICAgICAgICBzdHJpbmcgcnVsZUlkID0gcmVhZGVyLlJlYWRBdHRyaWJ1dGVTdHJpbmcoU2NoZW1hU3RyaW5ncy5BdHRyaWJ1dGVLZXl3b3JkKTsNCiAgICAgICAgICAgIHN0cmluZyBraW5kID0gcmVhZGVyLlJlYWRBdHRyaWJ1dGVTdHJpbmcoU2NoZW1hU3RyaW5ncy5BdHRyaWJ1dGVLaW5kKTsNCiAgICAgICAgICAgIHN0cmluZyBjaGVja0lkID0gcmVhZGVyLlJlYWRBdHRyaWJ1dGVTdHJpbmcoU2NoZW1hU3RyaW5ncy5BdHRyaWJ1dGVDaGVja0lkKTsNCiAgICAgICAgICAgIHN0cmluZyB0YXJnZXQgPSByZWFkZXIuUmVhZEF0dHJpYnV0ZVN0cmluZyhTY2hlbWFTdHJpbmdzLkF0dHJpYnV0ZVRhcmdldCk7DQoNCiAgICAgICAgICAgIGNvbnRleHQuUmVmaW5lRXhjZXB0aW9uKHRydWUsIHJ1bGVJZCwgdGFyZ2V0KTsNCg0KICAgICAgICAgICAgcmVhZGVyLlJlYWRDaGlsZHJlbihTY2hlbWFTdHJpbmdzLkVsZW1lbnRFeGNlcHRpb24sIHBhcmVudCk7DQoNCiAgICAgICAgICAgIHN0cmluZyBleGNlcHRpb24gPSBNYWtlRXhjZXB0aW9uTWVzc2FnZShraW5kLCBjaGVja0lkLCBjb250ZXh0LkV4Y2VwdGlvblR5cGUsIGNvbnRleHQuRXhjZXB0aW9uTWVzc2FnZSwgY29udGV4dC5TdGFja1RyYWNlLCBjb250ZXh0LklubmVyRXhjZXB0aW9uVHlwZSwgY29udGV4dC5Jbm5lckV4Y2VwdGlvbk1lc3NhZ2UsIGNvbnRleHQuSW5uZXJTdGFja1RyYWNlKTsNCiAgICAgICAgICAgIGNvbnRleHQuUmVmaW5lSXNzdWUoZXhjZXB0aW9uLCBudWxsLCBudWxsLCBudWxsLCBudWxsLCBudWxsLCBudWxsKTsNCg0KICAgICAgICAgICAgaWYgKFJlc3VsdFJlYWQgIT0gbnVsbCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBSZXN1bHRSZWFkKGNvbnRleHQpOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBjb250ZXh0LkNsZWFySXNzdWUoKTsNCiAgICAgICAgICAgIGNvbnRleHQuQ2xlYXJFeGNlcHRpb24oKTsNCiAgICAgICAgfQ0KDQogICAgICAgIHByaXZhdGUgc3RhdGljIHZvaWQgUmVhZEV4Y2VwdGlvblR5cGUoU3BhcnNlUmVhZGVyIHJlYWRlciwgb2JqZWN0IHBhcmVudCkNCiAgICAgICAgew0KICAgICAgICAgICAgQ29udGV4dCBjb250ZXh0ID0gKENvbnRleHQpcGFyZW50Ow0KDQogICAgICAgICAgICBpZiAoY29udGV4dC5FeGNlcHRpb24pDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgY29udGV4dC5SZWZpbmVFeGNlcHRpb25UeXBlKHJlYWRlci5SZWFkRWxlbWVudENvbnRlbnRBc1N0cmluZygpKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgIHByaXZhdGUgc3RhdGljIHZvaWQgUmVhZEV4Y2VwdGlvbk1lc3NhZ2UoU3BhcnNlUmVhZGVyIHJlYWRlciwgb2JqZWN0IHBhcmVudCkNCiAgICAgICAgew0KICAgICAgICAgICAgQ29udGV4dCBjb250ZXh0ID0gKENvbnRleHQpcGFyZW50Ow0KDQogICAgICAgICAgICBjb250ZXh0LlJlZmluZUV4Y2VwdGlvbk1lc3NhZ2UocmVhZGVyLlJlYWRFbGVtZW50Q29udGVudEFzU3RyaW5nKCkpOw0KICAgICAgICB9DQoNCiAgICAgICAgcHJpdmF0ZSBzdGF0aWMgdm9pZCBSZWFkU3RhY2tUcmFjZShTcGFyc2VSZWFkZXIgcmVhZGVyLCBvYmplY3QgcGFyZW50KQ0KICAgICAgICB7DQogICAgICAgICAgICBDb250ZXh0IGNvbnRleHQgPSAoQ29udGV4dClwYXJlbnQ7DQoNCiAgICAgICAgICAgIGNvbnRleHQuUmVmaW5lU3RhY2tUcmFjZShyZWFkZXIuUmVhZEVsZW1lbnRDb250ZW50QXNTdHJpbmcoKSk7DQogICAgICAgIH0NCg0KICAgICAgICBwcml2YXRlIHZvaWQgUmVhZElubmVyRXhjZXB0aW9uVHlwZShTcGFyc2VSZWFkZXIgcmVhZGVyLCBvYmplY3QgcGFyZW50KQ0KICAgICAgICB7DQogICAgICAgICAgICBDb250ZXh0IGNvbnRleHQgPSAoQ29udGV4dClwYXJlbnQ7DQoNCiAgICAgICAgICAgIGNvbnRleHQuUmVmaW5lSW5uZXJFeGNlcHRpb25UeXBlKHJlYWRlci5SZWFkRWxlbWVudENvbnRlbnRBc1N0cmluZygpKTsNCiAgICAgICAgfQ0KDQogICAgICAgIHByaXZhdGUgc3RhdGljIHZvaWQgUmVhZElubmVyRXhjZXB0aW9uTWVzc2FnZShTcGFyc2VSZWFkZXIgcmVhZGVyLCBvYmplY3QgcGFyZW50KQ0KICAgICAgICB7DQogICAgICAgICAgICBDb250ZXh0IGNvbnRleHQgPSAoQ29udGV4dClwYXJlbnQ7DQoNCiAgICAgICAgICAgIGNvbnRleHQuUmVmaW5lSW5uZXJFeGNlcHRpb25NZXNzYWdlKHJlYWRlci5SZWFkRWxlbWVudENvbnRlbnRBc1N0cmluZygpKTsNCiAgICAgICAgfQ0KDQogICAgICAgIHByaXZhdGUgc3RhdGljIHZvaWQgUmVhZElubmVyU3RhY2tUcmFjZShTcGFyc2VSZWFkZXIgcmVhZGVyLCBvYmplY3QgcGFyZW50KQ0KICAgICAgICB7DQogICAgICAgICAgICBDb250ZXh0IGNvbnRleHQgPSAoQ29udGV4dClwYXJlbnQ7DQoNCiAgICAgICAgICAgIGNvbnRleHQuUmVmaW5lSW5uZXJTdGFja1RyYWNlKHJlYWRlci5SZWFkRWxlbWVudENvbnRlbnRBc1N0cmluZygpKTsNCiAgICAgICAgfQ0KDQogICAgICAgIHByaXZhdGUgc3RhdGljIHZvaWQgUmVhZFJlc291cmNlcyhTcGFyc2VSZWFkZXIgcmVhZGVyLCBvYmplY3QgcGFyZW50KQ0KICAgICAgICB7DQogICAgICAgICAgICByZWFkZXIuUmVhZENoaWxkcmVuKFNjaGVtYVN0cmluZ3MuRWxlbWVudFJlc291cmNlcywgcGFyZW50KTsNCiAgICAgICAgfQ0KDQogICAgICAgIHByaXZhdGUgc3RhdGljIHZvaWQgUmVhZFJlc291cmNlKFNwYXJzZVJlYWRlciByZWFkZXIsIG9iamVjdCBwYXJlbnQpDQogICAgICAgIHsNCiAgICAgICAgICAgIENvbnRleHQgY29udGV4dCA9IChDb250ZXh0KXBhcmVudDsNCg0KICAgICAgICAgICAgY29udGV4dC5SZWZpbmVSZXNvdXJjZShyZWFkZXIuUmVhZEF0dHJpYnV0ZVN0cmluZyhTY2hlbWFTdHJpbmdzLkF0dHJpYnV0ZU5hbWUpKTsNCiAgICAgICAgICAgIHJlYWRlci5SZWFkQ2hpbGRyZW4oU2NoZW1hU3RyaW5ncy5FbGVtZW50UmVzb3VyY2UsIHBhcmVudCk7DQogICAgICAgICAgICBjb250ZXh0LkNsZWFyUmVzb3VyY2UoKTsNCiAgICAgICAgfQ0KDQogICAgICAgIHByaXZhdGUgc3RhdGljIHZvaWQgUmVhZFJ1bGVzKFNwYXJzZVJlYWRlciByZWFkZXIsIG9iamVjdCBwYXJlbnQpDQogICAgICAgIHsNCiAgICAgICAgICAgIHJlYWRlci5SZWFkQ2hpbGRyZW4oU2NoZW1hU3RyaW5ncy5FbGVtZW50UnVsZXMsIHBhcmVudCk7DQogICAgICAgIH0NCg0KICAgICAgICBwcml2YXRlIHZvaWQgUmVhZFJ1bGUoU3BhcnNlUmVhZGVyIHJlYWRlciwgb2JqZWN0IHBhcmVudCkNCiAgICAgICAgew0KICAgICAgICAgICAgQ29udGV4dCBjb250ZXh0ID0gKENvbnRleHQpcGFyZW50Ow0KDQogICAgICAgICAgICBjb250ZXh0LlJlZmluZVJ1bGUoDQogICAgICAgICAgICAgICAgdHlwZU5hbWU6IHJlYWRlci5SZWFkQXR0cmlidXRlU3RyaW5nKFNjaGVtYVN0cmluZ3MuQXR0cmlidXRlVHlwZU5hbWUpLA0KICAgICAgICAgICAgICAgIGNhdGVnb3J5OiByZWFkZXIuUmVhZEF0dHJpYnV0ZVN0cmluZyhTY2hlbWFTdHJpbmdzLkF0dHJpYnV0ZUNhdGVnb3J5KSwNCiAgICAgICAgICAgICAgICBjaGVja0lkOiByZWFkZXIuUmVhZEF0dHJpYnV0ZVN0cmluZyhTY2hlbWFTdHJpbmdzLkF0dHJpYnV0ZUNoZWNrSWQpKTsNCg0KICAgICAgICAgICAgcmVhZGVyLlJlYWRDaGlsZHJlbihTY2hlbWFTdHJpbmdzLkVsZW1lbnRSdWxlLCBwYXJlbnQpOw0KDQogICAgICAgICAgICBpZiAoUnVsZVJlYWQgIT0gbnVsbCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBSdWxlUmVhZChjb250ZXh0KTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgY29udGV4dC5DbGVhclJ1bGUoKTsNCiAgICAgICAgfQ0KDQogICAgICAgIHByaXZhdGUgc3RhdGljIHZvaWQgUmVhZFJlc29sdXRpb24oU3BhcnNlUmVhZGVyIHJlYWRlciwgb2JqZWN0IHBhcmVudCkNCiAgICAgICAgew0KICAgICAgICAgICAgQ29udGV4dCBjb250ZXh0ID0gKENvbnRleHQpcGFyZW50Ow0KDQogICAgICAgICAgICBjb250ZXh0LlJlZmluZVJlc29sdXRpb24oDQogICAgICAgICAgICAgICAgbmFtZTogcmVhZGVyLlJlYWRBdHRyaWJ1dGVTdHJpbmcoU2NoZW1hU3RyaW5ncy5BdHRyaWJ1dGVOYW1lKSwNCiAgICAgICAgICAgICAgICBmb3JtYXRTdHJpbmc6IHJlYWRlci5SZWFkRWxlbWVudENvbnRlbnRBc1N0cmluZygpKTsNCiAgICAgICAgfQ0KDQogICAgICAgIHByaXZhdGUgc3RhdGljIHZvaWQgUmVhZFRhcmdldHMoU3BhcnNlUmVhZGVyIHJlYWRlciwgb2JqZWN0IHBhcmVudCkNCiAgICAgICAgew0KICAgICAgICAgICAgcmVhZGVyLlJlYWRDaGlsZHJlbihTY2hlbWFTdHJpbmdzLkVsZW1lbnRUYXJnZXRzLCBwYXJlbnQpOw0KICAgICAgICB9DQoNCiAgICAgICAgcHJpdmF0ZSBzdGF0aWMgdm9pZCBSZWFkVGFyZ2V0KFNwYXJzZVJlYWRlciByZWFkZXIsIG9iamVjdCBwYXJlbnQpDQogICAgICAgIHsNCiAgICAgICAgICAgIENvbnRleHQgY29udGV4dCA9IChDb250ZXh0KXBhcmVudDsNCg0KICAgICAgICAgICAgY29udGV4dC5SZWZpbmVUYXJnZXQocmVhZGVyLlJlYWRBdHRyaWJ1dGVTdHJpbmcoU2NoZW1hU3RyaW5ncy5BdHRyaWJ1dGVOYW1lKSk7DQogICAgICAgICAgICByZWFkZXIuUmVhZENoaWxkcmVuKFNjaGVtYVN0cmluZ3MuRWxlbWVudFRhcmdldCwgcGFyZW50KTsNCiAgICAgICAgICAgIGNvbnRleHQuQ2xlYXJUYXJnZXQoKTsNCiAgICAgICAgfQ0KDQogICAgICAgIHByaXZhdGUgdm9pZCBSZWFkTW9kdWxlcyhTcGFyc2VSZWFkZXIgcmVhZGVyLCBvYmplY3QgcGFyZW50KQ0KICAgICAgICB7DQogICAgICAgICAgICByZWFkZXIuUmVhZENoaWxkcmVuKFNjaGVtYVN0cmluZ3MuRWxlbWVudE1vZHVsZXMsIHBhcmVudCk7DQogICAgICAgIH0NCg0KICAgICAgICBwcml2YXRlIHZvaWQgUmVhZE1vZHVsZShTcGFyc2VSZWFkZXIgcmVhZGVyLCBvYmplY3QgcGFyZW50KQ0KICAgICAgICB7DQogICAgICAgICAgICBDb250ZXh0IGNvbnRleHQgPSAoQ29udGV4dClwYXJlbnQ7DQoNCiAgICAgICAgICAgIGNvbnRleHQuUmVmaW5lTW9kdWxlKHJlYWRlci5SZWFkQXR0cmlidXRlU3RyaW5nKFNjaGVtYVN0cmluZ3MuQXR0cmlidXRlTmFtZSkpOw0KICAgICAgICAgICAgcmVhZGVyLlJlYWRDaGlsZHJlbihTY2hlbWFTdHJpbmdzLkVsZW1lbnRNb2R1bGUsIHBhcmVudCk7DQogICAgICAgICAgICBjb250ZXh0LkNsZWFyTW9kdWxlKCk7DQogICAgICAgIH0NCg0KICAgICAgICBwcml2YXRlIHN0YXRpYyB2b2lkIFJlYWROYW1lc3BhY2VzKFNwYXJzZVJlYWRlciByZWFkZXIsIG9iamVjdCBwYXJlbnQpDQogICAgICAgIHsNCiAgICAgICAgICAgIHJlYWRlci5SZWFkQ2hpbGRyZW4oU2NoZW1hU3RyaW5ncy5FbGVtZW50TmFtZXNwYWNlcywgcGFyZW50KTsNCiAgICAgICAgfQ0KDQogICAgICAgIHByaXZhdGUgdm9pZCBSZWFkTmFtZXNwYWNlKFNwYXJzZVJlYWRlciByZWFkZXIsIG9iamVjdCBwYXJlbnQpDQogICAgICAgIHsNCiAgICAgICAgICAgIENvbnRleHQgY29udGV4dCA9IChDb250ZXh0KXBhcmVudDsNCg0KICAgICAgICAgICAgY29udGV4dC5SZWZpbmVOYW1lc3BhY2UocmVhZGVyLlJlYWRBdHRyaWJ1dGVTdHJpbmcoU2NoZW1hU3RyaW5ncy5BdHRyaWJ1dGVOYW1lKSk7DQogICAgICAgICAgICByZWFkZXIuUmVhZENoaWxkcmVuKFNjaGVtYVN0cmluZ3MuRWxlbWVudE5hbWVzcGFjZSwgcGFyZW50KTsNCiAgICAgICAgICAgIGNvbnRleHQuQ2xlYXJOYW1lc3BhY2UoKTsNCiAgICAgICAgfQ0KDQogICAgICAgIHByaXZhdGUgc3RhdGljIHZvaWQgUmVhZFR5cGVzKFNwYXJzZVJlYWRlciByZWFkZXIsIG9iamVjdCBwYXJlbnQpDQogICAgICAgIHsNCiAgICAgICAgICAgIHJlYWRlci5SZWFkQ2hpbGRyZW4oU2NoZW1hU3RyaW5ncy5FbGVtZW50VHlwZXMsIHBhcmVudCk7DQogICAgICAgIH0NCg0KICAgICAgICBwcml2YXRlIHN0YXRpYyB2b2lkIFJlYWRUeXBlKFNwYXJzZVJlYWRlciByZWFkZXIsIG9iamVjdCBwYXJlbnQpDQogICAgICAgIHsNCiAgICAgICAgICAgIENvbnRleHQgY29udGV4dCA9IChDb250ZXh0KXBhcmVudDsNCg0KICAgICAgICAgICAgaWYgKGNvbnRleHQuRXhjZXB0aW9uKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIFJlYWRFeGNlcHRpb25UeXBlKHJlYWRlciwgcGFyZW50KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2UNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBjb250ZXh0LlJlZmluZVR5cGUocmVhZGVyLlJlYWRBdHRyaWJ1dGVTdHJpbmcoU2NoZW1hU3RyaW5ncy5BdHRyaWJ1dGVOYW1lKSk7DQogICAgICAgICAgICAgICAgcmVhZGVyLlJlYWRDaGlsZHJlbihTY2hlbWFTdHJpbmdzLkVsZW1lbnRUeXBlLCBwYXJlbnQpOw0KICAgICAgICAgICAgICAgIGNvbnRleHQuQ2xlYXJUeXBlKCk7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICBwcml2YXRlIHN0YXRpYyB2b2lkIFJlYWRNZW1iZXJzKFNwYXJzZVJlYWRlciByZWFkZXIsIG9iamVjdCBwYXJlbnQpDQogICAgICAgIHsNCiAgICAgICAgICAgIHJlYWRlci5SZWFkQ2hpbGRyZW4oU2NoZW1hU3RyaW5ncy5FbGVtZW50TWVtYmVycywgcGFyZW50KTsNCiAgICAgICAgfQ0KDQogICAgICAgIHByaXZhdGUgc3RhdGljIHZvaWQgUmVhZE1lbWJlcihTcGFyc2VSZWFkZXIgcmVhZGVyLCBvYmplY3QgcGFyZW50KQ0KICAgICAgICB7DQogICAgICAgICAgICBDb250ZXh0IGNvbnRleHQgPSAoQ29udGV4dClwYXJlbnQ7DQoNCiAgICAgICAgICAgIGNvbnRleHQuUmVmaW5lTWVtYmVyKHJlYWRlci5SZWFkQXR0cmlidXRlU3RyaW5nKFNjaGVtYVN0cmluZ3MuQXR0cmlidXRlTmFtZSkpOw0KICAgICAgICAgICAgcmVhZGVyLlJlYWRDaGlsZHJlbihTY2hlbWFTdHJpbmdzLkVsZW1lbnRNZW1iZXIsIHBhcmVudCk7DQogICAgICAgICAgICBjb250ZXh0LkNsZWFyTWVtYmVyKCk7DQogICAgICAgIH0NCg0KICAgICAgICBwcml2YXRlIHN0YXRpYyB2b2lkIFJlYWRNZXNzYWdlcyhTcGFyc2VSZWFkZXIgcmVhZGVyLCBvYmplY3QgcGFyZW50KQ0KICAgICAgICB7DQogICAgICAgICAgICByZWFkZXIuUmVhZENoaWxkcmVuKFNjaGVtYVN0cmluZ3MuRWxlbWVudE1lc3NhZ2VzLCBwYXJlbnQpOw0KICAgICAgICB9DQoNCiAgICAgICAgcHJpdmF0ZSB2b2lkIFJlYWRNZXNzYWdlKFNwYXJzZVJlYWRlciByZWFkZXIsIG9iamVjdCBwYXJlbnQpDQogICAgICAgIHsNCiAgICAgICAgICAgIENvbnRleHQgY29udGV4dCA9IChDb250ZXh0KXBhcmVudDsNCg0KICAgICAgICAgICAgc3RyaW5nIG1lc3NhZ2VJZCA9IHJlYWRlci5SZWFkQXR0cmlidXRlU3RyaW5nKFNjaGVtYVN0cmluZ3MuQXR0cmlidXRlSWQpOw0KICAgICAgICAgICAgc3RyaW5nIHR5cGVuYW1lID0gcmVhZGVyLlJlYWRBdHRyaWJ1dGVTdHJpbmcoU2NoZW1hU3RyaW5ncy5BdHRyaWJ1dGVUeXBlTmFtZSk7DQogICAgICAgICAgICBzdHJpbmcgY2F0ZWdvcnkgPSByZWFkZXIuUmVhZEF0dHJpYnV0ZVN0cmluZyhTY2hlbWFTdHJpbmdzLkF0dHJpYnV0ZUNhdGVnb3J5KTsNCiAgICAgICAgICAgIHN0cmluZyBjaGVja0lkID0gcmVhZGVyLlJlYWRBdHRyaWJ1dGVTdHJpbmcoU2NoZW1hU3RyaW5ncy5BdHRyaWJ1dGVDaGVja0lkKTsNCiAgICAgICAgICAgIHN0cmluZyBmaXhDYXRlZ29yeSA9IHJlYWRlci5SZWFkQXR0cmlidXRlU3RyaW5nKFNjaGVtYVN0cmluZ3MuQXR0cmlidXRlRml4Q2F0ZWdvcnkpOw0KICAgICAgICAgICAgc3RyaW5nIHN0YXR1cyA9IHJlYWRlci5SZWFkQXR0cmlidXRlU3RyaW5nKFNjaGVtYVN0cmluZ3MuQXR0cmlidXRlU3RhdHVzKTsNCg0KICAgICAgICAgICAgY29udGV4dC5SZWZpbmVNZXNzYWdlKGNoZWNrSWQsIHR5cGVuYW1lLCBtZXNzYWdlSWQsIGNhdGVnb3J5LCBmaXhDYXRlZ29yeSwgc3RhdHVzKTsNCg0KICAgICAgICAgICAgaWYgKCJFeGNsdWRlZCIuRXF1YWxzKHN0YXR1cykgfHwgIkV4Y2x1ZGVkSW5Tb3VyY2UiLkVxdWFscyhzdGF0dXMpKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIC8vIEZ4Q29wIGRvZXNuJ3QgYWN0dWFsbHkgZW1pdCBtZXNzYWdlIGRldGFpbHMgZm9yIG1vc3QgZXhjbHVkZWQgaXRlbXMNCiAgICAgICAgICAgICAgICAvLyBhbmQgc28gd2UgbXVzdCBmaXJlIGhlcmUgZm9yIHRoZXNlIGl0ZW1zLCBhcyB0aGUgc2NhbiBmb3IgY2hpbGQNCiAgICAgICAgICAgICAgICAvLyA8SXNzdWU+IGVsZW1lbnRzIG1heSBub3QgcHJvZHVjZSBhbnl0aGluZy4gRnhDb3Agc2VlbXMgdG8gZW1pdA0KICAgICAgICAgICAgICAgIC8vIGlzc3VlcyBmb3IgZXhjbHVkZWQgaXRlbXMgd2hpY2ggYXJlIGF0IHRoZSBuYW1lc3BhY2UgbGV2ZWwgb25seS4NCiAgICAgICAgICAgICAgICBpZiAoUmVzdWx0UmVhZCAhPSBudWxsKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgUmVzdWx0UmVhZChjb250ZXh0KTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIHJlYWRlci5SZWFkQ2hpbGRyZW4oU2NoZW1hU3RyaW5ncy5FbGVtZW50TWVzc2FnZSwgcGFyZW50KTsNCg0KICAgICAgICAgICAgY29udGV4dC5DbGVhck1lc3NhZ2UoKTsNCiAgICAgICAgfQ0KDQogICAgICAgIHByaXZhdGUgdm9pZCBSZWFkSXNzdWUoU3BhcnNlUmVhZGVyIHJlYWRlciwgb2JqZWN0IHBhcmVudCkNCiAgICAgICAgew0KICAgICAgICAgICAgQ29udGV4dCBjb250ZXh0ID0gKENvbnRleHQpcGFyZW50Ow0KDQogICAgICAgICAgICBzdHJpbmcgcmVzb2x1dGlvbk5hbWUgPSByZWFkZXIuUmVhZEF0dHJpYnV0ZVN0cmluZyhTY2hlbWFTdHJpbmdzLkF0dHJpYnV0ZU5hbWUpOw0KICAgICAgICAgICAgc3RyaW5nIGNlcnRhaW50eSA9IHJlYWRlci5SZWFkQXR0cmlidXRlU3RyaW5nKFNjaGVtYVN0cmluZ3MuQXR0cmlidXRlQ2VydGFpbnR5KTsNCiAgICAgICAgICAgIHN0cmluZyBsZXZlbCA9IHJlYWRlci5SZWFkQXR0cmlidXRlU3RyaW5nKFNjaGVtYVN0cmluZ3MuQXR0cmlidXRlTGV2ZWwpOw0KDQogICAgICAgICAgICBzdHJpbmcgcGF0aCA9IHJlYWRlci5SZWFkQXR0cmlidXRlU3RyaW5nKFNjaGVtYVN0cmluZ3MuQXR0cmlidXRlUGF0aCk7DQogICAgICAgICAgICBzdHJpbmcgZmlsZSA9IHJlYWRlci5SZWFkQXR0cmlidXRlU3RyaW5nKFNjaGVtYVN0cmluZ3MuQXR0cmlidXRlRmlsZSk7DQogICAgICAgICAgICBpbnQ/IGxpbmUgPSByZWFkZXIuUmVhZEF0dHJpYnV0ZUludChTY2hlbWFTdHJpbmdzLkF0dHJpYnV0ZUxpbmUpOw0KDQogICAgICAgICAgICBzdHJpbmcgbWVzc2FnZSA9IG51bGw7DQoNCiAgICAgICAgICAgIGlmIChfcmVhZGluZ1Byb2plY3RGaWxlKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIC8vIEZ4Q29wIGRvZXMgbm90IGVtaXQgYSByZXNvbHV0aW9uIG5hbWUgYXR0cmlidXRlIGluIGNhc2VzIHdoZXJlIGl0IGlzICJEZWZhdWx0Ig0KICAgICAgICAgICAgICAgIHJlc29sdXRpb25OYW1lID0gcmVzb2x1dGlvbk5hbWUgPz8gIkRlZmF1bHQiOw0KICAgICAgICAgICAgICAgIHJlYWRlci5SZWFkQ2hpbGRyZW4oU2NoZW1hU3RyaW5ncy5FbGVtZW50SXNzdWUsIHBhcmVudCwgb3V0IG1lc3NhZ2UpOw0KICAgICAgICAgICAgICAgIGNvbnRleHQuUmVmaW5lSXNzdWUobWVzc2FnZSwgbWVzc2FnZSA9PSBudWxsID8gcmVzb2x1dGlvbk5hbWUgOiBudWxsLCBjZXJ0YWludHksIGxldmVsLCBwYXRoLCBmaWxlLCBsaW5lKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2UNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAvLyBBbiBGeENvcCBwcm9qZWN0IGZpbGUgSXNzdWUgaGFzIGEgZnVsbHktZm9ybWVkIG91dHB1dA0KICAgICAgICAgICAgICAgIC8vIG1lc3NhZ2UgYXMgaXRzIGVsZW1lbnQgY29udGVudC4NCiAgICAgICAgICAgICAgICBtZXNzYWdlID0gcmVhZGVyLlJlYWRFbGVtZW50Q29udGVudEFzU3RyaW5nKCk7DQogICAgICAgICAgICAgICAgY29udGV4dC5SZWZpbmVJc3N1ZShtZXNzYWdlLCByZXNvbHV0aW9uTmFtZSwgY2VydGFpbnR5LCBsZXZlbCwgcGF0aCwgZmlsZSwgbGluZSk7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIGlmIChSZXN1bHRSZWFkICE9IG51bGwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgUmVzdWx0UmVhZChjb250ZXh0KTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgY29udGV4dC5DbGVhcklzc3VlKCk7DQogICAgICAgIH0NCg0KICAgICAgICBwcml2YXRlIHZvaWQgUmVhZEl0ZW0oU3BhcnNlUmVhZGVyIHJlYWRlciwgb2JqZWN0IHBhcmVudCkNCiAgICAgICAgew0KICAgICAgICAgICAgQ29udGV4dCBjb250ZXh0ID0gKENvbnRleHQpcGFyZW50Ow0KICAgICAgICAgICAgY29udGV4dC5JdGVtcyA9IGNvbnRleHQuSXRlbXMgPz8gbmV3IExpc3Q8c3RyaW5nPigpOw0KICAgICAgICAgICAgY29udGV4dC5JdGVtcy5BZGQocmVhZGVyLlJlYWRFbGVtZW50Q29udGVudEFzU3RyaW5nKCkpOw0KICAgICAgICB9DQoNCiAgICAgICAgaW50ZXJuYWwgc3RhdGljIHN0cmluZyBNYWtlRXhjZXB0aW9uTWVzc2FnZShzdHJpbmcga2luZCwgc3RyaW5nIGNoZWNrSWQsIHN0cmluZyB0eXBlLCBzdHJpbmcgbWVzc2FnZSwgc3RyaW5nIHN0YWNrVHJhY2UsIHN0cmluZyBpbm5lclR5cGUsIHN0cmluZyBpbm5lck1lc3NhZ2UsIHN0cmluZyBpbm5lclN0YWNrVHJhY2UpDQogICAgICAgIHsNCiAgICAgICAgICAgIHN0cmluZyBpbm5lckV4Y2VwdGlvbiA9IFN0cmluZy5FbXB0eTsNCiAgICAgICAgICAgIGlmIChpbm5lclR5cGUgIT0gbnVsbCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBpbm5lckV4Y2VwdGlvbiA9IFN0cmluZy5Gb3JtYXQoQ3VsdHVyZUluZm8uSW52YXJpYW50Q3VsdHVyZSwgIiBJbm5lciBFeGNlcHRpb246IHswfTogezF9IHsyfSIsIGlubmVyVHlwZSwgaW5uZXJNZXNzYWdlLCBpbm5lclN0YWNrVHJhY2UpOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBpZiAoa2luZCA9PSBTY2hlbWFTdHJpbmdzLkVudW1SdWxlKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHJldHVybiBTdHJpbmcuRm9ybWF0KEN1bHR1cmVJbmZvLkludmFyaWFudEN1bHR1cmUsICJSdWxlIHswfSBleGNlcHRpb246IHsxfTogezJ9IHszfS57NH0iLCBjaGVja0lkLCB0eXBlLCBtZXNzYWdlLCBzdGFja1RyYWNlLCBpbm5lckV4Y2VwdGlvbik7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgcmV0dXJuIFN0cmluZy5Gb3JtYXQoQ3VsdHVyZUluZm8uSW52YXJpYW50Q3VsdHVyZSwgInswfSBleGNlcHRpb246IHsxfTogezJ9IHszfS57NH0iLCBraW5kLCB0eXBlLCBtZXNzYWdlLCBzdGFja1RyYWNlLCBpbm5lckV4Y2VwdGlvbik7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCiAgICB9DQp9" + { + "ruleId": "CA1709", + "level": "error", + "message": { + "text": "Correct the casing of 'PRE' in namespace name 'Microsoft.CodeAnalysis.Sarif.Converters.PREFastObjectModel' by changing it to 'Pre'.", + "id": "Namespace" }, - "hashes": [ - { - "value": "9C543F0EE3B05A41A23D366F90581A5C", - "algorithm": "md5" - }, - { - "value": "BA6E4A268D3FD85870752931A8CF3B2D1A4A4E3F", - "algorithm": "sha-1" - }, + "locations": [ { - "value": "0C4FA164B3A7310335EB9DB2D02CED61915D65B1951D729C5C36D2C206E3A7E7", - "algorithm": "sha-256" + "logicalLocations": [ + { + "index": 4, + "fullyQualifiedName": "Microsoft.CodeAnalysis.Sarif.Converters.PREFastObjectModel" + } + ] } - ] + ], + "partialFingerprints": { + "UniqueId": "PRE#Namespace" + }, + "properties": { + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" + } }, - "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/LogReader.cs": { - "mimeType": "text/x-csharp", - "contents": { - "binary": "77u/Ly8gQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuDQovLyBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UuIFNlZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHByb2plY3Qgcm9vdCBmb3IgZnVsbCBsaWNlbnNlIGluZm9ybWF0aW9uLg0KDQp1c2luZyBTeXN0ZW0uSU87DQp1c2luZyBTeXN0ZW0uVGV4dDsNCg0KbmFtZXNwYWNlIE1pY3Jvc29mdC5Db2RlQW5hbHlzaXMuU2FyaWYuQ29udmVydGVycw0Kew0KICAgIHB1YmxpYyBhYnN0cmFjdCBjbGFzcyBMb2dSZWFkZXI8VExvZz4gd2hlcmUgVExvZyA6IGNsYXNzDQogICAgew0KICAgICAgICBwdWJsaWMgVExvZyBSZWFkTG9nKHN0cmluZyBpbnB1dCkNCiAgICAgICAgew0KICAgICAgICAgICAgcmV0dXJuIFJlYWRMb2coaW5wdXQsIEVuY29kaW5nLlVURjgpOw0KICAgICAgICB9DQoNCiAgICAgICAgcHVibGljIFRMb2cgUmVhZExvZyhzdHJpbmcgaW5wdXQsIEVuY29kaW5nIGVuY29kaW5nKQ0KICAgICAgICB7DQogICAgICAgICAgICByZXR1cm4gUmVhZExvZyhuZXcgTWVtb3J5U3RyZWFtKGVuY29kaW5nLkdldEJ5dGVzKGlucHV0KSkpOw0KICAgICAgICB9DQoNCiAgICAgICAgcHVibGljIGFic3RyYWN0IFRMb2cgUmVhZExvZyhTdHJlYW0gaW5wdXQpOw0KICAgIH0NCn0=" + { + "ruleId": "CA1704", + "message": { + "text": "Correct the spelling of 'Sarif' in namespace name 'Microsoft.CodeAnalysis.Sarif.Converters.PREFastObjectModel'.", + "id": "Namespace" }, - "hashes": [ - { - "value": "ADF7A5073149A41839F00BACB9188A64", - "algorithm": "md5" - }, - { - "value": "78CD0F0479A5DE3FE2AC793DE9CEE42D7C62FD59", - "algorithm": "sha-1" - }, + "locations": [ { - "value": "E067CEEB61601B84EF8795CA177D689A367A210F50AAF2448A95CB9129D02C8E", - "algorithm": "sha-256" + "logicalLocations": [ + { + "index": 4, + "fullyQualifiedName": "Microsoft.CodeAnalysis.Sarif.Converters.PREFastObjectModel" + } + ] } - ] + ], + "partialFingerprints": { + "UniqueId": "Sarif#Namespace" + }, + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" + } }, - "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/PluginConverterFactory.cs": { - "mimeType": "text/x-csharp", - "contents": { - "binary": "77u/Ly8gQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuDQovLyBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UuIFNlZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHByb2plY3Qgcm9vdCBmb3IgZnVsbCBsaWNlbnNlIGluZm9ybWF0aW9uLg0KDQp1c2luZyBTeXN0ZW07DQp1c2luZyBTeXN0ZW0uR2xvYmFsaXphdGlvbjsNCnVzaW5nIFN5c3RlbS5JTzsNCnVzaW5nIFN5c3RlbS5MaW5xOw0KdXNpbmcgU3lzdGVtLlJlZmxlY3Rpb247DQoNCm5hbWVzcGFjZSBNaWNyb3NvZnQuQ29kZUFuYWx5c2lzLlNhcmlmLkNvbnZlcnRlcnMNCnsNCiAgICBwdWJsaWMgZGVsZWdhdGUgQXNzZW1ibHkgQXNzZW1ibHlMb2FkRmlsZURlbGVnYXRlKHN0cmluZyBwYXRoKTsNCg0KICAgIC8vIEZhY3RvcnkgY2xhc3MgZm9yIGNyZWF0aW5nIGEgY29udmVydGVyIGZyb20gYSBzcGVjaWZpZWQgcGx1Zy1pbiBhc3NlbWJseS4NCiAgICBpbnRlcm5hbCBjbGFzcyBQbHVnaW5Db252ZXJ0ZXJGYWN0b3J5IDogQ29udmVydGVyRmFjdG9yeQ0KICAgIHsNCiAgICAgICAgLy8gVGhpcyBmaWVsZCBpcyBpbnRlcm5hbCwgcmF0aGVyIHRoYW4gcHJpdmF0ZSwgZm9yIHRlc3QgcHVycG9zZXMuDQogICAgICAgIGludGVybmFsIHJlYWRvbmx5IHN0cmluZyBwbHVnaW5Bc3NlbWJseVBhdGg7DQoNCiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBBc3NlbWJseUxvYWRGaWxlRGVsZWdhdGUgYXNzZW1ibHlMb2FkRmlsZURlbGVnYXRlOw0KDQogICAgICAgIGludGVybmFsIFBsdWdpbkNvbnZlcnRlckZhY3RvcnkoDQogICAgICAgICAgICBzdHJpbmcgcGx1Z2luQXNzZW1ibHlQYXRoLA0KICAgICAgICAgICAgQXNzZW1ibHlMb2FkRmlsZURlbGVnYXRlIGFzc2VtYmx5TG9hZEZpbGVEZWxlZ2F0ZSA9IG51bGwpDQogICAgICAgIHsNCiAgICAgICAgICAgIHRoaXMuYXNzZW1ibHlMb2FkRmlsZURlbGVnYXRlID0gYXNzZW1ibHlMb2FkRmlsZURlbGVnYXRlID8/IEFzc2VtYmx5LkxvYWRGaWxlOw0KICAgICAgICAgICAgdGhpcy5wbHVnaW5Bc3NlbWJseVBhdGggPSBwbHVnaW5Bc3NlbWJseVBhdGg7DQogICAgICAgIH0NCg0KICAgICAgICBwdWJsaWMgb3ZlcnJpZGUgVG9vbEZpbGVDb252ZXJ0ZXJCYXNlIENyZWF0ZUNvbnZlcnRlckNvcmUoc3RyaW5nIHRvb2xGb3JtYXQpDQogICAgICAgIHsNCiAgICAgICAgICAgIGlmICghRmlsZS5FeGlzdHModGhpcy5wbHVnaW5Bc3NlbWJseVBhdGgpKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHN0cmluZyBtZXNzYWdlID0gc3RyaW5nLkZvcm1hdCgNCiAgICAgICAgICAgICAgICAgICAgQ3VsdHVyZUluZm8uQ3VycmVudEN1bHR1cmUsDQogICAgICAgICAgICAgICAgICAgIENvbnZlcnRlclJlc291cmNlcy5FcnJvck1pc3NpbmdQbHVnaW5Bc3NlbWJseSwNCiAgICAgICAgICAgICAgICAgICAgdGhpcy5wbHVnaW5Bc3NlbWJseVBhdGgpOw0KDQogICAgICAgICAgICAgICAgdGhyb3cgbmV3IEFyZ3VtZW50RXhjZXB0aW9uKG1lc3NhZ2UsIG5hbWVvZih0aGlzLnBsdWdpbkFzc2VtYmx5UGF0aCkpOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBBc3NlbWJseSBwbHVnaW5Bc3NlbWJseSA9IHRoaXMuYXNzZW1ibHlMb2FkRmlsZURlbGVnYXRlKHRoaXMucGx1Z2luQXNzZW1ibHlQYXRoKTsNCiAgICAgICAgICAgIFR5cGVbXSBwbHVnaW5UeXBlcyA9IHBsdWdpbkFzc2VtYmx5DQogICAgICAgICAgICAgICAgLkdldFR5cGVzKCkNCiAgICAgICAgICAgICAgICAuV2hlcmUodCA9PiBJc0NvbnZlcnRlckNsYXNzRm9yVG9vbEZvcm1hdCh0LCB0b29sRm9ybWF0KSkNCiAgICAgICAgICAgICAgICAuVG9BcnJheSgpOw0KDQogICAgICAgICAgICAvLyBUaGlzIGNhbiBoYXBwZW4gaWYgdHlwZXMgd2l0aCB0aGUgc2FtZSBuYW1lIGV4aXN0IGluIG1vcmUgdGhhbiBvbmUgbmFtZXNwYWNlLg0KICAgICAgICAgICAgaWYgKHBsdWdpblR5cGVzLkxlbmd0aCA+IDEpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgc3RyaW5nIG1lc3NhZ2UgPSBzdHJpbmcuRm9ybWF0KA0KICAgICAgICAgICAgICAgICAgICBDdWx0dXJlSW5mby5DdXJyZW50Q3VsdHVyZSwNCiAgICAgICAgICAgICAgICAgICAgQ29udmVydGVyUmVzb3VyY2VzLkVycm9yQW1iaWd1b3VzQ29udmVydGVyVHlwZSwNCiAgICAgICAgICAgICAgICAgICAgdGhpcy5wbHVnaW5Bc3NlbWJseVBhdGgsDQogICAgICAgICAgICAgICAgICAgIHRvb2xGb3JtYXQuQ29udmVydGVyVHlwZU5hbWUoKSwNCiAgICAgICAgICAgICAgICAgICAgdG9vbEZvcm1hdCk7DQoNCiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgQXJndW1lbnRFeGNlcHRpb24obWVzc2FnZSwgbmFtZW9mKHRoaXMucGx1Z2luQXNzZW1ibHlQYXRoKSk7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIHJldHVybiBwbHVnaW5UeXBlcy5MZW5ndGggPT0gMA0KICAgICAgICAgICAgICAgID8gbnVsbA0KICAgICAgICAgICAgICAgIDogKFRvb2xGaWxlQ29udmVydGVyQmFzZSlBY3RpdmF0b3IuQ3JlYXRlSW5zdGFuY2UocGx1Z2luVHlwZXNbMF0pOw0KICAgICAgICB9DQoNCiAgICAgICAgcHJpdmF0ZSBzdGF0aWMgYm9vbCBJc0NvbnZlcnRlckNsYXNzRm9yVG9vbEZvcm1hdChUeXBlIHR5cGUsIHN0cmluZyB0b29sRm9ybWF0KQ0KICAgICAgICB7DQogICAgICAgICAgICByZXR1cm4gdHlwZS5Jc1B1YmxpYw0KICAgICAgICAgICAgICAgICYmIHR5cGUuTmFtZS5FcXVhbHModG9vbEZvcm1hdC5Db252ZXJ0ZXJUeXBlTmFtZSgpLCBTdHJpbmdDb21wYXJpc29uLk9yZGluYWwpDQogICAgICAgICAgICAgICAgJiYgdHlwZS5Jc1N1YmNsYXNzT2YodHlwZW9mKFRvb2xGaWxlQ29udmVydGVyQmFzZSkpDQogICAgICAgICAgICAgICAgJiYgdHlwZS5IYXNEZWZhdWx0Q29uc3RydWN0b3IoKQ0KICAgICAgICAgICAgICAgICYmICF0eXBlLklzQWJzdHJhY3Q7DQogICAgICAgIH0NCiAgICB9DQp9DQo=" + { + "ruleId": "CA1020", + "message": { + "text": "Consider merging the types defined in 'Microsoft.CodeAnalysis.Sarif.Converters.PylintObjectModel' with another namespace." }, - "hashes": [ - { - "value": "25B70AF5DE11C33F75E610DAEB922981", - "algorithm": "md5" - }, - { - "value": "4793C65018A6227DD03C1D2A0DC9C24639EB910E", - "algorithm": "sha-1" - }, + "locations": [ { - "value": "F0F037577ED9CC4AEA463F1C1E9664859C6480D54F953890377622A78E452B36", - "algorithm": "sha-256" + "logicalLocations": [ + { + "index": 5, + "fullyQualifiedName": "Microsoft.CodeAnalysis.Sarif.Converters.PylintObjectModel" + } + ] } - ] + ], + "properties": { + "Category": "Microsoft.Design", + "FixCategory": "Breaking" + } }, - "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/PREFastConverter.cs": { - "mimeType": "text/x-csharp", - "contents": { - "binary": "77u/Ly8gQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuDQovLyBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UuIFNlZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHByb2plY3Qgcm9vdCBmb3IgZnVsbCBsaWNlbnNlIGluZm9ybWF0aW9uLg0KDQp1c2luZyBTeXN0ZW07DQp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsNCnVzaW5nIFN5c3RlbS5JTzsNCnVzaW5nIFN5c3RlbS5MaW5xOw0KdXNpbmcgU3lzdGVtLlhtbC5TZXJpYWxpemF0aW9uOw0KdXNpbmcgTWljcm9zb2Z0LkNvZGVBbmFseXNpcy5TYXJpZi5Db252ZXJ0ZXJzLlBSRUZhc3RPYmplY3RNb2RlbDsNCnVzaW5nIE1pY3Jvc29mdC5Db2RlQW5hbHlzaXMuU2FyaWYuV3JpdGVyczsNCnVzaW5nIFN5c3RlbS5YbWw7DQoNCm5hbWVzcGFjZSBNaWNyb3NvZnQuQ29kZUFuYWx5c2lzLlNhcmlmLkNvbnZlcnRlcnMNCnsNCiAgICBwdWJsaWMgY2xhc3MgUFJFZmFzdENvbnZlcnRlciA6IFRvb2xGaWxlQ29udmVydGVyQmFzZQ0KICAgIHsNCiAgICAgICAgcHJpdmF0ZSBEaWN0aW9uYXJ5PHN0cmluZywgc3RyaW5nPiBrbm93bkNhdGVnb3JpZXMgPSBuZXcgRGljdGlvbmFyeTxzdHJpbmcsIHN0cmluZz4NCiAgICAgICAgew0KICAgICAgICAgICAgeyAiUlVMRUNBVEVHT1JZIiwgInJ1bGVDYXRlZ29yeSIgfQ0KICAgICAgICB9Ow0KDQogICAgICAgIHB1YmxpYyBvdmVycmlkZSB2b2lkIENvbnZlcnQoU3RyZWFtIGlucHV0LCBJUmVzdWx0TG9nV3JpdGVyIG91dHB1dCwgT3B0aW9uYWxseUVtaXR0ZWREYXRhIGRhdGFUb0luc2VydCkNCiAgICAgICAgew0KICAgICAgICAgICAgaW5wdXQgPSBpbnB1dCA/PyB0aHJvdyBuZXcgQXJndW1lbnROdWxsRXhjZXB0aW9uKG5hbWVvZihpbnB1dCkpOw0KICAgICAgICAgICAgb3V0cHV0ID0gb3V0cHV0ID8/IHRocm93IG5ldyBBcmd1bWVudE51bGxFeGNlcHRpb24obmFtZW9mKG91dHB1dCkpOw0KDQogICAgICAgICAgICBMb2dpY2FsTG9jYXRpb25zRGljdGlvbmFyeS5DbGVhcigpOw0KDQogICAgICAgICAgICB2YXIgdG9vbCA9IG5ldyBUb29sDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgTmFtZSA9IFRvb2xGb3JtYXQuUFJFZmFzdCwNCiAgICAgICAgICAgICAgICBGdWxsTmFtZSA9ICJQUkVmYXN0IENvZGUgQW5hbHlzaXMiDQogICAgICAgICAgICB9Ow0KDQogICAgICAgICAgICB2YXIgcnVuID0gbmV3IFJ1bigpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgVG9vbCA9IHRvb2wNCiAgICAgICAgICAgIH07DQoNCiAgICAgICAgICAgIG91dHB1dC5Jbml0aWFsaXplKHJ1bik7DQoNCiAgICAgICAgICAgIFhtbFJlYWRlclNldHRpbmdzIHNldHRpbmdzID0gbmV3IFhtbFJlYWRlclNldHRpbmdzDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgRHRkUHJvY2Vzc2luZyA9IER0ZFByb2Nlc3NpbmcuSWdub3JlLA0KICAgICAgICAgICAgICAgIFhtbFJlc29sdmVyID0gbnVsbA0KICAgICAgICAgICAgfTsNCg0KICAgICAgICAgICAgdmFyIHNlcmlhbGl6ZXIgPSBuZXcgWG1sU2VyaWFsaXplcih0eXBlb2YoRGVmZWN0TGlzdCkpOw0KDQogICAgICAgICAgICB1c2luZyAodmFyIHJlYWRlciA9IFhtbFJlYWRlci5DcmVhdGUoaW5wdXQsIHNldHRpbmdzKSkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICB2YXIgZGVmZWN0TGlzdCA9IChEZWZlY3RMaXN0KXNlcmlhbGl6ZXIuRGVzZXJpYWxpemUocmVhZGVyKTsNCiAgICAgICAgICAgICAgICB2YXIgcmVzdWx0cyA9IG5ldyBMaXN0PFJlc3VsdD4oKTsNCiAgICAgICAgICAgICAgICBmb3JlYWNoIChEZWZlY3QgZW50cnkgaW4gZGVmZWN0TGlzdC5EZWZlY3RzKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgcmVzdWx0cy5BZGQoQ3JlYXRlUmVzdWx0KGVudHJ5KSk7DQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgdmFyIGZpbGVJbmZvRmFjdG9yeSA9IG5ldyBGaWxlSW5mb0ZhY3RvcnkoTWltZVR5cGUuRGV0ZXJtaW5lRnJvbUZpbGVFeHRlbnNpb24sIGRhdGFUb0luc2VydCk7DQogICAgICAgICAgICAgICAgRGljdGlvbmFyeTxzdHJpbmcsIEZpbGVEYXRhPiBmaWxlRGljdGlvbmFyeSA9IGZpbGVJbmZvRmFjdG9yeS5DcmVhdGUocmVzdWx0cyk7DQoNCiAgICAgICAgICAgICAgICBpZiAoZmlsZURpY3Rpb25hcnk/LkFueSgpID09IHRydWUpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBvdXRwdXQuV3JpdGVGaWxlcyhmaWxlRGljdGlvbmFyeSk7DQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgaWYgKExvZ2ljYWxMb2NhdGlvbnNEaWN0aW9uYXJ5ICE9IG51bGwgJiYgTG9naWNhbExvY2F0aW9uc0RpY3Rpb25hcnkuQW55KCkpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBvdXRwdXQuV3JpdGVMb2dpY2FsTG9jYXRpb25zKExvZ2ljYWxMb2NhdGlvbnNEaWN0aW9uYXJ5KTsNCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICBvdXRwdXQuT3BlblJlc3VsdHMoKTsNCiAgICAgICAgICAgICAgICBvdXRwdXQuV3JpdGVSZXN1bHRzKHJlc3VsdHMpOw0KICAgICAgICAgICAgICAgIG91dHB1dC5DbG9zZVJlc3VsdHMoKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgIHByaXZhdGUgUmVzdWx0IENyZWF0ZVJlc3VsdChEZWZlY3QgZGVmZWN0KQ0KICAgICAgICB7DQogICAgICAgICAgICB2YXIgcmVnaW9uID0gbmV3IFJlZ2lvbg0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIFN0YXJ0Q29sdW1uID0gZGVmZWN0LlNGQS5Db2x1bW4gKyAxLA0KICAgICAgICAgICAgICAgIFN0YXJ0TGluZSA9IGRlZmVjdC5TRkEuTGluZQ0KICAgICAgICAgICAgfTsNCg0KICAgICAgICAgICAgdmFyIHJlc3VsdHNGaWxlVXJpID0gbmV3IFVyaSgkIntkZWZlY3QuU0ZBLkZpbGVQYXRofXtkZWZlY3QuU0ZBLkZpbGVOYW1lfSIsIFVyaUtpbmQuUmVsYXRpdmUpOw0KICAgICAgICAgICAgdmFyIHBoeXNpY2FsTG9jYXRpb24gPSBuZXcgUGh5c2ljYWxMb2NhdGlvbihpZDogMCwgZmlsZUxvY2F0aW9uOiBuZXcgRmlsZUxvY2F0aW9uKHVyaTogcmVzdWx0c0ZpbGVVcmksIHVyaUJhc2VJZDogbnVsbCksIHJlZ2lvbjogcmVnaW9uLCBjb250ZXh0UmVnaW9uOiBudWxsKTsNCiAgICAgICAgICAgIHZhciBsb2NhdGlvbiA9IG5ldyBMb2NhdGlvbigpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgUGh5c2ljYWxMb2NhdGlvbiA9IHBoeXNpY2FsTG9jYXRpb24sDQogICAgICAgICAgICAgICAgRnVsbHlRdWFsaWZpZWRMb2dpY2FsTmFtZSA9IGRlZmVjdC5GdW5jdGlvbg0KICAgICAgICAgICAgfTsNCg0KICAgICAgICAgICAgbG9jYXRpb24uU2V0UHJvcGVydHkoImZ1bmNsaW5lIiwgZGVmZWN0LkZ1bmNsaW5lKTsNCg0KICAgICAgICAgICAgQWRkTG9naWNhbExvY2F0aW9uKGRlZmVjdC5GdW5jdGlvbiwgZGVmZWN0LkRlY29yYXRlZCk7DQoNCiAgICAgICAgICAgIHZhciByZXN1bHQgPSBuZXcgUmVzdWx0DQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgUnVsZUlkID0gZGVmZWN0LkRlZmVjdENvZGUsDQogICAgICAgICAgICAgICAgTWVzc2FnZSA9IG5ldyBNZXNzYWdlIHsgVGV4dCA9IFJlbW92ZVBSRWZhc3ROZXdMaW5lKGRlZmVjdC5EZXNjcmlwdGlvbikgfSwNCiAgICAgICAgICAgICAgICBMb2NhdGlvbnMgPSBuZXcgTGlzdDxMb2NhdGlvbj4oKQ0KICAgICAgICAgICAgfTsNCg0KICAgICAgICAgICAgcmVzdWx0LkxvY2F0aW9ucy5BZGQobG9jYXRpb24pOw0KICAgICAgICAgICAgU2V0UHJvYmFiaWxpdHkoZGVmZWN0LCByZXN1bHQpOw0KICAgICAgICAgICAgU2V0UmFuayhkZWZlY3QsIHJlc3VsdCk7DQoNCiAgICAgICAgICAgIFNldENhdGVnb3JpZXMoZGVmZWN0LCByZXN1bHQpOw0KICAgICAgICAgICAgR2VuZXJhdGVDb2RlRmxvd3MoZGVmZWN0LCByZXN1bHQpOw0KDQogICAgICAgICAgICByZXR1cm4gcmVzdWx0Ow0KICAgICAgICB9DQoNCiAgICAgICAgcHJpdmF0ZSB2b2lkIEFkZExvZ2ljYWxMb2NhdGlvbihzdHJpbmcgbmFtZSwgc3RyaW5nIGRlY29yYXRlZE5hbWUpDQogICAgICAgIHsNCiAgICAgICAgICAgIC8vIFVzZSB0aGUgRlFMTiBzbyB0aGUgY29ycmVjdCBkaWN0aW9uYXJ5IGtleSBpcyBnZW5lcmF0ZWQgYnkgQWRkTG9naWNhbExvY2F0aW9uDQogICAgICAgICAgICB2YXIgbG9naWNhbExvY2F0aW9uID0gbmV3IExvZ2ljYWxMb2NhdGlvbg0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIE5hbWUgPSBuYW1lLA0KICAgICAgICAgICAgICAgIERlY29yYXRlZE5hbWUgPSBkZWNvcmF0ZWROYW1lDQogICAgICAgICAgICB9Ow0KDQogICAgICAgICAgICBBZGRMb2dpY2FsTG9jYXRpb24obG9naWNhbExvY2F0aW9uLCAiOjoiKTsNCiAgICAgICAgfQ0KDQogICAgICAgIHByaXZhdGUgdm9pZCBTZXRSYW5rKERlZmVjdCBkZWZlY3QsIFJlc3VsdCByZXN1bHQpDQogICAgICAgIHsNCiAgICAgICAgICAgIGlmIChzdHJpbmcuSXNOdWxsT3JXaGl0ZVNwYWNlKGRlZmVjdC5SYW5rKSkNCiAgICAgICAgICAgICAgICByZXR1cm47DQoNCiAgICAgICAgICAgIHJlc3VsdC5TZXRQcm9wZXJ0eSgicmFuayIsIGRlZmVjdC5SYW5rKTsNCiAgICAgICAgfQ0KDQogICAgICAgIHByaXZhdGUgdm9pZCBTZXRQcm9iYWJpbGl0eShEZWZlY3QgZGVmZWN0LCBSZXN1bHQgcmVzdWx0KQ0KICAgICAgICB7DQogICAgICAgICAgICBpZiAoc3RyaW5nLklzTnVsbE9yV2hpdGVTcGFjZShkZWZlY3QuUHJvYmFiaWxpdHkpKQ0KICAgICAgICAgICAgICAgIHJldHVybjsNCg0KICAgICAgICAgICAgcmVzdWx0LlNldFByb3BlcnR5KCJwcm9iYWJpbGl0eSIsIGRlZmVjdC5Qcm9iYWJpbGl0eSk7DQogICAgICAgIH0NCg0KICAgICAgICBwcml2YXRlIHZvaWQgR2VuZXJhdGVDb2RlRmxvd3MoRGVmZWN0IGRlZmVjdCwgUmVzdWx0IHJlc3VsdCkNCiAgICAgICAgew0KICAgICAgICAgICAgTGlzdDxTRkE+IHNmYXMgPSBkZWZlY3Q/LlBhdGg/LlNGQXM7DQogICAgICAgICAgICBpZiAoc2ZhcyA9PSBudWxsIHx8IHNmYXMuQ291bnQgPT0gMCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICByZXR1cm47DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIGludCBzdGVwID0gMDsNCiAgICAgICAgICAgIHZhciBsb2NhdGlvbnMgPSBuZXcgTGlzdDxUaHJlYWRGbG93TG9jYXRpb24+KCk7DQogICAgICAgICAgICBib29sIHBhdGhVc2VzS2V5RXZlbnRzID0gZGVmZWN0LlBhdGguU0ZBcy5BbnkoeCA9PiAhc3RyaW5nLklzTnVsbE9yV2hpdGVTcGFjZSh4Py5LZXlFdmVudD8uSWQpKTsNCg0KICAgICAgICAgICAgZm9yZWFjaCAodmFyIHNmYSBpbiBkZWZlY3QuUGF0aC5TRkFzKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHZhciByZWdpb24gPSBuZXcgUmVnaW9uKCkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIFN0YXJ0Q29sdW1uID0gc2ZhLkNvbHVtbiArIDEsDQogICAgICAgICAgICAgICAgICAgIFN0YXJ0TGluZSA9IHNmYS5MaW5lDQogICAgICAgICAgICAgICAgfTsNCg0KICAgICAgICAgICAgICAgIHZhciB1cmkgPSBuZXcgVXJpKCQie3NmYS5GaWxlUGF0aH17c2ZhLkZpbGVOYW1lfSIsIFVyaUtpbmQuUmVsYXRpdmUpOw0KICAgICAgICAgICAgICAgIHZhciBmaWxlTG9jYXRpb24gPSBuZXcgUGh5c2ljYWxMb2NhdGlvbihpZDogMCwgZmlsZUxvY2F0aW9uOiBuZXcgRmlsZUxvY2F0aW9uKHVyaTogdXJpLCB1cmlCYXNlSWQ6IG51bGwpLCByZWdpb246IHJlZ2lvbiwgY29udGV4dFJlZ2lvbjogbnVsbCk7DQogICAgICAgICAgICAgICAgdmFyIHRocmVhZEZsb3dMb2NhdGlvbiA9IG5ldyBUaHJlYWRGbG93TG9jYXRpb24NCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIExvY2F0aW9uID0gbmV3IExvY2F0aW9uDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIFBoeXNpY2FsTG9jYXRpb24gPSBmaWxlTG9jYXRpb24NCiAgICAgICAgICAgICAgICAgICAgfSwNCiAgICAgICAgICAgICAgICAgICAgU3RlcCA9ICsrc3RlcA0KICAgICAgICAgICAgICAgIH07DQoNCiAgICAgICAgICAgICAgICBpZiAocGF0aFVzZXNLZXlFdmVudHMpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBpZiAoc3RyaW5nLklzTnVsbE9yV2hpdGVTcGFjZShzZmEuS2V5RXZlbnQ/LklkKSkNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgdGhyZWFkRmxvd0xvY2F0aW9uLkltcG9ydGFuY2UgPSBUaHJlYWRGbG93TG9jYXRpb25JbXBvcnRhbmNlLlVuaW1wb3J0YW50Ow0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGVsc2UNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgdGhyZWFkRmxvd0xvY2F0aW9uLlNldFByb3BlcnR5KCJrZXlFdmVudElkIiwgc2ZhLktleUV2ZW50LklkKTsNCg0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKEVudW0uVHJ5UGFyc2Uoc2ZhLktleUV2ZW50LkltcG9ydGFuY2UsIHRydWUsIG91dCBUaHJlYWRGbG93TG9jYXRpb25JbXBvcnRhbmNlIGltcG9ydGFuY2UpKQ0KICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocmVhZEZsb3dMb2NhdGlvbi5JbXBvcnRhbmNlID0gaW1wb3J0YW5jZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFzdHJpbmcuSXNOdWxsT3JXaGl0ZVNwYWNlKHNmYS5LZXlFdmVudC5NZXNzYWdlKSAmJg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocmVhZEZsb3dMb2NhdGlvbi5Mb2NhdGlvbj8uTWVzc2FnZSAhPSBudWxsKQ0KICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocmVhZEZsb3dMb2NhdGlvbi5Mb2NhdGlvbi5NZXNzYWdlLlRleHQgPSBzZmEuS2V5RXZlbnQuTWVzc2FnZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgIGxvY2F0aW9ucy5BZGQodGhyZWFkRmxvd0xvY2F0aW9uKTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgcmVzdWx0LkNvZGVGbG93cyA9IG5ldyBMaXN0PENvZGVGbG93PigpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgU2FyaWZVdGlsaXRpZXMuQ3JlYXRlU2luZ2xlVGhyZWFkZWRDb2RlRmxvdyhsb2NhdGlvbnMpDQogICAgICAgICAgICB9Ow0KICAgICAgICB9DQoNCiAgICAgICAgcHJpdmF0ZSB2b2lkIFNldENhdGVnb3JpZXMoRGVmZWN0IGRlZmVjdCwgUmVzdWx0IHJlc3VsdCkNCiAgICAgICAgew0KICAgICAgICAgICAgaWYgKGRlZmVjdC5DYXRlZ29yeSAhPSBudWxsKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIGZvcmVhY2ggKHZhciBrZXlWYWx1ZVBhaXIgaW4gZGVmZWN0LkNhdGVnb3J5KQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgc3RyaW5nIGNhdGVnb3J5ID0ga2V5VmFsdWVQYWlyLktleTsNCiAgICAgICAgICAgICAgICAgICAgaWYgKGtub3duQ2F0ZWdvcmllcy5Db250YWluc0tleShjYXRlZ29yeSkpDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNhdGVnb3J5ID0ga25vd25DYXRlZ29yaWVzW2NhdGVnb3J5XTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgICAgIHJlc3VsdC5TZXRQcm9wZXJ0eShjYXRlZ29yeSwga2V5VmFsdWVQYWlyLlZhbHVlKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICBwcml2YXRlIHN0cmluZyBSZW1vdmVQUkVmYXN0TmV3TGluZShzdHJpbmcgY29udGVudCkNCiAgICAgICAgew0KICAgICAgICAgICAgcmV0dXJuIGNvbnRlbnQuUmVwbGFjZSgiUFJFRkFTVF9ORVdMSU5FXG4iLCBzdHJpbmcuRW1wdHkpOw0KICAgICAgICB9DQogICAgfQ0KfQ0K" + { + "ruleId": "CA1704", + "message": { + "text": "Correct the spelling of 'Pylint' in namespace name 'Microsoft.CodeAnalysis.Sarif.Converters.PylintObjectModel'.", + "id": "Namespace" }, - "hashes": [ - { - "value": "F0350D0582BAA6077DCFC8EB34551E2D", - "algorithm": "md5" - }, - { - "value": "E284EB9DE28E621E1F7BFC9CA68DD3BEACE4FDAD", - "algorithm": "sha-1" - }, + "locations": [ { - "value": "816A05D080F309791AE5D540489DFBC8122ACFEFB4519ACB89039185F2C7A05A", - "algorithm": "sha-256" + "logicalLocations": [ + { + "index": 5, + "fullyQualifiedName": "Microsoft.CodeAnalysis.Sarif.Converters.PylintObjectModel" + } + ] } - ] + ], + "partialFingerprints": { + "UniqueId": "Pylint#Namespace" + }, + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" + } }, - "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/PylintConverter.cs": { - "mimeType": "text/x-csharp", - "contents": { - "binary": "77u/Ly8gQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuDQovLyBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UuIFNlZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHByb2plY3Qgcm9vdCBmb3IgZnVsbCBsaWNlbnNlIGluZm9ybWF0aW9uLg0KDQp1c2luZyBTeXN0ZW07DQp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsNCnVzaW5nIFN5c3RlbS5JTzsNCnVzaW5nIFN5c3RlbS5MaW5xOw0KdXNpbmcgTWljcm9zb2Z0LkNvZGVBbmFseXNpcy5TYXJpZi5Xcml0ZXJzOw0KdXNpbmcgTWljcm9zb2Z0LkNvZGVBbmFseXNpcy5TYXJpZi5Db252ZXJ0ZXJzLlB5bGludE9iamVjdE1vZGVsOw0KDQpuYW1lc3BhY2UgTWljcm9zb2Z0LkNvZGVBbmFseXNpcy5TYXJpZi5Db252ZXJ0ZXJzDQp7DQogICAgcHVibGljIGNsYXNzIFB5bGludENvbnZlcnRlciA6IFRvb2xGaWxlQ29udmVydGVyQmFzZQ0KICAgIHsNCiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBMb2dSZWFkZXI8UHlsaW50TG9nPiBsb2dSZWFkZXI7DQoNCiAgICAgICAgcHVibGljIFB5bGludENvbnZlcnRlcigpDQogICAgICAgIHsNCiAgICAgICAgICAgIGxvZ1JlYWRlciA9IG5ldyBQeWxpbnRMb2dSZWFkZXIoKTsNCiAgICAgICAgfQ0KDQogICAgICAgIHB1YmxpYyBvdmVycmlkZSB2b2lkIENvbnZlcnQoU3RyZWFtIGlucHV0LCBJUmVzdWx0TG9nV3JpdGVyIG91dHB1dCwgT3B0aW9uYWxseUVtaXR0ZWREYXRhIGRhdGFUb0luc2VydCkNCiAgICAgICAgew0KICAgICAgICAgICAgaW5wdXQgPSBpbnB1dCA/PyB0aHJvdyBuZXcgQXJndW1lbnROdWxsRXhjZXB0aW9uKG5hbWVvZihpbnB1dCkpOw0KICAgICAgICAgICAgb3V0cHV0ID0gb3V0cHV0ID8/IHRocm93IG5ldyBBcmd1bWVudE51bGxFeGNlcHRpb24obmFtZW9mKG91dHB1dCkpOw0KDQogICAgICAgICAgICBQeWxpbnRMb2cgbG9nID0gbG9nUmVhZGVyLlJlYWRMb2coaW5wdXQpOw0KDQogICAgICAgICAgICBUb29sIHRvb2wgPSBuZXcgVG9vbA0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIE5hbWUgPSAiUHlsaW50Ig0KICAgICAgICAgICAgfTsNCg0KICAgICAgICAgICAgdmFyIHJ1biA9IG5ldyBSdW4oKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIFRvb2wgPSB0b29sDQogICAgICAgICAgICB9Ow0KDQogICAgICAgICAgICBvdXRwdXQuSW5pdGlhbGl6ZShydW4pOw0KDQogICAgICAgICAgICB2YXIgcmVzdWx0cyA9IG5ldyBMaXN0PFJlc3VsdD4oKTsNCg0KICAgICAgICAgICAgZm9yZWFjaCAoUHlsaW50TG9nRW50cnkgZW50cnkgaW4gbG9nKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHJlc3VsdHMuQWRkKENyZWF0ZVJlc3VsdChlbnRyeSkpOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICB2YXIgZmlsZUluZm9GYWN0b3J5ID0gbmV3IEZpbGVJbmZvRmFjdG9yeShNaW1lVHlwZS5EZXRlcm1pbmVGcm9tRmlsZUV4dGVuc2lvbiwgZGF0YVRvSW5zZXJ0KTsNCiAgICAgICAgICAgIERpY3Rpb25hcnk8c3RyaW5nLCBGaWxlRGF0YT4gZmlsZURpY3Rpb25hcnkgPSBmaWxlSW5mb0ZhY3RvcnkuQ3JlYXRlKHJlc3VsdHMpOw0KDQogICAgICAgICAgICBpZiAoZmlsZURpY3Rpb25hcnk/LkFueSgpID09IHRydWUpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgb3V0cHV0LldyaXRlRmlsZXMoZmlsZURpY3Rpb25hcnkpOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBvdXRwdXQuT3BlblJlc3VsdHMoKTsNCiAgICAgICAgICAgIG91dHB1dC5Xcml0ZVJlc3VsdHMocmVzdWx0cyk7DQogICAgICAgICAgICBvdXRwdXQuQ2xvc2VSZXN1bHRzKCk7DQogICAgICAgIH0NCg0KICAgICAgICBpbnRlcm5hbCBSZXN1bHQgQ3JlYXRlUmVzdWx0KFB5bGludExvZ0VudHJ5IGRlZmVjdCkNCiAgICAgICAgew0KICAgICAgICAgICAgZGVmZWN0ID0gZGVmZWN0ID8/IHRocm93IG5ldyBBcmd1bWVudE51bGxFeGNlcHRpb24obmFtZW9mKGRlZmVjdCkpOw0KDQogICAgICAgICAgICBSZXN1bHQgcmVzdWx0ID0gbmV3IFJlc3VsdA0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIFJ1bGVJZCA9ICQie2RlZmVjdC5NZXNzYWdlSWR9KHtkZWZlY3QuU3ltYm9sfSkiLA0KICAgICAgICAgICAgICAgIE1lc3NhZ2UgPSBuZXcgTWVzc2FnZSB7IFRleHQgPSBkZWZlY3QuTWVzc2FnZSB9DQogICAgICAgICAgICB9Ow0KDQogICAgICAgICAgICBzd2l0Y2ggKGRlZmVjdC5UeXBlKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIGNhc2UgImVycm9yIjoNCiAgICAgICAgICAgICAgICBjYXNlICJmYXRhbCI6DQogICAgICAgICAgICAgICAgICAgIHJlc3VsdC5MZXZlbCA9IFJlc3VsdExldmVsLkVycm9yOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJ3YXJuaW5nIjoNCiAgICAgICAgICAgICAgICBjYXNlICJjb252ZW50aW9uIjoNCiAgICAgICAgICAgICAgICAgICAgcmVzdWx0LkxldmVsID0gUmVzdWx0TGV2ZWwuV2FybmluZzsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAicmVmYWN0b3IiOg0KICAgICAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgICAgIHJlc3VsdC5MZXZlbCA9IFJlc3VsdExldmVsLk5vdGU7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfTsNCg0KICAgICAgICAgICAgdmFyIHJlZ2lvbiA9IG5ldyBSZWdpb24NCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBTdGFydENvbHVtbiA9IGludC5QYXJzZShkZWZlY3QuQ29sdW1uKSwNCiAgICAgICAgICAgICAgICBTdGFydExpbmUgPSBpbnQuUGFyc2UoZGVmZWN0LkxpbmUpDQogICAgICAgICAgICB9Ow0KDQogICAgICAgICAgICB2YXIgZmlsZVVyaSA9IG5ldyBVcmkoJCJ7ZGVmZWN0LkZpbGVQYXRofSIsIFVyaUtpbmQuUmVsYXRpdmVPckFic29sdXRlKTsNCiAgICAgICAgICAgIHZhciBwaHlzaWNhbExvY2F0aW9uID0gbmV3IFBoeXNpY2FsTG9jYXRpb24oaWQ6IDAsIGZpbGVMb2NhdGlvbjogbmV3IEZpbGVMb2NhdGlvbih1cmk6IGZpbGVVcmksIHVyaUJhc2VJZDogbnVsbCksIHJlZ2lvbjogcmVnaW9uLCBjb250ZXh0UmVnaW9uOiBudWxsKTsNCg0KICAgICAgICAgICAgdmFyIGxvY2F0aW9uID0gbmV3IExvY2F0aW9uDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgUGh5c2ljYWxMb2NhdGlvbiA9IHBoeXNpY2FsTG9jYXRpb24NCiAgICAgICAgICAgIH07DQoNCiAgICAgICAgICAgIHJlc3VsdC5Mb2NhdGlvbnMgPSBuZXcgTGlzdDxMb2NhdGlvbj4NCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBsb2NhdGlvbg0KICAgICAgICAgICAgfTsNCg0KICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsNCiAgICAgICAgfQ0KICAgIH0NCn0NCg==" + { + "ruleId": "CA1704", + "message": { + "text": "Correct the spelling of 'Sarif' in namespace name 'Microsoft.CodeAnalysis.Sarif.Converters.PylintObjectModel'.", + "id": "Namespace" }, - "hashes": [ - { - "value": "AFC6326A711C951EA43C1849F070A8EC", - "algorithm": "md5" - }, - { - "value": "DE1D620F5BC74D3286CC0723559A556F66247BFE", - "algorithm": "sha-1" - }, + "locations": [ { - "value": "AE9F0F0AB17F7ACB479AC375AF8E40638B34AA9183F6FF3D2566E4B3805055AE", - "algorithm": "sha-256" + "logicalLocations": [ + { + "index": 5, + "fullyQualifiedName": "Microsoft.CodeAnalysis.Sarif.Converters.PylintObjectModel" + } + ] } - ] + ], + "partialFingerprints": { + "UniqueId": "Sarif#Namespace" + }, + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" + } }, - "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/SemmleQlConverter.cs": { - "mimeType": "text/x-csharp", - "contents": { - "binary": "77u/Ly8gQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuDQovLyBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UuIFNlZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHByb2plY3Qgcm9vdCBmb3IgZnVsbCBsaWNlbnNlIGluZm9ybWF0aW9uLg0KDQp1c2luZyBTeXN0ZW07DQp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsNCnVzaW5nIFN5c3RlbS5HbG9iYWxpemF0aW9uOw0KdXNpbmcgU3lzdGVtLklPOw0KdXNpbmcgU3lzdGVtLkxpbnE7DQp1c2luZyBTeXN0ZW0uVGV4dDsNCnVzaW5nIE1pY3Jvc29mdC5Db2RlQW5hbHlzaXMuU2FyaWYuV3JpdGVyczsNCnVzaW5nIENzdkhlbHBlcjsNCg0KbmFtZXNwYWNlIE1pY3Jvc29mdC5Db2RlQW5hbHlzaXMuU2FyaWYuQ29udmVydGVycw0Kew0KICAgIC8vLyA8c3VtbWFyeT4NCiAgICAvLy8gQ29udmVydHMgYSBsb2cgZmlsZSBmcm9tIHRoZSBTZW1tbGUgZm9ybWF0IHRvIHRoZSBTQVJJRiBmb3JtYXQuDQogICAgLy8vIDwvc3VtbWFyeT4NCiAgICBwdWJsaWMgY2xhc3MgU2VtbWxlUUxDb252ZXJ0ZXIgOiBUb29sRmlsZUNvbnZlcnRlckJhc2UNCiAgICB7DQogICAgICAgIC8vIFNlbW1sZSBsb2dzIGFyZSBDU1YgZmlsZXMNCiAgICAgICAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgc3RyaW5nW10gc19kZWxpbWl0ZXJzID0gbmV3W10geyAiLCIgfTsNCg0KICAgICAgICAvLyBUaGUgZmllbGRzIGFyZSBhcyBmb2xsb3dzOg0KICAgICAgICBwcml2YXRlIGVudW0gRmllbGRJbmRleA0KICAgICAgICB7DQogICAgICAgICAgICBRdWVyeU5hbWUsDQogICAgICAgICAgICBRdWVyeURlc2NyaXB0aW9uLA0KICAgICAgICAgICAgU2V2ZXJpdHksDQogICAgICAgICAgICBNZXNzYWdlLA0KICAgICAgICAgICAgUmVsYXRpdmVQYXRoLA0KICAgICAgICAgICAgUGF0aCwNCiAgICAgICAgICAgIFN0YXJ0TGluZSwNCiAgICAgICAgICAgIFN0YXJ0Q29sdW1uLA0KICAgICAgICAgICAgRW5kTGluZSwNCiAgICAgICAgICAgIEVuZENvbHVtbg0KICAgICAgICB9DQoNCiAgICAgICAgcHJpdmF0ZSBDc3ZQYXJzZXIgX3BhcnNlcjsNCiAgICAgICAgcHJpdmF0ZSBMaXN0PE5vdGlmaWNhdGlvbj4gX3Rvb2xOb3RpZmljYXRpb25zOw0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIENvbnZlcnRzIGEgU2VtbWxlIGxvZyBmaWxlIGluIENTViBmb3JtYXQgdG8gYSBTQVJJRiBsb2cgZmlsZS4NCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgLy8vIDxwYXJhbSBuYW1lPSJpbnB1dCI+DQogICAgICAgIC8vLyBJbnB1dCBzdHJlYW0gZnJvbSB3aGljaCB0byByZWFkIHRoZSBTZW1tbGUgbG9nLg0KICAgICAgICAvLy8gPC9wYXJhbT4NCiAgICAgICAgLy8vIDxwYXJhbSBuYW1lPSJvdXRwdXQiPg0KICAgICAgICAvLy8gT3V0cHV0IHN0cmluZyB0byB3aGljaCB0byB3cml0ZSB0aGUgU0FSSUYgbG9nLg0KICAgICAgICAvLy8gPC9wYXJhbT4NCiAgICAgICAgLy8vIDxwYXJhbSBuYW1lPSJkYXRhVG9JbnNlcnQiPk9wdGlvbmFsbHkgZW1pdHRlZCBwcm9wZXJ0aWVzIHRoYXQgc2hvdWxkIGJlIHdyaXR0ZW4gdG8gbG9nLjwvcGFyYW0+DQogICAgICAgIC8vLyA8ZXhjZXB0aW9uIGNyZWY9IkFyZ3VtZW50TnVsbEV4Y2VwdGlvbiI+DQogICAgICAgIC8vLyBUaHJvd24gd2hlbiBvbmUgb3IgbW9yZSByZXF1aXJlZCBhcmd1bWVudHMgYXJlIG51bGwuDQogICAgICAgIC8vLyA8L2V4Y2VwdGlvbj4NCiAgICAgICAgcHVibGljIG92ZXJyaWRlIHZvaWQgQ29udmVydChTdHJlYW0gaW5wdXQsIElSZXN1bHRMb2dXcml0ZXIgb3V0cHV0LCBPcHRpb25hbGx5RW1pdHRlZERhdGEgZGF0YVRvSW5zZXJ0KQ0KICAgICAgICB7DQogICAgICAgICAgICBpZiAoaW5wdXQgPT0gbnVsbCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgQXJndW1lbnROdWxsRXhjZXB0aW9uKG5hbWVvZihpbnB1dCkpOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBpZiAob3V0cHV0ID09IG51bGwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgdGhyb3cgbmV3IEFyZ3VtZW50TnVsbEV4Y2VwdGlvbihuYW1lb2Yob3V0cHV0KSk7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIF90b29sTm90aWZpY2F0aW9ucyA9IG5ldyBMaXN0PE5vdGlmaWNhdGlvbj4oKTsNCg0KICAgICAgICAgICAgdmFyIHJlc3VsdHMgPSBHZXRSZXN1bHRzRnJvbVN0cmVhbShpbnB1dCk7DQoNCgkJCXZhciBmaWxlSW5mb0ZhY3RvcnkgPSBuZXcgRmlsZUluZm9GYWN0b3J5KE1pbWVUeXBlLkRldGVybWluZUZyb21GaWxlRXh0ZW5zaW9uLCBkYXRhVG9JbnNlcnQpOw0KCQkJRGljdGlvbmFyeTxzdHJpbmcsIEZpbGVEYXRhPiBmaWxlRGljdGlvbmFyeSA9IGZpbGVJbmZvRmFjdG9yeS5DcmVhdGUocmVzdWx0cyk7DQoNCiAgICAgICAgICAgIHZhciB0b29sID0gbmV3IFRvb2wNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBOYW1lID0gIlNlbW1sZSBRTCINCiAgICAgICAgICAgIH07DQoNCiAgICAgICAgICAgIHZhciBydW4gPSBuZXcgUnVuKCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBUb29sID0gdG9vbA0KICAgICAgICAgICAgfTsNCg0KICAgICAgICAgICAgb3V0cHV0LkluaXRpYWxpemUocnVuKTsNCg0KCQkJb3V0cHV0LldyaXRlRmlsZXMoZmlsZURpY3Rpb25hcnkpOw0KDQogICAgICAgICAgICBvdXRwdXQuT3BlblJlc3VsdHMoKTsNCiAgICAgICAgICAgIG91dHB1dC5Xcml0ZVJlc3VsdHMocmVzdWx0cyk7DQogICAgICAgICAgICBvdXRwdXQuQ2xvc2VSZXN1bHRzKCk7DQoNCiAgICAgICAgICAgIGlmIChfdG9vbE5vdGlmaWNhdGlvbnMuQW55KCkpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgb3V0cHV0LldyaXRlVG9vbE5vdGlmaWNhdGlvbnMoX3Rvb2xOb3RpZmljYXRpb25zKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgIHByaXZhdGUgUmVzdWx0W10gR2V0UmVzdWx0c0Zyb21TdHJlYW0oU3RyZWFtIGlucHV0KQ0KICAgICAgICB7DQogICAgICAgICAgICB2YXIgcmVzdWx0cyA9IG5ldyBMaXN0PFJlc3VsdD4oKTsNCiAgICAgICAgICAgIHVzaW5nICh2YXIgcmVhZGVyID0gbmV3IFN0cmVhbVJlYWRlcihpbnB1dCkpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgdXNpbmcgKF9wYXJzZXIgPSBuZXcgQ3N2UGFyc2VyKHJlYWRlcikpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBzdHJpbmdbXSByb3cgPSBudWxsOw0KICAgICAgICAgICAgICAgICAgICB3aGlsZSAoKHJvdyA9IF9wYXJzZXIuUmVhZCgpKSAhPSBudWxsKQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICByZXN1bHRzLkFkZChQYXJzZVJlc3VsdChyb3cpKTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgcmV0dXJuIHJlc3VsdHMuVG9BcnJheSgpOw0KICAgICAgICB9DQoNCiAgICAgICAgcHJpdmF0ZSBSZXN1bHQgUGFyc2VSZXN1bHQoc3RyaW5nW10gZmllbGRzKQ0KICAgICAgICB7DQogICAgICAgICAgICBzdHJpbmcgcmF3TWVzc2FnZSA9IGZpZWxkc1soaW50KUZpZWxkSW5kZXguTWVzc2FnZV07DQogICAgICAgICAgICBzdHJpbmcgbm9ybWFsaXplZE1lc3NhZ2U7DQogICAgICAgICAgICBJTGlzdDxMb2NhdGlvbj4gcmVsYXRlZExvY2F0aW9ucyA9IE5vcm1hbGl6ZVJhd01lc3NhZ2UocmF3TWVzc2FnZSwgb3V0IG5vcm1hbGl6ZWRNZXNzYWdlKTsNCg0KICAgICAgICAgICAgUmVnaW9uIHJlZ2lvbiA9IE1ha2VSZWdpb24oZmllbGRzKTsNCiAgICAgICAgICAgIHZhciByZXN1bHQgPSBuZXcgUmVzdWx0DQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgTWVzc2FnZSA9IG5ldyBNZXNzYWdlIHsgVGV4dCA9IG5vcm1hbGl6ZWRNZXNzYWdlIH0sDQogICAgICAgICAgICAgICAgTG9jYXRpb25zID0gbmV3IExvY2F0aW9uW10NCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIG5ldyBMb2NhdGlvbg0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICBQaHlzaWNhbExvY2F0aW9uID0gbmV3IFBoeXNpY2FsTG9jYXRpb24NCiAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBGaWxlTG9jYXRpb24gPSBuZXcgRmlsZUxvY2F0aW9uDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVcmkgPSBuZXcgVXJpKEdldFN0cmluZyhmaWVsZHMsIEZpZWxkSW5kZXguUmVsYXRpdmVQYXRoKSwgVXJpS2luZC5SZWxhdGl2ZSksDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVyaUJhc2VJZCA9ICIkc3Jjcm9vdCINCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlZ2lvbiA9IHJlZ2lvbg0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfSwNCiAgICAgICAgICAgICAgICBSZWxhdGVkTG9jYXRpb25zID0gcmVsYXRlZExvY2F0aW9ucw0KICAgICAgICAgICAgfTsNCg0KICAgICAgICAgICAgUmVzdWx0TGV2ZWwgbGV2ZWwgPSBSZXN1bHRMZXZlbEZyb21TZW1tbGVTZXZlcml0eShHZXRTdHJpbmcoZmllbGRzLCBGaWVsZEluZGV4LlNldmVyaXR5KSk7DQogICAgICAgICAgICBpZiAobGV2ZWwgIT0gUmVzdWx0TGV2ZWwuV2FybmluZykNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICByZXN1bHQuTGV2ZWwgPSBsZXZlbDsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsNCiAgICAgICAgfQ0KDQogICAgICAgIHByaXZhdGUgSUxpc3Q8TG9jYXRpb24+IE5vcm1hbGl6ZVJhd01lc3NhZ2Uoc3RyaW5nIHJhd01lc3NhZ2UsIG91dCBzdHJpbmcgbm9ybWFsaXplZE1lc3NhZ2UpDQogICAgICAgIHsNCiAgICAgICAgICAgIC8vIFRoZSByYXdNZXNzYWdlIGNvbnRhaW5zIGVtYmVkZGVkIHJlbGF0ZWQgbG9jYXRpb25zLiBXZSBuZWVkIHRvIGV4dHJhY3QgdGhlIHJlbGF0ZWQgbG9jYXRpb25zIGFuZCByZWZvcm1hdCB0aGUgcmF3TWVzc2FnZSBlbWJlZGRlZCBsaW5rcyB3cmFwcGVkIGluIFticmFja2V0c10uDQogICAgICAgICAgICAvLyBFeGFtcGxlIHJhd01lc3NhZ2UNCiAgICAgICAgICAgIC8vICAgICBwbyAoY29taW5nIGZyb20gW1siaGJtInwicmVsYXRpdmU6Ly9jb2RlLy4uLi9maWxlMS5jeHg6MTc2OjQ4ODI6MyJdLFsiaGJtInwicmVsYXRpdmU6Ly9jb2RlLy4uLi9maWxlMi5jOjE4NzM6NTA4OTk6MyJdLFsiaGJtInwicmVsYXRpdmU6Ly9jb2RlLy4uLi9maWxlMi5jOjU3ODM6MTU0NDY2OjMiXV0pIG1heSBub3QgaGF2ZSBiZWVuIGNoZWNrZWQgZm9yIHZhbGlkaXR5IGJlZm9yZSBjYWxsIHRvIHZTeW5jLg0KICAgICAgICAgICAgLy8gRXhhbXBsZSBub3JtYWxpemVkTWVzc2FnZSwgd2hlcmUgJ2lkJyBpcyB0aGUgcmVsYXRlZCBsb2NhdGlvbiBpZCB0byBsaW5rIHRvDQogICAgICAgICAgICAvLyAgIE5vdGU6IHRoZSBmaXJzdCBsaW5rIGluIHRoZSBtZXNzYWdlIGxpbmtzIHRvIHRoZSBmaXJzdCByZWxhdGVkIGxvY2F0aW9uIGluIHRoZSBsaXN0LCB0aGUgc2Vjb25kIGxpbmsgdG8gdGhlIHNlY29uZCwgZXRjLg0KICAgICAgICAgICAgLy8gICAgIHBvIChjb21pbmcgZnJvbSBbaGJtXShpZCkpIG1heSBub3QgaGF2ZSBiZWVuIGNoZWNrZWQgZm9yIHZhbGlkaXR5IGJlZm9yZSBjYWxsIHRvIHZTeW5jLg0KICAgICAgICAgICAgLy8gRXhhbXBsZSByZWxhdGVkTG9jYXRpb25zDQogICAgICAgICAgICAvLyAgICAgcmVsYXRpdmU6Ly9jb2RlLy4uLi9maWxlMS5jeHg6MTc2OjQ4ODI6Mw0KICAgICAgICAgICAgLy8gICAgIHJlbGF0aXZlOi8vY29kZS8uLi4vZmlsZTIuYzoxODczOjUwODk5OjMNCiAgICAgICAgICAgIC8vICAgICByZWxhdGl2ZTovL2NvZGUvLi4uL2ZpbGUyLmM6NTc4MzoxNTQ0NjY6Mw0KICAgICAgICAgICAgTGlzdDxMb2NhdGlvbj4gcmVsYXRlZExvY2F0aW9ucyA9IG51bGw7DQoNCiAgICAgICAgICAgIHZhciBzYiA9IG5ldyBTdHJpbmdCdWlsZGVyKCk7DQoNCiAgICAgICAgICAgIGludCBjb3VudCA9IDA7DQogICAgICAgICAgICBpbnQgbGlua0luZGV4ID0gMDsNCiAgICAgICAgICAgIGludCBpbmRleCA9IHJhd01lc3NhZ2UuSW5kZXhPZigiW1siKTsNCiAgICAgICAgICAgIHdoaWxlIChpbmRleCA+IC0xKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHNiLkFwcGVuZChyYXdNZXNzYWdlLlN1YnN0cmluZygwLCBpbmRleCkpOw0KDQogICAgICAgICAgICAgICAgcmF3TWVzc2FnZSA9IHJhd01lc3NhZ2UuU3Vic3RyaW5nKGluZGV4ICsgMik7DQoNCiAgICAgICAgICAgICAgICBpbmRleCA9IHJhd01lc3NhZ2UuSW5kZXhPZigiXV0iKTsNCg0KICAgICAgICAgICAgICAgIC8vIGVtYmVkZGVkTGlua3NUZXh0IGNvbnRhaW5zIHRoZSB0ZXh0IGZvciBvbmUgc2V0IG9mIGVtYmVkZGVkIGxpbmtzIGV4Y2VwdCBmb3IgdGhlIGxlYWRpbmcgJ1tbJyBhbmQgdHJhaWxpbmcgJ11dJw0KICAgICAgICAgICAgICAgIC8vICJoYm0ifCJyZWxhdGl2ZTovY29kZS8uLi4vZmlsZTEuY3h4OjE3Njo0ODgyOjMiXSxbImhibSJ8InJlbGF0aXZlOi8vY29kZS8uLi4vZmlsZTIuYzoxODczOjUwODk5OjMiXSxbImhibSJ8InJlbGF0aXZlOi8vY29kZS8uLi4vZmlsZTIuYzo1NzgzOjE1NDQ2NjozIg0KICAgICAgICAgICAgICAgIHN0cmluZyBlbWJlZGRlZExpbmtzVGV4dCA9IHJhd01lc3NhZ2UuU3Vic3RyaW5nKDAsIGluZGV4IC0gMSk7DQoNCiAgICAgICAgICAgICAgICAvLyBlbWJlZGRlZExpbmtzIHNwbGl0cyB0aGUgc2V0IG9mIGVtYmVkZGVkIGxpbmtzIGludG8gaW52aXZpZHVhbCBsaW5rcw0KICAgICAgICAgICAgICAgIC8vIDEuICAiaGJtInwicmVsYXRpdmU6Ly9jb2RlLy4uLi9maWxlMS5jeHg6MTc2OjQ4ODI6MyINCiAgICAgICAgICAgICAgICAvLyAyLiAgImhibSJ8InJlbGF0aXZlOi8vY29kZS8uLi4vZmlsZTIuYzoxODczOjUwODk5OjMiDQogICAgICAgICAgICAgICAgLy8gMy4gICJoYm0ifCJyZWxhdGl2ZTovL2NvZGUvLi4uL2ZpbGUyLmM6NTc4MzoxNTQ0NjY6MyINCg0KICAgICAgICAgICAgICAgIHN0cmluZ1tdIGVtYmVkZGVkTGlua3MgPSBlbWJlZGRlZExpbmtzVGV4dC5TcGxpdChuZXcgc3RyaW5nW10geyAiXSxbIiB9LCBTdHJpbmdTcGxpdE9wdGlvbnMuTm9uZSk7DQoNCiAgICAgICAgICAgICAgICBmb3JlYWNoIChzdHJpbmcgZW1iZWRkZWRMaW5rIGluIGVtYmVkZGVkTGlua3MpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBzdHJpbmdbXSB0b2tlbnMgPSBlbWJlZGRlZExpbmsuU3BsaXQobmV3IGNoYXJbXSB7ICdcIicgfSwgU3RyaW5nU3BsaXRPcHRpb25zLlJlbW92ZUVtcHR5RW50cmllcyk7DQoNCiAgICAgICAgICAgICAgICAgICAgLy8gc2F2ZSB0aGUgdGV4dCBwb3J0aW9uIG9mIHRoZSBsaW5rDQogICAgICAgICAgICAgICAgICAgIGVtYmVkZGVkTGlua3NUZXh0ID0gdG9rZW5zWzBdOw0KDQogICAgICAgICAgICAgICAgICAgIHN0cmluZyBsb2NhdGlvbiA9IHRva2Vuc1syXTsNCiAgICAgICAgICAgICAgICAgICAgc3RyaW5nW10gbG9jYXRpb25Ub2tlbnMgPSBsb2NhdGlvbi5TcGxpdCgnOicpOw0KDQogICAgICAgICAgICAgICAgICAgIHJlbGF0ZWRMb2NhdGlvbnMgPSByZWxhdGVkTG9jYXRpb25zID8/IG5ldyBMaXN0PExvY2F0aW9uPigpOw0KICAgICAgICAgICAgICAgICAgICBQaHlzaWNhbExvY2F0aW9uIHBoeXNpY2FsTG9jYXRpb247DQoNCiAgICAgICAgICAgICAgICAgICAgaWYgKGxvY2F0aW9uVG9rZW5zWzBdLkVxdWFscygiZmlsZSIsIFN0cmluZ0NvbXBhcmlzb24uT3JkaW5hbElnbm9yZUNhc2UpKQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAvLyBTcGVjaWFsIGNhc2UgZm9yIGZpbGUgcGF0aHMsIGUuZy46DQogICAgICAgICAgICAgICAgICAgICAgICAvLyAiSUNvbXBhcmFibGUifCJmaWxlOi8vQzovV2luZG93cy9NaWNyb3NvZnQuTkVUL0ZyYW1ld29yay92Mi4wLjUwNzI3L21zY29ybGliLmRsbDowOjA6MDowIg0KICAgICAgICAgICAgICAgICAgICAgICAgcGh5c2ljYWxMb2NhdGlvbiA9IG5ldyBQaHlzaWNhbExvY2F0aW9uDQogICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgSWQgPSArK2NvdW50LA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZpbGVMb2NhdGlvbiA9IG5ldyBGaWxlTG9jYXRpb24NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVyaSA9IG5ldyBVcmkoJCJ7bG9jYXRpb25Ub2tlbnNbMF19Ontsb2NhdGlvblRva2Vuc1sxXX06e2xvY2F0aW9uVG9rZW5zWzJdfSIsIFVyaUtpbmQuQWJzb2x1dGUpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZWdpb24gPSBuZXcgUmVnaW9uDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdGFydExpbmUgPSBJbnQzMi5QYXJzZShsb2NhdGlvblRva2Vuc1szXSksDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJ5dGVPZmZzZXQgPSBJbnQzMi5QYXJzZShsb2NhdGlvblRva2Vuc1s0XSksDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJ5dGVMZW5ndGggPSBJbnQzMi5QYXJzZShsb2NhdGlvblRva2Vuc1s1XSkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICB9Ow0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGVsc2UNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgcGh5c2ljYWxMb2NhdGlvbiA9IG5ldyBQaHlzaWNhbExvY2F0aW9uDQogICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgSWQgPSArK2NvdW50LA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZpbGVMb2NhdGlvbiA9IG5ldyBGaWxlTG9jYXRpb24NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVyaSA9IG5ldyBVcmkobG9jYXRpb25Ub2tlbnNbMV0uU3Vic3RyaW5nKDEpLCBVcmlLaW5kLlJlbGF0aXZlKSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVXJpQmFzZUlkID0gIiRzcmNyb290Ig0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVnaW9uID0gbmV3IFJlZ2lvbg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RhcnRMaW5lID0gSW50MzIuUGFyc2UobG9jYXRpb25Ub2tlbnNbMl0pLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBCeXRlT2Zmc2V0ID0gSW50MzIuUGFyc2UobG9jYXRpb25Ub2tlbnNbM10pLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBCeXRlTGVuZ3RoID0gSW50MzIuUGFyc2UobG9jYXRpb25Ub2tlbnNbNF0pDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgfTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgICAgIHZhciByZWxhdGVkTG9jYXRpb24gPSBuZXcgTG9jYXRpb24NCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgUGh5c2ljYWxMb2NhdGlvbiA9IHBoeXNpY2FsTG9jYXRpb24NCiAgICAgICAgICAgICAgICAgICAgfTsNCg0KICAgICAgICAgICAgICAgICAgICByZWxhdGVkTG9jYXRpb25zLkFkZChyZWxhdGVkTG9jYXRpb24pOw0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgIC8vIFJlLWFkZCB0aGUgdGV4dCBwb3J0aW9uIG9mIHRoZSBsaW5rIGluIGJyYWNrZXRzIHdpdGggdGhlIGxvY2F0aW9uIGlkIGluIHBhcmVucywgZS5nLiBbbGluayB0ZXh0XShpZCkNCiAgICAgICAgICAgICAgICBzYi5BcHBlbmQoJCJbe2VtYmVkZGVkTGlua3NUZXh0fV0oe3JlbGF0ZWRMb2NhdGlvbnNbbGlua0luZGV4KytdLlBoeXNpY2FsTG9jYXRpb24uSWR9KSIpOw0KDQogICAgICAgICAgICAgICAgcmF3TWVzc2FnZSA9IHJhd01lc3NhZ2UuU3Vic3RyaW5nKGluZGV4ICsgIl1dIi5MZW5ndGgpOw0KICAgICAgICAgICAgICAgIGluZGV4ID0gcmF3TWVzc2FnZS5JbmRleE9mKCJbWyIpOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBzYi5BcHBlbmQocmF3TWVzc2FnZSk7DQogICAgICAgICAgICBub3JtYWxpemVkTWVzc2FnZSA9IHNiLlRvU3RyaW5nKCk7DQogICAgICAgICAgICByZXR1cm4gcmVsYXRlZExvY2F0aW9uczsNCiAgICAgICAgfQ0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIENyZWF0ZSBhIFJlZ2lvbiBvYmplY3QgdGhhdCBjb250YWlucyBvbmx5IHRob3NlIHByb3BlcnRpZXMgcmVxdWlyZWQgYnkgdGhlDQogICAgICAgIC8vLyBTQVJJRiBzcGVjLg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICAvLy8gPHBhcmFtIG5hbWU9ImZpZWxkcyI+DQogICAgICAgIC8vLyBBcnJheSBvZiBmaWVsZHMgZnJvbSBhIENTViByZWNvcmQuDQogICAgICAgIC8vLyA8L3BhcmFtPg0KICAgICAgICAvLy8gPHJldHVybnM+DQogICAgICAgIC8vLyBBIFJlZ2lvbiBvYmplY3QgdGhhdCBjb250YWlucyBvbmx5IHRob3NlIHByb3BlcnRpZXMgcmVxdWlyZWQgYnkgdGhlIFNBUklGIHNwZWMuDQogICAgICAgIC8vLyA8L3JldHVybnM+DQogICAgICAgIHByaXZhdGUgUmVnaW9uIE1ha2VSZWdpb24oc3RyaW5nW10gZmllbGRzKQ0KICAgICAgICB7DQogICAgICAgICAgICBSZWdpb24gcmVnaW9uID0gbmV3IFJlZ2lvbg0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIFN0YXJ0TGluZSA9IEdldEludGVnZXIoZmllbGRzLCBGaWVsZEluZGV4LlN0YXJ0TGluZSksDQogICAgICAgICAgICAgICAgU3RhcnRDb2x1bW4gPSBHZXRJbnRlZ2VyKGZpZWxkcywgRmllbGRJbmRleC5TdGFydENvbHVtbiksDQogICAgICAgICAgICB9Ow0KDQogICAgICAgICAgICBpbnQgZW5kTGluZSA9IEdldEludGVnZXIoZmllbGRzLCBGaWVsZEluZGV4LkVuZExpbmUpOw0KICAgICAgICAgICAgaW50IGVuZENvbHVtbiA9IEdldEludGVnZXIoZmllbGRzLCBGaWVsZEluZGV4LkVuZENvbHVtbik7DQogICAgICAgICAgICBpZiAoZW5kTGluZSAhPSByZWdpb24uU3RhcnRMaW5lKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHJlZ2lvbi5FbmRMaW5lID0gZW5kTGluZTsNCiAgICAgICAgICAgICAgICByZWdpb24uRW5kQ29sdW1uID0gZW5kQ29sdW1uOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZWxzZQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIGlmIChlbmRDb2x1bW4gIT0gcmVnaW9uLlN0YXJ0Q29sdW1uKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgcmVnaW9uLkVuZENvbHVtbiA9IGVuZENvbHVtbjsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIHJldHVybiByZWdpb247DQogICAgICAgIH0NCg0KICAgICAgICBwcml2YXRlIHN0YXRpYyBzdHJpbmcgR2V0U3RyaW5nKHN0cmluZ1tdIGZpZWxkcywgRmllbGRJbmRleCBmaWVsZEluZGV4KQ0KICAgICAgICB7DQogICAgICAgICAgICByZXR1cm4gZmllbGRzWyhpbnQpZmllbGRJbmRleF07DQogICAgICAgIH0NCg0KICAgICAgICBwcml2YXRlIGludCBHZXRJbnRlZ2VyKHN0cmluZ1tdIGZpZWxkcywgRmllbGRJbmRleCBmaWVsZEluZGV4KQ0KICAgICAgICB7DQogICAgICAgICAgICBzdHJpbmcgZmllbGQgPSBHZXRTdHJpbmcoZmllbGRzLCBmaWVsZEluZGV4KTsNCiAgICAgICAgICAgIGludCB2YWx1ZTsNCiAgICAgICAgICAgIGlmICghaW50LlRyeVBhcnNlKGZpZWxkLCBvdXQgdmFsdWUpKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHZhbHVlID0gMDsNCiAgICAgICAgICAgICAgICBBZGRUb29sTm90aWZpY2F0aW9uKA0KICAgICAgICAgICAgICAgICAgICAiSW52YWxpZEludGVnZXIiLA0KICAgICAgICAgICAgICAgICAgICBOb3RpZmljYXRpb25MZXZlbC5FcnJvciwNCiAgICAgICAgICAgICAgICAgICAgQ29udmVydGVyUmVzb3VyY2VzLlNlbW1sZUludmFsaWRJbnRlZ2VyLA0KICAgICAgICAgICAgICAgICAgICBmaWVsZCwNCiAgICAgICAgICAgICAgICAgICAgZmllbGRJbmRleCk7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIHJldHVybiB2YWx1ZTsNCiAgICAgICAgfQ0KDQogICAgICAgIHByaXZhdGUgUmVzdWx0TGV2ZWwgUmVzdWx0TGV2ZWxGcm9tU2VtbWxlU2V2ZXJpdHkoc3RyaW5nIHNlbW1sZVNldmVyaXR5KQ0KICAgICAgICB7DQogICAgICAgICAgICBzd2l0Y2ggKHNlbW1sZVNldmVyaXR5KQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIGNhc2UgU2VtbWxlRXJyb3I6DQogICAgICAgICAgICAgICAgICAgIHJldHVybiBSZXN1bHRMZXZlbC5FcnJvcjsNCg0KICAgICAgICAgICAgICAgIGNhc2UgU2VtbWxlV2FybmluZzoNCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFJlc3VsdExldmVsLldhcm5pbmc7DQoNCiAgICAgICAgICAgICAgICBjYXNlIFNlbW1sZVJlY29tbWVuZGF0aW9uOg0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gUmVzdWx0TGV2ZWwuTm90ZTsNCg0KICAgICAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgICAgIEFkZFRvb2xOb3RpZmljYXRpb24oDQogICAgICAgICAgICAgICAgICAgICAgICAiVW5rbm93blNldmVyaXR5IiwNCiAgICAgICAgICAgICAgICAgICAgICAgIE5vdGlmaWNhdGlvbkxldmVsLkVycm9yLA0KICAgICAgICAgICAgICAgICAgICAgICAgQ29udmVydGVyUmVzb3VyY2VzLlNlbW1sZVVua25vd25TZXZlcml0eSwNCiAgICAgICAgICAgICAgICAgICAgICAgIHNlbW1sZVNldmVyaXR5KTsNCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFJlc3VsdExldmVsLldhcm5pbmc7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICBwcml2YXRlIHZvaWQgQWRkVG9vbE5vdGlmaWNhdGlvbigNCiAgICAgICAgICAgIHN0cmluZyBpZCwNCiAgICAgICAgICAgIE5vdGlmaWNhdGlvbkxldmVsIGxldmVsLA0KICAgICAgICAgICAgc3RyaW5nIG1lc3NhZ2VGb3JtYXQsDQogICAgICAgICAgICBwYXJhbXMgb2JqZWN0W10gYXJncykNCiAgICAgICAgew0KICAgICAgICAgICAgc3RyaW5nIG1lc3NhZ2UgPSBzdHJpbmcuRm9ybWF0KEN1bHR1cmVJbmZvLkN1cnJlbnRDdWx0dXJlLCBtZXNzYWdlRm9ybWF0LCBhcmdzKTsNCg0KICAgICAgICAgICAgLy8gV2hlbiB0aGUgcGFyc2VyIHJlYWQgdGhlIG9mZmVuZGluZyBsaW5lLCBpdCBpbmNyZW1lbnRlZCB0aGUgbGluZSBudW1iZXIsDQogICAgICAgICAgICAvLyBzbyByZXBvcnQgdGhlIHByZXZpb3VzIGxpbmUuDQogICAgICAgICAgICBsb25nIGxpbmVOdW1iZXIgPSBfcGFyc2VyLkNvbnRleHQuUm93IC0gMTsNCiAgICAgICAgICAgIHN0cmluZyBtZXNzYWdlV2l0aExpbmVOdW1iZXIgPSBzdHJpbmcuRm9ybWF0KA0KICAgICAgICAgICAgICAgIEN1bHR1cmVJbmZvLkN1cnJlbnRDdWx0dXJlLA0KICAgICAgICAgICAgICAgIENvbnZlcnRlclJlc291cmNlcy5TZW1tbGVOb3RpZmljYXRpb25Gb3JtYXQsDQogICAgICAgICAgICAgICAgbGluZU51bWJlciwNCiAgICAgICAgICAgICAgICBtZXNzYWdlKTsNCg0KICAgICAgICAgICAgX3Rvb2xOb3RpZmljYXRpb25zLkFkZChuZXcgTm90aWZpY2F0aW9uDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgSWQgPSBpZCwNCiAgICAgICAgICAgICAgICBUaW1lID0gRGF0ZVRpbWUuTm93LA0KICAgICAgICAgICAgICAgIExldmVsID0gbGV2ZWwsDQogICAgICAgICAgICAgICAgTWVzc2FnZSA9IG5ldyBNZXNzYWdlIHsgVGV4dCA9IG1lc3NhZ2VXaXRoTGluZU51bWJlciB9DQogICAgICAgICAgICB9KTsNCiAgICAgICAgfQ0KDQogICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcgU2VtbWxlRXJyb3IgPSAiZXJyb3IiOw0KICAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIFNlbW1sZVdhcm5pbmcgPSAid2FybmluZyI7DQogICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcgU2VtbWxlUmVjb21tZW5kYXRpb24gPSAicmVjb21tZW5kYXRpb24iOw0KICAgIH0NCn0NCg==" + { + "ruleId": "CA1020", + "message": { + "text": "Consider merging the types defined in 'Microsoft.CodeAnalysis.Sarif.Converters.TSLintObjectModel' with another namespace." }, - "hashes": [ - { - "value": "2854AE32CB4F62AAB45AC081363ABFE0", - "algorithm": "md5" - }, - { - "value": "8C84DD18D938093C934460CE9D59A241BC48B51A", - "algorithm": "sha-1" - }, + "locations": [ { - "value": "4AF4020EF9BFB8138FEEF8E67258B3120937AF0D1554273395D3F2E3ECBCEA0A", - "algorithm": "sha-256" + "logicalLocations": [ + { + "index": 6, + "fullyQualifiedName": "Microsoft.CodeAnalysis.Sarif.Converters.TSLintObjectModel" + } + ] } - ] + ], + "properties": { + "Category": "Microsoft.Design", + "FixCategory": "Breaking" + } }, - "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/SparseReader.cs": { - "mimeType": "text/x-csharp", - "contents": { - "binary": "77u/Ly8gQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuDQovLyBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UuIFNlZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHByb2plY3Qgcm9vdCBmb3IgZnVsbCBsaWNlbnNlIGluZm9ybWF0aW9uLg0KDQp1c2luZyBTeXN0ZW07DQp1c2luZyBTeXN0ZW0uR2xvYmFsaXphdGlvbjsNCnVzaW5nIFN5c3RlbS5JTzsNCnVzaW5nIFN5c3RlbS5YbWw7DQp1c2luZyBTeXN0ZW0uWG1sLlNjaGVtYTsNCg0KbmFtZXNwYWNlIE1pY3Jvc29mdC5Db2RlQW5hbHlzaXMuU2FyaWYuQ29udmVydGVycw0Kew0KICAgIC8vLyA8c3VtbWFyeT4NCiAgICAvLy8gQSBGYXN0IFhNTCBSZWFkZXIgdGhhdCByZWFkcyBvbmx5IHRoZSByZXF1ZXN0ZWQgZW50aXRpZXMNCiAgICAvLy8gYW5kIHVzZXMgZGVsZWdhdGVzIHRvIGNyZWF0ZSBvYmplY3RzIGFsb25nIHRoZSB3YXkNCiAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgIHB1YmxpYyBzZWFsZWQgY2xhc3MgU3BhcnNlUmVhZGVyIDogSURpc3Bvc2FibGUNCiAgICB7DQogICAgICAgIHByaXZhdGUgcmVhZG9ubHkgU3BhcnNlUmVhZGVyRGlzcGF0Y2hUYWJsZSBfZGlzcGF0Y2hUYWJsZTsNCiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBYbWxSZWFkZXIgX3htbFJlYWRlcjsNCg0KICAgICAgICAvLy8gPHN1bW1hcnk+SW5pdGlhbGl6ZXMgYSBuZXcgaW5zdGFuY2Ugb2YgdGhlIDxzZWUgY3JlZj0iU3BhcnNlUmVhZGVyIi8+IGNsYXNzLjwvc3VtbWFyeT4NCiAgICAgICAgLy8vIDxwYXJhbSBuYW1lPSJkaXNwYXRjaFRhYmxlIj5UaGUgZGlzcGF0Y2ggdGFibGUgdXNlZCB0byBmaXJlIGRlbGVnYXRlcyBmb3IgWE1MIGVsZW1lbnRzIG9uDQogICAgICAgIC8vLyB0aGlzIGluc3RhbmNlLjwvcGFyYW0+DQogICAgICAgIC8vLyA8cGFyYW0gbmFtZT0ieG1sUmVhZGVyIj5UaGUgcmVhZGVyIGZyb20gd2hpY2ggWE1MIHNoYWxsIGJlIHJldHJpZXZlZC4gVGhpcyBTcGFyc2VSZWFkZXIgdGFrZXMNCiAgICAgICAgLy8vIG93bmVyc2hpcCBvZiB0aGlzIFhNTCByZWFkZXIgYW5kIGRlc3Ryb3lzIGl0IHVwb24gZGVzdHJ1Y3Rpb24uPC9wYXJhbT4NCiAgICAgICAgcHVibGljIFNwYXJzZVJlYWRlcihTcGFyc2VSZWFkZXJEaXNwYXRjaFRhYmxlIGRpc3BhdGNoVGFibGUsIFhtbFJlYWRlciB4bWxSZWFkZXIpDQogICAgICAgIHsNCiAgICAgICAgICAgIF9kaXNwYXRjaFRhYmxlID0gZGlzcGF0Y2hUYWJsZTsNCiAgICAgICAgICAgIF94bWxSZWFkZXIgPSB4bWxSZWFkZXI7DQogICAgICAgIH0NCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBDcmVhdGVzIGEgbmV3IDxzZWUgY3JlZj0iU3BhcnNlUmVhZGVyIi8+IHBvaW50aW5nIHRvIGEgPHNlZSBjcmVmPSJTeXN0ZW0uSU8uU3RyZWFtIi8+IHJhdGhlcg0KICAgICAgICAvLy8gdGhhbiBhIDxzZWUgY3JlZj0iU3lzdGVtLlhtbC5YbWxSZWFkZXIiLz4uDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIC8vLyA8cGFyYW0gbmFtZT0iZGlzcGF0Y2hUYWJsZSI+VGhlIGRpc3BhdGNoIHRhYmxlIHVzZWQgdG8gZmlyZSBkZWxlZ2F0ZXMgZm9yIFhNTCBlbGVtZW50cyBvbg0KICAgICAgICAvLy8gdGhpcyBpbnN0YW5jZS48L3BhcmFtPg0KICAgICAgICAvLy8gPHBhcmFtIG5hbWU9InN0cmVhbSI+VGhlIHN0cmVhbSBmcm9tIHdoaWNoIFhNTCBzaGFsbCBiZSByZXRyaWV2ZWQuIFRoZSBTcGFyc2VSZWFkZXIgdGFrZXMNCiAgICAgICAgLy8vIG93bmVyc2hpcCBvZiB0aGlzIHN0cmVhbSBhbmQgaXMgcmVzcG9uc2libGUgZm9yIGRlc3Ryb3lpbmcgaXQuPC9wYXJhbT4NCiAgICAgICAgLy8vIDxyZXR1cm5zPg0KICAgICAgICAvLy8gQSA8c2VlIGNyZWY9IlNwYXJzZVJlYWRlciIvPiB3cmFwcGluZyB0aGUgc3RyZWFtIDxwYXJhbXJlZiBuYW1lPSJzdHJlYW0iLz4uDQogICAgICAgIC8vLyA8L3JldHVybnM+DQogICAgICAgIHB1YmxpYyBzdGF0aWMgU3BhcnNlUmVhZGVyIENyZWF0ZUZyb21TdHJlYW0oU3BhcnNlUmVhZGVyRGlzcGF0Y2hUYWJsZSBkaXNwYXRjaFRhYmxlLCBTdHJlYW0gc3RyZWFtKQ0KICAgICAgICB7DQogICAgICAgICAgICByZXR1cm4gQ3JlYXRlRnJvbVN0cmVhbShkaXNwYXRjaFRhYmxlLCBzdHJlYW0sIG51bGwpOw0KICAgICAgICB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gQ3JlYXRlcyBhIG5ldyA8c2VlIGNyZWY9IlNwYXJzZVJlYWRlciIvPiBwb2ludGluZyB0byBhIDxzZWUgY3JlZj0iU3lzdGVtLklPLlN0cmVhbSIvPiByYXRoZXINCiAgICAgICAgLy8vIHRoYW4gYSA8c2VlIGNyZWY9IlN5c3RlbS5YbWwuWG1sUmVhZGVyIi8+Lg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICAvLy8gPHBhcmFtIG5hbWU9ImRpc3BhdGNoVGFibGUiPlRoZSBkaXNwYXRjaCB0YWJsZSB1c2VkIHRvIGZpcmUgZGVsZWdhdGVzIGZvciBYTUwgZWxlbWVudHMgb24NCiAgICAgICAgLy8vIHRoaXMgaW5zdGFuY2UuPC9wYXJhbT4NCiAgICAgICAgLy8vIDxwYXJhbSBuYW1lPSJzdHJlYW0iPlRoZSBzdHJlYW0gZnJvbSB3aGljaCBYTUwgc2hhbGwgYmUgcmV0cmlldmVkLiBUaGUgU3BhcnNlUmVhZGVyIHRha2VzDQogICAgICAgIC8vLyBvd25lcnNoaXAgb2YgdGhpcyBzdHJlYW0gYW5kIGlzIHJlc3BvbnNpYmxlIGZvciBkZXN0cm95aW5nIGl0LjwvcGFyYW0+DQogICAgICAgIC8vLyA8cGFyYW0gbmFtZT0ic2NoZW1hU2V0Ij5UaGUgeG1sIHNjaGVtYSB0byB2YWxpZGF0ZSB0aGUgaW5wdXQgYWdhaW5zdDwvcGFyYW0+DQogICAgICAgIC8vLyA8cmV0dXJucz4NCiAgICAgICAgLy8vIEEgPHNlZSBjcmVmPSJTcGFyc2VSZWFkZXIiLz4gd3JhcHBpbmcgdGhlIHN0cmVhbSA8cGFyYW1yZWYgbmFtZT0ic3RyZWFtIi8+Lg0KICAgICAgICAvLy8gPC9yZXR1cm5zPg0KICAgICAgICBwdWJsaWMgc3RhdGljIFNwYXJzZVJlYWRlciBDcmVhdGVGcm9tU3RyZWFtKFNwYXJzZVJlYWRlckRpc3BhdGNoVGFibGUgZGlzcGF0Y2hUYWJsZSwgU3RyZWFtIHN0cmVhbSwgWG1sU2NoZW1hU2V0IHNjaGVtYVNldCkNCiAgICAgICAgew0KICAgICAgICAgICAgdmFyIHNldHRpbmdzID0gbmV3IFhtbFJlYWRlclNldHRpbmdzDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgRHRkUHJvY2Vzc2luZyA9IER0ZFByb2Nlc3NpbmcuSWdub3JlLA0KICAgICAgICAgICAgICAgIENsb3NlSW5wdXQgPSB0cnVlLA0KICAgICAgICAgICAgICAgIFNjaGVtYXMgPSBzY2hlbWFTZXQsDQogICAgICAgICAgICAgICAgWG1sUmVzb2x2ZXIgPSBudWxsDQogICAgICAgICAgICB9Ow0KDQogICAgICAgICAgICBYbWxSZWFkZXIgeFJlYWRlciA9IG51bGw7DQogICAgICAgICAgICB0cnkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICB4UmVhZGVyID0gWG1sUmVhZGVyLkNyZWF0ZShzdHJlYW0sIHNldHRpbmdzKTsNCiAgICAgICAgICAgICAgICB4UmVhZGVyLk1vdmVUb0NvbnRlbnQoKTsgLy8gSWYgdGhpcyB0aHJvd3MsIHdlIGRlc3Ryb3kgdGhlIHJlYWRlciBpbiB0aGUgZmluYWxseSBibG9jayBiZWxvdy4NCiAgICAgICAgICAgICAgICB2YXIgcmVzdWx0ID0gbmV3IFNwYXJzZVJlYWRlcihkaXNwYXRjaFRhYmxlLCB4UmVhZGVyKTsgLy8gbm90aHJvdw0KICAgICAgICAgICAgICAgIHhSZWFkZXIgPSBudWxsOyAvLyBPd25lcnNoaXAgdHJhbnNmZXJlZCB0byBTcGFyc2VSZWFkZXI7IGRvbid0IGRlc3Ryb3kgaGVyZQ0KICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBmaW5hbGx5DQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgaWYgKHhSZWFkZXIgIT0gbnVsbCkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIHhSZWFkZXIuRGlzcG9zZSgpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgIHB1YmxpYyBib29sIElzRW1wdHlFbGVtZW50IHsgZ2V0IHsgcmV0dXJuIF94bWxSZWFkZXIuSXNFbXB0eUVsZW1lbnQ7IH0gfQ0KDQogICAgICAgIC8vLyA8c3VtbWFyeT5SZWFkcyB0aGUgY2hpbGRyZW4gb2YgPHNlZSBjcmVmPSJNOlhtbFJlYWRlciIvPi48L3N1bW1hcnk+DQogICAgICAgIC8vLyA8cGFyYW0gbmFtZT0idGFnTmFtZSI+TmFtZSBvZiB0aGUgdGFnLjwvcGFyYW0+DQogICAgICAgIC8vLyA8cGFyYW0gbmFtZT0icGFyZW50Ij5UaGUgcGFyZW50LjwvcGFyYW0+DQogICAgICAgIHB1YmxpYyB2b2lkIFJlYWRDaGlsZHJlbihzdHJpbmcgdGFnTmFtZSwgb2JqZWN0IHBhcmVudCkNCiAgICAgICAgew0KICAgICAgICAgICAgUmVhZENoaWxkcmVuKHRhZ05hbWUsIHBhcmVudCwgb3V0IHN0cmluZyBpbm5lclRleHQpOw0KICAgICAgICB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5PlJlYWRzIHRoZSBjaGlsZHJlbiBvZiA8c2VlIGNyZWY9Ik06WG1sUmVhZGVyIi8+Ljwvc3VtbWFyeT4NCiAgICAgICAgLy8vIDxwYXJhbSBuYW1lPSJ0YWdOYW1lIj5OYW1lIG9mIHRoZSB0YWcuPC9wYXJhbT4NCiAgICAgICAgLy8vIDxwYXJhbSBuYW1lPSJwYXJlbnQiPlRoZSBwYXJlbnQuPC9wYXJhbT4NCiAgICAgICAgLy8vIDxwYXJhbSBuYW1lPSJpbm5lclRleHQiPlRoZSBpbm5lciB0ZXh0LCBpZiBhbnksIGFzc29jaWF0ZWQgd2l0aCB0aGUgdGFnLjwvcGFyYW0+DQogICAgICAgIHB1YmxpYyB2b2lkIFJlYWRDaGlsZHJlbihzdHJpbmcgdGFnTmFtZSwgb2JqZWN0IHBhcmVudCwgb3V0IHN0cmluZyBpbm5lclRleHQpDQogICAgICAgIHsNCiAgICAgICAgICAgIGlubmVyVGV4dCA9IG51bGw7DQoNCiAgICAgICAgICAgIC8vIGNoZWNrIGZvciBlbXB0eSBlbGVtZW50DQogICAgICAgICAgICBib29sIGlzRW1wdHkgPSBfeG1sUmVhZGVyLklzRW1wdHlFbGVtZW50Ow0KDQogICAgICAgICAgICAvLyBzdGFydCByZWFkaW5nIChhc3N1bWVzIGFsbCBhdHRyaWJ1dGVzIGFyZSBhbHJlYWR5IGNvbnN1bWVkKQ0KICAgICAgICAgICAgUmVhZFN0YXJ0RWxlbWVudCgpOw0KDQogICAgICAgICAgICBpZiAoaXNFbXB0eSkNCiAgICAgICAgICAgICAgICByZXR1cm47IC8vIERPTkUgd2l0aCB0aGlzIGVsZW1lbnQNCg0KICAgICAgICAgICAgd2hpbGUgKCFJc0VuZFN0YXRlKHRhZ05hbWUpKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIC8vIFRyeSB0byBjYWxsIGEgaGFuZGxlciBmb3IgdGhpcyBlbGVtZW50Li4uDQogICAgICAgICAgICAgICAgaWYgKCFfZGlzcGF0Y2hUYWJsZS5EaXNwYXRjaChfeG1sUmVhZGVyLkxvY2FsTmFtZSwgdGhpcywgcGFyZW50KSkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIGlmIChfeG1sUmVhZGVyLk5vZGVUeXBlID09IFhtbE5vZGVUeXBlLlRleHQpDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlubmVyVGV4dCA9IF94bWxSZWFkZXIuUmVhZENvbnRlbnRBc1N0cmluZygpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7DQogICAgICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgICAgICAvLyAuLi4gYW5kIHNraXAgdGhlIGVsZW1lbnQgaWYgbm8gc3VjaCBoYW5kbGVyIHdhcyByZWdpc3RlcmVkLg0KICAgICAgICAgICAgICAgICAgICBTa2lwKCk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAvLyBjb25jbHVkZSByZWFkaW5nDQogICAgICAgICAgICBSZWFkRW5kRWxlbWVudCh0YWdOYW1lKTsNCiAgICAgICAgfQ0KDQogICAgICAgIC8vLyA8c3VtbWFyeT5HZXRzIHRoZSBsb2NhbCBuYW1lIG9mIHRoZSBjdXJyZW50IGVsZW1lbnQuPC9zdW1tYXJ5Pg0KICAgICAgICAvLy8gPHZhbHVlPlRoZSBsb2NhbCBuYW1lIG9mIHRoZSBjdXJyZW50IGVsZW1lbnQuPC92YWx1ZT4NCiAgICAgICAgLy8vIDxzZWVhbHNvIGNyZWY9IlA6WG1sUmVhZGVyLkxvY2FsTmFtZSIvPg0KICAgICAgICBwdWJsaWMgc3RyaW5nIExvY2FsTmFtZQ0KICAgICAgICB7DQogICAgICAgICAgICBnZXQNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gX3htbFJlYWRlci5Mb2NhbE5hbWU7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICAvLy8gPHN1bW1hcnk+U2tpcHMgdGhlIGVsZW1lbnQgb24gd2hpY2ggdGhpcyA8c2VlIGNyZWY9IlNwYXJzZVJlYWRlciIvPiBpcyBjdXJyZW50bHkgcG9zaXRpb25lZC48L3N1bW1hcnk+DQogICAgICAgIC8vLyA8c2VlYWxzbyBjcmVmPSJNOlhtbFJlYWRlci5Ta2lwIi8+DQogICAgICAgIHB1YmxpYyB2b2lkIFNraXAoKQ0KICAgICAgICB7DQogICAgICAgICAgICBfeG1sUmVhZGVyLlNraXAoKTsNCiAgICAgICAgfQ0KDQogICAgICAgIC8vLyA8c3VtbWFyeT5SZWFkcyBhbiBhdHRyaWJ1dGUgdmFsdWUgYXMgYSBzdHJpbmcuPC9zdW1tYXJ5Pg0KICAgICAgICAvLy8gPHBhcmFtIG5hbWU9ImF0dHJpYnV0ZU5hbWUiPk5hbWUgb2YgdGhlIGF0dHJpYnV0ZSB0byByZWFkLjwvcGFyYW0+DQogICAgICAgIC8vLyA8cmV0dXJucz5UaGUgYXR0cmlidXRlIHN0cmluZyBpZiB0aGUgYXR0cmlidXRlIGV4aXN0czsgb3IgbnVsbCBpZiBpdCBkb2Vzbid0IGV4aXN0LjwvcmV0dXJucz4NCiAgICAgICAgLy8vIDxzZWVhbHNvIGNyZWY9Ik06WG1sUmVhZGVyLkdldEF0dHJpYnV0ZSIvPg0KICAgICAgICBwdWJsaWMgc3RyaW5nIFJlYWRBdHRyaWJ1dGVTdHJpbmcoc3RyaW5nIGF0dHJpYnV0ZU5hbWUpDQogICAgICAgIHsNCiAgICAgICAgICAgIHJldHVybiBfeG1sUmVhZGVyLkdldEF0dHJpYnV0ZShhdHRyaWJ1dGVOYW1lKTsNCiAgICAgICAgfQ0KDQogICAgICAgIC8vLyA8c3VtbWFyeT5SZWFkcyBhbiBhdHRyaWJ1dGUgdmFsdWUgYXMgYW4gaW50ZWdlci48L3N1bW1hcnk+DQogICAgICAgIC8vLyA8cGFyYW0gbmFtZT0iYXR0cmlidXRlTmFtZSI+TmFtZSBvZiB0aGUgYXR0cmlidXRlIHRvIHJlYWQuPC9wYXJhbT4NCiAgICAgICAgLy8vIDxyZXR1cm5zPlRoZSBhdHRyaWJ1dGUgdmFsdWUgY29udmVydGVkIHRvIGFuIGludGVnZXIgaWYgaXQgZXhpc3RzOyBvdGhlcndpc2UsIG51bGwuPC9yZXR1cm5zPg0KICAgICAgICAvLy8gPHNlZWFsc28gY3JlZj0iTTpYbWxSZWFkZXIuR2V0QXR0cmlidXRlIi8+DQogICAgICAgIHB1YmxpYyBpbnQ/IFJlYWRBdHRyaWJ1dGVJbnQoc3RyaW5nIGF0dHJpYnV0ZU5hbWUpDQogICAgICAgIHsNCiAgICAgICAgICAgIHN0cmluZyBzdHJpbmdWYWx1ZSA9IF94bWxSZWFkZXIuR2V0QXR0cmlidXRlKGF0dHJpYnV0ZU5hbWUpOw0KICAgICAgICAgICAgaWYgKHN0cmluZ1ZhbHVlID09IG51bGwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7DQogICAgICAgICAgICB9DQogICAgICAgICAgICByZXR1cm4gWG1sQ29udmVydC5Ub0ludDMyKHN0cmluZ1ZhbHVlKTsNCiAgICAgICAgfQ0KDQogICAgICAgIC8vLyA8c3VtbWFyeT5SZWFkcyBhbiBhdHRyaWJ1dGUgdmFsdWUgYXMgYSBib29sZWFuLjwvc3VtbWFyeT4NCiAgICAgICAgLy8vIDxwYXJhbSBuYW1lPSJhdHRyaWJ1dGVOYW1lIj5OYW1lIG9mIHRoZSBhdHRyaWJ1dGUgdG8gcmVhZC48L3BhcmFtPg0KICAgICAgICAvLy8gPHJldHVybnM+VGhlIGF0dHJpYnV0ZSB2YWx1ZSBjb252ZXJ0ZWQgdG8gYSBib29sZWFuIGlmIGl0IGV4aXN0czsgb3RoZXJ3aXNlLCBudWxsLjwvcmV0dXJucz4NCiAgICAgICAgLy8vIDxzZWVhbHNvIGNyZWY9Ik06WG1sUmVhZGVyLkdldEF0dHJpYnV0ZSIvPg0KICAgICAgICBwdWJsaWMgYm9vbD8gUmVhZEF0dHJpYnV0ZUJvb2woc3RyaW5nIGF0dHJpYnV0ZU5hbWUpDQogICAgICAgIHsNCiAgICAgICAgICAgIHN0cmluZyBzdHJpbmdWYWx1ZSA9IF94bWxSZWFkZXIuR2V0QXR0cmlidXRlKGF0dHJpYnV0ZU5hbWUpOw0KICAgICAgICAgICAgaWYgKHN0cmluZ1ZhbHVlID09IG51bGwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7DQogICAgICAgICAgICB9DQogICAgICAgICAgICByZXR1cm4gWG1sQ29udmVydC5Ub0Jvb2xlYW4oc3RyaW5nVmFsdWUpOw0KICAgICAgICB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5PlJlYWRzIHRoZSBjdXJyZW50IGVsZW1lbnQncyBjb250ZW50IGFzIGEgc3RyaW5nIGFuZCBjb25zdW1lcyB0aGUgZWxlbWVudC48L3N1bW1hcnk+DQogICAgICAgIC8vLyA8cmV0dXJucz5UaGUgZWxlbWVudCdzIGNvbnRlbnQgYXMgYSBzdHJpbmcuPC9yZXR1cm5zPg0KICAgICAgICAvLy8gPHNlZWFsc28gY3JlZj0iTTpYbWxSZWFkZXIuUmVhZEVsZW1lbnRDb250ZW50QXNTdHJpbmciLz4NCiAgICAgICAgcHVibGljIHN0cmluZyBSZWFkRWxlbWVudENvbnRlbnRBc1N0cmluZygpDQogICAgICAgIHsNCiAgICAgICAgICAgIHJldHVybiBfeG1sUmVhZGVyLlJlYWRFbGVtZW50Q29udGVudEFzU3RyaW5nKCk7DQogICAgICAgIH0NCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBSZWFkcyB0aGUgY3VycmVudCBlbGVtZW50J3MgY29udGVudCBhcyBhbiBpbnRlZ2VyIGFuZCBjb25zdW1lcyB0aGUgZWxlbWVudC4NCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgLy8vIDxyZXR1cm5zPlRoZSBlbGVtZW50J3MgY29udGVudCBhcyBhIGludGVnZXIuPC9yZXR1cm5zPg0KICAgICAgICAvLy8gPHNlZWFsc28gY3JlZj0iTTpYbWxSZWFkZXIuUmVhZEVsZW1lbnRDb250ZW50QXNJbnQzMiIvPg0KICAgICAgICBwdWJsaWMgaW50IFJlYWRFbGVtZW50Q29udGVudEFzSW50MzIoKQ0KICAgICAgICB7DQogICAgICAgICAgICByZXR1cm4gX3htbFJlYWRlci5SZWFkRWxlbWVudENvbnRlbnRBc0ludCgpOw0KICAgICAgICB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gUmVhZCdzIHRoZSBjdXJyZW50IGVsZW1lbnQncyBjb250ZW50IGFuZCBhdHRlbXB0cyB0byBjb252ZXJ0IGl0IHRvIGFuIGludGVnZXIuIENvbnN1bWVzIHRoZQ0KICAgICAgICAvLy8gZWxlbWVudC4NCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgLy8vIDxyZXR1cm5zPlRoZSBlbGVtZW50IGNvbnRlbnQgYXMgYW4gaW50IGlmIGl0IGNhbiBiZSBwYXJzZWQgYXMgYW4gaW50OyBvdGhlcndpc2UsIDAuPC9yZXR1cm5zPg0KICAgICAgICAvLy8gPHNlZWFsc28gY3JlZj0iTTpYbWxSZWFkZXIuUmVhZEVsZW1lbnRDb250ZW50QXNJbnQzMiIvPg0KICAgICAgICBwdWJsaWMgaW50IFJlYWRFbGVtZW50Q29udGVudEFzSW50MzJPckRlZmF1bHQoKQ0KICAgICAgICB7DQogICAgICAgICAgICBpZiAoX3htbFJlYWRlci5Jc0VtcHR5RWxlbWVudCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICB0aGlzLlNraXAoKTsNCiAgICAgICAgICAgICAgICByZXR1cm4gZGVmYXVsdChpbnQpOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBpbnQgY29udGVudDsNCg0KICAgICAgICAgICAgLy8gVGhlIE51bWJlclN0eWxlcyBjb25zdGFudHMgaGVyZSBhcmUgZnJvbSBYbWxDb252ZXJ0LlRvSW50MzI6DQogICAgICAgICAgICAvLyBodHRwOi8vcmVmZXJlbmNlc291cmNlLm1pY3Jvc29mdC5jb20vI1N5c3RlbS5YbWwvWG1sL1N5c3RlbS9YbWwvWG1sQ29udmVydC5jcyM5MjcNCiAgICAgICAgICAgIGlmIChpbnQuVHJ5UGFyc2UoUmVhZEVsZW1lbnRDb250ZW50QXNTdHJpbmcoKSwgTnVtYmVyU3R5bGVzLkFsbG93TGVhZGluZ1NpZ24gfCBOdW1iZXJTdHlsZXMuQWxsb3dMZWFkaW5nV2hpdGUgfCBOdW1iZXJTdHlsZXMuQWxsb3dUcmFpbGluZ1doaXRlLCBOdW1iZXJGb3JtYXRJbmZvLkludmFyaWFudEluZm8sIG91dCBjb250ZW50KSkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gY29udGVudDsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgcmV0dXJuIDA7DQogICAgICAgIH0NCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBSZWFkcyB0aGUgY3VycmVudCBlbGVtZW50J3MgY29udGVudCBhcyBhIGRvdWJsZSBhbmQgY29uc3VtZXMgdGhlIGVsZW1lbnQuDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIC8vLyA8cmV0dXJucz5UaGUgZWxlbWVudCdzIGNvbnRlbnQgYXMgYSBkb3VibGUuPC9yZXR1cm5zPg0KICAgICAgICAvLy8gPHNlZWFsc28gY3JlZj0iTTpYbWxSZWFkZXIuUmVhZEVsZW1lbnRDb250ZW50QXNEb3VibGUiLz4NCiAgICAgICAgcHVibGljIGRvdWJsZSBSZWFkRWxlbWVudENvbnRlbnRBc0RvdWJsZSgpDQogICAgICAgIHsNCiAgICAgICAgICAgIHJldHVybiBfeG1sUmVhZGVyLlJlYWRFbGVtZW50Q29udGVudEFzRG91YmxlKCk7DQogICAgICAgIH0NCg0KICAgICAgICAvLyBodHRwOi8vcmVmZXJlbmNlc291cmNlLm1pY3Jvc29mdC5jb20vI1N5c3RlbS5YbWwvWG1sL1N5c3RlbS9YbWwvWG1sQ29udmVydC5jcyMxNDE1DQogICAgICAgIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IGNoYXJbXSBXaGl0ZXNwYWNlQ2hhcmFjdGVycyA9IG5ldyBjaGFyW10geyAnICcsICdcdCcsICdcbicsICdccicgfTsNCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBBdHRlbXB0cyB0byB0aGUgY3VycmVudCBlbGVtZW50J3MgY29udGVudCBhcyBhIGRvdWJsZSBhbmQgY29uc3VtZXMgdGhlIGVsZW1lbnQuDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIC8vLyA8cmV0dXJucz5UaGUgZWxlbWVudCdzIGNvbnRlbnQgYXMgYSBkb3VibGUgaWYgaXQgY2FuIGJlIHBhcnNlZCBhcyBhIGRvdWJsZTsgb3RoZXJ3aXNlLCAwLjAuPC9yZXR1cm5zPg0KICAgICAgICAvLy8gPHNlZWFsc28gY3JlZj0iTTpYbWxSZWFkZXIuUmVhZEVsZW1lbnRDb250ZW50QXNEb3VibGUiLz4NCiAgICAgICAgcHVibGljIGRvdWJsZSBSZWFkRWxlbWVudENvbnRlbnRBc0RvdWJsZU9yRGVmYXVsdCgpDQogICAgICAgIHsNCiAgICAgICAgICAgIGlmIChfeG1sUmVhZGVyLklzRW1wdHlFbGVtZW50KQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIF94bWxSZWFkZXIuU2tpcCgpOw0KICAgICAgICAgICAgICAgIHJldHVybiBkZWZhdWx0KGRvdWJsZSk7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIHN0cmluZyBjb250ZW50ID0gdGhpcy5SZWFkRWxlbWVudENvbnRlbnRBc1N0cmluZygpOw0KICAgICAgICAgICAgaWYgKGNvbnRlbnQgPT0gbnVsbCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gZGVmYXVsdChkb3VibGUpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZWxzZQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIGNvbnRlbnQgPSBjb250ZW50LlRyaW0oV2hpdGVzcGFjZUNoYXJhY3RlcnMpOw0KDQogICAgICAgICAgICAgICAgaWYgKGNvbnRlbnQgPT0gIi1JTkYiKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIERvdWJsZS5OZWdhdGl2ZUluZmluaXR5Ow0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgIGlmIChjb250ZW50ID09ICJJTkYiKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIERvdWJsZS5Qb3NpdGl2ZUluZmluaXR5Ow0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgZG91YmxlIGRWYWw7DQogICAgICAgICAgICBpZiAoIURvdWJsZS5UcnlQYXJzZShjb250ZW50LA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTnVtYmVyU3R5bGVzLkFsbG93TGVhZGluZ1NpZ24gfA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTnVtYmVyU3R5bGVzLkFsbG93RGVjaW1hbFBvaW50IHwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE51bWJlclN0eWxlcy5BbGxvd0V4cG9uZW50IHwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE51bWJlclN0eWxlcy5BbGxvd0xlYWRpbmdXaGl0ZSB8DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOdW1iZXJTdHlsZXMuQWxsb3dUcmFpbGluZ1doaXRlLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTnVtYmVyRm9ybWF0SW5mby5JbnZhcmlhbnRJbmZvLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3V0IGRWYWwpKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHJldHVybiBkZWZhdWx0KGRvdWJsZSk7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIGlmIChkVmFsID09IDAgJiYgY29udGVudFswXSA9PSAnLScpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgcmV0dXJuIC0wZDsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgcmV0dXJuIGRWYWw7DQogICAgICAgIH0NCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBEZXN0cm95cyB0aGlzIDxzZWUgY3JlZj0iU3BhcnNlUmVhZGVyIi8+IChhbmQgdGhlIHVuZGVybHlpbmcgPHNlZSBjcmVmPSJfeG1sUmVhZGVyIi8+KS4NCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgLy8vIDxzZWVhbHNvIGNyZWY9Ik06U3lzdGVtLklEaXNwb3NhYmxlLkRpc3Bvc2UoKSIvPg0KICAgICAgICBwdWJsaWMgdm9pZCBEaXNwb3NlKCkNCiAgICAgICAgew0KICAgICAgICAgICAgX3htbFJlYWRlci5EaXNwb3NlKCk7DQogICAgICAgIH0NCg0KICAgICAgICBwcml2YXRlIGJvb2wgSXNFbmRTdGF0ZShzdHJpbmcgZXhwZWN0ZWRUYWdOYW1lKQ0KICAgICAgICB7DQogICAgICAgICAgICByZXR1cm4gSXNNYXRjaGluZ1N0YXRlKGV4cGVjdGVkVGFnTmFtZSwgZmFsc2UpIHx8IF94bWxSZWFkZXIuRU9GOw0KICAgICAgICB9DQoNCiAgICAgICAgcHJpdmF0ZSBib29sIElzTWF0Y2hpbmdTdGF0ZShzdHJpbmcgZXhwZWN0ZWRUYWdOYW1lLCBib29sIGlzU3RhcnRTdGF0ZSA9IHRydWUpDQogICAgICAgIHsNCiAgICAgICAgICAgIC8vIGJhc2ljIGNoZWNrcw0KICAgICAgICAgICAgaWYgKF94bWxSZWFkZXIuSXNTdGFydEVsZW1lbnQoKSAhPSBpc1N0YXJ0U3RhdGUgfHwNCiAgICAgICAgICAgICAgICBzdHJpbmcuSXNOdWxsT3JFbXB0eShleHBlY3RlZFRhZ05hbWUpKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgLy8gY2hlY2sgdGhhdCB0YWcgbmFtZXMgbWF0Y2gNCiAgICAgICAgICAgIHJldHVybiBleHBlY3RlZFRhZ05hbWUuRXF1YWxzKF94bWxSZWFkZXIuTG9jYWxOYW1lKTsNCiAgICAgICAgfQ0KDQogICAgICAgIHByaXZhdGUgdm9pZCBSZWFkU3RhcnRFbGVtZW50KCkNCiAgICAgICAgew0KICAgICAgICAgICAgX3htbFJlYWRlci5SZWFkU3RhcnRFbGVtZW50KCk7DQogICAgICAgICAgICBfeG1sUmVhZGVyLk1vdmVUb0NvbnRlbnQoKTsNCiAgICAgICAgfQ0KDQogICAgICAgIHByaXZhdGUgdm9pZCBSZWFkRW5kRWxlbWVudChzdHJpbmcgZXhwZWN0ZWRUYWdOYW1lKQ0KICAgICAgICB7DQogICAgICAgICAgICBpZiAoIUlzRW5kU3RhdGUoZXhwZWN0ZWRUYWdOYW1lKSkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgWG1sRXhjZXB0aW9uKCJYTUwgUmVhZGVyIGlzIGluIGludmFsaWQgc3RhdGUiKTsgLy8gVE9ETyBDb2RlIEFuYWx5c2lzIEV4Y2VwdGlvbg0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBfeG1sUmVhZGVyLlJlYWRFbmRFbGVtZW50KCk7DQogICAgICAgICAgICBfeG1sUmVhZGVyLk1vdmVUb0NvbnRlbnQoKTsNCiAgICAgICAgfQ0KICAgIH0NCn0=" + { + "ruleId": "CA1704", + "message": { + "text": "Correct the spelling of 'Sarif' in namespace name 'Microsoft.CodeAnalysis.Sarif.Converters.TSLintObjectModel'.", + "id": "Namespace" }, - "hashes": [ - { - "value": "377BD641352D700B0EA156076565453E", - "algorithm": "md5" - }, - { - "value": "22FE0E3B15C6590A1EE83F6B54BCD2CBFA0A2B06", - "algorithm": "sha-1" - }, + "locations": [ { - "value": "F89AAA97063560194CB5FC055A11FD297A5EFEA2CD6CD5492562B9D661CE2609", - "algorithm": "sha-256" + "logicalLocations": [ + { + "index": 6, + "fullyQualifiedName": "Microsoft.CodeAnalysis.Sarif.Converters.TSLintObjectModel" + } + ] } - ] + ], + "partialFingerprints": { + "UniqueId": "Sarif#Namespace" + }, + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" + } }, - "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/StaticDriverVerifierConverter.cs": { - "mimeType": "text/x-csharp", - "contents": { - "binary": "77u/Ly8gQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuDQovLyBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UuIFNlZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHByb2plY3Qgcm9vdCBmb3IgZnVsbCBsaWNlbnNlIGluZm9ybWF0aW9uLg0KDQp1c2luZyBTeXN0ZW07DQp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsNCnVzaW5nIFN5c3RlbS5EaWFnbm9zdGljczsNCnVzaW5nIFN5c3RlbS5JTzsNCnVzaW5nIFN5c3RlbS5UZXh0Ow0KdXNpbmcgU3lzdGVtLlRleHQuUmVndWxhckV4cHJlc3Npb25zOw0KDQpuYW1lc3BhY2UgTWljcm9zb2Z0LkNvZGVBbmFseXNpcy5TYXJpZi5Db252ZXJ0ZXJzDQp7DQogICAgaW50ZXJuYWwgY2xhc3MgU3RhdGljRHJpdmVyVmVyaWZpZXJDb252ZXJ0ZXIgOiBUb29sRmlsZUNvbnZlcnRlckJhc2UNCiAgICB7DQogICAgICAgIHByaXZhdGUgU3RyaW5nQnVpbGRlciBfc2I7DQogICAgICAgIHByaXZhdGUgU3RhY2s8c3RyaW5nPiBfY2FsbGVyczsNCg0KICAgICAgICAvLy8gPHN1bW1hcnk+SW5pdGlhbGl6ZXMgYSBuZXcgaW5zdGFuY2Ugb2YgdGhlIDxzZWUgY3JlZj0iU3RhdGljRHJpdmVyVmVyaWZpZXJDb252ZXJ0ZXIiLz4gY2xhc3MuPC9zdW1tYXJ5Pg0KICAgICAgICBwdWJsaWMgU3RhdGljRHJpdmVyVmVyaWZpZXJDb252ZXJ0ZXIoKQ0KICAgICAgICB7DQogICAgICAgICAgICBfc2IgPSBuZXcgU3RyaW5nQnVpbGRlcigpOw0KICAgICAgICAgICAgX2NhbGxlcnMgPSBuZXcgU3RhY2s8c3RyaW5nPigpOw0KICAgICAgICB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gSW50ZXJmYWNlIGltcGxlbWVudGF0aW9uIHRoYXQgdGFrZXMgYSBTdGF0aWMgRHJpdmVyIFZlcmlmaWVyIGxvZyBzdHJlYW0gYW5kIGNvbnZlcnRzDQogICAgICAgIC8vLyAgaXRzIGRhdGEgdG8gYSBTQVJJRiBqc29uIHN0cmVhbS4gUmVhZCBpbiBTdGF0aWMgRHJpdmVyIFZlcmlmaWVyIGRhdGEgZnJvbSBhbiBpbnB1dA0KICAgICAgICAvLy8gIHN0cmVhbSBhbmQgd3JpdGUgUmVzdWx0IG9iamVjdHMuDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIC8vLyA8cGFyYW0gbmFtZT0iaW5wdXQiPlN0cmVhbSBvZiBhIFN0YXRpYyBEcml2ZXIgVmVyaWZpZXIgbG9nPC9wYXJhbT4NCiAgICAgICAgLy8vIDxwYXJhbSBuYW1lPSJvdXRwdXQiPlNBUklGIGpzb24gc3RyZWFtIG9mIHRoZSBjb252ZXJ0ZWQgU3RhdGljIERyaXZlciBWZXJpZmllciBsb2c8L3BhcmFtPg0KICAgICAgICAvLy8gPHBhcmFtIG5hbWU9ImRhdGFUb0luc2VydCI+T3B0aW9uYWxseSBlbWl0dGVkIHByb3BlcnRpZXMgdGhhdCBzaG91bGQgYmUgd3JpdHRlbiB0byBsb2cuPC9wYXJhbT4NCiAgICAgICAgcHVibGljIG92ZXJyaWRlIHZvaWQgQ29udmVydChTdHJlYW0gaW5wdXQsIElSZXN1bHRMb2dXcml0ZXIgb3V0cHV0LCBPcHRpb25hbGx5RW1pdHRlZERhdGEgZGF0YVRvSW5zZXJ0KQ0KICAgICAgICB7DQogICAgICAgICAgICBpZiAoaW5wdXQgPT0gbnVsbCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgQXJndW1lbnROdWxsRXhjZXB0aW9uKG5hbWVvZihpbnB1dCkpOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBpZiAob3V0cHV0ID09IG51bGwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgdGhyb3cgbmV3IEFyZ3VtZW50TnVsbEV4Y2VwdGlvbihuYW1lb2Yob3V0cHV0KSk7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIFJlc3VsdCByZXN1bHQgPSBQcm9jZXNzU2R2RGVmZWN0U3RyZWFtKGlucHV0KTsNCiAgICAgICAgICAgIHZhciByZXN1bHRzID0gbmV3IFJlc3VsdFtdIHsgcmVzdWx0IH07DQoNCiAgICAgICAgICAgIHZhciB0b29sID0gbmV3IFRvb2wNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBOYW1lID0gIlN0YXRpY0RyaXZlclZlcmlmaWVyIiwNCiAgICAgICAgICAgIH07DQoNCiAgICAgICAgICAgIHZhciBmaWxlSW5mb0ZhY3RvcnkgPSBuZXcgRmlsZUluZm9GYWN0b3J5KG51bGwsIGRhdGFUb0luc2VydCk7DQogICAgICAgICAgICBEaWN0aW9uYXJ5PHN0cmluZywgRmlsZURhdGE+IGZpbGVEaWN0aW9uYXJ5ID0gZmlsZUluZm9GYWN0b3J5LkNyZWF0ZShyZXN1bHRzKTsNCg0KICAgICAgICAgICAgdmFyIHJ1biA9IG5ldyBSdW4oKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIFRvb2wgPSB0b29sDQogICAgICAgICAgICB9Ow0KDQogICAgICAgICAgICBvdXRwdXQuSW5pdGlhbGl6ZShydW4pOw0KDQogICAgICAgICAgICBpZiAoZmlsZURpY3Rpb25hcnkgIT0gbnVsbCAmJiBmaWxlRGljdGlvbmFyeS5Db3VudCA+IDApIHsgb3V0cHV0LldyaXRlRmlsZXMoZmlsZURpY3Rpb25hcnkpOyB9DQoNCiAgICAgICAgICAgIG91dHB1dC5PcGVuUmVzdWx0cygpOw0KICAgICAgICAgICAgb3V0cHV0LldyaXRlUmVzdWx0cyhyZXN1bHRzKTsNCiAgICAgICAgICAgIG91dHB1dC5DbG9zZVJlc3VsdHMoKTsNCiAgICAgICAgfQ0KDQogICAgICAgIHByaXZhdGUgUmVzdWx0IFByb2Nlc3NTZHZEZWZlY3RTdHJlYW0oU3RyZWFtIGlucHV0KQ0KICAgICAgICB7DQogICAgICAgICAgICB2YXIgcmVzdWx0ID0gbmV3IFJlc3VsdA0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIExvY2F0aW9ucyA9IG5ldyBMaXN0PExvY2F0aW9uPigpLA0KICAgICAgICAgICAgICAgIENvZGVGbG93cyA9IG5ldyBbXQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgU2FyaWZVdGlsaXRpZXMuQ3JlYXRlU2luZ2xlVGhyZWFkZWRDb2RlRmxvdygpDQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfTsNCg0KICAgICAgICAgICAgdXNpbmcgKHZhciByZWFkZXIgPSBuZXcgU3RyZWFtUmVhZGVyKGlucHV0KSkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBpbnQgbmVzdGluZ0xldmVsID0gMDsNCiAgICAgICAgICAgICAgICBzdHJpbmcgbGluZTsNCg0KICAgICAgICAgICAgICAgIHdoaWxlICghc3RyaW5nLklzTnVsbE9yRW1wdHkobGluZSA9IHJlYWRlci5SZWFkTGluZSgpKSkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIFByb2Nlc3NMaW5lKGxpbmUsIHJlZiBuZXN0aW5nTGV2ZWwsIHJlc3VsdCk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICByZXR1cm4gcmVzdWx0Ow0KICAgICAgICB9DQoNCiAgICAgICAgcHJpdmF0ZSB2b2lkIFByb2Nlc3NMaW5lKHN0cmluZyBsb2dGaWxlTGluZSwgcmVmIGludCBuZXN0aW5nTGV2ZWwsIFJlc3VsdCByZXN1bHQpDQogICAgICAgIHsNCiAgICAgICAgICAgIHZhciBjb2RlRmxvdyA9IHJlc3VsdC5Db2RlRmxvd3NbMF07DQoNCiAgICAgICAgICAgIGNvbnN0IGludCBTVEVQICA9IDA7DQogICAgICAgICAgICBjb25zdCBpbnQgVVJJICAgPSAxOw0KICAgICAgICAgICAgY29uc3QgaW50IExJTkUgID0gMjsNCiAgICAgICAgICAgIC8vIGNvbnN0IGludCBJTVBPUlRBTkNFICA9IDM7IFRoaXMgdmFsdWUgbm90IHBlcnNpc3RlZCB0byBTQVJJRg0KICAgICAgICAgICAgY29uc3QgaW50IFNUQVRFID0gNDsNCiAgICAgICAgICAgIGNvbnN0IGludCBLSU5EMSA9IDU7DQoNCiAgICAgICAgICAgIC8vIFdoZW4gS0lORDEgPT0gIkF0b21pYyIgdGhlIDZ0aCBzbG90IGlzIHRoZQ0KICAgICAgICAgICAgLy8gdGhlIHJlbWFpbmRlciBvZiB0aGUga2luZCBpZCwgZS5nLiwgQXRvbWljIEFzc2lnbWVudA0KICAgICAgICAgICAgY29uc3QgaW50IEtJTkQyID0gNjsNCg0KICAgICAgICAgICAgLy8gV2hlbiBLSU5EMSA9PSAiQ2FsbCIgdGhlIDZ0aCBhbmQgN3RoIHNsb3RzIGFyZToNCiAgICAgICAgICAgIGNvbnN0IGludCBDQUxMRVIgPSA2Ow0KICAgICAgICAgICAgY29uc3QgaW50IENBTExFRSA9IDc7DQoNCiAgICAgICAgICAgIGludCBzdGVwOw0KDQogICAgICAgICAgICBzdHJpbmdbXSB0b2tlbnMgPSBsb2dGaWxlTGluZS5TcGxpdCgnICcpOw0KDQogICAgICAgICAgICBpZiAoaW50LlRyeVBhcnNlKHRva2Vuc1tTVEVQXSwgb3V0IHN0ZXApKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIC8vIElmIHdlIGZpbmQgYSBudW1lcmljIHZhbHVlIGFzIHRoZSBmaXJzdCB0b2tlbiwNCiAgICAgICAgICAgICAgICAvLyB0aGlzIGlzIGEgZ2VuZXJhbCBzdGVwLg0KDQogICAgICAgICAgICAgICAgVXJpIHVyaSA9IG51bGw7DQogICAgICAgICAgICAgICAgc3RyaW5nIHVyaVRleHQgPSB0b2tlbnNbVVJJXS5UcmltKCciJyk7DQoNCiAgICAgICAgICAgICAgICBpZiAoIXVyaVRleHQuRXF1YWxzKCI/IiwgU3RyaW5nQ29tcGFyaXNvbi5PcmRpbmFsKSkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIGlmIChGaWxlLkV4aXN0cyh1cmlUZXh0KSkNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgdXJpVGV4dCA9IFBhdGguR2V0RnVsbFBhdGgodXJpVGV4dCk7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgdXJpID0gbmV3IFVyaSh1cmlUZXh0LCBVcmlLaW5kLlJlbGF0aXZlT3JBYnNvbHV0ZSk7DQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgLy8gV2UgYXNzdW1lIGEgdmFsaWQgbGluZSBoZXJlLiBUaGlzIGNvZGUgd2lsbCB0aHJvdyBpZiBub3QuDQogICAgICAgICAgICAgICAgaW50IGxpbmUgPSBpbnQuUGFyc2UodG9rZW5zW0xJTkVdKTsNCg0KICAgICAgICAgICAgICAgIHN0cmluZyBzZHZLaW5kID0gdG9rZW5zW0tJTkQxXTsNCg0KICAgICAgICAgICAgICAgIGlmIChzZHZLaW5kLkVxdWFscygiQXRvbWljIiwgU3RyaW5nQ29tcGFyaXNvbi5PcmRpbmFsKSkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIC8vIEZvciBtdWx0aXBhcnQgU0RWIGtpbmRzICdBdG9taWMgWFhYJywgd2UgDQogICAgICAgICAgICAgICAgICAgIC8vIG1hcCB1c2luZyB0aGUgc2Vjb25kIHZhbHVlIG9ubHksIGUuZywgDQogICAgICAgICAgICAgICAgICAgIC8vICdBc3NpZ25tZW50JyBvciAnQ29uZGl0aW9uYWwnDQogICAgICAgICAgICAgICAgICAgIHNkdktpbmQgPSB0b2tlbnNbS0lORDJdOw0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgIHNkdktpbmQgPSBzZHZLaW5kLlRyaW0oKTsNCg0KICAgICAgICAgICAgICAgIHZhciB0aHJlYWRGbG93TG9jYXRpb24gPSBuZXcgVGhyZWFkRmxvd0xvY2F0aW9uDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBTdGVwID0gc3RlcCArIDEsDQogICAgICAgICAgICAgICAgICAgIEltcG9ydGFuY2UgPSBUaHJlYWRGbG93TG9jYXRpb25JbXBvcnRhbmNlLlVuaW1wb3J0YW50LA0KICAgICAgICAgICAgICAgICAgICBMb2NhdGlvbiA9IG5ldyBMb2NhdGlvbg0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICBNZXNzYWdlID0gbmV3IE1lc3NhZ2UoKQ0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfTsNCg0KICAgICAgICAgICAgICAgIGlmICh1cmkgIT0gbnVsbCkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIHRocmVhZEZsb3dMb2NhdGlvbi5Mb2NhdGlvbi5QaHlzaWNhbExvY2F0aW9uID0gbmV3IFBoeXNpY2FsTG9jYXRpb24NCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgRmlsZUxvY2F0aW9uID0gbmV3IEZpbGVMb2NhdGlvbg0KICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVyaSA9IHVyaQ0KICAgICAgICAgICAgICAgICAgICAgICAgfSwNCiAgICAgICAgICAgICAgICAgICAgICAgIFJlZ2lvbiA9IG5ldyBSZWdpb24NCiAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdGFydExpbmUgPSBsaW5lDQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIH07DQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgaWYgKHNkdktpbmQgPT0gIkNhbGwiKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgc3RyaW5nIGV4dHJhTXNnID0gJCJ7dG9rZW5zW0tJTkQxXX0ge3Rva2Vuc1tDQUxMRVJdfSB7dG9rZW5zW0NBTExFRV19IjsNCg0KICAgICAgICAgICAgICAgICAgICBzdHJpbmcgY2FsbGVyLCBjYWxsZWU7DQoNCiAgICAgICAgICAgICAgICAgICAgaWYgKEV4dHJhY3RDYWxsZXJBbmRDYWxsZWUoZXh0cmFNc2cuVHJpbSgpLCBvdXQgY2FsbGVyLCBvdXQgY2FsbGVlKSkNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgdGhyZWFkRmxvd0xvY2F0aW9uLkxvY2F0aW9uLkZ1bGx5UXVhbGlmaWVkTG9naWNhbE5hbWUgPSBjYWxsZXI7DQogICAgICAgICAgICAgICAgICAgICAgICB0aHJlYWRGbG93TG9jYXRpb24uTG9jYXRpb24uTWVzc2FnZS5UZXh0ID0gY2FsbGVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgdGhyZWFkRmxvd0xvY2F0aW9uLlNldFByb3BlcnR5KCJ0YXJnZXQiLCBjYWxsZWUpOw0KICAgICAgICAgICAgICAgICAgICAgICAgX2NhbGxlcnMuUHVzaChjYWxsZXIpOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGVsc2UNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgRGVidWcuQXNzZXJ0KGZhbHNlKTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgICAgIHRocmVhZEZsb3dMb2NhdGlvbi5OZXN0aW5nTGV2ZWwgPSBuZXN0aW5nTGV2ZWwrKzsNCg0KICAgICAgICAgICAgICAgICAgICBpZiAodXJpID09IG51bGwpDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRocmVhZEZsb3dMb2NhdGlvbi5JbXBvcnRhbmNlID0gVGhyZWFkRmxvd0xvY2F0aW9uSW1wb3J0YW5jZS5VbmltcG9ydGFudDsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBlbHNlIGlmIChJc0hhcm5lc3NPclJ1bGVzRmlsZXModXJpVGV4dCkpDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRocmVhZEZsb3dMb2NhdGlvbi5JbXBvcnRhbmNlID0gVGhyZWFkRmxvd0xvY2F0aW9uSW1wb3J0YW5jZS5JbXBvcnRhbnQ7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgZWxzZQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICB0aHJlYWRGbG93TG9jYXRpb24uSW1wb3J0YW5jZSA9IFRocmVhZEZsb3dMb2NhdGlvbkltcG9ydGFuY2UuRXNzZW50aWFsOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGVsc2UgaWYgKHNkdktpbmQgPT0gIlJldHVybiIpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBEZWJ1Zy5Bc3NlcnQoX2NhbGxlcnMuQ291bnQgPiAwKTsNCg0KICAgICAgICAgICAgICAgICAgICB0aHJlYWRGbG93TG9jYXRpb24uTmVzdGluZ0xldmVsID0gbmVzdGluZ0xldmVsLS07DQogICAgICAgICAgICAgICAgICAgIHRocmVhZEZsb3dMb2NhdGlvbi5Mb2NhdGlvbi5GdWxseVF1YWxpZmllZExvZ2ljYWxOYW1lID0gX2NhbGxlcnMuUG9wKCk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGVsc2UNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIHRocmVhZEZsb3dMb2NhdGlvbi5OZXN0aW5nTGV2ZWwgPSBuZXN0aW5nTGV2ZWw7DQogICAgICAgICAgICAgICAgICAgIHRocmVhZEZsb3dMb2NhdGlvbi5Mb2NhdGlvbi5NZXNzYWdlLlRleHQgPSBzZHZLaW5kOw0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgIHN0cmluZyBzZXBhcmF0b3JUZXh0ID0gIl49PT09QXV0bz09PT09IjsNCiAgICAgICAgICAgICAgICBzdHJpbmcgc3RhdGUgPSB0b2tlbnNbU1RBVEVdOw0KICAgICAgICAgICAgICAgIHN0cmluZ1tdIHN0YXRlVG9rZW5zID0gc3RhdGUuU3BsaXQobmV3IHN0cmluZ1tdIHsgc2VwYXJhdG9yVGV4dCB9LCBTdHJpbmdTcGxpdE9wdGlvbnMuUmVtb3ZlRW1wdHlFbnRyaWVzKTsNCg0KICAgICAgICAgICAgICAgIGlmIChzdGF0ZVRva2Vucy5MZW5ndGggPiAwKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgaWYgKHN0YXRlVG9rZW5zLkxlbmd0aCA9PSAyKQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICB0aHJlYWRGbG93TG9jYXRpb24uU2V0UHJvcGVydHkoImN1cnJlbnREYXRhVmFsdWVzIiwgc3RhdGVUb2tlbnNbMF0pOw0KICAgICAgICAgICAgICAgICAgICAgICAgdGhyZWFkRmxvd0xvY2F0aW9uLlNldFByb3BlcnR5KCJwZXJtYW5lbnREYXRhVmFsdWVzIiwgc3RhdGVUb2tlbnNbMV0pOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGVsc2UNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgRGVidWcuQXNzZXJ0KHN0YXRlVG9rZW5zLkxlbmd0aCA9PSAxKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzdGF0ZVRva2Vuc1swXS5TdGFydHNXaXRoKHNlcGFyYXRvclRleHQpKQ0KICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocmVhZEZsb3dMb2NhdGlvbi5TZXRQcm9wZXJ0eSgicGVybWFuZW50RGF0YVZhbHVlcyIsIHN0YXRlVG9rZW5zWzBdKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UNCiAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJlYWRGbG93TG9jYXRpb24uU2V0UHJvcGVydHkoImN1cnJlbnREYXRhVmFsdWVzIiwgc3RhdGVUb2tlbnNbMF0pOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgY29kZUZsb3cuVGhyZWFkRmxvd3NbMF0uTG9jYXRpb25zLkFkZCh0aHJlYWRGbG93TG9jYXRpb24pOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZWxzZQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIC8vIFRoaXMgaXMgdGhlIGRlZmVjdCBtZXNzYWdlLg0KICAgICAgICAgICAgICAgIGNvbnN0IGludCBMRVZFTCAgPSAwOw0KDQogICAgICAgICAgICAgICAgc3RyaW5nIGxldmVsVGV4dCA9IHRva2Vuc1tMRVZFTF07DQoNCiAgICAgICAgICAgICAgICByZXN1bHQuTGV2ZWwgPSBDb252ZXJ0VG9SZXN1bHRMZXZlbChsZXZlbFRleHQpOw0KDQogICAgICAgICAgICAgICAgLy8gRXZlcnl0aGluZyBvbiB0aGUgbGluZSBmb2xsb3dpbmcgZGVmZWN0IGxldmVsIGNvbXByaXNlcyB0aGUgbWVzc2FnZQ0KICAgICAgICAgICAgICAgIHJlc3VsdC5NZXNzYWdlID0gbmV3IE1lc3NhZ2UgeyBUZXh0ID0gbG9nRmlsZUxpbmUuU3Vic3RyaW5nKGxldmVsVGV4dC5MZW5ndGgpLlRyaW0oKSB9Ow0KDQogICAgICAgICAgICAgICAgLy8gU0RWIGN1cnJlbnRseSBwcm9kdWNlcyAncGFzcycgbm90aWZpY2F0aW9ucyB3aGVuIA0KICAgICAgICAgICAgICAgIC8vIHRoZSBmaW5hbCBsaW5lIGlzIHByZWZpeGVkIHdpdGggJ0Vycm9yJy4gV2UnbGwgZXhhbWluZQ0KICAgICAgICAgICAgICAgIC8vIHRoZSBtZXNzYWdlIHRleHQgdG8gZGV0ZWN0IHRoaXMgY29uZGl0aW9uDQogICAgICAgICAgICAgICAgaWYgKHJlc3VsdC5NZXNzYWdlLlRleHQuQ29udGFpbnMoImlzIHNhdGlzZmllZCIpKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgcmVzdWx0LkxldmVsID0gUmVzdWx0TGV2ZWwuUGFzczsNCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAvLyBGaW5hbGx5LCBwb3B1bGF0ZSB0aGlzIHJlc3VsdCBsb2NhdGlvbiB3aXRoIHRoZQ0KICAgICAgICAgICAgICAgIC8vIGxhc3Qgb2JzZXJ2ZWQgbG9jYXRpb24gaW4gdGhlIGNvZGUgZmxvdy4NCg0KICAgICAgICAgICAgICAgIElMaXN0PFRocmVhZEZsb3dMb2NhdGlvbj4gbG9jYXRpb25zID0gcmVzdWx0LkNvZGVGbG93c1swXS5UaHJlYWRGbG93c1swXS5Mb2NhdGlvbnM7DQoNCiAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gbG9jYXRpb25zLkNvdW50IC0gMTsgaSA+PSAwOyAtLWkpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBpZiAobG9jYXRpb25zW2ldLkxvY2F0aW9uPy5QaHlzaWNhbExvY2F0aW9uICE9IG51bGwpDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5Mb2NhdGlvbnMuQWRkKG5ldyBMb2NhdGlvbg0KICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBoeXNpY2FsTG9jYXRpb24gPSBsb2NhdGlvbnNbaV0uTG9jYXRpb24uUGh5c2ljYWxMb2NhdGlvbg0KICAgICAgICAgICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgIHByaXZhdGUgYm9vbCBJc0hhcm5lc3NPclJ1bGVzRmlsZXMoc3RyaW5nIGZpbGVOYW1lKQ0KICAgICAgICB7DQogICAgICAgICAgICByZXR1cm4gZmlsZU5hbWUuRW5kc1dpdGgoIi5zbGljIiwgU3RyaW5nQ29tcGFyaXNvbi5PcmRpbmFsSWdub3JlQ2FzZSkNCiAgICAgICAgICAgICAgICB8fCBmaWxlTmFtZS5FbmRzV2l0aCgic2R2LWhhcm5lc3MuYyIsIFN0cmluZ0NvbXBhcmlzb24uT3JkaW5hbElnbm9yZUNhc2UpOw0KICAgICAgICB9DQoNCiAgICAgICAgcHJpdmF0ZSBzdGF0aWMgUmVnZXggc19jYWxsUmVnZXggPSBuZXcgUmVnZXgoQCJDYWxsICIiKC4qKSIiICIiKC4qKSIiIiwgUmVnZXhPcHRpb25zLkNvbXBpbGVkKTsNCg0KICAgICAgICBwcml2YXRlIHN0YXRpYyBib29sIEV4dHJhY3RDYWxsZXJBbmRDYWxsZWUoc3RyaW5nIHRleHQsIG91dCBzdHJpbmcgY2FsbGVyLCBvdXQgc3RyaW5nIGNhbGxlZSkNCiAgICAgICAgew0KICAgICAgICAgICAgY2FsbGVyID0gY2FsbGVlID0gbnVsbDsNCg0KICAgICAgICAgICAgdmFyIG1hdGNoID0gc19jYWxsUmVnZXguTWF0Y2godGV4dCk7DQogICAgICAgICAgICBpZiAobWF0Y2guU3VjY2VzcyAmJiBtYXRjaC5Hcm91cHMuQ291bnQgPT0gMykNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBjYWxsZXIgPSBtYXRjaC5Hcm91cHNbMV0uVmFsdWU7DQogICAgICAgICAgICAgICAgY2FsbGVlID0gbWF0Y2guR3JvdXBzWzJdLlZhbHVlOw0KICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICB9DQoNCiAgICAgICAgcHJpdmF0ZSBzdGF0aWMgUmVzdWx0TGV2ZWwgQ29udmVydFRvUmVzdWx0TGV2ZWwoc3RyaW5nIHNkdkxldmVsKQ0KICAgICAgICB7DQogICAgICAgICAgICBzd2l0Y2ggKHNkdkxldmVsKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIGNhc2UgIkVycm9yIjogcmV0dXJuIFJlc3VsdExldmVsLkVycm9yOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBEZWJ1Zy5Bc3NlcnQoZmFsc2UpOw0KICAgICAgICAgICAgcmV0dXJuIFJlc3VsdExldmVsLkRlZmF1bHQ7DQogICAgICAgIH0NCiAgICB9DQp9DQo=" + { + "ruleId": "CA1704", + "message": { + "text": "Correct the spelling of 'Sarif' in namespace name 'Microsoft.CodeAnalysis.Sarif.Driver'.", + "id": "Namespace" }, - "hashes": [ + "locations": [ { - "value": "D6D89AA234FFCBB46CBE31C8C9836D46", - "algorithm": "md5" - }, - { - "value": "E4BCB9BCA823E6B9B555FC432DCFBB4CECFF7B2F", - "algorithm": "sha-1" - }, - { - "value": "8DF3EEE7F972C59A8733FD8B50AAEAD749003AB68969B9FA79158206C5810CC4", - "algorithm": "sha-256" + "logicalLocations": [ + { + "index": 7, + "fullyQualifiedName": "Microsoft.CodeAnalysis.Sarif.Driver" + } + ] } - ] + ], + "partialFingerprints": { + "UniqueId": "Sarif#Namespace" + }, + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" + } }, - "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/ToolFileConverterBase.cs": { - "mimeType": "text/x-csharp", - "contents": { - "binary": "77u/Ly8gQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuDQovLyBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UuIFNlZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHByb2plY3Qgcm9vdCBmb3IgZnVsbCBsaWNlbnNlIGluZm9ybWF0aW9uLg0KDQp1c2luZyBTeXN0ZW07DQp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsNCnVzaW5nIFN5c3RlbS5HbG9iYWxpemF0aW9uOw0KdXNpbmcgU3lzdGVtLklPOw0KDQpuYW1lc3BhY2UgTWljcm9zb2Z0LkNvZGVBbmFseXNpcy5TYXJpZi5Db252ZXJ0ZXJzDQp7DQogICAgLy8vIDxzdW1tYXJ5Pg0KICAgIC8vLyBCYXNlIGNsYXNzIGZvciB0b29sIGZpbGUgY29udmVydGVycy4gRW5jYXBzdWxhdGVzIHRoZSBjb21tb24gbG9naWMNCiAgICAvLy8gZm9yIHBvcHVsYXRpbmcgdGhlIGxvZ2ljYWxMb2NhdGlvbnMgZGljdGlvbmFyeS4NCiAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgIHB1YmxpYyBhYnN0cmFjdCBjbGFzcyBUb29sRmlsZUNvbnZlcnRlckJhc2UNCiAgICB7DQogICAgICAgIHByb3RlY3RlZCBUb29sRmlsZUNvbnZlcnRlckJhc2UoKQ0KICAgICAgICB7DQogICAgICAgICAgICBMb2dpY2FsTG9jYXRpb25zRGljdGlvbmFyeSA9IG5ldyBEaWN0aW9uYXJ5PHN0cmluZywgTG9naWNhbExvY2F0aW9uPigpOw0KICAgICAgICB9DQoNCiAgICAgICAgcHVibGljIGFic3RyYWN0IHZvaWQgQ29udmVydChTdHJlYW0gaW5wdXQsIElSZXN1bHRMb2dXcml0ZXIgb3V0cHV0LCBPcHRpb25hbGx5RW1pdHRlZERhdGEgZGF0YVRvSW5zZXJ0KTsNCg0KICAgICAgICAvLyBpbnRlcm5hbCBhcyB3ZWxsIGFzIHByb3RlY3RlZCBpdCBjYW4gYmUgZXhlcmNpc2VkIGJ5IHVuaXQgdGVzdHMuDQogICAgICAgIHByb3RlY3RlZCBpbnRlcm5hbCBJRGljdGlvbmFyeTxzdHJpbmcsIExvZ2ljYWxMb2NhdGlvbj4gTG9naWNhbExvY2F0aW9uc0RpY3Rpb25hcnkgeyBnZXQ7IHByaXZhdGUgc2V0OyAgfQ0KDQogICAgICAgIHByb3RlY3RlZCBpbnRlcm5hbCBzdHJpbmcgQWRkTG9naWNhbExvY2F0aW9uKExvZ2ljYWxMb2NhdGlvbiBsb2dpY2FsTG9jYXRpb24pDQogICAgICAgIHsNCiAgICAgICAgICAgIHJldHVybiBBZGRMb2dpY2FsTG9jYXRpb24obG9naWNhbExvY2F0aW9uLCBkZWxpbWl0ZXI6ICIuIik7DQogICAgICAgIH0NCg0KICAgICAgICAvLyBpbnRlcm5hbCBhcyB3ZWxsIGFzIHByb3RlY3RlZCBpdCBjYW4gYmUgZXhlcmNpc2VkIGJ5IHVuaXQgdGVzdHMuDQogICAgICAgIHByb3RlY3RlZCBpbnRlcm5hbCBzdHJpbmcgQWRkTG9naWNhbExvY2F0aW9uKExvZ2ljYWxMb2NhdGlvbiBsb2dpY2FsTG9jYXRpb24sIHN0cmluZyBkZWxpbWl0ZXIpDQogICAgICAgIHsNCiAgICAgICAgICAgIGlmIChsb2dpY2FsTG9jYXRpb24gPT0gbnVsbCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgQXJndW1lbnROdWxsRXhjZXB0aW9uKG5hbWVvZihsb2dpY2FsTG9jYXRpb24pKTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgaW50IGRpc2FtYmlndWF0b3IgPSAwOw0KDQogICAgICAgICAgICBzdHJpbmcgZnVsbHlRdWFsaWZpZWRMb2dpY2FsTmFtZSA9IGxvZ2ljYWxMb2NhdGlvbi5QYXJlbnRLZXkgPT0gbnVsbCA/DQogICAgICAgICAgICAgICAgbG9naWNhbExvY2F0aW9uLk5hbWUgOiANCiAgICAgICAgICAgICAgICBsb2dpY2FsTG9jYXRpb24uUGFyZW50S2V5ICsgZGVsaW1pdGVyICsgbG9naWNhbExvY2F0aW9uLk5hbWU7DQogICAgICAgICAgICBzdHJpbmcgZ2VuZXJhdGVkS2V5ID0gZnVsbHlRdWFsaWZpZWRMb2dpY2FsTmFtZTsNCg0KICAgICAgICAgICAgbG9naWNhbExvY2F0aW9uLk5hbWUgPSBHZXRMb2dpY2FsTG9jYXRpb25OYW1lKGxvZ2ljYWxMb2NhdGlvbi5QYXJlbnRLZXksIGZ1bGx5UXVhbGlmaWVkTG9naWNhbE5hbWUsIGRlbGltaXRlcik7DQogICAgICAgICAgICBsb2dpY2FsTG9jYXRpb24uRnVsbHlRdWFsaWZpZWROYW1lID0gZnVsbHlRdWFsaWZpZWRMb2dpY2FsTmFtZTsNCg0KICAgICAgICAgICAgd2hpbGUgKExvZ2ljYWxMb2NhdGlvbnNEaWN0aW9uYXJ5LkNvbnRhaW5zS2V5KGdlbmVyYXRlZEtleSkpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgTG9naWNhbExvY2F0aW9uIGxvZ0xvYyA9IExvZ2ljYWxMb2NhdGlvbnNEaWN0aW9uYXJ5W2dlbmVyYXRlZEtleV0uRGVlcENsb25lKCk7DQogICAgICAgICAgICAgICAgbG9nTG9jLk5hbWUgPSBHZXRMb2dpY2FsTG9jYXRpb25OYW1lKGxvZ0xvYy5QYXJlbnRLZXksIGZ1bGx5UXVhbGlmaWVkTG9naWNhbE5hbWUsIGRlbGltaXRlcik7DQogICAgICAgICAgICAgICAgbG9nTG9jLkZ1bGx5UXVhbGlmaWVkTmFtZSA9IGZ1bGx5UXVhbGlmaWVkTG9naWNhbE5hbWU7DQoNCiAgICAgICAgICAgICAgICBpZiAobG9naWNhbExvY2F0aW9uLlZhbHVlRXF1YWxzKGxvZ0xvYykpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICBnZW5lcmF0ZWRLZXkgPSBmdWxseVF1YWxpZmllZExvZ2ljYWxOYW1lICsgIi0iICsgZGlzYW1iaWd1YXRvci5Ub1N0cmluZyhDdWx0dXJlSW5mby5JbnZhcmlhbnRDdWx0dXJlKTsNCiAgICAgICAgICAgICAgICArK2Rpc2FtYmlndWF0b3I7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIGlmIChkaXNhbWJpZ3VhdG9yID09IDApDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgbG9naWNhbExvY2F0aW9uLkZ1bGx5UXVhbGlmaWVkTmFtZSA9IG51bGw7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIGlmIChsb2dpY2FsTG9jYXRpb24uTmFtZSA9PSBnZW5lcmF0ZWRLZXkpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgbG9naWNhbExvY2F0aW9uLk5hbWUgPSBudWxsOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBpZiAoIUxvZ2ljYWxMb2NhdGlvbnNEaWN0aW9uYXJ5LkNvbnRhaW5zS2V5KGdlbmVyYXRlZEtleSkpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgTG9naWNhbExvY2F0aW9uc0RpY3Rpb25hcnkuQWRkKGdlbmVyYXRlZEtleSwgbG9naWNhbExvY2F0aW9uKTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgcmV0dXJuIGdlbmVyYXRlZEtleTsNCiAgICAgICAgfQ0KDQogICAgICAgIGludGVybmFsIHN0YXRpYyBzdHJpbmcgR2V0TG9naWNhbExvY2F0aW9uTmFtZShzdHJpbmcgcGFyZW50S2V5LCBzdHJpbmcgZnVsbHlRdWFsaWZpZWRMb2dpY2FsTmFtZSwgc3RyaW5nIGRlbGltaXRlcikNCiAgICAgICAgew0KICAgICAgICAgICAgc3RyaW5nIGxvZ2ljYWxOYW1lID0gbnVsbDsNCiAgICAgICAgICAgIGludCBpbmRleDsNCg0KICAgICAgICAgICAgaWYgKHBhcmVudEtleSA9PSBudWxsKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIGluZGV4ID0gIXN0cmluZy5Jc051bGxPcldoaXRlU3BhY2UoZGVsaW1pdGVyKSA/IGZ1bGx5UXVhbGlmaWVkTG9naWNhbE5hbWUuTGFzdEluZGV4T2YoZGVsaW1pdGVyKSA6IC0xOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZWxzZQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIGluZGV4ID0gcGFyZW50S2V5Lkxlbmd0aDsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgaWYgKGluZGV4ID09IC0xKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIC8vIEl0J3MgYSB0b3AtbGV2ZWwgbG9jYXRpb24NCiAgICAgICAgICAgICAgICBsb2dpY2FsTmFtZSA9IGZ1bGx5UXVhbGlmaWVkTG9naWNhbE5hbWU7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgLy8gR2V0IHRoZSByaWdodG1vc3Qgc2VnbWVudCBhcyB0aGUgbmFtZQ0KICAgICAgICAgICAgICAgIC8vIEV4YW1wbGU6IEZvbzo6QmFyIC0+IEJhciB3aGVyZSAnOjonIGlzIHRoZSBkZWxpbWl0ZXINCiAgICAgICAgICAgICAgICBpbnQgbGVuZ3RoID0gZGVsaW1pdGVyPy5MZW5ndGggPz8gMDsNCiAgICAgICAgICAgICAgICBsb2dpY2FsTmFtZSA9IGZ1bGx5UXVhbGlmaWVkTG9naWNhbE5hbWUuU3Vic3RyaW5nKGluZGV4ICsgbGVuZ3RoKTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgcmV0dXJuIGxvZ2ljYWxOYW1lOw0KICAgICAgICB9DQogICAgfQ0KfQ0K" + { + "ruleId": "CA1704", + "message": { + "text": "Correct the spelling of 'Multitool' in namespace name 'Microsoft.CodeAnalysis.Sarif.Multitool'.", + "id": "Namespace" }, - "hashes": [ - { - "value": "13839AB8E716FCF4C2D24DE865F542B4", - "algorithm": "md5" - }, - { - "value": "B6A28546DF71FC99D7914E3301888B6ED77A13B1", - "algorithm": "sha-1" - }, + "locations": [ { - "value": "D294F2DA137FAA94B5CB7339EE593A240E62507885E179A71B3C425C8BEC6F43", - "algorithm": "sha-256" + "logicalLocations": [ + { + "index": 8, + "fullyQualifiedName": "Microsoft.CodeAnalysis.Sarif.Multitool" + } + ] } - ] + ], + "partialFingerprints": { + "UniqueId": "Multitool#Namespace" + }, + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" + } }, - "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/ToolFormatConverter.cs": { - "mimeType": "text/x-csharp", - "contents": { - "binary": "77u/Ly8gQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuDQovLyBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UuIFNlZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHByb2plY3Qgcm9vdCBmb3IgZnVsbCBsaWNlbnNlIGluZm9ybWF0aW9uLg0KDQp1c2luZyBTeXN0ZW07DQp1c2luZyBTeXN0ZW0uSU87DQp1c2luZyBNaWNyb3NvZnQuQ29kZUFuYWx5c2lzLlNhcmlmLldyaXRlcnM7DQp1c2luZyBOZXd0b25zb2Z0Lkpzb247DQoNCm5hbWVzcGFjZSBNaWNyb3NvZnQuQ29kZUFuYWx5c2lzLlNhcmlmLkNvbnZlcnRlcnMNCnsNCiAgICAvLy8gPHN1bW1hcnk+DQogICAgLy8vIEEgY2xhc3MgdGhhdCBwcm92aWRlcyBoZWxwZXJzIGZvciBjb252ZXJ0aW5nIGEgbG9nIGZpbGUgcHJvZHVjZWQgYnkgDQogICAgLy8vIG9uZSBvZiBhIHdlbGwta25vd24gc2V0IG9mIHRvb2xzIHRvIHRoZSBTQVJJRiBmb3JtYXQuDQogICAgLy8vIDwvc3VtbWFyeT4NCiAgICBwdWJsaWMgY2xhc3MgVG9vbEZvcm1hdENvbnZlcnRlcg0KICAgIHsNCiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBBc3NlbWJseUxvYWRGaWxlRGVsZWdhdGUgYXNzZW1ibHlMb2FkRmlsZURlbGVnYXRlOw0KDQogICAgICAgIHB1YmxpYyBUb29sRm9ybWF0Q29udmVydGVyKEFzc2VtYmx5TG9hZEZpbGVEZWxlZ2F0ZSBhc3NlbWJseUxvYWRGaWxlRGVsZWdhdGUgPSBudWxsKQ0KICAgICAgICB7DQogICAgICAgICAgICB0aGlzLmFzc2VtYmx5TG9hZEZpbGVEZWxlZ2F0ZSA9IGFzc2VtYmx5TG9hZEZpbGVEZWxlZ2F0ZTsNCiAgICAgICAgfQ0KDQogICAgICAgIC8vLyA8c3VtbWFyeT5Db252ZXJ0cyBhIHRvb2wgbG9nIGZpbGUgaW50byB0aGUgU0FSSUYgZm9ybWF0Ljwvc3VtbWFyeT4NCiAgICAgICAgLy8vIDxleGNlcHRpb24gY3JlZj0iQXJndW1lbnROdWxsRXhjZXB0aW9uIj5UaHJvd24gd2hlbiBvbmUgb3IgbW9yZSByZXF1aXJlZCBhcmd1bWVudHMgYXJlIG51bGwuPC9leGNlcHRpb24+DQogICAgICAgIC8vLyA8ZXhjZXB0aW9uIGNyZWY9IkFyZ3VtZW50RXhjZXB0aW9uIj5UaHJvd24gd2hlbiBvbmUgb3IgbW9yZSBhcmd1bWVudHMgaGF2ZSB1bnN1cHBvcnRlZCBvcg0KICAgICAgICAvLy8gaWxsZWdhbCB2YWx1ZXMuPC9leGNlcHRpb24+DQogICAgICAgIC8vLyA8ZXhjZXB0aW9uIGNyZWY9IkludmFsaWRPcGVyYXRpb25FeGNlcHRpb24iPlRocm93biB3aGVuIHRoZSByZXF1ZXN0ZWQgb3BlcmF0aW9uIGlzIGludmFsaWQuPC9leGNlcHRpb24+DQogICAgICAgIC8vLyA8cGFyYW0gbmFtZT0idG9vbEZvcm1hdCI+VGhlIHRvb2wgZm9ybWF0IG9mIHRoZSBpbnB1dCBmaWxlLjwvcGFyYW0+DQogICAgICAgIC8vLyA8cGFyYW0gbmFtZT0iaW5wdXRGaWxlTmFtZSI+VGhlIGlucHV0IGxvZyBmaWxlIG5hbWUuPC9wYXJhbT4NCiAgICAgICAgLy8vIDxwYXJhbSBuYW1lPSJvdXRwdXRGaWxlTmFtZSI+VGhlIG5hbWUgb2YgdGhlIGZpbGUgdG8gd2hpY2ggdGhlIHJlc3VsdGluZyBTQVJJRiBsb2cgc2hhbGwgYmUNCiAgICAgICAgLy8vIHdyaXR0ZW4uIFRoaXMgY2Fubm90IGJlIGEgZGlyZWN0b3J5LjwvcGFyYW0+DQogICAgICAgIC8vLyA8cGFyYW0gbmFtZT0iY29udmVyc2lvbk9wdGlvbnMiPk9wdGlvbnMgZm9yIGNvbnRyb2xsaW5nIHRoZSBjb252ZXJzaW9uLjwvcGFyYW0+DQogICAgICAgIC8vLyA8cGFyYW0gbmFtZT0icGx1Z2luQXNzZW1ibHlQYXRoIj5QYXRoIHRvIHBsdWdpbiBhc3NlbWJseSBjb250YWluaW5nIGNvbnZlcnRlciB0eXBlcy48L3BhcmFtPg0KICAgICAgICBwdWJsaWMgdm9pZCBDb252ZXJ0VG9TdGFuZGFyZEZvcm1hdCgNCiAgICAgICAgICAgIHN0cmluZyB0b29sRm9ybWF0LA0KICAgICAgICAgICAgc3RyaW5nIGlucHV0RmlsZU5hbWUsDQogICAgICAgICAgICBzdHJpbmcgb3V0cHV0RmlsZU5hbWUsDQogICAgICAgICAgICBMb2dnaW5nT3B0aW9ucyBsb2dnaW5nT3B0aW9ucyA9IExvZ2dpbmdPcHRpb25zLk5vbmUsDQogICAgICAgICAgICBPcHRpb25hbGx5RW1pdHRlZERhdGEgZGF0YVRvSW5zZXJ0ID0gT3B0aW9uYWxseUVtaXR0ZWREYXRhLk5vbmUsDQogICAgICAgICAgICBzdHJpbmcgcGx1Z2luQXNzZW1ibHlQYXRoID0gbnVsbCkNCiAgICAgICAgew0KICAgICAgICAgICAgaWYgKGlucHV0RmlsZU5hbWUgPT0gbnVsbCkgeyB0aHJvdyBuZXcgQXJndW1lbnROdWxsRXhjZXB0aW9uKG5hbWVvZihpbnB1dEZpbGVOYW1lKSk7IH0NCiAgICAgICAgICAgIGlmIChvdXRwdXRGaWxlTmFtZSA9PSBudWxsKSB7IHRocm93IG5ldyBBcmd1bWVudE51bGxFeGNlcHRpb24obmFtZW9mKG91dHB1dEZpbGVOYW1lKSk7IH0NCg0KICAgICAgICAgICAgaWYgKERpcmVjdG9yeS5FeGlzdHMob3V0cHV0RmlsZU5hbWUpKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHRocm93IG5ldyBBcmd1bWVudEV4Y2VwdGlvbigiU3BlY2lmaWVkIGZpbGUgb3V0cHV0IHBhdGggZXhpc3RzIGJ1dCBpcyBhIGRpcmVjdG9yeS4iLCBuYW1lb2Yob3V0cHV0RmlsZU5hbWUpKTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgaWYgKCFsb2dnaW5nT3B0aW9ucy5JbmNsdWRlcyhMb2dnaW5nT3B0aW9ucy5PdmVyd3JpdGVFeGlzdGluZ091dHB1dEZpbGUpICYmIEZpbGUuRXhpc3RzKG91dHB1dEZpbGVOYW1lKSkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSW52YWxpZE9wZXJhdGlvbkV4Y2VwdGlvbigiT3V0cHV0IGZpbGUgYWxyZWFkeSBleGlzdHMgYW5kIG9wdGlvbiB0byBvdmVyd3JpdGUgd2FzIG5vdCBzcGVjaWZpZWQuIik7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIC8vIEZpbGVNb2RlIHNldHRpbmdzIGhlcmUgd2lsbCByZXN1bHRzIGluIGFuIGV4Y2VwdGlvbiBiZWluZyByYWlzZWQgaWYgdGhlIGlucHV0IA0KICAgICAgICAgICAgLy8gZmlsZSBkb2VzIG5vdCBleGlzdCwgYW5kIHRoYXQgYW4gZXhpc3Rpbmcgb3V0cHV0IGZpbGUgd2lsbCBiZSBvdmVyd3JpdHRlbg0KICAgICAgICAgICAgdXNpbmcgKHZhciBpbnB1dCA9IEZpbGUuT3BlblJlYWQoaW5wdXRGaWxlTmFtZSkpDQogICAgICAgICAgICB1c2luZyAodmFyIG91dHB1dFRleHRTdHJlYW0gPSBGaWxlLkNyZWF0ZShvdXRwdXRGaWxlTmFtZSkpDQogICAgICAgICAgICB1c2luZyAodmFyIG91dHB1dFRleHRXcml0ZXIgPSBuZXcgU3RyZWFtV3JpdGVyKG91dHB1dFRleHRTdHJlYW0pKQ0KICAgICAgICAgICAgdXNpbmcgKHZhciBvdXRwdXRKc29uID0gbmV3IEpzb25UZXh0V3JpdGVyKG91dHB1dFRleHRXcml0ZXIpKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIGlmIChsb2dnaW5nT3B0aW9ucy5JbmNsdWRlcyhMb2dnaW5nT3B0aW9ucy5QcmV0dHlQcmludCkpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBvdXRwdXRKc29uLkZvcm1hdHRpbmcgPSBGb3JtYXR0aW5nLkluZGVudGVkOw0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgIHVzaW5nICh2YXIgb3V0cHV0ID0gbmV3IFJlc3VsdExvZ0pzb25Xcml0ZXIob3V0cHV0SnNvbikpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBDb252ZXJ0VG9TdGFuZGFyZEZvcm1hdCh0b29sRm9ybWF0LCBpbnB1dCwgb3V0cHV0LCBkYXRhVG9JbnNlcnQsIHBsdWdpbkFzc2VtYmx5UGF0aCk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQoNCg0KICAgICAgICAvLy8gPHN1bW1hcnk+Q29udmVydHMgYSB0b29sIGxvZyBmaWxlIHJlcHJlc2VudGVkIGFzIGEgc3RyZWFtIGludG8gdGhlIFNBUklGIGZvcm1hdC48L3N1bW1hcnk+DQogICAgICAgIC8vLyA8ZXhjZXB0aW9uIGNyZWY9IkFyZ3VtZW50TnVsbEV4Y2VwdGlvbiI+VGhyb3duIHdoZW4gb25lIG9yIG1vcmUgcmVxdWlyZWQgYXJndW1lbnRzIGFyZSBudWxsLjwvZXhjZXB0aW9uPg0KICAgICAgICAvLy8gPGV4Y2VwdGlvbiBjcmVmPSJBcmd1bWVudEV4Y2VwdGlvbiI+VGhyb3duIHdoZW4gb25lIG9yIG1vcmUgYXJndW1lbnRzIGhhdmUgdW5zdXBwb3J0ZWQgb3INCiAgICAgICAgLy8vIGlsbGVnYWwgdmFsdWVzLjwvZXhjZXB0aW9uPg0KICAgICAgICAvLy8gPHBhcmFtIG5hbWU9InRvb2xGb3JtYXQiPlRoZSB0b29sIGZvcm1hdCBvZiB0aGUgaW5wdXQgZmlsZS48L3BhcmFtPg0KICAgICAgICAvLy8gPHBhcmFtIG5hbWU9ImlucHV0U3RyZWFtIj5BIHN0cmVhbSB0aGF0IGNvbnRhaW5zIHRvb2wgbG9nIGNvbnRlbnRzLjwvcGFyYW0+DQogICAgICAgIC8vLyA8cGFyYW0gbmFtZT0ib3V0cHV0U3RyZWFtIj5BIHN0cmVhbSB0byB3aGljaCB0aGUgY29udmVydGVkIG91dHB1dCBzaG91bGQgYmUgd3JpdHRlbi48L3BhcmFtPg0KICAgICAgICAvLy8gPHBhcmFtIG5hbWU9InBsdWdpbkFzc2VtYmx5UGF0aCI+UGF0aCB0byBwbHVnaW4gYXNzZW1ibHkgY29udGFpbmluZyBjb252ZXJ0ZXIgdHlwZXMuPC9wYXJhbT4NCiAgICAgICAgcHVibGljIHZvaWQgQ29udmVydFRvU3RhbmRhcmRGb3JtYXQoDQogICAgICAgICAgICBzdHJpbmcgdG9vbEZvcm1hdCwNCiAgICAgICAgICAgIFN0cmVhbSBpbnB1dFN0cmVhbSwNCiAgICAgICAgICAgIElSZXN1bHRMb2dXcml0ZXIgb3V0cHV0U3RyZWFtLA0KICAgICAgICAgICAgT3B0aW9uYWxseUVtaXR0ZWREYXRhIGRhdGFUb0luc2VydCA9IE9wdGlvbmFsbHlFbWl0dGVkRGF0YS5Ob25lLA0KICAgICAgICAgICAgc3RyaW5nIHBsdWdpbkFzc2VtYmx5UGF0aCA9IG51bGwpDQogICAgICAgIHsNCiAgICAgICAgICAgIGlmIChpbnB1dFN0cmVhbSA9PSBudWxsKSB7IHRocm93IG5ldyBBcmd1bWVudE51bGxFeGNlcHRpb24obmFtZW9mKGlucHV0U3RyZWFtKSk7IH0NCiAgICAgICAgICAgIGlmIChvdXRwdXRTdHJlYW0gPT0gbnVsbCkgeyB0aHJvdyBuZXcgQXJndW1lbnROdWxsRXhjZXB0aW9uKG5hbWVvZihvdXRwdXRTdHJlYW0pKTsgfQ0KDQogICAgICAgICAgICBDb252ZXJ0ZXJGYWN0b3J5IGZhY3RvcnkgPSBDcmVhdGVDb252ZXJ0ZXJGYWN0b3J5KHBsdWdpbkFzc2VtYmx5UGF0aCk7DQoNCiAgICAgICAgICAgIFRvb2xGaWxlQ29udmVydGVyQmFzZSBjb252ZXJ0ZXIgPSBmYWN0b3J5LkNyZWF0ZUNvbnZlcnRlcih0b29sRm9ybWF0KTsNCiAgICAgICAgICAgIGlmIChjb252ZXJ0ZXIgIT0gbnVsbCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBjb252ZXJ0ZXIuQ29udmVydChpbnB1dFN0cmVhbSwgb3V0cHV0U3RyZWFtLCBkYXRhVG9JbnNlcnQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZWxzZQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHRocm93IG5ldyBBcmd1bWVudEV4Y2VwdGlvbigiVW5yZWNvZ25pemVkIHRvb2wgc3BlY2lmaWVkOiAiICsgdG9vbEZvcm1hdCwgbmFtZW9mKHRvb2xGb3JtYXQpKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgIC8vIFNldCB1cCBhIENoYWluIG9mIFJlc3BvbnNpYmlsaXR5IHRoYXQgd2lsbCBnZXQgdGhlIGNvbnZlcnRlciBmcm9tIHRoZSBmaXJzdA0KICAgICAgICAvLyBmYWN0b3J5IGNhcGFibGUgb2YgY3JlYXRpbmcgaXQuDQogICAgICAgIC8vIFRoaXMgbWV0aG9kIGlzIGludGVybmFsLCByYXRoZXIgdGhhbiBwcml2YXRlLCBmb3IgdGVzdCBwdXJwb3Nlcy4NCiAgICAgICAgaW50ZXJuYWwgQ29udmVydGVyRmFjdG9yeSBDcmVhdGVDb252ZXJ0ZXJGYWN0b3J5KHN0cmluZyBwbHVnaW5Bc3NlbWJseVBhdGgpDQogICAgICAgIHsNCiAgICAgICAgICAgIENvbnZlcnRlckZhY3RvcnkgZmFjdG9yeSA9IG5ldyBCdWlsdEluQ29udmVydGVyRmFjdG9yeSgpOw0KICAgICAgICAgICAgaWYgKCFzdHJpbmcuSXNOdWxsT3JXaGl0ZVNwYWNlKHBsdWdpbkFzc2VtYmx5UGF0aCkpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgZmFjdG9yeSA9IG5ldyBQbHVnaW5Db252ZXJ0ZXJGYWN0b3J5KHBsdWdpbkFzc2VtYmx5UGF0aCwgdGhpcy5hc3NlbWJseUxvYWRGaWxlRGVsZWdhdGUpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBOZXh0ID0gZmFjdG9yeSwNCiAgICAgICAgICAgICAgICB9Ow0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICByZXR1cm4gZmFjdG9yeTsNCiAgICAgICAgfQ0KICAgIH0NCn0NCg==" + { + "ruleId": "CA1704", + "message": { + "text": "Correct the spelling of 'Sarif' in namespace name 'Microsoft.CodeAnalysis.Sarif.Multitool'.", + "id": "Namespace" }, - "hashes": [ - { - "value": "EE53EB79E6EAE65617C94E5719C7B2D1", - "algorithm": "md5" - }, - { - "value": "11E63107090D1D5EAEC8BCCE11C9B2E0B1158292", - "algorithm": "sha-1" - }, + "locations": [ { - "value": "ED7F0934A2268A06EB7D24FE6AD15304BF7DDEA1952A171548DD67DBD3D79070", - "algorithm": "sha-256" + "logicalLocations": [ + { + "index": 8, + "fullyQualifiedName": "Microsoft.CodeAnalysis.Sarif.Multitool" + } + ] } - ] + ], + "partialFingerprints": { + "UniqueId": "Sarif#Namespace" + }, + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" + } }, - "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/TSLintConverter.cs": { - "mimeType": "text/x-csharp", - "contents": { - "binary": "77u/Ly8gQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuDQovLyBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UuIFNlZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHByb2plY3Qgcm9vdCBmb3IgZnVsbCBsaWNlbnNlIGluZm9ybWF0aW9uLg0KDQp1c2luZyBTeXN0ZW07DQp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsNCnVzaW5nIFN5c3RlbS5JTzsNCnVzaW5nIFN5c3RlbS5MaW5xOw0KdXNpbmcgTWljcm9zb2Z0LkNvZGVBbmFseXNpcy5TYXJpZi5Db252ZXJ0ZXJzLlRTTGludE9iamVjdE1vZGVsOw0KdXNpbmcgTWljcm9zb2Z0LkNvZGVBbmFseXNpcy5TYXJpZi5Xcml0ZXJzOw0KDQpuYW1lc3BhY2UgTWljcm9zb2Z0LkNvZGVBbmFseXNpcy5TYXJpZi5Db252ZXJ0ZXJzDQp7DQogICAgcHVibGljIGNsYXNzIFRTTGludENvbnZlcnRlciA6IFRvb2xGaWxlQ29udmVydGVyQmFzZQ0KICAgIHsNCiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBMb2dSZWFkZXI8VFNMaW50TG9nPiBsb2dSZWFkZXI7DQogICAgICAgIA0KICAgICAgICBwdWJsaWMgVFNMaW50Q29udmVydGVyKCkNCiAgICAgICAgew0KICAgICAgICAgICAgbG9nUmVhZGVyID0gbmV3IFRTTGludExvZ1JlYWRlcigpOw0KICAgICAgICB9DQogICAgICAgIA0KICAgICAgICBwdWJsaWMgb3ZlcnJpZGUgdm9pZCBDb252ZXJ0KFN0cmVhbSBpbnB1dCwgSVJlc3VsdExvZ1dyaXRlciBvdXRwdXQsIE9wdGlvbmFsbHlFbWl0dGVkRGF0YSBkYXRhVG9JbnNlcnQpDQogICAgICAgIHsNCiAgICAgICAgICAgIGlucHV0ID0gaW5wdXQgPz8gdGhyb3cgbmV3IEFyZ3VtZW50TnVsbEV4Y2VwdGlvbihuYW1lb2YoaW5wdXQpKTsNCg0KICAgICAgICAgICAgb3V0cHV0ID0gb3V0cHV0ID8/IHRocm93IG5ldyBBcmd1bWVudE51bGxFeGNlcHRpb24obmFtZW9mKG91dHB1dCkpOw0KDQogICAgICAgICAgICBUU0xpbnRMb2cgdHNMaW50TG9nID0gbG9nUmVhZGVyLlJlYWRMb2coaW5wdXQpOw0KDQogICAgICAgICAgICBUb29sIHRvb2wgPSBuZXcgVG9vbA0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIE5hbWUgPSAiVFNMaW50Ig0KICAgICAgICAgICAgfTsNCg0KICAgICAgICAgICAgdmFyIHJ1biA9IG5ldyBSdW4oKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIFRvb2wgPSB0b29sDQogICAgICAgICAgICB9Ow0KDQogICAgICAgICAgICBvdXRwdXQuSW5pdGlhbGl6ZShydW4pOw0KDQogICAgICAgICAgICB2YXIgcmVzdWx0cyA9IG5ldyBMaXN0PFJlc3VsdD4oKTsNCiAgICAgICAgICAgIGZvcmVhY2goVFNMaW50TG9nRW50cnkgZW50cnkgaW4gdHNMaW50TG9nKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHJlc3VsdHMuQWRkKENyZWF0ZVJlc3VsdChlbnRyeSkpOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICB2YXIgZmlsZUluZm9GYWN0b3J5ID0gbmV3IEZpbGVJbmZvRmFjdG9yeShNaW1lVHlwZS5EZXRlcm1pbmVGcm9tRmlsZUV4dGVuc2lvbiwgZGF0YVRvSW5zZXJ0KTsNCiAgICAgICAgICAgIERpY3Rpb25hcnk8c3RyaW5nLCBGaWxlRGF0YT4gZmlsZURpY3Rpb25hcnkgPSBmaWxlSW5mb0ZhY3RvcnkuQ3JlYXRlKHJlc3VsdHMpOw0KICAgICAgICAgICAgDQogICAgICAgICAgICBpZiAoZmlsZURpY3Rpb25hcnk/LkFueSgpID09IHRydWUpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgb3V0cHV0LldyaXRlRmlsZXMoZmlsZURpY3Rpb25hcnkpOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBvdXRwdXQuT3BlblJlc3VsdHMoKTsNCiAgICAgICAgICAgIG91dHB1dC5Xcml0ZVJlc3VsdHMocmVzdWx0cyk7DQogICAgICAgICAgICBvdXRwdXQuQ2xvc2VSZXN1bHRzKCk7DQogICAgICAgIH0NCg0KICAgICAgICBpbnRlcm5hbCBSZXN1bHQgQ3JlYXRlUmVzdWx0KFRTTGludExvZ0VudHJ5IGVudHJ5KQ0KICAgICAgICB7DQogICAgICAgICAgICBlbnRyeSA9IGVudHJ5ID8/IHRocm93IG5ldyBBcmd1bWVudE51bGxFeGNlcHRpb24obmFtZW9mKGVudHJ5KSk7DQoNCiAgICAgICAgICAgIFJlc3VsdCByZXN1bHQgPSBuZXcgUmVzdWx0KCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBSdWxlSWQgPSBlbnRyeS5SdWxlTmFtZSwNCiAgICAgICAgICAgICAgICBNZXNzYWdlID0gbmV3IE1lc3NhZ2UgeyBUZXh0ID0gZW50cnkuRmFpbHVyZSB9DQogICAgICAgICAgICB9Ow0KDQogICAgICAgICAgICBzd2l0Y2ggKGVudHJ5LlJ1bGVTZXZlcml0eSkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBjYXNlICJFUlJPUiI6DQogICAgICAgICAgICAgICAgICAgIHJlc3VsdC5MZXZlbCA9IFJlc3VsdExldmVsLkVycm9yOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJXQVJOIjoNCiAgICAgICAgICAgICAgICBjYXNlICJXQVJOSU5HIjoNCiAgICAgICAgICAgICAgICAgICAgcmVzdWx0LkxldmVsID0gUmVzdWx0TGV2ZWwuV2FybmluZzsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiREVGQVVMVCI6DQogICAgICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICAgICAgcmVzdWx0LkxldmVsID0gUmVzdWx0TGV2ZWwuTm90ZTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIFJlZ2lvbiByZWdpb24gPSBuZXcgUmVnaW9uKCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAvLyBUaGUgVFNMaW50IGxvZ3MgaGF2ZSBsaW5lIGFuZCBjb2x1bW4gc3RhcnQgYXQgMCwgU2FyaWYgaGFzIHRoZW0gc3RhcnRpbmcgYXQgMSwgc28gYWRkIDEgdG8gZWFjaA0KICAgICAgICAgICAgICAgIFN0YXJ0TGluZSA9IGVudHJ5LlN0YXJ0UG9zaXRpb24uTGluZSArIDEsDQogICAgICAgICAgICAgICAgU3RhcnRDb2x1bW4gPSBlbnRyeS5TdGFydFBvc2l0aW9uLkNoYXJhY3RlciArIDEsDQogICAgICAgICAgICAgICAgRW5kTGluZSA9IGVudHJ5LkVuZFBvc2l0aW9uLkxpbmUgKyAxLA0KICAgICAgICAgICAgICAgIEVuZENvbHVtbiA9IGVudHJ5LkVuZFBvc2l0aW9uLkNoYXJhY3RlciArIDEsDQoNCiAgICAgICAgICAgICAgICBDaGFyT2Zmc2V0ID0gZW50cnkuU3RhcnRQb3NpdGlvbi5Qb3NpdGlvbg0KICAgICAgICAgICAgfTsNCg0KICAgICAgICAgICAgaW50IGxlbmd0aCA9IGVudHJ5LkVuZFBvc2l0aW9uLlBvc2l0aW9uIC0gZW50cnkuU3RhcnRQb3NpdGlvbi5Qb3NpdGlvbjsNCiAgICAgICAgICAgIHJlZ2lvbi5DaGFyTGVuZ3RoID0gbGVuZ3RoID4gMCA/IGxlbmd0aCA6IDA7DQoNCiAgICAgICAgICAgIFVyaSBhbmFseXNpc1RhcmdldFVyaSA9IG5ldyBVcmkoZW50cnkuTmFtZSwgVXJpS2luZC5SZWxhdGl2ZSk7DQoNCiAgICAgICAgICAgIHZhciBwaHlzaWNhbExvY2F0aW9uID0gbmV3IFBoeXNpY2FsTG9jYXRpb24oaWQ6IDAsIGZpbGVMb2NhdGlvbjogbmV3IEZpbGVMb2NhdGlvbih1cmk6IGFuYWx5c2lzVGFyZ2V0VXJpLCB1cmlCYXNlSWQ6IG51bGwpLCByZWdpb246IHJlZ2lvbiwgY29udGV4dFJlZ2lvbjogbnVsbCk7DQogICAgICAgICAgICBMb2NhdGlvbiBsb2NhdGlvbiA9IG5ldyBMb2NhdGlvbigpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgUGh5c2ljYWxMb2NhdGlvbiA9IHBoeXNpY2FsTG9jYXRpb24NCiAgICAgICAgICAgIH07DQoNCiAgICAgICAgICAgIHJlc3VsdC5Mb2NhdGlvbnMgPSBuZXcgTGlzdDxMb2NhdGlvbj4oKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIGxvY2F0aW9uDQogICAgICAgICAgICB9Ow0KDQogICAgICAgICAgICBpZiAoZW50cnkuRml4ZXM/LkFueSgpID09IHRydWUpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgSUxpc3Q8UmVwbGFjZW1lbnQ+IHJlcGxhY2VtZW50cyA9IG5ldyBMaXN0PFJlcGxhY2VtZW50PigpOw0KDQogICAgICAgICAgICAgICAgZm9yZWFjaCAoVFNMaW50TG9nRml4IGZpeCBpbiBlbnRyeS5GaXhlcykNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIFJlcGxhY2VtZW50IHJlcGxhY2VtZW50ID0gbmV3IFJlcGxhY2VtZW50KCk7DQoNCiAgICAgICAgICAgICAgICAgICAgcmVwbGFjZW1lbnQuRGVsZXRlZFJlZ2lvbiA9IG5ldyBSZWdpb24NCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgQ2hhckxlbmd0aCA9IGZpeC5Jbm5lckxlbmd0aCwNCiAgICAgICAgICAgICAgICAgICAgICAgIENoYXJPZmZzZXQgPSBmaXguSW5uZXJTdGFydA0KICAgICAgICAgICAgICAgICAgICB9Ow0KDQogICAgICAgICAgICAgICAgICAgIGlmICghc3RyaW5nLklzTnVsbE9yRW1wdHkoZml4LklubmVyVGV4dCkpDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHJlcGxhY2VtZW50Lkluc2VydGVkQ29udGVudCA9IG5ldyBGaWxlQ29udGVudA0KICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRleHQgPSBmaXguSW5uZXJUZXh0DQogICAgICAgICAgICAgICAgICAgICAgICB9Ow0KICAgICAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAgICAgcmVwbGFjZW1lbnRzLkFkZChyZXBsYWNlbWVudCk7DQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgRmlsZUNoYW5nZSBzYXJpZkZpbGVDaGFuZ2UgPSBuZXcgRmlsZUNoYW5nZShmaWxlTG9jYXRpb246IG5ldyBGaWxlTG9jYXRpb24odXJpOiBhbmFseXNpc1RhcmdldFVyaSwgdXJpQmFzZUlkOiBudWxsKSwgcmVwbGFjZW1lbnRzOiByZXBsYWNlbWVudHMpOw0KDQogICAgICAgICAgICAgICAgRml4IHNhcmlmRml4ID0gbmV3IEZpeChkZXNjcmlwdGlvbjogbnVsbCwgZmlsZUNoYW5nZXM6IG5ldyBMaXN0PEZpbGVDaGFuZ2U+KCkgeyBzYXJpZkZpbGVDaGFuZ2UgfSk7DQogICAgICAgICAgICAgICAgcmVzdWx0LkZpeGVzID0gbmV3IExpc3Q8Rml4PiB7IHNhcmlmRml4IH07DQogICAgICAgICAgICB9IA0KDQogICAgICAgICAgICByZXR1cm4gcmVzdWx0Ow0KICAgICAgICB9ICAgICAgICANCiAgICB9DQp9DQo=" + { + "ruleId": "CA1704", + "message": { + "text": "Correct the spelling of 'Multitool' in namespace name 'Microsoft.CodeAnalysis.Sarif.Multitool.Rules'.", + "id": "Namespace" }, - "hashes": [ - { - "value": "0766DB0ADCAA4CE0F91D1A3FFC53FF28", - "algorithm": "md5" - }, - { - "value": "A0677FA0C8F9412ED5B846D52F42E964108A8673", - "algorithm": "sha-1" - }, + "locations": [ { - "value": "801B0870AA467FBEC2C12A5012C46E361AFFD8F6B78B149EFE2C61AD80CD1C5A", - "algorithm": "sha-256" + "logicalLocations": [ + { + "index": 9, + "fullyQualifiedName": "Microsoft.CodeAnalysis.Sarif.Multitool.Rules" + } + ] } - ] + ], + "partialFingerprints": { + "UniqueId": "Multitool#Namespace" + }, + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" + } }, - "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/TSLintLogReader.cs": { - "mimeType": "text/x-csharp", - "contents": { - "binary": "77u/Ly8gQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuDQovLyBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UuIFNlZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHByb2plY3Qgcm9vdCBmb3IgZnVsbCBsaWNlbnNlIGluZm9ybWF0aW9uLg0KDQp1c2luZyBTeXN0ZW07DQp1c2luZyBTeXN0ZW0uR2xvYmFsaXphdGlvbjsNCnVzaW5nIFN5c3RlbS5JTzsNCnVzaW5nIFN5c3RlbS5MaW5xOw0KdXNpbmcgU3lzdGVtLlJ1bnRpbWUuU2VyaWFsaXphdGlvbjsNCnVzaW5nIFN5c3RlbS5SdW50aW1lLlNlcmlhbGl6YXRpb24uSnNvbjsNCnVzaW5nIFN5c3RlbS5UZXh0Ow0KdXNpbmcgTWljcm9zb2Z0LkNvZGVBbmFseXNpcy5TYXJpZi5Db252ZXJ0ZXJzLlRTTGludE9iamVjdE1vZGVsOw0KdXNpbmcgTmV3dG9uc29mdC5Kc29uOw0KdXNpbmcgTmV3dG9uc29mdC5Kc29uLkxpbnE7DQoNCm5hbWVzcGFjZSBNaWNyb3NvZnQuQ29kZUFuYWx5c2lzLlNhcmlmLkNvbnZlcnRlcnMNCnsNCiAgICBwdWJsaWMgY2xhc3MgVFNMaW50TG9nUmVhZGVyIDogTG9nUmVhZGVyPFRTTGludExvZz4NCiAgICB7DQogICAgICAgIHByaXZhdGUgcmVhZG9ubHkgWG1sT2JqZWN0U2VyaWFsaXplciBTZXJpYWxpemVyOw0KDQogICAgICAgIHB1YmxpYyBUU0xpbnRMb2dSZWFkZXIoKQ0KICAgICAgICB7DQogICAgICAgICAgICBTZXJpYWxpemVyID0gbmV3IERhdGFDb250cmFjdEpzb25TZXJpYWxpemVyKHR5cGVvZihUU0xpbnRMb2cpKTsNCiAgICAgICAgfQ0KDQogICAgICAgIHB1YmxpYyBvdmVycmlkZSBUU0xpbnRMb2cgUmVhZExvZyhTdHJlYW0gaW5wdXQpDQogICAgICAgIHsNCiAgICAgICAgICAgIGlucHV0ID0gaW5wdXQgPz8gdGhyb3cgbmV3IEFyZ3VtZW50TnVsbEV4Y2VwdGlvbihuYW1lb2YoaW5wdXQpKTsNCg0KICAgICAgICAgICAgdXNpbmcgKFRleHRSZWFkZXIgc3RyZWFtUmVhZGVyID0gbmV3IFN0cmVhbVJlYWRlcihpbnB1dCkpDQogICAgICAgICAgICB1c2luZyAoSnNvblJlYWRlciByZWFkZXIgPSBuZXcgSnNvblRleHRSZWFkZXIoc3RyZWFtUmVhZGVyKSkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBKVG9rZW4gcm9vdFRva2VuID0gSlRva2VuLlJlYWRGcm9tKHJlYWRlcik7DQogICAgICAgICAgICAgICAgcm9vdFRva2VuID0gTm9ybWFsaXplTG9nKHJvb3RUb2tlbik7DQogICAgICAgICAgICAgICAgc3RyaW5nIG5vcm1hbGl6ZWRMb2dDb250ZW50cyA9IHJvb3RUb2tlbi5Ub1N0cmluZygpOw0KICAgICAgICAgICAgICAgIHVzaW5nIChTdHJlYW0gbm9ybWFsaXplZExvZ1N0cmVhbSA9IG5ldyBNZW1vcnlTdHJlYW0oRW5jb2RpbmcuVVRGOC5HZXRCeXRlcyhub3JtYWxpemVkTG9nQ29udGVudHMpKSkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIHJldHVybiAoVFNMaW50TG9nKVNlcmlhbGl6ZXIuUmVhZE9iamVjdChub3JtYWxpemVkTG9nU3RyZWFtKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICAvLyBUaGlzIG1ldGhvZCB0cmFuc2Zvcm1zIGFsbCAiZml4IiBwcm9wZXJ0aWVzIGluIHRoZSBpbnB1dCB0byBhIHN0YW5kYXJkIGZvcm0NCiAgICAgICAgLy8gYnkgd3JhcHBpbmcgdGhlIHByb3BlcnR5IHZhbHVlIGluIGFuIGFycmF5IGlmIGl0IGlzIG5vdCBhbHJlYWR5IGFuIGFycmF5Lg0KICAgICAgICAvLw0KICAgICAgICAvLyBUaGUgaW5wdXQgaXMgYSBKU09OIHRva2VuIHJlcHJlc2VudGluZyB0aGUgZW50aXJlIFRTTGludCBsb2cgZmlsZS4gVGhlIG1ldGhvZA0KICAgICAgICAvLyBtb2RpZmllcyB0aGUgaW5wdXQgdG9rZW4gaW4gcGxhY2UuDQogICAgICAgIC8vDQogICAgICAgIC8vIFRoaXMgbWV0aG9kIHJldHVybnMgdGhlIHNhbWUgaW5wdXQgdmFsdWUgdGhhdCBpdCBtb2RpZmllZCBpbiBwbGFjZS4NCiAgICAgICAgLy8NCiAgICAgICAgLy8gVGhpcyBpcyBuZWNlc3NhcnkgYmVjYXVzZSB0aGUgVFNMaW50IEpTT04gY29udGFpbnMgbXVsdGlwbGUgcGF0dGVybnMgZm9yIGZpeCwgaS5lLjoNCiAgICAgICAgLy8NCiAgICAgICAgLy8gImZpeCI6eyJpbm5lclN0YXJ0Ijo0NDI5LCJpbm5lckxlbmd0aCI6MCwiaW5uZXJUZXh0IjoiXHJcbiJ9DQogICAgICAgIC8vICJmaXgiOlt7ImlubmVyU3RhcnQiOjQ0MjksImlubmVyTGVuZ3RoIjowLCJpbm5lclRleHQiOiJcclxuIn1dDQogICAgICAgIC8vICJmaXgiOlt7ImlubmVyU3RhcnQiOjQ0MjksImlubmVyTGVuZ3RoIjowLCJpbm5lclRleHQiOiJcclxuIn0seyJpbm5lclN0YXJ0Ijo0NDI5LCJpbm5lckxlbmd0aCI6MCwiaW5uZXJUZXh0IjoiXHJcbiJ9XQ0KICAgICAgICAvLw0KICAgICAgICAvLyBUaGUgZm9sbG93aW5nIHBhdHRlcm4gYWxzbyBvY2N1cnMsIGFsdGhvdWdoIHRoZSBtb3N0IHJlY2VudCB2ZXJzaW9uIG9mIHRoZSBUU0xpbnQNCiAgICAgICAgLy8gc291cmNlIGNvZGUgZG9lcyBub3QgYXBwZWFyIHRvIHN1cHBvcnQgaXQ6DQogICAgICAgIC8vDQogICAgICAgIC8vICJmaXgiOiB7DQogICAgICAgIC8vICAgImlubmVyUnVsZU5hbWUiOiAibm8tdHJhaWxpbmctd2hpdGVzcGFjZSIsDQogICAgICAgIC8vICAgImlubmVyUmVwbGFjZW1lbnRzIjogWw0KICAgICAgICAvLyAgICAgew0KICAgICAgICAvLyAgICAgICAiaW5uZXJTdGFydCI6IDE4NzIsDQogICAgICAgIC8vICAgICAgICJpbm5lckxlbmd0aCI6IDQsDQogICAgICAgIC8vICAgICAgICJpbm5lclRleHQiOiAiIg0KICAgICAgICAvLyAgICAgfQ0KICAgICAgICAvLyAgIF0NCiAgICAgICAgLy8gfQ0KICAgICAgICAvLw0KICAgICAgICAvLyBMYWNraW5nIGFueSBkb2N1bWVudGF0aW9uIG9uIGhvdyB0byBpbnRlcnByZXQgdGhpcywgd2UgdHJlYXQgYW55IG9iamVjdHMNCiAgICAgICAgLy8gZm91bmQgd2l0aGluIHRoZSAiaW5uZXJSZXBsYWNlbWVudHMiIGFycmF5IGFzIGlmIHRoZXkgb2NjdXJyZWQgZGlyZWN0bHkNCiAgICAgICAgLy8gdW5kZXIgdGhlICJmaXgiIG9iamVjdC4NCiAgICAgICAgLy8NCiAgICAgICAgLy8gVGhpcyBtZXRob2QgaXMgbWFya2VkIGludGVybmFsIHJhdGhlciB0aGFuIHByaXZhdGUgZm9yIHRoZSBzYWtlIG9mIHVuaXQgdGVzdHMuDQogICAgICAgIGludGVybmFsIEpUb2tlbiBOb3JtYWxpemVMb2coSlRva2VuIHJvb3RUb2tlbikNCiAgICAgICAgew0KICAgICAgICAgICAgaWYgKHJvb3RUb2tlbiBpcyBKQXJyYXkgZW50cmllcykNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBOb3JtYWxpemVFbnRyaWVzKGVudHJpZXMpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZWxzZQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHRocm93IG5ldyBFeGNlcHRpb24oDQogICAgICAgICAgICAgICAgICAgIHN0cmluZy5Gb3JtYXQoDQogICAgICAgICAgICAgICAgICAgICAgICBDdWx0dXJlSW5mby5JbnZhcmlhbnRDdWx0dXJlLA0KICAgICAgICAgICAgICAgICAgICAgICAgIlRoZSByb290IEpTT04gdmFsdWUgc2hvdWxkIGJlIGEgSkFycmF5LCBidXQgaXMgYSB7MH0uIiwNCiAgICAgICAgICAgICAgICAgICAgICAgIHJvb3RUb2tlbi5HZXRUeXBlKCkuTmFtZSkpOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICByZXR1cm4gcm9vdFRva2VuOw0KICAgICAgICB9DQoNCiAgICAgICAgcHJpdmF0ZSB2b2lkIE5vcm1hbGl6ZUVudHJpZXMoSkFycmF5IGVudHJpZXMpDQogICAgICAgIHsNCiAgICAgICAgICAgIGZvcmVhY2ggKEpUb2tlbiBlbnRyeVRva2VuIGluIGVudHJpZXMpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgaWYgKGVudHJ5VG9rZW4gaXMgSk9iamVjdCBlbnRyeSkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIE5vcm1hbGl6ZUVudHJ5KGVudHJ5KTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgZWxzZQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGxpbmVJbmZvID0gZW50cnlUb2tlbiBhcyBJSnNvbkxpbmVJbmZvOw0KICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKA0KICAgICAgICAgICAgICAgICAgICAgICAgc3RyaW5nLkZvcm1hdCgNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBDdWx0dXJlSW5mby5JbnZhcmlhbnRDdWx0dXJlLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICIoezB9LCB7MX0pOiBUaGUgSlNPTiB2YWx1ZSBzaG91bGQgYmUgYSBKT2JqZWN0LCBidXQgaXMgYSB7Mn0uIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaW5lSW5mby5MaW5lTnVtYmVyLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmVJbmZvLkxpbmVQb3NpdGlvbiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbnRyeVRva2VuLkdldFR5cGUoKS5OYW1lKSk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICAgICAgcHJpdmF0ZSBzdGF0aWMgdm9pZCBOb3JtYWxpemVFbnRyeShKT2JqZWN0IGVudHJ5KQ0KICAgICAgICB7DQogICAgICAgICAgICBKUHJvcGVydHkgZml4UHJvcGVydHkgPSBlbnRyeS5Qcm9wZXJ0aWVzKCkuU2luZ2xlT3JEZWZhdWx0KHAgPT4gcC5OYW1lLkVxdWFscygiZml4IikpOw0KICAgICAgICAgICAgaWYgKGZpeFByb3BlcnR5ICE9IG51bGwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgTm9ybWFsaXplRml4UHJvcGVydHkoZml4UHJvcGVydHkpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICAgICAgcHJpdmF0ZSBzdGF0aWMgdm9pZCBOb3JtYWxpemVGaXhQcm9wZXJ0eShKUHJvcGVydHkgZml4UHJvcGVydHkpDQogICAgICAgIHsNCiAgICAgICAgICAgIHZhciBmaXhWYWx1ZVRva2VuID0gZml4UHJvcGVydHkuVmFsdWU7DQogICAgICAgICAgICBpZiAoZml4VmFsdWVUb2tlbiBpcyBKT2JqZWN0IGZpeFZhbHVlT2JqZWN0KQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIEpQcm9wZXJ0eSBpbm5lclJlcGxhY2VtZW50c1Byb3BlcnR5ID0gZml4VmFsdWVPYmplY3QuUHJvcGVydHkoImlubmVyUmVwbGFjZW1lbnRzIik7DQogICAgICAgICAgICAgICAgaWYgKGlubmVyUmVwbGFjZW1lbnRzUHJvcGVydHk/LlZhbHVlIGlzIEpBcnJheSBpbm5lclJlcGxhY2VtZW50c0FycmF5KQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgZml4UHJvcGVydHkuVmFsdWUgPSBpbm5lclJlcGxhY2VtZW50c0FycmF5Ow0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBlbHNlDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBmaXhQcm9wZXJ0eS5WYWx1ZSA9IG5ldyBKQXJyYXkoZml4VmFsdWVUb2tlbik7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZWxzZSBpZiAoIShmaXhWYWx1ZVRva2VuIGlzIEpBcnJheSkpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgdmFyIGxpbmVJbmZvID0gZml4VmFsdWVUb2tlbiBhcyBJSnNvbkxpbmVJbmZvOw0KICAgICAgICAgICAgICAgIHRocm93IG5ldyBFeGNlcHRpb24oDQogICAgICAgICAgICAgICAgICAgIHN0cmluZy5Gb3JtYXQoDQogICAgICAgICAgICAgICAgICAgICAgICBDdWx0dXJlSW5mby5JbnZhcmlhbnRDdWx0dXJlLA0KICAgICAgICAgICAgICAgICAgICAgICAgIih7MH0sIHsxfSk6IFRoZSB2YWx1ZSBvZiB0aGUgJ2ZpeCcgcHJvcGVydHkgc2hvdWxkIGJlIGVpdGhlciBhIEpPYmplY3Qgb3IgYSBKQXJyYXksIGJ1dCBpcyBhIHsyfS4iLA0KICAgICAgICAgICAgICAgICAgICAgICAgbGluZUluZm8uTGluZU51bWJlciwNCiAgICAgICAgICAgICAgICAgICAgICAgIGxpbmVJbmZvLkxpbmVQb3NpdGlvbiwNCiAgICAgICAgICAgICAgICAgICAgICAgIGZpeFZhbHVlVG9rZW4uR2V0VHlwZSgpLk5hbWUpKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgIH0NCn0NCg==" + { + "ruleId": "CA1704", + "message": { + "text": "Correct the spelling of 'Sarif' in namespace name 'Microsoft.CodeAnalysis.Sarif.Multitool.Rules'.", + "id": "Namespace" }, - "hashes": [ - { - "value": "CE47C81D9680E67F184482AAC37D5363", - "algorithm": "md5" - }, - { - "value": "4C4428E28BC4D22665FAE32DA6EC7B1187F19239", - "algorithm": "sha-1" - }, + "locations": [ { - "value": "4400A79C532721319B2FFD3E96261C4F3A6A9058EE533F4A1CC96CFBFF848E66", - "algorithm": "sha-256" + "logicalLocations": [ + { + "index": 9, + "fullyQualifiedName": "Microsoft.CodeAnalysis.Sarif.Multitool.Rules" + } + ] } - ] + ], + "partialFingerprints": { + "UniqueId": "Sarif#Namespace" + }, + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" + } }, - "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/PREFastObjectModel/Category.cs": { - "mimeType": "text/x-csharp", - "contents": { - "binary": "77u/dXNpbmcgU3lzdGVtOw0KdXNpbmcgU3lzdGVtLkNvbGxlY3Rpb25zLkdlbmVyaWM7DQp1c2luZyBTeXN0ZW0uWG1sOw0KdXNpbmcgU3lzdGVtLlhtbC5TY2hlbWE7DQp1c2luZyBTeXN0ZW0uWG1sLlNlcmlhbGl6YXRpb247DQoNCm5hbWVzcGFjZSBNaWNyb3NvZnQuQ29kZUFuYWx5c2lzLlNhcmlmLkNvbnZlcnRlcnMuUFJFRmFzdE9iamVjdE1vZGVsDQp7DQogICAgcHVibGljIGNsYXNzIENhdGVnb3J5IDogRGljdGlvbmFyeTxzdHJpbmcsIHN0cmluZz4sIElYbWxTZXJpYWxpemFibGUNCiAgICB7DQogICAgICAgIHB1YmxpYyBYbWxTY2hlbWEgR2V0U2NoZW1hKCkNCiAgICAgICAgew0KICAgICAgICAgICAgcmV0dXJuIG51bGw7DQogICAgICAgIH0NCg0KICAgICAgICAvLyBEZWZpbmUgaG93IFhtbFNlcmlhbGl6ZXIuRGVzZXJpYWxpemUgc2hvdWxkIGRlc2VyaWFsaXplIGludG8gYSBkaWN0aW9uYXJ5DQogICAgICAgIHB1YmxpYyB2b2lkIFJlYWRYbWwoWG1sUmVhZGVyIHJlYWRlcikNCiAgICAgICAgew0KICAgICAgICAgICAgYm9vbCB3YXNFbXB0eSA9IHJlYWRlci5Jc0VtcHR5RWxlbWVudDsNCiAgICAgICAgICAgIHJlYWRlci5SZWFkKCk7DQoNCiAgICAgICAgICAgIGlmICh3YXNFbXB0eSkNCiAgICAgICAgICAgICAgICByZXR1cm47DQogICAgICAgICAgICANCiAgICAgICAgICAgIHdoaWxlIChyZWFkZXIuTm9kZVR5cGUgIT0gWG1sTm9kZVR5cGUuRW5kRWxlbWVudCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICB2YXIga2V5ID0gcmVhZGVyLk5hbWU7DQogICAgICAgICAgICAgICAgdmFyIHZhbHVlID0gcmVhZGVyLlJlYWRJbm5lclhtbCgpOw0KDQogICAgICAgICAgICAgICAgaWYgKHN0cmluZy5Jc051bGxPcldoaXRlU3BhY2Uoa2V5KSkNCiAgICAgICAgICAgICAgICAgICAgY29udGludWU7DQoNCiAgICAgICAgICAgICAgICBBZGQoa2V5LCB2YWx1ZSk7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIHJlYWRlci5SZWFkRW5kRWxlbWVudCgpOw0KICAgICAgICB9DQoNCiAgICAgICAgcHVibGljIHZvaWQgV3JpdGVYbWwoWG1sV3JpdGVyIHdyaXRlcikNCiAgICAgICAgew0KICAgICAgICAgICAgdGhyb3cgbmV3IE5vdEltcGxlbWVudGVkRXhjZXB0aW9uKCk7DQogICAgICAgIH0NCiAgICB9DQp9DQo=" + { + "ruleId": "CA1704", + "message": { + "text": "Correct the spelling of 'Sarif' in namespace name 'Microsoft.CodeAnalysis.Sarif.Processors'.", + "id": "Namespace" }, - "hashes": [ - { - "value": "DCDF96B99BA46D82E87C568A334636E9", - "algorithm": "md5" - }, - { - "value": "9B015B229F89ABE8839A907A5987D430F217471A", - "algorithm": "sha-1" - }, + "locations": [ { - "value": "3D731F3858D0E36AA4925C110DB93AEE518DECCF51E54841436E299658BD7B88", - "algorithm": "sha-256" + "logicalLocations": [ + { + "index": 10, + "fullyQualifiedName": "Microsoft.CodeAnalysis.Sarif.Processors" + } + ] } - ] + ], + "partialFingerprints": { + "UniqueId": "Sarif#Namespace" + }, + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" + } }, - "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/PREFastObjectModel/Defect.cs": { - "mimeType": "text/x-csharp", - "contents": { - "binary": "77u/dXNpbmcgU3lzdGVtLlhtbC5TZXJpYWxpemF0aW9uOw0KDQpuYW1lc3BhY2UgTWljcm9zb2Z0LkNvZGVBbmFseXNpcy5TYXJpZi5Db252ZXJ0ZXJzLlBSRUZhc3RPYmplY3RNb2RlbA0Kew0KICAgIHB1YmxpYyBjbGFzcyBEZWZlY3QNCiAgICB7DQogICAgICAgIFtYbWxFbGVtZW50KCJTRkEiKV0NCiAgICAgICAgcHVibGljIFNGQSBTRkEgeyBnZXQ7IHNldDsgfQ0KDQogICAgICAgIFtYbWxFbGVtZW50KCJERUZFQ1RDT0RFIildDQogICAgICAgIHB1YmxpYyBzdHJpbmcgRGVmZWN0Q29kZSB7IGdldDsgc2V0OyB9DQoNCiAgICAgICAgW1htbEVsZW1lbnQoIkRFU0NSSVBUSU9OIildDQogICAgICAgIHB1YmxpYyBzdHJpbmcgRGVzY3JpcHRpb24geyBnZXQ7IHNldDsgfQ0KDQogICAgICAgIFtYbWxFbGVtZW50KCJGVU5DVElPTiIpXQ0KICAgICAgICBwdWJsaWMgc3RyaW5nIEZ1bmN0aW9uIHsgZ2V0OyBzZXQ7IH0NCg0KICAgICAgICBbWG1sRWxlbWVudCgiREVDT1JBVEVEIildDQogICAgICAgIHB1YmxpYyBzdHJpbmcgRGVjb3JhdGVkIHsgZ2V0OyBzZXQ7IH0NCg0KICAgICAgICBbWG1sRWxlbWVudCgiRlVOQ0xJTkUiKV0NCiAgICAgICAgcHVibGljIHN0cmluZyBGdW5jbGluZSB7IGdldDsgc2V0OyB9DQoNCiAgICAgICAgW1htbEVsZW1lbnQoIlBST0JBQklMSVRZIildDQogICAgICAgIHB1YmxpYyBzdHJpbmcgUHJvYmFiaWxpdHkgeyBnZXQ7IHNldDsgfQ0KDQogICAgICAgIFtYbWxFbGVtZW50KCJSQU5LIildDQogICAgICAgIHB1YmxpYyBzdHJpbmcgUmFuayB7IGdldDsgc2V0OyB9DQoNCiAgICAgICAgW1htbEVsZW1lbnQoIlBBVEgiKV0NCiAgICAgICAgcHVibGljIFBSRUZhc3RQYXRoIFBhdGggeyBnZXQ7IHNldDsgfQ0KDQogICAgICAgIFtYbWxFbGVtZW50KCJDQVRFR09SWSIpXQ0KICAgICAgICBwdWJsaWMgQ2F0ZWdvcnkgQ2F0ZWdvcnkgeyBnZXQ7IHNldDsgfQ0KICAgIH0NCn0NCg==" + { + "ruleId": "CA1704", + "message": { + "text": "Correct the spelling of 'Sarif' in namespace name 'Microsoft.CodeAnalysis.Sarif.Readers'.", + "id": "Namespace" }, - "hashes": [ - { - "value": "7A837A495F68EEAAD9E663EBC9570A9B", - "algorithm": "md5" - }, - { - "value": "BBB70B5691194E00BF52941380AC7DDF81222BBA", - "algorithm": "sha-1" - }, + "locations": [ { - "value": "02D0F026318F446B95FEA25D899C54C173FE593D92EC5179DFEBB129AD41F96F", - "algorithm": "sha-256" + "logicalLocations": [ + { + "index": 11, + "fullyQualifiedName": "Microsoft.CodeAnalysis.Sarif.Readers" + } + ] } - ] + ], + "partialFingerprints": { + "UniqueId": "Sarif#Namespace" + }, + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" + } }, - "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/PREFastObjectModel/DefectList.cs": { - "mimeType": "text/x-csharp", - "contents": { - "binary": "77u/dXNpbmcgU3lzdGVtLkNvbGxlY3Rpb25zLkdlbmVyaWM7DQp1c2luZyBTeXN0ZW0uWG1sLlNlcmlhbGl6YXRpb247DQoNCm5hbWVzcGFjZSBNaWNyb3NvZnQuQ29kZUFuYWx5c2lzLlNhcmlmLkNvbnZlcnRlcnMuUFJFRmFzdE9iamVjdE1vZGVsDQp7DQogICAgW1htbFJvb3QoIkRFRkVDVFMiKV0NCiAgICBwdWJsaWMgY2xhc3MgRGVmZWN0TGlzdA0KICAgIHsNCiAgICAgICAgW1htbEVsZW1lbnQoIkRFRkVDVCIpXQ0KICAgICAgICBwdWJsaWMgTGlzdDxEZWZlY3Q+IERlZmVjdHMgeyBnZXQ7IHNldDsgfSA9IG5ldyBMaXN0PERlZmVjdD4oKTsNCiAgICB9DQp9DQo=" + { + "ruleId": "CA1704", + "message": { + "text": "Correct the spelling of 'Sarif' in namespace name 'Microsoft.CodeAnalysis.Sarif.VersionOne'.", + "id": "Namespace" }, - "hashes": [ - { - "value": "6B569192CB00362CDD0F64A85F8203E3", - "algorithm": "md5" - }, - { - "value": "94AE119BC55EC02E415B64F32FA08DF953B91D66", - "algorithm": "sha-1" - }, + "locations": [ { - "value": "18C895A02FBF9C290F7EB07CB401E7CF8E1C03DB36D56E4DCCBD4572160C83F8", - "algorithm": "sha-256" + "logicalLocations": [ + { + "index": 12, + "fullyQualifiedName": "Microsoft.CodeAnalysis.Sarif.VersionOne" + } + ] } - ] + ], + "partialFingerprints": { + "UniqueId": "Sarif#Namespace" + }, + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" + } }, - "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/PREFastObjectModel/PREFastPath.cs": { - "mimeType": "text/x-csharp", - "contents": { - "binary": "77u/dXNpbmcgU3lzdGVtLkNvbGxlY3Rpb25zLkdlbmVyaWM7DQp1c2luZyBTeXN0ZW0uWG1sLlNlcmlhbGl6YXRpb247DQoNCm5hbWVzcGFjZSBNaWNyb3NvZnQuQ29kZUFuYWx5c2lzLlNhcmlmLkNvbnZlcnRlcnMuUFJFRmFzdE9iamVjdE1vZGVsDQp7DQogICAgcHVibGljIGNsYXNzIFBSRUZhc3RQYXRoDQogICAgew0KICAgICAgICBbWG1sRWxlbWVudCgiU0ZBIildDQogICAgICAgIHB1YmxpYyBMaXN0PFNGQT4gU0ZBcyB7IGdldDsgc2V0OyB9DQogICAgfQ0KfQ0K" + { + "ruleId": "CA1020", + "message": { + "text": "Consider merging the types defined in 'Microsoft.CodeAnalysis.Sarif.VersionOne.Readers' with another namespace." }, - "hashes": [ - { - "value": "673AACA6616FF4F9530C4D33862A3C06", - "algorithm": "md5" - }, - { - "value": "36D0D8B44F88C88EB2681FBFCB3A38AA66B2EDC9", - "algorithm": "sha-1" - }, + "locations": [ { - "value": "699993A373F0F499DC6431C7AD2A2C6966561BCB7376EE500B203C8C44A83593", - "algorithm": "sha-256" + "logicalLocations": [ + { + "index": 13, + "fullyQualifiedName": "Microsoft.CodeAnalysis.Sarif.VersionOne.Readers" + } + ] } - ] + ], + "properties": { + "Category": "Microsoft.Design", + "FixCategory": "Breaking" + } }, - "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/PylintObjectModel/PylintLogEntry.cs": { - "mimeType": "text/x-csharp", - "contents": { - "binary": "77u/Ly8gQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuDQovLyBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UuIFNlZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHByb2plY3Qgcm9vdCBmb3IgZnVsbCBsaWNlbnNlIGluZm9ybWF0aW9uLg0KDQp1c2luZyBOZXd0b25zb2Z0Lkpzb247DQoNCm5hbWVzcGFjZSBNaWNyb3NvZnQuQ29kZUFuYWx5c2lzLlNhcmlmLkNvbnZlcnRlcnMuUHlsaW50T2JqZWN0TW9kZWwNCnsNCiAgICBwdWJsaWMgY2xhc3MgUHlsaW50TG9nRW50cnkNCiAgICB7DQogICAgICAgIFtKc29uUHJvcGVydHkoInR5cGUiKV0NCiAgICAgICAgcHVibGljIHN0cmluZyBUeXBlIHsgZ2V0OyBzZXQ7IH0NCg0KICAgICAgICBbSnNvblByb3BlcnR5KCJtb2R1bGUiKV0NCiAgICAgICAgcHVibGljIHN0cmluZyBNb2R1bGVOYW1lIHsgZ2V0OyAgc2V0OyB9DQoNCiAgICAgICAgW0pzb25Qcm9wZXJ0eSgib2JqIildDQogICAgICAgIHB1YmxpYyBzdHJpbmcgT2JqZWN0IHsgZ2V0OyAgc2V0OyB9DQoNCiAgICAgICAgW0pzb25Qcm9wZXJ0eSgibGluZSIpXQ0KICAgICAgICBwdWJsaWMgc3RyaW5nIExpbmUgeyBnZXQ7ICBzZXQ7IH0NCg0KICAgICAgICBbSnNvblByb3BlcnR5KCJjb2x1bW4iKV0NCiAgICAgICAgcHVibGljIHN0cmluZyBDb2x1bW4geyAgZ2V0OyBzZXQ7IH0NCg0KICAgICAgICBbSnNvblByb3BlcnR5KCJwYXRoIildDQogICAgICAgIHB1YmxpYyBzdHJpbmcgRmlsZVBhdGggeyBnZXQ7ICBzZXQ7IH0NCg0KICAgICAgICBbSnNvblByb3BlcnR5KCJzeW1ib2wiKV0NCiAgICAgICAgcHVibGljIHN0cmluZyBTeW1ib2wgeyBnZXQ7ICBzZXQ7IH0NCg0KICAgICAgICBbSnNvblByb3BlcnR5KCJtZXNzYWdlIildDQogICAgICAgIHB1YmxpYyBzdHJpbmcgTWVzc2FnZSB7IGdldDsgIHNldDsgfQ0KDQogICAgICAgIFtKc29uUHJvcGVydHkoIm1lc3NhZ2UtaWQiKV0NCiAgICAgICAgcHVibGljIHN0cmluZyBNZXNzYWdlSWQgeyBnZXQ7IHNldDsgfQ0KICAgIH0NCn0NCg==" + { + "ruleId": "CA1704", + "message": { + "text": "Correct the spelling of 'Sarif' in namespace name 'Microsoft.CodeAnalysis.Sarif.VersionOne.Readers'.", + "id": "Namespace" }, - "hashes": [ - { - "value": "AC70811C79154A779A65CC16A9591C1A", - "algorithm": "md5" - }, - { - "value": "25DDF468E2FCABD5058120769C16DC0A52831495", - "algorithm": "sha-1" - }, + "locations": [ { - "value": "5CD4A7DAB48FEC71F2EEE17ED4C65D7AD636BB22532086380244B0FFC0365127", - "algorithm": "sha-256" + "logicalLocations": [ + { + "index": 13, + "fullyQualifiedName": "Microsoft.CodeAnalysis.Sarif.VersionOne.Readers" + } + ] } - ] + ], + "partialFingerprints": { + "UniqueId": "Sarif#Namespace" + }, + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" + } }, - "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/PylintObjectModel/PylintLogReader.cs": { - "mimeType": "text/x-csharp", - "contents": { - "binary": "77u/Ly8gQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuDQovLyBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UuIFNlZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHByb2plY3Qgcm9vdCBmb3IgZnVsbCBsaWNlbnNlIGluZm9ybWF0aW9uLg0KDQp1c2luZyBTeXN0ZW0uSU87DQp1c2luZyBOZXd0b25zb2Z0Lkpzb247DQoNCm5hbWVzcGFjZSBNaWNyb3NvZnQuQ29kZUFuYWx5c2lzLlNhcmlmLkNvbnZlcnRlcnMuUHlsaW50T2JqZWN0TW9kZWwNCnsNCiAgICBwdWJsaWMgY2xhc3MgUHlsaW50TG9nUmVhZGVyIDogTG9nUmVhZGVyPFB5bGludExvZz4NCiAgICB7DQogICAgICAgIHB1YmxpYyBvdmVycmlkZSBQeWxpbnRMb2cgUmVhZExvZyhTdHJlYW0gaW5wdXQpDQogICAgICAgIHsNCiAgICAgICAgICAgIHN0cmluZyBweWxpbnRUZXh0Ow0KDQogICAgICAgICAgICB1c2luZyAoVGV4dFJlYWRlciBzdHJlYW1SZWFkZXIgPSBuZXcgU3RyZWFtUmVhZGVyKGlucHV0KSkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBweWxpbnRUZXh0ID0gc3RyZWFtUmVhZGVyLlJlYWRUb0VuZCgpOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICByZXR1cm4gSnNvbkNvbnZlcnQuRGVzZXJpYWxpemVPYmplY3Q8UHlsaW50TG9nPihweWxpbnRUZXh0KTsNCiAgICAgICAgfQ0KICAgIH0NCn0=" + { + "ruleId": "CA1704", + "message": { + "text": "Correct the spelling of 'Sarif' in namespace name 'Microsoft.CodeAnalysis.Sarif.Visitors'.", + "id": "Namespace" }, - "hashes": [ - { - "value": "5E614640B001E483386D8C2BEAA931E0", - "algorithm": "md5" - }, - { - "value": "1B540058B099D3F060F937D90B149AF531E7D255", - "algorithm": "sha-1" - }, + "locations": [ { - "value": "EEAD15A29770FE60FA33039CE87DA760E4020ADE2686B91941B608F7F16A52D0", - "algorithm": "sha-256" + "logicalLocations": [ + { + "index": 14, + "fullyQualifiedName": "Microsoft.CodeAnalysis.Sarif.Visitors" + } + ] } - ] + ], + "partialFingerprints": { + "UniqueId": "Sarif#Namespace" + }, + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" + } }, - "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/TSLintObjectModel/TSLintLogEntry.cs": { - "mimeType": "text/x-csharp", - "contents": { - "binary": "77u/Ly8gQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuDQovLyBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UuIFNlZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHByb2plY3Qgcm9vdCBmb3IgZnVsbCBsaWNlbnNlIGluZm9ybWF0aW9uLg0KDQp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsNCnVzaW5nIFN5c3RlbS5SdW50aW1lLlNlcmlhbGl6YXRpb247DQoNCm5hbWVzcGFjZSBNaWNyb3NvZnQuQ29kZUFuYWx5c2lzLlNhcmlmLkNvbnZlcnRlcnMuVFNMaW50T2JqZWN0TW9kZWwNCnsNCiAgICBbRGF0YUNvbnRyYWN0XQ0KICAgIHB1YmxpYyBjbGFzcyBUU0xpbnRMb2dFbnRyeQ0KICAgIHsNCiAgICAgICAgW0RhdGFNZW1iZXIoTmFtZSA9ICJuYW1lIiwgSXNSZXF1aXJlZCA9IHRydWUsIEVtaXREZWZhdWx0VmFsdWUgPSB0cnVlKV0NCiAgICAgICAgcHVibGljIHN0cmluZyBOYW1lIHsgZ2V0OyBzZXQ7IH0NCg0KICAgICAgICBbRGF0YU1lbWJlcihOYW1lID0gImZhaWx1cmUiLCBJc1JlcXVpcmVkID0gdHJ1ZSwgRW1pdERlZmF1bHRWYWx1ZSA9IHRydWUpXQ0KICAgICAgICBwdWJsaWMgc3RyaW5nIEZhaWx1cmUgeyBnZXQ7IHNldDsgfQ0KDQogICAgICAgIFtEYXRhTWVtYmVyKE5hbWUgPSAicnVsZU5hbWUiLCBJc1JlcXVpcmVkID0gdHJ1ZSwgRW1pdERlZmF1bHRWYWx1ZSA9IHRydWUpXQ0KICAgICAgICBwdWJsaWMgc3RyaW5nIFJ1bGVOYW1lIHsgZ2V0OyBzZXQ7IH0NCg0KICAgICAgICBbRGF0YU1lbWJlcihOYW1lID0gInJ1bGVTZXZlcml0eSIsIElzUmVxdWlyZWQgPSBmYWxzZSwgRW1pdERlZmF1bHRWYWx1ZSA9IHRydWUpXQ0KICAgICAgICBwdWJsaWMgc3RyaW5nIFJ1bGVTZXZlcml0eSB7IGdldDsgc2V0OyB9DQoNCiAgICAgICAgW0RhdGFNZW1iZXIoTmFtZSA9ICJzdGFydFBvc2l0aW9uIiwgSXNSZXF1aXJlZCA9IGZhbHNlLCBFbWl0RGVmYXVsdFZhbHVlID0gdHJ1ZSldDQogICAgICAgIHB1YmxpYyBUU0xpbnRMb2dQb3NpdGlvbiBTdGFydFBvc2l0aW9uIHsgZ2V0OyBzZXQ7IH0NCg0KICAgICAgICBbRGF0YU1lbWJlcihOYW1lID0gImVuZFBvc2l0aW9uIiwgSXNSZXF1aXJlZCA9IGZhbHNlLCBFbWl0RGVmYXVsdFZhbHVlID0gdHJ1ZSldDQogICAgICAgIHB1YmxpYyBUU0xpbnRMb2dQb3NpdGlvbiBFbmRQb3NpdGlvbiB7IGdldDsgc2V0OyB9DQoNCiAgICAgICAgW0RhdGFNZW1iZXIoTmFtZSA9ICJmaXgiLCBJc1JlcXVpcmVkID0gZmFsc2UsIEVtaXREZWZhdWx0VmFsdWUgPSB0cnVlKV0NCiAgICAgICAgcHVibGljIElMaXN0PFRTTGludExvZ0ZpeD4gRml4ZXMgeyBnZXQ7IHNldDsgfQ0KICAgIH0NCn0NCg==" + { + "ruleId": "CA1020", + "message": { + "text": "Consider merging the types defined in 'Microsoft.CodeAnalysis.Sarif.Writers' with another namespace." }, - "hashes": [ - { - "value": "AD20A342981F18D6827179A59843E423", - "algorithm": "md5" - }, - { - "value": "9DFB2197A816DE167AADEA29237CEC239E79E30B", - "algorithm": "sha-1" - }, + "locations": [ { - "value": "670DEFD399EEAD411379ED492D2C7A2F464B017A902458F4C234F225A88C26F5", - "algorithm": "sha-256" + "logicalLocations": [ + { + "index": 15, + "fullyQualifiedName": "Microsoft.CodeAnalysis.Sarif.Writers" + } + ] } - ] - }, - "#$(ProjectDir)#../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll": { - "mimeType": "application/octet-stream" + ], + "properties": { + "Category": "Microsoft.Design", + "FixCategory": "Breaking" + } }, - "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/Attachment.cs": { - "mimeType": "text/x-csharp", - "contents": { - "binary": "Ly8gQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQuICBBbGwgUmlnaHRzIFJlc2VydmVkLg0KLy8gTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlLiBTZWUgTElDRU5TRSBmaWxlIGluIHRoZSBwcm9qZWN0IHJvb3QgZm9yIGZ1bGwgbGljZW5zZSBpbmZvcm1hdGlvbi4NCg0KdXNpbmcgU3lzdGVtOw0KdXNpbmcgU3lzdGVtLkNvZGVEb20uQ29tcGlsZXI7DQp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsNCnVzaW5nIFN5c3RlbS5SdW50aW1lLlNlcmlhbGl6YXRpb247DQoNCm5hbWVzcGFjZSBNaWNyb3NvZnQuQ29kZUFuYWx5c2lzLlNhcmlmDQp7DQogICAgLy8vIDxzdW1tYXJ5Pg0KICAgIC8vLyBBIGZpbGUgcmVsZXZhbnQgdG8gYSB0b29sIGludm9jYXRpb24gb3IgdG8gYSByZXN1bHQuDQogICAgLy8vIDwvc3VtbWFyeT4NCiAgICBbRGF0YUNvbnRyYWN0XQ0KICAgIFtHZW5lcmF0ZWRDb2RlKCJNaWNyb3NvZnQuSnNvbi5TY2hlbWEuVG9Eb3ROZXQiLCAiMC41Ni4wLjAiKV0NCiAgICBwdWJsaWMgcGFydGlhbCBjbGFzcyBBdHRhY2htZW50IDogSVNhcmlmTm9kZQ0KICAgIHsNCiAgICAgICAgcHVibGljIHN0YXRpYyBJRXF1YWxpdHlDb21wYXJlcjxBdHRhY2htZW50PiBWYWx1ZUNvbXBhcmVyID0+IEF0dGFjaG1lbnRFcXVhbGl0eUNvbXBhcmVyLkluc3RhbmNlOw0KDQogICAgICAgIHB1YmxpYyBib29sIFZhbHVlRXF1YWxzKEF0dGFjaG1lbnQgb3RoZXIpID0+IFZhbHVlQ29tcGFyZXIuRXF1YWxzKHRoaXMsIG90aGVyKTsNCiAgICAgICAgcHVibGljIGludCBWYWx1ZUdldEhhc2hDb2RlKCkgPT4gVmFsdWVDb21wYXJlci5HZXRIYXNoQ29kZSh0aGlzKTsNCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBHZXRzIGEgdmFsdWUgaW5kaWNhdGluZyB0aGUgdHlwZSBvZiBvYmplY3QgaW1wbGVtZW50aW5nIDxzZWUgY3JlZj0iSVNhcmlmTm9kZSIgLz4uDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIHB1YmxpYyBTYXJpZk5vZGVLaW5kIFNhcmlmTm9kZUtpbmQNCiAgICAgICAgew0KICAgICAgICAgICAgZ2V0DQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgcmV0dXJuIFNhcmlmTm9kZUtpbmQuQXR0YWNobWVudDsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIEEgbWVzc2FnZSBkZXNjcmliaW5nIHRoZSByb2xlIHBsYXllZCBieSB0aGUgYXR0YWNobWVudC4NCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgW0RhdGFNZW1iZXIoTmFtZSA9ICJkZXNjcmlwdGlvbiIsIElzUmVxdWlyZWQgPSBmYWxzZSwgRW1pdERlZmF1bHRWYWx1ZSA9IGZhbHNlKV0NCiAgICAgICAgcHVibGljIE1lc3NhZ2UgRGVzY3JpcHRpb24geyBnZXQ7IHNldDsgfQ0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIFRoZSBsb2NhdGlvbiBvZiB0aGUgYXR0YWNobWVudC4NCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgW0RhdGFNZW1iZXIoTmFtZSA9ICJmaWxlTG9jYXRpb24iLCBJc1JlcXVpcmVkID0gdHJ1ZSldDQogICAgICAgIHB1YmxpYyBGaWxlTG9jYXRpb24gRmlsZUxvY2F0aW9uIHsgZ2V0OyBzZXQ7IH0NCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBBbiBhcnJheSBvZiByZWdpb25zIG9mIGludGVyZXN0IHdpdGhpbiB0aGUgYXR0YWNobWVudC4NCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgW0RhdGFNZW1iZXIoTmFtZSA9ICJyZWdpb25zIiwgSXNSZXF1aXJlZCA9IGZhbHNlLCBFbWl0RGVmYXVsdFZhbHVlID0gZmFsc2UpXQ0KICAgICAgICBwdWJsaWMgSUxpc3Q8UmVnaW9uPiBSZWdpb25zIHsgZ2V0OyBzZXQ7IH0NCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBBbiBhcnJheSBvZiByZWN0YW5nbGVzIHNwZWNpZnlpbmcgYXJlYXMgb2YgaW50ZXJlc3Qgd2l0aGluIHRoZSBpbWFnZS4NCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgW0RhdGFNZW1iZXIoTmFtZSA9ICJyZWN0YW5nbGVzIiwgSXNSZXF1aXJlZCA9IGZhbHNlLCBFbWl0RGVmYXVsdFZhbHVlID0gZmFsc2UpXQ0KICAgICAgICBwdWJsaWMgSUxpc3Q8UmVjdGFuZ2xlPiBSZWN0YW5nbGVzIHsgZ2V0OyBzZXQ7IH0NCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBJbml0aWFsaXplcyBhIG5ldyBpbnN0YW5jZSBvZiB0aGUgPHNlZSBjcmVmPSJBdHRhY2htZW50IiAvPiBjbGFzcy4NCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgcHVibGljIEF0dGFjaG1lbnQoKQ0KICAgICAgICB7DQogICAgICAgIH0NCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBJbml0aWFsaXplcyBhIG5ldyBpbnN0YW5jZSBvZiB0aGUgPHNlZSBjcmVmPSJBdHRhY2htZW50IiAvPiBjbGFzcyBmcm9tIHRoZSBzdXBwbGllZCB2YWx1ZXMuDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIC8vLyA8cGFyYW0gbmFtZT0iZGVzY3JpcHRpb24iPg0KICAgICAgICAvLy8gQW4gaW5pdGlhbGl6YXRpb24gdmFsdWUgZm9yIHRoZSA8c2VlIGNyZWY9IlA6IERlc2NyaXB0aW9uIiAvPiBwcm9wZXJ0eS4NCiAgICAgICAgLy8vIDwvcGFyYW0+DQogICAgICAgIC8vLyA8cGFyYW0gbmFtZT0iZmlsZUxvY2F0aW9uIj4NCiAgICAgICAgLy8vIEFuIGluaXRpYWxpemF0aW9uIHZhbHVlIGZvciB0aGUgPHNlZSBjcmVmPSJQOiBGaWxlTG9jYXRpb24iIC8+IHByb3BlcnR5Lg0KICAgICAgICAvLy8gPC9wYXJhbT4NCiAgICAgICAgLy8vIDxwYXJhbSBuYW1lPSJyZWdpb25zIj4NCiAgICAgICAgLy8vIEFuIGluaXRpYWxpemF0aW9uIHZhbHVlIGZvciB0aGUgPHNlZSBjcmVmPSJQOiBSZWdpb25zIiAvPiBwcm9wZXJ0eS4NCiAgICAgICAgLy8vIDwvcGFyYW0+DQogICAgICAgIC8vLyA8cGFyYW0gbmFtZT0icmVjdGFuZ2xlcyI+DQogICAgICAgIC8vLyBBbiBpbml0aWFsaXphdGlvbiB2YWx1ZSBmb3IgdGhlIDxzZWUgY3JlZj0iUDogUmVjdGFuZ2xlcyIgLz4gcHJvcGVydHkuDQogICAgICAgIC8vLyA8L3BhcmFtPg0KICAgICAgICBwdWJsaWMgQXR0YWNobWVudChNZXNzYWdlIGRlc2NyaXB0aW9uLCBGaWxlTG9jYXRpb24gZmlsZUxvY2F0aW9uLCBJRW51bWVyYWJsZTxSZWdpb24+IHJlZ2lvbnMsIElFbnVtZXJhYmxlPFJlY3RhbmdsZT4gcmVjdGFuZ2xlcykNCiAgICAgICAgew0KICAgICAgICAgICAgSW5pdChkZXNjcmlwdGlvbiwgZmlsZUxvY2F0aW9uLCByZWdpb25zLCByZWN0YW5nbGVzKTsNCiAgICAgICAgfQ0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIEluaXRpYWxpemVzIGEgbmV3IGluc3RhbmNlIG9mIHRoZSA8c2VlIGNyZWY9IkF0dGFjaG1lbnQiIC8+IGNsYXNzIGZyb20gdGhlIHNwZWNpZmllZCBpbnN0YW5jZS4NCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgLy8vIDxwYXJhbSBuYW1lPSJvdGhlciI+DQogICAgICAgIC8vLyBUaGUgaW5zdGFuY2UgZnJvbSB3aGljaCB0aGUgbmV3IGluc3RhbmNlIGlzIHRvIGJlIGluaXRpYWxpemVkLg0KICAgICAgICAvLy8gPC9wYXJhbT4NCiAgICAgICAgLy8vIDxleGNlcHRpb24gY3JlZj0iQXJndW1lbnROdWxsRXhjZXB0aW9uIj4NCiAgICAgICAgLy8vIFRocm93biBpZiA8cGFyYW1yZWYgbmFtZT0ib3RoZXIiIC8+IGlzIG51bGwuDQogICAgICAgIC8vLyA8L2V4Y2VwdGlvbj4NCiAgICAgICAgcHVibGljIEF0dGFjaG1lbnQoQXR0YWNobWVudCBvdGhlcikNCiAgICAgICAgew0KICAgICAgICAgICAgaWYgKG90aGVyID09IG51bGwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgdGhyb3cgbmV3IEFyZ3VtZW50TnVsbEV4Y2VwdGlvbihuYW1lb2Yob3RoZXIpKTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgSW5pdChvdGhlci5EZXNjcmlwdGlvbiwgb3RoZXIuRmlsZUxvY2F0aW9uLCBvdGhlci5SZWdpb25zLCBvdGhlci5SZWN0YW5nbGVzKTsNCiAgICAgICAgfQ0KDQogICAgICAgIElTYXJpZk5vZGUgSVNhcmlmTm9kZS5EZWVwQ2xvbmUoKQ0KICAgICAgICB7DQogICAgICAgICAgICByZXR1cm4gRGVlcENsb25lQ29yZSgpOw0KICAgICAgICB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gQ3JlYXRlcyBhIGRlZXAgY29weSBvZiB0aGlzIGluc3RhbmNlLg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICBwdWJsaWMgQXR0YWNobWVudCBEZWVwQ2xvbmUoKQ0KICAgICAgICB7DQogICAgICAgICAgICByZXR1cm4gKEF0dGFjaG1lbnQpRGVlcENsb25lQ29yZSgpOw0KICAgICAgICB9DQoNCiAgICAgICAgcHJpdmF0ZSBJU2FyaWZOb2RlIERlZXBDbG9uZUNvcmUoKQ0KICAgICAgICB7DQogICAgICAgICAgICByZXR1cm4gbmV3IEF0dGFjaG1lbnQodGhpcyk7DQogICAgICAgIH0NCg0KICAgICAgICBwcml2YXRlIHZvaWQgSW5pdChNZXNzYWdlIGRlc2NyaXB0aW9uLCBGaWxlTG9jYXRpb24gZmlsZUxvY2F0aW9uLCBJRW51bWVyYWJsZTxSZWdpb24+IHJlZ2lvbnMsIElFbnVtZXJhYmxlPFJlY3RhbmdsZT4gcmVjdGFuZ2xlcykNCiAgICAgICAgew0KICAgICAgICAgICAgaWYgKGRlc2NyaXB0aW9uICE9IG51bGwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgRGVzY3JpcHRpb24gPSBuZXcgTWVzc2FnZShkZXNjcmlwdGlvbik7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIGlmIChmaWxlTG9jYXRpb24gIT0gbnVsbCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBGaWxlTG9jYXRpb24gPSBuZXcgRmlsZUxvY2F0aW9uKGZpbGVMb2NhdGlvbik7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIGlmIChyZWdpb25zICE9IG51bGwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgdmFyIGRlc3RpbmF0aW9uXzAgPSBuZXcgTGlzdDxSZWdpb24+KCk7DQogICAgICAgICAgICAgICAgZm9yZWFjaCAodmFyIHZhbHVlXzAgaW4gcmVnaW9ucykNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZV8wID09IG51bGwpDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGRlc3RpbmF0aW9uXzAuQWRkKG51bGwpOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGVsc2UNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgZGVzdGluYXRpb25fMC5BZGQobmV3IFJlZ2lvbih2YWx1ZV8wKSk7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICBSZWdpb25zID0gZGVzdGluYXRpb25fMDsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgaWYgKHJlY3RhbmdsZXMgIT0gbnVsbCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICB2YXIgZGVzdGluYXRpb25fMSA9IG5ldyBMaXN0PFJlY3RhbmdsZT4oKTsNCiAgICAgICAgICAgICAgICBmb3JlYWNoICh2YXIgdmFsdWVfMSBpbiByZWN0YW5nbGVzKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlXzEgPT0gbnVsbCkNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgZGVzdGluYXRpb25fMS5BZGQobnVsbCk7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgZWxzZQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICBkZXN0aW5hdGlvbl8xLkFkZChuZXcgUmVjdGFuZ2xlKHZhbHVlXzEpKTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgIFJlY3RhbmdsZXMgPSBkZXN0aW5hdGlvbl8xOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgfQ0KfQ==" + { + "ruleId": "CA1704", + "message": { + "text": "Correct the spelling of 'Sarif' in namespace name 'Microsoft.CodeAnalysis.Sarif.Writers'.", + "id": "Namespace" }, - "hashes": [ - { - "value": "0138FEFD8924D9B74F3D6CE4B37A815F", - "algorithm": "md5" - }, - { - "value": "50CFB017B2FDD4C9167CFBB2506FE16F83D776D9", - "algorithm": "sha-1" - }, + "locations": [ { - "value": "0E65AB3BD57908AB3AF44E3F31222C4FEADC9E5D70A7E0977F09643BDB2356B0", - "algorithm": "sha-256" + "logicalLocations": [ + { + "index": 15, + "fullyQualifiedName": "Microsoft.CodeAnalysis.Sarif.Writers" + } + ] } - ] + ], + "partialFingerprints": { + "UniqueId": "Sarif#Namespace" + }, + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" + } }, - "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/CodeFlow.cs": { - "mimeType": "text/x-csharp", - "contents": { - "binary": "Ly8gQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQuICBBbGwgUmlnaHRzIFJlc2VydmVkLg0KLy8gTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlLiBTZWUgTElDRU5TRSBmaWxlIGluIHRoZSBwcm9qZWN0IHJvb3QgZm9yIGZ1bGwgbGljZW5zZSBpbmZvcm1hdGlvbi4NCg0KdXNpbmcgU3lzdGVtOw0KdXNpbmcgU3lzdGVtLkNvZGVEb20uQ29tcGlsZXI7DQp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsNCnVzaW5nIFN5c3RlbS5SdW50aW1lLlNlcmlhbGl6YXRpb247DQp1c2luZyBNaWNyb3NvZnQuQ29kZUFuYWx5c2lzLlNhcmlmLlJlYWRlcnM7DQoNCm5hbWVzcGFjZSBNaWNyb3NvZnQuQ29kZUFuYWx5c2lzLlNhcmlmDQp7DQogICAgLy8vIDxzdW1tYXJ5Pg0KICAgIC8vLyBBIHNldCBvZiB0aHJlYWRGbG93cyB3aGljaCB0b2dldGhlciBkZXNjcmliZSBhIHBhdHRlcm4gb2YgY29kZSBleGVjdXRpb24gcmVsZXZhbnQgdG8gZGV0ZWN0aW5nIGEgcmVzdWx0Lg0KICAgIC8vLyA8L3N1bW1hcnk+DQogICAgW0RhdGFDb250cmFjdF0NCiAgICBbR2VuZXJhdGVkQ29kZSgiTWljcm9zb2Z0Lkpzb24uU2NoZW1hLlRvRG90TmV0IiwgIjAuNTYuMC4wIildDQogICAgcHVibGljIHBhcnRpYWwgY2xhc3MgQ29kZUZsb3cgOiBQcm9wZXJ0eUJhZ0hvbGRlciwgSVNhcmlmTm9kZQ0KICAgIHsNCiAgICAgICAgcHVibGljIHN0YXRpYyBJRXF1YWxpdHlDb21wYXJlcjxDb2RlRmxvdz4gVmFsdWVDb21wYXJlciA9PiBDb2RlRmxvd0VxdWFsaXR5Q29tcGFyZXIuSW5zdGFuY2U7DQoNCiAgICAgICAgcHVibGljIGJvb2wgVmFsdWVFcXVhbHMoQ29kZUZsb3cgb3RoZXIpID0+IFZhbHVlQ29tcGFyZXIuRXF1YWxzKHRoaXMsIG90aGVyKTsNCiAgICAgICAgcHVibGljIGludCBWYWx1ZUdldEhhc2hDb2RlKCkgPT4gVmFsdWVDb21wYXJlci5HZXRIYXNoQ29kZSh0aGlzKTsNCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBHZXRzIGEgdmFsdWUgaW5kaWNhdGluZyB0aGUgdHlwZSBvZiBvYmplY3QgaW1wbGVtZW50aW5nIDxzZWUgY3JlZj0iSVNhcmlmTm9kZSIgLz4uDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIHB1YmxpYyBTYXJpZk5vZGVLaW5kIFNhcmlmTm9kZUtpbmQNCiAgICAgICAgew0KICAgICAgICAgICAgZ2V0DQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgcmV0dXJuIFNhcmlmTm9kZUtpbmQuQ29kZUZsb3c7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBBIG1lc3NhZ2UgcmVsZXZhbnQgdG8gdGhlIGNvZGUgZmxvdy4NCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgW0RhdGFNZW1iZXIoTmFtZSA9ICJtZXNzYWdlIiwgSXNSZXF1aXJlZCA9IGZhbHNlLCBFbWl0RGVmYXVsdFZhbHVlID0gZmFsc2UpXQ0KICAgICAgICBwdWJsaWMgTWVzc2FnZSBNZXNzYWdlIHsgZ2V0OyBzZXQ7IH0NCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBBbiBhcnJheSBvZiBvbmUgb3IgbW9yZSB1bmlxdWUgdGhyZWFkRmxvdyBvYmplY3RzLCBlYWNoIG9mIHdoaWNoIGRlc2NyaWJlcyB0aGUgcHJvZ3Jlc3Mgb2YgYSBwcm9ncmFtIHRocm91Z2ggYSB0aHJlYWQgb2YgZXhlY3V0aW9uLg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICBbRGF0YU1lbWJlcihOYW1lID0gInRocmVhZEZsb3dzIiwgSXNSZXF1aXJlZCA9IHRydWUpXQ0KICAgICAgICBwdWJsaWMgSUxpc3Q8VGhyZWFkRmxvdz4gVGhyZWFkRmxvd3MgeyBnZXQ7IHNldDsgfQ0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIEtleS92YWx1ZSBwYWlycyB0aGF0IHByb3ZpZGUgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiBhYm91dCB0aGUgY29kZSBmbG93Lg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICBbRGF0YU1lbWJlcihOYW1lID0gInByb3BlcnRpZXMiLCBJc1JlcXVpcmVkID0gZmFsc2UsIEVtaXREZWZhdWx0VmFsdWUgPSBmYWxzZSldDQogICAgICAgIGludGVybmFsIG92ZXJyaWRlIElEaWN0aW9uYXJ5PHN0cmluZywgU2VyaWFsaXplZFByb3BlcnR5SW5mbz4gUHJvcGVydGllcyB7IGdldDsgc2V0OyB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gSW5pdGlhbGl6ZXMgYSBuZXcgaW5zdGFuY2Ugb2YgdGhlIDxzZWUgY3JlZj0iQ29kZUZsb3ciIC8+IGNsYXNzLg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICBwdWJsaWMgQ29kZUZsb3coKQ0KICAgICAgICB7DQogICAgICAgIH0NCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBJbml0aWFsaXplcyBhIG5ldyBpbnN0YW5jZSBvZiB0aGUgPHNlZSBjcmVmPSJDb2RlRmxvdyIgLz4gY2xhc3MgZnJvbSB0aGUgc3VwcGxpZWQgdmFsdWVzLg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICAvLy8gPHBhcmFtIG5hbWU9Im1lc3NhZ2UiPg0KICAgICAgICAvLy8gQW4gaW5pdGlhbGl6YXRpb24gdmFsdWUgZm9yIHRoZSA8c2VlIGNyZWY9IlA6IE1lc3NhZ2UiIC8+IHByb3BlcnR5Lg0KICAgICAgICAvLy8gPC9wYXJhbT4NCiAgICAgICAgLy8vIDxwYXJhbSBuYW1lPSJ0aHJlYWRGbG93cyI+DQogICAgICAgIC8vLyBBbiBpbml0aWFsaXphdGlvbiB2YWx1ZSBmb3IgdGhlIDxzZWUgY3JlZj0iUDogVGhyZWFkRmxvd3MiIC8+IHByb3BlcnR5Lg0KICAgICAgICAvLy8gPC9wYXJhbT4NCiAgICAgICAgLy8vIDxwYXJhbSBuYW1lPSJwcm9wZXJ0aWVzIj4NCiAgICAgICAgLy8vIEFuIGluaXRpYWxpemF0aW9uIHZhbHVlIGZvciB0aGUgPHNlZSBjcmVmPSJQOiBQcm9wZXJ0aWVzIiAvPiBwcm9wZXJ0eS4NCiAgICAgICAgLy8vIDwvcGFyYW0+DQogICAgICAgIHB1YmxpYyBDb2RlRmxvdyhNZXNzYWdlIG1lc3NhZ2UsIElFbnVtZXJhYmxlPFRocmVhZEZsb3c+IHRocmVhZEZsb3dzLCBJRGljdGlvbmFyeTxzdHJpbmcsIFNlcmlhbGl6ZWRQcm9wZXJ0eUluZm8+IHByb3BlcnRpZXMpDQogICAgICAgIHsNCiAgICAgICAgICAgIEluaXQobWVzc2FnZSwgdGhyZWFkRmxvd3MsIHByb3BlcnRpZXMpOw0KICAgICAgICB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gSW5pdGlhbGl6ZXMgYSBuZXcgaW5zdGFuY2Ugb2YgdGhlIDxzZWUgY3JlZj0iQ29kZUZsb3ciIC8+IGNsYXNzIGZyb20gdGhlIHNwZWNpZmllZCBpbnN0YW5jZS4NCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgLy8vIDxwYXJhbSBuYW1lPSJvdGhlciI+DQogICAgICAgIC8vLyBUaGUgaW5zdGFuY2UgZnJvbSB3aGljaCB0aGUgbmV3IGluc3RhbmNlIGlzIHRvIGJlIGluaXRpYWxpemVkLg0KICAgICAgICAvLy8gPC9wYXJhbT4NCiAgICAgICAgLy8vIDxleGNlcHRpb24gY3JlZj0iQXJndW1lbnROdWxsRXhjZXB0aW9uIj4NCiAgICAgICAgLy8vIFRocm93biBpZiA8cGFyYW1yZWYgbmFtZT0ib3RoZXIiIC8+IGlzIG51bGwuDQogICAgICAgIC8vLyA8L2V4Y2VwdGlvbj4NCiAgICAgICAgcHVibGljIENvZGVGbG93KENvZGVGbG93IG90aGVyKQ0KICAgICAgICB7DQogICAgICAgICAgICBpZiAob3RoZXIgPT0gbnVsbCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgQXJndW1lbnROdWxsRXhjZXB0aW9uKG5hbWVvZihvdGhlcikpOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBJbml0KG90aGVyLk1lc3NhZ2UsIG90aGVyLlRocmVhZEZsb3dzLCBvdGhlci5Qcm9wZXJ0aWVzKTsNCiAgICAgICAgfQ0KDQogICAgICAgIElTYXJpZk5vZGUgSVNhcmlmTm9kZS5EZWVwQ2xvbmUoKQ0KICAgICAgICB7DQogICAgICAgICAgICByZXR1cm4gRGVlcENsb25lQ29yZSgpOw0KICAgICAgICB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gQ3JlYXRlcyBhIGRlZXAgY29weSBvZiB0aGlzIGluc3RhbmNlLg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICBwdWJsaWMgQ29kZUZsb3cgRGVlcENsb25lKCkNCiAgICAgICAgew0KICAgICAgICAgICAgcmV0dXJuIChDb2RlRmxvdylEZWVwQ2xvbmVDb3JlKCk7DQogICAgICAgIH0NCg0KICAgICAgICBwcml2YXRlIElTYXJpZk5vZGUgRGVlcENsb25lQ29yZSgpDQogICAgICAgIHsNCiAgICAgICAgICAgIHJldHVybiBuZXcgQ29kZUZsb3codGhpcyk7DQogICAgICAgIH0NCg0KICAgICAgICBwcml2YXRlIHZvaWQgSW5pdChNZXNzYWdlIG1lc3NhZ2UsIElFbnVtZXJhYmxlPFRocmVhZEZsb3c+IHRocmVhZEZsb3dzLCBJRGljdGlvbmFyeTxzdHJpbmcsIFNlcmlhbGl6ZWRQcm9wZXJ0eUluZm8+IHByb3BlcnRpZXMpDQogICAgICAgIHsNCiAgICAgICAgICAgIGlmIChtZXNzYWdlICE9IG51bGwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgTWVzc2FnZSA9IG5ldyBNZXNzYWdlKG1lc3NhZ2UpOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBpZiAodGhyZWFkRmxvd3MgIT0gbnVsbCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICB2YXIgZGVzdGluYXRpb25fMCA9IG5ldyBMaXN0PFRocmVhZEZsb3c+KCk7DQogICAgICAgICAgICAgICAgZm9yZWFjaCAodmFyIHZhbHVlXzAgaW4gdGhyZWFkRmxvd3MpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWVfMCA9PSBudWxsKQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICBkZXN0aW5hdGlvbl8wLkFkZChudWxsKTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBlbHNlDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGRlc3RpbmF0aW9uXzAuQWRkKG5ldyBUaHJlYWRGbG93KHZhbHVlXzApKTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgIFRocmVhZEZsb3dzID0gZGVzdGluYXRpb25fMDsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgaWYgKHByb3BlcnRpZXMgIT0gbnVsbCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBQcm9wZXJ0aWVzID0gbmV3IERpY3Rpb25hcnk8c3RyaW5nLCBTZXJpYWxpemVkUHJvcGVydHlJbmZvPihwcm9wZXJ0aWVzKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgIH0NCn0=" + { + "ruleId": "CA1020", + "message": { + "text": "Consider merging the types defined in 'Microsoft.CodeAnalysisDriver' with another namespace." }, - "hashes": [ - { - "value": "461FBFDF16CD39A5865878EDB6710076", - "algorithm": "md5" - }, + "locations": [ { - "value": "B5D6F01AB53A87CBD0C9F967B00ED429A687169F", - "algorithm": "sha-1" - }, - { - "value": "EB0DE7E76B869598081D182C37DCBE1E68AFB4FACF24FAEB28AF2799394CD7CF", - "algorithm": "sha-256" + "logicalLocations": [ + { + "index": 16, + "fullyQualifiedName": "Microsoft.CodeAnalysisDriver" + } + ] } - ] + ], + "properties": { + "Category": "Microsoft.Design", + "FixCategory": "Breaking" + } }, - "file:///E:/src/sarif-sdk-test/src/Sarif/ConsoleLogger.cs": { - "mimeType": "text/x-csharp", - "contents": { - "binary": "77u/Ly8gQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuDQovLyBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UuIFNlZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHByb2plY3Qgcm9vdCBmb3IgZnVsbCBsaWNlbnNlIGluZm9ybWF0aW9uLg0KDQp1c2luZyBTeXN0ZW07DQp1c2luZyBTeXN0ZW0uR2xvYmFsaXphdGlvbjsNCnVzaW5nIFN5c3RlbS5MaW5xOw0KdXNpbmcgU3lzdGVtLlRleHQ7DQoNCm5hbWVzcGFjZSBNaWNyb3NvZnQuQ29kZUFuYWx5c2lzLlNhcmlmDQp7DQogICAgcHVibGljIGNsYXNzIENvbnNvbGVMb2dnZXIgOiBJQW5hbHlzaXNMb2dnZXINCiAgICB7DQogICAgICAgIHB1YmxpYyBDb25zb2xlTG9nZ2VyKGJvb2wgdmVyYm9zZSkNCiAgICAgICAgew0KICAgICAgICAgICAgVmVyYm9zZSA9IHZlcmJvc2U7DQogICAgICAgIH0NCg0KICAgICAgICBwdWJsaWMgYm9vbCBWZXJib3NlIHsgZ2V0OyBzZXQ7IH0NCg0KDQogICAgICAgIHB1YmxpYyB2b2lkIEFuYWx5c2lzU3RhcnRlZCgpDQogICAgICAgIHsNCiAgICAgICAgICAgIENvbnNvbGUuV3JpdGVMaW5lKFNka1Jlc291cmNlcy5NU0dfQW5hbHl6aW5nKTsNCiAgICAgICAgfQ0KDQogICAgICAgIHB1YmxpYyB2b2lkIEFuYWx5c2lzU3RvcHBlZChSdW50aW1lQ29uZGl0aW9ucyBydW50aW1lQ29uZGl0aW9ucykNCiAgICAgICAgew0KICAgICAgICAgICAgUnVudGltZUNvbmRpdGlvbnMgZmF0YWxDb25kaXRpb25zID0gKHJ1bnRpbWVDb25kaXRpb25zICYgflJ1bnRpbWVDb25kaXRpb25zLk5vbmZhdGFsKTsNCg0KICAgICAgICAgICAgaWYgKGZhdGFsQ29uZGl0aW9ucyA9PSBSdW50aW1lQ29uZGl0aW9ucy5Ob25lKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIENvbnNvbGUuV3JpdGVMaW5lKFNka1Jlc291cmNlcy5NU0dfQW5hbHlzaXNDb21wbGV0ZWRTdWNjZXNzZnVsbHkpOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBDb25zb2xlLldyaXRlTGluZSgpOw0KDQogICAgICAgICAgICBpZiAoKHJ1bnRpbWVDb25kaXRpb25zICYgUnVudGltZUNvbmRpdGlvbnMuUnVsZU5vdEFwcGxpY2FibGVUb1RhcmdldCkgIT0gMCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBDb25zb2xlLldyaXRlTGluZShTZGtSZXNvdXJjZXMuTVNHX09uZU9yTW9yZU5vdEFwcGxpY2FibGUpOw0KICAgICAgICAgICAgICAgIENvbnNvbGUuV3JpdGVMaW5lKCk7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIGlmICgocnVudGltZUNvbmRpdGlvbnMgJiBSdW50aW1lQ29uZGl0aW9ucy5UYXJnZXROb3RWYWxpZFRvQW5hbHl6ZSkgIT0gMCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBDb25zb2xlLldyaXRlTGluZShTZGtSZXNvdXJjZXMuTVNHX09uZU9yTW9yZUludmFsaWRUYXJnZXRzKTsNCiAgICAgICAgICAgICAgICBDb25zb2xlLldyaXRlTGluZSgpOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBpZiAoZmF0YWxDb25kaXRpb25zICE9IDApDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgLy8gT25lIG9yIG1vcmUgZmF0YWwgY29uZGl0aW9ucyBvYnNlcnZlZCBhdCBydW50aW1lLA0KICAgICAgICAgICAgICAgIC8vIHNvIHdlJ2xsIHJlcG9ydCBhIGNhdGFzdHJvcGhpYyBleGl0Lg0KICAgICAgICAgICAgICAgIENvbnNvbGUuV3JpdGVMaW5lKFNka1Jlc291cmNlcy5NU0dfVW5leHBlY3RlZEFwcGxpY2F0aW9uRXhpdCk7DQogICAgICAgICAgICAgICAgQ29uc29sZS5Xcml0ZUxpbmUoU2RrUmVzb3VyY2VzLlVuZXhwZWN0ZWRGYXRhbFJ1bnRpbWVDb25kaXRpb25zICsgZmF0YWxDb25kaXRpb25zLlRvU3RyaW5nKCkpOw0KICAgICAgICAgICAgICAgIENvbnNvbGUuV3JpdGVMaW5lKCk7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICBwdWJsaWMgdm9pZCBBbmFseXppbmdUYXJnZXQoSUFuYWx5c2lzQ29udGV4dCBjb250ZXh0KQ0KICAgICAgICB7DQogICAgICAgICAgICBpZiAoY29udGV4dCA9PSBudWxsKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHRocm93IG5ldyBBcmd1bWVudE51bGxFeGNlcHRpb24obmFtZW9mKGNvbnRleHQpKTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgaWYgKFZlcmJvc2UpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgQ29uc29sZS5Xcml0ZUxpbmUoc3RyaW5nLkZvcm1hdChDdWx0dXJlSW5mby5DdXJyZW50Q3VsdHVyZSwNCiAgICAgICAgICAgICAgICAgICAgU2RrUmVzb3VyY2VzLk1TRzAwMV9BbmFseXppbmdUYXJnZXQsDQogICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0LlRhcmdldFVyaS5HZXRGaWxlTmFtZSgpKSk7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICBwdWJsaWMgdm9pZCBMb2dNZXNzYWdlKGJvb2wgdmVyYm9zZSwgc3RyaW5nIG1lc3NhZ2UpDQogICAgICAgIHsNCiAgICAgICAgICAgIGlmIChWZXJib3NlKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIENvbnNvbGUuV3JpdGVMaW5lKG1lc3NhZ2UpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICAgICAgcHVibGljIHZvaWQgTG9nKElSdWxlIHJ1bGUsIFJlc3VsdCByZXN1bHQpDQogICAgICAgIHsNCiAgICAgICAgICAgIGlmIChyZXN1bHQgPT0gbnVsbCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgQXJndW1lbnROdWxsRXhjZXB0aW9uKG5hbWVvZihyZXN1bHQpKTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgc3RyaW5nIG1lc3NhZ2UgPSByZXN1bHQuR2V0TWVzc2FnZVRleHQocnVsZSwgY29uY2lzZTogZmFsc2UpOw0KDQogICAgICAgICAgICAvLyBUT0RPIHdlIG5lZWQgYmV0dGVyIHJldHJpZXZhbCBmb3IgbG9jYXRpb25zIHRoYW4gdGhlc2UgZGVmYXVsdHMNCiAgICAgICAgICAgIC8vIE5vdGUgdGhhdCB3ZSBjYW4gcG90ZW50aWFsbHkgZW1pdCBtYW55IG1lc3NhZ2VzIGZyb20gYSBzaW5nbGUgcmVzdWx0DQogICAgICAgICAgICBQaHlzaWNhbExvY2F0aW9uIHBoeXNpY2FsTG9jYXRpb24gPSByZXN1bHQuTG9jYXRpb25zPy5GaXJzdCgpLlBoeXNpY2FsTG9jYXRpb247DQoNCiAgICAgICAgICAgIFdyaXRlVG9Db25zb2xlKA0KICAgICAgICAgICAgICAgIHJlc3VsdC5MZXZlbCwNCiAgICAgICAgICAgICAgICBwaHlzaWNhbExvY2F0aW9uPy5GaWxlTG9jYXRpb24/LlVyaSwNCiAgICAgICAgICAgICAgICBwaHlzaWNhbExvY2F0aW9uPy5SZWdpb24sDQogICAgICAgICAgICAgICAgcmVzdWx0LlJ1bGVJZCwNCiAgICAgICAgICAgICAgICBtZXNzYWdlKTsNCiAgICAgICAgfQ0KDQogICAgICAgIHByaXZhdGUgdm9pZCBXcml0ZVRvQ29uc29sZShSZXN1bHRMZXZlbCBsZXZlbCwgVXJpIHVyaSwgUmVnaW9uIHJlZ2lvbiwgc3RyaW5nIHJ1bGVJZCwgc3RyaW5nIG1lc3NhZ2UpDQogICAgICAgIHsNCiAgICAgICAgICAgIHN3aXRjaCAobGV2ZWwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgLy8gVGhlc2UgcmVzdWx0IHR5cGVzIGFyZSBvcHRpb25hbGx5IGVtaXR0ZWQuDQogICAgICAgICAgICAgICAgY2FzZSBSZXN1bHRMZXZlbC5QYXNzOg0KICAgICAgICAgICAgICAgIGNhc2UgUmVzdWx0TGV2ZWwuTm90ZToNCiAgICAgICAgICAgICAgICBjYXNlIFJlc3VsdExldmVsLk5vdEFwcGxpY2FibGU6DQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChWZXJib3NlKQ0KICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbnNvbGUuV3JpdGVMaW5lKEdldE1lc3NhZ2VUZXh0KHVyaSwgcmVnaW9uLCBydWxlSWQsIG1lc3NhZ2UsIGxldmVsKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgLy8gVGhlc2UgcmVzdWx0IHR5cGVzIGFyZSBhbHdheXMgZW1pdHRlZC4NCiAgICAgICAgICAgICAgICBjYXNlIFJlc3VsdExldmVsLkVycm9yOg0KICAgICAgICAgICAgICAgIGNhc2UgUmVzdWx0TGV2ZWwuV2FybmluZzoNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgQ29uc29sZS5Xcml0ZUxpbmUoR2V0TWVzc2FnZVRleHQodXJpLCByZWdpb24sIHJ1bGVJZCwgbWVzc2FnZSwgbGV2ZWwpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSW52YWxpZE9wZXJhdGlvbkV4Y2VwdGlvbigpOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICBwcml2YXRlIHN0YXRpYyBzdHJpbmcgR2V0TWVzc2FnZVRleHQoDQogICAgICAgICAgICBVcmkgdXJpLA0KICAgICAgICAgICAgUmVnaW9uIHJlZ2lvbiwNCiAgICAgICAgICAgIHN0cmluZyBydWxlSWQsDQogICAgICAgICAgICBzdHJpbmcgbWVzc2FnZSwNCiAgICAgICAgICAgIFJlc3VsdExldmVsIHJlc3VsdExldmVsKQ0KICAgICAgICB7DQogICAgICAgICAgICBzdHJpbmcgcGF0aCA9IG51bGw7DQoNCiAgICAgICAgICAgIGlmICh1cmkgIT0gbnVsbCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAvLyBJZiBhIHBhdGggcmVmZXJzIHRvIGEgVVJJIG9mIGZvcm0gZmlsZTovL2JsYWgsIHdlIHdpbGwgY29udmVydCB0byB0aGUgbG9jYWwgcGF0aCAgICAgICAgICAgDQogICAgICAgICAgICAgICAgaWYgKHVyaS5Jc0Fic29sdXRlVXJpICYmIHVyaS5TY2hlbWUgPT0gVXJpLlVyaVNjaGVtZUZpbGUpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBwYXRoID0gdXJpLkxvY2FsUGF0aDsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgZWxzZQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgcGF0aCA9IHVyaS5Ub1N0cmluZygpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgc3RyaW5nIGlzc3VlVHlwZSA9IG51bGw7DQoNCiAgICAgICAgICAgIHN3aXRjaCAocmVzdWx0TGV2ZWwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgY2FzZSBSZXN1bHRMZXZlbC5FcnJvcjoNCiAgICAgICAgICAgICAgICAgICAgaXNzdWVUeXBlID0gImVycm9yIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQoNCiAgICAgICAgICAgICAgICBjYXNlIFJlc3VsdExldmVsLldhcm5pbmc6DQogICAgICAgICAgICAgICAgICAgIGlzc3VlVHlwZSA9ICJ3YXJuaW5nIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQoNCiAgICAgICAgICAgICAgICBjYXNlIFJlc3VsdExldmVsLlBhc3M6DQogICAgICAgICAgICAgICAgICAgIGlzc3VlVHlwZSA9ICJwYXNzIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQoNCiAgICAgICAgICAgICAgICBjYXNlIFJlc3VsdExldmVsLk5vdEFwcGxpY2FibGU6DQogICAgICAgICAgICAgICAgY2FzZSBSZXN1bHRMZXZlbC5Ob3RlOg0KICAgICAgICAgICAgICAgICAgICBpc3N1ZVR5cGUgPSAiaW5mbyI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KDQogICAgICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEludmFsaWRPcGVyYXRpb25FeGNlcHRpb24oIlVua25vd24gbWVzc2FnZSBraW5kOiIgKyByZXN1bHRMZXZlbC5Ub1N0cmluZygpKTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgc3RyaW5nIGRldGFpbGVkRGlhZ25vc2lzID0gTm9ybWFsaXplTWVzc2FnZShtZXNzYWdlLCBlbnF1b3RlOiBmYWxzZSk7DQoNCiAgICAgICAgICAgIHN0cmluZyBsb2NhdGlvbiA9ICIiOw0KDQogICAgICAgICAgICBpZiAocmVnaW9uICE9IG51bGwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgLy8gVE9ETyANCiAgICAgICAgICAgICAgICBpZiAocmVnaW9uLkNoYXJPZmZzZXQgPiAwIHx8DQogICAgICAgICAgICAgICAgICAgIHJlZ2lvbi5CeXRlT2Zmc2V0ID4gMCB8fA0KICAgICAgICAgICAgICAgICAgICByZWdpb24uU3RhcnRDb2x1bW4gPT0gMCkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIHJldHVybiBzdHJpbmcuRW1wdHk7DQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgaWYgKHJlZ2lvbi5TdGFydExpbmUgPT0gMCkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbnZhbGlkT3BlcmF0aW9uRXhjZXB0aW9uKCk7DQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgbG9jYXRpb24gPSByZWdpb24uRm9ybWF0Rm9yVmlzdWFsU3R1ZGlvKCk7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIHN0cmluZyByZXN1bHQgPSAocGF0aCAhPSBudWxsID8gKHBhdGggKyBsb2NhdGlvbiArICI6ICIpIDogIiIpICsNCiAgICAgICAgICAgICAgICAgICBpc3N1ZVR5cGUgKyAoIXN0cmluZy5Jc051bGxPckVtcHR5KHJ1bGVJZCkgPyAiICIgOiAiIikgKw0KICAgICAgICAgICAgICAgICAgICghc3RyaW5nLklzTnVsbE9yRW1wdHkocnVsZUlkKSA/IChydWxlSWQgKyAiOiAiKSA6ICIiKSArDQogICAgICAgICAgICAgICAgICAgZGV0YWlsZWREaWFnbm9zaXM7DQoNCiAgICAgICAgICAgIHJldHVybiByZXN1bHQ7DQogICAgICAgIH0NCg0KICAgICAgICBwdWJsaWMgc3RhdGljIHN0cmluZyBOb3JtYWxpemVNZXNzYWdlKHN0cmluZyBtZXNzYWdlLCBib29sIGVucXVvdGUpDQogICAgICAgIHsNCiAgICAgICAgICAgIGlmIChtZXNzYWdlID09IG51bGwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgdGhyb3cgbmV3IEFyZ3VtZW50TnVsbEV4Y2VwdGlvbihuYW1lb2YobWVzc2FnZSkpOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICByZXR1cm4gKGVucXVvdGUgPyAiXCIiIDogIiIpICsNCiAgICAgICAgICAgICAgICBtZXNzYWdlICsNCiAgICAgICAgICAgICAgICAoZW5xdW90ZSA/ICJcIiIgOiAiIik7DQogICAgICAgIH0NCg0KICAgICAgICBwdWJsaWMgdm9pZCBMb2dUb29sTm90aWZpY2F0aW9uKE5vdGlmaWNhdGlvbiBub3RpZmljYXRpb24pDQogICAgICAgIHsNCiAgICAgICAgICAgIFdyaXRlVG9Db25zb2xlKG5vdGlmaWNhdGlvbik7DQogICAgICAgIH0NCg0KICAgICAgICBwdWJsaWMgdm9pZCBMb2dDb25maWd1cmF0aW9uTm90aWZpY2F0aW9uKE5vdGlmaWNhdGlvbiBub3RpZmljYXRpb24pDQogICAgICAgIHsNCiAgICAgICAgICAgIFdyaXRlVG9Db25zb2xlKG5vdGlmaWNhdGlvbik7DQogICAgICAgIH0NCg0KICAgICAgICBwcml2YXRlIHZvaWQgV3JpdGVUb0NvbnNvbGUoTm90aWZpY2F0aW9uIG5vdGlmaWNhdGlvbikNCiAgICAgICAgew0KICAgICAgICAgICAgc3dpdGNoIChub3RpZmljYXRpb24uTGV2ZWwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgLy8gVGhpcyBub3RpZmljYXRpb24gdHlwZSBpcyBvcHRpb25hbGx5IGVtaXR0ZWQuDQogICAgICAgICAgICAgICAgY2FzZSBOb3RpZmljYXRpb25MZXZlbC5Ob3RlOg0KICAgICAgICAgICAgICAgICAgICBpZiAoVmVyYm9zZSkNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgQ29uc29sZS5Xcml0ZUxpbmUoRm9ybWF0Tm90aWZpY2F0aW9uTWVzc2FnZShub3RpZmljYXRpb24pKTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCg0KICAgICAgICAgICAgICAgIC8vIFRoZXNlIG5vdGlmaWNhdGlvbiB0eXBlcyBhcmUgYWx3YXlzIGVtaXR0ZWQuDQogICAgICAgICAgICAgICAgY2FzZSBOb3RpZmljYXRpb25MZXZlbC5FcnJvcjoNCiAgICAgICAgICAgICAgICBjYXNlIE5vdGlmaWNhdGlvbkxldmVsLldhcm5pbmc6DQogICAgICAgICAgICAgICAgICAgIENvbnNvbGUuV3JpdGVMaW5lKEZvcm1hdE5vdGlmaWNhdGlvbk1lc3NhZ2Uobm90aWZpY2F0aW9uKSk7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KDQogICAgICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEludmFsaWRPcGVyYXRpb25FeGNlcHRpb24oKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgIHByaXZhdGUgc3RyaW5nIEZvcm1hdE5vdGlmaWNhdGlvbk1lc3NhZ2UoTm90aWZpY2F0aW9uIG5vdGlmaWNhdGlvbikNCiAgICAgICAgew0KICAgICAgICAgICAgc3RyaW5nIGlzc3VlVHlwZSA9IG51bGw7DQoNCiAgICAgICAgICAgIHN3aXRjaCAobm90aWZpY2F0aW9uLkxldmVsKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIGNhc2UgTm90aWZpY2F0aW9uTGV2ZWwuRXJyb3I6DQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBpc3N1ZVR5cGUgPSAiZXJyb3IiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgY2FzZSBOb3RpZmljYXRpb25MZXZlbC5XYXJuaW5nOg0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgaXNzdWVUeXBlID0gIndhcm5pbmciOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgY2FzZSBOb3RpZmljYXRpb25MZXZlbC5Ob3RlOg0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgaXNzdWVUeXBlID0gIm5vdGUiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbnZhbGlkT3BlcmF0aW9uRXhjZXB0aW9uKCJVbmtub3duIG5vdGlmaWNhdGlvbiBsZXZlbDogIiArIG5vdGlmaWNhdGlvbi5MZXZlbCk7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIHZhciBzYiA9IG5ldyBTdHJpbmdCdWlsZGVyKGlzc3VlVHlwZSArICIgIik7DQoNCiAgICAgICAgICAgIGlmICghc3RyaW5nLklzTnVsbE9yRW1wdHkobm90aWZpY2F0aW9uLklkKSkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBzYi5BcHBlbmQobm90aWZpY2F0aW9uLklkICsgIiA6ICIpOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBpZiAoIXN0cmluZy5Jc051bGxPckVtcHR5KG5vdGlmaWNhdGlvbi5SdWxlSWQpKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHNiLkFwcGVuZChub3RpZmljYXRpb24uUnVsZUlkICsgIiA6ICIpOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBzYi5BcHBlbmQobm90aWZpY2F0aW9uLk1lc3NhZ2UuVGV4dCk7DQoNCiAgICAgICAgICAgIHJldHVybiBzYi5Ub1N0cmluZygpOw0KICAgICAgICB9DQogICAgfQ0KfQ==" + { + "ruleId": "CA1020", + "message": { + "text": "Consider merging the types defined in 'Microsoft.Json.Pointer' with another namespace." }, - "hashes": [ - { - "value": "3131B61A60BF1D07BB768FF8508D8231", - "algorithm": "md5" - }, - { - "value": "4F42D9A5AC5160B3AAE84FAE17EA39A00A2E902A", - "algorithm": "sha-1" - }, + "locations": [ { - "value": "E523793EDB38ECF4E7534DA0711697156ED8B89913606AC1AD8FCEE00D68FD14", - "algorithm": "sha-256" + "logicalLocations": [ + { + "index": 17, + "fullyQualifiedName": "Microsoft.Json.Pointer" + } + ] } - ] + ], + "properties": { + "Category": "Microsoft.Design", + "FixCategory": "Breaking" + } }, - "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/Conversion.cs": { - "mimeType": "text/x-csharp", - "contents": { - "binary": "Ly8gQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQuICBBbGwgUmlnaHRzIFJlc2VydmVkLg0KLy8gTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlLiBTZWUgTElDRU5TRSBmaWxlIGluIHRoZSBwcm9qZWN0IHJvb3QgZm9yIGZ1bGwgbGljZW5zZSBpbmZvcm1hdGlvbi4NCg0KdXNpbmcgU3lzdGVtOw0KdXNpbmcgU3lzdGVtLkNvZGVEb20uQ29tcGlsZXI7DQp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsNCnVzaW5nIFN5c3RlbS5SdW50aW1lLlNlcmlhbGl6YXRpb247DQoNCm5hbWVzcGFjZSBNaWNyb3NvZnQuQ29kZUFuYWx5c2lzLlNhcmlmDQp7DQogICAgLy8vIDxzdW1tYXJ5Pg0KICAgIC8vLyBEZXNjcmliZXMgaG93IGEgY29udmVydGVyIHRyYW5zZm9ybWVkIHRoZSBvdXRwdXQgb2YgYSBzdGF0aWMgYW5hbHlzaXMgdG9vbCBmcm9tIHRoZSBhbmFseXNpcyB0b29sJ3MgbmF0aXZlIG91dHB1dCBmb3JtYXQgaW50byB0aGUgU0FSSUYgZm9ybWF0Lg0KICAgIC8vLyA8L3N1bW1hcnk+DQogICAgW0RhdGFDb250cmFjdF0NCiAgICBbR2VuZXJhdGVkQ29kZSgiTWljcm9zb2Z0Lkpzb24uU2NoZW1hLlRvRG90TmV0IiwgIjAuNTYuMC4wIildDQogICAgcHVibGljIHBhcnRpYWwgY2xhc3MgQ29udmVyc2lvbiA6IElTYXJpZk5vZGUNCiAgICB7DQogICAgICAgIHB1YmxpYyBzdGF0aWMgSUVxdWFsaXR5Q29tcGFyZXI8Q29udmVyc2lvbj4gVmFsdWVDb21wYXJlciA9PiBDb252ZXJzaW9uRXF1YWxpdHlDb21wYXJlci5JbnN0YW5jZTsNCg0KICAgICAgICBwdWJsaWMgYm9vbCBWYWx1ZUVxdWFscyhDb252ZXJzaW9uIG90aGVyKSA9PiBWYWx1ZUNvbXBhcmVyLkVxdWFscyh0aGlzLCBvdGhlcik7DQogICAgICAgIHB1YmxpYyBpbnQgVmFsdWVHZXRIYXNoQ29kZSgpID0+IFZhbHVlQ29tcGFyZXIuR2V0SGFzaENvZGUodGhpcyk7DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gR2V0cyBhIHZhbHVlIGluZGljYXRpbmcgdGhlIHR5cGUgb2Ygb2JqZWN0IGltcGxlbWVudGluZyA8c2VlIGNyZWY9IklTYXJpZk5vZGUiIC8+Lg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICBwdWJsaWMgU2FyaWZOb2RlS2luZCBTYXJpZk5vZGVLaW5kDQogICAgICAgIHsNCiAgICAgICAgICAgIGdldA0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHJldHVybiBTYXJpZk5vZGVLaW5kLkNvbnZlcnNpb247DQogICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBBIHRvb2wgb2JqZWN0IHRoYXQgZGVzY3JpYmVzIHRoZSBjb252ZXJ0ZXIuDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIFtEYXRhTWVtYmVyKE5hbWUgPSAidG9vbCIsIElzUmVxdWlyZWQgPSB0cnVlKV0NCiAgICAgICAgcHVibGljIFRvb2wgVG9vbCB7IGdldDsgc2V0OyB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gQW4gaW52b2NhdGlvbiBvYmplY3QgdGhhdCBkZXNjcmliZXMgdGhlIGludm9jYXRpb24gb2YgdGhlIGNvbnZlcnRlci4NCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgW0RhdGFNZW1iZXIoTmFtZSA9ICJpbnZvY2F0aW9uIiwgSXNSZXF1aXJlZCA9IGZhbHNlLCBFbWl0RGVmYXVsdFZhbHVlID0gZmFsc2UpXQ0KICAgICAgICBwdWJsaWMgSW52b2NhdGlvbiBJbnZvY2F0aW9uIHsgZ2V0OyBzZXQ7IH0NCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBUaGUgbG9jYXRpb25zIG9mIHRoZSBhbmFseXNpcyB0b29sJ3MgcGVyLXJ1biBsb2cgZmlsZXMuDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIFtEYXRhTWVtYmVyKE5hbWUgPSAiYW5hbHlzaXNUb29sTG9nRmlsZXMiLCBJc1JlcXVpcmVkID0gZmFsc2UsIEVtaXREZWZhdWx0VmFsdWUgPSBmYWxzZSldDQogICAgICAgIHB1YmxpYyBJTGlzdDxGaWxlTG9jYXRpb24+IEFuYWx5c2lzVG9vbExvZ0ZpbGVzIHsgZ2V0OyBzZXQ7IH0NCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBJbml0aWFsaXplcyBhIG5ldyBpbnN0YW5jZSBvZiB0aGUgPHNlZSBjcmVmPSJDb252ZXJzaW9uIiAvPiBjbGFzcy4NCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgcHVibGljIENvbnZlcnNpb24oKQ0KICAgICAgICB7DQogICAgICAgIH0NCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBJbml0aWFsaXplcyBhIG5ldyBpbnN0YW5jZSBvZiB0aGUgPHNlZSBjcmVmPSJDb252ZXJzaW9uIiAvPiBjbGFzcyBmcm9tIHRoZSBzdXBwbGllZCB2YWx1ZXMuDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIC8vLyA8cGFyYW0gbmFtZT0idG9vbCI+DQogICAgICAgIC8vLyBBbiBpbml0aWFsaXphdGlvbiB2YWx1ZSBmb3IgdGhlIDxzZWUgY3JlZj0iUDogVG9vbCIgLz4gcHJvcGVydHkuDQogICAgICAgIC8vLyA8L3BhcmFtPg0KICAgICAgICAvLy8gPHBhcmFtIG5hbWU9Imludm9jYXRpb24iPg0KICAgICAgICAvLy8gQW4gaW5pdGlhbGl6YXRpb24gdmFsdWUgZm9yIHRoZSA8c2VlIGNyZWY9IlA6IEludm9jYXRpb24iIC8+IHByb3BlcnR5Lg0KICAgICAgICAvLy8gPC9wYXJhbT4NCiAgICAgICAgLy8vIDxwYXJhbSBuYW1lPSJhbmFseXNpc1Rvb2xMb2dGaWxlcyI+DQogICAgICAgIC8vLyBBbiBpbml0aWFsaXphdGlvbiB2YWx1ZSBmb3IgdGhlIDxzZWUgY3JlZj0iUDogQW5hbHlzaXNUb29sTG9nRmlsZXMiIC8+IHByb3BlcnR5Lg0KICAgICAgICAvLy8gPC9wYXJhbT4NCiAgICAgICAgcHVibGljIENvbnZlcnNpb24oVG9vbCB0b29sLCBJbnZvY2F0aW9uIGludm9jYXRpb24sIElFbnVtZXJhYmxlPEZpbGVMb2NhdGlvbj4gYW5hbHlzaXNUb29sTG9nRmlsZXMpDQogICAgICAgIHsNCiAgICAgICAgICAgIEluaXQodG9vbCwgaW52b2NhdGlvbiwgYW5hbHlzaXNUb29sTG9nRmlsZXMpOw0KICAgICAgICB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gSW5pdGlhbGl6ZXMgYSBuZXcgaW5zdGFuY2Ugb2YgdGhlIDxzZWUgY3JlZj0iQ29udmVyc2lvbiIgLz4gY2xhc3MgZnJvbSB0aGUgc3BlY2lmaWVkIGluc3RhbmNlLg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICAvLy8gPHBhcmFtIG5hbWU9Im90aGVyIj4NCiAgICAgICAgLy8vIFRoZSBpbnN0YW5jZSBmcm9tIHdoaWNoIHRoZSBuZXcgaW5zdGFuY2UgaXMgdG8gYmUgaW5pdGlhbGl6ZWQuDQogICAgICAgIC8vLyA8L3BhcmFtPg0KICAgICAgICAvLy8gPGV4Y2VwdGlvbiBjcmVmPSJBcmd1bWVudE51bGxFeGNlcHRpb24iPg0KICAgICAgICAvLy8gVGhyb3duIGlmIDxwYXJhbXJlZiBuYW1lPSJvdGhlciIgLz4gaXMgbnVsbC4NCiAgICAgICAgLy8vIDwvZXhjZXB0aW9uPg0KICAgICAgICBwdWJsaWMgQ29udmVyc2lvbihDb252ZXJzaW9uIG90aGVyKQ0KICAgICAgICB7DQogICAgICAgICAgICBpZiAob3RoZXIgPT0gbnVsbCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgQXJndW1lbnROdWxsRXhjZXB0aW9uKG5hbWVvZihvdGhlcikpOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBJbml0KG90aGVyLlRvb2wsIG90aGVyLkludm9jYXRpb24sIG90aGVyLkFuYWx5c2lzVG9vbExvZ0ZpbGVzKTsNCiAgICAgICAgfQ0KDQogICAgICAgIElTYXJpZk5vZGUgSVNhcmlmTm9kZS5EZWVwQ2xvbmUoKQ0KICAgICAgICB7DQogICAgICAgICAgICByZXR1cm4gRGVlcENsb25lQ29yZSgpOw0KICAgICAgICB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gQ3JlYXRlcyBhIGRlZXAgY29weSBvZiB0aGlzIGluc3RhbmNlLg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICBwdWJsaWMgQ29udmVyc2lvbiBEZWVwQ2xvbmUoKQ0KICAgICAgICB7DQogICAgICAgICAgICByZXR1cm4gKENvbnZlcnNpb24pRGVlcENsb25lQ29yZSgpOw0KICAgICAgICB9DQoNCiAgICAgICAgcHJpdmF0ZSBJU2FyaWZOb2RlIERlZXBDbG9uZUNvcmUoKQ0KICAgICAgICB7DQogICAgICAgICAgICByZXR1cm4gbmV3IENvbnZlcnNpb24odGhpcyk7DQogICAgICAgIH0NCg0KICAgICAgICBwcml2YXRlIHZvaWQgSW5pdChUb29sIHRvb2wsIEludm9jYXRpb24gaW52b2NhdGlvbiwgSUVudW1lcmFibGU8RmlsZUxvY2F0aW9uPiBhbmFseXNpc1Rvb2xMb2dGaWxlcykNCiAgICAgICAgew0KICAgICAgICAgICAgaWYgKHRvb2wgIT0gbnVsbCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBUb29sID0gbmV3IFRvb2wodG9vbCk7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIGlmIChpbnZvY2F0aW9uICE9IG51bGwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgSW52b2NhdGlvbiA9IG5ldyBJbnZvY2F0aW9uKGludm9jYXRpb24pOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBpZiAoYW5hbHlzaXNUb29sTG9nRmlsZXMgIT0gbnVsbCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICB2YXIgZGVzdGluYXRpb25fMCA9IG5ldyBMaXN0PEZpbGVMb2NhdGlvbj4oKTsNCiAgICAgICAgICAgICAgICBmb3JlYWNoICh2YXIgdmFsdWVfMCBpbiBhbmFseXNpc1Rvb2xMb2dGaWxlcykNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZV8wID09IG51bGwpDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGRlc3RpbmF0aW9uXzAuQWRkKG51bGwpOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGVsc2UNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgZGVzdGluYXRpb25fMC5BZGQobmV3IEZpbGVMb2NhdGlvbih2YWx1ZV8wKSk7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICBBbmFseXNpc1Rvb2xMb2dGaWxlcyA9IGRlc3RpbmF0aW9uXzA7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCiAgICB9DQp9" + { + "ruleId": "CA1014", + "level": "error", + "message": { + "text": "Mark 'Microsoft.Json.Pointer.dll' with CLSCompliant(true) because it exposes externally visible types." }, - "hashes": [ - { - "value": "BF816D6C3479A653BB02CEF7B3C83FB0", - "algorithm": "md5" - }, - { - "value": "301280E17FF223AF16B815FA529A193A813515E5", - "algorithm": "sha-1" - }, + "locations": [ { - "value": "A45F14C92A1F81E47A421D601086D2A96D9C23CE330E94697D6CEAEE0FED9545", - "algorithm": "sha-256" + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Microsoft.Json.Pointer.dll", + "uriBaseId": "$(ProjectDir)", + "index": 0 + } + }, + "logicalLocations": [ + { + "index": 18, + "fullyQualifiedName": "microsoft.json.pointer.dll" + } + ] } - ] + ], + "properties": { + "Category": "Microsoft.Design", + "FixCategory": "NonBreaking" + } }, - "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/Edge.cs": { - "mimeType": "text/x-csharp", - "contents": { - "binary": "Ly8gQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQuICBBbGwgUmlnaHRzIFJlc2VydmVkLg0KLy8gTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlLiBTZWUgTElDRU5TRSBmaWxlIGluIHRoZSBwcm9qZWN0IHJvb3QgZm9yIGZ1bGwgbGljZW5zZSBpbmZvcm1hdGlvbi4NCg0KdXNpbmcgU3lzdGVtOw0KdXNpbmcgU3lzdGVtLkNvZGVEb20uQ29tcGlsZXI7DQp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsNCnVzaW5nIFN5c3RlbS5SdW50aW1lLlNlcmlhbGl6YXRpb247DQp1c2luZyBNaWNyb3NvZnQuQ29kZUFuYWx5c2lzLlNhcmlmLlJlYWRlcnM7DQoNCm5hbWVzcGFjZSBNaWNyb3NvZnQuQ29kZUFuYWx5c2lzLlNhcmlmDQp7DQogICAgLy8vIDxzdW1tYXJ5Pg0KICAgIC8vLyBSZXByZXNlbnRzIGEgZGlyZWN0ZWQgZWRnZSBpbiBhIGdyYXBoLg0KICAgIC8vLyA8L3N1bW1hcnk+DQogICAgW0RhdGFDb250cmFjdF0NCiAgICBbR2VuZXJhdGVkQ29kZSgiTWljcm9zb2Z0Lkpzb24uU2NoZW1hLlRvRG90TmV0IiwgIjAuNTYuMC4wIildDQogICAgcHVibGljIHBhcnRpYWwgY2xhc3MgRWRnZSA6IFByb3BlcnR5QmFnSG9sZGVyLCBJU2FyaWZOb2RlDQogICAgew0KICAgICAgICBwdWJsaWMgc3RhdGljIElFcXVhbGl0eUNvbXBhcmVyPEVkZ2U+IFZhbHVlQ29tcGFyZXIgPT4gRWRnZUVxdWFsaXR5Q29tcGFyZXIuSW5zdGFuY2U7DQoNCiAgICAgICAgcHVibGljIGJvb2wgVmFsdWVFcXVhbHMoRWRnZSBvdGhlcikgPT4gVmFsdWVDb21wYXJlci5FcXVhbHModGhpcywgb3RoZXIpOw0KICAgICAgICBwdWJsaWMgaW50IFZhbHVlR2V0SGFzaENvZGUoKSA9PiBWYWx1ZUNvbXBhcmVyLkdldEhhc2hDb2RlKHRoaXMpOw0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIEdldHMgYSB2YWx1ZSBpbmRpY2F0aW5nIHRoZSB0eXBlIG9mIG9iamVjdCBpbXBsZW1lbnRpbmcgPHNlZSBjcmVmPSJJU2FyaWZOb2RlIiAvPi4NCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgcHVibGljIFNhcmlmTm9kZUtpbmQgU2FyaWZOb2RlS2luZA0KICAgICAgICB7DQogICAgICAgICAgICBnZXQNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gU2FyaWZOb2RlS2luZC5FZGdlOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gQSBzdHJpbmcgdGhhdCB1bmlxdWVseSBpZGVudGlmaWVzIHRoZSBlZGdlIHdpdGhpbiBpdHMgZ3JhcGguDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIFtEYXRhTWVtYmVyKE5hbWUgPSAiaWQiLCBJc1JlcXVpcmVkID0gdHJ1ZSldDQogICAgICAgIHB1YmxpYyBzdHJpbmcgSWQgeyBnZXQ7IHNldDsgfQ0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIEEgc2hvcnQgZGVzY3JpcHRpb24gb2YgdGhlIGVkZ2UuDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIFtEYXRhTWVtYmVyKE5hbWUgPSAibGFiZWwiLCBJc1JlcXVpcmVkID0gZmFsc2UsIEVtaXREZWZhdWx0VmFsdWUgPSBmYWxzZSldDQogICAgICAgIHB1YmxpYyBNZXNzYWdlIExhYmVsIHsgZ2V0OyBzZXQ7IH0NCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBJZGVudGlmaWVzIHRoZSBzb3VyY2Ugbm9kZSAodGhlIG5vZGUgYXQgd2hpY2ggdGhlIGVkZ2Ugc3RhcnRzKS4NCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgW0RhdGFNZW1iZXIoTmFtZSA9ICJzb3VyY2VOb2RlSWQiLCBJc1JlcXVpcmVkID0gdHJ1ZSldDQogICAgICAgIHB1YmxpYyBzdHJpbmcgU291cmNlTm9kZUlkIHsgZ2V0OyBzZXQ7IH0NCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBJZGVudGlmaWVzIHRoZSB0YXJnZXQgbm9kZSAodGhlIG5vZGUgYXQgd2hpY2ggdGhlIGVkZ2UgZW5kcykuDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIFtEYXRhTWVtYmVyKE5hbWUgPSAidGFyZ2V0Tm9kZUlkIiwgSXNSZXF1aXJlZCA9IHRydWUpXQ0KICAgICAgICBwdWJsaWMgc3RyaW5nIFRhcmdldE5vZGVJZCB7IGdldDsgc2V0OyB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gS2V5L3ZhbHVlIHBhaXJzIHRoYXQgcHJvdmlkZSBhZGRpdGlvbmFsIGluZm9ybWF0aW9uIGFib3V0IHRoZSBlZGdlLg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICBbRGF0YU1lbWJlcihOYW1lID0gInByb3BlcnRpZXMiLCBJc1JlcXVpcmVkID0gZmFsc2UsIEVtaXREZWZhdWx0VmFsdWUgPSBmYWxzZSldDQogICAgICAgIGludGVybmFsIG92ZXJyaWRlIElEaWN0aW9uYXJ5PHN0cmluZywgU2VyaWFsaXplZFByb3BlcnR5SW5mbz4gUHJvcGVydGllcyB7IGdldDsgc2V0OyB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gSW5pdGlhbGl6ZXMgYSBuZXcgaW5zdGFuY2Ugb2YgdGhlIDxzZWUgY3JlZj0iRWRnZSIgLz4gY2xhc3MuDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIHB1YmxpYyBFZGdlKCkNCiAgICAgICAgew0KICAgICAgICB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gSW5pdGlhbGl6ZXMgYSBuZXcgaW5zdGFuY2Ugb2YgdGhlIDxzZWUgY3JlZj0iRWRnZSIgLz4gY2xhc3MgZnJvbSB0aGUgc3VwcGxpZWQgdmFsdWVzLg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICAvLy8gPHBhcmFtIG5hbWU9ImlkIj4NCiAgICAgICAgLy8vIEFuIGluaXRpYWxpemF0aW9uIHZhbHVlIGZvciB0aGUgPHNlZSBjcmVmPSJQOiBJZCIgLz4gcHJvcGVydHkuDQogICAgICAgIC8vLyA8L3BhcmFtPg0KICAgICAgICAvLy8gPHBhcmFtIG5hbWU9ImxhYmVsIj4NCiAgICAgICAgLy8vIEFuIGluaXRpYWxpemF0aW9uIHZhbHVlIGZvciB0aGUgPHNlZSBjcmVmPSJQOiBMYWJlbCIgLz4gcHJvcGVydHkuDQogICAgICAgIC8vLyA8L3BhcmFtPg0KICAgICAgICAvLy8gPHBhcmFtIG5hbWU9InNvdXJjZU5vZGVJZCI+DQogICAgICAgIC8vLyBBbiBpbml0aWFsaXphdGlvbiB2YWx1ZSBmb3IgdGhlIDxzZWUgY3JlZj0iUDogU291cmNlTm9kZUlkIiAvPiBwcm9wZXJ0eS4NCiAgICAgICAgLy8vIDwvcGFyYW0+DQogICAgICAgIC8vLyA8cGFyYW0gbmFtZT0idGFyZ2V0Tm9kZUlkIj4NCiAgICAgICAgLy8vIEFuIGluaXRpYWxpemF0aW9uIHZhbHVlIGZvciB0aGUgPHNlZSBjcmVmPSJQOiBUYXJnZXROb2RlSWQiIC8+IHByb3BlcnR5Lg0KICAgICAgICAvLy8gPC9wYXJhbT4NCiAgICAgICAgLy8vIDxwYXJhbSBuYW1lPSJwcm9wZXJ0aWVzIj4NCiAgICAgICAgLy8vIEFuIGluaXRpYWxpemF0aW9uIHZhbHVlIGZvciB0aGUgPHNlZSBjcmVmPSJQOiBQcm9wZXJ0aWVzIiAvPiBwcm9wZXJ0eS4NCiAgICAgICAgLy8vIDwvcGFyYW0+DQogICAgICAgIHB1YmxpYyBFZGdlKHN0cmluZyBpZCwgTWVzc2FnZSBsYWJlbCwgc3RyaW5nIHNvdXJjZU5vZGVJZCwgc3RyaW5nIHRhcmdldE5vZGVJZCwgSURpY3Rpb25hcnk8c3RyaW5nLCBTZXJpYWxpemVkUHJvcGVydHlJbmZvPiBwcm9wZXJ0aWVzKQ0KICAgICAgICB7DQogICAgICAgICAgICBJbml0KGlkLCBsYWJlbCwgc291cmNlTm9kZUlkLCB0YXJnZXROb2RlSWQsIHByb3BlcnRpZXMpOw0KICAgICAgICB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gSW5pdGlhbGl6ZXMgYSBuZXcgaW5zdGFuY2Ugb2YgdGhlIDxzZWUgY3JlZj0iRWRnZSIgLz4gY2xhc3MgZnJvbSB0aGUgc3BlY2lmaWVkIGluc3RhbmNlLg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICAvLy8gPHBhcmFtIG5hbWU9Im90aGVyIj4NCiAgICAgICAgLy8vIFRoZSBpbnN0YW5jZSBmcm9tIHdoaWNoIHRoZSBuZXcgaW5zdGFuY2UgaXMgdG8gYmUgaW5pdGlhbGl6ZWQuDQogICAgICAgIC8vLyA8L3BhcmFtPg0KICAgICAgICAvLy8gPGV4Y2VwdGlvbiBjcmVmPSJBcmd1bWVudE51bGxFeGNlcHRpb24iPg0KICAgICAgICAvLy8gVGhyb3duIGlmIDxwYXJhbXJlZiBuYW1lPSJvdGhlciIgLz4gaXMgbnVsbC4NCiAgICAgICAgLy8vIDwvZXhjZXB0aW9uPg0KICAgICAgICBwdWJsaWMgRWRnZShFZGdlIG90aGVyKQ0KICAgICAgICB7DQogICAgICAgICAgICBpZiAob3RoZXIgPT0gbnVsbCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgQXJndW1lbnROdWxsRXhjZXB0aW9uKG5hbWVvZihvdGhlcikpOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBJbml0KG90aGVyLklkLCBvdGhlci5MYWJlbCwgb3RoZXIuU291cmNlTm9kZUlkLCBvdGhlci5UYXJnZXROb2RlSWQsIG90aGVyLlByb3BlcnRpZXMpOw0KICAgICAgICB9DQoNCiAgICAgICAgSVNhcmlmTm9kZSBJU2FyaWZOb2RlLkRlZXBDbG9uZSgpDQogICAgICAgIHsNCiAgICAgICAgICAgIHJldHVybiBEZWVwQ2xvbmVDb3JlKCk7DQogICAgICAgIH0NCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBDcmVhdGVzIGEgZGVlcCBjb3B5IG9mIHRoaXMgaW5zdGFuY2UuDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIHB1YmxpYyBFZGdlIERlZXBDbG9uZSgpDQogICAgICAgIHsNCiAgICAgICAgICAgIHJldHVybiAoRWRnZSlEZWVwQ2xvbmVDb3JlKCk7DQogICAgICAgIH0NCg0KICAgICAgICBwcml2YXRlIElTYXJpZk5vZGUgRGVlcENsb25lQ29yZSgpDQogICAgICAgIHsNCiAgICAgICAgICAgIHJldHVybiBuZXcgRWRnZSh0aGlzKTsNCiAgICAgICAgfQ0KDQogICAgICAgIHByaXZhdGUgdm9pZCBJbml0KHN0cmluZyBpZCwgTWVzc2FnZSBsYWJlbCwgc3RyaW5nIHNvdXJjZU5vZGVJZCwgc3RyaW5nIHRhcmdldE5vZGVJZCwgSURpY3Rpb25hcnk8c3RyaW5nLCBTZXJpYWxpemVkUHJvcGVydHlJbmZvPiBwcm9wZXJ0aWVzKQ0KICAgICAgICB7DQogICAgICAgICAgICBJZCA9IGlkOw0KICAgICAgICAgICAgaWYgKGxhYmVsICE9IG51bGwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgTGFiZWwgPSBuZXcgTWVzc2FnZShsYWJlbCk7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIFNvdXJjZU5vZGVJZCA9IHNvdXJjZU5vZGVJZDsNCiAgICAgICAgICAgIFRhcmdldE5vZGVJZCA9IHRhcmdldE5vZGVJZDsNCiAgICAgICAgICAgIGlmIChwcm9wZXJ0aWVzICE9IG51bGwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgUHJvcGVydGllcyA9IG5ldyBEaWN0aW9uYXJ5PHN0cmluZywgU2VyaWFsaXplZFByb3BlcnR5SW5mbz4ocHJvcGVydGllcyk7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCiAgICB9DQp9" + { + "ruleId": "CA1824", + "message": { + "text": "Because assembly 'Microsoft.Json.Pointer.dll' contains a ResX-based resource file, mark it with the NeutralResourcesLanguage attribute, specifying the language of the resources within the assembly. This could improve lookup performance the first time a resource is retrieved." }, - "hashes": [ - { - "value": "CECA16D55E1F40B2F816CC313A3D742C", - "algorithm": "md5" - }, - { - "value": "66BEC02CDE283AD8A5C7623554540DDEFB716E64", - "algorithm": "sha-1" - }, + "locations": [ { - "value": "4CBCB46B59C457BA81CBD58E4F578FE5C8C56170A131E03B2030CAC0E9EB0CD5", - "algorithm": "sha-256" + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Microsoft.Json.Pointer.dll", + "uriBaseId": "$(ProjectDir)", + "index": 0 + } + }, + "logicalLocations": [ + { + "index": 18, + "fullyQualifiedName": "microsoft.json.pointer.dll" + } + ] } - ] + ], + "properties": { + "Category": "Microsoft.Performance", + "FixCategory": "NonBreaking" + } }, - "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/EdgeTraversal.cs": { - "mimeType": "text/x-csharp", - "contents": { - "binary": "Ly8gQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQuICBBbGwgUmlnaHRzIFJlc2VydmVkLg0KLy8gTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlLiBTZWUgTElDRU5TRSBmaWxlIGluIHRoZSBwcm9qZWN0IHJvb3QgZm9yIGZ1bGwgbGljZW5zZSBpbmZvcm1hdGlvbi4NCg0KdXNpbmcgU3lzdGVtOw0KdXNpbmcgU3lzdGVtLkNvZGVEb20uQ29tcGlsZXI7DQp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsNCnVzaW5nIFN5c3RlbS5SdW50aW1lLlNlcmlhbGl6YXRpb247DQp1c2luZyBNaWNyb3NvZnQuQ29kZUFuYWx5c2lzLlNhcmlmLlJlYWRlcnM7DQoNCm5hbWVzcGFjZSBNaWNyb3NvZnQuQ29kZUFuYWx5c2lzLlNhcmlmDQp7DQogICAgLy8vIDxzdW1tYXJ5Pg0KICAgIC8vLyBSZXByZXNlbnRzIHRoZSB0cmF2ZXJzYWwgb2YgYSBzaW5nbGUgZWRnZSBpbiB0aGUgY291cnNlIG9mIGEgZ3JhcGggdHJhdmVyc2FsLg0KICAgIC8vLyA8L3N1bW1hcnk+DQogICAgW0RhdGFDb250cmFjdF0NCiAgICBbR2VuZXJhdGVkQ29kZSgiTWljcm9zb2Z0Lkpzb24uU2NoZW1hLlRvRG90TmV0IiwgIjAuNTYuMC4wIildDQogICAgcHVibGljIHBhcnRpYWwgY2xhc3MgRWRnZVRyYXZlcnNhbCA6IFByb3BlcnR5QmFnSG9sZGVyLCBJU2FyaWZOb2RlDQogICAgew0KICAgICAgICBwdWJsaWMgc3RhdGljIElFcXVhbGl0eUNvbXBhcmVyPEVkZ2VUcmF2ZXJzYWw+IFZhbHVlQ29tcGFyZXIgPT4gRWRnZVRyYXZlcnNhbEVxdWFsaXR5Q29tcGFyZXIuSW5zdGFuY2U7DQoNCiAgICAgICAgcHVibGljIGJvb2wgVmFsdWVFcXVhbHMoRWRnZVRyYXZlcnNhbCBvdGhlcikgPT4gVmFsdWVDb21wYXJlci5FcXVhbHModGhpcywgb3RoZXIpOw0KICAgICAgICBwdWJsaWMgaW50IFZhbHVlR2V0SGFzaENvZGUoKSA9PiBWYWx1ZUNvbXBhcmVyLkdldEhhc2hDb2RlKHRoaXMpOw0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIEdldHMgYSB2YWx1ZSBpbmRpY2F0aW5nIHRoZSB0eXBlIG9mIG9iamVjdCBpbXBsZW1lbnRpbmcgPHNlZSBjcmVmPSJJU2FyaWZOb2RlIiAvPi4NCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgcHVibGljIFNhcmlmTm9kZUtpbmQgU2FyaWZOb2RlS2luZA0KICAgICAgICB7DQogICAgICAgICAgICBnZXQNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gU2FyaWZOb2RlS2luZC5FZGdlVHJhdmVyc2FsOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gSWRlbnRpZmllcyB0aGUgZWRnZSBiZWluZyB0cmF2ZXJzZWQuDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIFtEYXRhTWVtYmVyKE5hbWUgPSAiZWRnZUlkIiwgSXNSZXF1aXJlZCA9IHRydWUpXQ0KICAgICAgICBwdWJsaWMgc3RyaW5nIEVkZ2VJZCB7IGdldDsgc2V0OyB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gQSBtZXNzYWdlIHRvIGRpc3BsYXkgdG8gdGhlIHVzZXIgYXMgdGhlIGVkZ2UgaXMgdHJhdmVyc2VkLg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICBbRGF0YU1lbWJlcihOYW1lID0gIm1lc3NhZ2UiLCBJc1JlcXVpcmVkID0gZmFsc2UsIEVtaXREZWZhdWx0VmFsdWUgPSBmYWxzZSldDQogICAgICAgIHB1YmxpYyBNZXNzYWdlIE1lc3NhZ2UgeyBnZXQ7IHNldDsgfQ0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIFRoZSB2YWx1ZXMgb2YgcmVsZXZhbnQgZXhwcmVzc2lvbnMgYWZ0ZXIgdGhlIGVkZ2UgaGFzIGJlZW4gdHJhdmVyc2VkLg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICBbRGF0YU1lbWJlcihOYW1lID0gImZpbmFsU3RhdGUiLCBJc1JlcXVpcmVkID0gZmFsc2UsIEVtaXREZWZhdWx0VmFsdWUgPSBmYWxzZSldDQogICAgICAgIHB1YmxpYyBJRGljdGlvbmFyeTxzdHJpbmcsIHN0cmluZz4gRmluYWxTdGF0ZSB7IGdldDsgc2V0OyB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gVGhlIG51bWJlciBvZiBlZGdlIHRyYXZlcnNhbHMgbmVjZXNzYXJ5IHRvIHJldHVybiBmcm9tIGEgbmVzdGVkIGdyYXBoLg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICBbRGF0YU1lbWJlcihOYW1lID0gInN0ZXBPdmVyRWRnZUNvdW50IiwgSXNSZXF1aXJlZCA9IGZhbHNlLCBFbWl0RGVmYXVsdFZhbHVlID0gZmFsc2UpXQ0KICAgICAgICBwdWJsaWMgaW50IFN0ZXBPdmVyRWRnZUNvdW50IHsgZ2V0OyBzZXQ7IH0NCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBLZXkvdmFsdWUgcGFpcnMgdGhhdCBwcm92aWRlIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGVkZ2UgdHJhdmVyc2FsLg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICBbRGF0YU1lbWJlcihOYW1lID0gInByb3BlcnRpZXMiLCBJc1JlcXVpcmVkID0gZmFsc2UsIEVtaXREZWZhdWx0VmFsdWUgPSBmYWxzZSldDQogICAgICAgIGludGVybmFsIG92ZXJyaWRlIElEaWN0aW9uYXJ5PHN0cmluZywgU2VyaWFsaXplZFByb3BlcnR5SW5mbz4gUHJvcGVydGllcyB7IGdldDsgc2V0OyB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gSW5pdGlhbGl6ZXMgYSBuZXcgaW5zdGFuY2Ugb2YgdGhlIDxzZWUgY3JlZj0iRWRnZVRyYXZlcnNhbCIgLz4gY2xhc3MuDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIHB1YmxpYyBFZGdlVHJhdmVyc2FsKCkNCiAgICAgICAgew0KICAgICAgICB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gSW5pdGlhbGl6ZXMgYSBuZXcgaW5zdGFuY2Ugb2YgdGhlIDxzZWUgY3JlZj0iRWRnZVRyYXZlcnNhbCIgLz4gY2xhc3MgZnJvbSB0aGUgc3VwcGxpZWQgdmFsdWVzLg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICAvLy8gPHBhcmFtIG5hbWU9ImVkZ2VJZCI+DQogICAgICAgIC8vLyBBbiBpbml0aWFsaXphdGlvbiB2YWx1ZSBmb3IgdGhlIDxzZWUgY3JlZj0iUDogRWRnZUlkIiAvPiBwcm9wZXJ0eS4NCiAgICAgICAgLy8vIDwvcGFyYW0+DQogICAgICAgIC8vLyA8cGFyYW0gbmFtZT0ibWVzc2FnZSI+DQogICAgICAgIC8vLyBBbiBpbml0aWFsaXphdGlvbiB2YWx1ZSBmb3IgdGhlIDxzZWUgY3JlZj0iUDogTWVzc2FnZSIgLz4gcHJvcGVydHkuDQogICAgICAgIC8vLyA8L3BhcmFtPg0KICAgICAgICAvLy8gPHBhcmFtIG5hbWU9ImZpbmFsU3RhdGUiPg0KICAgICAgICAvLy8gQW4gaW5pdGlhbGl6YXRpb24gdmFsdWUgZm9yIHRoZSA8c2VlIGNyZWY9IlA6IEZpbmFsU3RhdGUiIC8+IHByb3BlcnR5Lg0KICAgICAgICAvLy8gPC9wYXJhbT4NCiAgICAgICAgLy8vIDxwYXJhbSBuYW1lPSJzdGVwT3ZlckVkZ2VDb3VudCI+DQogICAgICAgIC8vLyBBbiBpbml0aWFsaXphdGlvbiB2YWx1ZSBmb3IgdGhlIDxzZWUgY3JlZj0iUDogU3RlcE92ZXJFZGdlQ291bnQiIC8+IHByb3BlcnR5Lg0KICAgICAgICAvLy8gPC9wYXJhbT4NCiAgICAgICAgLy8vIDxwYXJhbSBuYW1lPSJwcm9wZXJ0aWVzIj4NCiAgICAgICAgLy8vIEFuIGluaXRpYWxpemF0aW9uIHZhbHVlIGZvciB0aGUgPHNlZSBjcmVmPSJQOiBQcm9wZXJ0aWVzIiAvPiBwcm9wZXJ0eS4NCiAgICAgICAgLy8vIDwvcGFyYW0+DQogICAgICAgIHB1YmxpYyBFZGdlVHJhdmVyc2FsKHN0cmluZyBlZGdlSWQsIE1lc3NhZ2UgbWVzc2FnZSwgSURpY3Rpb25hcnk8c3RyaW5nLCBzdHJpbmc+IGZpbmFsU3RhdGUsIGludCBzdGVwT3ZlckVkZ2VDb3VudCwgSURpY3Rpb25hcnk8c3RyaW5nLCBTZXJpYWxpemVkUHJvcGVydHlJbmZvPiBwcm9wZXJ0aWVzKQ0KICAgICAgICB7DQogICAgICAgICAgICBJbml0KGVkZ2VJZCwgbWVzc2FnZSwgZmluYWxTdGF0ZSwgc3RlcE92ZXJFZGdlQ291bnQsIHByb3BlcnRpZXMpOw0KICAgICAgICB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gSW5pdGlhbGl6ZXMgYSBuZXcgaW5zdGFuY2Ugb2YgdGhlIDxzZWUgY3JlZj0iRWRnZVRyYXZlcnNhbCIgLz4gY2xhc3MgZnJvbSB0aGUgc3BlY2lmaWVkIGluc3RhbmNlLg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICAvLy8gPHBhcmFtIG5hbWU9Im90aGVyIj4NCiAgICAgICAgLy8vIFRoZSBpbnN0YW5jZSBmcm9tIHdoaWNoIHRoZSBuZXcgaW5zdGFuY2UgaXMgdG8gYmUgaW5pdGlhbGl6ZWQuDQogICAgICAgIC8vLyA8L3BhcmFtPg0KICAgICAgICAvLy8gPGV4Y2VwdGlvbiBjcmVmPSJBcmd1bWVudE51bGxFeGNlcHRpb24iPg0KICAgICAgICAvLy8gVGhyb3duIGlmIDxwYXJhbXJlZiBuYW1lPSJvdGhlciIgLz4gaXMgbnVsbC4NCiAgICAgICAgLy8vIDwvZXhjZXB0aW9uPg0KICAgICAgICBwdWJsaWMgRWRnZVRyYXZlcnNhbChFZGdlVHJhdmVyc2FsIG90aGVyKQ0KICAgICAgICB7DQogICAgICAgICAgICBpZiAob3RoZXIgPT0gbnVsbCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgQXJndW1lbnROdWxsRXhjZXB0aW9uKG5hbWVvZihvdGhlcikpOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBJbml0KG90aGVyLkVkZ2VJZCwgb3RoZXIuTWVzc2FnZSwgb3RoZXIuRmluYWxTdGF0ZSwgb3RoZXIuU3RlcE92ZXJFZGdlQ291bnQsIG90aGVyLlByb3BlcnRpZXMpOw0KICAgICAgICB9DQoNCiAgICAgICAgSVNhcmlmTm9kZSBJU2FyaWZOb2RlLkRlZXBDbG9uZSgpDQogICAgICAgIHsNCiAgICAgICAgICAgIHJldHVybiBEZWVwQ2xvbmVDb3JlKCk7DQogICAgICAgIH0NCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBDcmVhdGVzIGEgZGVlcCBjb3B5IG9mIHRoaXMgaW5zdGFuY2UuDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIHB1YmxpYyBFZGdlVHJhdmVyc2FsIERlZXBDbG9uZSgpDQogICAgICAgIHsNCiAgICAgICAgICAgIHJldHVybiAoRWRnZVRyYXZlcnNhbClEZWVwQ2xvbmVDb3JlKCk7DQogICAgICAgIH0NCg0KICAgICAgICBwcml2YXRlIElTYXJpZk5vZGUgRGVlcENsb25lQ29yZSgpDQogICAgICAgIHsNCiAgICAgICAgICAgIHJldHVybiBuZXcgRWRnZVRyYXZlcnNhbCh0aGlzKTsNCiAgICAgICAgfQ0KDQogICAgICAgIHByaXZhdGUgdm9pZCBJbml0KHN0cmluZyBlZGdlSWQsIE1lc3NhZ2UgbWVzc2FnZSwgSURpY3Rpb25hcnk8c3RyaW5nLCBzdHJpbmc+IGZpbmFsU3RhdGUsIGludCBzdGVwT3ZlckVkZ2VDb3VudCwgSURpY3Rpb25hcnk8c3RyaW5nLCBTZXJpYWxpemVkUHJvcGVydHlJbmZvPiBwcm9wZXJ0aWVzKQ0KICAgICAgICB7DQogICAgICAgICAgICBFZGdlSWQgPSBlZGdlSWQ7DQogICAgICAgICAgICBpZiAobWVzc2FnZSAhPSBudWxsKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIE1lc3NhZ2UgPSBuZXcgTWVzc2FnZShtZXNzYWdlKTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgaWYgKGZpbmFsU3RhdGUgIT0gbnVsbCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBGaW5hbFN0YXRlID0gbmV3IERpY3Rpb25hcnk8c3RyaW5nLCBzdHJpbmc+KGZpbmFsU3RhdGUpOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBTdGVwT3ZlckVkZ2VDb3VudCA9IHN0ZXBPdmVyRWRnZUNvdW50Ow0KICAgICAgICAgICAgaWYgKHByb3BlcnRpZXMgIT0gbnVsbCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBQcm9wZXJ0aWVzID0gbmV3IERpY3Rpb25hcnk8c3RyaW5nLCBTZXJpYWxpemVkUHJvcGVydHlJbmZvPihwcm9wZXJ0aWVzKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgIH0NCn0=" + { + "ruleId": "CA1026", + "level": "error", + "message": { + "text": "Replace method 'JsonPointer.JsonPointer(string, JsonPointerRepresentation)' with an overload that supplies all default arguments." }, - "hashes": [ - { - "value": "0C63FEC4B6E6A25D148809073B8D2EDC", - "algorithm": "md5" - }, - { - "value": "774C945B1A5F28BAE6B179CD5786310671F88B90", - "algorithm": "sha-1" - }, + "locations": [ { - "value": "45735DC204FC45FD8C138627877C6BA7806E0CCF76236B570FBB689D66957709", - "algorithm": "sha-256" + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Microsoft.Json.Pointer.dll", + "uriBaseId": "$(ProjectDir)", + "index": 0 + } + }, + "logicalLocations": [ + { + "index": 21, + "fullyQualifiedName": "microsoft.json.pointer.dll!Microsoft.Json.Pointer.JsonPointer..ctor(System.String,Microsoft.Json.Pointer.JsonPointerRepresentation)" + } + ] } - ] + ], + "properties": { + "Category": "Microsoft.Design", + "FixCategory": "Breaking" + } }, - "file:///E:/src/sarif-sdk-test/src/Sarif/Core/ExceptionData.cs": { - "mimeType": "text/x-csharp", - "contents": { - "binary": "77u/Ly8gQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQuICBBbGwgUmlnaHRzIFJlc2VydmVkLg0KLy8gTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlLiBTZWUgTElDRU5TRSBmaWxlIGluIHRoZSBwcm9qZWN0IHJvb3QgZm9yIGZ1bGwgbGljZW5zZSBpbmZvcm1hdGlvbi4NCg0KdXNpbmcgU3lzdGVtOw0KdXNpbmcgU3lzdGVtLkNvbGxlY3Rpb25zLkdlbmVyaWM7DQoNCm5hbWVzcGFjZSBNaWNyb3NvZnQuQ29kZUFuYWx5c2lzLlNhcmlmDQp7DQogICAgLy8vIDxzdW1tYXJ5Pg0KICAgIC8vLyBEZXNjcmliZXMgYSBjb25kaXRpb24gcmVsZXZhbnQgdG8gdGhlIHRvb2wgaXRzZWxmLCBhcyBvcHBvc2VkIHRvIGJlaW5nIHJlbGV2YW50IHRvIGEgZmlsZSBiZWluZyBhbmFseXplZCBieSB0aGUgdG9vbC4NCiAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgIHB1YmxpYyBwYXJ0aWFsIGNsYXNzIEV4Y2VwdGlvbkRhdGENCiAgICB7DQogICAgICAgIHB1YmxpYyBzdGF0aWMgRXhjZXB0aW9uRGF0YSBDcmVhdGUoRXhjZXB0aW9uIGV4Y2VwdGlvbikNCiAgICAgICAgew0KICAgICAgICAgICAgcmV0dXJuIG5ldyBFeGNlcHRpb25EYXRhDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgS2luZCA9IGV4Y2VwdGlvbi5HZXRUeXBlKCkuTmFtZSwNCiAgICAgICAgICAgICAgICBNZXNzYWdlID0gZXhjZXB0aW9uLk1lc3NhZ2UsDQogICAgICAgICAgICAgICAgSW5uZXJFeGNlcHRpb25zID0gR2V0SW5uZXJFeGNlcHRpb25zKGV4Y2VwdGlvbiksDQogICAgICAgICAgICAgICAgU3RhY2sgPSBTdGFjay5DcmVhdGUoZXhjZXB0aW9uLlN0YWNrVHJhY2UpDQogICAgICAgICAgICB9Ow0KICAgICAgICB9DQoNCiAgICAgICAgcHJpdmF0ZSBzdGF0aWMgSUxpc3Q8RXhjZXB0aW9uRGF0YT4gR2V0SW5uZXJFeGNlcHRpb25zKEV4Y2VwdGlvbiBleGNlcHRpb24pDQogICAgICAgIHsNCiAgICAgICAgICAgIHZhciBpbm5lckV4Y2VwdGlvbnMgPSBuZXcgTGlzdDxFeGNlcHRpb25EYXRhPigpOw0KDQogICAgICAgICAgICBJUmVhZE9ubHlDb2xsZWN0aW9uPEV4Y2VwdGlvbj4gYWdncmVnYXRlSW5uZXJFeGNlcHRpb25zID0gKGV4Y2VwdGlvbiBhcyBBZ2dyZWdhdGVFeGNlcHRpb24pPy5Jbm5lckV4Y2VwdGlvbnM7DQogICAgICAgICAgICBpZiAoYWdncmVnYXRlSW5uZXJFeGNlcHRpb25zICE9IG51bGwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgZm9yZWFjaCAoRXhjZXB0aW9uIGlubmVyRXhjZXB0aW9uIGluIGFnZ3JlZ2F0ZUlubmVyRXhjZXB0aW9ucykNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIGlubmVyRXhjZXB0aW9ucy5BZGQoQ3JlYXRlKGlubmVyRXhjZXB0aW9uKSk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZWxzZSBpZiAoZXhjZXB0aW9uLklubmVyRXhjZXB0aW9uICE9IG51bGwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgaW5uZXJFeGNlcHRpb25zLkFkZChDcmVhdGUoZXhjZXB0aW9uLklubmVyRXhjZXB0aW9uKSk7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIHJldHVybiBpbm5lckV4Y2VwdGlvbnM7DQogICAgICAgIH0NCiAgICB9DQp9DQo=" + { + "ruleId": "CA1812", + "message": { + "text": "'Resources' is an internal class that is apparently never instantiated. If so, remove the code from the assembly. If this class is intended to contain only static methods, consider adding a private constructor to prevent the compiler from generating a default constructor." }, - "hashes": [ - { - "value": "98F221F7BD384AB785CD8C5D15FA8699", - "algorithm": "md5" - }, - { - "value": "3E6C49F782BD8228A99F157C6C895AB6D6C9D041", - "algorithm": "sha-1" - }, + "locations": [ { - "value": "542BF9ABFE0F688592CA25CD96556CBA86B09088A497E6BE7914B03FA6EC2D1D", - "algorithm": "sha-256" + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Microsoft.Json.Pointer.dll", + "uriBaseId": "$(ProjectDir)", + "index": 0 + } + }, + "logicalLocations": [ + { + "index": 22, + "fullyQualifiedName": "microsoft.json.pointer.dll!Microsoft.Json.Pointer.Resources" + } + ] } - ] + ], + "properties": { + "Category": "Microsoft.Performance", + "FixCategory": "NonBreaking" + } }, - "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/ExceptionData.cs": { - "mimeType": "text/x-csharp", - "contents": { - "binary": "Ly8gQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQuICBBbGwgUmlnaHRzIFJlc2VydmVkLg0KLy8gTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlLiBTZWUgTElDRU5TRSBmaWxlIGluIHRoZSBwcm9qZWN0IHJvb3QgZm9yIGZ1bGwgbGljZW5zZSBpbmZvcm1hdGlvbi4NCg0KdXNpbmcgU3lzdGVtOw0KdXNpbmcgU3lzdGVtLkNvZGVEb20uQ29tcGlsZXI7DQp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsNCnVzaW5nIFN5c3RlbS5SdW50aW1lLlNlcmlhbGl6YXRpb247DQoNCm5hbWVzcGFjZSBNaWNyb3NvZnQuQ29kZUFuYWx5c2lzLlNhcmlmDQp7DQogICAgW0RhdGFDb250cmFjdF0NCiAgICBbR2VuZXJhdGVkQ29kZSgiTWljcm9zb2Z0Lkpzb24uU2NoZW1hLlRvRG90TmV0IiwgIjAuNTYuMC4wIildDQogICAgcHVibGljIHBhcnRpYWwgY2xhc3MgRXhjZXB0aW9uRGF0YSA6IElTYXJpZk5vZGUNCiAgICB7DQogICAgICAgIHB1YmxpYyBzdGF0aWMgSUVxdWFsaXR5Q29tcGFyZXI8RXhjZXB0aW9uRGF0YT4gVmFsdWVDb21wYXJlciA9PiBFeGNlcHRpb25EYXRhRXF1YWxpdHlDb21wYXJlci5JbnN0YW5jZTsNCg0KICAgICAgICBwdWJsaWMgYm9vbCBWYWx1ZUVxdWFscyhFeGNlcHRpb25EYXRhIG90aGVyKSA9PiBWYWx1ZUNvbXBhcmVyLkVxdWFscyh0aGlzLCBvdGhlcik7DQogICAgICAgIHB1YmxpYyBpbnQgVmFsdWVHZXRIYXNoQ29kZSgpID0+IFZhbHVlQ29tcGFyZXIuR2V0SGFzaENvZGUodGhpcyk7DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gR2V0cyBhIHZhbHVlIGluZGljYXRpbmcgdGhlIHR5cGUgb2Ygb2JqZWN0IGltcGxlbWVudGluZyA8c2VlIGNyZWY9IklTYXJpZk5vZGUiIC8+Lg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICBwdWJsaWMgU2FyaWZOb2RlS2luZCBTYXJpZk5vZGVLaW5kDQogICAgICAgIHsNCiAgICAgICAgICAgIGdldA0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHJldHVybiBTYXJpZk5vZGVLaW5kLkV4Y2VwdGlvbkRhdGE7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBBIHN0cmluZyB0aGF0IGlkZW50aWZpZXMgdGhlIGtpbmQgb2YgZXhjZXB0aW9uLCBmb3IgZXhhbXBsZSwgdGhlIGZ1bGx5IHF1YWxpZmllZCB0eXBlIG5hbWUgb2YgYW4gb2JqZWN0IHRoYXQgd2FzIHRocm93biwgb3IgdGhlIHN5bWJvbGljIG5hbWUgb2YgYSBzaWduYWwuDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIFtEYXRhTWVtYmVyKE5hbWUgPSAia2luZCIsIElzUmVxdWlyZWQgPSBmYWxzZSwgRW1pdERlZmF1bHRWYWx1ZSA9IGZhbHNlKV0NCiAgICAgICAgcHVibGljIHN0cmluZyBLaW5kIHsgZ2V0OyBzZXQ7IH0NCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBBIHBsYWluIHRleHQgbWVzc2FnZSB0aGF0IGRlc2NyaWJlcyB0aGUgZXhjZXB0aW9uLg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICBbRGF0YU1lbWJlcihOYW1lID0gIm1lc3NhZ2UiLCBJc1JlcXVpcmVkID0gZmFsc2UsIEVtaXREZWZhdWx0VmFsdWUgPSBmYWxzZSldDQogICAgICAgIHB1YmxpYyBzdHJpbmcgTWVzc2FnZSB7IGdldDsgc2V0OyB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gVGhlIHNlcXVlbmNlIG9mIGZ1bmN0aW9uIGNhbGxzIGxlYWRpbmcgdG8gdGhlIGV4Y2VwdGlvbi4NCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgW0RhdGFNZW1iZXIoTmFtZSA9ICJzdGFjayIsIElzUmVxdWlyZWQgPSBmYWxzZSwgRW1pdERlZmF1bHRWYWx1ZSA9IGZhbHNlKV0NCiAgICAgICAgcHVibGljIFN0YWNrIFN0YWNrIHsgZ2V0OyBzZXQ7IH0NCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBBbiBhcnJheSBvZiBleGNlcHRpb24gb2JqZWN0cyBlYWNoIG9mIHdoaWNoIGlzIGNvbnNpZGVyZWQgYSBjYXVzZSBvZiB0aGlzIGV4Y2VwdGlvbi4NCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgW0RhdGFNZW1iZXIoTmFtZSA9ICJpbm5lckV4Y2VwdGlvbnMiLCBJc1JlcXVpcmVkID0gZmFsc2UsIEVtaXREZWZhdWx0VmFsdWUgPSBmYWxzZSldDQogICAgICAgIHB1YmxpYyBJTGlzdDxFeGNlcHRpb25EYXRhPiBJbm5lckV4Y2VwdGlvbnMgeyBnZXQ7IHNldDsgfQ0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIEluaXRpYWxpemVzIGEgbmV3IGluc3RhbmNlIG9mIHRoZSA8c2VlIGNyZWY9IkV4Y2VwdGlvbkRhdGEiIC8+IGNsYXNzLg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICBwdWJsaWMgRXhjZXB0aW9uRGF0YSgpDQogICAgICAgIHsNCiAgICAgICAgfQ0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIEluaXRpYWxpemVzIGEgbmV3IGluc3RhbmNlIG9mIHRoZSA8c2VlIGNyZWY9IkV4Y2VwdGlvbkRhdGEiIC8+IGNsYXNzIGZyb20gdGhlIHN1cHBsaWVkIHZhbHVlcy4NCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgLy8vIDxwYXJhbSBuYW1lPSJraW5kIj4NCiAgICAgICAgLy8vIEFuIGluaXRpYWxpemF0aW9uIHZhbHVlIGZvciB0aGUgPHNlZSBjcmVmPSJQOiBLaW5kIiAvPiBwcm9wZXJ0eS4NCiAgICAgICAgLy8vIDwvcGFyYW0+DQogICAgICAgIC8vLyA8cGFyYW0gbmFtZT0ibWVzc2FnZSI+DQogICAgICAgIC8vLyBBbiBpbml0aWFsaXphdGlvbiB2YWx1ZSBmb3IgdGhlIDxzZWUgY3JlZj0iUDogTWVzc2FnZSIgLz4gcHJvcGVydHkuDQogICAgICAgIC8vLyA8L3BhcmFtPg0KICAgICAgICAvLy8gPHBhcmFtIG5hbWU9InN0YWNrIj4NCiAgICAgICAgLy8vIEFuIGluaXRpYWxpemF0aW9uIHZhbHVlIGZvciB0aGUgPHNlZSBjcmVmPSJQOiBTdGFjayIgLz4gcHJvcGVydHkuDQogICAgICAgIC8vLyA8L3BhcmFtPg0KICAgICAgICAvLy8gPHBhcmFtIG5hbWU9ImlubmVyRXhjZXB0aW9ucyI+DQogICAgICAgIC8vLyBBbiBpbml0aWFsaXphdGlvbiB2YWx1ZSBmb3IgdGhlIDxzZWUgY3JlZj0iUDogSW5uZXJFeGNlcHRpb25zIiAvPiBwcm9wZXJ0eS4NCiAgICAgICAgLy8vIDwvcGFyYW0+DQogICAgICAgIHB1YmxpYyBFeGNlcHRpb25EYXRhKHN0cmluZyBraW5kLCBzdHJpbmcgbWVzc2FnZSwgU3RhY2sgc3RhY2ssIElFbnVtZXJhYmxlPEV4Y2VwdGlvbkRhdGE+IGlubmVyRXhjZXB0aW9ucykNCiAgICAgICAgew0KICAgICAgICAgICAgSW5pdChraW5kLCBtZXNzYWdlLCBzdGFjaywgaW5uZXJFeGNlcHRpb25zKTsNCiAgICAgICAgfQ0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIEluaXRpYWxpemVzIGEgbmV3IGluc3RhbmNlIG9mIHRoZSA8c2VlIGNyZWY9IkV4Y2VwdGlvbkRhdGEiIC8+IGNsYXNzIGZyb20gdGhlIHNwZWNpZmllZCBpbnN0YW5jZS4NCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgLy8vIDxwYXJhbSBuYW1lPSJvdGhlciI+DQogICAgICAgIC8vLyBUaGUgaW5zdGFuY2UgZnJvbSB3aGljaCB0aGUgbmV3IGluc3RhbmNlIGlzIHRvIGJlIGluaXRpYWxpemVkLg0KICAgICAgICAvLy8gPC9wYXJhbT4NCiAgICAgICAgLy8vIDxleGNlcHRpb24gY3JlZj0iQXJndW1lbnROdWxsRXhjZXB0aW9uIj4NCiAgICAgICAgLy8vIFRocm93biBpZiA8cGFyYW1yZWYgbmFtZT0ib3RoZXIiIC8+IGlzIG51bGwuDQogICAgICAgIC8vLyA8L2V4Y2VwdGlvbj4NCiAgICAgICAgcHVibGljIEV4Y2VwdGlvbkRhdGEoRXhjZXB0aW9uRGF0YSBvdGhlcikNCiAgICAgICAgew0KICAgICAgICAgICAgaWYgKG90aGVyID09IG51bGwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgdGhyb3cgbmV3IEFyZ3VtZW50TnVsbEV4Y2VwdGlvbihuYW1lb2Yob3RoZXIpKTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgSW5pdChvdGhlci5LaW5kLCBvdGhlci5NZXNzYWdlLCBvdGhlci5TdGFjaywgb3RoZXIuSW5uZXJFeGNlcHRpb25zKTsNCiAgICAgICAgfQ0KDQogICAgICAgIElTYXJpZk5vZGUgSVNhcmlmTm9kZS5EZWVwQ2xvbmUoKQ0KICAgICAgICB7DQogICAgICAgICAgICByZXR1cm4gRGVlcENsb25lQ29yZSgpOw0KICAgICAgICB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gQ3JlYXRlcyBhIGRlZXAgY29weSBvZiB0aGlzIGluc3RhbmNlLg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICBwdWJsaWMgRXhjZXB0aW9uRGF0YSBEZWVwQ2xvbmUoKQ0KICAgICAgICB7DQogICAgICAgICAgICByZXR1cm4gKEV4Y2VwdGlvbkRhdGEpRGVlcENsb25lQ29yZSgpOw0KICAgICAgICB9DQoNCiAgICAgICAgcHJpdmF0ZSBJU2FyaWZOb2RlIERlZXBDbG9uZUNvcmUoKQ0KICAgICAgICB7DQogICAgICAgICAgICByZXR1cm4gbmV3IEV4Y2VwdGlvbkRhdGEodGhpcyk7DQogICAgICAgIH0NCg0KICAgICAgICBwcml2YXRlIHZvaWQgSW5pdChzdHJpbmcga2luZCwgc3RyaW5nIG1lc3NhZ2UsIFN0YWNrIHN0YWNrLCBJRW51bWVyYWJsZTxFeGNlcHRpb25EYXRhPiBpbm5lckV4Y2VwdGlvbnMpDQogICAgICAgIHsNCiAgICAgICAgICAgIEtpbmQgPSBraW5kOw0KICAgICAgICAgICAgTWVzc2FnZSA9IG1lc3NhZ2U7DQogICAgICAgICAgICBpZiAoc3RhY2sgIT0gbnVsbCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBTdGFjayA9IG5ldyBTdGFjayhzdGFjayk7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIGlmIChpbm5lckV4Y2VwdGlvbnMgIT0gbnVsbCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICB2YXIgZGVzdGluYXRpb25fMCA9IG5ldyBMaXN0PEV4Y2VwdGlvbkRhdGE+KCk7DQogICAgICAgICAgICAgICAgZm9yZWFjaCAodmFyIHZhbHVlXzAgaW4gaW5uZXJFeGNlcHRpb25zKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlXzAgPT0gbnVsbCkNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgZGVzdGluYXRpb25fMC5BZGQobnVsbCk7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgZWxzZQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICBkZXN0aW5hdGlvbl8wLkFkZChuZXcgRXhjZXB0aW9uRGF0YSh2YWx1ZV8wKSk7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICBJbm5lckV4Y2VwdGlvbnMgPSBkZXN0aW5hdGlvbl8wOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgfQ0KfQ==" + { + "ruleId": "CA1704", + "message": { + "text": "In method 'StringExtensions.AtIndex(this string, int)', correct the spelling of 'j' in parameter name 'jPointer' or remove it entirely if it represents any sort of Hungarian notation.", + "id": "MemberParameter" }, - "hashes": [ - { - "value": "77C0502EDEF463B79B01A593CEE37690", - "algorithm": "md5" - }, - { - "value": "CE1389BCF5780C040DDDFD0E7D81422485413FA0", - "algorithm": "sha-1" - }, + "locations": [ { - "value": "E5E4353400ECC577EF6B24EC5ADC2AFE78D6706EA5B178A0EEC536EB6A35AB0B", - "algorithm": "sha-256" + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Microsoft.Json.Pointer.dll", + "uriBaseId": "$(ProjectDir)", + "index": 0 + } + }, + "logicalLocations": [ + { + "index": 24, + "fullyQualifiedName": "microsoft.json.pointer.dll!Microsoft.Json.Pointer.StringExtensions.AtIndex(System.String,System.Int32)" + } + ] } - ] + ], + "partialFingerprints": { + "UniqueId": "j#MemberParameter" + }, + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" + } }, - "file:///E:/src/sarif-sdk-test/src/Sarif/ExtensionMethods.cs": { - "mimeType": "text/x-csharp", - "contents": { - "binary": "77u/Ly8gQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuDQovLyBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UuIFNlZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHByb2plY3Qgcm9vdCBmb3IgZnVsbCBsaWNlbnNlIGluZm9ybWF0aW9uLnVzaW5nIFN5c3RlbTsNCg0KdXNpbmcgU3lzdGVtOw0KdXNpbmcgU3lzdGVtLkNvbGxlY3Rpb25zLkdlbmVyaWM7DQp1c2luZyBTeXN0ZW0uRGlhZ25vc3RpY3M7DQp1c2luZyBTeXN0ZW0uR2xvYmFsaXphdGlvbjsNCnVzaW5nIFN5c3RlbS5JTzsNCnVzaW5nIFN5c3RlbS5MaW5xOw0KdXNpbmcgU3lzdGVtLlhtbDsNCg0KdXNpbmcgTWljcm9zb2Z0LkNvZGVBbmFseXNpcy5TYXJpZi5Xcml0ZXJzOw0KDQpuYW1lc3BhY2UgTWljcm9zb2Z0LkNvZGVBbmFseXNpcy5TYXJpZg0Kew0KICAgIHB1YmxpYyBzdGF0aWMgY2xhc3MgRXh0ZW5zaW9uTWV0aG9kcw0KICAgIHsNCiAgICAgICAgcHVibGljIHN0YXRpYyBNZXNzYWdlIFRvTWVzc2FnZSh0aGlzIHN0cmluZyB0ZXh0KQ0KICAgICAgICB7DQogICAgICAgICAgICByZXR1cm4gbmV3IE1lc3NhZ2UgeyBUZXh0ID0gdGV4dCB9Ow0KICAgICAgICB9DQoNCiAgICAgICAgcHVibGljIHN0YXRpYyBPcHRpb25hbGx5RW1pdHRlZERhdGEgVG9GbGFncyh0aGlzIElFbnVtZXJhYmxlPE9wdGlvbmFsbHlFbWl0dGVkRGF0YT4gb3B0aW9uYWxseUVtaXR0ZWREYXRhKQ0KICAgICAgICB7DQogICAgICAgICAgICBPcHRpb25hbGx5RW1pdHRlZERhdGEgY29udmVydGVkVG9GbGFncyA9IE9wdGlvbmFsbHlFbWl0dGVkRGF0YS5Ob25lOw0KICAgICAgICAgICAgaWYgKG9wdGlvbmFsbHlFbWl0dGVkRGF0YSAhPSBudWxsKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIEFycmF5LkZvckVhY2gob3B0aW9uYWxseUVtaXR0ZWREYXRhLlRvQXJyYXkoKSwgZGF0YSA9PiBjb252ZXJ0ZWRUb0ZsYWdzIHw9IGRhdGEpOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICByZXR1cm4gY29udmVydGVkVG9GbGFnczsNCiAgICAgICAgfQ0KDQogICAgICAgIHB1YmxpYyBzdGF0aWMgYm9vbCBJbmNsdWRlcyh0aGlzIE9wdGlvbmFsbHlFbWl0dGVkRGF0YSBvcHRpb25hbGx5RW1pdHRlZERhdGEsIE9wdGlvbmFsbHlFbWl0dGVkRGF0YSBvdGhlck9wdGlvbmFsbHlFbWl0dGVkRGF0YSkNCiAgICAgICAgew0KICAgICAgICAgICAgcmV0dXJuIChvcHRpb25hbGx5RW1pdHRlZERhdGEgJiBvdGhlck9wdGlvbmFsbHlFbWl0dGVkRGF0YSkgPT0gb3RoZXJPcHRpb25hbGx5RW1pdHRlZERhdGE7DQogICAgICAgIH0NCg0KICAgICAgICBwdWJsaWMgc3RhdGljIGJvb2wgSW5jbHVkZXModGhpcyBMb2dnaW5nT3B0aW9ucyBsb2dnaW5nT3B0aW9ucywgTG9nZ2luZ09wdGlvbnMgb3RoZXJMb2dnaW5nT3B0aW9ucykNCiAgICAgICAgew0KICAgICAgICAgICAgcmV0dXJuIChsb2dnaW5nT3B0aW9ucyAmIG90aGVyTG9nZ2luZ09wdGlvbnMpID09IG90aGVyTG9nZ2luZ09wdGlvbnM7DQogICAgICAgIH0NCg0KICAgICAgICBwdWJsaWMgc3RhdGljIHN0cmluZyBHZXRGaWxlTmFtZSh0aGlzIFVyaSB1cmkpDQogICAgICAgIHsNCiAgICAgICAgICAgIGlmICghdXJpLklzQWJzb2x1dGVVcmkpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgdGhyb3cgbmV3IEludmFsaWRPcGVyYXRpb25FeGNlcHRpb24oKTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgcmV0dXJuIFBhdGguR2V0RmlsZU5hbWUodXJpLkxvY2FsUGF0aCk7DQogICAgICAgIH0NCg0KICAgICAgICBwdWJsaWMgc3RhdGljIHN0cmluZyBGb3JtYXRGb3JWaXN1YWxTdHVkaW8odGhpcyBSZWdpb24gcmVnaW9uKQ0KICAgICAgICB7DQogICAgICAgICAgICBpZiAocmVnaW9uID09IG51bGwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgcmV0dXJuIFN0cmluZy5FbXB0eTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgaWYgKHJlZ2lvbi5TdGFydExpbmUgPCAwKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHRocm93IG5ldyBOb3RJbXBsZW1lbnRlZEV4Y2VwdGlvbigpOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAvLyBWUyBzdXBwb3J0cyB0aGUgZm9sbG93aW5nIGZvcm1hdHRpbmcgb3B0aW9uczoNCiAgICAgICAgICAgIC8vICAgIChzdGFydExpbmUpDQogICAgICAgICAgICAvLyAgICAoc3RhcnRMaW5lLWVuZExpbmUpDQogICAgICAgICAgICAvLyAgICAoc3RhcnRMaW5lLHN0YXJ0Q29sdW1uKQ0KICAgICAgICAgICAgLy8gICAgKHN0YXJ0TGluZSxzdGFydENvbHVtbi1lbmRDb2x1bW4pDQogICAgICAgICAgICAvLyAgICAoc3RhcnRMaW5lLHN0YXJ0Q29sdW1uLGVuZExpbmUsZW5kQ29sdW1uKQ0KDQogICAgICAgICAgICBib29sIG11bHRpbGluZSA9IHJlZ2lvbi5FbmRMaW5lID4gcmVnaW9uLlN0YXJ0TGluZTsNCiAgICAgICAgICAgIGJvb2wgbXVsdGljb2x1bW4gPSAobXVsdGlsaW5lIHx8IHJlZ2lvbi5FbmRDb2x1bW4gPiByZWdpb24uU3RhcnRDb2x1bW4pOw0KDQogICAgICAgICAgICBpZiAobXVsdGlsaW5lKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIGlmIChtdWx0aWNvbHVtbiAmJiAocmVnaW9uLlN0YXJ0Q29sdW1uID4gMSB8fCByZWdpb24uRW5kQ29sdW1uID4gMSkpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAvLyAgKHN0YXJ0TGluZSxzdGFydENvbHVtbixlbmRMaW5lLGVuZENvbHVtbikNCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuDQogICAgICAgICAgICAgICAgICAgICAgICAiKCIgKw0KICAgICAgICAgICAgICAgICAgICAgICAgcmVnaW9uLlN0YXJ0TGluZS5Ub1N0cmluZyhDdWx0dXJlSW5mby5JbnZhcmlhbnRDdWx0dXJlKSArICIsIiArDQogICAgICAgICAgICAgICAgICAgICAgICAocmVnaW9uLlN0YXJ0Q29sdW1uID4gMCA/IHJlZ2lvbi5TdGFydENvbHVtbi5Ub1N0cmluZyhDdWx0dXJlSW5mby5JbnZhcmlhbnRDdWx0dXJlKSA6ICIxIikgKyAiLCIgKw0KICAgICAgICAgICAgICAgICAgICAgICAgcmVnaW9uLkVuZExpbmUuVG9TdHJpbmcoQ3VsdHVyZUluZm8uSW52YXJpYW50Q3VsdHVyZSkgKyAiLCIgKw0KICAgICAgICAgICAgICAgICAgICAgICAgKHJlZ2lvbi5FbmRDb2x1bW4gPiAwID8gcmVnaW9uLkVuZENvbHVtbi5Ub1N0cmluZyhDdWx0dXJlSW5mby5JbnZhcmlhbnRDdWx0dXJlKSA6ICIxIikgKw0KICAgICAgICAgICAgICAgICAgICAgICAgIikiOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAvLyAgKHN0YXJ0TGluZS1lbmRMaW5lKQ0KICAgICAgICAgICAgICAgIHJldHVybg0KICAgICAgICAgICAgICAgICAgICAiKCIgKw0KICAgICAgICAgICAgICAgICAgICByZWdpb24uU3RhcnRMaW5lLlRvU3RyaW5nKEN1bHR1cmVJbmZvLkludmFyaWFudEN1bHR1cmUpICsgIi0iICsgcmVnaW9uLkVuZExpbmUuVG9TdHJpbmcoQ3VsdHVyZUluZm8uSW52YXJpYW50Q3VsdHVyZSkgKw0KICAgICAgICAgICAgICAgICAgICAiKSI7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIGlmIChtdWx0aWNvbHVtbikNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAvLyAoc3RhcnRMaW5lLHN0YXJ0Q29sdW1uLWVuZENvbHVtbikNCiAgICAgICAgICAgICAgICByZXR1cm4NCiAgICAgICAgICAgICAgICAgICAgIigiICsNCiAgICAgICAgICAgICAgICAgICAgcmVnaW9uLlN0YXJ0TGluZS5Ub1N0cmluZyhDdWx0dXJlSW5mby5JbnZhcmlhbnRDdWx0dXJlKSArICIsIiArDQogICAgICAgICAgICAgICAgICAgIHJlZ2lvbi5TdGFydENvbHVtbi5Ub1N0cmluZyhDdWx0dXJlSW5mby5JbnZhcmlhbnRDdWx0dXJlKSArICItIiArDQogICAgICAgICAgICAgICAgICAgIHJlZ2lvbi5FbmRDb2x1bW4uVG9TdHJpbmcoQ3VsdHVyZUluZm8uSW52YXJpYW50Q3VsdHVyZSkgKw0KICAgICAgICAgICAgICAgICAgICAiKSI7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIGlmIChyZWdpb24uU3RhcnRDb2x1bW4gPiAxKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIC8vIChzdGFydExpbmUsc3RhcnRDb2x1bW4pDQogICAgICAgICAgICAgICAgcmV0dXJuDQogICAgICAgICAgICAgICAgICAgICAiKCIgKw0KICAgICAgICAgICAgICAgICAgICAgcmVnaW9uLlN0YXJ0TGluZS5Ub1N0cmluZyhDdWx0dXJlSW5mby5JbnZhcmlhbnRDdWx0dXJlKSArICIsIiArIHJlZ2lvbi5TdGFydENvbHVtbi5Ub1N0cmluZyhDdWx0dXJlSW5mby5JbnZhcmlhbnRDdWx0dXJlKSArDQogICAgICAgICAgICAgICAgICAgICAiKSI7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyAoc3RhcnRMaW5lKQ0KICAgICAgICAgICAgcmV0dXJuDQogICAgICAgICAgICAgICAgICIoIiArDQogICAgICAgICAgICAgICAgIHJlZ2lvbi5TdGFydExpbmUuVG9TdHJpbmcoQ3VsdHVyZUluZm8uSW52YXJpYW50Q3VsdHVyZSkgKw0KICAgICAgICAgICAgICAgICAiKSI7DQogICAgICAgIH0NCg0KICAgICAgICBwdWJsaWMgc3RhdGljIHN0cmluZyBGb3JtYXRGb3JWaXN1YWxTdHVkaW8odGhpcyBSZXN1bHQgcmVzdWx0LCBJUnVsZSBydWxlKQ0KICAgICAgICB7DQogICAgICAgICAgICBpZiAocmVzdWx0ID09IG51bGwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgdGhyb3cgbmV3IEFyZ3VtZW50TnVsbEV4Y2VwdGlvbihuYW1lb2YocmVzdWx0KSk7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIGlmIChydWxlID09IG51bGwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgdGhyb3cgbmV3IEFyZ3VtZW50TnVsbEV4Y2VwdGlvbihuYW1lb2YocnVsZSkpOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICB2YXIgbWVzc2FnZUxpbmVzID0gbmV3IExpc3Q8c3RyaW5nPigpOw0KDQogICAgICAgICAgICBmb3JlYWNoICh2YXIgbG9jYXRpb24gaW4gcmVzdWx0LkxvY2F0aW9ucykNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBVcmkgdXJpID0gbG9jYXRpb24uUGh5c2ljYWxMb2NhdGlvbi5GaWxlTG9jYXRpb24uVXJpOw0KICAgICAgICAgICAgICAgIHN0cmluZyBwYXRoID0gdXJpLklzQWJzb2x1dGVVcmkgJiYgdXJpLklzRmlsZSA/IHVyaS5Mb2NhbFBhdGggOiB1cmkuVG9TdHJpbmcoKTsNCiAgICAgICAgICAgICAgICBtZXNzYWdlTGluZXMuQWRkKA0KICAgICAgICAgICAgICAgICAgICBzdHJpbmcuRm9ybWF0KA0KICAgICAgICAgICAgICAgICAgICAgICAgQ3VsdHVyZUluZm8uSW52YXJpYW50Q3VsdHVyZSwgInswfXsxfTogezJ9IHszfTogezR9IiwNCiAgICAgICAgICAgICAgICAgICAgICAgIHBhdGgsDQogICAgICAgICAgICAgICAgICAgICAgICBsb2NhdGlvbi5QaHlzaWNhbExvY2F0aW9uLlJlZ2lvbi5Gb3JtYXRGb3JWaXN1YWxTdHVkaW8oKSwNCiAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5MZXZlbC5Gb3JtYXRGb3JWaXN1YWxTdHVkaW8oKSwNCiAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5SdWxlSWQsDQogICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQuR2V0TWVzc2FnZVRleHQocnVsZSkNCiAgICAgICAgICAgICAgICAgICAgICAgICkpOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICByZXR1cm4gc3RyaW5nLkpvaW4oRW52aXJvbm1lbnQuTmV3TGluZSwgbWVzc2FnZUxpbmVzKTsNCiAgICAgICAgfQ0KDQogICAgICAgIHB1YmxpYyBzdGF0aWMgc3RyaW5nIEZvcm1hdEZvclZpc3VhbFN0dWRpbyh0aGlzIFJlc3VsdExldmVsIGxldmVsKQ0KICAgICAgICB7DQogICAgICAgICAgICBzd2l0Y2ggKGxldmVsKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIGNhc2UgUmVzdWx0TGV2ZWwuRXJyb3I6DQogICAgICAgICAgICAgICAgICAgIHJldHVybiAiZXJyb3IiOw0KDQogICAgICAgICAgICAgICAgY2FzZSBSZXN1bHRMZXZlbC5XYXJuaW5nOg0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gIndhcm5pbmciOw0KDQogICAgICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICJpbmZvIjsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgIHB1YmxpYyBzdGF0aWMgc3RyaW5nIEdldE1lc3NhZ2VUZXh0KHRoaXMgUmVzdWx0IHJlc3VsdCwgSVJ1bGUgcnVsZSkNCiAgICAgICAgew0KICAgICAgICAgICAgcmV0dXJuIEdldE1lc3NhZ2VUZXh0KHJlc3VsdCwgcnVsZSwgY29uY2lzZTogZmFsc2UpOw0KICAgICAgICB9DQoNCiAgICAgICAgcHVibGljIHN0YXRpYyBzdHJpbmcgR2V0TWVzc2FnZVRleHQodGhpcyBSZXN1bHQgcmVzdWx0LCBJUnVsZSBydWxlLCBib29sIGNvbmNpc2UpDQogICAgICAgIHsNCiAgICAgICAgICAgIGlmIChyZXN1bHQgPT0gbnVsbCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgQXJndW1lbnROdWxsRXhjZXB0aW9uKG5hbWVvZihyZXN1bHQpKTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgc3RyaW5nIHRleHQgPSByZXN1bHQuTWVzc2FnZT8uVGV4dDsNCiAgICAgICAgICAgIGlmIChzdHJpbmcuSXNOdWxsT3JFbXB0eSh0ZXh0KSkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICB0ZXh0ID0gc3RyaW5nLkVtcHR5OyAgICAvLyBFbnN1cmUgdGhhdCBpdCdzIG5vdCBudWxsLg0KDQogICAgICAgICAgICAgICAgc3RyaW5nIG1lc3NhZ2VJZCA9IHJlc3VsdC5NZXNzYWdlPy5NZXNzYWdlSWQ7DQoNCiAgICAgICAgICAgICAgICBpZiAocnVsZSAhPSBudWxsICYmICFzdHJpbmcuSXNOdWxsT3JXaGl0ZVNwYWNlKG1lc3NhZ2VJZCkpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBzdHJpbmcgbWVzc2FnZVN0cmluZzsNCg0KICAgICAgICAgICAgICAgICAgICBzdHJpbmdbXSBhcmd1bWVudHMgPSBudWxsOw0KDQogICAgICAgICAgICAgICAgICAgIGlmIChyZXN1bHQuTWVzc2FnZT8uQXJndW1lbnRzICE9IG51bGwpDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3VtZW50cyA9IG5ldyBzdHJpbmdbcmVzdWx0Lk1lc3NhZ2UuQXJndW1lbnRzLkNvdW50XTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5NZXNzYWdlLkFyZ3VtZW50cy5Db3B5VG8oYXJndW1lbnRzLCAwKTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBlbHNlDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3VtZW50cyA9IG5ldyBzdHJpbmdbMF07DQogICAgICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgICAgICBpZiAocnVsZS5NZXNzYWdlU3RyaW5ncz8uQ29udGFpbnNLZXkobWVzc2FnZUlkKSA9PSB0cnVlKQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlU3RyaW5nID0gcnVsZS5NZXNzYWdlU3RyaW5nc1ttZXNzYWdlSWRdOw0KDQojaWYgREVCVUcNCiAgICAgICAgICAgICAgICAgICAgICAgIGludCBhcmd1bWVudHNDb3VudCA9IGFyZ3VtZW50cy5MZW5ndGg7DQogICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGFyZ3VtZW50c0NvdW50OyBpKyspDQogICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gSWYgdGhpcyBhc3NlcnQgZmlyZXMsIHRoZXJlIGFyZSB0b28gbWFueSBhcmd1bWVudHMgZm9yIHRoZSBzcGVjaWZpZXINCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBvciB0aGVyZSBpcyBhbiBhcmd1bWVudCBpcyBza2lwcGVkIG9yIG5vdCBjb25zdW1lZCBpbiB0aGUgc3BlY2lmaWVyDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgRGVidWcuQXNzZXJ0KG1lc3NhZ2VTdHJpbmcuQ29udGFpbnMoInsiICsgaS5Ub1N0cmluZyhDdWx0dXJlSW5mby5JbnZhcmlhbnRDdWx0dXJlKSArICJ9IikpOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KI2VuZGlmDQoNCiAgICAgICAgICAgICAgICAgICAgICAgIHRleHQgPSBzdHJpbmcuRm9ybWF0KEN1bHR1cmVJbmZvLkludmFyaWFudEN1bHR1cmUsIG1lc3NhZ2VTdHJpbmcsIGFyZ3VtZW50cyk7DQoNCiNpZiBERUJVRw0KICAgICAgICAgICAgICAgICAgICAgICAgLy8gSWYgdGhpcyBhc3NlcnQgZmlyZXMsIGFuIGluc3VmZmljaWVudCAjIG9mIGFyZ3VtZW50cyBtaWdodA0KICAgICAgICAgICAgICAgICAgICAgICAgLy8gaGF2ZSBiZWVuIHByb3ZpZGVkIHRvIFN0cmluZy5Gb3JtYXQuDQogICAgICAgICAgICAgICAgICAgICAgICBEZWJ1Zy5Bc3NlcnQoIXRleHQuQ29udGFpbnMoInsiKSk7DQojZW5kaWYNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgaWYgKGNvbmNpc2UpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgdGV4dCA9IEdldEZpcnN0U2VudGVuY2UodGV4dCk7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIHJldHVybiB0ZXh0Ow0KICAgICAgICB9DQoNCiAgICAgICAgcHVibGljIHN0YXRpYyBzdHJpbmcgR2V0Rmlyc3RTZW50ZW5jZShzdHJpbmcgdGV4dCkNCiAgICAgICAgew0KICAgICAgICAgICAgaWYgKHRleHQgPT0gbnVsbCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgQXJndW1lbnROdWxsRXhjZXB0aW9uKG5hbWVvZih0ZXh0KSk7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIGludCBsZW5ndGggPSAwOw0KICAgICAgICAgICAgYm9vbCB3aXRoaW5RdW90ZXMgPSBmYWxzZTsNCiAgICAgICAgICAgIGJvb2wgd2l0aGluUGFyZW50aGVzZXMgPSBmYWxzZTsNCiAgICAgICAgICAgIGJvb2wgbGFzdEVuY291bnRlcmVkV2FzRG90ID0gZmFsc2U7DQogICAgICAgICAgICBib29sIHdpdGhpbkVsbGlwc2lzID0gZmFsc2U7DQoNCiAgICAgICAgICAgIGZvcmVhY2ggKGNoYXIgY2ggaW4gdGV4dCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBsZW5ndGgrKzsNCiAgICAgICAgICAgICAgICBzd2l0Y2ggKGNoKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgY2FzZSAnXCcnOg0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAvLyB3ZSdsbCBpZ25vcmUgZXZlcnl0aGluZyB3aXRoaW4gcGFyZW50aGl6ZWQgdGV4dA0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCF3aXRoaW5QYXJlbnRoZXNlcykNCiAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoaW5RdW90ZXMgPSAhd2l0aGluUXVvdGVzOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgbGFzdEVuY291bnRlcmVkV2FzRG90ID0gZmFsc2U7DQogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgICAgIGNhc2UgJygnOg0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXdpdGhpblF1b3RlcykNCiAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoaW5QYXJlbnRoZXNlcyA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICBsYXN0RW5jb3VudGVyZWRXYXNEb3QgPSBmYWxzZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAgICAgY2FzZSAnKSc6DQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghd2l0aGluUXVvdGVzKQ0KICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhpblBhcmVudGhlc2VzID0gZmFsc2U7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICBsYXN0RW5jb3VudGVyZWRXYXNEb3QgPSBmYWxzZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAgICAgY2FzZSAnLic6DQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh3aXRoaW5RdW90ZXMgfHwgd2l0aGluUGFyZW50aGVzZXMgfHwgd2l0aGluRWxsaXBzaXMpIHsgY29udGludWU7IH0NCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChsZW5ndGggPCB0ZXh0Lkxlbmd0aCAmJiB0ZXh0W2xlbmd0aF0gPT0gJy4nKQ0KICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhpbkVsbGlwc2lzID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXN0RW5jb3VudGVyZWRXYXNEb3QgPSBmYWxzZTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgICAgICAgICAgbGFzdEVuY291bnRlcmVkV2FzRG90ID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAgICAgLy8gSWYgd2UgZW5jb3VudGVyIGEgbGluZS1icmVhaywgd2UgcmV0dXJuIGFsbCBsZWFkaW5nIHRleHQuDQogICAgICAgICAgICAgICAgICAgIGNhc2UgJ1xuJzoNCiAgICAgICAgICAgICAgICAgICAgY2FzZSAnXHInOg0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAod2l0aGluUXVvdGVzIHx8IHdpdGhpblBhcmVudGhlc2VzKSB7IGNvbnRpbnVlOyB9DQogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGV4dC5TdWJzdHJpbmcoMCwgbGVuZ3RoKS5UcmltRW5kKCdccicsICdcbicsICcgJywgJy4nKSArICIuIjsNCiAgICAgICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgICAgIC8vIElmIHdlIGVuY291bnRlciBhIHNwYWNlIGZvbGxvd2luZyBhIHBlcmlvZCwgcmV0dXJuIA0KICAgICAgICAgICAgICAgICAgICAvLyBhbGwgdGV4dCB0ZXJtaW5hdGluZyBpbiB0aGUgcGVyaW9kIChpbmNsdXNpdmUpLg0KICAgICAgICAgICAgICAgICAgICBjYXNlICcgJzoNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFsYXN0RW5jb3VudGVyZWRXYXNEb3QpIGNvbnRpbnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHdpdGhpblF1b3RlcyB8fCB3aXRoaW5QYXJlbnRoZXNlcykgeyBjb250aW51ZTsgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRleHQuU3Vic3RyaW5nKDAsIGxlbmd0aCkuVHJpbUVuZCgnXHInLCAnXG4nLCAnICcsICcuJykgKyAiLiI7DQogICAgICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICBsYXN0RW5jb3VudGVyZWRXYXNEb3QgPSBmYWxzZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgcmV0dXJuIHRleHQuVHJpbUVuZCgnLicpICsgIi4iOw0KICAgICAgICB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5PlJldHJpZXZlcyBhIHByb3BlcnR5IHZhbHVlIGlmIGl0IGV4aXN0cywgb3IgbnVsbC48L3N1bW1hcnk+DQogICAgICAgIC8vLyA8cGFyYW0gbmFtZT0icHJvcGVydGllcyI+QSBwcm9wZXJ0aWVzIG9iamVjdCBmcm9tIHdoaWNoIHRoZSBwcm9wZXJ0eSBzaGFsbCBiZQ0KICAgICAgICAvLy8gcmV0cmlldmVkLCBvciBudWxsLjwvcGFyYW0+DQogICAgICAgIC8vLyA8cGFyYW0gbmFtZT0ia2V5Ij5UaGUgcHJvcGVydHkgbmFtZSAvIGtleS48L3BhcmFtPg0KICAgICAgICAvLy8gPHJldHVybnM+DQogICAgICAgIC8vLyBJZiA8cGFyYW1yZWYgbmFtZT0icHJvcGVydGllcyIvPiBpcyBub3QgbnVsbCBhbmQgYW4gZW50cnkgZm9yIHRoZSBzdXBwbGllZCBrZXkgZXhpc3RzLCB0aGUNCiAgICAgICAgLy8vIHZhbHVlIGFzc29jaWF0ZWQgd2l0aCB0aGF0IGtleTsgb3RoZXJ3aXNlLCBudWxsLg0KICAgICAgICAvLy8gPC9yZXR1cm5zPg0KICAgICAgICBpbnRlcm5hbCBzdGF0aWMgc3RyaW5nIFByb3BlcnR5VmFsdWUodGhpcyBEaWN0aW9uYXJ5PHN0cmluZywgc3RyaW5nPiBwcm9wZXJ0aWVzLCBzdHJpbmcga2V5KQ0KICAgICAgICB7DQogICAgICAgICAgICBpZiAocHJvcGVydGllcyAhPSBudWxsICYmIHByb3BlcnRpZXMuVHJ5R2V0VmFsdWUoa2V5LCBvdXQgc3RyaW5nIHByb3BWYWx1ZSkpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgcmV0dXJuIHByb3BWYWx1ZTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgcmV0dXJuIG51bGw7DQogICAgICAgIH0NCg0KICAgICAgICAvLy8gPHN1bW1hcnk+Q2hlY2tzIGlmIGEgY2hhcmFjdGVyIGlzIGEgbmV3bGluZS48L3N1bW1hcnk+DQogICAgICAgIC8vLyA8cGFyYW0gbmFtZT0idGVzdGVkQ2hhcmFjdGVyIj5UaGUgY2hhcmFjdGVyIHRvIGNoZWNrLjwvcGFyYW0+DQogICAgICAgIC8vLyA8cmV0dXJucz50cnVlIGlmIG5ld2xpbmUsIGZhbHNlIGlmIG5vdC48L3JldHVybnM+DQogICAgICAgIGludGVybmFsIHN0YXRpYyBib29sIElzTmV3bGluZSh0aGlzIGNoYXIgdGVzdGVkQ2hhcmFjdGVyKQ0KICAgICAgICB7DQogICAgICAgICAgICByZXR1cm4gdGVzdGVkQ2hhcmFjdGVyID09ICdccicNCiAgICAgICAgICAgICAgICB8fCB0ZXN0ZWRDaGFyYWN0ZXIgPT0gJ1xuJw0KICAgICAgICAgICAgICAgIHx8IHRlc3RlZENoYXJhY3RlciA9PSAnXHUyMDI4JyAgLy8gVW5pY29kZSBsaW5lIHNlcGFyYXRvcg0KICAgICAgICAgICAgICAgIHx8IHRlc3RlZENoYXJhY3RlciA9PSAnXHUyMDI5JzsgLy8gVW5pY29kZSBwYXJhZ3JhcGggc2VwYXJhdG9yDQogICAgICAgIH0NCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBSZXR1cm5zIHdoZXRoZXIgb3Igbm90IHRoZSByYW5nZSBbPHBhcmFtcmVmIG5hbWU9InN0YXJ0SW5kZXgiLz4sDQogICAgICAgIC8vLyA8cGFyYW1yZWYgbmFtZT0ic3RhcnRJbmRleCIvPiArIDxwYXJhbXJlZiBuYW1lPSJ0YXJnZXQiLz48Yz4uTGVuZ3RoPC9jPikgaXMgZXF1YWwgdG8gdGhlDQogICAgICAgIC8vLyBzdXBwbGllZCBzdHJpbmcuDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIC8vLyA8cGFyYW0gbmFtZT0iYXJyYXkiPlRoZSBhcnJheSB0byBjaGVjay48L3BhcmFtPg0KICAgICAgICAvLy8gPHBhcmFtIG5hbWU9InN0YXJ0SW5kZXgiPlRoZSBzdGFydCBpbmRleCBpbiB0aGUgYXJyYXkgdG8gY2hlY2suPC9wYXJhbT4NCiAgICAgICAgLy8vIDxwYXJhbSBuYW1lPSJ0YXJnZXQiPlRhcmdldCBzdHJpbmcgdG8gbG9vayBmb3IgaW4gdGhlIGFycmF5LjwvcGFyYW0+DQogICAgICAgIC8vLyA8cmV0dXJucz4NCiAgICAgICAgLy8vIHRydWUgaWYgdGhlIHJhbmdlIFs8cGFyYW1yZWYgbmFtZT0ic3RhcnRJbmRleCIvPiwgPHBhcmFtcmVmIG5hbWU9InN0YXJ0SW5kZXgiLz4gKw0KICAgICAgICAvLy8gPHBhcmFtcmVmIG5hbWU9InRhcmdldCIvPjxjPi5MZW5ndGg8L2M+KSBpcyBlcXVhbCB0bw0KICAgICAgICAvLy8gPHBhcmFtcmVmIG5hbWU9InRhcmdldCIvPi4gSWYgdGhlIHJhbmdlIGlzIHVuZGVmaW5lZCBpbiB0aGUgYm91bmRzIG9mIHRoZSBhcnJheSwgZmFsc2UuDQogICAgICAgIC8vLyA8L3JldHVybnM+DQogICAgICAgIGludGVybmFsIHN0YXRpYyBib29sIE1hdGNoZXModGhpcyBjaGFyW10gYXJyYXksIGludCBzdGFydEluZGV4LCBzdHJpbmcgdGFyZ2V0KQ0KICAgICAgICB7DQogICAgICAgICAgICBpZiAoc3RhcnRJbmRleCA8IDApDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBpbnQgdGFyZ2V0TGVuZ3RoID0gdGFyZ2V0Lkxlbmd0aDsNCiAgICAgICAgICAgIGlmICh0YXJnZXRMZW5ndGggKyBzdGFydEluZGV4ID49IGFycmF5Lkxlbmd0aCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIGZvciAoaW50IGlkeCA9IDA7IGlkeCA8IHRhcmdldExlbmd0aDsgKytpZHgpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgaWYgKGFycmF5W2lkeCArIHN0YXJ0SW5kZXhdICE9IHRhcmdldFtpZHhdKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgcmV0dXJuIHRydWU7DQogICAgICAgIH0NCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBDb25zdW1lcyBjb250ZW50IGZyb20gYW4gWE1MIHJlYWRlciB1bnRpbCB0aGUgZW5kIGVsZW1lbnQgb2YgdGhlIGVsZW1lbnQgYXQgZW5kRWxlbWVudERlcHRoDQogICAgICAgIC8vLyA8cGFyYW1yZWYgbmFtZT0iZW5kRWxlbWVudERlcHRoIi8+LCBpbmNsdWRpbmcgdGhlIGVuZCBlbGVtZW50Lg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICAvLy8gPHBhcmFtIG5hbWU9InhtbFJlYWRlciI+VGhlIDxzZWUgY3JlZj0iWG1sUmVhZGVyIi8+IHdob3NlIGNvbnRlbnRzIHNoYWxsIGJlIGNvbnN1bWVkLjwvcGFyYW0+DQogICAgICAgIC8vLyA8cGFyYW0gbmFtZT0iZW5kRWxlbWVudERlcHRoIj5UaGUgZW5kRWxlbWVudERlcHRoIG9mIG5vZGUgdG8gY29uc3VtZS48L3BhcmFtPg0KICAgICAgICBpbnRlcm5hbCBzdGF0aWMgdm9pZCBDb25zdW1lRWxlbWVudE9mRGVwdGgodGhpcyBYbWxSZWFkZXIgeG1sUmVhZGVyLCBpbnQgZW5kRWxlbWVudERlcHRoKQ0KICAgICAgICB7DQogICAgICAgICAgICBpbnQgZW50ZXJpbmdSZWFkZXJEZXB0aCA9IHhtbFJlYWRlci5EZXB0aDsNCg0KICAgICAgICAgICAgaWYgKGVudGVyaW5nUmVhZGVyRGVwdGggPCBlbmRFbGVtZW50RGVwdGgpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgcmV0dXJuOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBpZiAoZW50ZXJpbmdSZWFkZXJEZXB0aCA9PSBlbmRFbGVtZW50RGVwdGgpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgLy8gTW92ZSB0byB0aGUgZm9sbG93aW5nIGVsZW1lbnQNCiAgICAgICAgICAgICAgICB4bWxSZWFkZXIuUmVhZCgpOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICB3aGlsZSAoeG1sUmVhZGVyLkRlcHRoID4gZW5kRWxlbWVudERlcHRoICYmIHhtbFJlYWRlci5SZWFkKCkpIHsgfQ0KDQogICAgICAgICAgICBpZiAoeG1sUmVhZGVyLk5vZGVUeXBlID09IFhtbE5vZGVUeXBlLkVuZEVsZW1lbnQpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgLy8gQ29uc3VtZSB0aGUgZW5kIGVsZW1lbnQNCiAgICAgICAgICAgICAgICB4bWxSZWFkZXIuUmVhZCgpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICB9DQp9DQo=" + { + "ruleId": "CA1305", + "level": "error", + "message": { + "text": "Because the behavior of 'string.Format(string, object, object)' could vary based on the current user's locale settings, replace this call in 'StringExtensions.AtIndex(this string, int)' with a call to 'string.Format(IFormatProvider, string, params object[])'. If the result of 'string.Format(IFormatProvider, string, params object[])' will be displayed to the user, specify 'CultureInfo.CurrentCulture' as the 'IFormatProvider' parameter. Otherwise, if the result will be stored and accessed by software, such as when it is persisted to disk or to a database, specify 'CultureInfo.InvariantCulture'.", + "id": "IFormatProviderAlternateString" }, - "hashes": [ - { - "value": "0D511DE9067B7F00E1F0C84E1A74CD16", - "algorithm": "md5" - }, - { - "value": "EC3A663747EADCE8ACFB4A9E5CD21B33B0711607", - "algorithm": "sha-1" - }, + "locations": [ { - "value": "C9B0D5ACEFA10BEF6EA7FC19C8F24C1305A0E525D2FDF0BD4E043BE30388DC4F", - "algorithm": "sha-256" + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Microsoft.Json.Pointer.dll", + "uriBaseId": "$(ProjectDir)", + "index": 0 + } + }, + "logicalLocations": [ + { + "index": 24, + "fullyQualifiedName": "microsoft.json.pointer.dll!Microsoft.Json.Pointer.StringExtensions.AtIndex(System.String,System.Int32)" + } + ] } - ] + ], + "partialFingerprints": { + "UniqueId": "System.String.Format(System.String,System.Object,System.Object)#IFormatProviderAlternateString" + }, + "properties": { + "Category": "Microsoft.Globalization", + "FixCategory": "NonBreaking" + } }, - "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/FileChange.cs": { - "mimeType": "text/x-csharp", - "contents": { - "binary": "Ly8gQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQuICBBbGwgUmlnaHRzIFJlc2VydmVkLg0KLy8gTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlLiBTZWUgTElDRU5TRSBmaWxlIGluIHRoZSBwcm9qZWN0IHJvb3QgZm9yIGZ1bGwgbGljZW5zZSBpbmZvcm1hdGlvbi4NCg0KdXNpbmcgU3lzdGVtOw0KdXNpbmcgU3lzdGVtLkNvZGVEb20uQ29tcGlsZXI7DQp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsNCnVzaW5nIFN5c3RlbS5SdW50aW1lLlNlcmlhbGl6YXRpb247DQoNCm5hbWVzcGFjZSBNaWNyb3NvZnQuQ29kZUFuYWx5c2lzLlNhcmlmDQp7DQogICAgLy8vIDxzdW1tYXJ5Pg0KICAgIC8vLyBBIGNoYW5nZSB0byBhIHNpbmdsZSBmaWxlLg0KICAgIC8vLyA8L3N1bW1hcnk+DQogICAgW0RhdGFDb250cmFjdF0NCiAgICBbR2VuZXJhdGVkQ29kZSgiTWljcm9zb2Z0Lkpzb24uU2NoZW1hLlRvRG90TmV0IiwgIjAuNTYuMC4wIildDQogICAgcHVibGljIHBhcnRpYWwgY2xhc3MgRmlsZUNoYW5nZSA6IElTYXJpZk5vZGUNCiAgICB7DQogICAgICAgIHB1YmxpYyBzdGF0aWMgSUVxdWFsaXR5Q29tcGFyZXI8RmlsZUNoYW5nZT4gVmFsdWVDb21wYXJlciA9PiBGaWxlQ2hhbmdlRXF1YWxpdHlDb21wYXJlci5JbnN0YW5jZTsNCg0KICAgICAgICBwdWJsaWMgYm9vbCBWYWx1ZUVxdWFscyhGaWxlQ2hhbmdlIG90aGVyKSA9PiBWYWx1ZUNvbXBhcmVyLkVxdWFscyh0aGlzLCBvdGhlcik7DQogICAgICAgIHB1YmxpYyBpbnQgVmFsdWVHZXRIYXNoQ29kZSgpID0+IFZhbHVlQ29tcGFyZXIuR2V0SGFzaENvZGUodGhpcyk7DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gR2V0cyBhIHZhbHVlIGluZGljYXRpbmcgdGhlIHR5cGUgb2Ygb2JqZWN0IGltcGxlbWVudGluZyA8c2VlIGNyZWY9IklTYXJpZk5vZGUiIC8+Lg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICBwdWJsaWMgU2FyaWZOb2RlS2luZCBTYXJpZk5vZGVLaW5kDQogICAgICAgIHsNCiAgICAgICAgICAgIGdldA0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHJldHVybiBTYXJpZk5vZGVLaW5kLkZpbGVDaGFuZ2U7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBUaGUgbG9jYXRpb24gb2YgdGhlIGZpbGUgdG8gY2hhbmdlLg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICBbRGF0YU1lbWJlcihOYW1lID0gImZpbGVMb2NhdGlvbiIsIElzUmVxdWlyZWQgPSBmYWxzZSwgRW1pdERlZmF1bHRWYWx1ZSA9IGZhbHNlKV0NCiAgICAgICAgcHVibGljIEZpbGVMb2NhdGlvbiBGaWxlTG9jYXRpb24geyBnZXQ7IHNldDsgfQ0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIEFuIGFycmF5IG9mIHJlcGxhY2VtZW50IG9iamVjdHMsIGVhY2ggb2Ygd2hpY2ggcmVwcmVzZW50cyB0aGUgcmVwbGFjZW1lbnQgb2YgYSBzaW5nbGUgcmFuZ2Ugb2YgYnl0ZXMgaW4gYSBzaW5nbGUgZmlsZSBzcGVjaWZpZWQgYnkgJ2ZpbGVMb2NhdGlvbicuDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIFtEYXRhTWVtYmVyKE5hbWUgPSAicmVwbGFjZW1lbnRzIiwgSXNSZXF1aXJlZCA9IHRydWUpXQ0KICAgICAgICBwdWJsaWMgSUxpc3Q8UmVwbGFjZW1lbnQ+IFJlcGxhY2VtZW50cyB7IGdldDsgc2V0OyB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gSW5pdGlhbGl6ZXMgYSBuZXcgaW5zdGFuY2Ugb2YgdGhlIDxzZWUgY3JlZj0iRmlsZUNoYW5nZSIgLz4gY2xhc3MuDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIHB1YmxpYyBGaWxlQ2hhbmdlKCkNCiAgICAgICAgew0KICAgICAgICB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gSW5pdGlhbGl6ZXMgYSBuZXcgaW5zdGFuY2Ugb2YgdGhlIDxzZWUgY3JlZj0iRmlsZUNoYW5nZSIgLz4gY2xhc3MgZnJvbSB0aGUgc3VwcGxpZWQgdmFsdWVzLg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICAvLy8gPHBhcmFtIG5hbWU9ImZpbGVMb2NhdGlvbiI+DQogICAgICAgIC8vLyBBbiBpbml0aWFsaXphdGlvbiB2YWx1ZSBmb3IgdGhlIDxzZWUgY3JlZj0iUDogRmlsZUxvY2F0aW9uIiAvPiBwcm9wZXJ0eS4NCiAgICAgICAgLy8vIDwvcGFyYW0+DQogICAgICAgIC8vLyA8cGFyYW0gbmFtZT0icmVwbGFjZW1lbnRzIj4NCiAgICAgICAgLy8vIEFuIGluaXRpYWxpemF0aW9uIHZhbHVlIGZvciB0aGUgPHNlZSBjcmVmPSJQOiBSZXBsYWNlbWVudHMiIC8+IHByb3BlcnR5Lg0KICAgICAgICAvLy8gPC9wYXJhbT4NCiAgICAgICAgcHVibGljIEZpbGVDaGFuZ2UoRmlsZUxvY2F0aW9uIGZpbGVMb2NhdGlvbiwgSUVudW1lcmFibGU8UmVwbGFjZW1lbnQ+IHJlcGxhY2VtZW50cykNCiAgICAgICAgew0KICAgICAgICAgICAgSW5pdChmaWxlTG9jYXRpb24sIHJlcGxhY2VtZW50cyk7DQogICAgICAgIH0NCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBJbml0aWFsaXplcyBhIG5ldyBpbnN0YW5jZSBvZiB0aGUgPHNlZSBjcmVmPSJGaWxlQ2hhbmdlIiAvPiBjbGFzcyBmcm9tIHRoZSBzcGVjaWZpZWQgaW5zdGFuY2UuDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIC8vLyA8cGFyYW0gbmFtZT0ib3RoZXIiPg0KICAgICAgICAvLy8gVGhlIGluc3RhbmNlIGZyb20gd2hpY2ggdGhlIG5ldyBpbnN0YW5jZSBpcyB0byBiZSBpbml0aWFsaXplZC4NCiAgICAgICAgLy8vIDwvcGFyYW0+DQogICAgICAgIC8vLyA8ZXhjZXB0aW9uIGNyZWY9IkFyZ3VtZW50TnVsbEV4Y2VwdGlvbiI+DQogICAgICAgIC8vLyBUaHJvd24gaWYgPHBhcmFtcmVmIG5hbWU9Im90aGVyIiAvPiBpcyBudWxsLg0KICAgICAgICAvLy8gPC9leGNlcHRpb24+DQogICAgICAgIHB1YmxpYyBGaWxlQ2hhbmdlKEZpbGVDaGFuZ2Ugb3RoZXIpDQogICAgICAgIHsNCiAgICAgICAgICAgIGlmIChvdGhlciA9PSBudWxsKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHRocm93IG5ldyBBcmd1bWVudE51bGxFeGNlcHRpb24obmFtZW9mKG90aGVyKSk7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIEluaXQob3RoZXIuRmlsZUxvY2F0aW9uLCBvdGhlci5SZXBsYWNlbWVudHMpOw0KICAgICAgICB9DQoNCiAgICAgICAgSVNhcmlmTm9kZSBJU2FyaWZOb2RlLkRlZXBDbG9uZSgpDQogICAgICAgIHsNCiAgICAgICAgICAgIHJldHVybiBEZWVwQ2xvbmVDb3JlKCk7DQogICAgICAgIH0NCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBDcmVhdGVzIGEgZGVlcCBjb3B5IG9mIHRoaXMgaW5zdGFuY2UuDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIHB1YmxpYyBGaWxlQ2hhbmdlIERlZXBDbG9uZSgpDQogICAgICAgIHsNCiAgICAgICAgICAgIHJldHVybiAoRmlsZUNoYW5nZSlEZWVwQ2xvbmVDb3JlKCk7DQogICAgICAgIH0NCg0KICAgICAgICBwcml2YXRlIElTYXJpZk5vZGUgRGVlcENsb25lQ29yZSgpDQogICAgICAgIHsNCiAgICAgICAgICAgIHJldHVybiBuZXcgRmlsZUNoYW5nZSh0aGlzKTsNCiAgICAgICAgfQ0KDQogICAgICAgIHByaXZhdGUgdm9pZCBJbml0KEZpbGVMb2NhdGlvbiBmaWxlTG9jYXRpb24sIElFbnVtZXJhYmxlPFJlcGxhY2VtZW50PiByZXBsYWNlbWVudHMpDQogICAgICAgIHsNCiAgICAgICAgICAgIGlmIChmaWxlTG9jYXRpb24gIT0gbnVsbCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBGaWxlTG9jYXRpb24gPSBuZXcgRmlsZUxvY2F0aW9uKGZpbGVMb2NhdGlvbik7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIGlmIChyZXBsYWNlbWVudHMgIT0gbnVsbCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICB2YXIgZGVzdGluYXRpb25fMCA9IG5ldyBMaXN0PFJlcGxhY2VtZW50PigpOw0KICAgICAgICAgICAgICAgIGZvcmVhY2ggKHZhciB2YWx1ZV8wIGluIHJlcGxhY2VtZW50cykNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZV8wID09IG51bGwpDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGRlc3RpbmF0aW9uXzAuQWRkKG51bGwpOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGVsc2UNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgZGVzdGluYXRpb25fMC5BZGQobmV3IFJlcGxhY2VtZW50KHZhbHVlXzApKTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgIFJlcGxhY2VtZW50cyA9IGRlc3RpbmF0aW9uXzA7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCiAgICB9DQp9" + { + "ruleId": "CA1704", + "message": { + "text": "In method 'StringExtensions.AtProperty(this string, string)', correct the spelling of 'j' in parameter name 'jPointer' or remove it entirely if it represents any sort of Hungarian notation.", + "id": "MemberParameter" }, - "hashes": [ - { - "value": "CED88867ABF4FCED1CE24173AC8773D9", - "algorithm": "md5" - }, - { - "value": "CEC6B4051B9950C0793AF43BA8B7F72BE702F840", - "algorithm": "sha-1" - }, + "locations": [ { - "value": "E83777B4F44FF6D8CFD99FC711E07D425364721F8B763F02656612E1F2CFF2C7", - "algorithm": "sha-256" + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Microsoft.Json.Pointer.dll", + "uriBaseId": "$(ProjectDir)", + "index": 0 + } + }, + "logicalLocations": [ + { + "index": 25, + "fullyQualifiedName": "microsoft.json.pointer.dll!Microsoft.Json.Pointer.StringExtensions.AtProperty(System.String,System.String)" + } + ] } - ] + ], + "partialFingerprints": { + "UniqueId": "j#MemberParameter" + }, + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" + } }, - "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/FileData.cs": { - "mimeType": "text/x-csharp", - "contents": { - "binary": "Ly8gQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQuICBBbGwgUmlnaHRzIFJlc2VydmVkLg0KLy8gTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlLiBTZWUgTElDRU5TRSBmaWxlIGluIHRoZSBwcm9qZWN0IHJvb3QgZm9yIGZ1bGwgbGljZW5zZSBpbmZvcm1hdGlvbi4NCg0KdXNpbmcgU3lzdGVtOw0KdXNpbmcgU3lzdGVtLkNvZGVEb20uQ29tcGlsZXI7DQp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsNCnVzaW5nIFN5c3RlbS5SdW50aW1lLlNlcmlhbGl6YXRpb247DQp1c2luZyBNaWNyb3NvZnQuQ29kZUFuYWx5c2lzLlNhcmlmLlJlYWRlcnM7DQoNCm5hbWVzcGFjZSBNaWNyb3NvZnQuQ29kZUFuYWx5c2lzLlNhcmlmDQp7DQogICAgLy8vIDxzdW1tYXJ5Pg0KICAgIC8vLyBBIHNpbmdsZSBmaWxlLiBJbiBzb21lIGNhc2VzLCB0aGlzIGZpbGUgbWlnaHQgYmUgbmVzdGVkIHdpdGhpbiBhbm90aGVyIGZpbGUuDQogICAgLy8vIDwvc3VtbWFyeT4NCiAgICBbRGF0YUNvbnRyYWN0XQ0KICAgIFtHZW5lcmF0ZWRDb2RlKCJNaWNyb3NvZnQuSnNvbi5TY2hlbWEuVG9Eb3ROZXQiLCAiMC41Ni4wLjAiKV0NCiAgICBwdWJsaWMgcGFydGlhbCBjbGFzcyBGaWxlRGF0YSA6IFByb3BlcnR5QmFnSG9sZGVyLCBJU2FyaWZOb2RlDQogICAgew0KICAgICAgICBwdWJsaWMgc3RhdGljIElFcXVhbGl0eUNvbXBhcmVyPEZpbGVEYXRhPiBWYWx1ZUNvbXBhcmVyID0+IEZpbGVEYXRhRXF1YWxpdHlDb21wYXJlci5JbnN0YW5jZTsNCg0KICAgICAgICBwdWJsaWMgYm9vbCBWYWx1ZUVxdWFscyhGaWxlRGF0YSBvdGhlcikgPT4gVmFsdWVDb21wYXJlci5FcXVhbHModGhpcywgb3RoZXIpOw0KICAgICAgICBwdWJsaWMgaW50IFZhbHVlR2V0SGFzaENvZGUoKSA9PiBWYWx1ZUNvbXBhcmVyLkdldEhhc2hDb2RlKHRoaXMpOw0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIEdldHMgYSB2YWx1ZSBpbmRpY2F0aW5nIHRoZSB0eXBlIG9mIG9iamVjdCBpbXBsZW1lbnRpbmcgPHNlZSBjcmVmPSJJU2FyaWZOb2RlIiAvPi4NCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgcHVibGljIFNhcmlmTm9kZUtpbmQgU2FyaWZOb2RlS2luZA0KICAgICAgICB7DQogICAgICAgICAgICBnZXQNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gU2FyaWZOb2RlS2luZC5GaWxlRGF0YTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIFRoZSBsb2NhdGlvbiBvZiB0aGUgZmlsZS4NCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgW0RhdGFNZW1iZXIoTmFtZSA9ICJmaWxlTG9jYXRpb24iLCBJc1JlcXVpcmVkID0gZmFsc2UsIEVtaXREZWZhdWx0VmFsdWUgPSBmYWxzZSldDQogICAgICAgIHB1YmxpYyBGaWxlTG9jYXRpb24gRmlsZUxvY2F0aW9uIHsgZ2V0OyBzZXQ7IH0NCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBJZGVudGlmaWVzIHRoZSBrZXkgb2YgdGhlIGltbWVkaWF0ZSBwYXJlbnQgb2YgdGhlIGZpbGUsIGlmIHRoaXMgZmlsZSBpcyBuZXN0ZWQuDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIFtEYXRhTWVtYmVyKE5hbWUgPSAicGFyZW50S2V5IiwgSXNSZXF1aXJlZCA9IGZhbHNlLCBFbWl0RGVmYXVsdFZhbHVlID0gZmFsc2UpXQ0KICAgICAgICBwdWJsaWMgc3RyaW5nIFBhcmVudEtleSB7IGdldDsgc2V0OyB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gVGhlIG9mZnNldCBpbiBieXRlcyBvZiB0aGUgZmlsZSB3aXRoaW4gaXRzIGNvbnRhaW5pbmcgZmlsZS4NCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgW0RhdGFNZW1iZXIoTmFtZSA9ICJvZmZzZXQiLCBJc1JlcXVpcmVkID0gZmFsc2UsIEVtaXREZWZhdWx0VmFsdWUgPSBmYWxzZSldDQogICAgICAgIHB1YmxpYyBpbnQgT2Zmc2V0IHsgZ2V0OyBzZXQ7IH0NCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBUaGUgbGVuZ3RoIG9mIHRoZSBmaWxlIGluIGJ5dGVzLg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICBbRGF0YU1lbWJlcihOYW1lID0gImxlbmd0aCIsIElzUmVxdWlyZWQgPSBmYWxzZSwgRW1pdERlZmF1bHRWYWx1ZSA9IGZhbHNlKV0NCiAgICAgICAgcHVibGljIGludCBMZW5ndGggeyBnZXQ7IHNldDsgfQ0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIFRoZSByb2xlIG9yIHJvbGVzIHBsYXllZCBieSB0aGUgZmlsZSBpbiB0aGUgYW5hbHlzaXMuDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIFtEYXRhTWVtYmVyKE5hbWUgPSAicm9sZXMiLCBJc1JlcXVpcmVkID0gZmFsc2UsIEVtaXREZWZhdWx0VmFsdWUgPSBmYWxzZSldDQogICAgICAgIHB1YmxpYyBGaWxlUm9sZXMgUm9sZXMgeyBnZXQ7IHNldDsgfQ0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIFRoZSBNSU1FIHR5cGUgKFJGQyAyMDQ1KSBvZiB0aGUgZmlsZS4NCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgW0RhdGFNZW1iZXIoTmFtZSA9ICJtaW1lVHlwZSIsIElzUmVxdWlyZWQgPSBmYWxzZSwgRW1pdERlZmF1bHRWYWx1ZSA9IGZhbHNlKV0NCiAgICAgICAgcHVibGljIHN0cmluZyBNaW1lVHlwZSB7IGdldDsgc2V0OyB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gVGhlIGNvbnRlbnRzIG9mIHRoZSBmaWxlLCBleHByZXNzZWQgYXMgYSBNSU1FIEJhc2U2NC1lbmNvZGVkIGJ5dGUgc2VxdWVuY2UuDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIFtEYXRhTWVtYmVyKE5hbWUgPSAiY29udGVudHMiLCBJc1JlcXVpcmVkID0gZmFsc2UsIEVtaXREZWZhdWx0VmFsdWUgPSBmYWxzZSldDQogICAgICAgIHB1YmxpYyBGaWxlQ29udGVudCBDb250ZW50cyB7IGdldDsgc2V0OyB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gU3BlY2lmaWVzIHRoZSBlbmNvZGluZyBmb3IgYSBmaWxlIG9iamVjdCB0aGF0IHJlZmVycyB0byBhIHRleHQgZmlsZS4NCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgW0RhdGFNZW1iZXIoTmFtZSA9ICJlbmNvZGluZyIsIElzUmVxdWlyZWQgPSBmYWxzZSwgRW1pdERlZmF1bHRWYWx1ZSA9IGZhbHNlKV0NCiAgICAgICAgcHVibGljIHN0cmluZyBFbmNvZGluZyB7IGdldDsgc2V0OyB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gQW4gYXJyYXkgb2YgaGFzaCBvYmplY3RzLCBlYWNoIG9mIHdoaWNoIHNwZWNpZmllcyBhIGhhc2hlZCB2YWx1ZSBmb3IgdGhlIGZpbGUsIGFsb25nIHdpdGggdGhlIG5hbWUgb2YgdGhlIGhhc2ggZnVuY3Rpb24gdXNlZCB0byBjb21wdXRlIHRoZSBoYXNoLg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICBbRGF0YU1lbWJlcihOYW1lID0gImhhc2hlcyIsIElzUmVxdWlyZWQgPSBmYWxzZSwgRW1pdERlZmF1bHRWYWx1ZSA9IGZhbHNlKV0NCiAgICAgICAgcHVibGljIElMaXN0PEhhc2g+IEhhc2hlcyB7IGdldDsgc2V0OyB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gVGhlIGRhdGUgYW5kIHRpbWUgYXQgd2hpY2ggdGhlIGZpbGUgd2FzIG1vc3QgcmVjZW50bHkgbW9kaWZpZWQuIFNlZSAiRGF0ZS90aW1lIHByb3BlcnRpZXMiIGluIHRoZSBTQVJJRiBzcGVjIGZvciB0aGUgcmVxdWlyZWQgZm9ybWF0Lg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICBbRGF0YU1lbWJlcihOYW1lID0gImxhc3RNb2RpZmllZFRpbWUiLCBJc1JlcXVpcmVkID0gZmFsc2UsIEVtaXREZWZhdWx0VmFsdWUgPSBmYWxzZSldDQogICAgICAgIHB1YmxpYyBEYXRlVGltZSBMYXN0TW9kaWZpZWRUaW1lIHsgZ2V0OyBzZXQ7IH0NCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBLZXkvdmFsdWUgcGFpcnMgdGhhdCBwcm92aWRlIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGZpbGUuDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIFtEYXRhTWVtYmVyKE5hbWUgPSAicHJvcGVydGllcyIsIElzUmVxdWlyZWQgPSBmYWxzZSwgRW1pdERlZmF1bHRWYWx1ZSA9IGZhbHNlKV0NCiAgICAgICAgaW50ZXJuYWwgb3ZlcnJpZGUgSURpY3Rpb25hcnk8c3RyaW5nLCBTZXJpYWxpemVkUHJvcGVydHlJbmZvPiBQcm9wZXJ0aWVzIHsgZ2V0OyBzZXQ7IH0NCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBJbml0aWFsaXplcyBhIG5ldyBpbnN0YW5jZSBvZiB0aGUgPHNlZSBjcmVmPSJGaWxlRGF0YSIgLz4gY2xhc3MuDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIHB1YmxpYyBGaWxlRGF0YSgpDQogICAgICAgIHsNCiAgICAgICAgfQ0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIEluaXRpYWxpemVzIGEgbmV3IGluc3RhbmNlIG9mIHRoZSA8c2VlIGNyZWY9IkZpbGVEYXRhIiAvPiBjbGFzcyBmcm9tIHRoZSBzdXBwbGllZCB2YWx1ZXMuDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIC8vLyA8cGFyYW0gbmFtZT0iZmlsZUxvY2F0aW9uIj4NCiAgICAgICAgLy8vIEFuIGluaXRpYWxpemF0aW9uIHZhbHVlIGZvciB0aGUgPHNlZSBjcmVmPSJQOiBGaWxlTG9jYXRpb24iIC8+IHByb3BlcnR5Lg0KICAgICAgICAvLy8gPC9wYXJhbT4NCiAgICAgICAgLy8vIDxwYXJhbSBuYW1lPSJwYXJlbnRLZXkiPg0KICAgICAgICAvLy8gQW4gaW5pdGlhbGl6YXRpb24gdmFsdWUgZm9yIHRoZSA8c2VlIGNyZWY9IlA6IFBhcmVudEtleSIgLz4gcHJvcGVydHkuDQogICAgICAgIC8vLyA8L3BhcmFtPg0KICAgICAgICAvLy8gPHBhcmFtIG5hbWU9Im9mZnNldCI+DQogICAgICAgIC8vLyBBbiBpbml0aWFsaXphdGlvbiB2YWx1ZSBmb3IgdGhlIDxzZWUgY3JlZj0iUDogT2Zmc2V0IiAvPiBwcm9wZXJ0eS4NCiAgICAgICAgLy8vIDwvcGFyYW0+DQogICAgICAgIC8vLyA8cGFyYW0gbmFtZT0ibGVuZ3RoIj4NCiAgICAgICAgLy8vIEFuIGluaXRpYWxpemF0aW9uIHZhbHVlIGZvciB0aGUgPHNlZSBjcmVmPSJQOiBMZW5ndGgiIC8+IHByb3BlcnR5Lg0KICAgICAgICAvLy8gPC9wYXJhbT4NCiAgICAgICAgLy8vIDxwYXJhbSBuYW1lPSJyb2xlcyI+DQogICAgICAgIC8vLyBBbiBpbml0aWFsaXphdGlvbiB2YWx1ZSBmb3IgdGhlIDxzZWUgY3JlZj0iUDogUm9sZXMiIC8+IHByb3BlcnR5Lg0KICAgICAgICAvLy8gPC9wYXJhbT4NCiAgICAgICAgLy8vIDxwYXJhbSBuYW1lPSJtaW1lVHlwZSI+DQogICAgICAgIC8vLyBBbiBpbml0aWFsaXphdGlvbiB2YWx1ZSBmb3IgdGhlIDxzZWUgY3JlZj0iUDogTWltZVR5cGUiIC8+IHByb3BlcnR5Lg0KICAgICAgICAvLy8gPC9wYXJhbT4NCiAgICAgICAgLy8vIDxwYXJhbSBuYW1lPSJjb250ZW50cyI+DQogICAgICAgIC8vLyBBbiBpbml0aWFsaXphdGlvbiB2YWx1ZSBmb3IgdGhlIDxzZWUgY3JlZj0iUDogQ29udGVudHMiIC8+IHByb3BlcnR5Lg0KICAgICAgICAvLy8gPC9wYXJhbT4NCiAgICAgICAgLy8vIDxwYXJhbSBuYW1lPSJlbmNvZGluZyI+DQogICAgICAgIC8vLyBBbiBpbml0aWFsaXphdGlvbiB2YWx1ZSBmb3IgdGhlIDxzZWUgY3JlZj0iUDogRW5jb2RpbmciIC8+IHByb3BlcnR5Lg0KICAgICAgICAvLy8gPC9wYXJhbT4NCiAgICAgICAgLy8vIDxwYXJhbSBuYW1lPSJoYXNoZXMiPg0KICAgICAgICAvLy8gQW4gaW5pdGlhbGl6YXRpb24gdmFsdWUgZm9yIHRoZSA8c2VlIGNyZWY9IlA6IEhhc2hlcyIgLz4gcHJvcGVydHkuDQogICAgICAgIC8vLyA8L3BhcmFtPg0KICAgICAgICAvLy8gPHBhcmFtIG5hbWU9Imxhc3RNb2RpZmllZFRpbWUiPg0KICAgICAgICAvLy8gQW4gaW5pdGlhbGl6YXRpb24gdmFsdWUgZm9yIHRoZSA8c2VlIGNyZWY9IlA6IExhc3RNb2RpZmllZFRpbWUiIC8+IHByb3BlcnR5Lg0KICAgICAgICAvLy8gPC9wYXJhbT4NCiAgICAgICAgLy8vIDxwYXJhbSBuYW1lPSJwcm9wZXJ0aWVzIj4NCiAgICAgICAgLy8vIEFuIGluaXRpYWxpemF0aW9uIHZhbHVlIGZvciB0aGUgPHNlZSBjcmVmPSJQOiBQcm9wZXJ0aWVzIiAvPiBwcm9wZXJ0eS4NCiAgICAgICAgLy8vIDwvcGFyYW0+DQogICAgICAgIHB1YmxpYyBGaWxlRGF0YShGaWxlTG9jYXRpb24gZmlsZUxvY2F0aW9uLCBzdHJpbmcgcGFyZW50S2V5LCBpbnQgb2Zmc2V0LCBpbnQgbGVuZ3RoLCBGaWxlUm9sZXMgcm9sZXMsIHN0cmluZyBtaW1lVHlwZSwgRmlsZUNvbnRlbnQgY29udGVudHMsIHN0cmluZyBlbmNvZGluZywgSUVudW1lcmFibGU8SGFzaD4gaGFzaGVzLCBEYXRlVGltZSBsYXN0TW9kaWZpZWRUaW1lLCBJRGljdGlvbmFyeTxzdHJpbmcsIFNlcmlhbGl6ZWRQcm9wZXJ0eUluZm8+IHByb3BlcnRpZXMpDQogICAgICAgIHsNCiAgICAgICAgICAgIEluaXQoZmlsZUxvY2F0aW9uLCBwYXJlbnRLZXksIG9mZnNldCwgbGVuZ3RoLCByb2xlcywgbWltZVR5cGUsIGNvbnRlbnRzLCBlbmNvZGluZywgaGFzaGVzLCBsYXN0TW9kaWZpZWRUaW1lLCBwcm9wZXJ0aWVzKTsNCiAgICAgICAgfQ0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIEluaXRpYWxpemVzIGEgbmV3IGluc3RhbmNlIG9mIHRoZSA8c2VlIGNyZWY9IkZpbGVEYXRhIiAvPiBjbGFzcyBmcm9tIHRoZSBzcGVjaWZpZWQgaW5zdGFuY2UuDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIC8vLyA8cGFyYW0gbmFtZT0ib3RoZXIiPg0KICAgICAgICAvLy8gVGhlIGluc3RhbmNlIGZyb20gd2hpY2ggdGhlIG5ldyBpbnN0YW5jZSBpcyB0byBiZSBpbml0aWFsaXplZC4NCiAgICAgICAgLy8vIDwvcGFyYW0+DQogICAgICAgIC8vLyA8ZXhjZXB0aW9uIGNyZWY9IkFyZ3VtZW50TnVsbEV4Y2VwdGlvbiI+DQogICAgICAgIC8vLyBUaHJvd24gaWYgPHBhcmFtcmVmIG5hbWU9Im90aGVyIiAvPiBpcyBudWxsLg0KICAgICAgICAvLy8gPC9leGNlcHRpb24+DQogICAgICAgIHB1YmxpYyBGaWxlRGF0YShGaWxlRGF0YSBvdGhlcikNCiAgICAgICAgew0KICAgICAgICAgICAgaWYgKG90aGVyID09IG51bGwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgdGhyb3cgbmV3IEFyZ3VtZW50TnVsbEV4Y2VwdGlvbihuYW1lb2Yob3RoZXIpKTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgSW5pdChvdGhlci5GaWxlTG9jYXRpb24sIG90aGVyLlBhcmVudEtleSwgb3RoZXIuT2Zmc2V0LCBvdGhlci5MZW5ndGgsIG90aGVyLlJvbGVzLCBvdGhlci5NaW1lVHlwZSwgb3RoZXIuQ29udGVudHMsIG90aGVyLkVuY29kaW5nLCBvdGhlci5IYXNoZXMsIG90aGVyLkxhc3RNb2RpZmllZFRpbWUsIG90aGVyLlByb3BlcnRpZXMpOw0KICAgICAgICB9DQoNCiAgICAgICAgSVNhcmlmTm9kZSBJU2FyaWZOb2RlLkRlZXBDbG9uZSgpDQogICAgICAgIHsNCiAgICAgICAgICAgIHJldHVybiBEZWVwQ2xvbmVDb3JlKCk7DQogICAgICAgIH0NCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBDcmVhdGVzIGEgZGVlcCBjb3B5IG9mIHRoaXMgaW5zdGFuY2UuDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIHB1YmxpYyBGaWxlRGF0YSBEZWVwQ2xvbmUoKQ0KICAgICAgICB7DQogICAgICAgICAgICByZXR1cm4gKEZpbGVEYXRhKURlZXBDbG9uZUNvcmUoKTsNCiAgICAgICAgfQ0KDQogICAgICAgIHByaXZhdGUgSVNhcmlmTm9kZSBEZWVwQ2xvbmVDb3JlKCkNCiAgICAgICAgew0KICAgICAgICAgICAgcmV0dXJuIG5ldyBGaWxlRGF0YSh0aGlzKTsNCiAgICAgICAgfQ0KDQogICAgICAgIHByaXZhdGUgdm9pZCBJbml0KEZpbGVMb2NhdGlvbiBmaWxlTG9jYXRpb24sIHN0cmluZyBwYXJlbnRLZXksIGludCBvZmZzZXQsIGludCBsZW5ndGgsIEZpbGVSb2xlcyByb2xlcywgc3RyaW5nIG1pbWVUeXBlLCBGaWxlQ29udGVudCBjb250ZW50cywgc3RyaW5nIGVuY29kaW5nLCBJRW51bWVyYWJsZTxIYXNoPiBoYXNoZXMsIERhdGVUaW1lIGxhc3RNb2RpZmllZFRpbWUsIElEaWN0aW9uYXJ5PHN0cmluZywgU2VyaWFsaXplZFByb3BlcnR5SW5mbz4gcHJvcGVydGllcykNCiAgICAgICAgew0KICAgICAgICAgICAgaWYgKGZpbGVMb2NhdGlvbiAhPSBudWxsKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIEZpbGVMb2NhdGlvbiA9IG5ldyBGaWxlTG9jYXRpb24oZmlsZUxvY2F0aW9uKTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgUGFyZW50S2V5ID0gcGFyZW50S2V5Ow0KICAgICAgICAgICAgT2Zmc2V0ID0gb2Zmc2V0Ow0KICAgICAgICAgICAgTGVuZ3RoID0gbGVuZ3RoOw0KICAgICAgICAgICAgUm9sZXMgPSByb2xlczsNCiAgICAgICAgICAgIE1pbWVUeXBlID0gbWltZVR5cGU7DQogICAgICAgICAgICBpZiAoY29udGVudHMgIT0gbnVsbCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBDb250ZW50cyA9IG5ldyBGaWxlQ29udGVudChjb250ZW50cyk7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIEVuY29kaW5nID0gZW5jb2Rpbmc7DQogICAgICAgICAgICBpZiAoaGFzaGVzICE9IG51bGwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgdmFyIGRlc3RpbmF0aW9uXzAgPSBuZXcgTGlzdDxIYXNoPigpOw0KICAgICAgICAgICAgICAgIGZvcmVhY2ggKHZhciB2YWx1ZV8wIGluIGhhc2hlcykNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZV8wID09IG51bGwpDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGRlc3RpbmF0aW9uXzAuQWRkKG51bGwpOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGVsc2UNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgZGVzdGluYXRpb25fMC5BZGQobmV3IEhhc2godmFsdWVfMCkpOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgSGFzaGVzID0gZGVzdGluYXRpb25fMDsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgTGFzdE1vZGlmaWVkVGltZSA9IGxhc3RNb2RpZmllZFRpbWU7DQogICAgICAgICAgICBpZiAocHJvcGVydGllcyAhPSBudWxsKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIFByb3BlcnRpZXMgPSBuZXcgRGljdGlvbmFyeTxzdHJpbmcsIFNlcmlhbGl6ZWRQcm9wZXJ0eUluZm8+KHByb3BlcnRpZXMpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgfQ0KfQ==" + { + "ruleId": "CA1305", + "level": "error", + "message": { + "text": "Because the behavior of 'string.Format(string, object, object)' could vary based on the current user's locale settings, replace this call in 'StringExtensions.AtProperty(this string, string)' with a call to 'string.Format(IFormatProvider, string, params object[])'. If the result of 'string.Format(IFormatProvider, string, params object[])' will be displayed to the user, specify 'CultureInfo.CurrentCulture' as the 'IFormatProvider' parameter. Otherwise, if the result will be stored and accessed by software, such as when it is persisted to disk or to a database, specify 'CultureInfo.InvariantCulture'.", + "id": "IFormatProviderAlternateString" }, - "hashes": [ - { - "value": "4AAF3CF868AC30F7F48C41715AEC1CEF", - "algorithm": "md5" - }, - { - "value": "511197EA48D482E5D5BD88921E1252E3FA124330", - "algorithm": "sha-1" - }, + "locations": [ { - "value": "02C565158688557ECCA71B452230A0FD5BFE0FD007597F8823F4515C7DE187A2", - "algorithm": "sha-256" + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Microsoft.Json.Pointer.dll", + "uriBaseId": "$(ProjectDir)", + "index": 0 + } + }, + "logicalLocations": [ + { + "index": 25, + "fullyQualifiedName": "microsoft.json.pointer.dll!Microsoft.Json.Pointer.StringExtensions.AtProperty(System.String,System.String)" + } + ] } - ] + ], + "partialFingerprints": { + "UniqueId": "System.String.Format(System.String,System.Object,System.Object)#IFormatProviderAlternateString" + }, + "properties": { + "Category": "Microsoft.Globalization", + "FixCategory": "NonBreaking" + } }, - "file:///E:/src/sarif-sdk-test/src/Sarif/Core/FileData.cs": { - "mimeType": "text/x-csharp", - "contents": { - "binary": "77u/Ly8gQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQuICBBbGwgUmlnaHRzIFJlc2VydmVkLg0KLy8gTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlLiBTZWUgTElDRU5TRSBmaWxlIGluIHRoZSBwcm9qZWN0IHJvb3QgZm9yIGZ1bGwgbGljZW5zZSBpbmZvcm1hdGlvbi4NCg0KdXNpbmcgU3lzdGVtOw0KdXNpbmcgU3lzdGVtLkNvbGxlY3Rpb25zLkdlbmVyaWM7DQp1c2luZyBTeXN0ZW0uSU87DQp1c2luZyBTeXN0ZW0uVGV4dDsNCnVzaW5nIFNhcmlmV3JpdGVycyA9IE1pY3Jvc29mdC5Db2RlQW5hbHlzaXMuU2FyaWYuV3JpdGVyczsNCg0KbmFtZXNwYWNlIE1pY3Jvc29mdC5Db2RlQW5hbHlzaXMuU2FyaWYNCnsNCiAgICAvLy8gPHN1bW1hcnk+DQogICAgLy8vIFJlcHJlc2VudHMgYSBzaW5nbGUgZmlsZS4gSW4gc29tZSBjYXNlcywgdGhpcyBmaWxlIG1pZ2h0IGJlIG5lc3RlZCB3aXRoaW4gYW5vdGhlciBmaWxlLg0KICAgIC8vLyA8L3N1bW1hcnk+DQogICAgcHVibGljIHBhcnRpYWwgY2xhc3MgRmlsZURhdGEgOiBJU2FyaWZOb2RlDQogICAgew0KICAgICAgICBwdWJsaWMgc3RhdGljIEZpbGVEYXRhIENyZWF0ZSgNCiAgICAgICAgICAgIFVyaSB1cmksIA0KICAgICAgICAgICAgT3B0aW9uYWxseUVtaXR0ZWREYXRhIGRhdGFUb0luc2VydCA9IE9wdGlvbmFsbHlFbWl0dGVkRGF0YS5Ob25lLCANCiAgICAgICAgICAgIHN0cmluZyBtaW1lVHlwZSA9IG51bGwsIA0KICAgICAgICAgICAgRW5jb2RpbmcgZW5jb2RpbmcgPSBudWxsLA0KICAgICAgICAgICAgSUZpbGVTeXN0ZW0gZmlsZVN5c3RlbSA9IG51bGwpDQogICAgICAgIHsNCiAgICAgICAgICAgIGlmICh1cmkgPT0gbnVsbCkgeyB0aHJvdyBuZXcgQXJndW1lbnROdWxsRXhjZXB0aW9uKG5hbWVvZih1cmkpKTsgfQ0KDQogICAgICAgICAgICBtaW1lVHlwZSA9IG1pbWVUeXBlID8/IFNhcmlmV3JpdGVycy5NaW1lVHlwZS5EZXRlcm1pbmVGcm9tRmlsZUV4dGVuc2lvbih1cmkpOw0KICAgICAgICAgICAgZmlsZVN5c3RlbSA9IGZpbGVTeXN0ZW0gPz8gbmV3IEZpbGVTeXN0ZW0oKTsNCg0KICAgICAgICAgICAgdmFyIGZpbGVEYXRhID0gbmV3IEZpbGVEYXRhKCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBFbmNvZGluZyA9IGVuY29kaW5nPy5XZWJOYW1lLA0KICAgICAgICAgICAgICAgIE1pbWVUeXBlID0gbWltZVR5cGUNCiAgICAgICAgICAgIH07DQoNCiAgICAgICAgICAgIC8vIEF0dGVtcHQgdG8gcGVyc2lzdCBmaWxlIGNvbnRlbnRzIGFuZC9vciBjb21wdXRlIGZpbGUgaGFzaCBhbmQgcGVyc2lzdA0KICAgICAgICAgICAgLy8gdGhpcyBpbmZvcm1hdGlvbiB0byB0aGUgbG9nIGZpbGUuIEluIHRoZSBldmVudCB0aGF0IHRoZXJlIGlzIHNvbWUgaXNzdWUNCiAgICAgICAgICAgIC8vIGFjY2Vzc2luZyB0aGUgZmlsZSwgZm9yIGV4YW1wbGUsIGR1ZSB0byBBQ0xzIGFwcGxpZWQgdG8gYSBkaXJlY3RvcnksDQogICAgICAgICAgICAvLyB3ZSBjdXJyZW50bHkgc3dhbGxvdyB0aGVzZSBleGNlcHRpb25zIHdpdGhvdXQgcG9wdWxhdGluZyBhbnkgcmVxdWVzdGVkDQogICAgICAgICAgICAvLyBkYXRhIG9yIHB1dHRpbmcgYSBub3RpZmljYXRpb24gaW4gdGhlIGxvZyBmaWxlIHRoYXQgYSBwcm9ibGVtDQogICAgICAgICAgICAvLyBvY2N1cnJlZC4gU29tZXRoaW5nIHRvIGRpc2N1c3MgbW92aW5nIGZvcndhcmQuDQogICAgICAgICAgICB0cnkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBpZiAoIXVyaS5Jc0Fic29sdXRlVXJpIHx8ICF1cmkuSXNGaWxlIHx8ICFmaWxlU3lzdGVtLkZpbGVFeGlzdHModXJpLkxvY2FsUGF0aCkpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmlsZURhdGE7DQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgc3RyaW5nIGZpbGVQYXRoID0gdXJpLkxvY2FsUGF0aDsNCg0KICAgICAgICAgICAgICAgIGlmIChkYXRhVG9JbnNlcnQuSW5jbHVkZXMoT3B0aW9uYWxseUVtaXR0ZWREYXRhLkJpbmFyeUZpbGVzKSAmJg0KICAgICAgICAgICAgICAgICAgICBTYXJpZldyaXRlcnMuTWltZVR5cGUuSXNCaW5hcnlNaW1lVHlwZShtaW1lVHlwZSkpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBmaWxlRGF0YS5Db250ZW50cyA9IEdldEVuY29kZWRGaWxlQ29udGVudHMoZmlsZVN5c3RlbSwgZmlsZVBhdGgsIG1pbWVUeXBlLCBlbmNvZGluZyk7DQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgaWYgKGRhdGFUb0luc2VydC5JbmNsdWRlcyhPcHRpb25hbGx5RW1pdHRlZERhdGEuVGV4dEZpbGVzKSAmJg0KICAgICAgICAgICAgICAgICAgICBTYXJpZldyaXRlcnMuTWltZVR5cGUuSXNUZXh0dWFsTWltZVR5cGUobWltZVR5cGUpKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgZmlsZURhdGEuQ29udGVudHMgPSBHZXRFbmNvZGVkRmlsZUNvbnRlbnRzKGZpbGVTeXN0ZW0sIGZpbGVQYXRoLCBtaW1lVHlwZSwgZW5jb2RpbmcpOw0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgIGlmIChkYXRhVG9JbnNlcnQuSW5jbHVkZXMoT3B0aW9uYWxseUVtaXR0ZWREYXRhLkhhc2hlcykpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBIYXNoRGF0YSBoYXNoZXMgPSBIYXNoVXRpbGl0aWVzLkNvbXB1dGVIYXNoZXMoZmlsZVBhdGgpOw0KICAgICAgICAgICAgICAgICAgICBmaWxlRGF0YS5IYXNoZXMgPSBuZXcgTGlzdDxIYXNoPg0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICBuZXcgSGFzaCgpDQogICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgVmFsdWUgPSBoYXNoZXMuTUQ1LA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFsZ29yaXRobSA9ICJtZDUiLA0KICAgICAgICAgICAgICAgICAgICAgICAgfSwNCiAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBIYXNoKCkNCiAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBWYWx1ZSA9IGhhc2hlcy5TaGExLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFsZ29yaXRobSA9ICJzaGEtMSIsDQogICAgICAgICAgICAgICAgICAgICAgICB9LA0KICAgICAgICAgICAgICAgICAgICAgICAgbmV3IEhhc2goKQ0KICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZhbHVlID0gaGFzaGVzLlNoYTI1NiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBBbGdvcml0aG0gPSAic2hhLTI1NiIsDQogICAgICAgICAgICAgICAgICAgICAgICB9LA0KICAgICAgICAgICAgICAgICAgICB9Ow0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGNhdGNoIChFeGNlcHRpb24gZSkgd2hlbiAoZSBpcyBJT0V4Y2VwdGlvbiB8fCBlIGlzIFVuYXV0aG9yaXplZEFjY2Vzc0V4Y2VwdGlvbikgeyB9DQoNCiAgICAgICAgICAgIHJldHVybiBmaWxlRGF0YTsNCiAgICAgICAgfQ0KDQogICAgICAgIHByaXZhdGUgc3RhdGljIEZpbGVDb250ZW50IEdldEVuY29kZWRGaWxlQ29udGVudHMoSUZpbGVTeXN0ZW0gZmlsZVN5c3RlbSwgc3RyaW5nIGZpbGVQYXRoLCBzdHJpbmcgbWltZVR5cGUsIEVuY29kaW5nIGlucHV0RmlsZUVuY29kaW5nKQ0KICAgICAgICB7DQogICAgICAgICAgICB2YXIgZmlsZUNvbnRlbnQgPSBuZXcgRmlsZUNvbnRlbnQoKTsNCiAgICAgICAgICAgIGJ5dGVbXSBmaWxlQ29udGVudHMgPSBmaWxlU3lzdGVtLlJlYWRBbGxCeXRlcyhmaWxlUGF0aCk7DQoNCiAgICAgICAgICAgIGlmIChTYXJpZldyaXRlcnMuTWltZVR5cGUuSXNCaW5hcnlNaW1lVHlwZShtaW1lVHlwZSkgfHwgaW5wdXRGaWxlRW5jb2RpbmcgPT0gbnVsbCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBmaWxlQ29udGVudC5CaW5hcnkgPSBDb252ZXJ0LlRvQmFzZTY0U3RyaW5nKGZpbGVDb250ZW50cyk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgZmlsZUNvbnRlbnQuVGV4dCA9IGlucHV0RmlsZUVuY29kaW5nLkdldFN0cmluZyhmaWxlQ29udGVudHMpOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICByZXR1cm4gZmlsZUNvbnRlbnQ7DQogICAgICAgIH0NCiAgICB9DQp9DQo=" + { + "ruleId": "CA1704", + "message": { + "text": "In method 'StringExtensions.UnescapeJsonPointer(this string)', correct the spelling of 'j' in parameter name 'jPointer' or remove it entirely if it represents any sort of Hungarian notation.", + "id": "MemberParameter" }, - "hashes": [ - { - "value": "DA29519F2A960DBB4CC7636FE51B95DA", - "algorithm": "md5" - }, - { - "value": "6D12CB255152492EFC4F8C9AFF181AD20D24D5F8", - "algorithm": "sha-1" - }, + "locations": [ { - "value": "21ED79396DC8189853963CCC6D0561E5ACEE86B26E946B76FD81703A060081F1", - "algorithm": "sha-256" + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Microsoft.Json.Pointer.dll", + "uriBaseId": "$(ProjectDir)", + "index": 0 + } + }, + "logicalLocations": [ + { + "index": 26, + "fullyQualifiedName": "microsoft.json.pointer.dll!Microsoft.Json.Pointer.StringExtensions.UnescapeJsonPointer(System.String)" + } + ] } - ] + ], + "partialFingerprints": { + "UniqueId": "j#MemberParameter" + }, + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" + } }, - "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/FileDataEqualityComparer.cs": { - "mimeType": "text/x-csharp", - "contents": { - "binary": "Ly8gQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQuICBBbGwgUmlnaHRzIFJlc2VydmVkLg0KLy8gTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlLiBTZWUgTElDRU5TRSBmaWxlIGluIHRoZSBwcm9qZWN0IHJvb3QgZm9yIGZ1bGwgbGljZW5zZSBpbmZvcm1hdGlvbi4NCg0KdXNpbmcgU3lzdGVtOw0KdXNpbmcgU3lzdGVtLkNvZGVEb20uQ29tcGlsZXI7DQp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsNCnVzaW5nIE1pY3Jvc29mdC5Db2RlQW5hbHlzaXMuU2FyaWYuUmVhZGVyczsNCg0KbmFtZXNwYWNlIE1pY3Jvc29mdC5Db2RlQW5hbHlzaXMuU2FyaWYNCnsNCiAgICAvLy8gPHN1bW1hcnk+DQogICAgLy8vIERlZmluZXMgbWV0aG9kcyB0byBzdXBwb3J0IHRoZSBjb21wYXJpc29uIG9mIG9iamVjdHMgb2YgdHlwZSBGaWxlRGF0YSBmb3IgZXF1YWxpdHkuDQogICAgLy8vIDwvc3VtbWFyeT4NCiAgICBbR2VuZXJhdGVkQ29kZSgiTWljcm9zb2Z0Lkpzb24uU2NoZW1hLlRvRG90TmV0IiwgIjAuNTYuMC4wIildDQogICAgaW50ZXJuYWwgc2VhbGVkIGNsYXNzIEZpbGVEYXRhRXF1YWxpdHlDb21wYXJlciA6IElFcXVhbGl0eUNvbXBhcmVyPEZpbGVEYXRhPg0KICAgIHsNCiAgICAgICAgaW50ZXJuYWwgc3RhdGljIHJlYWRvbmx5IEZpbGVEYXRhRXF1YWxpdHlDb21wYXJlciBJbnN0YW5jZSA9IG5ldyBGaWxlRGF0YUVxdWFsaXR5Q29tcGFyZXIoKTsNCg0KICAgICAgICBwdWJsaWMgYm9vbCBFcXVhbHMoRmlsZURhdGEgbGVmdCwgRmlsZURhdGEgcmlnaHQpDQogICAgICAgIHsNCiAgICAgICAgICAgIGlmIChSZWZlcmVuY2VFcXVhbHMobGVmdCwgcmlnaHQpKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBpZiAoUmVmZXJlbmNlRXF1YWxzKGxlZnQsIG51bGwpIHx8IFJlZmVyZW5jZUVxdWFscyhyaWdodCwgbnVsbCkpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBpZiAoIUZpbGVMb2NhdGlvbi5WYWx1ZUNvbXBhcmVyLkVxdWFscyhsZWZ0LkZpbGVMb2NhdGlvbiwgcmlnaHQuRmlsZUxvY2F0aW9uKSkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIGlmIChsZWZ0LlBhcmVudEtleSAhPSByaWdodC5QYXJlbnRLZXkpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBpZiAobGVmdC5PZmZzZXQgIT0gcmlnaHQuT2Zmc2V0KQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgaWYgKGxlZnQuTGVuZ3RoICE9IHJpZ2h0Lkxlbmd0aCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIGlmIChsZWZ0LlJvbGVzICE9IHJpZ2h0LlJvbGVzKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgaWYgKGxlZnQuTWltZVR5cGUgIT0gcmlnaHQuTWltZVR5cGUpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBpZiAoIUZpbGVDb250ZW50LlZhbHVlQ29tcGFyZXIuRXF1YWxzKGxlZnQuQ29udGVudHMsIHJpZ2h0LkNvbnRlbnRzKSkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIGlmIChsZWZ0LkVuY29kaW5nICE9IHJpZ2h0LkVuY29kaW5nKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgaWYgKCFvYmplY3QuUmVmZXJlbmNlRXF1YWxzKGxlZnQuSGFzaGVzLCByaWdodC5IYXNoZXMpKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIGlmIChsZWZ0Lkhhc2hlcyA9PSBudWxsIHx8IHJpZ2h0Lkhhc2hlcyA9PSBudWxsKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgIGlmIChsZWZ0Lkhhc2hlcy5Db3VudCAhPSByaWdodC5IYXNoZXMuQ291bnQpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgZm9yIChpbnQgaW5kZXhfMCA9IDA7IGluZGV4XzAgPCBsZWZ0Lkhhc2hlcy5Db3VudDsgKytpbmRleF8wKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgaWYgKCFIYXNoLlZhbHVlQ29tcGFyZXIuRXF1YWxzKGxlZnQuSGFzaGVzW2luZGV4XzBdLCByaWdodC5IYXNoZXNbaW5kZXhfMF0pKQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIGlmIChsZWZ0Lkxhc3RNb2RpZmllZFRpbWUgIT0gcmlnaHQuTGFzdE1vZGlmaWVkVGltZSkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIGlmICghb2JqZWN0LlJlZmVyZW5jZUVxdWFscyhsZWZ0LlByb3BlcnRpZXMsIHJpZ2h0LlByb3BlcnRpZXMpKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIGlmIChsZWZ0LlByb3BlcnRpZXMgPT0gbnVsbCB8fCByaWdodC5Qcm9wZXJ0aWVzID09IG51bGwgfHwgbGVmdC5Qcm9wZXJ0aWVzLkNvdW50ICE9IHJpZ2h0LlByb3BlcnRpZXMuQ291bnQpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgZm9yZWFjaCAodmFyIHZhbHVlXzAgaW4gbGVmdC5Qcm9wZXJ0aWVzKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgU2VyaWFsaXplZFByb3BlcnR5SW5mbyB2YWx1ZV8xOw0KICAgICAgICAgICAgICAgICAgICBpZiAoIXJpZ2h0LlByb3BlcnRpZXMuVHJ5R2V0VmFsdWUodmFsdWVfMC5LZXksIG91dCB2YWx1ZV8xKSkNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAgICAgaWYgKCFvYmplY3QuRXF1YWxzKHZhbHVlXzAuVmFsdWUsIHZhbHVlXzEpKQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIHJldHVybiB0cnVlOw0KICAgICAgICB9DQoNCiAgICAgICAgcHVibGljIGludCBHZXRIYXNoQ29kZShGaWxlRGF0YSBvYmopDQogICAgICAgIHsNCiAgICAgICAgICAgIGlmIChSZWZlcmVuY2VFcXVhbHMob2JqLCBudWxsKSkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gMDsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgaW50IHJlc3VsdCA9IDE3Ow0KICAgICAgICAgICAgdW5jaGVja2VkDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgaWYgKG9iai5GaWxlTG9jYXRpb24gIT0gbnVsbCkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IChyZXN1bHQgKiAzMSkgKyBvYmouRmlsZUxvY2F0aW9uLlZhbHVlR2V0SGFzaENvZGUoKTsNCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICBpZiAob2JqLlBhcmVudEtleSAhPSBudWxsKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gKHJlc3VsdCAqIDMxKSArIG9iai5QYXJlbnRLZXkuR2V0SGFzaENvZGUoKTsNCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICByZXN1bHQgPSAocmVzdWx0ICogMzEpICsgb2JqLk9mZnNldC5HZXRIYXNoQ29kZSgpOw0KICAgICAgICAgICAgICAgIHJlc3VsdCA9IChyZXN1bHQgKiAzMSkgKyBvYmouTGVuZ3RoLkdldEhhc2hDb2RlKCk7DQogICAgICAgICAgICAgICAgcmVzdWx0ID0gKHJlc3VsdCAqIDMxKSArIG9iai5Sb2xlcy5HZXRIYXNoQ29kZSgpOw0KICAgICAgICAgICAgICAgIGlmIChvYmouTWltZVR5cGUgIT0gbnVsbCkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IChyZXN1bHQgKiAzMSkgKyBvYmouTWltZVR5cGUuR2V0SGFzaENvZGUoKTsNCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICBpZiAob2JqLkNvbnRlbnRzICE9IG51bGwpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSAocmVzdWx0ICogMzEpICsgb2JqLkNvbnRlbnRzLlZhbHVlR2V0SGFzaENvZGUoKTsNCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICBpZiAob2JqLkVuY29kaW5nICE9IG51bGwpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSAocmVzdWx0ICogMzEpICsgb2JqLkVuY29kaW5nLkdldEhhc2hDb2RlKCk7DQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgaWYgKG9iai5IYXNoZXMgIT0gbnVsbCkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIGZvcmVhY2ggKHZhciB2YWx1ZV8yIGluIG9iai5IYXNoZXMpDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IHJlc3VsdCAqIDMxOw0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlXzIgIT0gbnVsbCkNCiAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSAocmVzdWx0ICogMzEpICsgdmFsdWVfMi5WYWx1ZUdldEhhc2hDb2RlKCk7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICByZXN1bHQgPSAocmVzdWx0ICogMzEpICsgb2JqLkxhc3RNb2RpZmllZFRpbWUuR2V0SGFzaENvZGUoKTsNCiAgICAgICAgICAgICAgICBpZiAob2JqLlByb3BlcnRpZXMgIT0gbnVsbCkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIC8vIFVzZSB4b3IgZm9yIGRpY3Rpb25hcmllcyB0byBiZSBvcmRlci1pbmRlcGVuZGVudC4NCiAgICAgICAgICAgICAgICAgICAgaW50IHhvcl8wID0gMDsNCiAgICAgICAgICAgICAgICAgICAgZm9yZWFjaCAodmFyIHZhbHVlXzMgaW4gb2JqLlByb3BlcnRpZXMpDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHhvcl8wIF49IHZhbHVlXzMuS2V5LkdldEhhc2hDb2RlKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWVfMy5WYWx1ZSAhPSBudWxsKQ0KICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhvcl8wIF49IHZhbHVlXzMuVmFsdWUuR2V0SGFzaENvZGUoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IChyZXN1bHQgKiAzMSkgKyB4b3JfMDsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIHJldHVybiByZXN1bHQ7DQogICAgICAgIH0NCiAgICB9DQp9" + { + "ruleId": "CA1702", + "level": "error", + "message": { + "text": "The compound word 'PreRelease' in member name 'VersionConstants.PreRelease' exists as a discrete term. If your usage is intended to be single word, case it as 'Prerelease' or strip the first token entirely if it represents any sort of Hungarian notation.", + "id": "MemberShouldBeDiscreteTerm" }, - "hashes": [ - { - "value": "320D00D3B17C65887C4589EC730B8262", - "algorithm": "md5" - }, - { - "value": "1E58F913ED3849C04CAEE04DB221A09B64AB9E94", - "algorithm": "sha-1" - }, + "locations": [ { - "value": "233EF87F2A9939F37F1802902F5245DD55EAE2B8516667B6EF11036E79B99E56", - "algorithm": "sha-256" + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Microsoft.Json.Pointer.dll", + "uriBaseId": "$(ProjectDir)", + "index": 0 + } + }, + "logicalLocations": [ + { + "index": 28, + "fullyQualifiedName": "microsoft.json.pointer.dll!Microsoft.Json.Pointer.VersionConstants.PreRelease" + } + ] } - ] + ], + "partialFingerprints": { + "UniqueId": "PreRelease#MemberShouldBeDiscreteTerm" + }, + "properties": { + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" + } }, - "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/FileLocation.cs": { - "mimeType": "text/x-csharp", - "contents": { - "binary": "Ly8gQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQuICBBbGwgUmlnaHRzIFJlc2VydmVkLg0KLy8gTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlLiBTZWUgTElDRU5TRSBmaWxlIGluIHRoZSBwcm9qZWN0IHJvb3QgZm9yIGZ1bGwgbGljZW5zZSBpbmZvcm1hdGlvbi4NCg0KdXNpbmcgU3lzdGVtOw0KdXNpbmcgU3lzdGVtLkNvZGVEb20uQ29tcGlsZXI7DQp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsNCnVzaW5nIFN5c3RlbS5SdW50aW1lLlNlcmlhbGl6YXRpb247DQoNCm5hbWVzcGFjZSBNaWNyb3NvZnQuQ29kZUFuYWx5c2lzLlNhcmlmDQp7DQogICAgLy8vIDxzdW1tYXJ5Pg0KICAgIC8vLyBTcGVjaWZpZXMgdGhlIGxvY2F0aW9uIG9mIGEgZmlsZS4NCiAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgIFtEYXRhQ29udHJhY3RdDQogICAgW0dlbmVyYXRlZENvZGUoIk1pY3Jvc29mdC5Kc29uLlNjaGVtYS5Ub0RvdE5ldCIsICIwLjU2LjAuMCIpXQ0KICAgIHB1YmxpYyBwYXJ0aWFsIGNsYXNzIEZpbGVMb2NhdGlvbiA6IElTYXJpZk5vZGUNCiAgICB7DQogICAgICAgIHB1YmxpYyBzdGF0aWMgSUVxdWFsaXR5Q29tcGFyZXI8RmlsZUxvY2F0aW9uPiBWYWx1ZUNvbXBhcmVyID0+IEZpbGVMb2NhdGlvbkVxdWFsaXR5Q29tcGFyZXIuSW5zdGFuY2U7DQoNCiAgICAgICAgcHVibGljIGJvb2wgVmFsdWVFcXVhbHMoRmlsZUxvY2F0aW9uIG90aGVyKSA9PiBWYWx1ZUNvbXBhcmVyLkVxdWFscyh0aGlzLCBvdGhlcik7DQogICAgICAgIHB1YmxpYyBpbnQgVmFsdWVHZXRIYXNoQ29kZSgpID0+IFZhbHVlQ29tcGFyZXIuR2V0SGFzaENvZGUodGhpcyk7DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gR2V0cyBhIHZhbHVlIGluZGljYXRpbmcgdGhlIHR5cGUgb2Ygb2JqZWN0IGltcGxlbWVudGluZyA8c2VlIGNyZWY9IklTYXJpZk5vZGUiIC8+Lg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICBwdWJsaWMgU2FyaWZOb2RlS2luZCBTYXJpZk5vZGVLaW5kDQogICAgICAgIHsNCiAgICAgICAgICAgIGdldA0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHJldHVybiBTYXJpZk5vZGVLaW5kLkZpbGVMb2NhdGlvbjsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIEEgc3RyaW5nIGNvbnRhaW5pbmcgYSB2YWxpZCByZWxhdGl2ZSBvciBhYnNvbHV0ZSBVUkkuDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIFtEYXRhTWVtYmVyKE5hbWUgPSAidXJpIiwgSXNSZXF1aXJlZCA9IHRydWUpXQ0KICAgICAgICBwdWJsaWMgVXJpIFVyaSB7IGdldDsgc2V0OyB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gQSBzdHJpbmcgd2hpY2ggaW5kaXJlY3RseSBzcGVjaWZpZXMgdGhlIGFic29sdXRlIFVSSSB3aXRoIHJlc3BlY3QgdG8gd2hpY2ggYSByZWxhdGl2ZSBVUkkgaW4gdGhlICJ1cmkiIHByb3BlcnR5IGlzIGludGVycHJldGVkLg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICBbRGF0YU1lbWJlcihOYW1lID0gInVyaUJhc2VJZCIsIElzUmVxdWlyZWQgPSBmYWxzZSwgRW1pdERlZmF1bHRWYWx1ZSA9IGZhbHNlKV0NCiAgICAgICAgcHVibGljIHN0cmluZyBVcmlCYXNlSWQgeyBnZXQ7IHNldDsgfQ0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIEluaXRpYWxpemVzIGEgbmV3IGluc3RhbmNlIG9mIHRoZSA8c2VlIGNyZWY9IkZpbGVMb2NhdGlvbiIgLz4gY2xhc3MuDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIHB1YmxpYyBGaWxlTG9jYXRpb24oKQ0KICAgICAgICB7DQogICAgICAgIH0NCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBJbml0aWFsaXplcyBhIG5ldyBpbnN0YW5jZSBvZiB0aGUgPHNlZSBjcmVmPSJGaWxlTG9jYXRpb24iIC8+IGNsYXNzIGZyb20gdGhlIHN1cHBsaWVkIHZhbHVlcy4NCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgLy8vIDxwYXJhbSBuYW1lPSJ1cmkiPg0KICAgICAgICAvLy8gQW4gaW5pdGlhbGl6YXRpb24gdmFsdWUgZm9yIHRoZSA8c2VlIGNyZWY9IlA6IFVyaSIgLz4gcHJvcGVydHkuDQogICAgICAgIC8vLyA8L3BhcmFtPg0KICAgICAgICAvLy8gPHBhcmFtIG5hbWU9InVyaUJhc2VJZCI+DQogICAgICAgIC8vLyBBbiBpbml0aWFsaXphdGlvbiB2YWx1ZSBmb3IgdGhlIDxzZWUgY3JlZj0iUDogVXJpQmFzZUlkIiAvPiBwcm9wZXJ0eS4NCiAgICAgICAgLy8vIDwvcGFyYW0+DQogICAgICAgIHB1YmxpYyBGaWxlTG9jYXRpb24oVXJpIHVyaSwgc3RyaW5nIHVyaUJhc2VJZCkNCiAgICAgICAgew0KICAgICAgICAgICAgSW5pdCh1cmksIHVyaUJhc2VJZCk7DQogICAgICAgIH0NCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBJbml0aWFsaXplcyBhIG5ldyBpbnN0YW5jZSBvZiB0aGUgPHNlZSBjcmVmPSJGaWxlTG9jYXRpb24iIC8+IGNsYXNzIGZyb20gdGhlIHNwZWNpZmllZCBpbnN0YW5jZS4NCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgLy8vIDxwYXJhbSBuYW1lPSJvdGhlciI+DQogICAgICAgIC8vLyBUaGUgaW5zdGFuY2UgZnJvbSB3aGljaCB0aGUgbmV3IGluc3RhbmNlIGlzIHRvIGJlIGluaXRpYWxpemVkLg0KICAgICAgICAvLy8gPC9wYXJhbT4NCiAgICAgICAgLy8vIDxleGNlcHRpb24gY3JlZj0iQXJndW1lbnROdWxsRXhjZXB0aW9uIj4NCiAgICAgICAgLy8vIFRocm93biBpZiA8cGFyYW1yZWYgbmFtZT0ib3RoZXIiIC8+IGlzIG51bGwuDQogICAgICAgIC8vLyA8L2V4Y2VwdGlvbj4NCiAgICAgICAgcHVibGljIEZpbGVMb2NhdGlvbihGaWxlTG9jYXRpb24gb3RoZXIpDQogICAgICAgIHsNCiAgICAgICAgICAgIGlmIChvdGhlciA9PSBudWxsKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHRocm93IG5ldyBBcmd1bWVudE51bGxFeGNlcHRpb24obmFtZW9mKG90aGVyKSk7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIEluaXQob3RoZXIuVXJpLCBvdGhlci5VcmlCYXNlSWQpOw0KICAgICAgICB9DQoNCiAgICAgICAgSVNhcmlmTm9kZSBJU2FyaWZOb2RlLkRlZXBDbG9uZSgpDQogICAgICAgIHsNCiAgICAgICAgICAgIHJldHVybiBEZWVwQ2xvbmVDb3JlKCk7DQogICAgICAgIH0NCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBDcmVhdGVzIGEgZGVlcCBjb3B5IG9mIHRoaXMgaW5zdGFuY2UuDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIHB1YmxpYyBGaWxlTG9jYXRpb24gRGVlcENsb25lKCkNCiAgICAgICAgew0KICAgICAgICAgICAgcmV0dXJuIChGaWxlTG9jYXRpb24pRGVlcENsb25lQ29yZSgpOw0KICAgICAgICB9DQoNCiAgICAgICAgcHJpdmF0ZSBJU2FyaWZOb2RlIERlZXBDbG9uZUNvcmUoKQ0KICAgICAgICB7DQogICAgICAgICAgICByZXR1cm4gbmV3IEZpbGVMb2NhdGlvbih0aGlzKTsNCiAgICAgICAgfQ0KDQogICAgICAgIHByaXZhdGUgdm9pZCBJbml0KFVyaSB1cmksIHN0cmluZyB1cmlCYXNlSWQpDQogICAgICAgIHsNCiAgICAgICAgICAgIGlmICh1cmkgIT0gbnVsbCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBVcmkgPSBuZXcgVXJpKHVyaS5PcmlnaW5hbFN0cmluZywgdXJpLklzQWJzb2x1dGVVcmkgPyBVcmlLaW5kLkFic29sdXRlIDogVXJpS2luZC5SZWxhdGl2ZSk7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIFVyaUJhc2VJZCA9IHVyaUJhc2VJZDsNCiAgICAgICAgfQ0KICAgIH0NCn0=" + { + "ruleId": "CA1014", + "level": "error", + "message": { + "text": "Mark 'Microsoft.Json.Schema.dll' with CLSCompliant(true) because it exposes externally visible types." }, - "hashes": [ + "locations": [ { - "value": "3C2862B14F46CCF251A450B8123463CC", - "algorithm": "md5" - }, - { - "value": "AA72A279EA09E4BA957366811425A124E0AFE179", - "algorithm": "sha-1" - }, - { - "value": "68EFE257216B09F1C1CE01702E5F319949E2748F3CBA93A8B27894511C0FE6C5", - "algorithm": "sha-256" + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Microsoft.Json.Schema.dll", + "uriBaseId": "$(ProjectDir)", + "index": 1 + } + }, + "logicalLocations": [ + { + "index": 29, + "fullyQualifiedName": "microsoft.json.schema.dll" + } + ] } - ] + ], + "properties": { + "Category": "Microsoft.Design", + "FixCategory": "NonBreaking" + } }, - "file:///E:/src/sarif-sdk-test/src/Sarif/Core/FileLocation.cs": { - "mimeType": "text/x-csharp", - "contents": { - "binary": "77u/Ly8gQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQuICBBbGwgUmlnaHRzIFJlc2VydmVkLg0KLy8gTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlLiBTZWUgTElDRU5TRSBmaWxlIGluIHRoZSBwcm9qZWN0IHJvb3QgZm9yIGZ1bGwgbGljZW5zZSBpbmZvcm1hdGlvbi4NCg0KdXNpbmcgU3lzdGVtOw0KdXNpbmcgU3lzdGVtLkNvbGxlY3Rpb25zLkdlbmVyaWM7DQoNCm5hbWVzcGFjZSBNaWNyb3NvZnQuQ29kZUFuYWx5c2lzLlNhcmlmDQp7DQogICAgcHVibGljIHBhcnRpYWwgY2xhc3MgRmlsZUxvY2F0aW9uDQogICAgew0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBBdHRlbXB0IHRvIHJlY29uc3RydWN0IGEgVVJJLCBpZiBhcHByb3ByaWF0ZSwgdXNpbmcgUnVuIGluc3RhbmNlIA0KICAgICAgICAvLy8gb3JpZ2luYWxVcmlCYXNlSWQgYW5kIHVyaUJhc2VJZCBwcm9wZXJ0aWVzLiBJZiB0aGlzIG1ldGhvZCBjYW5ub3QNCiAgICAgICAgLy8vIHN1Y2Nlc3NmdWxseSByZWNvbnN0aXR1dGUgYW4gYWJzb2x1dGUgVVJJLCBpdCB3aWxsIHJldHVybiBmYWxzZQ0KICAgICAgICAvLy8gYW5kIHBvcHVsYXRlICdyZXNvbHZlZFVyaScgd2l0aCBudWxsLg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICAvLy8gPHBhcmFtIG5hbWU9ImZpbGVMb2NhdGlvbiI+VGhlIGZpbGVMb2NhdGlvIGluc3RhbmNlIGZyb20gd2hpY2ggYW4gYWJzb2x1dGUgVVJJIHNob3VsZCBiZSByZWNvbnN0cnVjdGVkLCBpZiBwb3NzaWJsZS48L3BhcmFtPg0KICAgICAgICAvLy8gPHBhcmFtIG5hbWU9Im9yaWdpbmFsVXJpQmFzZUlkcyI+VGhlIG9yaWdpbmFsIHVyaSBiYXNlIGlkIHZhbHVlcyBhc3NvY2lhdGVkIHdpdGggdGhlIHRvb2wgcnVuLjwvcGFyYW0+DQogICAgICAgIC8vLyA8cGFyYW0gbmFtZT0icmVzb2x2ZWRVcmkiPlRoZSByZWNvbnN0cnVjdGVkIGFic29sdXRlIFVSSSBvciBudWxsIChpZiBhbiBhYnNvbHV0ZSBVUkkgY2Fubm90IGJlIHJlY29uc3RydWN0ZWQpLjwvcGFyYW0+DQogICAgICAgIC8vLyA8cmV0dXJucz48L3JldHVybnM+DQogICAgICAgIHB1YmxpYyBib29sIFRyeVJlY29uc3RydWN0QWJzb2x1dGVVcmkoSURpY3Rpb25hcnk8c3RyaW5nLCBVcmk+IG9yaWdpbmFsVXJpQmFzZUlkcywgb3V0IFVyaSByZXNvbHZlZFVyaSkNCiAgICAgICAgew0KICAgICAgICAgICAgcmVzb2x2ZWRVcmkgPSB0aGlzLlVyaS5Jc0Fic29sdXRlVXJpID8gdGhpcy5VcmkgOiBudWxsOw0KDQogICAgICAgICAgICAvLyBXZSBjYW4ndCByZXN0b3JlIGFueSBhYnNvbHV0ZSBVUklzIHVubGVzcyBzb21lb25lIGhhcw0KICAgICAgICAgICAgLy8gZGVjb25zdHJ1Y3RlZCB0aGVtIHVzaW5nIHVyaUJhc2VJZCArIG9yaWdpbmFsVXJpQmFzZUlkcw0KICAgICAgICAgICAgaWYgKG9yaWdpbmFsVXJpQmFzZUlkcyA9PSBudWxsKSB7IHJldHVybiB0aGlzLlVyaS5Jc0Fic29sdXRlVXJpOyB9DQoNCiAgICAgICAgICAgIHJlc29sdmVkVXJpID0gdGhpcy5Vcmk7DQoNCiAgICAgICAgICAgIGlmICghc3RyaW5nLklzTnVsbE9yRW1wdHkodGhpcy5VcmlCYXNlSWQpICYmDQogICAgICAgICAgICAgICAgIXRoaXMuVXJpLklzQWJzb2x1dGVVcmkpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgaWYgKG9yaWdpbmFsVXJpQmFzZUlkcy5UcnlHZXRWYWx1ZSh0aGlzLlVyaUJhc2VJZCwgb3V0IFVyaSBvcmlnaW5hbFVyaUJhc2VJZCkpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICByZXNvbHZlZFVyaSA9IG5ldyBVcmkob3JpZ2luYWxVcmlCYXNlSWQsIHJlc29sdmVkVXJpLlRvU3RyaW5nKCkpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgLy8gSWYgd2Ugd2VyZW4ndCBhYmxlIHRvIHJlY29uc3RydWN0IGEgVVJJIChvciByZXNvbHZlZFVyaSB3YXNuJ3QgYWxyZWFkeSANCiAgICAgICAgICAgIC8vIGFuIGFic29sdXRlIFVSSSBvbiBpbnB1dCksIGluaXRpYWxpemUgb3V0IHBhcmFtZXRlciB0byBudWxsOw0KICAgICAgICAgICAgaWYgKCFyZXNvbHZlZFVyaS5Jc0Fic29sdXRlVXJpKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHJlc29sdmVkVXJpID0gbnVsbDsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgcmV0dXJuIHJlc29sdmVkVXJpICE9IG51bGw7DQogICAgICAgIH0NCiAgICAgICAgcHVibGljIHN0YXRpYyBGaWxlTG9jYXRpb24gQ3JlYXRlRnJvbUZpbGVzRGljdGlvbmFyeUtleShzdHJpbmcga2V5KQ0KICAgICAgICB7DQogICAgICAgICAgICBzdHJpbmcgdXJpQmFzZUlkID0gbnVsbDsNCg0KICAgICAgICAgICAgaWYgKGtleS5TdGFydHNXaXRoKCIjIikpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgc3RyaW5nW10gdG9rZW5zID0ga2V5LlNwbGl0KG5ld1tdIHsgJyMnIH0sIFN0cmluZ1NwbGl0T3B0aW9ucy5SZW1vdmVFbXB0eUVudHJpZXMpOw0KICAgICAgICAgICAgICAgIHVyaUJhc2VJZCA9IHRva2Vuc1swXTsNCg0KICAgICAgICAgICAgICAgIC8vICsyIHRvIHNraXAgcGFzdCBsZWFkaW5nIGFuZCB0cmFpbGluZyBvY3RvdGhvcnBlcw0KICAgICAgICAgICAgICAgIGtleSA9IGtleS5TdWJzdHJpbmcodXJpQmFzZUlkLkxlbmd0aCArIDIpOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICByZXR1cm4gbmV3IEZpbGVMb2NhdGlvbigpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgIFVyaSA9IG5ldyBVcmkoa2V5LCBVcmlLaW5kLlJlbGF0aXZlT3JBYnNvbHV0ZSksDQogICAgICAgICAgICAgICAgIFVyaUJhc2VJZCA9IHVyaUJhc2VJZA0KICAgICAgICAgICAgfTsNCiAgICAgICAgfQ0KICAgIH0NCn0NCg==" + { + "ruleId": "CA1824", + "message": { + "text": "Because assembly 'Microsoft.Json.Schema.dll' contains a ResX-based resource file, mark it with the NeutralResourcesLanguage attribute, specifying the language of the resources within the assembly. This could improve lookup performance the first time a resource is retrieved." }, - "hashes": [ - { - "value": "FBF1A444DECE2BBB418676964EE2858E", - "algorithm": "md5" - }, - { - "value": "43BB2601C5B6F8889E749955AE62FB2ED96B8717", - "algorithm": "sha-1" - }, + "locations": [ { - "value": "5A15875080537A619E423FDCB89E7F618C124DD5476E0AA41205246F58C6BCBA", - "algorithm": "sha-256" + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Microsoft.Json.Schema.dll", + "uriBaseId": "$(ProjectDir)", + "index": 1 + } + }, + "logicalLocations": [ + { + "index": 29, + "fullyQualifiedName": "microsoft.json.schema.dll" + } + ] } - ] + ], + "properties": { + "Category": "Microsoft.Performance", + "FixCategory": "NonBreaking" + } }, - "file:///E:/src/sarif-sdk-test/src/Sarif/FileRegionsCache.cs": { - "mimeType": "text/x-csharp", - "contents": { - "binary": "77u/Ly8gQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuDQovLyBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UuIFNlZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHByb2plY3Qgcm9vdCBmb3IgZnVsbCBsaWNlbnNlIGluZm9ybWF0aW9uLg0KdXNpbmcgU3lzdGVtOw0KdXNpbmcgU3lzdGVtLkNvbGxlY3Rpb25zLkdlbmVyaWM7DQp1c2luZyBTeXN0ZW0uRGlhZ25vc3RpY3M7DQp1c2luZyBTeXN0ZW0uSU87DQoNCm5hbWVzcGFjZSBNaWNyb3NvZnQuQ29kZUFuYWx5c2lzLlNhcmlmDQp7DQogICAgLy8vIDxzdW1tYXJ5Pg0KICAgIC8vLyBUaGlzIGNsYXNzIGlzIGEgZmlsZSBjYWNoZSB0aGF0IGNhbiBiZSB1c2VkIHRvIHBvcHVsYXRlDQogICAgLy8vIHJlZ2lvbnMgd2l0aCBjb21wcmVoZW5zaXZlIGRhdGEsIHRvIHJldHJpZXZlIGZpbGUgdGV4dA0KICAgIC8vLyBhc3NvY2lhdGVkIHdpdGggYSBTQVJJRiBsb2csIGFuZCB0byBjb25zdHJ1Y3QgdGV4dA0KICAgIC8vLyBzbmlwcGV0cyBhc3NvY2lhdGVkIHdpdGggcmVnaW9uIGluc3RhbmNlcy4NCiAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgIHB1YmxpYyBjbGFzcyBGaWxlUmVnaW9uc0NhY2hlDQogICAgew0KICAgICAgICBpbnRlcm5hbCBJRmlsZVN5c3RlbSBfZmlsZVN5c3RlbTsNCg0KICAgICAgICBwcml2YXRlIHJlYWRvbmx5IFJ1biBfcnVuOw0KICAgICAgICBwcml2YXRlIHJlYWRvbmx5IERpY3Rpb25hcnk8c3RyaW5nLCBOZXdMaW5lSW5kZXg+IF9maWxlUGF0aFRvTmV3TGluZUluZGV4TWFwOw0KDQogICAgICAgIHB1YmxpYyBGaWxlUmVnaW9uc0NhY2hlKFJ1biBydW4pDQogICAgICAgIHsNCiAgICAgICAgICAgIC8vIEVhY2ggZmlsZSByZWdpb25zIGNhY2hlIGlzIGFzc29jaWF0ZWQgd2l0aCBhIHNpbmdsZSBTQVJJRiBydW4uDQogICAgICAgICAgICAvLyBUaGUgcmVhc29uIGlzIHRoYXQgYSBydW4gcHJvdmlkZXMgYW4gaXNvbGF0ZWQgc2NvcGUgZm9yIA0KICAgICAgICAgICAgLy8gdGhpbmdzIGxpa2UgVVJMcywgcG9pbnQtaW4tdGltZSBmaWxlIGNvbnRlbnRzLCBldGMuDQogICAgICAgICAgICBfcnVuID0gcnVuOw0KDQogICAgICAgICAgICBfZmlsZVN5c3RlbSA9IG5ldyBGaWxlU3lzdGVtKCk7DQogICAgICAgICAgICBfZmlsZVBhdGhUb05ld0xpbmVJbmRleE1hcCA9IG5ldyBEaWN0aW9uYXJ5PHN0cmluZywgTmV3TGluZUluZGV4PihTdHJpbmdDb21wYXJlci5PcmRpbmFsSWdub3JlQ2FzZSk7DQogICAgICAgIH0NCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBBY2NlcHRzIGEgcGh5c2ljYWwgbG9jYXRpb24gYW5kIHJldHVybnMgYSBSZWdpb24gb2JqZWN0LCBiYXNlZCBvbiB0aGUgaW5wdXQNCiAgICAgICAgLy8vIHBoeXNpY2FsTG9jYXRpb24ucmVnaW9uIHByb3BlcnR5LCB0aGF0IGhhcyBhbGwgaXRzIHByb3BlcnRpZXMgcG9wdWxhdGVkLiBJZiBhbiANCiAgICAgICAgLy8vIGlucHV0IHRleHQgcmVnaW9uLCBmb3IgZXhhbXBsZSwgb25seSBzcGVjaWZpZXMgdGhlIHN0YXJ0TGluZSBwcm9wZXJ0eSwgdGhlIHJldHVybmVkDQogICAgICAgIC8vLyBSZWdpb24gaW5zdGFuY2Ugd2lsbCBoYXZlIGNvbXB1dGVkIGFuZCBwb3B1bGF0ZWQgb3RoZXIgcHJvcGVydGllcywgc3VjaCBhcyBjaGFyT2Zmc2V0LA0KICAgICAgICAvLy8gY2hhckxlbmd0aCwgZXRjLiANCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgLy8vIDxwYXJhbSBuYW1lPSJwaHlzaWNhbExvY2F0aW9uIj5UaGUgcGh5c2ljYWwgbG9jYXRpb24gY29udGFpbmluZyB0aGUgcmVnaW9uIHdoaWNoIHNob3VsZCBiZSBwb3B1bGF0ZWQuPC9wYXJhbT4NCiAgICAgICAgLy8vIDxwYXJhbSBuYW1lPSJwb3B1bGF0ZVNuaXBwZXQiPlNwZWNpZmllcyB3aGV0aGVyIHRoZSBwaHlzaWNhbExvY2F0aW9uLnJlZ2lvbi5zbmlwcGV0IHByb3BlcnR5IHNob3VsZCBiZSBwb3B1bGF0ZWQuPC9wYXJhbT4NCiAgICAgICAgLy8vIDxyZXR1cm5zPjwvcmV0dXJucz4NCiAgICAgICAgcHVibGljIFJlZ2lvbiBQb3B1bGF0ZVRleHRSZWdpb25Qcm9wZXJ0aWVzKFJlZ2lvbiBpbnB1dFJlZ2lvbiwgVXJpIHVyaSwgYm9vbCBwb3B1bGF0ZVNuaXBwZXQpDQogICAgICAgIHsNCiAgICAgICAgICAgIGlmIChpbnB1dFJlZ2lvbiA9PSBudWxsIHx8IGlucHV0UmVnaW9uLklzQmluYXJ5UmVnaW9uKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIC8vIEZvciBiaW5hcnkgcmVnaW9ucywgb25seSB0aGUgYnl0ZU9mZnNldCBhbmQgYnl0ZUxlbmd0aCBwcm9wZXJ0aWVzDQogICAgICAgICAgICAgICAgLy8gYXJlIHJlbGV2YW50LCBhbmQgdGhlaXIgdmFsdWVzIGFyZSBhbHdheXMgc3BlY2lmaWVkLg0KICAgICAgICAgICAgICAgIHJldHVybiBpbnB1dFJlZ2lvbjsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgTmV3TGluZUluZGV4IG5ld0xpbmVJbmRleCA9IEdldE5ld0xpbmVJbmRleCh1cmksIG91dCBzdHJpbmcgZmlsZVRleHQpOw0KICAgICAgICAgICAgcmV0dXJuIFBvcHVsYXRlVGV4dFJlZ2lvblByb3BlcnRpZXMobmV3TGluZUluZGV4LCBpbnB1dFJlZ2lvbiwgZmlsZVRleHQsIHBvcHVsYXRlU25pcHBldCk7DQogICAgICAgIH0NCg0KICAgICAgICBwcml2YXRlIFJlZ2lvbiBQb3B1bGF0ZVRleHRSZWdpb25Qcm9wZXJ0aWVzKE5ld0xpbmVJbmRleCBsaW5lSW5kZXgsIFJlZ2lvbiBpbnB1dFJlZ2lvbiwgc3RyaW5nIGZpbGVUZXh0LCBib29sIHBvcHVsYXRlU25pcHBldCkNCiAgICAgICAgew0KICAgICAgICAgICAgLy8gQSBHRU5FUkFMIE5PVEUgT04gVEhFIFBST1BFUlRZIFBPUFVMQVRJT04gUFJPQ0VTUzoNCiAgICAgICAgICAgIC8vIA0KICAgICAgICAgICAgLy8gQXMgYSBydWxlLCBpZiB3ZSBmaW5kIHNvbWUgZXhpc3RpbmcgZGF0YSBvbiB0aGUgcmVnaW9uLCB3ZSB3aWxsIHRydXN0IGl0IA0KICAgICAgICAgICAgLy8gYW5kIGF2b2lkIG92ZXJ3cml0aW5nIGl0LiBXZSB3aWxsIHRha2UgZXZlcnkgb3Bwb3J0dW5pdHksIGhvd2V2ZXIsIHRvIA0KICAgICAgICAgICAgLy8gdmFsaWRhdGUgdGhhdCB0aGUgZXhpc3RpbmcgaW5mb3JtYXRpb24gbWF0Y2hlcyB3aGF0IHRoZSBuZXcgbGluZSBpbmRleA0KICAgICAgICAgICAgLy8gY29tcHV0ZXMuIE5vdGUgdGhhdCB3ZSBjb3VsZCBjb25zaWRlciBtYWtpbmcgdGhlIG5ldyBsaW5lIGluZGV4IG1vcmUNCiAgICAgICAgICAgIC8vIGVmZmljaWVudCBieSBkZWZlcnJpbmcgaXRzIG5ld2xpbmUgY29tcHV0YXRpb25zIHVudGlsIHRoZXkgYXJlIA0KICAgICAgICAgICAgLy8gYWN0dWFsbHkgcmVxdWVzdGVkLiBJZiB3ZSBkbyBzbywgd2UgY291bGQgdXBkYXRlIHRoaXMgY29kZSB0byANCiAgICAgICAgICAgIC8vIGF2b2lkIHZlcmlmeWluZyByZWdpb24gZGF0YSBpbiBjYXNlcyB3aGVyZSByZWdpb25zIGFyZSBmdWxseSANCiAgICAgICAgICAgIC8vIHBvcHVsYXRlZCAoYW5kIHdlIGNhbiBza2lwIGZpbGUgcGFyc2luZyByZXF1aXJlZCB0byBidWlsZA0KICAgICAgICAgICAgLy8gdGhlIG1hcCBvZiBuZXcgbGluZSBvZmZzZXRzKS4NCiAgICAgICAgICAgIERlYnVnLkFzc2VydCghaW5wdXRSZWdpb24uSXNCaW5hcnlSZWdpb24pOw0KDQogICAgICAgICAgICAvLyBJZiB3ZSBoYXZlIG5vIGlucHV0IHNvdXJjZSBmaWxlLCB0aGVyZSBpcyBubyB3b3JrIHRvIGRvDQogICAgICAgICAgICBpZiAobGluZUluZGV4ID09IG51bGwpIHsgcmV0dXJuIGlucHV0UmVnaW9uOyB9DQoNCiAgICAgICAgICAgIFJlZ2lvbiByZWdpb24gPSBpbnB1dFJlZ2lvbi5EZWVwQ2xvbmUoKTsNCg0KICAgICAgICAgICAgaWYgKHJlZ2lvbi5TdGFydExpbmUgPT0gMCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAvLyBUaGlzIG1lYW5zIHdlIGhhdmUgYSByZWdpb24gc3BlY2lmaWVkIGVudGlyZWx5IHZpYSBjaGFyT2Zmc2V0DQogICAgICAgICAgICAgICAgUG9wdWxhdGVQcm9wZXJ0aWVzRnJvbUNoYXJPZmZzZXRBbmRMZW5ndGgobGluZUluZGV4LCByZWdpb24pOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZWxzZQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIFBvcHVsYXRlUHJvcGVydGllc0Zyb21TdGFydEFuZEVuZFByb3BlcnRpZXMobGluZUluZGV4LCByZWdpb24sIGZpbGVUZXh0KTsgDQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIGlmIChwb3B1bGF0ZVNuaXBwZXQpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgcmVnaW9uLlNuaXBwZXQgPSByZWdpb24uU25pcHBldCA/PyBuZXcgRmlsZUNvbnRlbnQoKTsNCg0KICAgICAgICAgICAgICAgIHN0cmluZyBzbmlwcGV0VGV4dCA9IGZpbGVUZXh0LlN1YnN0cmluZyhyZWdpb24uQ2hhck9mZnNldCwgcmVnaW9uLkNoYXJMZW5ndGgpOw0KICAgICAgICAgICAgICAgIGlmIChyZWdpb24uU25pcHBldC5UZXh0ID09IG51bGwpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICByZWdpb24uU25pcHBldC5UZXh0ID0gc25pcHBldFRleHQ7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIERlYnVnLkFzc2VydChyZWdpb24uU25pcHBldC5UZXh0ID09IHNuaXBwZXRUZXh0KTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgcmV0dXJuIHJlZ2lvbjsNCiAgICAgICAgfQ0KDQogICAgICAgIGludGVybmFsIFJlZ2lvbiBDb25zdHJ1Y3RNdWx0aWxpbmVDb250ZXh0U25pcHBldChSZWdpb24gaW5wdXRSZWdpb24sIFVyaSB1cmkpDQogICAgICAgIHsNCiAgICAgICAgICAgIGlmIChpbnB1dFJlZ2lvbiA9PSBudWxsIHx8IGlucHV0UmVnaW9uLklzQmluYXJ5UmVnaW9uKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIC8vIENvbnRleHQgc25pcHBldHMgYXJlIHJlbGV2YW50IG9ubHkgZm9yIHRleHR1YWwgcmVnaW9ucy4NCiAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgTmV3TGluZUluZGV4IG5ld0xpbmVJbmRleCA9IEdldE5ld0xpbmVJbmRleCh1cmksIG91dCBzdHJpbmcgZmlsZVRleHQpOw0KICAgICAgICAgICAgaWYgKG5ld0xpbmVJbmRleCA9PSBudWxsKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHJldHVybiBudWxsOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBpbnQgbWF4TGluZU51bWJlciA9IG5ld0xpbmVJbmRleC5NYXhpbXVtTGluZU51bWJlcjsNCg0KICAgICAgICAgICAgLy8gQ3VycmVudGx5LCB3ZSBqdXN0IGdyYWIgYSBzaW5nbGUgbGluZSBiZWZvcmUgYW5kIGFmdGVyIHRoZSByZWdpb24gc3RhcnQNCiAgICAgICAgICAgIC8vIGFuZCBlbmQgbGluZXMsIHJlc3BlY3RpdmVseS4gSW4gdGhlIGZ1dHVyZSwgd2UgY291bGQgbWFrZSB0aGlzIGNvbmZpZ3VyYWJsZS4NCiAgICAgICAgICAgIHZhciByZWdpb24gPSBuZXcgUmVnaW9uKCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBTdGFydExpbmUgPSBpbnB1dFJlZ2lvbi5TdGFydExpbmUgPT0gMSA/IDEgOiBpbnB1dFJlZ2lvbi5TdGFydExpbmUgLSAxLA0KICAgICAgICAgICAgICAgIEVuZExpbmUgPSBpbnB1dFJlZ2lvbi5FbmRMaW5lID09IG1heExpbmVOdW1iZXIgPyBtYXhMaW5lTnVtYmVyIDogaW5wdXRSZWdpb24uRW5kTGluZSArIDENCiAgICAgICAgICAgIH07DQogICAgICAgICAgICByZXR1cm4gdGhpcy5Qb3B1bGF0ZVRleHRSZWdpb25Qcm9wZXJ0aWVzKHJlZ2lvbiwgdXJpLCBwb3B1bGF0ZVNuaXBwZXQ6IHRydWUpOw0KICAgICAgICB9DQoNCiAgICAgICAgcHJpdmF0ZSB2b2lkIFBvcHVsYXRlUHJvcGVydGllc0Zyb21DaGFyT2Zmc2V0QW5kTGVuZ3RoKE5ld0xpbmVJbmRleCBuZXdMaW5lSW5kZXgsIFJlZ2lvbiByZWdpb24pDQogICAgICAgIHsNCiAgICAgICAgICAgIERlYnVnLkFzc2VydCghcmVnaW9uLklzQmluYXJ5UmVnaW9uKTsNCiAgICAgICAgICAgIERlYnVnLkFzc2VydChyZWdpb24uU3RhcnRMaW5lID09IDApOw0KICAgICAgICAgICAgRGVidWcuQXNzZXJ0KHJlZ2lvbi5DaGFyTGVuZ3RoID4gMCB8fCByZWdpb24uQ2hhck9mZnNldCA+IDApOw0KDQogICAgICAgICAgICBpbnQgc3RhcnRMaW5lLCBzdGFydENvbHVtbiwgZW5kTGluZSwgZW5kQ29sdW1uOw0KDQogICAgICAgICAgICAvLyBSZXRyaWV2ZSBzdGFydCBhbmQgZW5kIGxpbmUgYW5kIGNvbHVtbiBpbmZvcm1hdGlvbiBmcm9tIHRoZSBuZXcgbGluZSBpbmRleA0KICAgICAgICAgICAgT2Zmc2V0SW5mbyBvZmZzZXRJbmZvID0gbmV3TGluZUluZGV4LkdldE9mZnNldEluZm9Gb3JPZmZzZXQocmVnaW9uLkNoYXJPZmZzZXQpOw0KICAgICAgICAgICAgc3RhcnRMaW5lID0gb2Zmc2V0SW5mby5MaW5lTnVtYmVyOw0KICAgICAgICAgICAgc3RhcnRDb2x1bW4gPSBvZmZzZXRJbmZvLkNvbHVtbk51bWJlcjsNCg0KICAgICAgICAgICAgb2Zmc2V0SW5mbyA9IG5ld0xpbmVJbmRleC5HZXRPZmZzZXRJbmZvRm9yT2Zmc2V0KHJlZ2lvbi5DaGFyT2Zmc2V0ICsgcmVnaW9uLkNoYXJMZW5ndGgpOw0KICAgICAgICAgICAgZW5kTGluZSA9IG9mZnNldEluZm8uTGluZU51bWJlcjsNCg0KICAgICAgICAgICAgLy8gVGhlIGNvbXB1dGF0aW9uIGFib3ZlIHBvaW50cyBvbmUgcGFzdCBvdXIgYWN0dWFsIHJlZ2lvbiwgYmVjYXVzZSBlbmRDb2x1bW4NCiAgICAgICAgICAgIC8vIGlzIGV4Y2x1c2l2ZSBvZiB0aGUgcmVnaW9uLiBUaGlzIGFsbG93cyBmb3IgbGVuZ3RoIHRvIGVhc2lseSBiZSBjb21wdXRlZA0KICAgICAgICAgICAgLy8gZm9yIHNpbmdsZSBsaW5lIHJlZ2lvbnM6IHJlZ2lvbi5FbmRDb2x1bW4gLSByZWdpb24uU3RhcnRDb2x1bW4NCiAgICAgICAgICAgIGVuZENvbHVtbiA9IG9mZnNldEluZm8uQ29sdW1uTnVtYmVyOw0KDQogICAgICAgICAgICAvLyBPbmx5IHNldCB2YWx1ZXMgaWYgdGhleSBhcmVuJ3QgYWxyZWFkeSBzcGVjaWZpZWQNCiAgICAgICAgICAgIGlmIChyZWdpb24uU3RhcnRMaW5lID09IDApIHsgcmVnaW9uLlN0YXJ0TGluZSA9IHN0YXJ0TGluZTsgfQ0KICAgICAgICAgICAgaWYgKHJlZ2lvbi5TdGFydENvbHVtbiA9PSAwKSB7IHJlZ2lvbi5TdGFydENvbHVtbiA9IHN0YXJ0Q29sdW1uOyB9DQogICAgICAgICAgICBpZiAocmVnaW9uLkVuZExpbmUgPT0gMCkgeyByZWdpb24uRW5kTGluZSA9IGVuZExpbmU7IH0NCiAgICAgICAgICAgIGlmIChyZWdpb24uRW5kQ29sdW1uID09IDApIHsgcmVnaW9uLkVuZENvbHVtbiA9IGVuZENvbHVtbjsgfQ0KDQogICAgICAgICAgICAvLyBWYWxpZGF0ZSBjYXNlcyB3aGVyZSBuZXcgbGluZSBpbmRleCBkaXNhZ3JlZXMgd2l0aCBleHBsaWNpdCB2YWx1ZXMNCiAgICAgICAgICAgIERlYnVnLkFzc2VydChyZWdpb24uU3RhcnRMaW5lID09IHN0YXJ0TGluZSk7DQogICAgICAgICAgICBEZWJ1Zy5Bc3NlcnQocmVnaW9uLlN0YXJ0Q29sdW1uID09IHN0YXJ0Q29sdW1uKTsNCiAgICAgICAgICAgIERlYnVnLkFzc2VydChyZWdpb24uRW5kTGluZSA9PSBlbmRMaW5lKTsNCiAgICAgICAgICAgIERlYnVnLkFzc2VydChyZWdpb24uRW5kQ29sdW1uID09IGVuZENvbHVtbik7DQogICAgICAgIH0NCg0KICAgICAgICBwcml2YXRlIHZvaWQgUG9wdWxhdGVQcm9wZXJ0aWVzRnJvbVN0YXJ0QW5kRW5kUHJvcGVydGllcyhOZXdMaW5lSW5kZXggbGluZUluZGV4LCBSZWdpb24gcmVnaW9uLCBzdHJpbmcgZmlsZVRleHQpDQogICAgICAgIHsNCiAgICAgICAgICAgIERlYnVnLkFzc2VydChyZWdpb24uU3RhcnRMaW5lID4gMCk7DQoNCiAgICAgICAgICAgIC8vIE5vdGU6IGV4ZWN1dGlvbiBvcmRlciBvZiB0aGVzZSBoZWxwZXJzIGlzIGltcG9ydGFudCwgYXMgc29tZSANCiAgICAgICAgICAgIC8vIGNhbGxzIGFzc3VtZSB0aGF0IGNlcnRhaW4gcHJlY2VkaW5nIGhlbHBlcnMgaGF2ZSBleGVjdXRlZCwNCiAgICAgICAgICAgIC8vIHdpdGggdGhlIHJlc3VsdCB0aGF0IGNlcnRhaW4gcHJvcGVydGllcyBhcmUgcG9wdWxhdGVkDQoNCiAgICAgICAgICAgIC8vIFBvcHVsYXRlZCBhdCB0aGlzIHBvaW50OiBTdGFydExpbmUNCiAgICAgICAgICAgIFBvcHVsYXRlRW5kTGluZShyZWdpb24pOw0KDQogICAgICAgICAgICAvLyBQb3B1bGF0ZWQgYXQgdGhpcyBwb2ludDogU3RhcnRMaW5lLCBFbmRMaW5lDQogICAgICAgICAgICBQb3B1bGF0ZVN0YXJ0Q29sdW1uKHJlZ2lvbik7DQoNCiAgICAgICAgICAgIC8vIFBvcHVsYXRlZCBhdCB0aGlzIHBvaW50OiBTdGFydExpbmUsIEVuZExpbmUsIFN0YXJ0Q29sdW1uDQogICAgICAgICAgICBQb3B1bGF0ZUVuZENvbHVtbihsaW5lSW5kZXgsIHJlZ2lvbiwgZmlsZVRleHQpOw0KDQogICAgICAgICAgICAvLyBQb3B1bGF0ZWQgYXQgdGhpcyBwb2ludDogU3RhcnRMaW5lLCBFbmRMaW5lLCBTdGFydENvbHVtbiwgRW5kQ29sdW1uDQogICAgICAgICAgICBQb3B1bGF0ZUNoYXJPZmZzZXQobGluZUluZGV4LCByZWdpb24pOw0KDQogICAgICAgICAgICAvLyBQb3B1bGF0ZWQgYXQgdGhpcyBwb2ludDogU3RhcnRMaW5lLCBFbmRMaW5lLCBTdGFydENvbHVtbiwgRW5kQ29sdW1uLCBDaGFyT2Zmc2V0DQogICAgICAgICAgICBQb3B1bGF0ZUNoYXJMZW5ndGgobGluZUluZGV4LCByZWdpb24pOw0KDQogICAgICAgICAgICAvLyBQb3B1bGF0ZWQgYXQgdGhpcyBwb2ludDogU3RhcnRMaW5lLCBFbmRMaW5lLCBTdGFydENvbHVtbiwgRW5kQ29sdW1uLCBDaGFyT2Zmc2V0LCBDaGFyTGVuZ3RoDQogICAgICAgICAgICBEZWJ1Zy5Bc3NlcnQocmVnaW9uLlN0YXJ0TGluZSA+IDApOw0KICAgICAgICAgICAgRGVidWcuQXNzZXJ0KHJlZ2lvbi5FbmRMaW5lID4gMCk7DQogICAgICAgICAgICBEZWJ1Zy5Bc3NlcnQoKHJlZ2lvbi5DaGFyT2Zmc2V0ICsgcmVnaW9uLkNoYXJMZW5ndGgpIDw9IGZpbGVUZXh0Lkxlbmd0aCk7DQogICAgICAgICAgICBEZWJ1Zy5Bc3NlcnQocmVnaW9uLlN0YXJ0Q29sdW1uID4gMCk7DQogICAgICAgICAgICBEZWJ1Zy5Bc3NlcnQocmVnaW9uLkNoYXJMZW5ndGggPiAwIHx8IChyZWdpb24uU3RhcnRDb2x1bW4gPT0gcmVnaW9uLkVuZENvbHVtbiAmJiByZWdpb24uU3RhcnRMaW5lID09IHJlZ2lvbi5FbmRMaW5lKSk7DQogICAgICAgICAgICBEZWJ1Zy5Bc3NlcnQocmVnaW9uLkVuZENvbHVtbiA+IDApOw0KICAgICAgICB9DQoNCiAgICAgICAgcHJpdmF0ZSBzdGF0aWMgdm9pZCBQb3B1bGF0ZUVuZExpbmUoUmVnaW9uIHJlZ2lvbikNCiAgICAgICAgew0KICAgICAgICAgICAgLy8gUG9wdWxhdGVkIGF0IHRoaXMgcG9pbnQ6IFN0YXJ0TGluZQ0KICAgICAgICAgICAgRGVidWcuQXNzZXJ0KHJlZ2lvbi5TdGFydExpbmUgPiAwKTsNCg0KICAgICAgICAgICAgcmVnaW9uLkVuZExpbmUgPSByZWdpb24uRW5kTGluZSA9PSAwID8gcmVnaW9uLlN0YXJ0TGluZSA6IHJlZ2lvbi5FbmRMaW5lOw0KICAgICAgICB9DQoNCiAgICAgICAgcHJpdmF0ZSBzdGF0aWMgdm9pZCBQb3B1bGF0ZVN0YXJ0Q29sdW1uKFJlZ2lvbiByZWdpb24pDQogICAgICAgIHsNCiAgICAgICAgICAgIC8vIFBvcHVsYXRlZCBhdCB0aGlzIHBvaW50OiBTdGFydExpbmUsIEVuZExpbmUNCiAgICAgICAgICAgIERlYnVnLkFzc2VydChyZWdpb24uU3RhcnRMaW5lID4gMCk7DQogICAgICAgICAgICBEZWJ1Zy5Bc3NlcnQocmVnaW9uLkVuZExpbmUgPiAwKTsNCg0KICAgICAgICAgICAgcmVnaW9uLlN0YXJ0Q29sdW1uID0gcmVnaW9uLlN0YXJ0Q29sdW1uID09IDAgPyAxIDogcmVnaW9uLlN0YXJ0Q29sdW1uOw0KICAgICAgICB9DQoNCg0KICAgICAgICBwcml2YXRlIHZvaWQgUG9wdWxhdGVFbmRDb2x1bW4oTmV3TGluZUluZGV4IGxpbmVJbmRleCwgUmVnaW9uIHJlZ2lvbiwgc3RyaW5nIGZpbGVUZXh0KQ0KICAgICAgICB7DQogICAgICAgICAgICAvLyBQb3B1bGF0ZWQgYXQgdGhpcyBwb2ludDogU3RhcnRMaW5lLCBFbmRMaW5lLCBTdGFydENvbHVtbg0KICAgICAgICAgICAgRGVidWcuQXNzZXJ0KHJlZ2lvbi5TdGFydExpbmUgPiAwKTsNCiAgICAgICAgICAgIERlYnVnLkFzc2VydChyZWdpb24uU3RhcnRDb2x1bW4gPiAwKTsNCiAgICAgICAgICAgIERlYnVnLkFzc2VydChyZWdpb24uRW5kTGluZSA+IDApOw0KDQogICAgICAgICAgICBpZiAocmVnaW9uLkVuZENvbHVtbiA9PSAwKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIC8vIE5vIGV4cGxpY2l0IGVuZCBjb2x1bW4uIEluY3JlbWVudCBmcm9tIGVuZCBsaW5lIHRocm91Z2gNCiAgICAgICAgICAgICAgICAvLyB0aGUgZW5kIG9mIHRoZSBsaW5lLCBleGNsdWRpbmcgbmV3IGxpbmUgY2hhcmFjdGVycw0KICAgICAgICAgICAgICAgIExpbmVJbmZvIGxpbmVJbmZvID0gbGluZUluZGV4LkdldExpbmVJbmZvRm9yTGluZShyZWdpb24uRW5kTGluZSk7DQogICAgICAgICAgICAgICAgaW50IGVuZENvbHVtbk9mZnNldCA9IGxpbmVJbmZvLlN0YXJ0T2Zmc2V0Ow0KDQogICAgICAgICAgICAgICAgd2hpbGUgKGVuZENvbHVtbk9mZnNldCA8IGZpbGVUZXh0Lkxlbmd0aCAmJg0KICAgICAgICAgICAgICAgICAgICAgICAhTmV3TGluZUluZGV4LnNfbmV3TGluZUNoYXJTZXQuQ29udGFpbnMoZmlsZVRleHRbZW5kQ29sdW1uT2Zmc2V0XSkpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBlbmRDb2x1bW5PZmZzZXQrKzsNCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAvLyBFbmQgY29sdW1ucyBhcmUgMS1pbmRleGVkDQogICAgICAgICAgICAgICAgcmVnaW9uLkVuZENvbHVtbiA9IGVuZENvbHVtbk9mZnNldCAtIGxpbmVJbmZvLlN0YXJ0T2Zmc2V0ICsgMTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgIHByaXZhdGUgc3RhdGljIHZvaWQgUG9wdWxhdGVDaGFyT2Zmc2V0KE5ld0xpbmVJbmRleCBsaW5lSW5kZXgsIFJlZ2lvbiByZWdpb24pDQogICAgICAgIHsNCiAgICAgICAgICAgIC8vIFBvcHVsYXRlZCBhdCB0aGlzIHBvaW50OiBTdGFydExpbmUsIEVuZExpbmUsIFN0YXJ0Q29sdW1uLCBFbmRDb2x1bW4NCiAgICAgICAgICAgIERlYnVnLkFzc2VydChyZWdpb24uU3RhcnRMaW5lID4gMCk7DQogICAgICAgICAgICBEZWJ1Zy5Bc3NlcnQocmVnaW9uLkVuZExpbmUgPiAwKTsNCiAgICAgICAgICAgIERlYnVnLkFzc2VydChyZWdpb24uU3RhcnRDb2x1bW4gPiAwKTsNCiAgICAgICAgICAgIERlYnVnLkFzc2VydChyZWdpb24uRW5kQ29sdW1uID4gMCk7DQoNCiAgICAgICAgICAgIExpbmVJbmZvIGxpbmVJbmZvID0gbGluZUluZGV4LkdldExpbmVJbmZvRm9yTGluZShyZWdpb24uU3RhcnRMaW5lKTsNCg0KICAgICAgICAgICAgLy8gTm93IHdlIGhhdmUgdGhlIG9mZnNldCBvZiB0aGUgc3RhcnRpbmcgbGluZS4gUG9wdWxhdGUgcmVnaW9uLkNoYXJPZmZzZXQuDQogICAgICAgICAgICBpbnQgb2Zmc2V0ID0gbGluZUluZm8uU3RhcnRPZmZzZXQ7DQogICAgICAgICAgICBvZmZzZXQgKz0gcmVnaW9uLlN0YXJ0Q29sdW1uIC0gMTsNCg0KICAgICAgICAgICAgaWYgKHJlZ2lvbi5DaGFyT2Zmc2V0ID09IDApDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgcmVnaW9uLkNoYXJPZmZzZXQgPSBvZmZzZXQ7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBEZWJ1Zy5Bc3NlcnQocmVnaW9uLkNoYXJPZmZzZXQgPT0gb2Zmc2V0KTsNCiAgICAgICAgfQ0KDQogICAgICAgIHByaXZhdGUgdm9pZCBQb3B1bGF0ZUNoYXJMZW5ndGgoTmV3TGluZUluZGV4IGxpbmVJbmRleCwgUmVnaW9uIHJlZ2lvbikNCiAgICAgICAgew0KICAgICAgICAgICAgLy8gUG9wdWxhdGVkIGF0IHRoaXMgcG9pbnQ6IFN0YXJ0TGluZSwgRW5kTGluZSwgU3RhcnRDb2x1bW4sIEVuZENvbHVtbiwgQ2hhck9mZnNldA0KICAgICAgICAgICAgRGVidWcuQXNzZXJ0KHJlZ2lvbi5TdGFydExpbmUgPiAwKTsNCiAgICAgICAgICAgIERlYnVnLkFzc2VydChyZWdpb24uRW5kTGluZSA+IDApOw0KICAgICAgICAgICAgRGVidWcuQXNzZXJ0KHJlZ2lvbi5TdGFydENvbHVtbiA+IDApOw0KICAgICAgICAgICAgRGVidWcuQXNzZXJ0KHJlZ2lvbi5FbmRDb2x1bW4gPiAwKTsNCiAgICAgICAgICAgIERlYnVnLkFzc2VydChyZWdpb24uQ2hhck9mZnNldCA+IDAgfHwgKHJlZ2lvbi5TdGFydExpbmUgPT0gMSAmJiByZWdpb24uU3RhcnRDb2x1bW4gPT0gMSkpOw0KDQogICAgICAgICAgICBMaW5lSW5mbyBsaW5lSW5mbyA9IGxpbmVJbmRleC5HZXRMaW5lSW5mb0ZvckxpbmUocmVnaW9uLkVuZExpbmUpOw0KICAgICAgICAgICAgaW50IGNoYXJMZW5ndGggPSBsaW5lSW5mby5TdGFydE9mZnNldDsNCiAgICAgICAgICAgIGNoYXJMZW5ndGggLT0gcmVnaW9uLkNoYXJPZmZzZXQ7DQogICAgICAgICAgICBjaGFyTGVuZ3RoICs9IHJlZ2lvbi5FbmRDb2x1bW4gLSAxOw0KDQogICAgICAgICAgICBpZiAocmVnaW9uLkNoYXJMZW5ndGggPT0gMCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICByZWdpb24uQ2hhckxlbmd0aCA9IGNoYXJMZW5ndGg7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBEZWJ1Zy5Bc3NlcnQocmVnaW9uLkNoYXJMZW5ndGggPT0gY2hhckxlbmd0aCk7DQogICAgICAgIH0NCg0KICAgICAgICBwcml2YXRlIE5ld0xpbmVJbmRleCBHZXROZXdMaW5lSW5kZXgoVXJpIHVyaSwgb3V0IHN0cmluZyBmaWxlVGV4dCkNCiAgICAgICAgew0KICAgICAgICAgICAgZmlsZVRleHQgPSBudWxsOw0KDQogICAgICAgICAgICAvLyBXZSB3aWxsIGV4cGFuZCB0aGlzIGNvZGUgbGF0ZXIgdG8gY29uc3RydWN0IGFsbCBwb3NzaWJsZSBVUkxzIGZyb20NCiAgICAgICAgICAgIC8vIHRoZSBsb2cgZmlsZSwgYmVhcmluZyBpbiBtaW5kIHRoaW5ncyBsaWtlIHVyaUJhc2VJZHMuIEFsc28sIHdlIGNvdWxkDQogICAgICAgICAgICAvLyBjb25zaWRlciBkb3dubG9hZGluZyBhbmQgY2FjaGluZyB3ZWItaG9zdGVkIHNvdXJjZSBmaWxlcy4NCiAgICAgICAgICAgIHRyeQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIGZpbGVUZXh0ID0gX2ZpbGVTeXN0ZW0uUmVhZEFsbFRleHQodXJpLkxvY2FsUGF0aCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBjYXRjaCAoSU9FeGNlcHRpb24pIHsgfQ0KDQogICAgICAgICAgICByZXR1cm4gZmlsZVRleHQgIT0gbnVsbCA/IG5ldyBOZXdMaW5lSW5kZXgoZmlsZVRleHQpIDogbnVsbDsNCiAgICAgICAgfQ0KICAgIH0NCn0=" + { + "ruleId": "CA1062", + "message": { + "text": "In externally visible method 'AdditionalItems.AdditionalItems(AdditionalItems)', validate parameter 'other' before using it." }, - "hashes": [ - { - "value": "B3617B1B20FFA43887A19417E632D728", - "algorithm": "md5" - }, - { - "value": "8585D56E82EB1A3C9C563F1907E0A5DB22B31C5A", - "algorithm": "sha-1" - }, + "locations": [ { - "value": "0CE142F751CDB256928C9A411D8185BA65391F1E3910A3D5CAFB42B5D637B99B", - "algorithm": "sha-256" + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Microsoft.Json.Schema.dll", + "uriBaseId": "$(ProjectDir)", + "index": 1 + } + }, + "logicalLocations": [ + { + "index": 32, + "fullyQualifiedName": "microsoft.json.schema.dll!Microsoft.Json.Schema.AdditionalItems..ctor(Microsoft.Json.Schema.AdditionalItems)" + } + ] } - ] - }, - "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/Fix.cs": { - "mimeType": "text/x-csharp", - "contents": { - "binary": "Ly8gQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQuICBBbGwgUmlnaHRzIFJlc2VydmVkLg0KLy8gTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlLiBTZWUgTElDRU5TRSBmaWxlIGluIHRoZSBwcm9qZWN0IHJvb3QgZm9yIGZ1bGwgbGljZW5zZSBpbmZvcm1hdGlvbi4NCg0KdXNpbmcgU3lzdGVtOw0KdXNpbmcgU3lzdGVtLkNvZGVEb20uQ29tcGlsZXI7DQp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsNCnVzaW5nIFN5c3RlbS5SdW50aW1lLlNlcmlhbGl6YXRpb247DQoNCm5hbWVzcGFjZSBNaWNyb3NvZnQuQ29kZUFuYWx5c2lzLlNhcmlmDQp7DQogICAgLy8vIDxzdW1tYXJ5Pg0KICAgIC8vLyBBIHByb3Bvc2VkIGZpeCBmb3IgdGhlIHByb2JsZW0gcmVwcmVzZW50ZWQgYnkgYSByZXN1bHQgb2JqZWN0LiBBIGZpeCBzcGVjaWZpZXMgYSBzZXQgb2YgZmlsZSB0byBtb2RpZnkuIEZvciBlYWNoIGZpbGUsIGl0IHNwZWNpZmllcyBhIHNldCBvZiBieXRlcyB0byByZW1vdmUsIGFuZCBwcm92aWRlcyBhIHNldCBvZiBuZXcgYnl0ZXMgdG8gcmVwbGFjZSB0aGVtLg0KICAgIC8vLyA8L3N1bW1hcnk+DQogICAgW0RhdGFDb250cmFjdF0NCiAgICBbR2VuZXJhdGVkQ29kZSgiTWljcm9zb2Z0Lkpzb24uU2NoZW1hLlRvRG90TmV0IiwgIjAuNTYuMC4wIildDQogICAgcHVibGljIHBhcnRpYWwgY2xhc3MgRml4IDogSVNhcmlmTm9kZQ0KICAgIHsNCiAgICAgICAgcHVibGljIHN0YXRpYyBJRXF1YWxpdHlDb21wYXJlcjxGaXg+IFZhbHVlQ29tcGFyZXIgPT4gRml4RXF1YWxpdHlDb21wYXJlci5JbnN0YW5jZTsNCg0KICAgICAgICBwdWJsaWMgYm9vbCBWYWx1ZUVxdWFscyhGaXggb3RoZXIpID0+IFZhbHVlQ29tcGFyZXIuRXF1YWxzKHRoaXMsIG90aGVyKTsNCiAgICAgICAgcHVibGljIGludCBWYWx1ZUdldEhhc2hDb2RlKCkgPT4gVmFsdWVDb21wYXJlci5HZXRIYXNoQ29kZSh0aGlzKTsNCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBHZXRzIGEgdmFsdWUgaW5kaWNhdGluZyB0aGUgdHlwZSBvZiBvYmplY3QgaW1wbGVtZW50aW5nIDxzZWUgY3JlZj0iSVNhcmlmTm9kZSIgLz4uDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIHB1YmxpYyBTYXJpZk5vZGVLaW5kIFNhcmlmTm9kZUtpbmQNCiAgICAgICAgew0KICAgICAgICAgICAgZ2V0DQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgcmV0dXJuIFNhcmlmTm9kZUtpbmQuRml4Ow0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gQSBtZXNzYWdlIHRoYXQgZGVzY3JpYmVzIHRoZSBwcm9wb3NlZCBmaXgsIGVuYWJsaW5nIHZpZXdlcnMgdG8gcHJlc2VudCB0aGUgcHJvcG9zZWQgY2hhbmdlIHRvIGFuIGVuZCB1c2VyLg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICBbRGF0YU1lbWJlcihOYW1lID0gImRlc2NyaXB0aW9uIiwgSXNSZXF1aXJlZCA9IGZhbHNlLCBFbWl0RGVmYXVsdFZhbHVlID0gZmFsc2UpXQ0KICAgICAgICBwdWJsaWMgTWVzc2FnZSBEZXNjcmlwdGlvbiB7IGdldDsgc2V0OyB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gT25lIG9yIG1vcmUgZmlsZSBjaGFuZ2VzIHRoYXQgY29tcHJpc2UgYSBmaXggZm9yIGEgcmVzdWx0Lg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICBbRGF0YU1lbWJlcihOYW1lID0gImZpbGVDaGFuZ2VzIiwgSXNSZXF1aXJlZCA9IHRydWUpXQ0KICAgICAgICBwdWJsaWMgSUxpc3Q8RmlsZUNoYW5nZT4gRmlsZUNoYW5nZXMgeyBnZXQ7IHNldDsgfQ0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIEluaXRpYWxpemVzIGEgbmV3IGluc3RhbmNlIG9mIHRoZSA8c2VlIGNyZWY9IkZpeCIgLz4gY2xhc3MuDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIHB1YmxpYyBGaXgoKQ0KICAgICAgICB7DQogICAgICAgIH0NCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBJbml0aWFsaXplcyBhIG5ldyBpbnN0YW5jZSBvZiB0aGUgPHNlZSBjcmVmPSJGaXgiIC8+IGNsYXNzIGZyb20gdGhlIHN1cHBsaWVkIHZhbHVlcy4NCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgLy8vIDxwYXJhbSBuYW1lPSJkZXNjcmlwdGlvbiI+DQogICAgICAgIC8vLyBBbiBpbml0aWFsaXphdGlvbiB2YWx1ZSBmb3IgdGhlIDxzZWUgY3JlZj0iUDogRGVzY3JpcHRpb24iIC8+IHByb3BlcnR5Lg0KICAgICAgICAvLy8gPC9wYXJhbT4NCiAgICAgICAgLy8vIDxwYXJhbSBuYW1lPSJmaWxlQ2hhbmdlcyI+DQogICAgICAgIC8vLyBBbiBpbml0aWFsaXphdGlvbiB2YWx1ZSBmb3IgdGhlIDxzZWUgY3JlZj0iUDogRmlsZUNoYW5nZXMiIC8+IHByb3BlcnR5Lg0KICAgICAgICAvLy8gPC9wYXJhbT4NCiAgICAgICAgcHVibGljIEZpeChNZXNzYWdlIGRlc2NyaXB0aW9uLCBJRW51bWVyYWJsZTxGaWxlQ2hhbmdlPiBmaWxlQ2hhbmdlcykNCiAgICAgICAgew0KICAgICAgICAgICAgSW5pdChkZXNjcmlwdGlvbiwgZmlsZUNoYW5nZXMpOw0KICAgICAgICB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gSW5pdGlhbGl6ZXMgYSBuZXcgaW5zdGFuY2Ugb2YgdGhlIDxzZWUgY3JlZj0iRml4IiAvPiBjbGFzcyBmcm9tIHRoZSBzcGVjaWZpZWQgaW5zdGFuY2UuDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIC8vLyA8cGFyYW0gbmFtZT0ib3RoZXIiPg0KICAgICAgICAvLy8gVGhlIGluc3RhbmNlIGZyb20gd2hpY2ggdGhlIG5ldyBpbnN0YW5jZSBpcyB0byBiZSBpbml0aWFsaXplZC4NCiAgICAgICAgLy8vIDwvcGFyYW0+DQogICAgICAgIC8vLyA8ZXhjZXB0aW9uIGNyZWY9IkFyZ3VtZW50TnVsbEV4Y2VwdGlvbiI+DQogICAgICAgIC8vLyBUaHJvd24gaWYgPHBhcmFtcmVmIG5hbWU9Im90aGVyIiAvPiBpcyBudWxsLg0KICAgICAgICAvLy8gPC9leGNlcHRpb24+DQogICAgICAgIHB1YmxpYyBGaXgoRml4IG90aGVyKQ0KICAgICAgICB7DQogICAgICAgICAgICBpZiAob3RoZXIgPT0gbnVsbCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgQXJndW1lbnROdWxsRXhjZXB0aW9uKG5hbWVvZihvdGhlcikpOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBJbml0KG90aGVyLkRlc2NyaXB0aW9uLCBvdGhlci5GaWxlQ2hhbmdlcyk7DQogICAgICAgIH0NCg0KICAgICAgICBJU2FyaWZOb2RlIElTYXJpZk5vZGUuRGVlcENsb25lKCkNCiAgICAgICAgew0KICAgICAgICAgICAgcmV0dXJuIERlZXBDbG9uZUNvcmUoKTsNCiAgICAgICAgfQ0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIENyZWF0ZXMgYSBkZWVwIGNvcHkgb2YgdGhpcyBpbnN0YW5jZS4NCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgcHVibGljIEZpeCBEZWVwQ2xvbmUoKQ0KICAgICAgICB7DQogICAgICAgICAgICByZXR1cm4gKEZpeClEZWVwQ2xvbmVDb3JlKCk7DQogICAgICAgIH0NCg0KICAgICAgICBwcml2YXRlIElTYXJpZk5vZGUgRGVlcENsb25lQ29yZSgpDQogICAgICAgIHsNCiAgICAgICAgICAgIHJldHVybiBuZXcgRml4KHRoaXMpOw0KICAgICAgICB9DQoNCiAgICAgICAgcHJpdmF0ZSB2b2lkIEluaXQoTWVzc2FnZSBkZXNjcmlwdGlvbiwgSUVudW1lcmFibGU8RmlsZUNoYW5nZT4gZmlsZUNoYW5nZXMpDQogICAgICAgIHsNCiAgICAgICAgICAgIGlmIChkZXNjcmlwdGlvbiAhPSBudWxsKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIERlc2NyaXB0aW9uID0gbmV3IE1lc3NhZ2UoZGVzY3JpcHRpb24pOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBpZiAoZmlsZUNoYW5nZXMgIT0gbnVsbCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICB2YXIgZGVzdGluYXRpb25fMCA9IG5ldyBMaXN0PEZpbGVDaGFuZ2U+KCk7DQogICAgICAgICAgICAgICAgZm9yZWFjaCAodmFyIHZhbHVlXzAgaW4gZmlsZUNoYW5nZXMpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWVfMCA9PSBudWxsKQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICBkZXN0aW5hdGlvbl8wLkFkZChudWxsKTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBlbHNlDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGRlc3RpbmF0aW9uXzAuQWRkKG5ldyBGaWxlQ2hhbmdlKHZhbHVlXzApKTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgIEZpbGVDaGFuZ2VzID0gZGVzdGluYXRpb25fMDsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgIH0NCn0=" + ], + "partialFingerprints": { + "UniqueId": "0" }, - "hashes": [ - { - "value": "D39862C9E21E601706D9A30EEBD951EB", - "algorithm": "md5" - }, - { - "value": "3CEE49CFF9C0118F41A07F7935B4B8410A3A0420", - "algorithm": "sha-1" - }, - { - "value": "54DFB5A61647923CC3F21093A891426DCA6F22424355CA797CAB1813D552254F", - "algorithm": "sha-256" - } - ] + "properties": { + "Category": "Microsoft.Design", + "FixCategory": "DependsOnFix" + } }, - "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/Graph.cs": { - "mimeType": "text/x-csharp", - "contents": { - "binary": "Ly8gQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQuICBBbGwgUmlnaHRzIFJlc2VydmVkLg0KLy8gTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlLiBTZWUgTElDRU5TRSBmaWxlIGluIHRoZSBwcm9qZWN0IHJvb3QgZm9yIGZ1bGwgbGljZW5zZSBpbmZvcm1hdGlvbi4NCg0KdXNpbmcgU3lzdGVtOw0KdXNpbmcgU3lzdGVtLkNvZGVEb20uQ29tcGlsZXI7DQp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsNCnVzaW5nIFN5c3RlbS5SdW50aW1lLlNlcmlhbGl6YXRpb247DQp1c2luZyBNaWNyb3NvZnQuQ29kZUFuYWx5c2lzLlNhcmlmLlJlYWRlcnM7DQoNCm5hbWVzcGFjZSBNaWNyb3NvZnQuQ29kZUFuYWx5c2lzLlNhcmlmDQp7DQogICAgLy8vIDxzdW1tYXJ5Pg0KICAgIC8vLyBBIG5ldHdvcmsgb2Ygbm9kZXMgYW5kIGRpcmVjdGVkIGVkZ2VzIHRoYXQgZGVzY3JpYmVzIHNvbWUgYXNwZWN0IG9mIHRoZSBzdHJ1Y3R1cmUgb2YgdGhlIGNvZGUgKGZvciBleGFtcGxlLCBhIGNhbGwgZ3JhcGgpLg0KICAgIC8vLyA8L3N1bW1hcnk+DQogICAgW0RhdGFDb250cmFjdF0NCiAgICBbR2VuZXJhdGVkQ29kZSgiTWljcm9zb2Z0Lkpzb24uU2NoZW1hLlRvRG90TmV0IiwgIjAuNTYuMC4wIildDQogICAgcHVibGljIHBhcnRpYWwgY2xhc3MgR3JhcGggOiBQcm9wZXJ0eUJhZ0hvbGRlciwgSVNhcmlmTm9kZQ0KICAgIHsNCiAgICAgICAgcHVibGljIHN0YXRpYyBJRXF1YWxpdHlDb21wYXJlcjxHcmFwaD4gVmFsdWVDb21wYXJlciA9PiBHcmFwaEVxdWFsaXR5Q29tcGFyZXIuSW5zdGFuY2U7DQoNCiAgICAgICAgcHVibGljIGJvb2wgVmFsdWVFcXVhbHMoR3JhcGggb3RoZXIpID0+IFZhbHVlQ29tcGFyZXIuRXF1YWxzKHRoaXMsIG90aGVyKTsNCiAgICAgICAgcHVibGljIGludCBWYWx1ZUdldEhhc2hDb2RlKCkgPT4gVmFsdWVDb21wYXJlci5HZXRIYXNoQ29kZSh0aGlzKTsNCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBHZXRzIGEgdmFsdWUgaW5kaWNhdGluZyB0aGUgdHlwZSBvZiBvYmplY3QgaW1wbGVtZW50aW5nIDxzZWUgY3JlZj0iSVNhcmlmTm9kZSIgLz4uDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIHB1YmxpYyBTYXJpZk5vZGVLaW5kIFNhcmlmTm9kZUtpbmQNCiAgICAgICAgew0KICAgICAgICAgICAgZ2V0DQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgcmV0dXJuIFNhcmlmTm9kZUtpbmQuR3JhcGg7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBBIHN0cmluZyB0aGF0IHVuaXF1ZWx5IGlkZW50aWZpZXMgdGhlIGdyYXBoIHdpdGhpbiBhIHJ1bi5ncmFwaHMgb3IgcmVzdWx0LmdyYXBocyBhcnJheS4NCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgW0RhdGFNZW1iZXIoTmFtZSA9ICJpZCIsIElzUmVxdWlyZWQgPSB0cnVlKV0NCiAgICAgICAgcHVibGljIHN0cmluZyBJZCB7IGdldDsgc2V0OyB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gQSBkZXNjcmlwdGlvbiBvZiB0aGUgZ3JhcGguDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIFtEYXRhTWVtYmVyKE5hbWUgPSAiZGVzY3JpcHRpb24iLCBJc1JlcXVpcmVkID0gZmFsc2UsIEVtaXREZWZhdWx0VmFsdWUgPSBmYWxzZSldDQogICAgICAgIHB1YmxpYyBNZXNzYWdlIERlc2NyaXB0aW9uIHsgZ2V0OyBzZXQ7IH0NCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBBbiBhcnJheSBvZiBub2RlIG9iamVjdHMgcmVwcmVzZW50aW5nIHRoZSBub2RlcyBvZiB0aGUgZ3JhcGguDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIFtEYXRhTWVtYmVyKE5hbWUgPSAibm9kZXMiLCBJc1JlcXVpcmVkID0gdHJ1ZSldDQogICAgICAgIHB1YmxpYyBJTGlzdDxOb2RlPiBOb2RlcyB7IGdldDsgc2V0OyB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gQW4gYXJyYXkgb2YgZWRnZSBvYmplY3RzIHJlcHJlc2VudGluZyB0aGUgZWRnZXMgb2YgdGhlIGdyYXBoLg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICBbRGF0YU1lbWJlcihOYW1lID0gImVkZ2VzIiwgSXNSZXF1aXJlZCA9IHRydWUpXQ0KICAgICAgICBwdWJsaWMgSUxpc3Q8RWRnZT4gRWRnZXMgeyBnZXQ7IHNldDsgfQ0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIEtleS92YWx1ZSBwYWlycyB0aGF0IHByb3ZpZGUgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiBhYm91dCB0aGUgZ3JhcGguDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIFtEYXRhTWVtYmVyKE5hbWUgPSAicHJvcGVydGllcyIsIElzUmVxdWlyZWQgPSBmYWxzZSwgRW1pdERlZmF1bHRWYWx1ZSA9IGZhbHNlKV0NCiAgICAgICAgaW50ZXJuYWwgb3ZlcnJpZGUgSURpY3Rpb25hcnk8c3RyaW5nLCBTZXJpYWxpemVkUHJvcGVydHlJbmZvPiBQcm9wZXJ0aWVzIHsgZ2V0OyBzZXQ7IH0NCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBJbml0aWFsaXplcyBhIG5ldyBpbnN0YW5jZSBvZiB0aGUgPHNlZSBjcmVmPSJHcmFwaCIgLz4gY2xhc3MuDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIHB1YmxpYyBHcmFwaCgpDQogICAgICAgIHsNCiAgICAgICAgfQ0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIEluaXRpYWxpemVzIGEgbmV3IGluc3RhbmNlIG9mIHRoZSA8c2VlIGNyZWY9IkdyYXBoIiAvPiBjbGFzcyBmcm9tIHRoZSBzdXBwbGllZCB2YWx1ZXMuDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIC8vLyA8cGFyYW0gbmFtZT0iaWQiPg0KICAgICAgICAvLy8gQW4gaW5pdGlhbGl6YXRpb24gdmFsdWUgZm9yIHRoZSA8c2VlIGNyZWY9IlA6IElkIiAvPiBwcm9wZXJ0eS4NCiAgICAgICAgLy8vIDwvcGFyYW0+DQogICAgICAgIC8vLyA8cGFyYW0gbmFtZT0iZGVzY3JpcHRpb24iPg0KICAgICAgICAvLy8gQW4gaW5pdGlhbGl6YXRpb24gdmFsdWUgZm9yIHRoZSA8c2VlIGNyZWY9IlA6IERlc2NyaXB0aW9uIiAvPiBwcm9wZXJ0eS4NCiAgICAgICAgLy8vIDwvcGFyYW0+DQogICAgICAgIC8vLyA8cGFyYW0gbmFtZT0ibm9kZXMiPg0KICAgICAgICAvLy8gQW4gaW5pdGlhbGl6YXRpb24gdmFsdWUgZm9yIHRoZSA8c2VlIGNyZWY9IlA6IE5vZGVzIiAvPiBwcm9wZXJ0eS4NCiAgICAgICAgLy8vIDwvcGFyYW0+DQogICAgICAgIC8vLyA8cGFyYW0gbmFtZT0iZWRnZXMiPg0KICAgICAgICAvLy8gQW4gaW5pdGlhbGl6YXRpb24gdmFsdWUgZm9yIHRoZSA8c2VlIGNyZWY9IlA6IEVkZ2VzIiAvPiBwcm9wZXJ0eS4NCiAgICAgICAgLy8vIDwvcGFyYW0+DQogICAgICAgIC8vLyA8cGFyYW0gbmFtZT0icHJvcGVydGllcyI+DQogICAgICAgIC8vLyBBbiBpbml0aWFsaXphdGlvbiB2YWx1ZSBmb3IgdGhlIDxzZWUgY3JlZj0iUDogUHJvcGVydGllcyIgLz4gcHJvcGVydHkuDQogICAgICAgIC8vLyA8L3BhcmFtPg0KICAgICAgICBwdWJsaWMgR3JhcGgoc3RyaW5nIGlkLCBNZXNzYWdlIGRlc2NyaXB0aW9uLCBJRW51bWVyYWJsZTxOb2RlPiBub2RlcywgSUVudW1lcmFibGU8RWRnZT4gZWRnZXMsIElEaWN0aW9uYXJ5PHN0cmluZywgU2VyaWFsaXplZFByb3BlcnR5SW5mbz4gcHJvcGVydGllcykNCiAgICAgICAgew0KICAgICAgICAgICAgSW5pdChpZCwgZGVzY3JpcHRpb24sIG5vZGVzLCBlZGdlcywgcHJvcGVydGllcyk7DQogICAgICAgIH0NCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBJbml0aWFsaXplcyBhIG5ldyBpbnN0YW5jZSBvZiB0aGUgPHNlZSBjcmVmPSJHcmFwaCIgLz4gY2xhc3MgZnJvbSB0aGUgc3BlY2lmaWVkIGluc3RhbmNlLg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICAvLy8gPHBhcmFtIG5hbWU9Im90aGVyIj4NCiAgICAgICAgLy8vIFRoZSBpbnN0YW5jZSBmcm9tIHdoaWNoIHRoZSBuZXcgaW5zdGFuY2UgaXMgdG8gYmUgaW5pdGlhbGl6ZWQuDQogICAgICAgIC8vLyA8L3BhcmFtPg0KICAgICAgICAvLy8gPGV4Y2VwdGlvbiBjcmVmPSJBcmd1bWVudE51bGxFeGNlcHRpb24iPg0KICAgICAgICAvLy8gVGhyb3duIGlmIDxwYXJhbXJlZiBuYW1lPSJvdGhlciIgLz4gaXMgbnVsbC4NCiAgICAgICAgLy8vIDwvZXhjZXB0aW9uPg0KICAgICAgICBwdWJsaWMgR3JhcGgoR3JhcGggb3RoZXIpDQogICAgICAgIHsNCiAgICAgICAgICAgIGlmIChvdGhlciA9PSBudWxsKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHRocm93IG5ldyBBcmd1bWVudE51bGxFeGNlcHRpb24obmFtZW9mKG90aGVyKSk7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIEluaXQob3RoZXIuSWQsIG90aGVyLkRlc2NyaXB0aW9uLCBvdGhlci5Ob2Rlcywgb3RoZXIuRWRnZXMsIG90aGVyLlByb3BlcnRpZXMpOw0KICAgICAgICB9DQoNCiAgICAgICAgSVNhcmlmTm9kZSBJU2FyaWZOb2RlLkRlZXBDbG9uZSgpDQogICAgICAgIHsNCiAgICAgICAgICAgIHJldHVybiBEZWVwQ2xvbmVDb3JlKCk7DQogICAgICAgIH0NCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBDcmVhdGVzIGEgZGVlcCBjb3B5IG9mIHRoaXMgaW5zdGFuY2UuDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIHB1YmxpYyBHcmFwaCBEZWVwQ2xvbmUoKQ0KICAgICAgICB7DQogICAgICAgICAgICByZXR1cm4gKEdyYXBoKURlZXBDbG9uZUNvcmUoKTsNCiAgICAgICAgfQ0KDQogICAgICAgIHByaXZhdGUgSVNhcmlmTm9kZSBEZWVwQ2xvbmVDb3JlKCkNCiAgICAgICAgew0KICAgICAgICAgICAgcmV0dXJuIG5ldyBHcmFwaCh0aGlzKTsNCiAgICAgICAgfQ0KDQogICAgICAgIHByaXZhdGUgdm9pZCBJbml0KHN0cmluZyBpZCwgTWVzc2FnZSBkZXNjcmlwdGlvbiwgSUVudW1lcmFibGU8Tm9kZT4gbm9kZXMsIElFbnVtZXJhYmxlPEVkZ2U+IGVkZ2VzLCBJRGljdGlvbmFyeTxzdHJpbmcsIFNlcmlhbGl6ZWRQcm9wZXJ0eUluZm8+IHByb3BlcnRpZXMpDQogICAgICAgIHsNCiAgICAgICAgICAgIElkID0gaWQ7DQogICAgICAgICAgICBpZiAoZGVzY3JpcHRpb24gIT0gbnVsbCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBEZXNjcmlwdGlvbiA9IG5ldyBNZXNzYWdlKGRlc2NyaXB0aW9uKTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgaWYgKG5vZGVzICE9IG51bGwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgdmFyIGRlc3RpbmF0aW9uXzAgPSBuZXcgTGlzdDxOb2RlPigpOw0KICAgICAgICAgICAgICAgIGZvcmVhY2ggKHZhciB2YWx1ZV8wIGluIG5vZGVzKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlXzAgPT0gbnVsbCkNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgZGVzdGluYXRpb25fMC5BZGQobnVsbCk7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgZWxzZQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICBkZXN0aW5hdGlvbl8wLkFkZChuZXcgTm9kZSh2YWx1ZV8wKSk7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICBOb2RlcyA9IGRlc3RpbmF0aW9uXzA7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIGlmIChlZGdlcyAhPSBudWxsKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHZhciBkZXN0aW5hdGlvbl8xID0gbmV3IExpc3Q8RWRnZT4oKTsNCiAgICAgICAgICAgICAgICBmb3JlYWNoICh2YXIgdmFsdWVfMSBpbiBlZGdlcykNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZV8xID09IG51bGwpDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGRlc3RpbmF0aW9uXzEuQWRkKG51bGwpOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGVsc2UNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgZGVzdGluYXRpb25fMS5BZGQobmV3IEVkZ2UodmFsdWVfMSkpOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgRWRnZXMgPSBkZXN0aW5hdGlvbl8xOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBpZiAocHJvcGVydGllcyAhPSBudWxsKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIFByb3BlcnRpZXMgPSBuZXcgRGljdGlvbmFyeTxzdHJpbmcsIFNlcmlhbGl6ZWRQcm9wZXJ0eUluZm8+KHByb3BlcnRpZXMpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgfQ0KfQ==" + { + "ruleId": "CA1062", + "message": { + "text": "In externally visible method 'AdditionalProperties.AdditionalProperties(AdditionalProperties)', validate parameter 'other' before using it." }, - "hashes": [ - { - "value": "7667FE05490023183FCA84B295C6FDE4", - "algorithm": "md5" - }, - { - "value": "7489A0F9246610BC9359F62A13CAA9C44825EBD4", - "algorithm": "sha-1" - }, + "locations": [ { - "value": "4C20A65274FE53B55E24A4FBF5872DDD42B51728FA5C2E7F3D4C19DB2E6A43E6", - "algorithm": "sha-256" + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Microsoft.Json.Schema.dll", + "uriBaseId": "$(ProjectDir)", + "index": 1 + } + }, + "logicalLocations": [ + { + "index": 34, + "fullyQualifiedName": "microsoft.json.schema.dll!Microsoft.Json.Schema.AdditionalProperties..ctor(Microsoft.Json.Schema.AdditionalProperties)" + } + ] } - ] + ], + "partialFingerprints": { + "UniqueId": "0" + }, + "properties": { + "Category": "Microsoft.Design", + "FixCategory": "DependsOnFix" + } }, - "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/GraphEqualityComparer.cs": { - "mimeType": "text/x-csharp", - "contents": { - "binary": "Ly8gQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQuICBBbGwgUmlnaHRzIFJlc2VydmVkLg0KLy8gTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlLiBTZWUgTElDRU5TRSBmaWxlIGluIHRoZSBwcm9qZWN0IHJvb3QgZm9yIGZ1bGwgbGljZW5zZSBpbmZvcm1hdGlvbi4NCg0KdXNpbmcgU3lzdGVtOw0KdXNpbmcgU3lzdGVtLkNvZGVEb20uQ29tcGlsZXI7DQp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsNCnVzaW5nIE1pY3Jvc29mdC5Db2RlQW5hbHlzaXMuU2FyaWYuUmVhZGVyczsNCg0KbmFtZXNwYWNlIE1pY3Jvc29mdC5Db2RlQW5hbHlzaXMuU2FyaWYNCnsNCiAgICAvLy8gPHN1bW1hcnk+DQogICAgLy8vIERlZmluZXMgbWV0aG9kcyB0byBzdXBwb3J0IHRoZSBjb21wYXJpc29uIG9mIG9iamVjdHMgb2YgdHlwZSBHcmFwaCBmb3IgZXF1YWxpdHkuDQogICAgLy8vIDwvc3VtbWFyeT4NCiAgICBbR2VuZXJhdGVkQ29kZSgiTWljcm9zb2Z0Lkpzb24uU2NoZW1hLlRvRG90TmV0IiwgIjAuNTYuMC4wIildDQogICAgaW50ZXJuYWwgc2VhbGVkIGNsYXNzIEdyYXBoRXF1YWxpdHlDb21wYXJlciA6IElFcXVhbGl0eUNvbXBhcmVyPEdyYXBoPg0KICAgIHsNCiAgICAgICAgaW50ZXJuYWwgc3RhdGljIHJlYWRvbmx5IEdyYXBoRXF1YWxpdHlDb21wYXJlciBJbnN0YW5jZSA9IG5ldyBHcmFwaEVxdWFsaXR5Q29tcGFyZXIoKTsNCg0KICAgICAgICBwdWJsaWMgYm9vbCBFcXVhbHMoR3JhcGggbGVmdCwgR3JhcGggcmlnaHQpDQogICAgICAgIHsNCiAgICAgICAgICAgIGlmIChSZWZlcmVuY2VFcXVhbHMobGVmdCwgcmlnaHQpKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBpZiAoUmVmZXJlbmNlRXF1YWxzKGxlZnQsIG51bGwpIHx8IFJlZmVyZW5jZUVxdWFscyhyaWdodCwgbnVsbCkpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBpZiAobGVmdC5JZCAhPSByaWdodC5JZCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIGlmICghTWVzc2FnZS5WYWx1ZUNvbXBhcmVyLkVxdWFscyhsZWZ0LkRlc2NyaXB0aW9uLCByaWdodC5EZXNjcmlwdGlvbikpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBpZiAoIW9iamVjdC5SZWZlcmVuY2VFcXVhbHMobGVmdC5Ob2RlcywgcmlnaHQuTm9kZXMpKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIGlmIChsZWZ0Lk5vZGVzID09IG51bGwgfHwgcmlnaHQuTm9kZXMgPT0gbnVsbCkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICBpZiAobGVmdC5Ob2Rlcy5Db3VudCAhPSByaWdodC5Ob2Rlcy5Db3VudCkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICBmb3IgKGludCBpbmRleF8wID0gMDsgaW5kZXhfMCA8IGxlZnQuTm9kZXMuQ291bnQ7ICsraW5kZXhfMCkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIGlmICghTm9kZS5WYWx1ZUNvbXBhcmVyLkVxdWFscyhsZWZ0Lk5vZGVzW2luZGV4XzBdLCByaWdodC5Ob2Rlc1tpbmRleF8wXSkpDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgaWYgKCFvYmplY3QuUmVmZXJlbmNlRXF1YWxzKGxlZnQuRWRnZXMsIHJpZ2h0LkVkZ2VzKSkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBpZiAobGVmdC5FZGdlcyA9PSBudWxsIHx8IHJpZ2h0LkVkZ2VzID09IG51bGwpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgaWYgKGxlZnQuRWRnZXMuQ291bnQgIT0gcmlnaHQuRWRnZXMuQ291bnQpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgZm9yIChpbnQgaW5kZXhfMSA9IDA7IGluZGV4XzEgPCBsZWZ0LkVkZ2VzLkNvdW50OyArK2luZGV4XzEpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBpZiAoIUVkZ2UuVmFsdWVDb21wYXJlci5FcXVhbHMobGVmdC5FZGdlc1tpbmRleF8xXSwgcmlnaHQuRWRnZXNbaW5kZXhfMV0pKQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIGlmICghb2JqZWN0LlJlZmVyZW5jZUVxdWFscyhsZWZ0LlByb3BlcnRpZXMsIHJpZ2h0LlByb3BlcnRpZXMpKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIGlmIChsZWZ0LlByb3BlcnRpZXMgPT0gbnVsbCB8fCByaWdodC5Qcm9wZXJ0aWVzID09IG51bGwgfHwgbGVmdC5Qcm9wZXJ0aWVzLkNvdW50ICE9IHJpZ2h0LlByb3BlcnRpZXMuQ291bnQpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgZm9yZWFjaCAodmFyIHZhbHVlXzAgaW4gbGVmdC5Qcm9wZXJ0aWVzKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgU2VyaWFsaXplZFByb3BlcnR5SW5mbyB2YWx1ZV8xOw0KICAgICAgICAgICAgICAgICAgICBpZiAoIXJpZ2h0LlByb3BlcnRpZXMuVHJ5R2V0VmFsdWUodmFsdWVfMC5LZXksIG91dCB2YWx1ZV8xKSkNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAgICAgaWYgKCFvYmplY3QuRXF1YWxzKHZhbHVlXzAuVmFsdWUsIHZhbHVlXzEpKQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIHJldHVybiB0cnVlOw0KICAgICAgICB9DQoNCiAgICAgICAgcHVibGljIGludCBHZXRIYXNoQ29kZShHcmFwaCBvYmopDQogICAgICAgIHsNCiAgICAgICAgICAgIGlmIChSZWZlcmVuY2VFcXVhbHMob2JqLCBudWxsKSkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gMDsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgaW50IHJlc3VsdCA9IDE3Ow0KICAgICAgICAgICAgdW5jaGVja2VkDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgaWYgKG9iai5JZCAhPSBudWxsKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gKHJlc3VsdCAqIDMxKSArIG9iai5JZC5HZXRIYXNoQ29kZSgpOw0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgIGlmIChvYmouRGVzY3JpcHRpb24gIT0gbnVsbCkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IChyZXN1bHQgKiAzMSkgKyBvYmouRGVzY3JpcHRpb24uVmFsdWVHZXRIYXNoQ29kZSgpOw0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgIGlmIChvYmouTm9kZXMgIT0gbnVsbCkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIGZvcmVhY2ggKHZhciB2YWx1ZV8yIGluIG9iai5Ob2RlcykNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gcmVzdWx0ICogMzE7DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWVfMiAhPSBudWxsKQ0KICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IChyZXN1bHQgKiAzMSkgKyB2YWx1ZV8yLlZhbHVlR2V0SGFzaENvZGUoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgIGlmIChvYmouRWRnZXMgIT0gbnVsbCkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIGZvcmVhY2ggKHZhciB2YWx1ZV8zIGluIG9iai5FZGdlcykNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gcmVzdWx0ICogMzE7DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWVfMyAhPSBudWxsKQ0KICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IChyZXN1bHQgKiAzMSkgKyB2YWx1ZV8zLlZhbHVlR2V0SGFzaENvZGUoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgIGlmIChvYmouUHJvcGVydGllcyAhPSBudWxsKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgLy8gVXNlIHhvciBmb3IgZGljdGlvbmFyaWVzIHRvIGJlIG9yZGVyLWluZGVwZW5kZW50Lg0KICAgICAgICAgICAgICAgICAgICBpbnQgeG9yXzAgPSAwOw0KICAgICAgICAgICAgICAgICAgICBmb3JlYWNoICh2YXIgdmFsdWVfNCBpbiBvYmouUHJvcGVydGllcykNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgeG9yXzAgXj0gdmFsdWVfNC5LZXkuR2V0SGFzaENvZGUoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZV80LlZhbHVlICE9IG51bGwpDQogICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgeG9yXzAgXj0gdmFsdWVfNC5WYWx1ZS5HZXRIYXNoQ29kZSgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gKHJlc3VsdCAqIDMxKSArIHhvcl8wOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsNCiAgICAgICAgfQ0KICAgIH0NCn0=" + { + "ruleId": "CA1062", + "message": { + "text": "In externally visible method 'Dependency.Dependency(Dependency)', validate parameter 'other' before using it." }, - "hashes": [ - { - "value": "DAD93F85BFF7FD50C365E9F6588B3B02", - "algorithm": "md5" - }, - { - "value": "46735D446A156A1A96251C6759932E5C0662E5BC", - "algorithm": "sha-1" - }, + "locations": [ { - "value": "33168551F6E4C147517F367BB50DC013AC5016F270659134397941DF58B6B3D7", - "algorithm": "sha-256" + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Microsoft.Json.Schema.dll", + "uriBaseId": "$(ProjectDir)", + "index": 1 + } + }, + "logicalLocations": [ + { + "index": 36, + "fullyQualifiedName": "microsoft.json.schema.dll!Microsoft.Json.Schema.Dependency..ctor(Microsoft.Json.Schema.Dependency)" + } + ] } - ] + ], + "partialFingerprints": { + "UniqueId": "0" + }, + "properties": { + "Category": "Microsoft.Design", + "FixCategory": "DependsOnFix" + } }, - "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/GraphTraversal.cs": { - "mimeType": "text/x-csharp", - "contents": { - "binary": "Ly8gQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQuICBBbGwgUmlnaHRzIFJlc2VydmVkLg0KLy8gTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlLiBTZWUgTElDRU5TRSBmaWxlIGluIHRoZSBwcm9qZWN0IHJvb3QgZm9yIGZ1bGwgbGljZW5zZSBpbmZvcm1hdGlvbi4NCg0KdXNpbmcgU3lzdGVtOw0KdXNpbmcgU3lzdGVtLkNvZGVEb20uQ29tcGlsZXI7DQp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsNCnVzaW5nIFN5c3RlbS5SdW50aW1lLlNlcmlhbGl6YXRpb247DQp1c2luZyBNaWNyb3NvZnQuQ29kZUFuYWx5c2lzLlNhcmlmLlJlYWRlcnM7DQoNCm5hbWVzcGFjZSBNaWNyb3NvZnQuQ29kZUFuYWx5c2lzLlNhcmlmDQp7DQogICAgLy8vIDxzdW1tYXJ5Pg0KICAgIC8vLyBSZXByZXNlbnRzIGEgcGF0aCB0aHJvdWdoIGEgZ3JhcGguDQogICAgLy8vIDwvc3VtbWFyeT4NCiAgICBbRGF0YUNvbnRyYWN0XQ0KICAgIFtHZW5lcmF0ZWRDb2RlKCJNaWNyb3NvZnQuSnNvbi5TY2hlbWEuVG9Eb3ROZXQiLCAiMC41Ni4wLjAiKV0NCiAgICBwdWJsaWMgcGFydGlhbCBjbGFzcyBHcmFwaFRyYXZlcnNhbCA6IFByb3BlcnR5QmFnSG9sZGVyLCBJU2FyaWZOb2RlDQogICAgew0KICAgICAgICBwdWJsaWMgc3RhdGljIElFcXVhbGl0eUNvbXBhcmVyPEdyYXBoVHJhdmVyc2FsPiBWYWx1ZUNvbXBhcmVyID0+IEdyYXBoVHJhdmVyc2FsRXF1YWxpdHlDb21wYXJlci5JbnN0YW5jZTsNCg0KICAgICAgICBwdWJsaWMgYm9vbCBWYWx1ZUVxdWFscyhHcmFwaFRyYXZlcnNhbCBvdGhlcikgPT4gVmFsdWVDb21wYXJlci5FcXVhbHModGhpcywgb3RoZXIpOw0KICAgICAgICBwdWJsaWMgaW50IFZhbHVlR2V0SGFzaENvZGUoKSA9PiBWYWx1ZUNvbXBhcmVyLkdldEhhc2hDb2RlKHRoaXMpOw0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIEdldHMgYSB2YWx1ZSBpbmRpY2F0aW5nIHRoZSB0eXBlIG9mIG9iamVjdCBpbXBsZW1lbnRpbmcgPHNlZSBjcmVmPSJJU2FyaWZOb2RlIiAvPi4NCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgcHVibGljIFNhcmlmTm9kZUtpbmQgU2FyaWZOb2RlS2luZA0KICAgICAgICB7DQogICAgICAgICAgICBnZXQNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gU2FyaWZOb2RlS2luZC5HcmFwaFRyYXZlcnNhbDsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIEEgc3RyaW5nIHRoYXQgdW5pcXVlbHkgaWRlbnRpZmllcyB0aGF0IGdyYXBoIGJlaW5nIHRyYXZlcnNlZC4NCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgW0RhdGFNZW1iZXIoTmFtZSA9ICJncmFwaElkIiwgSXNSZXF1aXJlZCA9IHRydWUpXQ0KICAgICAgICBwdWJsaWMgc3RyaW5nIEdyYXBoSWQgeyBnZXQ7IHNldDsgfQ0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIEEgZGVzY3JpcHRpb24gb2YgdGhpcyBncmFwaCB0cmF2ZXJzYWwuDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIFtEYXRhTWVtYmVyKE5hbWUgPSAiZGVzY3JpcHRpb24iLCBJc1JlcXVpcmVkID0gZmFsc2UsIEVtaXREZWZhdWx0VmFsdWUgPSBmYWxzZSldDQogICAgICAgIHB1YmxpYyBNZXNzYWdlIERlc2NyaXB0aW9uIHsgZ2V0OyBzZXQ7IH0NCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBWYWx1ZXMgb2YgcmVsZXZhbnQgZXhwcmVzc2lvbnMgYXQgdGhlIHN0YXJ0IG9mIHRoZSBncmFwaCB0cmF2ZXJzYWwuDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIFtEYXRhTWVtYmVyKE5hbWUgPSAiaW5pdGlhbFN0YXRlIiwgSXNSZXF1aXJlZCA9IGZhbHNlLCBFbWl0RGVmYXVsdFZhbHVlID0gZmFsc2UpXQ0KICAgICAgICBwdWJsaWMgSURpY3Rpb25hcnk8c3RyaW5nLCBzdHJpbmc+IEluaXRpYWxTdGF0ZSB7IGdldDsgc2V0OyB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gVGhlIHNlcXVlbmNlcyBvZiBlZGdlcyB0cmF2ZXJzZWQgYnkgdGhpcyBncmFwaCB0cmF2ZXJzYWwuDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIFtEYXRhTWVtYmVyKE5hbWUgPSAiZWRnZVRyYXZlcnNhbHMiLCBJc1JlcXVpcmVkID0gdHJ1ZSldDQogICAgICAgIHB1YmxpYyBJTGlzdDxFZGdlVHJhdmVyc2FsPiBFZGdlVHJhdmVyc2FscyB7IGdldDsgc2V0OyB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gS2V5L3ZhbHVlIHBhaXJzIHRoYXQgcHJvdmlkZSBhZGRpdGlvbmFsIGluZm9ybWF0aW9uIGFib3V0IHRoZSBncmFwaCB0cmF2ZXJzYWwuDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIFtEYXRhTWVtYmVyKE5hbWUgPSAicHJvcGVydGllcyIsIElzUmVxdWlyZWQgPSBmYWxzZSwgRW1pdERlZmF1bHRWYWx1ZSA9IGZhbHNlKV0NCiAgICAgICAgaW50ZXJuYWwgb3ZlcnJpZGUgSURpY3Rpb25hcnk8c3RyaW5nLCBTZXJpYWxpemVkUHJvcGVydHlJbmZvPiBQcm9wZXJ0aWVzIHsgZ2V0OyBzZXQ7IH0NCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBJbml0aWFsaXplcyBhIG5ldyBpbnN0YW5jZSBvZiB0aGUgPHNlZSBjcmVmPSJHcmFwaFRyYXZlcnNhbCIgLz4gY2xhc3MuDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIHB1YmxpYyBHcmFwaFRyYXZlcnNhbCgpDQogICAgICAgIHsNCiAgICAgICAgfQ0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIEluaXRpYWxpemVzIGEgbmV3IGluc3RhbmNlIG9mIHRoZSA8c2VlIGNyZWY9IkdyYXBoVHJhdmVyc2FsIiAvPiBjbGFzcyBmcm9tIHRoZSBzdXBwbGllZCB2YWx1ZXMuDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIC8vLyA8cGFyYW0gbmFtZT0iZ3JhcGhJZCI+DQogICAgICAgIC8vLyBBbiBpbml0aWFsaXphdGlvbiB2YWx1ZSBmb3IgdGhlIDxzZWUgY3JlZj0iUDogR3JhcGhJZCIgLz4gcHJvcGVydHkuDQogICAgICAgIC8vLyA8L3BhcmFtPg0KICAgICAgICAvLy8gPHBhcmFtIG5hbWU9ImRlc2NyaXB0aW9uIj4NCiAgICAgICAgLy8vIEFuIGluaXRpYWxpemF0aW9uIHZhbHVlIGZvciB0aGUgPHNlZSBjcmVmPSJQOiBEZXNjcmlwdGlvbiIgLz4gcHJvcGVydHkuDQogICAgICAgIC8vLyA8L3BhcmFtPg0KICAgICAgICAvLy8gPHBhcmFtIG5hbWU9ImluaXRpYWxTdGF0ZSI+DQogICAgICAgIC8vLyBBbiBpbml0aWFsaXphdGlvbiB2YWx1ZSBmb3IgdGhlIDxzZWUgY3JlZj0iUDogSW5pdGlhbFN0YXRlIiAvPiBwcm9wZXJ0eS4NCiAgICAgICAgLy8vIDwvcGFyYW0+DQogICAgICAgIC8vLyA8cGFyYW0gbmFtZT0iZWRnZVRyYXZlcnNhbHMiPg0KICAgICAgICAvLy8gQW4gaW5pdGlhbGl6YXRpb24gdmFsdWUgZm9yIHRoZSA8c2VlIGNyZWY9IlA6IEVkZ2VUcmF2ZXJzYWxzIiAvPiBwcm9wZXJ0eS4NCiAgICAgICAgLy8vIDwvcGFyYW0+DQogICAgICAgIC8vLyA8cGFyYW0gbmFtZT0icHJvcGVydGllcyI+DQogICAgICAgIC8vLyBBbiBpbml0aWFsaXphdGlvbiB2YWx1ZSBmb3IgdGhlIDxzZWUgY3JlZj0iUDogUHJvcGVydGllcyIgLz4gcHJvcGVydHkuDQogICAgICAgIC8vLyA8L3BhcmFtPg0KICAgICAgICBwdWJsaWMgR3JhcGhUcmF2ZXJzYWwoc3RyaW5nIGdyYXBoSWQsIE1lc3NhZ2UgZGVzY3JpcHRpb24sIElEaWN0aW9uYXJ5PHN0cmluZywgc3RyaW5nPiBpbml0aWFsU3RhdGUsIElFbnVtZXJhYmxlPEVkZ2VUcmF2ZXJzYWw+IGVkZ2VUcmF2ZXJzYWxzLCBJRGljdGlvbmFyeTxzdHJpbmcsIFNlcmlhbGl6ZWRQcm9wZXJ0eUluZm8+IHByb3BlcnRpZXMpDQogICAgICAgIHsNCiAgICAgICAgICAgIEluaXQoZ3JhcGhJZCwgZGVzY3JpcHRpb24sIGluaXRpYWxTdGF0ZSwgZWRnZVRyYXZlcnNhbHMsIHByb3BlcnRpZXMpOw0KICAgICAgICB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gSW5pdGlhbGl6ZXMgYSBuZXcgaW5zdGFuY2Ugb2YgdGhlIDxzZWUgY3JlZj0iR3JhcGhUcmF2ZXJzYWwiIC8+IGNsYXNzIGZyb20gdGhlIHNwZWNpZmllZCBpbnN0YW5jZS4NCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgLy8vIDxwYXJhbSBuYW1lPSJvdGhlciI+DQogICAgICAgIC8vLyBUaGUgaW5zdGFuY2UgZnJvbSB3aGljaCB0aGUgbmV3IGluc3RhbmNlIGlzIHRvIGJlIGluaXRpYWxpemVkLg0KICAgICAgICAvLy8gPC9wYXJhbT4NCiAgICAgICAgLy8vIDxleGNlcHRpb24gY3JlZj0iQXJndW1lbnROdWxsRXhjZXB0aW9uIj4NCiAgICAgICAgLy8vIFRocm93biBpZiA8cGFyYW1yZWYgbmFtZT0ib3RoZXIiIC8+IGlzIG51bGwuDQogICAgICAgIC8vLyA8L2V4Y2VwdGlvbj4NCiAgICAgICAgcHVibGljIEdyYXBoVHJhdmVyc2FsKEdyYXBoVHJhdmVyc2FsIG90aGVyKQ0KICAgICAgICB7DQogICAgICAgICAgICBpZiAob3RoZXIgPT0gbnVsbCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgQXJndW1lbnROdWxsRXhjZXB0aW9uKG5hbWVvZihvdGhlcikpOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBJbml0KG90aGVyLkdyYXBoSWQsIG90aGVyLkRlc2NyaXB0aW9uLCBvdGhlci5Jbml0aWFsU3RhdGUsIG90aGVyLkVkZ2VUcmF2ZXJzYWxzLCBvdGhlci5Qcm9wZXJ0aWVzKTsNCiAgICAgICAgfQ0KDQogICAgICAgIElTYXJpZk5vZGUgSVNhcmlmTm9kZS5EZWVwQ2xvbmUoKQ0KICAgICAgICB7DQogICAgICAgICAgICByZXR1cm4gRGVlcENsb25lQ29yZSgpOw0KICAgICAgICB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gQ3JlYXRlcyBhIGRlZXAgY29weSBvZiB0aGlzIGluc3RhbmNlLg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICBwdWJsaWMgR3JhcGhUcmF2ZXJzYWwgRGVlcENsb25lKCkNCiAgICAgICAgew0KICAgICAgICAgICAgcmV0dXJuIChHcmFwaFRyYXZlcnNhbClEZWVwQ2xvbmVDb3JlKCk7DQogICAgICAgIH0NCg0KICAgICAgICBwcml2YXRlIElTYXJpZk5vZGUgRGVlcENsb25lQ29yZSgpDQogICAgICAgIHsNCiAgICAgICAgICAgIHJldHVybiBuZXcgR3JhcGhUcmF2ZXJzYWwodGhpcyk7DQogICAgICAgIH0NCg0KICAgICAgICBwcml2YXRlIHZvaWQgSW5pdChzdHJpbmcgZ3JhcGhJZCwgTWVzc2FnZSBkZXNjcmlwdGlvbiwgSURpY3Rpb25hcnk8c3RyaW5nLCBzdHJpbmc+IGluaXRpYWxTdGF0ZSwgSUVudW1lcmFibGU8RWRnZVRyYXZlcnNhbD4gZWRnZVRyYXZlcnNhbHMsIElEaWN0aW9uYXJ5PHN0cmluZywgU2VyaWFsaXplZFByb3BlcnR5SW5mbz4gcHJvcGVydGllcykNCiAgICAgICAgew0KICAgICAgICAgICAgR3JhcGhJZCA9IGdyYXBoSWQ7DQogICAgICAgICAgICBpZiAoZGVzY3JpcHRpb24gIT0gbnVsbCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBEZXNjcmlwdGlvbiA9IG5ldyBNZXNzYWdlKGRlc2NyaXB0aW9uKTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgaWYgKGluaXRpYWxTdGF0ZSAhPSBudWxsKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIEluaXRpYWxTdGF0ZSA9IG5ldyBEaWN0aW9uYXJ5PHN0cmluZywgc3RyaW5nPihpbml0aWFsU3RhdGUpOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBpZiAoZWRnZVRyYXZlcnNhbHMgIT0gbnVsbCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICB2YXIgZGVzdGluYXRpb25fMCA9IG5ldyBMaXN0PEVkZ2VUcmF2ZXJzYWw+KCk7DQogICAgICAgICAgICAgICAgZm9yZWFjaCAodmFyIHZhbHVlXzAgaW4gZWRnZVRyYXZlcnNhbHMpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWVfMCA9PSBudWxsKQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICBkZXN0aW5hdGlvbl8wLkFkZChudWxsKTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBlbHNlDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGRlc3RpbmF0aW9uXzAuQWRkKG5ldyBFZGdlVHJhdmVyc2FsKHZhbHVlXzApKTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgIEVkZ2VUcmF2ZXJzYWxzID0gZGVzdGluYXRpb25fMDsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgaWYgKHByb3BlcnRpZXMgIT0gbnVsbCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBQcm9wZXJ0aWVzID0gbmV3IERpY3Rpb25hcnk8c3RyaW5nLCBTZXJpYWxpemVkUHJvcGVydHlJbmZvPihwcm9wZXJ0aWVzKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgIH0NCn0=" + { + "ruleId": "CA1002", + "level": "error", + "message": { + "text": "Change 'List' in 'Dependency.PropertyDependencies' to use Collection, ReadOnlyCollection or KeyedCollection" }, - "hashes": [ - { - "value": "1A8F58A3C41689D3C9FA97EDF43D0605", - "algorithm": "md5" - }, - { - "value": "4D6B1633A9FEC1EC85CCE950F1FF0582D23A961E", - "algorithm": "sha-1" - }, + "locations": [ { - "value": "90B96FBC44AAED062F8BEDBB915976DC160A83E8301E0A9DC4E582A29AD94F27", - "algorithm": "sha-256" + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Microsoft.Json.Schema.dll", + "uriBaseId": "$(ProjectDir)", + "index": 1 + } + }, + "logicalLocations": [ + { + "index": 37, + "fullyQualifiedName": "microsoft.json.schema.dll!Microsoft.Json.Schema.Dependency.PropertyDependencies" + } + ] } - ] + ], + "properties": { + "Category": "Microsoft.Design", + "FixCategory": "Breaking" + } }, - "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/GraphTraversalEqualityComparer.cs": { - "mimeType": "text/x-csharp", - "contents": { - "binary": "Ly8gQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQuICBBbGwgUmlnaHRzIFJlc2VydmVkLg0KLy8gTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlLiBTZWUgTElDRU5TRSBmaWxlIGluIHRoZSBwcm9qZWN0IHJvb3QgZm9yIGZ1bGwgbGljZW5zZSBpbmZvcm1hdGlvbi4NCg0KdXNpbmcgU3lzdGVtOw0KdXNpbmcgU3lzdGVtLkNvZGVEb20uQ29tcGlsZXI7DQp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsNCnVzaW5nIE1pY3Jvc29mdC5Db2RlQW5hbHlzaXMuU2FyaWYuUmVhZGVyczsNCg0KbmFtZXNwYWNlIE1pY3Jvc29mdC5Db2RlQW5hbHlzaXMuU2FyaWYNCnsNCiAgICAvLy8gPHN1bW1hcnk+DQogICAgLy8vIERlZmluZXMgbWV0aG9kcyB0byBzdXBwb3J0IHRoZSBjb21wYXJpc29uIG9mIG9iamVjdHMgb2YgdHlwZSBHcmFwaFRyYXZlcnNhbCBmb3IgZXF1YWxpdHkuDQogICAgLy8vIDwvc3VtbWFyeT4NCiAgICBbR2VuZXJhdGVkQ29kZSgiTWljcm9zb2Z0Lkpzb24uU2NoZW1hLlRvRG90TmV0IiwgIjAuNTYuMC4wIildDQogICAgaW50ZXJuYWwgc2VhbGVkIGNsYXNzIEdyYXBoVHJhdmVyc2FsRXF1YWxpdHlDb21wYXJlciA6IElFcXVhbGl0eUNvbXBhcmVyPEdyYXBoVHJhdmVyc2FsPg0KICAgIHsNCiAgICAgICAgaW50ZXJuYWwgc3RhdGljIHJlYWRvbmx5IEdyYXBoVHJhdmVyc2FsRXF1YWxpdHlDb21wYXJlciBJbnN0YW5jZSA9IG5ldyBHcmFwaFRyYXZlcnNhbEVxdWFsaXR5Q29tcGFyZXIoKTsNCg0KICAgICAgICBwdWJsaWMgYm9vbCBFcXVhbHMoR3JhcGhUcmF2ZXJzYWwgbGVmdCwgR3JhcGhUcmF2ZXJzYWwgcmlnaHQpDQogICAgICAgIHsNCiAgICAgICAgICAgIGlmIChSZWZlcmVuY2VFcXVhbHMobGVmdCwgcmlnaHQpKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBpZiAoUmVmZXJlbmNlRXF1YWxzKGxlZnQsIG51bGwpIHx8IFJlZmVyZW5jZUVxdWFscyhyaWdodCwgbnVsbCkpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBpZiAobGVmdC5HcmFwaElkICE9IHJpZ2h0LkdyYXBoSWQpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBpZiAoIU1lc3NhZ2UuVmFsdWVDb21wYXJlci5FcXVhbHMobGVmdC5EZXNjcmlwdGlvbiwgcmlnaHQuRGVzY3JpcHRpb24pKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgaWYgKCFvYmplY3QuUmVmZXJlbmNlRXF1YWxzKGxlZnQuSW5pdGlhbFN0YXRlLCByaWdodC5Jbml0aWFsU3RhdGUpKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIGlmIChsZWZ0LkluaXRpYWxTdGF0ZSA9PSBudWxsIHx8IHJpZ2h0LkluaXRpYWxTdGF0ZSA9PSBudWxsIHx8IGxlZnQuSW5pdGlhbFN0YXRlLkNvdW50ICE9IHJpZ2h0LkluaXRpYWxTdGF0ZS5Db3VudCkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICBmb3JlYWNoICh2YXIgdmFsdWVfMCBpbiBsZWZ0LkluaXRpYWxTdGF0ZSkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIHN0cmluZyB2YWx1ZV8xOw0KICAgICAgICAgICAgICAgICAgICBpZiAoIXJpZ2h0LkluaXRpYWxTdGF0ZS5UcnlHZXRWYWx1ZSh2YWx1ZV8wLktleSwgb3V0IHZhbHVlXzEpKQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWVfMC5WYWx1ZSAhPSB2YWx1ZV8xKQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIGlmICghb2JqZWN0LlJlZmVyZW5jZUVxdWFscyhsZWZ0LkVkZ2VUcmF2ZXJzYWxzLCByaWdodC5FZGdlVHJhdmVyc2FscykpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgaWYgKGxlZnQuRWRnZVRyYXZlcnNhbHMgPT0gbnVsbCB8fCByaWdodC5FZGdlVHJhdmVyc2FscyA9PSBudWxsKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgIGlmIChsZWZ0LkVkZ2VUcmF2ZXJzYWxzLkNvdW50ICE9IHJpZ2h0LkVkZ2VUcmF2ZXJzYWxzLkNvdW50KQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgIGZvciAoaW50IGluZGV4XzAgPSAwOyBpbmRleF8wIDwgbGVmdC5FZGdlVHJhdmVyc2Fscy5Db3VudDsgKytpbmRleF8wKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgaWYgKCFFZGdlVHJhdmVyc2FsLlZhbHVlQ29tcGFyZXIuRXF1YWxzKGxlZnQuRWRnZVRyYXZlcnNhbHNbaW5kZXhfMF0sIHJpZ2h0LkVkZ2VUcmF2ZXJzYWxzW2luZGV4XzBdKSkNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBpZiAoIW9iamVjdC5SZWZlcmVuY2VFcXVhbHMobGVmdC5Qcm9wZXJ0aWVzLCByaWdodC5Qcm9wZXJ0aWVzKSkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBpZiAobGVmdC5Qcm9wZXJ0aWVzID09IG51bGwgfHwgcmlnaHQuUHJvcGVydGllcyA9PSBudWxsIHx8IGxlZnQuUHJvcGVydGllcy5Db3VudCAhPSByaWdodC5Qcm9wZXJ0aWVzLkNvdW50KQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgIGZvcmVhY2ggKHZhciB2YWx1ZV8yIGluIGxlZnQuUHJvcGVydGllcykNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIFNlcmlhbGl6ZWRQcm9wZXJ0eUluZm8gdmFsdWVfMzsNCiAgICAgICAgICAgICAgICAgICAgaWYgKCFyaWdodC5Qcm9wZXJ0aWVzLlRyeUdldFZhbHVlKHZhbHVlXzIuS2V5LCBvdXQgdmFsdWVfMykpDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgICAgIGlmICghb2JqZWN0LkVxdWFscyh2YWx1ZV8yLlZhbHVlLCB2YWx1ZV8zKSkNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICByZXR1cm4gdHJ1ZTsNCiAgICAgICAgfQ0KDQogICAgICAgIHB1YmxpYyBpbnQgR2V0SGFzaENvZGUoR3JhcGhUcmF2ZXJzYWwgb2JqKQ0KICAgICAgICB7DQogICAgICAgICAgICBpZiAoUmVmZXJlbmNlRXF1YWxzKG9iaiwgbnVsbCkpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgcmV0dXJuIDA7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIGludCByZXN1bHQgPSAxNzsNCiAgICAgICAgICAgIHVuY2hlY2tlZA0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIGlmIChvYmouR3JhcGhJZCAhPSBudWxsKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gKHJlc3VsdCAqIDMxKSArIG9iai5HcmFwaElkLkdldEhhc2hDb2RlKCk7DQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgaWYgKG9iai5EZXNjcmlwdGlvbiAhPSBudWxsKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gKHJlc3VsdCAqIDMxKSArIG9iai5EZXNjcmlwdGlvbi5WYWx1ZUdldEhhc2hDb2RlKCk7DQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgaWYgKG9iai5Jbml0aWFsU3RhdGUgIT0gbnVsbCkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIC8vIFVzZSB4b3IgZm9yIGRpY3Rpb25hcmllcyB0byBiZSBvcmRlci1pbmRlcGVuZGVudC4NCiAgICAgICAgICAgICAgICAgICAgaW50IHhvcl8wID0gMDsNCiAgICAgICAgICAgICAgICAgICAgZm9yZWFjaCAodmFyIHZhbHVlXzQgaW4gb2JqLkluaXRpYWxTdGF0ZSkNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgeG9yXzAgXj0gdmFsdWVfNC5LZXkuR2V0SGFzaENvZGUoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZV80LlZhbHVlICE9IG51bGwpDQogICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgeG9yXzAgXj0gdmFsdWVfNC5WYWx1ZS5HZXRIYXNoQ29kZSgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gKHJlc3VsdCAqIDMxKSArIHhvcl8wOw0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgIGlmIChvYmouRWRnZVRyYXZlcnNhbHMgIT0gbnVsbCkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIGZvcmVhY2ggKHZhciB2YWx1ZV81IGluIG9iai5FZGdlVHJhdmVyc2FscykNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gcmVzdWx0ICogMzE7DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWVfNSAhPSBudWxsKQ0KICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IChyZXN1bHQgKiAzMSkgKyB2YWx1ZV81LlZhbHVlR2V0SGFzaENvZGUoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgIGlmIChvYmouUHJvcGVydGllcyAhPSBudWxsKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgLy8gVXNlIHhvciBmb3IgZGljdGlvbmFyaWVzIHRvIGJlIG9yZGVyLWluZGVwZW5kZW50Lg0KICAgICAgICAgICAgICAgICAgICBpbnQgeG9yXzEgPSAwOw0KICAgICAgICAgICAgICAgICAgICBmb3JlYWNoICh2YXIgdmFsdWVfNiBpbiBvYmouUHJvcGVydGllcykNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgeG9yXzEgXj0gdmFsdWVfNi5LZXkuR2V0SGFzaENvZGUoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZV82LlZhbHVlICE9IG51bGwpDQogICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgeG9yXzEgXj0gdmFsdWVfNi5WYWx1ZS5HZXRIYXNoQ29kZSgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gKHJlc3VsdCAqIDMxKSArIHhvcl8xOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsNCiAgICAgICAgfQ0KICAgIH0NCn0=" + { + "ruleId": "CA1062", + "message": { + "text": "In externally visible method 'DependencyConverter.WriteJson(JsonWriter, object, JsonSerializer)', validate parameter 'writer' before using it." }, - "hashes": [ - { - "value": "1F97D4CAB80D4FD51268CD0EAA519716", - "algorithm": "md5" - }, - { - "value": "6B4E8C65424B839DC7447ACBCE9EDB2C0F9B9381", - "algorithm": "sha-1" - }, + "locations": [ { - "value": "174B9FB99C831201C3FE9DCE518246B0B269F90108334291B14820EE7CBC1E76", - "algorithm": "sha-256" + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Microsoft.Json.Schema.dll", + "uriBaseId": "$(ProjectDir)", + "index": 1 + } + }, + "logicalLocations": [ + { + "index": 39, + "fullyQualifiedName": "microsoft.json.schema.dll!Microsoft.Json.Schema.DependencyConverter.WriteJson(Newtonsoft.Json.JsonWriter,System.Object,Newtonsoft.Json.JsonSerializer)" + } + ] } - ] + ], + "partialFingerprints": { + "UniqueId": "0" + }, + "properties": { + "Category": "Microsoft.Design", + "FixCategory": "DependsOnFix" + } }, - "file:///E:/src/sarif-sdk-test/src/Sarif/HashData.cs": { - "mimeType": "text/x-csharp", - "contents": { - "binary": "Ly8gQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuDQovLyBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UuIFNlZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHByb2plY3Qgcm9vdCBmb3IgZnVsbCBsaWNlbnNlIGluZm9ybWF0aW9uLg0KDQpuYW1lc3BhY2UgTWljcm9zb2Z0LkNvZGVBbmFseXNpcy5TYXJpZg0Kew0KICAgIHB1YmxpYyBjbGFzcyBIYXNoRGF0YQ0KICAgIHsNCiAgICAgICAgcHVibGljIEhhc2hEYXRhKHN0cmluZyBtZDUsIHN0cmluZyBzaGExLCBzdHJpbmcgc2hhMjU2KQ0KICAgICAgICB7DQogICAgICAgICAgICBNRDUgPSBtZDU7DQogICAgICAgICAgICBTaGExID0gc2hhMTsNCiAgICAgICAgICAgIFNoYTI1NiA9IHNoYTI1NjsNCiAgICAgICAgfQ0KDQogICAgICAgIHB1YmxpYyBzdHJpbmcgTUQ1IHsgZ2V0OyB9DQoNCiAgICAgICAgcHVibGljIHN0cmluZyBTaGExIHsgZ2V0OyB9DQoNCiAgICAgICAgcHVibGljIHN0cmluZyBTaGEyNTYgeyBnZXQ7IH0NCg0KICAgIH0NCn0NCg==" + { + "ruleId": "CA1716", + "level": "error", + "message": { + "text": "Rename type 'Error' so that it no longer conflicts with the reserved language keyword 'Error'. Using a reserved keyword as the name of a type makes it harder for consumers in other languages to use the type.", + "id": "Type" }, - "hashes": [ - { - "value": "8AE9735908187B129F32D064E180FDEC", - "algorithm": "md5" - }, - { - "value": "B138469380253478B851532B25383CF48AC8F5EE", - "algorithm": "sha-1" - }, + "locations": [ { - "value": "4111A595C3044B7C6415250D61BEB7B173D4456FF0D6706D44E291E60D80C4FB", - "algorithm": "sha-256" + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Microsoft.Json.Schema.dll", + "uriBaseId": "$(ProjectDir)", + "index": 1 + } + }, + "logicalLocations": [ + { + "index": 40, + "fullyQualifiedName": "microsoft.json.schema.dll!Microsoft.Json.Schema.Error" + } + ] } - ] + ], + "partialFingerprints": { + "UniqueId": "Error#Type" + }, + "properties": { + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" + } }, - "file:///E:/src/sarif-sdk-test/src/Sarif/HashUtilities.cs": { - "mimeType": "text/x-csharp", - "contents": { - "binary": "77u/Ly8gQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuDQovLyBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UuIFNlZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHByb2plY3Qgcm9vdCBmb3IgZnVsbCBsaWNlbnNlIGluZm9ybWF0aW9uLg0KDQp1c2luZyBTeXN0ZW07DQp1c2luZyBTeXN0ZW0uRGlhZ25vc3RpY3MuQ29kZUFuYWx5c2lzOw0KdXNpbmcgU3lzdGVtLklPOw0KdXNpbmcgU3lzdGVtLlNlY3VyaXR5LkNyeXB0b2dyYXBoeTsNCg0KbmFtZXNwYWNlIE1pY3Jvc29mdC5Db2RlQW5hbHlzaXMuU2FyaWYNCnsNCiAgICBwdWJsaWMgc3RhdGljIGNsYXNzIEhhc2hVdGlsaXRpZXMNCiAgICB7DQogICAgICAgIFtTdXBwcmVzc01lc3NhZ2UoIk1pY3Jvc29mdC5TZWN1cml0eS5DcnlwdG9ncmFwaHkiLCAiQ0E1MzU0OlNIQTFDYW5ub3RCZVVzZWQiKV0NCiAgICAgICAgW1N1cHByZXNzTWVzc2FnZSgiTWljcm9zb2Z0LlNlY3VyaXR5LkNyeXB0b2dyYXBoeSIsICJDQTUzNTA6TUQ1Q2Fubm90QmVVc2VkIildDQogICAgICAgIHB1YmxpYyBzdGF0aWMgSGFzaERhdGEgQ29tcHV0ZUhhc2hlcyhzdHJpbmcgZmlsZU5hbWUpDQogICAgICAgIHsNCiAgICAgICAgICAgIHRyeQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHVzaW5nIChGaWxlU3RyZWFtIHN0cmVhbSA9IEZpbGUuT3BlblJlYWQoZmlsZU5hbWUpKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgdXNpbmcgKHZhciBidWZmZXJlZFN0cmVhbSA9IG5ldyBCdWZmZXJlZFN0cmVhbShzdHJlYW0sIDEwMjQgKiAzMikpDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHN0cmluZyBtZDUsIHNoYTEsIHNoYTI1NjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJ5dGVbXSBjaGVja3N1bTsNCg0KICAgICAgICAgICAgICAgICAgICAgICAgdXNpbmcgKHZhciBtZDVDbmcgPSBNRDUuQ3JlYXRlKCkpDQogICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2tzdW0gPSBtZDVDbmcuQ29tcHV0ZUhhc2goYnVmZmVyZWRTdHJlYW0pOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1kNSA9IEJpdENvbnZlcnRlci5Ub1N0cmluZyhjaGVja3N1bSkuUmVwbGFjZSgiLSIsIHN0cmluZy5FbXB0eSk7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAgICAgICAgIHN0cmVhbS5TZWVrKDAsIFNlZWtPcmlnaW4uQmVnaW4pOw0KICAgICAgICAgICAgICAgICAgICAgICAgYnVmZmVyZWRTdHJlYW0uU2VlaygwLCBTZWVrT3JpZ2luLkJlZ2luKTsNCg0KICAgICAgICAgICAgICAgICAgICAgICAgdXNpbmcgKHZhciBzaGExQ25nID0gU0hBMS5DcmVhdGUoKSkNCiAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGVja3N1bSA9IHNoYTFDbmcuQ29tcHV0ZUhhc2goYnVmZmVyZWRTdHJlYW0pOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNoYTEgPSBCaXRDb252ZXJ0ZXIuVG9TdHJpbmcoY2hlY2tzdW0pLlJlcGxhY2UoIi0iLCBzdHJpbmcuRW1wdHkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgICAgICAgICBzdHJlYW0uU2VlaygwLCBTZWVrT3JpZ2luLkJlZ2luKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlcmVkU3RyZWFtLlNlZWsoMCwgU2Vla09yaWdpbi5CZWdpbik7DQoNCiAgICAgICAgICAgICAgICAgICAgICAgIHVzaW5nICh2YXIgc2hhMjU2Q25nID0gU0hBMjU2LkNyZWF0ZSgpKQ0KICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrc3VtID0gc2hhMjU2Q25nLkNvbXB1dGVIYXNoKGJ1ZmZlcmVkU3RyZWFtKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaGEyNTYgPSBCaXRDb252ZXJ0ZXIuVG9TdHJpbmcoY2hlY2tzdW0pLlJlcGxhY2UoIi0iLCBzdHJpbmcuRW1wdHkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV3IEhhc2hEYXRhKG1kNSwgc2hhMSwgc2hhMjU2KTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGNhdGNoIChJT0V4Y2VwdGlvbikgeyB9DQogICAgICAgICAgICBjYXRjaCAoVW5hdXRob3JpemVkQWNjZXNzRXhjZXB0aW9uKSB7IH0NCiAgICAgICAgICAgIHJldHVybiBudWxsOw0KICAgICAgICB9DQoNCiAgICAgICAgcHVibGljIHN0YXRpYyBzdHJpbmcgQ29tcHV0ZVNoYTI1Nkhhc2goc3RyaW5nIGZpbGVOYW1lKQ0KICAgICAgICB7DQogICAgICAgICAgICBzdHJpbmcgc2hhMjU2SGFzaCA9IG51bGw7DQoNCiAgICAgICAgICAgIHRyeQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHVzaW5nIChGaWxlU3RyZWFtIHN0cmVhbSA9IEZpbGUuT3BlblJlYWQoZmlsZU5hbWUpKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgdXNpbmcgKHZhciBidWZmZXJlZFN0cmVhbSA9IG5ldyBCdWZmZXJlZFN0cmVhbShzdHJlYW0sIDEwMjQgKiAzMikpDQogICAgICAgICAgICAgICAgICAgIHsNCg0KICAgICAgICAgICAgICAgICAgICAgICAgdXNpbmcgKHZhciBzaGEgPSBTSEEyNTYuQ3JlYXRlKCkpDQogICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgYnl0ZVtdIGNoZWNrc3VtID0gc2hhLkNvbXB1dGVIYXNoKGJ1ZmZlcmVkU3RyZWFtKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaGEyNTZIYXNoID0gQml0Q29udmVydGVyLlRvU3RyaW5nKGNoZWNrc3VtKS5SZXBsYWNlKCItIiwgc3RyaW5nLkVtcHR5KTsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGNhdGNoIChJT0V4Y2VwdGlvbikgeyB9DQogICAgICAgICAgICBjYXRjaCAoVW5hdXRob3JpemVkQWNjZXNzRXhjZXB0aW9uKSB7IH0NCiAgICAgICAgICAgIHJldHVybiBzaGEyNTZIYXNoOw0KICAgICAgICB9DQoNCiAgICAgICAgW1N1cHByZXNzTWVzc2FnZSgiTWljcm9zb2Z0LlNlY3VyaXR5LkNyeXB0b2dyYXBoeSIsICJDQTUzNTQ6U0hBMUNhbm5vdEJlVXNlZCIpXQ0KICAgICAgICBwdWJsaWMgc3RhdGljIHN0cmluZyBDb21wdXRlU2hhMUhhc2goc3RyaW5nIGZpbGVOYW1lKQ0KICAgICAgICB7DQogICAgICAgICAgICBzdHJpbmcgc2hhMSA9IG51bGw7DQoNCiAgICAgICAgICAgIHRyeQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHVzaW5nIChGaWxlU3RyZWFtIHN0cmVhbSA9IEZpbGUuT3BlblJlYWQoZmlsZU5hbWUpKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgdXNpbmcgKHZhciBidWZmZXJlZFN0cmVhbSA9IG5ldyBCdWZmZXJlZFN0cmVhbShzdHJlYW0sIDEwMjQgKiAzMikpDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHVzaW5nICh2YXIgc2hhID0gU0hBMS5DcmVhdGUoKSkNCiAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBieXRlW10gY2hlY2tzdW0gPSBzaGEuQ29tcHV0ZUhhc2goYnVmZmVyZWRTdHJlYW0pOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNoYTEgPSBCaXRDb252ZXJ0ZXIuVG9TdHJpbmcoY2hlY2tzdW0pLlJlcGxhY2UoIi0iLCBzdHJpbmcuRW1wdHkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgY2F0Y2ggKElPRXhjZXB0aW9uKSB7IH0NCiAgICAgICAgICAgIGNhdGNoIChVbmF1dGhvcml6ZWRBY2Nlc3NFeGNlcHRpb24pIHsgfQ0KICAgICAgICAgICAgcmV0dXJuIHNoYTE7DQogICAgICAgIH0NCg0KICAgICAgICBbU3VwcHJlc3NNZXNzYWdlKCJNaWNyb3NvZnQuU2VjdXJpdHkuQ3J5cHRvZ3JhcGh5IiwgIkNBNTM1MDpNRDVDYW5ub3RCZVVzZWQiKV0NCiAgICAgICAgcHVibGljIHN0YXRpYyBzdHJpbmcgQ29tcHV0ZU1ENUhhc2goc3RyaW5nIGZpbGVOYW1lKQ0KICAgICAgICB7DQogICAgICAgICAgICBzdHJpbmcgbWQ1ID0gbnVsbDsNCg0KICAgICAgICAgICAgdHJ5DQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgdXNpbmcgKEZpbGVTdHJlYW0gc3RyZWFtID0gRmlsZS5PcGVuUmVhZChmaWxlTmFtZSkpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICB1c2luZyAodmFyIGJ1ZmZlcmVkU3RyZWFtID0gbmV3IEJ1ZmZlcmVkU3RyZWFtKHN0cmVhbSwgMTAyNCAqIDMyKSkNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgdXNpbmcgKHZhciBzaGEgPSBNRDUuQ3JlYXRlKCkpDQogICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgYnl0ZVtdIGNoZWNrc3VtID0gc2hhLkNvbXB1dGVIYXNoKGJ1ZmZlcmVkU3RyZWFtKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZDUgPSBCaXRDb252ZXJ0ZXIuVG9TdHJpbmcoY2hlY2tzdW0pLlJlcGxhY2UoIi0iLCBzdHJpbmcuRW1wdHkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgY2F0Y2ggKElPRXhjZXB0aW9uKSB7IH0NCiAgICAgICAgICAgIGNhdGNoIChVbmF1dGhvcml6ZWRBY2Nlc3NFeGNlcHRpb24pIHsgfQ0KICAgICAgICAgICAgcmV0dXJuIG1kNTsNCiAgICAgICAgfQ0KICAgIH0NCn0NCg==" + { + "ruleId": "CA2201", + "level": "error", + "message": { + "text": "'Error.CreateException(string, params object[])' creates an exception of type 'ApplicationException', an exception type that is not sufficiently specific and should never be raised by user code. If this exception instance might be thrown, use a different exception type.", + "id": "TooGeneric" }, - "hashes": [ - { - "value": "3E618462D24AFB5387B1CA0D2EC2DB5D", - "algorithm": "md5" - }, - { - "value": "394E5E11D3AABE71A42B17302E84DA41A28D4526", - "algorithm": "sha-1" - }, + "locations": [ { - "value": "ACFA6AEC53C2C6436C9D6F8502AF9DCFF152B9E3E75BE8FCD231CF646469086B", - "algorithm": "sha-256" + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Microsoft.Json.Schema.dll", + "uriBaseId": "$(ProjectDir)", + "index": 1 + } + }, + "logicalLocations": [ + { + "index": 41, + "fullyQualifiedName": "microsoft.json.schema.dll!Microsoft.Json.Schema.Error.CreateException(System.String,System.Object[])" + } + ] } - ] + ], + "partialFingerprints": { + "UniqueId": "TooGeneric" + }, + "properties": { + "Category": "Microsoft.Usage", + "FixCategory": "Breaking" + } }, - "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/Invocation.cs": { - "mimeType": "text/x-csharp", - "contents": { - "binary": "Ly8gQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQuICBBbGwgUmlnaHRzIFJlc2VydmVkLg0KLy8gTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlLiBTZWUgTElDRU5TRSBmaWxlIGluIHRoZSBwcm9qZWN0IHJvb3QgZm9yIGZ1bGwgbGljZW5zZSBpbmZvcm1hdGlvbi4NCg0KdXNpbmcgU3lzdGVtOw0KdXNpbmcgU3lzdGVtLkNvZGVEb20uQ29tcGlsZXI7DQp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsNCnVzaW5nIFN5c3RlbS5SdW50aW1lLlNlcmlhbGl6YXRpb247DQp1c2luZyBNaWNyb3NvZnQuQ29kZUFuYWx5c2lzLlNhcmlmLlJlYWRlcnM7DQoNCm5hbWVzcGFjZSBNaWNyb3NvZnQuQ29kZUFuYWx5c2lzLlNhcmlmDQp7DQogICAgLy8vIDxzdW1tYXJ5Pg0KICAgIC8vLyBUaGUgcnVudGltZSBlbnZpcm9ubWVudCBvZiB0aGUgYW5hbHlzaXMgdG9vbCBydW4uDQogICAgLy8vIDwvc3VtbWFyeT4NCiAgICBbRGF0YUNvbnRyYWN0XQ0KICAgIFtHZW5lcmF0ZWRDb2RlKCJNaWNyb3NvZnQuSnNvbi5TY2hlbWEuVG9Eb3ROZXQiLCAiMC41Ni4wLjAiKV0NCiAgICBwdWJsaWMgcGFydGlhbCBjbGFzcyBJbnZvY2F0aW9uIDogUHJvcGVydHlCYWdIb2xkZXIsIElTYXJpZk5vZGUNCiAgICB7DQogICAgICAgIHB1YmxpYyBzdGF0aWMgSUVxdWFsaXR5Q29tcGFyZXI8SW52b2NhdGlvbj4gVmFsdWVDb21wYXJlciA9PiBJbnZvY2F0aW9uRXF1YWxpdHlDb21wYXJlci5JbnN0YW5jZTsNCg0KICAgICAgICBwdWJsaWMgYm9vbCBWYWx1ZUVxdWFscyhJbnZvY2F0aW9uIG90aGVyKSA9PiBWYWx1ZUNvbXBhcmVyLkVxdWFscyh0aGlzLCBvdGhlcik7DQogICAgICAgIHB1YmxpYyBpbnQgVmFsdWVHZXRIYXNoQ29kZSgpID0+IFZhbHVlQ29tcGFyZXIuR2V0SGFzaENvZGUodGhpcyk7DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gR2V0cyBhIHZhbHVlIGluZGljYXRpbmcgdGhlIHR5cGUgb2Ygb2JqZWN0IGltcGxlbWVudGluZyA8c2VlIGNyZWY9IklTYXJpZk5vZGUiIC8+Lg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICBwdWJsaWMgU2FyaWZOb2RlS2luZCBTYXJpZk5vZGVLaW5kDQogICAgICAgIHsNCiAgICAgICAgICAgIGdldA0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHJldHVybiBTYXJpZk5vZGVLaW5kLkludm9jYXRpb247DQogICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBBIHNldCBvZiBmaWxlcyByZWxldmFudCB0byB0aGUgaW52b2NhdGlvbiBvZiB0aGUgdG9vbC4NCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgW0RhdGFNZW1iZXIoTmFtZSA9ICJhdHRhY2htZW50cyIsIElzUmVxdWlyZWQgPSBmYWxzZSwgRW1pdERlZmF1bHRWYWx1ZSA9IGZhbHNlKV0NCiAgICAgICAgcHVibGljIElMaXN0PEF0dGFjaG1lbnQ+IEF0dGFjaG1lbnRzIHsgZ2V0OyBzZXQ7IH0NCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBUaGUgY29tbWFuZCBsaW5lIHVzZWQgdG8gaW52b2tlIHRoZSB0b29sLg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICBbRGF0YU1lbWJlcihOYW1lID0gImNvbW1hbmRMaW5lIiwgSXNSZXF1aXJlZCA9IGZhbHNlLCBFbWl0RGVmYXVsdFZhbHVlID0gZmFsc2UpXQ0KICAgICAgICBwdWJsaWMgc3RyaW5nIENvbW1hbmRMaW5lIHsgZ2V0OyBzZXQ7IH0NCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBBbiBhcnJheSBvZiBzdHJpbmdzLCBjb250YWluaW5nIGluIG9yZGVyIHRoZSBjb21tYW5kIGxpbmUgYXJndW1lbnRzIHBhc3NlZCB0byB0aGUgdG9vbCBmcm9tIHRoZSBvcGVyYXRpbmcgc3lzdGVtLg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICBbRGF0YU1lbWJlcihOYW1lID0gImFyZ3VtZW50cyIsIElzUmVxdWlyZWQgPSBmYWxzZSwgRW1pdERlZmF1bHRWYWx1ZSA9IGZhbHNlKV0NCiAgICAgICAgcHVibGljIElMaXN0PHN0cmluZz4gQXJndW1lbnRzIHsgZ2V0OyBzZXQ7IH0NCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBUaGUgbG9jYXRpb25zIG9mIGFueSByZXNwb25zZSBmaWxlcyBzcGVjaWZpZWQgb24gdGhlIHRvb2wncyBjb21tYW5kIGxpbmUuDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIFtEYXRhTWVtYmVyKE5hbWUgPSAicmVzcG9uc2VGaWxlcyIsIElzUmVxdWlyZWQgPSBmYWxzZSwgRW1pdERlZmF1bHRWYWx1ZSA9IGZhbHNlKV0NCiAgICAgICAgcHVibGljIElMaXN0PEZpbGVMb2NhdGlvbj4gUmVzcG9uc2VGaWxlcyB7IGdldDsgc2V0OyB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gVGhlIGRhdGUgYW5kIHRpbWUgYXQgd2hpY2ggdGhlIHJ1biBzdGFydGVkLiBTZWUgIkRhdGUvdGltZSBwcm9wZXJ0aWVzIiBpbiB0aGUgU0FSSUYgc3BlYyBmb3IgdGhlIHJlcXVpcmVkIGZvcm1hdC4NCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgW0RhdGFNZW1iZXIoTmFtZSA9ICJzdGFydFRpbWUiLCBJc1JlcXVpcmVkID0gZmFsc2UsIEVtaXREZWZhdWx0VmFsdWUgPSBmYWxzZSldDQogICAgICAgIHB1YmxpYyBEYXRlVGltZSBTdGFydFRpbWUgeyBnZXQ7IHNldDsgfQ0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIFRoZSBkYXRlIGFuZCB0aW1lIGF0IHdoaWNoIHRoZSBydW4gZW5kZWQuIFNlZSAiRGF0ZS90aW1lIHByb3BlcnRpZXMiIGluIHRoZSAgU0FSSUYgc3BlYyBmb3IgdGhlIHJlcXVpcmVkIGZvcm1hdC4NCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgW0RhdGFNZW1iZXIoTmFtZSA9ICJlbmRUaW1lIiwgSXNSZXF1aXJlZCA9IGZhbHNlLCBFbWl0RGVmYXVsdFZhbHVlID0gZmFsc2UpXQ0KICAgICAgICBwdWJsaWMgRGF0ZVRpbWUgRW5kVGltZSB7IGdldDsgc2V0OyB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gVGhlIHByb2Nlc3MgZXhpdCBjb2RlLg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICBbRGF0YU1lbWJlcihOYW1lID0gImV4aXRDb2RlIiwgSXNSZXF1aXJlZCA9IGZhbHNlLCBFbWl0RGVmYXVsdFZhbHVlID0gZmFsc2UpXQ0KICAgICAgICBwdWJsaWMgaW50IEV4aXRDb2RlIHsgZ2V0OyBzZXQ7IH0NCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBBIGxpc3Qgb2YgcnVudGltZSBjb25kaXRpb25zIGRldGVjdGVkIGJ5IHRoZSB0b29sIGluIHRoZSBjb3Vyc2Ugb2YgdGhlIGFuYWx5c2lzLg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICBbRGF0YU1lbWJlcihOYW1lID0gInRvb2xOb3RpZmljYXRpb25zIiwgSXNSZXF1aXJlZCA9IGZhbHNlLCBFbWl0RGVmYXVsdFZhbHVlID0gZmFsc2UpXQ0KICAgICAgICBwdWJsaWMgSUxpc3Q8Tm90aWZpY2F0aW9uPiBUb29sTm90aWZpY2F0aW9ucyB7IGdldDsgc2V0OyB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gQSBsaXN0IG9mIGNvbmRpdGlvbnMgZGV0ZWN0ZWQgYnkgdGhlIHRvb2wgdGhhdCBhcmUgcmVsZXZhbnQgdG8gdGhlIHRvb2wncyBjb25maWd1cmF0aW9uLg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICBbRGF0YU1lbWJlcihOYW1lID0gImNvbmZpZ3VyYXRpb25Ob3RpZmljYXRpb25zIiwgSXNSZXF1aXJlZCA9IGZhbHNlLCBFbWl0RGVmYXVsdFZhbHVlID0gZmFsc2UpXQ0KICAgICAgICBwdWJsaWMgSUxpc3Q8Tm90aWZpY2F0aW9uPiBDb25maWd1cmF0aW9uTm90aWZpY2F0aW9ucyB7IGdldDsgc2V0OyB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gVGhlIHJlYXNvbiBmb3IgdGhlIHByb2Nlc3MgZXhpdC4NCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgW0RhdGFNZW1iZXIoTmFtZSA9ICJleGl0Q29kZURlc2NyaXB0aW9uIiwgSXNSZXF1aXJlZCA9IGZhbHNlLCBFbWl0RGVmYXVsdFZhbHVlID0gZmFsc2UpXQ0KICAgICAgICBwdWJsaWMgc3RyaW5nIEV4aXRDb2RlRGVzY3JpcHRpb24geyBnZXQ7IHNldDsgfQ0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIFRoZSBuYW1lIG9mIHRoZSBzaWduYWwgdGhhdCBjYXVzZWQgdGhlIHByb2Nlc3MgdG8gZXhpdC4NCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgW0RhdGFNZW1iZXIoTmFtZSA9ICJleGl0U2lnbmFsTmFtZSIsIElzUmVxdWlyZWQgPSBmYWxzZSwgRW1pdERlZmF1bHRWYWx1ZSA9IGZhbHNlKV0NCiAgICAgICAgcHVibGljIHN0cmluZyBFeGl0U2lnbmFsTmFtZSB7IGdldDsgc2V0OyB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gVGhlIG51bWVyaWMgdmFsdWUgb2YgdGhlIHNpZ25hbCB0aGF0IGNhdXNlZCB0aGUgcHJvY2VzcyB0byBleGl0Lg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICBbRGF0YU1lbWJlcihOYW1lID0gImV4aXRTaWduYWxOdW1iZXIiLCBJc1JlcXVpcmVkID0gZmFsc2UsIEVtaXREZWZhdWx0VmFsdWUgPSBmYWxzZSldDQogICAgICAgIHB1YmxpYyBpbnQgRXhpdFNpZ25hbE51bWJlciB7IGdldDsgc2V0OyB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gVGhlIHJlYXNvbiBnaXZlbiBieSB0aGUgb3BlcmF0aW5nIHN5c3RlbSB0aGF0IHRoZSBwcm9jZXNzIGZhaWxlZCB0byBzdGFydC4NCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgW0RhdGFNZW1iZXIoTmFtZSA9ICJwcm9jZXNzU3RhcnRGYWlsdXJlTWVzc2FnZSIsIElzUmVxdWlyZWQgPSBmYWxzZSwgRW1pdERlZmF1bHRWYWx1ZSA9IGZhbHNlKV0NCiAgICAgICAgcHVibGljIHN0cmluZyBQcm9jZXNzU3RhcnRGYWlsdXJlTWVzc2FnZSB7IGdldDsgc2V0OyB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gQSB2YWx1ZSBpbmRpY2F0aW5nIHdoZXRoZXIgdGhlIHRvb2wncyBleGVjdXRpb24gY29tcGxldGVkIHN1Y2Nlc3NmdWxseS4NCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgW0RhdGFNZW1iZXIoTmFtZSA9ICJ0b29sRXhlY3V0aW9uU3VjY2Vzc2Z1bCIsIElzUmVxdWlyZWQgPSBmYWxzZSwgRW1pdERlZmF1bHRWYWx1ZSA9IGZhbHNlKV0NCiAgICAgICAgcHVibGljIGJvb2wgVG9vbEV4ZWN1dGlvblN1Y2Nlc3NmdWwgeyBnZXQ7IHNldDsgfQ0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIFRoZSBtYWNoaW5lIHRoYXQgaG9zdGVkIHRoZSBhbmFseXNpcyB0b29sIHJ1bi4NCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgW0RhdGFNZW1iZXIoTmFtZSA9ICJtYWNoaW5lIiwgSXNSZXF1aXJlZCA9IGZhbHNlLCBFbWl0RGVmYXVsdFZhbHVlID0gZmFsc2UpXQ0KICAgICAgICBwdWJsaWMgc3RyaW5nIE1hY2hpbmUgeyBnZXQ7IHNldDsgfQ0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIFRoZSBhY2NvdW50IHRoYXQgcmFuIHRoZSBhbmFseXNpcyB0b29sLg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICBbRGF0YU1lbWJlcihOYW1lID0gImFjY291bnQiLCBJc1JlcXVpcmVkID0gZmFsc2UsIEVtaXREZWZhdWx0VmFsdWUgPSBmYWxzZSldDQogICAgICAgIHB1YmxpYyBzdHJpbmcgQWNjb3VudCB7IGdldDsgc2V0OyB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gVGhlIHByb2Nlc3MgaWQgZm9yIHRoZSBhbmFseXNpcyB0b29sIHJ1bi4NCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgW0RhdGFNZW1iZXIoTmFtZSA9ICJwcm9jZXNzSWQiLCBJc1JlcXVpcmVkID0gZmFsc2UsIEVtaXREZWZhdWx0VmFsdWUgPSBmYWxzZSldDQogICAgICAgIHB1YmxpYyBpbnQgUHJvY2Vzc0lkIHsgZ2V0OyBzZXQ7IH0NCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBBbiBhYnNvbHV0ZSBVUkkgc3BlY2lmeWluZyB0aGUgbG9jYXRpb24gb2YgdGhlIGFuYWx5c2lzIHRvb2wncyBleGVjdXRhYmxlLg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICBbRGF0YU1lbWJlcihOYW1lID0gImV4ZWN1dGFibGVMb2NhdGlvbiIsIElzUmVxdWlyZWQgPSBmYWxzZSwgRW1pdERlZmF1bHRWYWx1ZSA9IGZhbHNlKV0NCiAgICAgICAgcHVibGljIEZpbGVMb2NhdGlvbiBFeGVjdXRhYmxlTG9jYXRpb24geyBnZXQ7IHNldDsgfQ0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIFRoZSB3b3JraW5nIGRpcmVjdG9yeSBmb3IgdGhlIGFuYWx5c2lzIHJvb2wgcnVuLg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICBbRGF0YU1lbWJlcihOYW1lID0gIndvcmtpbmdEaXJlY3RvcnkiLCBJc1JlcXVpcmVkID0gZmFsc2UsIEVtaXREZWZhdWx0VmFsdWUgPSBmYWxzZSldDQogICAgICAgIHB1YmxpYyBzdHJpbmcgV29ya2luZ0RpcmVjdG9yeSB7IGdldDsgc2V0OyB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gVGhlIGVudmlyb25tZW50IHZhcmlhYmxlcyBhc3NvY2lhdGVkIHdpdGggdGhlIGFuYWx5c2lzIHRvb2wgcHJvY2VzcywgZXhwcmVzc2VkIGFzIGtleS92YWx1ZSBwYWlycy4NCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgW0RhdGFNZW1iZXIoTmFtZSA9ICJlbnZpcm9ubWVudFZhcmlhYmxlcyIsIElzUmVxdWlyZWQgPSBmYWxzZSwgRW1pdERlZmF1bHRWYWx1ZSA9IGZhbHNlKV0NCiAgICAgICAgcHVibGljIElEaWN0aW9uYXJ5PHN0cmluZywgc3RyaW5nPiBFbnZpcm9ubWVudFZhcmlhYmxlcyB7IGdldDsgc2V0OyB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gQSBmaWxlIGNvbnRhaW5pbmcgdGhlIHN0YW5kYXJkIGlucHV0IHN0cmVhbSB0byB0aGUgcHJvY2VzcyB0aGF0IHdhcyBpbnZva2VkLg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICBbRGF0YU1lbWJlcihOYW1lID0gInN0ZGluIiwgSXNSZXF1aXJlZCA9IGZhbHNlLCBFbWl0RGVmYXVsdFZhbHVlID0gZmFsc2UpXQ0KICAgICAgICBwdWJsaWMgRmlsZUxvY2F0aW9uIFN0ZGluIHsgZ2V0OyBzZXQ7IH0NCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBBIGZpbGUgY29udGFpbmluZyB0aGUgc3RhbmRhcmQgb3V0cHV0IHN0cmVhbSBmcm9tIHRoZSBwcm9jZXNzIHRoYXQgd2FzIGludm9rZWQuDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIFtEYXRhTWVtYmVyKE5hbWUgPSAic3Rkb3V0IiwgSXNSZXF1aXJlZCA9IGZhbHNlLCBFbWl0RGVmYXVsdFZhbHVlID0gZmFsc2UpXQ0KICAgICAgICBwdWJsaWMgRmlsZUxvY2F0aW9uIFN0ZG91dCB7IGdldDsgc2V0OyB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gQSBmaWxlIGNvbnRhaW5pbmcgdGhlIHN0YW5kYXJkIGVycm9yIHN0cmVhbSBmcm9tIHRoZSBwcm9jZXNzIHRoYXQgd2FzIGludm9rZWQuDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIFtEYXRhTWVtYmVyKE5hbWUgPSAic3RkZXJyIiwgSXNSZXF1aXJlZCA9IGZhbHNlLCBFbWl0RGVmYXVsdFZhbHVlID0gZmFsc2UpXQ0KICAgICAgICBwdWJsaWMgRmlsZUxvY2F0aW9uIFN0ZGVyciB7IGdldDsgc2V0OyB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gQSBmaWxlIGNvbnRhaW5pbmcgdGhlIGludGVybGVhdmVkIHN0YW5kYXJkIG91dHB1dCBhbmQgc3RhbmRhcmQgZXJyb3Igc3RyZWFtIGZyb20gdGhlIHByb2Nlc3MgdGhhdCB3YXMgaW52b2tlZC4NCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgW0RhdGFNZW1iZXIoTmFtZSA9ICJzdGRvdXRTdGRlcnIiLCBJc1JlcXVpcmVkID0gZmFsc2UsIEVtaXREZWZhdWx0VmFsdWUgPSBmYWxzZSldDQogICAgICAgIHB1YmxpYyBGaWxlTG9jYXRpb24gU3Rkb3V0U3RkZXJyIHsgZ2V0OyBzZXQ7IH0NCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBLZXkvdmFsdWUgcGFpcnMgdGhhdCBwcm92aWRlIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gYWJvdXQgdGhlIHJ1bi4NCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgW0RhdGFNZW1iZXIoTmFtZSA9ICJwcm9wZXJ0aWVzIiwgSXNSZXF1aXJlZCA9IGZhbHNlLCBFbWl0RGVmYXVsdFZhbHVlID0gZmFsc2UpXQ0KICAgICAgICBpbnRlcm5hbCBvdmVycmlkZSBJRGljdGlvbmFyeTxzdHJpbmcsIFNlcmlhbGl6ZWRQcm9wZXJ0eUluZm8+IFByb3BlcnRpZXMgeyBnZXQ7IHNldDsgfQ0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIEluaXRpYWxpemVzIGEgbmV3IGluc3RhbmNlIG9mIHRoZSA8c2VlIGNyZWY9Ikludm9jYXRpb24iIC8+IGNsYXNzLg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICBwdWJsaWMgSW52b2NhdGlvbigpDQogICAgICAgIHsNCiAgICAgICAgfQ0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIEluaXRpYWxpemVzIGEgbmV3IGluc3RhbmNlIG9mIHRoZSA8c2VlIGNyZWY9Ikludm9jYXRpb24iIC8+IGNsYXNzIGZyb20gdGhlIHN1cHBsaWVkIHZhbHVlcy4NCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgLy8vIDxwYXJhbSBuYW1lPSJhdHRhY2htZW50cyI+DQogICAgICAgIC8vLyBBbiBpbml0aWFsaXphdGlvbiB2YWx1ZSBmb3IgdGhlIDxzZWUgY3JlZj0iUDogQXR0YWNobWVudHMiIC8+IHByb3BlcnR5Lg0KICAgICAgICAvLy8gPC9wYXJhbT4NCiAgICAgICAgLy8vIDxwYXJhbSBuYW1lPSJjb21tYW5kTGluZSI+DQogICAgICAgIC8vLyBBbiBpbml0aWFsaXphdGlvbiB2YWx1ZSBmb3IgdGhlIDxzZWUgY3JlZj0iUDogQ29tbWFuZExpbmUiIC8+IHByb3BlcnR5Lg0KICAgICAgICAvLy8gPC9wYXJhbT4NCiAgICAgICAgLy8vIDxwYXJhbSBuYW1lPSJhcmd1bWVudHMiPg0KICAgICAgICAvLy8gQW4gaW5pdGlhbGl6YXRpb24gdmFsdWUgZm9yIHRoZSA8c2VlIGNyZWY9IlA6IEFyZ3VtZW50cyIgLz4gcHJvcGVydHkuDQogICAgICAgIC8vLyA8L3BhcmFtPg0KICAgICAgICAvLy8gPHBhcmFtIG5hbWU9InJlc3BvbnNlRmlsZXMiPg0KICAgICAgICAvLy8gQW4gaW5pdGlhbGl6YXRpb24gdmFsdWUgZm9yIHRoZSA8c2VlIGNyZWY9IlA6IFJlc3BvbnNlRmlsZXMiIC8+IHByb3BlcnR5Lg0KICAgICAgICAvLy8gPC9wYXJhbT4NCiAgICAgICAgLy8vIDxwYXJhbSBuYW1lPSJzdGFydFRpbWUiPg0KICAgICAgICAvLy8gQW4gaW5pdGlhbGl6YXRpb24gdmFsdWUgZm9yIHRoZSA8c2VlIGNyZWY9IlA6IFN0YXJ0VGltZSIgLz4gcHJvcGVydHkuDQogICAgICAgIC8vLyA8L3BhcmFtPg0KICAgICAgICAvLy8gPHBhcmFtIG5hbWU9ImVuZFRpbWUiPg0KICAgICAgICAvLy8gQW4gaW5pdGlhbGl6YXRpb24gdmFsdWUgZm9yIHRoZSA8c2VlIGNyZWY9IlA6IEVuZFRpbWUiIC8+IHByb3BlcnR5Lg0KICAgICAgICAvLy8gPC9wYXJhbT4NCiAgICAgICAgLy8vIDxwYXJhbSBuYW1lPSJleGl0Q29kZSI+DQogICAgICAgIC8vLyBBbiBpbml0aWFsaXphdGlvbiB2YWx1ZSBmb3IgdGhlIDxzZWUgY3JlZj0iUDogRXhpdENvZGUiIC8+IHByb3BlcnR5Lg0KICAgICAgICAvLy8gPC9wYXJhbT4NCiAgICAgICAgLy8vIDxwYXJhbSBuYW1lPSJ0b29sTm90aWZpY2F0aW9ucyI+DQogICAgICAgIC8vLyBBbiBpbml0aWFsaXphdGlvbiB2YWx1ZSBmb3IgdGhlIDxzZWUgY3JlZj0iUDogVG9vbE5vdGlmaWNhdGlvbnMiIC8+IHByb3BlcnR5Lg0KICAgICAgICAvLy8gPC9wYXJhbT4NCiAgICAgICAgLy8vIDxwYXJhbSBuYW1lPSJjb25maWd1cmF0aW9uTm90aWZpY2F0aW9ucyI+DQogICAgICAgIC8vLyBBbiBpbml0aWFsaXphdGlvbiB2YWx1ZSBmb3IgdGhlIDxzZWUgY3JlZj0iUDogQ29uZmlndXJhdGlvbk5vdGlmaWNhdGlvbnMiIC8+IHByb3BlcnR5Lg0KICAgICAgICAvLy8gPC9wYXJhbT4NCiAgICAgICAgLy8vIDxwYXJhbSBuYW1lPSJleGl0Q29kZURlc2NyaXB0aW9uIj4NCiAgICAgICAgLy8vIEFuIGluaXRpYWxpemF0aW9uIHZhbHVlIGZvciB0aGUgPHNlZSBjcmVmPSJQOiBFeGl0Q29kZURlc2NyaXB0aW9uIiAvPiBwcm9wZXJ0eS4NCiAgICAgICAgLy8vIDwvcGFyYW0+DQogICAgICAgIC8vLyA8cGFyYW0gbmFtZT0iZXhpdFNpZ25hbE5hbWUiPg0KICAgICAgICAvLy8gQW4gaW5pdGlhbGl6YXRpb24gdmFsdWUgZm9yIHRoZSA8c2VlIGNyZWY9IlA6IEV4aXRTaWduYWxOYW1lIiAvPiBwcm9wZXJ0eS4NCiAgICAgICAgLy8vIDwvcGFyYW0+DQogICAgICAgIC8vLyA8cGFyYW0gbmFtZT0iZXhpdFNpZ25hbE51bWJlciI+DQogICAgICAgIC8vLyBBbiBpbml0aWFsaXphdGlvbiB2YWx1ZSBmb3IgdGhlIDxzZWUgY3JlZj0iUDogRXhpdFNpZ25hbE51bWJlciIgLz4gcHJvcGVydHkuDQogICAgICAgIC8vLyA8L3BhcmFtPg0KICAgICAgICAvLy8gPHBhcmFtIG5hbWU9InByb2Nlc3NTdGFydEZhaWx1cmVNZXNzYWdlIj4NCiAgICAgICAgLy8vIEFuIGluaXRpYWxpemF0aW9uIHZhbHVlIGZvciB0aGUgPHNlZSBjcmVmPSJQOiBQcm9jZXNzU3RhcnRGYWlsdXJlTWVzc2FnZSIgLz4gcHJvcGVydHkuDQogICAgICAgIC8vLyA8L3BhcmFtPg0KICAgICAgICAvLy8gPHBhcmFtIG5hbWU9InRvb2xFeGVjdXRpb25TdWNjZXNzZnVsIj4NCiAgICAgICAgLy8vIEFuIGluaXRpYWxpemF0aW9uIHZhbHVlIGZvciB0aGUgPHNlZSBjcmVmPSJQOiBUb29sRXhlY3V0aW9uU3VjY2Vzc2Z1bCIgLz4gcHJvcGVydHkuDQogICAgICAgIC8vLyA8L3BhcmFtPg0KICAgICAgICAvLy8gPHBhcmFtIG5hbWU9Im1hY2hpbmUiPg0KICAgICAgICAvLy8gQW4gaW5pdGlhbGl6YXRpb24gdmFsdWUgZm9yIHRoZSA8c2VlIGNyZWY9IlA6IE1hY2hpbmUiIC8+IHByb3BlcnR5Lg0KICAgICAgICAvLy8gPC9wYXJhbT4NCiAgICAgICAgLy8vIDxwYXJhbSBuYW1lPSJhY2NvdW50Ij4NCiAgICAgICAgLy8vIEFuIGluaXRpYWxpemF0aW9uIHZhbHVlIGZvciB0aGUgPHNlZSBjcmVmPSJQOiBBY2NvdW50IiAvPiBwcm9wZXJ0eS4NCiAgICAgICAgLy8vIDwvcGFyYW0+DQogICAgICAgIC8vLyA8cGFyYW0gbmFtZT0icHJvY2Vzc0lkIj4NCiAgICAgICAgLy8vIEFuIGluaXRpYWxpemF0aW9uIHZhbHVlIGZvciB0aGUgPHNlZSBjcmVmPSJQOiBQcm9jZXNzSWQiIC8+IHByb3BlcnR5Lg0KICAgICAgICAvLy8gPC9wYXJhbT4NCiAgICAgICAgLy8vIDxwYXJhbSBuYW1lPSJleGVjdXRhYmxlTG9jYXRpb24iPg0KICAgICAgICAvLy8gQW4gaW5pdGlhbGl6YXRpb24gdmFsdWUgZm9yIHRoZSA8c2VlIGNyZWY9IlA6IEV4ZWN1dGFibGVMb2NhdGlvbiIgLz4gcHJvcGVydHkuDQogICAgICAgIC8vLyA8L3BhcmFtPg0KICAgICAgICAvLy8gPHBhcmFtIG5hbWU9IndvcmtpbmdEaXJlY3RvcnkiPg0KICAgICAgICAvLy8gQW4gaW5pdGlhbGl6YXRpb24gdmFsdWUgZm9yIHRoZSA8c2VlIGNyZWY9IlA6IFdvcmtpbmdEaXJlY3RvcnkiIC8+IHByb3BlcnR5Lg0KICAgICAgICAvLy8gPC9wYXJhbT4NCiAgICAgICAgLy8vIDxwYXJhbSBuYW1lPSJlbnZpcm9ubWVudFZhcmlhYmxlcyI+DQogICAgICAgIC8vLyBBbiBpbml0aWFsaXphdGlvbiB2YWx1ZSBmb3IgdGhlIDxzZWUgY3JlZj0iUDogRW52aXJvbm1lbnRWYXJpYWJsZXMiIC8+IHByb3BlcnR5Lg0KICAgICAgICAvLy8gPC9wYXJhbT4NCiAgICAgICAgLy8vIDxwYXJhbSBuYW1lPSJzdGRpbiI+DQogICAgICAgIC8vLyBBbiBpbml0aWFsaXphdGlvbiB2YWx1ZSBmb3IgdGhlIDxzZWUgY3JlZj0iUDogU3RkaW4iIC8+IHByb3BlcnR5Lg0KICAgICAgICAvLy8gPC9wYXJhbT4NCiAgICAgICAgLy8vIDxwYXJhbSBuYW1lPSJzdGRvdXQiPg0KICAgICAgICAvLy8gQW4gaW5pdGlhbGl6YXRpb24gdmFsdWUgZm9yIHRoZSA8c2VlIGNyZWY9IlA6IFN0ZG91dCIgLz4gcHJvcGVydHkuDQogICAgICAgIC8vLyA8L3BhcmFtPg0KICAgICAgICAvLy8gPHBhcmFtIG5hbWU9InN0ZGVyciI+DQogICAgICAgIC8vLyBBbiBpbml0aWFsaXphdGlvbiB2YWx1ZSBmb3IgdGhlIDxzZWUgY3JlZj0iUDogU3RkZXJyIiAvPiBwcm9wZXJ0eS4NCiAgICAgICAgLy8vIDwvcGFyYW0+DQogICAgICAgIC8vLyA8cGFyYW0gbmFtZT0ic3Rkb3V0U3RkZXJyIj4NCiAgICAgICAgLy8vIEFuIGluaXRpYWxpemF0aW9uIHZhbHVlIGZvciB0aGUgPHNlZSBjcmVmPSJQOiBTdGRvdXRTdGRlcnIiIC8+IHByb3BlcnR5Lg0KICAgICAgICAvLy8gPC9wYXJhbT4NCiAgICAgICAgLy8vIDxwYXJhbSBuYW1lPSJwcm9wZXJ0aWVzIj4NCiAgICAgICAgLy8vIEFuIGluaXRpYWxpemF0aW9uIHZhbHVlIGZvciB0aGUgPHNlZSBjcmVmPSJQOiBQcm9wZXJ0aWVzIiAvPiBwcm9wZXJ0eS4NCiAgICAgICAgLy8vIDwvcGFyYW0+DQogICAgICAgIHB1YmxpYyBJbnZvY2F0aW9uKElFbnVtZXJhYmxlPEF0dGFjaG1lbnQ+IGF0dGFjaG1lbnRzLCBzdHJpbmcgY29tbWFuZExpbmUsIElFbnVtZXJhYmxlPHN0cmluZz4gYXJndW1lbnRzLCBJRW51bWVyYWJsZTxGaWxlTG9jYXRpb24+IHJlc3BvbnNlRmlsZXMsIERhdGVUaW1lIHN0YXJ0VGltZSwgRGF0ZVRpbWUgZW5kVGltZSwgaW50IGV4aXRDb2RlLCBJRW51bWVyYWJsZTxOb3RpZmljYXRpb24+IHRvb2xOb3RpZmljYXRpb25zLCBJRW51bWVyYWJsZTxOb3RpZmljYXRpb24+IGNvbmZpZ3VyYXRpb25Ob3RpZmljYXRpb25zLCBzdHJpbmcgZXhpdENvZGVEZXNjcmlwdGlvbiwgc3RyaW5nIGV4aXRTaWduYWxOYW1lLCBpbnQgZXhpdFNpZ25hbE51bWJlciwgc3RyaW5nIHByb2Nlc3NTdGFydEZhaWx1cmVNZXNzYWdlLCBib29sIHRvb2xFeGVjdXRpb25TdWNjZXNzZnVsLCBzdHJpbmcgbWFjaGluZSwgc3RyaW5nIGFjY291bnQsIGludCBwcm9jZXNzSWQsIEZpbGVMb2NhdGlvbiBleGVjdXRhYmxlTG9jYXRpb24sIHN0cmluZyB3b3JraW5nRGlyZWN0b3J5LCBJRGljdGlvbmFyeTxzdHJpbmcsIHN0cmluZz4gZW52aXJvbm1lbnRWYXJpYWJsZXMsIEZpbGVMb2NhdGlvbiBzdGRpbiwgRmlsZUxvY2F0aW9uIHN0ZG91dCwgRmlsZUxvY2F0aW9uIHN0ZGVyciwgRmlsZUxvY2F0aW9uIHN0ZG91dFN0ZGVyciwgSURpY3Rpb25hcnk8c3RyaW5nLCBTZXJpYWxpemVkUHJvcGVydHlJbmZvPiBwcm9wZXJ0aWVzKQ0KICAgICAgICB7DQogICAgICAgICAgICBJbml0KGF0dGFjaG1lbnRzLCBjb21tYW5kTGluZSwgYXJndW1lbnRzLCByZXNwb25zZUZpbGVzLCBzdGFydFRpbWUsIGVuZFRpbWUsIGV4aXRDb2RlLCB0b29sTm90aWZpY2F0aW9ucywgY29uZmlndXJhdGlvbk5vdGlmaWNhdGlvbnMsIGV4aXRDb2RlRGVzY3JpcHRpb24sIGV4aXRTaWduYWxOYW1lLCBleGl0U2lnbmFsTnVtYmVyLCBwcm9jZXNzU3RhcnRGYWlsdXJlTWVzc2FnZSwgdG9vbEV4ZWN1dGlvblN1Y2Nlc3NmdWwsIG1hY2hpbmUsIGFjY291bnQsIHByb2Nlc3NJZCwgZXhlY3V0YWJsZUxvY2F0aW9uLCB3b3JraW5nRGlyZWN0b3J5LCBlbnZpcm9ubWVudFZhcmlhYmxlcywgc3RkaW4sIHN0ZG91dCwgc3RkZXJyLCBzdGRvdXRTdGRlcnIsIHByb3BlcnRpZXMpOw0KICAgICAgICB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gSW5pdGlhbGl6ZXMgYSBuZXcgaW5zdGFuY2Ugb2YgdGhlIDxzZWUgY3JlZj0iSW52b2NhdGlvbiIgLz4gY2xhc3MgZnJvbSB0aGUgc3BlY2lmaWVkIGluc3RhbmNlLg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICAvLy8gPHBhcmFtIG5hbWU9Im90aGVyIj4NCiAgICAgICAgLy8vIFRoZSBpbnN0YW5jZSBmcm9tIHdoaWNoIHRoZSBuZXcgaW5zdGFuY2UgaXMgdG8gYmUgaW5pdGlhbGl6ZWQuDQogICAgICAgIC8vLyA8L3BhcmFtPg0KICAgICAgICAvLy8gPGV4Y2VwdGlvbiBjcmVmPSJBcmd1bWVudE51bGxFeGNlcHRpb24iPg0KICAgICAgICAvLy8gVGhyb3duIGlmIDxwYXJhbXJlZiBuYW1lPSJvdGhlciIgLz4gaXMgbnVsbC4NCiAgICAgICAgLy8vIDwvZXhjZXB0aW9uPg0KICAgICAgICBwdWJsaWMgSW52b2NhdGlvbihJbnZvY2F0aW9uIG90aGVyKQ0KICAgICAgICB7DQogICAgICAgICAgICBpZiAob3RoZXIgPT0gbnVsbCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgQXJndW1lbnROdWxsRXhjZXB0aW9uKG5hbWVvZihvdGhlcikpOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBJbml0KG90aGVyLkF0dGFjaG1lbnRzLCBvdGhlci5Db21tYW5kTGluZSwgb3RoZXIuQXJndW1lbnRzLCBvdGhlci5SZXNwb25zZUZpbGVzLCBvdGhlci5TdGFydFRpbWUsIG90aGVyLkVuZFRpbWUsIG90aGVyLkV4aXRDb2RlLCBvdGhlci5Ub29sTm90aWZpY2F0aW9ucywgb3RoZXIuQ29uZmlndXJhdGlvbk5vdGlmaWNhdGlvbnMsIG90aGVyLkV4aXRDb2RlRGVzY3JpcHRpb24sIG90aGVyLkV4aXRTaWduYWxOYW1lLCBvdGhlci5FeGl0U2lnbmFsTnVtYmVyLCBvdGhlci5Qcm9jZXNzU3RhcnRGYWlsdXJlTWVzc2FnZSwgb3RoZXIuVG9vbEV4ZWN1dGlvblN1Y2Nlc3NmdWwsIG90aGVyLk1hY2hpbmUsIG90aGVyLkFjY291bnQsIG90aGVyLlByb2Nlc3NJZCwgb3RoZXIuRXhlY3V0YWJsZUxvY2F0aW9uLCBvdGhlci5Xb3JraW5nRGlyZWN0b3J5LCBvdGhlci5FbnZpcm9ubWVudFZhcmlhYmxlcywgb3RoZXIuU3RkaW4sIG90aGVyLlN0ZG91dCwgb3RoZXIuU3RkZXJyLCBvdGhlci5TdGRvdXRTdGRlcnIsIG90aGVyLlByb3BlcnRpZXMpOw0KICAgICAgICB9DQoNCiAgICAgICAgSVNhcmlmTm9kZSBJU2FyaWZOb2RlLkRlZXBDbG9uZSgpDQogICAgICAgIHsNCiAgICAgICAgICAgIHJldHVybiBEZWVwQ2xvbmVDb3JlKCk7DQogICAgICAgIH0NCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBDcmVhdGVzIGEgZGVlcCBjb3B5IG9mIHRoaXMgaW5zdGFuY2UuDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIHB1YmxpYyBJbnZvY2F0aW9uIERlZXBDbG9uZSgpDQogICAgICAgIHsNCiAgICAgICAgICAgIHJldHVybiAoSW52b2NhdGlvbilEZWVwQ2xvbmVDb3JlKCk7DQogICAgICAgIH0NCg0KICAgICAgICBwcml2YXRlIElTYXJpZk5vZGUgRGVlcENsb25lQ29yZSgpDQogICAgICAgIHsNCiAgICAgICAgICAgIHJldHVybiBuZXcgSW52b2NhdGlvbih0aGlzKTsNCiAgICAgICAgfQ0KDQogICAgICAgIHByaXZhdGUgdm9pZCBJbml0KElFbnVtZXJhYmxlPEF0dGFjaG1lbnQ+IGF0dGFjaG1lbnRzLCBzdHJpbmcgY29tbWFuZExpbmUsIElFbnVtZXJhYmxlPHN0cmluZz4gYXJndW1lbnRzLCBJRW51bWVyYWJsZTxGaWxlTG9jYXRpb24+IHJlc3BvbnNlRmlsZXMsIERhdGVUaW1lIHN0YXJ0VGltZSwgRGF0ZVRpbWUgZW5kVGltZSwgaW50IGV4aXRDb2RlLCBJRW51bWVyYWJsZTxOb3RpZmljYXRpb24+IHRvb2xOb3RpZmljYXRpb25zLCBJRW51bWVyYWJsZTxOb3RpZmljYXRpb24+IGNvbmZpZ3VyYXRpb25Ob3RpZmljYXRpb25zLCBzdHJpbmcgZXhpdENvZGVEZXNjcmlwdGlvbiwgc3RyaW5nIGV4aXRTaWduYWxOYW1lLCBpbnQgZXhpdFNpZ25hbE51bWJlciwgc3RyaW5nIHByb2Nlc3NTdGFydEZhaWx1cmVNZXNzYWdlLCBib29sIHRvb2xFeGVjdXRpb25TdWNjZXNzZnVsLCBzdHJpbmcgbWFjaGluZSwgc3RyaW5nIGFjY291bnQsIGludCBwcm9jZXNzSWQsIEZpbGVMb2NhdGlvbiBleGVjdXRhYmxlTG9jYXRpb24sIHN0cmluZyB3b3JraW5nRGlyZWN0b3J5LCBJRGljdGlvbmFyeTxzdHJpbmcsIHN0cmluZz4gZW52aXJvbm1lbnRWYXJpYWJsZXMsIEZpbGVMb2NhdGlvbiBzdGRpbiwgRmlsZUxvY2F0aW9uIHN0ZG91dCwgRmlsZUxvY2F0aW9uIHN0ZGVyciwgRmlsZUxvY2F0aW9uIHN0ZG91dFN0ZGVyciwgSURpY3Rpb25hcnk8c3RyaW5nLCBTZXJpYWxpemVkUHJvcGVydHlJbmZvPiBwcm9wZXJ0aWVzKQ0KICAgICAgICB7DQogICAgICAgICAgICBpZiAoYXR0YWNobWVudHMgIT0gbnVsbCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICB2YXIgZGVzdGluYXRpb25fMCA9IG5ldyBMaXN0PEF0dGFjaG1lbnQ+KCk7DQogICAgICAgICAgICAgICAgZm9yZWFjaCAodmFyIHZhbHVlXzAgaW4gYXR0YWNobWVudHMpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWVfMCA9PSBudWxsKQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICBkZXN0aW5hdGlvbl8wLkFkZChudWxsKTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBlbHNlDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGRlc3RpbmF0aW9uXzAuQWRkKG5ldyBBdHRhY2htZW50KHZhbHVlXzApKTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgIEF0dGFjaG1lbnRzID0gZGVzdGluYXRpb25fMDsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgQ29tbWFuZExpbmUgPSBjb21tYW5kTGluZTsNCiAgICAgICAgICAgIGlmIChhcmd1bWVudHMgIT0gbnVsbCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICB2YXIgZGVzdGluYXRpb25fMSA9IG5ldyBMaXN0PHN0cmluZz4oKTsNCiAgICAgICAgICAgICAgICBmb3JlYWNoICh2YXIgdmFsdWVfMSBpbiBhcmd1bWVudHMpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBkZXN0aW5hdGlvbl8xLkFkZCh2YWx1ZV8xKTsNCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICBBcmd1bWVudHMgPSBkZXN0aW5hdGlvbl8xOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBpZiAocmVzcG9uc2VGaWxlcyAhPSBudWxsKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHZhciBkZXN0aW5hdGlvbl8yID0gbmV3IExpc3Q8RmlsZUxvY2F0aW9uPigpOw0KICAgICAgICAgICAgICAgIGZvcmVhY2ggKHZhciB2YWx1ZV8yIGluIHJlc3BvbnNlRmlsZXMpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWVfMiA9PSBudWxsKQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICBkZXN0aW5hdGlvbl8yLkFkZChudWxsKTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBlbHNlDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGRlc3RpbmF0aW9uXzIuQWRkKG5ldyBGaWxlTG9jYXRpb24odmFsdWVfMikpOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgUmVzcG9uc2VGaWxlcyA9IGRlc3RpbmF0aW9uXzI7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIFN0YXJ0VGltZSA9IHN0YXJ0VGltZTsNCiAgICAgICAgICAgIEVuZFRpbWUgPSBlbmRUaW1lOw0KICAgICAgICAgICAgRXhpdENvZGUgPSBleGl0Q29kZTsNCiAgICAgICAgICAgIGlmICh0b29sTm90aWZpY2F0aW9ucyAhPSBudWxsKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHZhciBkZXN0aW5hdGlvbl8zID0gbmV3IExpc3Q8Tm90aWZpY2F0aW9uPigpOw0KICAgICAgICAgICAgICAgIGZvcmVhY2ggKHZhciB2YWx1ZV8zIGluIHRvb2xOb3RpZmljYXRpb25zKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlXzMgPT0gbnVsbCkNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgZGVzdGluYXRpb25fMy5BZGQobnVsbCk7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgZWxzZQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICBkZXN0aW5hdGlvbl8zLkFkZChuZXcgTm90aWZpY2F0aW9uKHZhbHVlXzMpKTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgIFRvb2xOb3RpZmljYXRpb25zID0gZGVzdGluYXRpb25fMzsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgaWYgKGNvbmZpZ3VyYXRpb25Ob3RpZmljYXRpb25zICE9IG51bGwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgdmFyIGRlc3RpbmF0aW9uXzQgPSBuZXcgTGlzdDxOb3RpZmljYXRpb24+KCk7DQogICAgICAgICAgICAgICAgZm9yZWFjaCAodmFyIHZhbHVlXzQgaW4gY29uZmlndXJhdGlvbk5vdGlmaWNhdGlvbnMpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWVfNCA9PSBudWxsKQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICBkZXN0aW5hdGlvbl80LkFkZChudWxsKTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBlbHNlDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGRlc3RpbmF0aW9uXzQuQWRkKG5ldyBOb3RpZmljYXRpb24odmFsdWVfNCkpOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgQ29uZmlndXJhdGlvbk5vdGlmaWNhdGlvbnMgPSBkZXN0aW5hdGlvbl80Ow0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBFeGl0Q29kZURlc2NyaXB0aW9uID0gZXhpdENvZGVEZXNjcmlwdGlvbjsNCiAgICAgICAgICAgIEV4aXRTaWduYWxOYW1lID0gZXhpdFNpZ25hbE5hbWU7DQogICAgICAgICAgICBFeGl0U2lnbmFsTnVtYmVyID0gZXhpdFNpZ25hbE51bWJlcjsNCiAgICAgICAgICAgIFByb2Nlc3NTdGFydEZhaWx1cmVNZXNzYWdlID0gcHJvY2Vzc1N0YXJ0RmFpbHVyZU1lc3NhZ2U7DQogICAgICAgICAgICBUb29sRXhlY3V0aW9uU3VjY2Vzc2Z1bCA9IHRvb2xFeGVjdXRpb25TdWNjZXNzZnVsOw0KICAgICAgICAgICAgTWFjaGluZSA9IG1hY2hpbmU7DQogICAgICAgICAgICBBY2NvdW50ID0gYWNjb3VudDsNCiAgICAgICAgICAgIFByb2Nlc3NJZCA9IHByb2Nlc3NJZDsNCiAgICAgICAgICAgIGlmIChleGVjdXRhYmxlTG9jYXRpb24gIT0gbnVsbCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBFeGVjdXRhYmxlTG9jYXRpb24gPSBuZXcgRmlsZUxvY2F0aW9uKGV4ZWN1dGFibGVMb2NhdGlvbik7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIFdvcmtpbmdEaXJlY3RvcnkgPSB3b3JraW5nRGlyZWN0b3J5Ow0KICAgICAgICAgICAgaWYgKGVudmlyb25tZW50VmFyaWFibGVzICE9IG51bGwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgRW52aXJvbm1lbnRWYXJpYWJsZXMgPSBuZXcgRGljdGlvbmFyeTxzdHJpbmcsIHN0cmluZz4oZW52aXJvbm1lbnRWYXJpYWJsZXMpOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBpZiAoc3RkaW4gIT0gbnVsbCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBTdGRpbiA9IG5ldyBGaWxlTG9jYXRpb24oc3RkaW4pOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBpZiAoc3Rkb3V0ICE9IG51bGwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgU3Rkb3V0ID0gbmV3IEZpbGVMb2NhdGlvbihzdGRvdXQpOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBpZiAoc3RkZXJyICE9IG51bGwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgU3RkZXJyID0gbmV3IEZpbGVMb2NhdGlvbihzdGRlcnIpOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBpZiAoc3Rkb3V0U3RkZXJyICE9IG51bGwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgU3Rkb3V0U3RkZXJyID0gbmV3IEZpbGVMb2NhdGlvbihzdGRvdXRTdGRlcnIpOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBpZiAocHJvcGVydGllcyAhPSBudWxsKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIFByb3BlcnRpZXMgPSBuZXcgRGljdGlvbmFyeTxzdHJpbmcsIFNlcmlhbGl6ZWRQcm9wZXJ0eUluZm8+KHByb3BlcnRpZXMpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgfQ0KfQ==" + { + "ruleId": "CA1062", + "message": { + "text": "In externally visible method 'Items.Items(Items)', validate parameter 'other' before using it." }, - "hashes": [ - { - "value": "B7F8F1E56B3DB529CB8B97DA4E67EC49", - "algorithm": "md5" - }, - { - "value": "83F087D5D609D90A60944362D701F07F920B2051", - "algorithm": "sha-1" - }, + "locations": [ { - "value": "F94D7323790A0DA57D309D51C4800E61D2F04567BE49D220713640979E3F6E90", - "algorithm": "sha-256" + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Microsoft.Json.Schema.dll", + "uriBaseId": "$(ProjectDir)", + "index": 1 + } + }, + "logicalLocations": [ + { + "index": 43, + "fullyQualifiedName": "microsoft.json.schema.dll!Microsoft.Json.Schema.Items..ctor(Microsoft.Json.Schema.Items)" + } + ] } - ] + ], + "partialFingerprints": { + "UniqueId": "0" + }, + "properties": { + "Category": "Microsoft.Design", + "FixCategory": "DependsOnFix" + } }, - "file:///E:/src/sarif-sdk-test/src/Sarif/Core/Invocation.cs": { - "mimeType": "text/x-csharp", - "contents": { - "binary": "77u/Ly8gQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQuICBBbGwgUmlnaHRzIFJlc2VydmVkLg0KLy8gTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlLiBTZWUgTElDRU5TRSBmaWxlIGluIHRoZSBwcm9qZWN0IHJvb3QgZm9yIGZ1bGwgbGljZW5zZSBpbmZvcm1hdGlvbi4NCg0KdXNpbmcgU3lzdGVtOw0KdXNpbmcgU3lzdGVtLkNvbGxlY3Rpb25zOw0KdXNpbmcgU3lzdGVtLkNvbGxlY3Rpb25zLkdlbmVyaWM7DQp1c2luZyBTeXN0ZW0uTGlucTsNCnVzaW5nIFN5c3RlbS5SZWZsZWN0aW9uOw0KDQpuYW1lc3BhY2UgTWljcm9zb2Z0LkNvZGVBbmFseXNpcy5TYXJpZg0Kew0KICAgIHB1YmxpYyBwYXJ0aWFsIGNsYXNzIEludm9jYXRpb24NCiAgICB7DQogICAgICAgIHByaXZhdGUgSUVudW1lcmFibGU8c3RyaW5nPiBQcm9wZXJ0aWVzVG9Mb2cge2dldDsgc2V0OyB9DQoNCiAgICAgICAgcHVibGljIHN0YXRpYyBJbnZvY2F0aW9uIENyZWF0ZSgNCiAgICAgICAgICAgIGJvb2wgZW1pdE1hY2hpbmVFbnZpcm9ubWVudCA9IGZhbHNlLA0KICAgICAgICAgICAgSUVudW1lcmFibGU8c3RyaW5nPiBwcm9wZXJ0aWVzVG9Mb2cgPSBudWxsKQ0KICAgICAgICB7DQogICAgICAgICAgICB2YXIgaW52b2NhdGlvbiA9IG5ldyBJbnZvY2F0aW9uDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgUHJvcGVydGllc1RvTG9nID0gcHJvcGVydGllc1RvTG9nPy5TZWxlY3QocCA9PiBwLlRvVXBwZXJJbnZhcmlhbnQoKSkuVG9MaXN0KCkNCiAgICAgICAgICAgIH07DQoNCiAgICAgICAgICAgIGludm9jYXRpb24uU3RhcnRUaW1lID0gRGF0ZVRpbWUuVXRjTm93Ow0KDQogICAgICAgICAgICBpZiAoaW52b2NhdGlvbi5TaG91bGRMb2cobmFtZW9mKFByb2Nlc3NJZCkpKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIGludm9jYXRpb24uUHJvY2Vzc0lkID0gU3lzdGVtLkRpYWdub3N0aWNzLlByb2Nlc3MuR2V0Q3VycmVudFByb2Nlc3MoKS5JZDsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgaWYgKGludm9jYXRpb24uU2hvdWxkTG9nKG5hbWVvZihXb3JraW5nRGlyZWN0b3J5KSkpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgaW52b2NhdGlvbi5Xb3JraW5nRGlyZWN0b3J5ID0gRW52aXJvbm1lbnQuQ3VycmVudERpcmVjdG9yeTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgaWYgKGludm9jYXRpb24uU2hvdWxkTG9nKG5hbWVvZihDb21tYW5kTGluZSkpKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIGludm9jYXRpb24uQ29tbWFuZExpbmUgPSBFbnZpcm9ubWVudC5Db21tYW5kTGluZTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgaWYgKGVtaXRNYWNoaW5lRW52aXJvbm1lbnQpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgaW52b2NhdGlvbi5NYWNoaW5lID0gRW52aXJvbm1lbnQuTWFjaGluZU5hbWU7DQogICAgICAgICAgICAgICAgaW52b2NhdGlvbi5BY2NvdW50ID0gRW52aXJvbm1lbnQuVXNlck5hbWU7DQogICAgICAgICAgICAgICAgaW52b2NhdGlvbi5FbnZpcm9ubWVudFZhcmlhYmxlcyA9IENvcHlFbnZpcm9ubWVudFZhcmlhYmxlcygpOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBpZiAoaW52b2NhdGlvbi5TaG91bGRMb2cobmFtZW9mKEV4ZWN1dGFibGVMb2NhdGlvbikpKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIEFzc2VtYmx5IGFzc2VtYmx5ID0gQXNzZW1ibHkuR2V0RW50cnlBc3NlbWJseSgpID8/IEFzc2VtYmx5LkdldEV4ZWN1dGluZ0Fzc2VtYmx5KCk7DQogICAgICAgICAgICAgICAgaW52b2NhdGlvbi5FeGVjdXRhYmxlTG9jYXRpb24uVXJpID0gbmV3IFVyaShhc3NlbWJseS5Mb2NhdGlvbik7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIHJldHVybiBpbnZvY2F0aW9uOw0KICAgICAgICB9DQoNCiAgICAgICAgcHJpdmF0ZSBzdGF0aWMgSURpY3Rpb25hcnk8c3RyaW5nLCBzdHJpbmc+IENvcHlFbnZpcm9ubWVudFZhcmlhYmxlcygpDQogICAgICAgIHsNCiAgICAgICAgICAgIHZhciByZXN1bHQgPSBuZXcgRGljdGlvbmFyeTxzdHJpbmcsIHN0cmluZz4oKTsNCiAgICAgICAgICAgIHZhciB2YXJpYWJsZXMgPSBFbnZpcm9ubWVudC5HZXRFbnZpcm9ubWVudFZhcmlhYmxlcygpOw0KDQogICAgICAgICAgICBmb3JlYWNoIChEaWN0aW9uYXJ5RW50cnkgZW50cnkgaW4gdmFyaWFibGVzKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHJlc3VsdFsoc3RyaW5nKWVudHJ5LktleV0gPSAoc3RyaW5nKWVudHJ5LlZhbHVlOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICByZXR1cm4gcmVzdWx0Ow0KICAgICAgICB9DQoNCiAgICAgICAgcHJpdmF0ZSBib29sIFNob3VsZExvZyhzdHJpbmcgcHJvcGVydHlOYW1lKQ0KICAgICAgICB7DQogICAgICAgICAgICByZXR1cm4gUHJvcGVydGllc1RvTG9nICE9IG51bGwgJiYgUHJvcGVydGllc1RvTG9nLkNvbnRhaW5zKHByb3BlcnR5TmFtZS5Ub1VwcGVySW52YXJpYW50KCkpOw0KICAgICAgICB9DQogICAgfQ0KfQ0K" + { + "ruleId": "CA2227", + "message": { + "text": "Change 'Items.Schemas' to be read-only by removing the property setter." }, - "hashes": [ - { - "value": "8F2CE7A51BEDCDA0B96E20EAFA68B16F", - "algorithm": "md5" - }, - { - "value": "30BDAA3886EB9ED2B7E10607E97AC57EB3D1751D", - "algorithm": "sha-1" - }, + "locations": [ { - "value": "68BDC2EF50BC992E6AF2F81E5C6B88CFB24ED794B4C9976B5B5A75186F1A228D", - "algorithm": "sha-256" + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Microsoft.Json.Schema.dll", + "uriBaseId": "$(ProjectDir)", + "index": 1 + } + }, + "logicalLocations": [ + { + "index": 44, + "fullyQualifiedName": "microsoft.json.schema.dll!Microsoft.Json.Schema.Items.Schemas" + } + ] } - ] + ], + "properties": { + "Category": "Microsoft.Usage", + "FixCategory": "Breaking" + } }, - "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/InvocationEqualityComparer.cs": { - "mimeType": "text/x-csharp", - "contents": { - "binary": "Ly8gQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQuICBBbGwgUmlnaHRzIFJlc2VydmVkLg0KLy8gTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlLiBTZWUgTElDRU5TRSBmaWxlIGluIHRoZSBwcm9qZWN0IHJvb3QgZm9yIGZ1bGwgbGljZW5zZSBpbmZvcm1hdGlvbi4NCg0KdXNpbmcgU3lzdGVtOw0KdXNpbmcgU3lzdGVtLkNvZGVEb20uQ29tcGlsZXI7DQp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsNCnVzaW5nIE1pY3Jvc29mdC5Db2RlQW5hbHlzaXMuU2FyaWYuUmVhZGVyczsNCg0KbmFtZXNwYWNlIE1pY3Jvc29mdC5Db2RlQW5hbHlzaXMuU2FyaWYNCnsNCiAgICAvLy8gPHN1bW1hcnk+DQogICAgLy8vIERlZmluZXMgbWV0aG9kcyB0byBzdXBwb3J0IHRoZSBjb21wYXJpc29uIG9mIG9iamVjdHMgb2YgdHlwZSBJbnZvY2F0aW9uIGZvciBlcXVhbGl0eS4NCiAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgIFtHZW5lcmF0ZWRDb2RlKCJNaWNyb3NvZnQuSnNvbi5TY2hlbWEuVG9Eb3ROZXQiLCAiMC41Ni4wLjAiKV0NCiAgICBpbnRlcm5hbCBzZWFsZWQgY2xhc3MgSW52b2NhdGlvbkVxdWFsaXR5Q29tcGFyZXIgOiBJRXF1YWxpdHlDb21wYXJlcjxJbnZvY2F0aW9uPg0KICAgIHsNCiAgICAgICAgaW50ZXJuYWwgc3RhdGljIHJlYWRvbmx5IEludm9jYXRpb25FcXVhbGl0eUNvbXBhcmVyIEluc3RhbmNlID0gbmV3IEludm9jYXRpb25FcXVhbGl0eUNvbXBhcmVyKCk7DQoNCiAgICAgICAgcHVibGljIGJvb2wgRXF1YWxzKEludm9jYXRpb24gbGVmdCwgSW52b2NhdGlvbiByaWdodCkNCiAgICAgICAgew0KICAgICAgICAgICAgaWYgKFJlZmVyZW5jZUVxdWFscyhsZWZ0LCByaWdodCkpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIGlmIChSZWZlcmVuY2VFcXVhbHMobGVmdCwgbnVsbCkgfHwgUmVmZXJlbmNlRXF1YWxzKHJpZ2h0LCBudWxsKSkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIGlmICghb2JqZWN0LlJlZmVyZW5jZUVxdWFscyhsZWZ0LkF0dGFjaG1lbnRzLCByaWdodC5BdHRhY2htZW50cykpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgaWYgKGxlZnQuQXR0YWNobWVudHMgPT0gbnVsbCB8fCByaWdodC5BdHRhY2htZW50cyA9PSBudWxsKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgIGlmIChsZWZ0LkF0dGFjaG1lbnRzLkNvdW50ICE9IHJpZ2h0LkF0dGFjaG1lbnRzLkNvdW50KQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgIGZvciAoaW50IGluZGV4XzAgPSAwOyBpbmRleF8wIDwgbGVmdC5BdHRhY2htZW50cy5Db3VudDsgKytpbmRleF8wKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgaWYgKCFBdHRhY2htZW50LlZhbHVlQ29tcGFyZXIuRXF1YWxzKGxlZnQuQXR0YWNobWVudHNbaW5kZXhfMF0sIHJpZ2h0LkF0dGFjaG1lbnRzW2luZGV4XzBdKSkNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBpZiAobGVmdC5Db21tYW5kTGluZSAhPSByaWdodC5Db21tYW5kTGluZSkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIGlmICghb2JqZWN0LlJlZmVyZW5jZUVxdWFscyhsZWZ0LkFyZ3VtZW50cywgcmlnaHQuQXJndW1lbnRzKSkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBpZiAobGVmdC5Bcmd1bWVudHMgPT0gbnVsbCB8fCByaWdodC5Bcmd1bWVudHMgPT0gbnVsbCkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICBpZiAobGVmdC5Bcmd1bWVudHMuQ291bnQgIT0gcmlnaHQuQXJndW1lbnRzLkNvdW50KQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgIGZvciAoaW50IGluZGV4XzEgPSAwOyBpbmRleF8xIDwgbGVmdC5Bcmd1bWVudHMuQ291bnQ7ICsraW5kZXhfMSkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIGlmIChsZWZ0LkFyZ3VtZW50c1tpbmRleF8xXSAhPSByaWdodC5Bcmd1bWVudHNbaW5kZXhfMV0pDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgaWYgKCFvYmplY3QuUmVmZXJlbmNlRXF1YWxzKGxlZnQuUmVzcG9uc2VGaWxlcywgcmlnaHQuUmVzcG9uc2VGaWxlcykpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgaWYgKGxlZnQuUmVzcG9uc2VGaWxlcyA9PSBudWxsIHx8IHJpZ2h0LlJlc3BvbnNlRmlsZXMgPT0gbnVsbCkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICBpZiAobGVmdC5SZXNwb25zZUZpbGVzLkNvdW50ICE9IHJpZ2h0LlJlc3BvbnNlRmlsZXMuQ291bnQpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgZm9yIChpbnQgaW5kZXhfMiA9IDA7IGluZGV4XzIgPCBsZWZ0LlJlc3BvbnNlRmlsZXMuQ291bnQ7ICsraW5kZXhfMikNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIGlmICghRmlsZUxvY2F0aW9uLlZhbHVlQ29tcGFyZXIuRXF1YWxzKGxlZnQuUmVzcG9uc2VGaWxlc1tpbmRleF8yXSwgcmlnaHQuUmVzcG9uc2VGaWxlc1tpbmRleF8yXSkpDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgaWYgKGxlZnQuU3RhcnRUaW1lICE9IHJpZ2h0LlN0YXJ0VGltZSkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIGlmIChsZWZ0LkVuZFRpbWUgIT0gcmlnaHQuRW5kVGltZSkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIGlmIChsZWZ0LkV4aXRDb2RlICE9IHJpZ2h0LkV4aXRDb2RlKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgaWYgKCFvYmplY3QuUmVmZXJlbmNlRXF1YWxzKGxlZnQuVG9vbE5vdGlmaWNhdGlvbnMsIHJpZ2h0LlRvb2xOb3RpZmljYXRpb25zKSkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBpZiAobGVmdC5Ub29sTm90aWZpY2F0aW9ucyA9PSBudWxsIHx8IHJpZ2h0LlRvb2xOb3RpZmljYXRpb25zID09IG51bGwpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgaWYgKGxlZnQuVG9vbE5vdGlmaWNhdGlvbnMuQ291bnQgIT0gcmlnaHQuVG9vbE5vdGlmaWNhdGlvbnMuQ291bnQpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgZm9yIChpbnQgaW5kZXhfMyA9IDA7IGluZGV4XzMgPCBsZWZ0LlRvb2xOb3RpZmljYXRpb25zLkNvdW50OyArK2luZGV4XzMpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBpZiAoIU5vdGlmaWNhdGlvbi5WYWx1ZUNvbXBhcmVyLkVxdWFscyhsZWZ0LlRvb2xOb3RpZmljYXRpb25zW2luZGV4XzNdLCByaWdodC5Ub29sTm90aWZpY2F0aW9uc1tpbmRleF8zXSkpDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgaWYgKCFvYmplY3QuUmVmZXJlbmNlRXF1YWxzKGxlZnQuQ29uZmlndXJhdGlvbk5vdGlmaWNhdGlvbnMsIHJpZ2h0LkNvbmZpZ3VyYXRpb25Ob3RpZmljYXRpb25zKSkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBpZiAobGVmdC5Db25maWd1cmF0aW9uTm90aWZpY2F0aW9ucyA9PSBudWxsIHx8IHJpZ2h0LkNvbmZpZ3VyYXRpb25Ob3RpZmljYXRpb25zID09IG51bGwpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgaWYgKGxlZnQuQ29uZmlndXJhdGlvbk5vdGlmaWNhdGlvbnMuQ291bnQgIT0gcmlnaHQuQ29uZmlndXJhdGlvbk5vdGlmaWNhdGlvbnMuQ291bnQpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgZm9yIChpbnQgaW5kZXhfNCA9IDA7IGluZGV4XzQgPCBsZWZ0LkNvbmZpZ3VyYXRpb25Ob3RpZmljYXRpb25zLkNvdW50OyArK2luZGV4XzQpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBpZiAoIU5vdGlmaWNhdGlvbi5WYWx1ZUNvbXBhcmVyLkVxdWFscyhsZWZ0LkNvbmZpZ3VyYXRpb25Ob3RpZmljYXRpb25zW2luZGV4XzRdLCByaWdodC5Db25maWd1cmF0aW9uTm90aWZpY2F0aW9uc1tpbmRleF80XSkpDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgaWYgKGxlZnQuRXhpdENvZGVEZXNjcmlwdGlvbiAhPSByaWdodC5FeGl0Q29kZURlc2NyaXB0aW9uKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgaWYgKGxlZnQuRXhpdFNpZ25hbE5hbWUgIT0gcmlnaHQuRXhpdFNpZ25hbE5hbWUpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBpZiAobGVmdC5FeGl0U2lnbmFsTnVtYmVyICE9IHJpZ2h0LkV4aXRTaWduYWxOdW1iZXIpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBpZiAobGVmdC5Qcm9jZXNzU3RhcnRGYWlsdXJlTWVzc2FnZSAhPSByaWdodC5Qcm9jZXNzU3RhcnRGYWlsdXJlTWVzc2FnZSkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIGlmIChsZWZ0LlRvb2xFeGVjdXRpb25TdWNjZXNzZnVsICE9IHJpZ2h0LlRvb2xFeGVjdXRpb25TdWNjZXNzZnVsKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgaWYgKGxlZnQuTWFjaGluZSAhPSByaWdodC5NYWNoaW5lKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgaWYgKGxlZnQuQWNjb3VudCAhPSByaWdodC5BY2NvdW50KQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgaWYgKGxlZnQuUHJvY2Vzc0lkICE9IHJpZ2h0LlByb2Nlc3NJZCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIGlmICghRmlsZUxvY2F0aW9uLlZhbHVlQ29tcGFyZXIuRXF1YWxzKGxlZnQuRXhlY3V0YWJsZUxvY2F0aW9uLCByaWdodC5FeGVjdXRhYmxlTG9jYXRpb24pKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgaWYgKGxlZnQuV29ya2luZ0RpcmVjdG9yeSAhPSByaWdodC5Xb3JraW5nRGlyZWN0b3J5KQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgaWYgKCFvYmplY3QuUmVmZXJlbmNlRXF1YWxzKGxlZnQuRW52aXJvbm1lbnRWYXJpYWJsZXMsIHJpZ2h0LkVudmlyb25tZW50VmFyaWFibGVzKSkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBpZiAobGVmdC5FbnZpcm9ubWVudFZhcmlhYmxlcyA9PSBudWxsIHx8IHJpZ2h0LkVudmlyb25tZW50VmFyaWFibGVzID09IG51bGwgfHwgbGVmdC5FbnZpcm9ubWVudFZhcmlhYmxlcy5Db3VudCAhPSByaWdodC5FbnZpcm9ubWVudFZhcmlhYmxlcy5Db3VudCkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICBmb3JlYWNoICh2YXIgdmFsdWVfMCBpbiBsZWZ0LkVudmlyb25tZW50VmFyaWFibGVzKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgc3RyaW5nIHZhbHVlXzE7DQogICAgICAgICAgICAgICAgICAgIGlmICghcmlnaHQuRW52aXJvbm1lbnRWYXJpYWJsZXMuVHJ5R2V0VmFsdWUodmFsdWVfMC5LZXksIG91dCB2YWx1ZV8xKSkNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlXzAuVmFsdWUgIT0gdmFsdWVfMSkNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBpZiAoIUZpbGVMb2NhdGlvbi5WYWx1ZUNvbXBhcmVyLkVxdWFscyhsZWZ0LlN0ZGluLCByaWdodC5TdGRpbikpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBpZiAoIUZpbGVMb2NhdGlvbi5WYWx1ZUNvbXBhcmVyLkVxdWFscyhsZWZ0LlN0ZG91dCwgcmlnaHQuU3Rkb3V0KSkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIGlmICghRmlsZUxvY2F0aW9uLlZhbHVlQ29tcGFyZXIuRXF1YWxzKGxlZnQuU3RkZXJyLCByaWdodC5TdGRlcnIpKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgaWYgKCFGaWxlTG9jYXRpb24uVmFsdWVDb21wYXJlci5FcXVhbHMobGVmdC5TdGRvdXRTdGRlcnIsIHJpZ2h0LlN0ZG91dFN0ZGVycikpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBpZiAoIW9iamVjdC5SZWZlcmVuY2VFcXVhbHMobGVmdC5Qcm9wZXJ0aWVzLCByaWdodC5Qcm9wZXJ0aWVzKSkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBpZiAobGVmdC5Qcm9wZXJ0aWVzID09IG51bGwgfHwgcmlnaHQuUHJvcGVydGllcyA9PSBudWxsIHx8IGxlZnQuUHJvcGVydGllcy5Db3VudCAhPSByaWdodC5Qcm9wZXJ0aWVzLkNvdW50KQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgIGZvcmVhY2ggKHZhciB2YWx1ZV8yIGluIGxlZnQuUHJvcGVydGllcykNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIFNlcmlhbGl6ZWRQcm9wZXJ0eUluZm8gdmFsdWVfMzsNCiAgICAgICAgICAgICAgICAgICAgaWYgKCFyaWdodC5Qcm9wZXJ0aWVzLlRyeUdldFZhbHVlKHZhbHVlXzIuS2V5LCBvdXQgdmFsdWVfMykpDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgICAgIGlmICghb2JqZWN0LkVxdWFscyh2YWx1ZV8yLlZhbHVlLCB2YWx1ZV8zKSkNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICByZXR1cm4gdHJ1ZTsNCiAgICAgICAgfQ0KDQogICAgICAgIHB1YmxpYyBpbnQgR2V0SGFzaENvZGUoSW52b2NhdGlvbiBvYmopDQogICAgICAgIHsNCiAgICAgICAgICAgIGlmIChSZWZlcmVuY2VFcXVhbHMob2JqLCBudWxsKSkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gMDsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgaW50IHJlc3VsdCA9IDE3Ow0KICAgICAgICAgICAgdW5jaGVja2VkDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgaWYgKG9iai5BdHRhY2htZW50cyAhPSBudWxsKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgZm9yZWFjaCAodmFyIHZhbHVlXzQgaW4gb2JqLkF0dGFjaG1lbnRzKQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSByZXN1bHQgKiAzMTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZV80ICE9IG51bGwpDQogICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gKHJlc3VsdCAqIDMxKSArIHZhbHVlXzQuVmFsdWVHZXRIYXNoQ29kZSgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgaWYgKG9iai5Db21tYW5kTGluZSAhPSBudWxsKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gKHJlc3VsdCAqIDMxKSArIG9iai5Db21tYW5kTGluZS5HZXRIYXNoQ29kZSgpOw0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgIGlmIChvYmouQXJndW1lbnRzICE9IG51bGwpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBmb3JlYWNoICh2YXIgdmFsdWVfNSBpbiBvYmouQXJndW1lbnRzKQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSByZXN1bHQgKiAzMTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZV81ICE9IG51bGwpDQogICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gKHJlc3VsdCAqIDMxKSArIHZhbHVlXzUuR2V0SGFzaENvZGUoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgIGlmIChvYmouUmVzcG9uc2VGaWxlcyAhPSBudWxsKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgZm9yZWFjaCAodmFyIHZhbHVlXzYgaW4gb2JqLlJlc3BvbnNlRmlsZXMpDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IHJlc3VsdCAqIDMxOw0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlXzYgIT0gbnVsbCkNCiAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSAocmVzdWx0ICogMzEpICsgdmFsdWVfNi5WYWx1ZUdldEhhc2hDb2RlKCk7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICByZXN1bHQgPSAocmVzdWx0ICogMzEpICsgb2JqLlN0YXJ0VGltZS5HZXRIYXNoQ29kZSgpOw0KICAgICAgICAgICAgICAgIHJlc3VsdCA9IChyZXN1bHQgKiAzMSkgKyBvYmouRW5kVGltZS5HZXRIYXNoQ29kZSgpOw0KICAgICAgICAgICAgICAgIHJlc3VsdCA9IChyZXN1bHQgKiAzMSkgKyBvYmouRXhpdENvZGUuR2V0SGFzaENvZGUoKTsNCiAgICAgICAgICAgICAgICBpZiAob2JqLlRvb2xOb3RpZmljYXRpb25zICE9IG51bGwpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBmb3JlYWNoICh2YXIgdmFsdWVfNyBpbiBvYmouVG9vbE5vdGlmaWNhdGlvbnMpDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IHJlc3VsdCAqIDMxOw0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlXzcgIT0gbnVsbCkNCiAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSAocmVzdWx0ICogMzEpICsgdmFsdWVfNy5WYWx1ZUdldEhhc2hDb2RlKCk7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICBpZiAob2JqLkNvbmZpZ3VyYXRpb25Ob3RpZmljYXRpb25zICE9IG51bGwpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBmb3JlYWNoICh2YXIgdmFsdWVfOCBpbiBvYmouQ29uZmlndXJhdGlvbk5vdGlmaWNhdGlvbnMpDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IHJlc3VsdCAqIDMxOw0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlXzggIT0gbnVsbCkNCiAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSAocmVzdWx0ICogMzEpICsgdmFsdWVfOC5WYWx1ZUdldEhhc2hDb2RlKCk7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICBpZiAob2JqLkV4aXRDb2RlRGVzY3JpcHRpb24gIT0gbnVsbCkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IChyZXN1bHQgKiAzMSkgKyBvYmouRXhpdENvZGVEZXNjcmlwdGlvbi5HZXRIYXNoQ29kZSgpOw0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgIGlmIChvYmouRXhpdFNpZ25hbE5hbWUgIT0gbnVsbCkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IChyZXN1bHQgKiAzMSkgKyBvYmouRXhpdFNpZ25hbE5hbWUuR2V0SGFzaENvZGUoKTsNCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICByZXN1bHQgPSAocmVzdWx0ICogMzEpICsgb2JqLkV4aXRTaWduYWxOdW1iZXIuR2V0SGFzaENvZGUoKTsNCiAgICAgICAgICAgICAgICBpZiAob2JqLlByb2Nlc3NTdGFydEZhaWx1cmVNZXNzYWdlICE9IG51bGwpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSAocmVzdWx0ICogMzEpICsgb2JqLlByb2Nlc3NTdGFydEZhaWx1cmVNZXNzYWdlLkdldEhhc2hDb2RlKCk7DQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgcmVzdWx0ID0gKHJlc3VsdCAqIDMxKSArIG9iai5Ub29sRXhlY3V0aW9uU3VjY2Vzc2Z1bC5HZXRIYXNoQ29kZSgpOw0KICAgICAgICAgICAgICAgIGlmIChvYmouTWFjaGluZSAhPSBudWxsKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gKHJlc3VsdCAqIDMxKSArIG9iai5NYWNoaW5lLkdldEhhc2hDb2RlKCk7DQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgaWYgKG9iai5BY2NvdW50ICE9IG51bGwpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSAocmVzdWx0ICogMzEpICsgb2JqLkFjY291bnQuR2V0SGFzaENvZGUoKTsNCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICByZXN1bHQgPSAocmVzdWx0ICogMzEpICsgb2JqLlByb2Nlc3NJZC5HZXRIYXNoQ29kZSgpOw0KICAgICAgICAgICAgICAgIGlmIChvYmouRXhlY3V0YWJsZUxvY2F0aW9uICE9IG51bGwpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSAocmVzdWx0ICogMzEpICsgb2JqLkV4ZWN1dGFibGVMb2NhdGlvbi5WYWx1ZUdldEhhc2hDb2RlKCk7DQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgaWYgKG9iai5Xb3JraW5nRGlyZWN0b3J5ICE9IG51bGwpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSAocmVzdWx0ICogMzEpICsgb2JqLldvcmtpbmdEaXJlY3RvcnkuR2V0SGFzaENvZGUoKTsNCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICBpZiAob2JqLkVudmlyb25tZW50VmFyaWFibGVzICE9IG51bGwpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAvLyBVc2UgeG9yIGZvciBkaWN0aW9uYXJpZXMgdG8gYmUgb3JkZXItaW5kZXBlbmRlbnQuDQogICAgICAgICAgICAgICAgICAgIGludCB4b3JfMCA9IDA7DQogICAgICAgICAgICAgICAgICAgIGZvcmVhY2ggKHZhciB2YWx1ZV85IGluIG9iai5FbnZpcm9ubWVudFZhcmlhYmxlcykNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgeG9yXzAgXj0gdmFsdWVfOS5LZXkuR2V0SGFzaENvZGUoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZV85LlZhbHVlICE9IG51bGwpDQogICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgeG9yXzAgXj0gdmFsdWVfOS5WYWx1ZS5HZXRIYXNoQ29kZSgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gKHJlc3VsdCAqIDMxKSArIHhvcl8wOw0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgIGlmIChvYmouU3RkaW4gIT0gbnVsbCkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IChyZXN1bHQgKiAzMSkgKyBvYmouU3RkaW4uVmFsdWVHZXRIYXNoQ29kZSgpOw0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgIGlmIChvYmouU3Rkb3V0ICE9IG51bGwpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSAocmVzdWx0ICogMzEpICsgb2JqLlN0ZG91dC5WYWx1ZUdldEhhc2hDb2RlKCk7DQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgaWYgKG9iai5TdGRlcnIgIT0gbnVsbCkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IChyZXN1bHQgKiAzMSkgKyBvYmouU3RkZXJyLlZhbHVlR2V0SGFzaENvZGUoKTsNCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICBpZiAob2JqLlN0ZG91dFN0ZGVyciAhPSBudWxsKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gKHJlc3VsdCAqIDMxKSArIG9iai5TdGRvdXRTdGRlcnIuVmFsdWVHZXRIYXNoQ29kZSgpOw0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgIGlmIChvYmouUHJvcGVydGllcyAhPSBudWxsKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgLy8gVXNlIHhvciBmb3IgZGljdGlvbmFyaWVzIHRvIGJlIG9yZGVyLWluZGVwZW5kZW50Lg0KICAgICAgICAgICAgICAgICAgICBpbnQgeG9yXzEgPSAwOw0KICAgICAgICAgICAgICAgICAgICBmb3JlYWNoICh2YXIgdmFsdWVfMTAgaW4gb2JqLlByb3BlcnRpZXMpDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHhvcl8xIF49IHZhbHVlXzEwLktleS5HZXRIYXNoQ29kZSgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlXzEwLlZhbHVlICE9IG51bGwpDQogICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgeG9yXzEgXj0gdmFsdWVfMTAuVmFsdWUuR2V0SGFzaENvZGUoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IChyZXN1bHQgKiAzMSkgKyB4b3JfMTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIHJldHVybiByZXN1bHQ7DQogICAgICAgIH0NCiAgICB9DQp9" + { + "ruleId": "CA2104", + "level": "error", + "message": { + "text": "Remove the read-only designation from 'ItemsConverter.Instance' or change the field to one that is an immutable reference type. If the reference type 'ItemsConverter' is, in fact, immutable, exclude this message." }, - "hashes": [ - { - "value": "E3D8FCCB82FB0787C532DCB3F4078AEE", - "algorithm": "md5" - }, - { - "value": "ECBEA09D7A59885EF430C7201442E4BAC8B871FE", - "algorithm": "sha-1" - }, + "locations": [ { - "value": "5616A76578C3D6C3F402B3CB06947A764FFAD849FA4159B71F1EDD7DE150713A", - "algorithm": "sha-256" + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Microsoft.Json.Schema.dll", + "uriBaseId": "$(ProjectDir)", + "index": 1 + } + }, + "logicalLocations": [ + { + "index": 46, + "fullyQualifiedName": "microsoft.json.schema.dll!Microsoft.Json.Schema.ItemsConverter.Instance" + } + ] } - ] + ], + "properties": { + "Category": "Microsoft.Security", + "FixCategory": "NonBreaking" + } }, - "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/Location.cs": { - "mimeType": "text/x-csharp", - "contents": { - "binary": "Ly8gQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQuICBBbGwgUmlnaHRzIFJlc2VydmVkLg0KLy8gTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlLiBTZWUgTElDRU5TRSBmaWxlIGluIHRoZSBwcm9qZWN0IHJvb3QgZm9yIGZ1bGwgbGljZW5zZSBpbmZvcm1hdGlvbi4NCg0KdXNpbmcgU3lzdGVtOw0KdXNpbmcgU3lzdGVtLkNvZGVEb20uQ29tcGlsZXI7DQp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsNCnVzaW5nIFN5c3RlbS5SdW50aW1lLlNlcmlhbGl6YXRpb247DQp1c2luZyBNaWNyb3NvZnQuQ29kZUFuYWx5c2lzLlNhcmlmLlJlYWRlcnM7DQoNCm5hbWVzcGFjZSBNaWNyb3NvZnQuQ29kZUFuYWx5c2lzLlNhcmlmDQp7DQogICAgLy8vIDxzdW1tYXJ5Pg0KICAgIC8vLyBUaGUgbG9jYXRpb24gd2hlcmUgYW4gYW5hbHlzaXMgdG9vbCBwcm9kdWNlZCBhIHJlc3VsdC4NCiAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgIFtEYXRhQ29udHJhY3RdDQogICAgW0dlbmVyYXRlZENvZGUoIk1pY3Jvc29mdC5Kc29uLlNjaGVtYS5Ub0RvdE5ldCIsICIwLjU2LjAuMCIpXQ0KICAgIHB1YmxpYyBwYXJ0aWFsIGNsYXNzIExvY2F0aW9uIDogUHJvcGVydHlCYWdIb2xkZXIsIElTYXJpZk5vZGUNCiAgICB7DQogICAgICAgIHB1YmxpYyBzdGF0aWMgSUVxdWFsaXR5Q29tcGFyZXI8TG9jYXRpb24+IFZhbHVlQ29tcGFyZXIgPT4gTG9jYXRpb25FcXVhbGl0eUNvbXBhcmVyLkluc3RhbmNlOw0KDQogICAgICAgIHB1YmxpYyBib29sIFZhbHVlRXF1YWxzKExvY2F0aW9uIG90aGVyKSA9PiBWYWx1ZUNvbXBhcmVyLkVxdWFscyh0aGlzLCBvdGhlcik7DQogICAgICAgIHB1YmxpYyBpbnQgVmFsdWVHZXRIYXNoQ29kZSgpID0+IFZhbHVlQ29tcGFyZXIuR2V0SGFzaENvZGUodGhpcyk7DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gR2V0cyBhIHZhbHVlIGluZGljYXRpbmcgdGhlIHR5cGUgb2Ygb2JqZWN0IGltcGxlbWVudGluZyA8c2VlIGNyZWY9IklTYXJpZk5vZGUiIC8+Lg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICBwdWJsaWMgU2FyaWZOb2RlS2luZCBTYXJpZk5vZGVLaW5kDQogICAgICAgIHsNCiAgICAgICAgICAgIGdldA0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHJldHVybiBTYXJpZk5vZGVLaW5kLkxvY2F0aW9uOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gSWRlbnRpZmllcyB0aGUgZmlsZSB3aGVyZSB0aGUgYW5hbHlzaXMgdG9vbCBwcm9kdWNlZCB0aGUgcmVzdWx0Lg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICBbRGF0YU1lbWJlcihOYW1lID0gInBoeXNpY2FsTG9jYXRpb24iLCBJc1JlcXVpcmVkID0gZmFsc2UsIEVtaXREZWZhdWx0VmFsdWUgPSBmYWxzZSldDQogICAgICAgIHB1YmxpYyBQaHlzaWNhbExvY2F0aW9uIFBoeXNpY2FsTG9jYXRpb24geyBnZXQ7IHNldDsgfQ0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIFRoZSBodW1hbi1yZWFkYWJsZSBmdWxseSBxdWFsaWZpZWQgbmFtZSBvZiB0aGUgbG9naWNhbCBsb2NhdGlvbiB3aGVyZSB0aGUgYW5hbHlzaXMgdG9vbCBwcm9kdWNlZCB0aGUgcmVzdWx0Lg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICBbRGF0YU1lbWJlcihOYW1lID0gImZ1bGx5UXVhbGlmaWVkTG9naWNhbE5hbWUiLCBJc1JlcXVpcmVkID0gZmFsc2UsIEVtaXREZWZhdWx0VmFsdWUgPSBmYWxzZSldDQogICAgICAgIHB1YmxpYyBzdHJpbmcgRnVsbHlRdWFsaWZpZWRMb2dpY2FsTmFtZSB7IGdldDsgc2V0OyB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gQSBtZXNzYWdlIHJlbGV2YW50IHRvIHRoZSBsb2NhdGlvbi4NCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgW0RhdGFNZW1iZXIoTmFtZSA9ICJtZXNzYWdlIiwgSXNSZXF1aXJlZCA9IGZhbHNlLCBFbWl0RGVmYXVsdFZhbHVlID0gZmFsc2UpXQ0KICAgICAgICBwdWJsaWMgTWVzc2FnZSBNZXNzYWdlIHsgZ2V0OyBzZXQ7IH0NCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBBIHNldCBvZiByZWdpb25zIHJlbGV2YW50IHRvIHRoZSBsb2NhdGlvbi4NCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgW0RhdGFNZW1iZXIoTmFtZSA9ICJhbm5vdGF0aW9ucyIsIElzUmVxdWlyZWQgPSBmYWxzZSwgRW1pdERlZmF1bHRWYWx1ZSA9IGZhbHNlKV0NCiAgICAgICAgcHVibGljIElMaXN0PFJlZ2lvbj4gQW5ub3RhdGlvbnMgeyBnZXQ7IHNldDsgfQ0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIEtleS92YWx1ZSBwYWlycyB0aGF0IHByb3ZpZGUgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiBhYm91dCB0aGUgbG9jYXRpb24uDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIFtEYXRhTWVtYmVyKE5hbWUgPSAicHJvcGVydGllcyIsIElzUmVxdWlyZWQgPSBmYWxzZSwgRW1pdERlZmF1bHRWYWx1ZSA9IGZhbHNlKV0NCiAgICAgICAgaW50ZXJuYWwgb3ZlcnJpZGUgSURpY3Rpb25hcnk8c3RyaW5nLCBTZXJpYWxpemVkUHJvcGVydHlJbmZvPiBQcm9wZXJ0aWVzIHsgZ2V0OyBzZXQ7IH0NCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBJbml0aWFsaXplcyBhIG5ldyBpbnN0YW5jZSBvZiB0aGUgPHNlZSBjcmVmPSJMb2NhdGlvbiIgLz4gY2xhc3MuDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIHB1YmxpYyBMb2NhdGlvbigpDQogICAgICAgIHsNCiAgICAgICAgfQ0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIEluaXRpYWxpemVzIGEgbmV3IGluc3RhbmNlIG9mIHRoZSA8c2VlIGNyZWY9IkxvY2F0aW9uIiAvPiBjbGFzcyBmcm9tIHRoZSBzdXBwbGllZCB2YWx1ZXMuDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIC8vLyA8cGFyYW0gbmFtZT0icGh5c2ljYWxMb2NhdGlvbiI+DQogICAgICAgIC8vLyBBbiBpbml0aWFsaXphdGlvbiB2YWx1ZSBmb3IgdGhlIDxzZWUgY3JlZj0iUDogUGh5c2ljYWxMb2NhdGlvbiIgLz4gcHJvcGVydHkuDQogICAgICAgIC8vLyA8L3BhcmFtPg0KICAgICAgICAvLy8gPHBhcmFtIG5hbWU9ImZ1bGx5UXVhbGlmaWVkTG9naWNhbE5hbWUiPg0KICAgICAgICAvLy8gQW4gaW5pdGlhbGl6YXRpb24gdmFsdWUgZm9yIHRoZSA8c2VlIGNyZWY9IlA6IEZ1bGx5UXVhbGlmaWVkTG9naWNhbE5hbWUiIC8+IHByb3BlcnR5Lg0KICAgICAgICAvLy8gPC9wYXJhbT4NCiAgICAgICAgLy8vIDxwYXJhbSBuYW1lPSJtZXNzYWdlIj4NCiAgICAgICAgLy8vIEFuIGluaXRpYWxpemF0aW9uIHZhbHVlIGZvciB0aGUgPHNlZSBjcmVmPSJQOiBNZXNzYWdlIiAvPiBwcm9wZXJ0eS4NCiAgICAgICAgLy8vIDwvcGFyYW0+DQogICAgICAgIC8vLyA8cGFyYW0gbmFtZT0iYW5ub3RhdGlvbnMiPg0KICAgICAgICAvLy8gQW4gaW5pdGlhbGl6YXRpb24gdmFsdWUgZm9yIHRoZSA8c2VlIGNyZWY9IlA6IEFubm90YXRpb25zIiAvPiBwcm9wZXJ0eS4NCiAgICAgICAgLy8vIDwvcGFyYW0+DQogICAgICAgIC8vLyA8cGFyYW0gbmFtZT0icHJvcGVydGllcyI+DQogICAgICAgIC8vLyBBbiBpbml0aWFsaXphdGlvbiB2YWx1ZSBmb3IgdGhlIDxzZWUgY3JlZj0iUDogUHJvcGVydGllcyIgLz4gcHJvcGVydHkuDQogICAgICAgIC8vLyA8L3BhcmFtPg0KICAgICAgICBwdWJsaWMgTG9jYXRpb24oUGh5c2ljYWxMb2NhdGlvbiBwaHlzaWNhbExvY2F0aW9uLCBzdHJpbmcgZnVsbHlRdWFsaWZpZWRMb2dpY2FsTmFtZSwgTWVzc2FnZSBtZXNzYWdlLCBJRW51bWVyYWJsZTxSZWdpb24+IGFubm90YXRpb25zLCBJRGljdGlvbmFyeTxzdHJpbmcsIFNlcmlhbGl6ZWRQcm9wZXJ0eUluZm8+IHByb3BlcnRpZXMpDQogICAgICAgIHsNCiAgICAgICAgICAgIEluaXQocGh5c2ljYWxMb2NhdGlvbiwgZnVsbHlRdWFsaWZpZWRMb2dpY2FsTmFtZSwgbWVzc2FnZSwgYW5ub3RhdGlvbnMsIHByb3BlcnRpZXMpOw0KICAgICAgICB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gSW5pdGlhbGl6ZXMgYSBuZXcgaW5zdGFuY2Ugb2YgdGhlIDxzZWUgY3JlZj0iTG9jYXRpb24iIC8+IGNsYXNzIGZyb20gdGhlIHNwZWNpZmllZCBpbnN0YW5jZS4NCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgLy8vIDxwYXJhbSBuYW1lPSJvdGhlciI+DQogICAgICAgIC8vLyBUaGUgaW5zdGFuY2UgZnJvbSB3aGljaCB0aGUgbmV3IGluc3RhbmNlIGlzIHRvIGJlIGluaXRpYWxpemVkLg0KICAgICAgICAvLy8gPC9wYXJhbT4NCiAgICAgICAgLy8vIDxleGNlcHRpb24gY3JlZj0iQXJndW1lbnROdWxsRXhjZXB0aW9uIj4NCiAgICAgICAgLy8vIFRocm93biBpZiA8cGFyYW1yZWYgbmFtZT0ib3RoZXIiIC8+IGlzIG51bGwuDQogICAgICAgIC8vLyA8L2V4Y2VwdGlvbj4NCiAgICAgICAgcHVibGljIExvY2F0aW9uKExvY2F0aW9uIG90aGVyKQ0KICAgICAgICB7DQogICAgICAgICAgICBpZiAob3RoZXIgPT0gbnVsbCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgQXJndW1lbnROdWxsRXhjZXB0aW9uKG5hbWVvZihvdGhlcikpOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBJbml0KG90aGVyLlBoeXNpY2FsTG9jYXRpb24sIG90aGVyLkZ1bGx5UXVhbGlmaWVkTG9naWNhbE5hbWUsIG90aGVyLk1lc3NhZ2UsIG90aGVyLkFubm90YXRpb25zLCBvdGhlci5Qcm9wZXJ0aWVzKTsNCiAgICAgICAgfQ0KDQogICAgICAgIElTYXJpZk5vZGUgSVNhcmlmTm9kZS5EZWVwQ2xvbmUoKQ0KICAgICAgICB7DQogICAgICAgICAgICByZXR1cm4gRGVlcENsb25lQ29yZSgpOw0KICAgICAgICB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gQ3JlYXRlcyBhIGRlZXAgY29weSBvZiB0aGlzIGluc3RhbmNlLg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICBwdWJsaWMgTG9jYXRpb24gRGVlcENsb25lKCkNCiAgICAgICAgew0KICAgICAgICAgICAgcmV0dXJuIChMb2NhdGlvbilEZWVwQ2xvbmVDb3JlKCk7DQogICAgICAgIH0NCg0KICAgICAgICBwcml2YXRlIElTYXJpZk5vZGUgRGVlcENsb25lQ29yZSgpDQogICAgICAgIHsNCiAgICAgICAgICAgIHJldHVybiBuZXcgTG9jYXRpb24odGhpcyk7DQogICAgICAgIH0NCg0KICAgICAgICBwcml2YXRlIHZvaWQgSW5pdChQaHlzaWNhbExvY2F0aW9uIHBoeXNpY2FsTG9jYXRpb24sIHN0cmluZyBmdWxseVF1YWxpZmllZExvZ2ljYWxOYW1lLCBNZXNzYWdlIG1lc3NhZ2UsIElFbnVtZXJhYmxlPFJlZ2lvbj4gYW5ub3RhdGlvbnMsIElEaWN0aW9uYXJ5PHN0cmluZywgU2VyaWFsaXplZFByb3BlcnR5SW5mbz4gcHJvcGVydGllcykNCiAgICAgICAgew0KICAgICAgICAgICAgaWYgKHBoeXNpY2FsTG9jYXRpb24gIT0gbnVsbCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBQaHlzaWNhbExvY2F0aW9uID0gbmV3IFBoeXNpY2FsTG9jYXRpb24ocGh5c2ljYWxMb2NhdGlvbik7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIEZ1bGx5UXVhbGlmaWVkTG9naWNhbE5hbWUgPSBmdWxseVF1YWxpZmllZExvZ2ljYWxOYW1lOw0KICAgICAgICAgICAgaWYgKG1lc3NhZ2UgIT0gbnVsbCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBNZXNzYWdlID0gbmV3IE1lc3NhZ2UobWVzc2FnZSk7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIGlmIChhbm5vdGF0aW9ucyAhPSBudWxsKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHZhciBkZXN0aW5hdGlvbl8wID0gbmV3IExpc3Q8UmVnaW9uPigpOw0KICAgICAgICAgICAgICAgIGZvcmVhY2ggKHZhciB2YWx1ZV8wIGluIGFubm90YXRpb25zKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlXzAgPT0gbnVsbCkNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgZGVzdGluYXRpb25fMC5BZGQobnVsbCk7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgZWxzZQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICBkZXN0aW5hdGlvbl8wLkFkZChuZXcgUmVnaW9uKHZhbHVlXzApKTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgIEFubm90YXRpb25zID0gZGVzdGluYXRpb25fMDsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgaWYgKHByb3BlcnRpZXMgIT0gbnVsbCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBQcm9wZXJ0aWVzID0gbmV3IERpY3Rpb25hcnk8c3RyaW5nLCBTZXJpYWxpemVkUHJvcGVydHlJbmZvPihwcm9wZXJ0aWVzKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgIH0NCn0=" + { + "ruleId": "CA1062", + "message": { + "text": "In externally visible method 'ItemsConverter.WriteJson(JsonWriter, object, JsonSerializer)', validate parameter 'writer' before using it." }, - "hashes": [ - { - "value": "304BA61E2EA0D957F92B58810F0A6EE3", - "algorithm": "md5" - }, - { - "value": "CD5D7D810A7B15284F0A59ECB3B6858DDD606F2A", - "algorithm": "sha-1" - }, + "locations": [ { - "value": "A9BEA81D95B646499752F1FDAF3561CD4BD1444450F9D3E5B19147A5A4B3A282", - "algorithm": "sha-256" + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Microsoft.Json.Schema.dll", + "uriBaseId": "$(ProjectDir)", + "index": 1 + } + }, + "logicalLocations": [ + { + "index": 47, + "fullyQualifiedName": "microsoft.json.schema.dll!Microsoft.Json.Schema.ItemsConverter.WriteJson(Newtonsoft.Json.JsonWriter,System.Object,Newtonsoft.Json.JsonSerializer)" + } + ] } - ] - }, - "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/Message.cs": { - "mimeType": "text/x-csharp", - "contents": { - "binary": "Ly8gQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQuICBBbGwgUmlnaHRzIFJlc2VydmVkLg0KLy8gTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlLiBTZWUgTElDRU5TRSBmaWxlIGluIHRoZSBwcm9qZWN0IHJvb3QgZm9yIGZ1bGwgbGljZW5zZSBpbmZvcm1hdGlvbi4NCg0KdXNpbmcgU3lzdGVtOw0KdXNpbmcgU3lzdGVtLkNvZGVEb20uQ29tcGlsZXI7DQp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsNCnVzaW5nIFN5c3RlbS5SdW50aW1lLlNlcmlhbGl6YXRpb247DQoNCm5hbWVzcGFjZSBNaWNyb3NvZnQuQ29kZUFuYWx5c2lzLlNhcmlmDQp7DQogICAgLy8vIDxzdW1tYXJ5Pg0KICAgIC8vLyBFbmNhcHN1bGF0ZXMgYSBtZXNzYWdlIGludGVuZGVkIHRvIGJlIHJlYWQgYnkgdGhlIGVuZCB1c2VyLg0KICAgIC8vLyA8L3N1bW1hcnk+DQogICAgW0RhdGFDb250cmFjdF0NCiAgICBbR2VuZXJhdGVkQ29kZSgiTWljcm9zb2Z0Lkpzb24uU2NoZW1hLlRvRG90TmV0IiwgIjAuNTYuMC4wIildDQogICAgcHVibGljIHBhcnRpYWwgY2xhc3MgTWVzc2FnZSA6IElTYXJpZk5vZGUNCiAgICB7DQogICAgICAgIHB1YmxpYyBzdGF0aWMgSUVxdWFsaXR5Q29tcGFyZXI8TWVzc2FnZT4gVmFsdWVDb21wYXJlciA9PiBNZXNzYWdlRXF1YWxpdHlDb21wYXJlci5JbnN0YW5jZTsNCg0KICAgICAgICBwdWJsaWMgYm9vbCBWYWx1ZUVxdWFscyhNZXNzYWdlIG90aGVyKSA9PiBWYWx1ZUNvbXBhcmVyLkVxdWFscyh0aGlzLCBvdGhlcik7DQogICAgICAgIHB1YmxpYyBpbnQgVmFsdWVHZXRIYXNoQ29kZSgpID0+IFZhbHVlQ29tcGFyZXIuR2V0SGFzaENvZGUodGhpcyk7DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gR2V0cyBhIHZhbHVlIGluZGljYXRpbmcgdGhlIHR5cGUgb2Ygb2JqZWN0IGltcGxlbWVudGluZyA8c2VlIGNyZWY9IklTYXJpZk5vZGUiIC8+Lg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICBwdWJsaWMgU2FyaWZOb2RlS2luZCBTYXJpZk5vZGVLaW5kDQogICAgICAgIHsNCiAgICAgICAgICAgIGdldA0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHJldHVybiBTYXJpZk5vZGVLaW5kLk1lc3NhZ2U7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBBIHBsYWluIHRleHQgbWVzc2FnZSBzdHJpbmcuDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIFtEYXRhTWVtYmVyKE5hbWUgPSAidGV4dCIsIElzUmVxdWlyZWQgPSBmYWxzZSwgRW1pdERlZmF1bHRWYWx1ZSA9IGZhbHNlKV0NCiAgICAgICAgcHVibGljIHN0cmluZyBUZXh0IHsgZ2V0OyBzZXQ7IH0NCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBUaGUgcmVzb3VyY2UgaWQgZm9yIGEgcGxhaW4gdGV4dCBtZXNzYWdlIHN0cmluZy4NCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgW0RhdGFNZW1iZXIoTmFtZSA9ICJtZXNzYWdlSWQiLCBJc1JlcXVpcmVkID0gZmFsc2UsIEVtaXREZWZhdWx0VmFsdWUgPSBmYWxzZSldDQogICAgICAgIHB1YmxpYyBzdHJpbmcgTWVzc2FnZUlkIHsgZ2V0OyBzZXQ7IH0NCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBBIHJpY2ggdGV4dCBtZXNzYWdlIHN0cmluZy4NCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgW0RhdGFNZW1iZXIoTmFtZSA9ICJyaWNoVGV4dCIsIElzUmVxdWlyZWQgPSBmYWxzZSwgRW1pdERlZmF1bHRWYWx1ZSA9IGZhbHNlKV0NCiAgICAgICAgcHVibGljIHN0cmluZyBSaWNoVGV4dCB7IGdldDsgc2V0OyB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gVGhlIHJlc291cmNlIGlkIGZvciBhIHJpY2ggdGV4dCBtZXNzYWdlIHN0cmluZy4NCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgW0RhdGFNZW1iZXIoTmFtZSA9ICJyaWNoTWVzc2FnZUlkIiwgSXNSZXF1aXJlZCA9IGZhbHNlLCBFbWl0RGVmYXVsdFZhbHVlID0gZmFsc2UpXQ0KICAgICAgICBwdWJsaWMgc3RyaW5nIFJpY2hNZXNzYWdlSWQgeyBnZXQ7IHNldDsgfQ0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIEFuIGFycmF5IG9mIHN0cmluZ3MgdG8gc3Vic3RpdHV0ZSBpbnRvIHRoZSBtZXNzYWdlIHN0cmluZy4NCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgW0RhdGFNZW1iZXIoTmFtZSA9ICJhcmd1bWVudHMiLCBJc1JlcXVpcmVkID0gZmFsc2UsIEVtaXREZWZhdWx0VmFsdWUgPSBmYWxzZSldDQogICAgICAgIHB1YmxpYyBJTGlzdDxzdHJpbmc+IEFyZ3VtZW50cyB7IGdldDsgc2V0OyB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gSW5pdGlhbGl6ZXMgYSBuZXcgaW5zdGFuY2Ugb2YgdGhlIDxzZWUgY3JlZj0iTWVzc2FnZSIgLz4gY2xhc3MuDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIHB1YmxpYyBNZXNzYWdlKCkNCiAgICAgICAgew0KICAgICAgICB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gSW5pdGlhbGl6ZXMgYSBuZXcgaW5zdGFuY2Ugb2YgdGhlIDxzZWUgY3JlZj0iTWVzc2FnZSIgLz4gY2xhc3MgZnJvbSB0aGUgc3VwcGxpZWQgdmFsdWVzLg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICAvLy8gPHBhcmFtIG5hbWU9InRleHQiPg0KICAgICAgICAvLy8gQW4gaW5pdGlhbGl6YXRpb24gdmFsdWUgZm9yIHRoZSA8c2VlIGNyZWY9IlA6IFRleHQiIC8+IHByb3BlcnR5Lg0KICAgICAgICAvLy8gPC9wYXJhbT4NCiAgICAgICAgLy8vIDxwYXJhbSBuYW1lPSJtZXNzYWdlSWQiPg0KICAgICAgICAvLy8gQW4gaW5pdGlhbGl6YXRpb24gdmFsdWUgZm9yIHRoZSA8c2VlIGNyZWY9IlA6IE1lc3NhZ2VJZCIgLz4gcHJvcGVydHkuDQogICAgICAgIC8vLyA8L3BhcmFtPg0KICAgICAgICAvLy8gPHBhcmFtIG5hbWU9InJpY2hUZXh0Ij4NCiAgICAgICAgLy8vIEFuIGluaXRpYWxpemF0aW9uIHZhbHVlIGZvciB0aGUgPHNlZSBjcmVmPSJQOiBSaWNoVGV4dCIgLz4gcHJvcGVydHkuDQogICAgICAgIC8vLyA8L3BhcmFtPg0KICAgICAgICAvLy8gPHBhcmFtIG5hbWU9InJpY2hNZXNzYWdlSWQiPg0KICAgICAgICAvLy8gQW4gaW5pdGlhbGl6YXRpb24gdmFsdWUgZm9yIHRoZSA8c2VlIGNyZWY9IlA6IFJpY2hNZXNzYWdlSWQiIC8+IHByb3BlcnR5Lg0KICAgICAgICAvLy8gPC9wYXJhbT4NCiAgICAgICAgLy8vIDxwYXJhbSBuYW1lPSJhcmd1bWVudHMiPg0KICAgICAgICAvLy8gQW4gaW5pdGlhbGl6YXRpb24gdmFsdWUgZm9yIHRoZSA8c2VlIGNyZWY9IlA6IEFyZ3VtZW50cyIgLz4gcHJvcGVydHkuDQogICAgICAgIC8vLyA8L3BhcmFtPg0KICAgICAgICBwdWJsaWMgTWVzc2FnZShzdHJpbmcgdGV4dCwgc3RyaW5nIG1lc3NhZ2VJZCwgc3RyaW5nIHJpY2hUZXh0LCBzdHJpbmcgcmljaE1lc3NhZ2VJZCwgSUVudW1lcmFibGU8c3RyaW5nPiBhcmd1bWVudHMpDQogICAgICAgIHsNCiAgICAgICAgICAgIEluaXQodGV4dCwgbWVzc2FnZUlkLCByaWNoVGV4dCwgcmljaE1lc3NhZ2VJZCwgYXJndW1lbnRzKTsNCiAgICAgICAgfQ0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIEluaXRpYWxpemVzIGEgbmV3IGluc3RhbmNlIG9mIHRoZSA8c2VlIGNyZWY9Ik1lc3NhZ2UiIC8+IGNsYXNzIGZyb20gdGhlIHNwZWNpZmllZCBpbnN0YW5jZS4NCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgLy8vIDxwYXJhbSBuYW1lPSJvdGhlciI+DQogICAgICAgIC8vLyBUaGUgaW5zdGFuY2UgZnJvbSB3aGljaCB0aGUgbmV3IGluc3RhbmNlIGlzIHRvIGJlIGluaXRpYWxpemVkLg0KICAgICAgICAvLy8gPC9wYXJhbT4NCiAgICAgICAgLy8vIDxleGNlcHRpb24gY3JlZj0iQXJndW1lbnROdWxsRXhjZXB0aW9uIj4NCiAgICAgICAgLy8vIFRocm93biBpZiA8cGFyYW1yZWYgbmFtZT0ib3RoZXIiIC8+IGlzIG51bGwuDQogICAgICAgIC8vLyA8L2V4Y2VwdGlvbj4NCiAgICAgICAgcHVibGljIE1lc3NhZ2UoTWVzc2FnZSBvdGhlcikNCiAgICAgICAgew0KICAgICAgICAgICAgaWYgKG90aGVyID09IG51bGwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgdGhyb3cgbmV3IEFyZ3VtZW50TnVsbEV4Y2VwdGlvbihuYW1lb2Yob3RoZXIpKTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgSW5pdChvdGhlci5UZXh0LCBvdGhlci5NZXNzYWdlSWQsIG90aGVyLlJpY2hUZXh0LCBvdGhlci5SaWNoTWVzc2FnZUlkLCBvdGhlci5Bcmd1bWVudHMpOw0KICAgICAgICB9DQoNCiAgICAgICAgSVNhcmlmTm9kZSBJU2FyaWZOb2RlLkRlZXBDbG9uZSgpDQogICAgICAgIHsNCiAgICAgICAgICAgIHJldHVybiBEZWVwQ2xvbmVDb3JlKCk7DQogICAgICAgIH0NCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBDcmVhdGVzIGEgZGVlcCBjb3B5IG9mIHRoaXMgaW5zdGFuY2UuDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIHB1YmxpYyBNZXNzYWdlIERlZXBDbG9uZSgpDQogICAgICAgIHsNCiAgICAgICAgICAgIHJldHVybiAoTWVzc2FnZSlEZWVwQ2xvbmVDb3JlKCk7DQogICAgICAgIH0NCg0KICAgICAgICBwcml2YXRlIElTYXJpZk5vZGUgRGVlcENsb25lQ29yZSgpDQogICAgICAgIHsNCiAgICAgICAgICAgIHJldHVybiBuZXcgTWVzc2FnZSh0aGlzKTsNCiAgICAgICAgfQ0KDQogICAgICAgIHByaXZhdGUgdm9pZCBJbml0KHN0cmluZyB0ZXh0LCBzdHJpbmcgbWVzc2FnZUlkLCBzdHJpbmcgcmljaFRleHQsIHN0cmluZyByaWNoTWVzc2FnZUlkLCBJRW51bWVyYWJsZTxzdHJpbmc+IGFyZ3VtZW50cykNCiAgICAgICAgew0KICAgICAgICAgICAgVGV4dCA9IHRleHQ7DQogICAgICAgICAgICBNZXNzYWdlSWQgPSBtZXNzYWdlSWQ7DQogICAgICAgICAgICBSaWNoVGV4dCA9IHJpY2hUZXh0Ow0KICAgICAgICAgICAgUmljaE1lc3NhZ2VJZCA9IHJpY2hNZXNzYWdlSWQ7DQogICAgICAgICAgICBpZiAoYXJndW1lbnRzICE9IG51bGwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgdmFyIGRlc3RpbmF0aW9uXzAgPSBuZXcgTGlzdDxzdHJpbmc+KCk7DQogICAgICAgICAgICAgICAgZm9yZWFjaCAodmFyIHZhbHVlXzAgaW4gYXJndW1lbnRzKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgZGVzdGluYXRpb25fMC5BZGQodmFsdWVfMCk7DQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgQXJndW1lbnRzID0gZGVzdGluYXRpb25fMDsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgIH0NCn0=" + ], + "partialFingerprints": { + "UniqueId": "0" }, - "hashes": [ - { - "value": "F5BAA08F493A944DD3F9A0B08940472B", - "algorithm": "md5" - }, - { - "value": "CED8BAF3A2EBAAB14386E8EDC40BB1D918F694EB", - "algorithm": "sha-1" - }, - { - "value": "0D70C6C8FB7367177FAC0EA130104BA6881D7D9C3AD834B50D9CBB5B8768EF95", - "algorithm": "sha-256" - } - ] + "properties": { + "Category": "Microsoft.Design", + "FixCategory": "DependsOnFix" + } }, - "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/Node.cs": { - "mimeType": "text/x-csharp", - "contents": { - "binary": "Ly8gQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQuICBBbGwgUmlnaHRzIFJlc2VydmVkLg0KLy8gTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlLiBTZWUgTElDRU5TRSBmaWxlIGluIHRoZSBwcm9qZWN0IHJvb3QgZm9yIGZ1bGwgbGljZW5zZSBpbmZvcm1hdGlvbi4NCg0KdXNpbmcgU3lzdGVtOw0KdXNpbmcgU3lzdGVtLkNvZGVEb20uQ29tcGlsZXI7DQp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsNCnVzaW5nIFN5c3RlbS5SdW50aW1lLlNlcmlhbGl6YXRpb247DQp1c2luZyBNaWNyb3NvZnQuQ29kZUFuYWx5c2lzLlNhcmlmLlJlYWRlcnM7DQoNCm5hbWVzcGFjZSBNaWNyb3NvZnQuQ29kZUFuYWx5c2lzLlNhcmlmDQp7DQogICAgLy8vIDxzdW1tYXJ5Pg0KICAgIC8vLyBSZXByZXNlbnRzIGEgbm9kZSBpbiBhIGdyYXBoLg0KICAgIC8vLyA8L3N1bW1hcnk+DQogICAgW0RhdGFDb250cmFjdF0NCiAgICBbR2VuZXJhdGVkQ29kZSgiTWljcm9zb2Z0Lkpzb24uU2NoZW1hLlRvRG90TmV0IiwgIjAuNTYuMC4wIildDQogICAgcHVibGljIHBhcnRpYWwgY2xhc3MgTm9kZSA6IFByb3BlcnR5QmFnSG9sZGVyLCBJU2FyaWZOb2RlDQogICAgew0KICAgICAgICBwdWJsaWMgc3RhdGljIElFcXVhbGl0eUNvbXBhcmVyPE5vZGU+IFZhbHVlQ29tcGFyZXIgPT4gTm9kZUVxdWFsaXR5Q29tcGFyZXIuSW5zdGFuY2U7DQoNCiAgICAgICAgcHVibGljIGJvb2wgVmFsdWVFcXVhbHMoTm9kZSBvdGhlcikgPT4gVmFsdWVDb21wYXJlci5FcXVhbHModGhpcywgb3RoZXIpOw0KICAgICAgICBwdWJsaWMgaW50IFZhbHVlR2V0SGFzaENvZGUoKSA9PiBWYWx1ZUNvbXBhcmVyLkdldEhhc2hDb2RlKHRoaXMpOw0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIEdldHMgYSB2YWx1ZSBpbmRpY2F0aW5nIHRoZSB0eXBlIG9mIG9iamVjdCBpbXBsZW1lbnRpbmcgPHNlZSBjcmVmPSJJU2FyaWZOb2RlIiAvPi4NCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgcHVibGljIFNhcmlmTm9kZUtpbmQgU2FyaWZOb2RlS2luZA0KICAgICAgICB7DQogICAgICAgICAgICBnZXQNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gU2FyaWZOb2RlS2luZC5Ob2RlOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gQSBzdHJpbmcgdGhhdCB1bmlxdWVseSBpZGVudGlmaWVzIHRoZSBub2RlIHdpdGhpbiBpdHMgZ3JhcGguDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIFtEYXRhTWVtYmVyKE5hbWUgPSAiaWQiLCBJc1JlcXVpcmVkID0gdHJ1ZSldDQogICAgICAgIHB1YmxpYyBzdHJpbmcgSWQgeyBnZXQ7IHNldDsgfQ0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIEEgc2hvcnQgZGVzY3JpcHRpb24gb2YgdGhlIG5vZGUuDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIFtEYXRhTWVtYmVyKE5hbWUgPSAibGFiZWwiLCBJc1JlcXVpcmVkID0gZmFsc2UsIEVtaXREZWZhdWx0VmFsdWUgPSBmYWxzZSldDQogICAgICAgIHB1YmxpYyBNZXNzYWdlIExhYmVsIHsgZ2V0OyBzZXQ7IH0NCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBBIGNvZGUgbG9jYXRpb24gYXNzb2NpYXRlZCB3aXRoIHRoZSBub2RlLg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICBbRGF0YU1lbWJlcihOYW1lID0gImxvY2F0aW9uIiwgSXNSZXF1aXJlZCA9IGZhbHNlLCBFbWl0RGVmYXVsdFZhbHVlID0gZmFsc2UpXQ0KICAgICAgICBwdWJsaWMgTG9jYXRpb24gTG9jYXRpb24geyBnZXQ7IHNldDsgfQ0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIEFycmF5IG9mIGNoaWxkIG5vZGVzLg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICBbRGF0YU1lbWJlcihOYW1lID0gImNoaWxkcmVuIiwgSXNSZXF1aXJlZCA9IGZhbHNlLCBFbWl0RGVmYXVsdFZhbHVlID0gZmFsc2UpXQ0KICAgICAgICBwdWJsaWMgSUxpc3Q8Tm9kZT4gQ2hpbGRyZW4geyBnZXQ7IHNldDsgfQ0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIEtleS92YWx1ZSBwYWlycyB0aGF0IHByb3ZpZGUgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiBhYm91dCB0aGUgbm9kZS4NCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgW0RhdGFNZW1iZXIoTmFtZSA9ICJwcm9wZXJ0aWVzIiwgSXNSZXF1aXJlZCA9IGZhbHNlLCBFbWl0RGVmYXVsdFZhbHVlID0gZmFsc2UpXQ0KICAgICAgICBpbnRlcm5hbCBvdmVycmlkZSBJRGljdGlvbmFyeTxzdHJpbmcsIFNlcmlhbGl6ZWRQcm9wZXJ0eUluZm8+IFByb3BlcnRpZXMgeyBnZXQ7IHNldDsgfQ0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIEluaXRpYWxpemVzIGEgbmV3IGluc3RhbmNlIG9mIHRoZSA8c2VlIGNyZWY9Ik5vZGUiIC8+IGNsYXNzLg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICBwdWJsaWMgTm9kZSgpDQogICAgICAgIHsNCiAgICAgICAgfQ0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIEluaXRpYWxpemVzIGEgbmV3IGluc3RhbmNlIG9mIHRoZSA8c2VlIGNyZWY9Ik5vZGUiIC8+IGNsYXNzIGZyb20gdGhlIHN1cHBsaWVkIHZhbHVlcy4NCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgLy8vIDxwYXJhbSBuYW1lPSJpZCI+DQogICAgICAgIC8vLyBBbiBpbml0aWFsaXphdGlvbiB2YWx1ZSBmb3IgdGhlIDxzZWUgY3JlZj0iUDogSWQiIC8+IHByb3BlcnR5Lg0KICAgICAgICAvLy8gPC9wYXJhbT4NCiAgICAgICAgLy8vIDxwYXJhbSBuYW1lPSJsYWJlbCI+DQogICAgICAgIC8vLyBBbiBpbml0aWFsaXphdGlvbiB2YWx1ZSBmb3IgdGhlIDxzZWUgY3JlZj0iUDogTGFiZWwiIC8+IHByb3BlcnR5Lg0KICAgICAgICAvLy8gPC9wYXJhbT4NCiAgICAgICAgLy8vIDxwYXJhbSBuYW1lPSJsb2NhdGlvbiI+DQogICAgICAgIC8vLyBBbiBpbml0aWFsaXphdGlvbiB2YWx1ZSBmb3IgdGhlIDxzZWUgY3JlZj0iUDogTG9jYXRpb24iIC8+IHByb3BlcnR5Lg0KICAgICAgICAvLy8gPC9wYXJhbT4NCiAgICAgICAgLy8vIDxwYXJhbSBuYW1lPSJjaGlsZHJlbiI+DQogICAgICAgIC8vLyBBbiBpbml0aWFsaXphdGlvbiB2YWx1ZSBmb3IgdGhlIDxzZWUgY3JlZj0iUDogQ2hpbGRyZW4iIC8+IHByb3BlcnR5Lg0KICAgICAgICAvLy8gPC9wYXJhbT4NCiAgICAgICAgLy8vIDxwYXJhbSBuYW1lPSJwcm9wZXJ0aWVzIj4NCiAgICAgICAgLy8vIEFuIGluaXRpYWxpemF0aW9uIHZhbHVlIGZvciB0aGUgPHNlZSBjcmVmPSJQOiBQcm9wZXJ0aWVzIiAvPiBwcm9wZXJ0eS4NCiAgICAgICAgLy8vIDwvcGFyYW0+DQogICAgICAgIHB1YmxpYyBOb2RlKHN0cmluZyBpZCwgTWVzc2FnZSBsYWJlbCwgTG9jYXRpb24gbG9jYXRpb24sIElFbnVtZXJhYmxlPE5vZGU+IGNoaWxkcmVuLCBJRGljdGlvbmFyeTxzdHJpbmcsIFNlcmlhbGl6ZWRQcm9wZXJ0eUluZm8+IHByb3BlcnRpZXMpDQogICAgICAgIHsNCiAgICAgICAgICAgIEluaXQoaWQsIGxhYmVsLCBsb2NhdGlvbiwgY2hpbGRyZW4sIHByb3BlcnRpZXMpOw0KICAgICAgICB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gSW5pdGlhbGl6ZXMgYSBuZXcgaW5zdGFuY2Ugb2YgdGhlIDxzZWUgY3JlZj0iTm9kZSIgLz4gY2xhc3MgZnJvbSB0aGUgc3BlY2lmaWVkIGluc3RhbmNlLg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICAvLy8gPHBhcmFtIG5hbWU9Im90aGVyIj4NCiAgICAgICAgLy8vIFRoZSBpbnN0YW5jZSBmcm9tIHdoaWNoIHRoZSBuZXcgaW5zdGFuY2UgaXMgdG8gYmUgaW5pdGlhbGl6ZWQuDQogICAgICAgIC8vLyA8L3BhcmFtPg0KICAgICAgICAvLy8gPGV4Y2VwdGlvbiBjcmVmPSJBcmd1bWVudE51bGxFeGNlcHRpb24iPg0KICAgICAgICAvLy8gVGhyb3duIGlmIDxwYXJhbXJlZiBuYW1lPSJvdGhlciIgLz4gaXMgbnVsbC4NCiAgICAgICAgLy8vIDwvZXhjZXB0aW9uPg0KICAgICAgICBwdWJsaWMgTm9kZShOb2RlIG90aGVyKQ0KICAgICAgICB7DQogICAgICAgICAgICBpZiAob3RoZXIgPT0gbnVsbCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgQXJndW1lbnROdWxsRXhjZXB0aW9uKG5hbWVvZihvdGhlcikpOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBJbml0KG90aGVyLklkLCBvdGhlci5MYWJlbCwgb3RoZXIuTG9jYXRpb24sIG90aGVyLkNoaWxkcmVuLCBvdGhlci5Qcm9wZXJ0aWVzKTsNCiAgICAgICAgfQ0KDQogICAgICAgIElTYXJpZk5vZGUgSVNhcmlmTm9kZS5EZWVwQ2xvbmUoKQ0KICAgICAgICB7DQogICAgICAgICAgICByZXR1cm4gRGVlcENsb25lQ29yZSgpOw0KICAgICAgICB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gQ3JlYXRlcyBhIGRlZXAgY29weSBvZiB0aGlzIGluc3RhbmNlLg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICBwdWJsaWMgTm9kZSBEZWVwQ2xvbmUoKQ0KICAgICAgICB7DQogICAgICAgICAgICByZXR1cm4gKE5vZGUpRGVlcENsb25lQ29yZSgpOw0KICAgICAgICB9DQoNCiAgICAgICAgcHJpdmF0ZSBJU2FyaWZOb2RlIERlZXBDbG9uZUNvcmUoKQ0KICAgICAgICB7DQogICAgICAgICAgICByZXR1cm4gbmV3IE5vZGUodGhpcyk7DQogICAgICAgIH0NCg0KICAgICAgICBwcml2YXRlIHZvaWQgSW5pdChzdHJpbmcgaWQsIE1lc3NhZ2UgbGFiZWwsIExvY2F0aW9uIGxvY2F0aW9uLCBJRW51bWVyYWJsZTxOb2RlPiBjaGlsZHJlbiwgSURpY3Rpb25hcnk8c3RyaW5nLCBTZXJpYWxpemVkUHJvcGVydHlJbmZvPiBwcm9wZXJ0aWVzKQ0KICAgICAgICB7DQogICAgICAgICAgICBJZCA9IGlkOw0KICAgICAgICAgICAgaWYgKGxhYmVsICE9IG51bGwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgTGFiZWwgPSBuZXcgTWVzc2FnZShsYWJlbCk7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIGlmIChsb2NhdGlvbiAhPSBudWxsKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIExvY2F0aW9uID0gbmV3IExvY2F0aW9uKGxvY2F0aW9uKTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgaWYgKGNoaWxkcmVuICE9IG51bGwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgdmFyIGRlc3RpbmF0aW9uXzAgPSBuZXcgTGlzdDxOb2RlPigpOw0KICAgICAgICAgICAgICAgIGZvcmVhY2ggKHZhciB2YWx1ZV8wIGluIGNoaWxkcmVuKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlXzAgPT0gbnVsbCkNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgZGVzdGluYXRpb25fMC5BZGQobnVsbCk7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgZWxzZQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICBkZXN0aW5hdGlvbl8wLkFkZChuZXcgTm9kZSh2YWx1ZV8wKSk7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICBDaGlsZHJlbiA9IGRlc3RpbmF0aW9uXzA7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIGlmIChwcm9wZXJ0aWVzICE9IG51bGwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgUHJvcGVydGllcyA9IG5ldyBEaWN0aW9uYXJ5PHN0cmluZywgU2VyaWFsaXplZFByb3BlcnR5SW5mbz4ocHJvcGVydGllcyk7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCiAgICB9DQp9" + { + "ruleId": "CA1062", + "message": { + "text": "In externally visible method 'JsonSchema.JsonSchema(JsonSchema)', validate parameter 'other' before using it." }, - "hashes": [ - { - "value": "AE683B289E9F3A8BE53B898076A90CDF", - "algorithm": "md5" - }, - { - "value": "4C9D90EB84C3A61C29A27DFA86876B9A5428D430", - "algorithm": "sha-1" - }, + "locations": [ { - "value": "F95EED45A5E8F3F48B1761C30447544A1583F260E13E53CC53DE9194B04B5D93", - "algorithm": "sha-256" + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Microsoft.Json.Schema.dll", + "uriBaseId": "$(ProjectDir)", + "index": 1 + } + }, + "logicalLocations": [ + { + "index": 49, + "fullyQualifiedName": "microsoft.json.schema.dll!Microsoft.Json.Schema.JsonSchema..ctor(Microsoft.Json.Schema.JsonSchema)" + } + ] } - ] - }, - "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/Notification.cs": { - "mimeType": "text/x-csharp", - "contents": { - "binary": "Ly8gQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQuICBBbGwgUmlnaHRzIFJlc2VydmVkLg0KLy8gTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlLiBTZWUgTElDRU5TRSBmaWxlIGluIHRoZSBwcm9qZWN0IHJvb3QgZm9yIGZ1bGwgbGljZW5zZSBpbmZvcm1hdGlvbi4NCg0KdXNpbmcgU3lzdGVtOw0KdXNpbmcgU3lzdGVtLkNvZGVEb20uQ29tcGlsZXI7DQp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsNCnVzaW5nIFN5c3RlbS5SdW50aW1lLlNlcmlhbGl6YXRpb247DQp1c2luZyBNaWNyb3NvZnQuQ29kZUFuYWx5c2lzLlNhcmlmLlJlYWRlcnM7DQoNCm5hbWVzcGFjZSBNaWNyb3NvZnQuQ29kZUFuYWx5c2lzLlNhcmlmDQp7DQogICAgLy8vIDxzdW1tYXJ5Pg0KICAgIC8vLyBEZXNjcmliZXMgYSBjb25kaXRpb24gcmVsZXZhbnQgdG8gdGhlIHRvb2wgaXRzZWxmLCBhcyBvcHBvc2VkIHRvIGJlaW5nIHJlbGV2YW50IHRvIGEgdGFyZ2V0IGJlaW5nIGFuYWx5emVkIGJ5IHRoZSB0b29sLg0KICAgIC8vLyA8L3N1bW1hcnk+DQogICAgW0RhdGFDb250cmFjdF0NCiAgICBbR2VuZXJhdGVkQ29kZSgiTWljcm9zb2Z0Lkpzb24uU2NoZW1hLlRvRG90TmV0IiwgIjAuNTYuMC4wIildDQogICAgcHVibGljIHBhcnRpYWwgY2xhc3MgTm90aWZpY2F0aW9uIDogUHJvcGVydHlCYWdIb2xkZXIsIElTYXJpZk5vZGUNCiAgICB7DQogICAgICAgIHB1YmxpYyBzdGF0aWMgSUVxdWFsaXR5Q29tcGFyZXI8Tm90aWZpY2F0aW9uPiBWYWx1ZUNvbXBhcmVyID0+IE5vdGlmaWNhdGlvbkVxdWFsaXR5Q29tcGFyZXIuSW5zdGFuY2U7DQoNCiAgICAgICAgcHVibGljIGJvb2wgVmFsdWVFcXVhbHMoTm90aWZpY2F0aW9uIG90aGVyKSA9PiBWYWx1ZUNvbXBhcmVyLkVxdWFscyh0aGlzLCBvdGhlcik7DQogICAgICAgIHB1YmxpYyBpbnQgVmFsdWVHZXRIYXNoQ29kZSgpID0+IFZhbHVlQ29tcGFyZXIuR2V0SGFzaENvZGUodGhpcyk7DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gR2V0cyBhIHZhbHVlIGluZGljYXRpbmcgdGhlIHR5cGUgb2Ygb2JqZWN0IGltcGxlbWVudGluZyA8c2VlIGNyZWY9IklTYXJpZk5vZGUiIC8+Lg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICBwdWJsaWMgU2FyaWZOb2RlS2luZCBTYXJpZk5vZGVLaW5kDQogICAgICAgIHsNCiAgICAgICAgICAgIGdldA0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHJldHVybiBTYXJpZk5vZGVLaW5kLk5vdGlmaWNhdGlvbjsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIEFuIGlkZW50aWZpZXIgZm9yIHRoZSBjb25kaXRpb24gdGhhdCB3YXMgZW5jb3VudGVyZWQuDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIFtEYXRhTWVtYmVyKE5hbWUgPSAiaWQiLCBJc1JlcXVpcmVkID0gZmFsc2UsIEVtaXREZWZhdWx0VmFsdWUgPSBmYWxzZSldDQogICAgICAgIHB1YmxpYyBzdHJpbmcgSWQgeyBnZXQ7IHNldDsgfQ0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIFRoZSBzdGFibGUsIHVuaXF1ZSBpZGVudGlmaWVyIG9mIHRoZSBydWxlIChpZiBhbnkpIHRvIHdoaWNoIHRoaXMgbm90aWZpY2F0aW9uIGlzIHJlbGV2YW50LiBJZiAncnVsZUtleScgaXMgbm90IHNwZWNpZmllZCwgdGhpcyBtZW1iZXIgY2FuIGJlIHVzZWQgdG8gcmV0cmlldmUgcnVsZSBtZXRhZGF0YSBmcm9tIHRoZSBydWxlcyBkaWN0aW9uYXJ5LCBpZiBpdCBleGlzdHMuDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIFtEYXRhTWVtYmVyKE5hbWUgPSAicnVsZUlkIiwgSXNSZXF1aXJlZCA9IGZhbHNlLCBFbWl0RGVmYXVsdFZhbHVlID0gZmFsc2UpXQ0KICAgICAgICBwdWJsaWMgc3RyaW5nIFJ1bGVJZCB7IGdldDsgc2V0OyB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gVGhlIGZpbGUgYW5kIHJlZ2lvbiByZWxldmFudCB0byB0aGlzIG5vdGlmaWNhdGlvbi4NCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgW0RhdGFNZW1iZXIoTmFtZSA9ICJwaHlzaWNhbExvY2F0aW9uIiwgSXNSZXF1aXJlZCA9IGZhbHNlLCBFbWl0RGVmYXVsdFZhbHVlID0gZmFsc2UpXQ0KICAgICAgICBwdWJsaWMgUGh5c2ljYWxMb2NhdGlvbiBQaHlzaWNhbExvY2F0aW9uIHsgZ2V0OyBzZXQ7IH0NCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBBIG1lc3NhZ2UgdGhhdCBkZXNjcmliZXMgdGhlIGNvbmRpdGlvbiB0aGF0IHdhcyBlbmNvdW50ZXJlZC4NCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgW0RhdGFNZW1iZXIoTmFtZSA9ICJtZXNzYWdlIiwgSXNSZXF1aXJlZCA9IHRydWUpXQ0KICAgICAgICBwdWJsaWMgTWVzc2FnZSBNZXNzYWdlIHsgZ2V0OyBzZXQ7IH0NCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBBIHZhbHVlIHNwZWNpZnlpbmcgdGhlIHNldmVyaXR5IGxldmVsIG9mIHRoZSBub3RpZmljYXRpb24uDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIFtEYXRhTWVtYmVyKE5hbWUgPSAibGV2ZWwiLCBJc1JlcXVpcmVkID0gZmFsc2UsIEVtaXREZWZhdWx0VmFsdWUgPSBmYWxzZSldDQogICAgICAgIHB1YmxpYyBOb3RpZmljYXRpb25MZXZlbCBMZXZlbCB7IGdldDsgc2V0OyB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gVGhlIHRocmVhZCBpZGVudGlmaWVyIG9mIHRoZSBjb2RlIHRoYXQgZ2VuZXJhdGVkIHRoZSBub3RpZmljYXRpb24uDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIFtEYXRhTWVtYmVyKE5hbWUgPSAidGhyZWFkSWQiLCBJc1JlcXVpcmVkID0gZmFsc2UsIEVtaXREZWZhdWx0VmFsdWUgPSBmYWxzZSldDQogICAgICAgIHB1YmxpYyBpbnQgVGhyZWFkSWQgeyBnZXQ7IHNldDsgfQ0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIFRoZSBkYXRlIGFuZCB0aW1lIGF0IHdoaWNoIHRoZSBhbmFseXNpcyB0b29sIGdlbmVyYXRlZCB0aGUgbm90aWZpY2F0aW9uLg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICBbRGF0YU1lbWJlcihOYW1lID0gInRpbWUiLCBJc1JlcXVpcmVkID0gZmFsc2UsIEVtaXREZWZhdWx0VmFsdWUgPSBmYWxzZSldDQogICAgICAgIHB1YmxpYyBEYXRlVGltZSBUaW1lIHsgZ2V0OyBzZXQ7IH0NCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBUaGUgcnVudGltZSBleGNlcHRpb24sIGlmIGFueSwgcmVsZXZhbnQgdG8gdGhpcyBub3RpZmljYXRpb24uDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIFtEYXRhTWVtYmVyKE5hbWUgPSAiZXhjZXB0aW9uIiwgSXNSZXF1aXJlZCA9IGZhbHNlLCBFbWl0RGVmYXVsdFZhbHVlID0gZmFsc2UpXQ0KICAgICAgICBwdWJsaWMgRXhjZXB0aW9uRGF0YSBFeGNlcHRpb24geyBnZXQ7IHNldDsgfQ0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIEtleS92YWx1ZSBwYWlycyB0aGF0IHByb3ZpZGUgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiBhYm91dCB0aGUgbm90aWZpY2F0aW9uLg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICBbRGF0YU1lbWJlcihOYW1lID0gInByb3BlcnRpZXMiLCBJc1JlcXVpcmVkID0gZmFsc2UsIEVtaXREZWZhdWx0VmFsdWUgPSBmYWxzZSldDQogICAgICAgIGludGVybmFsIG92ZXJyaWRlIElEaWN0aW9uYXJ5PHN0cmluZywgU2VyaWFsaXplZFByb3BlcnR5SW5mbz4gUHJvcGVydGllcyB7IGdldDsgc2V0OyB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gSW5pdGlhbGl6ZXMgYSBuZXcgaW5zdGFuY2Ugb2YgdGhlIDxzZWUgY3JlZj0iTm90aWZpY2F0aW9uIiAvPiBjbGFzcy4NCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgcHVibGljIE5vdGlmaWNhdGlvbigpDQogICAgICAgIHsNCiAgICAgICAgfQ0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIEluaXRpYWxpemVzIGEgbmV3IGluc3RhbmNlIG9mIHRoZSA8c2VlIGNyZWY9Ik5vdGlmaWNhdGlvbiIgLz4gY2xhc3MgZnJvbSB0aGUgc3VwcGxpZWQgdmFsdWVzLg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICAvLy8gPHBhcmFtIG5hbWU9ImlkIj4NCiAgICAgICAgLy8vIEFuIGluaXRpYWxpemF0aW9uIHZhbHVlIGZvciB0aGUgPHNlZSBjcmVmPSJQOiBJZCIgLz4gcHJvcGVydHkuDQogICAgICAgIC8vLyA8L3BhcmFtPg0KICAgICAgICAvLy8gPHBhcmFtIG5hbWU9InJ1bGVJZCI+DQogICAgICAgIC8vLyBBbiBpbml0aWFsaXphdGlvbiB2YWx1ZSBmb3IgdGhlIDxzZWUgY3JlZj0iUDogUnVsZUlkIiAvPiBwcm9wZXJ0eS4NCiAgICAgICAgLy8vIDwvcGFyYW0+DQogICAgICAgIC8vLyA8cGFyYW0gbmFtZT0icGh5c2ljYWxMb2NhdGlvbiI+DQogICAgICAgIC8vLyBBbiBpbml0aWFsaXphdGlvbiB2YWx1ZSBmb3IgdGhlIDxzZWUgY3JlZj0iUDogUGh5c2ljYWxMb2NhdGlvbiIgLz4gcHJvcGVydHkuDQogICAgICAgIC8vLyA8L3BhcmFtPg0KICAgICAgICAvLy8gPHBhcmFtIG5hbWU9Im1lc3NhZ2UiPg0KICAgICAgICAvLy8gQW4gaW5pdGlhbGl6YXRpb24gdmFsdWUgZm9yIHRoZSA8c2VlIGNyZWY9IlA6IE1lc3NhZ2UiIC8+IHByb3BlcnR5Lg0KICAgICAgICAvLy8gPC9wYXJhbT4NCiAgICAgICAgLy8vIDxwYXJhbSBuYW1lPSJsZXZlbCI+DQogICAgICAgIC8vLyBBbiBpbml0aWFsaXphdGlvbiB2YWx1ZSBmb3IgdGhlIDxzZWUgY3JlZj0iUDogTGV2ZWwiIC8+IHByb3BlcnR5Lg0KICAgICAgICAvLy8gPC9wYXJhbT4NCiAgICAgICAgLy8vIDxwYXJhbSBuYW1lPSJ0aHJlYWRJZCI+DQogICAgICAgIC8vLyBBbiBpbml0aWFsaXphdGlvbiB2YWx1ZSBmb3IgdGhlIDxzZWUgY3JlZj0iUDogVGhyZWFkSWQiIC8+IHByb3BlcnR5Lg0KICAgICAgICAvLy8gPC9wYXJhbT4NCiAgICAgICAgLy8vIDxwYXJhbSBuYW1lPSJ0aW1lIj4NCiAgICAgICAgLy8vIEFuIGluaXRpYWxpemF0aW9uIHZhbHVlIGZvciB0aGUgPHNlZSBjcmVmPSJQOiBUaW1lIiAvPiBwcm9wZXJ0eS4NCiAgICAgICAgLy8vIDwvcGFyYW0+DQogICAgICAgIC8vLyA8cGFyYW0gbmFtZT0iZXhjZXB0aW9uIj4NCiAgICAgICAgLy8vIEFuIGluaXRpYWxpemF0aW9uIHZhbHVlIGZvciB0aGUgPHNlZSBjcmVmPSJQOiBFeGNlcHRpb24iIC8+IHByb3BlcnR5Lg0KICAgICAgICAvLy8gPC9wYXJhbT4NCiAgICAgICAgLy8vIDxwYXJhbSBuYW1lPSJwcm9wZXJ0aWVzIj4NCiAgICAgICAgLy8vIEFuIGluaXRpYWxpemF0aW9uIHZhbHVlIGZvciB0aGUgPHNlZSBjcmVmPSJQOiBQcm9wZXJ0aWVzIiAvPiBwcm9wZXJ0eS4NCiAgICAgICAgLy8vIDwvcGFyYW0+DQogICAgICAgIHB1YmxpYyBOb3RpZmljYXRpb24oc3RyaW5nIGlkLCBzdHJpbmcgcnVsZUlkLCBQaHlzaWNhbExvY2F0aW9uIHBoeXNpY2FsTG9jYXRpb24sIE1lc3NhZ2UgbWVzc2FnZSwgTm90aWZpY2F0aW9uTGV2ZWwgbGV2ZWwsIGludCB0aHJlYWRJZCwgRGF0ZVRpbWUgdGltZSwgRXhjZXB0aW9uRGF0YSBleGNlcHRpb24sIElEaWN0aW9uYXJ5PHN0cmluZywgU2VyaWFsaXplZFByb3BlcnR5SW5mbz4gcHJvcGVydGllcykNCiAgICAgICAgew0KICAgICAgICAgICAgSW5pdChpZCwgcnVsZUlkLCBwaHlzaWNhbExvY2F0aW9uLCBtZXNzYWdlLCBsZXZlbCwgdGhyZWFkSWQsIHRpbWUsIGV4Y2VwdGlvbiwgcHJvcGVydGllcyk7DQogICAgICAgIH0NCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBJbml0aWFsaXplcyBhIG5ldyBpbnN0YW5jZSBvZiB0aGUgPHNlZSBjcmVmPSJOb3RpZmljYXRpb24iIC8+IGNsYXNzIGZyb20gdGhlIHNwZWNpZmllZCBpbnN0YW5jZS4NCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgLy8vIDxwYXJhbSBuYW1lPSJvdGhlciI+DQogICAgICAgIC8vLyBUaGUgaW5zdGFuY2UgZnJvbSB3aGljaCB0aGUgbmV3IGluc3RhbmNlIGlzIHRvIGJlIGluaXRpYWxpemVkLg0KICAgICAgICAvLy8gPC9wYXJhbT4NCiAgICAgICAgLy8vIDxleGNlcHRpb24gY3JlZj0iQXJndW1lbnROdWxsRXhjZXB0aW9uIj4NCiAgICAgICAgLy8vIFRocm93biBpZiA8cGFyYW1yZWYgbmFtZT0ib3RoZXIiIC8+IGlzIG51bGwuDQogICAgICAgIC8vLyA8L2V4Y2VwdGlvbj4NCiAgICAgICAgcHVibGljIE5vdGlmaWNhdGlvbihOb3RpZmljYXRpb24gb3RoZXIpDQogICAgICAgIHsNCiAgICAgICAgICAgIGlmIChvdGhlciA9PSBudWxsKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHRocm93IG5ldyBBcmd1bWVudE51bGxFeGNlcHRpb24obmFtZW9mKG90aGVyKSk7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIEluaXQob3RoZXIuSWQsIG90aGVyLlJ1bGVJZCwgb3RoZXIuUGh5c2ljYWxMb2NhdGlvbiwgb3RoZXIuTWVzc2FnZSwgb3RoZXIuTGV2ZWwsIG90aGVyLlRocmVhZElkLCBvdGhlci5UaW1lLCBvdGhlci5FeGNlcHRpb24sIG90aGVyLlByb3BlcnRpZXMpOw0KICAgICAgICB9DQoNCiAgICAgICAgSVNhcmlmTm9kZSBJU2FyaWZOb2RlLkRlZXBDbG9uZSgpDQogICAgICAgIHsNCiAgICAgICAgICAgIHJldHVybiBEZWVwQ2xvbmVDb3JlKCk7DQogICAgICAgIH0NCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBDcmVhdGVzIGEgZGVlcCBjb3B5IG9mIHRoaXMgaW5zdGFuY2UuDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIHB1YmxpYyBOb3RpZmljYXRpb24gRGVlcENsb25lKCkNCiAgICAgICAgew0KICAgICAgICAgICAgcmV0dXJuIChOb3RpZmljYXRpb24pRGVlcENsb25lQ29yZSgpOw0KICAgICAgICB9DQoNCiAgICAgICAgcHJpdmF0ZSBJU2FyaWZOb2RlIERlZXBDbG9uZUNvcmUoKQ0KICAgICAgICB7DQogICAgICAgICAgICByZXR1cm4gbmV3IE5vdGlmaWNhdGlvbih0aGlzKTsNCiAgICAgICAgfQ0KDQogICAgICAgIHByaXZhdGUgdm9pZCBJbml0KHN0cmluZyBpZCwgc3RyaW5nIHJ1bGVJZCwgUGh5c2ljYWxMb2NhdGlvbiBwaHlzaWNhbExvY2F0aW9uLCBNZXNzYWdlIG1lc3NhZ2UsIE5vdGlmaWNhdGlvbkxldmVsIGxldmVsLCBpbnQgdGhyZWFkSWQsIERhdGVUaW1lIHRpbWUsIEV4Y2VwdGlvbkRhdGEgZXhjZXB0aW9uLCBJRGljdGlvbmFyeTxzdHJpbmcsIFNlcmlhbGl6ZWRQcm9wZXJ0eUluZm8+IHByb3BlcnRpZXMpDQogICAgICAgIHsNCiAgICAgICAgICAgIElkID0gaWQ7DQogICAgICAgICAgICBSdWxlSWQgPSBydWxlSWQ7DQogICAgICAgICAgICBpZiAocGh5c2ljYWxMb2NhdGlvbiAhPSBudWxsKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIFBoeXNpY2FsTG9jYXRpb24gPSBuZXcgUGh5c2ljYWxMb2NhdGlvbihwaHlzaWNhbExvY2F0aW9uKTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgaWYgKG1lc3NhZ2UgIT0gbnVsbCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBNZXNzYWdlID0gbmV3IE1lc3NhZ2UobWVzc2FnZSk7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIExldmVsID0gbGV2ZWw7DQogICAgICAgICAgICBUaHJlYWRJZCA9IHRocmVhZElkOw0KICAgICAgICAgICAgVGltZSA9IHRpbWU7DQogICAgICAgICAgICBpZiAoZXhjZXB0aW9uICE9IG51bGwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgRXhjZXB0aW9uID0gbmV3IEV4Y2VwdGlvbkRhdGEoZXhjZXB0aW9uKTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgaWYgKHByb3BlcnRpZXMgIT0gbnVsbCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBQcm9wZXJ0aWVzID0gbmV3IERpY3Rpb25hcnk8c3RyaW5nLCBTZXJpYWxpemVkUHJvcGVydHlJbmZvPihwcm9wZXJ0aWVzKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgIH0NCn0=" + ], + "partialFingerprints": { + "UniqueId": "0" }, - "hashes": [ - { - "value": "337377498B9A6A224540DD3CB90792E0", - "algorithm": "md5" - }, - { - "value": "09A4E4D60A87F0341A09BAB253EBCCF9DD22E625", - "algorithm": "sha-1" - }, - { - "value": "A9025B0C9C3534A1CF3ECBEF647FD4D44C4C746A2651B1E0587FA483D72E6483", - "algorithm": "sha-256" - } - ] + "properties": { + "Category": "Microsoft.Design", + "FixCategory": "DependsOnFix" + } }, - "file:///E:/src/sarif-sdk-test/src/Sarif/PropertiesDictionary.cs": { - "mimeType": "text/x-csharp", - "contents": { - "binary": "77u/Ly8gQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuDQovLyBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UuIFNlZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHByb2plY3Qgcm9vdCBmb3IgZnVsbCBsaWNlbnNlIGluZm9ybWF0aW9uLg0KDQp1c2luZyBOZXd0b25zb2Z0Lkpzb247DQp1c2luZyBOZXd0b25zb2Z0Lkpzb24uTGlucTsNCnVzaW5nIFN5c3RlbTsNCnVzaW5nIFN5c3RlbS5Db2xsZWN0aW9ucy5HZW5lcmljOw0KdXNpbmcgU3lzdGVtLkNvbGxlY3Rpb25zLkltbXV0YWJsZTsNCnVzaW5nIFN5c3RlbS5Db21wb25lbnRNb2RlbDsNCnVzaW5nIFN5c3RlbS5JTzsNCnVzaW5nIFN5c3RlbS5SdW50aW1lLlNlcmlhbGl6YXRpb247DQp1c2luZyBTeXN0ZW0uWG1sOw0KDQpuYW1lc3BhY2UgTWljcm9zb2Z0LkNvZGVBbmFseXNpcy5TYXJpZg0Kew0KICAgIFtTZXJpYWxpemFibGVdDQogICAgW0pzb25Db252ZXJ0ZXIodHlwZW9mKFR5cGVkUHJvcGVydGllc0RpY3Rpb25hcnlDb252ZXJ0ZXIpKV0NCiAgICBwdWJsaWMgY2xhc3MgUHJvcGVydGllc0RpY3Rpb25hcnkgOiBUeXBlZFByb3BlcnRpZXNEaWN0aW9uYXJ5PG9iamVjdD4NCiAgICB7DQogICAgICAgIGludGVybmFsIGNvbnN0IHN0cmluZyBERUZBVUxUX1BPTElDWV9OQU1FID0gImRlZmF1bHQiOw0KDQogICAgICAgIHB1YmxpYyBQcm9wZXJ0aWVzRGljdGlvbmFyeSgpIDogdGhpcyhudWxsKSB7IH0NCg0KICAgICAgICBwdWJsaWMgUHJvcGVydGllc0RpY3Rpb25hcnkoUHJvcGVydGllc0RpY3Rpb25hcnkgaW5pdGlhbGl6ZXIpIDoNCiAgICAgICAgICAgIHRoaXMoaW5pdGlhbGl6ZXIsIG51bGwpDQogICAgICAgIHsNCiAgICAgICAgfQ0KDQogICAgICAgIHB1YmxpYyBQcm9wZXJ0aWVzRGljdGlvbmFyeSgNCiAgICAgICAgICAgIFByb3BlcnRpZXNEaWN0aW9uYXJ5IGluaXRpYWxpemVyLA0KICAgICAgICAgICAgSUVxdWFsaXR5Q29tcGFyZXI8c3RyaW5nPiBjb21wYXJlcikNCiAgICAgICAgICAgIDogYmFzZShpbml0aWFsaXplciwgY29tcGFyZXIpDQogICAgICAgIHsNCiAgICAgICAgfQ0KDQogICAgICAgIHByb3RlY3RlZCBQcm9wZXJ0aWVzRGljdGlvbmFyeShTZXJpYWxpemF0aW9uSW5mbyBpbmZvLCBTdHJlYW1pbmdDb250ZXh0IGNvbnRleHQpDQogICAgICAgICAgICA6IGJhc2UoaW5mbywgY29udGV4dCkNCiAgICAgICAgew0KICAgICAgICB9DQoNCiAgICAgICAgcHVibGljIHN0cmluZyBOYW1lIHsgZ2V0OyBzZXQ7IH0NCg0KICAgICAgICBwdWJsaWMgdmlydHVhbCBUIEdldFByb3BlcnR5PFQ+KFBlckxhbmd1YWdlT3B0aW9uPFQ+IHNldHRpbmcpDQogICAgICAgIHsNCiAgICAgICAgICAgIHJldHVybiBHZXRQcm9wZXJ0eShzZXR0aW5nLCBjYWNoZURlZmF1bHQ6IHRydWUpOw0KICAgICAgICB9DQoNCiAgICAgICAgcHVibGljIHZpcnR1YWwgVCBHZXRQcm9wZXJ0eTxUPihQZXJMYW5ndWFnZU9wdGlvbjxUPiBzZXR0aW5nLCBib29sIGNhY2hlRGVmYXVsdCkNCg0KICAgICAgICB7DQogICAgICAgICAgICBpZiAoc2V0dGluZyA9PSBudWxsKSB7IHRocm93IG5ldyBBcmd1bWVudE51bGxFeGNlcHRpb24obmFtZW9mKHNldHRpbmcpKTsgfQ0KDQogICAgICAgICAgICBQcm9wZXJ0aWVzRGljdGlvbmFyeSBwcm9wZXJ0aWVzID0gR2V0U2V0dGluZ3NDb250YWluZXIoc2V0dGluZywgY2FjaGVEZWZhdWx0KTsNCg0KICAgICAgICAgICAgVCB2YWx1ZTsNCiAgICAgICAgICAgIGlmICghcHJvcGVydGllcy5UcnlHZXRQcm9wZXJ0eShzZXR0aW5nLk5hbWUsIG91dCB2YWx1ZSkgJiYgc2V0dGluZy5EZWZhdWx0VmFsdWUgIT0gbnVsbCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICB2YWx1ZSA9IHNldHRpbmcuRGVmYXVsdFZhbHVlKCk7DQoNCiAgICAgICAgICAgICAgICBpZiAoY2FjaGVEZWZhdWx0KSB7IHByb3BlcnRpZXNbc2V0dGluZy5OYW1lXSA9IHZhbHVlOyB9DQogICAgICAgICAgICB9DQogICAgICAgICAgICByZXR1cm4gdmFsdWU7DQogICAgICAgIH0NCg0KICAgICAgICBwdWJsaWMgb3ZlcnJpZGUgdm9pZCBTZXRQcm9wZXJ0eShJT3B0aW9uIHNldHRpbmcsIG9iamVjdCB2YWx1ZSkNCiAgICAgICAgew0KICAgICAgICAgICAgU2V0UHJvcGVydHkoc2V0dGluZywgdmFsdWUsIGNhY2hlRGVzY3JpcHRpb246IGZhbHNlKTsNCiAgICAgICAgfQ0KDQogICAgICAgIHB1YmxpYyBvdmVycmlkZSB2b2lkIFNldFByb3BlcnR5KElPcHRpb24gc2V0dGluZywgb2JqZWN0IHZhbHVlLCBib29sIGNhY2hlRGVzY3JpcHRpb24pDQogICAgICAgIHsNCiAgICAgICAgICAgIFNldFByb3BlcnR5KHNldHRpbmcsIHZhbHVlLCBjYWNoZURlc2NyaXB0aW9uLCB0cnVlKTsNCiAgICAgICAgfQ0KDQogICAgICAgIHB1YmxpYyB2b2lkIFNldFByb3BlcnR5KElPcHRpb24gc2V0dGluZywgb2JqZWN0IHZhbHVlLCBib29sIGNhY2hlRGVzY3JpcHRpb24sIGJvb2wgcGVyc2lzdFRvU2V0dGluZ3NDb250YWluZXIpDQoNCiAgICAgICAgew0KICAgICAgICAgICAgaWYgKHNldHRpbmcgPT0gbnVsbCkgeyB0aHJvdyBuZXcgQXJndW1lbnROdWxsRXhjZXB0aW9uKG5hbWVvZihzZXR0aW5nKSk7IH0NCg0KICAgICAgICAgICAgUHJvcGVydGllc0RpY3Rpb25hcnkgcHJvcGVydGllcyA9IHBlcnNpc3RUb1NldHRpbmdzQ29udGFpbmVyID8gR2V0U2V0dGluZ3NDb250YWluZXIoc2V0dGluZywgdHJ1ZSkgOiB0aGlzOw0KDQogICAgICAgICAgICBpZiAodmFsdWUgPT0gbnVsbCAmJiBwcm9wZXJ0aWVzLkNvbnRhaW5zS2V5KHNldHRpbmcuTmFtZSkpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgcHJvcGVydGllcy5SZW1vdmUoc2V0dGluZy5OYW1lKTsNCiAgICAgICAgICAgICAgICByZXR1cm47DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIGlmIChjYWNoZURlc2NyaXB0aW9uKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIFNldHRpbmdOYW1lVG9EZXNjcmlwdGlvbnNNYXAgPSBTZXR0aW5nTmFtZVRvRGVzY3JpcHRpb25zTWFwID8/IG5ldyBEaWN0aW9uYXJ5PHN0cmluZywgc3RyaW5nPigpOw0KICAgICAgICAgICAgICAgIFNldHRpbmdOYW1lVG9EZXNjcmlwdGlvbnNNYXBbc2V0dGluZy5OYW1lXSA9IHNldHRpbmcuRGVzY3JpcHRpb247DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIHByb3BlcnRpZXNbc2V0dGluZy5OYW1lXSA9IHZhbHVlOw0KICAgICAgICB9DQoNCiAgICAgICAgaW50ZXJuYWwgYm9vbCBUcnlHZXRQcm9wZXJ0eTxUPihzdHJpbmcga2V5LCBvdXQgVCB2YWx1ZSkNCiAgICAgICAgew0KICAgICAgICAgICAgdmFsdWUgPSBkZWZhdWx0KFQpOw0KDQogICAgICAgICAgICBvYmplY3QgcmVzdWx0Ow0KICAgICAgICAgICAgaWYgKHRoaXMuVHJ5R2V0VmFsdWUoa2V5LCBvdXQgcmVzdWx0KSkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBpZiAocmVzdWx0IGlzIFQpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IChUKXJlc3VsdDsNCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGVsc2UgaWYgKHJlc3VsdCBpcyBKVG9rZW4pDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9ICgoSlRva2VuKXJlc3VsdCkuVG9PYmplY3Q8VD4oKTsNCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIHJldHVybiBUcnlDb252ZXJ0RnJvbVN0cmluZygoc3RyaW5nKXJlc3VsdCwgb3V0IHZhbHVlKTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICB9DQoNCiAgICAgICAgcHJpdmF0ZSBQcm9wZXJ0aWVzRGljdGlvbmFyeSBHZXRTZXR0aW5nc0NvbnRhaW5lcihJT3B0aW9uIHNldHRpbmcsIGJvb2wgY2FjaGVEZWZhdWx0KQ0KICAgICAgICB7DQogICAgICAgICAgICBQcm9wZXJ0aWVzRGljdGlvbmFyeSBwcm9wZXJ0aWVzID0gdGhpczsNCg0KICAgICAgICAgICAgaWYgKFN0cmluZy5Jc051bGxPckVtcHR5KE5hbWUpKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIG9iamVjdCBwcm9wZXJ0aWVzT2JqZWN0Ow0KICAgICAgICAgICAgICAgIHN0cmluZyBmZWF0dXJlT3B0aW9uc05hbWUgPSBzZXR0aW5nLkZlYXR1cmUgKyAiLk9wdGlvbnMiOw0KICAgICAgICAgICAgICAgIGlmICghVHJ5R2V0VmFsdWUoZmVhdHVyZU9wdGlvbnNOYW1lLCBvdXQgcHJvcGVydGllc09iamVjdCkpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0aWVzID0gbmV3IFByb3BlcnRpZXNEaWN0aW9uYXJ5KCk7DQogICAgICAgICAgICAgICAgICAgIGlmIChjYWNoZURlZmF1bHQpIHsgdGhpc1tmZWF0dXJlT3B0aW9uc05hbWVdID0gcHJvcGVydGllczsgfQ0KICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0aWVzLk5hbWUgPSBmZWF0dXJlT3B0aW9uc05hbWU7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGVsc2UNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIHByb3BlcnRpZXMgPSAoUHJvcGVydGllc0RpY3Rpb25hcnkpcHJvcGVydGllc09iamVjdDsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQogICAgICAgICAgICByZXR1cm4gcHJvcGVydGllczsNCiAgICAgICAgfQ0KDQogICAgICAgIHByaXZhdGUgc3RhdGljIGJvb2wgVHJ5Q29udmVydEZyb21TdHJpbmc8VD4oc3RyaW5nIHNvdXJjZSwgb3V0IFQgZGVzdGluYXRpb24pDQogICAgICAgIHsNCiAgICAgICAgICAgIGRlc3RpbmF0aW9uID0gZGVmYXVsdChUKTsNCiAgICAgICAgICAgIGlmIChzb3VyY2UgPT0gbnVsbCkgcmV0dXJuIGZhbHNlOw0KICAgICAgICAgICAgVHlwZUNvbnZlcnRlciBjb252ZXJ0ZXIgPSBUeXBlRGVzY3JpcHRvci5HZXRDb252ZXJ0ZXIodHlwZW9mKFQpKTsNCiAgICAgICAgICAgIGRlc3RpbmF0aW9uID0gKFQpY29udmVydGVyLkNvbnZlcnRGcm9tKHNvdXJjZSk7DQogICAgICAgICAgICByZXR1cm4gZGVzdGluYXRpb24gIT0gbnVsbDsNCiAgICAgICAgfQ0KDQogICAgICAgIHB1YmxpYyB2b2lkIFNhdmVUb0pzb24oc3RyaW5nIGZpbGVQYXRoLCBib29sIHByZXR0eVByaW50ID0gdHJ1ZSkNCiAgICAgICAgew0KDQogICAgICAgICAgICBOZXd0b25zb2Z0Lkpzb24uRm9ybWF0dGluZyBmb3JtYXR0aW5nID0gcHJldHR5UHJpbnQNCiAgICAgICAgICAgICAgICA/IE5ld3RvbnNvZnQuSnNvbi5Gb3JtYXR0aW5nLkluZGVudGVkDQogICAgICAgICAgICAgICAgOiBOZXd0b25zb2Z0Lkpzb24uRm9ybWF0dGluZy5Ob25lOw0KDQogICAgICAgICAgICB2YXIgc2V0dGluZ3MgPSBuZXcgSnNvblNlcmlhbGl6ZXJTZXR0aW5ncw0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIEZvcm1hdHRpbmcgPSBmb3JtYXR0aW5nDQogICAgICAgICAgICB9Ow0KICAgICAgICAgICAgIA0KICAgICAgICAgICAgRmlsZS5Xcml0ZUFsbFRleHQoZmlsZVBhdGgsIEpzb25Db252ZXJ0LlNlcmlhbGl6ZU9iamVjdCh0aGlzLCBzZXR0aW5ncykpOw0KICAgICAgICB9DQoNCg0KICAgICAgICBwdWJsaWMgdm9pZCBMb2FkRnJvbUpzb24oc3RyaW5nIGZpbGVQYXRoKQ0KICAgICAgICB7DQogICAgICAgICAgICB2YXIgcHJvcGVydGllcyA9IEpzb25Db252ZXJ0LkRlc2VyaWFsaXplT2JqZWN0PFByb3BlcnRpZXNEaWN0aW9uYXJ5PihGaWxlLlJlYWRBbGxUZXh0KGZpbGVQYXRoKSk7DQogICAgICAgICAgICB0aGlzLkNsZWFyKCk7DQoNCiAgICAgICAgICAgIGZvcmVhY2ggKHN0cmluZyBrZXkgaW4gcHJvcGVydGllcy5LZXlzKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHRoaXNba2V5XSA9IHByb3BlcnRpZXNba2V5XTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgIHB1YmxpYyB2b2lkIFNhdmVUb1htbChzdHJpbmcgZmlsZVBhdGgpDQogICAgICAgIHsNCiAgICAgICAgICAgIHVzaW5nICh2YXIgd3JpdGVyID0gbmV3IEZpbGVTdHJlYW0oZmlsZVBhdGgsIEZpbGVNb2RlLkNyZWF0ZSwgRmlsZUFjY2Vzcy5Xcml0ZSkpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgU2F2ZVRvWG1sKHdyaXRlcik7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICBwdWJsaWMgdm9pZCBTYXZlVG9YbWwoU3RyZWFtIHN0cmVhbSkNCiAgICAgICAgew0KICAgICAgICAgICAgdmFyIHNldHRpbmdzID0gbmV3IFhtbFdyaXRlclNldHRpbmdzIHsgSW5kZW50ID0gdHJ1ZSB9Ow0KICAgICAgICAgICAgdXNpbmcgKFhtbFdyaXRlciB3cml0ZXIgPSBYbWxXcml0ZXIuQ3JlYXRlKHN0cmVhbSwgc2V0dGluZ3MpKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHRoaXMuU2F2ZVByb3BlcnRpZXNUb1htbFN0cmVhbSh3cml0ZXIsIHNldHRpbmdzLCBudWxsLCBTZXR0aW5nTmFtZVRvRGVzY3JpcHRpb25zTWFwKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgIHB1YmxpYyB2b2lkIExvYWRGcm9tWG1sKHN0cmluZyBmaWxlUGF0aCkNCiAgICAgICAgew0KICAgICAgICAgICAgdXNpbmcgKHZhciByZWFkZXIgPSBuZXcgRmlsZVN0cmVhbShmaWxlUGF0aCwgRmlsZU1vZGUuT3BlbiwgRmlsZUFjY2Vzcy5SZWFkKSkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBMb2FkRnJvbVhtbChyZWFkZXIpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgICAgIA0KICAgICAgICBwdWJsaWMgdm9pZCBMb2FkRnJvbVhtbChTdHJlYW0gc3RyZWFtKQ0KICAgICAgICB7DQogICAgICAgICAgICB2YXIgc2V0dGluZ3MgPSBuZXcgWG1sUmVhZGVyU2V0dGluZ3MNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBEdGRQcm9jZXNzaW5nID0gRHRkUHJvY2Vzc2luZy5JZ25vcmUsDQogICAgICAgICAgICAgICAgWG1sUmVzb2x2ZXIgPSBudWxsDQogICAgICAgICAgICB9Ow0KDQogICAgICAgICAgICB1c2luZyAoWG1sUmVhZGVyIHJlYWRlciA9IFhtbFJlYWRlci5DcmVhdGUoc3RyZWFtLCBzZXR0aW5ncykpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgaWYgKHJlYWRlci5Jc1N0YXJ0RWxlbWVudChQcm9wZXJ0aWVzRGljdGlvbmFyeUV4dGVuc2lvbk1ldGhvZHMuUFJPUEVSVElFU19JRCkpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBib29sIGlzRW1wdHkgPSByZWFkZXIuSXNFbXB0eUVsZW1lbnQ7DQogICAgICAgICAgICAgICAgICAgIHRoaXMuQ2xlYXIoKTsNCg0KICAgICAgICAgICAgICAgICAgICAvLyBOb3RlOiB3ZSBkbyBub3QgcmVjb3ZlciB0aGUgcHJvcGVydHkgYmFnIGlkDQogICAgICAgICAgICAgICAgICAgIC8vICAgICAgIGFzIHRoZXJlIGlzIG5vIGN1cnJlbnQgcHJvZHVjdCB1c2UgZm9yIHRoZSB2YWx1ZQ0KDQogICAgICAgICAgICAgICAgICAgIHJlYWRlci5SZWFkU3RhcnRFbGVtZW50KFByb3BlcnRpZXNEaWN0aW9uYXJ5RXh0ZW5zaW9uTWV0aG9kcy5QUk9QRVJUSUVTX0lEKTsNCg0KICAgICAgICAgICAgICAgICAgICB0aGlzLkxvYWRQcm9wZXJ0aWVzRnJvbVhtbFN0cmVhbShyZWFkZXIpOw0KICAgICAgICAgICAgICAgICAgICBpZiAoIWlzRW1wdHkpIHJlYWRlci5SZWFkRW5kRWxlbWVudCgpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgIC8vIEN1cnJlbnQgY29uc3VtZXJzIG9mIHRoaXMgZGF0YSBleHBlY3QgdGhhdCBjaGlsZCBuYW1lc3BhY2VzDQogICAgICAgIC8vIHdpbGwgYWx3YXlzIHByZWNlZGUgcGFyZW50IG5hbWVzcGFjZXMsIGlmIGFsc28gaW5jbHVkZWQuDQogICAgICAgIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgSW1tdXRhYmxlQXJyYXk8c3RyaW5nPiBEZWZhdWx0TmFtZXNwYWNlcyA9IG5ldyBMaXN0PHN0cmluZz4oDQogICAgICAgICAgICBuZXcgc3RyaW5nW10gew0KICAgICAgICAgICAgICAgICJNaWNyb3NvZnQuQ29kZUFuYWx5c2lzLlNhcmlmLiIsDQogICAgICAgICAgICAgICAgIk1pY3Jvc29mdC5Db2RlQW5hbHlzaXMuIg0KICAgICAgICAgICAgfSkuVG9JbW11dGFibGVBcnJheSgpOw0KICAgIH0NCn0NCg==" + { + "ruleId": "CA2227", + "message": { + "text": "Change 'JsonSchema.AllOf' to be read-only by removing the property setter." }, - "hashes": [ - { - "value": "36DFB9A85D22D6344A1657C46E7AC486", - "algorithm": "md5" - }, - { - "value": "0B788B4C9EB196419737328A57B4D8A1B9D2B7C9", - "algorithm": "sha-1" - }, + "locations": [ { - "value": "60E55DBF351B4565EDC1CEBD3D9DD5BE6A1577E8B002EF488815C40447FC1CEB", - "algorithm": "sha-256" + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Microsoft.Json.Schema.dll", + "uriBaseId": "$(ProjectDir)", + "index": 1 + } + }, + "logicalLocations": [ + { + "index": 50, + "fullyQualifiedName": "microsoft.json.schema.dll!Microsoft.Json.Schema.JsonSchema.AllOf" + } + ] } - ] + ], + "properties": { + "Category": "Microsoft.Usage", + "FixCategory": "Breaking" + } }, - "file:///E:/src/sarif-sdk-test/src/Sarif/Core/PropertyBagHolder.cs": { - "mimeType": "text/x-csharp", - "contents": { - "binary": "77u/Ly8gQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQuICBBbGwgUmlnaHRzIFJlc2VydmVkLg0KLy8gTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlLiBTZWUgTElDRU5TRSBmaWxlIGluIHRoZSBwcm9qZWN0IHJvb3QgZm9yIGZ1bGwgbGljZW5zZSBpbmZvcm1hdGlvbi4NCg0KdXNpbmcgU3lzdGVtOw0KdXNpbmcgU3lzdGVtLkNvbGxlY3Rpb25zLkdlbmVyaWM7DQp1c2luZyBTeXN0ZW0uRGlhZ25vc3RpY3M7DQp1c2luZyBTeXN0ZW0uR2xvYmFsaXphdGlvbjsNCnVzaW5nIFN5c3RlbS5MaW5xOw0KdXNpbmcgTWljcm9zb2Z0LkNvZGVBbmFseXNpcy5TYXJpZi5SZWFkZXJzOw0KdXNpbmcgTWljcm9zb2Z0LkNvZGVBbmFseXNpcy5TYXJpZi5WaXNpdG9yczsNCnVzaW5nIE5ld3RvbnNvZnQuSnNvbjsNCg0KbmFtZXNwYWNlIE1pY3Jvc29mdC5Db2RlQW5hbHlzaXMuU2FyaWYNCnsNCiAgICAvLy8gPHN1bW1hcnk+DQogICAgLy8vIEJhc2UgY2xhc3MgZm9yIG9iamVjdHMgdGhhdCBjYW4gaG9sZCBwcm9wZXJ0aWVzIG9mIGFyYml0cmFyeSB0eXBlcy4NCiAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgIHB1YmxpYyBhYnN0cmFjdCBjbGFzcyBQcm9wZXJ0eUJhZ0hvbGRlciA6IElQcm9wZXJ0eUJhZ0hvbGRlcg0KICAgIHsNCiAgICAgICAgcHJpdmF0ZSBjb25zdCBzdHJpbmcgTnVsbFZhbHVlID0gIm51bGwiOw0KDQogICAgICAgIHByb3RlY3RlZCBQcm9wZXJ0eUJhZ0hvbGRlcigpDQogICAgICAgIHsNCiAgICAgICAgICAgIFRhZ3MgPSBuZXcgVGFnc0NvbGxlY3Rpb24odGhpcyk7DQogICAgICAgIH0NCg0KICAgICAgICBbSnNvbklnbm9yZV0NCiAgICAgICAgcHVibGljIElMaXN0PHN0cmluZz4gUHJvcGVydHlOYW1lcw0KICAgICAgICB7DQogICAgICAgICAgICBnZXQNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gUHJvcGVydGllcyAhPSBudWxsID8gUHJvcGVydGllcy5LZXlzLlRvTGlzdCgpIDogbmV3IExpc3Q8c3RyaW5nPigpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gS2V5L3ZhbHVlIHBhaXJzIHRoYXQgcHJvdmlkZSBhZGRpdGlvbmFsIGluZm9ybWF0aW9uIGFib3V0IHRoZSBydW4uDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIFtKc29uQ29udmVydGVyKHR5cGVvZihQcm9wZXJ0eUJhZ0NvbnZlcnRlcikpXQ0KICAgICAgICBbSnNvblByb3BlcnR5KCJwcm9wZXJ0aWVzIiwgRGVmYXVsdFZhbHVlSGFuZGxpbmcgPSBEZWZhdWx0VmFsdWVIYW5kbGluZy5JZ25vcmUpXQ0KICAgICAgICBpbnRlcm5hbCB2aXJ0dWFsIElEaWN0aW9uYXJ5PHN0cmluZywgU2VyaWFsaXplZFByb3BlcnR5SW5mbz4gUHJvcGVydGllcyB7IGdldDsgc2V0OyB9DQoNCiAgICAgICAgcHVibGljIGJvb2wgVHJ5R2V0UHJvcGVydHkoc3RyaW5nIHByb3BlcnR5TmFtZSwgb3V0IHN0cmluZyB2YWx1ZSkNCiAgICAgICAgew0KICAgICAgICAgICAgaWYgKFByb3BlcnRpZXMgIT0gbnVsbCAmJiBQcm9wZXJ0aWVzLktleXMuQ29udGFpbnMocHJvcGVydHlOYW1lKSkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICB2YWx1ZSA9IEdldFByb3BlcnR5KHByb3BlcnR5TmFtZSk7DQogICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIHZhbHVlID0gbnVsbDsNCiAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgfQ0KDQogICAgICAgIHB1YmxpYyBzdHJpbmcgR2V0UHJvcGVydHkoc3RyaW5nIHByb3BlcnR5TmFtZSkNCiAgICAgICAgew0KICAgICAgICAgICAgaWYgKCFQcm9wZXJ0eU5hbWVzLkNvbnRhaW5zKHByb3BlcnR5TmFtZSkpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgdGhyb3cgbmV3IEludmFsaWRPcGVyYXRpb25FeGNlcHRpb24oDQogICAgICAgICAgICAgICAgICAgIHN0cmluZy5Gb3JtYXQoDQogICAgICAgICAgICAgICAgICAgICAgICBDdWx0dXJlSW5mby5DdXJyZW50Q3VsdHVyZSwNCiAgICAgICAgICAgICAgICAgICAgICAgIFNka1Jlc291cmNlcy5Qcm9wZXJ0eURvZXNOb3RFeGlzdCwNCiAgICAgICAgICAgICAgICAgICAgICAgIHByb3BlcnR5TmFtZSkpOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBpZiAoIVByb3BlcnRpZXNbcHJvcGVydHlOYW1lXS5Jc1N0cmluZykNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSW52YWxpZE9wZXJhdGlvbkV4Y2VwdGlvbihTZGtSZXNvdXJjZXMuQ2FsbEdlbmVyaWNHZXRQcm9wZXJ0eSk7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIHN0cmluZyB2YWx1ZSA9IFByb3BlcnRpZXNbcHJvcGVydHlOYW1lXS5TZXJpYWxpemVkVmFsdWU7DQoNCiAgICAgICAgICAgIC8vIFJlbW92ZSB0aGUgcXVvdGVzIGFyb3VuZCB0aGUgc2VyaWFsaXplZCB2YWx1ZSAoIngiID0+IHgpIC0tIHVubGVzcyBpdCdzIG51bGwuDQogICAgICAgICAgICByZXR1cm4gdmFsdWUuRXF1YWxzKE51bGxWYWx1ZSwgU3RyaW5nQ29tcGFyaXNvbi5PcmRpbmFsKQ0KICAgICAgICAgICAgICAgID8gbnVsbA0KICAgICAgICAgICAgICAgIDogdmFsdWUuU3Vic3RyaW5nKDEsIHZhbHVlLkxlbmd0aCAtIDIpOw0KICAgICAgICB9DQoNCiAgICAgICAgcHVibGljIGJvb2wgVHJ5R2V0UHJvcGVydHk8VD4oc3RyaW5nIHByb3BlcnR5TmFtZSwgb3V0IFQgdmFsdWUpDQogICAgICAgIHsNCiAgICAgICAgICAgIGlmIChQcm9wZXJ0aWVzICE9IG51bGwgJiYgUHJvcGVydGllcy5LZXlzLkNvbnRhaW5zKHByb3BlcnR5TmFtZSkpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgdmFsdWUgPSBHZXRQcm9wZXJ0eTxUPihwcm9wZXJ0eU5hbWUpOw0KICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICB2YWx1ZSA9IGRlZmF1bHQoVCk7DQogICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgIH0NCg0KICAgICAgICBwdWJsaWMgVCBHZXRQcm9wZXJ0eTxUPihzdHJpbmcgcHJvcGVydHlOYW1lKQ0KICAgICAgICB7DQogICAgICAgICAgICBpZiAoIVByb3BlcnR5TmFtZXMuQ29udGFpbnMocHJvcGVydHlOYW1lKSkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSW52YWxpZE9wZXJhdGlvbkV4Y2VwdGlvbigNCiAgICAgICAgICAgICAgICAgICAgc3RyaW5nLkZvcm1hdCgNCiAgICAgICAgICAgICAgICAgICAgICAgIEN1bHR1cmVJbmZvLkN1cnJlbnRDdWx0dXJlLA0KICAgICAgICAgICAgICAgICAgICAgICAgU2RrUmVzb3VyY2VzLlByb3BlcnR5RG9lc05vdEV4aXN0LA0KICAgICAgICAgICAgICAgICAgICAgICAgcHJvcGVydHlOYW1lKSk7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIHJldHVybiBKc29uQ29udmVydC5EZXNlcmlhbGl6ZU9iamVjdDxUPihQcm9wZXJ0aWVzW3Byb3BlcnR5TmFtZV0uU2VyaWFsaXplZFZhbHVlKTsNCiAgICAgICAgfQ0KDQogICAgICAgIHB1YmxpYyB2b2lkIFNldFByb3BlcnR5PFQ+KHN0cmluZyBwcm9wZXJ0eU5hbWUsIFQgdmFsdWUpDQogICAgICAgIHsNCiAgICAgICAgICAgIGlmIChQcm9wZXJ0aWVzID09IG51bGwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgUHJvcGVydGllcyA9IG5ldyBEaWN0aW9uYXJ5PHN0cmluZywgU2VyaWFsaXplZFByb3BlcnR5SW5mbz4oKTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgYm9vbCBpc1N0cmluZyA9IHR5cGVvZihUKSA9PSB0eXBlb2Yoc3RyaW5nKTsNCg0KICAgICAgICAgICAgc3RyaW5nIHNlcmlhbGl6ZWRWYWx1ZTsNCiAgICAgICAgICAgIGlmICh2YWx1ZSA9PSBudWxsKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHNlcmlhbGl6ZWRWYWx1ZSA9IE51bGxWYWx1ZTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2UNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBpZiAoaXNTdHJpbmcpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBzZXJpYWxpemVkVmFsdWUgPSBKc29uQ29udmVydC5Ub1N0cmluZyh2YWx1ZSk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGVsc2UNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIC8vIFVzZSB0aGUgYXBwcm9wcmlhdGUgc2VyaWFsaXplciBzZXR0aW5ncw0KICAgICAgICAgICAgICAgICAgICBKc29uU2VyaWFsaXplclNldHRpbmdzIHNldHRpbmdzID0gbnVsbDsNCg0KICAgICAgICAgICAgICAgICAgICBpZiAocHJvcGVydHlOYW1lLlN0YXJ0c1dpdGgoInNhcmlmdjIvIikpDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHNldHRpbmdzID0gU2FyaWZUcmFuc2Zvcm1lclV0aWxpdGllcy5Kc29uU2V0dGluZ3NWMkNvbXBhY3Q7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAocHJvcGVydHlOYW1lLlN0YXJ0c1dpdGgoInNhcmlmdjEvIikpDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHNldHRpbmdzID0gU2FyaWZUcmFuc2Zvcm1lclV0aWxpdGllcy5Kc29uU2V0dGluZ3NWMUNvbXBhY3Q7DQogICAgICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgICAgICBzZXJpYWxpemVkVmFsdWUgPSBKc29uQ29udmVydC5TZXJpYWxpemVPYmplY3QodmFsdWUsIHNldHRpbmdzKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQogICAgICAgICAgICAgDQogICAgICAgICAgICBQcm9wZXJ0aWVzW3Byb3BlcnR5TmFtZV0gPSBuZXcgU2VyaWFsaXplZFByb3BlcnR5SW5mbyhzZXJpYWxpemVkVmFsdWUsIGlzU3RyaW5nKTsNCiAgICAgICAgfQ0KDQogICAgICAgIHB1YmxpYyB2b2lkIFNldFByb3BlcnRpZXNGcm9tKElQcm9wZXJ0eUJhZ0hvbGRlciBvdGhlcikNCiAgICAgICAgew0KICAgICAgICAgICAgaWYgKG90aGVyID09IG51bGwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgdGhyb3cgbmV3IEFyZ3VtZW50TnVsbEV4Y2VwdGlvbihuYW1lb2Yob3RoZXIpKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIA0KICAgICAgICAgICAgLy8gV2UgbmVlZCB0aGUgY29uY3JldGUgY2xhc3MgYmVjYXVzZSB0aGUgSVByb3BlcnR5QmFnSG9sZGVyIGludGVyZmFjZQ0KICAgICAgICAgICAgLy8gZG9lc24ndCBleHBvc2UgdGhlIHJhdyBQcm9wZXJ0aWVzIGFycmF5Lg0KICAgICAgICAgICAgUHJvcGVydHlCYWdIb2xkZXIgb3RoZXJIb2xkZXIgPSBvdGhlciBhcyBQcm9wZXJ0eUJhZ0hvbGRlcjsNCiAgICAgICAgICAgIERlYnVnLkFzc2VydChvdGhlckhvbGRlciAhPSBudWxsKTsNCg0KICAgICAgICAgICAgUHJvcGVydGllcyA9IG90aGVyLlByb3BlcnR5TmFtZXMuQ291bnQgPiAwID8gbmV3IERpY3Rpb25hcnk8c3RyaW5nLCBTZXJpYWxpemVkUHJvcGVydHlJbmZvPigpIDogbnVsbDsNCg0KICAgICAgICAgICAgZm9yZWFjaCAoc3RyaW5nIHByb3BlcnR5TmFtZSBpbiBvdGhlci5Qcm9wZXJ0eU5hbWVzKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIFNlcmlhbGl6ZWRQcm9wZXJ0eUluZm8gb3RoZXJJbmZvID0gb3RoZXJIb2xkZXIuUHJvcGVydGllc1twcm9wZXJ0eU5hbWVdOw0KICAgICAgICAgICAgICAgIFByb3BlcnRpZXNbcHJvcGVydHlOYW1lXSA9IG5ldyBTZXJpYWxpemVkUHJvcGVydHlJbmZvKG90aGVySW5mby5TZXJpYWxpemVkVmFsdWUsIG90aGVySW5mby5Jc1N0cmluZyk7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICBwdWJsaWMgdm9pZCBSZW1vdmVQcm9wZXJ0eShzdHJpbmcgcHJvcGVydHlOYW1lKQ0KICAgICAgICB7DQogICAgICAgICAgICBpZiAoUHJvcGVydGllcyAhPSBudWxsKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIFByb3BlcnRpZXMuUmVtb3ZlKHByb3BlcnR5TmFtZSk7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICBbSnNvbklnbm9yZV0NCiAgICAgICAgcHVibGljIFRhZ3NDb2xsZWN0aW9uIFRhZ3MgeyBnZXQ7IH0NCiAgICB9DQp9DQo=" + { + "ruleId": "CA2227", + "message": { + "text": "Change 'JsonSchema.AnyOf' to be read-only by removing the property setter." }, - "hashes": [ - { - "value": "AA9BE7560260940CAD63E22FBCA39BA0", - "algorithm": "md5" - }, - { - "value": "65AA216134DDC7A1EFF4B90540EE5F92A7A1B010", - "algorithm": "sha-1" - }, + "locations": [ { - "value": "D981E6A766927CFDE7A991FCE97782BB6C7F8F20192AE99E247E3C2EA47ED58E", - "algorithm": "sha-256" + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Microsoft.Json.Schema.dll", + "uriBaseId": "$(ProjectDir)", + "index": 1 + } + }, + "logicalLocations": [ + { + "index": 51, + "fullyQualifiedName": "microsoft.json.schema.dll!Microsoft.Json.Schema.JsonSchema.AnyOf" + } + ] } - ] + ], + "properties": { + "Category": "Microsoft.Usage", + "FixCategory": "Breaking" + } }, - "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/Region.cs": { - "mimeType": "text/x-csharp", - "contents": { - "binary": "Ly8gQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQuICBBbGwgUmlnaHRzIFJlc2VydmVkLg0KLy8gTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlLiBTZWUgTElDRU5TRSBmaWxlIGluIHRoZSBwcm9qZWN0IHJvb3QgZm9yIGZ1bGwgbGljZW5zZSBpbmZvcm1hdGlvbi4NCg0KdXNpbmcgU3lzdGVtOw0KdXNpbmcgU3lzdGVtLkNvZGVEb20uQ29tcGlsZXI7DQp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsNCnVzaW5nIFN5c3RlbS5SdW50aW1lLlNlcmlhbGl6YXRpb247DQoNCm5hbWVzcGFjZSBNaWNyb3NvZnQuQ29kZUFuYWx5c2lzLlNhcmlmDQp7DQogICAgLy8vIDxzdW1tYXJ5Pg0KICAgIC8vLyBBIHJlZ2lvbiB3aXRoaW4gYSBmaWxlIHdoZXJlIGEgcmVzdWx0IHdhcyBkZXRlY3RlZC4NCiAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgIFtEYXRhQ29udHJhY3RdDQogICAgW0dlbmVyYXRlZENvZGUoIk1pY3Jvc29mdC5Kc29uLlNjaGVtYS5Ub0RvdE5ldCIsICIwLjU2LjAuMCIpXQ0KICAgIHB1YmxpYyBwYXJ0aWFsIGNsYXNzIFJlZ2lvbiA6IElTYXJpZk5vZGUNCiAgICB7DQogICAgICAgIHB1YmxpYyBzdGF0aWMgSUVxdWFsaXR5Q29tcGFyZXI8UmVnaW9uPiBWYWx1ZUNvbXBhcmVyID0+IFJlZ2lvbkVxdWFsaXR5Q29tcGFyZXIuSW5zdGFuY2U7DQoNCiAgICAgICAgcHVibGljIGJvb2wgVmFsdWVFcXVhbHMoUmVnaW9uIG90aGVyKSA9PiBWYWx1ZUNvbXBhcmVyLkVxdWFscyh0aGlzLCBvdGhlcik7DQogICAgICAgIHB1YmxpYyBpbnQgVmFsdWVHZXRIYXNoQ29kZSgpID0+IFZhbHVlQ29tcGFyZXIuR2V0SGFzaENvZGUodGhpcyk7DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gR2V0cyBhIHZhbHVlIGluZGljYXRpbmcgdGhlIHR5cGUgb2Ygb2JqZWN0IGltcGxlbWVudGluZyA8c2VlIGNyZWY9IklTYXJpZk5vZGUiIC8+Lg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICBwdWJsaWMgU2FyaWZOb2RlS2luZCBTYXJpZk5vZGVLaW5kDQogICAgICAgIHsNCiAgICAgICAgICAgIGdldA0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHJldHVybiBTYXJpZk5vZGVLaW5kLlJlZ2lvbjsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIFRoZSBsaW5lIG51bWJlciBvZiB0aGUgZmlyc3QgY2hhcmFjdGVyIGluIHRoZSByZWdpb24uDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIFtEYXRhTWVtYmVyKE5hbWUgPSAic3RhcnRMaW5lIiwgSXNSZXF1aXJlZCA9IGZhbHNlLCBFbWl0RGVmYXVsdFZhbHVlID0gZmFsc2UpXQ0KICAgICAgICBwdWJsaWMgaW50IFN0YXJ0TGluZSB7IGdldDsgc2V0OyB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gVGhlIGNvbHVtbiBudW1iZXIgb2YgdGhlIGZpcnN0IGNoYXJhY3RlciBpbiB0aGUgcmVnaW9uLg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICBbRGF0YU1lbWJlcihOYW1lID0gInN0YXJ0Q29sdW1uIiwgSXNSZXF1aXJlZCA9IGZhbHNlLCBFbWl0RGVmYXVsdFZhbHVlID0gZmFsc2UpXQ0KICAgICAgICBwdWJsaWMgaW50IFN0YXJ0Q29sdW1uIHsgZ2V0OyBzZXQ7IH0NCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBUaGUgbGluZSBudW1iZXIgb2YgdGhlIGxhc3QgY2hhcmFjdGVyIGluIHRoZSByZWdpb24uDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIFtEYXRhTWVtYmVyKE5hbWUgPSAiZW5kTGluZSIsIElzUmVxdWlyZWQgPSBmYWxzZSwgRW1pdERlZmF1bHRWYWx1ZSA9IGZhbHNlKV0NCiAgICAgICAgcHVibGljIGludCBFbmRMaW5lIHsgZ2V0OyBzZXQ7IH0NCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBUaGUgY29sdW1uIG51bWJlciBvZiB0aGUgY2hhcmFjdGVyIGZvbGxvd2luZyB0aGUgZW5kIG9mIHRoZSByZWdpb24uDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIFtEYXRhTWVtYmVyKE5hbWUgPSAiZW5kQ29sdW1uIiwgSXNSZXF1aXJlZCA9IGZhbHNlLCBFbWl0RGVmYXVsdFZhbHVlID0gZmFsc2UpXQ0KICAgICAgICBwdWJsaWMgaW50IEVuZENvbHVtbiB7IGdldDsgc2V0OyB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gVGhlIHplcm8tYmFzZWQgb2Zmc2V0IGZyb20gdGhlIGJlZ2lubmluZyBvZiB0aGUgZmlsZSBvZiB0aGUgZmlyc3QgY2hhcmFjdGVyIGluIHRoZSByZWdpb24uDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIFtEYXRhTWVtYmVyKE5hbWUgPSAiY2hhck9mZnNldCIsIElzUmVxdWlyZWQgPSBmYWxzZSwgRW1pdERlZmF1bHRWYWx1ZSA9IGZhbHNlKV0NCiAgICAgICAgcHVibGljIGludCBDaGFyT2Zmc2V0IHsgZ2V0OyBzZXQ7IH0NCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBUaGUgbGVuZ3RoIG9mIHRoZSByZWdpb24gaW4gY2hhcmFjdGVycy4NCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgW0RhdGFNZW1iZXIoTmFtZSA9ICJjaGFyTGVuZ3RoIiwgSXNSZXF1aXJlZCA9IGZhbHNlLCBFbWl0RGVmYXVsdFZhbHVlID0gZmFsc2UpXQ0KICAgICAgICBwdWJsaWMgaW50IENoYXJMZW5ndGggeyBnZXQ7IHNldDsgfQ0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIFRoZSB6ZXJvLWJhc2VkIG9mZnNldCBmcm9tIHRoZSBiZWdpbm5pbmcgb2YgdGhlIGZpbGUgb2YgdGhlIGZpcnN0IGJ5dGUgaW4gdGhlIHJlZ2lvbi4NCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgW0RhdGFNZW1iZXIoTmFtZSA9ICJieXRlT2Zmc2V0IiwgSXNSZXF1aXJlZCA9IGZhbHNlLCBFbWl0RGVmYXVsdFZhbHVlID0gZmFsc2UpXQ0KICAgICAgICBwdWJsaWMgaW50IEJ5dGVPZmZzZXQgeyBnZXQ7IHNldDsgfQ0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIFRoZSBsZW5ndGggb2YgdGhlIHJlZ2lvbiBpbiBieXRlcy4NCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgW0RhdGFNZW1iZXIoTmFtZSA9ICJieXRlTGVuZ3RoIiwgSXNSZXF1aXJlZCA9IGZhbHNlLCBFbWl0RGVmYXVsdFZhbHVlID0gZmFsc2UpXQ0KICAgICAgICBwdWJsaWMgaW50IEJ5dGVMZW5ndGggeyBnZXQ7IHNldDsgfQ0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIFRoZSBwb3J0aW9uIG9mIHRoZSBmaWxlIGNvbnRlbnRzIHdpdGhpbiB0aGUgc3BlY2lmaWVkIHJlZ2lvbi4NCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgW0RhdGFNZW1iZXIoTmFtZSA9ICJzbmlwcGV0IiwgSXNSZXF1aXJlZCA9IGZhbHNlLCBFbWl0RGVmYXVsdFZhbHVlID0gZmFsc2UpXQ0KICAgICAgICBwdWJsaWMgRmlsZUNvbnRlbnQgU25pcHBldCB7IGdldDsgc2V0OyB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gQSBtZXNzYWdlIHJlbGV2YW50IHRvIHRoZSByZWdpb24uDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIFtEYXRhTWVtYmVyKE5hbWUgPSAibWVzc2FnZSIsIElzUmVxdWlyZWQgPSBmYWxzZSwgRW1pdERlZmF1bHRWYWx1ZSA9IGZhbHNlKV0NCiAgICAgICAgcHVibGljIE1lc3NhZ2UgTWVzc2FnZSB7IGdldDsgc2V0OyB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gSW5pdGlhbGl6ZXMgYSBuZXcgaW5zdGFuY2Ugb2YgdGhlIDxzZWUgY3JlZj0iUmVnaW9uIiAvPiBjbGFzcy4NCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgcHVibGljIFJlZ2lvbigpDQogICAgICAgIHsNCiAgICAgICAgfQ0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIEluaXRpYWxpemVzIGEgbmV3IGluc3RhbmNlIG9mIHRoZSA8c2VlIGNyZWY9IlJlZ2lvbiIgLz4gY2xhc3MgZnJvbSB0aGUgc3VwcGxpZWQgdmFsdWVzLg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICAvLy8gPHBhcmFtIG5hbWU9InN0YXJ0TGluZSI+DQogICAgICAgIC8vLyBBbiBpbml0aWFsaXphdGlvbiB2YWx1ZSBmb3IgdGhlIDxzZWUgY3JlZj0iUDogU3RhcnRMaW5lIiAvPiBwcm9wZXJ0eS4NCiAgICAgICAgLy8vIDwvcGFyYW0+DQogICAgICAgIC8vLyA8cGFyYW0gbmFtZT0ic3RhcnRDb2x1bW4iPg0KICAgICAgICAvLy8gQW4gaW5pdGlhbGl6YXRpb24gdmFsdWUgZm9yIHRoZSA8c2VlIGNyZWY9IlA6IFN0YXJ0Q29sdW1uIiAvPiBwcm9wZXJ0eS4NCiAgICAgICAgLy8vIDwvcGFyYW0+DQogICAgICAgIC8vLyA8cGFyYW0gbmFtZT0iZW5kTGluZSI+DQogICAgICAgIC8vLyBBbiBpbml0aWFsaXphdGlvbiB2YWx1ZSBmb3IgdGhlIDxzZWUgY3JlZj0iUDogRW5kTGluZSIgLz4gcHJvcGVydHkuDQogICAgICAgIC8vLyA8L3BhcmFtPg0KICAgICAgICAvLy8gPHBhcmFtIG5hbWU9ImVuZENvbHVtbiI+DQogICAgICAgIC8vLyBBbiBpbml0aWFsaXphdGlvbiB2YWx1ZSBmb3IgdGhlIDxzZWUgY3JlZj0iUDogRW5kQ29sdW1uIiAvPiBwcm9wZXJ0eS4NCiAgICAgICAgLy8vIDwvcGFyYW0+DQogICAgICAgIC8vLyA8cGFyYW0gbmFtZT0iY2hhck9mZnNldCI+DQogICAgICAgIC8vLyBBbiBpbml0aWFsaXphdGlvbiB2YWx1ZSBmb3IgdGhlIDxzZWUgY3JlZj0iUDogQ2hhck9mZnNldCIgLz4gcHJvcGVydHkuDQogICAgICAgIC8vLyA8L3BhcmFtPg0KICAgICAgICAvLy8gPHBhcmFtIG5hbWU9ImNoYXJMZW5ndGgiPg0KICAgICAgICAvLy8gQW4gaW5pdGlhbGl6YXRpb24gdmFsdWUgZm9yIHRoZSA8c2VlIGNyZWY9IlA6IENoYXJMZW5ndGgiIC8+IHByb3BlcnR5Lg0KICAgICAgICAvLy8gPC9wYXJhbT4NCiAgICAgICAgLy8vIDxwYXJhbSBuYW1lPSJieXRlT2Zmc2V0Ij4NCiAgICAgICAgLy8vIEFuIGluaXRpYWxpemF0aW9uIHZhbHVlIGZvciB0aGUgPHNlZSBjcmVmPSJQOiBCeXRlT2Zmc2V0IiAvPiBwcm9wZXJ0eS4NCiAgICAgICAgLy8vIDwvcGFyYW0+DQogICAgICAgIC8vLyA8cGFyYW0gbmFtZT0iYnl0ZUxlbmd0aCI+DQogICAgICAgIC8vLyBBbiBpbml0aWFsaXphdGlvbiB2YWx1ZSBmb3IgdGhlIDxzZWUgY3JlZj0iUDogQnl0ZUxlbmd0aCIgLz4gcHJvcGVydHkuDQogICAgICAgIC8vLyA8L3BhcmFtPg0KICAgICAgICAvLy8gPHBhcmFtIG5hbWU9InNuaXBwZXQiPg0KICAgICAgICAvLy8gQW4gaW5pdGlhbGl6YXRpb24gdmFsdWUgZm9yIHRoZSA8c2VlIGNyZWY9IlA6IFNuaXBwZXQiIC8+IHByb3BlcnR5Lg0KICAgICAgICAvLy8gPC9wYXJhbT4NCiAgICAgICAgLy8vIDxwYXJhbSBuYW1lPSJtZXNzYWdlIj4NCiAgICAgICAgLy8vIEFuIGluaXRpYWxpemF0aW9uIHZhbHVlIGZvciB0aGUgPHNlZSBjcmVmPSJQOiBNZXNzYWdlIiAvPiBwcm9wZXJ0eS4NCiAgICAgICAgLy8vIDwvcGFyYW0+DQogICAgICAgIHB1YmxpYyBSZWdpb24oaW50IHN0YXJ0TGluZSwgaW50IHN0YXJ0Q29sdW1uLCBpbnQgZW5kTGluZSwgaW50IGVuZENvbHVtbiwgaW50IGNoYXJPZmZzZXQsIGludCBjaGFyTGVuZ3RoLCBpbnQgYnl0ZU9mZnNldCwgaW50IGJ5dGVMZW5ndGgsIEZpbGVDb250ZW50IHNuaXBwZXQsIE1lc3NhZ2UgbWVzc2FnZSkNCiAgICAgICAgew0KICAgICAgICAgICAgSW5pdChzdGFydExpbmUsIHN0YXJ0Q29sdW1uLCBlbmRMaW5lLCBlbmRDb2x1bW4sIGNoYXJPZmZzZXQsIGNoYXJMZW5ndGgsIGJ5dGVPZmZzZXQsIGJ5dGVMZW5ndGgsIHNuaXBwZXQsIG1lc3NhZ2UpOw0KICAgICAgICB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gSW5pdGlhbGl6ZXMgYSBuZXcgaW5zdGFuY2Ugb2YgdGhlIDxzZWUgY3JlZj0iUmVnaW9uIiAvPiBjbGFzcyBmcm9tIHRoZSBzcGVjaWZpZWQgaW5zdGFuY2UuDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIC8vLyA8cGFyYW0gbmFtZT0ib3RoZXIiPg0KICAgICAgICAvLy8gVGhlIGluc3RhbmNlIGZyb20gd2hpY2ggdGhlIG5ldyBpbnN0YW5jZSBpcyB0byBiZSBpbml0aWFsaXplZC4NCiAgICAgICAgLy8vIDwvcGFyYW0+DQogICAgICAgIC8vLyA8ZXhjZXB0aW9uIGNyZWY9IkFyZ3VtZW50TnVsbEV4Y2VwdGlvbiI+DQogICAgICAgIC8vLyBUaHJvd24gaWYgPHBhcmFtcmVmIG5hbWU9Im90aGVyIiAvPiBpcyBudWxsLg0KICAgICAgICAvLy8gPC9leGNlcHRpb24+DQogICAgICAgIHB1YmxpYyBSZWdpb24oUmVnaW9uIG90aGVyKQ0KICAgICAgICB7DQogICAgICAgICAgICBpZiAob3RoZXIgPT0gbnVsbCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgQXJndW1lbnROdWxsRXhjZXB0aW9uKG5hbWVvZihvdGhlcikpOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBJbml0KG90aGVyLlN0YXJ0TGluZSwgb3RoZXIuU3RhcnRDb2x1bW4sIG90aGVyLkVuZExpbmUsIG90aGVyLkVuZENvbHVtbiwgb3RoZXIuQ2hhck9mZnNldCwgb3RoZXIuQ2hhckxlbmd0aCwgb3RoZXIuQnl0ZU9mZnNldCwgb3RoZXIuQnl0ZUxlbmd0aCwgb3RoZXIuU25pcHBldCwgb3RoZXIuTWVzc2FnZSk7DQogICAgICAgIH0NCg0KICAgICAgICBJU2FyaWZOb2RlIElTYXJpZk5vZGUuRGVlcENsb25lKCkNCiAgICAgICAgew0KICAgICAgICAgICAgcmV0dXJuIERlZXBDbG9uZUNvcmUoKTsNCiAgICAgICAgfQ0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIENyZWF0ZXMgYSBkZWVwIGNvcHkgb2YgdGhpcyBpbnN0YW5jZS4NCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgcHVibGljIFJlZ2lvbiBEZWVwQ2xvbmUoKQ0KICAgICAgICB7DQogICAgICAgICAgICByZXR1cm4gKFJlZ2lvbilEZWVwQ2xvbmVDb3JlKCk7DQogICAgICAgIH0NCg0KICAgICAgICBwcml2YXRlIElTYXJpZk5vZGUgRGVlcENsb25lQ29yZSgpDQogICAgICAgIHsNCiAgICAgICAgICAgIHJldHVybiBuZXcgUmVnaW9uKHRoaXMpOw0KICAgICAgICB9DQoNCiAgICAgICAgcHJpdmF0ZSB2b2lkIEluaXQoaW50IHN0YXJ0TGluZSwgaW50IHN0YXJ0Q29sdW1uLCBpbnQgZW5kTGluZSwgaW50IGVuZENvbHVtbiwgaW50IGNoYXJPZmZzZXQsIGludCBjaGFyTGVuZ3RoLCBpbnQgYnl0ZU9mZnNldCwgaW50IGJ5dGVMZW5ndGgsIEZpbGVDb250ZW50IHNuaXBwZXQsIE1lc3NhZ2UgbWVzc2FnZSkNCiAgICAgICAgew0KICAgICAgICAgICAgU3RhcnRMaW5lID0gc3RhcnRMaW5lOw0KICAgICAgICAgICAgU3RhcnRDb2x1bW4gPSBzdGFydENvbHVtbjsNCiAgICAgICAgICAgIEVuZExpbmUgPSBlbmRMaW5lOw0KICAgICAgICAgICAgRW5kQ29sdW1uID0gZW5kQ29sdW1uOw0KICAgICAgICAgICAgQ2hhck9mZnNldCA9IGNoYXJPZmZzZXQ7DQogICAgICAgICAgICBDaGFyTGVuZ3RoID0gY2hhckxlbmd0aDsNCiAgICAgICAgICAgIEJ5dGVPZmZzZXQgPSBieXRlT2Zmc2V0Ow0KICAgICAgICAgICAgQnl0ZUxlbmd0aCA9IGJ5dGVMZW5ndGg7DQogICAgICAgICAgICBpZiAoc25pcHBldCAhPSBudWxsKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIFNuaXBwZXQgPSBuZXcgRmlsZUNvbnRlbnQoc25pcHBldCk7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIGlmIChtZXNzYWdlICE9IG51bGwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgTWVzc2FnZSA9IG5ldyBNZXNzYWdlKG1lc3NhZ2UpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgfQ0KfQ==" + { + "ruleId": "CA1502", + "message": { + "text": "'JsonSchema.Collapse(JsonSchema, JsonSchema)' has a cyclomatic complexity of 34. Rewrite or refactor the method to reduce complexity to 25." }, - "hashes": [ - { - "value": "592E757599D474D88F775C79F4486F30", - "algorithm": "md5" - }, - { - "value": "97B9BEC4CB09143EAFA75A7027241A1EBD6FC9C0", - "algorithm": "sha-1" - }, + "locations": [ { - "value": "02312DE73D068A311F4F1E27BD3D51EDD51D736BF8BE7A57B0D6F8CEC02D68C3", - "algorithm": "sha-256" + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Microsoft.Json.Schema.dll", + "uriBaseId": "$(ProjectDir)", + "index": 1 + } + }, + "logicalLocations": [ + { + "index": 52, + "fullyQualifiedName": "microsoft.json.schema.dll!Microsoft.Json.Schema.JsonSchema.Collapse(Microsoft.Json.Schema.JsonSchema,Microsoft.Json.Schema.JsonSchema)" + } + ] } - ] + ], + "properties": { + "Category": "Microsoft.Maintainability", + "FixCategory": "NonBreaking" + } }, - "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/Resources.cs": { - "mimeType": "text/x-csharp", - "contents": { - "binary": "Ly8gQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQuICBBbGwgUmlnaHRzIFJlc2VydmVkLg0KLy8gTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlLiBTZWUgTElDRU5TRSBmaWxlIGluIHRoZSBwcm9qZWN0IHJvb3QgZm9yIGZ1bGwgbGljZW5zZSBpbmZvcm1hdGlvbi4NCg0KdXNpbmcgU3lzdGVtOw0KdXNpbmcgU3lzdGVtLkNvZGVEb20uQ29tcGlsZXI7DQp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsNCnVzaW5nIFN5c3RlbS5SdW50aW1lLlNlcmlhbGl6YXRpb247DQp1c2luZyBNaWNyb3NvZnQuQ29kZUFuYWx5c2lzLlNhcmlmOw0KDQpuYW1lc3BhY2UgTWljcm9zb2Z0LkNvZGVBbmFseXNpcy5TYXJpZg0Kew0KICAgIC8vLyA8c3VtbWFyeT4NCiAgICAvLy8gQ29udGFpbmVyIGZvciBpdGVtcyB0aGF0IHJlcXVpcmUgbG9jYWxpemF0aW9uLg0KICAgIC8vLyA8L3N1bW1hcnk+DQogICAgW0RhdGFDb250cmFjdF0NCiAgICBbR2VuZXJhdGVkQ29kZSgiTWljcm9zb2Z0Lkpzb24uU2NoZW1hLlRvRG90TmV0IiwgIjAuNTYuMC4wIildDQogICAgcHVibGljIHBhcnRpYWwgY2xhc3MgUmVzb3VyY2VzIDogUHJvcGVydHlCYWdIb2xkZXIsIElTYXJpZk5vZGUNCiAgICB7DQogICAgICAgIHB1YmxpYyBzdGF0aWMgSUVxdWFsaXR5Q29tcGFyZXI8UmVzb3VyY2VzPiBWYWx1ZUNvbXBhcmVyID0+IFJlc291cmNlc0VxdWFsaXR5Q29tcGFyZXIuSW5zdGFuY2U7DQoNCiAgICAgICAgcHVibGljIGJvb2wgVmFsdWVFcXVhbHMoUmVzb3VyY2VzIG90aGVyKSA9PiBWYWx1ZUNvbXBhcmVyLkVxdWFscyh0aGlzLCBvdGhlcik7DQogICAgICAgIHB1YmxpYyBpbnQgVmFsdWVHZXRIYXNoQ29kZSgpID0+IFZhbHVlQ29tcGFyZXIuR2V0SGFzaENvZGUodGhpcyk7DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gR2V0cyBhIHZhbHVlIGluZGljYXRpbmcgdGhlIHR5cGUgb2Ygb2JqZWN0IGltcGxlbWVudGluZyA8c2VlIGNyZWY9IklTYXJpZk5vZGUiIC8+Lg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICBwdWJsaWMgU2FyaWZOb2RlS2luZCBTYXJpZk5vZGVLaW5kDQogICAgICAgIHsNCiAgICAgICAgICAgIGdldA0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHJldHVybiBTYXJpZk5vZGVLaW5kLlJlc291cmNlczsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIEEgZGljdGlvbmFyeSwgZWFjaCBvZiB3aG9zZSBrZXlzIGlzIGEgcmVzb3VyY2UgaWRlbnRpZmllciBhbmQgZWFjaCBvZiB3aG9zZSB2YWx1ZXMgaXMgYSBsb2NhbGl6ZWQgc3RyaW5nLg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICBbRGF0YU1lbWJlcihOYW1lID0gIm1lc3NhZ2VTdHJpbmdzIiwgSXNSZXF1aXJlZCA9IGZhbHNlLCBFbWl0RGVmYXVsdFZhbHVlID0gZmFsc2UpXQ0KICAgICAgICBwdWJsaWMgSURpY3Rpb25hcnk8c3RyaW5nLCBzdHJpbmc+IE1lc3NhZ2VTdHJpbmdzIHsgZ2V0OyBzZXQ7IH0NCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBBIGRpY3Rpb25hcnksIGVhY2ggb2Ygd2hvc2Uga2V5cyBpcyBhIHN0cmluZyBhbmQgZWFjaCBvZiB3aG9zZSB2YWx1ZXMgaXMgYSAncnVsZScgb2JqZWN0LCB0aGF0IGRlc2NyaWJlIGFsbCBydWxlcyBhc3NvY2lhdGVkIHdpdGggYW4gYW5hbHlzaXMgdG9vbCBvciBhIHNwZWNpZmljIHJ1biBvZiBhbiBhbmFseXNpcyB0b29sLg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICBbRGF0YU1lbWJlcihOYW1lID0gInJ1bGVzIiwgSXNSZXF1aXJlZCA9IGZhbHNlLCBFbWl0RGVmYXVsdFZhbHVlID0gZmFsc2UpXQ0KICAgICAgICBwdWJsaWMgSURpY3Rpb25hcnk8c3RyaW5nLCBSdWxlPiBSdWxlcyB7IGdldDsgc2V0OyB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gSW5pdGlhbGl6ZXMgYSBuZXcgaW5zdGFuY2Ugb2YgdGhlIDxzZWUgY3JlZj0iUmVzb3VyY2VzIiAvPiBjbGFzcy4NCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgcHVibGljIFJlc291cmNlcygpDQogICAgICAgIHsNCiAgICAgICAgfQ0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIEluaXRpYWxpemVzIGEgbmV3IGluc3RhbmNlIG9mIHRoZSA8c2VlIGNyZWY9IlJlc291cmNlcyIgLz4gY2xhc3MgZnJvbSB0aGUgc3VwcGxpZWQgdmFsdWVzLg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICAvLy8gPHBhcmFtIG5hbWU9Im1lc3NhZ2VTdHJpbmdzIj4NCiAgICAgICAgLy8vIEFuIGluaXRpYWxpemF0aW9uIHZhbHVlIGZvciB0aGUgPHNlZSBjcmVmPSJQOiBNZXNzYWdlU3RyaW5ncyIgLz4gcHJvcGVydHkuDQogICAgICAgIC8vLyA8L3BhcmFtPg0KICAgICAgICAvLy8gPHBhcmFtIG5hbWU9InJ1bGVzIj4NCiAgICAgICAgLy8vIEFuIGluaXRpYWxpemF0aW9uIHZhbHVlIGZvciB0aGUgPHNlZSBjcmVmPSJQOiBSdWxlcyIgLz4gcHJvcGVydHkuDQogICAgICAgIC8vLyA8L3BhcmFtPg0KICAgICAgICBwdWJsaWMgUmVzb3VyY2VzKElEaWN0aW9uYXJ5PHN0cmluZywgc3RyaW5nPiBtZXNzYWdlU3RyaW5ncywgSURpY3Rpb25hcnk8c3RyaW5nLCBSdWxlPiBydWxlcykNCiAgICAgICAgew0KICAgICAgICAgICAgSW5pdChtZXNzYWdlU3RyaW5ncywgcnVsZXMpOw0KICAgICAgICB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gSW5pdGlhbGl6ZXMgYSBuZXcgaW5zdGFuY2Ugb2YgdGhlIDxzZWUgY3JlZj0iUmVzb3VyY2VzIiAvPiBjbGFzcyBmcm9tIHRoZSBzcGVjaWZpZWQgaW5zdGFuY2UuDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIC8vLyA8cGFyYW0gbmFtZT0ib3RoZXIiPg0KICAgICAgICAvLy8gVGhlIGluc3RhbmNlIGZyb20gd2hpY2ggdGhlIG5ldyBpbnN0YW5jZSBpcyB0byBiZSBpbml0aWFsaXplZC4NCiAgICAgICAgLy8vIDwvcGFyYW0+DQogICAgICAgIC8vLyA8ZXhjZXB0aW9uIGNyZWY9IkFyZ3VtZW50TnVsbEV4Y2VwdGlvbiI+DQogICAgICAgIC8vLyBUaHJvd24gaWYgPHBhcmFtcmVmIG5hbWU9Im90aGVyIiAvPiBpcyBudWxsLg0KICAgICAgICAvLy8gPC9leGNlcHRpb24+DQogICAgICAgIHB1YmxpYyBSZXNvdXJjZXMoUmVzb3VyY2VzIG90aGVyKQ0KICAgICAgICB7DQogICAgICAgICAgICBpZiAob3RoZXIgPT0gbnVsbCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgQXJndW1lbnROdWxsRXhjZXB0aW9uKG5hbWVvZihvdGhlcikpOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBJbml0KG90aGVyLk1lc3NhZ2VTdHJpbmdzLCBvdGhlci5SdWxlcyk7DQogICAgICAgIH0NCg0KICAgICAgICBJU2FyaWZOb2RlIElTYXJpZk5vZGUuRGVlcENsb25lKCkNCiAgICAgICAgew0KICAgICAgICAgICAgcmV0dXJuIERlZXBDbG9uZUNvcmUoKTsNCiAgICAgICAgfQ0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIENyZWF0ZXMgYSBkZWVwIGNvcHkgb2YgdGhpcyBpbnN0YW5jZS4NCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgcHVibGljIFJlc291cmNlcyBEZWVwQ2xvbmUoKQ0KICAgICAgICB7DQogICAgICAgICAgICByZXR1cm4gKFJlc291cmNlcylEZWVwQ2xvbmVDb3JlKCk7DQogICAgICAgIH0NCg0KICAgICAgICBwcml2YXRlIElTYXJpZk5vZGUgRGVlcENsb25lQ29yZSgpDQogICAgICAgIHsNCiAgICAgICAgICAgIHJldHVybiBuZXcgUmVzb3VyY2VzKHRoaXMpOw0KICAgICAgICB9DQoNCiAgICAgICAgcHJpdmF0ZSB2b2lkIEluaXQoSURpY3Rpb25hcnk8c3RyaW5nLCBzdHJpbmc+IG1lc3NhZ2VTdHJpbmdzLCBJRGljdGlvbmFyeTxzdHJpbmcsIFJ1bGU+IHJ1bGVzKQ0KICAgICAgICB7DQogICAgICAgICAgICBpZiAobWVzc2FnZVN0cmluZ3MgIT0gbnVsbCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBNZXNzYWdlU3RyaW5ncyA9IG5ldyBEaWN0aW9uYXJ5PHN0cmluZywgc3RyaW5nPihtZXNzYWdlU3RyaW5ncyk7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIGlmIChydWxlcyAhPSBudWxsKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIFJ1bGVzID0gbmV3IERpY3Rpb25hcnk8c3RyaW5nLCBSdWxlPihydWxlcyk7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCiAgICB9DQp9" + { + "ruleId": "CA2227", + "message": { + "text": "Change 'JsonSchema.Definitions' to be read-only by removing the property setter." }, - "hashes": [ - { - "value": "212301ED58B646843406DDEDD0B5E522", - "algorithm": "md5" - }, - { - "value": "337E856B7570B0EE7E729F13EF733477FE62A6AE", - "algorithm": "sha-1" - }, + "locations": [ { - "value": "5EBBE3F42FF37D3156187C952788EEA5742C29873968ABBE9DF86F9209E24096", - "algorithm": "sha-256" + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Microsoft.Json.Schema.dll", + "uriBaseId": "$(ProjectDir)", + "index": 1 + } + }, + "logicalLocations": [ + { + "index": 53, + "fullyQualifiedName": "microsoft.json.schema.dll!Microsoft.Json.Schema.JsonSchema.Definitions" + } + ] } - ] + ], + "properties": { + "Category": "Microsoft.Usage", + "FixCategory": "Breaking" + } }, - "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/Result.cs": { - "mimeType": "text/x-csharp", - "contents": { - "binary": "Ly8gQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQuICBBbGwgUmlnaHRzIFJlc2VydmVkLg0KLy8gTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlLiBTZWUgTElDRU5TRSBmaWxlIGluIHRoZSBwcm9qZWN0IHJvb3QgZm9yIGZ1bGwgbGljZW5zZSBpbmZvcm1hdGlvbi4NCg0KdXNpbmcgU3lzdGVtOw0KdXNpbmcgU3lzdGVtLkNvZGVEb20uQ29tcGlsZXI7DQp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsNCnVzaW5nIFN5c3RlbS5SdW50aW1lLlNlcmlhbGl6YXRpb247DQp1c2luZyBNaWNyb3NvZnQuQ29kZUFuYWx5c2lzLlNhcmlmLlJlYWRlcnM7DQoNCm5hbWVzcGFjZSBNaWNyb3NvZnQuQ29kZUFuYWx5c2lzLlNhcmlmDQp7DQogICAgLy8vIDxzdW1tYXJ5Pg0KICAgIC8vLyBBIHJlc3VsdCBwcm9kdWNlZCBieSBhbiBhbmFseXNpcyB0b29sLg0KICAgIC8vLyA8L3N1bW1hcnk+DQogICAgW0RhdGFDb250cmFjdF0NCiAgICBbR2VuZXJhdGVkQ29kZSgiTWljcm9zb2Z0Lkpzb24uU2NoZW1hLlRvRG90TmV0IiwgIjAuNTYuMC4wIildDQogICAgcHVibGljIHBhcnRpYWwgY2xhc3MgUmVzdWx0IDogUHJvcGVydHlCYWdIb2xkZXIsIElTYXJpZk5vZGUNCiAgICB7DQogICAgICAgIHB1YmxpYyBzdGF0aWMgSUVxdWFsaXR5Q29tcGFyZXI8UmVzdWx0PiBWYWx1ZUNvbXBhcmVyID0+IFJlc3VsdEVxdWFsaXR5Q29tcGFyZXIuSW5zdGFuY2U7DQoNCiAgICAgICAgcHVibGljIGJvb2wgVmFsdWVFcXVhbHMoUmVzdWx0IG90aGVyKSA9PiBWYWx1ZUNvbXBhcmVyLkVxdWFscyh0aGlzLCBvdGhlcik7DQogICAgICAgIHB1YmxpYyBpbnQgVmFsdWVHZXRIYXNoQ29kZSgpID0+IFZhbHVlQ29tcGFyZXIuR2V0SGFzaENvZGUodGhpcyk7DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gR2V0cyBhIHZhbHVlIGluZGljYXRpbmcgdGhlIHR5cGUgb2Ygb2JqZWN0IGltcGxlbWVudGluZyA8c2VlIGNyZWY9IklTYXJpZk5vZGUiIC8+Lg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICBwdWJsaWMgU2FyaWZOb2RlS2luZCBTYXJpZk5vZGVLaW5kDQogICAgICAgIHsNCiAgICAgICAgICAgIGdldA0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHJldHVybiBTYXJpZk5vZGVLaW5kLlJlc3VsdDsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIFRoZSBzdGFibGUsIHVuaXF1ZSBpZGVudGlmaWVyIG9mIHRoZSBydWxlIChpZiBhbnkpIHRvIHdoaWNoIHRoaXMgbm90aWZpY2F0aW9uIGlzIHJlbGV2YW50LiBJZiAncnVsZUtleScgaXMgbm90IHNwZWNpZmllZCwgdGhpcyBtZW1iZXIgY2FuIGJlIHVzZWQgdG8gcmV0cmlldmUgcnVsZSBtZXRhZGF0YSBmcm9tIHRoZSBydWxlcyBkaWN0aW9uYXJ5LCBpZiBpdCBleGlzdHMuDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIFtEYXRhTWVtYmVyKE5hbWUgPSAicnVsZUlkIiwgSXNSZXF1aXJlZCA9IGZhbHNlLCBFbWl0RGVmYXVsdFZhbHVlID0gZmFsc2UpXQ0KICAgICAgICBwdWJsaWMgc3RyaW5nIFJ1bGVJZCB7IGdldDsgc2V0OyB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gQSB2YWx1ZSBzcGVjaWZ5aW5nIHRoZSBzZXZlcml0eSBsZXZlbCBvZiB0aGUgcmVzdWx0Lg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICBbRGF0YU1lbWJlcihOYW1lID0gImxldmVsIiwgSXNSZXF1aXJlZCA9IGZhbHNlLCBFbWl0RGVmYXVsdFZhbHVlID0gZmFsc2UpXQ0KICAgICAgICBwdWJsaWMgUmVzdWx0TGV2ZWwgTGV2ZWwgeyBnZXQ7IHNldDsgfQ0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIEEgbWVzc2FnZSB0aGF0IGRlc2NyaWJlcyB0aGUgcmVzdWx0LiBUaGUgZmlyc3Qgc2VudGVuY2Ugb2YgdGhlIG1lc3NhZ2Ugb25seSB3aWxsIGJlIGRpc3BsYXllZCB3aGVuIHZpc2libGUgc3BhY2UgaXMgbGltaXRlZC4NCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgW0RhdGFNZW1iZXIoTmFtZSA9ICJtZXNzYWdlIiwgSXNSZXF1aXJlZCA9IGZhbHNlLCBFbWl0RGVmYXVsdFZhbHVlID0gZmFsc2UpXQ0KICAgICAgICBwdWJsaWMgTWVzc2FnZSBNZXNzYWdlIHsgZ2V0OyBzZXQ7IH0NCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBBIHN0cmluZyB0aGF0IGlkZW50aWZpZXMgdGhlIG1lc3NhZ2Ugd2l0aGluIHRoZSBtZXRhZGF0YSBmb3IgdGhlIHJ1bGUgdXNlZCBpbiB0aGlzIHJlc3VsdC4NCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgW0RhdGFNZW1iZXIoTmFtZSA9ICJydWxlTWVzc2FnZUlkIiwgSXNSZXF1aXJlZCA9IGZhbHNlLCBFbWl0RGVmYXVsdFZhbHVlID0gZmFsc2UpXQ0KICAgICAgICBwdWJsaWMgc3RyaW5nIFJ1bGVNZXNzYWdlSWQgeyBnZXQ7IHNldDsgfQ0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIElkZW50aWZpZXMgdGhlIGZpbGUgdGhhdCB0aGUgYW5hbHlzaXMgdG9vbCB3YXMgaW5zdHJ1Y3RlZCB0byBzY2FuLiBUaGlzIG5lZWQgbm90IGJlIHRoZSBzYW1lIGFzIHRoZSBmaWxlIHdoZXJlIHRoZSByZXN1bHQgYWN0dWFsbHkgb2NjdXJyZWQuDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIFtEYXRhTWVtYmVyKE5hbWUgPSAiYW5hbHlzaXNUYXJnZXQiLCBJc1JlcXVpcmVkID0gZmFsc2UsIEVtaXREZWZhdWx0VmFsdWUgPSBmYWxzZSldDQogICAgICAgIHB1YmxpYyBGaWxlTG9jYXRpb24gQW5hbHlzaXNUYXJnZXQgeyBnZXQ7IHNldDsgfQ0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIE9uZSBvciBtb3JlIGxvY2F0aW9ucyB3aGVyZSB0aGUgcmVzdWx0IG9jY3VycmVkLiBTcGVjaWZ5IG9ubHkgb25lIGxvY2F0aW9uIHVubGVzcyB0aGUgcHJvYmxlbSBpbmRpY2F0ZWQgYnkgdGhlIHJlc3VsdCBjYW4gb25seSBiZSBjb3JyZWN0ZWQgYnkgbWFraW5nIGEgY2hhbmdlIGF0IGV2ZXJ5IHNwZWNpZmllZCBsb2NhdGlvbi4NCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgW0RhdGFNZW1iZXIoTmFtZSA9ICJsb2NhdGlvbnMiLCBJc1JlcXVpcmVkID0gZmFsc2UsIEVtaXREZWZhdWx0VmFsdWUgPSBmYWxzZSldDQogICAgICAgIHB1YmxpYyBJTGlzdDxMb2NhdGlvbj4gTG9jYXRpb25zIHsgZ2V0OyBzZXQ7IH0NCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBBIHN0YWJsZSwgdW5pcXVlIGlkZW50aWZlciBmb3IgdGhlIHJlc3VsdCBpbiB0aGUgZm9ybSBvZiBhIEdVSUQuDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIFtEYXRhTWVtYmVyKE5hbWUgPSAiaW5zdGFuY2VHdWlkIiwgSXNSZXF1aXJlZCA9IGZhbHNlLCBFbWl0RGVmYXVsdFZhbHVlID0gZmFsc2UpXQ0KICAgICAgICBwdWJsaWMgc3RyaW5nIEluc3RhbmNlR3VpZCB7IGdldDsgc2V0OyB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gQSBzdGFibGUsIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgZXF1aXZhbGVuY2UgY2xhc3Mgb2YgbG9naWNhbGx5IGlkZW50aWNhbCByZXN1bHRzIHRvIHdoaWNoIHRoaXMgcmVzdWx0IGJlbG9uZ3MsIGluIHRoZSBmb3JtIG9mIGEgR1VJRC4NCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgW0RhdGFNZW1iZXIoTmFtZSA9ICJjb3JyZWxhdGlvbkd1aWQiLCBJc1JlcXVpcmVkID0gZmFsc2UsIEVtaXREZWZhdWx0VmFsdWUgPSBmYWxzZSldDQogICAgICAgIHB1YmxpYyBzdHJpbmcgQ29ycmVsYXRpb25HdWlkIHsgZ2V0OyBzZXQ7IH0NCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBBIHNldCBvZiBzdHJpbmdzIHRoYXQgY29udHJpYnV0ZSB0byB0aGUgc3RhYmxlLCB1bmlxdWUgaWRlbnRpdHkgb2YgdGhlIHJlc3VsdC4NCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgW0RhdGFNZW1iZXIoTmFtZSA9ICJwYXJ0aWFsRmluZ2VycHJpbnRzIiwgSXNSZXF1aXJlZCA9IGZhbHNlLCBFbWl0RGVmYXVsdFZhbHVlID0gZmFsc2UpXQ0KICAgICAgICBwdWJsaWMgSURpY3Rpb25hcnk8c3RyaW5nLCBzdHJpbmc+IFBhcnRpYWxGaW5nZXJwcmludHMgeyBnZXQ7IHNldDsgfQ0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIEEgc2V0IG9mIHN0cmluZ3MgZWFjaCBvZiB3aGljaCBpbmRpdmlkdWFsbHkgZGVmaW5lcyBhIHN0YWJsZSwgdW5pcXVlIGlkZW50aXR5IGZvciB0aGUgcmVzdWx0Lg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICBbRGF0YU1lbWJlcihOYW1lID0gImZpbmdlcnByaW50cyIsIElzUmVxdWlyZWQgPSBmYWxzZSwgRW1pdERlZmF1bHRWYWx1ZSA9IGZhbHNlKV0NCiAgICAgICAgcHVibGljIElEaWN0aW9uYXJ5PHN0cmluZywgc3RyaW5nPiBGaW5nZXJwcmludHMgeyBnZXQ7IHNldDsgfQ0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIEFuIGFycmF5IG9mICdzdGFjaycgb2JqZWN0cyByZWxldmFudCB0byB0aGUgcmVzdWx0Lg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICBbRGF0YU1lbWJlcihOYW1lID0gInN0YWNrcyIsIElzUmVxdWlyZWQgPSBmYWxzZSwgRW1pdERlZmF1bHRWYWx1ZSA9IGZhbHNlKV0NCiAgICAgICAgcHVibGljIElMaXN0PFN0YWNrPiBTdGFja3MgeyBnZXQ7IHNldDsgfQ0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIEFuIGFycmF5IG9mICdjb2RlRmxvdycgb2JqZWN0cyByZWxldmFudCB0byB0aGUgcmVzdWx0Lg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICBbRGF0YU1lbWJlcihOYW1lID0gImNvZGVGbG93cyIsIElzUmVxdWlyZWQgPSBmYWxzZSwgRW1pdERlZmF1bHRWYWx1ZSA9IGZhbHNlKV0NCiAgICAgICAgcHVibGljIElMaXN0PENvZGVGbG93PiBDb2RlRmxvd3MgeyBnZXQ7IHNldDsgfQ0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIEFuIGFycmF5IG9mIG9uZSBvciBtb3JlIHVuaXF1ZSAnZ3JhcGgnIG9iamVjdHMuDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIFtEYXRhTWVtYmVyKE5hbWUgPSAiZ3JhcGhzIiwgSXNSZXF1aXJlZCA9IGZhbHNlLCBFbWl0RGVmYXVsdFZhbHVlID0gZmFsc2UpXQ0KICAgICAgICBwdWJsaWMgSUxpc3Q8R3JhcGg+IEdyYXBocyB7IGdldDsgc2V0OyB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gQW4gYXJyYXkgb2Ygb25lIG9yIG1vcmUgdW5pcXVlICdncmFwaFRyYXZlcnNhbCcgb2JqZWN0cy4NCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgW0RhdGFNZW1iZXIoTmFtZSA9ICJncmFwaFRyYXZlcnNhbHMiLCBJc1JlcXVpcmVkID0gZmFsc2UsIEVtaXREZWZhdWx0VmFsdWUgPSBmYWxzZSldDQogICAgICAgIHB1YmxpYyBJTGlzdDxHcmFwaFRyYXZlcnNhbD4gR3JhcGhUcmF2ZXJzYWxzIHsgZ2V0OyBzZXQ7IH0NCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBBIHNldCBvZiBsb2NhdGlvbnMgcmVsZXZhbnQgdG8gdGhpcyByZXN1bHQuDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIFtEYXRhTWVtYmVyKE5hbWUgPSAicmVsYXRlZExvY2F0aW9ucyIsIElzUmVxdWlyZWQgPSBmYWxzZSwgRW1pdERlZmF1bHRWYWx1ZSA9IGZhbHNlKV0NCiAgICAgICAgcHVibGljIElMaXN0PExvY2F0aW9uPiBSZWxhdGVkTG9jYXRpb25zIHsgZ2V0OyBzZXQ7IH0NCiAgICAgICAgW0RhdGFNZW1iZXIoTmFtZSA9ICJzdXBwcmVzc2lvblN0YXRlcyIsIElzUmVxdWlyZWQgPSBmYWxzZSwgRW1pdERlZmF1bHRWYWx1ZSA9IGZhbHNlKV0NCiAgICAgICAgcHVibGljIFN1cHByZXNzaW9uU3RhdGVzIFN1cHByZXNzaW9uU3RhdGVzIHsgZ2V0OyBzZXQ7IH0NCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBUaGUgc3RhdGUgb2YgYSByZXN1bHQgcmVsYXRpdmUgdG8gYSBiYXNlbGluZSBvZiBhIHByZXZpb3VzIHJ1bi4NCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgW0RhdGFNZW1iZXIoTmFtZSA9ICJiYXNlbGluZVN0YXRlIiwgSXNSZXF1aXJlZCA9IGZhbHNlLCBFbWl0RGVmYXVsdFZhbHVlID0gZmFsc2UpXQ0KICAgICAgICBwdWJsaWMgQmFzZWxpbmVTdGF0ZSBCYXNlbGluZVN0YXRlIHsgZ2V0OyBzZXQ7IH0NCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBBIHNldCBvZiBmaWxlcyByZWxldmFudCB0byB0aGUgcmVzdWx0Lg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICBbRGF0YU1lbWJlcihOYW1lID0gImF0dGFjaG1lbnRzIiwgSXNSZXF1aXJlZCA9IGZhbHNlLCBFbWl0RGVmYXVsdFZhbHVlID0gZmFsc2UpXQ0KICAgICAgICBwdWJsaWMgSUxpc3Q8QXR0YWNobWVudD4gQXR0YWNobWVudHMgeyBnZXQ7IHNldDsgfQ0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIFRoZSBVUklzIG9mIHRoZSB3b3JrIGl0ZW1zIGFzc29jaWF0ZWQgd2l0aCB0aGlzIHJlc3VsdA0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICBbRGF0YU1lbWJlcihOYW1lID0gIndvcmtJdGVtVXJpcyIsIElzUmVxdWlyZWQgPSBmYWxzZSwgRW1pdERlZmF1bHRWYWx1ZSA9IGZhbHNlKV0NCiAgICAgICAgcHVibGljIElMaXN0PFVyaT4gV29ya0l0ZW1VcmlzIHsgZ2V0OyBzZXQ7IH0NCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBBbiBhcnJheSBvZiBhbmFseXNpc1Rvb2xMb2dGaWxlQ29udGVudHMgb2JqZWN0cyB3aGljaCBzcGVjaWZ5IHRoZSBwb3J0aW9ucyBvZiBhbiBhbmFseXNpcyB0b29sJ3Mgb3V0cHV0IHRoYXQgYSBjb252ZXJ0ZXIgdHJhbnNmb3JtZWQgaW50byB0aGUgcmVzdWx0IG9iamVjdC4NCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgW0RhdGFNZW1iZXIoTmFtZSA9ICJjb252ZXJzaW9uUHJvdmVuYW5jZSIsIElzUmVxdWlyZWQgPSBmYWxzZSwgRW1pdERlZmF1bHRWYWx1ZSA9IGZhbHNlKV0NCiAgICAgICAgcHVibGljIElMaXN0PFBoeXNpY2FsTG9jYXRpb24+IENvbnZlcnNpb25Qcm92ZW5hbmNlIHsgZ2V0OyBzZXQ7IH0NCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBBbiBhcnJheSBvZiAnZml4JyBvYmplY3RzLCBlYWNoIG9mIHdoaWNoIHJlcHJlc2VudHMgYSBwcm9wb3NlZCBmaXggdG8gdGhlIHByb2JsZW0gaW5kaWNhdGVkIGJ5IHRoZSByZXN1bHQuDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIFtEYXRhTWVtYmVyKE5hbWUgPSAiZml4ZXMiLCBJc1JlcXVpcmVkID0gZmFsc2UsIEVtaXREZWZhdWx0VmFsdWUgPSBmYWxzZSldDQogICAgICAgIHB1YmxpYyBJTGlzdDxGaXg+IEZpeGVzIHsgZ2V0OyBzZXQ7IH0NCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBLZXkvdmFsdWUgcGFpcnMgdGhhdCBwcm92aWRlIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gYWJvdXQgdGhlIHJlc3VsdC4NCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgW0RhdGFNZW1iZXIoTmFtZSA9ICJwcm9wZXJ0aWVzIiwgSXNSZXF1aXJlZCA9IGZhbHNlLCBFbWl0RGVmYXVsdFZhbHVlID0gZmFsc2UpXQ0KICAgICAgICBpbnRlcm5hbCBvdmVycmlkZSBJRGljdGlvbmFyeTxzdHJpbmcsIFNlcmlhbGl6ZWRQcm9wZXJ0eUluZm8+IFByb3BlcnRpZXMgeyBnZXQ7IHNldDsgfQ0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIEluaXRpYWxpemVzIGEgbmV3IGluc3RhbmNlIG9mIHRoZSA8c2VlIGNyZWY9IlJlc3VsdCIgLz4gY2xhc3MuDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIHB1YmxpYyBSZXN1bHQoKQ0KICAgICAgICB7DQogICAgICAgIH0NCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBJbml0aWFsaXplcyBhIG5ldyBpbnN0YW5jZSBvZiB0aGUgPHNlZSBjcmVmPSJSZXN1bHQiIC8+IGNsYXNzIGZyb20gdGhlIHN1cHBsaWVkIHZhbHVlcy4NCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgLy8vIDxwYXJhbSBuYW1lPSJydWxlSWQiPg0KICAgICAgICAvLy8gQW4gaW5pdGlhbGl6YXRpb24gdmFsdWUgZm9yIHRoZSA8c2VlIGNyZWY9IlA6IFJ1bGVJZCIgLz4gcHJvcGVydHkuDQogICAgICAgIC8vLyA8L3BhcmFtPg0KICAgICAgICAvLy8gPHBhcmFtIG5hbWU9ImxldmVsIj4NCiAgICAgICAgLy8vIEFuIGluaXRpYWxpemF0aW9uIHZhbHVlIGZvciB0aGUgPHNlZSBjcmVmPSJQOiBMZXZlbCIgLz4gcHJvcGVydHkuDQogICAgICAgIC8vLyA8L3BhcmFtPg0KICAgICAgICAvLy8gPHBhcmFtIG5hbWU9Im1lc3NhZ2UiPg0KICAgICAgICAvLy8gQW4gaW5pdGlhbGl6YXRpb24gdmFsdWUgZm9yIHRoZSA8c2VlIGNyZWY9IlA6IE1lc3NhZ2UiIC8+IHByb3BlcnR5Lg0KICAgICAgICAvLy8gPC9wYXJhbT4NCiAgICAgICAgLy8vIDxwYXJhbSBuYW1lPSJydWxlTWVzc2FnZUlkIj4NCiAgICAgICAgLy8vIEFuIGluaXRpYWxpemF0aW9uIHZhbHVlIGZvciB0aGUgPHNlZSBjcmVmPSJQOiBSdWxlTWVzc2FnZUlkIiAvPiBwcm9wZXJ0eS4NCiAgICAgICAgLy8vIDwvcGFyYW0+DQogICAgICAgIC8vLyA8cGFyYW0gbmFtZT0iYW5hbHlzaXNUYXJnZXQiPg0KICAgICAgICAvLy8gQW4gaW5pdGlhbGl6YXRpb24gdmFsdWUgZm9yIHRoZSA8c2VlIGNyZWY9IlA6IEFuYWx5c2lzVGFyZ2V0IiAvPiBwcm9wZXJ0eS4NCiAgICAgICAgLy8vIDwvcGFyYW0+DQogICAgICAgIC8vLyA8cGFyYW0gbmFtZT0ibG9jYXRpb25zIj4NCiAgICAgICAgLy8vIEFuIGluaXRpYWxpemF0aW9uIHZhbHVlIGZvciB0aGUgPHNlZSBjcmVmPSJQOiBMb2NhdGlvbnMiIC8+IHByb3BlcnR5Lg0KICAgICAgICAvLy8gPC9wYXJhbT4NCiAgICAgICAgLy8vIDxwYXJhbSBuYW1lPSJpbnN0YW5jZUd1aWQiPg0KICAgICAgICAvLy8gQW4gaW5pdGlhbGl6YXRpb24gdmFsdWUgZm9yIHRoZSA8c2VlIGNyZWY9IlA6IEluc3RhbmNlR3VpZCIgLz4gcHJvcGVydHkuDQogICAgICAgIC8vLyA8L3BhcmFtPg0KICAgICAgICAvLy8gPHBhcmFtIG5hbWU9ImNvcnJlbGF0aW9uR3VpZCI+DQogICAgICAgIC8vLyBBbiBpbml0aWFsaXphdGlvbiB2YWx1ZSBmb3IgdGhlIDxzZWUgY3JlZj0iUDogQ29ycmVsYXRpb25HdWlkIiAvPiBwcm9wZXJ0eS4NCiAgICAgICAgLy8vIDwvcGFyYW0+DQogICAgICAgIC8vLyA8cGFyYW0gbmFtZT0icGFydGlhbEZpbmdlcnByaW50cyI+DQogICAgICAgIC8vLyBBbiBpbml0aWFsaXphdGlvbiB2YWx1ZSBmb3IgdGhlIDxzZWUgY3JlZj0iUDogUGFydGlhbEZpbmdlcnByaW50cyIgLz4gcHJvcGVydHkuDQogICAgICAgIC8vLyA8L3BhcmFtPg0KICAgICAgICAvLy8gPHBhcmFtIG5hbWU9ImZpbmdlcnByaW50cyI+DQogICAgICAgIC8vLyBBbiBpbml0aWFsaXphdGlvbiB2YWx1ZSBmb3IgdGhlIDxzZWUgY3JlZj0iUDogRmluZ2VycHJpbnRzIiAvPiBwcm9wZXJ0eS4NCiAgICAgICAgLy8vIDwvcGFyYW0+DQogICAgICAgIC8vLyA8cGFyYW0gbmFtZT0ic3RhY2tzIj4NCiAgICAgICAgLy8vIEFuIGluaXRpYWxpemF0aW9uIHZhbHVlIGZvciB0aGUgPHNlZSBjcmVmPSJQOiBTdGFja3MiIC8+IHByb3BlcnR5Lg0KICAgICAgICAvLy8gPC9wYXJhbT4NCiAgICAgICAgLy8vIDxwYXJhbSBuYW1lPSJjb2RlRmxvd3MiPg0KICAgICAgICAvLy8gQW4gaW5pdGlhbGl6YXRpb24gdmFsdWUgZm9yIHRoZSA8c2VlIGNyZWY9IlA6IENvZGVGbG93cyIgLz4gcHJvcGVydHkuDQogICAgICAgIC8vLyA8L3BhcmFtPg0KICAgICAgICAvLy8gPHBhcmFtIG5hbWU9ImdyYXBocyI+DQogICAgICAgIC8vLyBBbiBpbml0aWFsaXphdGlvbiB2YWx1ZSBmb3IgdGhlIDxzZWUgY3JlZj0iUDogR3JhcGhzIiAvPiBwcm9wZXJ0eS4NCiAgICAgICAgLy8vIDwvcGFyYW0+DQogICAgICAgIC8vLyA8cGFyYW0gbmFtZT0iZ3JhcGhUcmF2ZXJzYWxzIj4NCiAgICAgICAgLy8vIEFuIGluaXRpYWxpemF0aW9uIHZhbHVlIGZvciB0aGUgPHNlZSBjcmVmPSJQOiBHcmFwaFRyYXZlcnNhbHMiIC8+IHByb3BlcnR5Lg0KICAgICAgICAvLy8gPC9wYXJhbT4NCiAgICAgICAgLy8vIDxwYXJhbSBuYW1lPSJyZWxhdGVkTG9jYXRpb25zIj4NCiAgICAgICAgLy8vIEFuIGluaXRpYWxpemF0aW9uIHZhbHVlIGZvciB0aGUgPHNlZSBjcmVmPSJQOiBSZWxhdGVkTG9jYXRpb25zIiAvPiBwcm9wZXJ0eS4NCiAgICAgICAgLy8vIDwvcGFyYW0+DQogICAgICAgIC8vLyA8cGFyYW0gbmFtZT0ic3VwcHJlc3Npb25TdGF0ZXMiPg0KICAgICAgICAvLy8gQW4gaW5pdGlhbGl6YXRpb24gdmFsdWUgZm9yIHRoZSA8c2VlIGNyZWY9IlA6IFN1cHByZXNzaW9uU3RhdGVzIiAvPiBwcm9wZXJ0eS4NCiAgICAgICAgLy8vIDwvcGFyYW0+DQogICAgICAgIC8vLyA8cGFyYW0gbmFtZT0iYmFzZWxpbmVTdGF0ZSI+DQogICAgICAgIC8vLyBBbiBpbml0aWFsaXphdGlvbiB2YWx1ZSBmb3IgdGhlIDxzZWUgY3JlZj0iUDogQmFzZWxpbmVTdGF0ZSIgLz4gcHJvcGVydHkuDQogICAgICAgIC8vLyA8L3BhcmFtPg0KICAgICAgICAvLy8gPHBhcmFtIG5hbWU9ImF0dGFjaG1lbnRzIj4NCiAgICAgICAgLy8vIEFuIGluaXRpYWxpemF0aW9uIHZhbHVlIGZvciB0aGUgPHNlZSBjcmVmPSJQOiBBdHRhY2htZW50cyIgLz4gcHJvcGVydHkuDQogICAgICAgIC8vLyA8L3BhcmFtPg0KICAgICAgICAvLy8gPHBhcmFtIG5hbWU9IndvcmtJdGVtVXJpcyI+DQogICAgICAgIC8vLyBBbiBpbml0aWFsaXphdGlvbiB2YWx1ZSBmb3IgdGhlIDxzZWUgY3JlZj0iUDogV29ya0l0ZW1VcmlzIiAvPiBwcm9wZXJ0eS4NCiAgICAgICAgLy8vIDwvcGFyYW0+DQogICAgICAgIC8vLyA8cGFyYW0gbmFtZT0iY29udmVyc2lvblByb3ZlbmFuY2UiPg0KICAgICAgICAvLy8gQW4gaW5pdGlhbGl6YXRpb24gdmFsdWUgZm9yIHRoZSA8c2VlIGNyZWY9IlA6IENvbnZlcnNpb25Qcm92ZW5hbmNlIiAvPiBwcm9wZXJ0eS4NCiAgICAgICAgLy8vIDwvcGFyYW0+DQogICAgICAgIC8vLyA8cGFyYW0gbmFtZT0iZml4ZXMiPg0KICAgICAgICAvLy8gQW4gaW5pdGlhbGl6YXRpb24gdmFsdWUgZm9yIHRoZSA8c2VlIGNyZWY9IlA6IEZpeGVzIiAvPiBwcm9wZXJ0eS4NCiAgICAgICAgLy8vIDwvcGFyYW0+DQogICAgICAgIC8vLyA8cGFyYW0gbmFtZT0icHJvcGVydGllcyI+DQogICAgICAgIC8vLyBBbiBpbml0aWFsaXphdGlvbiB2YWx1ZSBmb3IgdGhlIDxzZWUgY3JlZj0iUDogUHJvcGVydGllcyIgLz4gcHJvcGVydHkuDQogICAgICAgIC8vLyA8L3BhcmFtPg0KICAgICAgICBwdWJsaWMgUmVzdWx0KHN0cmluZyBydWxlSWQsIFJlc3VsdExldmVsIGxldmVsLCBNZXNzYWdlIG1lc3NhZ2UsIHN0cmluZyBydWxlTWVzc2FnZUlkLCBGaWxlTG9jYXRpb24gYW5hbHlzaXNUYXJnZXQsIElFbnVtZXJhYmxlPExvY2F0aW9uPiBsb2NhdGlvbnMsIHN0cmluZyBpbnN0YW5jZUd1aWQsIHN0cmluZyBjb3JyZWxhdGlvbkd1aWQsIElEaWN0aW9uYXJ5PHN0cmluZywgc3RyaW5nPiBwYXJ0aWFsRmluZ2VycHJpbnRzLCBJRGljdGlvbmFyeTxzdHJpbmcsIHN0cmluZz4gZmluZ2VycHJpbnRzLCBJRW51bWVyYWJsZTxTdGFjaz4gc3RhY2tzLCBJRW51bWVyYWJsZTxDb2RlRmxvdz4gY29kZUZsb3dzLCBJRW51bWVyYWJsZTxHcmFwaD4gZ3JhcGhzLCBJRW51bWVyYWJsZTxHcmFwaFRyYXZlcnNhbD4gZ3JhcGhUcmF2ZXJzYWxzLCBJRW51bWVyYWJsZTxMb2NhdGlvbj4gcmVsYXRlZExvY2F0aW9ucywgU3VwcHJlc3Npb25TdGF0ZXMgc3VwcHJlc3Npb25TdGF0ZXMsIEJhc2VsaW5lU3RhdGUgYmFzZWxpbmVTdGF0ZSwgSUVudW1lcmFibGU8QXR0YWNobWVudD4gYXR0YWNobWVudHMsIElFbnVtZXJhYmxlPFVyaT4gd29ya0l0ZW1VcmlzLCBJRW51bWVyYWJsZTxQaHlzaWNhbExvY2F0aW9uPiBjb252ZXJzaW9uUHJvdmVuYW5jZSwgSUVudW1lcmFibGU8Rml4PiBmaXhlcywgSURpY3Rpb25hcnk8c3RyaW5nLCBTZXJpYWxpemVkUHJvcGVydHlJbmZvPiBwcm9wZXJ0aWVzKQ0KICAgICAgICB7DQogICAgICAgICAgICBJbml0KHJ1bGVJZCwgbGV2ZWwsIG1lc3NhZ2UsIHJ1bGVNZXNzYWdlSWQsIGFuYWx5c2lzVGFyZ2V0LCBsb2NhdGlvbnMsIGluc3RhbmNlR3VpZCwgY29ycmVsYXRpb25HdWlkLCBwYXJ0aWFsRmluZ2VycHJpbnRzLCBmaW5nZXJwcmludHMsIHN0YWNrcywgY29kZUZsb3dzLCBncmFwaHMsIGdyYXBoVHJhdmVyc2FscywgcmVsYXRlZExvY2F0aW9ucywgc3VwcHJlc3Npb25TdGF0ZXMsIGJhc2VsaW5lU3RhdGUsIGF0dGFjaG1lbnRzLCB3b3JrSXRlbVVyaXMsIGNvbnZlcnNpb25Qcm92ZW5hbmNlLCBmaXhlcywgcHJvcGVydGllcyk7DQogICAgICAgIH0NCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBJbml0aWFsaXplcyBhIG5ldyBpbnN0YW5jZSBvZiB0aGUgPHNlZSBjcmVmPSJSZXN1bHQiIC8+IGNsYXNzIGZyb20gdGhlIHNwZWNpZmllZCBpbnN0YW5jZS4NCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgLy8vIDxwYXJhbSBuYW1lPSJvdGhlciI+DQogICAgICAgIC8vLyBUaGUgaW5zdGFuY2UgZnJvbSB3aGljaCB0aGUgbmV3IGluc3RhbmNlIGlzIHRvIGJlIGluaXRpYWxpemVkLg0KICAgICAgICAvLy8gPC9wYXJhbT4NCiAgICAgICAgLy8vIDxleGNlcHRpb24gY3JlZj0iQXJndW1lbnROdWxsRXhjZXB0aW9uIj4NCiAgICAgICAgLy8vIFRocm93biBpZiA8cGFyYW1yZWYgbmFtZT0ib3RoZXIiIC8+IGlzIG51bGwuDQogICAgICAgIC8vLyA8L2V4Y2VwdGlvbj4NCiAgICAgICAgcHVibGljIFJlc3VsdChSZXN1bHQgb3RoZXIpDQogICAgICAgIHsNCiAgICAgICAgICAgIGlmIChvdGhlciA9PSBudWxsKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHRocm93IG5ldyBBcmd1bWVudE51bGxFeGNlcHRpb24obmFtZW9mKG90aGVyKSk7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIEluaXQob3RoZXIuUnVsZUlkLCBvdGhlci5MZXZlbCwgb3RoZXIuTWVzc2FnZSwgb3RoZXIuUnVsZU1lc3NhZ2VJZCwgb3RoZXIuQW5hbHlzaXNUYXJnZXQsIG90aGVyLkxvY2F0aW9ucywgb3RoZXIuSW5zdGFuY2VHdWlkLCBvdGhlci5Db3JyZWxhdGlvbkd1aWQsIG90aGVyLlBhcnRpYWxGaW5nZXJwcmludHMsIG90aGVyLkZpbmdlcnByaW50cywgb3RoZXIuU3RhY2tzLCBvdGhlci5Db2RlRmxvd3MsIG90aGVyLkdyYXBocywgb3RoZXIuR3JhcGhUcmF2ZXJzYWxzLCBvdGhlci5SZWxhdGVkTG9jYXRpb25zLCBvdGhlci5TdXBwcmVzc2lvblN0YXRlcywgb3RoZXIuQmFzZWxpbmVTdGF0ZSwgb3RoZXIuQXR0YWNobWVudHMsIG90aGVyLldvcmtJdGVtVXJpcywgb3RoZXIuQ29udmVyc2lvblByb3ZlbmFuY2UsIG90aGVyLkZpeGVzLCBvdGhlci5Qcm9wZXJ0aWVzKTsNCiAgICAgICAgfQ0KDQogICAgICAgIElTYXJpZk5vZGUgSVNhcmlmTm9kZS5EZWVwQ2xvbmUoKQ0KICAgICAgICB7DQogICAgICAgICAgICByZXR1cm4gRGVlcENsb25lQ29yZSgpOw0KICAgICAgICB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gQ3JlYXRlcyBhIGRlZXAgY29weSBvZiB0aGlzIGluc3RhbmNlLg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICBwdWJsaWMgUmVzdWx0IERlZXBDbG9uZSgpDQogICAgICAgIHsNCiAgICAgICAgICAgIHJldHVybiAoUmVzdWx0KURlZXBDbG9uZUNvcmUoKTsNCiAgICAgICAgfQ0KDQogICAgICAgIHByaXZhdGUgSVNhcmlmTm9kZSBEZWVwQ2xvbmVDb3JlKCkNCiAgICAgICAgew0KICAgICAgICAgICAgcmV0dXJuIG5ldyBSZXN1bHQodGhpcyk7DQogICAgICAgIH0NCg0KICAgICAgICBwcml2YXRlIHZvaWQgSW5pdChzdHJpbmcgcnVsZUlkLCBSZXN1bHRMZXZlbCBsZXZlbCwgTWVzc2FnZSBtZXNzYWdlLCBzdHJpbmcgcnVsZU1lc3NhZ2VJZCwgRmlsZUxvY2F0aW9uIGFuYWx5c2lzVGFyZ2V0LCBJRW51bWVyYWJsZTxMb2NhdGlvbj4gbG9jYXRpb25zLCBzdHJpbmcgaW5zdGFuY2VHdWlkLCBzdHJpbmcgY29ycmVsYXRpb25HdWlkLCBJRGljdGlvbmFyeTxzdHJpbmcsIHN0cmluZz4gcGFydGlhbEZpbmdlcnByaW50cywgSURpY3Rpb25hcnk8c3RyaW5nLCBzdHJpbmc+IGZpbmdlcnByaW50cywgSUVudW1lcmFibGU8U3RhY2s+IHN0YWNrcywgSUVudW1lcmFibGU8Q29kZUZsb3c+IGNvZGVGbG93cywgSUVudW1lcmFibGU8R3JhcGg+IGdyYXBocywgSUVudW1lcmFibGU8R3JhcGhUcmF2ZXJzYWw+IGdyYXBoVHJhdmVyc2FscywgSUVudW1lcmFibGU8TG9jYXRpb24+IHJlbGF0ZWRMb2NhdGlvbnMsIFN1cHByZXNzaW9uU3RhdGVzIHN1cHByZXNzaW9uU3RhdGVzLCBCYXNlbGluZVN0YXRlIGJhc2VsaW5lU3RhdGUsIElFbnVtZXJhYmxlPEF0dGFjaG1lbnQ+IGF0dGFjaG1lbnRzLCBJRW51bWVyYWJsZTxVcmk+IHdvcmtJdGVtVXJpcywgSUVudW1lcmFibGU8UGh5c2ljYWxMb2NhdGlvbj4gY29udmVyc2lvblByb3ZlbmFuY2UsIElFbnVtZXJhYmxlPEZpeD4gZml4ZXMsIElEaWN0aW9uYXJ5PHN0cmluZywgU2VyaWFsaXplZFByb3BlcnR5SW5mbz4gcHJvcGVydGllcykNCiAgICAgICAgew0KICAgICAgICAgICAgUnVsZUlkID0gcnVsZUlkOw0KICAgICAgICAgICAgTGV2ZWwgPSBsZXZlbDsNCiAgICAgICAgICAgIGlmIChtZXNzYWdlICE9IG51bGwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgTWVzc2FnZSA9IG5ldyBNZXNzYWdlKG1lc3NhZ2UpOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBSdWxlTWVzc2FnZUlkID0gcnVsZU1lc3NhZ2VJZDsNCiAgICAgICAgICAgIGlmIChhbmFseXNpc1RhcmdldCAhPSBudWxsKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIEFuYWx5c2lzVGFyZ2V0ID0gbmV3IEZpbGVMb2NhdGlvbihhbmFseXNpc1RhcmdldCk7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIGlmIChsb2NhdGlvbnMgIT0gbnVsbCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICB2YXIgZGVzdGluYXRpb25fMCA9IG5ldyBMaXN0PExvY2F0aW9uPigpOw0KICAgICAgICAgICAgICAgIGZvcmVhY2ggKHZhciB2YWx1ZV8wIGluIGxvY2F0aW9ucykNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZV8wID09IG51bGwpDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGRlc3RpbmF0aW9uXzAuQWRkKG51bGwpOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGVsc2UNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgZGVzdGluYXRpb25fMC5BZGQobmV3IExvY2F0aW9uKHZhbHVlXzApKTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgIExvY2F0aW9ucyA9IGRlc3RpbmF0aW9uXzA7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIEluc3RhbmNlR3VpZCA9IGluc3RhbmNlR3VpZDsNCiAgICAgICAgICAgIENvcnJlbGF0aW9uR3VpZCA9IGNvcnJlbGF0aW9uR3VpZDsNCiAgICAgICAgICAgIGlmIChwYXJ0aWFsRmluZ2VycHJpbnRzICE9IG51bGwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgUGFydGlhbEZpbmdlcnByaW50cyA9IG5ldyBEaWN0aW9uYXJ5PHN0cmluZywgc3RyaW5nPihwYXJ0aWFsRmluZ2VycHJpbnRzKTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgaWYgKGZpbmdlcnByaW50cyAhPSBudWxsKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIEZpbmdlcnByaW50cyA9IG5ldyBEaWN0aW9uYXJ5PHN0cmluZywgc3RyaW5nPihmaW5nZXJwcmludHMpOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBpZiAoc3RhY2tzICE9IG51bGwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgdmFyIGRlc3RpbmF0aW9uXzEgPSBuZXcgTGlzdDxTdGFjaz4oKTsNCiAgICAgICAgICAgICAgICBmb3JlYWNoICh2YXIgdmFsdWVfMSBpbiBzdGFja3MpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWVfMSA9PSBudWxsKQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICBkZXN0aW5hdGlvbl8xLkFkZChudWxsKTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBlbHNlDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGRlc3RpbmF0aW9uXzEuQWRkKG5ldyBTdGFjayh2YWx1ZV8xKSk7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICBTdGFja3MgPSBkZXN0aW5hdGlvbl8xOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBpZiAoY29kZUZsb3dzICE9IG51bGwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgdmFyIGRlc3RpbmF0aW9uXzIgPSBuZXcgTGlzdDxDb2RlRmxvdz4oKTsNCiAgICAgICAgICAgICAgICBmb3JlYWNoICh2YXIgdmFsdWVfMiBpbiBjb2RlRmxvd3MpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWVfMiA9PSBudWxsKQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICBkZXN0aW5hdGlvbl8yLkFkZChudWxsKTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBlbHNlDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGRlc3RpbmF0aW9uXzIuQWRkKG5ldyBDb2RlRmxvdyh2YWx1ZV8yKSk7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICBDb2RlRmxvd3MgPSBkZXN0aW5hdGlvbl8yOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBpZiAoZ3JhcGhzICE9IG51bGwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgdmFyIGRlc3RpbmF0aW9uXzMgPSBuZXcgTGlzdDxHcmFwaD4oKTsNCiAgICAgICAgICAgICAgICBmb3JlYWNoICh2YXIgdmFsdWVfMyBpbiBncmFwaHMpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWVfMyA9PSBudWxsKQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICBkZXN0aW5hdGlvbl8zLkFkZChudWxsKTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBlbHNlDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGRlc3RpbmF0aW9uXzMuQWRkKG5ldyBHcmFwaCh2YWx1ZV8zKSk7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICBHcmFwaHMgPSBkZXN0aW5hdGlvbl8zOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBpZiAoZ3JhcGhUcmF2ZXJzYWxzICE9IG51bGwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgdmFyIGRlc3RpbmF0aW9uXzQgPSBuZXcgTGlzdDxHcmFwaFRyYXZlcnNhbD4oKTsNCiAgICAgICAgICAgICAgICBmb3JlYWNoICh2YXIgdmFsdWVfNCBpbiBncmFwaFRyYXZlcnNhbHMpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWVfNCA9PSBudWxsKQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICBkZXN0aW5hdGlvbl80LkFkZChudWxsKTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBlbHNlDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGRlc3RpbmF0aW9uXzQuQWRkKG5ldyBHcmFwaFRyYXZlcnNhbCh2YWx1ZV80KSk7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICBHcmFwaFRyYXZlcnNhbHMgPSBkZXN0aW5hdGlvbl80Ow0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBpZiAocmVsYXRlZExvY2F0aW9ucyAhPSBudWxsKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHZhciBkZXN0aW5hdGlvbl81ID0gbmV3IExpc3Q8TG9jYXRpb24+KCk7DQogICAgICAgICAgICAgICAgZm9yZWFjaCAodmFyIHZhbHVlXzUgaW4gcmVsYXRlZExvY2F0aW9ucykNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZV81ID09IG51bGwpDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGRlc3RpbmF0aW9uXzUuQWRkKG51bGwpOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGVsc2UNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgZGVzdGluYXRpb25fNS5BZGQobmV3IExvY2F0aW9uKHZhbHVlXzUpKTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgIFJlbGF0ZWRMb2NhdGlvbnMgPSBkZXN0aW5hdGlvbl81Ow0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBTdXBwcmVzc2lvblN0YXRlcyA9IHN1cHByZXNzaW9uU3RhdGVzOw0KICAgICAgICAgICAgQmFzZWxpbmVTdGF0ZSA9IGJhc2VsaW5lU3RhdGU7DQogICAgICAgICAgICBpZiAoYXR0YWNobWVudHMgIT0gbnVsbCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICB2YXIgZGVzdGluYXRpb25fNiA9IG5ldyBMaXN0PEF0dGFjaG1lbnQ+KCk7DQogICAgICAgICAgICAgICAgZm9yZWFjaCAodmFyIHZhbHVlXzYgaW4gYXR0YWNobWVudHMpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWVfNiA9PSBudWxsKQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICBkZXN0aW5hdGlvbl82LkFkZChudWxsKTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBlbHNlDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGRlc3RpbmF0aW9uXzYuQWRkKG5ldyBBdHRhY2htZW50KHZhbHVlXzYpKTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgIEF0dGFjaG1lbnRzID0gZGVzdGluYXRpb25fNjsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgaWYgKHdvcmtJdGVtVXJpcyAhPSBudWxsKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHZhciBkZXN0aW5hdGlvbl83ID0gbmV3IExpc3Q8VXJpPigpOw0KICAgICAgICAgICAgICAgIGZvcmVhY2ggKHZhciB2YWx1ZV83IGluIHdvcmtJdGVtVXJpcykNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIGRlc3RpbmF0aW9uXzcuQWRkKHZhbHVlXzcpOw0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgIFdvcmtJdGVtVXJpcyA9IGRlc3RpbmF0aW9uXzc7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIGlmIChjb252ZXJzaW9uUHJvdmVuYW5jZSAhPSBudWxsKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHZhciBkZXN0aW5hdGlvbl84ID0gbmV3IExpc3Q8UGh5c2ljYWxMb2NhdGlvbj4oKTsNCiAgICAgICAgICAgICAgICBmb3JlYWNoICh2YXIgdmFsdWVfOCBpbiBjb252ZXJzaW9uUHJvdmVuYW5jZSkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZV84ID09IG51bGwpDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGRlc3RpbmF0aW9uXzguQWRkKG51bGwpOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGVsc2UNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgZGVzdGluYXRpb25fOC5BZGQobmV3IFBoeXNpY2FsTG9jYXRpb24odmFsdWVfOCkpOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgQ29udmVyc2lvblByb3ZlbmFuY2UgPSBkZXN0aW5hdGlvbl84Ow0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBpZiAoZml4ZXMgIT0gbnVsbCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICB2YXIgZGVzdGluYXRpb25fOSA9IG5ldyBMaXN0PEZpeD4oKTsNCiAgICAgICAgICAgICAgICBmb3JlYWNoICh2YXIgdmFsdWVfOSBpbiBmaXhlcykNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZV85ID09IG51bGwpDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGRlc3RpbmF0aW9uXzkuQWRkKG51bGwpOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGVsc2UNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgZGVzdGluYXRpb25fOS5BZGQobmV3IEZpeCh2YWx1ZV85KSk7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICBGaXhlcyA9IGRlc3RpbmF0aW9uXzk7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIGlmIChwcm9wZXJ0aWVzICE9IG51bGwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgUHJvcGVydGllcyA9IG5ldyBEaWN0aW9uYXJ5PHN0cmluZywgU2VyaWFsaXplZFByb3BlcnR5SW5mbz4ocHJvcGVydGllcyk7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCiAgICB9DQp9" + { + "ruleId": "CA2227", + "message": { + "text": "Change 'JsonSchema.Dependencies' to be read-only by removing the property setter." }, - "hashes": [ - { - "value": "65F9CCFAC07820CFAF6F507F2F5F7266", - "algorithm": "md5" - }, - { - "value": "2712737413EFBAB9CF68A6E6DCA58B2ED36CA7B2", - "algorithm": "sha-1" - }, + "locations": [ { - "value": "99E87448C8B5DEF9C048F32C9B412FD7043AF94903006A3F88CAC6F7EC5B641C", - "algorithm": "sha-256" + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Microsoft.Json.Schema.dll", + "uriBaseId": "$(ProjectDir)", + "index": 1 + } + }, + "logicalLocations": [ + { + "index": 54, + "fullyQualifiedName": "microsoft.json.schema.dll!Microsoft.Json.Schema.JsonSchema.Dependencies" + } + ] } - ] + ], + "properties": { + "Category": "Microsoft.Usage", + "FixCategory": "Breaking" + } }, - "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/ResultEqualityComparer.cs": { - "mimeType": "text/x-csharp", - "contents": { - "binary": "Ly8gQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQuICBBbGwgUmlnaHRzIFJlc2VydmVkLg0KLy8gTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlLiBTZWUgTElDRU5TRSBmaWxlIGluIHRoZSBwcm9qZWN0IHJvb3QgZm9yIGZ1bGwgbGljZW5zZSBpbmZvcm1hdGlvbi4NCg0KdXNpbmcgU3lzdGVtOw0KdXNpbmcgU3lzdGVtLkNvZGVEb20uQ29tcGlsZXI7DQp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsNCnVzaW5nIE1pY3Jvc29mdC5Db2RlQW5hbHlzaXMuU2FyaWYuUmVhZGVyczsNCg0KbmFtZXNwYWNlIE1pY3Jvc29mdC5Db2RlQW5hbHlzaXMuU2FyaWYNCnsNCiAgICAvLy8gPHN1bW1hcnk+DQogICAgLy8vIERlZmluZXMgbWV0aG9kcyB0byBzdXBwb3J0IHRoZSBjb21wYXJpc29uIG9mIG9iamVjdHMgb2YgdHlwZSBSZXN1bHQgZm9yIGVxdWFsaXR5Lg0KICAgIC8vLyA8L3N1bW1hcnk+DQogICAgW0dlbmVyYXRlZENvZGUoIk1pY3Jvc29mdC5Kc29uLlNjaGVtYS5Ub0RvdE5ldCIsICIwLjU2LjAuMCIpXQ0KICAgIGludGVybmFsIHNlYWxlZCBjbGFzcyBSZXN1bHRFcXVhbGl0eUNvbXBhcmVyIDogSUVxdWFsaXR5Q29tcGFyZXI8UmVzdWx0Pg0KICAgIHsNCiAgICAgICAgaW50ZXJuYWwgc3RhdGljIHJlYWRvbmx5IFJlc3VsdEVxdWFsaXR5Q29tcGFyZXIgSW5zdGFuY2UgPSBuZXcgUmVzdWx0RXF1YWxpdHlDb21wYXJlcigpOw0KDQogICAgICAgIHB1YmxpYyBib29sIEVxdWFscyhSZXN1bHQgbGVmdCwgUmVzdWx0IHJpZ2h0KQ0KICAgICAgICB7DQogICAgICAgICAgICBpZiAoUmVmZXJlbmNlRXF1YWxzKGxlZnQsIHJpZ2h0KSkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgaWYgKFJlZmVyZW5jZUVxdWFscyhsZWZ0LCBudWxsKSB8fCBSZWZlcmVuY2VFcXVhbHMocmlnaHQsIG51bGwpKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgaWYgKGxlZnQuUnVsZUlkICE9IHJpZ2h0LlJ1bGVJZCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIGlmIChsZWZ0LkxldmVsICE9IHJpZ2h0LkxldmVsKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgaWYgKCFNZXNzYWdlLlZhbHVlQ29tcGFyZXIuRXF1YWxzKGxlZnQuTWVzc2FnZSwgcmlnaHQuTWVzc2FnZSkpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBpZiAobGVmdC5SdWxlTWVzc2FnZUlkICE9IHJpZ2h0LlJ1bGVNZXNzYWdlSWQpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBpZiAoIUZpbGVMb2NhdGlvbi5WYWx1ZUNvbXBhcmVyLkVxdWFscyhsZWZ0LkFuYWx5c2lzVGFyZ2V0LCByaWdodC5BbmFseXNpc1RhcmdldCkpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBpZiAoIW9iamVjdC5SZWZlcmVuY2VFcXVhbHMobGVmdC5Mb2NhdGlvbnMsIHJpZ2h0LkxvY2F0aW9ucykpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgaWYgKGxlZnQuTG9jYXRpb25zID09IG51bGwgfHwgcmlnaHQuTG9jYXRpb25zID09IG51bGwpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgaWYgKGxlZnQuTG9jYXRpb25zLkNvdW50ICE9IHJpZ2h0LkxvY2F0aW9ucy5Db3VudCkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICBmb3IgKGludCBpbmRleF8wID0gMDsgaW5kZXhfMCA8IGxlZnQuTG9jYXRpb25zLkNvdW50OyArK2luZGV4XzApDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBpZiAoIUxvY2F0aW9uLlZhbHVlQ29tcGFyZXIuRXF1YWxzKGxlZnQuTG9jYXRpb25zW2luZGV4XzBdLCByaWdodC5Mb2NhdGlvbnNbaW5kZXhfMF0pKQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIGlmIChsZWZ0Lkluc3RhbmNlR3VpZCAhPSByaWdodC5JbnN0YW5jZUd1aWQpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBpZiAobGVmdC5Db3JyZWxhdGlvbkd1aWQgIT0gcmlnaHQuQ29ycmVsYXRpb25HdWlkKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgaWYgKCFvYmplY3QuUmVmZXJlbmNlRXF1YWxzKGxlZnQuUGFydGlhbEZpbmdlcnByaW50cywgcmlnaHQuUGFydGlhbEZpbmdlcnByaW50cykpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgaWYgKGxlZnQuUGFydGlhbEZpbmdlcnByaW50cyA9PSBudWxsIHx8IHJpZ2h0LlBhcnRpYWxGaW5nZXJwcmludHMgPT0gbnVsbCB8fCBsZWZ0LlBhcnRpYWxGaW5nZXJwcmludHMuQ291bnQgIT0gcmlnaHQuUGFydGlhbEZpbmdlcnByaW50cy5Db3VudCkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICBmb3JlYWNoICh2YXIgdmFsdWVfMCBpbiBsZWZ0LlBhcnRpYWxGaW5nZXJwcmludHMpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBzdHJpbmcgdmFsdWVfMTsNCiAgICAgICAgICAgICAgICAgICAgaWYgKCFyaWdodC5QYXJ0aWFsRmluZ2VycHJpbnRzLlRyeUdldFZhbHVlKHZhbHVlXzAuS2V5LCBvdXQgdmFsdWVfMSkpDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZV8wLlZhbHVlICE9IHZhbHVlXzEpDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgaWYgKCFvYmplY3QuUmVmZXJlbmNlRXF1YWxzKGxlZnQuRmluZ2VycHJpbnRzLCByaWdodC5GaW5nZXJwcmludHMpKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIGlmIChsZWZ0LkZpbmdlcnByaW50cyA9PSBudWxsIHx8IHJpZ2h0LkZpbmdlcnByaW50cyA9PSBudWxsIHx8IGxlZnQuRmluZ2VycHJpbnRzLkNvdW50ICE9IHJpZ2h0LkZpbmdlcnByaW50cy5Db3VudCkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICBmb3JlYWNoICh2YXIgdmFsdWVfMiBpbiBsZWZ0LkZpbmdlcnByaW50cykNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIHN0cmluZyB2YWx1ZV8zOw0KICAgICAgICAgICAgICAgICAgICBpZiAoIXJpZ2h0LkZpbmdlcnByaW50cy5UcnlHZXRWYWx1ZSh2YWx1ZV8yLktleSwgb3V0IHZhbHVlXzMpKQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWVfMi5WYWx1ZSAhPSB2YWx1ZV8zKQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIGlmICghb2JqZWN0LlJlZmVyZW5jZUVxdWFscyhsZWZ0LlN0YWNrcywgcmlnaHQuU3RhY2tzKSkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBpZiAobGVmdC5TdGFja3MgPT0gbnVsbCB8fCByaWdodC5TdGFja3MgPT0gbnVsbCkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICBpZiAobGVmdC5TdGFja3MuQ291bnQgIT0gcmlnaHQuU3RhY2tzLkNvdW50KQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgIGZvciAoaW50IGluZGV4XzEgPSAwOyBpbmRleF8xIDwgbGVmdC5TdGFja3MuQ291bnQ7ICsraW5kZXhfMSkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIGlmICghU3RhY2suVmFsdWVDb21wYXJlci5FcXVhbHMobGVmdC5TdGFja3NbaW5kZXhfMV0sIHJpZ2h0LlN0YWNrc1tpbmRleF8xXSkpDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgaWYgKCFvYmplY3QuUmVmZXJlbmNlRXF1YWxzKGxlZnQuQ29kZUZsb3dzLCByaWdodC5Db2RlRmxvd3MpKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIGlmIChsZWZ0LkNvZGVGbG93cyA9PSBudWxsIHx8IHJpZ2h0LkNvZGVGbG93cyA9PSBudWxsKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgIGlmIChsZWZ0LkNvZGVGbG93cy5Db3VudCAhPSByaWdodC5Db2RlRmxvd3MuQ291bnQpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgZm9yIChpbnQgaW5kZXhfMiA9IDA7IGluZGV4XzIgPCBsZWZ0LkNvZGVGbG93cy5Db3VudDsgKytpbmRleF8yKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgaWYgKCFDb2RlRmxvdy5WYWx1ZUNvbXBhcmVyLkVxdWFscyhsZWZ0LkNvZGVGbG93c1tpbmRleF8yXSwgcmlnaHQuQ29kZUZsb3dzW2luZGV4XzJdKSkNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBpZiAoIW9iamVjdC5SZWZlcmVuY2VFcXVhbHMobGVmdC5HcmFwaHMsIHJpZ2h0LkdyYXBocykpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgaWYgKGxlZnQuR3JhcGhzID09IG51bGwgfHwgcmlnaHQuR3JhcGhzID09IG51bGwpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgaWYgKGxlZnQuR3JhcGhzLkNvdW50ICE9IHJpZ2h0LkdyYXBocy5Db3VudCkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICBmb3IgKGludCBpbmRleF8zID0gMDsgaW5kZXhfMyA8IGxlZnQuR3JhcGhzLkNvdW50OyArK2luZGV4XzMpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBpZiAoIUdyYXBoLlZhbHVlQ29tcGFyZXIuRXF1YWxzKGxlZnQuR3JhcGhzW2luZGV4XzNdLCByaWdodC5HcmFwaHNbaW5kZXhfM10pKQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIGlmICghb2JqZWN0LlJlZmVyZW5jZUVxdWFscyhsZWZ0LkdyYXBoVHJhdmVyc2FscywgcmlnaHQuR3JhcGhUcmF2ZXJzYWxzKSkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBpZiAobGVmdC5HcmFwaFRyYXZlcnNhbHMgPT0gbnVsbCB8fCByaWdodC5HcmFwaFRyYXZlcnNhbHMgPT0gbnVsbCkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICBpZiAobGVmdC5HcmFwaFRyYXZlcnNhbHMuQ291bnQgIT0gcmlnaHQuR3JhcGhUcmF2ZXJzYWxzLkNvdW50KQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgIGZvciAoaW50IGluZGV4XzQgPSAwOyBpbmRleF80IDwgbGVmdC5HcmFwaFRyYXZlcnNhbHMuQ291bnQ7ICsraW5kZXhfNCkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIGlmICghR3JhcGhUcmF2ZXJzYWwuVmFsdWVDb21wYXJlci5FcXVhbHMobGVmdC5HcmFwaFRyYXZlcnNhbHNbaW5kZXhfNF0sIHJpZ2h0LkdyYXBoVHJhdmVyc2Fsc1tpbmRleF80XSkpDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgaWYgKCFvYmplY3QuUmVmZXJlbmNlRXF1YWxzKGxlZnQuUmVsYXRlZExvY2F0aW9ucywgcmlnaHQuUmVsYXRlZExvY2F0aW9ucykpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgaWYgKGxlZnQuUmVsYXRlZExvY2F0aW9ucyA9PSBudWxsIHx8IHJpZ2h0LlJlbGF0ZWRMb2NhdGlvbnMgPT0gbnVsbCkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICBpZiAobGVmdC5SZWxhdGVkTG9jYXRpb25zLkNvdW50ICE9IHJpZ2h0LlJlbGF0ZWRMb2NhdGlvbnMuQ291bnQpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgZm9yIChpbnQgaW5kZXhfNSA9IDA7IGluZGV4XzUgPCBsZWZ0LlJlbGF0ZWRMb2NhdGlvbnMuQ291bnQ7ICsraW5kZXhfNSkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIGlmICghTG9jYXRpb24uVmFsdWVDb21wYXJlci5FcXVhbHMobGVmdC5SZWxhdGVkTG9jYXRpb25zW2luZGV4XzVdLCByaWdodC5SZWxhdGVkTG9jYXRpb25zW2luZGV4XzVdKSkNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBpZiAobGVmdC5TdXBwcmVzc2lvblN0YXRlcyAhPSByaWdodC5TdXBwcmVzc2lvblN0YXRlcykNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIGlmIChsZWZ0LkJhc2VsaW5lU3RhdGUgIT0gcmlnaHQuQmFzZWxpbmVTdGF0ZSkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIGlmICghb2JqZWN0LlJlZmVyZW5jZUVxdWFscyhsZWZ0LkF0dGFjaG1lbnRzLCByaWdodC5BdHRhY2htZW50cykpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgaWYgKGxlZnQuQXR0YWNobWVudHMgPT0gbnVsbCB8fCByaWdodC5BdHRhY2htZW50cyA9PSBudWxsKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgIGlmIChsZWZ0LkF0dGFjaG1lbnRzLkNvdW50ICE9IHJpZ2h0LkF0dGFjaG1lbnRzLkNvdW50KQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgIGZvciAoaW50IGluZGV4XzYgPSAwOyBpbmRleF82IDwgbGVmdC5BdHRhY2htZW50cy5Db3VudDsgKytpbmRleF82KQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgaWYgKCFBdHRhY2htZW50LlZhbHVlQ29tcGFyZXIuRXF1YWxzKGxlZnQuQXR0YWNobWVudHNbaW5kZXhfNl0sIHJpZ2h0LkF0dGFjaG1lbnRzW2luZGV4XzZdKSkNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBpZiAoIW9iamVjdC5SZWZlcmVuY2VFcXVhbHMobGVmdC5Xb3JrSXRlbVVyaXMsIHJpZ2h0LldvcmtJdGVtVXJpcykpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgaWYgKGxlZnQuV29ya0l0ZW1VcmlzID09IG51bGwgfHwgcmlnaHQuV29ya0l0ZW1VcmlzID09IG51bGwpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgaWYgKGxlZnQuV29ya0l0ZW1VcmlzLkNvdW50ICE9IHJpZ2h0LldvcmtJdGVtVXJpcy5Db3VudCkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICBmb3IgKGludCBpbmRleF83ID0gMDsgaW5kZXhfNyA8IGxlZnQuV29ya0l0ZW1VcmlzLkNvdW50OyArK2luZGV4XzcpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBpZiAobGVmdC5Xb3JrSXRlbVVyaXNbaW5kZXhfN10gIT0gcmlnaHQuV29ya0l0ZW1VcmlzW2luZGV4XzddKQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIGlmICghb2JqZWN0LlJlZmVyZW5jZUVxdWFscyhsZWZ0LkNvbnZlcnNpb25Qcm92ZW5hbmNlLCByaWdodC5Db252ZXJzaW9uUHJvdmVuYW5jZSkpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgaWYgKGxlZnQuQ29udmVyc2lvblByb3ZlbmFuY2UgPT0gbnVsbCB8fCByaWdodC5Db252ZXJzaW9uUHJvdmVuYW5jZSA9PSBudWxsKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgIGlmIChsZWZ0LkNvbnZlcnNpb25Qcm92ZW5hbmNlLkNvdW50ICE9IHJpZ2h0LkNvbnZlcnNpb25Qcm92ZW5hbmNlLkNvdW50KQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgIGZvciAoaW50IGluZGV4XzggPSAwOyBpbmRleF84IDwgbGVmdC5Db252ZXJzaW9uUHJvdmVuYW5jZS5Db3VudDsgKytpbmRleF84KQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgaWYgKCFQaHlzaWNhbExvY2F0aW9uLlZhbHVlQ29tcGFyZXIuRXF1YWxzKGxlZnQuQ29udmVyc2lvblByb3ZlbmFuY2VbaW5kZXhfOF0sIHJpZ2h0LkNvbnZlcnNpb25Qcm92ZW5hbmNlW2luZGV4XzhdKSkNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBpZiAoIW9iamVjdC5SZWZlcmVuY2VFcXVhbHMobGVmdC5GaXhlcywgcmlnaHQuRml4ZXMpKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIGlmIChsZWZ0LkZpeGVzID09IG51bGwgfHwgcmlnaHQuRml4ZXMgPT0gbnVsbCkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICBpZiAobGVmdC5GaXhlcy5Db3VudCAhPSByaWdodC5GaXhlcy5Db3VudCkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICBmb3IgKGludCBpbmRleF85ID0gMDsgaW5kZXhfOSA8IGxlZnQuRml4ZXMuQ291bnQ7ICsraW5kZXhfOSkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIGlmICghRml4LlZhbHVlQ29tcGFyZXIuRXF1YWxzKGxlZnQuRml4ZXNbaW5kZXhfOV0sIHJpZ2h0LkZpeGVzW2luZGV4XzldKSkNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBpZiAoIW9iamVjdC5SZWZlcmVuY2VFcXVhbHMobGVmdC5Qcm9wZXJ0aWVzLCByaWdodC5Qcm9wZXJ0aWVzKSkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBpZiAobGVmdC5Qcm9wZXJ0aWVzID09IG51bGwgfHwgcmlnaHQuUHJvcGVydGllcyA9PSBudWxsIHx8IGxlZnQuUHJvcGVydGllcy5Db3VudCAhPSByaWdodC5Qcm9wZXJ0aWVzLkNvdW50KQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgIGZvcmVhY2ggKHZhciB2YWx1ZV80IGluIGxlZnQuUHJvcGVydGllcykNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIFNlcmlhbGl6ZWRQcm9wZXJ0eUluZm8gdmFsdWVfNTsNCiAgICAgICAgICAgICAgICAgICAgaWYgKCFyaWdodC5Qcm9wZXJ0aWVzLlRyeUdldFZhbHVlKHZhbHVlXzQuS2V5LCBvdXQgdmFsdWVfNSkpDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgICAgIGlmICghb2JqZWN0LkVxdWFscyh2YWx1ZV80LlZhbHVlLCB2YWx1ZV81KSkNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICByZXR1cm4gdHJ1ZTsNCiAgICAgICAgfQ0KDQogICAgICAgIHB1YmxpYyBpbnQgR2V0SGFzaENvZGUoUmVzdWx0IG9iaikNCiAgICAgICAgew0KICAgICAgICAgICAgaWYgKFJlZmVyZW5jZUVxdWFscyhvYmosIG51bGwpKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHJldHVybiAwOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBpbnQgcmVzdWx0ID0gMTc7DQogICAgICAgICAgICB1bmNoZWNrZWQNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBpZiAob2JqLlJ1bGVJZCAhPSBudWxsKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gKHJlc3VsdCAqIDMxKSArIG9iai5SdWxlSWQuR2V0SGFzaENvZGUoKTsNCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICByZXN1bHQgPSAocmVzdWx0ICogMzEpICsgb2JqLkxldmVsLkdldEhhc2hDb2RlKCk7DQogICAgICAgICAgICAgICAgaWYgKG9iai5NZXNzYWdlICE9IG51bGwpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSAocmVzdWx0ICogMzEpICsgb2JqLk1lc3NhZ2UuVmFsdWVHZXRIYXNoQ29kZSgpOw0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgIGlmIChvYmouUnVsZU1lc3NhZ2VJZCAhPSBudWxsKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gKHJlc3VsdCAqIDMxKSArIG9iai5SdWxlTWVzc2FnZUlkLkdldEhhc2hDb2RlKCk7DQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgaWYgKG9iai5BbmFseXNpc1RhcmdldCAhPSBudWxsKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gKHJlc3VsdCAqIDMxKSArIG9iai5BbmFseXNpc1RhcmdldC5WYWx1ZUdldEhhc2hDb2RlKCk7DQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgaWYgKG9iai5Mb2NhdGlvbnMgIT0gbnVsbCkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIGZvcmVhY2ggKHZhciB2YWx1ZV82IGluIG9iai5Mb2NhdGlvbnMpDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IHJlc3VsdCAqIDMxOw0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlXzYgIT0gbnVsbCkNCiAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSAocmVzdWx0ICogMzEpICsgdmFsdWVfNi5WYWx1ZUdldEhhc2hDb2RlKCk7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICBpZiAob2JqLkluc3RhbmNlR3VpZCAhPSBudWxsKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gKHJlc3VsdCAqIDMxKSArIG9iai5JbnN0YW5jZUd1aWQuR2V0SGFzaENvZGUoKTsNCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICBpZiAob2JqLkNvcnJlbGF0aW9uR3VpZCAhPSBudWxsKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gKHJlc3VsdCAqIDMxKSArIG9iai5Db3JyZWxhdGlvbkd1aWQuR2V0SGFzaENvZGUoKTsNCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICBpZiAob2JqLlBhcnRpYWxGaW5nZXJwcmludHMgIT0gbnVsbCkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIC8vIFVzZSB4b3IgZm9yIGRpY3Rpb25hcmllcyB0byBiZSBvcmRlci1pbmRlcGVuZGVudC4NCiAgICAgICAgICAgICAgICAgICAgaW50IHhvcl8wID0gMDsNCiAgICAgICAgICAgICAgICAgICAgZm9yZWFjaCAodmFyIHZhbHVlXzcgaW4gb2JqLlBhcnRpYWxGaW5nZXJwcmludHMpDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHhvcl8wIF49IHZhbHVlXzcuS2V5LkdldEhhc2hDb2RlKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWVfNy5WYWx1ZSAhPSBudWxsKQ0KICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhvcl8wIF49IHZhbHVlXzcuVmFsdWUuR2V0SGFzaENvZGUoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IChyZXN1bHQgKiAzMSkgKyB4b3JfMDsNCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICBpZiAob2JqLkZpbmdlcnByaW50cyAhPSBudWxsKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgLy8gVXNlIHhvciBmb3IgZGljdGlvbmFyaWVzIHRvIGJlIG9yZGVyLWluZGVwZW5kZW50Lg0KICAgICAgICAgICAgICAgICAgICBpbnQgeG9yXzEgPSAwOw0KICAgICAgICAgICAgICAgICAgICBmb3JlYWNoICh2YXIgdmFsdWVfOCBpbiBvYmouRmluZ2VycHJpbnRzKQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICB4b3JfMSBePSB2YWx1ZV84LktleS5HZXRIYXNoQ29kZSgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlXzguVmFsdWUgIT0gbnVsbCkNCiAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB4b3JfMSBePSB2YWx1ZV84LlZhbHVlLkdldEhhc2hDb2RlKCk7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSAocmVzdWx0ICogMzEpICsgeG9yXzE7DQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgaWYgKG9iai5TdGFja3MgIT0gbnVsbCkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIGZvcmVhY2ggKHZhciB2YWx1ZV85IGluIG9iai5TdGFja3MpDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IHJlc3VsdCAqIDMxOw0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlXzkgIT0gbnVsbCkNCiAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSAocmVzdWx0ICogMzEpICsgdmFsdWVfOS5WYWx1ZUdldEhhc2hDb2RlKCk7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICBpZiAob2JqLkNvZGVGbG93cyAhPSBudWxsKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgZm9yZWFjaCAodmFyIHZhbHVlXzEwIGluIG9iai5Db2RlRmxvd3MpDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IHJlc3VsdCAqIDMxOw0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlXzEwICE9IG51bGwpDQogICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gKHJlc3VsdCAqIDMxKSArIHZhbHVlXzEwLlZhbHVlR2V0SGFzaENvZGUoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgIGlmIChvYmouR3JhcGhzICE9IG51bGwpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBmb3JlYWNoICh2YXIgdmFsdWVfMTEgaW4gb2JqLkdyYXBocykNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gcmVzdWx0ICogMzE7DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWVfMTEgIT0gbnVsbCkNCiAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSAocmVzdWx0ICogMzEpICsgdmFsdWVfMTEuVmFsdWVHZXRIYXNoQ29kZSgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgaWYgKG9iai5HcmFwaFRyYXZlcnNhbHMgIT0gbnVsbCkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIGZvcmVhY2ggKHZhciB2YWx1ZV8xMiBpbiBvYmouR3JhcGhUcmF2ZXJzYWxzKQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSByZXN1bHQgKiAzMTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZV8xMiAhPSBudWxsKQ0KICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IChyZXN1bHQgKiAzMSkgKyB2YWx1ZV8xMi5WYWx1ZUdldEhhc2hDb2RlKCk7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICBpZiAob2JqLlJlbGF0ZWRMb2NhdGlvbnMgIT0gbnVsbCkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIGZvcmVhY2ggKHZhciB2YWx1ZV8xMyBpbiBvYmouUmVsYXRlZExvY2F0aW9ucykNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gcmVzdWx0ICogMzE7DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWVfMTMgIT0gbnVsbCkNCiAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSAocmVzdWx0ICogMzEpICsgdmFsdWVfMTMuVmFsdWVHZXRIYXNoQ29kZSgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgcmVzdWx0ID0gKHJlc3VsdCAqIDMxKSArIG9iai5TdXBwcmVzc2lvblN0YXRlcy5HZXRIYXNoQ29kZSgpOw0KICAgICAgICAgICAgICAgIHJlc3VsdCA9IChyZXN1bHQgKiAzMSkgKyBvYmouQmFzZWxpbmVTdGF0ZS5HZXRIYXNoQ29kZSgpOw0KICAgICAgICAgICAgICAgIGlmIChvYmouQXR0YWNobWVudHMgIT0gbnVsbCkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIGZvcmVhY2ggKHZhciB2YWx1ZV8xNCBpbiBvYmouQXR0YWNobWVudHMpDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IHJlc3VsdCAqIDMxOw0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlXzE0ICE9IG51bGwpDQogICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gKHJlc3VsdCAqIDMxKSArIHZhbHVlXzE0LlZhbHVlR2V0SGFzaENvZGUoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgIGlmIChvYmouV29ya0l0ZW1VcmlzICE9IG51bGwpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBmb3JlYWNoICh2YXIgdmFsdWVfMTUgaW4gb2JqLldvcmtJdGVtVXJpcykNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gcmVzdWx0ICogMzE7DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWVfMTUgIT0gbnVsbCkNCiAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSAocmVzdWx0ICogMzEpICsgdmFsdWVfMTUuR2V0SGFzaENvZGUoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgIGlmIChvYmouQ29udmVyc2lvblByb3ZlbmFuY2UgIT0gbnVsbCkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIGZvcmVhY2ggKHZhciB2YWx1ZV8xNiBpbiBvYmouQ29udmVyc2lvblByb3ZlbmFuY2UpDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IHJlc3VsdCAqIDMxOw0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlXzE2ICE9IG51bGwpDQogICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gKHJlc3VsdCAqIDMxKSArIHZhbHVlXzE2LlZhbHVlR2V0SGFzaENvZGUoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgIGlmIChvYmouRml4ZXMgIT0gbnVsbCkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIGZvcmVhY2ggKHZhciB2YWx1ZV8xNyBpbiBvYmouRml4ZXMpDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IHJlc3VsdCAqIDMxOw0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlXzE3ICE9IG51bGwpDQogICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gKHJlc3VsdCAqIDMxKSArIHZhbHVlXzE3LlZhbHVlR2V0SGFzaENvZGUoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgIGlmIChvYmouUHJvcGVydGllcyAhPSBudWxsKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgLy8gVXNlIHhvciBmb3IgZGljdGlvbmFyaWVzIHRvIGJlIG9yZGVyLWluZGVwZW5kZW50Lg0KICAgICAgICAgICAgICAgICAgICBpbnQgeG9yXzIgPSAwOw0KICAgICAgICAgICAgICAgICAgICBmb3JlYWNoICh2YXIgdmFsdWVfMTggaW4gb2JqLlByb3BlcnRpZXMpDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHhvcl8yIF49IHZhbHVlXzE4LktleS5HZXRIYXNoQ29kZSgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlXzE4LlZhbHVlICE9IG51bGwpDQogICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgeG9yXzIgXj0gdmFsdWVfMTguVmFsdWUuR2V0SGFzaENvZGUoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IChyZXN1bHQgKiAzMSkgKyB4b3JfMjsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIHJldHVybiByZXN1bHQ7DQogICAgICAgIH0NCiAgICB9DQp9" + { + "ruleId": "CA2227", + "message": { + "text": "Change 'JsonSchema.Enum' to be read-only by removing the property setter." }, - "hashes": [ - { - "value": "9E375847C58469C3FED90AD0AF4C93B6", - "algorithm": "md5" - }, - { - "value": "D281861267B27163CA18CD515FFDBCC41F658602", - "algorithm": "sha-1" - }, + "locations": [ { - "value": "CB574E9BD5EFB0888951B6586ACC91B72B70A3DBAD6CE8419EE0196CF7DB5965", - "algorithm": "sha-256" + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Microsoft.Json.Schema.dll", + "uriBaseId": "$(ProjectDir)", + "index": 1 + } + }, + "logicalLocations": [ + { + "index": 55, + "fullyQualifiedName": "microsoft.json.schema.dll!Microsoft.Json.Schema.JsonSchema.Enum" + } + ] } - ] + ], + "properties": { + "Category": "Microsoft.Usage", + "FixCategory": "Breaking" + } }, - "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/Rule.cs": { - "mimeType": "text/x-csharp", - "contents": { - "binary": "Ly8gQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQuICBBbGwgUmlnaHRzIFJlc2VydmVkLg0KLy8gTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlLiBTZWUgTElDRU5TRSBmaWxlIGluIHRoZSBwcm9qZWN0IHJvb3QgZm9yIGZ1bGwgbGljZW5zZSBpbmZvcm1hdGlvbi4NCg0KdXNpbmcgU3lzdGVtOw0KdXNpbmcgU3lzdGVtLkNvZGVEb20uQ29tcGlsZXI7DQp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsNCnVzaW5nIFN5c3RlbS5SdW50aW1lLlNlcmlhbGl6YXRpb247DQp1c2luZyBNaWNyb3NvZnQuQ29kZUFuYWx5c2lzLlNhcmlmLlJlYWRlcnM7DQoNCm5hbWVzcGFjZSBNaWNyb3NvZnQuQ29kZUFuYWx5c2lzLlNhcmlmDQp7DQogICAgLy8vIDxzdW1tYXJ5Pg0KICAgIC8vLyBEZXNjcmliZXMgYW4gYW5hbHlzaXMgcnVsZS4NCiAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgIFtEYXRhQ29udHJhY3RdDQogICAgW0dlbmVyYXRlZENvZGUoIk1pY3Jvc29mdC5Kc29uLlNjaGVtYS5Ub0RvdE5ldCIsICIwLjU2LjAuMCIpXQ0KICAgIHB1YmxpYyBwYXJ0aWFsIGNsYXNzIFJ1bGUgOiBQcm9wZXJ0eUJhZ0hvbGRlciwgSVJ1bGUsIElTYXJpZk5vZGUNCiAgICB7DQogICAgICAgIHB1YmxpYyBzdGF0aWMgSUVxdWFsaXR5Q29tcGFyZXI8UnVsZT4gVmFsdWVDb21wYXJlciA9PiBSdWxlRXF1YWxpdHlDb21wYXJlci5JbnN0YW5jZTsNCg0KICAgICAgICBwdWJsaWMgYm9vbCBWYWx1ZUVxdWFscyhSdWxlIG90aGVyKSA9PiBWYWx1ZUNvbXBhcmVyLkVxdWFscyh0aGlzLCBvdGhlcik7DQogICAgICAgIHB1YmxpYyBpbnQgVmFsdWVHZXRIYXNoQ29kZSgpID0+IFZhbHVlQ29tcGFyZXIuR2V0SGFzaENvZGUodGhpcyk7DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gR2V0cyBhIHZhbHVlIGluZGljYXRpbmcgdGhlIHR5cGUgb2Ygb2JqZWN0IGltcGxlbWVudGluZyA8c2VlIGNyZWY9IklTYXJpZk5vZGUiIC8+Lg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICBwdWJsaWMgU2FyaWZOb2RlS2luZCBTYXJpZk5vZGVLaW5kDQogICAgICAgIHsNCiAgICAgICAgICAgIGdldA0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHJldHVybiBTYXJpZk5vZGVLaW5kLlJ1bGU7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBBIHN0YWJsZSwgb3BhcXVlIGlkZW50aWZpZXIgZm9yIHRoZSBydWxlLg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICBbRGF0YU1lbWJlcihOYW1lID0gImlkIiwgSXNSZXF1aXJlZCA9IHRydWUpXQ0KICAgICAgICBwdWJsaWMgc3RyaW5nIElkIHsgZ2V0OyBzZXQ7IH0NCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBBIHJ1bGUgaWRlbnRpZmllciB0aGF0IGlzIHVuZGVyc3RhbmRhYmxlIHRvIGFuIGVuZCB1c2VyLg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICBbRGF0YU1lbWJlcihOYW1lID0gIm5hbWUiLCBJc1JlcXVpcmVkID0gZmFsc2UsIEVtaXREZWZhdWx0VmFsdWUgPSBmYWxzZSldDQogICAgICAgIHB1YmxpYyBNZXNzYWdlIE5hbWUgeyBnZXQ7IHNldDsgfQ0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIEEgY29uY2lzZSBkZXNjcmlwdGlvbiBvZiB0aGUgcnVsZS4gU2hvdWxkIGJlIGEgc2luZ2xlIHNlbnRlbmNlIHRoYXQgaXMgdW5kZXJzdGFuZGFibGUgd2hlbiB2aXNpYmxlIHNwYWNlIGlzIGxpbWl0ZWQgdG8gYSBzaW5nbGUgbGluZSBvZiB0ZXh0Lg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICBbRGF0YU1lbWJlcihOYW1lID0gInNob3J0RGVzY3JpcHRpb24iLCBJc1JlcXVpcmVkID0gZmFsc2UsIEVtaXREZWZhdWx0VmFsdWUgPSBmYWxzZSldDQogICAgICAgIHB1YmxpYyBNZXNzYWdlIFNob3J0RGVzY3JpcHRpb24geyBnZXQ7IHNldDsgfQ0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIEEgZGVzY3JpcHRpb24gb2YgdGhlIHJ1bGUuIFNob3VsZCwgYXMgZmFyIGFzIHBvc3NpYmxlLCBwcm92aWRlIGRldGFpbHMgc3VmZmljaWVudCB0byBlbmFibGUgcmVzb2x1dGlvbiBvZiBhbnkgcHJvYmxlbSBpbmRpY2F0ZWQgYnkgdGhlIHJlc3VsdC4NCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgW0RhdGFNZW1iZXIoTmFtZSA9ICJmdWxsRGVzY3JpcHRpb24iLCBJc1JlcXVpcmVkID0gZmFsc2UsIEVtaXREZWZhdWx0VmFsdWUgPSBmYWxzZSldDQogICAgICAgIHB1YmxpYyBNZXNzYWdlIEZ1bGxEZXNjcmlwdGlvbiB7IGdldDsgc2V0OyB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gQSBzZXQgb2YgbmFtZS92YWx1ZSBwYWlycyB3aXRoIGFyYml0cmFyeSBuYW1lcy4gVGhlIHZhbHVlIHdpdGhpbiBlYWNoIG5hbWUvdmFsdWUgcGFpciBjb25zaXN0cyBvZiBwbGFpbiB0ZXh0IGludGVyc3BlcnNlZCB3aXRoIHBsYWNlaG9sZGVycywgd2hpY2ggY2FuIGJlIHVzZWQgdG8gY29uc3RydWN0IGEgbWVzc2FnZSBpbiBjb21iaW5hdGlvbiB3aXRoIGFuIGFyYml0cmFyeSBudW1iZXIgb2YgYWRkaXRpb25hbCBzdHJpbmcgYXJndW1lbnRzLg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICBbRGF0YU1lbWJlcihOYW1lID0gIm1lc3NhZ2VTdHJpbmdzIiwgSXNSZXF1aXJlZCA9IGZhbHNlLCBFbWl0RGVmYXVsdFZhbHVlID0gZmFsc2UpXQ0KICAgICAgICBwdWJsaWMgSURpY3Rpb25hcnk8c3RyaW5nLCBzdHJpbmc+IE1lc3NhZ2VTdHJpbmdzIHsgZ2V0OyBzZXQ7IH0NCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBBIHNldCBvZiBuYW1lL3ZhbHVlIHBhaXJzIHdpdGggYXJiaXRyYXJ5IG5hbWVzLiBUaGUgdmFsdWUgd2l0aGluIGVhY2ggbmFtZS92YWx1ZSBwYWlyIGNvbnNpc3RzIG9mIHJpY2ggdGV4dCBpbnRlcnNwZXJzZWQgd2l0aCBwbGFjZWhvbGRlcnMsIHdoaWNoIGNhbiBiZSB1c2VkIHRvIGNvbnN0cnVjdCBhIG1lc3NhZ2UgaW4gY29tYmluYXRpb24gd2l0aCBhbiBhcmJpdHJhcnkgbnVtYmVyIG9mIGFkZGl0aW9uYWwgc3RyaW5nIGFyZ3VtZW50cy4NCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgW0RhdGFNZW1iZXIoTmFtZSA9ICJyaWNoTWVzc2FnZVN0cmluZ3MiLCBJc1JlcXVpcmVkID0gZmFsc2UsIEVtaXREZWZhdWx0VmFsdWUgPSBmYWxzZSldDQogICAgICAgIHB1YmxpYyBJRGljdGlvbmFyeTxzdHJpbmcsIHN0cmluZz4gUmljaE1lc3NhZ2VTdHJpbmdzIHsgZ2V0OyBzZXQ7IH0NCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBJbmZvcm1hdGlvbiBhYm91dCB0aGUgcnVsZSB0aGF0IGNhbiBiZSBjb25maWd1cmVkIGF0IHJ1bnRpbWUuDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIFtEYXRhTWVtYmVyKE5hbWUgPSAiY29uZmlndXJhdGlvbiIsIElzUmVxdWlyZWQgPSBmYWxzZSwgRW1pdERlZmF1bHRWYWx1ZSA9IGZhbHNlKV0NCiAgICAgICAgcHVibGljIFJ1bGVDb25maWd1cmF0aW9uIENvbmZpZ3VyYXRpb24geyBnZXQ7IHNldDsgfQ0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIEEgVVJJIHdoZXJlIHRoZSBwcmltYXJ5IGRvY3VtZW50YXRpb24gZm9yIHRoZSBydWxlIGNhbiBiZSBmb3VuZC4NCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgW0RhdGFNZW1iZXIoTmFtZSA9ICJoZWxwVXJpIiwgSXNSZXF1aXJlZCA9IGZhbHNlLCBFbWl0RGVmYXVsdFZhbHVlID0gZmFsc2UpXQ0KICAgICAgICBwdWJsaWMgVXJpIEhlbHBVcmkgeyBnZXQ7IHNldDsgfQ0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIFByb3ZpZGVzIHRoZSBwcmltYXJ5IGRvY3VtZW50YXRpb24gZm9yIHRoZSBydWxlLCB1c2VmdWwgd2hlbiB0aGVyZSBpcyBubyBvbmxpbmUgZG9jdW1lbnRhdGlvbi4NCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgW0RhdGFNZW1iZXIoTmFtZSA9ICJoZWxwIiwgSXNSZXF1aXJlZCA9IGZhbHNlLCBFbWl0RGVmYXVsdFZhbHVlID0gZmFsc2UpXQ0KICAgICAgICBwdWJsaWMgTWVzc2FnZSBIZWxwIHsgZ2V0OyBzZXQ7IH0NCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBLZXkvdmFsdWUgcGFpcnMgdGhhdCBwcm92aWRlIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gYWJvdXQgdGhlIHJ1bGUuDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIFtEYXRhTWVtYmVyKE5hbWUgPSAicHJvcGVydGllcyIsIElzUmVxdWlyZWQgPSBmYWxzZSwgRW1pdERlZmF1bHRWYWx1ZSA9IGZhbHNlKV0NCiAgICAgICAgaW50ZXJuYWwgb3ZlcnJpZGUgSURpY3Rpb25hcnk8c3RyaW5nLCBTZXJpYWxpemVkUHJvcGVydHlJbmZvPiBQcm9wZXJ0aWVzIHsgZ2V0OyBzZXQ7IH0NCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBJbml0aWFsaXplcyBhIG5ldyBpbnN0YW5jZSBvZiB0aGUgPHNlZSBjcmVmPSJSdWxlIiAvPiBjbGFzcy4NCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgcHVibGljIFJ1bGUoKQ0KICAgICAgICB7DQogICAgICAgIH0NCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBJbml0aWFsaXplcyBhIG5ldyBpbnN0YW5jZSBvZiB0aGUgPHNlZSBjcmVmPSJSdWxlIiAvPiBjbGFzcyBmcm9tIHRoZSBzdXBwbGllZCB2YWx1ZXMuDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIC8vLyA8cGFyYW0gbmFtZT0iaWQiPg0KICAgICAgICAvLy8gQW4gaW5pdGlhbGl6YXRpb24gdmFsdWUgZm9yIHRoZSA8c2VlIGNyZWY9IlA6IElkIiAvPiBwcm9wZXJ0eS4NCiAgICAgICAgLy8vIDwvcGFyYW0+DQogICAgICAgIC8vLyA8cGFyYW0gbmFtZT0ibmFtZSI+DQogICAgICAgIC8vLyBBbiBpbml0aWFsaXphdGlvbiB2YWx1ZSBmb3IgdGhlIDxzZWUgY3JlZj0iUDogTmFtZSIgLz4gcHJvcGVydHkuDQogICAgICAgIC8vLyA8L3BhcmFtPg0KICAgICAgICAvLy8gPHBhcmFtIG5hbWU9InNob3J0RGVzY3JpcHRpb24iPg0KICAgICAgICAvLy8gQW4gaW5pdGlhbGl6YXRpb24gdmFsdWUgZm9yIHRoZSA8c2VlIGNyZWY9IlA6IFNob3J0RGVzY3JpcHRpb24iIC8+IHByb3BlcnR5Lg0KICAgICAgICAvLy8gPC9wYXJhbT4NCiAgICAgICAgLy8vIDxwYXJhbSBuYW1lPSJmdWxsRGVzY3JpcHRpb24iPg0KICAgICAgICAvLy8gQW4gaW5pdGlhbGl6YXRpb24gdmFsdWUgZm9yIHRoZSA8c2VlIGNyZWY9IlA6IEZ1bGxEZXNjcmlwdGlvbiIgLz4gcHJvcGVydHkuDQogICAgICAgIC8vLyA8L3BhcmFtPg0KICAgICAgICAvLy8gPHBhcmFtIG5hbWU9Im1lc3NhZ2VTdHJpbmdzIj4NCiAgICAgICAgLy8vIEFuIGluaXRpYWxpemF0aW9uIHZhbHVlIGZvciB0aGUgPHNlZSBjcmVmPSJQOiBNZXNzYWdlU3RyaW5ncyIgLz4gcHJvcGVydHkuDQogICAgICAgIC8vLyA8L3BhcmFtPg0KICAgICAgICAvLy8gPHBhcmFtIG5hbWU9InJpY2hNZXNzYWdlU3RyaW5ncyI+DQogICAgICAgIC8vLyBBbiBpbml0aWFsaXphdGlvbiB2YWx1ZSBmb3IgdGhlIDxzZWUgY3JlZj0iUDogUmljaE1lc3NhZ2VTdHJpbmdzIiAvPiBwcm9wZXJ0eS4NCiAgICAgICAgLy8vIDwvcGFyYW0+DQogICAgICAgIC8vLyA8cGFyYW0gbmFtZT0iY29uZmlndXJhdGlvbiI+DQogICAgICAgIC8vLyBBbiBpbml0aWFsaXphdGlvbiB2YWx1ZSBmb3IgdGhlIDxzZWUgY3JlZj0iUDogQ29uZmlndXJhdGlvbiIgLz4gcHJvcGVydHkuDQogICAgICAgIC8vLyA8L3BhcmFtPg0KICAgICAgICAvLy8gPHBhcmFtIG5hbWU9ImhlbHBVcmkiPg0KICAgICAgICAvLy8gQW4gaW5pdGlhbGl6YXRpb24gdmFsdWUgZm9yIHRoZSA8c2VlIGNyZWY9IlA6IEhlbHBVcmkiIC8+IHByb3BlcnR5Lg0KICAgICAgICAvLy8gPC9wYXJhbT4NCiAgICAgICAgLy8vIDxwYXJhbSBuYW1lPSJoZWxwIj4NCiAgICAgICAgLy8vIEFuIGluaXRpYWxpemF0aW9uIHZhbHVlIGZvciB0aGUgPHNlZSBjcmVmPSJQOiBIZWxwIiAvPiBwcm9wZXJ0eS4NCiAgICAgICAgLy8vIDwvcGFyYW0+DQogICAgICAgIC8vLyA8cGFyYW0gbmFtZT0icHJvcGVydGllcyI+DQogICAgICAgIC8vLyBBbiBpbml0aWFsaXphdGlvbiB2YWx1ZSBmb3IgdGhlIDxzZWUgY3JlZj0iUDogUHJvcGVydGllcyIgLz4gcHJvcGVydHkuDQogICAgICAgIC8vLyA8L3BhcmFtPg0KICAgICAgICBwdWJsaWMgUnVsZShzdHJpbmcgaWQsIE1lc3NhZ2UgbmFtZSwgTWVzc2FnZSBzaG9ydERlc2NyaXB0aW9uLCBNZXNzYWdlIGZ1bGxEZXNjcmlwdGlvbiwgSURpY3Rpb25hcnk8c3RyaW5nLCBzdHJpbmc+IG1lc3NhZ2VTdHJpbmdzLCBJRGljdGlvbmFyeTxzdHJpbmcsIHN0cmluZz4gcmljaE1lc3NhZ2VTdHJpbmdzLCBSdWxlQ29uZmlndXJhdGlvbiBjb25maWd1cmF0aW9uLCBVcmkgaGVscFVyaSwgTWVzc2FnZSBoZWxwLCBJRGljdGlvbmFyeTxzdHJpbmcsIFNlcmlhbGl6ZWRQcm9wZXJ0eUluZm8+IHByb3BlcnRpZXMpDQogICAgICAgIHsNCiAgICAgICAgICAgIEluaXQoaWQsIG5hbWUsIHNob3J0RGVzY3JpcHRpb24sIGZ1bGxEZXNjcmlwdGlvbiwgbWVzc2FnZVN0cmluZ3MsIHJpY2hNZXNzYWdlU3RyaW5ncywgY29uZmlndXJhdGlvbiwgaGVscFVyaSwgaGVscCwgcHJvcGVydGllcyk7DQogICAgICAgIH0NCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBJbml0aWFsaXplcyBhIG5ldyBpbnN0YW5jZSBvZiB0aGUgPHNlZSBjcmVmPSJSdWxlIiAvPiBjbGFzcyBmcm9tIHRoZSBzcGVjaWZpZWQgaW5zdGFuY2UuDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIC8vLyA8cGFyYW0gbmFtZT0ib3RoZXIiPg0KICAgICAgICAvLy8gVGhlIGluc3RhbmNlIGZyb20gd2hpY2ggdGhlIG5ldyBpbnN0YW5jZSBpcyB0byBiZSBpbml0aWFsaXplZC4NCiAgICAgICAgLy8vIDwvcGFyYW0+DQogICAgICAgIC8vLyA8ZXhjZXB0aW9uIGNyZWY9IkFyZ3VtZW50TnVsbEV4Y2VwdGlvbiI+DQogICAgICAgIC8vLyBUaHJvd24gaWYgPHBhcmFtcmVmIG5hbWU9Im90aGVyIiAvPiBpcyBudWxsLg0KICAgICAgICAvLy8gPC9leGNlcHRpb24+DQogICAgICAgIHB1YmxpYyBSdWxlKFJ1bGUgb3RoZXIpDQogICAgICAgIHsNCiAgICAgICAgICAgIGlmIChvdGhlciA9PSBudWxsKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHRocm93IG5ldyBBcmd1bWVudE51bGxFeGNlcHRpb24obmFtZW9mKG90aGVyKSk7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIEluaXQob3RoZXIuSWQsIG90aGVyLk5hbWUsIG90aGVyLlNob3J0RGVzY3JpcHRpb24sIG90aGVyLkZ1bGxEZXNjcmlwdGlvbiwgb3RoZXIuTWVzc2FnZVN0cmluZ3MsIG90aGVyLlJpY2hNZXNzYWdlU3RyaW5ncywgb3RoZXIuQ29uZmlndXJhdGlvbiwgb3RoZXIuSGVscFVyaSwgb3RoZXIuSGVscCwgb3RoZXIuUHJvcGVydGllcyk7DQogICAgICAgIH0NCg0KICAgICAgICBJU2FyaWZOb2RlIElTYXJpZk5vZGUuRGVlcENsb25lKCkNCiAgICAgICAgew0KICAgICAgICAgICAgcmV0dXJuIERlZXBDbG9uZUNvcmUoKTsNCiAgICAgICAgfQ0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIENyZWF0ZXMgYSBkZWVwIGNvcHkgb2YgdGhpcyBpbnN0YW5jZS4NCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgcHVibGljIFJ1bGUgRGVlcENsb25lKCkNCiAgICAgICAgew0KICAgICAgICAgICAgcmV0dXJuIChSdWxlKURlZXBDbG9uZUNvcmUoKTsNCiAgICAgICAgfQ0KDQogICAgICAgIHByaXZhdGUgSVNhcmlmTm9kZSBEZWVwQ2xvbmVDb3JlKCkNCiAgICAgICAgew0KICAgICAgICAgICAgcmV0dXJuIG5ldyBSdWxlKHRoaXMpOw0KICAgICAgICB9DQoNCiAgICAgICAgcHJpdmF0ZSB2b2lkIEluaXQoc3RyaW5nIGlkLCBNZXNzYWdlIG5hbWUsIE1lc3NhZ2Ugc2hvcnREZXNjcmlwdGlvbiwgTWVzc2FnZSBmdWxsRGVzY3JpcHRpb24sIElEaWN0aW9uYXJ5PHN0cmluZywgc3RyaW5nPiBtZXNzYWdlU3RyaW5ncywgSURpY3Rpb25hcnk8c3RyaW5nLCBzdHJpbmc+IHJpY2hNZXNzYWdlU3RyaW5ncywgUnVsZUNvbmZpZ3VyYXRpb24gY29uZmlndXJhdGlvbiwgVXJpIGhlbHBVcmksIE1lc3NhZ2UgaGVscCwgSURpY3Rpb25hcnk8c3RyaW5nLCBTZXJpYWxpemVkUHJvcGVydHlJbmZvPiBwcm9wZXJ0aWVzKQ0KICAgICAgICB7DQogICAgICAgICAgICBJZCA9IGlkOw0KICAgICAgICAgICAgaWYgKG5hbWUgIT0gbnVsbCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBOYW1lID0gbmV3IE1lc3NhZ2UobmFtZSk7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIGlmIChzaG9ydERlc2NyaXB0aW9uICE9IG51bGwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgU2hvcnREZXNjcmlwdGlvbiA9IG5ldyBNZXNzYWdlKHNob3J0RGVzY3JpcHRpb24pOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBpZiAoZnVsbERlc2NyaXB0aW9uICE9IG51bGwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgRnVsbERlc2NyaXB0aW9uID0gbmV3IE1lc3NhZ2UoZnVsbERlc2NyaXB0aW9uKTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgaWYgKG1lc3NhZ2VTdHJpbmdzICE9IG51bGwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgTWVzc2FnZVN0cmluZ3MgPSBuZXcgRGljdGlvbmFyeTxzdHJpbmcsIHN0cmluZz4obWVzc2FnZVN0cmluZ3MpOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBpZiAocmljaE1lc3NhZ2VTdHJpbmdzICE9IG51bGwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgUmljaE1lc3NhZ2VTdHJpbmdzID0gbmV3IERpY3Rpb25hcnk8c3RyaW5nLCBzdHJpbmc+KHJpY2hNZXNzYWdlU3RyaW5ncyk7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIGlmIChjb25maWd1cmF0aW9uICE9IG51bGwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgQ29uZmlndXJhdGlvbiA9IG5ldyBSdWxlQ29uZmlndXJhdGlvbihjb25maWd1cmF0aW9uKTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgaWYgKGhlbHBVcmkgIT0gbnVsbCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBIZWxwVXJpID0gbmV3IFVyaShoZWxwVXJpLk9yaWdpbmFsU3RyaW5nLCBoZWxwVXJpLklzQWJzb2x1dGVVcmkgPyBVcmlLaW5kLkFic29sdXRlIDogVXJpS2luZC5SZWxhdGl2ZSk7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIGlmIChoZWxwICE9IG51bGwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgSGVscCA9IG5ldyBNZXNzYWdlKGhlbHApOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBpZiAocHJvcGVydGllcyAhPSBudWxsKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIFByb3BlcnRpZXMgPSBuZXcgRGljdGlvbmFyeTxzdHJpbmcsIFNlcmlhbGl6ZWRQcm9wZXJ0eUluZm8+KHByb3BlcnRpZXMpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgfQ0KfQ==" + { + "ruleId": "CA1502", + "message": { + "text": "'JsonSchema.Equals(JsonSchema)' has a cyclomatic complexity of 50. Rewrite or refactor the method to reduce complexity to 25." }, - "hashes": [ - { - "value": "BF00F24519A56D81CBA532B0710C7A58", - "algorithm": "md5" - }, - { - "value": "F898D7FCFAE05081A777D3F033E17202BC42FF48", - "algorithm": "sha-1" - }, + "locations": [ { - "value": "DF241CACD78F0DDF27C71E700ECCEA3059F41128C4D9758DA1804DB1D5DBFC2A", - "algorithm": "sha-256" + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Microsoft.Json.Schema.dll", + "uriBaseId": "$(ProjectDir)", + "index": 1 + } + }, + "logicalLocations": [ + { + "index": 56, + "fullyQualifiedName": "microsoft.json.schema.dll!Microsoft.Json.Schema.JsonSchema.Equals(Microsoft.Json.Schema.JsonSchema)" + } + ] } - ] + ], + "properties": { + "Category": "Microsoft.Maintainability", + "FixCategory": "NonBreaking" + } }, - "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/ReportingConfiguration.cs": { - "mimeType": "text/x-csharp", - "contents": { - "binary": "Ly8gQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQuICBBbGwgUmlnaHRzIFJlc2VydmVkLg0KLy8gTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlLiBTZWUgTElDRU5TRSBmaWxlIGluIHRoZSBwcm9qZWN0IHJvb3QgZm9yIGZ1bGwgbGljZW5zZSBpbmZvcm1hdGlvbi4NCg0KdXNpbmcgU3lzdGVtOw0KdXNpbmcgU3lzdGVtLkNvZGVEb20uQ29tcGlsZXI7DQp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsNCnVzaW5nIFN5c3RlbS5SdW50aW1lLlNlcmlhbGl6YXRpb247DQp1c2luZyBNaWNyb3NvZnQuQ29kZUFuYWx5c2lzLlNhcmlmLlJlYWRlcnM7DQoNCm5hbWVzcGFjZSBNaWNyb3NvZnQuQ29kZUFuYWx5c2lzLlNhcmlmDQp7DQogICAgLy8vIDxzdW1tYXJ5Pg0KICAgIC8vLyBJbmZvcm1hdGlvbiBhYm91dCBhIHJ1bGUgdGhhdCBjYW4gYmUgY29uZmlndXJlZCBhdCBydW50aW1lLg0KICAgIC8vLyA8L3N1bW1hcnk+DQogICAgW0RhdGFDb250cmFjdF0NCiAgICBbR2VuZXJhdGVkQ29kZSgiTWljcm9zb2Z0Lkpzb24uU2NoZW1hLlRvRG90TmV0IiwgIjAuNTYuMC4wIildDQogICAgcHVibGljIHBhcnRpYWwgY2xhc3MgUnVsZUNvbmZpZ3VyYXRpb24gOiBJU2FyaWZOb2RlDQogICAgew0KICAgICAgICBwdWJsaWMgc3RhdGljIElFcXVhbGl0eUNvbXBhcmVyPFJ1bGVDb25maWd1cmF0aW9uPiBWYWx1ZUNvbXBhcmVyID0+IFJ1bGVDb25maWd1cmF0aW9uRXF1YWxpdHlDb21wYXJlci5JbnN0YW5jZTsNCg0KICAgICAgICBwdWJsaWMgYm9vbCBWYWx1ZUVxdWFscyhSdWxlQ29uZmlndXJhdGlvbiBvdGhlcikgPT4gVmFsdWVDb21wYXJlci5FcXVhbHModGhpcywgb3RoZXIpOw0KICAgICAgICBwdWJsaWMgaW50IFZhbHVlR2V0SGFzaENvZGUoKSA9PiBWYWx1ZUNvbXBhcmVyLkdldEhhc2hDb2RlKHRoaXMpOw0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIEdldHMgYSB2YWx1ZSBpbmRpY2F0aW5nIHRoZSB0eXBlIG9mIG9iamVjdCBpbXBsZW1lbnRpbmcgPHNlZSBjcmVmPSJJU2FyaWZOb2RlIiAvPi4NCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgcHVibGljIFNhcmlmTm9kZUtpbmQgU2FyaWZOb2RlS2luZA0KICAgICAgICB7DQogICAgICAgICAgICBnZXQNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gU2FyaWZOb2RlS2luZC5SdWxlQ29uZmlndXJhdGlvbjsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIFNwZWNpZmllcyB3aGV0aGVyIHRoZSBydWxlIHdpbGwgYmUgZXZhbHVhdGVkIGR1cmluZyB0aGUgc2Nhbi4NCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgW0RhdGFNZW1iZXIoTmFtZSA9ICJlbmFibGVkIiwgSXNSZXF1aXJlZCA9IGZhbHNlLCBFbWl0RGVmYXVsdFZhbHVlID0gZmFsc2UpXQ0KICAgICAgICBwdWJsaWMgYm9vbCBFbmFibGVkIHsgZ2V0OyBzZXQ7IH0NCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBTcGVjaWZpZXMgdGhlIGRlZmF1bHQgc2V2ZXJpdHkgbGV2ZWwgb2YgdGhlIHJlc3VsdC4NCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgW0RhdGFNZW1iZXIoTmFtZSA9ICJkZWZhdWx0TGV2ZWwiLCBJc1JlcXVpcmVkID0gZmFsc2UsIEVtaXREZWZhdWx0VmFsdWUgPSBmYWxzZSldDQogICAgICAgIHB1YmxpYyBSdWxlQ29uZmlndXJhdGlvbkRlZmF1bHRMZXZlbCBEZWZhdWx0TGV2ZWwgeyBnZXQ7IHNldDsgfQ0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIENvbnRhaW5zIGNvbmZpZ3VyYXRpb24gaW5mb3JtYXRpb24gc3BlY2lmaWMgdG8gdGhpcyBydWxlLg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICBbRGF0YU1lbWJlcihOYW1lID0gInBhcmFtZXRlcnMiLCBJc1JlcXVpcmVkID0gZmFsc2UsIEVtaXREZWZhdWx0VmFsdWUgPSBmYWxzZSldDQogICAgICAgIHB1YmxpYyBJRGljdGlvbmFyeTxzdHJpbmcsIFNlcmlhbGl6ZWRQcm9wZXJ0eUluZm8+IFBhcmFtZXRlcnMgeyBnZXQ7IHNldDsgfQ0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIEluaXRpYWxpemVzIGEgbmV3IGluc3RhbmNlIG9mIHRoZSA8c2VlIGNyZWY9IlJ1bGVDb25maWd1cmF0aW9uIiAvPiBjbGFzcy4NCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgcHVibGljIFJ1bGVDb25maWd1cmF0aW9uKCkNCiAgICAgICAgew0KICAgICAgICB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gSW5pdGlhbGl6ZXMgYSBuZXcgaW5zdGFuY2Ugb2YgdGhlIDxzZWUgY3JlZj0iUnVsZUNvbmZpZ3VyYXRpb24iIC8+IGNsYXNzIGZyb20gdGhlIHN1cHBsaWVkIHZhbHVlcy4NCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgLy8vIDxwYXJhbSBuYW1lPSJlbmFibGVkIj4NCiAgICAgICAgLy8vIEFuIGluaXRpYWxpemF0aW9uIHZhbHVlIGZvciB0aGUgPHNlZSBjcmVmPSJQOiBFbmFibGVkIiAvPiBwcm9wZXJ0eS4NCiAgICAgICAgLy8vIDwvcGFyYW0+DQogICAgICAgIC8vLyA8cGFyYW0gbmFtZT0iZGVmYXVsdExldmVsIj4NCiAgICAgICAgLy8vIEFuIGluaXRpYWxpemF0aW9uIHZhbHVlIGZvciB0aGUgPHNlZSBjcmVmPSJQOiBEZWZhdWx0TGV2ZWwiIC8+IHByb3BlcnR5Lg0KICAgICAgICAvLy8gPC9wYXJhbT4NCiAgICAgICAgLy8vIDxwYXJhbSBuYW1lPSJwYXJhbWV0ZXJzIj4NCiAgICAgICAgLy8vIEFuIGluaXRpYWxpemF0aW9uIHZhbHVlIGZvciB0aGUgPHNlZSBjcmVmPSJQOiBQYXJhbWV0ZXJzIiAvPiBwcm9wZXJ0eS4NCiAgICAgICAgLy8vIDwvcGFyYW0+DQogICAgICAgIHB1YmxpYyBSdWxlQ29uZmlndXJhdGlvbihib29sIGVuYWJsZWQsIFJ1bGVDb25maWd1cmF0aW9uRGVmYXVsdExldmVsIGRlZmF1bHRMZXZlbCwgSURpY3Rpb25hcnk8c3RyaW5nLCBTZXJpYWxpemVkUHJvcGVydHlJbmZvPiBwYXJhbWV0ZXJzKQ0KICAgICAgICB7DQogICAgICAgICAgICBJbml0KGVuYWJsZWQsIGRlZmF1bHRMZXZlbCwgcGFyYW1ldGVycyk7DQogICAgICAgIH0NCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBJbml0aWFsaXplcyBhIG5ldyBpbnN0YW5jZSBvZiB0aGUgPHNlZSBjcmVmPSJSdWxlQ29uZmlndXJhdGlvbiIgLz4gY2xhc3MgZnJvbSB0aGUgc3BlY2lmaWVkIGluc3RhbmNlLg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICAvLy8gPHBhcmFtIG5hbWU9Im90aGVyIj4NCiAgICAgICAgLy8vIFRoZSBpbnN0YW5jZSBmcm9tIHdoaWNoIHRoZSBuZXcgaW5zdGFuY2UgaXMgdG8gYmUgaW5pdGlhbGl6ZWQuDQogICAgICAgIC8vLyA8L3BhcmFtPg0KICAgICAgICAvLy8gPGV4Y2VwdGlvbiBjcmVmPSJBcmd1bWVudE51bGxFeGNlcHRpb24iPg0KICAgICAgICAvLy8gVGhyb3duIGlmIDxwYXJhbXJlZiBuYW1lPSJvdGhlciIgLz4gaXMgbnVsbC4NCiAgICAgICAgLy8vIDwvZXhjZXB0aW9uPg0KICAgICAgICBwdWJsaWMgUnVsZUNvbmZpZ3VyYXRpb24oUnVsZUNvbmZpZ3VyYXRpb24gb3RoZXIpDQogICAgICAgIHsNCiAgICAgICAgICAgIGlmIChvdGhlciA9PSBudWxsKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHRocm93IG5ldyBBcmd1bWVudE51bGxFeGNlcHRpb24obmFtZW9mKG90aGVyKSk7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIEluaXQob3RoZXIuRW5hYmxlZCwgb3RoZXIuRGVmYXVsdExldmVsLCBvdGhlci5QYXJhbWV0ZXJzKTsNCiAgICAgICAgfQ0KDQogICAgICAgIElTYXJpZk5vZGUgSVNhcmlmTm9kZS5EZWVwQ2xvbmUoKQ0KICAgICAgICB7DQogICAgICAgICAgICByZXR1cm4gRGVlcENsb25lQ29yZSgpOw0KICAgICAgICB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gQ3JlYXRlcyBhIGRlZXAgY29weSBvZiB0aGlzIGluc3RhbmNlLg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICBwdWJsaWMgUnVsZUNvbmZpZ3VyYXRpb24gRGVlcENsb25lKCkNCiAgICAgICAgew0KICAgICAgICAgICAgcmV0dXJuIChSdWxlQ29uZmlndXJhdGlvbilEZWVwQ2xvbmVDb3JlKCk7DQogICAgICAgIH0NCg0KICAgICAgICBwcml2YXRlIElTYXJpZk5vZGUgRGVlcENsb25lQ29yZSgpDQogICAgICAgIHsNCiAgICAgICAgICAgIHJldHVybiBuZXcgUnVsZUNvbmZpZ3VyYXRpb24odGhpcyk7DQogICAgICAgIH0NCg0KICAgICAgICBwcml2YXRlIHZvaWQgSW5pdChib29sIGVuYWJsZWQsIFJ1bGVDb25maWd1cmF0aW9uRGVmYXVsdExldmVsIGRlZmF1bHRMZXZlbCwgSURpY3Rpb25hcnk8c3RyaW5nLCBTZXJpYWxpemVkUHJvcGVydHlJbmZvPiBwYXJhbWV0ZXJzKQ0KICAgICAgICB7DQogICAgICAgICAgICBFbmFibGVkID0gZW5hYmxlZDsNCiAgICAgICAgICAgIERlZmF1bHRMZXZlbCA9IGRlZmF1bHRMZXZlbDsNCiAgICAgICAgICAgIGlmIChwYXJhbWV0ZXJzICE9IG51bGwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgUGFyYW1ldGVycyA9IG5ldyBEaWN0aW9uYXJ5PHN0cmluZywgU2VyaWFsaXplZFByb3BlcnR5SW5mbz4ocGFyYW1ldGVycyk7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCiAgICB9DQp9" + { + "ruleId": "CA2227", + "message": { + "text": "Change 'JsonSchema.OneOf' to be read-only by removing the property setter." }, - "hashes": [ - { - "value": "62C3B6D82E1638BEF4D4DF893034A729", - "algorithm": "md5" - }, - { - "value": "73A324FEB1351A041D54A253499089CBD15368DF", - "algorithm": "sha-1" - }, + "locations": [ { - "value": "D42411545783351B503C120EAF43D6EFE2B89F16D7364947613E4199CB9618F1", - "algorithm": "sha-256" + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Microsoft.Json.Schema.dll", + "uriBaseId": "$(ProjectDir)", + "index": 1 + } + }, + "logicalLocations": [ + { + "index": 57, + "fullyQualifiedName": "microsoft.json.schema.dll!Microsoft.Json.Schema.JsonSchema.OneOf" + } + ] } - ] + ], + "properties": { + "Category": "Microsoft.Usage", + "FixCategory": "Breaking" + } }, - "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/RuleEqualityComparer.cs": { - "mimeType": "text/x-csharp", - "contents": { - "binary": "Ly8gQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQuICBBbGwgUmlnaHRzIFJlc2VydmVkLg0KLy8gTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlLiBTZWUgTElDRU5TRSBmaWxlIGluIHRoZSBwcm9qZWN0IHJvb3QgZm9yIGZ1bGwgbGljZW5zZSBpbmZvcm1hdGlvbi4NCg0KdXNpbmcgU3lzdGVtOw0KdXNpbmcgU3lzdGVtLkNvZGVEb20uQ29tcGlsZXI7DQp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsNCnVzaW5nIE1pY3Jvc29mdC5Db2RlQW5hbHlzaXMuU2FyaWYuUmVhZGVyczsNCg0KbmFtZXNwYWNlIE1pY3Jvc29mdC5Db2RlQW5hbHlzaXMuU2FyaWYNCnsNCiAgICAvLy8gPHN1bW1hcnk+DQogICAgLy8vIERlZmluZXMgbWV0aG9kcyB0byBzdXBwb3J0IHRoZSBjb21wYXJpc29uIG9mIG9iamVjdHMgb2YgdHlwZSBSdWxlIGZvciBlcXVhbGl0eS4NCiAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgIFtHZW5lcmF0ZWRDb2RlKCJNaWNyb3NvZnQuSnNvbi5TY2hlbWEuVG9Eb3ROZXQiLCAiMC41Ni4wLjAiKV0NCiAgICBpbnRlcm5hbCBzZWFsZWQgY2xhc3MgUnVsZUVxdWFsaXR5Q29tcGFyZXIgOiBJRXF1YWxpdHlDb21wYXJlcjxSdWxlPg0KICAgIHsNCiAgICAgICAgaW50ZXJuYWwgc3RhdGljIHJlYWRvbmx5IFJ1bGVFcXVhbGl0eUNvbXBhcmVyIEluc3RhbmNlID0gbmV3IFJ1bGVFcXVhbGl0eUNvbXBhcmVyKCk7DQoNCiAgICAgICAgcHVibGljIGJvb2wgRXF1YWxzKFJ1bGUgbGVmdCwgUnVsZSByaWdodCkNCiAgICAgICAgew0KICAgICAgICAgICAgaWYgKFJlZmVyZW5jZUVxdWFscyhsZWZ0LCByaWdodCkpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIGlmIChSZWZlcmVuY2VFcXVhbHMobGVmdCwgbnVsbCkgfHwgUmVmZXJlbmNlRXF1YWxzKHJpZ2h0LCBudWxsKSkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIGlmIChsZWZ0LklkICE9IHJpZ2h0LklkKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgaWYgKCFNZXNzYWdlLlZhbHVlQ29tcGFyZXIuRXF1YWxzKGxlZnQuTmFtZSwgcmlnaHQuTmFtZSkpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBpZiAoIU1lc3NhZ2UuVmFsdWVDb21wYXJlci5FcXVhbHMobGVmdC5TaG9ydERlc2NyaXB0aW9uLCByaWdodC5TaG9ydERlc2NyaXB0aW9uKSkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIGlmICghTWVzc2FnZS5WYWx1ZUNvbXBhcmVyLkVxdWFscyhsZWZ0LkZ1bGxEZXNjcmlwdGlvbiwgcmlnaHQuRnVsbERlc2NyaXB0aW9uKSkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIGlmICghb2JqZWN0LlJlZmVyZW5jZUVxdWFscyhsZWZ0Lk1lc3NhZ2VTdHJpbmdzLCByaWdodC5NZXNzYWdlU3RyaW5ncykpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgaWYgKGxlZnQuTWVzc2FnZVN0cmluZ3MgPT0gbnVsbCB8fCByaWdodC5NZXNzYWdlU3RyaW5ncyA9PSBudWxsIHx8IGxlZnQuTWVzc2FnZVN0cmluZ3MuQ291bnQgIT0gcmlnaHQuTWVzc2FnZVN0cmluZ3MuQ291bnQpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgZm9yZWFjaCAodmFyIHZhbHVlXzAgaW4gbGVmdC5NZXNzYWdlU3RyaW5ncykNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIHN0cmluZyB2YWx1ZV8xOw0KICAgICAgICAgICAgICAgICAgICBpZiAoIXJpZ2h0Lk1lc3NhZ2VTdHJpbmdzLlRyeUdldFZhbHVlKHZhbHVlXzAuS2V5LCBvdXQgdmFsdWVfMSkpDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZV8wLlZhbHVlICE9IHZhbHVlXzEpDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgaWYgKCFvYmplY3QuUmVmZXJlbmNlRXF1YWxzKGxlZnQuUmljaE1lc3NhZ2VTdHJpbmdzLCByaWdodC5SaWNoTWVzc2FnZVN0cmluZ3MpKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIGlmIChsZWZ0LlJpY2hNZXNzYWdlU3RyaW5ncyA9PSBudWxsIHx8IHJpZ2h0LlJpY2hNZXNzYWdlU3RyaW5ncyA9PSBudWxsIHx8IGxlZnQuUmljaE1lc3NhZ2VTdHJpbmdzLkNvdW50ICE9IHJpZ2h0LlJpY2hNZXNzYWdlU3RyaW5ncy5Db3VudCkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICBmb3JlYWNoICh2YXIgdmFsdWVfMiBpbiBsZWZ0LlJpY2hNZXNzYWdlU3RyaW5ncykNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIHN0cmluZyB2YWx1ZV8zOw0KICAgICAgICAgICAgICAgICAgICBpZiAoIXJpZ2h0LlJpY2hNZXNzYWdlU3RyaW5ncy5UcnlHZXRWYWx1ZSh2YWx1ZV8yLktleSwgb3V0IHZhbHVlXzMpKQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWVfMi5WYWx1ZSAhPSB2YWx1ZV8zKQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIGlmICghUnVsZUNvbmZpZ3VyYXRpb24uVmFsdWVDb21wYXJlci5FcXVhbHMobGVmdC5Db25maWd1cmF0aW9uLCByaWdodC5Db25maWd1cmF0aW9uKSkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIGlmIChsZWZ0LkhlbHBVcmkgIT0gcmlnaHQuSGVscFVyaSkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIGlmICghTWVzc2FnZS5WYWx1ZUNvbXBhcmVyLkVxdWFscyhsZWZ0LkhlbHAsIHJpZ2h0LkhlbHApKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgaWYgKCFvYmplY3QuUmVmZXJlbmNlRXF1YWxzKGxlZnQuUHJvcGVydGllcywgcmlnaHQuUHJvcGVydGllcykpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgaWYgKGxlZnQuUHJvcGVydGllcyA9PSBudWxsIHx8IHJpZ2h0LlByb3BlcnRpZXMgPT0gbnVsbCB8fCBsZWZ0LlByb3BlcnRpZXMuQ291bnQgIT0gcmlnaHQuUHJvcGVydGllcy5Db3VudCkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICBmb3JlYWNoICh2YXIgdmFsdWVfNCBpbiBsZWZ0LlByb3BlcnRpZXMpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBTZXJpYWxpemVkUHJvcGVydHlJbmZvIHZhbHVlXzU7DQogICAgICAgICAgICAgICAgICAgIGlmICghcmlnaHQuUHJvcGVydGllcy5UcnlHZXRWYWx1ZSh2YWx1ZV80LktleSwgb3V0IHZhbHVlXzUpKQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgICAgICBpZiAoIW9iamVjdC5FcXVhbHModmFsdWVfNC5WYWx1ZSwgdmFsdWVfNSkpDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgcmV0dXJuIHRydWU7DQogICAgICAgIH0NCg0KICAgICAgICBwdWJsaWMgaW50IEdldEhhc2hDb2RlKFJ1bGUgb2JqKQ0KICAgICAgICB7DQogICAgICAgICAgICBpZiAoUmVmZXJlbmNlRXF1YWxzKG9iaiwgbnVsbCkpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgcmV0dXJuIDA7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIGludCByZXN1bHQgPSAxNzsNCiAgICAgICAgICAgIHVuY2hlY2tlZA0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIGlmIChvYmouSWQgIT0gbnVsbCkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IChyZXN1bHQgKiAzMSkgKyBvYmouSWQuR2V0SGFzaENvZGUoKTsNCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICBpZiAob2JqLk5hbWUgIT0gbnVsbCkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IChyZXN1bHQgKiAzMSkgKyBvYmouTmFtZS5WYWx1ZUdldEhhc2hDb2RlKCk7DQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgaWYgKG9iai5TaG9ydERlc2NyaXB0aW9uICE9IG51bGwpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSAocmVzdWx0ICogMzEpICsgb2JqLlNob3J0RGVzY3JpcHRpb24uVmFsdWVHZXRIYXNoQ29kZSgpOw0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgIGlmIChvYmouRnVsbERlc2NyaXB0aW9uICE9IG51bGwpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSAocmVzdWx0ICogMzEpICsgb2JqLkZ1bGxEZXNjcmlwdGlvbi5WYWx1ZUdldEhhc2hDb2RlKCk7DQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgaWYgKG9iai5NZXNzYWdlU3RyaW5ncyAhPSBudWxsKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgLy8gVXNlIHhvciBmb3IgZGljdGlvbmFyaWVzIHRvIGJlIG9yZGVyLWluZGVwZW5kZW50Lg0KICAgICAgICAgICAgICAgICAgICBpbnQgeG9yXzAgPSAwOw0KICAgICAgICAgICAgICAgICAgICBmb3JlYWNoICh2YXIgdmFsdWVfNiBpbiBvYmouTWVzc2FnZVN0cmluZ3MpDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHhvcl8wIF49IHZhbHVlXzYuS2V5LkdldEhhc2hDb2RlKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWVfNi5WYWx1ZSAhPSBudWxsKQ0KICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhvcl8wIF49IHZhbHVlXzYuVmFsdWUuR2V0SGFzaENvZGUoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IChyZXN1bHQgKiAzMSkgKyB4b3JfMDsNCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICBpZiAob2JqLlJpY2hNZXNzYWdlU3RyaW5ncyAhPSBudWxsKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgLy8gVXNlIHhvciBmb3IgZGljdGlvbmFyaWVzIHRvIGJlIG9yZGVyLWluZGVwZW5kZW50Lg0KICAgICAgICAgICAgICAgICAgICBpbnQgeG9yXzEgPSAwOw0KICAgICAgICAgICAgICAgICAgICBmb3JlYWNoICh2YXIgdmFsdWVfNyBpbiBvYmouUmljaE1lc3NhZ2VTdHJpbmdzKQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICB4b3JfMSBePSB2YWx1ZV83LktleS5HZXRIYXNoQ29kZSgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlXzcuVmFsdWUgIT0gbnVsbCkNCiAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB4b3JfMSBePSB2YWx1ZV83LlZhbHVlLkdldEhhc2hDb2RlKCk7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSAocmVzdWx0ICogMzEpICsgeG9yXzE7DQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgaWYgKG9iai5Db25maWd1cmF0aW9uICE9IG51bGwpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSAocmVzdWx0ICogMzEpICsgb2JqLkNvbmZpZ3VyYXRpb24uVmFsdWVHZXRIYXNoQ29kZSgpOw0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgIGlmIChvYmouSGVscFVyaSAhPSBudWxsKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gKHJlc3VsdCAqIDMxKSArIG9iai5IZWxwVXJpLkdldEhhc2hDb2RlKCk7DQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgaWYgKG9iai5IZWxwICE9IG51bGwpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSAocmVzdWx0ICogMzEpICsgb2JqLkhlbHAuVmFsdWVHZXRIYXNoQ29kZSgpOw0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgIGlmIChvYmouUHJvcGVydGllcyAhPSBudWxsKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgLy8gVXNlIHhvciBmb3IgZGljdGlvbmFyaWVzIHRvIGJlIG9yZGVyLWluZGVwZW5kZW50Lg0KICAgICAgICAgICAgICAgICAgICBpbnQgeG9yXzIgPSAwOw0KICAgICAgICAgICAgICAgICAgICBmb3JlYWNoICh2YXIgdmFsdWVfOCBpbiBvYmouUHJvcGVydGllcykNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgeG9yXzIgXj0gdmFsdWVfOC5LZXkuR2V0SGFzaENvZGUoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZV84LlZhbHVlICE9IG51bGwpDQogICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgeG9yXzIgXj0gdmFsdWVfOC5WYWx1ZS5HZXRIYXNoQ29kZSgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gKHJlc3VsdCAqIDMxKSArIHhvcl8yOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsNCiAgICAgICAgfQ0KICAgIH0NCn0=" + { + "ruleId": "CA2227", + "message": { + "text": "Change 'JsonSchema.PatternProperties' to be read-only by removing the property setter." }, - "hashes": [ - { - "value": "EC13AE1A8D21D2810A305AD5675690F1", - "algorithm": "md5" - }, - { - "value": "0B68D73934671D23230105E9EF0CEC9DF89B78BE", - "algorithm": "sha-1" - }, + "locations": [ { - "value": "6F80EEF3B1FF6629273EA07C293DA27AC3568EE3E7BB472662F9DA2C28F5054D", - "algorithm": "sha-256" + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Microsoft.Json.Schema.dll", + "uriBaseId": "$(ProjectDir)", + "index": 1 + } + }, + "logicalLocations": [ + { + "index": 58, + "fullyQualifiedName": "microsoft.json.schema.dll!Microsoft.Json.Schema.JsonSchema.PatternProperties" + } + ] } - ] + ], + "properties": { + "Category": "Microsoft.Usage", + "FixCategory": "Breaking" + } }, - "file:///E:/src/sarif-sdk-test/src/Sarif/RuleUtilities.cs": { - "mimeType": "text/x-csharp", - "contents": { - "binary": "77u/Ly8gQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuDQovLyBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UuIFNlZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHByb2plY3Qgcm9vdCBmb3IgZnVsbCBsaWNlbnNlIGluZm9ybWF0aW9uLg0KDQp1c2luZyBTeXN0ZW07DQp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsNCnVzaW5nIFN5c3RlbS5SZXNvdXJjZXM7DQoNCm5hbWVzcGFjZSBNaWNyb3NvZnQuQ29kZUFuYWx5c2lzLlNhcmlmDQp7DQogICAgcHVibGljIHN0YXRpYyBjbGFzcyBSdWxlVXRpbGl0aWVzDQogICAgew0KICAgICAgICBwdWJsaWMgc3RhdGljIFJlc3VsdCBCdWlsZFJlc3VsdChSZXN1bHRMZXZlbCBsZXZlbCwgSUFuYWx5c2lzQ29udGV4dCBjb250ZXh0LCBSZWdpb24gcmVnaW9uLCBzdHJpbmcgcnVsZU1lc3NhZ2VJZCwgcGFyYW1zIHN0cmluZ1tdIGFyZ3VtZW50cykNCiAgICAgICAgew0KICAgICAgICAgICAgaWYgKGNvbnRleHQgPT0gbnVsbCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgQXJndW1lbnROdWxsRXhjZXB0aW9uKG5hbWVvZihjb250ZXh0KSk7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIGlmIChhcmd1bWVudHMgPT0gbnVsbCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgQXJndW1lbnROdWxsRXhjZXB0aW9uKG5hbWVvZihhcmd1bWVudHMpKTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgcnVsZU1lc3NhZ2VJZCA9IE5vcm1hbGl6ZVJ1bGVNZXNzYWdlSWQocnVsZU1lc3NhZ2VJZCwgY29udGV4dC5SdWxlLklkKTsNCg0KICAgICAgICAgICAgUmVzdWx0IHJlc3VsdCA9IG5ldyBSZXN1bHQNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBSdWxlSWQgPSBjb250ZXh0LlJ1bGUuSWQsDQogICAgICAgICAgICAgICAgUnVsZU1lc3NhZ2VJZCA9IHJ1bGVNZXNzYWdlSWQsDQoNCiAgICAgICAgICAgICAgICBNZXNzYWdlID0gbmV3IE1lc3NhZ2UNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIEFyZ3VtZW50cyA9IGFyZ3VtZW50cw0KICAgICAgICAgICAgICAgIH0sDQoNCiAgICAgICAgICAgICAgICBMZXZlbCA9IGxldmVsDQogICAgICAgICAgICB9Ow0KDQogICAgICAgICAgICBzdHJpbmcgdGFyZ2V0UGF0aCA9IGNvbnRleHQuVGFyZ2V0VXJpPy5Mb2NhbFBhdGg7DQogICAgICAgICAgICBpZiAodGFyZ2V0UGF0aCAhPSBudWxsKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHJlc3VsdC5Mb2NhdGlvbnMgPSBuZXcgTGlzdDxMb2NhdGlvbj4gew0KICAgICAgICAgICAgICAgICAgICBuZXcgU2FyaWYuTG9jYXRpb24gew0KICAgICAgICAgICAgICAgICAgICAgICAgUGh5c2ljYWxMb2NhdGlvbiA9IG5ldyBQaHlzaWNhbExvY2F0aW9uDQogICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgRmlsZUxvY2F0aW9uID0gbmV3IEZpbGVMb2NhdGlvbg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVXJpID0gbmV3IFVyaSh0YXJnZXRQYXRoKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVnaW9uID0gcmVnaW9uDQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9Ow0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBpZiAobGV2ZWwgPT0gUmVzdWx0TGV2ZWwuV2FybmluZykNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBjb250ZXh0LlJ1bnRpbWVFcnJvcnMgfD0gUnVudGltZUNvbmRpdGlvbnMuT25lT3JNb3JlV2FybmluZ3NGaXJlZDsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgaWYgKGxldmVsID09IFJlc3VsdExldmVsLkVycm9yKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIGNvbnRleHQuUnVudGltZUVycm9ycyB8PSBSdW50aW1lQ29uZGl0aW9ucy5PbmVPck1vcmVFcnJvcnNGaXJlZDsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsNCiAgICAgICAgfQ0KDQogICAgICAgIHB1YmxpYyBzdGF0aWMgRGljdGlvbmFyeTxzdHJpbmcsIHN0cmluZz4gQnVpbGREaWN0aW9uYXJ5KA0KICAgICAgICAgICAgUmVzb3VyY2VNYW5hZ2VyIHJlc291cmNlTWFuYWdlciwgDQogICAgICAgICAgICBJRW51bWVyYWJsZTxzdHJpbmc+IHJlc291cmNlTmFtZXMsIA0KICAgICAgICAgICAgc3RyaW5nIHJ1bGVJZCwNCiAgICAgICAgICAgIHN0cmluZyBwcmVmaXggPSBudWxsKQ0KICAgICAgICB7DQogICAgICAgICAgICAvL3ZhbGlkYXRpb24NCiAgICAgICAgICAgIGlmIChyZXNvdXJjZU5hbWVzID09IG51bGwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgdGhyb3cgbmV3IEFyZ3VtZW50TnVsbEV4Y2VwdGlvbihuYW1lb2YocmVzb3VyY2VOYW1lcykpOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBpZiAocmVzb3VyY2VNYW5hZ2VyID09IG51bGwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgdGhyb3cgbmV3IEFyZ3VtZW50TnVsbEV4Y2VwdGlvbihuYW1lb2YocmVzb3VyY2VNYW5hZ2VyKSk7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIC8vIE5vdGUgdGhpcyBkaWN0aW9uYXJ5IHByb3ZpZGVzIGZvciBjYXNlLWluc2Vuc2l0aXZlIGtleXMNCiAgICAgICAgICAgIHZhciBkaWN0aW9uYXJ5ID0gbmV3IERpY3Rpb25hcnk8c3RyaW5nLCBzdHJpbmc+KFN0cmluZ0NvbXBhcmVyLk9yZGluYWxJZ25vcmVDYXNlKTsNCg0KICAgICAgICAgICAgZm9yZWFjaCAoc3RyaW5nIHJlc291cmNlTmFtZSBpbiByZXNvdXJjZU5hbWVzKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHN0cmluZyByZXNvdXJjZVZhbHVlID0gcmVzb3VyY2VNYW5hZ2VyLkdldFN0cmluZyhyZXNvdXJjZU5hbWUpOw0KDQogICAgICAgICAgICAgICAgc3RyaW5nIG5vcm1hbGl6ZWRSZXNvdXJjZU5hbWUgPSBOb3JtYWxpemVSdWxlTWVzc2FnZUlkKHJlc291cmNlTmFtZSwgcnVsZUlkLCBwcmVmaXgpOw0KDQogICAgICAgICAgICAgICAgLy8gV2UgbmVlZCB0byB1c2UgdGhlIG5vbi1ub3JtYWxpemVkIGtleSB0byByZXRyaWV2ZSB0aGUgcmVzb3VyY2UgdmFsdWUNCiAgICAgICAgICAgICAgICBkaWN0aW9uYXJ5W25vcm1hbGl6ZWRSZXNvdXJjZU5hbWVdID0gcmVzb3VyY2VWYWx1ZTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgLy8gV2UgbmVlZCB0byByZXR1cm4gbnVsbCBoZXJlLCBvdGhlcndpc2UgdGhpcyBlbXB0eSBkaWN0aW9uYXJ5IHdpbGwgc2VyaWFsaXplIHRvIFNBUklGIGxvZ3MgdW5uZWNlc3NhcmlseQ0KICAgICAgICAgICAgcmV0dXJuIGRpY3Rpb25hcnkuQ291bnQgPiAwID8gZGljdGlvbmFyeSA6IG51bGw7DQogICAgICAgIH0NCg0KICAgICAgICBwdWJsaWMgc3RhdGljIHN0cmluZyBOb3JtYWxpemVSdWxlTWVzc2FnZUlkKHN0cmluZyBydWxlTWVzc2FnZUlkLCBzdHJpbmcgcnVsZUlkLCBzdHJpbmcgcHJlZml4ID0gbnVsbCkNCiAgICAgICAgew0KICAgICAgICAgICAgaWYgKHJ1bGVNZXNzYWdlSWQgPT0gbnVsbCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgQXJndW1lbnROdWxsRXhjZXB0aW9uKG5hbWVvZihydWxlTWVzc2FnZUlkKSk7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIGlmICghc3RyaW5nLklzTnVsbE9yRW1wdHkocnVsZUlkKSAmJiBydWxlTWVzc2FnZUlkLlN0YXJ0c1dpdGgocnVsZUlkICsgIl8iLCBTdHJpbmdDb21wYXJpc29uLk9yZGluYWwpKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHJ1bGVNZXNzYWdlSWQgPSBydWxlTWVzc2FnZUlkLlN1YnN0cmluZyhydWxlSWQuTGVuZ3RoICsgMSk7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIGlmICghc3RyaW5nLklzTnVsbE9yRW1wdHkocHJlZml4KSAmJiBydWxlTWVzc2FnZUlkLlN0YXJ0c1dpdGgocHJlZml4ICsgIl8iLCBTdHJpbmdDb21wYXJpc29uLk9yZGluYWwpKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHJ1bGVNZXNzYWdlSWQgPSBydWxlTWVzc2FnZUlkLlN1YnN0cmluZyhwcmVmaXguTGVuZ3RoICsgMSk7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIHJldHVybiBydWxlTWVzc2FnZUlkOw0KICAgICAgICB9DQogICAgfQ0KfQ0K" + { + "ruleId": "CA2227", + "message": { + "text": "Change 'JsonSchema.Properties' to be read-only by removing the property setter." }, - "hashes": [ + "locations": [ { - "value": "93684A7440017F05201F4E29606EBBA4", - "algorithm": "md5" - }, - { - "value": "5570AE316F9E61559C61CA3875F9A6B688D96851", - "algorithm": "sha-1" - }, - { - "value": "8EA29232B592730E588E478B29E3F10503AEC1171CA58A9BEBA284525A41DA5F", - "algorithm": "sha-256" + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Microsoft.Json.Schema.dll", + "uriBaseId": "$(ProjectDir)", + "index": 1 + } + }, + "logicalLocations": [ + { + "index": 59, + "fullyQualifiedName": "microsoft.json.schema.dll!Microsoft.Json.Schema.JsonSchema.Properties" + } + ] } - ] + ], + "properties": { + "Category": "Microsoft.Usage", + "FixCategory": "Breaking" + } }, - "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/Run.cs": { - "mimeType": "text/x-csharp", - "contents": { - "binary": "Ly8gQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQuICBBbGwgUmlnaHRzIFJlc2VydmVkLg0KLy8gTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlLiBTZWUgTElDRU5TRSBmaWxlIGluIHRoZSBwcm9qZWN0IHJvb3QgZm9yIGZ1bGwgbGljZW5zZSBpbmZvcm1hdGlvbi4NCg0KdXNpbmcgU3lzdGVtOw0KdXNpbmcgU3lzdGVtLkNvZGVEb20uQ29tcGlsZXI7DQp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsNCnVzaW5nIFN5c3RlbS5SdW50aW1lLlNlcmlhbGl6YXRpb247DQp1c2luZyBNaWNyb3NvZnQuQ29kZUFuYWx5c2lzLlNhcmlmLlJlYWRlcnM7DQoNCm5hbWVzcGFjZSBNaWNyb3NvZnQuQ29kZUFuYWx5c2lzLlNhcmlmDQp7DQogICAgLy8vIDxzdW1tYXJ5Pg0KICAgIC8vLyBEZXNjcmliZXMgYSBzaW5nbGUgcnVuIG9mIGFuIGFuYWx5c2lzIHRvb2wsIGFuZCBjb250YWlucyB0aGUgb3V0cHV0IG9mIHRoYXQgcnVuLg0KICAgIC8vLyA8L3N1bW1hcnk+DQogICAgW0RhdGFDb250cmFjdF0NCiAgICBbR2VuZXJhdGVkQ29kZSgiTWljcm9zb2Z0Lkpzb24uU2NoZW1hLlRvRG90TmV0IiwgIjAuNTYuMC4wIildDQogICAgcHVibGljIHBhcnRpYWwgY2xhc3MgUnVuIDogUHJvcGVydHlCYWdIb2xkZXIsIElTYXJpZk5vZGUNCiAgICB7DQogICAgICAgIHB1YmxpYyBzdGF0aWMgSUVxdWFsaXR5Q29tcGFyZXI8UnVuPiBWYWx1ZUNvbXBhcmVyID0+IFJ1bkVxdWFsaXR5Q29tcGFyZXIuSW5zdGFuY2U7DQoNCiAgICAgICAgcHVibGljIGJvb2wgVmFsdWVFcXVhbHMoUnVuIG90aGVyKSA9PiBWYWx1ZUNvbXBhcmVyLkVxdWFscyh0aGlzLCBvdGhlcik7DQogICAgICAgIHB1YmxpYyBpbnQgVmFsdWVHZXRIYXNoQ29kZSgpID0+IFZhbHVlQ29tcGFyZXIuR2V0SGFzaENvZGUodGhpcyk7DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gR2V0cyBhIHZhbHVlIGluZGljYXRpbmcgdGhlIHR5cGUgb2Ygb2JqZWN0IGltcGxlbWVudGluZyA8c2VlIGNyZWY9IklTYXJpZk5vZGUiIC8+Lg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICBwdWJsaWMgU2FyaWZOb2RlS2luZCBTYXJpZk5vZGVLaW5kDQogICAgICAgIHsNCiAgICAgICAgICAgIGdldA0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHJldHVybiBTYXJpZk5vZGVLaW5kLlJ1bjsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIEluZm9ybWF0aW9uIGFib3V0IHRoZSB0b29sIG9yIHRvb2wgcGlwZWxpbmUgdGhhdCBnZW5lcmF0ZWQgdGhlIHJlc3VsdHMgaW4gdGhpcyBydW4uIEEgcnVuIGNhbiBvbmx5IGNvbnRhaW4gcmVzdWx0cyBwcm9kdWNlZCBieSBhIHNpbmdsZSB0b29sIG9yIHRvb2wgcGlwZWxpbmUuIEEgcnVuIGNhbiBhZ2dyZWdhdGUgcmVzdWx0cyBmcm9tIG11bHRpcGxlIGxvZyBmaWxlcywgYXMgbG9uZyBhcyBjb250ZXh0IGFyb3VuZCB0aGUgdG9vbCBydW4gKHRvb2wgY29tbWFuZC1saW5lIGFyZ3VtZW50cyBhbmQgdGhlIGxpa2UpIGlzIGlkZW50aWNhbCBmb3IgYWxsIGFnZ3JlZ2F0ZWQgZmlsZXMuDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIFtEYXRhTWVtYmVyKE5hbWUgPSAidG9vbCIsIElzUmVxdWlyZWQgPSB0cnVlKV0NCiAgICAgICAgcHVibGljIFRvb2wgVG9vbCB7IGdldDsgc2V0OyB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gRGVzY3JpYmVzIHRoZSBpbnZvY2F0aW9uIG9mIHRoZSBhbmFseXNpcyB0b29sLg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICBbRGF0YU1lbWJlcihOYW1lID0gImludm9jYXRpb25zIiwgSXNSZXF1aXJlZCA9IGZhbHNlLCBFbWl0RGVmYXVsdFZhbHVlID0gZmFsc2UpXQ0KICAgICAgICBwdWJsaWMgSUxpc3Q8SW52b2NhdGlvbj4gSW52b2NhdGlvbnMgeyBnZXQ7IHNldDsgfQ0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIEEgY29udmVyc2lvbiBvYmplY3QgdGhhdCBkZXNjcmliZXMgaG93IGEgY29udmVydGVyIHRyYW5zZm9ybWVkIGFuIGFuYWx5c2lzIHRvb2wncyBuYXRpdmUgb3V0cHV0IGZvcm1hdCBpbnRvIHRoZSBTQVJJRiBmb3JtYXQuDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIFtEYXRhTWVtYmVyKE5hbWUgPSAiY29udmVyc2lvbiIsIElzUmVxdWlyZWQgPSBmYWxzZSwgRW1pdERlZmF1bHRWYWx1ZSA9IGZhbHNlKV0NCiAgICAgICAgcHVibGljIENvbnZlcnNpb24gQ29udmVyc2lvbiB7IGdldDsgc2V0OyB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gU3BlY2lmaWVzIHRoZSByZXZpc2lvbiBpbiB2ZXJzaW9uIGNvbnRyb2wgb2YgdGhlIGZpbGVzIHRoYXQgd2VyZSBzY2FubmVkLg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICBbRGF0YU1lbWJlcihOYW1lID0gInZlcnNpb25Db250cm9sUHJvdmVuYW5jZSIsIElzUmVxdWlyZWQgPSBmYWxzZSwgRW1pdERlZmF1bHRWYWx1ZSA9IGZhbHNlKV0NCiAgICAgICAgcHVibGljIElMaXN0PFZlcnNpb25Db250cm9sRGV0YWlscz4gVmVyc2lvbkNvbnRyb2xQcm92ZW5hbmNlIHsgZ2V0OyBzZXQ7IH0NCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBUaGUgYWJzb2x1dGUgVVJJIHNwZWNpZmllZCBieSBlYWNoIHVyaUJhc2VJZCBzeW1ib2wgb24gdGhlIG1hY2hpbmUgd2hlcmUgdGhlIHRvb2wgb3JpZ2luYWxseSByYW4uDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIFtEYXRhTWVtYmVyKE5hbWUgPSAib3JpZ2luYWxVcmlCYXNlSWRzIiwgSXNSZXF1aXJlZCA9IGZhbHNlLCBFbWl0RGVmYXVsdFZhbHVlID0gZmFsc2UpXQ0KICAgICAgICBwdWJsaWMgSURpY3Rpb25hcnk8c3RyaW5nLCBVcmk+IE9yaWdpbmFsVXJpQmFzZUlkcyB7IGdldDsgc2V0OyB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gQSBkaWN0aW9uYXJ5IGVhY2ggb2Ygd2hvc2Uga2V5cyBpcyBhIFVSSSBhbmQgZWFjaCBvZiB3aG9zZSB2YWx1ZXMgaXMgYSBmaWxlIG9iamVjdC4NCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgW0RhdGFNZW1iZXIoTmFtZSA9ICJmaWxlcyIsIElzUmVxdWlyZWQgPSBmYWxzZSwgRW1pdERlZmF1bHRWYWx1ZSA9IGZhbHNlKV0NCiAgICAgICAgcHVibGljIElEaWN0aW9uYXJ5PHN0cmluZywgRmlsZURhdGE+IEZpbGVzIHsgZ2V0OyBzZXQ7IH0NCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBBIGRpY3Rpb25hcnksIGVhY2ggb2Ygd2hvc2Uga2V5cyBzcGVjaWZpZXMgYSBsb2dpY2FsIGxvY2F0aW9uIHN1Y2ggYXMgYSBuYW1lc3BhY2UsIHR5cGUgb3IgZnVuY3Rpb24uDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIFtEYXRhTWVtYmVyKE5hbWUgPSAibG9naWNhbExvY2F0aW9ucyIsIElzUmVxdWlyZWQgPSBmYWxzZSwgRW1pdERlZmF1bHRWYWx1ZSA9IGZhbHNlKV0NCiAgICAgICAgcHVibGljIElEaWN0aW9uYXJ5PHN0cmluZywgTG9naWNhbExvY2F0aW9uPiBMb2dpY2FsTG9jYXRpb25zIHsgZ2V0OyBzZXQ7IH0NCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBBbiBhcnJheSBvZiBvbmUgb3IgbW9yZSB1bmlxdWUgJ2dyYXBoJyBvYmplY3RzLg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICBbRGF0YU1lbWJlcihOYW1lID0gImdyYXBocyIsIElzUmVxdWlyZWQgPSBmYWxzZSwgRW1pdERlZmF1bHRWYWx1ZSA9IGZhbHNlKV0NCiAgICAgICAgcHVibGljIElMaXN0PEdyYXBoPiBHcmFwaHMgeyBnZXQ7IHNldDsgfQ0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIFRoZSBzZXQgb2YgcmVzdWx0cyBjb250YWluZWQgaW4gYW4gU0FSSUYgbG9nLiBUaGUgcmVzdWx0cyBhcnJheSBjYW4gYmUgb21pdHRlZCB3aGVuIGEgcnVuIGlzIHNvbGVseSBleHBvcnRpbmcgcnVsZXMgbWV0YWRhdGEuIEl0IG11c3QgYmUgcHJlc2VudCAoYnV0IG1heSBiZSBlbXB0eSkgaW4gdGhlIGV2ZW50IHRoYXQgYSBsb2cgZmlsZSByZXByZXNlbnRzIGFuIGFjdHVhbCBzY2FuLg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICBbRGF0YU1lbWJlcihOYW1lID0gInJlc3VsdHMiLCBJc1JlcXVpcmVkID0gZmFsc2UsIEVtaXREZWZhdWx0VmFsdWUgPSBmYWxzZSldDQogICAgICAgIHB1YmxpYyBJTGlzdDxSZXN1bHQ+IFJlc3VsdHMgeyBnZXQ7IHNldDsgfQ0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIEl0ZW1zIHRoYXQgY2FuIGJlIGxvY2FsaXplZCwgc3VjaCBhcyBtZXNzYWdlIHN0cmluZ3MgYW5kIHJ1bGUgbWV0YWRhdGEuDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIFtEYXRhTWVtYmVyKE5hbWUgPSAicmVzb3VyY2VzIiwgSXNSZXF1aXJlZCA9IGZhbHNlLCBFbWl0RGVmYXVsdFZhbHVlID0gZmFsc2UpXQ0KICAgICAgICBwdWJsaWMgUmVzb3VyY2VzIFJlc291cmNlcyB7IGdldDsgc2V0OyB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gQSBzdGFibGUsIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcnVuLCBpbiB0aGUgZm9ybSBvZiBhIEdVSUQuDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIFtEYXRhTWVtYmVyKE5hbWUgPSAiaW5zdGFuY2VHdWlkIiwgSXNSZXF1aXJlZCA9IGZhbHNlLCBFbWl0RGVmYXVsdFZhbHVlID0gZmFsc2UpXQ0KICAgICAgICBwdWJsaWMgc3RyaW5nIEluc3RhbmNlR3VpZCB7IGdldDsgc2V0OyB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gQSBsb2dpY2FsIGlkZW50aWZpZXIgZm9yIGEgcnVuLCBmb3IgZXhhbXBsZSwgJ25pZ2h0bHkgQ2xhbmcgYW5hbHl6ZXIgcnVuJy4gTXVsdGlwbGUgcnVucyBvZiB0aGUgc2FtZSB0eXBlIGNhbiBoYXZlIHRoZSBzYW1lIHN0YWJsZUlkLg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICBbRGF0YU1lbWJlcihOYW1lID0gImxvZ2ljYWxJZCIsIElzUmVxdWlyZWQgPSBmYWxzZSwgRW1pdERlZmF1bHRWYWx1ZSA9IGZhbHNlKV0NCiAgICAgICAgcHVibGljIHN0cmluZyBMb2dpY2FsSWQgeyBnZXQ7IHNldDsgfQ0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIEEgZGVzY3JpcHRpb24gb2YgdGhlIHJ1bi4NCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgW0RhdGFNZW1iZXIoTmFtZSA9ICJkZXNjcmlwdGlvbiIsIElzUmVxdWlyZWQgPSBmYWxzZSwgRW1pdERlZmF1bHRWYWx1ZSA9IGZhbHNlKV0NCiAgICAgICAgcHVibGljIE1lc3NhZ2UgRGVzY3JpcHRpb24geyBnZXQ7IHNldDsgfQ0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIEEgZ2xvYmFsIGlkZW50aWZpZXIgdGhhdCBhbGxvd3MgdGhlIHJ1biB0byBiZSBjb3JyZWxhdGVkIHdpdGggb3RoZXIgYXJ0aWZhY3RzIHByb2R1Y2VkIGJ5IGEgbGFyZ2VyIGF1dG9tYXRpb24gcHJvY2Vzcy4NCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgW0RhdGFNZW1iZXIoTmFtZSA9ICJhdXRvbWF0aW9uTG9naWNhbElkIiwgSXNSZXF1aXJlZCA9IGZhbHNlLCBFbWl0RGVmYXVsdFZhbHVlID0gZmFsc2UpXQ0KICAgICAgICBwdWJsaWMgc3RyaW5nIEF1dG9tYXRpb25Mb2dpY2FsSWQgeyBnZXQ7IHNldDsgfQ0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIFRoZSAnaW5zdGFuY2VHdWlkJyBwcm9wZXJ0eSBvZiBhIHByZXZpb3VzIFNBUklGICdydW4nIHRoYXQgY29tcHJpc2VzIHRoZSBiYXNlbGluZSB0aGF0IHdhcyB1c2VkIHRvIGNvbXB1dGUgcmVzdWx0ICdiYXNlbGluZVN0YXRlJyBwcm9wZXJ0aWVzIGZvciB0aGUgcnVuLg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICBbRGF0YU1lbWJlcihOYW1lID0gImJhc2VsaW5lSW5zdGFuY2VHdWlkIiwgSXNSZXF1aXJlZCA9IGZhbHNlLCBFbWl0RGVmYXVsdFZhbHVlID0gZmFsc2UpXQ0KICAgICAgICBwdWJsaWMgc3RyaW5nIEJhc2VsaW5lSW5zdGFuY2VHdWlkIHsgZ2V0OyBzZXQ7IH0NCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBUaGUgaGFyZHdhcmUgYXJjaGl0ZWN0dXJlIGZvciB3aGljaCB0aGUgcnVuIHdhcyB0YXJnZXRlZC4NCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgW0RhdGFNZW1iZXIoTmFtZSA9ICJhcmNoaXRlY3R1cmUiLCBJc1JlcXVpcmVkID0gZmFsc2UsIEVtaXREZWZhdWx0VmFsdWUgPSBmYWxzZSldDQogICAgICAgIHB1YmxpYyBzdHJpbmcgQXJjaGl0ZWN0dXJlIHsgZ2V0OyBzZXQ7IH0NCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBUaGUgTUlNRSB0eXBlIG9mIGFsbCByaWNoIHRleHQgbWVzc2FnZSBwcm9wZXJ0aWVzIGluIHRoZSBydW4uIERlZmF1bHQ6ICJ0ZXh0L21hcmtkb3duO3ZhcmlhbnQ9R0ZNIg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICBbRGF0YU1lbWJlcihOYW1lID0gInJpY2hNZXNzYWdlTWltZVR5cGUiLCBJc1JlcXVpcmVkID0gZmFsc2UsIEVtaXREZWZhdWx0VmFsdWUgPSBmYWxzZSldDQogICAgICAgIHB1YmxpYyBzdHJpbmcgUmljaE1lc3NhZ2VNaW1lVHlwZSB7IGdldDsgc2V0OyB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gVGhlIHN0cmluZyB1c2VkIHRvIHJlcGxhY2Ugc2Vuc2l0aXZlIGluZm9ybWF0aW9uIGluIGEgcmVkYWN0aW9uLWF3YXJlIHByb3BlcnR5Lg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICBbRGF0YU1lbWJlcihOYW1lID0gInJlZGFjdGlvblRva2VuIiwgSXNSZXF1aXJlZCA9IGZhbHNlLCBFbWl0RGVmYXVsdFZhbHVlID0gZmFsc2UpXQ0KICAgICAgICBwdWJsaWMgc3RyaW5nIFJlZGFjdGlvblRva2VuIHsgZ2V0OyBzZXQ7IH0NCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBTcGVjaWZpZXMgdGhlIGRlZmF1bHQgZW5jb2RpbmcgZm9yIGFueSBmaWxlIG9iamVjdCB0aGF0IHJlZmVycyB0byBhIHRleHQgZmlsZS4NCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgW0RhdGFNZW1iZXIoTmFtZSA9ICJkZWZhdWx0RmlsZUVuY29kaW5nIiwgSXNSZXF1aXJlZCA9IGZhbHNlLCBFbWl0RGVmYXVsdFZhbHVlID0gZmFsc2UpXQ0KICAgICAgICBwdWJsaWMgc3RyaW5nIERlZmF1bHRGaWxlRW5jb2RpbmcgeyBnZXQ7IHNldDsgfQ0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIFNwZWNpZmllcyB0aGUgdW5pdCBpbiB3aGljaCB0aGUgdG9vbCBtZWFzdXJlcyBjb2x1bW5zLg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICBbRGF0YU1lbWJlcihOYW1lID0gImNvbHVtbktpbmQiLCBJc1JlcXVpcmVkID0gZmFsc2UsIEVtaXREZWZhdWx0VmFsdWUgPSBmYWxzZSldDQogICAgICAgIHB1YmxpYyBDb2x1bW5LaW5kIENvbHVtbktpbmQgeyBnZXQ7IHNldDsgfQ0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIEtleS92YWx1ZSBwYWlycyB0aGF0IHByb3ZpZGUgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiBhYm91dCB0aGUgcnVuLg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICBbRGF0YU1lbWJlcihOYW1lID0gInByb3BlcnRpZXMiLCBJc1JlcXVpcmVkID0gZmFsc2UsIEVtaXREZWZhdWx0VmFsdWUgPSBmYWxzZSldDQogICAgICAgIGludGVybmFsIG92ZXJyaWRlIElEaWN0aW9uYXJ5PHN0cmluZywgU2VyaWFsaXplZFByb3BlcnR5SW5mbz4gUHJvcGVydGllcyB7IGdldDsgc2V0OyB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gSW5pdGlhbGl6ZXMgYSBuZXcgaW5zdGFuY2Ugb2YgdGhlIDxzZWUgY3JlZj0iUnVuIiAvPiBjbGFzcy4NCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgcHVibGljIFJ1bigpDQogICAgICAgIHsNCiAgICAgICAgfQ0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIEluaXRpYWxpemVzIGEgbmV3IGluc3RhbmNlIG9mIHRoZSA8c2VlIGNyZWY9IlJ1biIgLz4gY2xhc3MgZnJvbSB0aGUgc3VwcGxpZWQgdmFsdWVzLg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICAvLy8gPHBhcmFtIG5hbWU9InRvb2wiPg0KICAgICAgICAvLy8gQW4gaW5pdGlhbGl6YXRpb24gdmFsdWUgZm9yIHRoZSA8c2VlIGNyZWY9IlA6IFRvb2wiIC8+IHByb3BlcnR5Lg0KICAgICAgICAvLy8gPC9wYXJhbT4NCiAgICAgICAgLy8vIDxwYXJhbSBuYW1lPSJpbnZvY2F0aW9ucyI+DQogICAgICAgIC8vLyBBbiBpbml0aWFsaXphdGlvbiB2YWx1ZSBmb3IgdGhlIDxzZWUgY3JlZj0iUDogSW52b2NhdGlvbnMiIC8+IHByb3BlcnR5Lg0KICAgICAgICAvLy8gPC9wYXJhbT4NCiAgICAgICAgLy8vIDxwYXJhbSBuYW1lPSJjb252ZXJzaW9uIj4NCiAgICAgICAgLy8vIEFuIGluaXRpYWxpemF0aW9uIHZhbHVlIGZvciB0aGUgPHNlZSBjcmVmPSJQOiBDb252ZXJzaW9uIiAvPiBwcm9wZXJ0eS4NCiAgICAgICAgLy8vIDwvcGFyYW0+DQogICAgICAgIC8vLyA8cGFyYW0gbmFtZT0idmVyc2lvbkNvbnRyb2xQcm92ZW5hbmNlIj4NCiAgICAgICAgLy8vIEFuIGluaXRpYWxpemF0aW9uIHZhbHVlIGZvciB0aGUgPHNlZSBjcmVmPSJQOiBWZXJzaW9uQ29udHJvbFByb3ZlbmFuY2UiIC8+IHByb3BlcnR5Lg0KICAgICAgICAvLy8gPC9wYXJhbT4NCiAgICAgICAgLy8vIDxwYXJhbSBuYW1lPSJvcmlnaW5hbFVyaUJhc2VJZHMiPg0KICAgICAgICAvLy8gQW4gaW5pdGlhbGl6YXRpb24gdmFsdWUgZm9yIHRoZSA8c2VlIGNyZWY9IlA6IE9yaWdpbmFsVXJpQmFzZUlkcyIgLz4gcHJvcGVydHkuDQogICAgICAgIC8vLyA8L3BhcmFtPg0KICAgICAgICAvLy8gPHBhcmFtIG5hbWU9ImZpbGVzIj4NCiAgICAgICAgLy8vIEFuIGluaXRpYWxpemF0aW9uIHZhbHVlIGZvciB0aGUgPHNlZSBjcmVmPSJQOiBGaWxlcyIgLz4gcHJvcGVydHkuDQogICAgICAgIC8vLyA8L3BhcmFtPg0KICAgICAgICAvLy8gPHBhcmFtIG5hbWU9ImxvZ2ljYWxMb2NhdGlvbnMiPg0KICAgICAgICAvLy8gQW4gaW5pdGlhbGl6YXRpb24gdmFsdWUgZm9yIHRoZSA8c2VlIGNyZWY9IlA6IExvZ2ljYWxMb2NhdGlvbnMiIC8+IHByb3BlcnR5Lg0KICAgICAgICAvLy8gPC9wYXJhbT4NCiAgICAgICAgLy8vIDxwYXJhbSBuYW1lPSJncmFwaHMiPg0KICAgICAgICAvLy8gQW4gaW5pdGlhbGl6YXRpb24gdmFsdWUgZm9yIHRoZSA8c2VlIGNyZWY9IlA6IEdyYXBocyIgLz4gcHJvcGVydHkuDQogICAgICAgIC8vLyA8L3BhcmFtPg0KICAgICAgICAvLy8gPHBhcmFtIG5hbWU9InJlc3VsdHMiPg0KICAgICAgICAvLy8gQW4gaW5pdGlhbGl6YXRpb24gdmFsdWUgZm9yIHRoZSA8c2VlIGNyZWY9IlA6IFJlc3VsdHMiIC8+IHByb3BlcnR5Lg0KICAgICAgICAvLy8gPC9wYXJhbT4NCiAgICAgICAgLy8vIDxwYXJhbSBuYW1lPSJyZXNvdXJjZXMiPg0KICAgICAgICAvLy8gQW4gaW5pdGlhbGl6YXRpb24gdmFsdWUgZm9yIHRoZSA8c2VlIGNyZWY9IlA6IFJlc291cmNlcyIgLz4gcHJvcGVydHkuDQogICAgICAgIC8vLyA8L3BhcmFtPg0KICAgICAgICAvLy8gPHBhcmFtIG5hbWU9Imluc3RhbmNlR3VpZCI+DQogICAgICAgIC8vLyBBbiBpbml0aWFsaXphdGlvbiB2YWx1ZSBmb3IgdGhlIDxzZWUgY3JlZj0iUDogSW5zdGFuY2VHdWlkIiAvPiBwcm9wZXJ0eS4NCiAgICAgICAgLy8vIDwvcGFyYW0+DQogICAgICAgIC8vLyA8cGFyYW0gbmFtZT0ibG9naWNhbElkIj4NCiAgICAgICAgLy8vIEFuIGluaXRpYWxpemF0aW9uIHZhbHVlIGZvciB0aGUgPHNlZSBjcmVmPSJQOiBMb2dpY2FsSWQiIC8+IHByb3BlcnR5Lg0KICAgICAgICAvLy8gPC9wYXJhbT4NCiAgICAgICAgLy8vIDxwYXJhbSBuYW1lPSJkZXNjcmlwdGlvbiI+DQogICAgICAgIC8vLyBBbiBpbml0aWFsaXphdGlvbiB2YWx1ZSBmb3IgdGhlIDxzZWUgY3JlZj0iUDogRGVzY3JpcHRpb24iIC8+IHByb3BlcnR5Lg0KICAgICAgICAvLy8gPC9wYXJhbT4NCiAgICAgICAgLy8vIDxwYXJhbSBuYW1lPSJhdXRvbWF0aW9uTG9naWNhbElkIj4NCiAgICAgICAgLy8vIEFuIGluaXRpYWxpemF0aW9uIHZhbHVlIGZvciB0aGUgPHNlZSBjcmVmPSJQOiBBdXRvbWF0aW9uTG9naWNhbElkIiAvPiBwcm9wZXJ0eS4NCiAgICAgICAgLy8vIDwvcGFyYW0+DQogICAgICAgIC8vLyA8cGFyYW0gbmFtZT0iYmFzZWxpbmVJbnN0YW5jZUd1aWQiPg0KICAgICAgICAvLy8gQW4gaW5pdGlhbGl6YXRpb24gdmFsdWUgZm9yIHRoZSA8c2VlIGNyZWY9IlA6IEJhc2VsaW5lSW5zdGFuY2VHdWlkIiAvPiBwcm9wZXJ0eS4NCiAgICAgICAgLy8vIDwvcGFyYW0+DQogICAgICAgIC8vLyA8cGFyYW0gbmFtZT0iYXJjaGl0ZWN0dXJlIj4NCiAgICAgICAgLy8vIEFuIGluaXRpYWxpemF0aW9uIHZhbHVlIGZvciB0aGUgPHNlZSBjcmVmPSJQOiBBcmNoaXRlY3R1cmUiIC8+IHByb3BlcnR5Lg0KICAgICAgICAvLy8gPC9wYXJhbT4NCiAgICAgICAgLy8vIDxwYXJhbSBuYW1lPSJyaWNoTWVzc2FnZU1pbWVUeXBlIj4NCiAgICAgICAgLy8vIEFuIGluaXRpYWxpemF0aW9uIHZhbHVlIGZvciB0aGUgPHNlZSBjcmVmPSJQOiBSaWNoTWVzc2FnZU1pbWVUeXBlIiAvPiBwcm9wZXJ0eS4NCiAgICAgICAgLy8vIDwvcGFyYW0+DQogICAgICAgIC8vLyA8cGFyYW0gbmFtZT0icmVkYWN0aW9uVG9rZW4iPg0KICAgICAgICAvLy8gQW4gaW5pdGlhbGl6YXRpb24gdmFsdWUgZm9yIHRoZSA8c2VlIGNyZWY9IlA6IFJlZGFjdGlvblRva2VuIiAvPiBwcm9wZXJ0eS4NCiAgICAgICAgLy8vIDwvcGFyYW0+DQogICAgICAgIC8vLyA8cGFyYW0gbmFtZT0iZGVmYXVsdEZpbGVFbmNvZGluZyI+DQogICAgICAgIC8vLyBBbiBpbml0aWFsaXphdGlvbiB2YWx1ZSBmb3IgdGhlIDxzZWUgY3JlZj0iUDogRGVmYXVsdEZpbGVFbmNvZGluZyIgLz4gcHJvcGVydHkuDQogICAgICAgIC8vLyA8L3BhcmFtPg0KICAgICAgICAvLy8gPHBhcmFtIG5hbWU9ImNvbHVtbktpbmQiPg0KICAgICAgICAvLy8gQW4gaW5pdGlhbGl6YXRpb24gdmFsdWUgZm9yIHRoZSA8c2VlIGNyZWY9IlA6IENvbHVtbktpbmQiIC8+IHByb3BlcnR5Lg0KICAgICAgICAvLy8gPC9wYXJhbT4NCiAgICAgICAgLy8vIDxwYXJhbSBuYW1lPSJwcm9wZXJ0aWVzIj4NCiAgICAgICAgLy8vIEFuIGluaXRpYWxpemF0aW9uIHZhbHVlIGZvciB0aGUgPHNlZSBjcmVmPSJQOiBQcm9wZXJ0aWVzIiAvPiBwcm9wZXJ0eS4NCiAgICAgICAgLy8vIDwvcGFyYW0+DQogICAgICAgIHB1YmxpYyBSdW4oVG9vbCB0b29sLCBJRW51bWVyYWJsZTxJbnZvY2F0aW9uPiBpbnZvY2F0aW9ucywgQ29udmVyc2lvbiBjb252ZXJzaW9uLCBJRW51bWVyYWJsZTxWZXJzaW9uQ29udHJvbERldGFpbHM+IHZlcnNpb25Db250cm9sUHJvdmVuYW5jZSwgSURpY3Rpb25hcnk8c3RyaW5nLCBVcmk+IG9yaWdpbmFsVXJpQmFzZUlkcywgSURpY3Rpb25hcnk8c3RyaW5nLCBGaWxlRGF0YT4gZmlsZXMsIElEaWN0aW9uYXJ5PHN0cmluZywgTG9naWNhbExvY2F0aW9uPiBsb2dpY2FsTG9jYXRpb25zLCBJRW51bWVyYWJsZTxHcmFwaD4gZ3JhcGhzLCBJRW51bWVyYWJsZTxSZXN1bHQ+IHJlc3VsdHMsIFJlc291cmNlcyByZXNvdXJjZXMsIHN0cmluZyBpbnN0YW5jZUd1aWQsIHN0cmluZyBsb2dpY2FsSWQsIE1lc3NhZ2UgZGVzY3JpcHRpb24sIHN0cmluZyBhdXRvbWF0aW9uTG9naWNhbElkLCBzdHJpbmcgYmFzZWxpbmVJbnN0YW5jZUd1aWQsIHN0cmluZyBhcmNoaXRlY3R1cmUsIHN0cmluZyByaWNoTWVzc2FnZU1pbWVUeXBlLCBzdHJpbmcgcmVkYWN0aW9uVG9rZW4sIHN0cmluZyBkZWZhdWx0RmlsZUVuY29kaW5nLCBDb2x1bW5LaW5kIGNvbHVtbktpbmQsIElEaWN0aW9uYXJ5PHN0cmluZywgU2VyaWFsaXplZFByb3BlcnR5SW5mbz4gcHJvcGVydGllcykNCiAgICAgICAgew0KICAgICAgICAgICAgSW5pdCh0b29sLCBpbnZvY2F0aW9ucywgY29udmVyc2lvbiwgdmVyc2lvbkNvbnRyb2xQcm92ZW5hbmNlLCBvcmlnaW5hbFVyaUJhc2VJZHMsIGZpbGVzLCBsb2dpY2FsTG9jYXRpb25zLCBncmFwaHMsIHJlc3VsdHMsIHJlc291cmNlcywgaW5zdGFuY2VHdWlkLCBsb2dpY2FsSWQsIGRlc2NyaXB0aW9uLCBhdXRvbWF0aW9uTG9naWNhbElkLCBiYXNlbGluZUluc3RhbmNlR3VpZCwgYXJjaGl0ZWN0dXJlLCByaWNoTWVzc2FnZU1pbWVUeXBlLCByZWRhY3Rpb25Ub2tlbiwgZGVmYXVsdEZpbGVFbmNvZGluZywgY29sdW1uS2luZCwgcHJvcGVydGllcyk7DQogICAgICAgIH0NCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBJbml0aWFsaXplcyBhIG5ldyBpbnN0YW5jZSBvZiB0aGUgPHNlZSBjcmVmPSJSdW4iIC8+IGNsYXNzIGZyb20gdGhlIHNwZWNpZmllZCBpbnN0YW5jZS4NCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgLy8vIDxwYXJhbSBuYW1lPSJvdGhlciI+DQogICAgICAgIC8vLyBUaGUgaW5zdGFuY2UgZnJvbSB3aGljaCB0aGUgbmV3IGluc3RhbmNlIGlzIHRvIGJlIGluaXRpYWxpemVkLg0KICAgICAgICAvLy8gPC9wYXJhbT4NCiAgICAgICAgLy8vIDxleGNlcHRpb24gY3JlZj0iQXJndW1lbnROdWxsRXhjZXB0aW9uIj4NCiAgICAgICAgLy8vIFRocm93biBpZiA8cGFyYW1yZWYgbmFtZT0ib3RoZXIiIC8+IGlzIG51bGwuDQogICAgICAgIC8vLyA8L2V4Y2VwdGlvbj4NCiAgICAgICAgcHVibGljIFJ1bihSdW4gb3RoZXIpDQogICAgICAgIHsNCiAgICAgICAgICAgIGlmIChvdGhlciA9PSBudWxsKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHRocm93IG5ldyBBcmd1bWVudE51bGxFeGNlcHRpb24obmFtZW9mKG90aGVyKSk7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIEluaXQob3RoZXIuVG9vbCwgb3RoZXIuSW52b2NhdGlvbnMsIG90aGVyLkNvbnZlcnNpb24sIG90aGVyLlZlcnNpb25Db250cm9sUHJvdmVuYW5jZSwgb3RoZXIuT3JpZ2luYWxVcmlCYXNlSWRzLCBvdGhlci5GaWxlcywgb3RoZXIuTG9naWNhbExvY2F0aW9ucywgb3RoZXIuR3JhcGhzLCBvdGhlci5SZXN1bHRzLCBvdGhlci5SZXNvdXJjZXMsIG90aGVyLkluc3RhbmNlR3VpZCwgb3RoZXIuTG9naWNhbElkLCBvdGhlci5EZXNjcmlwdGlvbiwgb3RoZXIuQXV0b21hdGlvbkxvZ2ljYWxJZCwgb3RoZXIuQmFzZWxpbmVJbnN0YW5jZUd1aWQsIG90aGVyLkFyY2hpdGVjdHVyZSwgb3RoZXIuUmljaE1lc3NhZ2VNaW1lVHlwZSwgb3RoZXIuUmVkYWN0aW9uVG9rZW4sIG90aGVyLkRlZmF1bHRGaWxlRW5jb2RpbmcsIG90aGVyLkNvbHVtbktpbmQsIG90aGVyLlByb3BlcnRpZXMpOw0KICAgICAgICB9DQoNCiAgICAgICAgSVNhcmlmTm9kZSBJU2FyaWZOb2RlLkRlZXBDbG9uZSgpDQogICAgICAgIHsNCiAgICAgICAgICAgIHJldHVybiBEZWVwQ2xvbmVDb3JlKCk7DQogICAgICAgIH0NCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBDcmVhdGVzIGEgZGVlcCBjb3B5IG9mIHRoaXMgaW5zdGFuY2UuDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIHB1YmxpYyBSdW4gRGVlcENsb25lKCkNCiAgICAgICAgew0KICAgICAgICAgICAgcmV0dXJuIChSdW4pRGVlcENsb25lQ29yZSgpOw0KICAgICAgICB9DQoNCiAgICAgICAgcHJpdmF0ZSBJU2FyaWZOb2RlIERlZXBDbG9uZUNvcmUoKQ0KICAgICAgICB7DQogICAgICAgICAgICByZXR1cm4gbmV3IFJ1bih0aGlzKTsNCiAgICAgICAgfQ0KDQogICAgICAgIHByaXZhdGUgdm9pZCBJbml0KFRvb2wgdG9vbCwgSUVudW1lcmFibGU8SW52b2NhdGlvbj4gaW52b2NhdGlvbnMsIENvbnZlcnNpb24gY29udmVyc2lvbiwgSUVudW1lcmFibGU8VmVyc2lvbkNvbnRyb2xEZXRhaWxzPiB2ZXJzaW9uQ29udHJvbFByb3ZlbmFuY2UsIElEaWN0aW9uYXJ5PHN0cmluZywgVXJpPiBvcmlnaW5hbFVyaUJhc2VJZHMsIElEaWN0aW9uYXJ5PHN0cmluZywgRmlsZURhdGE+IGZpbGVzLCBJRGljdGlvbmFyeTxzdHJpbmcsIExvZ2ljYWxMb2NhdGlvbj4gbG9naWNhbExvY2F0aW9ucywgSUVudW1lcmFibGU8R3JhcGg+IGdyYXBocywgSUVudW1lcmFibGU8UmVzdWx0PiByZXN1bHRzLCBSZXNvdXJjZXMgcmVzb3VyY2VzLCBzdHJpbmcgaW5zdGFuY2VHdWlkLCBzdHJpbmcgbG9naWNhbElkLCBNZXNzYWdlIGRlc2NyaXB0aW9uLCBzdHJpbmcgYXV0b21hdGlvbkxvZ2ljYWxJZCwgc3RyaW5nIGJhc2VsaW5lSW5zdGFuY2VHdWlkLCBzdHJpbmcgYXJjaGl0ZWN0dXJlLCBzdHJpbmcgcmljaE1lc3NhZ2VNaW1lVHlwZSwgc3RyaW5nIHJlZGFjdGlvblRva2VuLCBzdHJpbmcgZGVmYXVsdEZpbGVFbmNvZGluZywgQ29sdW1uS2luZCBjb2x1bW5LaW5kLCBJRGljdGlvbmFyeTxzdHJpbmcsIFNlcmlhbGl6ZWRQcm9wZXJ0eUluZm8+IHByb3BlcnRpZXMpDQogICAgICAgIHsNCiAgICAgICAgICAgIGlmICh0b29sICE9IG51bGwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgVG9vbCA9IG5ldyBUb29sKHRvb2wpOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBpZiAoaW52b2NhdGlvbnMgIT0gbnVsbCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICB2YXIgZGVzdGluYXRpb25fMCA9IG5ldyBMaXN0PEludm9jYXRpb24+KCk7DQogICAgICAgICAgICAgICAgZm9yZWFjaCAodmFyIHZhbHVlXzAgaW4gaW52b2NhdGlvbnMpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWVfMCA9PSBudWxsKQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICBkZXN0aW5hdGlvbl8wLkFkZChudWxsKTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBlbHNlDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGRlc3RpbmF0aW9uXzAuQWRkKG5ldyBJbnZvY2F0aW9uKHZhbHVlXzApKTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgIEludm9jYXRpb25zID0gZGVzdGluYXRpb25fMDsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgaWYgKGNvbnZlcnNpb24gIT0gbnVsbCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBDb252ZXJzaW9uID0gbmV3IENvbnZlcnNpb24oY29udmVyc2lvbik7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIGlmICh2ZXJzaW9uQ29udHJvbFByb3ZlbmFuY2UgIT0gbnVsbCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICB2YXIgZGVzdGluYXRpb25fMSA9IG5ldyBMaXN0PFZlcnNpb25Db250cm9sRGV0YWlscz4oKTsNCiAgICAgICAgICAgICAgICBmb3JlYWNoICh2YXIgdmFsdWVfMSBpbiB2ZXJzaW9uQ29udHJvbFByb3ZlbmFuY2UpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWVfMSA9PSBudWxsKQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICBkZXN0aW5hdGlvbl8xLkFkZChudWxsKTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBlbHNlDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGRlc3RpbmF0aW9uXzEuQWRkKG5ldyBWZXJzaW9uQ29udHJvbERldGFpbHModmFsdWVfMSkpOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgVmVyc2lvbkNvbnRyb2xQcm92ZW5hbmNlID0gZGVzdGluYXRpb25fMTsNCiAgICAgICAgICAgIH07DQogICAgICAgICAgICBpZiAoZmlsZXMgIT0gbnVsbCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBGaWxlcyA9IG5ldyBEaWN0aW9uYXJ5PHN0cmluZywgRmlsZURhdGE+KCk7DQogICAgICAgICAgICAgICAgZm9yZWFjaCAodmFyIHZhbHVlXzIgaW4gZmlsZXMpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBGaWxlcy5BZGQodmFsdWVfMi5LZXksIG5ldyBGaWxlRGF0YSh2YWx1ZV8yLlZhbHVlKSk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBpZiAobG9naWNhbExvY2F0aW9ucyAhPSBudWxsKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIExvZ2ljYWxMb2NhdGlvbnMgPSBuZXcgRGljdGlvbmFyeTxzdHJpbmcsIExvZ2ljYWxMb2NhdGlvbj4oKTsNCiAgICAgICAgICAgICAgICBmb3JlYWNoICh2YXIgdmFsdWVfMyBpbiBsb2dpY2FsTG9jYXRpb25zKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgTG9naWNhbExvY2F0aW9ucy5BZGQodmFsdWVfMy5LZXksIG5ldyBMb2dpY2FsTG9jYXRpb24odmFsdWVfMy5WYWx1ZSkpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgaWYgKGdyYXBocyAhPSBudWxsKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHZhciBkZXN0aW5hdGlvbl8yID0gbmV3IExpc3Q8R3JhcGg+KCk7DQogICAgICAgICAgICAgICAgZm9yZWFjaCAodmFyIHZhbHVlXzQgaW4gZ3JhcGhzKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlXzQgPT0gbnVsbCkNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgZGVzdGluYXRpb25fMi5BZGQobnVsbCk7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgZWxzZQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICBkZXN0aW5hdGlvbl8yLkFkZChuZXcgR3JhcGgodmFsdWVfNCkpOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgR3JhcGhzID0gZGVzdGluYXRpb25fMjsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgaWYgKHJlc3VsdHMgIT0gbnVsbCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICB2YXIgZGVzdGluYXRpb25fMyA9IG5ldyBMaXN0PFJlc3VsdD4oKTsNCiAgICAgICAgICAgICAgICBmb3JlYWNoICh2YXIgdmFsdWVfNSBpbiByZXN1bHRzKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlXzUgPT0gbnVsbCkNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgZGVzdGluYXRpb25fMy5BZGQobnVsbCk7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgZWxzZQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICBkZXN0aW5hdGlvbl8zLkFkZChuZXcgUmVzdWx0KHZhbHVlXzUpKTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgIFJlc3VsdHMgPSBkZXN0aW5hdGlvbl8zOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBpZiAocmVzb3VyY2VzICE9IG51bGwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgUmVzb3VyY2VzID0gbmV3IFJlc291cmNlcyhyZXNvdXJjZXMpOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBJbnN0YW5jZUd1aWQgPSBpbnN0YW5jZUd1aWQ7DQogICAgICAgICAgICBMb2dpY2FsSWQgPSBsb2dpY2FsSWQ7DQogICAgICAgICAgICBpZiAoZGVzY3JpcHRpb24gIT0gbnVsbCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBEZXNjcmlwdGlvbiA9IG5ldyBNZXNzYWdlKGRlc2NyaXB0aW9uKTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgQXV0b21hdGlvbkxvZ2ljYWxJZCA9IGF1dG9tYXRpb25Mb2dpY2FsSWQ7DQogICAgICAgICAgICBCYXNlbGluZUluc3RhbmNlR3VpZCA9IGJhc2VsaW5lSW5zdGFuY2VHdWlkOw0KICAgICAgICAgICAgQXJjaGl0ZWN0dXJlID0gYXJjaGl0ZWN0dXJlOw0KICAgICAgICAgICAgUmljaE1lc3NhZ2VNaW1lVHlwZSA9IHJpY2hNZXNzYWdlTWltZVR5cGU7DQogICAgICAgICAgICBSZWRhY3Rpb25Ub2tlbiA9IHJlZGFjdGlvblRva2VuOw0KICAgICAgICAgICAgRGVmYXVsdEZpbGVFbmNvZGluZyA9IGRlZmF1bHRGaWxlRW5jb2Rpbmc7DQogICAgICAgICAgICBDb2x1bW5LaW5kID0gY29sdW1uS2luZDsNCiAgICAgICAgICAgIGlmIChwcm9wZXJ0aWVzICE9IG51bGwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgUHJvcGVydGllcyA9IG5ldyBEaWN0aW9uYXJ5PHN0cmluZywgU2VyaWFsaXplZFByb3BlcnR5SW5mbz4ocHJvcGVydGllcyk7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCiAgICB9DQp9" + { + "ruleId": "CA2227", + "message": { + "text": "Change 'JsonSchema.Required' to be read-only by removing the property setter." }, - "hashes": [ - { - "value": "F00F5FA48C2DEAE37D498B1238BB07A9", - "algorithm": "md5" - }, - { - "value": "E9116997B69DBFB201A9C4D0A9868B21AEB76554", - "algorithm": "sha-1" - }, + "locations": [ { - "value": "67221D94750490357A78124536512D96FFD610C2F0040F083AF8EC36B37FAF5F", - "algorithm": "sha-256" + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Microsoft.Json.Schema.dll", + "uriBaseId": "$(ProjectDir)", + "index": 1 + } + }, + "logicalLocations": [ + { + "index": 60, + "fullyQualifiedName": "microsoft.json.schema.dll!Microsoft.Json.Schema.JsonSchema.Required" + } + ] } - ] + ], + "properties": { + "Category": "Microsoft.Usage", + "FixCategory": "Breaking" + } }, - "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/RunEqualityComparer.cs": { - "mimeType": "text/x-csharp", - "contents": { - "binary": "Ly8gQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQuICBBbGwgUmlnaHRzIFJlc2VydmVkLg0KLy8gTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlLiBTZWUgTElDRU5TRSBmaWxlIGluIHRoZSBwcm9qZWN0IHJvb3QgZm9yIGZ1bGwgbGljZW5zZSBpbmZvcm1hdGlvbi4NCg0KdXNpbmcgU3lzdGVtOw0KdXNpbmcgU3lzdGVtLkNvZGVEb20uQ29tcGlsZXI7DQp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsNCnVzaW5nIE1pY3Jvc29mdC5Db2RlQW5hbHlzaXMuU2FyaWYuUmVhZGVyczsNCg0KbmFtZXNwYWNlIE1pY3Jvc29mdC5Db2RlQW5hbHlzaXMuU2FyaWYNCnsNCiAgICAvLy8gPHN1bW1hcnk+DQogICAgLy8vIERlZmluZXMgbWV0aG9kcyB0byBzdXBwb3J0IHRoZSBjb21wYXJpc29uIG9mIG9iamVjdHMgb2YgdHlwZSBSdW4gZm9yIGVxdWFsaXR5Lg0KICAgIC8vLyA8L3N1bW1hcnk+DQogICAgW0dlbmVyYXRlZENvZGUoIk1pY3Jvc29mdC5Kc29uLlNjaGVtYS5Ub0RvdE5ldCIsICIwLjU2LjAuMCIpXQ0KICAgIGludGVybmFsIHNlYWxlZCBjbGFzcyBSdW5FcXVhbGl0eUNvbXBhcmVyIDogSUVxdWFsaXR5Q29tcGFyZXI8UnVuPg0KICAgIHsNCiAgICAgICAgaW50ZXJuYWwgc3RhdGljIHJlYWRvbmx5IFJ1bkVxdWFsaXR5Q29tcGFyZXIgSW5zdGFuY2UgPSBuZXcgUnVuRXF1YWxpdHlDb21wYXJlcigpOw0KDQogICAgICAgIHB1YmxpYyBib29sIEVxdWFscyhSdW4gbGVmdCwgUnVuIHJpZ2h0KQ0KICAgICAgICB7DQogICAgICAgICAgICBpZiAoUmVmZXJlbmNlRXF1YWxzKGxlZnQsIHJpZ2h0KSkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgaWYgKFJlZmVyZW5jZUVxdWFscyhsZWZ0LCBudWxsKSB8fCBSZWZlcmVuY2VFcXVhbHMocmlnaHQsIG51bGwpKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgaWYgKCFUb29sLlZhbHVlQ29tcGFyZXIuRXF1YWxzKGxlZnQuVG9vbCwgcmlnaHQuVG9vbCkpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBpZiAoIW9iamVjdC5SZWZlcmVuY2VFcXVhbHMobGVmdC5JbnZvY2F0aW9ucywgcmlnaHQuSW52b2NhdGlvbnMpKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIGlmIChsZWZ0Lkludm9jYXRpb25zID09IG51bGwgfHwgcmlnaHQuSW52b2NhdGlvbnMgPT0gbnVsbCkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICBpZiAobGVmdC5JbnZvY2F0aW9ucy5Db3VudCAhPSByaWdodC5JbnZvY2F0aW9ucy5Db3VudCkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICBmb3IgKGludCBpbmRleF8wID0gMDsgaW5kZXhfMCA8IGxlZnQuSW52b2NhdGlvbnMuQ291bnQ7ICsraW5kZXhfMCkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIGlmICghSW52b2NhdGlvbi5WYWx1ZUNvbXBhcmVyLkVxdWFscyhsZWZ0Lkludm9jYXRpb25zW2luZGV4XzBdLCByaWdodC5JbnZvY2F0aW9uc1tpbmRleF8wXSkpDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgaWYgKCFDb252ZXJzaW9uLlZhbHVlQ29tcGFyZXIuRXF1YWxzKGxlZnQuQ29udmVyc2lvbiwgcmlnaHQuQ29udmVyc2lvbikpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBpZiAoIW9iamVjdC5SZWZlcmVuY2VFcXVhbHMobGVmdC5WZXJzaW9uQ29udHJvbFByb3ZlbmFuY2UsIHJpZ2h0LlZlcnNpb25Db250cm9sUHJvdmVuYW5jZSkpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgaWYgKGxlZnQuVmVyc2lvbkNvbnRyb2xQcm92ZW5hbmNlID09IG51bGwgfHwgcmlnaHQuVmVyc2lvbkNvbnRyb2xQcm92ZW5hbmNlID09IG51bGwpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgaWYgKGxlZnQuVmVyc2lvbkNvbnRyb2xQcm92ZW5hbmNlLkNvdW50ICE9IHJpZ2h0LlZlcnNpb25Db250cm9sUHJvdmVuYW5jZS5Db3VudCkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICBmb3IgKGludCBpbmRleF8xID0gMDsgaW5kZXhfMSA8IGxlZnQuVmVyc2lvbkNvbnRyb2xQcm92ZW5hbmNlLkNvdW50OyArK2luZGV4XzEpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBpZiAoIVZlcnNpb25Db250cm9sRGV0YWlscy5WYWx1ZUNvbXBhcmVyLkVxdWFscyhsZWZ0LlZlcnNpb25Db250cm9sUHJvdmVuYW5jZVtpbmRleF8xXSwgcmlnaHQuVmVyc2lvbkNvbnRyb2xQcm92ZW5hbmNlW2luZGV4XzFdKSkNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBpZiAoIW9iamVjdC5SZWZlcmVuY2VFcXVhbHMobGVmdC5PcmlnaW5hbFVyaUJhc2VJZHMsIHJpZ2h0Lk9yaWdpbmFsVXJpQmFzZUlkcykpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgaWYgKGxlZnQuT3JpZ2luYWxVcmlCYXNlSWRzID09IG51bGwgfHwgcmlnaHQuT3JpZ2luYWxVcmlCYXNlSWRzID09IG51bGwgfHwgbGVmdC5PcmlnaW5hbFVyaUJhc2VJZHMuQ291bnQgIT0gcmlnaHQuT3JpZ2luYWxVcmlCYXNlSWRzLkNvdW50KQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgIGZvcmVhY2ggKHZhciB2YWx1ZV8wIGluIGxlZnQuT3JpZ2luYWxVcmlCYXNlSWRzKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgVXJpIHZhbHVlXzE7DQogICAgICAgICAgICAgICAgICAgIGlmICghcmlnaHQuT3JpZ2luYWxVcmlCYXNlSWRzLlRyeUdldFZhbHVlKHZhbHVlXzAuS2V5LCBvdXQgdmFsdWVfMSkpDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZV8wLlZhbHVlICE9IHZhbHVlXzEpDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgaWYgKCFvYmplY3QuUmVmZXJlbmNlRXF1YWxzKGxlZnQuRmlsZXMsIHJpZ2h0LkZpbGVzKSkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBpZiAobGVmdC5GaWxlcyA9PSBudWxsIHx8IHJpZ2h0LkZpbGVzID09IG51bGwgfHwgbGVmdC5GaWxlcy5Db3VudCAhPSByaWdodC5GaWxlcy5Db3VudCkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICBmb3JlYWNoICh2YXIgdmFsdWVfMiBpbiBsZWZ0LkZpbGVzKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgRmlsZURhdGEgdmFsdWVfMzsNCiAgICAgICAgICAgICAgICAgICAgaWYgKCFyaWdodC5GaWxlcy5UcnlHZXRWYWx1ZSh2YWx1ZV8yLktleSwgb3V0IHZhbHVlXzMpKQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgICAgICBpZiAoIUZpbGVEYXRhLlZhbHVlQ29tcGFyZXIuRXF1YWxzKHZhbHVlXzIuVmFsdWUsIHZhbHVlXzMpKQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIGlmICghb2JqZWN0LlJlZmVyZW5jZUVxdWFscyhsZWZ0LkxvZ2ljYWxMb2NhdGlvbnMsIHJpZ2h0LkxvZ2ljYWxMb2NhdGlvbnMpKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIGlmIChsZWZ0LkxvZ2ljYWxMb2NhdGlvbnMgPT0gbnVsbCB8fCByaWdodC5Mb2dpY2FsTG9jYXRpb25zID09IG51bGwgfHwgbGVmdC5Mb2dpY2FsTG9jYXRpb25zLkNvdW50ICE9IHJpZ2h0LkxvZ2ljYWxMb2NhdGlvbnMuQ291bnQpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgZm9yZWFjaCAodmFyIHZhbHVlXzQgaW4gbGVmdC5Mb2dpY2FsTG9jYXRpb25zKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgTG9naWNhbExvY2F0aW9uIHZhbHVlXzU7DQogICAgICAgICAgICAgICAgICAgIGlmICghcmlnaHQuTG9naWNhbExvY2F0aW9ucy5UcnlHZXRWYWx1ZSh2YWx1ZV80LktleSwgb3V0IHZhbHVlXzUpKQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgICAgICBpZiAoIUxvZ2ljYWxMb2NhdGlvbi5WYWx1ZUNvbXBhcmVyLkVxdWFscyh2YWx1ZV80LlZhbHVlLCB2YWx1ZV81KSkNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBpZiAoIW9iamVjdC5SZWZlcmVuY2VFcXVhbHMobGVmdC5HcmFwaHMsIHJpZ2h0LkdyYXBocykpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgaWYgKGxlZnQuR3JhcGhzID09IG51bGwgfHwgcmlnaHQuR3JhcGhzID09IG51bGwpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgaWYgKGxlZnQuR3JhcGhzLkNvdW50ICE9IHJpZ2h0LkdyYXBocy5Db3VudCkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICBmb3IgKGludCBpbmRleF8yID0gMDsgaW5kZXhfMiA8IGxlZnQuR3JhcGhzLkNvdW50OyArK2luZGV4XzIpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBpZiAoIUdyYXBoLlZhbHVlQ29tcGFyZXIuRXF1YWxzKGxlZnQuR3JhcGhzW2luZGV4XzJdLCByaWdodC5HcmFwaHNbaW5kZXhfMl0pKQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIGlmICghb2JqZWN0LlJlZmVyZW5jZUVxdWFscyhsZWZ0LlJlc3VsdHMsIHJpZ2h0LlJlc3VsdHMpKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIGlmIChsZWZ0LlJlc3VsdHMgPT0gbnVsbCB8fCByaWdodC5SZXN1bHRzID09IG51bGwpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgaWYgKGxlZnQuUmVzdWx0cy5Db3VudCAhPSByaWdodC5SZXN1bHRzLkNvdW50KQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgIGZvciAoaW50IGluZGV4XzMgPSAwOyBpbmRleF8zIDwgbGVmdC5SZXN1bHRzLkNvdW50OyArK2luZGV4XzMpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBpZiAoIVJlc3VsdC5WYWx1ZUNvbXBhcmVyLkVxdWFscyhsZWZ0LlJlc3VsdHNbaW5kZXhfM10sIHJpZ2h0LlJlc3VsdHNbaW5kZXhfM10pKQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIGlmICghUmVzb3VyY2VzLlZhbHVlQ29tcGFyZXIuRXF1YWxzKGxlZnQuUmVzb3VyY2VzLCByaWdodC5SZXNvdXJjZXMpKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgaWYgKGxlZnQuSW5zdGFuY2VHdWlkICE9IHJpZ2h0Lkluc3RhbmNlR3VpZCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIGlmIChsZWZ0LkxvZ2ljYWxJZCAhPSByaWdodC5Mb2dpY2FsSWQpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBpZiAoIU1lc3NhZ2UuVmFsdWVDb21wYXJlci5FcXVhbHMobGVmdC5EZXNjcmlwdGlvbiwgcmlnaHQuRGVzY3JpcHRpb24pKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgaWYgKGxlZnQuQXV0b21hdGlvbkxvZ2ljYWxJZCAhPSByaWdodC5BdXRvbWF0aW9uTG9naWNhbElkKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgaWYgKGxlZnQuQmFzZWxpbmVJbnN0YW5jZUd1aWQgIT0gcmlnaHQuQmFzZWxpbmVJbnN0YW5jZUd1aWQpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBpZiAobGVmdC5BcmNoaXRlY3R1cmUgIT0gcmlnaHQuQXJjaGl0ZWN0dXJlKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgaWYgKGxlZnQuUmljaE1lc3NhZ2VNaW1lVHlwZSAhPSByaWdodC5SaWNoTWVzc2FnZU1pbWVUeXBlKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgaWYgKGxlZnQuUmVkYWN0aW9uVG9rZW4gIT0gcmlnaHQuUmVkYWN0aW9uVG9rZW4pDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBpZiAobGVmdC5EZWZhdWx0RmlsZUVuY29kaW5nICE9IHJpZ2h0LkRlZmF1bHRGaWxlRW5jb2RpbmcpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBpZiAobGVmdC5Db2x1bW5LaW5kICE9IHJpZ2h0LkNvbHVtbktpbmQpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBpZiAoIW9iamVjdC5SZWZlcmVuY2VFcXVhbHMobGVmdC5Qcm9wZXJ0aWVzLCByaWdodC5Qcm9wZXJ0aWVzKSkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBpZiAobGVmdC5Qcm9wZXJ0aWVzID09IG51bGwgfHwgcmlnaHQuUHJvcGVydGllcyA9PSBudWxsIHx8IGxlZnQuUHJvcGVydGllcy5Db3VudCAhPSByaWdodC5Qcm9wZXJ0aWVzLkNvdW50KQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgIGZvcmVhY2ggKHZhciB2YWx1ZV82IGluIGxlZnQuUHJvcGVydGllcykNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIFNlcmlhbGl6ZWRQcm9wZXJ0eUluZm8gdmFsdWVfNzsNCiAgICAgICAgICAgICAgICAgICAgaWYgKCFyaWdodC5Qcm9wZXJ0aWVzLlRyeUdldFZhbHVlKHZhbHVlXzYuS2V5LCBvdXQgdmFsdWVfNykpDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgICAgIGlmICghb2JqZWN0LkVxdWFscyh2YWx1ZV82LlZhbHVlLCB2YWx1ZV83KSkNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICByZXR1cm4gdHJ1ZTsNCiAgICAgICAgfQ0KDQogICAgICAgIHB1YmxpYyBpbnQgR2V0SGFzaENvZGUoUnVuIG9iaikNCiAgICAgICAgew0KICAgICAgICAgICAgaWYgKFJlZmVyZW5jZUVxdWFscyhvYmosIG51bGwpKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHJldHVybiAwOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBpbnQgcmVzdWx0ID0gMTc7DQogICAgICAgICAgICB1bmNoZWNrZWQNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBpZiAob2JqLlRvb2wgIT0gbnVsbCkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IChyZXN1bHQgKiAzMSkgKyBvYmouVG9vbC5WYWx1ZUdldEhhc2hDb2RlKCk7DQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgaWYgKG9iai5JbnZvY2F0aW9ucyAhPSBudWxsKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgZm9yZWFjaCAodmFyIHZhbHVlXzggaW4gb2JqLkludm9jYXRpb25zKQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSByZXN1bHQgKiAzMTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZV84ICE9IG51bGwpDQogICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gKHJlc3VsdCAqIDMxKSArIHZhbHVlXzguVmFsdWVHZXRIYXNoQ29kZSgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgaWYgKG9iai5Db252ZXJzaW9uICE9IG51bGwpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSAocmVzdWx0ICogMzEpICsgb2JqLkNvbnZlcnNpb24uVmFsdWVHZXRIYXNoQ29kZSgpOw0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgIGlmIChvYmouVmVyc2lvbkNvbnRyb2xQcm92ZW5hbmNlICE9IG51bGwpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBmb3JlYWNoICh2YXIgdmFsdWVfOSBpbiBvYmouVmVyc2lvbkNvbnRyb2xQcm92ZW5hbmNlKQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSByZXN1bHQgKiAzMTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZV85ICE9IG51bGwpDQogICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gKHJlc3VsdCAqIDMxKSArIHZhbHVlXzkuVmFsdWVHZXRIYXNoQ29kZSgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgaWYgKG9iai5PcmlnaW5hbFVyaUJhc2VJZHMgIT0gbnVsbCkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIC8vIFVzZSB4b3IgZm9yIGRpY3Rpb25hcmllcyB0byBiZSBvcmRlci1pbmRlcGVuZGVudC4NCiAgICAgICAgICAgICAgICAgICAgaW50IHhvcl8wID0gMDsNCiAgICAgICAgICAgICAgICAgICAgZm9yZWFjaCAodmFyIHZhbHVlXzEwIGluIG9iai5PcmlnaW5hbFVyaUJhc2VJZHMpDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHhvcl8wIF49IHZhbHVlXzEwLktleS5HZXRIYXNoQ29kZSgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlXzEwLlZhbHVlICE9IG51bGwpDQogICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgeG9yXzAgXj0gdmFsdWVfMTAuVmFsdWUuR2V0SGFzaENvZGUoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IChyZXN1bHQgKiAzMSkgKyB4b3JfMDsNCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICBpZiAob2JqLkZpbGVzICE9IG51bGwpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAvLyBVc2UgeG9yIGZvciBkaWN0aW9uYXJpZXMgdG8gYmUgb3JkZXItaW5kZXBlbmRlbnQuDQogICAgICAgICAgICAgICAgICAgIGludCB4b3JfMSA9IDA7DQogICAgICAgICAgICAgICAgICAgIGZvcmVhY2ggKHZhciB2YWx1ZV8xMSBpbiBvYmouRmlsZXMpDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHhvcl8xIF49IHZhbHVlXzExLktleS5HZXRIYXNoQ29kZSgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlXzExLlZhbHVlICE9IG51bGwpDQogICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgeG9yXzEgXj0gdmFsdWVfMTEuVmFsdWUuR2V0SGFzaENvZGUoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IChyZXN1bHQgKiAzMSkgKyB4b3JfMTsNCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICBpZiAob2JqLkxvZ2ljYWxMb2NhdGlvbnMgIT0gbnVsbCkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIC8vIFVzZSB4b3IgZm9yIGRpY3Rpb25hcmllcyB0byBiZSBvcmRlci1pbmRlcGVuZGVudC4NCiAgICAgICAgICAgICAgICAgICAgaW50IHhvcl8yID0gMDsNCiAgICAgICAgICAgICAgICAgICAgZm9yZWFjaCAodmFyIHZhbHVlXzEyIGluIG9iai5Mb2dpY2FsTG9jYXRpb25zKQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICB4b3JfMiBePSB2YWx1ZV8xMi5LZXkuR2V0SGFzaENvZGUoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZV8xMi5WYWx1ZSAhPSBudWxsKQ0KICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhvcl8yIF49IHZhbHVlXzEyLlZhbHVlLkdldEhhc2hDb2RlKCk7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSAocmVzdWx0ICogMzEpICsgeG9yXzI7DQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgaWYgKG9iai5HcmFwaHMgIT0gbnVsbCkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIGZvcmVhY2ggKHZhciB2YWx1ZV8xMyBpbiBvYmouR3JhcGhzKQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSByZXN1bHQgKiAzMTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZV8xMyAhPSBudWxsKQ0KICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IChyZXN1bHQgKiAzMSkgKyB2YWx1ZV8xMy5WYWx1ZUdldEhhc2hDb2RlKCk7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICBpZiAob2JqLlJlc3VsdHMgIT0gbnVsbCkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIGZvcmVhY2ggKHZhciB2YWx1ZV8xNCBpbiBvYmouUmVzdWx0cykNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gcmVzdWx0ICogMzE7DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWVfMTQgIT0gbnVsbCkNCiAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSAocmVzdWx0ICogMzEpICsgdmFsdWVfMTQuVmFsdWVHZXRIYXNoQ29kZSgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgaWYgKG9iai5SZXNvdXJjZXMgIT0gbnVsbCkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IChyZXN1bHQgKiAzMSkgKyBvYmouUmVzb3VyY2VzLlZhbHVlR2V0SGFzaENvZGUoKTsNCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICBpZiAob2JqLkluc3RhbmNlR3VpZCAhPSBudWxsKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gKHJlc3VsdCAqIDMxKSArIG9iai5JbnN0YW5jZUd1aWQuR2V0SGFzaENvZGUoKTsNCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICBpZiAob2JqLkxvZ2ljYWxJZCAhPSBudWxsKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gKHJlc3VsdCAqIDMxKSArIG9iai5Mb2dpY2FsSWQuR2V0SGFzaENvZGUoKTsNCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICBpZiAob2JqLkRlc2NyaXB0aW9uICE9IG51bGwpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSAocmVzdWx0ICogMzEpICsgb2JqLkRlc2NyaXB0aW9uLlZhbHVlR2V0SGFzaENvZGUoKTsNCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICBpZiAob2JqLkF1dG9tYXRpb25Mb2dpY2FsSWQgIT0gbnVsbCkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IChyZXN1bHQgKiAzMSkgKyBvYmouQXV0b21hdGlvbkxvZ2ljYWxJZC5HZXRIYXNoQ29kZSgpOw0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgIGlmIChvYmouQmFzZWxpbmVJbnN0YW5jZUd1aWQgIT0gbnVsbCkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IChyZXN1bHQgKiAzMSkgKyBvYmouQmFzZWxpbmVJbnN0YW5jZUd1aWQuR2V0SGFzaENvZGUoKTsNCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICBpZiAob2JqLkFyY2hpdGVjdHVyZSAhPSBudWxsKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gKHJlc3VsdCAqIDMxKSArIG9iai5BcmNoaXRlY3R1cmUuR2V0SGFzaENvZGUoKTsNCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICBpZiAob2JqLlJpY2hNZXNzYWdlTWltZVR5cGUgIT0gbnVsbCkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IChyZXN1bHQgKiAzMSkgKyBvYmouUmljaE1lc3NhZ2VNaW1lVHlwZS5HZXRIYXNoQ29kZSgpOw0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgIGlmIChvYmouUmVkYWN0aW9uVG9rZW4gIT0gbnVsbCkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IChyZXN1bHQgKiAzMSkgKyBvYmouUmVkYWN0aW9uVG9rZW4uR2V0SGFzaENvZGUoKTsNCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICBpZiAob2JqLkRlZmF1bHRGaWxlRW5jb2RpbmcgIT0gbnVsbCkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IChyZXN1bHQgKiAzMSkgKyBvYmouRGVmYXVsdEZpbGVFbmNvZGluZy5HZXRIYXNoQ29kZSgpOw0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgIHJlc3VsdCA9IChyZXN1bHQgKiAzMSkgKyBvYmouQ29sdW1uS2luZC5HZXRIYXNoQ29kZSgpOw0KICAgICAgICAgICAgICAgIGlmIChvYmouUHJvcGVydGllcyAhPSBudWxsKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgLy8gVXNlIHhvciBmb3IgZGljdGlvbmFyaWVzIHRvIGJlIG9yZGVyLWluZGVwZW5kZW50Lg0KICAgICAgICAgICAgICAgICAgICBpbnQgeG9yXzMgPSAwOw0KICAgICAgICAgICAgICAgICAgICBmb3JlYWNoICh2YXIgdmFsdWVfMTUgaW4gb2JqLlByb3BlcnRpZXMpDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHhvcl8zIF49IHZhbHVlXzE1LktleS5HZXRIYXNoQ29kZSgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlXzE1LlZhbHVlICE9IG51bGwpDQogICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgeG9yXzMgXj0gdmFsdWVfMTUuVmFsdWUuR2V0SGFzaENvZGUoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IChyZXN1bHQgKiAzMSkgKyB4b3JfMzsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIHJldHVybiByZXN1bHQ7DQogICAgICAgIH0NCiAgICB9DQp9" + { + "ruleId": "CA2227", + "message": { + "text": "Change 'JsonSchema.Type' to be read-only by removing the property setter." }, - "hashes": [ - { - "value": "6D64C3708F7D38563D5FE9A6EE16B681", - "algorithm": "md5" - }, - { - "value": "AD113B252659D032AD08B61365530C48921DB311", - "algorithm": "sha-1" - }, + "locations": [ { - "value": "1C4991D7993C768215A508CE4BBFECD2F2510402E5FBB5F00CCB0D701DB14D54", - "algorithm": "sha-256" + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Microsoft.Json.Schema.dll", + "uriBaseId": "$(ProjectDir)", + "index": 1 + } + }, + "logicalLocations": [ + { + "index": 61, + "fullyQualifiedName": "microsoft.json.schema.dll!Microsoft.Json.Schema.JsonSchema.Type" + } + ] } - ] + ], + "properties": { + "Category": "Microsoft.Usage", + "FixCategory": "Breaking" + } }, - "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/SarifLog.cs": { - "mimeType": "text/x-csharp", - "contents": { - "binary": "Ly8gQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQuICBBbGwgUmlnaHRzIFJlc2VydmVkLg0KLy8gTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlLiBTZWUgTElDRU5TRSBmaWxlIGluIHRoZSBwcm9qZWN0IHJvb3QgZm9yIGZ1bGwgbGljZW5zZSBpbmZvcm1hdGlvbi4NCg0KdXNpbmcgU3lzdGVtOw0KdXNpbmcgU3lzdGVtLkNvZGVEb20uQ29tcGlsZXI7DQp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsNCnVzaW5nIFN5c3RlbS5SdW50aW1lLlNlcmlhbGl6YXRpb247DQoNCm5hbWVzcGFjZSBNaWNyb3NvZnQuQ29kZUFuYWx5c2lzLlNhcmlmDQp7DQogICAgLy8vIDxzdW1tYXJ5Pg0KICAgIC8vLyBTdGF0aWMgQW5hbHlzaXMgUmVzdWx0cyBGb3JtYXQgKFNBUklGKSBWZXJzaW9uIDIuMC4wIEpTT04gU2NoZW1hOiBhIHN0YW5kYXJkIGZvcm1hdCBmb3IgdGhlIG91dHB1dCBvZiBzdGF0aWMgYW5hbHlzaXMgYW5kIG90aGVyIHRvb2xzLg0KICAgIC8vLyA8L3N1bW1hcnk+DQogICAgW0RhdGFDb250cmFjdF0NCiAgICBbR2VuZXJhdGVkQ29kZSgiTWljcm9zb2Z0Lkpzb24uU2NoZW1hLlRvRG90TmV0IiwgIjAuNTYuMC4wIildDQogICAgcHVibGljIHBhcnRpYWwgY2xhc3MgU2FyaWZMb2cgOiBJU2FyaWZOb2RlDQogICAgew0KICAgICAgICBwdWJsaWMgc3RhdGljIElFcXVhbGl0eUNvbXBhcmVyPFNhcmlmTG9nPiBWYWx1ZUNvbXBhcmVyID0+IFNhcmlmTG9nRXF1YWxpdHlDb21wYXJlci5JbnN0YW5jZTsNCg0KICAgICAgICBwdWJsaWMgYm9vbCBWYWx1ZUVxdWFscyhTYXJpZkxvZyBvdGhlcikgPT4gVmFsdWVDb21wYXJlci5FcXVhbHModGhpcywgb3RoZXIpOw0KICAgICAgICBwdWJsaWMgaW50IFZhbHVlR2V0SGFzaENvZGUoKSA9PiBWYWx1ZUNvbXBhcmVyLkdldEhhc2hDb2RlKHRoaXMpOw0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIEdldHMgYSB2YWx1ZSBpbmRpY2F0aW5nIHRoZSB0eXBlIG9mIG9iamVjdCBpbXBsZW1lbnRpbmcgPHNlZSBjcmVmPSJJU2FyaWZOb2RlIiAvPi4NCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgcHVibGljIFNhcmlmTm9kZUtpbmQgU2FyaWZOb2RlS2luZA0KICAgICAgICB7DQogICAgICAgICAgICBnZXQNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gU2FyaWZOb2RlS2luZC5TYXJpZkxvZzsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIFRoZSBVUkkgb2YgdGhlIEpTT04gc2NoZW1hIGNvcnJlc3BvbmRpbmcgdG8gdGhlIHZlcnNpb24uDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIFtEYXRhTWVtYmVyKE5hbWUgPSAiJHNjaGVtYSIsIElzUmVxdWlyZWQgPSBmYWxzZSwgRW1pdERlZmF1bHRWYWx1ZSA9IGZhbHNlKV0NCiAgICAgICAgcHVibGljIFVyaSBTY2hlbWFVcmkgeyBnZXQ7IHNldDsgfQ0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIFRoZSBTQVJJRiBmb3JtYXQgdmVyc2lvbiBvZiB0aGlzIGxvZyBmaWxlLg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICBbRGF0YU1lbWJlcihOYW1lID0gInZlcnNpb24iLCBJc1JlcXVpcmVkID0gdHJ1ZSldDQogICAgICAgIHB1YmxpYyBTYXJpZlZlcnNpb24gVmVyc2lvbiB7IGdldDsgc2V0OyB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gVGhlIHNldCBvZiBydW5zIGNvbnRhaW5lZCBpbiB0aGlzIGxvZyBmaWxlLg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICBbRGF0YU1lbWJlcihOYW1lID0gInJ1bnMiLCBJc1JlcXVpcmVkID0gdHJ1ZSldDQogICAgICAgIHB1YmxpYyBJTGlzdDxSdW4+IFJ1bnMgeyBnZXQ7IHNldDsgfQ0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIEluaXRpYWxpemVzIGEgbmV3IGluc3RhbmNlIG9mIHRoZSA8c2VlIGNyZWY9IlNhcmlmTG9nIiAvPiBjbGFzcy4NCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgcHVibGljIFNhcmlmTG9nKCkNCiAgICAgICAgew0KICAgICAgICB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gSW5pdGlhbGl6ZXMgYSBuZXcgaW5zdGFuY2Ugb2YgdGhlIDxzZWUgY3JlZj0iU2FyaWZMb2ciIC8+IGNsYXNzIGZyb20gdGhlIHN1cHBsaWVkIHZhbHVlcy4NCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgLy8vIDxwYXJhbSBuYW1lPSJzY2hlbWFVcmkiPg0KICAgICAgICAvLy8gQW4gaW5pdGlhbGl6YXRpb24gdmFsdWUgZm9yIHRoZSA8c2VlIGNyZWY9IlA6IFNjaGVtYVVyaSIgLz4gcHJvcGVydHkuDQogICAgICAgIC8vLyA8L3BhcmFtPg0KICAgICAgICAvLy8gPHBhcmFtIG5hbWU9InZlcnNpb24iPg0KICAgICAgICAvLy8gQW4gaW5pdGlhbGl6YXRpb24gdmFsdWUgZm9yIHRoZSA8c2VlIGNyZWY9IlA6IFZlcnNpb24iIC8+IHByb3BlcnR5Lg0KICAgICAgICAvLy8gPC9wYXJhbT4NCiAgICAgICAgLy8vIDxwYXJhbSBuYW1lPSJydW5zIj4NCiAgICAgICAgLy8vIEFuIGluaXRpYWxpemF0aW9uIHZhbHVlIGZvciB0aGUgPHNlZSBjcmVmPSJQOiBSdW5zIiAvPiBwcm9wZXJ0eS4NCiAgICAgICAgLy8vIDwvcGFyYW0+DQogICAgICAgIHB1YmxpYyBTYXJpZkxvZyhVcmkgc2NoZW1hVXJpLCBTYXJpZlZlcnNpb24gdmVyc2lvbiwgSUVudW1lcmFibGU8UnVuPiBydW5zKQ0KICAgICAgICB7DQogICAgICAgICAgICBJbml0KHNjaGVtYVVyaSwgdmVyc2lvbiwgcnVucyk7DQogICAgICAgIH0NCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBJbml0aWFsaXplcyBhIG5ldyBpbnN0YW5jZSBvZiB0aGUgPHNlZSBjcmVmPSJTYXJpZkxvZyIgLz4gY2xhc3MgZnJvbSB0aGUgc3BlY2lmaWVkIGluc3RhbmNlLg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICAvLy8gPHBhcmFtIG5hbWU9Im90aGVyIj4NCiAgICAgICAgLy8vIFRoZSBpbnN0YW5jZSBmcm9tIHdoaWNoIHRoZSBuZXcgaW5zdGFuY2UgaXMgdG8gYmUgaW5pdGlhbGl6ZWQuDQogICAgICAgIC8vLyA8L3BhcmFtPg0KICAgICAgICAvLy8gPGV4Y2VwdGlvbiBjcmVmPSJBcmd1bWVudE51bGxFeGNlcHRpb24iPg0KICAgICAgICAvLy8gVGhyb3duIGlmIDxwYXJhbXJlZiBuYW1lPSJvdGhlciIgLz4gaXMgbnVsbC4NCiAgICAgICAgLy8vIDwvZXhjZXB0aW9uPg0KICAgICAgICBwdWJsaWMgU2FyaWZMb2coU2FyaWZMb2cgb3RoZXIpDQogICAgICAgIHsNCiAgICAgICAgICAgIGlmIChvdGhlciA9PSBudWxsKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHRocm93IG5ldyBBcmd1bWVudE51bGxFeGNlcHRpb24obmFtZW9mKG90aGVyKSk7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIEluaXQob3RoZXIuU2NoZW1hVXJpLCBvdGhlci5WZXJzaW9uLCBvdGhlci5SdW5zKTsNCiAgICAgICAgfQ0KDQogICAgICAgIElTYXJpZk5vZGUgSVNhcmlmTm9kZS5EZWVwQ2xvbmUoKQ0KICAgICAgICB7DQogICAgICAgICAgICByZXR1cm4gRGVlcENsb25lQ29yZSgpOw0KICAgICAgICB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gQ3JlYXRlcyBhIGRlZXAgY29weSBvZiB0aGlzIGluc3RhbmNlLg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICBwdWJsaWMgU2FyaWZMb2cgRGVlcENsb25lKCkNCiAgICAgICAgew0KICAgICAgICAgICAgcmV0dXJuIChTYXJpZkxvZylEZWVwQ2xvbmVDb3JlKCk7DQogICAgICAgIH0NCg0KICAgICAgICBwcml2YXRlIElTYXJpZk5vZGUgRGVlcENsb25lQ29yZSgpDQogICAgICAgIHsNCiAgICAgICAgICAgIHJldHVybiBuZXcgU2FyaWZMb2codGhpcyk7DQogICAgICAgIH0NCg0KICAgICAgICBwcml2YXRlIHZvaWQgSW5pdChVcmkgc2NoZW1hVXJpLCBTYXJpZlZlcnNpb24gdmVyc2lvbiwgSUVudW1lcmFibGU8UnVuPiBydW5zKQ0KICAgICAgICB7DQogICAgICAgICAgICBpZiAoc2NoZW1hVXJpICE9IG51bGwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgU2NoZW1hVXJpID0gbmV3IFVyaShzY2hlbWFVcmkuT3JpZ2luYWxTdHJpbmcsIHNjaGVtYVVyaS5Jc0Fic29sdXRlVXJpID8gVXJpS2luZC5BYnNvbHV0ZSA6IFVyaUtpbmQuUmVsYXRpdmUpOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBWZXJzaW9uID0gdmVyc2lvbjsNCiAgICAgICAgICAgIGlmIChydW5zICE9IG51bGwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgdmFyIGRlc3RpbmF0aW9uXzAgPSBuZXcgTGlzdDxSdW4+KCk7DQogICAgICAgICAgICAgICAgZm9yZWFjaCAodmFyIHZhbHVlXzAgaW4gcnVucykNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZV8wID09IG51bGwpDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGRlc3RpbmF0aW9uXzAuQWRkKG51bGwpOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGVsc2UNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgZGVzdGluYXRpb25fMC5BZGQobmV3IFJ1bih2YWx1ZV8wKSk7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICBSdW5zID0gZGVzdGluYXRpb25fMDsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgIH0NCn0=" + { + "ruleId": "CA1721", + "level": "error", + "message": { + "text": "The property name 'JsonSchema.Type' is confusing given the existence of inherited method 'object.GetType()'. Rename or remove this property.", + "id": "BaseType" }, - "hashes": [ - { - "value": "C3915E9BC79377B9E4D62934A98D038E", - "algorithm": "md5" - }, - { - "value": "2A76711731CEC006916E528D8BEEC06B73FCB18C", - "algorithm": "sha-1" - }, + "locations": [ { - "value": "AA817B0C2D84D1FB27E3C6921F117482DA2F45C60532DD94D660637934AD686A", - "algorithm": "sha-256" + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Microsoft.Json.Schema.dll", + "uriBaseId": "$(ProjectDir)", + "index": 1 + } + }, + "logicalLocations": [ + { + "index": 61, + "fullyQualifiedName": "microsoft.json.schema.dll!Microsoft.Json.Schema.JsonSchema.Type" + } + ] } - ] - }, - "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/SarifRewritingVisitor.cs": { - "mimeType": "text/x-csharp", - "contents": { - "binary": "Ly8gQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQuICBBbGwgUmlnaHRzIFJlc2VydmVkLg0KLy8gTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlLiBTZWUgTElDRU5TRSBmaWxlIGluIHRoZSBwcm9qZWN0IHJvb3QgZm9yIGZ1bGwgbGljZW5zZSBpbmZvcm1hdGlvbi4NCg0KdXNpbmcgU3lzdGVtOw0KdXNpbmcgU3lzdGVtLkNvZGVEb20uQ29tcGlsZXI7DQp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsNCnVzaW5nIFN5c3RlbS5MaW5xOw0KDQpuYW1lc3BhY2UgTWljcm9zb2Z0LkNvZGVBbmFseXNpcy5TYXJpZg0Kew0KICAgIC8vLyA8c3VtbWFyeT4NCiAgICAvLy8gUmV3cml0aW5nIHZpc2l0b3IgZm9yIHRoZSBTYXJpZiBvYmplY3QgbW9kZWwuDQogICAgLy8vIDwvc3VtbWFyeT4NCiAgICBbR2VuZXJhdGVkQ29kZSgiTWljcm9zb2Z0Lkpzb24uU2NoZW1hLlRvRG90TmV0IiwgIjAuNTYuMC4wIildDQogICAgcHVibGljIGFic3RyYWN0IGNsYXNzIFNhcmlmUmV3cml0aW5nVmlzaXRvcg0KICAgIHsNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gU3RhcnRzIGEgcmV3cml0aW5nIHZpc2l0IG9mIGEgbm9kZSBpbiB0aGUgU2FyaWYgb2JqZWN0IG1vZGVsLg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICAvLy8gPHBhcmFtIG5hbWU9Im5vZGUiPg0KICAgICAgICAvLy8gVGhlIG5vZGUgdG8gcmV3cml0ZS4NCiAgICAgICAgLy8vIDwvcGFyYW0+DQogICAgICAgIC8vLyA8cmV0dXJucz4NCiAgICAgICAgLy8vIEEgcmV3cml0dGVuIGluc3RhbmNlIG9mIHRoZSBub2RlLg0KICAgICAgICAvLy8gPC9yZXR1cm5zPg0KICAgICAgICBwdWJsaWMgdmlydHVhbCBvYmplY3QgVmlzaXQoSVNhcmlmTm9kZSBub2RlKQ0KICAgICAgICB7DQogICAgICAgICAgICByZXR1cm4gdGhpcy5WaXNpdEFjdHVhbChub2RlKTsNCiAgICAgICAgfQ0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIFZpc2l0cyBhbmQgcmV3cml0ZXMgYSBub2RlIGluIHRoZSBTYXJpZiBvYmplY3QgbW9kZWwuDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIC8vLyA8cGFyYW0gbmFtZT0ibm9kZSI+DQogICAgICAgIC8vLyBUaGUgbm9kZSB0byByZXdyaXRlLg0KICAgICAgICAvLy8gPC9wYXJhbT4NCiAgICAgICAgLy8vIDxyZXR1cm5zPg0KICAgICAgICAvLy8gQSByZXdyaXR0ZW4gaW5zdGFuY2Ugb2YgdGhlIG5vZGUuDQogICAgICAgIC8vLyA8L3JldHVybnM+DQogICAgICAgIHB1YmxpYyB2aXJ0dWFsIG9iamVjdCBWaXNpdEFjdHVhbChJU2FyaWZOb2RlIG5vZGUpDQogICAgICAgIHsNCiAgICAgICAgICAgIGlmIChub2RlID09IG51bGwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgdGhyb3cgbmV3IEFyZ3VtZW50TnVsbEV4Y2VwdGlvbigibm9kZSIpOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBzd2l0Y2ggKG5vZGUuU2FyaWZOb2RlS2luZCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBjYXNlIFNhcmlmTm9kZUtpbmQuQXR0YWNobWVudDoNCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFZpc2l0QXR0YWNobWVudCgoQXR0YWNobWVudClub2RlKTsNCiAgICAgICAgICAgICAgICBjYXNlIFNhcmlmTm9kZUtpbmQuQ29kZUZsb3c6DQogICAgICAgICAgICAgICAgICAgIHJldHVybiBWaXNpdENvZGVGbG93KChDb2RlRmxvdylub2RlKTsNCiAgICAgICAgICAgICAgICBjYXNlIFNhcmlmTm9kZUtpbmQuQ29udmVyc2lvbjoNCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFZpc2l0Q29udmVyc2lvbigoQ29udmVyc2lvbilub2RlKTsNCiAgICAgICAgICAgICAgICBjYXNlIFNhcmlmTm9kZUtpbmQuRWRnZToNCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFZpc2l0RWRnZSgoRWRnZSlub2RlKTsNCiAgICAgICAgICAgICAgICBjYXNlIFNhcmlmTm9kZUtpbmQuRWRnZVRyYXZlcnNhbDoNCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFZpc2l0RWRnZVRyYXZlcnNhbCgoRWRnZVRyYXZlcnNhbClub2RlKTsNCiAgICAgICAgICAgICAgICBjYXNlIFNhcmlmTm9kZUtpbmQuRXhjZXB0aW9uRGF0YToNCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFZpc2l0RXhjZXB0aW9uRGF0YSgoRXhjZXB0aW9uRGF0YSlub2RlKTsNCiAgICAgICAgICAgICAgICBjYXNlIFNhcmlmTm9kZUtpbmQuRmlsZUNoYW5nZToNCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFZpc2l0RmlsZUNoYW5nZSgoRmlsZUNoYW5nZSlub2RlKTsNCiAgICAgICAgICAgICAgICBjYXNlIFNhcmlmTm9kZUtpbmQuRmlsZUNvbnRlbnQ6DQogICAgICAgICAgICAgICAgICAgIHJldHVybiBWaXNpdEZpbGVDb250ZW50KChGaWxlQ29udGVudClub2RlKTsNCiAgICAgICAgICAgICAgICBjYXNlIFNhcmlmTm9kZUtpbmQuRmlsZURhdGE6DQogICAgICAgICAgICAgICAgICAgIHJldHVybiBWaXNpdEZpbGVEYXRhKChGaWxlRGF0YSlub2RlKTsNCiAgICAgICAgICAgICAgICBjYXNlIFNhcmlmTm9kZUtpbmQuRmlsZUxvY2F0aW9uOg0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gVmlzaXRGaWxlTG9jYXRpb24oKEZpbGVMb2NhdGlvbilub2RlKTsNCiAgICAgICAgICAgICAgICBjYXNlIFNhcmlmTm9kZUtpbmQuRml4Og0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gVmlzaXRGaXgoKEZpeClub2RlKTsNCiAgICAgICAgICAgICAgICBjYXNlIFNhcmlmTm9kZUtpbmQuR3JhcGg6DQogICAgICAgICAgICAgICAgICAgIHJldHVybiBWaXNpdEdyYXBoKChHcmFwaClub2RlKTsNCiAgICAgICAgICAgICAgICBjYXNlIFNhcmlmTm9kZUtpbmQuR3JhcGhUcmF2ZXJzYWw6DQogICAgICAgICAgICAgICAgICAgIHJldHVybiBWaXNpdEdyYXBoVHJhdmVyc2FsKChHcmFwaFRyYXZlcnNhbClub2RlKTsNCiAgICAgICAgICAgICAgICBjYXNlIFNhcmlmTm9kZUtpbmQuSGFzaDoNCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFZpc2l0SGFzaCgoSGFzaClub2RlKTsNCiAgICAgICAgICAgICAgICBjYXNlIFNhcmlmTm9kZUtpbmQuSW52b2NhdGlvbjoNCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFZpc2l0SW52b2NhdGlvbigoSW52b2NhdGlvbilub2RlKTsNCiAgICAgICAgICAgICAgICBjYXNlIFNhcmlmTm9kZUtpbmQuTG9jYXRpb246DQogICAgICAgICAgICAgICAgICAgIHJldHVybiBWaXNpdExvY2F0aW9uKChMb2NhdGlvbilub2RlKTsNCiAgICAgICAgICAgICAgICBjYXNlIFNhcmlmTm9kZUtpbmQuTG9naWNhbExvY2F0aW9uOg0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gVmlzaXRMb2dpY2FsTG9jYXRpb24oKExvZ2ljYWxMb2NhdGlvbilub2RlKTsNCiAgICAgICAgICAgICAgICBjYXNlIFNhcmlmTm9kZUtpbmQuTWVzc2FnZToNCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFZpc2l0TWVzc2FnZSgoTWVzc2FnZSlub2RlKTsNCiAgICAgICAgICAgICAgICBjYXNlIFNhcmlmTm9kZUtpbmQuTm9kZToNCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFZpc2l0Tm9kZSgoTm9kZSlub2RlKTsNCiAgICAgICAgICAgICAgICBjYXNlIFNhcmlmTm9kZUtpbmQuTm90aWZpY2F0aW9uOg0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gVmlzaXROb3RpZmljYXRpb24oKE5vdGlmaWNhdGlvbilub2RlKTsNCiAgICAgICAgICAgICAgICBjYXNlIFNhcmlmTm9kZUtpbmQuUGh5c2ljYWxMb2NhdGlvbjoNCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFZpc2l0UGh5c2ljYWxMb2NhdGlvbigoUGh5c2ljYWxMb2NhdGlvbilub2RlKTsNCiAgICAgICAgICAgICAgICBjYXNlIFNhcmlmTm9kZUtpbmQuUmVjdGFuZ2xlOg0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gVmlzaXRSZWN0YW5nbGUoKFJlY3RhbmdsZSlub2RlKTsNCiAgICAgICAgICAgICAgICBjYXNlIFNhcmlmTm9kZUtpbmQuUmVnaW9uOg0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gVmlzaXRSZWdpb24oKFJlZ2lvbilub2RlKTsNCiAgICAgICAgICAgICAgICBjYXNlIFNhcmlmTm9kZUtpbmQuUmVwbGFjZW1lbnQ6DQogICAgICAgICAgICAgICAgICAgIHJldHVybiBWaXNpdFJlcGxhY2VtZW50KChSZXBsYWNlbWVudClub2RlKTsNCiAgICAgICAgICAgICAgICBjYXNlIFNhcmlmTm9kZUtpbmQuUmVzb3VyY2VzOg0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gVmlzaXRSZXNvdXJjZXMoKFJlc291cmNlcylub2RlKTsNCiAgICAgICAgICAgICAgICBjYXNlIFNhcmlmTm9kZUtpbmQuUmVzdWx0Og0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gVmlzaXRSZXN1bHQoKFJlc3VsdClub2RlKTsNCiAgICAgICAgICAgICAgICBjYXNlIFNhcmlmTm9kZUtpbmQuUnVsZToNCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFZpc2l0UnVsZSgoUnVsZSlub2RlKTsNCiAgICAgICAgICAgICAgICBjYXNlIFNhcmlmTm9kZUtpbmQuUnVsZUNvbmZpZ3VyYXRpb246DQogICAgICAgICAgICAgICAgICAgIHJldHVybiBWaXNpdFJ1bGVDb25maWd1cmF0aW9uKChSdWxlQ29uZmlndXJhdGlvbilub2RlKTsNCiAgICAgICAgICAgICAgICBjYXNlIFNhcmlmTm9kZUtpbmQuUnVuOg0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gVmlzaXRSdW4oKFJ1bilub2RlKTsNCiAgICAgICAgICAgICAgICBjYXNlIFNhcmlmTm9kZUtpbmQuU2FyaWZMb2c6DQogICAgICAgICAgICAgICAgICAgIHJldHVybiBWaXNpdFNhcmlmTG9nKChTYXJpZkxvZylub2RlKTsNCiAgICAgICAgICAgICAgICBjYXNlIFNhcmlmTm9kZUtpbmQuU3RhY2s6DQogICAgICAgICAgICAgICAgICAgIHJldHVybiBWaXNpdFN0YWNrKChTdGFjaylub2RlKTsNCiAgICAgICAgICAgICAgICBjYXNlIFNhcmlmTm9kZUtpbmQuU3RhY2tGcmFtZToNCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFZpc2l0U3RhY2tGcmFtZSgoU3RhY2tGcmFtZSlub2RlKTsNCiAgICAgICAgICAgICAgICBjYXNlIFNhcmlmTm9kZUtpbmQuVGhyZWFkRmxvdzoNCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFZpc2l0VGhyZWFkRmxvdygoVGhyZWFkRmxvdylub2RlKTsNCiAgICAgICAgICAgICAgICBjYXNlIFNhcmlmTm9kZUtpbmQuVGhyZWFkRmxvd0xvY2F0aW9uOg0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gVmlzaXRUaHJlYWRGbG93TG9jYXRpb24oKFRocmVhZEZsb3dMb2NhdGlvbilub2RlKTsNCiAgICAgICAgICAgICAgICBjYXNlIFNhcmlmTm9kZUtpbmQuVG9vbDoNCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFZpc2l0VG9vbCgoVG9vbClub2RlKTsNCiAgICAgICAgICAgICAgICBjYXNlIFNhcmlmTm9kZUtpbmQuVmVyc2lvbkNvbnRyb2xEZXRhaWxzOg0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gVmlzaXRWZXJzaW9uQ29udHJvbERldGFpbHMoKFZlcnNpb25Db250cm9sRGV0YWlscylub2RlKTsNCiAgICAgICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gbm9kZTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgIHByaXZhdGUgVCBWaXNpdE51bGxDaGVja2VkPFQ+KFQgbm9kZSkgd2hlcmUgVCA6IGNsYXNzLCBJU2FyaWZOb2RlDQogICAgICAgIHsNCiAgICAgICAgICAgIGlmIChub2RlID09IG51bGwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIHJldHVybiAoVClWaXNpdChub2RlKTsNCiAgICAgICAgfQ0KDQogICAgICAgIHB1YmxpYyB2aXJ0dWFsIEF0dGFjaG1lbnQgVmlzaXRBdHRhY2htZW50KEF0dGFjaG1lbnQgbm9kZSkNCiAgICAgICAgew0KICAgICAgICAgICAgaWYgKG5vZGUgIT0gbnVsbCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBub2RlLkRlc2NyaXB0aW9uID0gVmlzaXROdWxsQ2hlY2tlZChub2RlLkRlc2NyaXB0aW9uKTsNCiAgICAgICAgICAgICAgICBub2RlLkZpbGVMb2NhdGlvbiA9IFZpc2l0TnVsbENoZWNrZWQobm9kZS5GaWxlTG9jYXRpb24pOw0KICAgICAgICAgICAgICAgIGlmIChub2RlLlJlZ2lvbnMgIT0gbnVsbCkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIGZvciAoaW50IGluZGV4XzAgPSAwOyBpbmRleF8wIDwgbm9kZS5SZWdpb25zLkNvdW50OyArK2luZGV4XzApDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIG5vZGUuUmVnaW9uc1tpbmRleF8wXSA9IFZpc2l0TnVsbENoZWNrZWQobm9kZS5SZWdpb25zW2luZGV4XzBdKTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgIGlmIChub2RlLlJlY3RhbmdsZXMgIT0gbnVsbCkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIGZvciAoaW50IGluZGV4XzAgPSAwOyBpbmRleF8wIDwgbm9kZS5SZWN0YW5nbGVzLkNvdW50OyArK2luZGV4XzApDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIG5vZGUuUmVjdGFuZ2xlc1tpbmRleF8wXSA9IFZpc2l0TnVsbENoZWNrZWQobm9kZS5SZWN0YW5nbGVzW2luZGV4XzBdKTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgcmV0dXJuIG5vZGU7DQogICAgICAgIH0NCg0KICAgICAgICBwdWJsaWMgdmlydHVhbCBDb2RlRmxvdyBWaXNpdENvZGVGbG93KENvZGVGbG93IG5vZGUpDQogICAgICAgIHsNCiAgICAgICAgICAgIGlmIChub2RlICE9IG51bGwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgbm9kZS5NZXNzYWdlID0gVmlzaXROdWxsQ2hlY2tlZChub2RlLk1lc3NhZ2UpOw0KICAgICAgICAgICAgICAgIGlmIChub2RlLlRocmVhZEZsb3dzICE9IG51bGwpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBmb3IgKGludCBpbmRleF8wID0gMDsgaW5kZXhfMCA8IG5vZGUuVGhyZWFkRmxvd3MuQ291bnQ7ICsraW5kZXhfMCkNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgbm9kZS5UaHJlYWRGbG93c1tpbmRleF8wXSA9IFZpc2l0TnVsbENoZWNrZWQobm9kZS5UaHJlYWRGbG93c1tpbmRleF8wXSk7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIHJldHVybiBub2RlOw0KICAgICAgICB9DQoNCiAgICAgICAgcHVibGljIHZpcnR1YWwgQ29udmVyc2lvbiBWaXNpdENvbnZlcnNpb24oQ29udmVyc2lvbiBub2RlKQ0KICAgICAgICB7DQogICAgICAgICAgICBpZiAobm9kZSAhPSBudWxsKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIG5vZGUuVG9vbCA9IFZpc2l0TnVsbENoZWNrZWQobm9kZS5Ub29sKTsNCiAgICAgICAgICAgICAgICBub2RlLkludm9jYXRpb24gPSBWaXNpdE51bGxDaGVja2VkKG5vZGUuSW52b2NhdGlvbik7DQogICAgICAgICAgICAgICAgaWYgKG5vZGUuQW5hbHlzaXNUb29sTG9nRmlsZXMgIT0gbnVsbCkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIGZvciAoaW50IGluZGV4XzAgPSAwOyBpbmRleF8wIDwgbm9kZS5BbmFseXNpc1Rvb2xMb2dGaWxlcy5Db3VudDsgKytpbmRleF8wKQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICBub2RlLkFuYWx5c2lzVG9vbExvZ0ZpbGVzW2luZGV4XzBdID0gVmlzaXROdWxsQ2hlY2tlZChub2RlLkFuYWx5c2lzVG9vbExvZ0ZpbGVzW2luZGV4XzBdKTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgcmV0dXJuIG5vZGU7DQogICAgICAgIH0NCg0KICAgICAgICBwdWJsaWMgdmlydHVhbCBFZGdlIFZpc2l0RWRnZShFZGdlIG5vZGUpDQogICAgICAgIHsNCiAgICAgICAgICAgIGlmIChub2RlICE9IG51bGwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgbm9kZS5MYWJlbCA9IFZpc2l0TnVsbENoZWNrZWQobm9kZS5MYWJlbCk7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIHJldHVybiBub2RlOw0KICAgICAgICB9DQoNCiAgICAgICAgcHVibGljIHZpcnR1YWwgRWRnZVRyYXZlcnNhbCBWaXNpdEVkZ2VUcmF2ZXJzYWwoRWRnZVRyYXZlcnNhbCBub2RlKQ0KICAgICAgICB7DQogICAgICAgICAgICBpZiAobm9kZSAhPSBudWxsKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIG5vZGUuTWVzc2FnZSA9IFZpc2l0TnVsbENoZWNrZWQobm9kZS5NZXNzYWdlKTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgcmV0dXJuIG5vZGU7DQogICAgICAgIH0NCg0KICAgICAgICBwdWJsaWMgdmlydHVhbCBFeGNlcHRpb25EYXRhIFZpc2l0RXhjZXB0aW9uRGF0YShFeGNlcHRpb25EYXRhIG5vZGUpDQogICAgICAgIHsNCiAgICAgICAgICAgIGlmIChub2RlICE9IG51bGwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgbm9kZS5TdGFjayA9IFZpc2l0TnVsbENoZWNrZWQobm9kZS5TdGFjayk7DQogICAgICAgICAgICAgICAgaWYgKG5vZGUuSW5uZXJFeGNlcHRpb25zICE9IG51bGwpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBmb3IgKGludCBpbmRleF8wID0gMDsgaW5kZXhfMCA8IG5vZGUuSW5uZXJFeGNlcHRpb25zLkNvdW50OyArK2luZGV4XzApDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIG5vZGUuSW5uZXJFeGNlcHRpb25zW2luZGV4XzBdID0gVmlzaXROdWxsQ2hlY2tlZChub2RlLklubmVyRXhjZXB0aW9uc1tpbmRleF8wXSk7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIHJldHVybiBub2RlOw0KICAgICAgICB9DQoNCiAgICAgICAgcHVibGljIHZpcnR1YWwgRmlsZUNoYW5nZSBWaXNpdEZpbGVDaGFuZ2UoRmlsZUNoYW5nZSBub2RlKQ0KICAgICAgICB7DQogICAgICAgICAgICBpZiAobm9kZSAhPSBudWxsKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIG5vZGUuRmlsZUxvY2F0aW9uID0gVmlzaXROdWxsQ2hlY2tlZChub2RlLkZpbGVMb2NhdGlvbik7DQogICAgICAgICAgICAgICAgaWYgKG5vZGUuUmVwbGFjZW1lbnRzICE9IG51bGwpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBmb3IgKGludCBpbmRleF8wID0gMDsgaW5kZXhfMCA8IG5vZGUuUmVwbGFjZW1lbnRzLkNvdW50OyArK2luZGV4XzApDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIG5vZGUuUmVwbGFjZW1lbnRzW2luZGV4XzBdID0gVmlzaXROdWxsQ2hlY2tlZChub2RlLlJlcGxhY2VtZW50c1tpbmRleF8wXSk7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIHJldHVybiBub2RlOw0KICAgICAgICB9DQoNCiAgICAgICAgcHVibGljIHZpcnR1YWwgRmlsZUNvbnRlbnQgVmlzaXRGaWxlQ29udGVudChGaWxlQ29udGVudCBub2RlKQ0KICAgICAgICB7DQogICAgICAgICAgICBpZiAobm9kZSAhPSBudWxsKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICByZXR1cm4gbm9kZTsNCiAgICAgICAgfQ0KDQogICAgICAgIHB1YmxpYyB2aXJ0dWFsIEZpbGVEYXRhIFZpc2l0RmlsZURhdGEoRmlsZURhdGEgbm9kZSkNCiAgICAgICAgew0KICAgICAgICAgICAgaWYgKG5vZGUgIT0gbnVsbCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBub2RlLkZpbGVMb2NhdGlvbiA9IFZpc2l0TnVsbENoZWNrZWQobm9kZS5GaWxlTG9jYXRpb24pOw0KICAgICAgICAgICAgICAgIG5vZGUuQ29udGVudHMgPSBWaXNpdE51bGxDaGVja2VkKG5vZGUuQ29udGVudHMpOw0KICAgICAgICAgICAgICAgIGlmIChub2RlLkhhc2hlcyAhPSBudWxsKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgZm9yIChpbnQgaW5kZXhfMCA9IDA7IGluZGV4XzAgPCBub2RlLkhhc2hlcy5Db3VudDsgKytpbmRleF8wKQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICBub2RlLkhhc2hlc1tpbmRleF8wXSA9IFZpc2l0TnVsbENoZWNrZWQobm9kZS5IYXNoZXNbaW5kZXhfMF0pOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICByZXR1cm4gbm9kZTsNCiAgICAgICAgfQ0KDQogICAgICAgIHB1YmxpYyB2aXJ0dWFsIEZpbGVMb2NhdGlvbiBWaXNpdEZpbGVMb2NhdGlvbihGaWxlTG9jYXRpb24gbm9kZSkNCiAgICAgICAgew0KICAgICAgICAgICAgaWYgKG5vZGUgIT0gbnVsbCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgcmV0dXJuIG5vZGU7DQogICAgICAgIH0NCg0KICAgICAgICBwdWJsaWMgdmlydHVhbCBGaXggVmlzaXRGaXgoRml4IG5vZGUpDQogICAgICAgIHsNCiAgICAgICAgICAgIGlmIChub2RlICE9IG51bGwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgbm9kZS5EZXNjcmlwdGlvbiA9IFZpc2l0TnVsbENoZWNrZWQobm9kZS5EZXNjcmlwdGlvbik7DQogICAgICAgICAgICAgICAgaWYgKG5vZGUuRmlsZUNoYW5nZXMgIT0gbnVsbCkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIGZvciAoaW50IGluZGV4XzAgPSAwOyBpbmRleF8wIDwgbm9kZS5GaWxlQ2hhbmdlcy5Db3VudDsgKytpbmRleF8wKQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICBub2RlLkZpbGVDaGFuZ2VzW2luZGV4XzBdID0gVmlzaXROdWxsQ2hlY2tlZChub2RlLkZpbGVDaGFuZ2VzW2luZGV4XzBdKTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgcmV0dXJuIG5vZGU7DQogICAgICAgIH0NCg0KICAgICAgICBwdWJsaWMgdmlydHVhbCBHcmFwaCBWaXNpdEdyYXBoKEdyYXBoIG5vZGUpDQogICAgICAgIHsNCiAgICAgICAgICAgIGlmIChub2RlICE9IG51bGwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgbm9kZS5EZXNjcmlwdGlvbiA9IFZpc2l0TnVsbENoZWNrZWQobm9kZS5EZXNjcmlwdGlvbik7DQogICAgICAgICAgICAgICAgaWYgKG5vZGUuTm9kZXMgIT0gbnVsbCkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIGZvciAoaW50IGluZGV4XzAgPSAwOyBpbmRleF8wIDwgbm9kZS5Ob2Rlcy5Db3VudDsgKytpbmRleF8wKQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICBub2RlLk5vZGVzW2luZGV4XzBdID0gVmlzaXROdWxsQ2hlY2tlZChub2RlLk5vZGVzW2luZGV4XzBdKTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgIGlmIChub2RlLkVkZ2VzICE9IG51bGwpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBmb3IgKGludCBpbmRleF8wID0gMDsgaW5kZXhfMCA8IG5vZGUuRWRnZXMuQ291bnQ7ICsraW5kZXhfMCkNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgbm9kZS5FZGdlc1tpbmRleF8wXSA9IFZpc2l0TnVsbENoZWNrZWQobm9kZS5FZGdlc1tpbmRleF8wXSk7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIHJldHVybiBub2RlOw0KICAgICAgICB9DQoNCiAgICAgICAgcHVibGljIHZpcnR1YWwgR3JhcGhUcmF2ZXJzYWwgVmlzaXRHcmFwaFRyYXZlcnNhbChHcmFwaFRyYXZlcnNhbCBub2RlKQ0KICAgICAgICB7DQogICAgICAgICAgICBpZiAobm9kZSAhPSBudWxsKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIG5vZGUuRGVzY3JpcHRpb24gPSBWaXNpdE51bGxDaGVja2VkKG5vZGUuRGVzY3JpcHRpb24pOw0KICAgICAgICAgICAgICAgIGlmIChub2RlLkVkZ2VUcmF2ZXJzYWxzICE9IG51bGwpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBmb3IgKGludCBpbmRleF8wID0gMDsgaW5kZXhfMCA8IG5vZGUuRWRnZVRyYXZlcnNhbHMuQ291bnQ7ICsraW5kZXhfMCkNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgbm9kZS5FZGdlVHJhdmVyc2Fsc1tpbmRleF8wXSA9IFZpc2l0TnVsbENoZWNrZWQobm9kZS5FZGdlVHJhdmVyc2Fsc1tpbmRleF8wXSk7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIHJldHVybiBub2RlOw0KICAgICAgICB9DQoNCiAgICAgICAgcHVibGljIHZpcnR1YWwgSGFzaCBWaXNpdEhhc2goSGFzaCBub2RlKQ0KICAgICAgICB7DQogICAgICAgICAgICBpZiAobm9kZSAhPSBudWxsKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICByZXR1cm4gbm9kZTsNCiAgICAgICAgfQ0KDQogICAgICAgIHB1YmxpYyB2aXJ0dWFsIEludm9jYXRpb24gVmlzaXRJbnZvY2F0aW9uKEludm9jYXRpb24gbm9kZSkNCiAgICAgICAgew0KICAgICAgICAgICAgaWYgKG5vZGUgIT0gbnVsbCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBpZiAobm9kZS5BdHRhY2htZW50cyAhPSBudWxsKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgZm9yIChpbnQgaW5kZXhfMCA9IDA7IGluZGV4XzAgPCBub2RlLkF0dGFjaG1lbnRzLkNvdW50OyArK2luZGV4XzApDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIG5vZGUuQXR0YWNobWVudHNbaW5kZXhfMF0gPSBWaXNpdE51bGxDaGVja2VkKG5vZGUuQXR0YWNobWVudHNbaW5kZXhfMF0pOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgaWYgKG5vZGUuUmVzcG9uc2VGaWxlcyAhPSBudWxsKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgZm9yIChpbnQgaW5kZXhfMCA9IDA7IGluZGV4XzAgPCBub2RlLlJlc3BvbnNlRmlsZXMuQ291bnQ7ICsraW5kZXhfMCkNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgbm9kZS5SZXNwb25zZUZpbGVzW2luZGV4XzBdID0gVmlzaXROdWxsQ2hlY2tlZChub2RlLlJlc3BvbnNlRmlsZXNbaW5kZXhfMF0pOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgaWYgKG5vZGUuVG9vbE5vdGlmaWNhdGlvbnMgIT0gbnVsbCkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIGZvciAoaW50IGluZGV4XzAgPSAwOyBpbmRleF8wIDwgbm9kZS5Ub29sTm90aWZpY2F0aW9ucy5Db3VudDsgKytpbmRleF8wKQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICBub2RlLlRvb2xOb3RpZmljYXRpb25zW2luZGV4XzBdID0gVmlzaXROdWxsQ2hlY2tlZChub2RlLlRvb2xOb3RpZmljYXRpb25zW2luZGV4XzBdKTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgIGlmIChub2RlLkNvbmZpZ3VyYXRpb25Ob3RpZmljYXRpb25zICE9IG51bGwpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBmb3IgKGludCBpbmRleF8wID0gMDsgaW5kZXhfMCA8IG5vZGUuQ29uZmlndXJhdGlvbk5vdGlmaWNhdGlvbnMuQ291bnQ7ICsraW5kZXhfMCkNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgbm9kZS5Db25maWd1cmF0aW9uTm90aWZpY2F0aW9uc1tpbmRleF8wXSA9IFZpc2l0TnVsbENoZWNrZWQobm9kZS5Db25maWd1cmF0aW9uTm90aWZpY2F0aW9uc1tpbmRleF8wXSk7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICBub2RlLkV4ZWN1dGFibGVMb2NhdGlvbiA9IFZpc2l0TnVsbENoZWNrZWQobm9kZS5FeGVjdXRhYmxlTG9jYXRpb24pOw0KICAgICAgICAgICAgICAgIG5vZGUuU3RkaW4gPSBWaXNpdE51bGxDaGVja2VkKG5vZGUuU3RkaW4pOw0KICAgICAgICAgICAgICAgIG5vZGUuU3Rkb3V0ID0gVmlzaXROdWxsQ2hlY2tlZChub2RlLlN0ZG91dCk7DQogICAgICAgICAgICAgICAgbm9kZS5TdGRlcnIgPSBWaXNpdE51bGxDaGVja2VkKG5vZGUuU3RkZXJyKTsNCiAgICAgICAgICAgICAgICBub2RlLlN0ZG91dFN0ZGVyciA9IFZpc2l0TnVsbENoZWNrZWQobm9kZS5TdGRvdXRTdGRlcnIpOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICByZXR1cm4gbm9kZTsNCiAgICAgICAgfQ0KDQogICAgICAgIHB1YmxpYyB2aXJ0dWFsIExvY2F0aW9uIFZpc2l0TG9jYXRpb24oTG9jYXRpb24gbm9kZSkNCiAgICAgICAgew0KICAgICAgICAgICAgaWYgKG5vZGUgIT0gbnVsbCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBub2RlLlBoeXNpY2FsTG9jYXRpb24gPSBWaXNpdE51bGxDaGVja2VkKG5vZGUuUGh5c2ljYWxMb2NhdGlvbik7DQogICAgICAgICAgICAgICAgbm9kZS5NZXNzYWdlID0gVmlzaXROdWxsQ2hlY2tlZChub2RlLk1lc3NhZ2UpOw0KICAgICAgICAgICAgICAgIGlmIChub2RlLkFubm90YXRpb25zICE9IG51bGwpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBmb3IgKGludCBpbmRleF8wID0gMDsgaW5kZXhfMCA8IG5vZGUuQW5ub3RhdGlvbnMuQ291bnQ7ICsraW5kZXhfMCkNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgbm9kZS5Bbm5vdGF0aW9uc1tpbmRleF8wXSA9IFZpc2l0TnVsbENoZWNrZWQobm9kZS5Bbm5vdGF0aW9uc1tpbmRleF8wXSk7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIHJldHVybiBub2RlOw0KICAgICAgICB9DQoNCiAgICAgICAgcHVibGljIHZpcnR1YWwgTG9naWNhbExvY2F0aW9uIFZpc2l0TG9naWNhbExvY2F0aW9uKExvZ2ljYWxMb2NhdGlvbiBub2RlKQ0KICAgICAgICB7DQogICAgICAgICAgICBpZiAobm9kZSAhPSBudWxsKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICByZXR1cm4gbm9kZTsNCiAgICAgICAgfQ0KDQogICAgICAgIHB1YmxpYyB2aXJ0dWFsIE1lc3NhZ2UgVmlzaXRNZXNzYWdlKE1lc3NhZ2Ugbm9kZSkNCiAgICAgICAgew0KICAgICAgICAgICAgaWYgKG5vZGUgIT0gbnVsbCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgcmV0dXJuIG5vZGU7DQogICAgICAgIH0NCg0KICAgICAgICBwdWJsaWMgdmlydHVhbCBOb2RlIFZpc2l0Tm9kZShOb2RlIG5vZGUpDQogICAgICAgIHsNCiAgICAgICAgICAgIGlmIChub2RlICE9IG51bGwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgbm9kZS5MYWJlbCA9IFZpc2l0TnVsbENoZWNrZWQobm9kZS5MYWJlbCk7DQogICAgICAgICAgICAgICAgbm9kZS5Mb2NhdGlvbiA9IFZpc2l0TnVsbENoZWNrZWQobm9kZS5Mb2NhdGlvbik7DQogICAgICAgICAgICAgICAgaWYgKG5vZGUuQ2hpbGRyZW4gIT0gbnVsbCkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIGZvciAoaW50IGluZGV4XzAgPSAwOyBpbmRleF8wIDwgbm9kZS5DaGlsZHJlbi5Db3VudDsgKytpbmRleF8wKQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICBub2RlLkNoaWxkcmVuW2luZGV4XzBdID0gVmlzaXROdWxsQ2hlY2tlZChub2RlLkNoaWxkcmVuW2luZGV4XzBdKTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgcmV0dXJuIG5vZGU7DQogICAgICAgIH0NCg0KICAgICAgICBwdWJsaWMgdmlydHVhbCBOb3RpZmljYXRpb24gVmlzaXROb3RpZmljYXRpb24oTm90aWZpY2F0aW9uIG5vZGUpDQogICAgICAgIHsNCiAgICAgICAgICAgIGlmIChub2RlICE9IG51bGwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgbm9kZS5QaHlzaWNhbExvY2F0aW9uID0gVmlzaXROdWxsQ2hlY2tlZChub2RlLlBoeXNpY2FsTG9jYXRpb24pOw0KICAgICAgICAgICAgICAgIG5vZGUuTWVzc2FnZSA9IFZpc2l0TnVsbENoZWNrZWQobm9kZS5NZXNzYWdlKTsNCiAgICAgICAgICAgICAgICBub2RlLkV4Y2VwdGlvbiA9IFZpc2l0TnVsbENoZWNrZWQobm9kZS5FeGNlcHRpb24pOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICByZXR1cm4gbm9kZTsNCiAgICAgICAgfQ0KDQogICAgICAgIHB1YmxpYyB2aXJ0dWFsIFBoeXNpY2FsTG9jYXRpb24gVmlzaXRQaHlzaWNhbExvY2F0aW9uKFBoeXNpY2FsTG9jYXRpb24gbm9kZSkNCiAgICAgICAgew0KICAgICAgICAgICAgaWYgKG5vZGUgIT0gbnVsbCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBub2RlLkZpbGVMb2NhdGlvbiA9IFZpc2l0TnVsbENoZWNrZWQobm9kZS5GaWxlTG9jYXRpb24pOw0KICAgICAgICAgICAgICAgIG5vZGUuUmVnaW9uID0gVmlzaXROdWxsQ2hlY2tlZChub2RlLlJlZ2lvbik7DQogICAgICAgICAgICAgICAgbm9kZS5Db250ZXh0UmVnaW9uID0gVmlzaXROdWxsQ2hlY2tlZChub2RlLkNvbnRleHRSZWdpb24pOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICByZXR1cm4gbm9kZTsNCiAgICAgICAgfQ0KDQogICAgICAgIHB1YmxpYyB2aXJ0dWFsIFJlY3RhbmdsZSBWaXNpdFJlY3RhbmdsZShSZWN0YW5nbGUgbm9kZSkNCiAgICAgICAgew0KICAgICAgICAgICAgaWYgKG5vZGUgIT0gbnVsbCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBub2RlLk1lc3NhZ2UgPSBWaXNpdE51bGxDaGVja2VkKG5vZGUuTWVzc2FnZSk7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIHJldHVybiBub2RlOw0KICAgICAgICB9DQoNCiAgICAgICAgcHVibGljIHZpcnR1YWwgUmVnaW9uIFZpc2l0UmVnaW9uKFJlZ2lvbiBub2RlKQ0KICAgICAgICB7DQogICAgICAgICAgICBpZiAobm9kZSAhPSBudWxsKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIG5vZGUuU25pcHBldCA9IFZpc2l0TnVsbENoZWNrZWQobm9kZS5TbmlwcGV0KTsNCiAgICAgICAgICAgICAgICBub2RlLk1lc3NhZ2UgPSBWaXNpdE51bGxDaGVja2VkKG5vZGUuTWVzc2FnZSk7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIHJldHVybiBub2RlOw0KICAgICAgICB9DQoNCiAgICAgICAgcHVibGljIHZpcnR1YWwgUmVwbGFjZW1lbnQgVmlzaXRSZXBsYWNlbWVudChSZXBsYWNlbWVudCBub2RlKQ0KICAgICAgICB7DQogICAgICAgICAgICBpZiAobm9kZSAhPSBudWxsKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIG5vZGUuRGVsZXRlZFJlZ2lvbiA9IFZpc2l0TnVsbENoZWNrZWQobm9kZS5EZWxldGVkUmVnaW9uKTsNCiAgICAgICAgICAgICAgICBub2RlLkluc2VydGVkQ29udGVudCA9IFZpc2l0TnVsbENoZWNrZWQobm9kZS5JbnNlcnRlZENvbnRlbnQpOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICByZXR1cm4gbm9kZTsNCiAgICAgICAgfQ0KDQogICAgICAgIHB1YmxpYyB2aXJ0dWFsIFJlc291cmNlcyBWaXNpdFJlc291cmNlcyhSZXNvdXJjZXMgbm9kZSkNCiAgICAgICAgew0KICAgICAgICAgICAgaWYgKG5vZGUgIT0gbnVsbCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgcmV0dXJuIG5vZGU7DQogICAgICAgIH0NCg0KICAgICAgICBwdWJsaWMgdmlydHVhbCBSZXN1bHQgVmlzaXRSZXN1bHQoUmVzdWx0IG5vZGUpDQogICAgICAgIHsNCiAgICAgICAgICAgIGlmIChub2RlICE9IG51bGwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgbm9kZS5NZXNzYWdlID0gVmlzaXROdWxsQ2hlY2tlZChub2RlLk1lc3NhZ2UpOw0KICAgICAgICAgICAgICAgIG5vZGUuQW5hbHlzaXNUYXJnZXQgPSBWaXNpdE51bGxDaGVja2VkKG5vZGUuQW5hbHlzaXNUYXJnZXQpOw0KICAgICAgICAgICAgICAgIGlmIChub2RlLkxvY2F0aW9ucyAhPSBudWxsKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgZm9yIChpbnQgaW5kZXhfMCA9IDA7IGluZGV4XzAgPCBub2RlLkxvY2F0aW9ucy5Db3VudDsgKytpbmRleF8wKQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICBub2RlLkxvY2F0aW9uc1tpbmRleF8wXSA9IFZpc2l0TnVsbENoZWNrZWQobm9kZS5Mb2NhdGlvbnNbaW5kZXhfMF0pOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgaWYgKG5vZGUuU3RhY2tzICE9IG51bGwpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBmb3IgKGludCBpbmRleF8wID0gMDsgaW5kZXhfMCA8IG5vZGUuU3RhY2tzLkNvdW50OyArK2luZGV4XzApDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIG5vZGUuU3RhY2tzW2luZGV4XzBdID0gVmlzaXROdWxsQ2hlY2tlZChub2RlLlN0YWNrc1tpbmRleF8wXSk7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICBpZiAobm9kZS5Db2RlRmxvd3MgIT0gbnVsbCkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIGZvciAoaW50IGluZGV4XzAgPSAwOyBpbmRleF8wIDwgbm9kZS5Db2RlRmxvd3MuQ291bnQ7ICsraW5kZXhfMCkNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgbm9kZS5Db2RlRmxvd3NbaW5kZXhfMF0gPSBWaXNpdE51bGxDaGVja2VkKG5vZGUuQ29kZUZsb3dzW2luZGV4XzBdKTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgIGlmIChub2RlLkdyYXBocyAhPSBudWxsKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgZm9yIChpbnQgaW5kZXhfMCA9IDA7IGluZGV4XzAgPCBub2RlLkdyYXBocy5Db3VudDsgKytpbmRleF8wKQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICBub2RlLkdyYXBoc1tpbmRleF8wXSA9IFZpc2l0TnVsbENoZWNrZWQobm9kZS5HcmFwaHNbaW5kZXhfMF0pOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgaWYgKG5vZGUuR3JhcGhUcmF2ZXJzYWxzICE9IG51bGwpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBmb3IgKGludCBpbmRleF8wID0gMDsgaW5kZXhfMCA8IG5vZGUuR3JhcGhUcmF2ZXJzYWxzLkNvdW50OyArK2luZGV4XzApDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIG5vZGUuR3JhcGhUcmF2ZXJzYWxzW2luZGV4XzBdID0gVmlzaXROdWxsQ2hlY2tlZChub2RlLkdyYXBoVHJhdmVyc2Fsc1tpbmRleF8wXSk7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICBpZiAobm9kZS5SZWxhdGVkTG9jYXRpb25zICE9IG51bGwpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBmb3IgKGludCBpbmRleF8wID0gMDsgaW5kZXhfMCA8IG5vZGUuUmVsYXRlZExvY2F0aW9ucy5Db3VudDsgKytpbmRleF8wKQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICBub2RlLlJlbGF0ZWRMb2NhdGlvbnNbaW5kZXhfMF0gPSBWaXNpdE51bGxDaGVja2VkKG5vZGUuUmVsYXRlZExvY2F0aW9uc1tpbmRleF8wXSk7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICBpZiAobm9kZS5BdHRhY2htZW50cyAhPSBudWxsKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgZm9yIChpbnQgaW5kZXhfMCA9IDA7IGluZGV4XzAgPCBub2RlLkF0dGFjaG1lbnRzLkNvdW50OyArK2luZGV4XzApDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIG5vZGUuQXR0YWNobWVudHNbaW5kZXhfMF0gPSBWaXNpdE51bGxDaGVja2VkKG5vZGUuQXR0YWNobWVudHNbaW5kZXhfMF0pOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgaWYgKG5vZGUuQ29udmVyc2lvblByb3ZlbmFuY2UgIT0gbnVsbCkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIGZvciAoaW50IGluZGV4XzAgPSAwOyBpbmRleF8wIDwgbm9kZS5Db252ZXJzaW9uUHJvdmVuYW5jZS5Db3VudDsgKytpbmRleF8wKQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICBub2RlLkNvbnZlcnNpb25Qcm92ZW5hbmNlW2luZGV4XzBdID0gVmlzaXROdWxsQ2hlY2tlZChub2RlLkNvbnZlcnNpb25Qcm92ZW5hbmNlW2luZGV4XzBdKTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgIGlmIChub2RlLkZpeGVzICE9IG51bGwpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBmb3IgKGludCBpbmRleF8wID0gMDsgaW5kZXhfMCA8IG5vZGUuRml4ZXMuQ291bnQ7ICsraW5kZXhfMCkNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgbm9kZS5GaXhlc1tpbmRleF8wXSA9IFZpc2l0TnVsbENoZWNrZWQobm9kZS5GaXhlc1tpbmRleF8wXSk7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIHJldHVybiBub2RlOw0KICAgICAgICB9DQoNCiAgICAgICAgcHVibGljIHZpcnR1YWwgUnVsZSBWaXNpdFJ1bGUoUnVsZSBub2RlKQ0KICAgICAgICB7DQogICAgICAgICAgICBpZiAobm9kZSAhPSBudWxsKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIG5vZGUuTmFtZSA9IFZpc2l0TnVsbENoZWNrZWQobm9kZS5OYW1lKTsNCiAgICAgICAgICAgICAgICBub2RlLlNob3J0RGVzY3JpcHRpb24gPSBWaXNpdE51bGxDaGVja2VkKG5vZGUuU2hvcnREZXNjcmlwdGlvbik7DQogICAgICAgICAgICAgICAgbm9kZS5GdWxsRGVzY3JpcHRpb24gPSBWaXNpdE51bGxDaGVja2VkKG5vZGUuRnVsbERlc2NyaXB0aW9uKTsNCiAgICAgICAgICAgICAgICBub2RlLkNvbmZpZ3VyYXRpb24gPSBWaXNpdE51bGxDaGVja2VkKG5vZGUuQ29uZmlndXJhdGlvbik7DQogICAgICAgICAgICAgICAgbm9kZS5IZWxwID0gVmlzaXROdWxsQ2hlY2tlZChub2RlLkhlbHApOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICByZXR1cm4gbm9kZTsNCiAgICAgICAgfQ0KDQogICAgICAgIHB1YmxpYyB2aXJ0dWFsIFJ1bGVDb25maWd1cmF0aW9uIFZpc2l0UnVsZUNvbmZpZ3VyYXRpb24oUnVsZUNvbmZpZ3VyYXRpb24gbm9kZSkNCiAgICAgICAgew0KICAgICAgICAgICAgaWYgKG5vZGUgIT0gbnVsbCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgcmV0dXJuIG5vZGU7DQogICAgICAgIH0NCg0KICAgICAgICBwdWJsaWMgdmlydHVhbCBSdW4gVmlzaXRSdW4oUnVuIG5vZGUpDQogICAgICAgIHsNCiAgICAgICAgICAgIGlmIChub2RlICE9IG51bGwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgbm9kZS5Ub29sID0gVmlzaXROdWxsQ2hlY2tlZChub2RlLlRvb2wpOw0KICAgICAgICAgICAgICAgIGlmIChub2RlLkludm9jYXRpb25zICE9IG51bGwpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBmb3IgKGludCBpbmRleF8wID0gMDsgaW5kZXhfMCA8IG5vZGUuSW52b2NhdGlvbnMuQ291bnQ7ICsraW5kZXhfMCkNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgbm9kZS5JbnZvY2F0aW9uc1tpbmRleF8wXSA9IFZpc2l0TnVsbENoZWNrZWQobm9kZS5JbnZvY2F0aW9uc1tpbmRleF8wXSk7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICBub2RlLkNvbnZlcnNpb24gPSBWaXNpdE51bGxDaGVja2VkKG5vZGUuQ29udmVyc2lvbik7DQogICAgICAgICAgICAgICAgaWYgKG5vZGUuVmVyc2lvbkNvbnRyb2xQcm92ZW5hbmNlICE9IG51bGwpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBmb3IgKGludCBpbmRleF8wID0gMDsgaW5kZXhfMCA8IG5vZGUuVmVyc2lvbkNvbnRyb2xQcm92ZW5hbmNlLkNvdW50OyArK2luZGV4XzApDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIG5vZGUuVmVyc2lvbkNvbnRyb2xQcm92ZW5hbmNlW2luZGV4XzBdID0gVmlzaXROdWxsQ2hlY2tlZChub2RlLlZlcnNpb25Db250cm9sUHJvdmVuYW5jZVtpbmRleF8wXSk7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICBpZiAobm9kZS5GaWxlcyAhPSBudWxsKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGtleXMgPSBub2RlLkZpbGVzLktleXMuVG9BcnJheSgpOw0KICAgICAgICAgICAgICAgICAgICBmb3JlYWNoICh2YXIga2V5IGluIGtleXMpDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciB2YWx1ZSA9IG5vZGUuRmlsZXNba2V5XTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZSAhPSBudWxsKQ0KICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vZGUuRmlsZXNba2V5XSA9IFZpc2l0TnVsbENoZWNrZWQodmFsdWUpOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgaWYgKG5vZGUuTG9naWNhbExvY2F0aW9ucyAhPSBudWxsKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGtleXMgPSBub2RlLkxvZ2ljYWxMb2NhdGlvbnMuS2V5cy5Ub0FycmF5KCk7DQogICAgICAgICAgICAgICAgICAgIGZvcmVhY2ggKHZhciBrZXkgaW4ga2V5cykNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHZhbHVlID0gbm9kZS5Mb2dpY2FsTG9jYXRpb25zW2tleV07DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWUgIT0gbnVsbCkNCiAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBub2RlLkxvZ2ljYWxMb2NhdGlvbnNba2V5XSA9IFZpc2l0TnVsbENoZWNrZWQodmFsdWUpOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgaWYgKG5vZGUuR3JhcGhzICE9IG51bGwpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBmb3IgKGludCBpbmRleF8wID0gMDsgaW5kZXhfMCA8IG5vZGUuR3JhcGhzLkNvdW50OyArK2luZGV4XzApDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIG5vZGUuR3JhcGhzW2luZGV4XzBdID0gVmlzaXROdWxsQ2hlY2tlZChub2RlLkdyYXBoc1tpbmRleF8wXSk7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICBpZiAobm9kZS5SZXN1bHRzICE9IG51bGwpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBmb3IgKGludCBpbmRleF8wID0gMDsgaW5kZXhfMCA8IG5vZGUuUmVzdWx0cy5Db3VudDsgKytpbmRleF8wKQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICBub2RlLlJlc3VsdHNbaW5kZXhfMF0gPSBWaXNpdE51bGxDaGVja2VkKG5vZGUuUmVzdWx0c1tpbmRleF8wXSk7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICBub2RlLlJlc291cmNlcyA9IFZpc2l0TnVsbENoZWNrZWQobm9kZS5SZXNvdXJjZXMpOw0KICAgICAgICAgICAgICAgIG5vZGUuRGVzY3JpcHRpb24gPSBWaXNpdE51bGxDaGVja2VkKG5vZGUuRGVzY3JpcHRpb24pOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICByZXR1cm4gbm9kZTsNCiAgICAgICAgfQ0KDQogICAgICAgIHB1YmxpYyB2aXJ0dWFsIFNhcmlmTG9nIFZpc2l0U2FyaWZMb2coU2FyaWZMb2cgbm9kZSkNCiAgICAgICAgew0KICAgICAgICAgICAgaWYgKG5vZGUgIT0gbnVsbCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBpZiAobm9kZS5SdW5zICE9IG51bGwpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBmb3IgKGludCBpbmRleF8wID0gMDsgaW5kZXhfMCA8IG5vZGUuUnVucy5Db3VudDsgKytpbmRleF8wKQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICBub2RlLlJ1bnNbaW5kZXhfMF0gPSBWaXNpdE51bGxDaGVja2VkKG5vZGUuUnVuc1tpbmRleF8wXSk7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIHJldHVybiBub2RlOw0KICAgICAgICB9DQoNCiAgICAgICAgcHVibGljIHZpcnR1YWwgU3RhY2sgVmlzaXRTdGFjayhTdGFjayBub2RlKQ0KICAgICAgICB7DQogICAgICAgICAgICBpZiAobm9kZSAhPSBudWxsKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIG5vZGUuTWVzc2FnZSA9IFZpc2l0TnVsbENoZWNrZWQobm9kZS5NZXNzYWdlKTsNCiAgICAgICAgICAgICAgICBpZiAobm9kZS5GcmFtZXMgIT0gbnVsbCkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIGZvciAoaW50IGluZGV4XzAgPSAwOyBpbmRleF8wIDwgbm9kZS5GcmFtZXMuQ291bnQ7ICsraW5kZXhfMCkNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgbm9kZS5GcmFtZXNbaW5kZXhfMF0gPSBWaXNpdE51bGxDaGVja2VkKG5vZGUuRnJhbWVzW2luZGV4XzBdKTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgcmV0dXJuIG5vZGU7DQogICAgICAgIH0NCg0KICAgICAgICBwdWJsaWMgdmlydHVhbCBTdGFja0ZyYW1lIFZpc2l0U3RhY2tGcmFtZShTdGFja0ZyYW1lIG5vZGUpDQogICAgICAgIHsNCiAgICAgICAgICAgIGlmIChub2RlICE9IG51bGwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgbm9kZS5Mb2NhdGlvbiA9IFZpc2l0TnVsbENoZWNrZWQobm9kZS5Mb2NhdGlvbik7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIHJldHVybiBub2RlOw0KICAgICAgICB9DQoNCiAgICAgICAgcHVibGljIHZpcnR1YWwgVGhyZWFkRmxvdyBWaXNpdFRocmVhZEZsb3coVGhyZWFkRmxvdyBub2RlKQ0KICAgICAgICB7DQogICAgICAgICAgICBpZiAobm9kZSAhPSBudWxsKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIG5vZGUuTWVzc2FnZSA9IFZpc2l0TnVsbENoZWNrZWQobm9kZS5NZXNzYWdlKTsNCiAgICAgICAgICAgICAgICBpZiAobm9kZS5Mb2NhdGlvbnMgIT0gbnVsbCkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIGZvciAoaW50IGluZGV4XzAgPSAwOyBpbmRleF8wIDwgbm9kZS5Mb2NhdGlvbnMuQ291bnQ7ICsraW5kZXhfMCkNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgbm9kZS5Mb2NhdGlvbnNbaW5kZXhfMF0gPSBWaXNpdE51bGxDaGVja2VkKG5vZGUuTG9jYXRpb25zW2luZGV4XzBdKTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgcmV0dXJuIG5vZGU7DQogICAgICAgIH0NCg0KICAgICAgICBwdWJsaWMgdmlydHVhbCBUaHJlYWRGbG93TG9jYXRpb24gVmlzaXRUaHJlYWRGbG93TG9jYXRpb24oVGhyZWFkRmxvd0xvY2F0aW9uIG5vZGUpDQogICAgICAgIHsNCiAgICAgICAgICAgIGlmIChub2RlICE9IG51bGwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgbm9kZS5Mb2NhdGlvbiA9IFZpc2l0TnVsbENoZWNrZWQobm9kZS5Mb2NhdGlvbik7DQogICAgICAgICAgICAgICAgbm9kZS5TdGFjayA9IFZpc2l0TnVsbENoZWNrZWQobm9kZS5TdGFjayk7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIHJldHVybiBub2RlOw0KICAgICAgICB9DQoNCiAgICAgICAgcHVibGljIHZpcnR1YWwgVG9vbCBWaXNpdFRvb2woVG9vbCBub2RlKQ0KICAgICAgICB7DQogICAgICAgICAgICBpZiAobm9kZSAhPSBudWxsKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICByZXR1cm4gbm9kZTsNCiAgICAgICAgfQ0KDQogICAgICAgIHB1YmxpYyB2aXJ0dWFsIFZlcnNpb25Db250cm9sRGV0YWlscyBWaXNpdFZlcnNpb25Db250cm9sRGV0YWlscyhWZXJzaW9uQ29udHJvbERldGFpbHMgbm9kZSkNCiAgICAgICAgew0KICAgICAgICAgICAgaWYgKG5vZGUgIT0gbnVsbCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgcmV0dXJuIG5vZGU7DQogICAgICAgIH0NCiAgICB9DQp9" + ], + "partialFingerprints": { + "UniqueId": "BaseType" }, - "hashes": [ - { - "value": "255FED93CB148C33831A7DDE0968654C", - "algorithm": "md5" - }, - { - "value": "73956B7D814430A63C53931B8F9282020C4061FB", - "algorithm": "sha-1" - }, - { - "value": "7F6A1759D284B096905C58C2FE1F22D1FE388E9F2E4267EB3C81D94074B633C8", - "algorithm": "sha-256" - } - ] + "properties": { + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" + } }, - "file:///E:/src/sarif-sdk-test/src/Sarif/SarifUtilities.cs": { - "mimeType": "text/x-csharp", - "contents": { - "binary": "77u/Ly8gQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuDQovLyBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UuIFNlZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHByb2plY3Qgcm9vdCBmb3IgZnVsbCBsaWNlbnNlIGluZm9ybWF0aW9uLg0KDQp1c2luZyBTeXN0ZW07DQp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsNCnVzaW5nIFN5c3RlbS5HbG9iYWxpemF0aW9uOw0KdXNpbmcgU3lzdGVtLklPOw0KdXNpbmcgU3lzdGVtLlJlZmxlY3Rpb247DQp1c2luZyBTeXN0ZW0uUmVzb3VyY2VzOw0KdXNpbmcgU3lzdGVtLlRleHQ7DQp1c2luZyBTeXN0ZW0uVGV4dC5SZWd1bGFyRXhwcmVzc2lvbnM7DQoNCm5hbWVzcGFjZSBNaWNyb3NvZnQuQ29kZUFuYWx5c2lzLlNhcmlmDQp7DQogICAgcHVibGljIHN0YXRpYyBjbGFzcyBTYXJpZlV0aWxpdGllcw0KICAgIHsNCiAgICAgICAgcHJpdmF0ZSBzdGF0aWMgUmVnZXggc19zZW1WZXIyMDAgPSBuZXcgUmVnZXgoQCJeKD88bWFqb3I+XGQrKVwuKD88bWlub3I+XGQrKVwuKD88cGF0Y2g+XGQrKSgtKD88cHJlcmVsZWFzZT5bQS1aYS16MC05XC1cLl0rKSk/KFwrKD88YnVpbGQ+W0EtWmEtejAtOVwtXC5dKykpPyQiLCBSZWdleE9wdGlvbnMuQ29tcGlsZWQpOw0KICAgICAgICBwdWJsaWMgc3RhdGljIGJvb2wgSXNTZW1hbnRpY1ZlcnNpb25pbmdDb21wYXRpYmxlKHRoaXMgc3RyaW5nIHZlcnNpb25UZXh0KQ0KICAgICAgICB7DQogICAgICAgICAgICByZXR1cm4gc19zZW1WZXIyMDAuSXNNYXRjaCh2ZXJzaW9uVGV4dCk7DQogICAgICAgIH0NCg0KICAgICAgICBwcml2YXRlIGNvbnN0IHN0cmluZyBWMV8wXzAgPSAiMS4wLjAiOw0KICAgICAgICBwcml2YXRlIGNvbnN0IHN0cmluZyBWMV8wXzBfQkVUQV81ID0gIjEuMC4wLWJldGEuNSI7DQogICAgICAgIHByaXZhdGUgY29uc3Qgc3RyaW5nIFYyXzBfMCA9ICIyLjAuMCI7DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gUmV0dXJucyBhbiBJU08gODYwMSBjb21wYXRpYmxlIHVuaXZlcnNhbCBkYXRlIHRpbWUgZm9ybWF0IHN0cmluZyB3aXRoDQogICAgICAgIC8vLyBzZWNvbmRzIHByZWNpc2lvbiwgdXNlZCB0byBwcm9kdWNlIHRpbWVzIHN1Y2ggYXMgIjIwMTYtMDMtMDJUMDE6NDQ6NTBaIg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IHN0cmluZyBTYXJpZkRhdGVUaW1lRm9ybWF0U2Vjb25kc1ByZWNpc2lvbiA9ICJ5eXl5Jy0nTU0nLSdkZCdUJ0hIJzonbW0nOidzcydaJyI7DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gUmV0dXJucyBhbiBJU08gODYwMSBjb21wYXRpYmxlIHVuaXZlcnNhbCBkYXRlIHRpbWUgZm9ybWF0IHN0cmluZyB3aXRoDQogICAgICAgIC8vLyBtaWxsaXNlY29uZHMgcHJlY2lzaW9uLCB1c2VkIHRvIHByb2R1Y2UgdGltZXMgc3VjaCBhcyAiMjAxNi0wMy0wMlQwMTo0NDo1MC4xMjNaIg0KICAgICAgICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IHN0cmluZyBTYXJpZkRhdGVUaW1lRm9ybWF0TWlsbGlzZWNvbmRzUHJlY2lzaW9uID0gInl5eXknLSdNTSctJ2RkJ1QnSEgnOidtbSc6J3NzLmZmZidaJyI7DQoNCg0KICAgICAgICBwdWJsaWMgc3RhdGljIFNhcmlmVmVyc2lvbiBDb252ZXJ0VG9TYXJpZlZlcnNpb24odGhpcyBzdHJpbmcgc2FyaWZWZXJzaW9uVGV4dCkNCiAgICAgICAgew0KICAgICAgICAgICAgc3dpdGNoIChzYXJpZlZlcnNpb25UZXh0KQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIGNhc2UgVjFfMF8wX0JFVEFfNTogcmV0dXJuIFNhcmlmVmVyc2lvbi5PbmVaZXJvWmVyb0JldGFGaXZlOw0KICAgICAgICAgICAgICAgIGNhc2UgVjFfMF8wOiByZXR1cm4gU2FyaWZWZXJzaW9uLk9uZVplcm9aZXJvOw0KICAgICAgICAgICAgICAgIGNhc2UgVjJfMF8wOiByZXR1cm4gU2FyaWZWZXJzaW9uLlR3b1plcm9aZXJvOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICByZXR1cm4gU2FyaWZWZXJzaW9uLlVua25vd247DQogICAgICAgIH0NCg0KICAgICAgICBwdWJsaWMgc3RhdGljIHN0cmluZyBDb252ZXJ0VG9UZXh0KHRoaXMgU2FyaWZWZXJzaW9uIHNhcmlmVmVyc2lvbikNCiAgICAgICAgew0KICAgICAgICAgICAgc3dpdGNoIChzYXJpZlZlcnNpb24pDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgY2FzZSBTYXJpZlZlcnNpb24uT25lWmVyb1plcm9CZXRhRml2ZTogeyByZXR1cm4gVjFfMF8wX0JFVEFfNTsgfQ0KICAgICAgICAgICAgICAgIGNhc2UgU2FyaWZWZXJzaW9uLk9uZVplcm9aZXJvOiB7IHJldHVybiBWMV8wXzA7IH0NCiAgICAgICAgICAgICAgICBjYXNlIFNhcmlmVmVyc2lvbi5Ud29aZXJvWmVybzogeyByZXR1cm4gVjJfMF8wOyB9DQogICAgICAgICAgICB9DQogICAgICAgICAgICByZXR1cm4gInVua25vd24iOw0KICAgICAgICB9DQoNCiAgICAgICAgcHVibGljIHN0YXRpYyBVcmkgQ29udmVydFRvU2NoZW1hVXJpKHRoaXMgU2FyaWZWZXJzaW9uIHNhcmlmVmVyc2lvbikNCiAgICAgICAgew0KICAgICAgICAgICAgcmV0dXJuIG5ldyBVcmkoImh0dHA6Ly9qc29uLnNjaGVtYXN0b3JlLm9yZy9zYXJpZi0iICsgc2FyaWZWZXJzaW9uLkNvbnZlcnRUb1RleHQoKSwgVXJpS2luZC5BYnNvbHV0ZSk7DQogICAgICAgIH0NCg0KICAgICAgICBwdWJsaWMgc3RhdGljIERpY3Rpb25hcnk8c3RyaW5nLCBzdHJpbmc+IEJ1aWxkTWVzc2FnZUZvcm1hdHMoSUVudW1lcmFibGU8c3RyaW5nPiByZXNvdXJjZU5hbWVzLCBSZXNvdXJjZU1hbmFnZXIgcmVzb3VyY2VNYW5hZ2VyKQ0KICAgICAgICB7DQogICAgICAgICAgICBpZiAocmVzb3VyY2VOYW1lcyA9PSBudWxsKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHRocm93IG5ldyBBcmd1bWVudE51bGxFeGNlcHRpb24obmFtZW9mKHJlc291cmNlTmFtZXMpKTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgaWYgKHJlc291cmNlTWFuYWdlciA9PSBudWxsKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHRocm93IG5ldyBBcmd1bWVudE51bGxFeGNlcHRpb24obmFtZW9mKHJlc291cmNlTWFuYWdlcikpOw0KICAgICAgICAgICAgfQ0KDQoNCiAgICAgICAgICAgIC8vIE5vdGUgdGhpcyBkaWN0aW9uYXJ5IHByb3ZpZGVzIGZvciBjYXNlLWluc2Vuc2l0aXZlIGtleXMNCiAgICAgICAgICAgIHZhciBkaWN0aW9uYXJ5ID0gbmV3IERpY3Rpb25hcnk8c3RyaW5nLCBzdHJpbmc+KFN0cmluZ0NvbXBhcmVyLk9yZGluYWxJZ25vcmVDYXNlKTsNCg0KICAgICAgICAgICAgZm9yZWFjaCAoc3RyaW5nIHJlc291cmNlTmFtZSBpbiByZXNvdXJjZU5hbWVzKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHN0cmluZyByZXNvdXJjZVZhbHVlID0gcmVzb3VyY2VNYW5hZ2VyLkdldFN0cmluZyhyZXNvdXJjZU5hbWUpOw0KICAgICAgICAgICAgICAgIGRpY3Rpb25hcnlbcmVzb3VyY2VOYW1lXSA9IHJlc291cmNlVmFsdWU7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIHJldHVybiBkaWN0aW9uYXJ5Ow0KICAgICAgICB9DQoNCiAgICAgICAgcHVibGljIHN0YXRpYyB2b2lkIEluaXRpYWxpemVGcm9tQXNzZW1ibHkodGhpcyBUb29sIHRvb2wsIEFzc2VtYmx5IGFzc2VtYmx5KQ0KICAgICAgICB7DQogICAgICAgICAgICBJbml0aWFsaXplRnJvbUFzc2VtYmx5KHRvb2wsIGFzc2VtYmx5LCBwcmVyZWxlYXNlSW5mbzogbnVsbCk7DQogICAgICAgIH0NCg0KICAgICAgICBwdWJsaWMgc3RhdGljIHZvaWQgSW5pdGlhbGl6ZUZyb21Bc3NlbWJseSh0aGlzIFRvb2wgdG9vbCwgQXNzZW1ibHkgYXNzZW1ibHksIHN0cmluZyBwcmVyZWxlYXNlSW5mbykNCiAgICAgICAgew0KICAgICAgICAgICAgaWYgKGFzc2VtYmx5ID09IG51bGwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgdGhyb3cgbmV3IEFyZ3VtZW50TnVsbEV4Y2VwdGlvbihuYW1lb2YoYXNzZW1ibHkpKTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgaWYgKHRvb2wgPT0gbnVsbCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgQXJndW1lbnROdWxsRXhjZXB0aW9uKG5hbWVvZih0b29sKSk7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIHN0cmluZyBuYW1lID0gUGF0aC5HZXRGaWxlTmFtZVdpdGhvdXRFeHRlbnNpb24oYXNzZW1ibHkuTG9jYXRpb24pOw0KICAgICAgICAgICAgVmVyc2lvbiB2ZXJzaW9uID0gYXNzZW1ibHkuR2V0TmFtZSgpLlZlcnNpb247DQoNCiAgICAgICAgICAgIHRvb2wuTmFtZSA9IG5hbWU7DQogICAgICAgICAgICB0b29sLlZlcnNpb24gPSB2ZXJzaW9uLk1ham9yLlRvU3RyaW5nKEN1bHR1cmVJbmZvLkludmFyaWFudEN1bHR1cmUpICsgIi4iICsgdmVyc2lvbi5NaW5vci5Ub1N0cmluZyhDdWx0dXJlSW5mby5JbnZhcmlhbnRDdWx0dXJlKSArICIuIiArIHZlcnNpb24uQnVpbGQuVG9TdHJpbmcoQ3VsdHVyZUluZm8uSW52YXJpYW50Q3VsdHVyZSk7DQogICAgICAgICAgICB0b29sLkZ1bGxOYW1lID0gbmFtZSArICIgIiArIHRvb2wuVmVyc2lvbiArIChwcmVyZWxlYXNlSW5mbyA/PyAiIik7DQogICAgICAgIH0NCg0KICAgICAgICBwdWJsaWMgc3RhdGljIHN0cmluZyBGb3JtYXRNZXNzYWdlKHRoaXMgRXhjZXB0aW9uIGV4Y2VwdGlvbikNCiAgICAgICAgew0KICAgICAgICAgICAgaWYgKGV4Y2VwdGlvbiA9PSBudWxsKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHRocm93IG5ldyBBcmd1bWVudE51bGxFeGNlcHRpb24obmFtZW9mKGV4Y2VwdGlvbikpOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAvLyBSZXRyaWV2ZXMgYSBmb3JtYXR0ZWQgbWVzc2FnZSB0aGF0IGluY2x1ZGVzIGV4Y2VwdGlvbiB0eXBlIGRldGFpbHMsIGUuZy4NCiAgICAgICAgICAgIC8vIFN5c3RlbS5JbnZhbGlkT3BlcmF0aW9uRXhjZXB0aW9uOiBPcGVyYXRpb24gaXMgbm90IHZhbGlkIGR1ZSB0byB0aGUgY3VycmVudCBzdGF0ZSBvZiB0aGUgb2JqZWN0Lg0KICAgICAgICAgICAgcmV0dXJuIGV4Y2VwdGlvbi5Ub1N0cmluZygpLlNwbGl0KG5ldyBzdHJpbmdbXSB7IEVudmlyb25tZW50Lk5ld0xpbmUgfSwgU3RyaW5nU3BsaXRPcHRpb25zLk5vbmUpWzBdOw0KICAgICAgICB9DQoNCiAgICAgICAgcHVibGljIHN0YXRpYyB2b2lkIEFkZE9yVXBkYXRlRGljdGlvbmFyeUVudHJ5PFRLZXksIFRWYWx1ZT4oSURpY3Rpb25hcnk8VEtleSwgVFZhbHVlPiBkaWN0aW9uYXJ5LCBUS2V5IGtleSwgVFZhbHVlIHZhbCkNCiAgICAgICAgew0KICAgICAgICAgICAgaWYgKGRpY3Rpb25hcnkuQ29udGFpbnNLZXkoa2V5KSkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBkaWN0aW9uYXJ5W2tleV0gPSB2YWw7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgZGljdGlvbmFyeS5BZGQoa2V5LCB2YWwpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICAgICAgcHVibGljIHN0YXRpYyBDb2RlRmxvdyBDcmVhdGVTaW5nbGVUaHJlYWRlZENvZGVGbG93KElFbnVtZXJhYmxlPFRocmVhZEZsb3dMb2NhdGlvbj4gbG9jYXRpb25zID0gbnVsbCkNCiAgICAgICAgew0KICAgICAgICAgICAgcmV0dXJuIG5ldyBDb2RlRmxvdw0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIFRocmVhZEZsb3dzID0gbmV3IExpc3Q8VGhyZWFkRmxvdz4oKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgbmV3IFRocmVhZEZsb3cNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgTG9jYXRpb25zID0gbmV3IExpc3Q8VGhyZWFkRmxvd0xvY2F0aW9uPihsb2NhdGlvbnMgPz8gbmV3IFRocmVhZEZsb3dMb2NhdGlvbltdeyB9KQ0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfTsNCiAgICAgICAgfQ0KDQogICAgICAgIHB1YmxpYyBzdGF0aWMgc3RyaW5nIEdldFV0ZjhCYXNlNjRTdHJpbmcoc3RyaW5nIHMpDQogICAgICAgIHsNCiAgICAgICAgICAgIHJldHVybiBHZXRCYXNlNjRTdHJpbmcocywgRW5jb2RpbmcuVVRGOCk7DQogICAgICAgIH0NCg0KICAgICAgICBwdWJsaWMgc3RhdGljIHN0cmluZyBHZXRCYXNlNjRTdHJpbmcoc3RyaW5nIHMsIEVuY29kaW5nIGVuY29kaW5nKQ0KICAgICAgICB7DQogICAgICAgICAgICBieXRlW10gYnl0ZXMgPSBlbmNvZGluZy5HZXRCeXRlcyhzKTsNCiAgICAgICAgICAgIHJldHVybiBDb252ZXJ0LlRvQmFzZTY0U3RyaW5nKGJ5dGVzKTsNCiAgICAgICAgfQ0KDQogICAgICAgIHB1YmxpYyBzdGF0aWMgc3RyaW5nIERlY29kZUJhc2U2NFN0cmluZyhzdHJpbmcgcywgRW5jb2RpbmcgZW5jb2RpbmcgPSBudWxsKQ0KICAgICAgICB7DQogICAgICAgICAgICBlbmNvZGluZyA9IGVuY29kaW5nID8/IEVuY29kaW5nLlVURjg7DQogICAgICAgICAgICBieXRlW10gYnl0ZXMgPSBDb252ZXJ0LkZyb21CYXNlNjRTdHJpbmcocyk7DQogICAgICAgICAgICByZXR1cm4gZW5jb2RpbmcuR2V0U3RyaW5nKGJ5dGVzKTsNCiAgICAgICAgfQ0KDQogICAgICAgIHB1YmxpYyBzdGF0aWMgaW50IEdldEJ5dGVMZW5ndGgoY2hhcltdIGNoYXJzLCBFbmNvZGluZyBlbmNvZGluZykNCiAgICAgICAgew0KICAgICAgICAgICAgY2hhcnMgPSBjaGFycyA/PyB0aHJvdyBuZXcgQXJndW1lbnROdWxsRXhjZXB0aW9uKG5hbWVvZihjaGFycykpOw0KICAgICAgICAgICAgZW5jb2RpbmcgPSBlbmNvZGluZyA/PyB0aHJvdyBuZXcgQXJndW1lbnROdWxsRXhjZXB0aW9uKG5hbWVvZihlbmNvZGluZykpOw0KDQogICAgICAgICAgICBzdHJpbmcgcyA9IG5ldyBTdHJpbmcoY2hhcnMpOw0KICAgICAgICAgICAgcmV0dXJuIEdldEJ5dGVMZW5ndGgocywgZW5jb2RpbmcpOw0KICAgICAgICB9DQoNCiAgICAgICAgcHVibGljIHN0YXRpYyBpbnQgR2V0Qnl0ZUxlbmd0aChzdHJpbmcgcywgRW5jb2RpbmcgZW5jb2RpbmcpDQogICAgICAgIHsNCiAgICAgICAgICAgIHMgPSBzID8/IHRocm93IG5ldyBBcmd1bWVudE51bGxFeGNlcHRpb24obmFtZW9mKHMpKTsNCiAgICAgICAgICAgIGVuY29kaW5nID0gZW5jb2RpbmcgPz8gdGhyb3cgbmV3IEFyZ3VtZW50TnVsbEV4Y2VwdGlvbihuYW1lb2YoZW5jb2RpbmcpKTsNCiAgICAgICAgICAgIA0KICAgICAgICAgICAgYnl0ZVtdIGJ5dGVzID0gZW5jb2RpbmcuR2V0Qnl0ZXMocyk7DQogICAgICAgICAgICByZXR1cm4gYnl0ZXMuTGVuZ3RoOw0KICAgICAgICB9DQogICAgfQ0KfQ0K" + { + "ruleId": "CA1725", + "level": "error", + "message": { + "text": "In member 'JsonSchemaContractResolver.ResolveContract(Type)', change parameter name 'objectType' to 'type' in order to match the identifier as it has been declared in 'CamelCasePropertyNamesContractResolver.ResolveContract(Type)'." }, - "hashes": [ - { - "value": "A9AFF0B515C8A296DD1914464D70C1EF", - "algorithm": "md5" - }, - { - "value": "E35835099F8BF83F3CF06FD7CF756AD4C0659E38", - "algorithm": "sha-1" - }, + "locations": [ { - "value": "921EF3620C4C06B60271DB98B2840A8917E242F82D7C4B9947FC88B750543E1F", - "algorithm": "sha-256" + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Microsoft.Json.Schema.dll", + "uriBaseId": "$(ProjectDir)", + "index": 1 + } + }, + "logicalLocations": [ + { + "index": 63, + "fullyQualifiedName": "microsoft.json.schema.dll!Microsoft.Json.Schema.JsonSchemaContractResolver.ResolveContract(System.Type)" + } + ] } - ] + ], + "partialFingerprints": { + "UniqueId": "0#" + }, + "properties": { + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" + } }, - "file:///E:/src/sarif-sdk-test/src/Sarif/VersionOne/SarifUtilitiesVersionOne.cs": { - "mimeType": "text/x-csharp", - "contents": { - "binary": "77u/Ly8gQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuDQovLyBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UuIFNlZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHByb2plY3Qgcm9vdCBmb3IgZnVsbCBsaWNlbnNlIGluZm9ybWF0aW9uLg0KDQp1c2luZyBTeXN0ZW07DQp1c2luZyBNaWNyb3NvZnQuQ29kZUFuYWx5c2lzLlNhcmlmLlZlcnNpb25PbmU7DQoNCm5hbWVzcGFjZSBNaWNyb3NvZnQuQ29kZUFuYWx5c2lzLlNhcmlmDQp7DQogICAgcHVibGljIHN0YXRpYyBjbGFzcyBTYXJpZlV0aWxpdGllc1ZlcnNpb25PbmUNCiAgICB7DQogICAgICAgIHByaXZhdGUgY29uc3Qgc3RyaW5nIFYxXzBfMCA9ICIxLjAuMCI7DQoNCiAgICAgICAgcHVibGljIHN0YXRpYyBzdHJpbmcgQ29udmVydFRvVGV4dCh0aGlzIFNhcmlmVmVyc2lvblZlcnNpb25PbmUgc2FyaWZWZXJzaW9uKQ0KICAgICAgICB7DQogICAgICAgICAgICBzd2l0Y2ggKHNhcmlmVmVyc2lvbikNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBjYXNlIFNhcmlmVmVyc2lvblZlcnNpb25PbmUuT25lWmVyb1plcm86DQogICAgICAgICAgICAgICAgICAgIHJldHVybiBWMV8wXzA7DQogICAgICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEFyZ3VtZW50RXhjZXB0aW9uKCJVbnN1cHBvcnRlZCBTQVJJRiB2ZXJzaW9uIiwgbmFtZW9mKHNhcmlmVmVyc2lvbikpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICAgICAgcHVibGljIHN0YXRpYyBVcmkgQ29udmVydFRvU2NoZW1hVXJpKHRoaXMgU2FyaWZWZXJzaW9uVmVyc2lvbk9uZSBzYXJpZlZlcnNpb24pDQogICAgICAgIHsNCiAgICAgICAgICAgIHJldHVybiBuZXcgVXJpKCJodHRwOi8vanNvbi5zY2hlbWFzdG9yZS5vcmcvc2FyaWYtIiArIHNhcmlmVmVyc2lvbi5Db252ZXJ0VG9UZXh0KCksIFVyaUtpbmQuQWJzb2x1dGUpOw0KICAgICAgICB9DQogICAgfQ0KfQ0K" + { + "ruleId": "CA1062", + "message": { + "text": "In externally visible method 'JsonSchemaExtensions.SafeGetType(this JsonSchema)', validate parameter 'schema' before using it." }, - "hashes": [ - { - "value": "A52EB971CECB082E88FB3926503B4AA4", - "algorithm": "md5" - }, - { - "value": "061C7EFC892A655AB56CEC80929E858C95A9A0CC", - "algorithm": "sha-1" - }, + "locations": [ { - "value": "90E582F79B8D7E0B7D884E1E13377363A523E97561C74DA8D4D68BDFC77D4A56", - "algorithm": "sha-256" + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Microsoft.Json.Schema.dll", + "uriBaseId": "$(ProjectDir)", + "index": 1 + } + }, + "logicalLocations": [ + { + "index": 65, + "fullyQualifiedName": "microsoft.json.schema.dll!Microsoft.Json.Schema.JsonSchemaExtensions.SafeGetType(Microsoft.Json.Schema.JsonSchema)" + } + ] } - ] + ], + "partialFingerprints": { + "UniqueId": "0" + }, + "properties": { + "Category": "Microsoft.Design", + "FixCategory": "DependsOnFix" + } }, - "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/Stack.cs": { - "mimeType": "text/x-csharp", - "contents": { - "binary": "Ly8gQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQuICBBbGwgUmlnaHRzIFJlc2VydmVkLg0KLy8gTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlLiBTZWUgTElDRU5TRSBmaWxlIGluIHRoZSBwcm9qZWN0IHJvb3QgZm9yIGZ1bGwgbGljZW5zZSBpbmZvcm1hdGlvbi4NCg0KdXNpbmcgU3lzdGVtOw0KdXNpbmcgU3lzdGVtLkNvZGVEb20uQ29tcGlsZXI7DQp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsNCnVzaW5nIFN5c3RlbS5SdW50aW1lLlNlcmlhbGl6YXRpb247DQp1c2luZyBNaWNyb3NvZnQuQ29kZUFuYWx5c2lzLlNhcmlmLlJlYWRlcnM7DQoNCm5hbWVzcGFjZSBNaWNyb3NvZnQuQ29kZUFuYWx5c2lzLlNhcmlmDQp7DQogICAgLy8vIDxzdW1tYXJ5Pg0KICAgIC8vLyBBIGNhbGwgc3RhY2sgdGhhdCBpcyByZWxldmFudCB0byBhIHJlc3VsdC4NCiAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgIFtEYXRhQ29udHJhY3RdDQogICAgW0dlbmVyYXRlZENvZGUoIk1pY3Jvc29mdC5Kc29uLlNjaGVtYS5Ub0RvdE5ldCIsICIwLjU2LjAuMCIpXQ0KICAgIHB1YmxpYyBwYXJ0aWFsIGNsYXNzIFN0YWNrIDogUHJvcGVydHlCYWdIb2xkZXIsIElTYXJpZk5vZGUNCiAgICB7DQogICAgICAgIHB1YmxpYyBzdGF0aWMgSUVxdWFsaXR5Q29tcGFyZXI8U3RhY2s+IFZhbHVlQ29tcGFyZXIgPT4gU3RhY2tFcXVhbGl0eUNvbXBhcmVyLkluc3RhbmNlOw0KDQogICAgICAgIHB1YmxpYyBib29sIFZhbHVlRXF1YWxzKFN0YWNrIG90aGVyKSA9PiBWYWx1ZUNvbXBhcmVyLkVxdWFscyh0aGlzLCBvdGhlcik7DQogICAgICAgIHB1YmxpYyBpbnQgVmFsdWVHZXRIYXNoQ29kZSgpID0+IFZhbHVlQ29tcGFyZXIuR2V0SGFzaENvZGUodGhpcyk7DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gR2V0cyBhIHZhbHVlIGluZGljYXRpbmcgdGhlIHR5cGUgb2Ygb2JqZWN0IGltcGxlbWVudGluZyA8c2VlIGNyZWY9IklTYXJpZk5vZGUiIC8+Lg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICBwdWJsaWMgU2FyaWZOb2RlS2luZCBTYXJpZk5vZGVLaW5kDQogICAgICAgIHsNCiAgICAgICAgICAgIGdldA0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHJldHVybiBTYXJpZk5vZGVLaW5kLlN0YWNrOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gQSBtZXNzYWdlIHJlbGV2YW50IHRvIHRoaXMgY2FsbCBzdGFjay4NCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgW0RhdGFNZW1iZXIoTmFtZSA9ICJtZXNzYWdlIiwgSXNSZXF1aXJlZCA9IGZhbHNlLCBFbWl0RGVmYXVsdFZhbHVlID0gZmFsc2UpXQ0KICAgICAgICBwdWJsaWMgTWVzc2FnZSBNZXNzYWdlIHsgZ2V0OyBzZXQ7IH0NCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBBbiBhcnJheSBvZiBzdGFjayBmcmFtZXMgdGhhdCByZXByZXNlbnQgYSBzZXF1ZW5jZSBvZiBjYWxscywgcmVuZGVyZWQgaW4gcmV2ZXJzZSBjaHJvbm9sb2dpY2FsIG9yZGVyLCB0aGF0IGNvbXByaXNlIHRoZSBjYWxsIHN0YWNrLg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICBbRGF0YU1lbWJlcihOYW1lID0gImZyYW1lcyIsIElzUmVxdWlyZWQgPSB0cnVlKV0NCiAgICAgICAgcHVibGljIElMaXN0PFN0YWNrRnJhbWU+IEZyYW1lcyB7IGdldDsgc2V0OyB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gS2V5L3ZhbHVlIHBhaXJzIHRoYXQgcHJvdmlkZSBhZGRpdGlvbmFsIGluZm9ybWF0aW9uIGFib3V0IHRoZSBzdGFjay4NCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgW0RhdGFNZW1iZXIoTmFtZSA9ICJwcm9wZXJ0aWVzIiwgSXNSZXF1aXJlZCA9IGZhbHNlLCBFbWl0RGVmYXVsdFZhbHVlID0gZmFsc2UpXQ0KICAgICAgICBpbnRlcm5hbCBvdmVycmlkZSBJRGljdGlvbmFyeTxzdHJpbmcsIFNlcmlhbGl6ZWRQcm9wZXJ0eUluZm8+IFByb3BlcnRpZXMgeyBnZXQ7IHNldDsgfQ0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIEluaXRpYWxpemVzIGEgbmV3IGluc3RhbmNlIG9mIHRoZSA8c2VlIGNyZWY9IlN0YWNrIiAvPiBjbGFzcy4NCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgcHVibGljIFN0YWNrKCkNCiAgICAgICAgew0KICAgICAgICB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gSW5pdGlhbGl6ZXMgYSBuZXcgaW5zdGFuY2Ugb2YgdGhlIDxzZWUgY3JlZj0iU3RhY2siIC8+IGNsYXNzIGZyb20gdGhlIHN1cHBsaWVkIHZhbHVlcy4NCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgLy8vIDxwYXJhbSBuYW1lPSJtZXNzYWdlIj4NCiAgICAgICAgLy8vIEFuIGluaXRpYWxpemF0aW9uIHZhbHVlIGZvciB0aGUgPHNlZSBjcmVmPSJQOiBNZXNzYWdlIiAvPiBwcm9wZXJ0eS4NCiAgICAgICAgLy8vIDwvcGFyYW0+DQogICAgICAgIC8vLyA8cGFyYW0gbmFtZT0iZnJhbWVzIj4NCiAgICAgICAgLy8vIEFuIGluaXRpYWxpemF0aW9uIHZhbHVlIGZvciB0aGUgPHNlZSBjcmVmPSJQOiBGcmFtZXMiIC8+IHByb3BlcnR5Lg0KICAgICAgICAvLy8gPC9wYXJhbT4NCiAgICAgICAgLy8vIDxwYXJhbSBuYW1lPSJwcm9wZXJ0aWVzIj4NCiAgICAgICAgLy8vIEFuIGluaXRpYWxpemF0aW9uIHZhbHVlIGZvciB0aGUgPHNlZSBjcmVmPSJQOiBQcm9wZXJ0aWVzIiAvPiBwcm9wZXJ0eS4NCiAgICAgICAgLy8vIDwvcGFyYW0+DQogICAgICAgIHB1YmxpYyBTdGFjayhNZXNzYWdlIG1lc3NhZ2UsIElFbnVtZXJhYmxlPFN0YWNrRnJhbWU+IGZyYW1lcywgSURpY3Rpb25hcnk8c3RyaW5nLCBTZXJpYWxpemVkUHJvcGVydHlJbmZvPiBwcm9wZXJ0aWVzKQ0KICAgICAgICB7DQogICAgICAgICAgICBJbml0KG1lc3NhZ2UsIGZyYW1lcywgcHJvcGVydGllcyk7DQogICAgICAgIH0NCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBJbml0aWFsaXplcyBhIG5ldyBpbnN0YW5jZSBvZiB0aGUgPHNlZSBjcmVmPSJTdGFjayIgLz4gY2xhc3MgZnJvbSB0aGUgc3BlY2lmaWVkIGluc3RhbmNlLg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICAvLy8gPHBhcmFtIG5hbWU9Im90aGVyIj4NCiAgICAgICAgLy8vIFRoZSBpbnN0YW5jZSBmcm9tIHdoaWNoIHRoZSBuZXcgaW5zdGFuY2UgaXMgdG8gYmUgaW5pdGlhbGl6ZWQuDQogICAgICAgIC8vLyA8L3BhcmFtPg0KICAgICAgICAvLy8gPGV4Y2VwdGlvbiBjcmVmPSJBcmd1bWVudE51bGxFeGNlcHRpb24iPg0KICAgICAgICAvLy8gVGhyb3duIGlmIDxwYXJhbXJlZiBuYW1lPSJvdGhlciIgLz4gaXMgbnVsbC4NCiAgICAgICAgLy8vIDwvZXhjZXB0aW9uPg0KICAgICAgICBwdWJsaWMgU3RhY2soU3RhY2sgb3RoZXIpDQogICAgICAgIHsNCiAgICAgICAgICAgIGlmIChvdGhlciA9PSBudWxsKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHRocm93IG5ldyBBcmd1bWVudE51bGxFeGNlcHRpb24obmFtZW9mKG90aGVyKSk7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIEluaXQob3RoZXIuTWVzc2FnZSwgb3RoZXIuRnJhbWVzLCBvdGhlci5Qcm9wZXJ0aWVzKTsNCiAgICAgICAgfQ0KDQogICAgICAgIElTYXJpZk5vZGUgSVNhcmlmTm9kZS5EZWVwQ2xvbmUoKQ0KICAgICAgICB7DQogICAgICAgICAgICByZXR1cm4gRGVlcENsb25lQ29yZSgpOw0KICAgICAgICB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gQ3JlYXRlcyBhIGRlZXAgY29weSBvZiB0aGlzIGluc3RhbmNlLg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICBwdWJsaWMgU3RhY2sgRGVlcENsb25lKCkNCiAgICAgICAgew0KICAgICAgICAgICAgcmV0dXJuIChTdGFjaylEZWVwQ2xvbmVDb3JlKCk7DQogICAgICAgIH0NCg0KICAgICAgICBwcml2YXRlIElTYXJpZk5vZGUgRGVlcENsb25lQ29yZSgpDQogICAgICAgIHsNCiAgICAgICAgICAgIHJldHVybiBuZXcgU3RhY2sodGhpcyk7DQogICAgICAgIH0NCg0KICAgICAgICBwcml2YXRlIHZvaWQgSW5pdChNZXNzYWdlIG1lc3NhZ2UsIElFbnVtZXJhYmxlPFN0YWNrRnJhbWU+IGZyYW1lcywgSURpY3Rpb25hcnk8c3RyaW5nLCBTZXJpYWxpemVkUHJvcGVydHlJbmZvPiBwcm9wZXJ0aWVzKQ0KICAgICAgICB7DQogICAgICAgICAgICBpZiAobWVzc2FnZSAhPSBudWxsKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIE1lc3NhZ2UgPSBuZXcgTWVzc2FnZShtZXNzYWdlKTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgaWYgKGZyYW1lcyAhPSBudWxsKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHZhciBkZXN0aW5hdGlvbl8wID0gbmV3IExpc3Q8U3RhY2tGcmFtZT4oKTsNCiAgICAgICAgICAgICAgICBmb3JlYWNoICh2YXIgdmFsdWVfMCBpbiBmcmFtZXMpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWVfMCA9PSBudWxsKQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICBkZXN0aW5hdGlvbl8wLkFkZChudWxsKTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBlbHNlDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGRlc3RpbmF0aW9uXzAuQWRkKG5ldyBTdGFja0ZyYW1lKHZhbHVlXzApKTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgIEZyYW1lcyA9IGRlc3RpbmF0aW9uXzA7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIGlmIChwcm9wZXJ0aWVzICE9IG51bGwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgUHJvcGVydGllcyA9IG5ldyBEaWN0aW9uYXJ5PHN0cmluZywgU2VyaWFsaXplZFByb3BlcnR5SW5mbz4ocHJvcGVydGllcyk7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCiAgICB9DQp9" + { + "ruleId": "CA1704", + "message": { + "text": "In method 'JsonSerializerExtensions.CaptureError(this JsonSerializer, JToken, ErrorNumber, params object[])', correct the spelling of 'j' in parameter name 'jToken' or remove it entirely if it represents any sort of Hungarian notation.", + "id": "MemberParameter" }, - "hashes": [ - { - "value": "6D7567EB0BC943A322E6767C737F4364", - "algorithm": "md5" - }, - { - "value": "7F077705D9925C54A711E91257D05BC7E8EFA538", - "algorithm": "sha-1" - }, + "locations": [ { - "value": "875D49CFC9CC3400FB2338FAE54E8203542CDA4F1EFAB1B6A4CA04B482BCA4A8", - "algorithm": "sha-256" + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Microsoft.Json.Schema.dll", + "uriBaseId": "$(ProjectDir)", + "index": 1 + } + }, + "logicalLocations": [ + { + "index": 67, + "fullyQualifiedName": "microsoft.json.schema.dll!Microsoft.Json.Schema.JsonSerializerExtensions.CaptureError(Newtonsoft.Json.JsonSerializer,Newtonsoft.Json.Linq.JToken,Microsoft.Json.Schema.ErrorNumber,System.Object[])" + } + ] } - ] + ], + "partialFingerprints": { + "UniqueId": "j#MemberParameter" + }, + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" + } }, - "file:///E:/src/sarif-sdk-test/src/Sarif/Core/Stack.cs": { - "mimeType": "text/x-csharp", - "contents": { - "binary": "77u/Ly8gQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQuICBBbGwgUmlnaHRzIFJlc2VydmVkLg0KLy8gTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlLiBTZWUgTElDRU5TRSBmaWxlIGluIHRoZSBwcm9qZWN0IHJvb3QgZm9yIGZ1bGwgbGljZW5zZSBpbmZvcm1hdGlvbi4NCg0KdXNpbmcgU3lzdGVtOw0KdXNpbmcgU3lzdGVtLkNvbGxlY3Rpb25zLkdlbmVyaWM7DQp1c2luZyBTeXN0ZW0uRGlhZ25vc3RpY3M7DQp1c2luZyBTeXN0ZW0uVGV4dDsNCnVzaW5nIFN5c3RlbS5UZXh0LlJlZ3VsYXJFeHByZXNzaW9uczsNCg0KbmFtZXNwYWNlIE1pY3Jvc29mdC5Db2RlQW5hbHlzaXMuU2FyaWYNCnsNCiAgICBwdWJsaWMgZW51bSBTdGFja0Zvcm1hdA0KICAgIHsNCiAgICAgICAgRGVmYXVsdCwNCiAgICAgICAgVHJhaWxpbmdOZXdMaW5lDQogICAgfQ0KDQogICAgLy8vIDxzdW1tYXJ5Pg0KICAgIC8vLyBBIGNhbGwgc3RhY2sgcmVsZXZhbnQgdG8gYSBTQVJJRiByZXN1bHQuDQogICAgLy8vIDwvc3VtbWFyeT4NCiAgICBwdWJsaWMgcGFydGlhbCBjbGFzcyBTdGFjaw0KICAgIHsNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gQ3JlYXRlIG9uZSBvciBtb3JlIFN0YWNrIGluc3RhbmNlcyBmcm9tIGEgLk5FVCBleGNlcHRpb24uIENhcHR1cmVzDQogICAgICAgIC8vLyBpbm5lciBleGNlcHRpb25zIGFuZCBoYW5kbGVzIGFnZ3JlZ2F0ZWQgZXhjZXB0aW9ucy4NCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgLy8vIDxwYXJhbSBuYW1lPSJleGNlcHRpb24iPjwvcGFyYW0+DQogICAgICAgIHB1YmxpYyBzdGF0aWMgSVNldDxTdGFjaz4gQ3JlYXRlU3RhY2tzKEV4Y2VwdGlvbiBleGNlcHRpb24pDQogICAgICAgIHsNCiAgICAgICAgICAgIEhhc2hTZXQ8U3RhY2s+IHN0YWNrczsNCiAgICAgICAgICAgIFF1ZXVlPEV4Y2VwdGlvbj4gZXhjZXB0aW9uczsNCg0KICAgICAgICAgICAgc3RhY2tzID0gbmV3IEhhc2hTZXQ8U3RhY2s+KCk7DQogICAgICAgICAgICBleGNlcHRpb25zID0gbmV3IFF1ZXVlPEV4Y2VwdGlvbj4obmV3IEV4Y2VwdGlvbltdIHsgZXhjZXB0aW9uIH0pOw0KDQogICAgICAgICAgICB3aGlsZSAoZXhjZXB0aW9ucy5Db3VudCA+IDApDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgU3RhY2sgc3RhY2s7DQogICAgICAgICAgICAgICAgRXhjZXB0aW9uIGN1cnJlbnQ7DQoNCiAgICAgICAgICAgICAgICBjdXJyZW50ID0gZXhjZXB0aW9ucy5EZXF1ZXVlKCk7DQoNCiAgICAgICAgICAgICAgICB2YXIgYWdncmVnYXRlZCA9IGN1cnJlbnQgYXMgQWdncmVnYXRlRXhjZXB0aW9uOw0KICAgICAgICAgICAgICAgIGlmIChhZ2dyZWdhdGVkICE9IG51bGwpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBmb3JlYWNoIChFeGNlcHRpb24gZSBpbiBhZ2dyZWdhdGVkLklubmVyRXhjZXB0aW9ucykNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgZXhjZXB0aW9ucy5FbnF1ZXVlKGUpOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGVsc2UNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIC8vIEFnZ3JlZ2F0ZWRFeGNlcHRpb25zIHN1cmZhY2UgdGhlIGZpcnN0IGV4Y2VwdGlvbg0KICAgICAgICAgICAgICAgICAgICAvLyBpbiB0aGUgYWdncmVnYXRpb24gYXMgSW5uZXJFeGNlcHRpb24sIHNvIHdlIGRvbid0DQogICAgICAgICAgICAgICAgICAgIC8vIHJlZXhhbWluZSB0aGlzIHByb3BlcnR5IGZvciB0aGF0IGV4Y2VwdGlvbiB0eXBlIChhcw0KICAgICAgICAgICAgICAgICAgICAvLyBpdCBpcyBhbHJlYWR5IGVucXVldWVkIGZyb20gaW5zcGVjdGluZyBJbm5lckV4Y2VwdGlvbnMpLg0KICAgICAgICAgICAgICAgICAgICBpZiAoY3VycmVudC5Jbm5lckV4Y2VwdGlvbiAhPSBudWxsKQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICBleGNlcHRpb25zLkVucXVldWUoY3VycmVudC5Jbm5lckV4Y2VwdGlvbik7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICBzdGFjayA9IENyZWF0ZShjdXJyZW50LlN0YWNrVHJhY2UpOw0KDQogICAgICAgICAgICAgICAgc3RhY2suTWVzc2FnZSA9IG5ldyBNZXNzYWdlIHsgVGV4dCA9IGN1cnJlbnQuRm9ybWF0TWVzc2FnZSgpIH07DQoNCiAgICAgICAgICAgICAgICBzdGFja3MuQWRkKHN0YWNrKTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgcmV0dXJuIHN0YWNrczsNCiAgICAgICAgfQ0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIENyZWF0ZXMgYSBTQVJJRiBTdGFjayBpbnN0YW5jZSBmcm9tIGEgLk5FVCBTdGFja1RyYWNlIGluc3RhbmNlDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIC8vLyA8cGFyYW0gbmFtZT0ic3RhY2tUcmFjZSI+PC9wYXJhbT4NCiAgICAgICAgcHVibGljIFN0YWNrKFN0YWNrVHJhY2Ugc3RhY2tUcmFjZSkNCiAgICAgICAgew0KICAgICAgICAgICAgaWYgKHN0YWNrVHJhY2UuRnJhbWVDb3VudCA9PSAwKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgdGhpcy5GcmFtZXMgPSBuZXcgU3RhY2tGcmFtZVtzdGFja1RyYWNlLkZyYW1lQ291bnRdOw0KDQogICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHN0YWNrVHJhY2UuRnJhbWVDb3VudDsgaSsrKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHRoaXMuRnJhbWVzW2ldID0gU3RhY2tGcmFtZS5DcmVhdGUoc3RhY2tUcmFjZS5HZXRGcmFtZShpKSk7ICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gQ3JlYXRlcyBhIFNBUklGIFN0YWNrIGluc3RhbmNlIGZyb20gYSAuTkVUIFN0YWNrVHJhY2UNCiAgICAgICAgLy8vIHRleHQgcmVwcmVzZW50YXRpb24gKGFzIHJldHVybmVkIGJ5IFN0YWNrVHJhY2UuVG9TdHJpbmcoKSkNCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgLy8vIDxwYXJhbSBuYW1lPSJzdGFja1RyYWNlIj48L3BhcmFtPg0KICAgICAgICBwdWJsaWMgc3RhdGljIFN0YWNrIENyZWF0ZShzdHJpbmcgc3RhY2tUcmFjZSkNCiAgICAgICAgew0KICAgICAgICAgICAgU3RhY2sgc3RhY2sgPSBuZXcgU3RhY2soKTsNCiAgICAgICAgICAgIA0KICAgICAgICAgICAgaWYgKHN0cmluZy5Jc051bGxPckVtcHR5KHN0YWNrVHJhY2UpKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHJldHVybiBzdGFjazsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgc3RhY2suRnJhbWVzID0gbmV3IExpc3Q8U3RhY2tGcmFtZT4oKTsNCg0KICAgICAgICAgICAgdmFyIHJlZ2V4ID0gbmV3IFJlZ2V4KFN0YWNrRnJhbWUuQVQgKyBAIihbXildK1wpKSgiICsgU3RhY2tGcmFtZS5JTiArIEAiKFteOl0rOlteOl0rKSIgKyBTdGFja0ZyYW1lLkxJTkUgKyBAIiAoLiopKT8iLCBSZWdleE9wdGlvbnMuQ29tcGlsZWQpOw0KDQogICAgICAgICAgICBmb3JlYWNoIChzdHJpbmcgbGluZSBpbiBzdGFja1RyYWNlLlNwbGl0KG5ldyBzdHJpbmdbXSB7IEVudmlyb25tZW50Lk5ld0xpbmUgfSwgU3RyaW5nU3BsaXRPcHRpb25zLk5vbmUpKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIC8vIGF0IFR5cGUuTWV0aG9kKCkgaW4gRmlsZS5jcyA6IGxpbmUgWA0KICAgICAgICAgICAgICAgIHN0cmluZyBjdXJyZW50ID0gbGluZTsNCg0KICAgICAgICAgICAgICAgIHZhciBzdGFja0ZyYW1lID0gbmV3IFN0YWNrRnJhbWUoKTsNCg0KICAgICAgICAgICAgICAgIE1hdGNoIG1hdGNoID0gcmVnZXguTWF0Y2gobGluZSk7DQoNCiAgICAgICAgICAgICAgICBpZiAobWF0Y2guU3VjY2VzcykNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIHN0YWNrRnJhbWUuTG9jYXRpb24gPSBuZXcgTG9jYXRpb24NCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgRnVsbHlRdWFsaWZpZWRMb2dpY2FsTmFtZSA9IG1hdGNoLkdyb3Vwc1sxXS5WYWx1ZQ0KICAgICAgICAgICAgICAgICAgICB9Ow0KDQogICAgICAgICAgICAgICAgICAgIGlmICghc3RyaW5nLklzTnVsbE9yRW1wdHkobWF0Y2guR3JvdXBzWzJdLlZhbHVlKSkNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgc3RyaW5nIGZpbGVOYW1lID0gbWF0Y2guR3JvdXBzWzNdLlZhbHVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgaW50IGxpbmVOdW1iZXIgPSBpbnQuUGFyc2UobWF0Y2guR3JvdXBzWzRdLlZhbHVlKTsNCg0KICAgICAgICAgICAgICAgICAgICAgICAgc3RhY2tGcmFtZS5Mb2NhdGlvbi5QaHlzaWNhbExvY2F0aW9uID0gbmV3IFBoeXNpY2FsTG9jYXRpb24NCiAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBGaWxlTG9jYXRpb24gPSBuZXcgRmlsZUxvY2F0aW9uDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVcmkgPSBuZXcgVXJpKGZpbGVOYW1lKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVnaW9uID0gbmV3IFJlZ2lvbg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RhcnRMaW5lID0gbGluZU51bWJlcg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIH07DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgc3RhY2suRnJhbWVzLkFkZChzdGFja0ZyYW1lKTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgcmV0dXJuIHN0YWNrOw0KICAgICAgICB9DQoNCiAgICAgICAgcHVibGljIG92ZXJyaWRlIHN0cmluZyBUb1N0cmluZygpDQogICAgICAgIHsNCiAgICAgICAgICAgIHJldHVybiBUb1N0cmluZyhTdGFja0Zvcm1hdC5EZWZhdWx0KTsNCiAgICAgICAgfQ0KDQogICAgICAgIHB1YmxpYyBzdHJpbmcgVG9TdHJpbmcoU3RhY2tGb3JtYXQgc3RhY2tGb3JtYXQpDQogICAgICAgIHsgICAgICAgICAgIA0KICAgICAgICAgICAgaWYgKHRoaXMuRnJhbWVzID09IG51bGwpIHsgcmV0dXJuICJbTm8gZnJhbWVzXSI7IH0NCg0KICAgICAgICAgICAgU3RyaW5nQnVpbGRlciBzYiA9IG5ldyBTdHJpbmdCdWlsZGVyKDI1NSk7DQoNCiAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdGhpcy5GcmFtZXMuQ291bnQ7IGkrKykNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBTdGFja0ZyYW1lIHNmID0gdGhpcy5GcmFtZXNbaV07DQoNCiAgICAgICAgICAgICAgICBpZiAoaSA+IDApIHsgc2IuQXBwZW5kTGluZSgpOyB9DQoNCiAgICAgICAgICAgICAgICBzYi5BcHBlbmQoc2YuVG9TdHJpbmcoKSk7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIGlmIChzdGFja0Zvcm1hdCA9PSBTdGFja0Zvcm1hdC5UcmFpbGluZ05ld0xpbmUpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgc2IuQXBwZW5kTGluZSgpOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICByZXR1cm4gc2IuVG9TdHJpbmcoKTsNCiAgICAgICAgfQ0KICAgIH0NCn0NCg==" + { + "ruleId": "CA1062", + "message": { + "text": "In externally visible method 'JsonSerializerExtensions.CaptureError(this JsonSerializer, JToken, ErrorNumber, params object[])', validate parameter 'serializer' before using it." }, - "hashes": [ - { - "value": "003A4944A3F8358DEA2C829BCF6BE977", - "algorithm": "md5" - }, - { - "value": "2B9A9B3BB1A863ED99A2BBDB38F8198FE1E720C6", - "algorithm": "sha-1" - }, + "locations": [ { - "value": "8C61D5F8E47506D922926A94C1B63E4BA25708CE94AE58A4F7F06A3B54174DFB", - "algorithm": "sha-256" + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Microsoft.Json.Schema.dll", + "uriBaseId": "$(ProjectDir)", + "index": 1 + } + }, + "logicalLocations": [ + { + "index": 67, + "fullyQualifiedName": "microsoft.json.schema.dll!Microsoft.Json.Schema.JsonSerializerExtensions.CaptureError(Newtonsoft.Json.JsonSerializer,Newtonsoft.Json.Linq.JToken,Microsoft.Json.Schema.ErrorNumber,System.Object[])" + } + ] } - ] + ], + "partialFingerprints": { + "UniqueId": "0" + }, + "properties": { + "Category": "Microsoft.Design", + "FixCategory": "DependsOnFix" + } }, - "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/StackFrame.cs": { - "mimeType": "text/x-csharp", - "contents": { - "binary": "Ly8gQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQuICBBbGwgUmlnaHRzIFJlc2VydmVkLg0KLy8gTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlLiBTZWUgTElDRU5TRSBmaWxlIGluIHRoZSBwcm9qZWN0IHJvb3QgZm9yIGZ1bGwgbGljZW5zZSBpbmZvcm1hdGlvbi4NCg0KdXNpbmcgU3lzdGVtOw0KdXNpbmcgU3lzdGVtLkNvZGVEb20uQ29tcGlsZXI7DQp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsNCnVzaW5nIFN5c3RlbS5SdW50aW1lLlNlcmlhbGl6YXRpb247DQp1c2luZyBNaWNyb3NvZnQuQ29kZUFuYWx5c2lzLlNhcmlmLlJlYWRlcnM7DQoNCm5hbWVzcGFjZSBNaWNyb3NvZnQuQ29kZUFuYWx5c2lzLlNhcmlmDQp7DQogICAgLy8vIDxzdW1tYXJ5Pg0KICAgIC8vLyBBIGZ1bmN0aW9uIGNhbGwgd2l0aGluIGEgc3RhY2sgdHJhY2UuDQogICAgLy8vIDwvc3VtbWFyeT4NCiAgICBbRGF0YUNvbnRyYWN0XQ0KICAgIFtHZW5lcmF0ZWRDb2RlKCJNaWNyb3NvZnQuSnNvbi5TY2hlbWEuVG9Eb3ROZXQiLCAiMC41Ni4wLjAiKV0NCiAgICBwdWJsaWMgcGFydGlhbCBjbGFzcyBTdGFja0ZyYW1lIDogUHJvcGVydHlCYWdIb2xkZXIsIElTYXJpZk5vZGUNCiAgICB7DQogICAgICAgIHB1YmxpYyBzdGF0aWMgSUVxdWFsaXR5Q29tcGFyZXI8U3RhY2tGcmFtZT4gVmFsdWVDb21wYXJlciA9PiBTdGFja0ZyYW1lRXF1YWxpdHlDb21wYXJlci5JbnN0YW5jZTsNCg0KICAgICAgICBwdWJsaWMgYm9vbCBWYWx1ZUVxdWFscyhTdGFja0ZyYW1lIG90aGVyKSA9PiBWYWx1ZUNvbXBhcmVyLkVxdWFscyh0aGlzLCBvdGhlcik7DQogICAgICAgIHB1YmxpYyBpbnQgVmFsdWVHZXRIYXNoQ29kZSgpID0+IFZhbHVlQ29tcGFyZXIuR2V0SGFzaENvZGUodGhpcyk7DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gR2V0cyBhIHZhbHVlIGluZGljYXRpbmcgdGhlIHR5cGUgb2Ygb2JqZWN0IGltcGxlbWVudGluZyA8c2VlIGNyZWY9IklTYXJpZk5vZGUiIC8+Lg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICBwdWJsaWMgU2FyaWZOb2RlS2luZCBTYXJpZk5vZGVLaW5kDQogICAgICAgIHsNCiAgICAgICAgICAgIGdldA0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHJldHVybiBTYXJpZk5vZGVLaW5kLlN0YWNrRnJhbWU7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBUaGUgbG9jYXRpb24gdG8gd2hpY2ggdGhpcyBzdGFjayBmcmFtZSByZWZlcnMuDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIFtEYXRhTWVtYmVyKE5hbWUgPSAibG9jYXRpb24iLCBJc1JlcXVpcmVkID0gZmFsc2UsIEVtaXREZWZhdWx0VmFsdWUgPSBmYWxzZSldDQogICAgICAgIHB1YmxpYyBMb2NhdGlvbiBMb2NhdGlvbiB7IGdldDsgc2V0OyB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gVGhlIG5hbWUgb2YgdGhlIG1vZHVsZSB0aGF0IGNvbnRhaW5zIHRoZSBjb2RlIG9mIHRoaXMgc3RhY2sgZnJhbWUuDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIFtEYXRhTWVtYmVyKE5hbWUgPSAibW9kdWxlIiwgSXNSZXF1aXJlZCA9IGZhbHNlLCBFbWl0RGVmYXVsdFZhbHVlID0gZmFsc2UpXQ0KICAgICAgICBwdWJsaWMgc3RyaW5nIE1vZHVsZSB7IGdldDsgc2V0OyB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gVGhlIHRocmVhZCBpZGVudGlmaWVyIG9mIHRoZSBzdGFjayBmcmFtZS4NCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgW0RhdGFNZW1iZXIoTmFtZSA9ICJ0aHJlYWRJZCIsIElzUmVxdWlyZWQgPSBmYWxzZSwgRW1pdERlZmF1bHRWYWx1ZSA9IGZhbHNlKV0NCiAgICAgICAgcHVibGljIGludCBUaHJlYWRJZCB7IGdldDsgc2V0OyB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gVGhlIGFkZHJlc3Mgb2YgdGhlIG1ldGhvZCBvciBmdW5jdGlvbiB0aGF0IGlzIGV4ZWN1dGluZy4NCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgW0RhdGFNZW1iZXIoTmFtZSA9ICJhZGRyZXNzIiwgSXNSZXF1aXJlZCA9IGZhbHNlLCBFbWl0RGVmYXVsdFZhbHVlID0gZmFsc2UpXQ0KICAgICAgICBwdWJsaWMgaW50IEFkZHJlc3MgeyBnZXQ7IHNldDsgfQ0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIFRoZSBvZmZzZXQgZnJvbSB0aGUgbWV0aG9kIG9yIGZ1bmN0aW9uIHRoYXQgaXMgZXhlY3V0aW5nLg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICBbRGF0YU1lbWJlcihOYW1lID0gIm9mZnNldCIsIElzUmVxdWlyZWQgPSBmYWxzZSwgRW1pdERlZmF1bHRWYWx1ZSA9IGZhbHNlKV0NCiAgICAgICAgcHVibGljIGludCBPZmZzZXQgeyBnZXQ7IHNldDsgfQ0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIFRoZSBwYXJhbWV0ZXJzIG9mIHRoZSBjYWxsIHRoYXQgaXMgZXhlY3V0aW5nLg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICBbRGF0YU1lbWJlcihOYW1lID0gInBhcmFtZXRlcnMiLCBJc1JlcXVpcmVkID0gZmFsc2UsIEVtaXREZWZhdWx0VmFsdWUgPSBmYWxzZSldDQogICAgICAgIHB1YmxpYyBJTGlzdDxzdHJpbmc+IFBhcmFtZXRlcnMgeyBnZXQ7IHNldDsgfQ0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIEtleS92YWx1ZSBwYWlycyB0aGF0IHByb3ZpZGUgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiBhYm91dCB0aGUgc3RhY2sgZnJhbWUuDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIFtEYXRhTWVtYmVyKE5hbWUgPSAicHJvcGVydGllcyIsIElzUmVxdWlyZWQgPSBmYWxzZSwgRW1pdERlZmF1bHRWYWx1ZSA9IGZhbHNlKV0NCiAgICAgICAgaW50ZXJuYWwgb3ZlcnJpZGUgSURpY3Rpb25hcnk8c3RyaW5nLCBTZXJpYWxpemVkUHJvcGVydHlJbmZvPiBQcm9wZXJ0aWVzIHsgZ2V0OyBzZXQ7IH0NCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBJbml0aWFsaXplcyBhIG5ldyBpbnN0YW5jZSBvZiB0aGUgPHNlZSBjcmVmPSJTdGFja0ZyYW1lIiAvPiBjbGFzcy4NCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgcHVibGljIFN0YWNrRnJhbWUoKQ0KICAgICAgICB7DQogICAgICAgIH0NCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBJbml0aWFsaXplcyBhIG5ldyBpbnN0YW5jZSBvZiB0aGUgPHNlZSBjcmVmPSJTdGFja0ZyYW1lIiAvPiBjbGFzcyBmcm9tIHRoZSBzdXBwbGllZCB2YWx1ZXMuDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIC8vLyA8cGFyYW0gbmFtZT0ibG9jYXRpb24iPg0KICAgICAgICAvLy8gQW4gaW5pdGlhbGl6YXRpb24gdmFsdWUgZm9yIHRoZSA8c2VlIGNyZWY9IlA6IExvY2F0aW9uIiAvPiBwcm9wZXJ0eS4NCiAgICAgICAgLy8vIDwvcGFyYW0+DQogICAgICAgIC8vLyA8cGFyYW0gbmFtZT0ibW9kdWxlIj4NCiAgICAgICAgLy8vIEFuIGluaXRpYWxpemF0aW9uIHZhbHVlIGZvciB0aGUgPHNlZSBjcmVmPSJQOiBNb2R1bGUiIC8+IHByb3BlcnR5Lg0KICAgICAgICAvLy8gPC9wYXJhbT4NCiAgICAgICAgLy8vIDxwYXJhbSBuYW1lPSJ0aHJlYWRJZCI+DQogICAgICAgIC8vLyBBbiBpbml0aWFsaXphdGlvbiB2YWx1ZSBmb3IgdGhlIDxzZWUgY3JlZj0iUDogVGhyZWFkSWQiIC8+IHByb3BlcnR5Lg0KICAgICAgICAvLy8gPC9wYXJhbT4NCiAgICAgICAgLy8vIDxwYXJhbSBuYW1lPSJhZGRyZXNzIj4NCiAgICAgICAgLy8vIEFuIGluaXRpYWxpemF0aW9uIHZhbHVlIGZvciB0aGUgPHNlZSBjcmVmPSJQOiBBZGRyZXNzIiAvPiBwcm9wZXJ0eS4NCiAgICAgICAgLy8vIDwvcGFyYW0+DQogICAgICAgIC8vLyA8cGFyYW0gbmFtZT0ib2Zmc2V0Ij4NCiAgICAgICAgLy8vIEFuIGluaXRpYWxpemF0aW9uIHZhbHVlIGZvciB0aGUgPHNlZSBjcmVmPSJQOiBPZmZzZXQiIC8+IHByb3BlcnR5Lg0KICAgICAgICAvLy8gPC9wYXJhbT4NCiAgICAgICAgLy8vIDxwYXJhbSBuYW1lPSJwYXJhbWV0ZXJzIj4NCiAgICAgICAgLy8vIEFuIGluaXRpYWxpemF0aW9uIHZhbHVlIGZvciB0aGUgPHNlZSBjcmVmPSJQOiBQYXJhbWV0ZXJzIiAvPiBwcm9wZXJ0eS4NCiAgICAgICAgLy8vIDwvcGFyYW0+DQogICAgICAgIC8vLyA8cGFyYW0gbmFtZT0icHJvcGVydGllcyI+DQogICAgICAgIC8vLyBBbiBpbml0aWFsaXphdGlvbiB2YWx1ZSBmb3IgdGhlIDxzZWUgY3JlZj0iUDogUHJvcGVydGllcyIgLz4gcHJvcGVydHkuDQogICAgICAgIC8vLyA8L3BhcmFtPg0KICAgICAgICBwdWJsaWMgU3RhY2tGcmFtZShMb2NhdGlvbiBsb2NhdGlvbiwgc3RyaW5nIG1vZHVsZSwgaW50IHRocmVhZElkLCBpbnQgYWRkcmVzcywgaW50IG9mZnNldCwgSUVudW1lcmFibGU8c3RyaW5nPiBwYXJhbWV0ZXJzLCBJRGljdGlvbmFyeTxzdHJpbmcsIFNlcmlhbGl6ZWRQcm9wZXJ0eUluZm8+IHByb3BlcnRpZXMpDQogICAgICAgIHsNCiAgICAgICAgICAgIEluaXQobG9jYXRpb24sIG1vZHVsZSwgdGhyZWFkSWQsIGFkZHJlc3MsIG9mZnNldCwgcGFyYW1ldGVycywgcHJvcGVydGllcyk7DQogICAgICAgIH0NCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBJbml0aWFsaXplcyBhIG5ldyBpbnN0YW5jZSBvZiB0aGUgPHNlZSBjcmVmPSJTdGFja0ZyYW1lIiAvPiBjbGFzcyBmcm9tIHRoZSBzcGVjaWZpZWQgaW5zdGFuY2UuDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIC8vLyA8cGFyYW0gbmFtZT0ib3RoZXIiPg0KICAgICAgICAvLy8gVGhlIGluc3RhbmNlIGZyb20gd2hpY2ggdGhlIG5ldyBpbnN0YW5jZSBpcyB0byBiZSBpbml0aWFsaXplZC4NCiAgICAgICAgLy8vIDwvcGFyYW0+DQogICAgICAgIC8vLyA8ZXhjZXB0aW9uIGNyZWY9IkFyZ3VtZW50TnVsbEV4Y2VwdGlvbiI+DQogICAgICAgIC8vLyBUaHJvd24gaWYgPHBhcmFtcmVmIG5hbWU9Im90aGVyIiAvPiBpcyBudWxsLg0KICAgICAgICAvLy8gPC9leGNlcHRpb24+DQogICAgICAgIHB1YmxpYyBTdGFja0ZyYW1lKFN0YWNrRnJhbWUgb3RoZXIpDQogICAgICAgIHsNCiAgICAgICAgICAgIGlmIChvdGhlciA9PSBudWxsKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHRocm93IG5ldyBBcmd1bWVudE51bGxFeGNlcHRpb24obmFtZW9mKG90aGVyKSk7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIEluaXQob3RoZXIuTG9jYXRpb24sIG90aGVyLk1vZHVsZSwgb3RoZXIuVGhyZWFkSWQsIG90aGVyLkFkZHJlc3MsIG90aGVyLk9mZnNldCwgb3RoZXIuUGFyYW1ldGVycywgb3RoZXIuUHJvcGVydGllcyk7DQogICAgICAgIH0NCg0KICAgICAgICBJU2FyaWZOb2RlIElTYXJpZk5vZGUuRGVlcENsb25lKCkNCiAgICAgICAgew0KICAgICAgICAgICAgcmV0dXJuIERlZXBDbG9uZUNvcmUoKTsNCiAgICAgICAgfQ0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIENyZWF0ZXMgYSBkZWVwIGNvcHkgb2YgdGhpcyBpbnN0YW5jZS4NCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgcHVibGljIFN0YWNrRnJhbWUgRGVlcENsb25lKCkNCiAgICAgICAgew0KICAgICAgICAgICAgcmV0dXJuIChTdGFja0ZyYW1lKURlZXBDbG9uZUNvcmUoKTsNCiAgICAgICAgfQ0KDQogICAgICAgIHByaXZhdGUgSVNhcmlmTm9kZSBEZWVwQ2xvbmVDb3JlKCkNCiAgICAgICAgew0KICAgICAgICAgICAgcmV0dXJuIG5ldyBTdGFja0ZyYW1lKHRoaXMpOw0KICAgICAgICB9DQoNCiAgICAgICAgcHJpdmF0ZSB2b2lkIEluaXQoTG9jYXRpb24gbG9jYXRpb24sIHN0cmluZyBtb2R1bGUsIGludCB0aHJlYWRJZCwgaW50IGFkZHJlc3MsIGludCBvZmZzZXQsIElFbnVtZXJhYmxlPHN0cmluZz4gcGFyYW1ldGVycywgSURpY3Rpb25hcnk8c3RyaW5nLCBTZXJpYWxpemVkUHJvcGVydHlJbmZvPiBwcm9wZXJ0aWVzKQ0KICAgICAgICB7DQogICAgICAgICAgICBpZiAobG9jYXRpb24gIT0gbnVsbCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBMb2NhdGlvbiA9IG5ldyBMb2NhdGlvbihsb2NhdGlvbik7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIE1vZHVsZSA9IG1vZHVsZTsNCiAgICAgICAgICAgIFRocmVhZElkID0gdGhyZWFkSWQ7DQogICAgICAgICAgICBBZGRyZXNzID0gYWRkcmVzczsNCiAgICAgICAgICAgIE9mZnNldCA9IG9mZnNldDsNCiAgICAgICAgICAgIGlmIChwYXJhbWV0ZXJzICE9IG51bGwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgdmFyIGRlc3RpbmF0aW9uXzAgPSBuZXcgTGlzdDxzdHJpbmc+KCk7DQogICAgICAgICAgICAgICAgZm9yZWFjaCAodmFyIHZhbHVlXzAgaW4gcGFyYW1ldGVycykNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIGRlc3RpbmF0aW9uXzAuQWRkKHZhbHVlXzApOw0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgIFBhcmFtZXRlcnMgPSBkZXN0aW5hdGlvbl8wOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBpZiAocHJvcGVydGllcyAhPSBudWxsKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIFByb3BlcnRpZXMgPSBuZXcgRGljdGlvbmFyeTxzdHJpbmcsIFNlcmlhbGl6ZWRQcm9wZXJ0eUluZm8+KHByb3BlcnRpZXMpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgfQ0KfQ==" + { + "ruleId": "CA2237", + "level": "error", + "message": { + "text": "Add [Serializable] to 'JsonSyntaxException' as this type implements ISerializable." }, - "hashes": [ - { - "value": "FA317DA44D9253A2A1AE95D49840AF68", - "algorithm": "md5" - }, - { - "value": "5CC77B8B5A3DA5C69E24AEE0A5E5CA395AA75B76", - "algorithm": "sha-1" - }, + "locations": [ { - "value": "26A00A72CF23C804DC31153626C35F110FAD59B623184BA8AC20AB559C7A79D6", - "algorithm": "sha-256" + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Microsoft.Json.Schema.dll", + "uriBaseId": "$(ProjectDir)", + "index": 1 + } + }, + "logicalLocations": [ + { + "index": 68, + "fullyQualifiedName": "microsoft.json.schema.dll!Microsoft.Json.Schema.JsonSyntaxException" + } + ] } - ] + ], + "properties": { + "Category": "Microsoft.Usage", + "FixCategory": "NonBreaking" + } }, - "file:///E:/src/sarif-sdk-test/src/Sarif/Core/StackFrame.cs": { - "mimeType": "text/x-csharp", - "contents": { - "binary": "77u/Ly8gQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQuICBBbGwgUmlnaHRzIFJlc2VydmVkLg0KLy8gTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlLiBTZWUgTElDRU5TRSBmaWxlIGluIHRoZSBwcm9qZWN0IHJvb3QgZm9yIGZ1bGwgbGljZW5zZSBpbmZvcm1hdGlvbi4NCg0KdXNpbmcgU3lzdGVtOw0KdXNpbmcgU3lzdGVtLkdsb2JhbGl6YXRpb247DQp1c2luZyBTeXN0ZW0uUmVmbGVjdGlvbjsNCnVzaW5nIFN5c3RlbS5UZXh0Ow0KDQpuYW1lc3BhY2UgTWljcm9zb2Z0LkNvZGVBbmFseXNpcy5TYXJpZg0Kew0KICAgIC8vLyA8c3VtbWFyeT4NCiAgICAvLy8gQSBzdGFjayBmcmFtZSBvZiBhIFNBUklGIHN0YWNrLg0KICAgIC8vLyA8L3N1bW1hcnk+DQogICAgcHVibGljIHBhcnRpYWwgY2xhc3MgU3RhY2tGcmFtZQ0KICAgIHsNCiAgICAgICAgaW50ZXJuYWwgY29uc3Qgc3RyaW5nIElOID0gIiBpbiAiOw0KICAgICAgICBpbnRlcm5hbCBjb25zdCBzdHJpbmcgQVQgPSAiICAgYXQgIjsNCiAgICAgICAgaW50ZXJuYWwgY29uc3Qgc3RyaW5nIExJTkUgPSAiOmxpbmUiOw0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIENyZWF0ZXMgYSBTQVJJRiBTdGFja0ZyYW1lIGluc3RhbmNlIGZyb20gYSAuTkVUIFN0YWNrRnJhbWUgaW5zdGFuY2UNCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgLy8vIDxwYXJhbSBuYW1lPSJzdGFja1RyYWNlIj48L3BhcmFtPg0KICAgICAgICAvLy8gPHJldHVybnM+PC9yZXR1cm5zPg0KICAgICAgICBwdWJsaWMgc3RhdGljIFN0YWNrRnJhbWUgQ3JlYXRlKFN5c3RlbS5EaWFnbm9zdGljcy5TdGFja0ZyYW1lIGRvdE5ldFN0YWNrRnJhbWUpDQogICAgICAgIHsNCiAgICAgICAgICAgIC8vIFRoaXMgdmFsdWUgaXMgLTEgaWYgbm90IHByZXNlbnQNCiAgICAgICAgICAgIGludCBpbE9mZnNldCA9IGRvdE5ldFN0YWNrRnJhbWUuR2V0SUxPZmZzZXQoKTsNCiAgICAgICAgICAgIHN0cmluZyBmaWxlTmFtZSA9IGRvdE5ldFN0YWNrRnJhbWUuR2V0RmlsZU5hbWUoKTsNCiAgICAgICAgICAgIGludCBuYXRpdmVPZmZzZXQgPSBkb3ROZXRTdGFja0ZyYW1lLkdldE5hdGl2ZU9mZnNldCgpOw0KICAgICAgICAgICAgTWV0aG9kQmFzZSBtZXRob2RCYXNlID0gZG90TmV0U3RhY2tGcmFtZS5HZXRNZXRob2QoKTsNCiAgICAgICAgICAgIEFzc2VtYmx5IGFzc2VtYmx5ID0gbWV0aG9kQmFzZT8uRGVjbGFyaW5nVHlwZS5Bc3NlbWJseTsNCiAgICAgICAgICAgIHN0cmluZyBmdWxseVF1YWxpZmllZE5hbWUgPSBDcmVhdGVGdWxseVF1YWxpZmllZE5hbWUobWV0aG9kQmFzZSk7DQoNCiAgICAgICAgICAgIFN0YWNrRnJhbWUgc3RhY2tGcmFtZSA9IG5ldyBTdGFja0ZyYW1lDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgTW9kdWxlID0gYXNzZW1ibHk/LkdldE5hbWUoKS5OYW1lLA0KICAgICAgICAgICAgICAgIExvY2F0aW9uID0gbmV3IExvY2F0aW9uDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBGdWxseVF1YWxpZmllZExvZ2ljYWxOYW1lID0gZnVsbHlRdWFsaWZpZWROYW1lDQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfTsNCg0KICAgICAgICAgICAgaWYgKGZpbGVOYW1lICE9IG51bGwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgc3RhY2tGcmFtZS5Mb2NhdGlvbiA9IG5ldyBMb2NhdGlvbg0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgUGh5c2ljYWxMb2NhdGlvbiA9IG5ldyBQaHlzaWNhbExvY2F0aW9uDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIEZpbGVMb2NhdGlvbiA9IG5ldyBGaWxlTG9jYXRpb24NCiAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBVcmkgPSBuZXcgVXJpKGZpbGVOYW1lKQ0KICAgICAgICAgICAgICAgICAgICAgICAgfSwNCiAgICAgICAgICAgICAgICAgICAgICAgIFJlZ2lvbiA9IG5ldyBSZWdpb24NCiAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdGFydExpbmUgPSBkb3ROZXRTdGFja0ZyYW1lLkdldEZpbGVMaW5lTnVtYmVyKCksDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RhcnRDb2x1bW4gPSBkb3ROZXRTdGFja0ZyYW1lLkdldEZpbGVDb2x1bW5OdW1iZXIoKQ0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgaWYgKGlsT2Zmc2V0ICE9IC0xKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHN0YWNrRnJhbWUuT2Zmc2V0ID0gaWxPZmZzZXQ7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIGlmIChuYXRpdmVPZmZzZXQgIT0gLTEpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgc3RhY2tGcmFtZS5TZXRQcm9wZXJ0eSgiTmF0aXZlT2Zmc2V0IiwgbmF0aXZlT2Zmc2V0LlRvU3RyaW5nKEN1bHR1cmVJbmZvLkludmFyaWFudEN1bHR1cmUpKTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgcmV0dXJuIHN0YWNrRnJhbWU7DQogICAgICAgIH0NCg0KICAgICAgICBwdWJsaWMgb3ZlcnJpZGUgc3RyaW5nIFRvU3RyaW5nKCkNCiAgICAgICAgew0KICAgICAgICAgICAgc3RyaW5nIHJlc3VsdCA9IEFUICsgdGhpcy5Mb2NhdGlvbj8uRnVsbHlRdWFsaWZpZWRMb2dpY2FsTmFtZTsNCg0KICAgICAgICAgICAgaWYgKHRoaXMuTG9jYXRpb24/LlBoeXNpY2FsTG9jYXRpb24/LkZpbGVMb2NhdGlvbj8uVXJpICE9IG51bGwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgc3RyaW5nIGZpbGVOYW1lID0gdGhpcy5Mb2NhdGlvbi5QaHlzaWNhbExvY2F0aW9uLkZpbGVMb2NhdGlvbi5VcmkuTG9jYWxQYXRoOw0KICAgICAgICAgICAgICAgIHJlc3VsdCArPSBJTiArIGZpbGVOYW1lOw0KDQogICAgICAgICAgICAgICAgaWYgKHRoaXMuTG9jYXRpb24/LlBoeXNpY2FsTG9jYXRpb24/LlJlZ2lvbiAhPSBudWxsKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgc3RyaW5nIGxpbmVOdW1iZXIgPSB0aGlzLkxvY2F0aW9uLlBoeXNpY2FsTG9jYXRpb24uUmVnaW9uLlN0YXJ0TGluZS5Ub1N0cmluZyhDdWx0dXJlSW5mby5JbnZhcmlhbnRDdWx0dXJlKTsNCiAgICAgICAgICAgICAgICAgICAgcmVzdWx0ICs9IExJTkUgKyAiICIgKyBsaW5lTnVtYmVyOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsNCiAgICAgICAgfQ0KDQogICAgICAgIHByaXZhdGUgc3RhdGljIHN0cmluZyBDcmVhdGVGdWxseVF1YWxpZmllZE5hbWUoTWV0aG9kQmFzZSBtZXRob2RCYXNlKQ0KICAgICAgICB7DQogICAgICAgICAgICBpZiAobWV0aG9kQmFzZSA9PSBudWxsKSB7IHJldHVybiBudWxsOyAgfQ0KDQogICAgICAgICAgICB2YXIgc2IgPSBuZXcgU3RyaW5nQnVpbGRlcigpOw0KDQogICAgICAgICAgICBUeXBlIHR5cGUgPSBtZXRob2RCYXNlLkRlY2xhcmluZ1R5cGU7DQogICAgICAgICAgICAvLyBpZiB0aGVyZSBpcyBhIHR5cGUgKG5vbiBnbG9iYWwgbWV0aG9kKSBwcmludCBpdA0KICAgICAgICAgICAgaWYgKHR5cGUgIT0gbnVsbCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBzYi5BcHBlbmQodHlwZS5GdWxsTmFtZS5SZXBsYWNlKCcrJywgJy4nKSk7DQogICAgICAgICAgICAgICAgc2IuQXBwZW5kKCIuIik7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBzYi5BcHBlbmQobWV0aG9kQmFzZS5OYW1lKTsNCg0KICAgICAgICAgICAgLy8gZGVhbCB3aXRoIHRoZSBnZW5lcmljIHBvcnRpb24gb2YgdGhlIG1ldGhvZA0KICAgICAgICAgICAgaWYgKG1ldGhvZEJhc2UgaXMgTWV0aG9kSW5mbyAmJiAoKE1ldGhvZEluZm8pbWV0aG9kQmFzZSkuSXNHZW5lcmljTWV0aG9kKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIFR5cGVbXSB0eXBlQXJndW1lbnRzID0gKChNZXRob2RJbmZvKW1ldGhvZEJhc2UpLkdldEdlbmVyaWNBcmd1bWVudHMoKTsNCiAgICAgICAgICAgICAgICBzYi5BcHBlbmQoIlsiKTsNCiAgICAgICAgICAgICAgICBpbnQgayA9IDA7DQogICAgICAgICAgICAgICAgYm9vbCBmaXJzdFR5cGVQYXJhbWV0ZXIgPSB0cnVlOw0KICAgICAgICAgICAgICAgIHdoaWxlIChrIDwgdHlwZUFyZ3VtZW50cy5MZW5ndGgpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBpZiAoZmlyc3RUeXBlUGFyYW1ldGVyID09IGZhbHNlKQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICBzYi5BcHBlbmQoIiwiKTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBlbHNlDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGZpcnN0VHlwZVBhcmFtZXRlciA9IGZhbHNlOw0KICAgICAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAgICAgc2IuQXBwZW5kKHR5cGVBcmd1bWVudHNba10uTmFtZSk7DQogICAgICAgICAgICAgICAgICAgIGsrKzsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgc2IuQXBwZW5kKCJdIik7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIC8vIGFyZ3VtZW50cyBwcmludGluZw0KICAgICAgICAgICAgc2IuQXBwZW5kKCIoIik7DQogICAgICAgICAgICBQYXJhbWV0ZXJJbmZvW10gcGFyYW1ldGVySW5mb3MgPSBtZXRob2RCYXNlLkdldFBhcmFtZXRlcnMoKTsNCiAgICAgICAgICAgIGJvb2wgZmlyc3RQYXJhbWV0ZXJJbmZvID0gdHJ1ZTsNCiAgICAgICAgICAgIGZvciAoaW50IGogPSAwOyBqIDwgcGFyYW1ldGVySW5mb3MuTGVuZ3RoOyBqKyspDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgaWYgKGZpcnN0UGFyYW1ldGVySW5mbyA9PSBmYWxzZSkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIHNiLkFwcGVuZCgiLCAiKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgZWxzZQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgZmlyc3RQYXJhbWV0ZXJJbmZvID0gZmFsc2U7DQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgU3RyaW5nIHR5cGVOYW1lID0gIjxVbmtub3duVHlwZT4iOw0KICAgICAgICAgICAgICAgIGlmIChwYXJhbWV0ZXJJbmZvc1tqXS5QYXJhbWV0ZXJUeXBlICE9IG51bGwpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICB0eXBlTmFtZSA9IHBhcmFtZXRlckluZm9zW2pdLlBhcmFtZXRlclR5cGUuTmFtZTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgc2IuQXBwZW5kKHR5cGVOYW1lICsgIiAiICsgcGFyYW1ldGVySW5mb3Nbal0uTmFtZSk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBzYi5BcHBlbmQoIikiKTsNCg0KICAgICAgICAgICAgcmV0dXJuIHNiLlRvU3RyaW5nKCk7DQogICAgICAgIH0NCiAgICB9DQp9DQo=" + { + "ruleId": "CA1032", + "level": "error", + "message": { + "text": "Change the accessibility of 'JsonSyntaxException.JsonSyntaxException(SerializationInfo, StreamingContext)' to protected.", + "id": "Accessibility" }, - "hashes": [ - { - "value": "51F335C189184FE5ACB85CCB4807DDB4", - "algorithm": "md5" - }, - { - "value": "45A4CC3C51D272DC2C3680D7D277EA514C9B2A26", - "algorithm": "sha-1" - }, + "locations": [ { - "value": "13CD80639C65BA74ECC11D44B9E2483C8BB9316FA5D9FCD989ED56B29579B3FE", - "algorithm": "sha-256" + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Microsoft.Json.Schema.dll", + "uriBaseId": "$(ProjectDir)", + "index": 1 + } + }, + "logicalLocations": [ + { + "index": 69, + "fullyQualifiedName": "microsoft.json.schema.dll!Microsoft.Json.Schema.JsonSyntaxException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)" + } + ] } - ] + ], + "partialFingerprints": { + "UniqueId": "Accessibility" + }, + "properties": { + "Category": "Microsoft.Design", + "FixCategory": "NonBreaking" + } }, - "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/ThreadFlow.cs": { - "mimeType": "text/x-csharp", - "contents": { - "binary": "Ly8gQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQuICBBbGwgUmlnaHRzIFJlc2VydmVkLg0KLy8gTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlLiBTZWUgTElDRU5TRSBmaWxlIGluIHRoZSBwcm9qZWN0IHJvb3QgZm9yIGZ1bGwgbGljZW5zZSBpbmZvcm1hdGlvbi4NCg0KdXNpbmcgU3lzdGVtOw0KdXNpbmcgU3lzdGVtLkNvZGVEb20uQ29tcGlsZXI7DQp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsNCnVzaW5nIFN5c3RlbS5SdW50aW1lLlNlcmlhbGl6YXRpb247DQp1c2luZyBNaWNyb3NvZnQuQ29kZUFuYWx5c2lzLlNhcmlmLlJlYWRlcnM7DQoNCm5hbWVzcGFjZSBNaWNyb3NvZnQuQ29kZUFuYWx5c2lzLlNhcmlmDQp7DQogICAgW0RhdGFDb250cmFjdF0NCiAgICBbR2VuZXJhdGVkQ29kZSgiTWljcm9zb2Z0Lkpzb24uU2NoZW1hLlRvRG90TmV0IiwgIjAuNTYuMC4wIildDQogICAgcHVibGljIHBhcnRpYWwgY2xhc3MgVGhyZWFkRmxvdyA6IFByb3BlcnR5QmFnSG9sZGVyLCBJU2FyaWZOb2RlDQogICAgew0KICAgICAgICBwdWJsaWMgc3RhdGljIElFcXVhbGl0eUNvbXBhcmVyPFRocmVhZEZsb3c+IFZhbHVlQ29tcGFyZXIgPT4gVGhyZWFkRmxvd0VxdWFsaXR5Q29tcGFyZXIuSW5zdGFuY2U7DQoNCiAgICAgICAgcHVibGljIGJvb2wgVmFsdWVFcXVhbHMoVGhyZWFkRmxvdyBvdGhlcikgPT4gVmFsdWVDb21wYXJlci5FcXVhbHModGhpcywgb3RoZXIpOw0KICAgICAgICBwdWJsaWMgaW50IFZhbHVlR2V0SGFzaENvZGUoKSA9PiBWYWx1ZUNvbXBhcmVyLkdldEhhc2hDb2RlKHRoaXMpOw0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIEdldHMgYSB2YWx1ZSBpbmRpY2F0aW5nIHRoZSB0eXBlIG9mIG9iamVjdCBpbXBsZW1lbnRpbmcgPHNlZSBjcmVmPSJJU2FyaWZOb2RlIiAvPi4NCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgcHVibGljIFNhcmlmTm9kZUtpbmQgU2FyaWZOb2RlS2luZA0KICAgICAgICB7DQogICAgICAgICAgICBnZXQNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gU2FyaWZOb2RlS2luZC5UaHJlYWRGbG93Ow0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gQW4gc3RyaW5nIHRoYXQgdW5pcXVlbHkgaWRlbnRpZmllcyB0aGUgdGhyZWFkRmxvdyB3aXRoaW4gdGhlIGNvZGVGbG93IGluIHdoaWNoIGl0IG9jY3Vycy4NCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgW0RhdGFNZW1iZXIoTmFtZSA9ICJpZCIsIElzUmVxdWlyZWQgPSBmYWxzZSwgRW1pdERlZmF1bHRWYWx1ZSA9IGZhbHNlKV0NCiAgICAgICAgcHVibGljIHN0cmluZyBJZCB7IGdldDsgc2V0OyB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gQSBtZXNzYWdlIHJlbGV2YW50IHRvIHRoZSBjb2RlIGZsb3cuDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIFtEYXRhTWVtYmVyKE5hbWUgPSAibWVzc2FnZSIsIElzUmVxdWlyZWQgPSBmYWxzZSwgRW1pdERlZmF1bHRWYWx1ZSA9IGZhbHNlKV0NCiAgICAgICAgcHVibGljIE1lc3NhZ2UgTWVzc2FnZSB7IGdldDsgc2V0OyB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gQW4gYXJyYXkgb2YgJ3RocmVhZEZsb3dMb2NhdGlvbicgb2JqZWN0cywgZWFjaCBvZiB3aGljaCBkZXNjcmliZXMgYSBzaW5nbGUgbG9jYXRpb24gdmlzaXRlZCBieSB0aGUgdG9vbCBpbiB0aGUgY291cnNlIG9mIHByb2R1Y2luZyB0aGUgcmVzdWx0Lg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICBbRGF0YU1lbWJlcihOYW1lID0gImxvY2F0aW9ucyIsIElzUmVxdWlyZWQgPSB0cnVlKV0NCiAgICAgICAgcHVibGljIElMaXN0PFRocmVhZEZsb3dMb2NhdGlvbj4gTG9jYXRpb25zIHsgZ2V0OyBzZXQ7IH0NCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBLZXkvdmFsdWUgcGFpcnMgdGhhdCBwcm92aWRlIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGNvZGUgZmxvdy4NCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgW0RhdGFNZW1iZXIoTmFtZSA9ICJwcm9wZXJ0aWVzIiwgSXNSZXF1aXJlZCA9IGZhbHNlLCBFbWl0RGVmYXVsdFZhbHVlID0gZmFsc2UpXQ0KICAgICAgICBpbnRlcm5hbCBvdmVycmlkZSBJRGljdGlvbmFyeTxzdHJpbmcsIFNlcmlhbGl6ZWRQcm9wZXJ0eUluZm8+IFByb3BlcnRpZXMgeyBnZXQ7IHNldDsgfQ0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIEluaXRpYWxpemVzIGEgbmV3IGluc3RhbmNlIG9mIHRoZSA8c2VlIGNyZWY9IlRocmVhZEZsb3ciIC8+IGNsYXNzLg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICBwdWJsaWMgVGhyZWFkRmxvdygpDQogICAgICAgIHsNCiAgICAgICAgfQ0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIEluaXRpYWxpemVzIGEgbmV3IGluc3RhbmNlIG9mIHRoZSA8c2VlIGNyZWY9IlRocmVhZEZsb3ciIC8+IGNsYXNzIGZyb20gdGhlIHN1cHBsaWVkIHZhbHVlcy4NCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgLy8vIDxwYXJhbSBuYW1lPSJpZCI+DQogICAgICAgIC8vLyBBbiBpbml0aWFsaXphdGlvbiB2YWx1ZSBmb3IgdGhlIDxzZWUgY3JlZj0iUDogSWQiIC8+IHByb3BlcnR5Lg0KICAgICAgICAvLy8gPC9wYXJhbT4NCiAgICAgICAgLy8vIDxwYXJhbSBuYW1lPSJtZXNzYWdlIj4NCiAgICAgICAgLy8vIEFuIGluaXRpYWxpemF0aW9uIHZhbHVlIGZvciB0aGUgPHNlZSBjcmVmPSJQOiBNZXNzYWdlIiAvPiBwcm9wZXJ0eS4NCiAgICAgICAgLy8vIDwvcGFyYW0+DQogICAgICAgIC8vLyA8cGFyYW0gbmFtZT0ibG9jYXRpb25zIj4NCiAgICAgICAgLy8vIEFuIGluaXRpYWxpemF0aW9uIHZhbHVlIGZvciB0aGUgPHNlZSBjcmVmPSJQOiBMb2NhdGlvbnMiIC8+IHByb3BlcnR5Lg0KICAgICAgICAvLy8gPC9wYXJhbT4NCiAgICAgICAgLy8vIDxwYXJhbSBuYW1lPSJwcm9wZXJ0aWVzIj4NCiAgICAgICAgLy8vIEFuIGluaXRpYWxpemF0aW9uIHZhbHVlIGZvciB0aGUgPHNlZSBjcmVmPSJQOiBQcm9wZXJ0aWVzIiAvPiBwcm9wZXJ0eS4NCiAgICAgICAgLy8vIDwvcGFyYW0+DQogICAgICAgIHB1YmxpYyBUaHJlYWRGbG93KHN0cmluZyBpZCwgTWVzc2FnZSBtZXNzYWdlLCBJRW51bWVyYWJsZTxUaHJlYWRGbG93TG9jYXRpb24+IGxvY2F0aW9ucywgSURpY3Rpb25hcnk8c3RyaW5nLCBTZXJpYWxpemVkUHJvcGVydHlJbmZvPiBwcm9wZXJ0aWVzKQ0KICAgICAgICB7DQogICAgICAgICAgICBJbml0KGlkLCBtZXNzYWdlLCBsb2NhdGlvbnMsIHByb3BlcnRpZXMpOw0KICAgICAgICB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gSW5pdGlhbGl6ZXMgYSBuZXcgaW5zdGFuY2Ugb2YgdGhlIDxzZWUgY3JlZj0iVGhyZWFkRmxvdyIgLz4gY2xhc3MgZnJvbSB0aGUgc3BlY2lmaWVkIGluc3RhbmNlLg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICAvLy8gPHBhcmFtIG5hbWU9Im90aGVyIj4NCiAgICAgICAgLy8vIFRoZSBpbnN0YW5jZSBmcm9tIHdoaWNoIHRoZSBuZXcgaW5zdGFuY2UgaXMgdG8gYmUgaW5pdGlhbGl6ZWQuDQogICAgICAgIC8vLyA8L3BhcmFtPg0KICAgICAgICAvLy8gPGV4Y2VwdGlvbiBjcmVmPSJBcmd1bWVudE51bGxFeGNlcHRpb24iPg0KICAgICAgICAvLy8gVGhyb3duIGlmIDxwYXJhbXJlZiBuYW1lPSJvdGhlciIgLz4gaXMgbnVsbC4NCiAgICAgICAgLy8vIDwvZXhjZXB0aW9uPg0KICAgICAgICBwdWJsaWMgVGhyZWFkRmxvdyhUaHJlYWRGbG93IG90aGVyKQ0KICAgICAgICB7DQogICAgICAgICAgICBpZiAob3RoZXIgPT0gbnVsbCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgQXJndW1lbnROdWxsRXhjZXB0aW9uKG5hbWVvZihvdGhlcikpOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBJbml0KG90aGVyLklkLCBvdGhlci5NZXNzYWdlLCBvdGhlci5Mb2NhdGlvbnMsIG90aGVyLlByb3BlcnRpZXMpOw0KICAgICAgICB9DQoNCiAgICAgICAgSVNhcmlmTm9kZSBJU2FyaWZOb2RlLkRlZXBDbG9uZSgpDQogICAgICAgIHsNCiAgICAgICAgICAgIHJldHVybiBEZWVwQ2xvbmVDb3JlKCk7DQogICAgICAgIH0NCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBDcmVhdGVzIGEgZGVlcCBjb3B5IG9mIHRoaXMgaW5zdGFuY2UuDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIHB1YmxpYyBUaHJlYWRGbG93IERlZXBDbG9uZSgpDQogICAgICAgIHsNCiAgICAgICAgICAgIHJldHVybiAoVGhyZWFkRmxvdylEZWVwQ2xvbmVDb3JlKCk7DQogICAgICAgIH0NCg0KICAgICAgICBwcml2YXRlIElTYXJpZk5vZGUgRGVlcENsb25lQ29yZSgpDQogICAgICAgIHsNCiAgICAgICAgICAgIHJldHVybiBuZXcgVGhyZWFkRmxvdyh0aGlzKTsNCiAgICAgICAgfQ0KDQogICAgICAgIHByaXZhdGUgdm9pZCBJbml0KHN0cmluZyBpZCwgTWVzc2FnZSBtZXNzYWdlLCBJRW51bWVyYWJsZTxUaHJlYWRGbG93TG9jYXRpb24+IGxvY2F0aW9ucywgSURpY3Rpb25hcnk8c3RyaW5nLCBTZXJpYWxpemVkUHJvcGVydHlJbmZvPiBwcm9wZXJ0aWVzKQ0KICAgICAgICB7DQogICAgICAgICAgICBJZCA9IGlkOw0KICAgICAgICAgICAgaWYgKG1lc3NhZ2UgIT0gbnVsbCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBNZXNzYWdlID0gbmV3IE1lc3NhZ2UobWVzc2FnZSk7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIGlmIChsb2NhdGlvbnMgIT0gbnVsbCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICB2YXIgZGVzdGluYXRpb25fMCA9IG5ldyBMaXN0PFRocmVhZEZsb3dMb2NhdGlvbj4oKTsNCiAgICAgICAgICAgICAgICBmb3JlYWNoICh2YXIgdmFsdWVfMCBpbiBsb2NhdGlvbnMpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWVfMCA9PSBudWxsKQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICBkZXN0aW5hdGlvbl8wLkFkZChudWxsKTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBlbHNlDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGRlc3RpbmF0aW9uXzAuQWRkKG5ldyBUaHJlYWRGbG93TG9jYXRpb24odmFsdWVfMCkpOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgTG9jYXRpb25zID0gZGVzdGluYXRpb25fMDsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgaWYgKHByb3BlcnRpZXMgIT0gbnVsbCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBQcm9wZXJ0aWVzID0gbmV3IERpY3Rpb25hcnk8c3RyaW5nLCBTZXJpYWxpemVkUHJvcGVydHlJbmZvPihwcm9wZXJ0aWVzKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgIH0NCn0=" + { + "ruleId": "CA1704", + "message": { + "text": "In method 'JTokenTypeExtensions.ToSchemaType(this JTokenType)', correct the spelling of 'j' in parameter name 'jTokenType' or remove it entirely if it represents any sort of Hungarian notation.", + "id": "MemberParameter" }, - "hashes": [ - { - "value": "9A2258A3BDB761443BE4CADA240BEDE0", - "algorithm": "md5" - }, - { - "value": "2EE064A3068240CFE4ACDCC7E9589D6C5CE65FB5", - "algorithm": "sha-1" - }, + "locations": [ { - "value": "2086A44F7E4B8634ED034B9EBB8380E50A11E91615DF152A7302CB46E667D784", - "algorithm": "sha-256" + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Microsoft.Json.Schema.dll", + "uriBaseId": "$(ProjectDir)", + "index": 1 + } + }, + "logicalLocations": [ + { + "index": 71, + "fullyQualifiedName": "microsoft.json.schema.dll!Microsoft.Json.Schema.JTokenTypeExtensions.ToSchemaType(Newtonsoft.Json.Linq.JTokenType)" + } + ] } - ] + ], + "partialFingerprints": { + "UniqueId": "j#MemberParameter" + }, + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" + } }, - "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/ThreadFlowLocation.cs": { - "mimeType": "text/x-csharp", - "contents": { - "binary": "Ly8gQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQuICBBbGwgUmlnaHRzIFJlc2VydmVkLg0KLy8gTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlLiBTZWUgTElDRU5TRSBmaWxlIGluIHRoZSBwcm9qZWN0IHJvb3QgZm9yIGZ1bGwgbGljZW5zZSBpbmZvcm1hdGlvbi4NCg0KdXNpbmcgU3lzdGVtOw0KdXNpbmcgU3lzdGVtLkNvZGVEb20uQ29tcGlsZXI7DQp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsNCnVzaW5nIFN5c3RlbS5SdW50aW1lLlNlcmlhbGl6YXRpb247DQp1c2luZyBNaWNyb3NvZnQuQ29kZUFuYWx5c2lzLlNhcmlmLlJlYWRlcnM7DQoNCm5hbWVzcGFjZSBNaWNyb3NvZnQuQ29kZUFuYWx5c2lzLlNhcmlmDQp7DQogICAgLy8vIDxzdW1tYXJ5Pg0KICAgIC8vLyBBIGxvY2F0aW9uIHZpc2l0ZWQgYnkgYW4gYW5hbHlzaXMgdG9vbCBpbiB0aGUgY291cnNlIG9mIHNpbXVsYXRpbmcgb3IgbW9uaXRvcmluZyB0aGUgZXhlY3V0aW9uIG9mIGEgcHJvZ3JhbS4NCiAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgIFtEYXRhQ29udHJhY3RdDQogICAgW0dlbmVyYXRlZENvZGUoIk1pY3Jvc29mdC5Kc29uLlNjaGVtYS5Ub0RvdE5ldCIsICIwLjU2LjAuMCIpXQ0KICAgIHB1YmxpYyBwYXJ0aWFsIGNsYXNzIFRocmVhZEZsb3dMb2NhdGlvbiA6IFByb3BlcnR5QmFnSG9sZGVyLCBJU2FyaWZOb2RlDQogICAgew0KICAgICAgICBwdWJsaWMgc3RhdGljIElFcXVhbGl0eUNvbXBhcmVyPFRocmVhZEZsb3dMb2NhdGlvbj4gVmFsdWVDb21wYXJlciA9PiBUaHJlYWRGbG93TG9jYXRpb25FcXVhbGl0eUNvbXBhcmVyLkluc3RhbmNlOw0KDQogICAgICAgIHB1YmxpYyBib29sIFZhbHVlRXF1YWxzKFRocmVhZEZsb3dMb2NhdGlvbiBvdGhlcikgPT4gVmFsdWVDb21wYXJlci5FcXVhbHModGhpcywgb3RoZXIpOw0KICAgICAgICBwdWJsaWMgaW50IFZhbHVlR2V0SGFzaENvZGUoKSA9PiBWYWx1ZUNvbXBhcmVyLkdldEhhc2hDb2RlKHRoaXMpOw0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIEdldHMgYSB2YWx1ZSBpbmRpY2F0aW5nIHRoZSB0eXBlIG9mIG9iamVjdCBpbXBsZW1lbnRpbmcgPHNlZSBjcmVmPSJJU2FyaWZOb2RlIiAvPi4NCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgcHVibGljIFNhcmlmTm9kZUtpbmQgU2FyaWZOb2RlS2luZA0KICAgICAgICB7DQogICAgICAgICAgICBnZXQNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gU2FyaWZOb2RlS2luZC5UaHJlYWRGbG93TG9jYXRpb247DQogICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBUaGUgMC1iYXNlZCBzZXF1ZW5jZSBudW1iZXIgb2YgdGhlIGxvY2F0aW9uIGluIHRoZSBjb2RlIGZsb3cgd2l0aGluIHdoaWNoIGl0IG9jY3Vycy4NCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgW0RhdGFNZW1iZXIoTmFtZSA9ICJzdGVwIiwgSXNSZXF1aXJlZCA9IGZhbHNlLCBFbWl0RGVmYXVsdFZhbHVlID0gZmFsc2UpXQ0KICAgICAgICBwdWJsaWMgaW50IFN0ZXAgeyBnZXQ7IHNldDsgfQ0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIFRoZSBjb2RlIGxvY2F0aW9uLg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICBbRGF0YU1lbWJlcihOYW1lID0gImxvY2F0aW9uIiwgSXNSZXF1aXJlZCA9IGZhbHNlLCBFbWl0RGVmYXVsdFZhbHVlID0gZmFsc2UpXQ0KICAgICAgICBwdWJsaWMgTG9jYXRpb24gTG9jYXRpb24geyBnZXQ7IHNldDsgfQ0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIFRoZSBjYWxsIHN0YWNrIGxlYWRpbmcgdG8gdGhpcyBsb2NhdGlvbi4NCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgW0RhdGFNZW1iZXIoTmFtZSA9ICJzdGFjayIsIElzUmVxdWlyZWQgPSBmYWxzZSwgRW1pdERlZmF1bHRWYWx1ZSA9IGZhbHNlKV0NCiAgICAgICAgcHVibGljIFN0YWNrIFN0YWNrIHsgZ2V0OyBzZXQ7IH0NCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBBIHN0cmluZyBkZXNjcmliaW5nIHRoZSB0eXBlIG9mIHRoaXMgbG9jYXRpb24uDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIFtEYXRhTWVtYmVyKE5hbWUgPSAia2luZCIsIElzUmVxdWlyZWQgPSBmYWxzZSwgRW1pdERlZmF1bHRWYWx1ZSA9IGZhbHNlKV0NCiAgICAgICAgcHVibGljIHN0cmluZyBLaW5kIHsgZ2V0OyBzZXQ7IH0NCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBUaGUgbmFtZSBvZiB0aGUgbW9kdWxlIHRoYXQgY29udGFpbnMgdGhlIGNvZGUgdGhhdCBpcyBleGVjdXRpbmcuDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIFtEYXRhTWVtYmVyKE5hbWUgPSAibW9kdWxlIiwgSXNSZXF1aXJlZCA9IGZhbHNlLCBFbWl0RGVmYXVsdFZhbHVlID0gZmFsc2UpXQ0KICAgICAgICBwdWJsaWMgc3RyaW5nIE1vZHVsZSB7IGdldDsgc2V0OyB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gQSBkaWN0aW9uYXJ5LCBlYWNoIG9mIHdob3NlIGtleXMgc3BlY2lmaWVzIGEgdmFyaWFibGUgb3IgZXhwcmVzc2lvbiwgdGhlIGFzc29jaWF0ZWQgdmFsdWUgb2Ygd2hpY2ggcmVwcmVzZW50cyB0aGUgdmFyaWFibGUgb3IgZXhwcmVzc2lvbiB2YWx1ZS4gRm9yIGFuIGFubm90YXRpb24gb2Yga2luZCAnY29udGludWF0aW9uJywgZm9yIGV4YW1wbGUsIHRoaXMgZGljdGlvbmFyeSBtaWdodCBob2xkIHRoZSBjdXJyZW50IGFzc3VtZWQgdmFsdWVzIG9mIGEgc2V0IG9mIGdsb2JhbCB2YXJpYWJsZXMuDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIFtEYXRhTWVtYmVyKE5hbWUgPSAic3RhdGUiLCBJc1JlcXVpcmVkID0gZmFsc2UsIEVtaXREZWZhdWx0VmFsdWUgPSBmYWxzZSldDQogICAgICAgIHB1YmxpYyBJRGljdGlvbmFyeTxzdHJpbmcsIHN0cmluZz4gU3RhdGUgeyBnZXQ7IHNldDsgfQ0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIEFuIGludGVnZXIgcmVwcmVzZW50aW5nIGEgY29udGFpbm1lbnQgaGllcmFyY2h5IHdpdGhpbiB0aGUgdGhyZWFkIGZsb3cNCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgW0RhdGFNZW1iZXIoTmFtZSA9ICJuZXN0aW5nTGV2ZWwiLCBJc1JlcXVpcmVkID0gZmFsc2UsIEVtaXREZWZhdWx0VmFsdWUgPSBmYWxzZSldDQogICAgICAgIHB1YmxpYyBpbnQgTmVzdGluZ0xldmVsIHsgZ2V0OyBzZXQ7IH0NCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBBbiBpbnRlZ2VyIHJlcHJlc2VudGluZyB0aGUgdGVtcG9yYWwgb3JkZXIgaW4gd2hpY2ggZXhlY3V0aW9uIHJlYWNoZWQgdGhpcyBsb2NhdGlvbi4NCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgW0RhdGFNZW1iZXIoTmFtZSA9ICJleGVjdXRpb25PcmRlciIsIElzUmVxdWlyZWQgPSBmYWxzZSwgRW1pdERlZmF1bHRWYWx1ZSA9IGZhbHNlKV0NCiAgICAgICAgcHVibGljIGludCBFeGVjdXRpb25PcmRlciB7IGdldDsgc2V0OyB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gVGhlIHRpbWUgYXQgd2hpY2ggdGhpcyBsb2NhdGlvbiB3YXMgZXhlY3V0ZWQuDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIFtEYXRhTWVtYmVyKE5hbWUgPSAidGltZXN0YW1wIiwgSXNSZXF1aXJlZCA9IGZhbHNlLCBFbWl0RGVmYXVsdFZhbHVlID0gZmFsc2UpXQ0KICAgICAgICBwdWJsaWMgRGF0ZVRpbWUgVGltZXN0YW1wIHsgZ2V0OyBzZXQ7IH0NCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBTcGVjaWZpZXMgdGhlIGltcG9ydGFuY2Ugb2YgdGhpcyBsb2NhdGlvbiBpbiB1bmRlcnN0YW5kaW5nIHRoZSBjb2RlIGZsb3cgaW4gd2hpY2ggaXQgb2NjdXJzLiBUaGUgb3JkZXIgZnJvbSBtb3N0IHRvIGxlYXN0IGltcG9ydGFudCBpcyAiZXNzZW50aWFsIiwgImltcG9ydGFudCIsICJ1bmltcG9ydGFudCIuIERlZmF1bHQ6ICJpbXBvcnRhbnQiLg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICBbRGF0YU1lbWJlcihOYW1lID0gImltcG9ydGFuY2UiLCBJc1JlcXVpcmVkID0gZmFsc2UsIEVtaXREZWZhdWx0VmFsdWUgPSBmYWxzZSldDQogICAgICAgIHB1YmxpYyBUaHJlYWRGbG93TG9jYXRpb25JbXBvcnRhbmNlIEltcG9ydGFuY2UgeyBnZXQ7IHNldDsgfQ0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIEtleS92YWx1ZSBwYWlycyB0aGF0IHByb3ZpZGUgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiBhYm91dCB0aGUgY29kZSBsb2NhdGlvbi4NCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgW0RhdGFNZW1iZXIoTmFtZSA9ICJwcm9wZXJ0aWVzIiwgSXNSZXF1aXJlZCA9IGZhbHNlLCBFbWl0RGVmYXVsdFZhbHVlID0gZmFsc2UpXQ0KICAgICAgICBpbnRlcm5hbCBvdmVycmlkZSBJRGljdGlvbmFyeTxzdHJpbmcsIFNlcmlhbGl6ZWRQcm9wZXJ0eUluZm8+IFByb3BlcnRpZXMgeyBnZXQ7IHNldDsgfQ0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIEluaXRpYWxpemVzIGEgbmV3IGluc3RhbmNlIG9mIHRoZSA8c2VlIGNyZWY9IlRocmVhZEZsb3dMb2NhdGlvbiIgLz4gY2xhc3MuDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIHB1YmxpYyBUaHJlYWRGbG93TG9jYXRpb24oKQ0KICAgICAgICB7DQogICAgICAgIH0NCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBJbml0aWFsaXplcyBhIG5ldyBpbnN0YW5jZSBvZiB0aGUgPHNlZSBjcmVmPSJUaHJlYWRGbG93TG9jYXRpb24iIC8+IGNsYXNzIGZyb20gdGhlIHN1cHBsaWVkIHZhbHVlcy4NCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgLy8vIDxwYXJhbSBuYW1lPSJzdGVwIj4NCiAgICAgICAgLy8vIEFuIGluaXRpYWxpemF0aW9uIHZhbHVlIGZvciB0aGUgPHNlZSBjcmVmPSJQOiBTdGVwIiAvPiBwcm9wZXJ0eS4NCiAgICAgICAgLy8vIDwvcGFyYW0+DQogICAgICAgIC8vLyA8cGFyYW0gbmFtZT0ibG9jYXRpb24iPg0KICAgICAgICAvLy8gQW4gaW5pdGlhbGl6YXRpb24gdmFsdWUgZm9yIHRoZSA8c2VlIGNyZWY9IlA6IExvY2F0aW9uIiAvPiBwcm9wZXJ0eS4NCiAgICAgICAgLy8vIDwvcGFyYW0+DQogICAgICAgIC8vLyA8cGFyYW0gbmFtZT0ic3RhY2siPg0KICAgICAgICAvLy8gQW4gaW5pdGlhbGl6YXRpb24gdmFsdWUgZm9yIHRoZSA8c2VlIGNyZWY9IlA6IFN0YWNrIiAvPiBwcm9wZXJ0eS4NCiAgICAgICAgLy8vIDwvcGFyYW0+DQogICAgICAgIC8vLyA8cGFyYW0gbmFtZT0ia2luZCI+DQogICAgICAgIC8vLyBBbiBpbml0aWFsaXphdGlvbiB2YWx1ZSBmb3IgdGhlIDxzZWUgY3JlZj0iUDogS2luZCIgLz4gcHJvcGVydHkuDQogICAgICAgIC8vLyA8L3BhcmFtPg0KICAgICAgICAvLy8gPHBhcmFtIG5hbWU9Im1vZHVsZSI+DQogICAgICAgIC8vLyBBbiBpbml0aWFsaXphdGlvbiB2YWx1ZSBmb3IgdGhlIDxzZWUgY3JlZj0iUDogTW9kdWxlIiAvPiBwcm9wZXJ0eS4NCiAgICAgICAgLy8vIDwvcGFyYW0+DQogICAgICAgIC8vLyA8cGFyYW0gbmFtZT0ic3RhdGUiPg0KICAgICAgICAvLy8gQW4gaW5pdGlhbGl6YXRpb24gdmFsdWUgZm9yIHRoZSA8c2VlIGNyZWY9IlA6IFN0YXRlIiAvPiBwcm9wZXJ0eS4NCiAgICAgICAgLy8vIDwvcGFyYW0+DQogICAgICAgIC8vLyA8cGFyYW0gbmFtZT0ibmVzdGluZ0xldmVsIj4NCiAgICAgICAgLy8vIEFuIGluaXRpYWxpemF0aW9uIHZhbHVlIGZvciB0aGUgPHNlZSBjcmVmPSJQOiBOZXN0aW5nTGV2ZWwiIC8+IHByb3BlcnR5Lg0KICAgICAgICAvLy8gPC9wYXJhbT4NCiAgICAgICAgLy8vIDxwYXJhbSBuYW1lPSJleGVjdXRpb25PcmRlciI+DQogICAgICAgIC8vLyBBbiBpbml0aWFsaXphdGlvbiB2YWx1ZSBmb3IgdGhlIDxzZWUgY3JlZj0iUDogRXhlY3V0aW9uT3JkZXIiIC8+IHByb3BlcnR5Lg0KICAgICAgICAvLy8gPC9wYXJhbT4NCiAgICAgICAgLy8vIDxwYXJhbSBuYW1lPSJ0aW1lc3RhbXAiPg0KICAgICAgICAvLy8gQW4gaW5pdGlhbGl6YXRpb24gdmFsdWUgZm9yIHRoZSA8c2VlIGNyZWY9IlA6IFRpbWVzdGFtcCIgLz4gcHJvcGVydHkuDQogICAgICAgIC8vLyA8L3BhcmFtPg0KICAgICAgICAvLy8gPHBhcmFtIG5hbWU9ImltcG9ydGFuY2UiPg0KICAgICAgICAvLy8gQW4gaW5pdGlhbGl6YXRpb24gdmFsdWUgZm9yIHRoZSA8c2VlIGNyZWY9IlA6IEltcG9ydGFuY2UiIC8+IHByb3BlcnR5Lg0KICAgICAgICAvLy8gPC9wYXJhbT4NCiAgICAgICAgLy8vIDxwYXJhbSBuYW1lPSJwcm9wZXJ0aWVzIj4NCiAgICAgICAgLy8vIEFuIGluaXRpYWxpemF0aW9uIHZhbHVlIGZvciB0aGUgPHNlZSBjcmVmPSJQOiBQcm9wZXJ0aWVzIiAvPiBwcm9wZXJ0eS4NCiAgICAgICAgLy8vIDwvcGFyYW0+DQogICAgICAgIHB1YmxpYyBUaHJlYWRGbG93TG9jYXRpb24oaW50IHN0ZXAsIExvY2F0aW9uIGxvY2F0aW9uLCBTdGFjayBzdGFjaywgc3RyaW5nIGtpbmQsIHN0cmluZyBtb2R1bGUsIElEaWN0aW9uYXJ5PHN0cmluZywgc3RyaW5nPiBzdGF0ZSwgaW50IG5lc3RpbmdMZXZlbCwgaW50IGV4ZWN1dGlvbk9yZGVyLCBEYXRlVGltZSB0aW1lc3RhbXAsIFRocmVhZEZsb3dMb2NhdGlvbkltcG9ydGFuY2UgaW1wb3J0YW5jZSwgSURpY3Rpb25hcnk8c3RyaW5nLCBTZXJpYWxpemVkUHJvcGVydHlJbmZvPiBwcm9wZXJ0aWVzKQ0KICAgICAgICB7DQogICAgICAgICAgICBJbml0KHN0ZXAsIGxvY2F0aW9uLCBzdGFjaywga2luZCwgbW9kdWxlLCBzdGF0ZSwgbmVzdGluZ0xldmVsLCBleGVjdXRpb25PcmRlciwgdGltZXN0YW1wLCBpbXBvcnRhbmNlLCBwcm9wZXJ0aWVzKTsNCiAgICAgICAgfQ0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIEluaXRpYWxpemVzIGEgbmV3IGluc3RhbmNlIG9mIHRoZSA8c2VlIGNyZWY9IlRocmVhZEZsb3dMb2NhdGlvbiIgLz4gY2xhc3MgZnJvbSB0aGUgc3BlY2lmaWVkIGluc3RhbmNlLg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICAvLy8gPHBhcmFtIG5hbWU9Im90aGVyIj4NCiAgICAgICAgLy8vIFRoZSBpbnN0YW5jZSBmcm9tIHdoaWNoIHRoZSBuZXcgaW5zdGFuY2UgaXMgdG8gYmUgaW5pdGlhbGl6ZWQuDQogICAgICAgIC8vLyA8L3BhcmFtPg0KICAgICAgICAvLy8gPGV4Y2VwdGlvbiBjcmVmPSJBcmd1bWVudE51bGxFeGNlcHRpb24iPg0KICAgICAgICAvLy8gVGhyb3duIGlmIDxwYXJhbXJlZiBuYW1lPSJvdGhlciIgLz4gaXMgbnVsbC4NCiAgICAgICAgLy8vIDwvZXhjZXB0aW9uPg0KICAgICAgICBwdWJsaWMgVGhyZWFkRmxvd0xvY2F0aW9uKFRocmVhZEZsb3dMb2NhdGlvbiBvdGhlcikNCiAgICAgICAgew0KICAgICAgICAgICAgaWYgKG90aGVyID09IG51bGwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgdGhyb3cgbmV3IEFyZ3VtZW50TnVsbEV4Y2VwdGlvbihuYW1lb2Yob3RoZXIpKTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgSW5pdChvdGhlci5TdGVwLCBvdGhlci5Mb2NhdGlvbiwgb3RoZXIuU3RhY2ssIG90aGVyLktpbmQsIG90aGVyLk1vZHVsZSwgb3RoZXIuU3RhdGUsIG90aGVyLk5lc3RpbmdMZXZlbCwgb3RoZXIuRXhlY3V0aW9uT3JkZXIsIG90aGVyLlRpbWVzdGFtcCwgb3RoZXIuSW1wb3J0YW5jZSwgb3RoZXIuUHJvcGVydGllcyk7DQogICAgICAgIH0NCg0KICAgICAgICBJU2FyaWZOb2RlIElTYXJpZk5vZGUuRGVlcENsb25lKCkNCiAgICAgICAgew0KICAgICAgICAgICAgcmV0dXJuIERlZXBDbG9uZUNvcmUoKTsNCiAgICAgICAgfQ0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIENyZWF0ZXMgYSBkZWVwIGNvcHkgb2YgdGhpcyBpbnN0YW5jZS4NCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgcHVibGljIFRocmVhZEZsb3dMb2NhdGlvbiBEZWVwQ2xvbmUoKQ0KICAgICAgICB7DQogICAgICAgICAgICByZXR1cm4gKFRocmVhZEZsb3dMb2NhdGlvbilEZWVwQ2xvbmVDb3JlKCk7DQogICAgICAgIH0NCg0KICAgICAgICBwcml2YXRlIElTYXJpZk5vZGUgRGVlcENsb25lQ29yZSgpDQogICAgICAgIHsNCiAgICAgICAgICAgIHJldHVybiBuZXcgVGhyZWFkRmxvd0xvY2F0aW9uKHRoaXMpOw0KICAgICAgICB9DQoNCiAgICAgICAgcHJpdmF0ZSB2b2lkIEluaXQoaW50IHN0ZXAsIExvY2F0aW9uIGxvY2F0aW9uLCBTdGFjayBzdGFjaywgc3RyaW5nIGtpbmQsIHN0cmluZyBtb2R1bGUsIElEaWN0aW9uYXJ5PHN0cmluZywgc3RyaW5nPiBzdGF0ZSwgaW50IG5lc3RpbmdMZXZlbCwgaW50IGV4ZWN1dGlvbk9yZGVyLCBEYXRlVGltZSB0aW1lc3RhbXAsIFRocmVhZEZsb3dMb2NhdGlvbkltcG9ydGFuY2UgaW1wb3J0YW5jZSwgSURpY3Rpb25hcnk8c3RyaW5nLCBTZXJpYWxpemVkUHJvcGVydHlJbmZvPiBwcm9wZXJ0aWVzKQ0KICAgICAgICB7DQogICAgICAgICAgICBTdGVwID0gc3RlcDsNCiAgICAgICAgICAgIGlmIChsb2NhdGlvbiAhPSBudWxsKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIExvY2F0aW9uID0gbmV3IExvY2F0aW9uKGxvY2F0aW9uKTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgaWYgKHN0YWNrICE9IG51bGwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgU3RhY2sgPSBuZXcgU3RhY2soc3RhY2spOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBLaW5kID0ga2luZDsNCiAgICAgICAgICAgIE1vZHVsZSA9IG1vZHVsZTsNCiAgICAgICAgICAgIGlmIChzdGF0ZSAhPSBudWxsKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIFN0YXRlID0gbmV3IERpY3Rpb25hcnk8c3RyaW5nLCBzdHJpbmc+KHN0YXRlKTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgTmVzdGluZ0xldmVsID0gbmVzdGluZ0xldmVsOw0KICAgICAgICAgICAgRXhlY3V0aW9uT3JkZXIgPSBleGVjdXRpb25PcmRlcjsNCiAgICAgICAgICAgIFRpbWVzdGFtcCA9IHRpbWVzdGFtcDsNCiAgICAgICAgICAgIEltcG9ydGFuY2UgPSBpbXBvcnRhbmNlOw0KICAgICAgICAgICAgaWYgKHByb3BlcnRpZXMgIT0gbnVsbCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBQcm9wZXJ0aWVzID0gbmV3IERpY3Rpb25hcnk8c3RyaW5nLCBTZXJpYWxpemVkUHJvcGVydHlJbmZvPihwcm9wZXJ0aWVzKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgIH0NCn0=" + { + "ruleId": "CA1062", + "message": { + "text": "In externally visible method 'MustBeStringConverter.CanConvert(Type)', validate parameter 'objectType' before using it." }, - "hashes": [ - { - "value": "5A59682DD4EE74EF806FE488C6871D18", - "algorithm": "md5" - }, + "locations": [ { - "value": "B69176D6B0E6EE46E8A030F11950DAFC2D95BF3D", - "algorithm": "sha-1" - }, - { - "value": "F2B974484ACCC1604161A1E802CB7CEEFE60B5AEC59B8176E7231BA0F059F688", - "algorithm": "sha-256" + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Microsoft.Json.Schema.dll", + "uriBaseId": "$(ProjectDir)", + "index": 1 + } + }, + "logicalLocations": [ + { + "index": 73, + "fullyQualifiedName": "microsoft.json.schema.dll!Microsoft.Json.Schema.MustBeStringConverter.CanConvert(System.Type)" + } + ] } - ] - }, - "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/ThreadFlowLocationEqualityComparer.cs": { - "mimeType": "text/x-csharp", - "contents": { - "binary": "Ly8gQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQuICBBbGwgUmlnaHRzIFJlc2VydmVkLg0KLy8gTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlLiBTZWUgTElDRU5TRSBmaWxlIGluIHRoZSBwcm9qZWN0IHJvb3QgZm9yIGZ1bGwgbGljZW5zZSBpbmZvcm1hdGlvbi4NCg0KdXNpbmcgU3lzdGVtOw0KdXNpbmcgU3lzdGVtLkNvZGVEb20uQ29tcGlsZXI7DQp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsNCnVzaW5nIE1pY3Jvc29mdC5Db2RlQW5hbHlzaXMuU2FyaWYuUmVhZGVyczsNCg0KbmFtZXNwYWNlIE1pY3Jvc29mdC5Db2RlQW5hbHlzaXMuU2FyaWYNCnsNCiAgICAvLy8gPHN1bW1hcnk+DQogICAgLy8vIERlZmluZXMgbWV0aG9kcyB0byBzdXBwb3J0IHRoZSBjb21wYXJpc29uIG9mIG9iamVjdHMgb2YgdHlwZSBUaHJlYWRGbG93TG9jYXRpb24gZm9yIGVxdWFsaXR5Lg0KICAgIC8vLyA8L3N1bW1hcnk+DQogICAgW0dlbmVyYXRlZENvZGUoIk1pY3Jvc29mdC5Kc29uLlNjaGVtYS5Ub0RvdE5ldCIsICIwLjU2LjAuMCIpXQ0KICAgIGludGVybmFsIHNlYWxlZCBjbGFzcyBUaHJlYWRGbG93TG9jYXRpb25FcXVhbGl0eUNvbXBhcmVyIDogSUVxdWFsaXR5Q29tcGFyZXI8VGhyZWFkRmxvd0xvY2F0aW9uPg0KICAgIHsNCiAgICAgICAgaW50ZXJuYWwgc3RhdGljIHJlYWRvbmx5IFRocmVhZEZsb3dMb2NhdGlvbkVxdWFsaXR5Q29tcGFyZXIgSW5zdGFuY2UgPSBuZXcgVGhyZWFkRmxvd0xvY2F0aW9uRXF1YWxpdHlDb21wYXJlcigpOw0KDQogICAgICAgIHB1YmxpYyBib29sIEVxdWFscyhUaHJlYWRGbG93TG9jYXRpb24gbGVmdCwgVGhyZWFkRmxvd0xvY2F0aW9uIHJpZ2h0KQ0KICAgICAgICB7DQogICAgICAgICAgICBpZiAoUmVmZXJlbmNlRXF1YWxzKGxlZnQsIHJpZ2h0KSkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgaWYgKFJlZmVyZW5jZUVxdWFscyhsZWZ0LCBudWxsKSB8fCBSZWZlcmVuY2VFcXVhbHMocmlnaHQsIG51bGwpKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgaWYgKGxlZnQuU3RlcCAhPSByaWdodC5TdGVwKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgaWYgKCFMb2NhdGlvbi5WYWx1ZUNvbXBhcmVyLkVxdWFscyhsZWZ0LkxvY2F0aW9uLCByaWdodC5Mb2NhdGlvbikpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBpZiAoIVN0YWNrLlZhbHVlQ29tcGFyZXIuRXF1YWxzKGxlZnQuU3RhY2ssIHJpZ2h0LlN0YWNrKSkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIGlmIChsZWZ0LktpbmQgIT0gcmlnaHQuS2luZCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIGlmIChsZWZ0Lk1vZHVsZSAhPSByaWdodC5Nb2R1bGUpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBpZiAoIW9iamVjdC5SZWZlcmVuY2VFcXVhbHMobGVmdC5TdGF0ZSwgcmlnaHQuU3RhdGUpKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIGlmIChsZWZ0LlN0YXRlID09IG51bGwgfHwgcmlnaHQuU3RhdGUgPT0gbnVsbCB8fCBsZWZ0LlN0YXRlLkNvdW50ICE9IHJpZ2h0LlN0YXRlLkNvdW50KQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgIGZvcmVhY2ggKHZhciB2YWx1ZV8wIGluIGxlZnQuU3RhdGUpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBzdHJpbmcgdmFsdWVfMTsNCiAgICAgICAgICAgICAgICAgICAgaWYgKCFyaWdodC5TdGF0ZS5UcnlHZXRWYWx1ZSh2YWx1ZV8wLktleSwgb3V0IHZhbHVlXzEpKQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWVfMC5WYWx1ZSAhPSB2YWx1ZV8xKQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIGlmIChsZWZ0Lk5lc3RpbmdMZXZlbCAhPSByaWdodC5OZXN0aW5nTGV2ZWwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBpZiAobGVmdC5FeGVjdXRpb25PcmRlciAhPSByaWdodC5FeGVjdXRpb25PcmRlcikNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIGlmIChsZWZ0LlRpbWVzdGFtcCAhPSByaWdodC5UaW1lc3RhbXApDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBpZiAobGVmdC5JbXBvcnRhbmNlICE9IHJpZ2h0LkltcG9ydGFuY2UpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBpZiAoIW9iamVjdC5SZWZlcmVuY2VFcXVhbHMobGVmdC5Qcm9wZXJ0aWVzLCByaWdodC5Qcm9wZXJ0aWVzKSkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBpZiAobGVmdC5Qcm9wZXJ0aWVzID09IG51bGwgfHwgcmlnaHQuUHJvcGVydGllcyA9PSBudWxsIHx8IGxlZnQuUHJvcGVydGllcy5Db3VudCAhPSByaWdodC5Qcm9wZXJ0aWVzLkNvdW50KQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgIGZvcmVhY2ggKHZhciB2YWx1ZV8yIGluIGxlZnQuUHJvcGVydGllcykNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIFNlcmlhbGl6ZWRQcm9wZXJ0eUluZm8gdmFsdWVfMzsNCiAgICAgICAgICAgICAgICAgICAgaWYgKCFyaWdodC5Qcm9wZXJ0aWVzLlRyeUdldFZhbHVlKHZhbHVlXzIuS2V5LCBvdXQgdmFsdWVfMykpDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgICAgIGlmICghb2JqZWN0LkVxdWFscyh2YWx1ZV8yLlZhbHVlLCB2YWx1ZV8zKSkNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICByZXR1cm4gdHJ1ZTsNCiAgICAgICAgfQ0KDQogICAgICAgIHB1YmxpYyBpbnQgR2V0SGFzaENvZGUoVGhyZWFkRmxvd0xvY2F0aW9uIG9iaikNCiAgICAgICAgew0KICAgICAgICAgICAgaWYgKFJlZmVyZW5jZUVxdWFscyhvYmosIG51bGwpKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHJldHVybiAwOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBpbnQgcmVzdWx0ID0gMTc7DQogICAgICAgICAgICB1bmNoZWNrZWQNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICByZXN1bHQgPSAocmVzdWx0ICogMzEpICsgb2JqLlN0ZXAuR2V0SGFzaENvZGUoKTsNCiAgICAgICAgICAgICAgICBpZiAob2JqLkxvY2F0aW9uICE9IG51bGwpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSAocmVzdWx0ICogMzEpICsgb2JqLkxvY2F0aW9uLlZhbHVlR2V0SGFzaENvZGUoKTsNCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICBpZiAob2JqLlN0YWNrICE9IG51bGwpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSAocmVzdWx0ICogMzEpICsgb2JqLlN0YWNrLlZhbHVlR2V0SGFzaENvZGUoKTsNCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICBpZiAob2JqLktpbmQgIT0gbnVsbCkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IChyZXN1bHQgKiAzMSkgKyBvYmouS2luZC5HZXRIYXNoQ29kZSgpOw0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgIGlmIChvYmouTW9kdWxlICE9IG51bGwpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSAocmVzdWx0ICogMzEpICsgb2JqLk1vZHVsZS5HZXRIYXNoQ29kZSgpOw0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgIGlmIChvYmouU3RhdGUgIT0gbnVsbCkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIC8vIFVzZSB4b3IgZm9yIGRpY3Rpb25hcmllcyB0byBiZSBvcmRlci1pbmRlcGVuZGVudC4NCiAgICAgICAgICAgICAgICAgICAgaW50IHhvcl8wID0gMDsNCiAgICAgICAgICAgICAgICAgICAgZm9yZWFjaCAodmFyIHZhbHVlXzQgaW4gb2JqLlN0YXRlKQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICB4b3JfMCBePSB2YWx1ZV80LktleS5HZXRIYXNoQ29kZSgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlXzQuVmFsdWUgIT0gbnVsbCkNCiAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB4b3JfMCBePSB2YWx1ZV80LlZhbHVlLkdldEhhc2hDb2RlKCk7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSAocmVzdWx0ICogMzEpICsgeG9yXzA7DQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgcmVzdWx0ID0gKHJlc3VsdCAqIDMxKSArIG9iai5OZXN0aW5nTGV2ZWwuR2V0SGFzaENvZGUoKTsNCiAgICAgICAgICAgICAgICByZXN1bHQgPSAocmVzdWx0ICogMzEpICsgb2JqLkV4ZWN1dGlvbk9yZGVyLkdldEhhc2hDb2RlKCk7DQogICAgICAgICAgICAgICAgcmVzdWx0ID0gKHJlc3VsdCAqIDMxKSArIG9iai5UaW1lc3RhbXAuR2V0SGFzaENvZGUoKTsNCiAgICAgICAgICAgICAgICByZXN1bHQgPSAocmVzdWx0ICogMzEpICsgb2JqLkltcG9ydGFuY2UuR2V0SGFzaENvZGUoKTsNCiAgICAgICAgICAgICAgICBpZiAob2JqLlByb3BlcnRpZXMgIT0gbnVsbCkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIC8vIFVzZSB4b3IgZm9yIGRpY3Rpb25hcmllcyB0byBiZSBvcmRlci1pbmRlcGVuZGVudC4NCiAgICAgICAgICAgICAgICAgICAgaW50IHhvcl8xID0gMDsNCiAgICAgICAgICAgICAgICAgICAgZm9yZWFjaCAodmFyIHZhbHVlXzUgaW4gb2JqLlByb3BlcnRpZXMpDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHhvcl8xIF49IHZhbHVlXzUuS2V5LkdldEhhc2hDb2RlKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWVfNS5WYWx1ZSAhPSBudWxsKQ0KICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhvcl8xIF49IHZhbHVlXzUuVmFsdWUuR2V0SGFzaENvZGUoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IChyZXN1bHQgKiAzMSkgKyB4b3JfMTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIHJldHVybiByZXN1bHQ7DQogICAgICAgIH0NCiAgICB9DQp9" + ], + "partialFingerprints": { + "UniqueId": "0" }, - "hashes": [ - { - "value": "F4F0377B92362D56AAD4A0267628C0F2", - "algorithm": "md5" - }, - { - "value": "118007B9D81EEBE13605E4ED801D06421832B2A4", - "algorithm": "sha-1" - }, - { - "value": "E8907D08915A15D4C28497983D7236B24F74D5C4E224BA0BFDE6B0646EC9AD9A", - "algorithm": "sha-256" - } - ] + "properties": { + "Category": "Microsoft.Design", + "FixCategory": "DependsOnFix" + } }, - "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/Tool.cs": { - "mimeType": "text/x-csharp", - "contents": { - "binary": "Ly8gQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQuICBBbGwgUmlnaHRzIFJlc2VydmVkLg0KLy8gTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlLiBTZWUgTElDRU5TRSBmaWxlIGluIHRoZSBwcm9qZWN0IHJvb3QgZm9yIGZ1bGwgbGljZW5zZSBpbmZvcm1hdGlvbi4NCg0KdXNpbmcgU3lzdGVtOw0KdXNpbmcgU3lzdGVtLkNvZGVEb20uQ29tcGlsZXI7DQp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsNCnVzaW5nIFN5c3RlbS5SdW50aW1lLlNlcmlhbGl6YXRpb247DQp1c2luZyBNaWNyb3NvZnQuQ29kZUFuYWx5c2lzLlNhcmlmLlJlYWRlcnM7DQoNCm5hbWVzcGFjZSBNaWNyb3NvZnQuQ29kZUFuYWx5c2lzLlNhcmlmDQp7DQogICAgLy8vIDxzdW1tYXJ5Pg0KICAgIC8vLyBUaGUgYW5hbHlzaXMgdG9vbCB0aGF0IHdhcyBydW4uDQogICAgLy8vIDwvc3VtbWFyeT4NCiAgICBbRGF0YUNvbnRyYWN0XQ0KICAgIFtHZW5lcmF0ZWRDb2RlKCJNaWNyb3NvZnQuSnNvbi5TY2hlbWEuVG9Eb3ROZXQiLCAiMC41Ni4wLjAiKV0NCiAgICBwdWJsaWMgcGFydGlhbCBjbGFzcyBUb29sIDogUHJvcGVydHlCYWdIb2xkZXIsIElTYXJpZk5vZGUNCiAgICB7DQogICAgICAgIHB1YmxpYyBzdGF0aWMgSUVxdWFsaXR5Q29tcGFyZXI8VG9vbD4gVmFsdWVDb21wYXJlciA9PiBUb29sRXF1YWxpdHlDb21wYXJlci5JbnN0YW5jZTsNCg0KICAgICAgICBwdWJsaWMgYm9vbCBWYWx1ZUVxdWFscyhUb29sIG90aGVyKSA9PiBWYWx1ZUNvbXBhcmVyLkVxdWFscyh0aGlzLCBvdGhlcik7DQogICAgICAgIHB1YmxpYyBpbnQgVmFsdWVHZXRIYXNoQ29kZSgpID0+IFZhbHVlQ29tcGFyZXIuR2V0SGFzaENvZGUodGhpcyk7DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gR2V0cyBhIHZhbHVlIGluZGljYXRpbmcgdGhlIHR5cGUgb2Ygb2JqZWN0IGltcGxlbWVudGluZyA8c2VlIGNyZWY9IklTYXJpZk5vZGUiIC8+Lg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICBwdWJsaWMgU2FyaWZOb2RlS2luZCBTYXJpZk5vZGVLaW5kDQogICAgICAgIHsNCiAgICAgICAgICAgIGdldA0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHJldHVybiBTYXJpZk5vZGVLaW5kLlRvb2w7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBUaGUgbmFtZSBvZiB0aGUgdG9vbC4NCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgW0RhdGFNZW1iZXIoTmFtZSA9ICJuYW1lIiwgSXNSZXF1aXJlZCA9IHRydWUpXQ0KICAgICAgICBwdWJsaWMgc3RyaW5nIE5hbWUgeyBnZXQ7IHNldDsgfQ0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIFRoZSBuYW1lIG9mIHRoZSB0b29sIGFsb25nIHdpdGggaXRzIHZlcnNpb24gYW5kIGFueSBvdGhlciB1c2VmdWwgaWRlbnRpZnlpbmcgaW5mb3JtYXRpb24sIHN1Y2ggYXMgaXRzIGxvY2FsZS4NCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgW0RhdGFNZW1iZXIoTmFtZSA9ICJmdWxsTmFtZSIsIElzUmVxdWlyZWQgPSBmYWxzZSwgRW1pdERlZmF1bHRWYWx1ZSA9IGZhbHNlKV0NCiAgICAgICAgcHVibGljIHN0cmluZyBGdWxsTmFtZSB7IGdldDsgc2V0OyB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gVGhlIHRvb2wgdmVyc2lvbiwgaW4gd2hhdGV2ZXIgZm9ybWF0IHRoZSB0b29sIG5hdGl2ZWx5IHByb3ZpZGVzLg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICBbRGF0YU1lbWJlcihOYW1lID0gInZlcnNpb24iLCBJc1JlcXVpcmVkID0gZmFsc2UsIEVtaXREZWZhdWx0VmFsdWUgPSBmYWxzZSldDQogICAgICAgIHB1YmxpYyBzdHJpbmcgVmVyc2lvbiB7IGdldDsgc2V0OyB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gVGhlIHRvb2wgdmVyc2lvbiBpbiB0aGUgZm9ybWF0IHNwZWNpZmllZCBieSBTZW1hbnRpYyBWZXJzaW9uaW5nIDIuMC4NCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgW0RhdGFNZW1iZXIoTmFtZSA9ICJzZW1hbnRpY1ZlcnNpb24iLCBJc1JlcXVpcmVkID0gZmFsc2UsIEVtaXREZWZhdWx0VmFsdWUgPSBmYWxzZSldDQogICAgICAgIHB1YmxpYyBzdHJpbmcgU2VtYW50aWNWZXJzaW9uIHsgZ2V0OyBzZXQ7IH0NCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBUaGUgYmluYXJ5IHZlcnNpb24gb2YgdGhlIHRvb2wncyBwcmltYXJ5IGV4ZWN1dGFibGUgZmlsZSAoZm9yIG9wZXJhdGluZyBzeXN0ZW1zIHN1Y2ggYXMgV2luZG93cyB0aGF0IHByb3ZpZGUgdGhhdCBpbmZvcm1hdGlvbikuDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIFtEYXRhTWVtYmVyKE5hbWUgPSAiZmlsZVZlcnNpb24iLCBJc1JlcXVpcmVkID0gZmFsc2UsIEVtaXREZWZhdWx0VmFsdWUgPSBmYWxzZSldDQogICAgICAgIHB1YmxpYyBzdHJpbmcgRmlsZVZlcnNpb24geyBnZXQ7IHNldDsgfQ0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIFRoZSBhYnNvbHV0ZSBVUkkgZnJvbSB3aGljaCB0aGUgdG9vbCBjYW4gYmUgZG93bmxvYWRlZC4NCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgW0RhdGFNZW1iZXIoTmFtZSA9ICJkb3dubG9hZFVyaSIsIElzUmVxdWlyZWQgPSBmYWxzZSwgRW1pdERlZmF1bHRWYWx1ZSA9IGZhbHNlKV0NCiAgICAgICAgcHVibGljIFVyaSBEb3dubG9hZFVyaSB7IGdldDsgc2V0OyB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gQSB2ZXJzaW9uIHRoYXQgdW5pcXVlbHkgaWRlbnRpZmllcyB0aGUgU0FSSUYgbG9nZ2luZyBjb21wb25lbnQgdGhhdCBnZW5lcmF0ZWQgdGhpcyBmaWxlLCBpZiBpdCBpcyB2ZXJzaW9uZWQgc2VwYXJhdGVseSBmcm9tIHRoZSB0b29sLg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICBbRGF0YU1lbWJlcihOYW1lID0gInNhcmlmTG9nZ2VyVmVyc2lvbiIsIElzUmVxdWlyZWQgPSBmYWxzZSwgRW1pdERlZmF1bHRWYWx1ZSA9IGZhbHNlKV0NCiAgICAgICAgcHVibGljIHN0cmluZyBTYXJpZkxvZ2dlclZlcnNpb24geyBnZXQ7IHNldDsgfQ0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIFRoZSB0b29sIGxhbmd1YWdlIChleHByZXNzZWQgYXMgYW4gSVNPIDY0OSB0d28tbGV0dGVyIGxvd2VyY2FzZSBjdWx0dXJlIGNvZGUpIGFuZCByZWdpb24gKGV4cHJlc3NlZCBhcyBhbiBJU08gMzE2NiB0d28tbGV0dGVyIHVwcGVyY2FzZSBzdWJjdWx0dXJlIGNvZGUgYXNzb2NpYXRlZCB3aXRoIGEgY291bnRyeSBvciByZWdpb24pLg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICBbRGF0YU1lbWJlcihOYW1lID0gImxhbmd1YWdlIiwgSXNSZXF1aXJlZCA9IGZhbHNlLCBFbWl0RGVmYXVsdFZhbHVlID0gZmFsc2UpXQ0KICAgICAgICBwdWJsaWMgc3RyaW5nIExhbmd1YWdlIHsgZ2V0OyBzZXQ7IH0NCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBLZXkvdmFsdWUgcGFpcnMgdGhhdCBwcm92aWRlIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gYWJvdXQgdGhlIHRvb2wuDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIFtEYXRhTWVtYmVyKE5hbWUgPSAicHJvcGVydGllcyIsIElzUmVxdWlyZWQgPSBmYWxzZSwgRW1pdERlZmF1bHRWYWx1ZSA9IGZhbHNlKV0NCiAgICAgICAgaW50ZXJuYWwgb3ZlcnJpZGUgSURpY3Rpb25hcnk8c3RyaW5nLCBTZXJpYWxpemVkUHJvcGVydHlJbmZvPiBQcm9wZXJ0aWVzIHsgZ2V0OyBzZXQ7IH0NCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBJbml0aWFsaXplcyBhIG5ldyBpbnN0YW5jZSBvZiB0aGUgPHNlZSBjcmVmPSJUb29sIiAvPiBjbGFzcy4NCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgcHVibGljIFRvb2woKQ0KICAgICAgICB7DQogICAgICAgIH0NCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBJbml0aWFsaXplcyBhIG5ldyBpbnN0YW5jZSBvZiB0aGUgPHNlZSBjcmVmPSJUb29sIiAvPiBjbGFzcyBmcm9tIHRoZSBzdXBwbGllZCB2YWx1ZXMuDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIC8vLyA8cGFyYW0gbmFtZT0ibmFtZSI+DQogICAgICAgIC8vLyBBbiBpbml0aWFsaXphdGlvbiB2YWx1ZSBmb3IgdGhlIDxzZWUgY3JlZj0iUDogTmFtZSIgLz4gcHJvcGVydHkuDQogICAgICAgIC8vLyA8L3BhcmFtPg0KICAgICAgICAvLy8gPHBhcmFtIG5hbWU9ImZ1bGxOYW1lIj4NCiAgICAgICAgLy8vIEFuIGluaXRpYWxpemF0aW9uIHZhbHVlIGZvciB0aGUgPHNlZSBjcmVmPSJQOiBGdWxsTmFtZSIgLz4gcHJvcGVydHkuDQogICAgICAgIC8vLyA8L3BhcmFtPg0KICAgICAgICAvLy8gPHBhcmFtIG5hbWU9InZlcnNpb24iPg0KICAgICAgICAvLy8gQW4gaW5pdGlhbGl6YXRpb24gdmFsdWUgZm9yIHRoZSA8c2VlIGNyZWY9IlA6IFZlcnNpb24iIC8+IHByb3BlcnR5Lg0KICAgICAgICAvLy8gPC9wYXJhbT4NCiAgICAgICAgLy8vIDxwYXJhbSBuYW1lPSJzZW1hbnRpY1ZlcnNpb24iPg0KICAgICAgICAvLy8gQW4gaW5pdGlhbGl6YXRpb24gdmFsdWUgZm9yIHRoZSA8c2VlIGNyZWY9IlA6IFNlbWFudGljVmVyc2lvbiIgLz4gcHJvcGVydHkuDQogICAgICAgIC8vLyA8L3BhcmFtPg0KICAgICAgICAvLy8gPHBhcmFtIG5hbWU9ImZpbGVWZXJzaW9uIj4NCiAgICAgICAgLy8vIEFuIGluaXRpYWxpemF0aW9uIHZhbHVlIGZvciB0aGUgPHNlZSBjcmVmPSJQOiBGaWxlVmVyc2lvbiIgLz4gcHJvcGVydHkuDQogICAgICAgIC8vLyA8L3BhcmFtPg0KICAgICAgICAvLy8gPHBhcmFtIG5hbWU9ImRvd25sb2FkVXJpIj4NCiAgICAgICAgLy8vIEFuIGluaXRpYWxpemF0aW9uIHZhbHVlIGZvciB0aGUgPHNlZSBjcmVmPSJQOiBEb3dubG9hZFVyaSIgLz4gcHJvcGVydHkuDQogICAgICAgIC8vLyA8L3BhcmFtPg0KICAgICAgICAvLy8gPHBhcmFtIG5hbWU9InNhcmlmTG9nZ2VyVmVyc2lvbiI+DQogICAgICAgIC8vLyBBbiBpbml0aWFsaXphdGlvbiB2YWx1ZSBmb3IgdGhlIDxzZWUgY3JlZj0iUDogU2FyaWZMb2dnZXJWZXJzaW9uIiAvPiBwcm9wZXJ0eS4NCiAgICAgICAgLy8vIDwvcGFyYW0+DQogICAgICAgIC8vLyA8cGFyYW0gbmFtZT0ibGFuZ3VhZ2UiPg0KICAgICAgICAvLy8gQW4gaW5pdGlhbGl6YXRpb24gdmFsdWUgZm9yIHRoZSA8c2VlIGNyZWY9IlA6IExhbmd1YWdlIiAvPiBwcm9wZXJ0eS4NCiAgICAgICAgLy8vIDwvcGFyYW0+DQogICAgICAgIC8vLyA8cGFyYW0gbmFtZT0icHJvcGVydGllcyI+DQogICAgICAgIC8vLyBBbiBpbml0aWFsaXphdGlvbiB2YWx1ZSBmb3IgdGhlIDxzZWUgY3JlZj0iUDogUHJvcGVydGllcyIgLz4gcHJvcGVydHkuDQogICAgICAgIC8vLyA8L3BhcmFtPg0KICAgICAgICBwdWJsaWMgVG9vbChzdHJpbmcgbmFtZSwgc3RyaW5nIGZ1bGxOYW1lLCBzdHJpbmcgdmVyc2lvbiwgc3RyaW5nIHNlbWFudGljVmVyc2lvbiwgc3RyaW5nIGZpbGVWZXJzaW9uLCBVcmkgZG93bmxvYWRVcmksIHN0cmluZyBzYXJpZkxvZ2dlclZlcnNpb24sIHN0cmluZyBsYW5ndWFnZSwgSURpY3Rpb25hcnk8c3RyaW5nLCBTZXJpYWxpemVkUHJvcGVydHlJbmZvPiBwcm9wZXJ0aWVzKQ0KICAgICAgICB7DQogICAgICAgICAgICBJbml0KG5hbWUsIGZ1bGxOYW1lLCB2ZXJzaW9uLCBzZW1hbnRpY1ZlcnNpb24sIGZpbGVWZXJzaW9uLCBkb3dubG9hZFVyaSwgc2FyaWZMb2dnZXJWZXJzaW9uLCBsYW5ndWFnZSwgcHJvcGVydGllcyk7DQogICAgICAgIH0NCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBJbml0aWFsaXplcyBhIG5ldyBpbnN0YW5jZSBvZiB0aGUgPHNlZSBjcmVmPSJUb29sIiAvPiBjbGFzcyBmcm9tIHRoZSBzcGVjaWZpZWQgaW5zdGFuY2UuDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIC8vLyA8cGFyYW0gbmFtZT0ib3RoZXIiPg0KICAgICAgICAvLy8gVGhlIGluc3RhbmNlIGZyb20gd2hpY2ggdGhlIG5ldyBpbnN0YW5jZSBpcyB0byBiZSBpbml0aWFsaXplZC4NCiAgICAgICAgLy8vIDwvcGFyYW0+DQogICAgICAgIC8vLyA8ZXhjZXB0aW9uIGNyZWY9IkFyZ3VtZW50TnVsbEV4Y2VwdGlvbiI+DQogICAgICAgIC8vLyBUaHJvd24gaWYgPHBhcmFtcmVmIG5hbWU9Im90aGVyIiAvPiBpcyBudWxsLg0KICAgICAgICAvLy8gPC9leGNlcHRpb24+DQogICAgICAgIHB1YmxpYyBUb29sKFRvb2wgb3RoZXIpDQogICAgICAgIHsNCiAgICAgICAgICAgIGlmIChvdGhlciA9PSBudWxsKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHRocm93IG5ldyBBcmd1bWVudE51bGxFeGNlcHRpb24obmFtZW9mKG90aGVyKSk7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIEluaXQob3RoZXIuTmFtZSwgb3RoZXIuRnVsbE5hbWUsIG90aGVyLlZlcnNpb24sIG90aGVyLlNlbWFudGljVmVyc2lvbiwgb3RoZXIuRmlsZVZlcnNpb24sIG90aGVyLkRvd25sb2FkVXJpLCBvdGhlci5TYXJpZkxvZ2dlclZlcnNpb24sIG90aGVyLkxhbmd1YWdlLCBvdGhlci5Qcm9wZXJ0aWVzKTsNCiAgICAgICAgfQ0KDQogICAgICAgIElTYXJpZk5vZGUgSVNhcmlmTm9kZS5EZWVwQ2xvbmUoKQ0KICAgICAgICB7DQogICAgICAgICAgICByZXR1cm4gRGVlcENsb25lQ29yZSgpOw0KICAgICAgICB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gQ3JlYXRlcyBhIGRlZXAgY29weSBvZiB0aGlzIGluc3RhbmNlLg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICBwdWJsaWMgVG9vbCBEZWVwQ2xvbmUoKQ0KICAgICAgICB7DQogICAgICAgICAgICByZXR1cm4gKFRvb2wpRGVlcENsb25lQ29yZSgpOw0KICAgICAgICB9DQoNCiAgICAgICAgcHJpdmF0ZSBJU2FyaWZOb2RlIERlZXBDbG9uZUNvcmUoKQ0KICAgICAgICB7DQogICAgICAgICAgICByZXR1cm4gbmV3IFRvb2wodGhpcyk7DQogICAgICAgIH0NCg0KICAgICAgICBwcml2YXRlIHZvaWQgSW5pdChzdHJpbmcgbmFtZSwgc3RyaW5nIGZ1bGxOYW1lLCBzdHJpbmcgdmVyc2lvbiwgc3RyaW5nIHNlbWFudGljVmVyc2lvbiwgc3RyaW5nIGZpbGVWZXJzaW9uLCBVcmkgZG93bmxvYWRVcmksIHN0cmluZyBzYXJpZkxvZ2dlclZlcnNpb24sIHN0cmluZyBsYW5ndWFnZSwgSURpY3Rpb25hcnk8c3RyaW5nLCBTZXJpYWxpemVkUHJvcGVydHlJbmZvPiBwcm9wZXJ0aWVzKQ0KICAgICAgICB7DQogICAgICAgICAgICBOYW1lID0gbmFtZTsNCiAgICAgICAgICAgIEZ1bGxOYW1lID0gZnVsbE5hbWU7DQogICAgICAgICAgICBWZXJzaW9uID0gdmVyc2lvbjsNCiAgICAgICAgICAgIFNlbWFudGljVmVyc2lvbiA9IHNlbWFudGljVmVyc2lvbjsNCiAgICAgICAgICAgIEZpbGVWZXJzaW9uID0gZmlsZVZlcnNpb247DQogICAgICAgICAgICBpZiAoZG93bmxvYWRVcmkgIT0gbnVsbCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBEb3dubG9hZFVyaSA9IG5ldyBVcmkoZG93bmxvYWRVcmkuT3JpZ2luYWxTdHJpbmcsIGRvd25sb2FkVXJpLklzQWJzb2x1dGVVcmkgPyBVcmlLaW5kLkFic29sdXRlIDogVXJpS2luZC5SZWxhdGl2ZSk7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIFNhcmlmTG9nZ2VyVmVyc2lvbiA9IHNhcmlmTG9nZ2VyVmVyc2lvbjsNCiAgICAgICAgICAgIExhbmd1YWdlID0gbGFuZ3VhZ2U7DQogICAgICAgICAgICBpZiAocHJvcGVydGllcyAhPSBudWxsKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIFByb3BlcnRpZXMgPSBuZXcgRGljdGlvbmFyeTxzdHJpbmcsIFNlcmlhbGl6ZWRQcm9wZXJ0eUluZm8+KHByb3BlcnRpZXMpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgfQ0KfQ==" + { + "ruleId": "CA1062", + "message": { + "text": "In externally visible method 'MustBeStringConverter.ReadJson(JsonReader, Type, object, JsonSerializer)', validate parameter 'reader' before using it." }, - "hashes": [ - { - "value": "99699D9C873AEF94C1731B3C0F9580AE", - "algorithm": "md5" - }, - { - "value": "6ECB4480689B929863DE27EBBFE1E777434876A0", - "algorithm": "sha-1" - }, + "locations": [ { - "value": "C22FB7E827C03BE5149FF17819DDA922840AF1461FB5E832114544EDF6EC6CDE", - "algorithm": "sha-256" + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Microsoft.Json.Schema.dll", + "uriBaseId": "$(ProjectDir)", + "index": 1 + } + }, + "logicalLocations": [ + { + "index": 74, + "fullyQualifiedName": "microsoft.json.schema.dll!Microsoft.Json.Schema.MustBeStringConverter.ReadJson(Newtonsoft.Json.JsonReader,System.Type,System.Object,Newtonsoft.Json.JsonSerializer)" + } + ] } - ] + ], + "partialFingerprints": { + "UniqueId": "0" + }, + "properties": { + "Category": "Microsoft.Design", + "FixCategory": "DependsOnFix" + } }, - "file:///E:/src/sarif-sdk-test/src/Sarif/Core/Tool.cs": { - "mimeType": "text/x-csharp", - "contents": { - "binary": "77u/Ly8gQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQuICBBbGwgUmlnaHRzIFJlc2VydmVkLg0KLy8gTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlLiBTZWUgTElDRU5TRSBmaWxlIGluIHRoZSBwcm9qZWN0IHJvb3QgZm9yIGZ1bGwgbGljZW5zZSBpbmZvcm1hdGlvbi4NCg0KdXNpbmcgU3lzdGVtOw0KdXNpbmcgU3lzdGVtLkRpYWdub3N0aWNzOw0KdXNpbmcgU3lzdGVtLkdsb2JhbGl6YXRpb247DQp1c2luZyBTeXN0ZW0uSU87DQp1c2luZyBTeXN0ZW0uUmVmbGVjdGlvbjsNCg0KbmFtZXNwYWNlIE1pY3Jvc29mdC5Db2RlQW5hbHlzaXMuU2FyaWYNCnsNCiAgICAvLy8gPHN1bW1hcnk+DQogICAgLy8vIFRoZSBhbmFseXNpcyB0b29sIHRoYXQgd2FzIHJ1bi4NCiAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgIHB1YmxpYyBwYXJ0aWFsIGNsYXNzIFRvb2wgDQogICAgew0KICAgICAgICBwdWJsaWMgc3RhdGljIFRvb2wgQ3JlYXRlRnJvbUFzc2VtYmx5RGF0YShzdHJpbmcgcHJlcmVsZWFzZUluZm8gPSBudWxsKQ0KICAgICAgICB7DQogICAgICAgICAgICBBc3NlbWJseSBhc3NlbWJseSA9IEFzc2VtYmx5LkdldEVudHJ5QXNzZW1ibHkoKSA/PyBBc3NlbWJseS5HZXRFeGVjdXRpbmdBc3NlbWJseSgpOw0KICAgICAgICAgICAgc3RyaW5nIG5hbWUgPSBQYXRoLkdldEZpbGVOYW1lV2l0aG91dEV4dGVuc2lvbihhc3NlbWJseS5Mb2NhdGlvbik7DQoNCiAgICAgICAgICAgIFRvb2wgdG9vbCA9IG5ldyBUb29sKCk7DQoNCiAgICAgICAgICAgIC8vICduYW1lJw0KICAgICAgICAgICAgdG9vbC5OYW1lID0gbmFtZTsNCg0KICAgICAgICAgICAgLy8gJ3ZlcnNpb24nIDogcHJpbWFyeSB0b29sIHZlcnNpb24uDQogICAgICAgICAgICBWZXJzaW9uIHZlcnNpb24gPSBhc3NlbWJseS5HZXROYW1lKCkuVmVyc2lvbjsNCiAgICAgICAgICAgIHRvb2wuVmVyc2lvbiA9IHZlcnNpb24uVG9TdHJpbmcoKTsNCg0KICAgICAgICAgICAgLy8gU3ludGhlc2l6ZWQgc2VtdmVyIDIuMCB2ZXJzaW9uIHJlcXVpcmVkIGJ5IHNwZWMNCiAgICAgICAgICAgIHRvb2wuU2VtYW50aWNWZXJzaW9uID0gdmVyc2lvbi5NYWpvci5Ub1N0cmluZygpICsgIi4iICsgdmVyc2lvbi5NaW5vci5Ub1N0cmluZygpICsgIi4iICsgdmVyc2lvbi5CdWlsZC5Ub1N0cmluZygpOw0KDQogICAgICAgICAgICAvLyBCaW5hcnkgZmlsZSB2ZXJzaW9uDQogICAgICAgICAgICBGaWxlVmVyc2lvbkluZm8gZmlsZVZlcnNpb24gPSBGaWxlVmVyc2lvbkluZm8uR2V0VmVyc2lvbkluZm8oYXNzZW1ibHkuTG9jYXRpb24pOw0KDQogICAgICAgICAgICBpZiAoZmlsZVZlcnNpb24uRmlsZVZlcnNpb24gIT0gdG9vbC5WZXJzaW9uKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHRvb2wuRmlsZVZlcnNpb24gPSBmaWxlVmVyc2lvbi5GaWxlVmVyc2lvbjsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgdG9vbC5GdWxsTmFtZSA9IG5hbWUgKyAiICIgKyB0b29sLlZlcnNpb24gKyAocHJlcmVsZWFzZUluZm8gPz8gIiIpOw0KDQogICAgICAgICAgICB0b29sLkxhbmd1YWdlID0gQ3VsdHVyZUluZm8uQ3VycmVudEN1bHR1cmUuTmFtZTsNCg0KICAgICAgICAgICAgaWYgKCFzdHJpbmcuSXNOdWxsT3JFbXB0eShmaWxlVmVyc2lvbi5Db21tZW50cykpIHsgdG9vbC5TZXRQcm9wZXJ0eSgiQ29tbWVudHMiLCBmaWxlVmVyc2lvbi5Db21tZW50cyk7IH0NCiAgICAgICAgICAgIGlmICghc3RyaW5nLklzTnVsbE9yRW1wdHkoZmlsZVZlcnNpb24uQ29tcGFueU5hbWUpKSB7IHRvb2wuU2V0UHJvcGVydHkoIkNvbXBhbnlOYW1lIiwgZmlsZVZlcnNpb24uQ29tcGFueU5hbWUpOyB9DQogICAgICAgICAgICBpZiAoIXN0cmluZy5Jc051bGxPckVtcHR5KGZpbGVWZXJzaW9uLlByb2R1Y3ROYW1lKSkgeyB0b29sLlNldFByb3BlcnR5KCJQcm9kdWN0TmFtZSIsIGZpbGVWZXJzaW9uLlByb2R1Y3ROYW1lKTsgfQ0KDQogICAgICAgICAgICByZXR1cm4gdG9vbDsNCiAgICAgICAgfQ0KICAgIH0NCn0NCg==" + { + "ruleId": "CA1802", + "message": { + "text": "Field 'RefProperty.s_inputPattern' is declared as 'static readonly' but is initialized with a constant value '(?[^\"]\")\\$ref(?\"\\s*:)'. Mark this field as 'const' instead." }, - "hashes": [ - { - "value": "E47C8CC1A595DCBF365140F465B15CFA", - "algorithm": "md5" - }, - { - "value": "5E70DBF35502B7A9AAAD8DE139B7CAF40673E138", - "algorithm": "sha-1" - }, + "locations": [ { - "value": "4964B196548775FE6CC2D2F4FAAF5CCC8E4B93815DB25602AAA2220EAD011E83", - "algorithm": "sha-256" + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Microsoft.Json.Schema.dll", + "uriBaseId": "$(ProjectDir)", + "index": 1 + } + }, + "logicalLocations": [ + { + "index": 76, + "fullyQualifiedName": "microsoft.json.schema.dll!Microsoft.Json.Schema.RefProperty.s_inputPattern" + } + ] } - ] + ], + "properties": { + "Category": "Microsoft.Performance", + "FixCategory": "NonBreaking" + } }, - "file:///E:/src/sarif-sdk-test/src/Sarif/TypedPropertiesDictionaryConverter.cs": { - "mimeType": "text/x-csharp", - "contents": { - "binary": "77u/Ly8gQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuDQovLyBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UuIFNlZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHByb2plY3Qgcm9vdCBmb3IgZnVsbCBsaWNlbnNlIGluZm9ybWF0aW9uLg0KDQp1c2luZyBTeXN0ZW07DQp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnM7DQp1c2luZyBTeXN0ZW0uRGlhZ25vc3RpY3M7DQp1c2luZyBTeXN0ZW0uTGlucTsNCnVzaW5nIE5ld3RvbnNvZnQuSnNvbjsNCnVzaW5nIE5ld3RvbnNvZnQuSnNvbi5Db252ZXJ0ZXJzOw0KdXNpbmcgTmV3dG9uc29mdC5Kc29uLkxpbnE7DQoNCm5hbWVzcGFjZSBNaWNyb3NvZnQuQ29kZUFuYWx5c2lzLlNhcmlmDQp7DQogICAgcHVibGljIGNsYXNzIFR5cGVkUHJvcGVydGllc0RpY3Rpb25hcnlDb252ZXJ0ZXIgOiBKc29uQ29udmVydGVyDQogICAgew0KICAgICAgICBwdWJsaWMgVHlwZWRQcm9wZXJ0aWVzRGljdGlvbmFyeUNvbnZlcnRlcigpDQogICAgICAgIHsNCiAgICAgICAgICAgIF92ZXJzaW9uQ29udmVydGVyID0gbmV3IFZlcnNpb25Db252ZXJ0ZXIoKTsNCiAgICAgICAgfQ0KDQogICAgICAgIHByaXZhdGUgVmVyc2lvbkNvbnZlcnRlciBfdmVyc2lvbkNvbnZlcnRlcjsNCg0KICAgICAgICBwdWJsaWMgb3ZlcnJpZGUgYm9vbCBDYW5Db252ZXJ0KFR5cGUgb2JqZWN0VHlwZSkNCiAgICAgICAgew0KICAgICAgICAgICAgcmV0dXJuIG9iamVjdFR5cGUgPT0gdHlwZW9mKFN0cmluZ1NldCkgfHwNCiAgICAgICAgICAgICAgICAgICBvYmplY3RUeXBlID09IHR5cGVvZihJbnRlZ2VyU2V0KSB8fA0KICAgICAgICAgICAgICAgICAgIG9iamVjdFR5cGUgPT0gdHlwZW9mKFByb3BlcnRpZXNEaWN0aW9uYXJ5KSB8fA0KICAgICAgICAgICAgICAgICAgIG9iamVjdFR5cGUgPT0gdHlwZW9mKElEaWN0aW9uYXJ5KTsNCiAgICAgICAgfQ0KDQogICAgICAgIHB1YmxpYyBvdmVycmlkZSBvYmplY3QgUmVhZEpzb24oSnNvblJlYWRlciByZWFkZXIsIFR5cGUgb2JqZWN0VHlwZSwgb2JqZWN0IGV4aXN0aW5nVmFsdWUsIEpzb25TZXJpYWxpemVyIHNlcmlhbGl6ZXIpDQogICAgICAgIHsNCiAgICAgICAgICAgIEpBcnJheSBqYTsNCg0KICAgICAgICAgICAgaWYgKG9iamVjdFR5cGUgPT0gdHlwZW9mKFN0cmluZ1NldCkpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgamEgPSBKQXJyYXkuTG9hZChyZWFkZXIpOw0KICAgICAgICAgICAgICAgIHJldHVybiBuZXcgU3RyaW5nU2V0KGphLlZhbHVlcygpLlNlbGVjdCh0b2tlbiA9PiB0b2tlbi5Ub1N0cmluZygpKSk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIGlmIChvYmplY3RUeXBlID09IHR5cGVvZihJbnRlZ2VyU2V0KSkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBqYSA9IEpBcnJheS5Mb2FkKHJlYWRlcik7DQogICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBJbnRlZ2VyU2V0KGphLlZhbHVlcygpLlNlbGVjdCh0b2tlbiA9PiBJbnQzMi5QYXJzZSh0b2tlbi5Ub1N0cmluZygpKSkpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZWxzZSBpZiAob2JqZWN0VHlwZSA9PSB0eXBlb2YoVmVyc2lvbikpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgcmV0dXJuIEpzb25Db252ZXJ0LkRlc2VyaWFsaXplT2JqZWN0PFZlcnNpb24+KHJlYWRlci5SZWFkQXNTdHJpbmcoKSwgX3ZlcnNpb25Db252ZXJ0ZXIpOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBKT2JqZWN0IGpvID0gSk9iamVjdC5Mb2FkKHJlYWRlcik7DQogICAgICAgICAgICB2YXIgcmVzdWx0ID0gbmV3IFByb3BlcnRpZXNEaWN0aW9uYXJ5KCk7DQoNCiAgICAgICAgICAgIGZvcmVhY2ggKEpQcm9wZXJ0eSBwcm9wZXJ0eSBpbiBqby5Qcm9wZXJ0aWVzKCkpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgc3RyaW5nIGtleSA9IHByb3BlcnR5Lk5hbWU7DQogICAgICAgICAgICAgICAgSlRva2VuIHRva2VuID0gcHJvcGVydHkuVmFsdWU7DQoNCiAgICAgICAgICAgICAgICBzd2l0Y2ggKHByb3BlcnR5LlZhbHVlLlR5cGUpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBjYXNlIEpUb2tlblR5cGUuU3RyaW5nOg0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICByZXN1bHRba2V5XSA9IHRva2VuLlRvT2JqZWN0PHN0cmluZz4oc2VyaWFsaXplcik7DQogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBjYXNlIEpUb2tlblR5cGUuSW50ZWdlcjoNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0W2tleV0gPSB0b2tlbi5Ub09iamVjdDxpbnQ+KHNlcmlhbGl6ZXIpOw0KICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgY2FzZSBKVG9rZW5UeXBlLkJvb2xlYW46DQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdFtrZXldID0gdG9rZW4uVG9PYmplY3Q8Ym9vbD4oc2VyaWFsaXplcik7DQogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBjYXNlIEpUb2tlblR5cGUuT2JqZWN0Og0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICByZXN1bHRba2V5XSA9IHRva2VuLlRvT2JqZWN0PFByb3BlcnRpZXNEaWN0aW9uYXJ5PihzZXJpYWxpemVyKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGNhc2UgSlRva2VuVHlwZS5BcnJheToNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgamEgPSAoSkFycmF5KXByb3BlcnR5LlZhbHVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGphLkNoaWxkcmVuKCkuRmlyc3QoKS5UeXBlID09IEpUb2tlblR5cGUuSW50ZWdlcikNCiAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHRba2V5XSA9IHRva2VuLlRvT2JqZWN0PEludGVnZXJTZXQ+KHNlcmlhbGl6ZXIpOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgZWxzZQ0KICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIERlYnVnLkFzc2VydChqYS5DaGlsZHJlbigpLkZpcnN0KCkuVHlwZSA9PSBKVG9rZW5UeXBlLlN0cmluZyk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0W2tleV0gPSB0b2tlbi5Ub09iamVjdDxTdHJpbmdTZXQ+KHNlcmlhbGl6ZXIpOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsNCiAgICAgICAgfQ0KDQogICAgICAgIHB1YmxpYyBvdmVycmlkZSB2b2lkIFdyaXRlSnNvbihKc29uV3JpdGVyIHdyaXRlciwgb2JqZWN0IHZhbHVlLCBKc29uU2VyaWFsaXplciBzZXJpYWxpemVyKQ0KICAgICAgICB7DQogICAgICAgICAgICBKQXJyYXkgamE7DQogICAgICAgICAgICBpZiAodmFsdWUgaXMgU3RyaW5nU2V0KQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIFN0cmluZ1NldCBoYXNoU2V0ID0gKFN0cmluZ1NldCl2YWx1ZTsNCiAgICAgICAgICAgICAgICBqYSA9IG5ldyBKQXJyYXkoaGFzaFNldC5TZWxlY3QoaSA9PiBuZXcgSlZhbHVlKGkpKSk7DQogICAgICAgICAgICAgICAgamEuV3JpdGVUbyh3cml0ZXIpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZWxzZSBpZiAodmFsdWUgaXMgSW50ZWdlclNldCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBJbnRlZ2VyU2V0IGhhc2hTZXQgPSAoSW50ZWdlclNldCl2YWx1ZTsNCiAgICAgICAgICAgICAgICBqYSA9IG5ldyBKQXJyYXkoaGFzaFNldC5TZWxlY3QoaSA9PiBuZXcgSlZhbHVlKGkpKSk7DQogICAgICAgICAgICAgICAgamEuV3JpdGVUbyh3cml0ZXIpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZWxzZQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHZhciBkaWN0aW9uYXJ5ID0gKElEaWN0aW9uYXJ5KXZhbHVlOw0KICAgICAgICAgICAgICAgIHdyaXRlci5Xcml0ZVN0YXJ0T2JqZWN0KCk7DQoNCiAgICAgICAgICAgICAgICBmb3JlYWNoIChzdHJpbmcga2V5IGluIGRpY3Rpb25hcnkuS2V5cykNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIHdyaXRlci5Xcml0ZVByb3BlcnR5TmFtZShrZXkpOw0KDQogICAgICAgICAgICAgICAgICAgIG9iamVjdCBkaWN0aW9uYXJ5VmFsdWUgPSBkaWN0aW9uYXJ5W2tleV07DQoNCiAgICAgICAgICAgICAgICAgICAgVHlwZSB0ID0gdHlwZW9mKG9iamVjdCk7DQogICAgICAgICAgICAgICAgICAgIGlmIChkaWN0aW9uYXJ5VmFsdWUgaXMgSURpY3Rpb25hcnkgfHwNCiAgICAgICAgICAgICAgICAgICAgICAgIGRpY3Rpb25hcnlWYWx1ZSBpcyBJbnRlZ2VyU2V0ICB8fA0KICAgICAgICAgICAgICAgICAgICAgICAgZGljdGlvbmFyeVZhbHVlIGlzIFN0cmluZ1NldCkNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgV3JpdGVKc29uKHdyaXRlciwgZGljdGlvbmFyeVZhbHVlLCBzZXJpYWxpemVyKTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBlbHNlIGlmIChkaWN0aW9uYXJ5VmFsdWUgaXMgVmVyc2lvbikNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgc2VyaWFsaXplci5TZXJpYWxpemUod3JpdGVyLCBkaWN0aW9uYXJ5VmFsdWUuVG9TdHJpbmcoKSk7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgZWxzZQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICBzZXJpYWxpemVyLlNlcmlhbGl6ZSh3cml0ZXIsIGRpY3Rpb25hcnlWYWx1ZSk7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICB3cml0ZXIuV3JpdGVFbmRPYmplY3QoKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgIH0NCg0KfQ0K" + { + "ruleId": "CA1802", + "message": { + "text": "Field 'RefProperty.s_outputPattern' is declared as 'static readonly' but is initialized with a constant value '(?[^\"]\")\\$\\$ref(?\"\\s*:)'. Mark this field as 'const' instead." }, - "hashes": [ - { - "value": "45C4AC90649D7D26688BE79D362F44FB", - "algorithm": "md5" - }, - { - "value": "B90716D3CD34C4E5BBADDA903C3711C883694276", - "algorithm": "sha-1" - }, + "locations": [ { - "value": "8036FBEED1BC3A3CEC129A0951A1260DA1B79B71C757CC43260DD38FD3981A16", - "algorithm": "sha-256" + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Microsoft.Json.Schema.dll", + "uriBaseId": "$(ProjectDir)", + "index": 1 + } + }, + "logicalLocations": [ + { + "index": 77, + "fullyQualifiedName": "microsoft.json.schema.dll!Microsoft.Json.Schema.RefProperty.s_outputPattern" + } + ] } - ] + ], + "properties": { + "Category": "Microsoft.Performance", + "FixCategory": "NonBreaking" + } }, - "file:///E:/src/sarif-sdk-test/src/Sarif/UriHelper.cs": { - "mimeType": "text/x-csharp", - "contents": { - "binary": "77u/Ly8gQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuDQovLyBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UuIFNlZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHByb2plY3Qgcm9vdCBmb3IgZnVsbCBsaWNlbnNlIGluZm9ybWF0aW9uLg0KDQp1c2luZyBTeXN0ZW07DQp1c2luZyBTeXN0ZW0uVGV4dDsNCnVzaW5nIFN5c3RlbS5UZXh0LlJlZ3VsYXJFeHByZXNzaW9uczsNCg0KbmFtZXNwYWNlIE1pY3Jvc29mdC5Db2RlQW5hbHlzaXMuU2FyaWYNCnsNCiAgICBwdWJsaWMgc3RhdGljIGNsYXNzIFVyaUhlbHBlcg0KICAgIHsNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gQ3JlYXRlIGEgc3ludGFjdGljYWxseSB2YWxpZCBVUkkgZnJvbSBhIHBhdGggdGhhdCBtaWdodCBiZQ0KICAgICAgICAvLy8gYWJzb2x1dGUgb3IgcmVsYXRpdmUsIGFuZCB0aGF0IG1pZ2h0IHJlcXVpcmUgcGVyY2VudC1lbmNvZGluZy4NCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgLy8vIDxwYXJhbSBuYW1lPSJwYXRoIj4NCiAgICAgICAgLy8vIFRoZSBwYXRoIHRvIGJlIHRyYW5zZm9ybWVkIGludG8gYSBzeW50YWN0aWNhbGx5IHZhbGlkIFVSSS4NCiAgICAgICAgLy8vIDwvcGFyYW0+DQogICAgICAgIC8vLyA8cmV0dXJucz4NCiAgICAgICAgLy8vIEEgc3ludGFjdGljYWxseSB2YWxpZCBVUkkgcmVwcmVzZW50aW5nIDxwYXJhbXJlZiBuYW1lPSJwYXRoIi8+Lg0KICAgICAgICAvLy8gPC9yZXR1cm5zPg0KICAgICAgICAvLy8gPHJlbWFya3M+DQogICAgICAgIC8vLyBJbiBnZW5lcmFsLCA8cGFyYW1yZWYgbmFtZT0icGF0aCIvPiBtaWdodCBiZToNCiAgICAgICAgLy8vIA0KICAgICAgICAvLy8gMS4gUG9zc2libGUgdG8gaW50ZXJwcmV0IGFzIGFuIGFic29sdXRlIHBhdGggLyBhYnNvbHV0ZSBVUkkNCiAgICAgICAgLy8vIDIuIFBvc3NpYmxlIHRvIGludGVycHJldCBhcyBhIHJlbGF0aXZlIHBhdGggLyByZWxhdGl2ZSBVUkkNCiAgICAgICAgLy8vIDMuIE5laXRoZXINCiAgICAgICAgLy8vDQogICAgICAgIC8vLyBXZSBtdXN0IGNyZWF0ZSBhIHZhbGlkIFVSSSB0byBwZXJzaXN0IGluIHRoZSBTQVJJRiBsb2cuIFdlIHByb2NlZWQgYXMgZm9sbG93czoNCiAgICAgICAgLy8vDQogICAgICAgIC8vLyAxLiBUcnkgdG8gY3JlYXRlIGFuIGFic29sdXRlIFN5c3RlbS5VcmkuIElmIHRoYXQgc3VjY2VlZHMsIHRha2UgaXRzDQogICAgICAgIC8vLyBBYnNvbHV0ZVVyaSwgd2hpY2ggKHVubGlrZSBVcmkuVG9TdHJpbmcoKSkgd2lsbCBiZSBwcm9wZXJseSBwZXJjZW50LWVuY29kZWQuDQogICAgICAgIC8vLw0KICAgICAgICAvLy8gMi4gVHJ5IHRvIGNyZWF0ZSBhIHJlbGF0aXZlIFN5c3RlbS5VcmkuIElmIHRoYXQgc3VjY2VlZHMsIHdlIHdhbnQgdG8gd3JpdGUgaXQgb3V0LA0KICAgICAgICAvLy8gYnV0IHNpbmNlIHRoaXMgaXMgYSByZWxhdGl2ZSBVUkksIHdlIGNhbid0IGFjY2VzcyBpdHMgQWJzb2x1dGVVcmkgb3IgQWJzb2x1dGVQYXRoDQogICAgICAgIC8vLyBwcm9wZXJ0eSAtLSBhbmQgYWdhaW4sIFVyaS5Ub1N0cmluZygpIGRvZXMgbm90IHBlcmZvcm0gcGVyY2VudCBlbmNvZGluZy4NCiAgICAgICAgLy8vIA0KICAgICAgICAvLy8gV2UgdXNlIHRoaXMgd29ya2Fyb3VuZDoNCiAgICAgICAgLy8vIA0KICAgICAgICAvLy8gICAgIGEuIENvbWJpbmUgdGhlIHJlbGF0aXZlIHBhdGggd2l0aCBhbiBhcmJpdHJhcnkgc2NoZW1lIGFuZCBob3N0IHRvIGZvcm0NCiAgICAgICAgLy8vICAgICAgICBhbiBhYnNvbHV0ZSBVUkkuDQogICAgICAgIC8vLyAgICAgYi4gRXh0cmFjdCB0aGUgQWJzb2x1dGVQYXRoIHByb3BlcnR5LCB3aGljaCB3aWxsIGJlIHBlcmNlbnQgZW5jb2RlZC4NCiAgICAgICAgLy8vICAgICANCiAgICAgICAgLy8vDQogICAgICAgIC8vLyAzLiBJZiBhbGwgZWxzZSBmYWlscywgd2UgaGF2ZSBhIHN0cmluZyB0aGF0IHdlIGNhbid0IGNvbnZlcnQgdG8gYSBTeXN0ZW0uVXJpLA0KICAgICAgICAvLy8gc28ganVzdCBwZXJjZW50IGVuY29kZSB0aGUgd2hvbGUgdGhpbmcuIFRoaXMgc2hvdWxkIGJlIGV4dHJlbWVseSByYXJlIGluIHByYWN0aWNlLg0KICAgICAgICAvLy8NCiAgICAgICAgLy8vIFRoYW5rcyBhbmQgYSB0aXAgbycgdGhlIGhhdCB0byBAbmd1ZXJyZXJhIGZvciB0aGlzIGNvZGUgKGFuZCBmb3IgdGhlIGNvbW1lbnQpLg0KICAgICAgICAvLy8gPC9yZW1hcmtzPg0KICAgICAgICBwdWJsaWMgc3RhdGljIHN0cmluZyBNYWtlVmFsaWRVcmkoc3RyaW5nIHBhdGgpDQogICAgICAgIHsNCiAgICAgICAgICAgIGlmIChzdHJpbmcuSXNOdWxsT3JFbXB0eShwYXRoKSkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgQXJndW1lbnROdWxsRXhjZXB0aW9uKG5hbWVvZihwYXRoKSk7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIFVyaSB1cmk7DQogICAgICAgICAgICBzdHJpbmcgdmFsaWRVcmk7DQogICAgICAgICAgICBpZiAoVXJpLlRyeUNyZWF0ZShwYXRoLCBVcmlLaW5kLkFic29sdXRlLCBvdXQgdXJpKSkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICB2YWxpZFVyaSA9IHVyaS5BYnNvbHV0ZVVyaTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2UgaWYgKFVyaS5UcnlDcmVhdGUocGF0aCwgVXJpS2luZC5SZWxhdGl2ZSwgb3V0IHVyaSkpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgVXJpQnVpbGRlciBidWlsZGVyID0gbmV3IFVyaUJ1aWxkZXIoImh0dHAiLCAid3d3LmV4YW1wbGUuY29tIiwgODAsIHBhdGgpOw0KICAgICAgICAgICAgICAgIHZhbGlkVXJpID0gYnVpbGRlci5VcmkuQWJzb2x1dGVQYXRoOw0KDQogICAgICAgICAgICAgICAgLy8gU2luY2Ugd2hhdCB3ZSBhY3R1YWxseSB3YW50IGlzIGEgcmVsYXRpdmUgcGF0aCwgc3RyaXAgdGhlIGxlYWRpbmcgIi8iDQogICAgICAgICAgICAgICAgLy8gZnJvbSB0aGUgQWJzb2x1dGVQYXRoIC0tIHVubGVzcyB0aGUgaW5wdXQgc3RyaW5nIHN0YXJ0ZWQgd2l0aCAiLyIuDQogICAgICAgICAgICAgICAgaWYgKCFwYXRoLlN0YXJ0c1dpdGgoIi8iLCBTdHJpbmdDb21wYXJpc29uLk9yZGluYWwpICYmDQogICAgICAgICAgICAgICAgICAgICFwYXRoLlN0YXJ0c1dpdGgoQCJcIiwgU3RyaW5nQ29tcGFyaXNvbi5PcmRpbmFsKSkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIHZhbGlkVXJpID0gdmFsaWRVcmkuU3Vic3RyaW5nKDEpOw0KDQogICAgICAgICAgICAgICAgICAgIC8vIFdoZW4gdGhlIFVyaUJ1aWxkZXIgY29uc3RydWN0cyBhbiBhYnNvbHV0ZSBVUkksIGl0IHN0cmlwcyBhbnkNCiAgICAgICAgICAgICAgICAgICAgLy8gbGVhZGluZyAiLiIgYW5kICIuLiIgc2VnbWVudHMgKCJkb3Qtc2VnbWVudHMiLCBhcyBSRkMgMzk4NiBjYWxscw0KICAgICAgICAgICAgICAgICAgICAvLyB0aGVtKS4gR2x1ZSB0aGVtIGJhY2sgb24gc28gd2UgZG9uJ3QgbG9zZSB0aGUgcmVsYXRpdmUgcGF0aA0KICAgICAgICAgICAgICAgICAgICAvLyBpbmZvcm1hdGlvbi4NCiAgICAgICAgICAgICAgICAgICAgc3RyaW5nIGxlYWRpbmdEb3RTZWdtZW50cyA9IEdldExlYWRpbmdEb3RTZWdtZW50cyhwYXRoKTsNCiAgICAgICAgICAgICAgICAgICAgaWYgKCFzdHJpbmcuSXNOdWxsT3JFbXB0eShsZWFkaW5nRG90U2VnbWVudHMpKQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICB2YWxpZFVyaSA9IGxlYWRpbmdEb3RTZWdtZW50cyArIHZhbGlkVXJpOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZWxzZQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHZhbGlkVXJpID0gU3lzdGVtLk5ldC5XZWJVdGlsaXR5LlVybEVuY29kZShwYXRoKTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgcmV0dXJuIHZhbGlkVXJpOw0KICAgICAgICB9DQoNCiAgICAgICAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgUmVnZXggc19vbmVEb3RQYXR0ZXJuID0NCiAgICAgICAgICAgIG5ldyBSZWdleChAIl5cLltcXC9dIiwgUmVnZXhPcHRpb25zLkNvbXBpbGVkIHwgUmVnZXhPcHRpb25zLkN1bHR1cmVJbnZhcmlhbnQpOw0KDQogICAgICAgIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IFJlZ2V4IHNfdHdvRG90UGF0dGVybiA9DQogICAgICAgICAgICBuZXcgUmVnZXgoQCJeXC5cLltcXC9dIiwgUmVnZXhPcHRpb25zLkNvbXBpbGVkIHwgUmVnZXhPcHRpb25zLkN1bHR1cmVJbnZhcmlhbnQpOw0KDQogICAgICAgIHByaXZhdGUgc3RhdGljIHN0cmluZyBHZXRMZWFkaW5nRG90U2VnbWVudHMoc3RyaW5nIHBhdGgpDQogICAgICAgIHsNCiAgICAgICAgICAgIHZhciBzYiA9IG5ldyBTdHJpbmdCdWlsZGVyKCk7DQoNCiAgICAgICAgICAgIGJvb2wgbW9yZURvdFNlZ21lbnRzID0gdHJ1ZTsNCiAgICAgICAgICAgIHdoaWxlIChtb3JlRG90U2VnbWVudHMpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgaWYgKHNfb25lRG90UGF0dGVybi5Jc01hdGNoKHBhdGgpKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgcGF0aCA9IHBhdGguU3Vic3RyaW5nKDIpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBlbHNlIGlmIChzX3R3b0RvdFBhdHRlcm4uSXNNYXRjaChwYXRoKSkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIHBhdGggPSBwYXRoLlN1YnN0cmluZygzKTsNCiAgICAgICAgICAgICAgICAgICAgc2IuQXBwZW5kKCIuLi8iKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgZWxzZQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgbW9yZURvdFNlZ21lbnRzID0gZmFsc2U7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAvLyBDb3JuZXIgY2FzZTogdGhlIHBhdGggaXMgZW50aXJlbHkgY29tcG9zZWQgb2YgYSBzaW5nbGUgdHdvLWRvdCBzZWdtZW50LA0KICAgICAgICAgICAgLy8gb3IgZW5kcyB3aXRoIGEgdHdvLWRvdCBzZWdtZW50Lg0KICAgICAgICAgICAgaWYgKHBhdGguRXF1YWxzKCIuLiIsIFN0cmluZ0NvbXBhcmlzb24uT3JkaW5hbCkpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgc2IuQXBwZW5kKCIuLiIpOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICByZXR1cm4gc2IuVG9TdHJpbmcoKTsNCiAgICAgICAgfQ0KICAgIH0NCn0NCg==" + { + "ruleId": "CA1062", + "message": { + "text": "In externally visible method 'SchemaReader.ReadSchema(TextReader, string)', validate parameter 'reader' before using it." }, - "hashes": [ - { - "value": "2BF551B35A7B7F08DB59927BDF6A5259", - "algorithm": "md5" - }, - { - "value": "E06214BD010F41E1875B294AD75E21FBDC0E7584", - "algorithm": "sha-1" - }, + "locations": [ { - "value": "55E2955EDAFC4CFD9EAA72F2895485820CB8D6A1A13C7EB143B19A770FF14FBD", - "algorithm": "sha-256" + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Microsoft.Json.Schema.dll", + "uriBaseId": "$(ProjectDir)", + "index": 1 + } + }, + "logicalLocations": [ + { + "index": 79, + "fullyQualifiedName": "microsoft.json.schema.dll!Microsoft.Json.Schema.SchemaReader.ReadSchema(System.IO.TextReader,System.String)" + } + ] } - ] + ], + "partialFingerprints": { + "UniqueId": "0" + }, + "properties": { + "Category": "Microsoft.Design", + "FixCategory": "DependsOnFix" + } }, - "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/VersionControlDetails.cs": { - "mimeType": "text/x-csharp", - "contents": { - "binary": "Ly8gQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQuICBBbGwgUmlnaHRzIFJlc2VydmVkLg0KLy8gTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlLiBTZWUgTElDRU5TRSBmaWxlIGluIHRoZSBwcm9qZWN0IHJvb3QgZm9yIGZ1bGwgbGljZW5zZSBpbmZvcm1hdGlvbi4NCg0KdXNpbmcgU3lzdGVtOw0KdXNpbmcgU3lzdGVtLkNvZGVEb20uQ29tcGlsZXI7DQp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsNCnVzaW5nIFN5c3RlbS5SdW50aW1lLlNlcmlhbGl6YXRpb247DQp1c2luZyBNaWNyb3NvZnQuQ29kZUFuYWx5c2lzLlNhcmlmLlJlYWRlcnM7DQoNCm5hbWVzcGFjZSBNaWNyb3NvZnQuQ29kZUFuYWx5c2lzLlNhcmlmDQp7DQogICAgW0RhdGFDb250cmFjdF0NCiAgICBbR2VuZXJhdGVkQ29kZSgiTWljcm9zb2Z0Lkpzb24uU2NoZW1hLlRvRG90TmV0IiwgIjAuNTYuMC4wIildDQogICAgcHVibGljIHBhcnRpYWwgY2xhc3MgVmVyc2lvbkNvbnRyb2xEZXRhaWxzIDogUHJvcGVydHlCYWdIb2xkZXIsIElTYXJpZk5vZGUNCiAgICB7DQogICAgICAgIHB1YmxpYyBzdGF0aWMgSUVxdWFsaXR5Q29tcGFyZXI8VmVyc2lvbkNvbnRyb2xEZXRhaWxzPiBWYWx1ZUNvbXBhcmVyID0+IFZlcnNpb25Db250cm9sRGV0YWlsc0VxdWFsaXR5Q29tcGFyZXIuSW5zdGFuY2U7DQoNCiAgICAgICAgcHVibGljIGJvb2wgVmFsdWVFcXVhbHMoVmVyc2lvbkNvbnRyb2xEZXRhaWxzIG90aGVyKSA9PiBWYWx1ZUNvbXBhcmVyLkVxdWFscyh0aGlzLCBvdGhlcik7DQogICAgICAgIHB1YmxpYyBpbnQgVmFsdWVHZXRIYXNoQ29kZSgpID0+IFZhbHVlQ29tcGFyZXIuR2V0SGFzaENvZGUodGhpcyk7DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gR2V0cyBhIHZhbHVlIGluZGljYXRpbmcgdGhlIHR5cGUgb2Ygb2JqZWN0IGltcGxlbWVudGluZyA8c2VlIGNyZWY9IklTYXJpZk5vZGUiIC8+Lg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICBwdWJsaWMgU2FyaWZOb2RlS2luZCBTYXJpZk5vZGVLaW5kDQogICAgICAgIHsNCiAgICAgICAgICAgIGdldA0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHJldHVybiBTYXJpZk5vZGVLaW5kLlZlcnNpb25Db250cm9sRGV0YWlsczsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIFRoZSBhYnNvbHV0ZSBVUkkgb2YgdGhlIHJlcG9zaXRvcnkuDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIFtEYXRhTWVtYmVyKE5hbWUgPSAidXJpIiwgSXNSZXF1aXJlZCA9IHRydWUpXQ0KICAgICAgICBwdWJsaWMgVXJpIFVyaSB7IGdldDsgc2V0OyB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gQSBzdHJpbmcgdGhhdCB1bmlxdWVseSBhbmQgcGVybWFuZW50bHkgaWRlbnRpZmllcyB0aGUgcmV2aXNpb24gd2l0aGluIHRoZSByZXBvc2l0b3J5Lg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICBbRGF0YU1lbWJlcihOYW1lID0gInJldmlzaW9uSWQiLCBJc1JlcXVpcmVkID0gZmFsc2UsIEVtaXREZWZhdWx0VmFsdWUgPSBmYWxzZSldDQogICAgICAgIHB1YmxpYyBzdHJpbmcgUmV2aXNpb25JZCB7IGdldDsgc2V0OyB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gVGhlIG5hbWUgb2YgYSBicmFuY2ggY29udGFpbmluZyB0aGUgcmV2aXNpb24uDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIFtEYXRhTWVtYmVyKE5hbWUgPSAiYnJhbmNoIiwgSXNSZXF1aXJlZCA9IGZhbHNlLCBFbWl0RGVmYXVsdFZhbHVlID0gZmFsc2UpXQ0KICAgICAgICBwdWJsaWMgc3RyaW5nIEJyYW5jaCB7IGdldDsgc2V0OyB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gQSB0YWcgdGhhdCBoYXMgYmVlbiBhcHBsaWVkIHRvIHRoZSByZXZpc2lvbi4NCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgW0RhdGFNZW1iZXIoTmFtZSA9ICJ0YWciLCBJc1JlcXVpcmVkID0gZmFsc2UsIEVtaXREZWZhdWx0VmFsdWUgPSBmYWxzZSldDQogICAgICAgIHB1YmxpYyBzdHJpbmcgVGFnIHsgZ2V0OyBzZXQ7IH0NCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBUaGUgZGF0ZSBhbmQgdGltZSBhdCB3aGljaCB0aGUgcmV2aXNpb24gd2FzIGNyZWF0ZWQuDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIFtEYXRhTWVtYmVyKE5hbWUgPSAidGltZXN0YW1wIiwgSXNSZXF1aXJlZCA9IGZhbHNlLCBFbWl0RGVmYXVsdFZhbHVlID0gZmFsc2UpXQ0KICAgICAgICBwdWJsaWMgRGF0ZVRpbWUgVGltZXN0YW1wIHsgZ2V0OyBzZXQ7IH0NCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBLZXkvdmFsdWUgcGFpcnMgdGhhdCBwcm92aWRlIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gYWJvdXQgdGhlIHJldmlzaW9uLg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICBbRGF0YU1lbWJlcihOYW1lID0gInByb3BlcnRpZXMiLCBJc1JlcXVpcmVkID0gZmFsc2UsIEVtaXREZWZhdWx0VmFsdWUgPSBmYWxzZSldDQogICAgICAgIGludGVybmFsIG92ZXJyaWRlIElEaWN0aW9uYXJ5PHN0cmluZywgU2VyaWFsaXplZFByb3BlcnR5SW5mbz4gUHJvcGVydGllcyB7IGdldDsgc2V0OyB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gSW5pdGlhbGl6ZXMgYSBuZXcgaW5zdGFuY2Ugb2YgdGhlIDxzZWUgY3JlZj0iVmVyc2lvbkNvbnRyb2xEZXRhaWxzIiAvPiBjbGFzcy4NCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgcHVibGljIFZlcnNpb25Db250cm9sRGV0YWlscygpDQogICAgICAgIHsNCiAgICAgICAgfQ0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIEluaXRpYWxpemVzIGEgbmV3IGluc3RhbmNlIG9mIHRoZSA8c2VlIGNyZWY9IlZlcnNpb25Db250cm9sRGV0YWlscyIgLz4gY2xhc3MgZnJvbSB0aGUgc3VwcGxpZWQgdmFsdWVzLg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICAvLy8gPHBhcmFtIG5hbWU9InVyaSI+DQogICAgICAgIC8vLyBBbiBpbml0aWFsaXphdGlvbiB2YWx1ZSBmb3IgdGhlIDxzZWUgY3JlZj0iUDogVXJpIiAvPiBwcm9wZXJ0eS4NCiAgICAgICAgLy8vIDwvcGFyYW0+DQogICAgICAgIC8vLyA8cGFyYW0gbmFtZT0icmV2aXNpb25JZCI+DQogICAgICAgIC8vLyBBbiBpbml0aWFsaXphdGlvbiB2YWx1ZSBmb3IgdGhlIDxzZWUgY3JlZj0iUDogUmV2aXNpb25JZCIgLz4gcHJvcGVydHkuDQogICAgICAgIC8vLyA8L3BhcmFtPg0KICAgICAgICAvLy8gPHBhcmFtIG5hbWU9ImJyYW5jaCI+DQogICAgICAgIC8vLyBBbiBpbml0aWFsaXphdGlvbiB2YWx1ZSBmb3IgdGhlIDxzZWUgY3JlZj0iUDogQnJhbmNoIiAvPiBwcm9wZXJ0eS4NCiAgICAgICAgLy8vIDwvcGFyYW0+DQogICAgICAgIC8vLyA8cGFyYW0gbmFtZT0idGFnIj4NCiAgICAgICAgLy8vIEFuIGluaXRpYWxpemF0aW9uIHZhbHVlIGZvciB0aGUgPHNlZSBjcmVmPSJQOiBUYWciIC8+IHByb3BlcnR5Lg0KICAgICAgICAvLy8gPC9wYXJhbT4NCiAgICAgICAgLy8vIDxwYXJhbSBuYW1lPSJ0aW1lc3RhbXAiPg0KICAgICAgICAvLy8gQW4gaW5pdGlhbGl6YXRpb24gdmFsdWUgZm9yIHRoZSA8c2VlIGNyZWY9IlA6IFRpbWVzdGFtcCIgLz4gcHJvcGVydHkuDQogICAgICAgIC8vLyA8L3BhcmFtPg0KICAgICAgICAvLy8gPHBhcmFtIG5hbWU9InByb3BlcnRpZXMiPg0KICAgICAgICAvLy8gQW4gaW5pdGlhbGl6YXRpb24gdmFsdWUgZm9yIHRoZSA8c2VlIGNyZWY9IlA6IFByb3BlcnRpZXMiIC8+IHByb3BlcnR5Lg0KICAgICAgICAvLy8gPC9wYXJhbT4NCiAgICAgICAgcHVibGljIFZlcnNpb25Db250cm9sRGV0YWlscyhVcmkgdXJpLCBzdHJpbmcgcmV2aXNpb25JZCwgc3RyaW5nIGJyYW5jaCwgc3RyaW5nIHRhZywgRGF0ZVRpbWUgdGltZXN0YW1wLCBJRGljdGlvbmFyeTxzdHJpbmcsIFNlcmlhbGl6ZWRQcm9wZXJ0eUluZm8+IHByb3BlcnRpZXMpDQogICAgICAgIHsNCiAgICAgICAgICAgIEluaXQodXJpLCByZXZpc2lvbklkLCBicmFuY2gsIHRhZywgdGltZXN0YW1wLCBwcm9wZXJ0aWVzKTsNCiAgICAgICAgfQ0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIEluaXRpYWxpemVzIGEgbmV3IGluc3RhbmNlIG9mIHRoZSA8c2VlIGNyZWY9IlZlcnNpb25Db250cm9sRGV0YWlscyIgLz4gY2xhc3MgZnJvbSB0aGUgc3BlY2lmaWVkIGluc3RhbmNlLg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICAvLy8gPHBhcmFtIG5hbWU9Im90aGVyIj4NCiAgICAgICAgLy8vIFRoZSBpbnN0YW5jZSBmcm9tIHdoaWNoIHRoZSBuZXcgaW5zdGFuY2UgaXMgdG8gYmUgaW5pdGlhbGl6ZWQuDQogICAgICAgIC8vLyA8L3BhcmFtPg0KICAgICAgICAvLy8gPGV4Y2VwdGlvbiBjcmVmPSJBcmd1bWVudE51bGxFeGNlcHRpb24iPg0KICAgICAgICAvLy8gVGhyb3duIGlmIDxwYXJhbXJlZiBuYW1lPSJvdGhlciIgLz4gaXMgbnVsbC4NCiAgICAgICAgLy8vIDwvZXhjZXB0aW9uPg0KICAgICAgICBwdWJsaWMgVmVyc2lvbkNvbnRyb2xEZXRhaWxzKFZlcnNpb25Db250cm9sRGV0YWlscyBvdGhlcikNCiAgICAgICAgew0KICAgICAgICAgICAgaWYgKG90aGVyID09IG51bGwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgdGhyb3cgbmV3IEFyZ3VtZW50TnVsbEV4Y2VwdGlvbihuYW1lb2Yob3RoZXIpKTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgSW5pdChvdGhlci5VcmksIG90aGVyLlJldmlzaW9uSWQsIG90aGVyLkJyYW5jaCwgb3RoZXIuVGFnLCBvdGhlci5UaW1lc3RhbXAsIG90aGVyLlByb3BlcnRpZXMpOw0KICAgICAgICB9DQoNCiAgICAgICAgSVNhcmlmTm9kZSBJU2FyaWZOb2RlLkRlZXBDbG9uZSgpDQogICAgICAgIHsNCiAgICAgICAgICAgIHJldHVybiBEZWVwQ2xvbmVDb3JlKCk7DQogICAgICAgIH0NCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBDcmVhdGVzIGEgZGVlcCBjb3B5IG9mIHRoaXMgaW5zdGFuY2UuDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIHB1YmxpYyBWZXJzaW9uQ29udHJvbERldGFpbHMgRGVlcENsb25lKCkNCiAgICAgICAgew0KICAgICAgICAgICAgcmV0dXJuIChWZXJzaW9uQ29udHJvbERldGFpbHMpRGVlcENsb25lQ29yZSgpOw0KICAgICAgICB9DQoNCiAgICAgICAgcHJpdmF0ZSBJU2FyaWZOb2RlIERlZXBDbG9uZUNvcmUoKQ0KICAgICAgICB7DQogICAgICAgICAgICByZXR1cm4gbmV3IFZlcnNpb25Db250cm9sRGV0YWlscyh0aGlzKTsNCiAgICAgICAgfQ0KDQogICAgICAgIHByaXZhdGUgdm9pZCBJbml0KFVyaSB1cmksIHN0cmluZyByZXZpc2lvbklkLCBzdHJpbmcgYnJhbmNoLCBzdHJpbmcgdGFnLCBEYXRlVGltZSB0aW1lc3RhbXAsIElEaWN0aW9uYXJ5PHN0cmluZywgU2VyaWFsaXplZFByb3BlcnR5SW5mbz4gcHJvcGVydGllcykNCiAgICAgICAgew0KICAgICAgICAgICAgaWYgKHVyaSAhPSBudWxsKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIFVyaSA9IG5ldyBVcmkodXJpLk9yaWdpbmFsU3RyaW5nLCB1cmkuSXNBYnNvbHV0ZVVyaSA/IFVyaUtpbmQuQWJzb2x1dGUgOiBVcmlLaW5kLlJlbGF0aXZlKTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgUmV2aXNpb25JZCA9IHJldmlzaW9uSWQ7DQogICAgICAgICAgICBCcmFuY2ggPSBicmFuY2g7DQogICAgICAgICAgICBUYWcgPSB0YWc7DQogICAgICAgICAgICBUaW1lc3RhbXAgPSB0aW1lc3RhbXA7DQogICAgICAgICAgICBpZiAocHJvcGVydGllcyAhPSBudWxsKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIFByb3BlcnRpZXMgPSBuZXcgRGljdGlvbmFyeTxzdHJpbmcsIFNlcmlhbGl6ZWRQcm9wZXJ0eUluZm8+KHByb3BlcnRpZXMpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgfQ0KfQ==" + { + "ruleId": "CA2000", + "message": { + "text": "In method 'SchemaReader.ReadSchema(string, string)', object 'new StringReader(jsonText)' is not disposed along all exception paths. Call System.IDisposable.Dispose on object 'new StringReader(jsonText)' before all references to it are out of scope.", + "id": "ExceptionEdge" }, - "hashes": [ - { - "value": "AB6766B206D2C1100FFED634E9E4B054", - "algorithm": "md5" - }, - { - "value": "07EAB0F49C64C7BEFC53CD125AF841C6B42D56B6", - "algorithm": "sha-1" - }, + "locations": [ { - "value": "456B93C8A853D0E73A25BAC72FA46806F88F52A58AB70F5A73877D4A0B24712A", - "algorithm": "sha-256" + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Microsoft.Json.Schema.dll", + "uriBaseId": "$(ProjectDir)", + "index": 1 + } + }, + "logicalLocations": [ + { + "index": 80, + "fullyQualifiedName": "microsoft.json.schema.dll!Microsoft.Json.Schema.SchemaReader.ReadSchema(System.String,System.String)" + } + ] } - ] + ], + "partialFingerprints": { + "UniqueId": "ExceptionEdge" + }, + "properties": { + "Category": "Microsoft.Reliability", + "FixCategory": "DependsOnFix" + } }, - "file:///E:/src/sarif-sdk-test/src/Sarif/Baseline/SarifLogBaseliner.cs": { - "mimeType": "text/x-csharp", - "contents": { - "binary": "77u/Ly8gQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuDQovLyBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UuIFNlZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHByb2plY3Qgcm9vdCBmb3IgZnVsbCBsaWNlbnNlIGluZm9ybWF0aW9uLg0KDQp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsNCnVzaW5nIFN5c3RlbS5MaW5xOw0KDQpuYW1lc3BhY2UgTWljcm9zb2Z0LkNvZGVBbmFseXNpcy5TYXJpZi5CYXNlbGluZQ0Kew0KICAgIGludGVybmFsIGNsYXNzIFNhcmlmTG9nQmFzZWxpbmVyIDogSVNhcmlmTG9nQmFzZWxpbmVyDQogICAgew0KICAgICAgICBJRXF1YWxpdHlDb21wYXJlcjxSZXN1bHQ+IFJlc3VsdENvbXBhcmF0b3I7DQoNCiAgICAgICAgcHVibGljIFNhcmlmTG9nQmFzZWxpbmVyKElFcXVhbGl0eUNvbXBhcmVyPFJlc3VsdD4gY29tcGFyYXRvcikNCiAgICAgICAgew0KICAgICAgICAgICAgUmVzdWx0Q29tcGFyYXRvciA9IGNvbXBhcmF0b3I7DQogICAgICAgIH0NCg0KICAgICAgICBwdWJsaWMgUnVuIENyZWF0ZUJhc2VsaW5lZFJ1bihSdW4gYmFzZUxpbmUsIFJ1biBuZXh0TG9nKQ0KICAgICAgICB7DQogICAgICAgICAgICBSdW4gZGlmZmVyZW5jZWRSdW4gPSBuZXh0TG9nLkRlZXBDbG9uZSgpOw0KICAgICAgICAgICAgZGlmZmVyZW5jZWRSdW4uUmVzdWx0cyA9IG5ldyBMaXN0PFJlc3VsdD4oKTsNCiAgICAgICAgICAgIA0KICAgICAgICAgICAgZm9yZWFjaCAodmFyIHJlc3VsdCBpbiBuZXh0TG9nLlJlc3VsdHMpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgUmVzdWx0IG5ld1Jlc3VsdCA9IHJlc3VsdC5EZWVwQ2xvbmUoKTsNCg0KICAgICAgICAgICAgICAgIG5ld1Jlc3VsdC5CYXNlbGluZVN0YXRlID0gDQogICAgICAgICAgICAgICAgICAgIGJhc2VMaW5lLlJlc3VsdHMuQ29udGFpbnMocmVzdWx0LCBSZXN1bHRDb21wYXJhdG9yKSA/IEJhc2VsaW5lU3RhdGUuRXhpc3RpbmcgOiBCYXNlbGluZVN0YXRlLk5ldzsNCg0KICAgICAgICAgICAgICAgIGRpZmZlcmVuY2VkUnVuLlJlc3VsdHMuQWRkKG5ld1Jlc3VsdCk7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIGZvcmVhY2ggKHZhciByZXN1bHQgaW4gYmFzZUxpbmUuUmVzdWx0cykNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBpZiAoIW5leHRMb2cuUmVzdWx0cy5Db250YWlucyhyZXN1bHQsIFJlc3VsdENvbXBhcmF0b3IpKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgUmVzdWx0IG5ld1Jlc3VsdCA9IHJlc3VsdC5EZWVwQ2xvbmUoKTsNCiAgICAgICAgICAgICAgICAgICAgbmV3UmVzdWx0LkJhc2VsaW5lU3RhdGUgPSBCYXNlbGluZVN0YXRlLkFic2VudDsNCiAgICAgICAgICAgICAgICAgICAgZGlmZmVyZW5jZWRSdW4uUmVzdWx0cy5BZGQobmV3UmVzdWx0KTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIHJldHVybiBkaWZmZXJlbmNlZFJ1bjsNCiAgICAgICAgfQ0KICAgIH0NCn0NCg==" + { + "ruleId": "CA1806", + "message": { + "text": "'SchemaTypeConverter.SchemaTypeFromString(string)' calls 'Enum.TryParse(string, out SchemaType)' but does not explicitly check whether the conversion succeeded. Either use the return value in a conditional statement or verify that the call site expects that the out argument will be set to the default value when the conversion fails.", + "id": "TryParse" }, - "hashes": [ - { - "value": "F81204B9AD05F04E8160F1265C3C197A", - "algorithm": "md5" - }, - { - "value": "98F495FCDE0186622E8445E9886436E35C65570B", - "algorithm": "sha-1" - }, + "locations": [ { - "value": "1BF1AFAD6F6D82B6F8C4C170C7A1D44BEB1DEEA62E5B7787A6B318767B3FEF11", - "algorithm": "sha-256" + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Microsoft.Json.Schema.dll", + "uriBaseId": "$(ProjectDir)", + "index": 1 + } + }, + "logicalLocations": [ + { + "index": 82, + "fullyQualifiedName": "microsoft.json.schema.dll!Microsoft.Json.Schema.SchemaTypeConverter.SchemaTypeFromString(System.String)" + } + ] } - ] + ], + "partialFingerprints": { + "UniqueId": "System.Enum.TryParse(System.String,Microsoft.Json.Schema.SchemaType@)#TryParse" + }, + "properties": { + "Category": "Microsoft.Usage", + "FixCategory": "NonBreaking" + } }, - "file:///E:/src/sarif-sdk-test/src/Sarif/Baseline/SarifLogBaselinerFactory.cs": { - "mimeType": "text/x-csharp", - "contents": { - "binary": "77u/Ly8gQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuDQovLyBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UuIFNlZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHByb2plY3Qgcm9vdCBmb3IgZnVsbCBsaWNlbnNlIGluZm9ybWF0aW9uLg0KDQpuYW1lc3BhY2UgTWljcm9zb2Z0LkNvZGVBbmFseXNpcy5TYXJpZi5CYXNlbGluZQ0Kew0KICAgIHB1YmxpYyBjbGFzcyBTYXJpZkxvZ0Jhc2VsaW5lckZhY3RvcnkNCiAgICB7DQogICAgICAgIHB1YmxpYyBzdGF0aWMgSVNhcmlmTG9nQmFzZWxpbmVyIENyZWF0ZVNhcmlmTG9nQmFzZWxpbmVyKFNhcmlmQmFzZWxpbmVUeXBlIGxvZ0Jhc2VsaW5lclR5cGUpDQogICAgICAgIHsNCiAgICAgICAgICAgIHN3aXRjaCAobG9nQmFzZWxpbmVyVHlwZSkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBjYXNlIFNhcmlmQmFzZWxpbmVUeXBlLlN0cmljdDoNCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBTYXJpZkxvZ0Jhc2VsaW5lcihSZXN1bHQuVmFsdWVDb21wYXJlcik7DQogICAgICAgICAgICAgICAgY2FzZSBTYXJpZkJhc2VsaW5lVHlwZS5TdGFuZGFyZDoNCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBTYXJpZkxvZ0Jhc2VsaW5lcihEZWZhdWx0QmFzZWxpbmUuUmVzdWx0QmFzZWxpbmVFcXVhbHMuRGVmYXVsdEluc3RhbmNlKTsNCiAgICAgICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV3IFNhcmlmTG9nQmFzZWxpbmVyKFJlc3VsdC5WYWx1ZUNvbXBhcmVyKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgIH0NCn0NCg==" + { + "ruleId": "CA1308", + "level": "error", + "message": { + "text": "In method 'SchemaTypeConverter.WriteJson(JsonWriter, object, JsonSerializer)', replace the call to 'string.ToLowerInvariant()' with String.ToUpperInvariant().", + "id": "ToUpperInvariant" }, - "hashes": [ - { - "value": "404D29ECD31B159EB92A5AE27AD87823", - "algorithm": "md5" - }, - { - "value": "1B46BD407925104229401E1A20A67C443C526FDC", - "algorithm": "sha-1" - }, + "locations": [ { - "value": "4ACF42BBD72AF3ACF259B9894008B36F1AF54F55C32E07A402962459E1AAAE61", - "algorithm": "sha-256" + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Microsoft.Json.Schema.dll", + "uriBaseId": "$(ProjectDir)", + "index": 1 + } + }, + "logicalLocations": [ + { + "index": 83, + "fullyQualifiedName": "microsoft.json.schema.dll!Microsoft.Json.Schema.SchemaTypeConverter.WriteJson(Newtonsoft.Json.JsonWriter,System.Object,Newtonsoft.Json.JsonSerializer)" + } + ] } - ] + ], + "partialFingerprints": { + "UniqueId": "ToUpperInvariant" + }, + "properties": { + "Category": "Microsoft.Globalization", + "FixCategory": "NonBreaking" + } }, - "file:///E:/src/sarif-sdk-test/src/Sarif/Baseline/DefaultBaseline/CodeFlowBaselineEquals.cs": { - "mimeType": "text/x-csharp", - "contents": { - "binary": "77u/Ly8gQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuDQovLyBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UuIFNlZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHByb2plY3Qgcm9vdCBmb3IgZnVsbCBsaWNlbnNlIGluZm9ybWF0aW9uLg0KDQp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsNCg0KbmFtZXNwYWNlIE1pY3Jvc29mdC5Db2RlQW5hbHlzaXMuU2FyaWYuQmFzZWxpbmUuRGVmYXVsdEJhc2VsaW5lDQp7DQogICAgaW50ZXJuYWwgY2xhc3MgQ29kZUZsb3dCYXNlbGluZUVxdWFsaXR5Q29tcGFyYXRvciA6IElFcXVhbGl0eUNvbXBhcmVyPENvZGVGbG93Pg0KICAgIHsNCiAgICAgICAgaW50ZXJuYWwgc3RhdGljIHJlYWRvbmx5IENvZGVGbG93QmFzZWxpbmVFcXVhbGl0eUNvbXBhcmF0b3IgSW5zdGFuY2UgPSBuZXcgQ29kZUZsb3dCYXNlbGluZUVxdWFsaXR5Q29tcGFyYXRvcigpOw0KDQogICAgICAgIHB1YmxpYyBib29sIEVxdWFscyhDb2RlRmxvdyB4LCBDb2RlRmxvdyB5KQ0KICAgICAgICB7DQogICAgICAgICAgICBpZiAoIW9iamVjdC5SZWZlcmVuY2VFcXVhbHMoeCwgeSkpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgaWYgKCFMaXN0Q29tcGFyaXNvbkhlbHBlcnMuQ29tcGFyZUxpc3RzT3JkZXJlZCh4LlRocmVhZEZsb3dzLCB5LlRocmVhZEZsb3dzLCBUaHJlYWRGbG93QmFzZWxpbmVFcXVhbGl0eUNvbXBhcmF0b3IuSW5zdGFuY2UpKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHJldHVybiB0cnVlOw0KICAgICAgICB9DQoNCiAgICAgICAgcHVibGljIGludCBHZXRIYXNoQ29kZShDb2RlRmxvdyBvYmopDQogICAgICAgIHsNCiAgICAgICAgICAgIGlmIChSZWZlcmVuY2VFcXVhbHMob2JqLCBudWxsKSkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gMDsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2UNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBpbnQgaHMgPSAwOw0KDQogICAgICAgICAgICAgICAgaHMgPSBocyBeIExpc3RDb21wYXJpc29uSGVscGVycy5HZXRIYXNoT2ZMaXN0Q29udGVudHNPcmRlcmVkKG9iai5UaHJlYWRGbG93cyk7DQoNCiAgICAgICAgICAgICAgICByZXR1cm4gaHM7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCiAgICB9DQp9" + { + "ruleId": "CA1062", + "message": { + "text": "In externally visible method 'SchemaTypeConverter.WriteJson(JsonWriter, object, JsonSerializer)', validate parameter 'writer' before using it." }, - "hashes": [ - { - "value": "23B29AD3477DB48D0D2CD41D1554B413", - "algorithm": "md5" - }, - { - "value": "C5D2D42ED4FD33A0456A7599D2DC50B9F51009EF", - "algorithm": "sha-1" - }, + "locations": [ { - "value": "DCCFBC7987B750D2116418536D4E4025C309ABC2CB0ED68E25311275B3D4D5D9", - "algorithm": "sha-256" + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Microsoft.Json.Schema.dll", + "uriBaseId": "$(ProjectDir)", + "index": 1 + } + }, + "logicalLocations": [ + { + "index": 83, + "fullyQualifiedName": "microsoft.json.schema.dll!Microsoft.Json.Schema.SchemaTypeConverter.WriteJson(Newtonsoft.Json.JsonWriter,System.Object,Newtonsoft.Json.JsonSerializer)" + } + ] } - ] + ], + "partialFingerprints": { + "UniqueId": "0" + }, + "properties": { + "Category": "Microsoft.Design", + "FixCategory": "DependsOnFix" + } }, - "file:///E:/src/sarif-sdk-test/src/Sarif/Baseline/DefaultBaseline/DefaultBaselineExtensions.cs": { - "mimeType": "text/x-csharp", - "contents": { - "binary": "77u/Ly8gQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuDQovLyBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UuIFNlZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHByb2plY3Qgcm9vdCBmb3IgZnVsbCBsaWNlbnNlIGluZm9ybWF0aW9uLg0KDQpuYW1lc3BhY2UgTWljcm9zb2Z0LkNvZGVBbmFseXNpcy5TYXJpZi5CYXNlbGluZS5EZWZhdWx0QmFzZWxpbmUNCnsNCiAgICBwdWJsaWMgc3RhdGljIGNsYXNzIERlZmF1bHRCYXNlbGluZUV4dGVuc2lvbnMNCiAgICB7DQogICAgICAgIHB1YmxpYyBzdGF0aWMgaW50IEdldE51bGxDaGVja2VkSGFzaENvZGUodGhpcyBvYmplY3Qgb2JqKQ0KICAgICAgICB7DQogICAgICAgICAgICBpZiAob2JqID09IG51bGwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgcmV0dXJuIDA7DQogICAgICAgICAgICB9DQogICAgICAgICAgICByZXR1cm4gb2JqLkdldEhhc2hDb2RlKCk7DQogICAgICAgIH0NCiAgICB9DQp9DQo=" + { + "ruleId": "CA1308", + "level": "error", + "message": { + "text": "In method 'SchemaTypeConverter.WriteJson(JsonWriter, object, JsonSerializer)', replace the call to 'string.ToLowerInvariant()' with String.ToUpperInvariant().", + "id": "ToUpperInvariant" }, - "hashes": [ - { - "value": "CEFCC4278A87EADF3B0E854C0F9B2598", - "algorithm": "md5" - }, - { - "value": "A1842AFBE28A84C3983E640EB6B16E916FBB95B7", - "algorithm": "sha-1" - }, + "locations": [ { - "value": "D829F87AAFCE833192FEB004AB9C9B642B8C8D9D3963807658CE3AF885855840", - "algorithm": "sha-256" + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Microsoft.Json.Schema.dll", + "uriBaseId": "$(ProjectDir)", + "index": 1 + } + }, + "logicalLocations": [ + { + "index": 85, + "fullyQualifiedName": "microsoft.json.schema.dll!Microsoft.Json.Schema.SchemaTypeConverter+<>c.b__3_0(Microsoft.Json.Schema.SchemaType)" + } + ] } - ] + ], + "partialFingerprints": { + "UniqueId": "ToUpperInvariant" + }, + "properties": { + "Category": "Microsoft.Globalization", + "FixCategory": "NonBreaking" + } }, - "file:///E:/src/sarif-sdk-test/src/Sarif/Baseline/DefaultBaseline/LocationBaselineEquals.cs": { - "mimeType": "text/x-csharp", - "contents": { - "binary": "77u/Ly8gQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuDQovLyBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UuIFNlZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHByb2plY3Qgcm9vdCBmb3IgZnVsbCBsaWNlbnNlIGluZm9ybWF0aW9uLg0KDQp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsNCg0KbmFtZXNwYWNlIE1pY3Jvc29mdC5Db2RlQW5hbHlzaXMuU2FyaWYuQmFzZWxpbmUuRGVmYXVsdEJhc2VsaW5lDQp7DQogICAgaW50ZXJuYWwgY2xhc3MgTG9jYXRpb25CYXNlbGluZUVxdWFscyA6IElFcXVhbGl0eUNvbXBhcmVyPExvY2F0aW9uPg0KICAgIHsNCiAgICAgICAgcHVibGljIHN0YXRpYyByZWFkb25seSBMb2NhdGlvbkJhc2VsaW5lRXF1YWxzIEluc3RhbmNlID0gbmV3IExvY2F0aW9uQmFzZWxpbmVFcXVhbHMoKTsNCg0KICAgICAgICBwdWJsaWMgYm9vbCBFcXVhbHMoTG9jYXRpb24geCwgTG9jYXRpb24geSkNCiAgICAgICAgew0KICAgICAgICAgICAgaWYgKCFvYmplY3QuUmVmZXJlbmNlRXF1YWxzKHgsIHkpKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIC8vIFJlc3VsdCBmaWxlcyBzaG91bGQgbWF0Y2guDQogICAgICAgICAgICAgICAgaWYgKCFQaHlzaWNhbExvY2F0aW9uQmFzZWxpbmVFcXVhbHMuSW5zdGFuY2UuRXF1YWxzKHguUGh5c2ljYWxMb2NhdGlvbiwgeS5QaHlzaWNhbExvY2F0aW9uKSkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAvLyBDb2RlIGxvY2F0aW9ucyAoZnVsbHkgcXVhbGlmaWVkIGxvZ2ljYWwgbmFtZSkgc2hvdWxkIG1hdGNoLg0KICAgICAgICAgICAgICAgIGlmICh4LkZ1bGx5UXVhbGlmaWVkTG9naWNhbE5hbWUgIT0geS5GdWxseVF1YWxpZmllZExvZ2ljYWxOYW1lKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHJldHVybiB0cnVlOw0KICAgICAgICB9DQoNCiAgICAgICAgcHVibGljIGludCBHZXRIYXNoQ29kZShMb2NhdGlvbiBvYmopDQogICAgICAgIHsNCiAgICAgICAgICAgIGlmIChSZWZlcmVuY2VFcXVhbHMob2JqLCBudWxsKSkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gMDsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2UNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBpbnQgaHMgPSAwOw0KDQogICAgICAgICAgICAgICAgaHMgPSBocyBeIFBoeXNpY2FsTG9jYXRpb25CYXNlbGluZUVxdWFscy5JbnN0YW5jZS5HZXRIYXNoQ29kZShvYmouUGh5c2ljYWxMb2NhdGlvbik7DQoNCiAgICAgICAgICAgICAgICBocyA9IGhzIF4gb2JqLkZ1bGx5UXVhbGlmaWVkTG9naWNhbE5hbWUuR2V0TnVsbENoZWNrZWRIYXNoQ29kZSgpOw0KDQogICAgICAgICAgICAgICAgcmV0dXJuIGhzOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgfQ0KfQ0K" + { + "ruleId": "CA2237", + "level": "error", + "message": { + "text": "Add [Serializable] to 'SchemaValidationException' as this type implements ISerializable." }, - "hashes": [ - { - "value": "D4244549420D778F171173F74F848972", - "algorithm": "md5" - }, - { - "value": "04B8BCD0961499C7E78CF995BA51B843B603761E", - "algorithm": "sha-1" - }, + "locations": [ { - "value": "1BC6BA295F6836669DC38ADDDA6B2D54FA6117C70BEA90DBB51D5B973B41071F", - "algorithm": "sha-256" + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Microsoft.Json.Schema.dll", + "uriBaseId": "$(ProjectDir)", + "index": 1 + } + }, + "logicalLocations": [ + { + "index": 86, + "fullyQualifiedName": "microsoft.json.schema.dll!Microsoft.Json.Schema.SchemaValidationException" + } + ] } - ] + ], + "properties": { + "Category": "Microsoft.Usage", + "FixCategory": "NonBreaking" + } }, - "file:///E:/src/sarif-sdk-test/src/Sarif/Baseline/DefaultBaseline/ResultBaselineEquals.cs": { - "mimeType": "text/x-csharp", - "contents": { - "binary": "77u/Ly8gQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuDQovLyBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UuIFNlZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHByb2plY3Qgcm9vdCBmb3IgZnVsbCBsaWNlbnNlIGluZm9ybWF0aW9uLg0KDQp1c2luZyBTeXN0ZW07DQp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsNCnVzaW5nIFN5c3RlbS5MaW5xOw0KDQpuYW1lc3BhY2UgTWljcm9zb2Z0LkNvZGVBbmFseXNpcy5TYXJpZi5CYXNlbGluZS5EZWZhdWx0QmFzZWxpbmUNCnsNCiAgICBpbnRlcm5hbCBjbGFzcyBSZXN1bHRCYXNlbGluZUVxdWFscyA6IElFcXVhbGl0eUNvbXBhcmVyPFJlc3VsdD4NCiAgICB7DQogICAgICAgIGludGVybmFsIHN0YXRpYyByZWFkb25seSBSZXN1bHRCYXNlbGluZUVxdWFscyBEZWZhdWx0SW5zdGFuY2UgPSBuZXcgUmVzdWx0QmFzZWxpbmVFcXVhbHMoKTsNCiAgICAgICAgDQogICAgICAgIHB1YmxpYyBib29sIEVxdWFscyhSZXN1bHQgeCwgUmVzdWx0IHkpDQogICAgICAgIHsNCiAgICAgICAgICAgIGlmICghb2JqZWN0LlJlZmVyZW5jZUVxdWFscyh4LCB5KSkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAvLyBSdWxlIElEIHNob3VsZCBtYXRjaA0KICAgICAgICAgICAgICAgIGlmICh4LlJ1bGVJZCAhPSB5LlJ1bGVJZCkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAvLyBUYXJnZXQgZmlsZSBzaG91bGQgbWF0Y2guDQogICAgICAgICAgICAgICAgaWYgKCFGaWxlTG9jYXRpb25CYXNlbGluZUVxdWFscy5JbnN0YW5jZS5FcXVhbHMoeC5BbmFseXNpc1RhcmdldCwgeS5BbmFseXNpc1RhcmdldCkpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgLy8gTG9jYXRpb25zIHNob3VsZCBhbGwgYmUgdGhlIHNhbWUuDQogICAgICAgICAgICAgICAgaWYgKCFMaXN0Q29tcGFyaXNvbkhlbHBlcnMuQ29tcGFyZUxpc3RzQXNTZXRzKHguTG9jYXRpb25zLCB5LkxvY2F0aW9ucywgTG9jYXRpb25CYXNlbGluZUVxdWFscy5JbnN0YW5jZSkpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgLy8gUmVsYXRlZCBMb2NhdGlvbnMgc2hvdWxkIGFsbCBiZSB0aGUgc2FtZS4NCiAgICAgICAgICAgICAgICBpZiAoIUxpc3RDb21wYXJpc29uSGVscGVycy5Db21wYXJlTGlzdHNBc1NldHMoeC5SZWxhdGVkTG9jYXRpb25zLCB5LlJlbGF0ZWRMb2NhdGlvbnMsIExvY2F0aW9uQmFzZWxpbmVFcXVhbHMuSW5zdGFuY2UpKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgIC8vIEZpbmdlcnByaW50cyAodmFsdWVzIG9ubHksIGlnbm9yZSBrZXlzKSBzaG91bGQgYmUgdGhlIHNhbWUuDQogICAgICAgICAgICAgICAgaWYgKCFMaXN0Q29tcGFyaXNvbkhlbHBlcnMuQ29tcGFyZUxpc3RzQXNTZXRzKHguRmluZ2VycHJpbnRzPy5WYWx1ZXM/LlRvTGlzdCgpLCB5LkZpbmdlcnByaW50cz8uVmFsdWVzPy5Ub0xpc3QoKSwgU3RyaW5nQ29tcGFyZXIuT3JkaW5hbCkpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgLy8gUGFydGlhbCBmaW5nZXJwcmludHMgKHZhbHVlcyBvbmx5LCBpZ25vcmUga2V5cykgc2hvdWxkIGJlIHRoZSBzYW1lLg0KICAgICAgICAgICAgICAgIGlmICghTGlzdENvbXBhcmlzb25IZWxwZXJzLkNvbXBhcmVMaXN0c0FzU2V0cyh4LlBhcnRpYWxGaW5nZXJwcmludHM/LlZhbHVlcz8uVG9MaXN0KCksIHkuUGFydGlhbEZpbmdlcnByaW50cz8uVmFsdWVzPy5Ub0xpc3QoKSwgU3RyaW5nQ29tcGFyZXIuT3JkaW5hbCkpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgLy8gSWYgc3RhY2tzIGFyZSBwcmVzZW50LCB3ZSdsbCBtYWtlIHN1cmUgdGhleSdyZSB0aGUgc2FtZQ0KICAgICAgICAgICAgICAgIGlmICghTGlzdENvbXBhcmlzb25IZWxwZXJzLkNvbXBhcmVMaXN0c0FzU2V0cyh4LlN0YWNrcywgeS5TdGFja3MsIFN0YWNrQmFzZWxpbmVFcXVhbHMuSW5zdGFuY2UpKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgIC8vIElmIGNvZGVmbG93cyBhcmUgcHJlc2VudCwgd2UnbGwgbWFrZSBzdXJlIHRoZXkncmUgdGhlIHNhbWUuDQogICAgICAgICAgICAgICAgaWYgKCFMaXN0Q29tcGFyaXNvbkhlbHBlcnMuQ29tcGFyZUxpc3RzQXNTZXRzKHguQ29kZUZsb3dzLCB5LkNvZGVGbG93cywgQ29kZUZsb3dCYXNlbGluZUVxdWFsaXR5Q29tcGFyYXRvci5JbnN0YW5jZSkpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgcmV0dXJuIHRydWU7DQogICAgICAgIH0NCg0KICAgICAgICBwdWJsaWMgaW50IEdldEhhc2hDb2RlKFJlc3VsdCBvYmopDQogICAgICAgIHsNCiAgICAgICAgICAgIGlmIChSZWZlcmVuY2VFcXVhbHMob2JqLCBudWxsKSkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gMDsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2UNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBpbnQgaHMgPSAwOw0KDQogICAgICAgICAgICAgICAgaHMgPSBocyBeIG9iai5SdWxlSWQuR2V0TnVsbENoZWNrZWRIYXNoQ29kZSgpIF4gb2JqLlBhcnRpYWxGaW5nZXJwcmludHMuR2V0TnVsbENoZWNrZWRIYXNoQ29kZSgpOw0KDQogICAgICAgICAgICAgICAgaHMgPSBocyBeIExpc3RDb21wYXJpc29uSGVscGVycy5HZXRIYXNoT2ZMaXN0Q29udGVudHNBc1NldHMob2JqLkxvY2F0aW9ucywgTG9jYXRpb25CYXNlbGluZUVxdWFscy5JbnN0YW5jZSk7DQoNCiAgICAgICAgICAgICAgICBocyA9IGhzIF4gTGlzdENvbXBhcmlzb25IZWxwZXJzLkdldEhhc2hPZkxpc3RDb250ZW50c0FzU2V0cyhvYmouUmVsYXRlZExvY2F0aW9ucywgTG9jYXRpb25CYXNlbGluZUVxdWFscy5JbnN0YW5jZSk7DQoNCiAgICAgICAgICAgICAgICBocyA9IGhzIF4gTGlzdENvbXBhcmlzb25IZWxwZXJzLkdldEhhc2hPZkxpc3RDb250ZW50c0FzU2V0cyhvYmouU3RhY2tzLCBTdGFja0Jhc2VsaW5lRXF1YWxzLkluc3RhbmNlKTsNCg0KICAgICAgICAgICAgICAgIGhzID0gaHMgXiBMaXN0Q29tcGFyaXNvbkhlbHBlcnMuR2V0SGFzaE9mTGlzdENvbnRlbnRzQXNTZXRzKG9iai5Db2RlRmxvd3MsIENvZGVGbG93QmFzZWxpbmVFcXVhbGl0eUNvbXBhcmF0b3IuSW5zdGFuY2UpOw0KDQogICAgICAgICAgICAgICAgcmV0dXJuIGhzOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgfQ0KfQ0K" + { + "ruleId": "CA1704", + "message": { + "text": "In method 'SchemaValidationException.SchemaValidationException(JToken, ErrorNumber, params object[])', correct the spelling of 'j' in parameter name 'jToken' or remove it entirely if it represents any sort of Hungarian notation.", + "id": "MemberParameter" }, - "hashes": [ - { - "value": "04FDBFD582F70357A9D23F6EF747807B", - "algorithm": "md5" - }, - { - "value": "212EE5A343F9FA71E7D8C1CF02069B246CBFFAA8", - "algorithm": "sha-1" - }, + "locations": [ { - "value": "8AF4A5B45F09635C30C63741F52C410D36D44E943427CD03A449D951E8E94ECA", - "algorithm": "sha-256" + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Microsoft.Json.Schema.dll", + "uriBaseId": "$(ProjectDir)", + "index": 1 + } + }, + "logicalLocations": [ + { + "index": 87, + "fullyQualifiedName": "microsoft.json.schema.dll!Microsoft.Json.Schema.SchemaValidationException..ctor(Newtonsoft.Json.Linq.JToken,Microsoft.Json.Schema.ErrorNumber,System.Object[])" + } + ] } - ] - }, - "file:///E:/src/sarif-sdk-test/src/Sarif/Baseline/DefaultBaseline/StackBaselineEquals.cs": { - "mimeType": "text/x-csharp", - "contents": { - "binary": "77u/Ly8gQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuDQovLyBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UuIFNlZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHByb2plY3Qgcm9vdCBmb3IgZnVsbCBsaWNlbnNlIGluZm9ybWF0aW9uLg0KDQp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsNCg0KbmFtZXNwYWNlIE1pY3Jvc29mdC5Db2RlQW5hbHlzaXMuU2FyaWYuQmFzZWxpbmUuRGVmYXVsdEJhc2VsaW5lDQp7DQogICAgaW50ZXJuYWwgY2xhc3MgU3RhY2tCYXNlbGluZUVxdWFscyA6IElFcXVhbGl0eUNvbXBhcmVyPFN0YWNrPg0KICAgIHsNCiAgICAgICAgcHVibGljIHN0YXRpYyByZWFkb25seSBTdGFja0Jhc2VsaW5lRXF1YWxzIEluc3RhbmNlID0gbmV3IFN0YWNrQmFzZWxpbmVFcXVhbHMoKTsNCg0KICAgICAgICBwdWJsaWMgYm9vbCBFcXVhbHMoU3RhY2sgeCwgU3RhY2sgeSkNCiAgICAgICAgew0KICAgICAgICAgICAgaWYgKCFvYmplY3QuUmVmZXJlbmNlRXF1YWxzKHgsIHkpKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIGlmICghTGlzdENvbXBhcmlzb25IZWxwZXJzLkNvbXBhcmVMaXN0c09yZGVyZWQoeC5GcmFtZXMsIHkuRnJhbWVzKSkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQogICAgICAgICAgICByZXR1cm4gdHJ1ZTsNCiAgICAgICAgfQ0KDQogICAgICAgIHB1YmxpYyBpbnQgR2V0SGFzaENvZGUoU3RhY2sgb2JqKQ0KICAgICAgICB7DQogICAgICAgICAgICBpZiAoUmVmZXJlbmNlRXF1YWxzKG9iaiwgbnVsbCkpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgcmV0dXJuIDA7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgaW50IGhzID0gMDsNCg0KICAgICAgICAgICAgICAgIGhzID0gaHMgXiBMaXN0Q29tcGFyaXNvbkhlbHBlcnMuR2V0SGFzaE9mTGlzdENvbnRlbnRzT3JkZXJlZChvYmouRnJhbWVzLCBTdGFja0ZyYW1lQmFzZWxpbmVFcXVhbHMuSW5zdGFuY2UpOw0KDQogICAgICAgICAgICAgICAgcmV0dXJuIGhzOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgfQ0KfQ0K" + ], + "partialFingerprints": { + "UniqueId": "j#MemberParameter" }, - "hashes": [ - { - "value": "6B05A181D6DCEB9979FD703FD4AB55DA", - "algorithm": "md5" - }, - { - "value": "9D43CA44CA2EBADE007C1335AD9E4AB3DEEB7E62", - "algorithm": "sha-1" - }, - { - "value": "3AF4B4443BFD913FB9AD4526F5E785ED72E69070BCDC0A111D7640065F758638", - "algorithm": "sha-256" - } - ] + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" + } }, - "file:///E:/src/sarif-sdk-test/src/Sarif/Baseline/DefaultBaseline/StackFrameBaselineEquals.cs": { - "mimeType": "text/x-csharp", - "contents": { - "binary": "77u/Ly8gQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuDQovLyBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UuIFNlZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHByb2plY3Qgcm9vdCBmb3IgZnVsbCBsaWNlbnNlIGluZm9ybWF0aW9uLg0KDQp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsNCg0KbmFtZXNwYWNlIE1pY3Jvc29mdC5Db2RlQW5hbHlzaXMuU2FyaWYuQmFzZWxpbmUuRGVmYXVsdEJhc2VsaW5lDQp7DQogICAgaW50ZXJuYWwgY2xhc3MgU3RhY2tGcmFtZUJhc2VsaW5lRXF1YWxzIDogSUVxdWFsaXR5Q29tcGFyZXI8U3RhY2tGcmFtZT4NCiAgICB7DQogICAgICAgIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgU3RhY2tGcmFtZUJhc2VsaW5lRXF1YWxzIEluc3RhbmNlID0gbmV3IFN0YWNrRnJhbWVCYXNlbGluZUVxdWFscygpOw0KDQogICAgICAgIHB1YmxpYyBib29sIEVxdWFscyhTdGFja0ZyYW1lIHgsIFN0YWNrRnJhbWUgeSkNCiAgICAgICAgew0KICAgICAgICAgICAgaWYgKCFvYmplY3QuUmVmZXJlbmNlRXF1YWxzKHgsIHkpKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIGlmICh4LkxvY2F0aW9uPy5QaHlzaWNhbExvY2F0aW9uPy5GaWxlTG9jYXRpb24/LlVyaSAhPSB5LkxvY2F0aW9uPy5QaHlzaWNhbExvY2F0aW9uPy5GaWxlTG9jYXRpb24/LlVyaSkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICBpZiAoeC5Nb2R1bGUgIT0geS5Nb2R1bGUpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgaWYgKCFMaXN0Q29tcGFyaXNvbkhlbHBlcnMuQ29tcGFyZUxpc3RzT3JkZXJlZCh4LlBhcmFtZXRlcnMsIHkuUGFyYW1ldGVycykpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgcmV0dXJuIHRydWU7DQogICAgICAgIH0NCg0KICAgICAgICBwdWJsaWMgaW50IEdldEhhc2hDb2RlKFN0YWNrRnJhbWUgb2JqKQ0KICAgICAgICB7DQogICAgICAgICAgICBpZiAoUmVmZXJlbmNlRXF1YWxzKG9iaiwgbnVsbCkgfHwgb2JqLkxvY2F0aW9uPy5QaHlzaWNhbExvY2F0aW9uPy5GaWxlTG9jYXRpb24/LlVyaSA9PSBudWxsIHx8IG9iai5Nb2R1bGUgPT0gbnVsbCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gMDsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2UNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBpbnQgaHMgPSAwOw0KDQogICAgICAgICAgICAgICAgaHMgPSBocyBeIG9iai5Mb2NhdGlvbi5QaHlzaWNhbExvY2F0aW9uLkZpbGVMb2NhdGlvbi5VcmkuR2V0TnVsbENoZWNrZWRIYXNoQ29kZSgpOw0KDQogICAgICAgICAgICAgICAgaHMgPSBocyBeIG9iai5Nb2R1bGUuR2V0TnVsbENoZWNrZWRIYXNoQ29kZSgpOw0KDQogICAgICAgICAgICAgICAgaHMgPSBocyBeIExpc3RDb21wYXJpc29uSGVscGVycy5HZXRIYXNoT2ZMaXN0Q29udGVudHNPcmRlcmVkKG9iai5QYXJhbWV0ZXJzKTsNCg0KICAgICAgICAgICAgICAgIHJldHVybiBoczsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgIH0NCn0NCg==" + { + "ruleId": "CA1032", + "level": "error", + "message": { + "text": "Change the accessibility of 'SchemaValidationException.SchemaValidationException(SerializationInfo, StreamingContext)' to protected.", + "id": "Accessibility" }, - "hashes": [ - { - "value": "7A7DC8454E236D6B53DECFC378A39ADB", - "algorithm": "md5" - }, - { - "value": "41149837423A1FB9FDBE2CE0AD7EB39FCDC1F84D", - "algorithm": "sha-1" - }, + "locations": [ { - "value": "6846DDB987AE5331B6EC9D43C6295804B2F25C861EF7C5DBE5228083438421BD", - "algorithm": "sha-256" + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Microsoft.Json.Schema.dll", + "uriBaseId": "$(ProjectDir)", + "index": 1 + } + }, + "logicalLocations": [ + { + "index": 88, + "fullyQualifiedName": "microsoft.json.schema.dll!Microsoft.Json.Schema.SchemaValidationException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)" + } + ] } - ] + ], + "partialFingerprints": { + "UniqueId": "Accessibility" + }, + "properties": { + "Category": "Microsoft.Design", + "FixCategory": "NonBreaking" + } }, - "file:///E:/src/sarif-sdk-test/src/Sarif/Baseline/DefaultBaseline/ThreadFlowBaselineEquals.cs": { - "mimeType": "text/x-csharp", - "contents": { - "binary": "77u/Ly8gQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuDQovLyBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UuIFNlZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHByb2plY3Qgcm9vdCBmb3IgZnVsbCBsaWNlbnNlIGluZm9ybWF0aW9uLg0KDQp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsNCg0KbmFtZXNwYWNlIE1pY3Jvc29mdC5Db2RlQW5hbHlzaXMuU2FyaWYuQmFzZWxpbmUuRGVmYXVsdEJhc2VsaW5lDQp7DQogICAgaW50ZXJuYWwgY2xhc3MgVGhyZWFkRmxvd0Jhc2VsaW5lRXF1YWxpdHlDb21wYXJhdG9yIDogSUVxdWFsaXR5Q29tcGFyZXI8VGhyZWFkRmxvdz4NCiAgICB7DQogICAgICAgIGludGVybmFsIHN0YXRpYyByZWFkb25seSBUaHJlYWRGbG93QmFzZWxpbmVFcXVhbGl0eUNvbXBhcmF0b3IgSW5zdGFuY2UgPSBuZXcgVGhyZWFkRmxvd0Jhc2VsaW5lRXF1YWxpdHlDb21wYXJhdG9yKCk7DQoNCiAgICAgICAgcHVibGljIGJvb2wgRXF1YWxzKFRocmVhZEZsb3cgeCwgVGhyZWFkRmxvdyB5KQ0KICAgICAgICB7DQogICAgICAgICAgICBpZiAoIW9iamVjdC5SZWZlcmVuY2VFcXVhbHMoeCwgeSkpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgaWYgKCFMaXN0Q29tcGFyaXNvbkhlbHBlcnMuQ29tcGFyZUxpc3RzT3JkZXJlZCh4LkxvY2F0aW9ucywgeS5Mb2NhdGlvbnMsIFRocmVhZEZsb3dMb2NhdGlvbkJhc2VsaW5lRXF1YWxzLkRlZmF1bHRJbnN0YW5jZSkpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgcmV0dXJuIHRydWU7DQogICAgICAgIH0NCg0KICAgICAgICBwdWJsaWMgaW50IEdldEhhc2hDb2RlKFRocmVhZEZsb3cgb2JqKQ0KICAgICAgICB7DQogICAgICAgICAgICBpZiAoUmVmZXJlbmNlRXF1YWxzKG9iaiwgbnVsbCkpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgcmV0dXJuIDA7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgaW50IGhzID0gMDsNCg0KICAgICAgICAgICAgICAgIGhzID0gaHMgXiBMaXN0Q29tcGFyaXNvbkhlbHBlcnMuR2V0SGFzaE9mTGlzdENvbnRlbnRzT3JkZXJlZChvYmouTG9jYXRpb25zKTsNCg0KICAgICAgICAgICAgICAgIHJldHVybiBoczsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgIH0NCn0=" + { + "ruleId": "CA1819", + "message": { + "text": "Change 'SchemaValidationException.Args' to return a collection or make it a method." }, - "hashes": [ - { - "value": "74CEF9A2CE51AA0A7FA2D47665CC1A65", - "algorithm": "md5" - }, - { - "value": "A082E49E17E17ABBC1776FA9D89907FBE09ECD51", - "algorithm": "sha-1" - }, + "locations": [ { - "value": "A2568F50955A13B0DB9D01EF41EB5D67FD797281B117A29579B6A260B745AE5F", - "algorithm": "sha-256" + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Microsoft.Json.Schema.dll", + "uriBaseId": "$(ProjectDir)", + "index": 1 + } + }, + "logicalLocations": [ + { + "index": 89, + "fullyQualifiedName": "microsoft.json.schema.dll!Microsoft.Json.Schema.SchemaValidationException.Args" + } + ] } - ] + ], + "properties": { + "Category": "Microsoft.Performance", + "FixCategory": "Breaking" + } }, - "file:///E:/src/sarif-sdk-test/src/Sarif/Baseline/DefaultBaseline/ThreadFlowLocationBaselineEquals.cs": { - "mimeType": "text/x-csharp", - "contents": { - "binary": "77u/Ly8gQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuDQovLyBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UuIFNlZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHByb2plY3Qgcm9vdCBmb3IgZnVsbCBsaWNlbnNlIGluZm9ybWF0aW9uLg0KDQp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsNCg0KbmFtZXNwYWNlIE1pY3Jvc29mdC5Db2RlQW5hbHlzaXMuU2FyaWYuQmFzZWxpbmUuRGVmYXVsdEJhc2VsaW5lDQp7DQogICAgaW50ZXJuYWwgY2xhc3MgVGhyZWFkRmxvd0xvY2F0aW9uQmFzZWxpbmVFcXVhbHMgOiBJRXF1YWxpdHlDb21wYXJlcjxUaHJlYWRGbG93TG9jYXRpb24+DQogICAgew0KICAgICAgICBpbnRlcm5hbCBzdGF0aWMgcmVhZG9ubHkgVGhyZWFkRmxvd0xvY2F0aW9uQmFzZWxpbmVFcXVhbHMgRGVmYXVsdEluc3RhbmNlID0gbmV3IFRocmVhZEZsb3dMb2NhdGlvbkJhc2VsaW5lRXF1YWxzKCk7DQogICAgICAgIA0KICAgICAgICBwdWJsaWMgYm9vbCBFcXVhbHMoVGhyZWFkRmxvd0xvY2F0aW9uIHgsIFRocmVhZEZsb3dMb2NhdGlvbiB5KQ0KICAgICAgICB7DQogICAgICAgICAgICBpZiAoIW9iamVjdC5SZWZlcmVuY2VFcXVhbHMoeCwgeSkpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgaWYgKHguSW1wb3J0YW5jZSAhPSB5LkltcG9ydGFuY2UpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgaWYgKHguTW9kdWxlICE9IHkuTW9kdWxlKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgIGlmICghTG9jYXRpb25CYXNlbGluZUVxdWFscy5JbnN0YW5jZS5FcXVhbHMoeC5Mb2NhdGlvbiwgeS5Mb2NhdGlvbikpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgcmV0dXJuIHRydWU7DQogICAgICAgIH0NCg0KICAgICAgICBwdWJsaWMgaW50IEdldEhhc2hDb2RlKFRocmVhZEZsb3dMb2NhdGlvbiBvYmopDQogICAgICAgIHsNCiAgICAgICAgICAgIGlmIChSZWZlcmVuY2VFcXVhbHMob2JqLCBudWxsKSkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gMDsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2UNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBpbnQgaHMgPSAwOw0KICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgIGhzID0gaHMgXiBvYmouTmVzdGluZ0xldmVsIF4gTG9jYXRpb25CYXNlbGluZUVxdWFscy5JbnN0YW5jZS5HZXRIYXNoQ29kZShvYmouTG9jYXRpb24pOw0KDQogICAgICAgICAgICAgICAgcmV0dXJuIGhzOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgfQ0KfQ==" + { + "ruleId": "CA1026", + "level": "error", + "message": { + "text": "Replace method 'SchemaWriter.WriteSchema(JsonWriter, JsonSchema, Formatting)' with an overload that supplies all default arguments." }, - "hashes": [ - { - "value": "0C6BE9150520E145EEE2423CE2083C90", - "algorithm": "md5" - }, - { - "value": "DA893B4FC0F24DC7E6F915DE59DA79E348C3B304", - "algorithm": "sha-1" - }, + "locations": [ { - "value": "8F4C7AF22EBB4674393EBD05F6AF06B9F5C4EF085685AB4BBD2D931097D47AC6", - "algorithm": "sha-256" + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Microsoft.Json.Schema.dll", + "uriBaseId": "$(ProjectDir)", + "index": 1 + } + }, + "logicalLocations": [ + { + "index": 91, + "fullyQualifiedName": "microsoft.json.schema.dll!Microsoft.Json.Schema.SchemaWriter.WriteSchema(Newtonsoft.Json.JsonWriter,Microsoft.Json.Schema.JsonSchema,Newtonsoft.Json.Formatting)" + } + ] } - ] + ], + "properties": { + "Category": "Microsoft.Design", + "FixCategory": "Breaking" + } }, - "file:///E:/src/sarif-sdk-test/src/Sarif/Processors/Generic/GenericActionPipeline.cs": { - "mimeType": "text/x-csharp", - "contents": { - "binary": "77u/Ly8gQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuDQovLyBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UuIFNlZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHByb2plY3Qgcm9vdCBmb3IgZnVsbCBsaWNlbnNlIGluZm9ybWF0aW9uLg0KDQp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsNCg0KbmFtZXNwYWNlIE1pY3Jvc29mdC5Db2RlQW5hbHlzaXMuU2FyaWYuUHJvY2Vzc29ycw0Kew0KICAgIHB1YmxpYyBjbGFzcyBHZW5lcmljQWN0aW9uUGlwZWxpbmU8VD4gOiBJQWN0aW9uV3JhcHBlcjxUPg0KICAgIHsNCiAgICAgICAgSUVudW1lcmFibGU8SUFjdGlvbldyYXBwZXI8VD4+IF9zdGFnZXM7DQoNCiAgICAgICAgcHVibGljIEdlbmVyaWNBY3Rpb25QaXBlbGluZShJRW51bWVyYWJsZTxJQWN0aW9uV3JhcHBlcjxUPj4gc3RhZ2VzKQ0KICAgICAgICB7DQogICAgICAgICAgICBfc3RhZ2VzID0gc3RhZ2VzOw0KICAgICAgICB9DQoNCiAgICAgICAgcHVibGljIElFbnVtZXJhYmxlPFQ+IEFjdChJRW51bWVyYWJsZTxUPiBjb2xsZWN0aW9uKQ0KICAgICAgICB7DQogICAgICAgICAgICBJRW51bWVyYWJsZTxUPiBpbnRlcm1lZGlhdGUgPSBjb2xsZWN0aW9uOw0KICAgICAgICAgICAgZm9yZWFjaCAodmFyIGFjdGlvbiBpbiBfc3RhZ2VzKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIGludGVybWVkaWF0ZSA9IGFjdGlvbi5BY3QoaW50ZXJtZWRpYXRlKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHJldHVybiBpbnRlcm1lZGlhdGU7DQogICAgICAgIH0NCiAgICB9DQp9DQo=" + { + "ruleId": "CA1026", + "level": "error", + "message": { + "text": "Replace method 'SchemaWriter.WriteSchema(TextWriter, JsonSchema, Formatting)' with an overload that supplies all default arguments." }, - "hashes": [ - { - "value": "8D51071F359BC57BF97656E95B843EA7", - "algorithm": "md5" - }, - { - "value": "22FA1AC5A38F09BF894FC5C840E6615B3DE9C174", - "algorithm": "sha-1" - }, + "locations": [ { - "value": "233C85D79A05A0223390D0B58C35AA8811EB4B75010187184D06620B41DA0D09", - "algorithm": "sha-256" + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Microsoft.Json.Schema.dll", + "uriBaseId": "$(ProjectDir)", + "index": 1 + } + }, + "logicalLocations": [ + { + "index": 92, + "fullyQualifiedName": "microsoft.json.schema.dll!Microsoft.Json.Schema.SchemaWriter.WriteSchema(System.IO.TextWriter,Microsoft.Json.Schema.JsonSchema,Newtonsoft.Json.Formatting)" + } + ] } - ] + ], + "properties": { + "Category": "Microsoft.Design", + "FixCategory": "Breaking" + } }, - "file:///E:/src/sarif-sdk-test/src/Sarif/Processors/Generic/GenericMappingAction.cs": { - "mimeType": "text/x-csharp", - "contents": { - "binary": "77u/Ly8gQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuDQovLyBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UuIFNlZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHByb2plY3Qgcm9vdCBmb3IgZnVsbCBsaWNlbnNlIGluZm9ybWF0aW9uLg0KDQp1c2luZyBTeXN0ZW07DQp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsNCg0KbmFtZXNwYWNlIE1pY3Jvc29mdC5Db2RlQW5hbHlzaXMuU2FyaWYuUHJvY2Vzc29ycw0Kew0KICAgIHB1YmxpYyBjbGFzcyBHZW5lcmljTWFwcGluZ0FjdGlvbjxUPiA6IElNYXBBY3Rpb248VD4NCiAgICB7DQogICAgICAgIHB1YmxpYyBGdW5jPFQsIFQ+IEFjdGlvbjsNCg0KICAgICAgICBwdWJsaWMgR2VuZXJpY01hcHBpbmdBY3Rpb24oRnVuYzxULCBUPiBhY3Rpb24pDQogICAgICAgIHsNCiAgICAgICAgICAgIEFjdGlvbiA9IGFjdGlvbjsNCiAgICAgICAgfQ0KDQogICAgICAgIHB1YmxpYyBJRW51bWVyYWJsZTxUPiBNYXAoSUVudW1lcmFibGU8VD4gY29sbGVjdGlvbikNCiAgICAgICAgew0KICAgICAgICAgICAgTGlzdDxUPiBvdXRwdXQgPSBuZXcgTGlzdDxUPigpOw0KICAgICAgICAgICAgZm9yZWFjaCh2YXIgdmFsdWUgaW4gY29sbGVjdGlvbikNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBvdXRwdXQuQWRkKEFjdGlvbi5JbnZva2UodmFsdWUpKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHJldHVybiBvdXRwdXQ7DQogICAgICAgIH0NCg0KICAgICAgICBwdWJsaWMgSUVudW1lcmFibGU8VD4gQWN0KElFbnVtZXJhYmxlPFQ+IGxpc3QpDQogICAgICAgIHsNCiAgICAgICAgICAgIHJldHVybiBNYXAobGlzdCk7DQogICAgICAgIH0NCiAgICB9DQp9DQo=" + { + "ruleId": "CA2000", + "message": { + "text": "In method 'SchemaWriter.WriteSchema(TextWriter, JsonSchema, Formatting)', call System.IDisposable.Dispose on object 'new StringWriter()' before all references to it are out of scope.", + "id": "NonExceptionEdge" }, - "hashes": [ - { - "value": "4F228959563BAEE6798F2B42BBE71E6D", - "algorithm": "md5" - }, - { - "value": "290233DFC3315AF28EEE4929366F4D75909E5871", - "algorithm": "sha-1" - }, + "locations": [ { - "value": "153AE0C9804E63C9CD10F47A1C2589595F7DD322C7203E634AEF1D42AF4A94C3", - "algorithm": "sha-256" + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Microsoft.Json.Schema.dll", + "uriBaseId": "$(ProjectDir)", + "index": 1 + } + }, + "logicalLocations": [ + { + "index": 92, + "fullyQualifiedName": "microsoft.json.schema.dll!Microsoft.Json.Schema.SchemaWriter.WriteSchema(System.IO.TextWriter,Microsoft.Json.Schema.JsonSchema,Newtonsoft.Json.Formatting)" + } + ] } - ] + ], + "partialFingerprints": { + "UniqueId": "NonExceptionEdge" + }, + "properties": { + "Category": "Microsoft.Reliability", + "FixCategory": "DependsOnFix" + } }, - "file:///E:/src/sarif-sdk-test/src/Sarif/Processors/Log/SarifLogExtensionMethods.cs": { - "mimeType": "text/x-csharp", - "contents": { - "binary": "77u/Ly8gQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIExpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgICAgICAgIA0KLy8gbGljZW5zZS4gU2VlIExJQ0VOU0UgZmlsZSBpbiB0aGUgcHJvamVjdCByb290IGZvciBmdWxsIGxpY2Vuc2UgaW5mb3JtYXRpb24uIA0KDQp1c2luZyBTeXN0ZW07DQp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsNCnVzaW5nIFN5c3RlbS5MaW5xOw0KDQpuYW1lc3BhY2UgTWljcm9zb2Z0LkNvZGVBbmFseXNpcy5TYXJpZi5Qcm9jZXNzb3JzDQp7DQogICAgLy8vIDxzdW1tYXJ5Pg0KICAgIC8vLyBTYXJpZiBsb2cgZXh0ZW5zaW9uIG1ldGhvZHMgaW4gb3JkZXIgdG8gYWxsb3cgZm9yIGVhc2Ugb2YgdXNlIGFzIGFuIEFQSS4NCiAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgIHB1YmxpYyBzdGF0aWMgY2xhc3MgU2FyaWZMb2dFeHRlbnNpb25NZXRob2RzDQogICAgew0KICAgICAgICBwdWJsaWMgc3RhdGljIFNhcmlmTG9nIE1lcmdlKHRoaXMgSUVudW1lcmFibGU8U2FyaWZMb2c+IHNhcmlmTG9nKQ0KICAgICAgICB7DQogICAgICAgICAgICByZXR1cm4gKChHZW5lcmljRm9sZEFjdGlvbjxTYXJpZkxvZz4pU2FyaWZMb2dQcm9jZXNzb3JGYWN0b3J5LkdldEFjdGlvblN0YWdlKFNhcmlmTG9nQWN0aW9uLk1lcmdlKSkuRm9sZChzYXJpZkxvZyk7DQogICAgICAgIH0NCg0KICAgICAgICBwdWJsaWMgc3RhdGljIElFbnVtZXJhYmxlPFNhcmlmTG9nPiBSZWJhc2VVcmkodGhpcyBJRW51bWVyYWJsZTxTYXJpZkxvZz4gc2FyaWZMb2csIHN0cmluZyBiYXNlUGF0aFRva2VuLCBib29sIHJlYmFzZVJlbGF0aXZlVXJpcywgVXJpIHVyaSkNCiAgICAgICAgew0KICAgICAgICAgICAgcmV0dXJuIFNhcmlmTG9nUHJvY2Vzc29yRmFjdG9yeS5HZXRBY3Rpb25TdGFnZShTYXJpZkxvZ0FjdGlvbi5SZWJhc2VVcmksIGJhc2VQYXRoVG9rZW4sIHJlYmFzZVJlbGF0aXZlVXJpcy5Ub1N0cmluZygpLCB1cmkuQWJzb2x1dGVVcmkpLkFjdChzYXJpZkxvZyk7DQogICAgICAgIH0NCg0KICAgICAgICBwdWJsaWMgc3RhdGljIFNhcmlmTG9nIFJlYmFzZVVyaSh0aGlzIFNhcmlmTG9nIHNhcmlmTG9nLCBzdHJpbmcgYmFzZVBhdGhUb2tlbiwgYm9vbCByZWJhc2VSZWxhdGl2ZVVyaXMsIFVyaSB1cmkpDQogICAgICAgIHsNCiAgICAgICAgICAgIHJldHVybiAobmV3IExpc3Q8U2FyaWZMb2c+KCkgeyBzYXJpZkxvZyB9KS5SZWJhc2VVcmkoYmFzZVBhdGhUb2tlbiwgcmViYXNlUmVsYXRpdmVVcmlzLCB1cmkpLlNpbmdsZSgpOw0KICAgICAgICB9DQoNCiAgICAgICAgcHVibGljIHN0YXRpYyBJRW51bWVyYWJsZTxTYXJpZkxvZz4gTWFrZVVyaXNBYnNvbHV0ZSh0aGlzIElFbnVtZXJhYmxlPFNhcmlmTG9nPiBzYXJpZkxvZ3MpDQogICAgICAgIHsNCiAgICAgICAgICAgIHJldHVybiBTYXJpZkxvZ1Byb2Nlc3NvckZhY3RvcnkuR2V0QWN0aW9uU3RhZ2UoU2FyaWZMb2dBY3Rpb24uTWFrZVVyaXNBYnNvbHV0ZSkuQWN0KHNhcmlmTG9ncyk7DQogICAgICAgIH0NCg0KICAgICAgICBwdWJsaWMgc3RhdGljIFNhcmlmTG9nIE1ha2VVcmlzQWJzb2x1dGUodGhpcyBTYXJpZkxvZyBzYXJpZkxvZykNCiAgICAgICAgew0KICAgICAgICAgICAgcmV0dXJuIChuZXcgTGlzdDxTYXJpZkxvZz4oKSB7IHNhcmlmTG9nIH0pLk1ha2VVcmlzQWJzb2x1dGUoKS5TaW5nbGUoKTsNCiAgICAgICAgfQ0KICAgIH0NCn0NCg==" + { + "ruleId": "CA1305", + "level": "error", + "message": { + "text": "Because the behavior of 'StringWriter.StringWriter()' could vary based on the current user's locale settings, replace this call in 'SchemaWriter.WriteSchema(TextWriter, JsonSchema, Formatting)' with a call to 'StringWriter.StringWriter(IFormatProvider)'. If the result of 'StringWriter.StringWriter(IFormatProvider)' will be based on input from the user, specify 'CultureInfo.CurrentCulture' as the 'IFormatProvider' parameter. Otherwise, if the result will based on input stored and accessed by software, such as when it is loaded from disk or from a database, specify 'CultureInfo.InvariantCulture'.", + "id": "IFormatProviderAlternate" }, - "hashes": [ - { - "value": "3565FB7A37A79A16CB7C4F2372973587", - "algorithm": "md5" - }, - { - "value": "363E1D610FEE5E11917B5A9F039520BBDA02BE11", - "algorithm": "sha-1" - }, + "locations": [ { - "value": "67F834C13D58FDC6BE981A69988E1A9A8AA25FC9631183ABAAACF45B64505428", - "algorithm": "sha-256" + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Microsoft.Json.Schema.dll", + "uriBaseId": "$(ProjectDir)", + "index": 1 + } + }, + "logicalLocations": [ + { + "index": 92, + "fullyQualifiedName": "microsoft.json.schema.dll!Microsoft.Json.Schema.SchemaWriter.WriteSchema(System.IO.TextWriter,Microsoft.Json.Schema.JsonSchema,Newtonsoft.Json.Formatting)" + } + ] } - ] + ], + "partialFingerprints": { + "UniqueId": "System.IO.StringWriter.#ctor#IFormatProviderAlternate" + }, + "properties": { + "Category": "Microsoft.Globalization", + "FixCategory": "NonBreaking" + } }, - "file:///E:/src/sarif-sdk-test/src/Sarif/Processors/Log/SarifLogPipeline.cs": { - "mimeType": "text/x-csharp", - "contents": { - "binary": "77u/Ly8gQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIExpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgICAgICAgIA0KLy8gbGljZW5zZS4gU2VlIExJQ0VOU0UgZmlsZSBpbiB0aGUgcHJvamVjdCByb290IGZvciBmdWxsIGxpY2Vuc2UgaW5mb3JtYXRpb24uIA0KDQp1c2luZyBTeXN0ZW07DQp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsNCnVzaW5nIFN5c3RlbS5MaW5xOw0KdXNpbmcgTmV3dG9uc29mdC5Kc29uOw0KDQpuYW1lc3BhY2UgTWljcm9zb2Z0LkNvZGVBbmFseXNpcy5TYXJpZi5Qcm9jZXNzb3JzDQp7DQogICAgLy8vIDxzdW1tYXJ5Pg0KICAgIC8vLyBTZXJpYWxpemFibGUgbG9nIG1hbmlwdWxhdGlvbiBwaXBlbGluZS0tdGFrZXMgYSBzZXJpZXMgb2Ygc3RhZ2VzLCBhbmQgdGhlbiBleGVjdXRlcyB0aGVtIHNlcXVlbnRpYWxseSBvbiBhIGxvZyBmaWxlLg0KICAgIC8vLyA8L3N1bW1hcnk+DQogICAgW1NlcmlhbGl6YWJsZV0NCiAgICBwdWJsaWMgY2xhc3MgU2FyaWZMb2dQaXBlbGluZQ0KICAgIHsNCiAgICAgICAgW0pzb25SZXF1aXJlZF0NCiAgICAgICAgcHVibGljIExpc3Q8U2FyaWZMb2dBY3Rpb25UdXBsZT4gQWN0aW9ucw0KICAgICAgICB7DQogICAgICAgICAgICBnZXQ7DQogICAgICAgICAgICBwcml2YXRlIHNldDsNCiAgICAgICAgfQ0KICAgICAgICANCiAgICAgICAgcHJpdmF0ZSBHZW5lcmljQWN0aW9uUGlwZWxpbmU8U2FyaWZMb2c+IF9waXBlbGluZTsNCg0KICAgICAgICBbSnNvbkNvbnN0cnVjdG9yXQ0KICAgICAgICBwdWJsaWMgU2FyaWZMb2dQaXBlbGluZShMaXN0PFNhcmlmTG9nQWN0aW9uVHVwbGU+IGFjdGlvbnMpDQogICAgICAgIHsNCiAgICAgICAgICAgIHRoaXMuQWN0aW9ucyA9IGFjdGlvbnM7DQogICAgICAgICAgICANCiAgICAgICAgICAgIF9waXBlbGluZSA9IG5ldyBHZW5lcmljQWN0aW9uUGlwZWxpbmU8U2FyaWZMb2c+KEFjdGlvbnMuU2VsZWN0KGEgPT4gU2FyaWZMb2dQcm9jZXNzb3JGYWN0b3J5LkdldEFjdGlvblN0YWdlKGEuQWN0aW9uLCBhLlBhcmFtZXRlcnMpKSk7DQogICAgICAgIH0NCg0KICAgICAgICBwdWJsaWMgSUVudW1lcmFibGU8U2FyaWZMb2c+IEFwcGx5UGlwZWxpbmUoSUVudW1lcmFibGU8U2FyaWZMb2c+IGxvZ3MpDQogICAgICAgIHsNCiAgICAgICAgICAgIHJldHVybiBfcGlwZWxpbmUuQWN0KGxvZ3MpOw0KICAgICAgICB9DQogICAgICAgIA0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBUd28gcGlwZWxpbmVzIGFyZSBlcXVhbCBpZiB0aGV5IGFwcGx5IHRoZSBzYW1lIHN0ZXBzIHRvIHRoZSBpbnB1dCBzYXJpZiBmaWxlcy4NCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgcHVibGljIG92ZXJyaWRlIGJvb2wgRXF1YWxzKG9iamVjdCBvYmopDQogICAgICAgIHsNCiAgICAgICAgICAgIFNhcmlmTG9nUGlwZWxpbmUgb3RoZXIgPSBvYmogYXMgU2FyaWZMb2dQaXBlbGluZTsNCg0KICAgICAgICAgICAgaWYgKG90aGVyID09IG51bGwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgcmV0dXJuIGJhc2UuRXF1YWxzKG9iaik7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIGlmIChvdGhlci5BY3Rpb25zLkNvdW50ICE9IHRoaXMuQWN0aW9ucy5Db3VudCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdGhpcy5BY3Rpb25zLkNvdW50OyBpKyspDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgaWYoIXRoaXMuQWN0aW9uc1tpXS5FcXVhbHMob3RoZXIuQWN0aW9uc1tpXSkpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICByZXR1cm4gdHJ1ZTsNCiAgICAgICAgfQ0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIEdlbmVyYXRlZCBieSBWaXN1YWwgU3R1ZGlvLiAgV2UncmUgb3ZlcnJpZGluZyBFcXVhbHMoKSBzbyB3ZSBuZWVkIHRvIG92ZXJyaWRlIHRoaXMgYXMgd2VsbC4NCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgcHVibGljIG92ZXJyaWRlIGludCBHZXRIYXNoQ29kZSgpDQogICAgICAgIHsNCiAgICAgICAgICAgIHJldHVybiAxNTIyNjg0MzI0ICsgRXF1YWxpdHlDb21wYXJlcjxMaXN0PFNhcmlmTG9nQWN0aW9uVHVwbGU+Pi5EZWZhdWx0LkdldEhhc2hDb2RlKEFjdGlvbnMpOw0KICAgICAgICB9DQogICAgfQ0KfQ0K" + { + "ruleId": "CA1062", + "message": { + "text": "In externally visible method 'SchemaWriter.WriteSchema(TextWriter, JsonSchema, Formatting)', validate parameter 'writer' before using it." }, - "hashes": [ - { - "value": "7E608349B86D87BCDCECB2D66604BE15", - "algorithm": "md5" - }, - { - "value": "F5F45557ED008C120569D3F51CC5E008F567C23F", - "algorithm": "sha-1" - }, + "locations": [ { - "value": "BCE4694158326EE26375800CF99FFA11D7A4F0A99CAF81E929497FBB8C738798", - "algorithm": "sha-256" + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Microsoft.Json.Schema.dll", + "uriBaseId": "$(ProjectDir)", + "index": 1 + } + }, + "logicalLocations": [ + { + "index": 92, + "fullyQualifiedName": "microsoft.json.schema.dll!Microsoft.Json.Schema.SchemaWriter.WriteSchema(System.IO.TextWriter,Microsoft.Json.Schema.JsonSchema,Newtonsoft.Json.Formatting)" + } + ] } - ] + ], + "partialFingerprints": { + "UniqueId": "0" + }, + "properties": { + "Category": "Microsoft.Design", + "FixCategory": "DependsOnFix" + } }, - "file:///E:/src/sarif-sdk-test/src/Sarif/Processors/Log/SarifLogStageFactory.cs": { - "mimeType": "text/x-csharp", - "contents": { - "binary": "77u/Ly8gQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIExpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgICAgICAgIA0KLy8gbGljZW5zZS4gU2VlIExJQ0VOU0UgZmlsZSBpbiB0aGUgcHJvamVjdCByb290IGZvciBmdWxsIGxpY2Vuc2UgaW5mb3JtYXRpb24uIA0KDQp1c2luZyBTeXN0ZW07DQp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsNCnVzaW5nIFN5c3RlbS5EaWFnbm9zdGljczsNCg0KdXNpbmcgTWljcm9zb2Z0LkNvZGVBbmFseXNpcy5TYXJpZi5WaXNpdG9yczsNCg0KbmFtZXNwYWNlIE1pY3Jvc29mdC5Db2RlQW5hbHlzaXMuU2FyaWYuUHJvY2Vzc29ycw0Kew0KICAgIHB1YmxpYyBjbGFzcyBTYXJpZkxvZ1Byb2Nlc3NvckZhY3RvcnkNCiAgICB7DQogICAgICAgIHB1YmxpYyBzdGF0aWMgSUFjdGlvbldyYXBwZXI8U2FyaWZMb2c+IEdldEFjdGlvblN0YWdlKFNhcmlmTG9nQWN0aW9uIGFjdGlvbiwgcGFyYW1zIHN0cmluZ1tdIGFyZ3MpDQogICAgICAgIHsNCiAgICAgICAgICAgIHN3aXRjaCAoYWN0aW9uKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIGNhc2UgU2FyaWZMb2dBY3Rpb24uTm9uZToNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXcgR2VuZXJpY01hcHBpbmdBY3Rpb248U2FyaWZMb2c+KGEgPT4gYSk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGNhc2UgU2FyaWZMb2dBY3Rpb24uTWFrZVVyaXNBYnNvbHV0ZToNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXcgR2VuZXJpY01hcHBpbmdBY3Rpb248U2FyaWZMb2c+KGxvZyA9Pg0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICBBYnNvbHV0ZVVyaXNWaXNpdG9yIHZpc2l0b3IgPSBuZXcgQWJzb2x1dGVVcmlzVmlzaXRvcigpOw0KICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHZpc2l0b3IuVmlzaXRTYXJpZkxvZyhsb2cpOw0KICAgICAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgY2FzZSBTYXJpZkxvZ0FjdGlvbi5SZWJhc2VVcmk6DQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV3IEdlbmVyaWNNYXBwaW5nQWN0aW9uPFNhcmlmTG9nPihsb2cgPT4NCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCByZWJhc2VSZWxhdGl2ZVVyaXMgPSBmYWxzZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgY2FzdFJlbGF0aXZlVXJpc0FyZyA9IGJvb2wuVHJ5UGFyc2UoYXJnc1sxXSwgb3V0IHJlYmFzZVJlbGF0aXZlVXJpcyk7DQogICAgICAgICAgICAgICAgICAgICAgICBEZWJ1Zy5Bc3NlcnQoY2FzdFJlbGF0aXZlVXJpc0FyZyk7DQoNCiAgICAgICAgICAgICAgICAgICAgICAgIFJlYmFzZVVyaVZpc2l0b3IgdmlzaXRvciA9IG5ldyBSZWJhc2VVcmlWaXNpdG9yKGFyZ3NbMF0sIHJlYmFzZVJlbGF0aXZlVXJpcywgbmV3IFVyaShhcmdzWzJdKSk7DQogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdmlzaXRvci5WaXNpdFNhcmlmTG9nKGxvZyk7DQogICAgICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBjYXNlIFNhcmlmTG9nQWN0aW9uLk1lcmdlOg0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBHZW5lcmljRm9sZEFjdGlvbjxTYXJpZkxvZz4obWVyZ2VGdW5jdGlvbik7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGNhc2UgU2FyaWZMb2dBY3Rpb24uU29ydDoNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBOb3RJbXBsZW1lbnRlZEV4Y2VwdGlvbigpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBjYXNlIFNhcmlmTG9nQWN0aW9uLk1ha2VEZXRlcm1pbmlzdGljOg0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IE5vdEltcGxlbWVudGVkRXhjZXB0aW9uKCk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBBcmd1bWVudEV4Y2VwdGlvbigkIlVua25vd24vTm90IFN1cHBvcnRlZCBBY3Rpb24ge2FjdGlvbn0uIiwgbmFtZW9mKGFjdGlvbikpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgICAgIA0KICAgICAgICBwcml2YXRlIHN0YXRpYyBGdW5jPFNhcmlmTG9nLCBTYXJpZkxvZywgU2FyaWZMb2c+IG1lcmdlRnVuY3Rpb24gPQ0KICAgICAgICAgICAgKGFjY3VtdWxhdG9yLCBuZXh0TG9nKSA9Pg0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIGlmIChuZXh0TG9nLlJ1bnMgPT0gbnVsbCkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIHJldHVybiBhY2N1bXVsYXRvcjsNCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICBpZiAoYWNjdW11bGF0b3IuUnVucyA9PSBudWxsKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgYWNjdW11bGF0b3IuUnVucyA9IG5ldyBMaXN0PFJ1bj4oKTsNCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICBmb3JlYWNoICh2YXIgcnVuIGluIG5leHRMb2cuUnVucykNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIGlmIChydW4gIT0gbnVsbCkNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgYWNjdW11bGF0b3IuUnVucy5BZGQocnVuKTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICByZXR1cm4gYWNjdW11bGF0b3I7DQogICAgICAgICAgICB9Ow0KICAgIH0NCn0NCg==" + { + "ruleId": "CA1062", + "message": { + "text": "In externally visible method 'UriOrFragment.UriOrFragment(UriOrFragment)', validate parameter 'other' before using it." }, - "hashes": [ - { - "value": "8297925B8D45182F9671789364705BAE", - "algorithm": "md5" - }, - { - "value": "C674FBF4C8B600B7A808F2410902747CA13D1E1F", - "algorithm": "sha-1" - }, + "locations": [ { - "value": "918BD6142A3C10DFE1951D63CC6ECB33C4CF2767725712E6AB9E27281CB93684", - "algorithm": "sha-256" + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Microsoft.Json.Schema.dll", + "uriBaseId": "$(ProjectDir)", + "index": 1 + } + }, + "logicalLocations": [ + { + "index": 94, + "fullyQualifiedName": "microsoft.json.schema.dll!Microsoft.Json.Schema.UriOrFragment..ctor(Microsoft.Json.Schema.UriOrFragment)" + } + ] } - ] + ], + "partialFingerprints": { + "UniqueId": "0" + }, + "properties": { + "Category": "Microsoft.Design", + "FixCategory": "DependsOnFix" + } }, - "file:///E:/src/sarif-sdk-test/src/Sarif/Readers/EnumConverter.cs": { - "mimeType": "text/x-csharp", - "contents": { - "binary": "77u/Ly8gQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuDQovLyBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UuIFNlZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHByb2plY3Qgcm9vdCBmb3IgZnVsbCBsaWNlbnNlIGluZm9ybWF0aW9uLg0KDQp1c2luZyBTeXN0ZW07DQp1c2luZyBOZXd0b25zb2Z0Lkpzb247DQoNCm5hbWVzcGFjZSBNaWNyb3NvZnQuQ29kZUFuYWx5c2lzLlNhcmlmLlJlYWRlcnMNCnsNCiAgICBwdWJsaWMgY2xhc3MgRW51bUNvbnZlcnRlciA6IEpzb25Db252ZXJ0ZXINCiAgICB7DQogICAgICAgIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgRW51bUNvbnZlcnRlciBJbnN0YW5jZSA9IG5ldyBFbnVtQ29udmVydGVyKCk7DQoNCiAgICAgICAgcHVibGljIG92ZXJyaWRlIGJvb2wgQ2FuQ29udmVydChUeXBlIG9iamVjdFR5cGUpDQogICAgICAgIHsNCiAgICAgICAgICAgIHRocm93IG5ldyBOb3RJbXBsZW1lbnRlZEV4Y2VwdGlvbigpOw0KICAgICAgICB9DQoNCiAgICAgICAgcHVibGljIG92ZXJyaWRlIG9iamVjdCBSZWFkSnNvbihKc29uUmVhZGVyIHJlYWRlciwgVHlwZSBvYmplY3RUeXBlLCBvYmplY3QgZXhpc3RpbmdWYWx1ZSwgSnNvblNlcmlhbGl6ZXIgc2VyaWFsaXplcikNCiAgICAgICAgew0KICAgICAgICAgICAgaWYgKHJlYWRlciA9PSBudWxsKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHRocm93IG5ldyBBcmd1bWVudE51bGxFeGNlcHRpb24obmFtZW9mKHJlYWRlcikpOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBzdHJpbmcgdmFsdWUgPSAoc3RyaW5nKXJlYWRlci5WYWx1ZTsNCiAgICAgICAgICAgIHJldHVybiBFbnVtLlBhcnNlKG9iamVjdFR5cGUsIENvbnZlcnRUb1Bhc2NhbENhc2UodmFsdWUpKTsNCiAgICAgICAgfQ0KDQogICAgICAgIHB1YmxpYyBvdmVycmlkZSB2b2lkIFdyaXRlSnNvbihKc29uV3JpdGVyIHdyaXRlciwgb2JqZWN0IHZhbHVlLCBKc29uU2VyaWFsaXplciBzZXJpYWxpemVyKQ0KICAgICAgICB7DQogICAgICAgICAgICBpZiAod3JpdGVyID09IG51bGwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgdGhyb3cgbmV3IEFyZ3VtZW50TnVsbEV4Y2VwdGlvbihuYW1lb2Yod3JpdGVyKSk7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIGlmICh2YWx1ZSA9PSBudWxsKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHRocm93IG5ldyBBcmd1bWVudE51bGxFeGNlcHRpb24obmFtZW9mKHZhbHVlKSk7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIHN0cmluZyByZXN1bHRMZXZlbFN0cmluZyA9IHZhbHVlLlRvU3RyaW5nKCk7DQoNCiAgICAgICAgICAgIHJlc3VsdExldmVsU3RyaW5nID0gQ29udmVydFRvQ2FtZWxDYXNlKHJlc3VsdExldmVsU3RyaW5nKTsNCg0KICAgICAgICAgICAgd3JpdGVyLldyaXRlUmF3VmFsdWUoIlwiIiArIHJlc3VsdExldmVsU3RyaW5nICsgIlwiIik7DQogICAgICAgIH0NCg0KICAgICAgICBpbnRlcm5hbCBzdGF0aWMgc3RyaW5nIENvbnZlcnRUb0NhbWVsQ2FzZShzdHJpbmcgdXBwZXJDYXNlTmFtZSkNCiAgICAgICAgew0KICAgICAgICAgICAgaWYgKHVwcGVyQ2FzZU5hbWUuTGVuZ3RoID09IDEpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgcmV0dXJuIHVwcGVyQ2FzZU5hbWUuVG9Mb3dlckludmFyaWFudCgpOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBpbnQgcHJlZml4Q291bnQgPSBJc1ByZWZpeGVkV2l0aFR3b0xldHRlcldvcmQodXBwZXJDYXNlTmFtZSkgPyAyIDogMTsNCg0KICAgICAgICAgICAgcmV0dXJuIHVwcGVyQ2FzZU5hbWUuU3Vic3RyaW5nKDAsIHByZWZpeENvdW50KS5Ub0xvd2VySW52YXJpYW50KCkgKyB1cHBlckNhc2VOYW1lLlN1YnN0cmluZyhwcmVmaXhDb3VudCk7DQogICAgICAgIH0NCg0KICAgICAgICBpbnRlcm5hbCBzdGF0aWMgc3RyaW5nIENvbnZlcnRUb1Bhc2NhbENhc2Uoc3RyaW5nIGNhbWVsQ2FzZU5hbWUpDQogICAgICAgIHsNCiAgICAgICAgICAgIGlmIChjYW1lbENhc2VOYW1lLkxlbmd0aCA9PSAxKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHJldHVybiBjYW1lbENhc2VOYW1lLlRvVXBwZXJJbnZhcmlhbnQoKTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgaW50IHByZWZpeENvdW50ID0gSXNQcmVmaXhlZFdpdGhUd29MZXR0ZXJXb3JkKGNhbWVsQ2FzZU5hbWUpID8gMiA6IDE7DQoNCiAgICAgICAgICAgIHJldHVybiBjYW1lbENhc2VOYW1lLlN1YnN0cmluZygwLCBwcmVmaXhDb3VudCkuVG9VcHBlckludmFyaWFudCgpICsgY2FtZWxDYXNlTmFtZS5TdWJzdHJpbmcocHJlZml4Q291bnQpOw0KICAgICAgICB9DQoNCiAgICAgICAgcHJpdmF0ZSBzdGF0aWMgYm9vbCBJc1ByZWZpeGVkV2l0aFR3b0xldHRlcldvcmQoc3RyaW5nIG5hbWUpDQogICAgICAgIHsNCiAgICAgICAgICAgIGlmIChuYW1lLkxlbmd0aCA8IDIpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBib29sIGlzUHJlZml4ZWRXaXRoVHdvTGV0dGVyV29yZCA9IENoYXIuSXNVcHBlcihuYW1lWzBdKSA9PSBDaGFyLklzVXBwZXIobmFtZVsxXSk7DQoNCiAgICAgICAgICAgIGlmIChuYW1lLkxlbmd0aCA9PSAyKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHJldHVybiBpc1ByZWZpeGVkV2l0aFR3b0xldHRlcldvcmQ7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIHJldHVybiAoQ2hhci5Jc0RpZ2l0KG5hbWVbMl0pIHx8IENoYXIuSXNVcHBlcihuYW1lWzJdKSk7DQogICAgICAgIH0NCiAgICB9DQp9DQo=" + { + "ruleId": "CA1720", + "level": "error", + "message": { + "text": "In member 'UriOrFragment.UriOrFragment(string)', consider replacing the data type identifier 'String' in parameter name 'uriString' with a more generic term, such as 'value'.", + "id": "LanguageIndependentMemberParameter" }, - "hashes": [ - { - "value": "0F3FFA9117E8946AEC29CC45B7FFD62D", - "algorithm": "md5" - }, - { - "value": "BD5497824ADC8624723E9CC3AB5D6A33BCC66E0C", - "algorithm": "sha-1" - }, + "locations": [ { - "value": "AD29F45CCCBE9CB442B4EA294982B17310F4BF497E37836945954BCA9980711C", - "algorithm": "sha-256" + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Microsoft.Json.Schema.dll", + "uriBaseId": "$(ProjectDir)", + "index": 1 + } + }, + "logicalLocations": [ + { + "index": 95, + "fullyQualifiedName": "microsoft.json.schema.dll!Microsoft.Json.Schema.UriOrFragment..ctor(System.String)" + } + ] } - ] + ], + "partialFingerprints": { + "UniqueId": "string#LanguageIndependentMemberParameter" + }, + "properties": { + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" + } }, - "file:///E:/src/sarif-sdk-test/src/Sarif/Readers/FlagsEnumConverter.cs": { - "mimeType": "text/x-csharp", - "contents": { - "binary": "77u/Ly8gQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuDQovLyBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UuIFNlZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHByb2plY3Qgcm9vdCBmb3IgZnVsbCBsaWNlbnNlIGluZm9ybWF0aW9uLg0KDQp1c2luZyBTeXN0ZW07DQoNCnVzaW5nIE5ld3RvbnNvZnQuSnNvbjsNCg0KbmFtZXNwYWNlIE1pY3Jvc29mdC5Db2RlQW5hbHlzaXMuU2FyaWYuUmVhZGVycw0Kew0KICAgIFtTeXN0ZW0uRGlhZ25vc3RpY3MuQ29kZUFuYWx5c2lzLlN1cHByZXNzTWVzc2FnZSgiTWljcm9zb2Z0Lk5hbWluZyIsICJDQTE3MjY6VXNlUHJlZmVycmVkVGVybXMiLCBNZXNzYWdlSWQgPSAiRmxhZ3MiKV0NCiAgICBwdWJsaWMgY2xhc3MgRmxhZ3NFbnVtQ29udmVydGVyIDogSnNvbkNvbnZlcnRlcg0KICAgIHsNCiAgICAgICAgcHVibGljIHN0YXRpYyByZWFkb25seSBGbGFnc0VudW1Db252ZXJ0ZXIgSW5zdGFuY2UgPSBuZXcgRmxhZ3NFbnVtQ29udmVydGVyKCk7DQoNCiAgICAgICAgcHVibGljIG92ZXJyaWRlIGJvb2wgQ2FuQ29udmVydChUeXBlIG9iamVjdFR5cGUpDQogICAgICAgIHsNCiAgICAgICAgICAgIHRocm93IG5ldyBOb3RJbXBsZW1lbnRlZEV4Y2VwdGlvbigpOw0KICAgICAgICB9DQoNCiAgICAgICAgcHVibGljIG92ZXJyaWRlIG9iamVjdCBSZWFkSnNvbihKc29uUmVhZGVyIHJlYWRlciwgVHlwZSBvYmplY3RUeXBlLCBvYmplY3QgZXhpc3RpbmdWYWx1ZSwgSnNvblNlcmlhbGl6ZXIgc2VyaWFsaXplcikNCiAgICAgICAgew0KICAgICAgICAgICAgaWYgKHJlYWRlciA9PSBudWxsKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHRocm93IG5ldyBBcmd1bWVudE51bGxFeGNlcHRpb24obmFtZW9mKHJlYWRlcikpOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBpbnQgcmVzdWx0ID0gMDsNCg0KICAgICAgICAgICAgLy8gV2hhdCdzIGhhcHBlbmluZyBpbiB0aGlzIGNvZGU/IFdlIGV4cHJlc3MgW0ZsYWdzXSBlbnVtcyBpbiBKU09OIGFzIGFycmF5cyBvZg0KICAgICAgICAgICAgLy8gc3RyaW5ncy4gT24gZGVzZXJpYWxpemF0aW9uLCB3ZSB3YWxrIHRoZSBhcnJheSwgbG9jYXRlIGVhY2ggc3RyaW5nLCANCiAgICAgICAgICAgIC8vIGFuZCBjb252ZXJ0IGl0IHRvIGl0cyBlcXVpdmFsZW50IGVudW0gdmFsdWUuIEJlY2F1c2Ugd2UgZG9uJ3QgaGF2ZSBhIHN0cm9uZw0KICAgICAgICAgICAgLy8gc2Vuc2Ugb2YgdGhlIGRlc3RpbmF0aW9uIHR5cGUsIHdlIHNpbXBseSB0cmVhdCB0aGUgZW51bSB2YWx1ZXMgYXMgbnVtYmVycw0KICAgICAgICAgICAgLy8gYW5kIE9SIHRoZW0gdG9nZXRoZXIuIFRoaXMgbnVtYmVyIHdpbGwgZXZlbnR1YWxseSBiZSB1bmJveGVkIGFuZCBhc3NpZ25lZA0KICAgICAgICAgICAgLy8gdG8gdGhlIHRhcmdldCBlbnVtIHByb3BlcnR5Lg0KDQogICAgICAgICAgICAvLyBSZWFkIHN0YXJ0IG9mIGFycmF5DQogICAgICAgICAgICByZWFkZXIuUmVhZCgpOw0KDQogICAgICAgICAgICB3aGlsZSAocmVhZGVyLlRva2VuVHlwZSA9PSBKc29uVG9rZW4uU3RyaW5nKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHN0cmluZyBlbnVtTmFtZSA9IEVudW1Db252ZXJ0ZXIuQ29udmVydFRvUGFzY2FsQ2FzZSgoc3RyaW5nKXJlYWRlci5WYWx1ZSk7DQogICAgICAgICAgICAgICAgcmVzdWx0IHw9IChpbnQpRW51bS5QYXJzZShvYmplY3RUeXBlLCBlbnVtTmFtZSk7DQogICAgICAgICAgICAgICAgcmVhZGVyLlJlYWQoKTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsNCiAgICAgICAgfQ0KDQogICAgICAgIHB1YmxpYyBvdmVycmlkZSB2b2lkIFdyaXRlSnNvbihKc29uV3JpdGVyIHdyaXRlciwgb2JqZWN0IHZhbHVlLCBKc29uU2VyaWFsaXplciBzZXJpYWxpemVyKQ0KICAgICAgICB7DQogICAgICAgICAgICBpZiAod3JpdGVyID09IG51bGwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgdGhyb3cgbmV3IEFyZ3VtZW50TnVsbEV4Y2VwdGlvbihuYW1lb2Yod3JpdGVyKSk7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIGlmICghKHZhbHVlIGlzIFN1cHByZXNzaW9uU3RhdGVzIHx8IHZhbHVlIGlzIEZpbGVSb2xlcykpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgd3JpdGVyLldyaXRlVmFsdWUodmFsdWUpOw0KICAgICAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgc3RyaW5nIGZsYWdzRW51bVZhbHVlID0gdmFsdWUuVG9TdHJpbmcoKTsNCg0KICAgICAgICAgICAgc3RyaW5nW10gdG9rZW5zID0gZmxhZ3NFbnVtVmFsdWUuU3BsaXQoJywnKTsNCg0KDQogICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHRva2Vucy5MZW5ndGg7IGkrKykNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICB0b2tlbnNbaV0gPSBFbnVtQ29udmVydGVyLkNvbnZlcnRUb0NhbWVsQ2FzZSh0b2tlbnNbaV0uVHJpbSgpKTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgd3JpdGVyLldyaXRlUmF3VmFsdWUoIltcIiIgKyBTdHJpbmcuSm9pbigiXCIsXCIiLCB0b2tlbnMpICsgIlwiXSIpOw0KICAgICAgICB9DQogICAgfQ0KfQ0K" + { + "ruleId": "CA1307", + "level": "error", + "message": { + "text": "Because the behavior of 'string.StartsWith(string)' could vary based on the current user's locale settings, replace this call in 'UriOrFragment.UriOrFragment(string)' with a call to 'string.StartsWith(string, StringComparison)'. If the result of 'string.StartsWith(string, StringComparison)' will be displayed to the user, such as when sorting a list of items for display in a list box, specify 'StringComparison.CurrentCulture' or 'StringComparison.CurrentCultureIgnoreCase' as the 'StringComparison' parameter. If comparing case-insensitive identifiers, such as file paths, environment variables, or registry keys and values, specify 'StringComparison.OrdinalIgnoreCase'. Otherwise, if comparing case-sensitive identifiers, specify 'StringComparison.Ordinal'." }, - "hashes": [ - { - "value": "CB03A965E1ABDBA563764423F7C0917A", - "algorithm": "md5" - }, - { - "value": "448C406610A6103CCDB507B139C78E42FA55A9B2", - "algorithm": "sha-1" - }, + "locations": [ { - "value": "3CD311C9E67272B85294FEE554CCE103EFDCAF1CD9FAFAB9F7460DF79C011FF9", - "algorithm": "sha-256" + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Microsoft.Json.Schema.dll", + "uriBaseId": "$(ProjectDir)", + "index": 1 + } + }, + "logicalLocations": [ + { + "index": 95, + "fullyQualifiedName": "microsoft.json.schema.dll!Microsoft.Json.Schema.UriOrFragment..ctor(System.String)" + } + ] } - ] + ], + "partialFingerprints": { + "UniqueId": "System.String.StartsWith(System.String)" + }, + "properties": { + "Category": "Microsoft.Globalization", + "FixCategory": "NonBreaking" + } }, - "file:///E:/src/sarif-sdk-test/src/Sarif/Readers/PropertyBagConverter.cs": { - "mimeType": "text/x-csharp", - "contents": { - "binary": "77u/Ly8gQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuDQovLyBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UuIFNlZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHByb2plY3Qgcm9vdCBmb3IgZnVsbCBsaWNlbnNlIGluZm9ybWF0aW9uLg0KDQp1c2luZyBTeXN0ZW07DQp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsNCnVzaW5nIE5ld3RvbnNvZnQuSnNvbjsNCg0KbmFtZXNwYWNlIE1pY3Jvc29mdC5Db2RlQW5hbHlzaXMuU2FyaWYuUmVhZGVycw0Kew0KICAgIC8vLyA8c3VtbWFyeT4NCiAgICAvLy8gQ29udmVydHMgYSBwcm9wZXJ0eSBiYWcgKGEgSlNPTiBvYmplY3Qgd2hvc2Uga2V5cyBoYXZlIGFyYml0cmFyeSBuYW1lcyBhbmQgd2hvc2UgdmFsdWVzDQogICAgLy8vIG1heSBiZSBhbnkgSlNPTiB2YWx1ZXMpIGludG8gYSBkaWN0aW9uYXJ5IHdob3NlIGtleXMgbWF0Y2ggdGhlIEpTT04gb2JqZWN0J3MNCiAgICAvLy8gcHJvcGVydHkgbmFtZXMsIGFuZCB3aG9zZSB2YWx1ZXMgYXJlIG9mIHR5cGUgPHNlZSBjcmVmPSJTZXJpYWxpemVkUHJvcGVydHlJbmZvIi8+DQogICAgLy8vIDwvc3VtbWFyeT4NCiAgICBpbnRlcm5hbCBjbGFzcyBQcm9wZXJ0eUJhZ0NvbnZlcnRlciA6IEpzb25Db252ZXJ0ZXINCiAgICB7DQogICAgICAgIGludGVybmFsIHN0YXRpYyByZWFkb25seSBKc29uQ29udmVydGVyIEluc3RhbmNlID0gbmV3IFByb3BlcnR5QmFnQ29udmVydGVyKCk7DQoNCiAgICAgICAgcHVibGljIG92ZXJyaWRlIGJvb2wgQ2FuQ29udmVydChUeXBlIG9iamVjdFR5cGUpDQogICAgICAgIHsNCiAgICAgICAgICAgIHJldHVybiB0eXBlb2YoSURpY3Rpb25hcnk8c3RyaW5nLCBTZXJpYWxpemVkUHJvcGVydHlJbmZvPikuSXNBc3NpZ25hYmxlRnJvbShvYmplY3RUeXBlKTsNCiAgICAgICAgfQ0KDQogICAgICAgIHB1YmxpYyBvdmVycmlkZSBvYmplY3QgUmVhZEpzb24oSnNvblJlYWRlciByZWFkZXIsIFR5cGUgb2JqZWN0VHlwZSwgb2JqZWN0IGV4aXN0aW5nVmFsdWUsIEpzb25TZXJpYWxpemVyIHNlcmlhbGl6ZXIpDQogICAgICAgIHsNCiAgICAgICAgICAgIGlmIChzZXJpYWxpemVyID09IG51bGwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgdGhyb3cgbmV3IEFyZ3VtZW50TnVsbEV4Y2VwdGlvbihuYW1lb2Yoc2VyaWFsaXplcikpOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICB2YXIgb2JqZWN0RGljdGlvbmFyeSA9IG5ldyBEaWN0aW9uYXJ5PHN0cmluZywgb2JqZWN0PigpOw0KICAgICAgICAgICAgc2VyaWFsaXplci5Qb3B1bGF0ZShyZWFkZXIsIG9iamVjdERpY3Rpb25hcnkpOw0KDQogICAgICAgICAgICB2YXIgcHJvcGVydHlEaWN0aW9uYXJ5ID0gbmV3IERpY3Rpb25hcnk8c3RyaW5nLCBTZXJpYWxpemVkUHJvcGVydHlJbmZvPigpOw0KICAgICAgICAgICAgZm9yZWFjaCAoc3RyaW5nIGtleSBpbiBvYmplY3REaWN0aW9uYXJ5LktleXMpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgVHlwZSBwcm9wZXJ0eVR5cGUgPSBvYmplY3REaWN0aW9uYXJ5W2tleV0uR2V0VHlwZSgpOw0KDQogICAgICAgICAgICAgICAgc3RyaW5nIHNlcmlhbGl6ZWRWYWx1ZSA9IG9iamVjdERpY3Rpb25hcnlba2V5XS5Ub1N0cmluZygpOw0KICAgICAgICAgICAgICAgIGJvb2wgaXNTdHJpbmcgPSBmYWxzZTsNCg0KICAgICAgICAgICAgICAgIGlmIChwcm9wZXJ0eVR5cGUgPT0gdHlwZW9mKGJvb2wpKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgc2VyaWFsaXplZFZhbHVlID0gc2VyaWFsaXplZFZhbHVlLlRvTG93ZXJJbnZhcmlhbnQoKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgZWxzZSBpZiAocHJvcGVydHlUeXBlID09IHR5cGVvZihzdHJpbmcpKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgc2VyaWFsaXplZFZhbHVlID0gJyInICsgU3lzdGVtLldlYi5IdHRwVXRpbGl0eS5KYXZhU2NyaXB0U3RyaW5nRW5jb2RlKHNlcmlhbGl6ZWRWYWx1ZSkgKyAnIic7DQogICAgICAgICAgICAgICAgICAgIGlzU3RyaW5nID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICBwcm9wZXJ0eURpY3Rpb25hcnkuQWRkKA0KICAgICAgICAgICAgICAgICAgICBrZXksDQogICAgICAgICAgICAgICAgICAgIG5ldyBTZXJpYWxpemVkUHJvcGVydHlJbmZvKHNlcmlhbGl6ZWRWYWx1ZSwgaXNTdHJpbmcpKTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgcmV0dXJuIHByb3BlcnR5RGljdGlvbmFyeTsNCiAgICAgICAgfQ0KDQogICAgICAgIHB1YmxpYyBvdmVycmlkZSB2b2lkIFdyaXRlSnNvbihKc29uV3JpdGVyIHdyaXRlciwgb2JqZWN0IHZhbHVlLCBKc29uU2VyaWFsaXplciBzZXJpYWxpemVyKQ0KICAgICAgICB7DQogICAgICAgICAgICBpZiAod3JpdGVyID09IG51bGwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgdGhyb3cgbmV3IEFyZ3VtZW50TnVsbEV4Y2VwdGlvbihuYW1lb2Yod3JpdGVyKSk7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIHdyaXRlci5Xcml0ZVN0YXJ0T2JqZWN0KCk7DQogICAgICAgICAgICB2YXIgcHJvcGVydHlEaWN0aW9uYXJ5ID0gKERpY3Rpb25hcnk8c3RyaW5nLCBTZXJpYWxpemVkUHJvcGVydHlJbmZvPil2YWx1ZTsNCiAgICAgICAgICAgIGZvcmVhY2ggKHN0cmluZyBrZXkgaW4gcHJvcGVydHlEaWN0aW9uYXJ5LktleXMpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgd3JpdGVyLldyaXRlUHJvcGVydHlOYW1lKGtleSk7DQogICAgICAgICAgICAgICAgd3JpdGVyLldyaXRlUmF3VmFsdWUocHJvcGVydHlEaWN0aW9uYXJ5W2tleV0uU2VyaWFsaXplZFZhbHVlKTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgd3JpdGVyLldyaXRlRW5kT2JqZWN0KCk7DQogICAgICAgIH0NCiAgICB9DQp9DQo=" + { + "ruleId": "CA1054", + "level": "error", + "message": { + "text": "Change the type of parameter 'uriString' of method 'UriOrFragment.UriOrFragment(string)' from string to System.Uri, or provide an overload of 'UriOrFragment.UriOrFragment(string)', that allows 'uriString' to be passed as a System.Uri object." }, - "hashes": [ + "locations": [ { - "value": "89029E741A4E276389E08CF4D00035E8", - "algorithm": "md5" - }, - { - "value": "A67445B68B9457DABBABE5EBF60521C8D5AAFCAB", - "algorithm": "sha-1" - }, - { - "value": "7FFF6218E021C7313839B90B6A1C1E4FE0709869E27D1BA1B06D2AA2854BF51F", - "algorithm": "sha-256" + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Microsoft.Json.Schema.dll", + "uriBaseId": "$(ProjectDir)", + "index": 1 + } + }, + "logicalLocations": [ + { + "index": 95, + "fullyQualifiedName": "microsoft.json.schema.dll!Microsoft.Json.Schema.UriOrFragment..ctor(System.String)" + } + ] } - ] - }, - "file:///E:/src/sarif-sdk-test/src/Sarif/Readers/ResultDiffingVisitor.cs": { - "mimeType": "text/x-csharp", - "contents": { - "binary": "77u/Ly8gQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuDQovLyBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UuIFNlZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHByb2plY3Qgcm9vdCBmb3IgZnVsbCBsaWNlbnNlIGluZm9ybWF0aW9uLg0KDQp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsNCg0KbmFtZXNwYWNlIE1pY3Jvc29mdC5Db2RlQW5hbHlzaXMuU2FyaWYuUmVhZGVycw0Kew0KICAgIHB1YmxpYyBjbGFzcyBSZXN1bHREaWZmaW5nVmlzaXRvciA6IFNhcmlmUmV3cml0aW5nVmlzaXRvcg0KICAgIHsNCiAgICAgICAgcHVibGljIFJlc3VsdERpZmZpbmdWaXNpdG9yKFNhcmlmTG9nIHNhcmlmTG9nKQ0KICAgICAgICB7DQogICAgICAgICAgICB0aGlzLkFic2VudFJlc3VsdHMgPSBuZXcgSGFzaFNldDxSZXN1bHQ+KFJlc3VsdC5WYWx1ZUNvbXBhcmVyKTsNCiAgICAgICAgICAgIHRoaXMuU2hhcmVkUmVzdWx0cyA9IG5ldyBIYXNoU2V0PFJlc3VsdD4oUmVzdWx0LlZhbHVlQ29tcGFyZXIpOw0KICAgICAgICAgICAgdGhpcy5OZXdSZXN1bHRzID0gbmV3IEhhc2hTZXQ8UmVzdWx0PihSZXN1bHQuVmFsdWVDb21wYXJlcik7DQoNCiAgICAgICAgICAgIFZpc2l0U2FyaWZMb2coc2FyaWZMb2cpOw0KICAgICAgICB9DQoNCiAgICAgICAgW1N5c3RlbS5EaWFnbm9zdGljcy5Db2RlQW5hbHlzaXMuU3VwcHJlc3NNZXNzYWdlKCJNaWNyb3NvZnQuVXNhZ2UiLCAiQ0EyMjI3OkNvbGxlY3Rpb25Qcm9wZXJ0aWVzU2hvdWxkQmVSZWFkT25seSIpXQ0KICAgICAgICBwdWJsaWMgSGFzaFNldDxSZXN1bHQ+IE5ld1Jlc3VsdHMgeyBnZXQ7IHNldDsgfQ0KDQogICAgICAgIFtTeXN0ZW0uRGlhZ25vc3RpY3MuQ29kZUFuYWx5c2lzLlN1cHByZXNzTWVzc2FnZSgiTWljcm9zb2Z0LlVzYWdlIiwgIkNBMjIyNzpDb2xsZWN0aW9uUHJvcGVydGllc1Nob3VsZEJlUmVhZE9ubHkiKV0NCiAgICAgICAgcHVibGljIEhhc2hTZXQ8UmVzdWx0PiBBYnNlbnRSZXN1bHRzIHsgZ2V0OyBzZXQ7IH0NCg0KICAgICAgICBbU3lzdGVtLkRpYWdub3N0aWNzLkNvZGVBbmFseXNpcy5TdXBwcmVzc01lc3NhZ2UoIk1pY3Jvc29mdC5Vc2FnZSIsICJDQTIyMjc6Q29sbGVjdGlvblByb3BlcnRpZXNTaG91bGRCZVJlYWRPbmx5IildDQogICAgICAgIHB1YmxpYyBIYXNoU2V0PFJlc3VsdD4gU2hhcmVkUmVzdWx0cyB7IGdldDsgc2V0OyB9DQoNCiAgICAgICAgcHVibGljIG92ZXJyaWRlIFJlc3VsdCBWaXNpdFJlc3VsdChSZXN1bHQgbm9kZSkNCiAgICAgICAgew0KICAgICAgICAgICAgdGhpcy5OZXdSZXN1bHRzLkFkZChub2RlKTsNCiAgICAgICAgICAgIHJldHVybiBub2RlOw0KICAgICAgICB9DQoNCiAgICAgICAgcHVibGljIGJvb2wgRGlmZihJRW51bWVyYWJsZTxSZXN1bHQ+IGFjdHVhbCkNCiAgICAgICAgew0KDQogICAgICAgICAgICB0aGlzLkFic2VudFJlc3VsdHMgPSB0aGlzLlNoYXJlZFJlc3VsdHM7DQoNCiAgICAgICAgICAgIHRoaXMuU2hhcmVkUmVzdWx0cyA9IG5ldyBIYXNoU2V0PFJlc3VsdD4oUmVzdWx0LlZhbHVlQ29tcGFyZXIpOw0KDQogICAgICAgICAgICBmb3JlYWNoIChSZXN1bHQgcmVzdWx0IGluIHRoaXMuTmV3UmVzdWx0cykNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICB0aGlzLkFic2VudFJlc3VsdHMuQWRkKHJlc3VsdCk7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIHRoaXMuTmV3UmVzdWx0cy5DbGVhcigpOw0KDQogICAgICAgICAgICBpZiAoYWN0dWFsICE9IG51bGwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgZm9yZWFjaCAoUmVzdWx0IHJlc3VsdCBpbiBhY3R1YWwpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5BYnNlbnRSZXN1bHRzLkNvbnRhaW5zKHJlc3VsdCkpDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuU2hhcmVkUmVzdWx0cy5BZGQocmVzdWx0KTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuQWJzZW50UmVzdWx0cy5SZW1vdmUocmVzdWx0KTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBlbHNlDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuTmV3UmVzdWx0cy5BZGQocmVzdWx0KTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgcmV0dXJuDQogICAgICAgICAgICAgICAgdGhpcy5BYnNlbnRSZXN1bHRzLkNvdW50ID09IDAgJiYNCiAgICAgICAgICAgICAgICB0aGlzLk5ld1Jlc3VsdHMuQ291bnQgPT0gMDsNCg0KICAgICAgICB9DQogICAgfQ0KfQ0K" + ], + "partialFingerprints": { + "UniqueId": "0#" }, - "hashes": [ - { - "value": "C571765BE74097DEE401160603F67D5B", - "algorithm": "md5" - }, - { - "value": "E572A36A604EE4916286B45CF17056FED5144BE5", - "algorithm": "sha-1" - }, - { - "value": "B8338FAC3779201C800C04D7A75974BE51970A6771CDE8B0CBB8E925E3421C43", - "algorithm": "sha-256" - } - ] + "properties": { + "Category": "Microsoft.Design", + "FixCategory": "Breaking" + } }, - "file:///E:/src/sarif-sdk-test/src/Sarif/VersionOne/Autogenerated/AnnotatedCodeLocationVersionOne.cs": { - "mimeType": "text/x-csharp", - "contents": { - "binary": "Ly8gQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQuICBBbGwgUmlnaHRzIFJlc2VydmVkLg0KLy8gTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlLiBTZWUgTElDRU5TRSBmaWxlIGluIHRoZSBwcm9qZWN0IHJvb3QgZm9yIGZ1bGwgbGljZW5zZSBpbmZvcm1hdGlvbi4NCg0KdXNpbmcgU3lzdGVtOw0KdXNpbmcgU3lzdGVtLkNvZGVEb20uQ29tcGlsZXI7DQp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsNCnVzaW5nIFN5c3RlbS5SdW50aW1lLlNlcmlhbGl6YXRpb247DQp1c2luZyBNaWNyb3NvZnQuQ29kZUFuYWx5c2lzLlNhcmlmLlJlYWRlcnM7DQp1c2luZyBOZXd0b25zb2Z0Lkpzb247DQoNCm5hbWVzcGFjZSBNaWNyb3NvZnQuQ29kZUFuYWx5c2lzLlNhcmlmLlZlcnNpb25PbmUNCnsNCiAgICAvLy8gPHN1bW1hcnk+DQogICAgLy8vIEFuIGFubm90YXRpb24gdXNlZCB0byBleHByZXNzIGNvZGUgZmxvd3MgdGhyb3VnaCBhIG1ldGhvZCBvciBvdGhlciBsb2NhdGlvbnMgdGhhdCBhcmUgcmVsYXRlZCB0byBhIHJlc3VsdC4NCiAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgIFtEYXRhQ29udHJhY3RdDQogICAgW0dlbmVyYXRlZENvZGUoIk1pY3Jvc29mdC5Kc29uLlNjaGVtYS5Ub0RvdE5ldCIsICIwLjUyLjAuMCIpXQ0KICAgIHB1YmxpYyBwYXJ0aWFsIGNsYXNzIEFubm90YXRlZENvZGVMb2NhdGlvblZlcnNpb25PbmUgOiBQcm9wZXJ0eUJhZ0hvbGRlciwgSVNhcmlmTm9kZVZlcnNpb25PbmUNCiAgICB7DQogICAgICAgIHB1YmxpYyBzdGF0aWMgSUVxdWFsaXR5Q29tcGFyZXI8QW5ub3RhdGVkQ29kZUxvY2F0aW9uVmVyc2lvbk9uZT4gVmFsdWVDb21wYXJlciA9PiBBbm5vdGF0ZWRDb2RlTG9jYXRpb25WZXJzaW9uT25lRXF1YWxpdHlDb21wYXJlci5JbnN0YW5jZTsNCg0KICAgICAgICBwdWJsaWMgYm9vbCBWYWx1ZUVxdWFscyhBbm5vdGF0ZWRDb2RlTG9jYXRpb25WZXJzaW9uT25lIG90aGVyKSA9PiBWYWx1ZUNvbXBhcmVyLkVxdWFscyh0aGlzLCBvdGhlcik7DQogICAgICAgIHB1YmxpYyBpbnQgVmFsdWVHZXRIYXNoQ29kZSgpID0+IFZhbHVlQ29tcGFyZXIuR2V0SGFzaENvZGUodGhpcyk7DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gR2V0cyBhIHZhbHVlIGluZGljYXRpbmcgdGhlIHR5cGUgb2Ygb2JqZWN0IGltcGxlbWVudGluZyA8c2VlIGNyZWY9IklTYXJpZk5vZGVWZXJzaW9uT25lIiAvPi4NCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgcHVibGljIFNhcmlmTm9kZUtpbmRWZXJzaW9uT25lIFNhcmlmTm9kZUtpbmRWZXJzaW9uT25lDQogICAgICAgIHsNCiAgICAgICAgICAgIGdldA0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHJldHVybiBTYXJpZk5vZGVLaW5kVmVyc2lvbk9uZS5Bbm5vdGF0ZWRDb2RlTG9jYXRpb25WZXJzaW9uT25lOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gT0JTT0xFVEUgKHVzZSAic3RlcCIgaW5zdGVhZCk6IEFuIGlkZW50aWZpZXIgZm9yIHRoZSBsb2NhdGlvbiwgdW5pcXVlIHdpdGhpbiB0aGUgc2NvcGUgb2YgdGhlIGNvZGUgZmxvdyB3aXRoaW4gd2hpY2ggaXQgb2NjdXJzLg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICBbRGF0YU1lbWJlcihOYW1lID0gImlkIiwgSXNSZXF1aXJlZCA9IGZhbHNlLCBFbWl0RGVmYXVsdFZhbHVlID0gZmFsc2UpXQ0KICAgICAgICBbSnNvbkNvbnZlcnRlcih0eXBlb2YoTWljcm9zb2Z0LkNvZGVBbmFseXNpcy5TYXJpZi5WZXJzaW9uT25lLlJlYWRlcnMuQW5ub3RhdGVkQ29kZUxvY2F0aW9uSWRDb252ZXJ0ZXJWZXJzaW9uT25lKSldDQogICAgICAgIFtKc29uUHJvcGVydHkoImlkIiwgRGVmYXVsdFZhbHVlSGFuZGxpbmcgPSBEZWZhdWx0VmFsdWVIYW5kbGluZy5JZ25vcmVBbmRQb3B1bGF0ZSldDQogICAgICAgIHB1YmxpYyBpbnQgSWQgeyBnZXQ7IHNldDsgfQ0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIFRoZSAwLWJhc2VkIHNlcXVlbmNlIG51bWJlciBvZiB0aGUgbG9jYXRpb24gaW4gdGhlIGNvZGUgZmxvdyB3aXRoaW4gd2hpY2ggaXQgb2NjdXJzLg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICBbRGF0YU1lbWJlcihOYW1lID0gInN0ZXAiLCBJc1JlcXVpcmVkID0gZmFsc2UsIEVtaXREZWZhdWx0VmFsdWUgPSBmYWxzZSldDQogICAgICAgIHB1YmxpYyBpbnQgU3RlcCB7IGdldDsgc2V0OyB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gQSBmaWxlIGxvY2F0aW9uIHRvIHdoaWNoIHRoaXMgYW5ub3RhdGlvbiByZWZlcnMuDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIFtEYXRhTWVtYmVyKE5hbWUgPSAicGh5c2ljYWxMb2NhdGlvbiIsIElzUmVxdWlyZWQgPSBmYWxzZSwgRW1pdERlZmF1bHRWYWx1ZSA9IGZhbHNlKV0NCiAgICAgICAgcHVibGljIFBoeXNpY2FsTG9jYXRpb25WZXJzaW9uT25lIFBoeXNpY2FsTG9jYXRpb24geyBnZXQ7IHNldDsgfQ0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIFRoZSBmdWxseSBxdWFsaWZpZWQgbmFtZSBvZiB0aGUgbWV0aG9kIG9yIGZ1bmN0aW9uIHRoYXQgaXMgZXhlY3V0aW5nLg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICBbRGF0YU1lbWJlcihOYW1lID0gImZ1bGx5UXVhbGlmaWVkTG9naWNhbE5hbWUiLCBJc1JlcXVpcmVkID0gZmFsc2UsIEVtaXREZWZhdWx0VmFsdWUgPSBmYWxzZSldDQogICAgICAgIHB1YmxpYyBzdHJpbmcgRnVsbHlRdWFsaWZpZWRMb2dpY2FsTmFtZSB7IGdldDsgc2V0OyB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gQSBrZXkgdXNlZCB0byByZXRyaWV2ZSB0aGUgYW5ub3RhdGlvbidzIGxvZ2ljYWxMb2NhdGlvbiBmcm9tIHRoZSBsb2dpY2FsTG9jYXRpb25zIGRpY3Rpb25hcnkuDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIFtEYXRhTWVtYmVyKE5hbWUgPSAibG9naWNhbExvY2F0aW9uS2V5IiwgSXNSZXF1aXJlZCA9IGZhbHNlLCBFbWl0RGVmYXVsdFZhbHVlID0gZmFsc2UpXQ0KICAgICAgICBwdWJsaWMgc3RyaW5nIExvZ2ljYWxMb2NhdGlvbktleSB7IGdldDsgc2V0OyB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gVGhlIG5hbWUgb2YgdGhlIG1vZHVsZSB0aGF0IGNvbnRhaW5zIHRoZSBjb2RlIHRoYXQgaXMgZXhlY3V0aW5nLg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICBbRGF0YU1lbWJlcihOYW1lID0gIm1vZHVsZSIsIElzUmVxdWlyZWQgPSBmYWxzZSwgRW1pdERlZmF1bHRWYWx1ZSA9IGZhbHNlKV0NCiAgICAgICAgcHVibGljIHN0cmluZyBNb2R1bGUgeyBnZXQ7IHNldDsgfQ0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIFRoZSB0aHJlYWQgaWRlbnRpZmllciBvZiB0aGUgY29kZSB0aGF0IGlzIGV4ZWN1dGluZy4NCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgW0RhdGFNZW1iZXIoTmFtZSA9ICJ0aHJlYWRJZCIsIElzUmVxdWlyZWQgPSBmYWxzZSwgRW1pdERlZmF1bHRWYWx1ZSA9IGZhbHNlKV0NCiAgICAgICAgcHVibGljIGludCBUaHJlYWRJZCB7IGdldDsgc2V0OyB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gQSBtZXNzYWdlIHJlbGV2YW50IHRvIHRoaXMgYW5ub3RhdGlvbi4NCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgW0RhdGFNZW1iZXIoTmFtZSA9ICJtZXNzYWdlIiwgSXNSZXF1aXJlZCA9IGZhbHNlLCBFbWl0RGVmYXVsdFZhbHVlID0gZmFsc2UpXQ0KICAgICAgICBwdWJsaWMgc3RyaW5nIE1lc3NhZ2UgeyBnZXQ7IHNldDsgfQ0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIENhdGVnb3JpemVzIHRoZSBsb2NhdGlvbi4NCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgW0RhdGFNZW1iZXIoTmFtZSA9ICJraW5kIiwgSXNSZXF1aXJlZCA9IGZhbHNlLCBFbWl0RGVmYXVsdFZhbHVlID0gZmFsc2UpXQ0KICAgICAgICBwdWJsaWMgQW5ub3RhdGVkQ29kZUxvY2F0aW9uS2luZFZlcnNpb25PbmUgS2luZCB7IGdldDsgc2V0OyB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gQ2xhc3NpZmllcyBzdGF0ZSB0cmFuc2l0aW9ucyBpbiBjb2RlIGxvY2F0aW9ucyByZWxldmFudCB0byBhIHRhaW50IGFuYWx5c2lzLg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICBbRGF0YU1lbWJlcihOYW1lID0gInRhaW50S2luZCIsIElzUmVxdWlyZWQgPSBmYWxzZSwgRW1pdERlZmF1bHRWYWx1ZSA9IGZhbHNlKV0NCiAgICAgICAgcHVibGljIFRhaW50S2luZFZlcnNpb25PbmUgVGFpbnRLaW5kIHsgZ2V0OyBzZXQ7IH0NCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBUaGUgZnVsbHkgcXVhbGlmaWVkIG5hbWUgb2YgdGhlIHRhcmdldCBvbiB3aGljaCB0aGlzIGxvY2F0aW9uIG9wZXJhdGVzLiBGb3IgYW4gYW5ub3RhdGlvbiBvZiBraW5kICdjYWxsJywgZm9yIGV4YW1wbGUsIHRoZSB0YXJnZXQgcmVmZXJzIHRvIHRoZSBmdWxseSBxdWFsaWZpZWQgbG9naWNhbCBuYW1lIG9mIHRoZSBmdW5jdGlvbiBjYWxsZWQgZnJvbSB0aGlzIGxvY2F0aW9uLg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICBbRGF0YU1lbWJlcihOYW1lID0gInRhcmdldCIsIElzUmVxdWlyZWQgPSBmYWxzZSwgRW1pdERlZmF1bHRWYWx1ZSA9IGZhbHNlKV0NCiAgICAgICAgcHVibGljIHN0cmluZyBUYXJnZXQgeyBnZXQ7IHNldDsgfQ0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIEFuIG9yZGVyZWQgc2V0IG9mIHN0cmluZ3MgdGhhdCBjb21wcmlzZSBpbnB1dCBvciByZXR1cm4gdmFsdWVzIGZvciB0aGUgY3VycmVudCBvcGVyYXRpb24uIEZvciBhbiBhbm5vdGF0aW9uIG9mIGtpbmQgJ2NhbGwnLCBmb3IgZXhhbXBsZSwgdGhpcyBwcm9wZXJ0eSBtYXkgaG9sZCB0aGUgb3JkZXJlZCBsaXN0IG9mIGFyZ3VtZW50cyBwYXNzZWQgdG8gdGhlIGNhbGxlZS4NCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgW0RhdGFNZW1iZXIoTmFtZSA9ICJ2YWx1ZXMiLCBJc1JlcXVpcmVkID0gZmFsc2UsIEVtaXREZWZhdWx0VmFsdWUgPSBmYWxzZSldDQogICAgICAgIHB1YmxpYyBJTGlzdDxzdHJpbmc+IFZhbHVlcyB7IGdldDsgc2V0OyB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gQSBkaWN0aW9uYXJ5LCBlYWNoIG9mIHdob3NlIGtleXMgc3BlY2lmaWVzIGEgdmFyaWFibGUgb3IgZXhwcmVzc2lvbiwgdGhlIGFzc29jaWF0ZWQgdmFsdWUgb2Ygd2hpY2ggcmVwcmVzZW50cyB0aGUgdmFyaWFibGUgb3IgZXhwcmVzc2lvbiB2YWx1ZS4gRm9yIGFuIGFubm90YXRpb24gb2Yga2luZCAnY29udGludWF0aW9uJywgZm9yIGV4YW1wbGUsIHRoaXMgZGljdGlvbmFyeSBtaWdodCBob2xkIHRoZSBjdXJyZW50IGFzc3VtZWQgdmFsdWVzIG9mIGEgc2V0IG9mIGdsb2JhbCB2YXJpYWJsZXMuDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIFtEYXRhTWVtYmVyKE5hbWUgPSAic3RhdGUiLCBJc1JlcXVpcmVkID0gZmFsc2UsIEVtaXREZWZhdWx0VmFsdWUgPSBmYWxzZSldDQogICAgICAgIHB1YmxpYyBJRGljdGlvbmFyeTxzdHJpbmcsIHN0cmluZz4gU3RhdGUgeyBnZXQ7IHNldDsgfQ0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIEEga2V5IHVzZWQgdG8gcmV0cmlldmUgdGhlIHRhcmdldCdzIGxvZ2ljYWxMb2NhdGlvbiBmcm9tIHRoZSBsb2dpY2FsTG9jYXRpb25zIGRpY3Rpb25hcnkuDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIFtEYXRhTWVtYmVyKE5hbWUgPSAidGFyZ2V0S2V5IiwgSXNSZXF1aXJlZCA9IGZhbHNlLCBFbWl0RGVmYXVsdFZhbHVlID0gZmFsc2UpXQ0KICAgICAgICBwdWJsaWMgc3RyaW5nIFRhcmdldEtleSB7IGdldDsgc2V0OyB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gT0JTT0xFVEUgKHVzZSAiaW1wb3J0YW5jZSIgaW5zdGVhZCk6IFRydWUgaWYgdGhpcyBsb2NhdGlvbiBpcyBlc3NlbnRpYWwgdG8gdW5kZXJzdGFuZGluZyB0aGUgY29kZSBmbG93IGluIHdoaWNoIGl0IG9jY3Vycy4NCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgW0RhdGFNZW1iZXIoTmFtZSA9ICJlc3NlbnRpYWwiLCBJc1JlcXVpcmVkID0gZmFsc2UsIEVtaXREZWZhdWx0VmFsdWUgPSBmYWxzZSldDQogICAgICAgIFtKc29uUHJvcGVydHkoImVzc2VudGlhbCIsIERlZmF1bHRWYWx1ZUhhbmRsaW5nID0gRGVmYXVsdFZhbHVlSGFuZGxpbmcuSWdub3JlKV0NCiAgICAgICAgcHVibGljIGJvb2wgRXNzZW50aWFsIHsgZ2V0OyBzZXQ7IH0NCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBTcGVjaWZpZXMgdGhlIGltcG9ydGFuY2Ugb2YgdGhpcyBsb2NhdGlvbiBpbiB1bmRlcnN0YW5kaW5nIHRoZSBjb2RlIGZsb3cgaW4gd2hpY2ggaXQgb2NjdXJzLiBUaGUgb3JkZXIgZnJvbSBtb3N0IHRvIGxlYXN0IGltcG9ydGFudCBpcyAiZXNzZW50aWFsIiwgImltcG9ydGFudCIsICJ1bmltcG9ydGFudCIuIERlZmF1bHQ6ICJpbXBvcnRhbnQiLg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICBbRGF0YU1lbWJlcihOYW1lID0gImltcG9ydGFuY2UiLCBJc1JlcXVpcmVkID0gZmFsc2UsIEVtaXREZWZhdWx0VmFsdWUgPSBmYWxzZSldDQogICAgICAgIHB1YmxpYyBBbm5vdGF0ZWRDb2RlTG9jYXRpb25JbXBvcnRhbmNlVmVyc2lvbk9uZSBJbXBvcnRhbmNlIHsgZ2V0OyBzZXQ7IH0NCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBUaGUgc291cmNlIGNvZGUgYXQgdGhlIHNwZWNpZmllZCBsb2NhdGlvbi4NCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgW0RhdGFNZW1iZXIoTmFtZSA9ICJzbmlwcGV0IiwgSXNSZXF1aXJlZCA9IGZhbHNlLCBFbWl0RGVmYXVsdFZhbHVlID0gZmFsc2UpXQ0KICAgICAgICBwdWJsaWMgc3RyaW5nIFNuaXBwZXQgeyBnZXQ7IHNldDsgfQ0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIEEgc2V0IG9mIG1lc3NhZ2VzIHJlbGV2YW50IHRvIHRoZSBjdXJyZW50IGFubm90YXRlZCBjb2RlIGxvY2F0aW9uLg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICBbRGF0YU1lbWJlcihOYW1lID0gImFubm90YXRpb25zIiwgSXNSZXF1aXJlZCA9IGZhbHNlLCBFbWl0RGVmYXVsdFZhbHVlID0gZmFsc2UpXQ0KICAgICAgICBwdWJsaWMgSUxpc3Q8QW5ub3RhdGlvblZlcnNpb25PbmU+IEFubm90YXRpb25zIHsgZ2V0OyBzZXQ7IH0NCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBLZXkvdmFsdWUgcGFpcnMgdGhhdCBwcm92aWRlIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGNvZGUgbG9jYXRpb24uDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIFtEYXRhTWVtYmVyKE5hbWUgPSAicHJvcGVydGllcyIsIElzUmVxdWlyZWQgPSBmYWxzZSwgRW1pdERlZmF1bHRWYWx1ZSA9IGZhbHNlKV0NCiAgICAgICAgaW50ZXJuYWwgb3ZlcnJpZGUgSURpY3Rpb25hcnk8c3RyaW5nLCBTZXJpYWxpemVkUHJvcGVydHlJbmZvPiBQcm9wZXJ0aWVzIHsgZ2V0OyBzZXQ7IH0NCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBJbml0aWFsaXplcyBhIG5ldyBpbnN0YW5jZSBvZiB0aGUgPHNlZSBjcmVmPSJBbm5vdGF0ZWRDb2RlTG9jYXRpb25WZXJzaW9uT25lIiAvPiBjbGFzcy4NCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgcHVibGljIEFubm90YXRlZENvZGVMb2NhdGlvblZlcnNpb25PbmUoKQ0KICAgICAgICB7DQogICAgICAgIH0NCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBJbml0aWFsaXplcyBhIG5ldyBpbnN0YW5jZSBvZiB0aGUgPHNlZSBjcmVmPSJBbm5vdGF0ZWRDb2RlTG9jYXRpb25WZXJzaW9uT25lIiAvPiBjbGFzcyBmcm9tIHRoZSBzdXBwbGllZCB2YWx1ZXMuDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIC8vLyA8cGFyYW0gbmFtZT0iaWQiPg0KICAgICAgICAvLy8gQW4gaW5pdGlhbGl6YXRpb24gdmFsdWUgZm9yIHRoZSA8c2VlIGNyZWY9IlA6IElkIiAvPiBwcm9wZXJ0eS4NCiAgICAgICAgLy8vIDwvcGFyYW0+DQogICAgICAgIC8vLyA8cGFyYW0gbmFtZT0ic3RlcCI+DQogICAgICAgIC8vLyBBbiBpbml0aWFsaXphdGlvbiB2YWx1ZSBmb3IgdGhlIDxzZWUgY3JlZj0iUDogU3RlcCIgLz4gcHJvcGVydHkuDQogICAgICAgIC8vLyA8L3BhcmFtPg0KICAgICAgICAvLy8gPHBhcmFtIG5hbWU9InBoeXNpY2FsTG9jYXRpb24iPg0KICAgICAgICAvLy8gQW4gaW5pdGlhbGl6YXRpb24gdmFsdWUgZm9yIHRoZSA8c2VlIGNyZWY9IlA6IFBoeXNpY2FsTG9jYXRpb24iIC8+IHByb3BlcnR5Lg0KICAgICAgICAvLy8gPC9wYXJhbT4NCiAgICAgICAgLy8vIDxwYXJhbSBuYW1lPSJmdWxseVF1YWxpZmllZExvZ2ljYWxOYW1lIj4NCiAgICAgICAgLy8vIEFuIGluaXRpYWxpemF0aW9uIHZhbHVlIGZvciB0aGUgPHNlZSBjcmVmPSJQOiBGdWxseVF1YWxpZmllZExvZ2ljYWxOYW1lIiAvPiBwcm9wZXJ0eS4NCiAgICAgICAgLy8vIDwvcGFyYW0+DQogICAgICAgIC8vLyA8cGFyYW0gbmFtZT0ibG9naWNhbExvY2F0aW9uS2V5Ij4NCiAgICAgICAgLy8vIEFuIGluaXRpYWxpemF0aW9uIHZhbHVlIGZvciB0aGUgPHNlZSBjcmVmPSJQOiBMb2dpY2FsTG9jYXRpb25LZXkiIC8+IHByb3BlcnR5Lg0KICAgICAgICAvLy8gPC9wYXJhbT4NCiAgICAgICAgLy8vIDxwYXJhbSBuYW1lPSJtb2R1bGUiPg0KICAgICAgICAvLy8gQW4gaW5pdGlhbGl6YXRpb24gdmFsdWUgZm9yIHRoZSA8c2VlIGNyZWY9IlA6IE1vZHVsZSIgLz4gcHJvcGVydHkuDQogICAgICAgIC8vLyA8L3BhcmFtPg0KICAgICAgICAvLy8gPHBhcmFtIG5hbWU9InRocmVhZElkIj4NCiAgICAgICAgLy8vIEFuIGluaXRpYWxpemF0aW9uIHZhbHVlIGZvciB0aGUgPHNlZSBjcmVmPSJQOiBUaHJlYWRJZCIgLz4gcHJvcGVydHkuDQogICAgICAgIC8vLyA8L3BhcmFtPg0KICAgICAgICAvLy8gPHBhcmFtIG5hbWU9Im1lc3NhZ2UiPg0KICAgICAgICAvLy8gQW4gaW5pdGlhbGl6YXRpb24gdmFsdWUgZm9yIHRoZSA8c2VlIGNyZWY9IlA6IE1lc3NhZ2UiIC8+IHByb3BlcnR5Lg0KICAgICAgICAvLy8gPC9wYXJhbT4NCiAgICAgICAgLy8vIDxwYXJhbSBuYW1lPSJraW5kIj4NCiAgICAgICAgLy8vIEFuIGluaXRpYWxpemF0aW9uIHZhbHVlIGZvciB0aGUgPHNlZSBjcmVmPSJQOiBLaW5kIiAvPiBwcm9wZXJ0eS4NCiAgICAgICAgLy8vIDwvcGFyYW0+DQogICAgICAgIC8vLyA8cGFyYW0gbmFtZT0idGFpbnRLaW5kIj4NCiAgICAgICAgLy8vIEFuIGluaXRpYWxpemF0aW9uIHZhbHVlIGZvciB0aGUgPHNlZSBjcmVmPSJQOiBUYWludEtpbmQiIC8+IHByb3BlcnR5Lg0KICAgICAgICAvLy8gPC9wYXJhbT4NCiAgICAgICAgLy8vIDxwYXJhbSBuYW1lPSJ0YXJnZXQiPg0KICAgICAgICAvLy8gQW4gaW5pdGlhbGl6YXRpb24gdmFsdWUgZm9yIHRoZSA8c2VlIGNyZWY9IlA6IFRhcmdldCIgLz4gcHJvcGVydHkuDQogICAgICAgIC8vLyA8L3BhcmFtPg0KICAgICAgICAvLy8gPHBhcmFtIG5hbWU9InZhbHVlcyI+DQogICAgICAgIC8vLyBBbiBpbml0aWFsaXphdGlvbiB2YWx1ZSBmb3IgdGhlIDxzZWUgY3JlZj0iUDogVmFsdWVzIiAvPiBwcm9wZXJ0eS4NCiAgICAgICAgLy8vIDwvcGFyYW0+DQogICAgICAgIC8vLyA8cGFyYW0gbmFtZT0ic3RhdGUiPg0KICAgICAgICAvLy8gQW4gaW5pdGlhbGl6YXRpb24gdmFsdWUgZm9yIHRoZSA8c2VlIGNyZWY9IlA6IFN0YXRlIiAvPiBwcm9wZXJ0eS4NCiAgICAgICAgLy8vIDwvcGFyYW0+DQogICAgICAgIC8vLyA8cGFyYW0gbmFtZT0idGFyZ2V0S2V5Ij4NCiAgICAgICAgLy8vIEFuIGluaXRpYWxpemF0aW9uIHZhbHVlIGZvciB0aGUgPHNlZSBjcmVmPSJQOiBUYXJnZXRLZXkiIC8+IHByb3BlcnR5Lg0KICAgICAgICAvLy8gPC9wYXJhbT4NCiAgICAgICAgLy8vIDxwYXJhbSBuYW1lPSJlc3NlbnRpYWwiPg0KICAgICAgICAvLy8gQW4gaW5pdGlhbGl6YXRpb24gdmFsdWUgZm9yIHRoZSA8c2VlIGNyZWY9IlA6IEVzc2VudGlhbCIgLz4gcHJvcGVydHkuDQogICAgICAgIC8vLyA8L3BhcmFtPg0KICAgICAgICAvLy8gPHBhcmFtIG5hbWU9ImltcG9ydGFuY2UiPg0KICAgICAgICAvLy8gQW4gaW5pdGlhbGl6YXRpb24gdmFsdWUgZm9yIHRoZSA8c2VlIGNyZWY9IlA6IEltcG9ydGFuY2UiIC8+IHByb3BlcnR5Lg0KICAgICAgICAvLy8gPC9wYXJhbT4NCiAgICAgICAgLy8vIDxwYXJhbSBuYW1lPSJzbmlwcGV0Ij4NCiAgICAgICAgLy8vIEFuIGluaXRpYWxpemF0aW9uIHZhbHVlIGZvciB0aGUgPHNlZSBjcmVmPSJQOiBTbmlwcGV0IiAvPiBwcm9wZXJ0eS4NCiAgICAgICAgLy8vIDwvcGFyYW0+DQogICAgICAgIC8vLyA8cGFyYW0gbmFtZT0iYW5ub3RhdGlvbnMiPg0KICAgICAgICAvLy8gQW4gaW5pdGlhbGl6YXRpb24gdmFsdWUgZm9yIHRoZSA8c2VlIGNyZWY9IlA6IEFubm90YXRpb25zIiAvPiBwcm9wZXJ0eS4NCiAgICAgICAgLy8vIDwvcGFyYW0+DQogICAgICAgIC8vLyA8cGFyYW0gbmFtZT0icHJvcGVydGllcyI+DQogICAgICAgIC8vLyBBbiBpbml0aWFsaXphdGlvbiB2YWx1ZSBmb3IgdGhlIDxzZWUgY3JlZj0iUDogUHJvcGVydGllcyIgLz4gcHJvcGVydHkuDQogICAgICAgIC8vLyA8L3BhcmFtPg0KICAgICAgICBwdWJsaWMgQW5ub3RhdGVkQ29kZUxvY2F0aW9uVmVyc2lvbk9uZShpbnQgaWQsIGludCBzdGVwLCBQaHlzaWNhbExvY2F0aW9uVmVyc2lvbk9uZSBwaHlzaWNhbExvY2F0aW9uLCBzdHJpbmcgZnVsbHlRdWFsaWZpZWRMb2dpY2FsTmFtZSwgc3RyaW5nIGxvZ2ljYWxMb2NhdGlvbktleSwgc3RyaW5nIG1vZHVsZSwgaW50IHRocmVhZElkLCBzdHJpbmcgbWVzc2FnZSwgQW5ub3RhdGVkQ29kZUxvY2F0aW9uS2luZFZlcnNpb25PbmUga2luZCwgVGFpbnRLaW5kVmVyc2lvbk9uZSB0YWludEtpbmQsIHN0cmluZyB0YXJnZXQsIElFbnVtZXJhYmxlPHN0cmluZz4gdmFsdWVzLCBJRGljdGlvbmFyeTxzdHJpbmcsIHN0cmluZz4gc3RhdGUsIHN0cmluZyB0YXJnZXRLZXksIGJvb2wgZXNzZW50aWFsLCBBbm5vdGF0ZWRDb2RlTG9jYXRpb25JbXBvcnRhbmNlVmVyc2lvbk9uZSBpbXBvcnRhbmNlLCBzdHJpbmcgc25pcHBldCwgSUVudW1lcmFibGU8QW5ub3RhdGlvblZlcnNpb25PbmU+IGFubm90YXRpb25zLCBJRGljdGlvbmFyeTxzdHJpbmcsIFNlcmlhbGl6ZWRQcm9wZXJ0eUluZm8+IHByb3BlcnRpZXMpDQogICAgICAgIHsNCiAgICAgICAgICAgIEluaXQoaWQsIHN0ZXAsIHBoeXNpY2FsTG9jYXRpb24sIGZ1bGx5UXVhbGlmaWVkTG9naWNhbE5hbWUsIGxvZ2ljYWxMb2NhdGlvbktleSwgbW9kdWxlLCB0aHJlYWRJZCwgbWVzc2FnZSwga2luZCwgdGFpbnRLaW5kLCB0YXJnZXQsIHZhbHVlcywgc3RhdGUsIHRhcmdldEtleSwgZXNzZW50aWFsLCBpbXBvcnRhbmNlLCBzbmlwcGV0LCBhbm5vdGF0aW9ucywgcHJvcGVydGllcyk7DQogICAgICAgIH0NCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBJbml0aWFsaXplcyBhIG5ldyBpbnN0YW5jZSBvZiB0aGUgPHNlZSBjcmVmPSJBbm5vdGF0ZWRDb2RlTG9jYXRpb25WZXJzaW9uT25lIiAvPiBjbGFzcyBmcm9tIHRoZSBzcGVjaWZpZWQgaW5zdGFuY2UuDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIC8vLyA8cGFyYW0gbmFtZT0ib3RoZXIiPg0KICAgICAgICAvLy8gVGhlIGluc3RhbmNlIGZyb20gd2hpY2ggdGhlIG5ldyBpbnN0YW5jZSBpcyB0byBiZSBpbml0aWFsaXplZC4NCiAgICAgICAgLy8vIDwvcGFyYW0+DQogICAgICAgIC8vLyA8ZXhjZXB0aW9uIGNyZWY9IkFyZ3VtZW50TnVsbEV4Y2VwdGlvbiI+DQogICAgICAgIC8vLyBUaHJvd24gaWYgPHBhcmFtcmVmIG5hbWU9Im90aGVyIiAvPiBpcyBudWxsLg0KICAgICAgICAvLy8gPC9leGNlcHRpb24+DQogICAgICAgIHB1YmxpYyBBbm5vdGF0ZWRDb2RlTG9jYXRpb25WZXJzaW9uT25lKEFubm90YXRlZENvZGVMb2NhdGlvblZlcnNpb25PbmUgb3RoZXIpDQogICAgICAgIHsNCiAgICAgICAgICAgIGlmIChvdGhlciA9PSBudWxsKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHRocm93IG5ldyBBcmd1bWVudE51bGxFeGNlcHRpb24obmFtZW9mKG90aGVyKSk7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIEluaXQob3RoZXIuSWQsIG90aGVyLlN0ZXAsIG90aGVyLlBoeXNpY2FsTG9jYXRpb24sIG90aGVyLkZ1bGx5UXVhbGlmaWVkTG9naWNhbE5hbWUsIG90aGVyLkxvZ2ljYWxMb2NhdGlvbktleSwgb3RoZXIuTW9kdWxlLCBvdGhlci5UaHJlYWRJZCwgb3RoZXIuTWVzc2FnZSwgb3RoZXIuS2luZCwgb3RoZXIuVGFpbnRLaW5kLCBvdGhlci5UYXJnZXQsIG90aGVyLlZhbHVlcywgb3RoZXIuU3RhdGUsIG90aGVyLlRhcmdldEtleSwgb3RoZXIuRXNzZW50aWFsLCBvdGhlci5JbXBvcnRhbmNlLCBvdGhlci5TbmlwcGV0LCBvdGhlci5Bbm5vdGF0aW9ucywgb3RoZXIuUHJvcGVydGllcyk7DQogICAgICAgIH0NCg0KICAgICAgICBJU2FyaWZOb2RlVmVyc2lvbk9uZSBJU2FyaWZOb2RlVmVyc2lvbk9uZS5EZWVwQ2xvbmUoKQ0KICAgICAgICB7DQogICAgICAgICAgICByZXR1cm4gRGVlcENsb25lQ29yZSgpOw0KICAgICAgICB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gQ3JlYXRlcyBhIGRlZXAgY29weSBvZiB0aGlzIGluc3RhbmNlLg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICBwdWJsaWMgQW5ub3RhdGVkQ29kZUxvY2F0aW9uVmVyc2lvbk9uZSBEZWVwQ2xvbmUoKQ0KICAgICAgICB7DQogICAgICAgICAgICByZXR1cm4gKEFubm90YXRlZENvZGVMb2NhdGlvblZlcnNpb25PbmUpRGVlcENsb25lQ29yZSgpOw0KICAgICAgICB9DQoNCiAgICAgICAgcHJpdmF0ZSBJU2FyaWZOb2RlVmVyc2lvbk9uZSBEZWVwQ2xvbmVDb3JlKCkNCiAgICAgICAgew0KICAgICAgICAgICAgcmV0dXJuIG5ldyBBbm5vdGF0ZWRDb2RlTG9jYXRpb25WZXJzaW9uT25lKHRoaXMpOw0KICAgICAgICB9DQoNCiAgICAgICAgcHJpdmF0ZSB2b2lkIEluaXQoaW50IGlkLCBpbnQgc3RlcCwgUGh5c2ljYWxMb2NhdGlvblZlcnNpb25PbmUgcGh5c2ljYWxMb2NhdGlvbiwgc3RyaW5nIGZ1bGx5UXVhbGlmaWVkTG9naWNhbE5hbWUsIHN0cmluZyBsb2dpY2FsTG9jYXRpb25LZXksIHN0cmluZyBtb2R1bGUsIGludCB0aHJlYWRJZCwgc3RyaW5nIG1lc3NhZ2UsIEFubm90YXRlZENvZGVMb2NhdGlvbktpbmRWZXJzaW9uT25lIGtpbmQsIFRhaW50S2luZFZlcnNpb25PbmUgdGFpbnRLaW5kLCBzdHJpbmcgdGFyZ2V0LCBJRW51bWVyYWJsZTxzdHJpbmc+IHZhbHVlcywgSURpY3Rpb25hcnk8c3RyaW5nLCBzdHJpbmc+IHN0YXRlLCBzdHJpbmcgdGFyZ2V0S2V5LCBib29sIGVzc2VudGlhbCwgQW5ub3RhdGVkQ29kZUxvY2F0aW9uSW1wb3J0YW5jZVZlcnNpb25PbmUgaW1wb3J0YW5jZSwgc3RyaW5nIHNuaXBwZXQsIElFbnVtZXJhYmxlPEFubm90YXRpb25WZXJzaW9uT25lPiBhbm5vdGF0aW9ucywgSURpY3Rpb25hcnk8c3RyaW5nLCBTZXJpYWxpemVkUHJvcGVydHlJbmZvPiBwcm9wZXJ0aWVzKQ0KICAgICAgICB7DQogICAgICAgICAgICBJZCA9IGlkOw0KICAgICAgICAgICAgU3RlcCA9IHN0ZXA7DQogICAgICAgICAgICBpZiAocGh5c2ljYWxMb2NhdGlvbiAhPSBudWxsKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIFBoeXNpY2FsTG9jYXRpb24gPSBuZXcgUGh5c2ljYWxMb2NhdGlvblZlcnNpb25PbmUocGh5c2ljYWxMb2NhdGlvbik7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIEZ1bGx5UXVhbGlmaWVkTG9naWNhbE5hbWUgPSBmdWxseVF1YWxpZmllZExvZ2ljYWxOYW1lOw0KICAgICAgICAgICAgTG9naWNhbExvY2F0aW9uS2V5ID0gbG9naWNhbExvY2F0aW9uS2V5Ow0KICAgICAgICAgICAgTW9kdWxlID0gbW9kdWxlOw0KICAgICAgICAgICAgVGhyZWFkSWQgPSB0aHJlYWRJZDsNCiAgICAgICAgICAgIE1lc3NhZ2UgPSBtZXNzYWdlOw0KICAgICAgICAgICAgS2luZCA9IGtpbmQ7DQogICAgICAgICAgICBUYWludEtpbmQgPSB0YWludEtpbmQ7DQogICAgICAgICAgICBUYXJnZXQgPSB0YXJnZXQ7DQogICAgICAgICAgICBpZiAodmFsdWVzICE9IG51bGwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgdmFyIGRlc3RpbmF0aW9uXzAgPSBuZXcgTGlzdDxzdHJpbmc+KCk7DQogICAgICAgICAgICAgICAgZm9yZWFjaCAodmFyIHZhbHVlXzAgaW4gdmFsdWVzKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgZGVzdGluYXRpb25fMC5BZGQodmFsdWVfMCk7DQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgVmFsdWVzID0gZGVzdGluYXRpb25fMDsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgaWYgKHN0YXRlICE9IG51bGwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgU3RhdGUgPSBuZXcgRGljdGlvbmFyeTxzdHJpbmcsIHN0cmluZz4oc3RhdGUpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgVGFyZ2V0S2V5ID0gdGFyZ2V0S2V5Ow0KICAgICAgICAgICAgRXNzZW50aWFsID0gZXNzZW50aWFsOw0KICAgICAgICAgICAgSW1wb3J0YW5jZSA9IGltcG9ydGFuY2U7DQogICAgICAgICAgICBTbmlwcGV0ID0gc25pcHBldDsNCiAgICAgICAgICAgIGlmIChhbm5vdGF0aW9ucyAhPSBudWxsKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHZhciBkZXN0aW5hdGlvbl8xID0gbmV3IExpc3Q8QW5ub3RhdGlvblZlcnNpb25PbmU+KCk7DQogICAgICAgICAgICAgICAgZm9yZWFjaCAodmFyIHZhbHVlXzEgaW4gYW5ub3RhdGlvbnMpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWVfMSA9PSBudWxsKQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICBkZXN0aW5hdGlvbl8xLkFkZChudWxsKTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBlbHNlDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGRlc3RpbmF0aW9uXzEuQWRkKG5ldyBBbm5vdGF0aW9uVmVyc2lvbk9uZSh2YWx1ZV8xKSk7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICBBbm5vdGF0aW9ucyA9IGRlc3RpbmF0aW9uXzE7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIGlmIChwcm9wZXJ0aWVzICE9IG51bGwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgUHJvcGVydGllcyA9IG5ldyBEaWN0aW9uYXJ5PHN0cmluZywgU2VyaWFsaXplZFByb3BlcnR5SW5mbz4ocHJvcGVydGllcyk7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCiAgICB9DQp9" + { + "ruleId": "CA1062", + "message": { + "text": "In externally visible method 'UriOrFragment.UriOrFragment(string)', validate parameter 'uriString' before using it." }, - "hashes": [ - { - "value": "91BAA6B1CA828DDD6E1BE08A123BD507", - "algorithm": "md5" - }, - { - "value": "40999CFC0A59BB70006E32768FECBBEC2A4CCD23", - "algorithm": "sha-1" - }, + "locations": [ { - "value": "F64983DCF9C0BE14F60C1C49F78441218EC8DCEE189262CBEB23E4EB5DEEE6C5", - "algorithm": "sha-256" + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Microsoft.Json.Schema.dll", + "uriBaseId": "$(ProjectDir)", + "index": 1 + } + }, + "logicalLocations": [ + { + "index": 95, + "fullyQualifiedName": "microsoft.json.schema.dll!Microsoft.Json.Schema.UriOrFragment..ctor(System.String)" + } + ] } - ] - }, - "file:///E:/src/sarif-sdk-test/src/Sarif/VersionOne/Autogenerated/AnnotatedCodeLocationVersionOneEqualityComparer.cs": { - "mimeType": "text/x-csharp", - "contents": { - "binary": "Ly8gQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQuICBBbGwgUmlnaHRzIFJlc2VydmVkLg0KLy8gTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlLiBTZWUgTElDRU5TRSBmaWxlIGluIHRoZSBwcm9qZWN0IHJvb3QgZm9yIGZ1bGwgbGljZW5zZSBpbmZvcm1hdGlvbi4NCg0KdXNpbmcgU3lzdGVtOw0KdXNpbmcgU3lzdGVtLkNvZGVEb20uQ29tcGlsZXI7DQp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsNCnVzaW5nIE1pY3Jvc29mdC5Db2RlQW5hbHlzaXMuU2FyaWYuUmVhZGVyczsNCg0KbmFtZXNwYWNlIE1pY3Jvc29mdC5Db2RlQW5hbHlzaXMuU2FyaWYuVmVyc2lvbk9uZQ0Kew0KICAgIC8vLyA8c3VtbWFyeT4NCiAgICAvLy8gRGVmaW5lcyBtZXRob2RzIHRvIHN1cHBvcnQgdGhlIGNvbXBhcmlzb24gb2Ygb2JqZWN0cyBvZiB0eXBlIEFubm90YXRlZENvZGVMb2NhdGlvblZlcnNpb25PbmUgZm9yIGVxdWFsaXR5Lg0KICAgIC8vLyA8L3N1bW1hcnk+DQogICAgW0dlbmVyYXRlZENvZGUoIk1pY3Jvc29mdC5Kc29uLlNjaGVtYS5Ub0RvdE5ldCIsICIwLjUyLjAuMCIpXQ0KICAgIGludGVybmFsIHNlYWxlZCBjbGFzcyBBbm5vdGF0ZWRDb2RlTG9jYXRpb25WZXJzaW9uT25lRXF1YWxpdHlDb21wYXJlciA6IElFcXVhbGl0eUNvbXBhcmVyPEFubm90YXRlZENvZGVMb2NhdGlvblZlcnNpb25PbmU+DQogICAgew0KICAgICAgICBpbnRlcm5hbCBzdGF0aWMgcmVhZG9ubHkgQW5ub3RhdGVkQ29kZUxvY2F0aW9uVmVyc2lvbk9uZUVxdWFsaXR5Q29tcGFyZXIgSW5zdGFuY2UgPSBuZXcgQW5ub3RhdGVkQ29kZUxvY2F0aW9uVmVyc2lvbk9uZUVxdWFsaXR5Q29tcGFyZXIoKTsNCg0KICAgICAgICBwdWJsaWMgYm9vbCBFcXVhbHMoQW5ub3RhdGVkQ29kZUxvY2F0aW9uVmVyc2lvbk9uZSBsZWZ0LCBBbm5vdGF0ZWRDb2RlTG9jYXRpb25WZXJzaW9uT25lIHJpZ2h0KQ0KICAgICAgICB7DQogICAgICAgICAgICBpZiAoUmVmZXJlbmNlRXF1YWxzKGxlZnQsIHJpZ2h0KSkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgaWYgKFJlZmVyZW5jZUVxdWFscyhsZWZ0LCBudWxsKSB8fCBSZWZlcmVuY2VFcXVhbHMocmlnaHQsIG51bGwpKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgaWYgKGxlZnQuSWQgIT0gcmlnaHQuSWQpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBpZiAobGVmdC5TdGVwICE9IHJpZ2h0LlN0ZXApDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBpZiAoIVBoeXNpY2FsTG9jYXRpb25WZXJzaW9uT25lLlZhbHVlQ29tcGFyZXIuRXF1YWxzKGxlZnQuUGh5c2ljYWxMb2NhdGlvbiwgcmlnaHQuUGh5c2ljYWxMb2NhdGlvbikpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBpZiAobGVmdC5GdWxseVF1YWxpZmllZExvZ2ljYWxOYW1lICE9IHJpZ2h0LkZ1bGx5UXVhbGlmaWVkTG9naWNhbE5hbWUpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBpZiAobGVmdC5Mb2dpY2FsTG9jYXRpb25LZXkgIT0gcmlnaHQuTG9naWNhbExvY2F0aW9uS2V5KQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgaWYgKGxlZnQuTW9kdWxlICE9IHJpZ2h0Lk1vZHVsZSkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIGlmIChsZWZ0LlRocmVhZElkICE9IHJpZ2h0LlRocmVhZElkKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgaWYgKGxlZnQuTWVzc2FnZSAhPSByaWdodC5NZXNzYWdlKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgaWYgKGxlZnQuS2luZCAhPSByaWdodC5LaW5kKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgaWYgKGxlZnQuVGFpbnRLaW5kICE9IHJpZ2h0LlRhaW50S2luZCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIGlmIChsZWZ0LlRhcmdldCAhPSByaWdodC5UYXJnZXQpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBpZiAoIW9iamVjdC5SZWZlcmVuY2VFcXVhbHMobGVmdC5WYWx1ZXMsIHJpZ2h0LlZhbHVlcykpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgaWYgKGxlZnQuVmFsdWVzID09IG51bGwgfHwgcmlnaHQuVmFsdWVzID09IG51bGwpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgaWYgKGxlZnQuVmFsdWVzLkNvdW50ICE9IHJpZ2h0LlZhbHVlcy5Db3VudCkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICBmb3IgKGludCBpbmRleF8wID0gMDsgaW5kZXhfMCA8IGxlZnQuVmFsdWVzLkNvdW50OyArK2luZGV4XzApDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBpZiAobGVmdC5WYWx1ZXNbaW5kZXhfMF0gIT0gcmlnaHQuVmFsdWVzW2luZGV4XzBdKQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIGlmICghb2JqZWN0LlJlZmVyZW5jZUVxdWFscyhsZWZ0LlN0YXRlLCByaWdodC5TdGF0ZSkpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgaWYgKGxlZnQuU3RhdGUgPT0gbnVsbCB8fCByaWdodC5TdGF0ZSA9PSBudWxsIHx8IGxlZnQuU3RhdGUuQ291bnQgIT0gcmlnaHQuU3RhdGUuQ291bnQpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgZm9yZWFjaCAodmFyIHZhbHVlXzAgaW4gbGVmdC5TdGF0ZSkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIHN0cmluZyB2YWx1ZV8xOw0KICAgICAgICAgICAgICAgICAgICBpZiAoIXJpZ2h0LlN0YXRlLlRyeUdldFZhbHVlKHZhbHVlXzAuS2V5LCBvdXQgdmFsdWVfMSkpDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZV8wLlZhbHVlICE9IHZhbHVlXzEpDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgaWYgKGxlZnQuVGFyZ2V0S2V5ICE9IHJpZ2h0LlRhcmdldEtleSkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIGlmIChsZWZ0LkVzc2VudGlhbCAhPSByaWdodC5Fc3NlbnRpYWwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBpZiAobGVmdC5JbXBvcnRhbmNlICE9IHJpZ2h0LkltcG9ydGFuY2UpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBpZiAobGVmdC5TbmlwcGV0ICE9IHJpZ2h0LlNuaXBwZXQpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBpZiAoIW9iamVjdC5SZWZlcmVuY2VFcXVhbHMobGVmdC5Bbm5vdGF0aW9ucywgcmlnaHQuQW5ub3RhdGlvbnMpKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIGlmIChsZWZ0LkFubm90YXRpb25zID09IG51bGwgfHwgcmlnaHQuQW5ub3RhdGlvbnMgPT0gbnVsbCkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICBpZiAobGVmdC5Bbm5vdGF0aW9ucy5Db3VudCAhPSByaWdodC5Bbm5vdGF0aW9ucy5Db3VudCkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICBmb3IgKGludCBpbmRleF8xID0gMDsgaW5kZXhfMSA8IGxlZnQuQW5ub3RhdGlvbnMuQ291bnQ7ICsraW5kZXhfMSkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIGlmICghQW5ub3RhdGlvblZlcnNpb25PbmUuVmFsdWVDb21wYXJlci5FcXVhbHMobGVmdC5Bbm5vdGF0aW9uc1tpbmRleF8xXSwgcmlnaHQuQW5ub3RhdGlvbnNbaW5kZXhfMV0pKQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIGlmICghb2JqZWN0LlJlZmVyZW5jZUVxdWFscyhsZWZ0LlByb3BlcnRpZXMsIHJpZ2h0LlByb3BlcnRpZXMpKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIGlmIChsZWZ0LlByb3BlcnRpZXMgPT0gbnVsbCB8fCByaWdodC5Qcm9wZXJ0aWVzID09IG51bGwgfHwgbGVmdC5Qcm9wZXJ0aWVzLkNvdW50ICE9IHJpZ2h0LlByb3BlcnRpZXMuQ291bnQpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgZm9yZWFjaCAodmFyIHZhbHVlXzAgaW4gbGVmdC5Qcm9wZXJ0aWVzKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgU2VyaWFsaXplZFByb3BlcnR5SW5mbyB2YWx1ZV8xOw0KICAgICAgICAgICAgICAgICAgICBpZiAoIXJpZ2h0LlByb3BlcnRpZXMuVHJ5R2V0VmFsdWUodmFsdWVfMC5LZXksIG91dCB2YWx1ZV8xKSkNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAgICAgaWYgKCFvYmplY3QuRXF1YWxzKHZhbHVlXzAuVmFsdWUsIHZhbHVlXzEpKQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIHJldHVybiB0cnVlOw0KICAgICAgICB9DQoNCiAgICAgICAgcHVibGljIGludCBHZXRIYXNoQ29kZShBbm5vdGF0ZWRDb2RlTG9jYXRpb25WZXJzaW9uT25lIG9iaikNCiAgICAgICAgew0KICAgICAgICAgICAgaWYgKFJlZmVyZW5jZUVxdWFscyhvYmosIG51bGwpKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHJldHVybiAwOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBpbnQgcmVzdWx0ID0gMTc7DQogICAgICAgICAgICB1bmNoZWNrZWQNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICByZXN1bHQgPSAocmVzdWx0ICogMzEpICsgb2JqLklkLkdldEhhc2hDb2RlKCk7DQogICAgICAgICAgICAgICAgcmVzdWx0ID0gKHJlc3VsdCAqIDMxKSArIG9iai5TdGVwLkdldEhhc2hDb2RlKCk7DQogICAgICAgICAgICAgICAgaWYgKG9iai5QaHlzaWNhbExvY2F0aW9uICE9IG51bGwpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSAocmVzdWx0ICogMzEpICsgb2JqLlBoeXNpY2FsTG9jYXRpb24uVmFsdWVHZXRIYXNoQ29kZSgpOw0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgIGlmIChvYmouRnVsbHlRdWFsaWZpZWRMb2dpY2FsTmFtZSAhPSBudWxsKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gKHJlc3VsdCAqIDMxKSArIG9iai5GdWxseVF1YWxpZmllZExvZ2ljYWxOYW1lLkdldEhhc2hDb2RlKCk7DQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgaWYgKG9iai5Mb2dpY2FsTG9jYXRpb25LZXkgIT0gbnVsbCkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IChyZXN1bHQgKiAzMSkgKyBvYmouTG9naWNhbExvY2F0aW9uS2V5LkdldEhhc2hDb2RlKCk7DQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgaWYgKG9iai5Nb2R1bGUgIT0gbnVsbCkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IChyZXN1bHQgKiAzMSkgKyBvYmouTW9kdWxlLkdldEhhc2hDb2RlKCk7DQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgcmVzdWx0ID0gKHJlc3VsdCAqIDMxKSArIG9iai5UaHJlYWRJZC5HZXRIYXNoQ29kZSgpOw0KICAgICAgICAgICAgICAgIGlmIChvYmouTWVzc2FnZSAhPSBudWxsKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gKHJlc3VsdCAqIDMxKSArIG9iai5NZXNzYWdlLkdldEhhc2hDb2RlKCk7DQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgcmVzdWx0ID0gKHJlc3VsdCAqIDMxKSArIG9iai5LaW5kLkdldEhhc2hDb2RlKCk7DQogICAgICAgICAgICAgICAgcmVzdWx0ID0gKHJlc3VsdCAqIDMxKSArIG9iai5UYWludEtpbmQuR2V0SGFzaENvZGUoKTsNCiAgICAgICAgICAgICAgICBpZiAob2JqLlRhcmdldCAhPSBudWxsKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gKHJlc3VsdCAqIDMxKSArIG9iai5UYXJnZXQuR2V0SGFzaENvZGUoKTsNCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICBpZiAob2JqLlZhbHVlcyAhPSBudWxsKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgZm9yZWFjaCAodmFyIHZhbHVlXzIgaW4gb2JqLlZhbHVlcykNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gcmVzdWx0ICogMzE7DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWVfMiAhPSBudWxsKQ0KICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IChyZXN1bHQgKiAzMSkgKyB2YWx1ZV8yLkdldEhhc2hDb2RlKCk7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICBpZiAob2JqLlN0YXRlICE9IG51bGwpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAvLyBVc2UgeG9yIGZvciBkaWN0aW9uYXJpZXMgdG8gYmUgb3JkZXItaW5kZXBlbmRlbnQuDQogICAgICAgICAgICAgICAgICAgIGludCB4b3JfMCA9IDA7DQogICAgICAgICAgICAgICAgICAgIGZvcmVhY2ggKHZhciB2YWx1ZV80IGluIG9iai5TdGF0ZSkNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgeG9yXzAgXj0gdmFsdWVfNC5LZXkuR2V0SGFzaENvZGUoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZV80LlZhbHVlICE9IG51bGwpDQogICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgeG9yXzAgXj0gdmFsdWVfNC5WYWx1ZS5HZXRIYXNoQ29kZSgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gKHJlc3VsdCAqIDMxKSArIHhvcl8wOw0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgIGlmIChvYmouVGFyZ2V0S2V5ICE9IG51bGwpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSAocmVzdWx0ICogMzEpICsgb2JqLlRhcmdldEtleS5HZXRIYXNoQ29kZSgpOw0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgIHJlc3VsdCA9IChyZXN1bHQgKiAzMSkgKyBvYmouRXNzZW50aWFsLkdldEhhc2hDb2RlKCk7DQogICAgICAgICAgICAgICAgcmVzdWx0ID0gKHJlc3VsdCAqIDMxKSArIG9iai5JbXBvcnRhbmNlLkdldEhhc2hDb2RlKCk7DQogICAgICAgICAgICAgICAgaWYgKG9iai5TbmlwcGV0ICE9IG51bGwpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSAocmVzdWx0ICogMzEpICsgb2JqLlNuaXBwZXQuR2V0SGFzaENvZGUoKTsNCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICBpZiAob2JqLkFubm90YXRpb25zICE9IG51bGwpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBmb3JlYWNoICh2YXIgdmFsdWVfMyBpbiBvYmouQW5ub3RhdGlvbnMpDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IHJlc3VsdCAqIDMxOw0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlXzMgIT0gbnVsbCkNCiAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSAocmVzdWx0ICogMzEpICsgdmFsdWVfMy5WYWx1ZUdldEhhc2hDb2RlKCk7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICBpZiAob2JqLlByb3BlcnRpZXMgIT0gbnVsbCkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIC8vIFVzZSB4b3IgZm9yIGRpY3Rpb25hcmllcyB0byBiZSBvcmRlci1pbmRlcGVuZGVudC4NCiAgICAgICAgICAgICAgICAgICAgaW50IHhvcl8wID0gMDsNCiAgICAgICAgICAgICAgICAgICAgZm9yZWFjaCAodmFyIHZhbHVlXzQgaW4gb2JqLlByb3BlcnRpZXMpDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHhvcl8wIF49IHZhbHVlXzQuS2V5LkdldEhhc2hDb2RlKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWVfNC5WYWx1ZSAhPSBudWxsKQ0KICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhvcl8wIF49IHZhbHVlXzQuVmFsdWUuR2V0SGFzaENvZGUoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IChyZXN1bHQgKiAzMSkgKyB4b3JfMDsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIHJldHVybiByZXN1bHQ7DQogICAgICAgIH0NCiAgICB9DQp9" + ], + "partialFingerprints": { + "UniqueId": "0" }, - "hashes": [ - { - "value": "AE5B60EE365D0308BC8B85BE7F43B7D0", - "algorithm": "md5" - }, - { - "value": "82D29A0CFE2163E3991F01E58077E9F7916B04D8", - "algorithm": "sha-1" - }, - { - "value": "C0632D351F1EE06BF779D607777C5ADD5FDB2DDE565F7D0C424ABC5EA7E82E2B", - "algorithm": "sha-256" - } - ] + "properties": { + "Category": "Microsoft.Design", + "FixCategory": "DependsOnFix" + } }, - "file:///E:/src/sarif-sdk-test/src/Sarif/VersionOne/Autogenerated/AnnotationVersionOne.cs": { - "mimeType": "text/x-csharp", - "contents": { - "binary": "Ly8gQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQuICBBbGwgUmlnaHRzIFJlc2VydmVkLg0KLy8gTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlLiBTZWUgTElDRU5TRSBmaWxlIGluIHRoZSBwcm9qZWN0IHJvb3QgZm9yIGZ1bGwgbGljZW5zZSBpbmZvcm1hdGlvbi4NCg0KdXNpbmcgU3lzdGVtOw0KdXNpbmcgU3lzdGVtLkNvZGVEb20uQ29tcGlsZXI7DQp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsNCnVzaW5nIFN5c3RlbS5SdW50aW1lLlNlcmlhbGl6YXRpb247DQoNCm5hbWVzcGFjZSBNaWNyb3NvZnQuQ29kZUFuYWx5c2lzLlNhcmlmLlZlcnNpb25PbmUNCnsNCiAgICBbRGF0YUNvbnRyYWN0XQ0KICAgIFtHZW5lcmF0ZWRDb2RlKCJNaWNyb3NvZnQuSnNvbi5TY2hlbWEuVG9Eb3ROZXQiLCAiMC41Mi4wLjAiKV0NCiAgICBwdWJsaWMgcGFydGlhbCBjbGFzcyBBbm5vdGF0aW9uVmVyc2lvbk9uZSA6IElTYXJpZk5vZGVWZXJzaW9uT25lDQogICAgew0KICAgICAgICBwdWJsaWMgc3RhdGljIElFcXVhbGl0eUNvbXBhcmVyPEFubm90YXRpb25WZXJzaW9uT25lPiBWYWx1ZUNvbXBhcmVyID0+IEFubm90YXRpb25WZXJzaW9uT25lRXF1YWxpdHlDb21wYXJlci5JbnN0YW5jZTsNCg0KICAgICAgICBwdWJsaWMgYm9vbCBWYWx1ZUVxdWFscyhBbm5vdGF0aW9uVmVyc2lvbk9uZSBvdGhlcikgPT4gVmFsdWVDb21wYXJlci5FcXVhbHModGhpcywgb3RoZXIpOw0KICAgICAgICBwdWJsaWMgaW50IFZhbHVlR2V0SGFzaENvZGUoKSA9PiBWYWx1ZUNvbXBhcmVyLkdldEhhc2hDb2RlKHRoaXMpOw0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIEdldHMgYSB2YWx1ZSBpbmRpY2F0aW5nIHRoZSB0eXBlIG9mIG9iamVjdCBpbXBsZW1lbnRpbmcgPHNlZSBjcmVmPSJJU2FyaWZOb2RlVmVyc2lvbk9uZSIgLz4uDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIHB1YmxpYyBTYXJpZk5vZGVLaW5kVmVyc2lvbk9uZSBTYXJpZk5vZGVLaW5kVmVyc2lvbk9uZQ0KICAgICAgICB7DQogICAgICAgICAgICBnZXQNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gU2FyaWZOb2RlS2luZFZlcnNpb25PbmUuQW5ub3RhdGlvblZlcnNpb25PbmU7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBBIG1lc3NhZ2UgcmVsZXZhbnQgdG8gYSBjb2RlIGxvY2F0aW9uDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIFtEYXRhTWVtYmVyKE5hbWUgPSAibWVzc2FnZSIsIElzUmVxdWlyZWQgPSB0cnVlKV0NCiAgICAgICAgcHVibGljIHN0cmluZyBNZXNzYWdlIHsgZ2V0OyBzZXQ7IH0NCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBBbiBhcnJheSBvZiAncGh5c2ljYWxMb2NhdGlvbicgb2JqZWN0cyBhc3NvY2lhdGVkIHdpdGggdGhlIGFubm90YXRpb24uDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIFtEYXRhTWVtYmVyKE5hbWUgPSAibG9jYXRpb25zIiwgSXNSZXF1aXJlZCA9IHRydWUpXQ0KICAgICAgICBwdWJsaWMgSUxpc3Q8UGh5c2ljYWxMb2NhdGlvblZlcnNpb25PbmU+IExvY2F0aW9ucyB7IGdldDsgc2V0OyB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gSW5pdGlhbGl6ZXMgYSBuZXcgaW5zdGFuY2Ugb2YgdGhlIDxzZWUgY3JlZj0iQW5ub3RhdGlvblZlcnNpb25PbmUiIC8+IGNsYXNzLg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICBwdWJsaWMgQW5ub3RhdGlvblZlcnNpb25PbmUoKQ0KICAgICAgICB7DQogICAgICAgIH0NCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBJbml0aWFsaXplcyBhIG5ldyBpbnN0YW5jZSBvZiB0aGUgPHNlZSBjcmVmPSJBbm5vdGF0aW9uVmVyc2lvbk9uZSIgLz4gY2xhc3MgZnJvbSB0aGUgc3VwcGxpZWQgdmFsdWVzLg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICAvLy8gPHBhcmFtIG5hbWU9Im1lc3NhZ2UiPg0KICAgICAgICAvLy8gQW4gaW5pdGlhbGl6YXRpb24gdmFsdWUgZm9yIHRoZSA8c2VlIGNyZWY9IlA6IE1lc3NhZ2UiIC8+IHByb3BlcnR5Lg0KICAgICAgICAvLy8gPC9wYXJhbT4NCiAgICAgICAgLy8vIDxwYXJhbSBuYW1lPSJsb2NhdGlvbnMiPg0KICAgICAgICAvLy8gQW4gaW5pdGlhbGl6YXRpb24gdmFsdWUgZm9yIHRoZSA8c2VlIGNyZWY9IlA6IExvY2F0aW9ucyIgLz4gcHJvcGVydHkuDQogICAgICAgIC8vLyA8L3BhcmFtPg0KICAgICAgICBwdWJsaWMgQW5ub3RhdGlvblZlcnNpb25PbmUoc3RyaW5nIG1lc3NhZ2UsIElFbnVtZXJhYmxlPFBoeXNpY2FsTG9jYXRpb25WZXJzaW9uT25lPiBsb2NhdGlvbnMpDQogICAgICAgIHsNCiAgICAgICAgICAgIEluaXQobWVzc2FnZSwgbG9jYXRpb25zKTsNCiAgICAgICAgfQ0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIEluaXRpYWxpemVzIGEgbmV3IGluc3RhbmNlIG9mIHRoZSA8c2VlIGNyZWY9IkFubm90YXRpb25WZXJzaW9uT25lIiAvPiBjbGFzcyBmcm9tIHRoZSBzcGVjaWZpZWQgaW5zdGFuY2UuDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIC8vLyA8cGFyYW0gbmFtZT0ib3RoZXIiPg0KICAgICAgICAvLy8gVGhlIGluc3RhbmNlIGZyb20gd2hpY2ggdGhlIG5ldyBpbnN0YW5jZSBpcyB0byBiZSBpbml0aWFsaXplZC4NCiAgICAgICAgLy8vIDwvcGFyYW0+DQogICAgICAgIC8vLyA8ZXhjZXB0aW9uIGNyZWY9IkFyZ3VtZW50TnVsbEV4Y2VwdGlvbiI+DQogICAgICAgIC8vLyBUaHJvd24gaWYgPHBhcmFtcmVmIG5hbWU9Im90aGVyIiAvPiBpcyBudWxsLg0KICAgICAgICAvLy8gPC9leGNlcHRpb24+DQogICAgICAgIHB1YmxpYyBBbm5vdGF0aW9uVmVyc2lvbk9uZShBbm5vdGF0aW9uVmVyc2lvbk9uZSBvdGhlcikNCiAgICAgICAgew0KICAgICAgICAgICAgaWYgKG90aGVyID09IG51bGwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgdGhyb3cgbmV3IEFyZ3VtZW50TnVsbEV4Y2VwdGlvbihuYW1lb2Yob3RoZXIpKTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgSW5pdChvdGhlci5NZXNzYWdlLCBvdGhlci5Mb2NhdGlvbnMpOw0KICAgICAgICB9DQoNCiAgICAgICAgSVNhcmlmTm9kZVZlcnNpb25PbmUgSVNhcmlmTm9kZVZlcnNpb25PbmUuRGVlcENsb25lKCkNCiAgICAgICAgew0KICAgICAgICAgICAgcmV0dXJuIERlZXBDbG9uZUNvcmUoKTsNCiAgICAgICAgfQ0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIENyZWF0ZXMgYSBkZWVwIGNvcHkgb2YgdGhpcyBpbnN0YW5jZS4NCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgcHVibGljIEFubm90YXRpb25WZXJzaW9uT25lIERlZXBDbG9uZSgpDQogICAgICAgIHsNCiAgICAgICAgICAgIHJldHVybiAoQW5ub3RhdGlvblZlcnNpb25PbmUpRGVlcENsb25lQ29yZSgpOw0KICAgICAgICB9DQoNCiAgICAgICAgcHJpdmF0ZSBJU2FyaWZOb2RlVmVyc2lvbk9uZSBEZWVwQ2xvbmVDb3JlKCkNCiAgICAgICAgew0KICAgICAgICAgICAgcmV0dXJuIG5ldyBBbm5vdGF0aW9uVmVyc2lvbk9uZSh0aGlzKTsNCiAgICAgICAgfQ0KDQogICAgICAgIHByaXZhdGUgdm9pZCBJbml0KHN0cmluZyBtZXNzYWdlLCBJRW51bWVyYWJsZTxQaHlzaWNhbExvY2F0aW9uVmVyc2lvbk9uZT4gbG9jYXRpb25zKQ0KICAgICAgICB7DQogICAgICAgICAgICBNZXNzYWdlID0gbWVzc2FnZTsNCiAgICAgICAgICAgIGlmIChsb2NhdGlvbnMgIT0gbnVsbCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICB2YXIgZGVzdGluYXRpb25fMCA9IG5ldyBMaXN0PFBoeXNpY2FsTG9jYXRpb25WZXJzaW9uT25lPigpOw0KICAgICAgICAgICAgICAgIGZvcmVhY2ggKHZhciB2YWx1ZV8wIGluIGxvY2F0aW9ucykNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZV8wID09IG51bGwpDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGRlc3RpbmF0aW9uXzAuQWRkKG51bGwpOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGVsc2UNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgZGVzdGluYXRpb25fMC5BZGQobmV3IFBoeXNpY2FsTG9jYXRpb25WZXJzaW9uT25lKHZhbHVlXzApKTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgIExvY2F0aW9ucyA9IGRlc3RpbmF0aW9uXzA7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCiAgICB9DQp9" + { + "ruleId": "CA1725", + "level": "error", + "message": { + "text": "In member 'UriOrFragment.Equals(object)', change parameter name 'comparand' to 'obj' in order to match the identifier as it has been declared in 'object.Equals(object)'." }, - "hashes": [ - { - "value": "3B921EA5460C905BBD6CC70608483C45", - "algorithm": "md5" - }, - { - "value": "B70A6314DFFA832AA92640AA1DFA74B2B8FF4230", - "algorithm": "sha-1" - }, + "locations": [ { - "value": "93CA0DE38B67417715EFE654105704884A57A71D911B6CDE2FFFBD83411E2141", - "algorithm": "sha-256" + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Microsoft.Json.Schema.dll", + "uriBaseId": "$(ProjectDir)", + "index": 1 + } + }, + "logicalLocations": [ + { + "index": 96, + "fullyQualifiedName": "microsoft.json.schema.dll!Microsoft.Json.Schema.UriOrFragment.Equals(System.Object)" + } + ] } - ] - }, - "file:///E:/src/sarif-sdk-test/src/Sarif/VersionOne/Autogenerated/CodeFlowVersionOne.cs": { - "mimeType": "text/x-csharp", - "contents": { - "binary": "Ly8gQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQuICBBbGwgUmlnaHRzIFJlc2VydmVkLg0KLy8gTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlLiBTZWUgTElDRU5TRSBmaWxlIGluIHRoZSBwcm9qZWN0IHJvb3QgZm9yIGZ1bGwgbGljZW5zZSBpbmZvcm1hdGlvbi4NCg0KdXNpbmcgU3lzdGVtOw0KdXNpbmcgU3lzdGVtLkNvZGVEb20uQ29tcGlsZXI7DQp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsNCnVzaW5nIFN5c3RlbS5SdW50aW1lLlNlcmlhbGl6YXRpb247DQp1c2luZyBNaWNyb3NvZnQuQ29kZUFuYWx5c2lzLlNhcmlmLlJlYWRlcnM7DQoNCm5hbWVzcGFjZSBNaWNyb3NvZnQuQ29kZUFuYWx5c2lzLlNhcmlmLlZlcnNpb25PbmUNCnsNCiAgICBbRGF0YUNvbnRyYWN0XQ0KICAgIFtHZW5lcmF0ZWRDb2RlKCJNaWNyb3NvZnQuSnNvbi5TY2hlbWEuVG9Eb3ROZXQiLCAiMC41Mi4wLjAiKV0NCiAgICBwdWJsaWMgcGFydGlhbCBjbGFzcyBDb2RlRmxvd1ZlcnNpb25PbmUgOiBQcm9wZXJ0eUJhZ0hvbGRlciwgSVNhcmlmTm9kZVZlcnNpb25PbmUNCiAgICB7DQogICAgICAgIHB1YmxpYyBzdGF0aWMgSUVxdWFsaXR5Q29tcGFyZXI8Q29kZUZsb3dWZXJzaW9uT25lPiBWYWx1ZUNvbXBhcmVyID0+IENvZGVGbG93VmVyc2lvbk9uZUVxdWFsaXR5Q29tcGFyZXIuSW5zdGFuY2U7DQoNCiAgICAgICAgcHVibGljIGJvb2wgVmFsdWVFcXVhbHMoQ29kZUZsb3dWZXJzaW9uT25lIG90aGVyKSA9PiBWYWx1ZUNvbXBhcmVyLkVxdWFscyh0aGlzLCBvdGhlcik7DQogICAgICAgIHB1YmxpYyBpbnQgVmFsdWVHZXRIYXNoQ29kZSgpID0+IFZhbHVlQ29tcGFyZXIuR2V0SGFzaENvZGUodGhpcyk7DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gR2V0cyBhIHZhbHVlIGluZGljYXRpbmcgdGhlIHR5cGUgb2Ygb2JqZWN0IGltcGxlbWVudGluZyA8c2VlIGNyZWY9IklTYXJpZk5vZGVWZXJzaW9uT25lIiAvPi4NCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgcHVibGljIFNhcmlmTm9kZUtpbmRWZXJzaW9uT25lIFNhcmlmTm9kZUtpbmRWZXJzaW9uT25lDQogICAgICAgIHsNCiAgICAgICAgICAgIGdldA0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHJldHVybiBTYXJpZk5vZGVLaW5kVmVyc2lvbk9uZS5Db2RlRmxvd1ZlcnNpb25PbmU7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBBIG1lc3NhZ2UgcmVsZXZhbnQgdG8gdGhlIGNvZGUgZmxvdw0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICBbRGF0YU1lbWJlcihOYW1lID0gIm1lc3NhZ2UiLCBJc1JlcXVpcmVkID0gZmFsc2UsIEVtaXREZWZhdWx0VmFsdWUgPSBmYWxzZSldDQogICAgICAgIHB1YmxpYyBzdHJpbmcgTWVzc2FnZSB7IGdldDsgc2V0OyB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gQW4gYXJyYXkgb2YgJ2Fubm90YXRlZENvZGVMb2NhdGlvbicgb2JqZWN0cywgZWFjaCBvZiB3aGljaCBkZXNjcmliZXMgYSBzaW5nbGUgbG9jYXRpb24gdmlzaXRlZCBieSB0aGUgdG9vbCBpbiB0aGUgY291cnNlIG9mIHByb2R1Y2luZyB0aGUgcmVzdWx0Lg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICBbRGF0YU1lbWJlcihOYW1lID0gImxvY2F0aW9ucyIsIElzUmVxdWlyZWQgPSB0cnVlKV0NCiAgICAgICAgcHVibGljIElMaXN0PEFubm90YXRlZENvZGVMb2NhdGlvblZlcnNpb25PbmU+IExvY2F0aW9ucyB7IGdldDsgc2V0OyB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gS2V5L3ZhbHVlIHBhaXJzIHRoYXQgcHJvdmlkZSBhZGRpdGlvbmFsIGluZm9ybWF0aW9uIGFib3V0IHRoZSBjb2RlIGZsb3cuDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIFtEYXRhTWVtYmVyKE5hbWUgPSAicHJvcGVydGllcyIsIElzUmVxdWlyZWQgPSBmYWxzZSwgRW1pdERlZmF1bHRWYWx1ZSA9IGZhbHNlKV0NCiAgICAgICAgaW50ZXJuYWwgb3ZlcnJpZGUgSURpY3Rpb25hcnk8c3RyaW5nLCBTZXJpYWxpemVkUHJvcGVydHlJbmZvPiBQcm9wZXJ0aWVzIHsgZ2V0OyBzZXQ7IH0NCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBJbml0aWFsaXplcyBhIG5ldyBpbnN0YW5jZSBvZiB0aGUgPHNlZSBjcmVmPSJDb2RlRmxvd1ZlcnNpb25PbmUiIC8+IGNsYXNzLg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICBwdWJsaWMgQ29kZUZsb3dWZXJzaW9uT25lKCkNCiAgICAgICAgew0KICAgICAgICB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gSW5pdGlhbGl6ZXMgYSBuZXcgaW5zdGFuY2Ugb2YgdGhlIDxzZWUgY3JlZj0iQ29kZUZsb3dWZXJzaW9uT25lIiAvPiBjbGFzcyBmcm9tIHRoZSBzdXBwbGllZCB2YWx1ZXMuDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIC8vLyA8cGFyYW0gbmFtZT0ibWVzc2FnZSI+DQogICAgICAgIC8vLyBBbiBpbml0aWFsaXphdGlvbiB2YWx1ZSBmb3IgdGhlIDxzZWUgY3JlZj0iUDogTWVzc2FnZSIgLz4gcHJvcGVydHkuDQogICAgICAgIC8vLyA8L3BhcmFtPg0KICAgICAgICAvLy8gPHBhcmFtIG5hbWU9ImxvY2F0aW9ucyI+DQogICAgICAgIC8vLyBBbiBpbml0aWFsaXphdGlvbiB2YWx1ZSBmb3IgdGhlIDxzZWUgY3JlZj0iUDogTG9jYXRpb25zIiAvPiBwcm9wZXJ0eS4NCiAgICAgICAgLy8vIDwvcGFyYW0+DQogICAgICAgIC8vLyA8cGFyYW0gbmFtZT0icHJvcGVydGllcyI+DQogICAgICAgIC8vLyBBbiBpbml0aWFsaXphdGlvbiB2YWx1ZSBmb3IgdGhlIDxzZWUgY3JlZj0iUDogUHJvcGVydGllcyIgLz4gcHJvcGVydHkuDQogICAgICAgIC8vLyA8L3BhcmFtPg0KICAgICAgICBwdWJsaWMgQ29kZUZsb3dWZXJzaW9uT25lKHN0cmluZyBtZXNzYWdlLCBJRW51bWVyYWJsZTxBbm5vdGF0ZWRDb2RlTG9jYXRpb25WZXJzaW9uT25lPiBsb2NhdGlvbnMsIElEaWN0aW9uYXJ5PHN0cmluZywgU2VyaWFsaXplZFByb3BlcnR5SW5mbz4gcHJvcGVydGllcykNCiAgICAgICAgew0KICAgICAgICAgICAgSW5pdChtZXNzYWdlLCBsb2NhdGlvbnMsIHByb3BlcnRpZXMpOw0KICAgICAgICB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gSW5pdGlhbGl6ZXMgYSBuZXcgaW5zdGFuY2Ugb2YgdGhlIDxzZWUgY3JlZj0iQ29kZUZsb3dWZXJzaW9uT25lIiAvPiBjbGFzcyBmcm9tIHRoZSBzcGVjaWZpZWQgaW5zdGFuY2UuDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIC8vLyA8cGFyYW0gbmFtZT0ib3RoZXIiPg0KICAgICAgICAvLy8gVGhlIGluc3RhbmNlIGZyb20gd2hpY2ggdGhlIG5ldyBpbnN0YW5jZSBpcyB0byBiZSBpbml0aWFsaXplZC4NCiAgICAgICAgLy8vIDwvcGFyYW0+DQogICAgICAgIC8vLyA8ZXhjZXB0aW9uIGNyZWY9IkFyZ3VtZW50TnVsbEV4Y2VwdGlvbiI+DQogICAgICAgIC8vLyBUaHJvd24gaWYgPHBhcmFtcmVmIG5hbWU9Im90aGVyIiAvPiBpcyBudWxsLg0KICAgICAgICAvLy8gPC9leGNlcHRpb24+DQogICAgICAgIHB1YmxpYyBDb2RlRmxvd1ZlcnNpb25PbmUoQ29kZUZsb3dWZXJzaW9uT25lIG90aGVyKQ0KICAgICAgICB7DQogICAgICAgICAgICBpZiAob3RoZXIgPT0gbnVsbCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgQXJndW1lbnROdWxsRXhjZXB0aW9uKG5hbWVvZihvdGhlcikpOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBJbml0KG90aGVyLk1lc3NhZ2UsIG90aGVyLkxvY2F0aW9ucywgb3RoZXIuUHJvcGVydGllcyk7DQogICAgICAgIH0NCg0KICAgICAgICBJU2FyaWZOb2RlVmVyc2lvbk9uZSBJU2FyaWZOb2RlVmVyc2lvbk9uZS5EZWVwQ2xvbmUoKQ0KICAgICAgICB7DQogICAgICAgICAgICByZXR1cm4gRGVlcENsb25lQ29yZSgpOw0KICAgICAgICB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gQ3JlYXRlcyBhIGRlZXAgY29weSBvZiB0aGlzIGluc3RhbmNlLg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICBwdWJsaWMgQ29kZUZsb3dWZXJzaW9uT25lIERlZXBDbG9uZSgpDQogICAgICAgIHsNCiAgICAgICAgICAgIHJldHVybiAoQ29kZUZsb3dWZXJzaW9uT25lKURlZXBDbG9uZUNvcmUoKTsNCiAgICAgICAgfQ0KDQogICAgICAgIHByaXZhdGUgSVNhcmlmTm9kZVZlcnNpb25PbmUgRGVlcENsb25lQ29yZSgpDQogICAgICAgIHsNCiAgICAgICAgICAgIHJldHVybiBuZXcgQ29kZUZsb3dWZXJzaW9uT25lKHRoaXMpOw0KICAgICAgICB9DQoNCiAgICAgICAgcHJpdmF0ZSB2b2lkIEluaXQoc3RyaW5nIG1lc3NhZ2UsIElFbnVtZXJhYmxlPEFubm90YXRlZENvZGVMb2NhdGlvblZlcnNpb25PbmU+IGxvY2F0aW9ucywgSURpY3Rpb25hcnk8c3RyaW5nLCBTZXJpYWxpemVkUHJvcGVydHlJbmZvPiBwcm9wZXJ0aWVzKQ0KICAgICAgICB7DQogICAgICAgICAgICBNZXNzYWdlID0gbWVzc2FnZTsNCiAgICAgICAgICAgIGlmIChsb2NhdGlvbnMgIT0gbnVsbCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICB2YXIgZGVzdGluYXRpb25fMCA9IG5ldyBMaXN0PEFubm90YXRlZENvZGVMb2NhdGlvblZlcnNpb25PbmU+KCk7DQogICAgICAgICAgICAgICAgZm9yZWFjaCAodmFyIHZhbHVlXzAgaW4gbG9jYXRpb25zKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlXzAgPT0gbnVsbCkNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgZGVzdGluYXRpb25fMC5BZGQobnVsbCk7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgZWxzZQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICBkZXN0aW5hdGlvbl8wLkFkZChuZXcgQW5ub3RhdGVkQ29kZUxvY2F0aW9uVmVyc2lvbk9uZSh2YWx1ZV8wKSk7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICBMb2NhdGlvbnMgPSBkZXN0aW5hdGlvbl8wOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBpZiAocHJvcGVydGllcyAhPSBudWxsKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIFByb3BlcnRpZXMgPSBuZXcgRGljdGlvbmFyeTxzdHJpbmcsIFNlcmlhbGl6ZWRQcm9wZXJ0eUluZm8+KHByb3BlcnRpZXMpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgfQ0KfQ==" + ], + "partialFingerprints": { + "UniqueId": "0#" }, - "hashes": [ - { - "value": "487CB5BB0C4794C65D80817C2F859A27", - "algorithm": "md5" - }, - { - "value": "2E866A8B2A9943D8A200963594349F333BA80C45", - "algorithm": "sha-1" - }, - { - "value": "3690F9603B9AA0881C73D5E4DD0A110DAC112936F0710E637C4D3652D6FC0FE0", - "algorithm": "sha-256" - } - ] + "properties": { + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" + } }, - "file:///E:/src/sarif-sdk-test/src/Sarif/VersionOne/Autogenerated/ExceptionDataVersionOne.cs": { - "mimeType": "text/x-csharp", - "contents": { - "binary": "Ly8gQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQuICBBbGwgUmlnaHRzIFJlc2VydmVkLg0KLy8gTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlLiBTZWUgTElDRU5TRSBmaWxlIGluIHRoZSBwcm9qZWN0IHJvb3QgZm9yIGZ1bGwgbGljZW5zZSBpbmZvcm1hdGlvbi4NCg0KdXNpbmcgU3lzdGVtOw0KdXNpbmcgU3lzdGVtLkNvZGVEb20uQ29tcGlsZXI7DQp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsNCnVzaW5nIFN5c3RlbS5SdW50aW1lLlNlcmlhbGl6YXRpb247DQoNCm5hbWVzcGFjZSBNaWNyb3NvZnQuQ29kZUFuYWx5c2lzLlNhcmlmLlZlcnNpb25PbmUNCnsNCiAgICBbRGF0YUNvbnRyYWN0XQ0KICAgIFtHZW5lcmF0ZWRDb2RlKCJNaWNyb3NvZnQuSnNvbi5TY2hlbWEuVG9Eb3ROZXQiLCAiMC41Mi4wLjAiKV0NCiAgICBwdWJsaWMgcGFydGlhbCBjbGFzcyBFeGNlcHRpb25EYXRhVmVyc2lvbk9uZSA6IElTYXJpZk5vZGVWZXJzaW9uT25lDQogICAgew0KICAgICAgICBwdWJsaWMgc3RhdGljIElFcXVhbGl0eUNvbXBhcmVyPEV4Y2VwdGlvbkRhdGFWZXJzaW9uT25lPiBWYWx1ZUNvbXBhcmVyID0+IEV4Y2VwdGlvbkRhdGFWZXJzaW9uT25lRXF1YWxpdHlDb21wYXJlci5JbnN0YW5jZTsNCg0KICAgICAgICBwdWJsaWMgYm9vbCBWYWx1ZUVxdWFscyhFeGNlcHRpb25EYXRhVmVyc2lvbk9uZSBvdGhlcikgPT4gVmFsdWVDb21wYXJlci5FcXVhbHModGhpcywgb3RoZXIpOw0KICAgICAgICBwdWJsaWMgaW50IFZhbHVlR2V0SGFzaENvZGUoKSA9PiBWYWx1ZUNvbXBhcmVyLkdldEhhc2hDb2RlKHRoaXMpOw0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIEdldHMgYSB2YWx1ZSBpbmRpY2F0aW5nIHRoZSB0eXBlIG9mIG9iamVjdCBpbXBsZW1lbnRpbmcgPHNlZSBjcmVmPSJJU2FyaWZOb2RlVmVyc2lvbk9uZSIgLz4uDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIHB1YmxpYyBTYXJpZk5vZGVLaW5kVmVyc2lvbk9uZSBTYXJpZk5vZGVLaW5kVmVyc2lvbk9uZQ0KICAgICAgICB7DQogICAgICAgICAgICBnZXQNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gU2FyaWZOb2RlS2luZFZlcnNpb25PbmUuRXhjZXB0aW9uRGF0YVZlcnNpb25PbmU7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBBIHN0cmluZyB0aGF0IGlkZW50aWZpZXMgdGhlIGtpbmQgb2YgZXhjZXB0aW9uLCBmb3IgZXhhbXBsZSwgdGhlIGZ1bGx5IHF1YWxpZmllZCB0eXBlIG5hbWUgb2YgYW4gb2JqZWN0IHRoYXQgd2FzIHRocm93biwgb3IgdGhlIHN5bWJvbGljIG5hbWUgb2YgYSBzaWduYWwuDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIFtEYXRhTWVtYmVyKE5hbWUgPSAia2luZCIsIElzUmVxdWlyZWQgPSBmYWxzZSwgRW1pdERlZmF1bHRWYWx1ZSA9IGZhbHNlKV0NCiAgICAgICAgcHVibGljIHN0cmluZyBLaW5kIHsgZ2V0OyBzZXQ7IH0NCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBBIHN0cmluZyB0aGF0IGRlc2NyaWJlcyB0aGUgZXhjZXB0aW9uLg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICBbRGF0YU1lbWJlcihOYW1lID0gIm1lc3NhZ2UiLCBJc1JlcXVpcmVkID0gZmFsc2UsIEVtaXREZWZhdWx0VmFsdWUgPSBmYWxzZSldDQogICAgICAgIHB1YmxpYyBzdHJpbmcgTWVzc2FnZSB7IGdldDsgc2V0OyB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gVGhlIHNlcXVlbmNlIG9mIGZ1bmN0aW9uIGNhbGxzIGxlYWRpbmcgdG8gdGhlIGV4Y2VwdGlvbi4NCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgW0RhdGFNZW1iZXIoTmFtZSA9ICJzdGFjayIsIElzUmVxdWlyZWQgPSBmYWxzZSwgRW1pdERlZmF1bHRWYWx1ZSA9IGZhbHNlKV0NCiAgICAgICAgcHVibGljIFN0YWNrVmVyc2lvbk9uZSBTdGFjayB7IGdldDsgc2V0OyB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gQW4gYXJyYXkgb2YgZXhjZXB0aW9uIG9iamVjdHMgZWFjaCBvZiB3aGljaCBpcyBjb25zaWRlcmVkIGEgY2F1c2Ugb2YgdGhpcyBleGNlcHRpb24uDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIFtEYXRhTWVtYmVyKE5hbWUgPSAiaW5uZXJFeGNlcHRpb25zIiwgSXNSZXF1aXJlZCA9IGZhbHNlLCBFbWl0RGVmYXVsdFZhbHVlID0gZmFsc2UpXQ0KICAgICAgICBwdWJsaWMgSUxpc3Q8RXhjZXB0aW9uRGF0YVZlcnNpb25PbmU+IElubmVyRXhjZXB0aW9ucyB7IGdldDsgc2V0OyB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gSW5pdGlhbGl6ZXMgYSBuZXcgaW5zdGFuY2Ugb2YgdGhlIDxzZWUgY3JlZj0iRXhjZXB0aW9uRGF0YVZlcnNpb25PbmUiIC8+IGNsYXNzLg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICBwdWJsaWMgRXhjZXB0aW9uRGF0YVZlcnNpb25PbmUoKQ0KICAgICAgICB7DQogICAgICAgIH0NCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBJbml0aWFsaXplcyBhIG5ldyBpbnN0YW5jZSBvZiB0aGUgPHNlZSBjcmVmPSJFeGNlcHRpb25EYXRhVmVyc2lvbk9uZSIgLz4gY2xhc3MgZnJvbSB0aGUgc3VwcGxpZWQgdmFsdWVzLg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICAvLy8gPHBhcmFtIG5hbWU9ImtpbmQiPg0KICAgICAgICAvLy8gQW4gaW5pdGlhbGl6YXRpb24gdmFsdWUgZm9yIHRoZSA8c2VlIGNyZWY9IlA6IEtpbmQiIC8+IHByb3BlcnR5Lg0KICAgICAgICAvLy8gPC9wYXJhbT4NCiAgICAgICAgLy8vIDxwYXJhbSBuYW1lPSJtZXNzYWdlIj4NCiAgICAgICAgLy8vIEFuIGluaXRpYWxpemF0aW9uIHZhbHVlIGZvciB0aGUgPHNlZSBjcmVmPSJQOiBNZXNzYWdlIiAvPiBwcm9wZXJ0eS4NCiAgICAgICAgLy8vIDwvcGFyYW0+DQogICAgICAgIC8vLyA8cGFyYW0gbmFtZT0ic3RhY2siPg0KICAgICAgICAvLy8gQW4gaW5pdGlhbGl6YXRpb24gdmFsdWUgZm9yIHRoZSA8c2VlIGNyZWY9IlA6IFN0YWNrIiAvPiBwcm9wZXJ0eS4NCiAgICAgICAgLy8vIDwvcGFyYW0+DQogICAgICAgIC8vLyA8cGFyYW0gbmFtZT0iaW5uZXJFeGNlcHRpb25zIj4NCiAgICAgICAgLy8vIEFuIGluaXRpYWxpemF0aW9uIHZhbHVlIGZvciB0aGUgPHNlZSBjcmVmPSJQOiBJbm5lckV4Y2VwdGlvbnMiIC8+IHByb3BlcnR5Lg0KICAgICAgICAvLy8gPC9wYXJhbT4NCiAgICAgICAgcHVibGljIEV4Y2VwdGlvbkRhdGFWZXJzaW9uT25lKHN0cmluZyBraW5kLCBzdHJpbmcgbWVzc2FnZSwgU3RhY2tWZXJzaW9uT25lIHN0YWNrLCBJRW51bWVyYWJsZTxFeGNlcHRpb25EYXRhVmVyc2lvbk9uZT4gaW5uZXJFeGNlcHRpb25zKQ0KICAgICAgICB7DQogICAgICAgICAgICBJbml0KGtpbmQsIG1lc3NhZ2UsIHN0YWNrLCBpbm5lckV4Y2VwdGlvbnMpOw0KICAgICAgICB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gSW5pdGlhbGl6ZXMgYSBuZXcgaW5zdGFuY2Ugb2YgdGhlIDxzZWUgY3JlZj0iRXhjZXB0aW9uRGF0YVZlcnNpb25PbmUiIC8+IGNsYXNzIGZyb20gdGhlIHNwZWNpZmllZCBpbnN0YW5jZS4NCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgLy8vIDxwYXJhbSBuYW1lPSJvdGhlciI+DQogICAgICAgIC8vLyBUaGUgaW5zdGFuY2UgZnJvbSB3aGljaCB0aGUgbmV3IGluc3RhbmNlIGlzIHRvIGJlIGluaXRpYWxpemVkLg0KICAgICAgICAvLy8gPC9wYXJhbT4NCiAgICAgICAgLy8vIDxleGNlcHRpb24gY3JlZj0iQXJndW1lbnROdWxsRXhjZXB0aW9uIj4NCiAgICAgICAgLy8vIFRocm93biBpZiA8cGFyYW1yZWYgbmFtZT0ib3RoZXIiIC8+IGlzIG51bGwuDQogICAgICAgIC8vLyA8L2V4Y2VwdGlvbj4NCiAgICAgICAgcHVibGljIEV4Y2VwdGlvbkRhdGFWZXJzaW9uT25lKEV4Y2VwdGlvbkRhdGFWZXJzaW9uT25lIG90aGVyKQ0KICAgICAgICB7DQogICAgICAgICAgICBpZiAob3RoZXIgPT0gbnVsbCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgQXJndW1lbnROdWxsRXhjZXB0aW9uKG5hbWVvZihvdGhlcikpOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBJbml0KG90aGVyLktpbmQsIG90aGVyLk1lc3NhZ2UsIG90aGVyLlN0YWNrLCBvdGhlci5Jbm5lckV4Y2VwdGlvbnMpOw0KICAgICAgICB9DQoNCiAgICAgICAgSVNhcmlmTm9kZVZlcnNpb25PbmUgSVNhcmlmTm9kZVZlcnNpb25PbmUuRGVlcENsb25lKCkNCiAgICAgICAgew0KICAgICAgICAgICAgcmV0dXJuIERlZXBDbG9uZUNvcmUoKTsNCiAgICAgICAgfQ0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIENyZWF0ZXMgYSBkZWVwIGNvcHkgb2YgdGhpcyBpbnN0YW5jZS4NCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgcHVibGljIEV4Y2VwdGlvbkRhdGFWZXJzaW9uT25lIERlZXBDbG9uZSgpDQogICAgICAgIHsNCiAgICAgICAgICAgIHJldHVybiAoRXhjZXB0aW9uRGF0YVZlcnNpb25PbmUpRGVlcENsb25lQ29yZSgpOw0KICAgICAgICB9DQoNCiAgICAgICAgcHJpdmF0ZSBJU2FyaWZOb2RlVmVyc2lvbk9uZSBEZWVwQ2xvbmVDb3JlKCkNCiAgICAgICAgew0KICAgICAgICAgICAgcmV0dXJuIG5ldyBFeGNlcHRpb25EYXRhVmVyc2lvbk9uZSh0aGlzKTsNCiAgICAgICAgfQ0KDQogICAgICAgIHByaXZhdGUgdm9pZCBJbml0KHN0cmluZyBraW5kLCBzdHJpbmcgbWVzc2FnZSwgU3RhY2tWZXJzaW9uT25lIHN0YWNrLCBJRW51bWVyYWJsZTxFeGNlcHRpb25EYXRhVmVyc2lvbk9uZT4gaW5uZXJFeGNlcHRpb25zKQ0KICAgICAgICB7DQogICAgICAgICAgICBLaW5kID0ga2luZDsNCiAgICAgICAgICAgIE1lc3NhZ2UgPSBtZXNzYWdlOw0KICAgICAgICAgICAgaWYgKHN0YWNrICE9IG51bGwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgU3RhY2sgPSBuZXcgU3RhY2tWZXJzaW9uT25lKHN0YWNrKTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgaWYgKGlubmVyRXhjZXB0aW9ucyAhPSBudWxsKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHZhciBkZXN0aW5hdGlvbl8wID0gbmV3IExpc3Q8RXhjZXB0aW9uRGF0YVZlcnNpb25PbmU+KCk7DQogICAgICAgICAgICAgICAgZm9yZWFjaCAodmFyIHZhbHVlXzAgaW4gaW5uZXJFeGNlcHRpb25zKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlXzAgPT0gbnVsbCkNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgZGVzdGluYXRpb25fMC5BZGQobnVsbCk7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgZWxzZQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICBkZXN0aW5hdGlvbl8wLkFkZChuZXcgRXhjZXB0aW9uRGF0YVZlcnNpb25PbmUodmFsdWVfMCkpOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgSW5uZXJFeGNlcHRpb25zID0gZGVzdGluYXRpb25fMDsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgIH0NCn0=" + { + "ruleId": "CA1062", + "message": { + "text": "In externally visible method 'UriOrFragmentConverter.ReadJson(JsonReader, Type, object, JsonSerializer)', validate parameter 'reader' before using it." }, - "hashes": [ - { - "value": "F620EC5E2D59B2328DA32E7C9CC39C16", - "algorithm": "md5" - }, - { - "value": "0C6498818C89169CFA83AFFA8255B1DDA86204E0", - "algorithm": "sha-1" - }, + "locations": [ { - "value": "DF586EDDC501DC39CB4702361BC560FC991B77586F8F6B59E688366861EB60BC", - "algorithm": "sha-256" + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Microsoft.Json.Schema.dll", + "uriBaseId": "$(ProjectDir)", + "index": 1 + } + }, + "logicalLocations": [ + { + "index": 98, + "fullyQualifiedName": "microsoft.json.schema.dll!Microsoft.Json.Schema.UriOrFragmentConverter.ReadJson(Newtonsoft.Json.JsonReader,System.Type,System.Object,Newtonsoft.Json.JsonSerializer)" + } + ] } - ] - }, - "file:///E:/src/sarif-sdk-test/src/Sarif/VersionOne/Autogenerated/FileChangeVersionOne.cs": { - "mimeType": "text/x-csharp", - "contents": { - "binary": "Ly8gQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQuICBBbGwgUmlnaHRzIFJlc2VydmVkLg0KLy8gTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlLiBTZWUgTElDRU5TRSBmaWxlIGluIHRoZSBwcm9qZWN0IHJvb3QgZm9yIGZ1bGwgbGljZW5zZSBpbmZvcm1hdGlvbi4NCg0KdXNpbmcgU3lzdGVtOw0KdXNpbmcgU3lzdGVtLkNvZGVEb20uQ29tcGlsZXI7DQp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsNCnVzaW5nIFN5c3RlbS5SdW50aW1lLlNlcmlhbGl6YXRpb247DQoNCm5hbWVzcGFjZSBNaWNyb3NvZnQuQ29kZUFuYWx5c2lzLlNhcmlmLlZlcnNpb25PbmUNCnsNCiAgICAvLy8gPHN1bW1hcnk+DQogICAgLy8vIEEgY2hhbmdlIHRvIGEgc2luZ2xlIGZpbGUuDQogICAgLy8vIDwvc3VtbWFyeT4NCiAgICBbRGF0YUNvbnRyYWN0XQ0KICAgIFtHZW5lcmF0ZWRDb2RlKCJNaWNyb3NvZnQuSnNvbi5TY2hlbWEuVG9Eb3ROZXQiLCAiMC41Mi4wLjAiKV0NCiAgICBwdWJsaWMgcGFydGlhbCBjbGFzcyBGaWxlQ2hhbmdlVmVyc2lvbk9uZSA6IElTYXJpZk5vZGVWZXJzaW9uT25lDQogICAgew0KICAgICAgICBwdWJsaWMgc3RhdGljIElFcXVhbGl0eUNvbXBhcmVyPEZpbGVDaGFuZ2VWZXJzaW9uT25lPiBWYWx1ZUNvbXBhcmVyID0+IEZpbGVDaGFuZ2VWZXJzaW9uT25lRXF1YWxpdHlDb21wYXJlci5JbnN0YW5jZTsNCg0KICAgICAgICBwdWJsaWMgYm9vbCBWYWx1ZUVxdWFscyhGaWxlQ2hhbmdlVmVyc2lvbk9uZSBvdGhlcikgPT4gVmFsdWVDb21wYXJlci5FcXVhbHModGhpcywgb3RoZXIpOw0KICAgICAgICBwdWJsaWMgaW50IFZhbHVlR2V0SGFzaENvZGUoKSA9PiBWYWx1ZUNvbXBhcmVyLkdldEhhc2hDb2RlKHRoaXMpOw0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIEdldHMgYSB2YWx1ZSBpbmRpY2F0aW5nIHRoZSB0eXBlIG9mIG9iamVjdCBpbXBsZW1lbnRpbmcgPHNlZSBjcmVmPSJJU2FyaWZOb2RlVmVyc2lvbk9uZSIgLz4uDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIHB1YmxpYyBTYXJpZk5vZGVLaW5kVmVyc2lvbk9uZSBTYXJpZk5vZGVLaW5kVmVyc2lvbk9uZQ0KICAgICAgICB7DQogICAgICAgICAgICBnZXQNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gU2FyaWZOb2RlS2luZFZlcnNpb25PbmUuRmlsZUNoYW5nZVZlcnNpb25PbmU7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBBIHN0cmluZyB0aGF0IHJlcHJlc2VudHMgdGhlIGxvY2F0aW9uIG9mIHRoZSBmaWxlIHRvIGNoYW5nZSBhcyBhIHZhbGlkIFVSSS4NCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgW0RhdGFNZW1iZXIoTmFtZSA9ICJ1cmkiLCBJc1JlcXVpcmVkID0gdHJ1ZSldDQogICAgICAgIHB1YmxpYyBVcmkgVXJpIHsgZ2V0OyBzZXQ7IH0NCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBBIHN0cmluZyB0aGF0IGlkZW50aWZpZXMgdGhlIGNvbmNlcHR1YWwgYmFzZSBmb3IgdGhlICd1cmknIHByb3BlcnR5IChpZiBpdCBpcyByZWxhdGl2ZSksIGUuZy4sJyQoU29sdXRpb25EaXIpJyBvciAnJVNSQ1JPT1QlJy4NCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgW0RhdGFNZW1iZXIoTmFtZSA9ICJ1cmlCYXNlSWQiLCBJc1JlcXVpcmVkID0gZmFsc2UsIEVtaXREZWZhdWx0VmFsdWUgPSBmYWxzZSldDQogICAgICAgIHB1YmxpYyBzdHJpbmcgVXJpQmFzZUlkIHsgZ2V0OyBzZXQ7IH0NCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBBbiBhcnJheSBvZiByZXBsYWNlbWVudCBvYmplY3RzLCBlYWNoIG9mIHdoaWNoIHJlcHJlc2VudHMgdGhlIHJlcGxhY2VtZW50IG9mIGEgc2luZ2xlIHJhbmdlIG9mIGJ5dGVzIGluIGEgc2luZ2xlIGZpbGUgc3BlY2lmaWVkIGJ5ICd1cmknLg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICBbRGF0YU1lbWJlcihOYW1lID0gInJlcGxhY2VtZW50cyIsIElzUmVxdWlyZWQgPSB0cnVlKV0NCiAgICAgICAgcHVibGljIElMaXN0PFJlcGxhY2VtZW50VmVyc2lvbk9uZT4gUmVwbGFjZW1lbnRzIHsgZ2V0OyBzZXQ7IH0NCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBJbml0aWFsaXplcyBhIG5ldyBpbnN0YW5jZSBvZiB0aGUgPHNlZSBjcmVmPSJGaWxlQ2hhbmdlVmVyc2lvbk9uZSIgLz4gY2xhc3MuDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIHB1YmxpYyBGaWxlQ2hhbmdlVmVyc2lvbk9uZSgpDQogICAgICAgIHsNCiAgICAgICAgfQ0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIEluaXRpYWxpemVzIGEgbmV3IGluc3RhbmNlIG9mIHRoZSA8c2VlIGNyZWY9IkZpbGVDaGFuZ2VWZXJzaW9uT25lIiAvPiBjbGFzcyBmcm9tIHRoZSBzdXBwbGllZCB2YWx1ZXMuDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIC8vLyA8cGFyYW0gbmFtZT0idXJpIj4NCiAgICAgICAgLy8vIEFuIGluaXRpYWxpemF0aW9uIHZhbHVlIGZvciB0aGUgPHNlZSBjcmVmPSJQOiBVcmkiIC8+IHByb3BlcnR5Lg0KICAgICAgICAvLy8gPC9wYXJhbT4NCiAgICAgICAgLy8vIDxwYXJhbSBuYW1lPSJ1cmlCYXNlSWQiPg0KICAgICAgICAvLy8gQW4gaW5pdGlhbGl6YXRpb24gdmFsdWUgZm9yIHRoZSA8c2VlIGNyZWY9IlA6IFVyaUJhc2VJZCIgLz4gcHJvcGVydHkuDQogICAgICAgIC8vLyA8L3BhcmFtPg0KICAgICAgICAvLy8gPHBhcmFtIG5hbWU9InJlcGxhY2VtZW50cyI+DQogICAgICAgIC8vLyBBbiBpbml0aWFsaXphdGlvbiB2YWx1ZSBmb3IgdGhlIDxzZWUgY3JlZj0iUDogUmVwbGFjZW1lbnRzIiAvPiBwcm9wZXJ0eS4NCiAgICAgICAgLy8vIDwvcGFyYW0+DQogICAgICAgIHB1YmxpYyBGaWxlQ2hhbmdlVmVyc2lvbk9uZShVcmkgdXJpLCBzdHJpbmcgdXJpQmFzZUlkLCBJRW51bWVyYWJsZTxSZXBsYWNlbWVudFZlcnNpb25PbmU+IHJlcGxhY2VtZW50cykNCiAgICAgICAgew0KICAgICAgICAgICAgSW5pdCh1cmksIHVyaUJhc2VJZCwgcmVwbGFjZW1lbnRzKTsNCiAgICAgICAgfQ0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIEluaXRpYWxpemVzIGEgbmV3IGluc3RhbmNlIG9mIHRoZSA8c2VlIGNyZWY9IkZpbGVDaGFuZ2VWZXJzaW9uT25lIiAvPiBjbGFzcyBmcm9tIHRoZSBzcGVjaWZpZWQgaW5zdGFuY2UuDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIC8vLyA8cGFyYW0gbmFtZT0ib3RoZXIiPg0KICAgICAgICAvLy8gVGhlIGluc3RhbmNlIGZyb20gd2hpY2ggdGhlIG5ldyBpbnN0YW5jZSBpcyB0byBiZSBpbml0aWFsaXplZC4NCiAgICAgICAgLy8vIDwvcGFyYW0+DQogICAgICAgIC8vLyA8ZXhjZXB0aW9uIGNyZWY9IkFyZ3VtZW50TnVsbEV4Y2VwdGlvbiI+DQogICAgICAgIC8vLyBUaHJvd24gaWYgPHBhcmFtcmVmIG5hbWU9Im90aGVyIiAvPiBpcyBudWxsLg0KICAgICAgICAvLy8gPC9leGNlcHRpb24+DQogICAgICAgIHB1YmxpYyBGaWxlQ2hhbmdlVmVyc2lvbk9uZShGaWxlQ2hhbmdlVmVyc2lvbk9uZSBvdGhlcikNCiAgICAgICAgew0KICAgICAgICAgICAgaWYgKG90aGVyID09IG51bGwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgdGhyb3cgbmV3IEFyZ3VtZW50TnVsbEV4Y2VwdGlvbihuYW1lb2Yob3RoZXIpKTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgSW5pdChvdGhlci5VcmksIG90aGVyLlVyaUJhc2VJZCwgb3RoZXIuUmVwbGFjZW1lbnRzKTsNCiAgICAgICAgfQ0KDQogICAgICAgIElTYXJpZk5vZGVWZXJzaW9uT25lIElTYXJpZk5vZGVWZXJzaW9uT25lLkRlZXBDbG9uZSgpDQogICAgICAgIHsNCiAgICAgICAgICAgIHJldHVybiBEZWVwQ2xvbmVDb3JlKCk7DQogICAgICAgIH0NCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBDcmVhdGVzIGEgZGVlcCBjb3B5IG9mIHRoaXMgaW5zdGFuY2UuDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIHB1YmxpYyBGaWxlQ2hhbmdlVmVyc2lvbk9uZSBEZWVwQ2xvbmUoKQ0KICAgICAgICB7DQogICAgICAgICAgICByZXR1cm4gKEZpbGVDaGFuZ2VWZXJzaW9uT25lKURlZXBDbG9uZUNvcmUoKTsNCiAgICAgICAgfQ0KDQogICAgICAgIHByaXZhdGUgSVNhcmlmTm9kZVZlcnNpb25PbmUgRGVlcENsb25lQ29yZSgpDQogICAgICAgIHsNCiAgICAgICAgICAgIHJldHVybiBuZXcgRmlsZUNoYW5nZVZlcnNpb25PbmUodGhpcyk7DQogICAgICAgIH0NCg0KICAgICAgICBwcml2YXRlIHZvaWQgSW5pdChVcmkgdXJpLCBzdHJpbmcgdXJpQmFzZUlkLCBJRW51bWVyYWJsZTxSZXBsYWNlbWVudFZlcnNpb25PbmU+IHJlcGxhY2VtZW50cykNCiAgICAgICAgew0KICAgICAgICAgICAgaWYgKHVyaSAhPSBudWxsKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIFVyaSA9IG5ldyBVcmkodXJpLk9yaWdpbmFsU3RyaW5nLCB1cmkuSXNBYnNvbHV0ZVVyaSA/IFVyaUtpbmQuQWJzb2x1dGUgOiBVcmlLaW5kLlJlbGF0aXZlKTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgVXJpQmFzZUlkID0gdXJpQmFzZUlkOw0KICAgICAgICAgICAgaWYgKHJlcGxhY2VtZW50cyAhPSBudWxsKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHZhciBkZXN0aW5hdGlvbl8wID0gbmV3IExpc3Q8UmVwbGFjZW1lbnRWZXJzaW9uT25lPigpOw0KICAgICAgICAgICAgICAgIGZvcmVhY2ggKHZhciB2YWx1ZV8wIGluIHJlcGxhY2VtZW50cykNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZV8wID09IG51bGwpDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGRlc3RpbmF0aW9uXzAuQWRkKG51bGwpOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGVsc2UNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgZGVzdGluYXRpb25fMC5BZGQobmV3IFJlcGxhY2VtZW50VmVyc2lvbk9uZSh2YWx1ZV8wKSk7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICBSZXBsYWNlbWVudHMgPSBkZXN0aW5hdGlvbl8wOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgfQ0KfQ==" + ], + "partialFingerprints": { + "UniqueId": "0" }, - "hashes": [ - { - "value": "E8EA51DD4006C6FA44B2497007ACB8B4", - "algorithm": "md5" - }, - { - "value": "2157E3EB1C1DB63E333AE13D8B5F886940AC0C39", - "algorithm": "sha-1" - }, - { - "value": "B31BA6099F94E2D81643BBB5026EC16499445EAC6EFF1BF1F2BDD044936C43C9", - "algorithm": "sha-256" - } - ] + "properties": { + "Category": "Microsoft.Design", + "FixCategory": "DependsOnFix" + } }, - "file:///E:/src/sarif-sdk-test/src/Sarif/VersionOne/Autogenerated/FileDataVersionOne.cs": { - "mimeType": "text/x-csharp", - "contents": { - "binary": "Ly8gQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQuICBBbGwgUmlnaHRzIFJlc2VydmVkLg0KLy8gTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlLiBTZWUgTElDRU5TRSBmaWxlIGluIHRoZSBwcm9qZWN0IHJvb3QgZm9yIGZ1bGwgbGljZW5zZSBpbmZvcm1hdGlvbi4NCg0KdXNpbmcgU3lzdGVtOw0KdXNpbmcgU3lzdGVtLkNvZGVEb20uQ29tcGlsZXI7DQp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsNCnVzaW5nIFN5c3RlbS5SdW50aW1lLlNlcmlhbGl6YXRpb247DQp1c2luZyBNaWNyb3NvZnQuQ29kZUFuYWx5c2lzLlNhcmlmLlJlYWRlcnM7DQoNCm5hbWVzcGFjZSBNaWNyb3NvZnQuQ29kZUFuYWx5c2lzLlNhcmlmLlZlcnNpb25PbmUNCnsNCiAgICAvLy8gPHN1bW1hcnk+DQogICAgLy8vIEEgc2luZ2xlIGZpbGUuIEluIHNvbWUgY2FzZXMsIHRoaXMgZmlsZSBtaWdodCBiZSBuZXN0ZWQgd2l0aGluIGFub3RoZXIgZmlsZS4NCiAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgIFtEYXRhQ29udHJhY3RdDQogICAgW0dlbmVyYXRlZENvZGUoIk1pY3Jvc29mdC5Kc29uLlNjaGVtYS5Ub0RvdE5ldCIsICIwLjUyLjAuMCIpXQ0KICAgIHB1YmxpYyBwYXJ0aWFsIGNsYXNzIEZpbGVEYXRhVmVyc2lvbk9uZSA6IFByb3BlcnR5QmFnSG9sZGVyLCBJU2FyaWZOb2RlVmVyc2lvbk9uZQ0KICAgIHsNCiAgICAgICAgcHVibGljIHN0YXRpYyBJRXF1YWxpdHlDb21wYXJlcjxGaWxlRGF0YVZlcnNpb25PbmU+IFZhbHVlQ29tcGFyZXIgPT4gRmlsZURhdGFWZXJzaW9uT25lRXF1YWxpdHlDb21wYXJlci5JbnN0YW5jZTsNCg0KICAgICAgICBwdWJsaWMgYm9vbCBWYWx1ZUVxdWFscyhGaWxlRGF0YVZlcnNpb25PbmUgb3RoZXIpID0+IFZhbHVlQ29tcGFyZXIuRXF1YWxzKHRoaXMsIG90aGVyKTsNCiAgICAgICAgcHVibGljIGludCBWYWx1ZUdldEhhc2hDb2RlKCkgPT4gVmFsdWVDb21wYXJlci5HZXRIYXNoQ29kZSh0aGlzKTsNCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBHZXRzIGEgdmFsdWUgaW5kaWNhdGluZyB0aGUgdHlwZSBvZiBvYmplY3QgaW1wbGVtZW50aW5nIDxzZWUgY3JlZj0iSVNhcmlmTm9kZVZlcnNpb25PbmUiIC8+Lg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICBwdWJsaWMgU2FyaWZOb2RlS2luZFZlcnNpb25PbmUgU2FyaWZOb2RlS2luZFZlcnNpb25PbmUNCiAgICAgICAgew0KICAgICAgICAgICAgZ2V0DQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgcmV0dXJuIFNhcmlmTm9kZUtpbmRWZXJzaW9uT25lLkZpbGVEYXRhVmVyc2lvbk9uZTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIFRoZSBwYXRoIHRvIHRoZSBmaWxlIHdpdGhpbiBpdHMgY29udGFpbmluZyBmaWxlLg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICBbRGF0YU1lbWJlcihOYW1lID0gInVyaSIsIElzUmVxdWlyZWQgPSBmYWxzZSwgRW1pdERlZmF1bHRWYWx1ZSA9IGZhbHNlKV0NCiAgICAgICAgcHVibGljIFVyaSBVcmkgeyBnZXQ7IHNldDsgfQ0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIEEgc3RyaW5nIHRoYXQgaWRlbnRpZmllcyB0aGUgY29uY2VwdHVhbCBiYXNlIGZvciB0aGUgJ3VyaScgcHJvcGVydHkgKGlmIGl0IGlzIHJlbGF0aXZlKSwgZS5nLiwnJChTb2x1dGlvbkRpciknIG9yICclU1JDUk9PVCUnLg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICBbRGF0YU1lbWJlcihOYW1lID0gInVyaUJhc2VJZCIsIElzUmVxdWlyZWQgPSBmYWxzZSwgRW1pdERlZmF1bHRWYWx1ZSA9IGZhbHNlKV0NCiAgICAgICAgcHVibGljIHN0cmluZyBVcmlCYXNlSWQgeyBnZXQ7IHNldDsgfQ0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIElkZW50aWZpZXMgdGhlIGtleSBvZiB0aGUgaW1tZWRpYXRlIHBhcmVudCBvZiB0aGUgZmlsZSwgaWYgdGhpcyBmaWxlIGlzIG5lc3RlZC4NCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgW0RhdGFNZW1iZXIoTmFtZSA9ICJwYXJlbnRLZXkiLCBJc1JlcXVpcmVkID0gZmFsc2UsIEVtaXREZWZhdWx0VmFsdWUgPSBmYWxzZSldDQogICAgICAgIHB1YmxpYyBzdHJpbmcgUGFyZW50S2V5IHsgZ2V0OyBzZXQ7IH0NCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBUaGUgb2Zmc2V0IGluIGJ5dGVzIG9mIHRoZSBmaWxlIHdpdGhpbiBpdHMgY29udGFpbmluZyBmaWxlLg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICBbRGF0YU1lbWJlcihOYW1lID0gIm9mZnNldCIsIElzUmVxdWlyZWQgPSBmYWxzZSwgRW1pdERlZmF1bHRWYWx1ZSA9IGZhbHNlKV0NCiAgICAgICAgcHVibGljIGludCBPZmZzZXQgeyBnZXQ7IHNldDsgfQ0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIFRoZSBsZW5ndGggb2YgdGhlIGZpbGUgaW4gYnl0ZXMuDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIFtEYXRhTWVtYmVyKE5hbWUgPSAibGVuZ3RoIiwgSXNSZXF1aXJlZCA9IGZhbHNlLCBFbWl0RGVmYXVsdFZhbHVlID0gZmFsc2UpXQ0KICAgICAgICBwdWJsaWMgaW50IExlbmd0aCB7IGdldDsgc2V0OyB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gVGhlIE1JTUUgdHlwZSAoUkZDIDIwNDUpIG9mIHRoZSBmaWxlLg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICBbRGF0YU1lbWJlcihOYW1lID0gIm1pbWVUeXBlIiwgSXNSZXF1aXJlZCA9IGZhbHNlLCBFbWl0RGVmYXVsdFZhbHVlID0gZmFsc2UpXQ0KICAgICAgICBwdWJsaWMgc3RyaW5nIE1pbWVUeXBlIHsgZ2V0OyBzZXQ7IH0NCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBUaGUgY29udGVudHMgb2YgdGhlIGZpbGUsIGV4cHJlc3NlZCBhcyBhIE1JTUUgQmFzZTY0LWVuY29kZWQgYnl0ZSBzZXF1ZW5jZS4NCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgW0RhdGFNZW1iZXIoTmFtZSA9ICJjb250ZW50cyIsIElzUmVxdWlyZWQgPSBmYWxzZSwgRW1pdERlZmF1bHRWYWx1ZSA9IGZhbHNlKV0NCiAgICAgICAgcHVibGljIHN0cmluZyBDb250ZW50cyB7IGdldDsgc2V0OyB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gQW4gYXJyYXkgb2YgaGFzaCBvYmplY3RzLCBlYWNoIG9mIHdoaWNoIHNwZWNpZmllcyBhIGhhc2hlZCB2YWx1ZSBmb3IgdGhlIGZpbGUsIGFsb25nIHdpdGggdGhlIG5hbWUgb2YgdGhlIGFsZ29yaXRobSB1c2VkIHRvIGNvbXB1dGUgdGhlIGhhc2guDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIFtEYXRhTWVtYmVyKE5hbWUgPSAiaGFzaGVzIiwgSXNSZXF1aXJlZCA9IGZhbHNlLCBFbWl0RGVmYXVsdFZhbHVlID0gZmFsc2UpXQ0KICAgICAgICBwdWJsaWMgSUxpc3Q8SGFzaFZlcnNpb25PbmU+IEhhc2hlcyB7IGdldDsgc2V0OyB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gS2V5L3ZhbHVlIHBhaXJzIHRoYXQgcHJvdmlkZSBhZGRpdGlvbmFsIGluZm9ybWF0aW9uIGFib3V0IHRoZSBmaWxlLg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICBbRGF0YU1lbWJlcihOYW1lID0gInByb3BlcnRpZXMiLCBJc1JlcXVpcmVkID0gZmFsc2UsIEVtaXREZWZhdWx0VmFsdWUgPSBmYWxzZSldDQogICAgICAgIGludGVybmFsIG92ZXJyaWRlIElEaWN0aW9uYXJ5PHN0cmluZywgU2VyaWFsaXplZFByb3BlcnR5SW5mbz4gUHJvcGVydGllcyB7IGdldDsgc2V0OyB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gSW5pdGlhbGl6ZXMgYSBuZXcgaW5zdGFuY2Ugb2YgdGhlIDxzZWUgY3JlZj0iRmlsZURhdGFWZXJzaW9uT25lIiAvPiBjbGFzcy4NCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgcHVibGljIEZpbGVEYXRhVmVyc2lvbk9uZSgpDQogICAgICAgIHsNCiAgICAgICAgfQ0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIEluaXRpYWxpemVzIGEgbmV3IGluc3RhbmNlIG9mIHRoZSA8c2VlIGNyZWY9IkZpbGVEYXRhVmVyc2lvbk9uZSIgLz4gY2xhc3MgZnJvbSB0aGUgc3VwcGxpZWQgdmFsdWVzLg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICAvLy8gPHBhcmFtIG5hbWU9InVyaSI+DQogICAgICAgIC8vLyBBbiBpbml0aWFsaXphdGlvbiB2YWx1ZSBmb3IgdGhlIDxzZWUgY3JlZj0iUDogVXJpIiAvPiBwcm9wZXJ0eS4NCiAgICAgICAgLy8vIDwvcGFyYW0+DQogICAgICAgIC8vLyA8cGFyYW0gbmFtZT0idXJpQmFzZUlkIj4NCiAgICAgICAgLy8vIEFuIGluaXRpYWxpemF0aW9uIHZhbHVlIGZvciB0aGUgPHNlZSBjcmVmPSJQOiBVcmlCYXNlSWQiIC8+IHByb3BlcnR5Lg0KICAgICAgICAvLy8gPC9wYXJhbT4NCiAgICAgICAgLy8vIDxwYXJhbSBuYW1lPSJwYXJlbnRLZXkiPg0KICAgICAgICAvLy8gQW4gaW5pdGlhbGl6YXRpb24gdmFsdWUgZm9yIHRoZSA8c2VlIGNyZWY9IlA6IFBhcmVudEtleSIgLz4gcHJvcGVydHkuDQogICAgICAgIC8vLyA8L3BhcmFtPg0KICAgICAgICAvLy8gPHBhcmFtIG5hbWU9Im9mZnNldCI+DQogICAgICAgIC8vLyBBbiBpbml0aWFsaXphdGlvbiB2YWx1ZSBmb3IgdGhlIDxzZWUgY3JlZj0iUDogT2Zmc2V0IiAvPiBwcm9wZXJ0eS4NCiAgICAgICAgLy8vIDwvcGFyYW0+DQogICAgICAgIC8vLyA8cGFyYW0gbmFtZT0ibGVuZ3RoIj4NCiAgICAgICAgLy8vIEFuIGluaXRpYWxpemF0aW9uIHZhbHVlIGZvciB0aGUgPHNlZSBjcmVmPSJQOiBMZW5ndGgiIC8+IHByb3BlcnR5Lg0KICAgICAgICAvLy8gPC9wYXJhbT4NCiAgICAgICAgLy8vIDxwYXJhbSBuYW1lPSJtaW1lVHlwZSI+DQogICAgICAgIC8vLyBBbiBpbml0aWFsaXphdGlvbiB2YWx1ZSBmb3IgdGhlIDxzZWUgY3JlZj0iUDogTWltZVR5cGUiIC8+IHByb3BlcnR5Lg0KICAgICAgICAvLy8gPC9wYXJhbT4NCiAgICAgICAgLy8vIDxwYXJhbSBuYW1lPSJjb250ZW50cyI+DQogICAgICAgIC8vLyBBbiBpbml0aWFsaXphdGlvbiB2YWx1ZSBmb3IgdGhlIDxzZWUgY3JlZj0iUDogQ29udGVudHMiIC8+IHByb3BlcnR5Lg0KICAgICAgICAvLy8gPC9wYXJhbT4NCiAgICAgICAgLy8vIDxwYXJhbSBuYW1lPSJoYXNoZXMiPg0KICAgICAgICAvLy8gQW4gaW5pdGlhbGl6YXRpb24gdmFsdWUgZm9yIHRoZSA8c2VlIGNyZWY9IlA6IEhhc2hlcyIgLz4gcHJvcGVydHkuDQogICAgICAgIC8vLyA8L3BhcmFtPg0KICAgICAgICAvLy8gPHBhcmFtIG5hbWU9InByb3BlcnRpZXMiPg0KICAgICAgICAvLy8gQW4gaW5pdGlhbGl6YXRpb24gdmFsdWUgZm9yIHRoZSA8c2VlIGNyZWY9IlA6IFByb3BlcnRpZXMiIC8+IHByb3BlcnR5Lg0KICAgICAgICAvLy8gPC9wYXJhbT4NCiAgICAgICAgcHVibGljIEZpbGVEYXRhVmVyc2lvbk9uZShVcmkgdXJpLCBzdHJpbmcgdXJpQmFzZUlkLCBzdHJpbmcgcGFyZW50S2V5LCBpbnQgb2Zmc2V0LCBpbnQgbGVuZ3RoLCBzdHJpbmcgbWltZVR5cGUsIHN0cmluZyBjb250ZW50cywgSUVudW1lcmFibGU8SGFzaFZlcnNpb25PbmU+IGhhc2hlcywgSURpY3Rpb25hcnk8c3RyaW5nLCBTZXJpYWxpemVkUHJvcGVydHlJbmZvPiBwcm9wZXJ0aWVzKQ0KICAgICAgICB7DQogICAgICAgICAgICBJbml0KHVyaSwgdXJpQmFzZUlkLCBwYXJlbnRLZXksIG9mZnNldCwgbGVuZ3RoLCBtaW1lVHlwZSwgY29udGVudHMsIGhhc2hlcywgcHJvcGVydGllcyk7DQogICAgICAgIH0NCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBJbml0aWFsaXplcyBhIG5ldyBpbnN0YW5jZSBvZiB0aGUgPHNlZSBjcmVmPSJGaWxlRGF0YVZlcnNpb25PbmUiIC8+IGNsYXNzIGZyb20gdGhlIHNwZWNpZmllZCBpbnN0YW5jZS4NCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgLy8vIDxwYXJhbSBuYW1lPSJvdGhlciI+DQogICAgICAgIC8vLyBUaGUgaW5zdGFuY2UgZnJvbSB3aGljaCB0aGUgbmV3IGluc3RhbmNlIGlzIHRvIGJlIGluaXRpYWxpemVkLg0KICAgICAgICAvLy8gPC9wYXJhbT4NCiAgICAgICAgLy8vIDxleGNlcHRpb24gY3JlZj0iQXJndW1lbnROdWxsRXhjZXB0aW9uIj4NCiAgICAgICAgLy8vIFRocm93biBpZiA8cGFyYW1yZWYgbmFtZT0ib3RoZXIiIC8+IGlzIG51bGwuDQogICAgICAgIC8vLyA8L2V4Y2VwdGlvbj4NCiAgICAgICAgcHVibGljIEZpbGVEYXRhVmVyc2lvbk9uZShGaWxlRGF0YVZlcnNpb25PbmUgb3RoZXIpDQogICAgICAgIHsNCiAgICAgICAgICAgIGlmIChvdGhlciA9PSBudWxsKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHRocm93IG5ldyBBcmd1bWVudE51bGxFeGNlcHRpb24obmFtZW9mKG90aGVyKSk7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIEluaXQob3RoZXIuVXJpLCBvdGhlci5VcmlCYXNlSWQsIG90aGVyLlBhcmVudEtleSwgb3RoZXIuT2Zmc2V0LCBvdGhlci5MZW5ndGgsIG90aGVyLk1pbWVUeXBlLCBvdGhlci5Db250ZW50cywgb3RoZXIuSGFzaGVzLCBvdGhlci5Qcm9wZXJ0aWVzKTsNCiAgICAgICAgfQ0KDQogICAgICAgIElTYXJpZk5vZGVWZXJzaW9uT25lIElTYXJpZk5vZGVWZXJzaW9uT25lLkRlZXBDbG9uZSgpDQogICAgICAgIHsNCiAgICAgICAgICAgIHJldHVybiBEZWVwQ2xvbmVDb3JlKCk7DQogICAgICAgIH0NCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBDcmVhdGVzIGEgZGVlcCBjb3B5IG9mIHRoaXMgaW5zdGFuY2UuDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIHB1YmxpYyBGaWxlRGF0YVZlcnNpb25PbmUgRGVlcENsb25lKCkNCiAgICAgICAgew0KICAgICAgICAgICAgcmV0dXJuIChGaWxlRGF0YVZlcnNpb25PbmUpRGVlcENsb25lQ29yZSgpOw0KICAgICAgICB9DQoNCiAgICAgICAgcHJpdmF0ZSBJU2FyaWZOb2RlVmVyc2lvbk9uZSBEZWVwQ2xvbmVDb3JlKCkNCiAgICAgICAgew0KICAgICAgICAgICAgcmV0dXJuIG5ldyBGaWxlRGF0YVZlcnNpb25PbmUodGhpcyk7DQogICAgICAgIH0NCg0KICAgICAgICBwcml2YXRlIHZvaWQgSW5pdChVcmkgdXJpLCBzdHJpbmcgdXJpQmFzZUlkLCBzdHJpbmcgcGFyZW50S2V5LCBpbnQgb2Zmc2V0LCBpbnQgbGVuZ3RoLCBzdHJpbmcgbWltZVR5cGUsIHN0cmluZyBjb250ZW50cywgSUVudW1lcmFibGU8SGFzaFZlcnNpb25PbmU+IGhhc2hlcywgSURpY3Rpb25hcnk8c3RyaW5nLCBTZXJpYWxpemVkUHJvcGVydHlJbmZvPiBwcm9wZXJ0aWVzKQ0KICAgICAgICB7DQogICAgICAgICAgICBpZiAodXJpICE9IG51bGwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgVXJpID0gbmV3IFVyaSh1cmkuT3JpZ2luYWxTdHJpbmcsIHVyaS5Jc0Fic29sdXRlVXJpID8gVXJpS2luZC5BYnNvbHV0ZSA6IFVyaUtpbmQuUmVsYXRpdmUpOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBVcmlCYXNlSWQgPSB1cmlCYXNlSWQ7DQogICAgICAgICAgICBQYXJlbnRLZXkgPSBwYXJlbnRLZXk7DQogICAgICAgICAgICBPZmZzZXQgPSBvZmZzZXQ7DQogICAgICAgICAgICBMZW5ndGggPSBsZW5ndGg7DQogICAgICAgICAgICBNaW1lVHlwZSA9IG1pbWVUeXBlOw0KICAgICAgICAgICAgQ29udGVudHMgPSBjb250ZW50czsNCiAgICAgICAgICAgIGlmIChoYXNoZXMgIT0gbnVsbCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICB2YXIgZGVzdGluYXRpb25fMCA9IG5ldyBMaXN0PEhhc2hWZXJzaW9uT25lPigpOw0KICAgICAgICAgICAgICAgIGZvcmVhY2ggKHZhciB2YWx1ZV8wIGluIGhhc2hlcykNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZV8wID09IG51bGwpDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGRlc3RpbmF0aW9uXzAuQWRkKG51bGwpOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGVsc2UNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgZGVzdGluYXRpb25fMC5BZGQobmV3IEhhc2hWZXJzaW9uT25lKHZhbHVlXzApKTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgIEhhc2hlcyA9IGRlc3RpbmF0aW9uXzA7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIGlmIChwcm9wZXJ0aWVzICE9IG51bGwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgUHJvcGVydGllcyA9IG5ldyBEaWN0aW9uYXJ5PHN0cmluZywgU2VyaWFsaXplZFByb3BlcnR5SW5mbz4ocHJvcGVydGllcyk7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCiAgICB9DQp9" + { + "ruleId": "CA1062", + "message": { + "text": "In externally visible method 'UriOrFragmentConverter.WriteJson(JsonWriter, object, JsonSerializer)', validate parameter 'writer' before using it." }, - "hashes": [ - { - "value": "AEA21FD0EA57F7F04314C8AAB9A9745C", - "algorithm": "md5" - }, - { - "value": "7619EF76FE40D23F2E01B12AB3267787A135210A", - "algorithm": "sha-1" - }, + "locations": [ { - "value": "7EF8D52EAFD831C8ED2660DDFD830A480519CADE97EC58B1F3047B9FACE52122", - "algorithm": "sha-256" + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Microsoft.Json.Schema.dll", + "uriBaseId": "$(ProjectDir)", + "index": 1 + } + }, + "logicalLocations": [ + { + "index": 99, + "fullyQualifiedName": "microsoft.json.schema.dll!Microsoft.Json.Schema.UriOrFragmentConverter.WriteJson(Newtonsoft.Json.JsonWriter,System.Object,Newtonsoft.Json.JsonSerializer)" + } + ] } - ] + ], + "partialFingerprints": { + "UniqueId": "0" + }, + "properties": { + "Category": "Microsoft.Design", + "FixCategory": "DependsOnFix" + } }, - "file:///E:/src/sarif-sdk-test/src/Sarif/VersionOne/Autogenerated/FixVersionOne.cs": { - "mimeType": "text/x-csharp", - "contents": { - "binary": "Ly8gQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQuICBBbGwgUmlnaHRzIFJlc2VydmVkLg0KLy8gTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlLiBTZWUgTElDRU5TRSBmaWxlIGluIHRoZSBwcm9qZWN0IHJvb3QgZm9yIGZ1bGwgbGljZW5zZSBpbmZvcm1hdGlvbi4NCg0KdXNpbmcgU3lzdGVtOw0KdXNpbmcgU3lzdGVtLkNvZGVEb20uQ29tcGlsZXI7DQp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsNCnVzaW5nIFN5c3RlbS5SdW50aW1lLlNlcmlhbGl6YXRpb247DQoNCm5hbWVzcGFjZSBNaWNyb3NvZnQuQ29kZUFuYWx5c2lzLlNhcmlmLlZlcnNpb25PbmUNCnsNCiAgICAvLy8gPHN1bW1hcnk+DQogICAgLy8vIEEgcHJvcG9zZWQgZml4IGZvciB0aGUgcHJvYmxlbSByZXByZXNlbnRlZCBieSBhIHJlc3VsdCBvYmplY3QuIEEgZml4IHNwZWNpZmllcyBhIHNldCBvZiBmaWxlIHRvIG1vZGlmeS4gRm9yIGVhY2ggZmlsZSwgaXQgc3BlY2lmaWVzIGEgc2V0IG9mIGJ5dGVzIHRvIHJlbW92ZSwgYW5kIHByb3ZpZGVzIGEgc2V0IG9mIG5ldyBieXRlcyB0byByZXBsYWNlIHRoZW0uDQogICAgLy8vIDwvc3VtbWFyeT4NCiAgICBbRGF0YUNvbnRyYWN0XQ0KICAgIFtHZW5lcmF0ZWRDb2RlKCJNaWNyb3NvZnQuSnNvbi5TY2hlbWEuVG9Eb3ROZXQiLCAiMC41Mi4wLjAiKV0NCiAgICBwdWJsaWMgcGFydGlhbCBjbGFzcyBGaXhWZXJzaW9uT25lIDogSVNhcmlmTm9kZVZlcnNpb25PbmUNCiAgICB7DQogICAgICAgIHB1YmxpYyBzdGF0aWMgSUVxdWFsaXR5Q29tcGFyZXI8Rml4VmVyc2lvbk9uZT4gVmFsdWVDb21wYXJlciA9PiBGaXhWZXJzaW9uT25lRXF1YWxpdHlDb21wYXJlci5JbnN0YW5jZTsNCg0KICAgICAgICBwdWJsaWMgYm9vbCBWYWx1ZUVxdWFscyhGaXhWZXJzaW9uT25lIG90aGVyKSA9PiBWYWx1ZUNvbXBhcmVyLkVxdWFscyh0aGlzLCBvdGhlcik7DQogICAgICAgIHB1YmxpYyBpbnQgVmFsdWVHZXRIYXNoQ29kZSgpID0+IFZhbHVlQ29tcGFyZXIuR2V0SGFzaENvZGUodGhpcyk7DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gR2V0cyBhIHZhbHVlIGluZGljYXRpbmcgdGhlIHR5cGUgb2Ygb2JqZWN0IGltcGxlbWVudGluZyA8c2VlIGNyZWY9IklTYXJpZk5vZGVWZXJzaW9uT25lIiAvPi4NCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgcHVibGljIFNhcmlmTm9kZUtpbmRWZXJzaW9uT25lIFNhcmlmTm9kZUtpbmRWZXJzaW9uT25lDQogICAgICAgIHsNCiAgICAgICAgICAgIGdldA0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHJldHVybiBTYXJpZk5vZGVLaW5kVmVyc2lvbk9uZS5GaXhWZXJzaW9uT25lOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gQSBzdHJpbmcgdGhhdCBkZXNjcmliZXMgdGhlIHByb3Bvc2VkIGZpeCwgZW5hYmxpbmcgdmlld2VycyB0byBwcmVzZW50IGEgcHJvcG9zZWQgY2hhbmdlIHRvIGFuIGVuZCB1c2VyLg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICBbRGF0YU1lbWJlcihOYW1lID0gImRlc2NyaXB0aW9uIiwgSXNSZXF1aXJlZCA9IGZhbHNlLCBFbWl0RGVmYXVsdFZhbHVlID0gZmFsc2UpXQ0KICAgICAgICBwdWJsaWMgc3RyaW5nIERlc2NyaXB0aW9uIHsgZ2V0OyBzZXQ7IH0NCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBPbmUgb3IgbW9yZSBmaWxlIGNoYW5nZXMgdGhhdCBjb21wcmlzZSBhIGZpeCBmb3IgYSByZXN1bHQuDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIFtEYXRhTWVtYmVyKE5hbWUgPSAiZmlsZUNoYW5nZXMiLCBJc1JlcXVpcmVkID0gdHJ1ZSldDQogICAgICAgIHB1YmxpYyBJTGlzdDxGaWxlQ2hhbmdlVmVyc2lvbk9uZT4gRmlsZUNoYW5nZXMgeyBnZXQ7IHNldDsgfQ0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIEluaXRpYWxpemVzIGEgbmV3IGluc3RhbmNlIG9mIHRoZSA8c2VlIGNyZWY9IkZpeFZlcnNpb25PbmUiIC8+IGNsYXNzLg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICBwdWJsaWMgRml4VmVyc2lvbk9uZSgpDQogICAgICAgIHsNCiAgICAgICAgfQ0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIEluaXRpYWxpemVzIGEgbmV3IGluc3RhbmNlIG9mIHRoZSA8c2VlIGNyZWY9IkZpeFZlcnNpb25PbmUiIC8+IGNsYXNzIGZyb20gdGhlIHN1cHBsaWVkIHZhbHVlcy4NCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgLy8vIDxwYXJhbSBuYW1lPSJkZXNjcmlwdGlvbiI+DQogICAgICAgIC8vLyBBbiBpbml0aWFsaXphdGlvbiB2YWx1ZSBmb3IgdGhlIDxzZWUgY3JlZj0iUDogRGVzY3JpcHRpb24iIC8+IHByb3BlcnR5Lg0KICAgICAgICAvLy8gPC9wYXJhbT4NCiAgICAgICAgLy8vIDxwYXJhbSBuYW1lPSJmaWxlQ2hhbmdlcyI+DQogICAgICAgIC8vLyBBbiBpbml0aWFsaXphdGlvbiB2YWx1ZSBmb3IgdGhlIDxzZWUgY3JlZj0iUDogRmlsZUNoYW5nZXMiIC8+IHByb3BlcnR5Lg0KICAgICAgICAvLy8gPC9wYXJhbT4NCiAgICAgICAgcHVibGljIEZpeFZlcnNpb25PbmUoc3RyaW5nIGRlc2NyaXB0aW9uLCBJRW51bWVyYWJsZTxGaWxlQ2hhbmdlVmVyc2lvbk9uZT4gZmlsZUNoYW5nZXMpDQogICAgICAgIHsNCiAgICAgICAgICAgIEluaXQoZGVzY3JpcHRpb24sIGZpbGVDaGFuZ2VzKTsNCiAgICAgICAgfQ0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIEluaXRpYWxpemVzIGEgbmV3IGluc3RhbmNlIG9mIHRoZSA8c2VlIGNyZWY9IkZpeFZlcnNpb25PbmUiIC8+IGNsYXNzIGZyb20gdGhlIHNwZWNpZmllZCBpbnN0YW5jZS4NCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgLy8vIDxwYXJhbSBuYW1lPSJvdGhlciI+DQogICAgICAgIC8vLyBUaGUgaW5zdGFuY2UgZnJvbSB3aGljaCB0aGUgbmV3IGluc3RhbmNlIGlzIHRvIGJlIGluaXRpYWxpemVkLg0KICAgICAgICAvLy8gPC9wYXJhbT4NCiAgICAgICAgLy8vIDxleGNlcHRpb24gY3JlZj0iQXJndW1lbnROdWxsRXhjZXB0aW9uIj4NCiAgICAgICAgLy8vIFRocm93biBpZiA8cGFyYW1yZWYgbmFtZT0ib3RoZXIiIC8+IGlzIG51bGwuDQogICAgICAgIC8vLyA8L2V4Y2VwdGlvbj4NCiAgICAgICAgcHVibGljIEZpeFZlcnNpb25PbmUoRml4VmVyc2lvbk9uZSBvdGhlcikNCiAgICAgICAgew0KICAgICAgICAgICAgaWYgKG90aGVyID09IG51bGwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgdGhyb3cgbmV3IEFyZ3VtZW50TnVsbEV4Y2VwdGlvbihuYW1lb2Yob3RoZXIpKTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgSW5pdChvdGhlci5EZXNjcmlwdGlvbiwgb3RoZXIuRmlsZUNoYW5nZXMpOw0KICAgICAgICB9DQoNCiAgICAgICAgSVNhcmlmTm9kZVZlcnNpb25PbmUgSVNhcmlmTm9kZVZlcnNpb25PbmUuRGVlcENsb25lKCkNCiAgICAgICAgew0KICAgICAgICAgICAgcmV0dXJuIERlZXBDbG9uZUNvcmUoKTsNCiAgICAgICAgfQ0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIENyZWF0ZXMgYSBkZWVwIGNvcHkgb2YgdGhpcyBpbnN0YW5jZS4NCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgcHVibGljIEZpeFZlcnNpb25PbmUgRGVlcENsb25lKCkNCiAgICAgICAgew0KICAgICAgICAgICAgcmV0dXJuIChGaXhWZXJzaW9uT25lKURlZXBDbG9uZUNvcmUoKTsNCiAgICAgICAgfQ0KDQogICAgICAgIHByaXZhdGUgSVNhcmlmTm9kZVZlcnNpb25PbmUgRGVlcENsb25lQ29yZSgpDQogICAgICAgIHsNCiAgICAgICAgICAgIHJldHVybiBuZXcgRml4VmVyc2lvbk9uZSh0aGlzKTsNCiAgICAgICAgfQ0KDQogICAgICAgIHByaXZhdGUgdm9pZCBJbml0KHN0cmluZyBkZXNjcmlwdGlvbiwgSUVudW1lcmFibGU8RmlsZUNoYW5nZVZlcnNpb25PbmU+IGZpbGVDaGFuZ2VzKQ0KICAgICAgICB7DQogICAgICAgICAgICBEZXNjcmlwdGlvbiA9IGRlc2NyaXB0aW9uOw0KICAgICAgICAgICAgaWYgKGZpbGVDaGFuZ2VzICE9IG51bGwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgdmFyIGRlc3RpbmF0aW9uXzAgPSBuZXcgTGlzdDxGaWxlQ2hhbmdlVmVyc2lvbk9uZT4oKTsNCiAgICAgICAgICAgICAgICBmb3JlYWNoICh2YXIgdmFsdWVfMCBpbiBmaWxlQ2hhbmdlcykNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZV8wID09IG51bGwpDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGRlc3RpbmF0aW9uXzAuQWRkKG51bGwpOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGVsc2UNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgZGVzdGluYXRpb25fMC5BZGQobmV3IEZpbGVDaGFuZ2VWZXJzaW9uT25lKHZhbHVlXzApKTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgIEZpbGVDaGFuZ2VzID0gZGVzdGluYXRpb25fMDsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgIH0NCn0=" + { + "ruleId": "CA1062", + "message": { + "text": "In externally visible method 'UriOrFragmentExtensions.GetDefinitionName(this UriOrFragment)', validate parameter 'reference' before using it." }, - "hashes": [ - { - "value": "AD312233BF6E51E2B6249E3BAEE75D05", - "algorithm": "md5" - }, - { - "value": "9999687665A38D2317CF72D273835F823CE45790", - "algorithm": "sha-1" - }, + "locations": [ { - "value": "116CE29705F17E6EEE67209D9B12CCBD19E842B01D24A9DAA330372794AC1E43", - "algorithm": "sha-256" + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Microsoft.Json.Schema.dll", + "uriBaseId": "$(ProjectDir)", + "index": 1 + } + }, + "logicalLocations": [ + { + "index": 101, + "fullyQualifiedName": "microsoft.json.schema.dll!Microsoft.Json.Schema.UriOrFragmentExtensions.GetDefinitionName(Microsoft.Json.Schema.UriOrFragment)" + } + ] } - ] + ], + "partialFingerprints": { + "UniqueId": "0" + }, + "properties": { + "Category": "Microsoft.Design", + "FixCategory": "DependsOnFix" + } }, - "file:///E:/src/sarif-sdk-test/src/Sarif/VersionOne/Autogenerated/FormattedRuleMessageVersionOne.cs": { - "mimeType": "text/x-csharp", - "contents": { - "binary": "Ly8gQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQuICBBbGwgUmlnaHRzIFJlc2VydmVkLg0KLy8gTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlLiBTZWUgTElDRU5TRSBmaWxlIGluIHRoZSBwcm9qZWN0IHJvb3QgZm9yIGZ1bGwgbGljZW5zZSBpbmZvcm1hdGlvbi4NCg0KdXNpbmcgU3lzdGVtOw0KdXNpbmcgU3lzdGVtLkNvZGVEb20uQ29tcGlsZXI7DQp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsNCnVzaW5nIFN5c3RlbS5SdW50aW1lLlNlcmlhbGl6YXRpb247DQoNCm5hbWVzcGFjZSBNaWNyb3NvZnQuQ29kZUFuYWx5c2lzLlNhcmlmLlZlcnNpb25PbmUNCnsNCiAgICAvLy8gPHN1bW1hcnk+DQogICAgLy8vIENvbnRhaW5zIGluZm9ybWF0aW9uIHRoYXQgY2FuIGJlIHVzZWQgdG8gY29uc3RydWN0IGEgZm9ybWF0dGVkIG1lc3NhZ2UgdGhhdCBkZXNjcmliZXMgYSByZXN1bHQuDQogICAgLy8vIDwvc3VtbWFyeT4NCiAgICBbRGF0YUNvbnRyYWN0XQ0KICAgIFtHZW5lcmF0ZWRDb2RlKCJNaWNyb3NvZnQuSnNvbi5TY2hlbWEuVG9Eb3ROZXQiLCAiMC41Mi4wLjAiKV0NCiAgICBwdWJsaWMgcGFydGlhbCBjbGFzcyBGb3JtYXR0ZWRSdWxlTWVzc2FnZVZlcnNpb25PbmUgOiBJU2FyaWZOb2RlVmVyc2lvbk9uZQ0KICAgIHsNCiAgICAgICAgcHVibGljIHN0YXRpYyBJRXF1YWxpdHlDb21wYXJlcjxGb3JtYXR0ZWRSdWxlTWVzc2FnZVZlcnNpb25PbmU+IFZhbHVlQ29tcGFyZXIgPT4gRm9ybWF0dGVkUnVsZU1lc3NhZ2VWZXJzaW9uT25lRXF1YWxpdHlDb21wYXJlci5JbnN0YW5jZTsNCg0KICAgICAgICBwdWJsaWMgYm9vbCBWYWx1ZUVxdWFscyhGb3JtYXR0ZWRSdWxlTWVzc2FnZVZlcnNpb25PbmUgb3RoZXIpID0+IFZhbHVlQ29tcGFyZXIuRXF1YWxzKHRoaXMsIG90aGVyKTsNCiAgICAgICAgcHVibGljIGludCBWYWx1ZUdldEhhc2hDb2RlKCkgPT4gVmFsdWVDb21wYXJlci5HZXRIYXNoQ29kZSh0aGlzKTsNCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBHZXRzIGEgdmFsdWUgaW5kaWNhdGluZyB0aGUgdHlwZSBvZiBvYmplY3QgaW1wbGVtZW50aW5nIDxzZWUgY3JlZj0iSVNhcmlmTm9kZVZlcnNpb25PbmUiIC8+Lg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICBwdWJsaWMgU2FyaWZOb2RlS2luZFZlcnNpb25PbmUgU2FyaWZOb2RlS2luZFZlcnNpb25PbmUNCiAgICAgICAgew0KICAgICAgICAgICAgZ2V0DQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgcmV0dXJuIFNhcmlmTm9kZUtpbmRWZXJzaW9uT25lLkZvcm1hdHRlZFJ1bGVNZXNzYWdlVmVyc2lvbk9uZTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIEEgc3RyaW5nIHRoYXQgaWRlbnRpZmllcyB0aGUgbWVzc2FnZSBmb3JtYXQgdXNlZCB0byBmb3JtYXQgdGhlIG1lc3NhZ2UgdGhhdCBkZXNjcmliZXMgdGhpcyByZXN1bHQuIFRoZSB2YWx1ZSBvZiBmb3JtYXRJZCBtdXN0IGNvcnJlc3BvbmQgdG8gb25lIG9mIHRoZSBuYW1lcyBpbiB0aGUgc2V0IG9mIG5hbWUvdmFsdWUgcGFpcnMgY29udGFpbmVkIGluIHRoZSAnbWVzc2FnZUZvcm1hdHMnIHByb3BlcnR5IG9mIHRoZSBydWxlIG9iamVjdCB3aG9zZSAnaWQnIHByb3BlcnR5IG1hdGNoZXMgdGhlICdydWxlSWQnIHByb3BlcnR5IG9mIHRoaXMgcmVzdWx0Lg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICBbRGF0YU1lbWJlcihOYW1lID0gImZvcm1hdElkIiwgSXNSZXF1aXJlZCA9IHRydWUpXQ0KICAgICAgICBwdWJsaWMgc3RyaW5nIEZvcm1hdElkIHsgZ2V0OyBzZXQ7IH0NCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBBbiBhcnJheSBvZiBzdHJpbmdzIHRoYXQgd2lsbCBiZSB1c2VkLCBpbiBjb21iaW5hdGlvbiB3aXRoIGEgbWVzc2FnZSBmb3JtYXQsIHRvIGNvbnN0cnVjdCBhIHJlc3VsdCBtZXNzYWdlLg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICBbRGF0YU1lbWJlcihOYW1lID0gImFyZ3VtZW50cyIsIElzUmVxdWlyZWQgPSBmYWxzZSwgRW1pdERlZmF1bHRWYWx1ZSA9IGZhbHNlKV0NCiAgICAgICAgcHVibGljIElMaXN0PHN0cmluZz4gQXJndW1lbnRzIHsgZ2V0OyBzZXQ7IH0NCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBJbml0aWFsaXplcyBhIG5ldyBpbnN0YW5jZSBvZiB0aGUgPHNlZSBjcmVmPSJGb3JtYXR0ZWRSdWxlTWVzc2FnZVZlcnNpb25PbmUiIC8+IGNsYXNzLg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICBwdWJsaWMgRm9ybWF0dGVkUnVsZU1lc3NhZ2VWZXJzaW9uT25lKCkNCiAgICAgICAgew0KICAgICAgICB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gSW5pdGlhbGl6ZXMgYSBuZXcgaW5zdGFuY2Ugb2YgdGhlIDxzZWUgY3JlZj0iRm9ybWF0dGVkUnVsZU1lc3NhZ2VWZXJzaW9uT25lIiAvPiBjbGFzcyBmcm9tIHRoZSBzdXBwbGllZCB2YWx1ZXMuDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIC8vLyA8cGFyYW0gbmFtZT0iZm9ybWF0SWQiPg0KICAgICAgICAvLy8gQW4gaW5pdGlhbGl6YXRpb24gdmFsdWUgZm9yIHRoZSA8c2VlIGNyZWY9IlA6IEZvcm1hdElkIiAvPiBwcm9wZXJ0eS4NCiAgICAgICAgLy8vIDwvcGFyYW0+DQogICAgICAgIC8vLyA8cGFyYW0gbmFtZT0iYXJndW1lbnRzIj4NCiAgICAgICAgLy8vIEFuIGluaXRpYWxpemF0aW9uIHZhbHVlIGZvciB0aGUgPHNlZSBjcmVmPSJQOiBBcmd1bWVudHMiIC8+IHByb3BlcnR5Lg0KICAgICAgICAvLy8gPC9wYXJhbT4NCiAgICAgICAgcHVibGljIEZvcm1hdHRlZFJ1bGVNZXNzYWdlVmVyc2lvbk9uZShzdHJpbmcgZm9ybWF0SWQsIElFbnVtZXJhYmxlPHN0cmluZz4gYXJndW1lbnRzKQ0KICAgICAgICB7DQogICAgICAgICAgICBJbml0KGZvcm1hdElkLCBhcmd1bWVudHMpOw0KICAgICAgICB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gSW5pdGlhbGl6ZXMgYSBuZXcgaW5zdGFuY2Ugb2YgdGhlIDxzZWUgY3JlZj0iRm9ybWF0dGVkUnVsZU1lc3NhZ2VWZXJzaW9uT25lIiAvPiBjbGFzcyBmcm9tIHRoZSBzcGVjaWZpZWQgaW5zdGFuY2UuDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIC8vLyA8cGFyYW0gbmFtZT0ib3RoZXIiPg0KICAgICAgICAvLy8gVGhlIGluc3RhbmNlIGZyb20gd2hpY2ggdGhlIG5ldyBpbnN0YW5jZSBpcyB0byBiZSBpbml0aWFsaXplZC4NCiAgICAgICAgLy8vIDwvcGFyYW0+DQogICAgICAgIC8vLyA8ZXhjZXB0aW9uIGNyZWY9IkFyZ3VtZW50TnVsbEV4Y2VwdGlvbiI+DQogICAgICAgIC8vLyBUaHJvd24gaWYgPHBhcmFtcmVmIG5hbWU9Im90aGVyIiAvPiBpcyBudWxsLg0KICAgICAgICAvLy8gPC9leGNlcHRpb24+DQogICAgICAgIHB1YmxpYyBGb3JtYXR0ZWRSdWxlTWVzc2FnZVZlcnNpb25PbmUoRm9ybWF0dGVkUnVsZU1lc3NhZ2VWZXJzaW9uT25lIG90aGVyKQ0KICAgICAgICB7DQogICAgICAgICAgICBpZiAob3RoZXIgPT0gbnVsbCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgQXJndW1lbnROdWxsRXhjZXB0aW9uKG5hbWVvZihvdGhlcikpOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBJbml0KG90aGVyLkZvcm1hdElkLCBvdGhlci5Bcmd1bWVudHMpOw0KICAgICAgICB9DQoNCiAgICAgICAgSVNhcmlmTm9kZVZlcnNpb25PbmUgSVNhcmlmTm9kZVZlcnNpb25PbmUuRGVlcENsb25lKCkNCiAgICAgICAgew0KICAgICAgICAgICAgcmV0dXJuIERlZXBDbG9uZUNvcmUoKTsNCiAgICAgICAgfQ0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIENyZWF0ZXMgYSBkZWVwIGNvcHkgb2YgdGhpcyBpbnN0YW5jZS4NCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgcHVibGljIEZvcm1hdHRlZFJ1bGVNZXNzYWdlVmVyc2lvbk9uZSBEZWVwQ2xvbmUoKQ0KICAgICAgICB7DQogICAgICAgICAgICByZXR1cm4gKEZvcm1hdHRlZFJ1bGVNZXNzYWdlVmVyc2lvbk9uZSlEZWVwQ2xvbmVDb3JlKCk7DQogICAgICAgIH0NCg0KICAgICAgICBwcml2YXRlIElTYXJpZk5vZGVWZXJzaW9uT25lIERlZXBDbG9uZUNvcmUoKQ0KICAgICAgICB7DQogICAgICAgICAgICByZXR1cm4gbmV3IEZvcm1hdHRlZFJ1bGVNZXNzYWdlVmVyc2lvbk9uZSh0aGlzKTsNCiAgICAgICAgfQ0KDQogICAgICAgIHByaXZhdGUgdm9pZCBJbml0KHN0cmluZyBmb3JtYXRJZCwgSUVudW1lcmFibGU8c3RyaW5nPiBhcmd1bWVudHMpDQogICAgICAgIHsNCiAgICAgICAgICAgIEZvcm1hdElkID0gZm9ybWF0SWQ7DQogICAgICAgICAgICBpZiAoYXJndW1lbnRzICE9IG51bGwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgdmFyIGRlc3RpbmF0aW9uXzAgPSBuZXcgTGlzdDxzdHJpbmc+KCk7DQogICAgICAgICAgICAgICAgZm9yZWFjaCAodmFyIHZhbHVlXzAgaW4gYXJndW1lbnRzKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgZGVzdGluYXRpb25fMC5BZGQodmFsdWVfMCk7DQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgQXJndW1lbnRzID0gZGVzdGluYXRpb25fMDsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgIH0NCn0=" + { + "ruleId": "CA1702", + "level": "error", + "message": { + "text": "The compound word 'PreRelease' in member name 'VersionConstants.PreRelease' exists as a discrete term. If your usage is intended to be single word, case it as 'Prerelease' or strip the first token entirely if it represents any sort of Hungarian notation.", + "id": "MemberShouldBeDiscreteTerm" }, - "hashes": [ - { - "value": "599DE927343376F731438551B02A6A20", - "algorithm": "md5" - }, - { - "value": "AED2B7A2B64184A50ADD032FF66A45CDBA7AACD8", - "algorithm": "sha-1" - }, + "locations": [ { - "value": "DE887CE020831B55D8190C800BE4CFC8251C45194E6AF6AF26CF8B36FDA33A73", - "algorithm": "sha-256" + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Microsoft.Json.Schema.dll", + "uriBaseId": "$(ProjectDir)", + "index": 1 + } + }, + "logicalLocations": [ + { + "index": 103, + "fullyQualifiedName": "microsoft.json.schema.dll!Microsoft.Json.Schema.VersionConstants.PreRelease" + } + ] } - ] + ], + "partialFingerprints": { + "UniqueId": "PreRelease#MemberShouldBeDiscreteTerm" + }, + "properties": { + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" + } }, - "file:///E:/src/sarif-sdk-test/src/Sarif/VersionOne/Autogenerated/InvocationVersionOne.cs": { - "mimeType": "text/x-csharp", - "contents": { - "binary": "Ly8gQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQuICBBbGwgUmlnaHRzIFJlc2VydmVkLg0KLy8gTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlLiBTZWUgTElDRU5TRSBmaWxlIGluIHRoZSBwcm9qZWN0IHJvb3QgZm9yIGZ1bGwgbGljZW5zZSBpbmZvcm1hdGlvbi4NCg0KdXNpbmcgU3lzdGVtOw0KdXNpbmcgU3lzdGVtLkNvZGVEb20uQ29tcGlsZXI7DQp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsNCnVzaW5nIFN5c3RlbS5SdW50aW1lLlNlcmlhbGl6YXRpb247DQp1c2luZyBNaWNyb3NvZnQuQ29kZUFuYWx5c2lzLlNhcmlmLlJlYWRlcnM7DQoNCm5hbWVzcGFjZSBNaWNyb3NvZnQuQ29kZUFuYWx5c2lzLlNhcmlmLlZlcnNpb25PbmUNCnsNCiAgICAvLy8gPHN1bW1hcnk+DQogICAgLy8vIFRoZSBydW50aW1lIGVudmlyb25tZW50IG9mIHRoZSBhbmFseXNpcyB0b29sIHJ1bi4NCiAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgIFtEYXRhQ29udHJhY3RdDQogICAgW0dlbmVyYXRlZENvZGUoIk1pY3Jvc29mdC5Kc29uLlNjaGVtYS5Ub0RvdE5ldCIsICIwLjUyLjAuMCIpXQ0KICAgIHB1YmxpYyBwYXJ0aWFsIGNsYXNzIEludm9jYXRpb25WZXJzaW9uT25lIDogUHJvcGVydHlCYWdIb2xkZXIsIElTYXJpZk5vZGVWZXJzaW9uT25lDQogICAgew0KICAgICAgICBwdWJsaWMgc3RhdGljIElFcXVhbGl0eUNvbXBhcmVyPEludm9jYXRpb25WZXJzaW9uT25lPiBWYWx1ZUNvbXBhcmVyID0+IEludm9jYXRpb25WZXJzaW9uT25lRXF1YWxpdHlDb21wYXJlci5JbnN0YW5jZTsNCg0KICAgICAgICBwdWJsaWMgYm9vbCBWYWx1ZUVxdWFscyhJbnZvY2F0aW9uVmVyc2lvbk9uZSBvdGhlcikgPT4gVmFsdWVDb21wYXJlci5FcXVhbHModGhpcywgb3RoZXIpOw0KICAgICAgICBwdWJsaWMgaW50IFZhbHVlR2V0SGFzaENvZGUoKSA9PiBWYWx1ZUNvbXBhcmVyLkdldEhhc2hDb2RlKHRoaXMpOw0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIEdldHMgYSB2YWx1ZSBpbmRpY2F0aW5nIHRoZSB0eXBlIG9mIG9iamVjdCBpbXBsZW1lbnRpbmcgPHNlZSBjcmVmPSJJU2FyaWZOb2RlVmVyc2lvbk9uZSIgLz4uDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIHB1YmxpYyBTYXJpZk5vZGVLaW5kVmVyc2lvbk9uZSBTYXJpZk5vZGVLaW5kVmVyc2lvbk9uZQ0KICAgICAgICB7DQogICAgICAgICAgICBnZXQNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gU2FyaWZOb2RlS2luZFZlcnNpb25PbmUuSW52b2NhdGlvblZlcnNpb25PbmU7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBUaGUgY29tbWFuZCBsaW5lIHVzZWQgdG8gaW52b2tlIHRoZSB0b29sLg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICBbRGF0YU1lbWJlcihOYW1lID0gImNvbW1hbmRMaW5lIiwgSXNSZXF1aXJlZCA9IGZhbHNlLCBFbWl0RGVmYXVsdFZhbHVlID0gZmFsc2UpXQ0KICAgICAgICBwdWJsaWMgc3RyaW5nIENvbW1hbmRMaW5lIHsgZ2V0OyBzZXQ7IH0NCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBUaGUgY29udGVudHMgb2YgYW55IHJlc3BvbnNlIGZpbGVzIHNwZWNpZmllZCBvbiB0aGUgdG9vbCdzIGNvbW1hbmQgbGluZS4NCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgW0RhdGFNZW1iZXIoTmFtZSA9ICJyZXNwb25zZUZpbGVzIiwgSXNSZXF1aXJlZCA9IGZhbHNlLCBFbWl0RGVmYXVsdFZhbHVlID0gZmFsc2UpXQ0KICAgICAgICBwdWJsaWMgSURpY3Rpb25hcnk8c3RyaW5nLCBzdHJpbmc+IFJlc3BvbnNlRmlsZXMgeyBnZXQ7IHNldDsgfQ0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIFRoZSBkYXRlIGFuZCB0aW1lIGF0IHdoaWNoIHRoZSBydW4gc3RhcnRlZC4gU2VlICJEYXRlL3RpbWUgcHJvcGVydGllcyIgaW4gdGhlIFNBUklGIHNwZWMgZm9yIHRoZSByZXF1aXJlZCBmb3JtYXQuDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIFtEYXRhTWVtYmVyKE5hbWUgPSAic3RhcnRUaW1lIiwgSXNSZXF1aXJlZCA9IGZhbHNlLCBFbWl0RGVmYXVsdFZhbHVlID0gZmFsc2UpXQ0KICAgICAgICBwdWJsaWMgRGF0ZVRpbWUgU3RhcnRUaW1lIHsgZ2V0OyBzZXQ7IH0NCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBUaGUgZGF0ZSBhbmQgdGltZSBhdCB3aGljaCB0aGUgcnVuIGVuZGVkLiBTZWUgIkRhdGUvdGltZSBwcm9wZXJ0aWVzIiBpbiB0aGUgIFNBUklGIHNwZWMgZm9yIHRoZSByZXF1aXJlZCBmb3JtYXQuDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIFtEYXRhTWVtYmVyKE5hbWUgPSAiZW5kVGltZSIsIElzUmVxdWlyZWQgPSBmYWxzZSwgRW1pdERlZmF1bHRWYWx1ZSA9IGZhbHNlKV0NCiAgICAgICAgcHVibGljIERhdGVUaW1lIEVuZFRpbWUgeyBnZXQ7IHNldDsgfQ0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIFRoZSBtYWNoaW5lIHRoYXQgaG9zdGVkIHRoZSBhbmFseXNpcyB0b29sIHJ1bi4NCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgW0RhdGFNZW1iZXIoTmFtZSA9ICJtYWNoaW5lIiwgSXNSZXF1aXJlZCA9IGZhbHNlLCBFbWl0RGVmYXVsdFZhbHVlID0gZmFsc2UpXQ0KICAgICAgICBwdWJsaWMgc3RyaW5nIE1hY2hpbmUgeyBnZXQ7IHNldDsgfQ0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIFRoZSBhY2NvdW50IHRoYXQgcmFuIHRoZSBhbmFseXNpcyB0b29sLg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICBbRGF0YU1lbWJlcihOYW1lID0gImFjY291bnQiLCBJc1JlcXVpcmVkID0gZmFsc2UsIEVtaXREZWZhdWx0VmFsdWUgPSBmYWxzZSldDQogICAgICAgIHB1YmxpYyBzdHJpbmcgQWNjb3VudCB7IGdldDsgc2V0OyB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gVGhlIHByb2Nlc3MgaWQgZm9yIHRoZSBhbmFseXNpcyB0b29sIHJ1bi4NCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgW0RhdGFNZW1iZXIoTmFtZSA9ICJwcm9jZXNzSWQiLCBJc1JlcXVpcmVkID0gZmFsc2UsIEVtaXREZWZhdWx0VmFsdWUgPSBmYWxzZSldDQogICAgICAgIHB1YmxpYyBpbnQgUHJvY2Vzc0lkIHsgZ2V0OyBzZXQ7IH0NCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBUaGUgZnVsbHkgcXVhbGlmaWVkIHBhdGggdG8gdGhlIGFuYWx5c2lzIHRvb2wuDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIFtEYXRhTWVtYmVyKE5hbWUgPSAiZmlsZU5hbWUiLCBJc1JlcXVpcmVkID0gZmFsc2UsIEVtaXREZWZhdWx0VmFsdWUgPSBmYWxzZSldDQogICAgICAgIHB1YmxpYyBzdHJpbmcgRmlsZU5hbWUgeyBnZXQ7IHNldDsgfQ0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIFRoZSB3b3JraW5nIGRpcmVjdG9yeSBmb3IgdGhlIGFuYWx5c2lzIHJvb2wgcnVuLg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICBbRGF0YU1lbWJlcihOYW1lID0gIndvcmtpbmdEaXJlY3RvcnkiLCBJc1JlcXVpcmVkID0gZmFsc2UsIEVtaXREZWZhdWx0VmFsdWUgPSBmYWxzZSldDQogICAgICAgIHB1YmxpYyBzdHJpbmcgV29ya2luZ0RpcmVjdG9yeSB7IGdldDsgc2V0OyB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gVGhlIGVudmlyb25tZW50IHZhcmlhYmxlcyBhc3NvY2lhdGVkIHdpdGggdGhlIGFuYWx5c2lzIHRvb2wgcHJvY2VzcywgZXhwcmVzc2VkIGFzIGtleS92YWx1ZSBwYWlycy4NCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgW0RhdGFNZW1iZXIoTmFtZSA9ICJlbnZpcm9ubWVudFZhcmlhYmxlcyIsIElzUmVxdWlyZWQgPSBmYWxzZSwgRW1pdERlZmF1bHRWYWx1ZSA9IGZhbHNlKV0NCiAgICAgICAgcHVibGljIElEaWN0aW9uYXJ5PHN0cmluZywgc3RyaW5nPiBFbnZpcm9ubWVudFZhcmlhYmxlcyB7IGdldDsgc2V0OyB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gS2V5L3ZhbHVlIHBhaXJzIHRoYXQgcHJvdmlkZSBhZGRpdGlvbmFsIGluZm9ybWF0aW9uIGFib3V0IHRoZSBydW4uDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIFtEYXRhTWVtYmVyKE5hbWUgPSAicHJvcGVydGllcyIsIElzUmVxdWlyZWQgPSBmYWxzZSwgRW1pdERlZmF1bHRWYWx1ZSA9IGZhbHNlKV0NCiAgICAgICAgaW50ZXJuYWwgb3ZlcnJpZGUgSURpY3Rpb25hcnk8c3RyaW5nLCBTZXJpYWxpemVkUHJvcGVydHlJbmZvPiBQcm9wZXJ0aWVzIHsgZ2V0OyBzZXQ7IH0NCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBJbml0aWFsaXplcyBhIG5ldyBpbnN0YW5jZSBvZiB0aGUgPHNlZSBjcmVmPSJJbnZvY2F0aW9uVmVyc2lvbk9uZSIgLz4gY2xhc3MuDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIHB1YmxpYyBJbnZvY2F0aW9uVmVyc2lvbk9uZSgpDQogICAgICAgIHsNCiAgICAgICAgfQ0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIEluaXRpYWxpemVzIGEgbmV3IGluc3RhbmNlIG9mIHRoZSA8c2VlIGNyZWY9Ikludm9jYXRpb25WZXJzaW9uT25lIiAvPiBjbGFzcyBmcm9tIHRoZSBzdXBwbGllZCB2YWx1ZXMuDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIC8vLyA8cGFyYW0gbmFtZT0iY29tbWFuZExpbmUiPg0KICAgICAgICAvLy8gQW4gaW5pdGlhbGl6YXRpb24gdmFsdWUgZm9yIHRoZSA8c2VlIGNyZWY9IlA6IENvbW1hbmRMaW5lIiAvPiBwcm9wZXJ0eS4NCiAgICAgICAgLy8vIDwvcGFyYW0+DQogICAgICAgIC8vLyA8cGFyYW0gbmFtZT0icmVzcG9uc2VGaWxlcyI+DQogICAgICAgIC8vLyBBbiBpbml0aWFsaXphdGlvbiB2YWx1ZSBmb3IgdGhlIDxzZWUgY3JlZj0iUDogUmVzcG9uc2VGaWxlcyIgLz4gcHJvcGVydHkuDQogICAgICAgIC8vLyA8L3BhcmFtPg0KICAgICAgICAvLy8gPHBhcmFtIG5hbWU9InN0YXJ0VGltZSI+DQogICAgICAgIC8vLyBBbiBpbml0aWFsaXphdGlvbiB2YWx1ZSBmb3IgdGhlIDxzZWUgY3JlZj0iUDogU3RhcnRUaW1lIiAvPiBwcm9wZXJ0eS4NCiAgICAgICAgLy8vIDwvcGFyYW0+DQogICAgICAgIC8vLyA8cGFyYW0gbmFtZT0iZW5kVGltZSI+DQogICAgICAgIC8vLyBBbiBpbml0aWFsaXphdGlvbiB2YWx1ZSBmb3IgdGhlIDxzZWUgY3JlZj0iUDogRW5kVGltZSIgLz4gcHJvcGVydHkuDQogICAgICAgIC8vLyA8L3BhcmFtPg0KICAgICAgICAvLy8gPHBhcmFtIG5hbWU9Im1hY2hpbmUiPg0KICAgICAgICAvLy8gQW4gaW5pdGlhbGl6YXRpb24gdmFsdWUgZm9yIHRoZSA8c2VlIGNyZWY9IlA6IE1hY2hpbmUiIC8+IHByb3BlcnR5Lg0KICAgICAgICAvLy8gPC9wYXJhbT4NCiAgICAgICAgLy8vIDxwYXJhbSBuYW1lPSJhY2NvdW50Ij4NCiAgICAgICAgLy8vIEFuIGluaXRpYWxpemF0aW9uIHZhbHVlIGZvciB0aGUgPHNlZSBjcmVmPSJQOiBBY2NvdW50IiAvPiBwcm9wZXJ0eS4NCiAgICAgICAgLy8vIDwvcGFyYW0+DQogICAgICAgIC8vLyA8cGFyYW0gbmFtZT0icHJvY2Vzc0lkIj4NCiAgICAgICAgLy8vIEFuIGluaXRpYWxpemF0aW9uIHZhbHVlIGZvciB0aGUgPHNlZSBjcmVmPSJQOiBQcm9jZXNzSWQiIC8+IHByb3BlcnR5Lg0KICAgICAgICAvLy8gPC9wYXJhbT4NCiAgICAgICAgLy8vIDxwYXJhbSBuYW1lPSJmaWxlTmFtZSI+DQogICAgICAgIC8vLyBBbiBpbml0aWFsaXphdGlvbiB2YWx1ZSBmb3IgdGhlIDxzZWUgY3JlZj0iUDogRmlsZU5hbWUiIC8+IHByb3BlcnR5Lg0KICAgICAgICAvLy8gPC9wYXJhbT4NCiAgICAgICAgLy8vIDxwYXJhbSBuYW1lPSJ3b3JraW5nRGlyZWN0b3J5Ij4NCiAgICAgICAgLy8vIEFuIGluaXRpYWxpemF0aW9uIHZhbHVlIGZvciB0aGUgPHNlZSBjcmVmPSJQOiBXb3JraW5nRGlyZWN0b3J5IiAvPiBwcm9wZXJ0eS4NCiAgICAgICAgLy8vIDwvcGFyYW0+DQogICAgICAgIC8vLyA8cGFyYW0gbmFtZT0iZW52aXJvbm1lbnRWYXJpYWJsZXMiPg0KICAgICAgICAvLy8gQW4gaW5pdGlhbGl6YXRpb24gdmFsdWUgZm9yIHRoZSA8c2VlIGNyZWY9IlA6IEVudmlyb25tZW50VmFyaWFibGVzIiAvPiBwcm9wZXJ0eS4NCiAgICAgICAgLy8vIDwvcGFyYW0+DQogICAgICAgIC8vLyA8cGFyYW0gbmFtZT0icHJvcGVydGllcyI+DQogICAgICAgIC8vLyBBbiBpbml0aWFsaXphdGlvbiB2YWx1ZSBmb3IgdGhlIDxzZWUgY3JlZj0iUDogUHJvcGVydGllcyIgLz4gcHJvcGVydHkuDQogICAgICAgIC8vLyA8L3BhcmFtPg0KICAgICAgICBwdWJsaWMgSW52b2NhdGlvblZlcnNpb25PbmUoc3RyaW5nIGNvbW1hbmRMaW5lLCBJRGljdGlvbmFyeTxzdHJpbmcsIHN0cmluZz4gcmVzcG9uc2VGaWxlcywgRGF0ZVRpbWUgc3RhcnRUaW1lLCBEYXRlVGltZSBlbmRUaW1lLCBzdHJpbmcgbWFjaGluZSwgc3RyaW5nIGFjY291bnQsIGludCBwcm9jZXNzSWQsIHN0cmluZyBmaWxlTmFtZSwgc3RyaW5nIHdvcmtpbmdEaXJlY3RvcnksIElEaWN0aW9uYXJ5PHN0cmluZywgc3RyaW5nPiBlbnZpcm9ubWVudFZhcmlhYmxlcywgSURpY3Rpb25hcnk8c3RyaW5nLCBTZXJpYWxpemVkUHJvcGVydHlJbmZvPiBwcm9wZXJ0aWVzKQ0KICAgICAgICB7DQogICAgICAgICAgICBJbml0KGNvbW1hbmRMaW5lLCByZXNwb25zZUZpbGVzLCBzdGFydFRpbWUsIGVuZFRpbWUsIG1hY2hpbmUsIGFjY291bnQsIHByb2Nlc3NJZCwgZmlsZU5hbWUsIHdvcmtpbmdEaXJlY3RvcnksIGVudmlyb25tZW50VmFyaWFibGVzLCBwcm9wZXJ0aWVzKTsNCiAgICAgICAgfQ0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIEluaXRpYWxpemVzIGEgbmV3IGluc3RhbmNlIG9mIHRoZSA8c2VlIGNyZWY9Ikludm9jYXRpb25WZXJzaW9uT25lIiAvPiBjbGFzcyBmcm9tIHRoZSBzcGVjaWZpZWQgaW5zdGFuY2UuDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIC8vLyA8cGFyYW0gbmFtZT0ib3RoZXIiPg0KICAgICAgICAvLy8gVGhlIGluc3RhbmNlIGZyb20gd2hpY2ggdGhlIG5ldyBpbnN0YW5jZSBpcyB0byBiZSBpbml0aWFsaXplZC4NCiAgICAgICAgLy8vIDwvcGFyYW0+DQogICAgICAgIC8vLyA8ZXhjZXB0aW9uIGNyZWY9IkFyZ3VtZW50TnVsbEV4Y2VwdGlvbiI+DQogICAgICAgIC8vLyBUaHJvd24gaWYgPHBhcmFtcmVmIG5hbWU9Im90aGVyIiAvPiBpcyBudWxsLg0KICAgICAgICAvLy8gPC9leGNlcHRpb24+DQogICAgICAgIHB1YmxpYyBJbnZvY2F0aW9uVmVyc2lvbk9uZShJbnZvY2F0aW9uVmVyc2lvbk9uZSBvdGhlcikNCiAgICAgICAgew0KICAgICAgICAgICAgaWYgKG90aGVyID09IG51bGwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgdGhyb3cgbmV3IEFyZ3VtZW50TnVsbEV4Y2VwdGlvbihuYW1lb2Yob3RoZXIpKTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgSW5pdChvdGhlci5Db21tYW5kTGluZSwgb3RoZXIuUmVzcG9uc2VGaWxlcywgb3RoZXIuU3RhcnRUaW1lLCBvdGhlci5FbmRUaW1lLCBvdGhlci5NYWNoaW5lLCBvdGhlci5BY2NvdW50LCBvdGhlci5Qcm9jZXNzSWQsIG90aGVyLkZpbGVOYW1lLCBvdGhlci5Xb3JraW5nRGlyZWN0b3J5LCBvdGhlci5FbnZpcm9ubWVudFZhcmlhYmxlcywgb3RoZXIuUHJvcGVydGllcyk7DQogICAgICAgIH0NCg0KICAgICAgICBJU2FyaWZOb2RlVmVyc2lvbk9uZSBJU2FyaWZOb2RlVmVyc2lvbk9uZS5EZWVwQ2xvbmUoKQ0KICAgICAgICB7DQogICAgICAgICAgICByZXR1cm4gRGVlcENsb25lQ29yZSgpOw0KICAgICAgICB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gQ3JlYXRlcyBhIGRlZXAgY29weSBvZiB0aGlzIGluc3RhbmNlLg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICBwdWJsaWMgSW52b2NhdGlvblZlcnNpb25PbmUgRGVlcENsb25lKCkNCiAgICAgICAgew0KICAgICAgICAgICAgcmV0dXJuIChJbnZvY2F0aW9uVmVyc2lvbk9uZSlEZWVwQ2xvbmVDb3JlKCk7DQogICAgICAgIH0NCg0KICAgICAgICBwcml2YXRlIElTYXJpZk5vZGVWZXJzaW9uT25lIERlZXBDbG9uZUNvcmUoKQ0KICAgICAgICB7DQogICAgICAgICAgICByZXR1cm4gbmV3IEludm9jYXRpb25WZXJzaW9uT25lKHRoaXMpOw0KICAgICAgICB9DQoNCiAgICAgICAgcHJpdmF0ZSB2b2lkIEluaXQoc3RyaW5nIGNvbW1hbmRMaW5lLCBJRGljdGlvbmFyeTxzdHJpbmcsIHN0cmluZz4gcmVzcG9uc2VGaWxlcywgRGF0ZVRpbWUgc3RhcnRUaW1lLCBEYXRlVGltZSBlbmRUaW1lLCBzdHJpbmcgbWFjaGluZSwgc3RyaW5nIGFjY291bnQsIGludCBwcm9jZXNzSWQsIHN0cmluZyBmaWxlTmFtZSwgc3RyaW5nIHdvcmtpbmdEaXJlY3RvcnksIElEaWN0aW9uYXJ5PHN0cmluZywgc3RyaW5nPiBlbnZpcm9ubWVudFZhcmlhYmxlcywgSURpY3Rpb25hcnk8c3RyaW5nLCBTZXJpYWxpemVkUHJvcGVydHlJbmZvPiBwcm9wZXJ0aWVzKQ0KICAgICAgICB7DQogICAgICAgICAgICBDb21tYW5kTGluZSA9IGNvbW1hbmRMaW5lOw0KICAgICAgICAgICAgaWYgKHJlc3BvbnNlRmlsZXMgIT0gbnVsbCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBSZXNwb25zZUZpbGVzID0gbmV3IERpY3Rpb25hcnk8c3RyaW5nLCBzdHJpbmc+KHJlc3BvbnNlRmlsZXMpOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBTdGFydFRpbWUgPSBzdGFydFRpbWU7DQogICAgICAgICAgICBFbmRUaW1lID0gZW5kVGltZTsNCiAgICAgICAgICAgIE1hY2hpbmUgPSBtYWNoaW5lOw0KICAgICAgICAgICAgQWNjb3VudCA9IGFjY291bnQ7DQogICAgICAgICAgICBQcm9jZXNzSWQgPSBwcm9jZXNzSWQ7DQogICAgICAgICAgICBGaWxlTmFtZSA9IGZpbGVOYW1lOw0KICAgICAgICAgICAgV29ya2luZ0RpcmVjdG9yeSA9IHdvcmtpbmdEaXJlY3Rvcnk7DQogICAgICAgICAgICBpZiAoZW52aXJvbm1lbnRWYXJpYWJsZXMgIT0gbnVsbCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBFbnZpcm9ubWVudFZhcmlhYmxlcyA9IG5ldyBEaWN0aW9uYXJ5PHN0cmluZywgc3RyaW5nPihlbnZpcm9ubWVudFZhcmlhYmxlcyk7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIGlmIChwcm9wZXJ0aWVzICE9IG51bGwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgUHJvcGVydGllcyA9IG5ldyBEaWN0aW9uYXJ5PHN0cmluZywgU2VyaWFsaXplZFByb3BlcnR5SW5mbz4ocHJvcGVydGllcyk7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCiAgICB9DQp9" + { + "ruleId": "CA1014", + "level": "error", + "message": { + "text": "Mark 'Microsoft.Json.Schema.Validation.dll' with CLSCompliant(true) because it exposes externally visible types." }, - "hashes": [ - { - "value": "C850A96F15A778EAB995FE9C2872DA2A", - "algorithm": "md5" - }, - { - "value": "3EE17601364FD68E0787D9851978F2E162A1E458", - "algorithm": "sha-1" - }, + "locations": [ { - "value": "3D2B17262BB83C20489EDA6647B58C446F309A27112AD0543A9FA6531150B515", - "algorithm": "sha-256" + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Microsoft.Json.Schema.Validation.dll", + "uriBaseId": "$(ProjectDir)", + "index": 2 + } + }, + "logicalLocations": [ + { + "index": 104, + "fullyQualifiedName": "microsoft.json.schema.validation.dll" + } + ] } - ] + ], + "properties": { + "Category": "Microsoft.Design", + "FixCategory": "NonBreaking" + } }, - "file:///E:/src/sarif-sdk-test/src/Sarif/VersionOne/Autogenerated/InvocationVersionOneEqualityComparer.cs": { - "mimeType": "text/x-csharp", - "contents": { - "binary": "Ly8gQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQuICBBbGwgUmlnaHRzIFJlc2VydmVkLg0KLy8gTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlLiBTZWUgTElDRU5TRSBmaWxlIGluIHRoZSBwcm9qZWN0IHJvb3QgZm9yIGZ1bGwgbGljZW5zZSBpbmZvcm1hdGlvbi4NCg0KdXNpbmcgU3lzdGVtOw0KdXNpbmcgU3lzdGVtLkNvZGVEb20uQ29tcGlsZXI7DQp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsNCnVzaW5nIE1pY3Jvc29mdC5Db2RlQW5hbHlzaXMuU2FyaWYuUmVhZGVyczsNCg0KbmFtZXNwYWNlIE1pY3Jvc29mdC5Db2RlQW5hbHlzaXMuU2FyaWYuVmVyc2lvbk9uZQ0Kew0KICAgIC8vLyA8c3VtbWFyeT4NCiAgICAvLy8gRGVmaW5lcyBtZXRob2RzIHRvIHN1cHBvcnQgdGhlIGNvbXBhcmlzb24gb2Ygb2JqZWN0cyBvZiB0eXBlIEludm9jYXRpb25WZXJzaW9uT25lIGZvciBlcXVhbGl0eS4NCiAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgIFtHZW5lcmF0ZWRDb2RlKCJNaWNyb3NvZnQuSnNvbi5TY2hlbWEuVG9Eb3ROZXQiLCAiMC41Mi4wLjAiKV0NCiAgICBpbnRlcm5hbCBzZWFsZWQgY2xhc3MgSW52b2NhdGlvblZlcnNpb25PbmVFcXVhbGl0eUNvbXBhcmVyIDogSUVxdWFsaXR5Q29tcGFyZXI8SW52b2NhdGlvblZlcnNpb25PbmU+DQogICAgew0KICAgICAgICBpbnRlcm5hbCBzdGF0aWMgcmVhZG9ubHkgSW52b2NhdGlvblZlcnNpb25PbmVFcXVhbGl0eUNvbXBhcmVyIEluc3RhbmNlID0gbmV3IEludm9jYXRpb25WZXJzaW9uT25lRXF1YWxpdHlDb21wYXJlcigpOw0KDQogICAgICAgIHB1YmxpYyBib29sIEVxdWFscyhJbnZvY2F0aW9uVmVyc2lvbk9uZSBsZWZ0LCBJbnZvY2F0aW9uVmVyc2lvbk9uZSByaWdodCkNCiAgICAgICAgew0KICAgICAgICAgICAgaWYgKFJlZmVyZW5jZUVxdWFscyhsZWZ0LCByaWdodCkpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIGlmIChSZWZlcmVuY2VFcXVhbHMobGVmdCwgbnVsbCkgfHwgUmVmZXJlbmNlRXF1YWxzKHJpZ2h0LCBudWxsKSkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIGlmIChsZWZ0LkNvbW1hbmRMaW5lICE9IHJpZ2h0LkNvbW1hbmRMaW5lKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgaWYgKCFvYmplY3QuUmVmZXJlbmNlRXF1YWxzKGxlZnQuUmVzcG9uc2VGaWxlcywgcmlnaHQuUmVzcG9uc2VGaWxlcykpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgaWYgKGxlZnQuUmVzcG9uc2VGaWxlcyA9PSBudWxsIHx8IHJpZ2h0LlJlc3BvbnNlRmlsZXMgPT0gbnVsbCB8fCBsZWZ0LlJlc3BvbnNlRmlsZXMuQ291bnQgIT0gcmlnaHQuUmVzcG9uc2VGaWxlcy5Db3VudCkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICBmb3JlYWNoICh2YXIgdmFsdWVfMCBpbiBsZWZ0LlJlc3BvbnNlRmlsZXMpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBzdHJpbmcgdmFsdWVfMTsNCiAgICAgICAgICAgICAgICAgICAgaWYgKCFyaWdodC5SZXNwb25zZUZpbGVzLlRyeUdldFZhbHVlKHZhbHVlXzAuS2V5LCBvdXQgdmFsdWVfMSkpDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZV8wLlZhbHVlICE9IHZhbHVlXzEpDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgaWYgKGxlZnQuU3RhcnRUaW1lICE9IHJpZ2h0LlN0YXJ0VGltZSkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIGlmIChsZWZ0LkVuZFRpbWUgIT0gcmlnaHQuRW5kVGltZSkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIGlmIChsZWZ0Lk1hY2hpbmUgIT0gcmlnaHQuTWFjaGluZSkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIGlmIChsZWZ0LkFjY291bnQgIT0gcmlnaHQuQWNjb3VudCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIGlmIChsZWZ0LlByb2Nlc3NJZCAhPSByaWdodC5Qcm9jZXNzSWQpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBpZiAobGVmdC5GaWxlTmFtZSAhPSByaWdodC5GaWxlTmFtZSkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIGlmIChsZWZ0LldvcmtpbmdEaXJlY3RvcnkgIT0gcmlnaHQuV29ya2luZ0RpcmVjdG9yeSkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIGlmICghb2JqZWN0LlJlZmVyZW5jZUVxdWFscyhsZWZ0LkVudmlyb25tZW50VmFyaWFibGVzLCByaWdodC5FbnZpcm9ubWVudFZhcmlhYmxlcykpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgaWYgKGxlZnQuRW52aXJvbm1lbnRWYXJpYWJsZXMgPT0gbnVsbCB8fCByaWdodC5FbnZpcm9ubWVudFZhcmlhYmxlcyA9PSBudWxsIHx8IGxlZnQuRW52aXJvbm1lbnRWYXJpYWJsZXMuQ291bnQgIT0gcmlnaHQuRW52aXJvbm1lbnRWYXJpYWJsZXMuQ291bnQpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgZm9yZWFjaCAodmFyIHZhbHVlXzIgaW4gbGVmdC5FbnZpcm9ubWVudFZhcmlhYmxlcykNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIHN0cmluZyB2YWx1ZV8zOw0KICAgICAgICAgICAgICAgICAgICBpZiAoIXJpZ2h0LkVudmlyb25tZW50VmFyaWFibGVzLlRyeUdldFZhbHVlKHZhbHVlXzIuS2V5LCBvdXQgdmFsdWVfMykpDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZV8yLlZhbHVlICE9IHZhbHVlXzMpDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgaWYgKCFvYmplY3QuUmVmZXJlbmNlRXF1YWxzKGxlZnQuUHJvcGVydGllcywgcmlnaHQuUHJvcGVydGllcykpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgaWYgKGxlZnQuUHJvcGVydGllcyA9PSBudWxsIHx8IHJpZ2h0LlByb3BlcnRpZXMgPT0gbnVsbCB8fCBsZWZ0LlByb3BlcnRpZXMuQ291bnQgIT0gcmlnaHQuUHJvcGVydGllcy5Db3VudCkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICBmb3JlYWNoICh2YXIgdmFsdWVfNCBpbiBsZWZ0LlByb3BlcnRpZXMpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBTZXJpYWxpemVkUHJvcGVydHlJbmZvIHZhbHVlXzU7DQogICAgICAgICAgICAgICAgICAgIGlmICghcmlnaHQuUHJvcGVydGllcy5UcnlHZXRWYWx1ZSh2YWx1ZV80LktleSwgb3V0IHZhbHVlXzUpKQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgICAgICBpZiAoIW9iamVjdC5FcXVhbHModmFsdWVfNC5WYWx1ZSwgdmFsdWVfNSkpDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgcmV0dXJuIHRydWU7DQogICAgICAgIH0NCg0KICAgICAgICBwdWJsaWMgaW50IEdldEhhc2hDb2RlKEludm9jYXRpb25WZXJzaW9uT25lIG9iaikNCiAgICAgICAgew0KICAgICAgICAgICAgaWYgKFJlZmVyZW5jZUVxdWFscyhvYmosIG51bGwpKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHJldHVybiAwOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBpbnQgcmVzdWx0ID0gMTc7DQogICAgICAgICAgICB1bmNoZWNrZWQNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBpZiAob2JqLkNvbW1hbmRMaW5lICE9IG51bGwpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSAocmVzdWx0ICogMzEpICsgb2JqLkNvbW1hbmRMaW5lLkdldEhhc2hDb2RlKCk7DQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgaWYgKG9iai5SZXNwb25zZUZpbGVzICE9IG51bGwpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAvLyBVc2UgeG9yIGZvciBkaWN0aW9uYXJpZXMgdG8gYmUgb3JkZXItaW5kZXBlbmRlbnQuDQogICAgICAgICAgICAgICAgICAgIGludCB4b3JfMCA9IDA7DQogICAgICAgICAgICAgICAgICAgIGZvcmVhY2ggKHZhciB2YWx1ZV82IGluIG9iai5SZXNwb25zZUZpbGVzKQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICB4b3JfMCBePSB2YWx1ZV82LktleS5HZXRIYXNoQ29kZSgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlXzYuVmFsdWUgIT0gbnVsbCkNCiAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB4b3JfMCBePSB2YWx1ZV82LlZhbHVlLkdldEhhc2hDb2RlKCk7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSAocmVzdWx0ICogMzEpICsgeG9yXzA7DQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgcmVzdWx0ID0gKHJlc3VsdCAqIDMxKSArIG9iai5TdGFydFRpbWUuR2V0SGFzaENvZGUoKTsNCiAgICAgICAgICAgICAgICByZXN1bHQgPSAocmVzdWx0ICogMzEpICsgb2JqLkVuZFRpbWUuR2V0SGFzaENvZGUoKTsNCiAgICAgICAgICAgICAgICBpZiAob2JqLk1hY2hpbmUgIT0gbnVsbCkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IChyZXN1bHQgKiAzMSkgKyBvYmouTWFjaGluZS5HZXRIYXNoQ29kZSgpOw0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgIGlmIChvYmouQWNjb3VudCAhPSBudWxsKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gKHJlc3VsdCAqIDMxKSArIG9iai5BY2NvdW50LkdldEhhc2hDb2RlKCk7DQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgcmVzdWx0ID0gKHJlc3VsdCAqIDMxKSArIG9iai5Qcm9jZXNzSWQuR2V0SGFzaENvZGUoKTsNCiAgICAgICAgICAgICAgICBpZiAob2JqLkZpbGVOYW1lICE9IG51bGwpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSAocmVzdWx0ICogMzEpICsgb2JqLkZpbGVOYW1lLkdldEhhc2hDb2RlKCk7DQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgaWYgKG9iai5Xb3JraW5nRGlyZWN0b3J5ICE9IG51bGwpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSAocmVzdWx0ICogMzEpICsgb2JqLldvcmtpbmdEaXJlY3RvcnkuR2V0SGFzaENvZGUoKTsNCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICBpZiAob2JqLkVudmlyb25tZW50VmFyaWFibGVzICE9IG51bGwpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAvLyBVc2UgeG9yIGZvciBkaWN0aW9uYXJpZXMgdG8gYmUgb3JkZXItaW5kZXBlbmRlbnQuDQogICAgICAgICAgICAgICAgICAgIGludCB4b3JfMSA9IDA7DQogICAgICAgICAgICAgICAgICAgIGZvcmVhY2ggKHZhciB2YWx1ZV83IGluIG9iai5FbnZpcm9ubWVudFZhcmlhYmxlcykNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgeG9yXzEgXj0gdmFsdWVfNy5LZXkuR2V0SGFzaENvZGUoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZV83LlZhbHVlICE9IG51bGwpDQogICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgeG9yXzEgXj0gdmFsdWVfNy5WYWx1ZS5HZXRIYXNoQ29kZSgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gKHJlc3VsdCAqIDMxKSArIHhvcl8xOw0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgIGlmIChvYmouUHJvcGVydGllcyAhPSBudWxsKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgLy8gVXNlIHhvciBmb3IgZGljdGlvbmFyaWVzIHRvIGJlIG9yZGVyLWluZGVwZW5kZW50Lg0KICAgICAgICAgICAgICAgICAgICBpbnQgeG9yXzIgPSAwOw0KICAgICAgICAgICAgICAgICAgICBmb3JlYWNoICh2YXIgdmFsdWVfOCBpbiBvYmouUHJvcGVydGllcykNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgeG9yXzIgXj0gdmFsdWVfOC5LZXkuR2V0SGFzaENvZGUoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZV84LlZhbHVlICE9IG51bGwpDQogICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgeG9yXzIgXj0gdmFsdWVfOC5WYWx1ZS5HZXRIYXNoQ29kZSgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gKHJlc3VsdCAqIDMxKSArIHhvcl8yOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsNCiAgICAgICAgfQ0KICAgIH0NCn0=" + { + "ruleId": "CA1824", + "message": { + "text": "Because assembly 'Microsoft.Json.Schema.Validation.dll' contains a ResX-based resource file, mark it with the NeutralResourcesLanguage attribute, specifying the language of the resources within the assembly. This could improve lookup performance the first time a resource is retrieved." }, - "hashes": [ - { - "value": "5F2CA2B357CB0CD545A33192D7B34F49", - "algorithm": "md5" - }, - { - "value": "2E9E5508A353E2909C44AA875BBCE4C5FC59A9A6", - "algorithm": "sha-1" - }, + "locations": [ { - "value": "C11F0972425273E41A1292A1666392DE9D459B82B897024702125BE6722C8763", - "algorithm": "sha-256" + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Microsoft.Json.Schema.Validation.dll", + "uriBaseId": "$(ProjectDir)", + "index": 2 + } + }, + "logicalLocations": [ + { + "index": 104, + "fullyQualifiedName": "microsoft.json.schema.validation.dll" + } + ] } - ] + ], + "properties": { + "Category": "Microsoft.Performance", + "FixCategory": "NonBreaking" + } }, - "file:///E:/src/sarif-sdk-test/src/Sarif/VersionOne/Autogenerated/LocationVersionOne.cs": { - "mimeType": "text/x-csharp", - "contents": { - "binary": "Ly8gQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQuICBBbGwgUmlnaHRzIFJlc2VydmVkLg0KLy8gTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlLiBTZWUgTElDRU5TRSBmaWxlIGluIHRoZSBwcm9qZWN0IHJvb3QgZm9yIGZ1bGwgbGljZW5zZSBpbmZvcm1hdGlvbi4NCg0KdXNpbmcgU3lzdGVtOw0KdXNpbmcgU3lzdGVtLkNvZGVEb20uQ29tcGlsZXI7DQp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsNCnVzaW5nIFN5c3RlbS5SdW50aW1lLlNlcmlhbGl6YXRpb247DQp1c2luZyBNaWNyb3NvZnQuQ29kZUFuYWx5c2lzLlNhcmlmLlJlYWRlcnM7DQoNCm5hbWVzcGFjZSBNaWNyb3NvZnQuQ29kZUFuYWx5c2lzLlNhcmlmLlZlcnNpb25PbmUNCnsNCiAgICAvLy8gPHN1bW1hcnk+DQogICAgLy8vIFRoZSBsb2NhdGlvbiB3aGVyZSBhbiBhbmFseXNpcyB0b29sIHByb2R1Y2VkIGEgcmVzdWx0Lg0KICAgIC8vLyA8L3N1bW1hcnk+DQogICAgW0RhdGFDb250cmFjdF0NCiAgICBbR2VuZXJhdGVkQ29kZSgiTWljcm9zb2Z0Lkpzb24uU2NoZW1hLlRvRG90TmV0IiwgIjAuNTIuMC4wIildDQogICAgcHVibGljIHBhcnRpYWwgY2xhc3MgTG9jYXRpb25WZXJzaW9uT25lIDogUHJvcGVydHlCYWdIb2xkZXIsIElTYXJpZk5vZGVWZXJzaW9uT25lDQogICAgew0KICAgICAgICBwdWJsaWMgc3RhdGljIElFcXVhbGl0eUNvbXBhcmVyPExvY2F0aW9uVmVyc2lvbk9uZT4gVmFsdWVDb21wYXJlciA9PiBMb2NhdGlvblZlcnNpb25PbmVFcXVhbGl0eUNvbXBhcmVyLkluc3RhbmNlOw0KDQogICAgICAgIHB1YmxpYyBib29sIFZhbHVlRXF1YWxzKExvY2F0aW9uVmVyc2lvbk9uZSBvdGhlcikgPT4gVmFsdWVDb21wYXJlci5FcXVhbHModGhpcywgb3RoZXIpOw0KICAgICAgICBwdWJsaWMgaW50IFZhbHVlR2V0SGFzaENvZGUoKSA9PiBWYWx1ZUNvbXBhcmVyLkdldEhhc2hDb2RlKHRoaXMpOw0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIEdldHMgYSB2YWx1ZSBpbmRpY2F0aW5nIHRoZSB0eXBlIG9mIG9iamVjdCBpbXBsZW1lbnRpbmcgPHNlZSBjcmVmPSJJU2FyaWZOb2RlVmVyc2lvbk9uZSIgLz4uDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIHB1YmxpYyBTYXJpZk5vZGVLaW5kVmVyc2lvbk9uZSBTYXJpZk5vZGVLaW5kVmVyc2lvbk9uZQ0KICAgICAgICB7DQogICAgICAgICAgICBnZXQNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gU2FyaWZOb2RlS2luZFZlcnNpb25PbmUuTG9jYXRpb25WZXJzaW9uT25lOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gSWRlbnRpZmllcyB0aGUgZmlsZSB0aGF0IHRoZSBhbmFseXNpcyB0b29sIHdhcyBpbnN0cnVjdGVkIHRvIHNjYW4uIFRoaXMgbmVlZCBub3QgYmUgdGhlIHNhbWUgYXMgdGhlIGZpbGUgd2hlcmUgdGhlIHJlc3VsdCBhY3R1YWxseSBvY2N1cnJlZC4NCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgW0RhdGFNZW1iZXIoTmFtZSA9ICJhbmFseXNpc1RhcmdldCIsIElzUmVxdWlyZWQgPSBmYWxzZSwgRW1pdERlZmF1bHRWYWx1ZSA9IGZhbHNlKV0NCiAgICAgICAgcHVibGljIFBoeXNpY2FsTG9jYXRpb25WZXJzaW9uT25lIEFuYWx5c2lzVGFyZ2V0IHsgZ2V0OyBzZXQ7IH0NCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBJZGVudGlmaWVzIHRoZSBmaWxlIHdoZXJlIHRoZSBhbmFseXNpcyB0b29sIHByb2R1Y2VkIHRoZSByZXN1bHQuDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIFtEYXRhTWVtYmVyKE5hbWUgPSAicmVzdWx0RmlsZSIsIElzUmVxdWlyZWQgPSBmYWxzZSwgRW1pdERlZmF1bHRWYWx1ZSA9IGZhbHNlKV0NCiAgICAgICAgcHVibGljIFBoeXNpY2FsTG9jYXRpb25WZXJzaW9uT25lIFJlc3VsdEZpbGUgeyBnZXQ7IHNldDsgfQ0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIFRoZSBodW1hbi1yZWFkYWJsZSBmdWxseSBxdWFsaWZpZWQgbmFtZSBvZiB0aGUgbG9naWNhbCBsb2NhdGlvbiB3aGVyZSB0aGUgYW5hbHlzaXMgdG9vbCBwcm9kdWNlZCB0aGUgcmVzdWx0LiBJZiAnbG9naWNhbExvY2F0aW9uS2V5JyBpcyBub3Qgc3BlY2lmaWVkLCB0aGlzIG1lbWJlciBpcyBjYW4gdXNlZCB0byByZXRyaWV2ZSB0aGUgbG9jYXRpb24gbG9naWNhbExvY2F0aW9uIGZyb20gdGhlIGxvZ2ljYWxMb2NhdGlvbnMgZGljdGlvbmFyeSwgaWYgb25lIGV4aXN0cy4NCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgW0RhdGFNZW1iZXIoTmFtZSA9ICJmdWxseVF1YWxpZmllZExvZ2ljYWxOYW1lIiwgSXNSZXF1aXJlZCA9IGZhbHNlLCBFbWl0RGVmYXVsdFZhbHVlID0gZmFsc2UpXQ0KICAgICAgICBwdWJsaWMgc3RyaW5nIEZ1bGx5UXVhbGlmaWVkTG9naWNhbE5hbWUgeyBnZXQ7IHNldDsgfQ0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIEEga2V5IHVzZWQgdG8gcmV0cmlldmUgdGhlIGxvY2F0aW9uIGxvZ2ljYWxMb2NhdGlvbiBmcm9tIHRoZSBsb2dpY2FsTG9jYXRpb25zIGRpY3Rpb25hcnksIHdoZW4gdGhlIHN0cmluZyBzcGVjaWZpZWQgYnkgJ2Z1bGx5UXVhbGlmaWVkTG9naWNhbE5hbWUnIGlzIG5vdCB1bmlxdWUuDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIFtEYXRhTWVtYmVyKE5hbWUgPSAibG9naWNhbExvY2F0aW9uS2V5IiwgSXNSZXF1aXJlZCA9IGZhbHNlLCBFbWl0RGVmYXVsdFZhbHVlID0gZmFsc2UpXQ0KICAgICAgICBwdWJsaWMgc3RyaW5nIExvZ2ljYWxMb2NhdGlvbktleSB7IGdldDsgc2V0OyB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gVGhlIG1hY2hpbmUtcmVhZGFibGUgZnVsbHkgcXVhbGlmaWVkIG5hbWUgZm9yIHRoZSBsb2dpY2FsIGxvY2F0aW9uIHdoZXJlIHRoZSBhbmFseXNpcyB0b29sIHByb2R1Y2VkIHRoZSByZXN1bHQsIHN1Y2ggYXMgdGhlIG1hbmdsZWQgZnVuY3Rpb24gbmFtZSBwcm92aWRlZCBieSBhIEMrKyBjb21waWxlciB0aGF0IGVuY29kZXMgY2FsbGluZyBjb252ZW50aW9uLCByZXR1cm4gdHlwZSBhbmQgb3RoZXIgZGV0YWlscyBhbG9uZyB3aXRoIHRoZSBmdW5jdGlvbiBuYW1lLg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICBbRGF0YU1lbWJlcihOYW1lID0gImRlY29yYXRlZE5hbWUiLCBJc1JlcXVpcmVkID0gZmFsc2UsIEVtaXREZWZhdWx0VmFsdWUgPSBmYWxzZSldDQogICAgICAgIHB1YmxpYyBzdHJpbmcgRGVjb3JhdGVkTmFtZSB7IGdldDsgc2V0OyB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gS2V5L3ZhbHVlIHBhaXJzIHRoYXQgcHJvdmlkZSBhZGRpdGlvbmFsIGluZm9ybWF0aW9uIGFib3V0IHRoZSBsb2NhdGlvbi4NCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgW0RhdGFNZW1iZXIoTmFtZSA9ICJwcm9wZXJ0aWVzIiwgSXNSZXF1aXJlZCA9IGZhbHNlLCBFbWl0RGVmYXVsdFZhbHVlID0gZmFsc2UpXQ0KICAgICAgICBpbnRlcm5hbCBvdmVycmlkZSBJRGljdGlvbmFyeTxzdHJpbmcsIFNlcmlhbGl6ZWRQcm9wZXJ0eUluZm8+IFByb3BlcnRpZXMgeyBnZXQ7IHNldDsgfQ0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIEluaXRpYWxpemVzIGEgbmV3IGluc3RhbmNlIG9mIHRoZSA8c2VlIGNyZWY9IkxvY2F0aW9uVmVyc2lvbk9uZSIgLz4gY2xhc3MuDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIHB1YmxpYyBMb2NhdGlvblZlcnNpb25PbmUoKQ0KICAgICAgICB7DQogICAgICAgIH0NCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBJbml0aWFsaXplcyBhIG5ldyBpbnN0YW5jZSBvZiB0aGUgPHNlZSBjcmVmPSJMb2NhdGlvblZlcnNpb25PbmUiIC8+IGNsYXNzIGZyb20gdGhlIHN1cHBsaWVkIHZhbHVlcy4NCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgLy8vIDxwYXJhbSBuYW1lPSJhbmFseXNpc1RhcmdldCI+DQogICAgICAgIC8vLyBBbiBpbml0aWFsaXphdGlvbiB2YWx1ZSBmb3IgdGhlIDxzZWUgY3JlZj0iUDogQW5hbHlzaXNUYXJnZXQiIC8+IHByb3BlcnR5Lg0KICAgICAgICAvLy8gPC9wYXJhbT4NCiAgICAgICAgLy8vIDxwYXJhbSBuYW1lPSJyZXN1bHRGaWxlIj4NCiAgICAgICAgLy8vIEFuIGluaXRpYWxpemF0aW9uIHZhbHVlIGZvciB0aGUgPHNlZSBjcmVmPSJQOiBSZXN1bHRGaWxlIiAvPiBwcm9wZXJ0eS4NCiAgICAgICAgLy8vIDwvcGFyYW0+DQogICAgICAgIC8vLyA8cGFyYW0gbmFtZT0iZnVsbHlRdWFsaWZpZWRMb2dpY2FsTmFtZSI+DQogICAgICAgIC8vLyBBbiBpbml0aWFsaXphdGlvbiB2YWx1ZSBmb3IgdGhlIDxzZWUgY3JlZj0iUDogRnVsbHlRdWFsaWZpZWRMb2dpY2FsTmFtZSIgLz4gcHJvcGVydHkuDQogICAgICAgIC8vLyA8L3BhcmFtPg0KICAgICAgICAvLy8gPHBhcmFtIG5hbWU9ImxvZ2ljYWxMb2NhdGlvbktleSI+DQogICAgICAgIC8vLyBBbiBpbml0aWFsaXphdGlvbiB2YWx1ZSBmb3IgdGhlIDxzZWUgY3JlZj0iUDogTG9naWNhbExvY2F0aW9uS2V5IiAvPiBwcm9wZXJ0eS4NCiAgICAgICAgLy8vIDwvcGFyYW0+DQogICAgICAgIC8vLyA8cGFyYW0gbmFtZT0iZGVjb3JhdGVkTmFtZSI+DQogICAgICAgIC8vLyBBbiBpbml0aWFsaXphdGlvbiB2YWx1ZSBmb3IgdGhlIDxzZWUgY3JlZj0iUDogRGVjb3JhdGVkTmFtZSIgLz4gcHJvcGVydHkuDQogICAgICAgIC8vLyA8L3BhcmFtPg0KICAgICAgICAvLy8gPHBhcmFtIG5hbWU9InByb3BlcnRpZXMiPg0KICAgICAgICAvLy8gQW4gaW5pdGlhbGl6YXRpb24gdmFsdWUgZm9yIHRoZSA8c2VlIGNyZWY9IlA6IFByb3BlcnRpZXMiIC8+IHByb3BlcnR5Lg0KICAgICAgICAvLy8gPC9wYXJhbT4NCiAgICAgICAgcHVibGljIExvY2F0aW9uVmVyc2lvbk9uZShQaHlzaWNhbExvY2F0aW9uVmVyc2lvbk9uZSBhbmFseXNpc1RhcmdldCwgUGh5c2ljYWxMb2NhdGlvblZlcnNpb25PbmUgcmVzdWx0RmlsZSwgc3RyaW5nIGZ1bGx5UXVhbGlmaWVkTG9naWNhbE5hbWUsIHN0cmluZyBsb2dpY2FsTG9jYXRpb25LZXksIHN0cmluZyBkZWNvcmF0ZWROYW1lLCBJRGljdGlvbmFyeTxzdHJpbmcsIFNlcmlhbGl6ZWRQcm9wZXJ0eUluZm8+IHByb3BlcnRpZXMpDQogICAgICAgIHsNCiAgICAgICAgICAgIEluaXQoYW5hbHlzaXNUYXJnZXQsIHJlc3VsdEZpbGUsIGZ1bGx5UXVhbGlmaWVkTG9naWNhbE5hbWUsIGxvZ2ljYWxMb2NhdGlvbktleSwgZGVjb3JhdGVkTmFtZSwgcHJvcGVydGllcyk7DQogICAgICAgIH0NCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBJbml0aWFsaXplcyBhIG5ldyBpbnN0YW5jZSBvZiB0aGUgPHNlZSBjcmVmPSJMb2NhdGlvblZlcnNpb25PbmUiIC8+IGNsYXNzIGZyb20gdGhlIHNwZWNpZmllZCBpbnN0YW5jZS4NCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgLy8vIDxwYXJhbSBuYW1lPSJvdGhlciI+DQogICAgICAgIC8vLyBUaGUgaW5zdGFuY2UgZnJvbSB3aGljaCB0aGUgbmV3IGluc3RhbmNlIGlzIHRvIGJlIGluaXRpYWxpemVkLg0KICAgICAgICAvLy8gPC9wYXJhbT4NCiAgICAgICAgLy8vIDxleGNlcHRpb24gY3JlZj0iQXJndW1lbnROdWxsRXhjZXB0aW9uIj4NCiAgICAgICAgLy8vIFRocm93biBpZiA8cGFyYW1yZWYgbmFtZT0ib3RoZXIiIC8+IGlzIG51bGwuDQogICAgICAgIC8vLyA8L2V4Y2VwdGlvbj4NCiAgICAgICAgcHVibGljIExvY2F0aW9uVmVyc2lvbk9uZShMb2NhdGlvblZlcnNpb25PbmUgb3RoZXIpDQogICAgICAgIHsNCiAgICAgICAgICAgIGlmIChvdGhlciA9PSBudWxsKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHRocm93IG5ldyBBcmd1bWVudE51bGxFeGNlcHRpb24obmFtZW9mKG90aGVyKSk7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIEluaXQob3RoZXIuQW5hbHlzaXNUYXJnZXQsIG90aGVyLlJlc3VsdEZpbGUsIG90aGVyLkZ1bGx5UXVhbGlmaWVkTG9naWNhbE5hbWUsIG90aGVyLkxvZ2ljYWxMb2NhdGlvbktleSwgb3RoZXIuRGVjb3JhdGVkTmFtZSwgb3RoZXIuUHJvcGVydGllcyk7DQogICAgICAgIH0NCg0KICAgICAgICBJU2FyaWZOb2RlVmVyc2lvbk9uZSBJU2FyaWZOb2RlVmVyc2lvbk9uZS5EZWVwQ2xvbmUoKQ0KICAgICAgICB7DQogICAgICAgICAgICByZXR1cm4gRGVlcENsb25lQ29yZSgpOw0KICAgICAgICB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gQ3JlYXRlcyBhIGRlZXAgY29weSBvZiB0aGlzIGluc3RhbmNlLg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICBwdWJsaWMgTG9jYXRpb25WZXJzaW9uT25lIERlZXBDbG9uZSgpDQogICAgICAgIHsNCiAgICAgICAgICAgIHJldHVybiAoTG9jYXRpb25WZXJzaW9uT25lKURlZXBDbG9uZUNvcmUoKTsNCiAgICAgICAgfQ0KDQogICAgICAgIHByaXZhdGUgSVNhcmlmTm9kZVZlcnNpb25PbmUgRGVlcENsb25lQ29yZSgpDQogICAgICAgIHsNCiAgICAgICAgICAgIHJldHVybiBuZXcgTG9jYXRpb25WZXJzaW9uT25lKHRoaXMpOw0KICAgICAgICB9DQoNCiAgICAgICAgcHJpdmF0ZSB2b2lkIEluaXQoUGh5c2ljYWxMb2NhdGlvblZlcnNpb25PbmUgYW5hbHlzaXNUYXJnZXQsIFBoeXNpY2FsTG9jYXRpb25WZXJzaW9uT25lIHJlc3VsdEZpbGUsIHN0cmluZyBmdWxseVF1YWxpZmllZExvZ2ljYWxOYW1lLCBzdHJpbmcgbG9naWNhbExvY2F0aW9uS2V5LCBzdHJpbmcgZGVjb3JhdGVkTmFtZSwgSURpY3Rpb25hcnk8c3RyaW5nLCBTZXJpYWxpemVkUHJvcGVydHlJbmZvPiBwcm9wZXJ0aWVzKQ0KICAgICAgICB7DQogICAgICAgICAgICBpZiAoYW5hbHlzaXNUYXJnZXQgIT0gbnVsbCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBBbmFseXNpc1RhcmdldCA9IG5ldyBQaHlzaWNhbExvY2F0aW9uVmVyc2lvbk9uZShhbmFseXNpc1RhcmdldCk7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIGlmIChyZXN1bHRGaWxlICE9IG51bGwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgUmVzdWx0RmlsZSA9IG5ldyBQaHlzaWNhbExvY2F0aW9uVmVyc2lvbk9uZShyZXN1bHRGaWxlKTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgRnVsbHlRdWFsaWZpZWRMb2dpY2FsTmFtZSA9IGZ1bGx5UXVhbGlmaWVkTG9naWNhbE5hbWU7DQogICAgICAgICAgICBMb2dpY2FsTG9jYXRpb25LZXkgPSBsb2dpY2FsTG9jYXRpb25LZXk7DQogICAgICAgICAgICBEZWNvcmF0ZWROYW1lID0gZGVjb3JhdGVkTmFtZTsNCiAgICAgICAgICAgIGlmIChwcm9wZXJ0aWVzICE9IG51bGwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgUHJvcGVydGllcyA9IG5ldyBEaWN0aW9uYXJ5PHN0cmluZywgU2VyaWFsaXplZFByb3BlcnR5SW5mbz4ocHJvcGVydGllcyk7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCiAgICB9DQp9" + { + "ruleId": "CA1704", + "message": { + "text": "Correct the spelling of 'Sarif' in member name 'JsonSyntaxErrorExceptionExtensions.ToSarifResult(this JsonSyntaxException)' or remove it entirely if it represents any sort of Hungarian notation.", + "id": "Member" }, - "hashes": [ - { - "value": "6E59F863B61EA1597032E71CC52DF10E", - "algorithm": "md5" - }, - { - "value": "DF52DCE3444603AF167C20A5F0B21ABD577B4615", - "algorithm": "sha-1" - }, + "locations": [ { - "value": "F73A04FB01207D87284EB5B4360D35FA0CCAC7449B0625741D0A2574468F449D", - "algorithm": "sha-256" + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Microsoft.Json.Schema.Validation.dll", + "uriBaseId": "$(ProjectDir)", + "index": 2 + } + }, + "logicalLocations": [ + { + "index": 107, + "fullyQualifiedName": "microsoft.json.schema.validation.dll!Microsoft.Json.Schema.Validation.JsonSyntaxErrorExceptionExtensions.ToSarifResult(Microsoft.Json.Schema.JsonSyntaxException)" + } + ] } - ] + ], + "partialFingerprints": { + "UniqueId": "Sarif#Member" + }, + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" + } }, - "file:///E:/src/sarif-sdk-test/src/Sarif/VersionOne/Autogenerated/NotificationVersionOne.cs": { - "mimeType": "text/x-csharp", - "contents": { - "binary": "Ly8gQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQuICBBbGwgUmlnaHRzIFJlc2VydmVkLg0KLy8gTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlLiBTZWUgTElDRU5TRSBmaWxlIGluIHRoZSBwcm9qZWN0IHJvb3QgZm9yIGZ1bGwgbGljZW5zZSBpbmZvcm1hdGlvbi4NCg0KdXNpbmcgU3lzdGVtOw0KdXNpbmcgU3lzdGVtLkNvZGVEb20uQ29tcGlsZXI7DQp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsNCnVzaW5nIFN5c3RlbS5SdW50aW1lLlNlcmlhbGl6YXRpb247DQp1c2luZyBNaWNyb3NvZnQuQ29kZUFuYWx5c2lzLlNhcmlmLlJlYWRlcnM7DQoNCm5hbWVzcGFjZSBNaWNyb3NvZnQuQ29kZUFuYWx5c2lzLlNhcmlmLlZlcnNpb25PbmUNCnsNCiAgICAvLy8gPHN1bW1hcnk+DQogICAgLy8vIERlc2NyaWJlcyBhIGNvbmRpdGlvbiByZWxldmFudCB0byB0aGUgdG9vbCBpdHNlbGYsIGFzIG9wcG9zZWQgdG8gYmVpbmcgcmVsZXZhbnQgdG8gYSB0YXJnZXQgYmVpbmcgYW5hbHl6ZWQgYnkgdGhlIHRvb2wuDQogICAgLy8vIDwvc3VtbWFyeT4NCiAgICBbRGF0YUNvbnRyYWN0XQ0KICAgIFtHZW5lcmF0ZWRDb2RlKCJNaWNyb3NvZnQuSnNvbi5TY2hlbWEuVG9Eb3ROZXQiLCAiMC41Mi4wLjAiKV0NCiAgICBwdWJsaWMgcGFydGlhbCBjbGFzcyBOb3RpZmljYXRpb25WZXJzaW9uT25lIDogUHJvcGVydHlCYWdIb2xkZXIsIElTYXJpZk5vZGVWZXJzaW9uT25lDQogICAgew0KICAgICAgICBwdWJsaWMgc3RhdGljIElFcXVhbGl0eUNvbXBhcmVyPE5vdGlmaWNhdGlvblZlcnNpb25PbmU+IFZhbHVlQ29tcGFyZXIgPT4gTm90aWZpY2F0aW9uVmVyc2lvbk9uZUVxdWFsaXR5Q29tcGFyZXIuSW5zdGFuY2U7DQoNCiAgICAgICAgcHVibGljIGJvb2wgVmFsdWVFcXVhbHMoTm90aWZpY2F0aW9uVmVyc2lvbk9uZSBvdGhlcikgPT4gVmFsdWVDb21wYXJlci5FcXVhbHModGhpcywgb3RoZXIpOw0KICAgICAgICBwdWJsaWMgaW50IFZhbHVlR2V0SGFzaENvZGUoKSA9PiBWYWx1ZUNvbXBhcmVyLkdldEhhc2hDb2RlKHRoaXMpOw0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIEdldHMgYSB2YWx1ZSBpbmRpY2F0aW5nIHRoZSB0eXBlIG9mIG9iamVjdCBpbXBsZW1lbnRpbmcgPHNlZSBjcmVmPSJJU2FyaWZOb2RlVmVyc2lvbk9uZSIgLz4uDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIHB1YmxpYyBTYXJpZk5vZGVLaW5kVmVyc2lvbk9uZSBTYXJpZk5vZGVLaW5kVmVyc2lvbk9uZQ0KICAgICAgICB7DQogICAgICAgICAgICBnZXQNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gU2FyaWZOb2RlS2luZFZlcnNpb25PbmUuTm90aWZpY2F0aW9uVmVyc2lvbk9uZTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIEFuIGlkZW50aWZpZXIgZm9yIHRoZSBjb25kaXRpb24gdGhhdCB3YXMgZW5jb3VudGVyZWQuDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIFtEYXRhTWVtYmVyKE5hbWUgPSAiaWQiLCBJc1JlcXVpcmVkID0gZmFsc2UsIEVtaXREZWZhdWx0VmFsdWUgPSBmYWxzZSldDQogICAgICAgIHB1YmxpYyBzdHJpbmcgSWQgeyBnZXQ7IHNldDsgfQ0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIFRoZSBzdGFibGUsIHVuaXF1ZSBpZGVudGlmaWVyIG9mIHRoZSBydWxlIChpZiBhbnkpIHRvIHdoaWNoIHRoaXMgbm90aWZpY2F0aW9uIGlzIHJlbGV2YW50LiBJZiAncnVsZUtleScgaXMgbm90IHNwZWNpZmllZCwgdGhpcyBtZW1iZXIgY2FuIGJlIHVzZWQgdG8gcmV0cmlldmUgcnVsZSBtZXRhZGF0YSBmcm9tIHRoZSBydWxlcyBkaWN0aW9uYXJ5LCBpZiBpdCBleGlzdHMuDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIFtEYXRhTWVtYmVyKE5hbWUgPSAicnVsZUlkIiwgSXNSZXF1aXJlZCA9IGZhbHNlLCBFbWl0RGVmYXVsdFZhbHVlID0gZmFsc2UpXQ0KICAgICAgICBwdWJsaWMgc3RyaW5nIFJ1bGVJZCB7IGdldDsgc2V0OyB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gQSBrZXkgdXNlZCB0byByZXRyaWV2ZSB0aGUgcnVsZSBtZXRhZGF0YSBmcm9tIHRoZSBydWxlcyBkaWN0aW9uYXJ5IHRoYXQgaXMgcmVsZXZhbnQgdG8gdGhlIG5vdGlmaWNhdGlvbm4uDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIFtEYXRhTWVtYmVyKE5hbWUgPSAicnVsZUtleSIsIElzUmVxdWlyZWQgPSBmYWxzZSwgRW1pdERlZmF1bHRWYWx1ZSA9IGZhbHNlKV0NCiAgICAgICAgcHVibGljIHN0cmluZyBSdWxlS2V5IHsgZ2V0OyBzZXQ7IH0NCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBUaGUgZmlsZSBhbmQgcmVnaW9uIHJlbGV2YW50IHRvIHRoaXMgbm90aWZpY2F0aW9uLg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICBbRGF0YU1lbWJlcihOYW1lID0gInBoeXNpY2FsTG9jYXRpb24iLCBJc1JlcXVpcmVkID0gZmFsc2UsIEVtaXREZWZhdWx0VmFsdWUgPSBmYWxzZSldDQogICAgICAgIHB1YmxpYyBQaHlzaWNhbExvY2F0aW9uVmVyc2lvbk9uZSBQaHlzaWNhbExvY2F0aW9uIHsgZ2V0OyBzZXQ7IH0NCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBBIHN0cmluZyB0aGF0IGRlc2NyaWJlcyB0aGUgY29uZGl0aW9uIHRoYXQgd2FzIGVuY291bnRlcmVkLg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICBbRGF0YU1lbWJlcihOYW1lID0gIm1lc3NhZ2UiLCBJc1JlcXVpcmVkID0gdHJ1ZSldDQogICAgICAgIHB1YmxpYyBzdHJpbmcgTWVzc2FnZSB7IGdldDsgc2V0OyB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gQSB2YWx1ZSBzcGVjaWZ5aW5nIHRoZSBzZXZlcml0eSBsZXZlbCBvZiB0aGUgbm90aWZpY2F0aW9uLg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICBbRGF0YU1lbWJlcihOYW1lID0gImxldmVsIiwgSXNSZXF1aXJlZCA9IGZhbHNlLCBFbWl0RGVmYXVsdFZhbHVlID0gZmFsc2UpXQ0KICAgICAgICBwdWJsaWMgTm90aWZpY2F0aW9uTGV2ZWxWZXJzaW9uT25lIExldmVsIHsgZ2V0OyBzZXQ7IH0NCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBUaGUgdGhyZWFkIGlkZW50aWZpZXIgb2YgdGhlIGNvZGUgdGhhdCBnZW5lcmF0ZWQgdGhlIG5vdGlmaWNhdGlvbi4NCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgW0RhdGFNZW1iZXIoTmFtZSA9ICJ0aHJlYWRJZCIsIElzUmVxdWlyZWQgPSBmYWxzZSwgRW1pdERlZmF1bHRWYWx1ZSA9IGZhbHNlKV0NCiAgICAgICAgcHVibGljIGludCBUaHJlYWRJZCB7IGdldDsgc2V0OyB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gVGhlIGRhdGUgYW5kIHRpbWUgYXQgd2hpY2ggdGhlIGFuYWx5c2lzIHRvb2wgZ2VuZXJhdGVkIHRoZSBub3RpZmljYXRpb24uDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIFtEYXRhTWVtYmVyKE5hbWUgPSAidGltZSIsIElzUmVxdWlyZWQgPSBmYWxzZSwgRW1pdERlZmF1bHRWYWx1ZSA9IGZhbHNlKV0NCiAgICAgICAgcHVibGljIERhdGVUaW1lIFRpbWUgeyBnZXQ7IHNldDsgfQ0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIFRoZSBydW50aW1lIGV4Y2VwdGlvbiwgaWYgYW55LCByZWxldmFudCB0byB0aGlzIG5vdGlmaWNhdGlvbi4NCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgW0RhdGFNZW1iZXIoTmFtZSA9ICJleGNlcHRpb24iLCBJc1JlcXVpcmVkID0gZmFsc2UsIEVtaXREZWZhdWx0VmFsdWUgPSBmYWxzZSldDQogICAgICAgIHB1YmxpYyBFeGNlcHRpb25EYXRhVmVyc2lvbk9uZSBFeGNlcHRpb24geyBnZXQ7IHNldDsgfQ0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIEtleS92YWx1ZSBwYWlycyB0aGF0IHByb3ZpZGUgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiBhYm91dCB0aGUgbm90aWZpY2F0aW9uLg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICBbRGF0YU1lbWJlcihOYW1lID0gInByb3BlcnRpZXMiLCBJc1JlcXVpcmVkID0gZmFsc2UsIEVtaXREZWZhdWx0VmFsdWUgPSBmYWxzZSldDQogICAgICAgIGludGVybmFsIG92ZXJyaWRlIElEaWN0aW9uYXJ5PHN0cmluZywgU2VyaWFsaXplZFByb3BlcnR5SW5mbz4gUHJvcGVydGllcyB7IGdldDsgc2V0OyB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gSW5pdGlhbGl6ZXMgYSBuZXcgaW5zdGFuY2Ugb2YgdGhlIDxzZWUgY3JlZj0iTm90aWZpY2F0aW9uVmVyc2lvbk9uZSIgLz4gY2xhc3MuDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIHB1YmxpYyBOb3RpZmljYXRpb25WZXJzaW9uT25lKCkNCiAgICAgICAgew0KICAgICAgICB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gSW5pdGlhbGl6ZXMgYSBuZXcgaW5zdGFuY2Ugb2YgdGhlIDxzZWUgY3JlZj0iTm90aWZpY2F0aW9uVmVyc2lvbk9uZSIgLz4gY2xhc3MgZnJvbSB0aGUgc3VwcGxpZWQgdmFsdWVzLg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICAvLy8gPHBhcmFtIG5hbWU9ImlkIj4NCiAgICAgICAgLy8vIEFuIGluaXRpYWxpemF0aW9uIHZhbHVlIGZvciB0aGUgPHNlZSBjcmVmPSJQOiBJZCIgLz4gcHJvcGVydHkuDQogICAgICAgIC8vLyA8L3BhcmFtPg0KICAgICAgICAvLy8gPHBhcmFtIG5hbWU9InJ1bGVJZCI+DQogICAgICAgIC8vLyBBbiBpbml0aWFsaXphdGlvbiB2YWx1ZSBmb3IgdGhlIDxzZWUgY3JlZj0iUDogUnVsZUlkIiAvPiBwcm9wZXJ0eS4NCiAgICAgICAgLy8vIDwvcGFyYW0+DQogICAgICAgIC8vLyA8cGFyYW0gbmFtZT0icnVsZUtleSI+DQogICAgICAgIC8vLyBBbiBpbml0aWFsaXphdGlvbiB2YWx1ZSBmb3IgdGhlIDxzZWUgY3JlZj0iUDogUnVsZUtleSIgLz4gcHJvcGVydHkuDQogICAgICAgIC8vLyA8L3BhcmFtPg0KICAgICAgICAvLy8gPHBhcmFtIG5hbWU9InBoeXNpY2FsTG9jYXRpb24iPg0KICAgICAgICAvLy8gQW4gaW5pdGlhbGl6YXRpb24gdmFsdWUgZm9yIHRoZSA8c2VlIGNyZWY9IlA6IFBoeXNpY2FsTG9jYXRpb24iIC8+IHByb3BlcnR5Lg0KICAgICAgICAvLy8gPC9wYXJhbT4NCiAgICAgICAgLy8vIDxwYXJhbSBuYW1lPSJtZXNzYWdlIj4NCiAgICAgICAgLy8vIEFuIGluaXRpYWxpemF0aW9uIHZhbHVlIGZvciB0aGUgPHNlZSBjcmVmPSJQOiBNZXNzYWdlIiAvPiBwcm9wZXJ0eS4NCiAgICAgICAgLy8vIDwvcGFyYW0+DQogICAgICAgIC8vLyA8cGFyYW0gbmFtZT0ibGV2ZWwiPg0KICAgICAgICAvLy8gQW4gaW5pdGlhbGl6YXRpb24gdmFsdWUgZm9yIHRoZSA8c2VlIGNyZWY9IlA6IExldmVsIiAvPiBwcm9wZXJ0eS4NCiAgICAgICAgLy8vIDwvcGFyYW0+DQogICAgICAgIC8vLyA8cGFyYW0gbmFtZT0idGhyZWFkSWQiPg0KICAgICAgICAvLy8gQW4gaW5pdGlhbGl6YXRpb24gdmFsdWUgZm9yIHRoZSA8c2VlIGNyZWY9IlA6IFRocmVhZElkIiAvPiBwcm9wZXJ0eS4NCiAgICAgICAgLy8vIDwvcGFyYW0+DQogICAgICAgIC8vLyA8cGFyYW0gbmFtZT0idGltZSI+DQogICAgICAgIC8vLyBBbiBpbml0aWFsaXphdGlvbiB2YWx1ZSBmb3IgdGhlIDxzZWUgY3JlZj0iUDogVGltZSIgLz4gcHJvcGVydHkuDQogICAgICAgIC8vLyA8L3BhcmFtPg0KICAgICAgICAvLy8gPHBhcmFtIG5hbWU9ImV4Y2VwdGlvbiI+DQogICAgICAgIC8vLyBBbiBpbml0aWFsaXphdGlvbiB2YWx1ZSBmb3IgdGhlIDxzZWUgY3JlZj0iUDogRXhjZXB0aW9uIiAvPiBwcm9wZXJ0eS4NCiAgICAgICAgLy8vIDwvcGFyYW0+DQogICAgICAgIC8vLyA8cGFyYW0gbmFtZT0icHJvcGVydGllcyI+DQogICAgICAgIC8vLyBBbiBpbml0aWFsaXphdGlvbiB2YWx1ZSBmb3IgdGhlIDxzZWUgY3JlZj0iUDogUHJvcGVydGllcyIgLz4gcHJvcGVydHkuDQogICAgICAgIC8vLyA8L3BhcmFtPg0KICAgICAgICBwdWJsaWMgTm90aWZpY2F0aW9uVmVyc2lvbk9uZShzdHJpbmcgaWQsIHN0cmluZyBydWxlSWQsIHN0cmluZyBydWxlS2V5LCBQaHlzaWNhbExvY2F0aW9uVmVyc2lvbk9uZSBwaHlzaWNhbExvY2F0aW9uLCBzdHJpbmcgbWVzc2FnZSwgTm90aWZpY2F0aW9uTGV2ZWxWZXJzaW9uT25lIGxldmVsLCBpbnQgdGhyZWFkSWQsIERhdGVUaW1lIHRpbWUsIEV4Y2VwdGlvbkRhdGFWZXJzaW9uT25lIGV4Y2VwdGlvbiwgSURpY3Rpb25hcnk8c3RyaW5nLCBTZXJpYWxpemVkUHJvcGVydHlJbmZvPiBwcm9wZXJ0aWVzKQ0KICAgICAgICB7DQogICAgICAgICAgICBJbml0KGlkLCBydWxlSWQsIHJ1bGVLZXksIHBoeXNpY2FsTG9jYXRpb24sIG1lc3NhZ2UsIGxldmVsLCB0aHJlYWRJZCwgdGltZSwgZXhjZXB0aW9uLCBwcm9wZXJ0aWVzKTsNCiAgICAgICAgfQ0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIEluaXRpYWxpemVzIGEgbmV3IGluc3RhbmNlIG9mIHRoZSA8c2VlIGNyZWY9Ik5vdGlmaWNhdGlvblZlcnNpb25PbmUiIC8+IGNsYXNzIGZyb20gdGhlIHNwZWNpZmllZCBpbnN0YW5jZS4NCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgLy8vIDxwYXJhbSBuYW1lPSJvdGhlciI+DQogICAgICAgIC8vLyBUaGUgaW5zdGFuY2UgZnJvbSB3aGljaCB0aGUgbmV3IGluc3RhbmNlIGlzIHRvIGJlIGluaXRpYWxpemVkLg0KICAgICAgICAvLy8gPC9wYXJhbT4NCiAgICAgICAgLy8vIDxleGNlcHRpb24gY3JlZj0iQXJndW1lbnROdWxsRXhjZXB0aW9uIj4NCiAgICAgICAgLy8vIFRocm93biBpZiA8cGFyYW1yZWYgbmFtZT0ib3RoZXIiIC8+IGlzIG51bGwuDQogICAgICAgIC8vLyA8L2V4Y2VwdGlvbj4NCiAgICAgICAgcHVibGljIE5vdGlmaWNhdGlvblZlcnNpb25PbmUoTm90aWZpY2F0aW9uVmVyc2lvbk9uZSBvdGhlcikNCiAgICAgICAgew0KICAgICAgICAgICAgaWYgKG90aGVyID09IG51bGwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgdGhyb3cgbmV3IEFyZ3VtZW50TnVsbEV4Y2VwdGlvbihuYW1lb2Yob3RoZXIpKTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgSW5pdChvdGhlci5JZCwgb3RoZXIuUnVsZUlkLCBvdGhlci5SdWxlS2V5LCBvdGhlci5QaHlzaWNhbExvY2F0aW9uLCBvdGhlci5NZXNzYWdlLCBvdGhlci5MZXZlbCwgb3RoZXIuVGhyZWFkSWQsIG90aGVyLlRpbWUsIG90aGVyLkV4Y2VwdGlvbiwgb3RoZXIuUHJvcGVydGllcyk7DQogICAgICAgIH0NCg0KICAgICAgICBJU2FyaWZOb2RlVmVyc2lvbk9uZSBJU2FyaWZOb2RlVmVyc2lvbk9uZS5EZWVwQ2xvbmUoKQ0KICAgICAgICB7DQogICAgICAgICAgICByZXR1cm4gRGVlcENsb25lQ29yZSgpOw0KICAgICAgICB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gQ3JlYXRlcyBhIGRlZXAgY29weSBvZiB0aGlzIGluc3RhbmNlLg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICBwdWJsaWMgTm90aWZpY2F0aW9uVmVyc2lvbk9uZSBEZWVwQ2xvbmUoKQ0KICAgICAgICB7DQogICAgICAgICAgICByZXR1cm4gKE5vdGlmaWNhdGlvblZlcnNpb25PbmUpRGVlcENsb25lQ29yZSgpOw0KICAgICAgICB9DQoNCiAgICAgICAgcHJpdmF0ZSBJU2FyaWZOb2RlVmVyc2lvbk9uZSBEZWVwQ2xvbmVDb3JlKCkNCiAgICAgICAgew0KICAgICAgICAgICAgcmV0dXJuIG5ldyBOb3RpZmljYXRpb25WZXJzaW9uT25lKHRoaXMpOw0KICAgICAgICB9DQoNCiAgICAgICAgcHJpdmF0ZSB2b2lkIEluaXQoc3RyaW5nIGlkLCBzdHJpbmcgcnVsZUlkLCBzdHJpbmcgcnVsZUtleSwgUGh5c2ljYWxMb2NhdGlvblZlcnNpb25PbmUgcGh5c2ljYWxMb2NhdGlvbiwgc3RyaW5nIG1lc3NhZ2UsIE5vdGlmaWNhdGlvbkxldmVsVmVyc2lvbk9uZSBsZXZlbCwgaW50IHRocmVhZElkLCBEYXRlVGltZSB0aW1lLCBFeGNlcHRpb25EYXRhVmVyc2lvbk9uZSBleGNlcHRpb24sIElEaWN0aW9uYXJ5PHN0cmluZywgU2VyaWFsaXplZFByb3BlcnR5SW5mbz4gcHJvcGVydGllcykNCiAgICAgICAgew0KICAgICAgICAgICAgSWQgPSBpZDsNCiAgICAgICAgICAgIFJ1bGVJZCA9IHJ1bGVJZDsNCiAgICAgICAgICAgIFJ1bGVLZXkgPSBydWxlS2V5Ow0KICAgICAgICAgICAgaWYgKHBoeXNpY2FsTG9jYXRpb24gIT0gbnVsbCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBQaHlzaWNhbExvY2F0aW9uID0gbmV3IFBoeXNpY2FsTG9jYXRpb25WZXJzaW9uT25lKHBoeXNpY2FsTG9jYXRpb24pOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBNZXNzYWdlID0gbWVzc2FnZTsNCiAgICAgICAgICAgIExldmVsID0gbGV2ZWw7DQogICAgICAgICAgICBUaHJlYWRJZCA9IHRocmVhZElkOw0KICAgICAgICAgICAgVGltZSA9IHRpbWU7DQogICAgICAgICAgICBpZiAoZXhjZXB0aW9uICE9IG51bGwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgRXhjZXB0aW9uID0gbmV3IEV4Y2VwdGlvbkRhdGFWZXJzaW9uT25lKGV4Y2VwdGlvbik7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIGlmIChwcm9wZXJ0aWVzICE9IG51bGwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgUHJvcGVydGllcyA9IG5ldyBEaWN0aW9uYXJ5PHN0cmluZywgU2VyaWFsaXplZFByb3BlcnR5SW5mbz4ocHJvcGVydGllcyk7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCiAgICB9DQp9" + { + "ruleId": "CA1062", + "message": { + "text": "In externally visible method 'JsonSyntaxErrorExceptionExtensions.ToSarifResult(this JsonSyntaxException)', validate parameter 'ex' before using it." }, - "hashes": [ + "locations": [ { - "value": "FA364C85F17A5760E36537332C70FA11", - "algorithm": "md5" - }, - { - "value": "E66D580EE863AD0F4DB4A3069ED7DF04D6DCB52E", - "algorithm": "sha-1" - }, - { - "value": "CBDE9389FEF9910B26BC4B991D1FC7EC63C2AAFFF88A2268CE8D0B426E9E52E8", - "algorithm": "sha-256" + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Microsoft.Json.Schema.Validation.dll", + "uriBaseId": "$(ProjectDir)", + "index": 2 + } + }, + "logicalLocations": [ + { + "index": 107, + "fullyQualifiedName": "microsoft.json.schema.validation.dll!Microsoft.Json.Schema.Validation.JsonSyntaxErrorExceptionExtensions.ToSarifResult(Microsoft.Json.Schema.JsonSyntaxException)" + } + ] } - ] - }, - "file:///E:/src/sarif-sdk-test/src/Sarif/VersionOne/Autogenerated/PhysicalLocationVersionOne.cs": { - "mimeType": "text/x-csharp", - "contents": { - "binary": "Ly8gQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQuICBBbGwgUmlnaHRzIFJlc2VydmVkLg0KLy8gTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlLiBTZWUgTElDRU5TRSBmaWxlIGluIHRoZSBwcm9qZWN0IHJvb3QgZm9yIGZ1bGwgbGljZW5zZSBpbmZvcm1hdGlvbi4NCg0KdXNpbmcgU3lzdGVtOw0KdXNpbmcgU3lzdGVtLkNvZGVEb20uQ29tcGlsZXI7DQp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsNCnVzaW5nIFN5c3RlbS5SdW50aW1lLlNlcmlhbGl6YXRpb247DQoNCm5hbWVzcGFjZSBNaWNyb3NvZnQuQ29kZUFuYWx5c2lzLlNhcmlmLlZlcnNpb25PbmUNCnsNCiAgICAvLy8gPHN1bW1hcnk+DQogICAgLy8vIEEgcGh5c2ljYWwgbG9jYXRpb24gcmVsZXZhbnQgdG8gYSByZXN1bHQuIFNwZWNpZmllcyBhIHJlZmVyZW5jZSB0byBhIHByb2dyYW1taW5nIGFydGlmYWN0IHRvZ2V0aGVyIHdpdGggYSByYW5nZSBvZiBieXRlcyBvciBjaGFyYWN0ZXJzIHdpdGhpbiB0aGF0IGFydGlmYWN0Lg0KICAgIC8vLyA8L3N1bW1hcnk+DQogICAgW0RhdGFDb250cmFjdF0NCiAgICBbR2VuZXJhdGVkQ29kZSgiTWljcm9zb2Z0Lkpzb24uU2NoZW1hLlRvRG90TmV0IiwgIjAuNTIuMC4wIildDQogICAgcHVibGljIHBhcnRpYWwgY2xhc3MgUGh5c2ljYWxMb2NhdGlvblZlcnNpb25PbmUgOiBJU2FyaWZOb2RlVmVyc2lvbk9uZQ0KICAgIHsNCiAgICAgICAgcHVibGljIHN0YXRpYyBJRXF1YWxpdHlDb21wYXJlcjxQaHlzaWNhbExvY2F0aW9uVmVyc2lvbk9uZT4gVmFsdWVDb21wYXJlciA9PiBQaHlzaWNhbExvY2F0aW9uVmVyc2lvbk9uZUVxdWFsaXR5Q29tcGFyZXIuSW5zdGFuY2U7DQoNCiAgICAgICAgcHVibGljIGJvb2wgVmFsdWVFcXVhbHMoUGh5c2ljYWxMb2NhdGlvblZlcnNpb25PbmUgb3RoZXIpID0+IFZhbHVlQ29tcGFyZXIuRXF1YWxzKHRoaXMsIG90aGVyKTsNCiAgICAgICAgcHVibGljIGludCBWYWx1ZUdldEhhc2hDb2RlKCkgPT4gVmFsdWVDb21wYXJlci5HZXRIYXNoQ29kZSh0aGlzKTsNCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBHZXRzIGEgdmFsdWUgaW5kaWNhdGluZyB0aGUgdHlwZSBvZiBvYmplY3QgaW1wbGVtZW50aW5nIDxzZWUgY3JlZj0iSVNhcmlmTm9kZVZlcnNpb25PbmUiIC8+Lg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICBwdWJsaWMgU2FyaWZOb2RlS2luZFZlcnNpb25PbmUgU2FyaWZOb2RlS2luZFZlcnNpb25PbmUNCiAgICAgICAgew0KICAgICAgICAgICAgZ2V0DQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgcmV0dXJuIFNhcmlmTm9kZUtpbmRWZXJzaW9uT25lLlBoeXNpY2FsTG9jYXRpb25WZXJzaW9uT25lOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gVGhlIGxvY2F0aW9uIG9mIHRoZSBmaWxlIGFzIGEgdmFsaWQgVVJJLg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICBbRGF0YU1lbWJlcihOYW1lID0gInVyaSIsIElzUmVxdWlyZWQgPSBmYWxzZSwgRW1pdERlZmF1bHRWYWx1ZSA9IGZhbHNlKV0NCiAgICAgICAgcHVibGljIFVyaSBVcmkgeyBnZXQ7IHNldDsgfQ0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIEEgc3RyaW5nIHRoYXQgaWRlbnRpZmllcyB0aGUgY29uY2VwdHVhbCBiYXNlIGZvciB0aGUgJ3VyaScgcHJvcGVydHkgKGlmIGl0IGlzIHJlbGF0aXZlKSwgZS5nLiwnJChTb2x1dGlvbkRpciknIG9yICclU1JDUk9PVCUnLg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICBbRGF0YU1lbWJlcihOYW1lID0gInVyaUJhc2VJZCIsIElzUmVxdWlyZWQgPSBmYWxzZSwgRW1pdERlZmF1bHRWYWx1ZSA9IGZhbHNlKV0NCiAgICAgICAgcHVibGljIHN0cmluZyBVcmlCYXNlSWQgeyBnZXQ7IHNldDsgfQ0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIFRoZSByZWdpb24gd2l0aGluIHRoZSBmaWxlIHdoZXJlIHRoZSByZXN1bHQgd2FzIGRldGVjdGVkLg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICBbRGF0YU1lbWJlcihOYW1lID0gInJlZ2lvbiIsIElzUmVxdWlyZWQgPSBmYWxzZSwgRW1pdERlZmF1bHRWYWx1ZSA9IGZhbHNlKV0NCiAgICAgICAgcHVibGljIFJlZ2lvblZlcnNpb25PbmUgUmVnaW9uIHsgZ2V0OyBzZXQ7IH0NCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBJbml0aWFsaXplcyBhIG5ldyBpbnN0YW5jZSBvZiB0aGUgPHNlZSBjcmVmPSJQaHlzaWNhbExvY2F0aW9uVmVyc2lvbk9uZSIgLz4gY2xhc3MuDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIHB1YmxpYyBQaHlzaWNhbExvY2F0aW9uVmVyc2lvbk9uZSgpDQogICAgICAgIHsNCiAgICAgICAgfQ0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIEluaXRpYWxpemVzIGEgbmV3IGluc3RhbmNlIG9mIHRoZSA8c2VlIGNyZWY9IlBoeXNpY2FsTG9jYXRpb25WZXJzaW9uT25lIiAvPiBjbGFzcyBmcm9tIHRoZSBzdXBwbGllZCB2YWx1ZXMuDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIC8vLyA8cGFyYW0gbmFtZT0idXJpIj4NCiAgICAgICAgLy8vIEFuIGluaXRpYWxpemF0aW9uIHZhbHVlIGZvciB0aGUgPHNlZSBjcmVmPSJQOiBVcmkiIC8+IHByb3BlcnR5Lg0KICAgICAgICAvLy8gPC9wYXJhbT4NCiAgICAgICAgLy8vIDxwYXJhbSBuYW1lPSJ1cmlCYXNlSWQiPg0KICAgICAgICAvLy8gQW4gaW5pdGlhbGl6YXRpb24gdmFsdWUgZm9yIHRoZSA8c2VlIGNyZWY9IlA6IFVyaUJhc2VJZCIgLz4gcHJvcGVydHkuDQogICAgICAgIC8vLyA8L3BhcmFtPg0KICAgICAgICAvLy8gPHBhcmFtIG5hbWU9InJlZ2lvbiI+DQogICAgICAgIC8vLyBBbiBpbml0aWFsaXphdGlvbiB2YWx1ZSBmb3IgdGhlIDxzZWUgY3JlZj0iUDogUmVnaW9uIiAvPiBwcm9wZXJ0eS4NCiAgICAgICAgLy8vIDwvcGFyYW0+DQogICAgICAgIHB1YmxpYyBQaHlzaWNhbExvY2F0aW9uVmVyc2lvbk9uZShVcmkgdXJpLCBzdHJpbmcgdXJpQmFzZUlkLCBSZWdpb25WZXJzaW9uT25lIHJlZ2lvbikNCiAgICAgICAgew0KICAgICAgICAgICAgSW5pdCh1cmksIHVyaUJhc2VJZCwgcmVnaW9uKTsNCiAgICAgICAgfQ0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIEluaXRpYWxpemVzIGEgbmV3IGluc3RhbmNlIG9mIHRoZSA8c2VlIGNyZWY9IlBoeXNpY2FsTG9jYXRpb25WZXJzaW9uT25lIiAvPiBjbGFzcyBmcm9tIHRoZSBzcGVjaWZpZWQgaW5zdGFuY2UuDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIC8vLyA8cGFyYW0gbmFtZT0ib3RoZXIiPg0KICAgICAgICAvLy8gVGhlIGluc3RhbmNlIGZyb20gd2hpY2ggdGhlIG5ldyBpbnN0YW5jZSBpcyB0byBiZSBpbml0aWFsaXplZC4NCiAgICAgICAgLy8vIDwvcGFyYW0+DQogICAgICAgIC8vLyA8ZXhjZXB0aW9uIGNyZWY9IkFyZ3VtZW50TnVsbEV4Y2VwdGlvbiI+DQogICAgICAgIC8vLyBUaHJvd24gaWYgPHBhcmFtcmVmIG5hbWU9Im90aGVyIiAvPiBpcyBudWxsLg0KICAgICAgICAvLy8gPC9leGNlcHRpb24+DQogICAgICAgIHB1YmxpYyBQaHlzaWNhbExvY2F0aW9uVmVyc2lvbk9uZShQaHlzaWNhbExvY2F0aW9uVmVyc2lvbk9uZSBvdGhlcikNCiAgICAgICAgew0KICAgICAgICAgICAgaWYgKG90aGVyID09IG51bGwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgdGhyb3cgbmV3IEFyZ3VtZW50TnVsbEV4Y2VwdGlvbihuYW1lb2Yob3RoZXIpKTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgSW5pdChvdGhlci5VcmksIG90aGVyLlVyaUJhc2VJZCwgb3RoZXIuUmVnaW9uKTsNCiAgICAgICAgfQ0KDQogICAgICAgIElTYXJpZk5vZGVWZXJzaW9uT25lIElTYXJpZk5vZGVWZXJzaW9uT25lLkRlZXBDbG9uZSgpDQogICAgICAgIHsNCiAgICAgICAgICAgIHJldHVybiBEZWVwQ2xvbmVDb3JlKCk7DQogICAgICAgIH0NCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBDcmVhdGVzIGEgZGVlcCBjb3B5IG9mIHRoaXMgaW5zdGFuY2UuDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIHB1YmxpYyBQaHlzaWNhbExvY2F0aW9uVmVyc2lvbk9uZSBEZWVwQ2xvbmUoKQ0KICAgICAgICB7DQogICAgICAgICAgICByZXR1cm4gKFBoeXNpY2FsTG9jYXRpb25WZXJzaW9uT25lKURlZXBDbG9uZUNvcmUoKTsNCiAgICAgICAgfQ0KDQogICAgICAgIHByaXZhdGUgSVNhcmlmTm9kZVZlcnNpb25PbmUgRGVlcENsb25lQ29yZSgpDQogICAgICAgIHsNCiAgICAgICAgICAgIHJldHVybiBuZXcgUGh5c2ljYWxMb2NhdGlvblZlcnNpb25PbmUodGhpcyk7DQogICAgICAgIH0NCg0KICAgICAgICBwcml2YXRlIHZvaWQgSW5pdChVcmkgdXJpLCBzdHJpbmcgdXJpQmFzZUlkLCBSZWdpb25WZXJzaW9uT25lIHJlZ2lvbikNCiAgICAgICAgew0KICAgICAgICAgICAgaWYgKHVyaSAhPSBudWxsKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIFVyaSA9IG5ldyBVcmkodXJpLk9yaWdpbmFsU3RyaW5nLCB1cmkuSXNBYnNvbHV0ZVVyaSA/IFVyaUtpbmQuQWJzb2x1dGUgOiBVcmlLaW5kLlJlbGF0aXZlKTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgVXJpQmFzZUlkID0gdXJpQmFzZUlkOw0KICAgICAgICAgICAgaWYgKHJlZ2lvbiAhPSBudWxsKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIFJlZ2lvbiA9IG5ldyBSZWdpb25WZXJzaW9uT25lKHJlZ2lvbik7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCiAgICB9DQp9" + ], + "partialFingerprints": { + "UniqueId": "0" }, - "hashes": [ - { - "value": "C974B277312E024975C107341CCE8FFD", - "algorithm": "md5" - }, - { - "value": "DEB2E1AA329A334BA9D69739615F3433CB8C0D5E", - "algorithm": "sha-1" - }, - { - "value": "E464599832FE3B747DF4DA5766F951E6FF23614FD2AFCBC85251F655E01ECA57", - "algorithm": "sha-256" - } - ] + "properties": { + "Category": "Microsoft.Design", + "FixCategory": "DependsOnFix" + } }, - "file:///E:/src/sarif-sdk-test/src/Sarif/VersionOne/Autogenerated/ResultVersionOne.cs": { - "mimeType": "text/x-csharp", - "contents": { - "binary": "Ly8gQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQuICBBbGwgUmlnaHRzIFJlc2VydmVkLg0KLy8gTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlLiBTZWUgTElDRU5TRSBmaWxlIGluIHRoZSBwcm9qZWN0IHJvb3QgZm9yIGZ1bGwgbGljZW5zZSBpbmZvcm1hdGlvbi4NCg0KdXNpbmcgU3lzdGVtOw0KdXNpbmcgU3lzdGVtLkNvZGVEb20uQ29tcGlsZXI7DQp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsNCnVzaW5nIFN5c3RlbS5SdW50aW1lLlNlcmlhbGl6YXRpb247DQp1c2luZyBNaWNyb3NvZnQuQ29kZUFuYWx5c2lzLlNhcmlmLlJlYWRlcnM7DQoNCm5hbWVzcGFjZSBNaWNyb3NvZnQuQ29kZUFuYWx5c2lzLlNhcmlmLlZlcnNpb25PbmUNCnsNCiAgICAvLy8gPHN1bW1hcnk+DQogICAgLy8vIEEgcmVzdWx0IHByb2R1Y2VkIGJ5IGFuIGFuYWx5c2lzIHRvb2wuDQogICAgLy8vIDwvc3VtbWFyeT4NCiAgICBbRGF0YUNvbnRyYWN0XQ0KICAgIFtHZW5lcmF0ZWRDb2RlKCJNaWNyb3NvZnQuSnNvbi5TY2hlbWEuVG9Eb3ROZXQiLCAiMC41Mi4wLjAiKV0NCiAgICBwdWJsaWMgcGFydGlhbCBjbGFzcyBSZXN1bHRWZXJzaW9uT25lIDogUHJvcGVydHlCYWdIb2xkZXIsIElTYXJpZk5vZGVWZXJzaW9uT25lDQogICAgew0KICAgICAgICBwdWJsaWMgc3RhdGljIElFcXVhbGl0eUNvbXBhcmVyPFJlc3VsdFZlcnNpb25PbmU+IFZhbHVlQ29tcGFyZXIgPT4gUmVzdWx0VmVyc2lvbk9uZUVxdWFsaXR5Q29tcGFyZXIuSW5zdGFuY2U7DQoNCiAgICAgICAgcHVibGljIGJvb2wgVmFsdWVFcXVhbHMoUmVzdWx0VmVyc2lvbk9uZSBvdGhlcikgPT4gVmFsdWVDb21wYXJlci5FcXVhbHModGhpcywgb3RoZXIpOw0KICAgICAgICBwdWJsaWMgaW50IFZhbHVlR2V0SGFzaENvZGUoKSA9PiBWYWx1ZUNvbXBhcmVyLkdldEhhc2hDb2RlKHRoaXMpOw0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIEdldHMgYSB2YWx1ZSBpbmRpY2F0aW5nIHRoZSB0eXBlIG9mIG9iamVjdCBpbXBsZW1lbnRpbmcgPHNlZSBjcmVmPSJJU2FyaWZOb2RlVmVyc2lvbk9uZSIgLz4uDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIHB1YmxpYyBTYXJpZk5vZGVLaW5kVmVyc2lvbk9uZSBTYXJpZk5vZGVLaW5kVmVyc2lvbk9uZQ0KICAgICAgICB7DQogICAgICAgICAgICBnZXQNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gU2FyaWZOb2RlS2luZFZlcnNpb25PbmUuUmVzdWx0VmVyc2lvbk9uZTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIFRoZSBzdGFibGUsIHVuaXF1ZSBpZGVudGlmaWVyIG9mIHRoZSBydWxlIChpZiBhbnkpIHRvIHdoaWNoIHRoaXMgbm90aWZpY2F0aW9uIGlzIHJlbGV2YW50LiBJZiAncnVsZUtleScgaXMgbm90IHNwZWNpZmllZCwgdGhpcyBtZW1iZXIgY2FuIGJlIHVzZWQgdG8gcmV0cmlldmUgcnVsZSBtZXRhZGF0YSBmcm9tIHRoZSBydWxlcyBkaWN0aW9uYXJ5LCBpZiBpdCBleGlzdHMuDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIFtEYXRhTWVtYmVyKE5hbWUgPSAicnVsZUlkIiwgSXNSZXF1aXJlZCA9IGZhbHNlLCBFbWl0RGVmYXVsdFZhbHVlID0gZmFsc2UpXQ0KICAgICAgICBwdWJsaWMgc3RyaW5nIFJ1bGVJZCB7IGdldDsgc2V0OyB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gQSBrZXkgdXNlZCB0byByZXRyaWV2ZSB0aGUgcnVsZSBtZXRhZGF0YSBmcm9tIHRoZSBydWxlcyBkaWN0aW9uYXJ5IHRoYXQgaXMgcmVsZXZhbnQgdG8gdGhlIG5vdGlmaWNhdGlvbm4uDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIFtEYXRhTWVtYmVyKE5hbWUgPSAicnVsZUtleSIsIElzUmVxdWlyZWQgPSBmYWxzZSwgRW1pdERlZmF1bHRWYWx1ZSA9IGZhbHNlKV0NCiAgICAgICAgcHVibGljIHN0cmluZyBSdWxlS2V5IHsgZ2V0OyBzZXQ7IH0NCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBBIHZhbHVlIHNwZWNpZnlpbmcgdGhlIHNldmVyaXR5IGxldmVsIG9mIHRoZSByZXN1bHQuIElmIHRoaXMgcHJvcGVydHkgaXMgbm90IHByZXNlbnQsIGl0cyBpbXBsaWVkIHZhbHVlIGlzICd3YXJuaW5nJy4NCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgW0RhdGFNZW1iZXIoTmFtZSA9ICJsZXZlbCIsIElzUmVxdWlyZWQgPSBmYWxzZSwgRW1pdERlZmF1bHRWYWx1ZSA9IGZhbHNlKV0NCiAgICAgICAgcHVibGljIFJlc3VsdExldmVsVmVyc2lvbk9uZSBMZXZlbCB7IGdldDsgc2V0OyB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gQSBzdHJpbmcgdGhhdCBkZXNjcmliZXMgdGhlIHJlc3VsdC4gVGhlIGZpcnN0IHNlbnRlbmNlIG9mIHRoZSBtZXNzYWdlIG9ubHkgd2lsbCBiZSBkaXNwbGF5ZWQgd2hlbiB2aXNpYmxlIHNwYWNlIGlzIGxpbWl0ZWQuDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIFtEYXRhTWVtYmVyKE5hbWUgPSAibWVzc2FnZSIsIElzUmVxdWlyZWQgPSBmYWxzZSwgRW1pdERlZmF1bHRWYWx1ZSA9IGZhbHNlKV0NCiAgICAgICAgcHVibGljIHN0cmluZyBNZXNzYWdlIHsgZ2V0OyBzZXQ7IH0NCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBBICdmb3JtYXR0ZWRSdWxlTWVzc2FnZScgb2JqZWN0IHRoYXQgY2FuIGJlIHVzZWQgdG8gY29uc3RydWN0IGEgZm9ybWF0dGVkIG1lc3NhZ2UgdGhhdCBkZXNjcmliZXMgdGhlIHJlc3VsdC4gSWYgdGhlICdmb3JtYXR0ZWRNZXNzYWdlJyBwcm9wZXJ0eSBpcyBwcmVzZW50IG9uIGEgcmVzdWx0LCB0aGUgJ2Z1bGxNZXNzYWdlJyBwcm9wZXJ0eSBzaGFsbCBub3QgYmUgcHJlc2VudC4gSWYgdGhlICdmdWxsTWVzc2FnZScgcHJvcGVydHkgaXMgcHJlc2VudCBvbiBhbiByZXN1bHQsIHRoZSAnZm9ybWF0dGVkTWVzc2FnZScgcHJvcGVydHkgc2hhbGwgbm90IGJlIHByZXNlbnQNCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgW0RhdGFNZW1iZXIoTmFtZSA9ICJmb3JtYXR0ZWRSdWxlTWVzc2FnZSIsIElzUmVxdWlyZWQgPSBmYWxzZSwgRW1pdERlZmF1bHRWYWx1ZSA9IGZhbHNlKV0NCiAgICAgICAgcHVibGljIEZvcm1hdHRlZFJ1bGVNZXNzYWdlVmVyc2lvbk9uZSBGb3JtYXR0ZWRSdWxlTWVzc2FnZSB7IGdldDsgc2V0OyB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gT25lIG9yIG1vcmUgbG9jYXRpb25zIHdoZXJlIHRoZSByZXN1bHQgb2NjdXJyZWQuIFNwZWNpZnkgb25seSBvbmUgbG9jYXRpb24gdW5sZXNzIHRoZSBwcm9ibGVtIGluZGljYXRlZCBieSB0aGUgcmVzdWx0IGNhbiBvbmx5IGJlIGNvcnJlY3RlZCBieSBtYWtpbmcgYSBjaGFuZ2UgYXQgZXZlcnkgc3BlY2lmaWVkIGxvY2F0aW9uLg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICBbRGF0YU1lbWJlcihOYW1lID0gImxvY2F0aW9ucyIsIElzUmVxdWlyZWQgPSBmYWxzZSwgRW1pdERlZmF1bHRWYWx1ZSA9IGZhbHNlKV0NCiAgICAgICAgcHVibGljIElMaXN0PExvY2F0aW9uVmVyc2lvbk9uZT4gTG9jYXRpb25zIHsgZ2V0OyBzZXQ7IH0NCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBBIHNvdXJjZSBjb2RlIG9yIG90aGVyIGZpbGUgZnJhZ21lbnQgdGhhdCBpbGx1c3RyYXRlcyB0aGUgcmVzdWx0Lg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICBbRGF0YU1lbWJlcihOYW1lID0gInNuaXBwZXQiLCBJc1JlcXVpcmVkID0gZmFsc2UsIEVtaXREZWZhdWx0VmFsdWUgPSBmYWxzZSldDQogICAgICAgIHB1YmxpYyBzdHJpbmcgU25pcHBldCB7IGdldDsgc2V0OyB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gQSB1bmlxdWUgaWRlbnRpZmVyIGZvciB0aGUgcmVzdWx0Lg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICBbRGF0YU1lbWJlcihOYW1lID0gImlkIiwgSXNSZXF1aXJlZCA9IGZhbHNlLCBFbWl0RGVmYXVsdFZhbHVlID0gZmFsc2UpXQ0KICAgICAgICBwdWJsaWMgc3RyaW5nIElkIHsgZ2V0OyBzZXQ7IH0NCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBBIHN0cmluZyB0aGF0IGNvbnRyaWJ1dGVzIHRvIHRoZSB1bmlxdWUgaWRlbnRpdHkgb2YgdGhlIHJlc3VsdC4NCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgW0RhdGFNZW1iZXIoTmFtZSA9ICJ0b29sRmluZ2VycHJpbnRDb250cmlidXRpb24iLCBJc1JlcXVpcmVkID0gZmFsc2UsIEVtaXREZWZhdWx0VmFsdWUgPSBmYWxzZSldDQogICAgICAgIHB1YmxpYyBzdHJpbmcgVG9vbEZpbmdlcnByaW50Q29udHJpYnV0aW9uIHsgZ2V0OyBzZXQ7IH0NCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBBbiBhcnJheSBvZiAnc3RhY2snIG9iamVjdHMgcmVsZXZhbnQgdG8gdGhlIHJlc3VsdC4NCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgW0RhdGFNZW1iZXIoTmFtZSA9ICJzdGFja3MiLCBJc1JlcXVpcmVkID0gZmFsc2UsIEVtaXREZWZhdWx0VmFsdWUgPSBmYWxzZSldDQogICAgICAgIHB1YmxpYyBJTGlzdDxTdGFja1ZlcnNpb25PbmU+IFN0YWNrcyB7IGdldDsgc2V0OyB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gQW4gYXJyYXkgb2YgJ2NvZGVGbG93JyBvYmplY3RzIHJlbGV2YW50IHRvIHRoZSByZXN1bHQuDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIFtEYXRhTWVtYmVyKE5hbWUgPSAiY29kZUZsb3dzIiwgSXNSZXF1aXJlZCA9IGZhbHNlLCBFbWl0RGVmYXVsdFZhbHVlID0gZmFsc2UpXQ0KICAgICAgICBwdWJsaWMgSUxpc3Q8Q29kZUZsb3dWZXJzaW9uT25lPiBDb2RlRmxvd3MgeyBnZXQ7IHNldDsgfQ0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIEEgZ3JvdXBlZCBzZXQgb2YgbG9jYXRpb25zIGFuZCBtZXNzYWdlcywgaWYgYXZhaWxhYmxlLCB0aGF0IHJlcHJlc2VudCBjb2RlIGFyZWFzIHRoYXQgYXJlIHJlbGF0ZWQgdG8gdGhpcyByZXN1bHQuDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIFtEYXRhTWVtYmVyKE5hbWUgPSAicmVsYXRlZExvY2F0aW9ucyIsIElzUmVxdWlyZWQgPSBmYWxzZSwgRW1pdERlZmF1bHRWYWx1ZSA9IGZhbHNlKV0NCiAgICAgICAgcHVibGljIElMaXN0PEFubm90YXRlZENvZGVMb2NhdGlvblZlcnNpb25PbmU+IFJlbGF0ZWRMb2NhdGlvbnMgeyBnZXQ7IHNldDsgfQ0KICAgICAgICBbRGF0YU1lbWJlcihOYW1lID0gInN1cHByZXNzaW9uU3RhdGVzIiwgSXNSZXF1aXJlZCA9IGZhbHNlLCBFbWl0RGVmYXVsdFZhbHVlID0gZmFsc2UpXQ0KICAgICAgICBwdWJsaWMgU3VwcHJlc3Npb25TdGF0ZXNWZXJzaW9uT25lIFN1cHByZXNzaW9uU3RhdGVzIHsgZ2V0OyBzZXQ7IH0NCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBUaGUgc3RhdGUgb2YgYSByZXN1bHQgcmVsYXRpdmUgdG8gYSBiYXNlbGluZSBvZiBhIHByZXZpb3VzIHJ1bi4NCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgW0RhdGFNZW1iZXIoTmFtZSA9ICJiYXNlbGluZVN0YXRlIiwgSXNSZXF1aXJlZCA9IGZhbHNlLCBFbWl0RGVmYXVsdFZhbHVlID0gZmFsc2UpXQ0KICAgICAgICBwdWJsaWMgQmFzZWxpbmVTdGF0ZVZlcnNpb25PbmUgQmFzZWxpbmVTdGF0ZSB7IGdldDsgc2V0OyB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gQW4gYXJyYXkgb2YgJ2ZpeCcgb2JqZWN0cywgZWFjaCBvZiB3aGljaCByZXByZXNlbnRzIGEgcHJvcG9zZWQgZml4IHRvIHRoZSBwcm9ibGVtIGluZGljYXRlZCBieSB0aGUgcmVzdWx0Lg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICBbRGF0YU1lbWJlcihOYW1lID0gImZpeGVzIiwgSXNSZXF1aXJlZCA9IGZhbHNlLCBFbWl0RGVmYXVsdFZhbHVlID0gZmFsc2UpXQ0KICAgICAgICBwdWJsaWMgSUxpc3Q8Rml4VmVyc2lvbk9uZT4gRml4ZXMgeyBnZXQ7IHNldDsgfQ0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIEtleS92YWx1ZSBwYWlycyB0aGF0IHByb3ZpZGUgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiBhYm91dCB0aGUgcmVzdWx0Lg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICBbRGF0YU1lbWJlcihOYW1lID0gInByb3BlcnRpZXMiLCBJc1JlcXVpcmVkID0gZmFsc2UsIEVtaXREZWZhdWx0VmFsdWUgPSBmYWxzZSldDQogICAgICAgIGludGVybmFsIG92ZXJyaWRlIElEaWN0aW9uYXJ5PHN0cmluZywgU2VyaWFsaXplZFByb3BlcnR5SW5mbz4gUHJvcGVydGllcyB7IGdldDsgc2V0OyB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gSW5pdGlhbGl6ZXMgYSBuZXcgaW5zdGFuY2Ugb2YgdGhlIDxzZWUgY3JlZj0iUmVzdWx0VmVyc2lvbk9uZSIgLz4gY2xhc3MuDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIHB1YmxpYyBSZXN1bHRWZXJzaW9uT25lKCkNCiAgICAgICAgew0KICAgICAgICB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gSW5pdGlhbGl6ZXMgYSBuZXcgaW5zdGFuY2Ugb2YgdGhlIDxzZWUgY3JlZj0iUmVzdWx0VmVyc2lvbk9uZSIgLz4gY2xhc3MgZnJvbSB0aGUgc3VwcGxpZWQgdmFsdWVzLg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICAvLy8gPHBhcmFtIG5hbWU9InJ1bGVJZCI+DQogICAgICAgIC8vLyBBbiBpbml0aWFsaXphdGlvbiB2YWx1ZSBmb3IgdGhlIDxzZWUgY3JlZj0iUDogUnVsZUlkIiAvPiBwcm9wZXJ0eS4NCiAgICAgICAgLy8vIDwvcGFyYW0+DQogICAgICAgIC8vLyA8cGFyYW0gbmFtZT0icnVsZUtleSI+DQogICAgICAgIC8vLyBBbiBpbml0aWFsaXphdGlvbiB2YWx1ZSBmb3IgdGhlIDxzZWUgY3JlZj0iUDogUnVsZUtleSIgLz4gcHJvcGVydHkuDQogICAgICAgIC8vLyA8L3BhcmFtPg0KICAgICAgICAvLy8gPHBhcmFtIG5hbWU9ImxldmVsIj4NCiAgICAgICAgLy8vIEFuIGluaXRpYWxpemF0aW9uIHZhbHVlIGZvciB0aGUgPHNlZSBjcmVmPSJQOiBMZXZlbCIgLz4gcHJvcGVydHkuDQogICAgICAgIC8vLyA8L3BhcmFtPg0KICAgICAgICAvLy8gPHBhcmFtIG5hbWU9Im1lc3NhZ2UiPg0KICAgICAgICAvLy8gQW4gaW5pdGlhbGl6YXRpb24gdmFsdWUgZm9yIHRoZSA8c2VlIGNyZWY9IlA6IE1lc3NhZ2UiIC8+IHByb3BlcnR5Lg0KICAgICAgICAvLy8gPC9wYXJhbT4NCiAgICAgICAgLy8vIDxwYXJhbSBuYW1lPSJmb3JtYXR0ZWRSdWxlTWVzc2FnZSI+DQogICAgICAgIC8vLyBBbiBpbml0aWFsaXphdGlvbiB2YWx1ZSBmb3IgdGhlIDxzZWUgY3JlZj0iUDogRm9ybWF0dGVkUnVsZU1lc3NhZ2UiIC8+IHByb3BlcnR5Lg0KICAgICAgICAvLy8gPC9wYXJhbT4NCiAgICAgICAgLy8vIDxwYXJhbSBuYW1lPSJsb2NhdGlvbnMiPg0KICAgICAgICAvLy8gQW4gaW5pdGlhbGl6YXRpb24gdmFsdWUgZm9yIHRoZSA8c2VlIGNyZWY9IlA6IExvY2F0aW9ucyIgLz4gcHJvcGVydHkuDQogICAgICAgIC8vLyA8L3BhcmFtPg0KICAgICAgICAvLy8gPHBhcmFtIG5hbWU9InNuaXBwZXQiPg0KICAgICAgICAvLy8gQW4gaW5pdGlhbGl6YXRpb24gdmFsdWUgZm9yIHRoZSA8c2VlIGNyZWY9IlA6IFNuaXBwZXQiIC8+IHByb3BlcnR5Lg0KICAgICAgICAvLy8gPC9wYXJhbT4NCiAgICAgICAgLy8vIDxwYXJhbSBuYW1lPSJpZCI+DQogICAgICAgIC8vLyBBbiBpbml0aWFsaXphdGlvbiB2YWx1ZSBmb3IgdGhlIDxzZWUgY3JlZj0iUDogSWQiIC8+IHByb3BlcnR5Lg0KICAgICAgICAvLy8gPC9wYXJhbT4NCiAgICAgICAgLy8vIDxwYXJhbSBuYW1lPSJ0b29sRmluZ2VycHJpbnRDb250cmlidXRpb24iPg0KICAgICAgICAvLy8gQW4gaW5pdGlhbGl6YXRpb24gdmFsdWUgZm9yIHRoZSA8c2VlIGNyZWY9IlA6IFRvb2xGaW5nZXJwcmludENvbnRyaWJ1dGlvbiIgLz4gcHJvcGVydHkuDQogICAgICAgIC8vLyA8L3BhcmFtPg0KICAgICAgICAvLy8gPHBhcmFtIG5hbWU9InN0YWNrcyI+DQogICAgICAgIC8vLyBBbiBpbml0aWFsaXphdGlvbiB2YWx1ZSBmb3IgdGhlIDxzZWUgY3JlZj0iUDogU3RhY2tzIiAvPiBwcm9wZXJ0eS4NCiAgICAgICAgLy8vIDwvcGFyYW0+DQogICAgICAgIC8vLyA8cGFyYW0gbmFtZT0iY29kZUZsb3dzIj4NCiAgICAgICAgLy8vIEFuIGluaXRpYWxpemF0aW9uIHZhbHVlIGZvciB0aGUgPHNlZSBjcmVmPSJQOiBDb2RlRmxvd3MiIC8+IHByb3BlcnR5Lg0KICAgICAgICAvLy8gPC9wYXJhbT4NCiAgICAgICAgLy8vIDxwYXJhbSBuYW1lPSJyZWxhdGVkTG9jYXRpb25zIj4NCiAgICAgICAgLy8vIEFuIGluaXRpYWxpemF0aW9uIHZhbHVlIGZvciB0aGUgPHNlZSBjcmVmPSJQOiBSZWxhdGVkTG9jYXRpb25zIiAvPiBwcm9wZXJ0eS4NCiAgICAgICAgLy8vIDwvcGFyYW0+DQogICAgICAgIC8vLyA8cGFyYW0gbmFtZT0ic3VwcHJlc3Npb25TdGF0ZXMiPg0KICAgICAgICAvLy8gQW4gaW5pdGlhbGl6YXRpb24gdmFsdWUgZm9yIHRoZSA8c2VlIGNyZWY9IlA6IFN1cHByZXNzaW9uU3RhdGVzIiAvPiBwcm9wZXJ0eS4NCiAgICAgICAgLy8vIDwvcGFyYW0+DQogICAgICAgIC8vLyA8cGFyYW0gbmFtZT0iYmFzZWxpbmVTdGF0ZSI+DQogICAgICAgIC8vLyBBbiBpbml0aWFsaXphdGlvbiB2YWx1ZSBmb3IgdGhlIDxzZWUgY3JlZj0iUDogQmFzZWxpbmVTdGF0ZSIgLz4gcHJvcGVydHkuDQogICAgICAgIC8vLyA8L3BhcmFtPg0KICAgICAgICAvLy8gPHBhcmFtIG5hbWU9ImZpeGVzIj4NCiAgICAgICAgLy8vIEFuIGluaXRpYWxpemF0aW9uIHZhbHVlIGZvciB0aGUgPHNlZSBjcmVmPSJQOiBGaXhlcyIgLz4gcHJvcGVydHkuDQogICAgICAgIC8vLyA8L3BhcmFtPg0KICAgICAgICAvLy8gPHBhcmFtIG5hbWU9InByb3BlcnRpZXMiPg0KICAgICAgICAvLy8gQW4gaW5pdGlhbGl6YXRpb24gdmFsdWUgZm9yIHRoZSA8c2VlIGNyZWY9IlA6IFByb3BlcnRpZXMiIC8+IHByb3BlcnR5Lg0KICAgICAgICAvLy8gPC9wYXJhbT4NCiAgICAgICAgcHVibGljIFJlc3VsdFZlcnNpb25PbmUoc3RyaW5nIHJ1bGVJZCwgc3RyaW5nIHJ1bGVLZXksIFJlc3VsdExldmVsVmVyc2lvbk9uZSBsZXZlbCwgc3RyaW5nIG1lc3NhZ2UsIEZvcm1hdHRlZFJ1bGVNZXNzYWdlVmVyc2lvbk9uZSBmb3JtYXR0ZWRSdWxlTWVzc2FnZSwgSUVudW1lcmFibGU8TG9jYXRpb25WZXJzaW9uT25lPiBsb2NhdGlvbnMsIHN0cmluZyBzbmlwcGV0LCBzdHJpbmcgaWQsIHN0cmluZyB0b29sRmluZ2VycHJpbnRDb250cmlidXRpb24sIElFbnVtZXJhYmxlPFN0YWNrVmVyc2lvbk9uZT4gc3RhY2tzLCBJRW51bWVyYWJsZTxDb2RlRmxvd1ZlcnNpb25PbmU+IGNvZGVGbG93cywgSUVudW1lcmFibGU8QW5ub3RhdGVkQ29kZUxvY2F0aW9uVmVyc2lvbk9uZT4gcmVsYXRlZExvY2F0aW9ucywgU3VwcHJlc3Npb25TdGF0ZXNWZXJzaW9uT25lIHN1cHByZXNzaW9uU3RhdGVzLCBCYXNlbGluZVN0YXRlVmVyc2lvbk9uZSBiYXNlbGluZVN0YXRlLCBJRW51bWVyYWJsZTxGaXhWZXJzaW9uT25lPiBmaXhlcywgSURpY3Rpb25hcnk8c3RyaW5nLCBTZXJpYWxpemVkUHJvcGVydHlJbmZvPiBwcm9wZXJ0aWVzKQ0KICAgICAgICB7DQogICAgICAgICAgICBJbml0KHJ1bGVJZCwgcnVsZUtleSwgbGV2ZWwsIG1lc3NhZ2UsIGZvcm1hdHRlZFJ1bGVNZXNzYWdlLCBsb2NhdGlvbnMsIHNuaXBwZXQsIGlkLCB0b29sRmluZ2VycHJpbnRDb250cmlidXRpb24sIHN0YWNrcywgY29kZUZsb3dzLCByZWxhdGVkTG9jYXRpb25zLCBzdXBwcmVzc2lvblN0YXRlcywgYmFzZWxpbmVTdGF0ZSwgZml4ZXMsIHByb3BlcnRpZXMpOw0KICAgICAgICB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gSW5pdGlhbGl6ZXMgYSBuZXcgaW5zdGFuY2Ugb2YgdGhlIDxzZWUgY3JlZj0iUmVzdWx0VmVyc2lvbk9uZSIgLz4gY2xhc3MgZnJvbSB0aGUgc3BlY2lmaWVkIGluc3RhbmNlLg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICAvLy8gPHBhcmFtIG5hbWU9Im90aGVyIj4NCiAgICAgICAgLy8vIFRoZSBpbnN0YW5jZSBmcm9tIHdoaWNoIHRoZSBuZXcgaW5zdGFuY2UgaXMgdG8gYmUgaW5pdGlhbGl6ZWQuDQogICAgICAgIC8vLyA8L3BhcmFtPg0KICAgICAgICAvLy8gPGV4Y2VwdGlvbiBjcmVmPSJBcmd1bWVudE51bGxFeGNlcHRpb24iPg0KICAgICAgICAvLy8gVGhyb3duIGlmIDxwYXJhbXJlZiBuYW1lPSJvdGhlciIgLz4gaXMgbnVsbC4NCiAgICAgICAgLy8vIDwvZXhjZXB0aW9uPg0KICAgICAgICBwdWJsaWMgUmVzdWx0VmVyc2lvbk9uZShSZXN1bHRWZXJzaW9uT25lIG90aGVyKQ0KICAgICAgICB7DQogICAgICAgICAgICBpZiAob3RoZXIgPT0gbnVsbCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgQXJndW1lbnROdWxsRXhjZXB0aW9uKG5hbWVvZihvdGhlcikpOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBJbml0KG90aGVyLlJ1bGVJZCwgb3RoZXIuUnVsZUtleSwgb3RoZXIuTGV2ZWwsIG90aGVyLk1lc3NhZ2UsIG90aGVyLkZvcm1hdHRlZFJ1bGVNZXNzYWdlLCBvdGhlci5Mb2NhdGlvbnMsIG90aGVyLlNuaXBwZXQsIG90aGVyLklkLCBvdGhlci5Ub29sRmluZ2VycHJpbnRDb250cmlidXRpb24sIG90aGVyLlN0YWNrcywgb3RoZXIuQ29kZUZsb3dzLCBvdGhlci5SZWxhdGVkTG9jYXRpb25zLCBvdGhlci5TdXBwcmVzc2lvblN0YXRlcywgb3RoZXIuQmFzZWxpbmVTdGF0ZSwgb3RoZXIuRml4ZXMsIG90aGVyLlByb3BlcnRpZXMpOw0KICAgICAgICB9DQoNCiAgICAgICAgSVNhcmlmTm9kZVZlcnNpb25PbmUgSVNhcmlmTm9kZVZlcnNpb25PbmUuRGVlcENsb25lKCkNCiAgICAgICAgew0KICAgICAgICAgICAgcmV0dXJuIERlZXBDbG9uZUNvcmUoKTsNCiAgICAgICAgfQ0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIENyZWF0ZXMgYSBkZWVwIGNvcHkgb2YgdGhpcyBpbnN0YW5jZS4NCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgcHVibGljIFJlc3VsdFZlcnNpb25PbmUgRGVlcENsb25lKCkNCiAgICAgICAgew0KICAgICAgICAgICAgcmV0dXJuIChSZXN1bHRWZXJzaW9uT25lKURlZXBDbG9uZUNvcmUoKTsNCiAgICAgICAgfQ0KDQogICAgICAgIHByaXZhdGUgSVNhcmlmTm9kZVZlcnNpb25PbmUgRGVlcENsb25lQ29yZSgpDQogICAgICAgIHsNCiAgICAgICAgICAgIHJldHVybiBuZXcgUmVzdWx0VmVyc2lvbk9uZSh0aGlzKTsNCiAgICAgICAgfQ0KDQogICAgICAgIHByaXZhdGUgdm9pZCBJbml0KHN0cmluZyBydWxlSWQsIHN0cmluZyBydWxlS2V5LCBSZXN1bHRMZXZlbFZlcnNpb25PbmUgbGV2ZWwsIHN0cmluZyBtZXNzYWdlLCBGb3JtYXR0ZWRSdWxlTWVzc2FnZVZlcnNpb25PbmUgZm9ybWF0dGVkUnVsZU1lc3NhZ2UsIElFbnVtZXJhYmxlPExvY2F0aW9uVmVyc2lvbk9uZT4gbG9jYXRpb25zLCBzdHJpbmcgc25pcHBldCwgc3RyaW5nIGlkLCBzdHJpbmcgdG9vbEZpbmdlcnByaW50Q29udHJpYnV0aW9uLCBJRW51bWVyYWJsZTxTdGFja1ZlcnNpb25PbmU+IHN0YWNrcywgSUVudW1lcmFibGU8Q29kZUZsb3dWZXJzaW9uT25lPiBjb2RlRmxvd3MsIElFbnVtZXJhYmxlPEFubm90YXRlZENvZGVMb2NhdGlvblZlcnNpb25PbmU+IHJlbGF0ZWRMb2NhdGlvbnMsIFN1cHByZXNzaW9uU3RhdGVzVmVyc2lvbk9uZSBzdXBwcmVzc2lvblN0YXRlcywgQmFzZWxpbmVTdGF0ZVZlcnNpb25PbmUgYmFzZWxpbmVTdGF0ZSwgSUVudW1lcmFibGU8Rml4VmVyc2lvbk9uZT4gZml4ZXMsIElEaWN0aW9uYXJ5PHN0cmluZywgU2VyaWFsaXplZFByb3BlcnR5SW5mbz4gcHJvcGVydGllcykNCiAgICAgICAgew0KICAgICAgICAgICAgUnVsZUlkID0gcnVsZUlkOw0KICAgICAgICAgICAgUnVsZUtleSA9IHJ1bGVLZXk7DQogICAgICAgICAgICBMZXZlbCA9IGxldmVsOw0KICAgICAgICAgICAgTWVzc2FnZSA9IG1lc3NhZ2U7DQogICAgICAgICAgICBpZiAoZm9ybWF0dGVkUnVsZU1lc3NhZ2UgIT0gbnVsbCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBGb3JtYXR0ZWRSdWxlTWVzc2FnZSA9IG5ldyBGb3JtYXR0ZWRSdWxlTWVzc2FnZVZlcnNpb25PbmUoZm9ybWF0dGVkUnVsZU1lc3NhZ2UpOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBpZiAobG9jYXRpb25zICE9IG51bGwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgdmFyIGRlc3RpbmF0aW9uXzAgPSBuZXcgTGlzdDxMb2NhdGlvblZlcnNpb25PbmU+KCk7DQogICAgICAgICAgICAgICAgZm9yZWFjaCAodmFyIHZhbHVlXzAgaW4gbG9jYXRpb25zKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlXzAgPT0gbnVsbCkNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgZGVzdGluYXRpb25fMC5BZGQobnVsbCk7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgZWxzZQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICBkZXN0aW5hdGlvbl8wLkFkZChuZXcgTG9jYXRpb25WZXJzaW9uT25lKHZhbHVlXzApKTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgIExvY2F0aW9ucyA9IGRlc3RpbmF0aW9uXzA7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIFNuaXBwZXQgPSBzbmlwcGV0Ow0KICAgICAgICAgICAgSWQgPSBpZDsNCiAgICAgICAgICAgIFRvb2xGaW5nZXJwcmludENvbnRyaWJ1dGlvbiA9IHRvb2xGaW5nZXJwcmludENvbnRyaWJ1dGlvbjsNCiAgICAgICAgICAgIGlmIChzdGFja3MgIT0gbnVsbCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICB2YXIgZGVzdGluYXRpb25fMSA9IG5ldyBMaXN0PFN0YWNrVmVyc2lvbk9uZT4oKTsNCiAgICAgICAgICAgICAgICBmb3JlYWNoICh2YXIgdmFsdWVfMSBpbiBzdGFja3MpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWVfMSA9PSBudWxsKQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICBkZXN0aW5hdGlvbl8xLkFkZChudWxsKTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBlbHNlDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGRlc3RpbmF0aW9uXzEuQWRkKG5ldyBTdGFja1ZlcnNpb25PbmUodmFsdWVfMSkpOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgU3RhY2tzID0gZGVzdGluYXRpb25fMTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgaWYgKGNvZGVGbG93cyAhPSBudWxsKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHZhciBkZXN0aW5hdGlvbl8yID0gbmV3IExpc3Q8Q29kZUZsb3dWZXJzaW9uT25lPigpOw0KICAgICAgICAgICAgICAgIGZvcmVhY2ggKHZhciB2YWx1ZV8yIGluIGNvZGVGbG93cykNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZV8yID09IG51bGwpDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGRlc3RpbmF0aW9uXzIuQWRkKG51bGwpOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGVsc2UNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgZGVzdGluYXRpb25fMi5BZGQobmV3IENvZGVGbG93VmVyc2lvbk9uZSh2YWx1ZV8yKSk7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICBDb2RlRmxvd3MgPSBkZXN0aW5hdGlvbl8yOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBpZiAocmVsYXRlZExvY2F0aW9ucyAhPSBudWxsKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHZhciBkZXN0aW5hdGlvbl8zID0gbmV3IExpc3Q8QW5ub3RhdGVkQ29kZUxvY2F0aW9uVmVyc2lvbk9uZT4oKTsNCiAgICAgICAgICAgICAgICBmb3JlYWNoICh2YXIgdmFsdWVfMyBpbiByZWxhdGVkTG9jYXRpb25zKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlXzMgPT0gbnVsbCkNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgZGVzdGluYXRpb25fMy5BZGQobnVsbCk7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgZWxzZQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICBkZXN0aW5hdGlvbl8zLkFkZChuZXcgQW5ub3RhdGVkQ29kZUxvY2F0aW9uVmVyc2lvbk9uZSh2YWx1ZV8zKSk7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICBSZWxhdGVkTG9jYXRpb25zID0gZGVzdGluYXRpb25fMzsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgU3VwcHJlc3Npb25TdGF0ZXMgPSBzdXBwcmVzc2lvblN0YXRlczsNCiAgICAgICAgICAgIEJhc2VsaW5lU3RhdGUgPSBiYXNlbGluZVN0YXRlOw0KICAgICAgICAgICAgaWYgKGZpeGVzICE9IG51bGwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgdmFyIGRlc3RpbmF0aW9uXzQgPSBuZXcgTGlzdDxGaXhWZXJzaW9uT25lPigpOw0KICAgICAgICAgICAgICAgIGZvcmVhY2ggKHZhciB2YWx1ZV80IGluIGZpeGVzKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlXzQgPT0gbnVsbCkNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgZGVzdGluYXRpb25fNC5BZGQobnVsbCk7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgZWxzZQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICBkZXN0aW5hdGlvbl80LkFkZChuZXcgRml4VmVyc2lvbk9uZSh2YWx1ZV80KSk7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICBGaXhlcyA9IGRlc3RpbmF0aW9uXzQ7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIGlmIChwcm9wZXJ0aWVzICE9IG51bGwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgUHJvcGVydGllcyA9IG5ldyBEaWN0aW9uYXJ5PHN0cmluZywgU2VyaWFsaXplZFByb3BlcnR5SW5mbz4ocHJvcGVydGllcyk7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCiAgICB9DQp9" + { + "ruleId": "CA1800", + "message": { + "text": "'obj', a parameter, is cast to type 'JToken' multiple times in method 'JTokenEqualityComparer.NullEquals(object)'. Cache the result of the 'as' operator or direct cast in order to eliminate the redundant isint instruction.", + "id": "Parameter" }, - "hashes": [ - { - "value": "D18A2F38B3A64107CFE31B13E5481854", - "algorithm": "md5" - }, - { - "value": "69ED9DE46C2B1168E84A70B5B82077E4C12ABB25", - "algorithm": "sha-1" - }, + "locations": [ { - "value": "41AD86076F08A4CF1CE7B56A78F089E4ECB66A9B18EAC4400D9263343D5D1235", - "algorithm": "sha-256" + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Microsoft.Json.Schema.Validation.dll", + "uriBaseId": "$(ProjectDir)", + "index": 2 + } + }, + "logicalLocations": [ + { + "index": 109, + "fullyQualifiedName": "microsoft.json.schema.validation.dll!Microsoft.Json.Schema.Validation.JTokenEqualityComparer.NullEquals(System.Object)" + } + ] } - ] + ], + "partialFingerprints": { + "UniqueId": "Parameter" + }, + "properties": { + "Category": "Microsoft.Performance", + "FixCategory": "NonBreaking" + } }, - "file:///E:/src/sarif-sdk-test/src/Sarif/VersionOne/Autogenerated/ResultVersionOneEqualityComparer.cs": { - "mimeType": "text/x-csharp", - "contents": { - "binary": "Ly8gQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQuICBBbGwgUmlnaHRzIFJlc2VydmVkLg0KLy8gTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlLiBTZWUgTElDRU5TRSBmaWxlIGluIHRoZSBwcm9qZWN0IHJvb3QgZm9yIGZ1bGwgbGljZW5zZSBpbmZvcm1hdGlvbi4NCg0KdXNpbmcgU3lzdGVtOw0KdXNpbmcgU3lzdGVtLkNvZGVEb20uQ29tcGlsZXI7DQp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsNCnVzaW5nIE1pY3Jvc29mdC5Db2RlQW5hbHlzaXMuU2FyaWYuUmVhZGVyczsNCg0KbmFtZXNwYWNlIE1pY3Jvc29mdC5Db2RlQW5hbHlzaXMuU2FyaWYuVmVyc2lvbk9uZQ0Kew0KICAgIC8vLyA8c3VtbWFyeT4NCiAgICAvLy8gRGVmaW5lcyBtZXRob2RzIHRvIHN1cHBvcnQgdGhlIGNvbXBhcmlzb24gb2Ygb2JqZWN0cyBvZiB0eXBlIFJlc3VsdFZlcnNpb25PbmUgZm9yIGVxdWFsaXR5Lg0KICAgIC8vLyA8L3N1bW1hcnk+DQogICAgW0dlbmVyYXRlZENvZGUoIk1pY3Jvc29mdC5Kc29uLlNjaGVtYS5Ub0RvdE5ldCIsICIwLjUyLjAuMCIpXQ0KICAgIGludGVybmFsIHNlYWxlZCBjbGFzcyBSZXN1bHRWZXJzaW9uT25lRXF1YWxpdHlDb21wYXJlciA6IElFcXVhbGl0eUNvbXBhcmVyPFJlc3VsdFZlcnNpb25PbmU+DQogICAgew0KICAgICAgICBpbnRlcm5hbCBzdGF0aWMgcmVhZG9ubHkgUmVzdWx0VmVyc2lvbk9uZUVxdWFsaXR5Q29tcGFyZXIgSW5zdGFuY2UgPSBuZXcgUmVzdWx0VmVyc2lvbk9uZUVxdWFsaXR5Q29tcGFyZXIoKTsNCg0KICAgICAgICBwdWJsaWMgYm9vbCBFcXVhbHMoUmVzdWx0VmVyc2lvbk9uZSBsZWZ0LCBSZXN1bHRWZXJzaW9uT25lIHJpZ2h0KQ0KICAgICAgICB7DQogICAgICAgICAgICBpZiAoUmVmZXJlbmNlRXF1YWxzKGxlZnQsIHJpZ2h0KSkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgaWYgKFJlZmVyZW5jZUVxdWFscyhsZWZ0LCBudWxsKSB8fCBSZWZlcmVuY2VFcXVhbHMocmlnaHQsIG51bGwpKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgaWYgKGxlZnQuUnVsZUlkICE9IHJpZ2h0LlJ1bGVJZCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIGlmIChsZWZ0LlJ1bGVLZXkgIT0gcmlnaHQuUnVsZUtleSkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIGlmIChsZWZ0LkxldmVsICE9IHJpZ2h0LkxldmVsKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgaWYgKGxlZnQuTWVzc2FnZSAhPSByaWdodC5NZXNzYWdlKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgaWYgKCFGb3JtYXR0ZWRSdWxlTWVzc2FnZVZlcnNpb25PbmUuVmFsdWVDb21wYXJlci5FcXVhbHMobGVmdC5Gb3JtYXR0ZWRSdWxlTWVzc2FnZSwgcmlnaHQuRm9ybWF0dGVkUnVsZU1lc3NhZ2UpKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgaWYgKCFvYmplY3QuUmVmZXJlbmNlRXF1YWxzKGxlZnQuTG9jYXRpb25zLCByaWdodC5Mb2NhdGlvbnMpKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIGlmIChsZWZ0LkxvY2F0aW9ucyA9PSBudWxsIHx8IHJpZ2h0LkxvY2F0aW9ucyA9PSBudWxsKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgIGlmIChsZWZ0LkxvY2F0aW9ucy5Db3VudCAhPSByaWdodC5Mb2NhdGlvbnMuQ291bnQpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgZm9yIChpbnQgaW5kZXhfMCA9IDA7IGluZGV4XzAgPCBsZWZ0LkxvY2F0aW9ucy5Db3VudDsgKytpbmRleF8wKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgaWYgKCFMb2NhdGlvblZlcnNpb25PbmUuVmFsdWVDb21wYXJlci5FcXVhbHMobGVmdC5Mb2NhdGlvbnNbaW5kZXhfMF0sIHJpZ2h0LkxvY2F0aW9uc1tpbmRleF8wXSkpDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgaWYgKGxlZnQuU25pcHBldCAhPSByaWdodC5TbmlwcGV0KQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgaWYgKGxlZnQuSWQgIT0gcmlnaHQuSWQpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBpZiAobGVmdC5Ub29sRmluZ2VycHJpbnRDb250cmlidXRpb24gIT0gcmlnaHQuVG9vbEZpbmdlcnByaW50Q29udHJpYnV0aW9uKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgaWYgKCFvYmplY3QuUmVmZXJlbmNlRXF1YWxzKGxlZnQuU3RhY2tzLCByaWdodC5TdGFja3MpKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIGlmIChsZWZ0LlN0YWNrcyA9PSBudWxsIHx8IHJpZ2h0LlN0YWNrcyA9PSBudWxsKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgIGlmIChsZWZ0LlN0YWNrcy5Db3VudCAhPSByaWdodC5TdGFja3MuQ291bnQpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgZm9yIChpbnQgaW5kZXhfMSA9IDA7IGluZGV4XzEgPCBsZWZ0LlN0YWNrcy5Db3VudDsgKytpbmRleF8xKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgaWYgKCFTdGFja1ZlcnNpb25PbmUuVmFsdWVDb21wYXJlci5FcXVhbHMobGVmdC5TdGFja3NbaW5kZXhfMV0sIHJpZ2h0LlN0YWNrc1tpbmRleF8xXSkpDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgaWYgKCFvYmplY3QuUmVmZXJlbmNlRXF1YWxzKGxlZnQuQ29kZUZsb3dzLCByaWdodC5Db2RlRmxvd3MpKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIGlmIChsZWZ0LkNvZGVGbG93cyA9PSBudWxsIHx8IHJpZ2h0LkNvZGVGbG93cyA9PSBudWxsKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgIGlmIChsZWZ0LkNvZGVGbG93cy5Db3VudCAhPSByaWdodC5Db2RlRmxvd3MuQ291bnQpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgZm9yIChpbnQgaW5kZXhfMiA9IDA7IGluZGV4XzIgPCBsZWZ0LkNvZGVGbG93cy5Db3VudDsgKytpbmRleF8yKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgaWYgKCFDb2RlRmxvd1ZlcnNpb25PbmUuVmFsdWVDb21wYXJlci5FcXVhbHMobGVmdC5Db2RlRmxvd3NbaW5kZXhfMl0sIHJpZ2h0LkNvZGVGbG93c1tpbmRleF8yXSkpDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgaWYgKCFvYmplY3QuUmVmZXJlbmNlRXF1YWxzKGxlZnQuUmVsYXRlZExvY2F0aW9ucywgcmlnaHQuUmVsYXRlZExvY2F0aW9ucykpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgaWYgKGxlZnQuUmVsYXRlZExvY2F0aW9ucyA9PSBudWxsIHx8IHJpZ2h0LlJlbGF0ZWRMb2NhdGlvbnMgPT0gbnVsbCkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICBpZiAobGVmdC5SZWxhdGVkTG9jYXRpb25zLkNvdW50ICE9IHJpZ2h0LlJlbGF0ZWRMb2NhdGlvbnMuQ291bnQpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgZm9yIChpbnQgaW5kZXhfMyA9IDA7IGluZGV4XzMgPCBsZWZ0LlJlbGF0ZWRMb2NhdGlvbnMuQ291bnQ7ICsraW5kZXhfMykNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIGlmICghQW5ub3RhdGVkQ29kZUxvY2F0aW9uVmVyc2lvbk9uZS5WYWx1ZUNvbXBhcmVyLkVxdWFscyhsZWZ0LlJlbGF0ZWRMb2NhdGlvbnNbaW5kZXhfM10sIHJpZ2h0LlJlbGF0ZWRMb2NhdGlvbnNbaW5kZXhfM10pKQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIGlmIChsZWZ0LlN1cHByZXNzaW9uU3RhdGVzICE9IHJpZ2h0LlN1cHByZXNzaW9uU3RhdGVzKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgaWYgKGxlZnQuQmFzZWxpbmVTdGF0ZSAhPSByaWdodC5CYXNlbGluZVN0YXRlKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgaWYgKCFvYmplY3QuUmVmZXJlbmNlRXF1YWxzKGxlZnQuRml4ZXMsIHJpZ2h0LkZpeGVzKSkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBpZiAobGVmdC5GaXhlcyA9PSBudWxsIHx8IHJpZ2h0LkZpeGVzID09IG51bGwpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgaWYgKGxlZnQuRml4ZXMuQ291bnQgIT0gcmlnaHQuRml4ZXMuQ291bnQpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgZm9yIChpbnQgaW5kZXhfNCA9IDA7IGluZGV4XzQgPCBsZWZ0LkZpeGVzLkNvdW50OyArK2luZGV4XzQpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBpZiAoIUZpeFZlcnNpb25PbmUuVmFsdWVDb21wYXJlci5FcXVhbHMobGVmdC5GaXhlc1tpbmRleF80XSwgcmlnaHQuRml4ZXNbaW5kZXhfNF0pKQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIGlmICghb2JqZWN0LlJlZmVyZW5jZUVxdWFscyhsZWZ0LlByb3BlcnRpZXMsIHJpZ2h0LlByb3BlcnRpZXMpKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIGlmIChsZWZ0LlByb3BlcnRpZXMgPT0gbnVsbCB8fCByaWdodC5Qcm9wZXJ0aWVzID09IG51bGwgfHwgbGVmdC5Qcm9wZXJ0aWVzLkNvdW50ICE9IHJpZ2h0LlByb3BlcnRpZXMuQ291bnQpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgZm9yZWFjaCAodmFyIHZhbHVlXzAgaW4gbGVmdC5Qcm9wZXJ0aWVzKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgU2VyaWFsaXplZFByb3BlcnR5SW5mbyB2YWx1ZV8xOw0KICAgICAgICAgICAgICAgICAgICBpZiAoIXJpZ2h0LlByb3BlcnRpZXMuVHJ5R2V0VmFsdWUodmFsdWVfMC5LZXksIG91dCB2YWx1ZV8xKSkNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAgICAgaWYgKCFvYmplY3QuRXF1YWxzKHZhbHVlXzAuVmFsdWUsIHZhbHVlXzEpKQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIHJldHVybiB0cnVlOw0KICAgICAgICB9DQoNCiAgICAgICAgcHVibGljIGludCBHZXRIYXNoQ29kZShSZXN1bHRWZXJzaW9uT25lIG9iaikNCiAgICAgICAgew0KICAgICAgICAgICAgaWYgKFJlZmVyZW5jZUVxdWFscyhvYmosIG51bGwpKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHJldHVybiAwOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBpbnQgcmVzdWx0ID0gMTc7DQogICAgICAgICAgICB1bmNoZWNrZWQNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBpZiAob2JqLlJ1bGVJZCAhPSBudWxsKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gKHJlc3VsdCAqIDMxKSArIG9iai5SdWxlSWQuR2V0SGFzaENvZGUoKTsNCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICBpZiAob2JqLlJ1bGVLZXkgIT0gbnVsbCkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IChyZXN1bHQgKiAzMSkgKyBvYmouUnVsZUtleS5HZXRIYXNoQ29kZSgpOw0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgIHJlc3VsdCA9IChyZXN1bHQgKiAzMSkgKyBvYmouTGV2ZWwuR2V0SGFzaENvZGUoKTsNCiAgICAgICAgICAgICAgICBpZiAob2JqLk1lc3NhZ2UgIT0gbnVsbCkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IChyZXN1bHQgKiAzMSkgKyBvYmouTWVzc2FnZS5HZXRIYXNoQ29kZSgpOw0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgIGlmIChvYmouRm9ybWF0dGVkUnVsZU1lc3NhZ2UgIT0gbnVsbCkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IChyZXN1bHQgKiAzMSkgKyBvYmouRm9ybWF0dGVkUnVsZU1lc3NhZ2UuVmFsdWVHZXRIYXNoQ29kZSgpOw0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgIGlmIChvYmouTG9jYXRpb25zICE9IG51bGwpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBmb3JlYWNoICh2YXIgdmFsdWVfMiBpbiBvYmouTG9jYXRpb25zKQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSByZXN1bHQgKiAzMTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZV8yICE9IG51bGwpDQogICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gKHJlc3VsdCAqIDMxKSArIHZhbHVlXzIuVmFsdWVHZXRIYXNoQ29kZSgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgaWYgKG9iai5TbmlwcGV0ICE9IG51bGwpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSAocmVzdWx0ICogMzEpICsgb2JqLlNuaXBwZXQuR2V0SGFzaENvZGUoKTsNCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICBpZiAob2JqLklkICE9IG51bGwpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSAocmVzdWx0ICogMzEpICsgb2JqLklkLkdldEhhc2hDb2RlKCk7DQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgaWYgKG9iai5Ub29sRmluZ2VycHJpbnRDb250cmlidXRpb24gIT0gbnVsbCkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IChyZXN1bHQgKiAzMSkgKyBvYmouVG9vbEZpbmdlcnByaW50Q29udHJpYnV0aW9uLkdldEhhc2hDb2RlKCk7DQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgaWYgKG9iai5TdGFja3MgIT0gbnVsbCkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIGZvcmVhY2ggKHZhciB2YWx1ZV8zIGluIG9iai5TdGFja3MpDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IHJlc3VsdCAqIDMxOw0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlXzMgIT0gbnVsbCkNCiAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSAocmVzdWx0ICogMzEpICsgdmFsdWVfMy5WYWx1ZUdldEhhc2hDb2RlKCk7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICBpZiAob2JqLkNvZGVGbG93cyAhPSBudWxsKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgZm9yZWFjaCAodmFyIHZhbHVlXzQgaW4gb2JqLkNvZGVGbG93cykNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gcmVzdWx0ICogMzE7DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWVfNCAhPSBudWxsKQ0KICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IChyZXN1bHQgKiAzMSkgKyB2YWx1ZV80LlZhbHVlR2V0SGFzaENvZGUoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgIGlmIChvYmouUmVsYXRlZExvY2F0aW9ucyAhPSBudWxsKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgZm9yZWFjaCAodmFyIHZhbHVlXzUgaW4gb2JqLlJlbGF0ZWRMb2NhdGlvbnMpDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IHJlc3VsdCAqIDMxOw0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlXzUgIT0gbnVsbCkNCiAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSAocmVzdWx0ICogMzEpICsgdmFsdWVfNS5WYWx1ZUdldEhhc2hDb2RlKCk7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICByZXN1bHQgPSAocmVzdWx0ICogMzEpICsgb2JqLlN1cHByZXNzaW9uU3RhdGVzLkdldEhhc2hDb2RlKCk7DQogICAgICAgICAgICAgICAgcmVzdWx0ID0gKHJlc3VsdCAqIDMxKSArIG9iai5CYXNlbGluZVN0YXRlLkdldEhhc2hDb2RlKCk7DQogICAgICAgICAgICAgICAgaWYgKG9iai5GaXhlcyAhPSBudWxsKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgZm9yZWFjaCAodmFyIHZhbHVlXzYgaW4gb2JqLkZpeGVzKQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSByZXN1bHQgKiAzMTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZV82ICE9IG51bGwpDQogICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gKHJlc3VsdCAqIDMxKSArIHZhbHVlXzYuVmFsdWVHZXRIYXNoQ29kZSgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgaWYgKG9iai5Qcm9wZXJ0aWVzICE9IG51bGwpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAvLyBVc2UgeG9yIGZvciBkaWN0aW9uYXJpZXMgdG8gYmUgb3JkZXItaW5kZXBlbmRlbnQuDQogICAgICAgICAgICAgICAgICAgIGludCB4b3JfMCA9IDA7DQogICAgICAgICAgICAgICAgICAgIGZvcmVhY2ggKHZhciB2YWx1ZV83IGluIG9iai5Qcm9wZXJ0aWVzKQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICB4b3JfMCBePSB2YWx1ZV83LktleS5HZXRIYXNoQ29kZSgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlXzcuVmFsdWUgIT0gbnVsbCkNCiAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB4b3JfMCBePSB2YWx1ZV83LlZhbHVlLkdldEhhc2hDb2RlKCk7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSAocmVzdWx0ICogMzEpICsgeG9yXzA7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICByZXR1cm4gcmVzdWx0Ow0KICAgICAgICB9DQogICAgfQ0KfQ==" + { + "ruleId": "CA1053", + "level": "error", + "message": { + "text": "Because type 'ResultFactory' contains only 'static' ('Shared' in Visual Basic) members, add a default private constructor to prevent the compiler from adding a default public constructor." }, - "hashes": [ - { - "value": "ECFE3607D5DEA21D4245F621BBEC765E", - "algorithm": "md5" - }, - { - "value": "4361429C9B74A624F517D3C65FF1D36868F2676D", - "algorithm": "sha-1" - }, + "locations": [ { - "value": "2AACF8DC73F658B489D1DF16F8DE91F5865A06A00943792ED595840339F6686C", - "algorithm": "sha-256" + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Microsoft.Json.Schema.Validation.dll", + "uriBaseId": "$(ProjectDir)", + "index": 2 + } + }, + "logicalLocations": [ + { + "index": 110, + "fullyQualifiedName": "microsoft.json.schema.validation.dll!Microsoft.Json.Schema.Validation.ResultFactory" + } + ] } - ] + ], + "properties": { + "Category": "Microsoft.Design", + "FixCategory": "Breaking" + } }, - "file:///E:/src/sarif-sdk-test/src/Sarif/VersionOne/Autogenerated/RuleVersionOne.cs": { - "mimeType": "text/x-csharp", - "contents": { - "binary": "Ly8gQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQuICBBbGwgUmlnaHRzIFJlc2VydmVkLg0KLy8gTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlLiBTZWUgTElDRU5TRSBmaWxlIGluIHRoZSBwcm9qZWN0IHJvb3QgZm9yIGZ1bGwgbGljZW5zZSBpbmZvcm1hdGlvbi4NCg0KdXNpbmcgU3lzdGVtOw0KdXNpbmcgU3lzdGVtLkNvZGVEb20uQ29tcGlsZXI7DQp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsNCnVzaW5nIFN5c3RlbS5SdW50aW1lLlNlcmlhbGl6YXRpb247DQp1c2luZyBNaWNyb3NvZnQuQ29kZUFuYWx5c2lzLlNhcmlmLlJlYWRlcnM7DQoNCm5hbWVzcGFjZSBNaWNyb3NvZnQuQ29kZUFuYWx5c2lzLlNhcmlmLlZlcnNpb25PbmUNCnsNCiAgICAvLy8gPHN1bW1hcnk+DQogICAgLy8vIERlc2NyaWJlcyBhbiBhbmFseXNpcyBydWxlLg0KICAgIC8vLyA8L3N1bW1hcnk+DQogICAgW0RhdGFDb250cmFjdF0NCiAgICBbR2VuZXJhdGVkQ29kZSgiTWljcm9zb2Z0Lkpzb24uU2NoZW1hLlRvRG90TmV0IiwgIjAuNTIuMC4wIildDQogICAgcHVibGljIHBhcnRpYWwgY2xhc3MgUnVsZVZlcnNpb25PbmUgOiBQcm9wZXJ0eUJhZ0hvbGRlclZlcnNpb25PbmUsIElSdWxlVmVyc2lvbk9uZSwgSVNhcmlmTm9kZVZlcnNpb25PbmUNCiAgICB7DQogICAgICAgIHB1YmxpYyBzdGF0aWMgSUVxdWFsaXR5Q29tcGFyZXI8UnVsZVZlcnNpb25PbmU+IFZhbHVlQ29tcGFyZXIgPT4gUnVsZVZlcnNpb25PbmVFcXVhbGl0eUNvbXBhcmVyLkluc3RhbmNlOw0KDQogICAgICAgIHB1YmxpYyBib29sIFZhbHVlRXF1YWxzKFJ1bGVWZXJzaW9uT25lIG90aGVyKSA9PiBWYWx1ZUNvbXBhcmVyLkVxdWFscyh0aGlzLCBvdGhlcik7DQogICAgICAgIHB1YmxpYyBpbnQgVmFsdWVHZXRIYXNoQ29kZSgpID0+IFZhbHVlQ29tcGFyZXIuR2V0SGFzaENvZGUodGhpcyk7DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gR2V0cyBhIHZhbHVlIGluZGljYXRpbmcgdGhlIHR5cGUgb2Ygb2JqZWN0IGltcGxlbWVudGluZyA8c2VlIGNyZWY9IklTYXJpZk5vZGVWZXJzaW9uT25lIiAvPi4NCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgcHVibGljIFNhcmlmTm9kZUtpbmRWZXJzaW9uT25lIFNhcmlmTm9kZUtpbmRWZXJzaW9uT25lDQogICAgICAgIHsNCiAgICAgICAgICAgIGdldA0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHJldHVybiBTYXJpZk5vZGVLaW5kVmVyc2lvbk9uZS5SdWxlVmVyc2lvbk9uZTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIEEgc3RhYmxlLCBvcGFxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJ1bGUuDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIFtEYXRhTWVtYmVyKE5hbWUgPSAiaWQiLCBJc1JlcXVpcmVkID0gdHJ1ZSldDQogICAgICAgIHB1YmxpYyBzdHJpbmcgSWQgeyBnZXQ7IHNldDsgfQ0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIEEgcnVsZSBpZGVudGlmaWVyIHRoYXQgaXMgdW5kZXJzdGFuZGFibGUgdG8gYW4gZW5kIHVzZXIuDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIFtEYXRhTWVtYmVyKE5hbWUgPSAibmFtZSIsIElzUmVxdWlyZWQgPSBmYWxzZSwgRW1pdERlZmF1bHRWYWx1ZSA9IGZhbHNlKV0NCiAgICAgICAgcHVibGljIHN0cmluZyBOYW1lIHsgZ2V0OyBzZXQ7IH0NCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBBIGNvbmNpc2UgZGVzY3JpcHRpb24gb2YgdGhlIHJ1bGUuIFNob3VsZCBiZSBhIHNpbmdsZSBzZW50ZW5jZSB0aGF0IGlzIHVuZGVyc3RhbmRhYmxlIHdoZW4gdmlzaWJsZSBzcGFjZSBpcyBsaW1pdGVkIHRvIGEgc2luZ2xlIGxpbmUgb2YgdGV4dC4NCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgW0RhdGFNZW1iZXIoTmFtZSA9ICJzaG9ydERlc2NyaXB0aW9uIiwgSXNSZXF1aXJlZCA9IGZhbHNlLCBFbWl0RGVmYXVsdFZhbHVlID0gZmFsc2UpXQ0KICAgICAgICBwdWJsaWMgc3RyaW5nIFNob3J0RGVzY3JpcHRpb24geyBnZXQ7IHNldDsgfQ0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIEEgc3RyaW5nIHRoYXQgZGVzY3JpYmVzIHRoZSBydWxlLiBTaG91bGQsIGFzIGZhciBhcyBwb3NzaWJsZSwgcHJvdmlkZSBkZXRhaWxzIHN1ZmZpY2llbnQgdG8gZW5hYmxlIHJlc29sdXRpb24gb2YgYW55IHByb2JsZW0gaW5kaWNhdGVkIGJ5IHRoZSByZXN1bHQuDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIFtEYXRhTWVtYmVyKE5hbWUgPSAiZnVsbERlc2NyaXB0aW9uIiwgSXNSZXF1aXJlZCA9IGZhbHNlLCBFbWl0RGVmYXVsdFZhbHVlID0gZmFsc2UpXQ0KICAgICAgICBwdWJsaWMgc3RyaW5nIEZ1bGxEZXNjcmlwdGlvbiB7IGdldDsgc2V0OyB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gQSBzZXQgb2YgbmFtZS92YWx1ZSBwYWlycyB3aXRoIGFyYml0cmFyeSBuYW1lcy4gVGhlIHZhbHVlIHdpdGhpbiBlYWNoIG5hbWUvdmFsdWUgcGFpciBzaGFsbCBjb25zaXN0IG9mIHBsYWluIHRleHQgaW50ZXJzcGVyc2VkIHdpdGggcGxhY2Vob2xkZXJzLCB3aGljaCBjYW4gYmUgdXNlZCB0byBmb3JtYXQgYSBtZXNzYWdlIGluIGNvbWJpbmF0aW9uIHdpdGggYW4gYXJiaXRyYXJ5IG51bWJlciBvZiBhZGRpdGlvbmFsIHN0cmluZyBhcmd1bWVudHMuDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIFtEYXRhTWVtYmVyKE5hbWUgPSAibWVzc2FnZUZvcm1hdHMiLCBJc1JlcXVpcmVkID0gZmFsc2UsIEVtaXREZWZhdWx0VmFsdWUgPSBmYWxzZSldDQogICAgICAgIHB1YmxpYyBJRGljdGlvbmFyeTxzdHJpbmcsIHN0cmluZz4gTWVzc2FnZUZvcm1hdHMgeyBnZXQ7IHNldDsgfQ0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIEEgdmFsdWUgc3BlY2lmeWluZyB3aGV0aGVyIGEgcnVsZSBpcyBlbmFibGVkLg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICBbRGF0YU1lbWJlcihOYW1lID0gImNvbmZpZ3VyYXRpb24iLCBJc1JlcXVpcmVkID0gZmFsc2UsIEVtaXREZWZhdWx0VmFsdWUgPSBmYWxzZSldDQogICAgICAgIHB1YmxpYyBSdWxlQ29uZmlndXJhdGlvblZlcnNpb25PbmUgQ29uZmlndXJhdGlvbiB7IGdldDsgc2V0OyB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gQSB2YWx1ZSBzcGVjaWZ5aW5nIHRoZSBkZWZhdWx0IHNldmVyaXR5IGxldmVsIG9mIHRoZSByZXN1bHQuDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIFtEYXRhTWVtYmVyKE5hbWUgPSAiZGVmYXVsdExldmVsIiwgSXNSZXF1aXJlZCA9IGZhbHNlLCBFbWl0RGVmYXVsdFZhbHVlID0gZmFsc2UpXQ0KICAgICAgICBwdWJsaWMgUmVzdWx0TGV2ZWxWZXJzaW9uT25lIERlZmF1bHRMZXZlbCB7IGdldDsgc2V0OyB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gQSBVUkkgd2hlcmUgdGhlIHByaW1hcnkgZG9jdW1lbnRhdGlvbiBmb3IgdGhlIHJ1bGUgY2FuIGJlIGZvdW5kLg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICBbRGF0YU1lbWJlcihOYW1lID0gImhlbHBVcmkiLCBJc1JlcXVpcmVkID0gZmFsc2UsIEVtaXREZWZhdWx0VmFsdWUgPSBmYWxzZSldDQogICAgICAgIHB1YmxpYyBVcmkgSGVscFVyaSB7IGdldDsgc2V0OyB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gS2V5L3ZhbHVlIHBhaXJzIHRoYXQgcHJvdmlkZSBhZGRpdGlvbmFsIGluZm9ybWF0aW9uIGFib3V0IHRoZSBydWxlLg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICBbRGF0YU1lbWJlcihOYW1lID0gInByb3BlcnRpZXMiLCBJc1JlcXVpcmVkID0gZmFsc2UsIEVtaXREZWZhdWx0VmFsdWUgPSBmYWxzZSldDQogICAgICAgIGludGVybmFsIG92ZXJyaWRlIElEaWN0aW9uYXJ5PHN0cmluZywgU2VyaWFsaXplZFByb3BlcnR5SW5mbz4gUHJvcGVydGllcyB7IGdldDsgc2V0OyB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gSW5pdGlhbGl6ZXMgYSBuZXcgaW5zdGFuY2Ugb2YgdGhlIDxzZWUgY3JlZj0iUnVsZVZlcnNpb25PbmUiIC8+IGNsYXNzLg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICBwdWJsaWMgUnVsZVZlcnNpb25PbmUoKQ0KICAgICAgICB7DQogICAgICAgIH0NCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBJbml0aWFsaXplcyBhIG5ldyBpbnN0YW5jZSBvZiB0aGUgPHNlZSBjcmVmPSJSdWxlVmVyc2lvbk9uZSIgLz4gY2xhc3MgZnJvbSB0aGUgc3VwcGxpZWQgdmFsdWVzLg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICAvLy8gPHBhcmFtIG5hbWU9ImlkIj4NCiAgICAgICAgLy8vIEFuIGluaXRpYWxpemF0aW9uIHZhbHVlIGZvciB0aGUgPHNlZSBjcmVmPSJQOiBJZCIgLz4gcHJvcGVydHkuDQogICAgICAgIC8vLyA8L3BhcmFtPg0KICAgICAgICAvLy8gPHBhcmFtIG5hbWU9Im5hbWUiPg0KICAgICAgICAvLy8gQW4gaW5pdGlhbGl6YXRpb24gdmFsdWUgZm9yIHRoZSA8c2VlIGNyZWY9IlA6IE5hbWUiIC8+IHByb3BlcnR5Lg0KICAgICAgICAvLy8gPC9wYXJhbT4NCiAgICAgICAgLy8vIDxwYXJhbSBuYW1lPSJzaG9ydERlc2NyaXB0aW9uIj4NCiAgICAgICAgLy8vIEFuIGluaXRpYWxpemF0aW9uIHZhbHVlIGZvciB0aGUgPHNlZSBjcmVmPSJQOiBTaG9ydERlc2NyaXB0aW9uIiAvPiBwcm9wZXJ0eS4NCiAgICAgICAgLy8vIDwvcGFyYW0+DQogICAgICAgIC8vLyA8cGFyYW0gbmFtZT0iZnVsbERlc2NyaXB0aW9uIj4NCiAgICAgICAgLy8vIEFuIGluaXRpYWxpemF0aW9uIHZhbHVlIGZvciB0aGUgPHNlZSBjcmVmPSJQOiBGdWxsRGVzY3JpcHRpb24iIC8+IHByb3BlcnR5Lg0KICAgICAgICAvLy8gPC9wYXJhbT4NCiAgICAgICAgLy8vIDxwYXJhbSBuYW1lPSJtZXNzYWdlRm9ybWF0cyI+DQogICAgICAgIC8vLyBBbiBpbml0aWFsaXphdGlvbiB2YWx1ZSBmb3IgdGhlIDxzZWUgY3JlZj0iUDogTWVzc2FnZUZvcm1hdHMiIC8+IHByb3BlcnR5Lg0KICAgICAgICAvLy8gPC9wYXJhbT4NCiAgICAgICAgLy8vIDxwYXJhbSBuYW1lPSJjb25maWd1cmF0aW9uIj4NCiAgICAgICAgLy8vIEFuIGluaXRpYWxpemF0aW9uIHZhbHVlIGZvciB0aGUgPHNlZSBjcmVmPSJQOiBDb25maWd1cmF0aW9uIiAvPiBwcm9wZXJ0eS4NCiAgICAgICAgLy8vIDwvcGFyYW0+DQogICAgICAgIC8vLyA8cGFyYW0gbmFtZT0iZGVmYXVsdExldmVsIj4NCiAgICAgICAgLy8vIEFuIGluaXRpYWxpemF0aW9uIHZhbHVlIGZvciB0aGUgPHNlZSBjcmVmPSJQOiBEZWZhdWx0TGV2ZWwiIC8+IHByb3BlcnR5Lg0KICAgICAgICAvLy8gPC9wYXJhbT4NCiAgICAgICAgLy8vIDxwYXJhbSBuYW1lPSJoZWxwVXJpIj4NCiAgICAgICAgLy8vIEFuIGluaXRpYWxpemF0aW9uIHZhbHVlIGZvciB0aGUgPHNlZSBjcmVmPSJQOiBIZWxwVXJpIiAvPiBwcm9wZXJ0eS4NCiAgICAgICAgLy8vIDwvcGFyYW0+DQogICAgICAgIC8vLyA8cGFyYW0gbmFtZT0icHJvcGVydGllcyI+DQogICAgICAgIC8vLyBBbiBpbml0aWFsaXphdGlvbiB2YWx1ZSBmb3IgdGhlIDxzZWUgY3JlZj0iUDogUHJvcGVydGllcyIgLz4gcHJvcGVydHkuDQogICAgICAgIC8vLyA8L3BhcmFtPg0KICAgICAgICBwdWJsaWMgUnVsZVZlcnNpb25PbmUoc3RyaW5nIGlkLCBzdHJpbmcgbmFtZSwgc3RyaW5nIHNob3J0RGVzY3JpcHRpb24sIHN0cmluZyBmdWxsRGVzY3JpcHRpb24sIElEaWN0aW9uYXJ5PHN0cmluZywgc3RyaW5nPiBtZXNzYWdlRm9ybWF0cywgUnVsZUNvbmZpZ3VyYXRpb25WZXJzaW9uT25lIGNvbmZpZ3VyYXRpb24sIFJlc3VsdExldmVsVmVyc2lvbk9uZSBkZWZhdWx0TGV2ZWwsIFVyaSBoZWxwVXJpLCBJRGljdGlvbmFyeTxzdHJpbmcsIFNlcmlhbGl6ZWRQcm9wZXJ0eUluZm8+IHByb3BlcnRpZXMpDQogICAgICAgIHsNCiAgICAgICAgICAgIEluaXQoaWQsIG5hbWUsIHNob3J0RGVzY3JpcHRpb24sIGZ1bGxEZXNjcmlwdGlvbiwgbWVzc2FnZUZvcm1hdHMsIGNvbmZpZ3VyYXRpb24sIGRlZmF1bHRMZXZlbCwgaGVscFVyaSwgcHJvcGVydGllcyk7DQogICAgICAgIH0NCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBJbml0aWFsaXplcyBhIG5ldyBpbnN0YW5jZSBvZiB0aGUgPHNlZSBjcmVmPSJSdWxlVmVyc2lvbk9uZSIgLz4gY2xhc3MgZnJvbSB0aGUgc3BlY2lmaWVkIGluc3RhbmNlLg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICAvLy8gPHBhcmFtIG5hbWU9Im90aGVyIj4NCiAgICAgICAgLy8vIFRoZSBpbnN0YW5jZSBmcm9tIHdoaWNoIHRoZSBuZXcgaW5zdGFuY2UgaXMgdG8gYmUgaW5pdGlhbGl6ZWQuDQogICAgICAgIC8vLyA8L3BhcmFtPg0KICAgICAgICAvLy8gPGV4Y2VwdGlvbiBjcmVmPSJBcmd1bWVudE51bGxFeGNlcHRpb24iPg0KICAgICAgICAvLy8gVGhyb3duIGlmIDxwYXJhbXJlZiBuYW1lPSJvdGhlciIgLz4gaXMgbnVsbC4NCiAgICAgICAgLy8vIDwvZXhjZXB0aW9uPg0KICAgICAgICBwdWJsaWMgUnVsZVZlcnNpb25PbmUoUnVsZVZlcnNpb25PbmUgb3RoZXIpDQogICAgICAgIHsNCiAgICAgICAgICAgIGlmIChvdGhlciA9PSBudWxsKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHRocm93IG5ldyBBcmd1bWVudE51bGxFeGNlcHRpb24obmFtZW9mKG90aGVyKSk7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIEluaXQob3RoZXIuSWQsIG90aGVyLk5hbWUsIG90aGVyLlNob3J0RGVzY3JpcHRpb24sIG90aGVyLkZ1bGxEZXNjcmlwdGlvbiwgb3RoZXIuTWVzc2FnZUZvcm1hdHMsIG90aGVyLkNvbmZpZ3VyYXRpb24sIG90aGVyLkRlZmF1bHRMZXZlbCwgb3RoZXIuSGVscFVyaSwgb3RoZXIuUHJvcGVydGllcyk7DQogICAgICAgIH0NCg0KICAgICAgICBJU2FyaWZOb2RlVmVyc2lvbk9uZSBJU2FyaWZOb2RlVmVyc2lvbk9uZS5EZWVwQ2xvbmUoKQ0KICAgICAgICB7DQogICAgICAgICAgICByZXR1cm4gRGVlcENsb25lQ29yZSgpOw0KICAgICAgICB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gQ3JlYXRlcyBhIGRlZXAgY29weSBvZiB0aGlzIGluc3RhbmNlLg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICBwdWJsaWMgUnVsZVZlcnNpb25PbmUgRGVlcENsb25lKCkNCiAgICAgICAgew0KICAgICAgICAgICAgcmV0dXJuIChSdWxlVmVyc2lvbk9uZSlEZWVwQ2xvbmVDb3JlKCk7DQogICAgICAgIH0NCg0KICAgICAgICBwcml2YXRlIElTYXJpZk5vZGVWZXJzaW9uT25lIERlZXBDbG9uZUNvcmUoKQ0KICAgICAgICB7DQogICAgICAgICAgICByZXR1cm4gbmV3IFJ1bGVWZXJzaW9uT25lKHRoaXMpOw0KICAgICAgICB9DQoNCiAgICAgICAgcHJpdmF0ZSB2b2lkIEluaXQoc3RyaW5nIGlkLCBzdHJpbmcgbmFtZSwgc3RyaW5nIHNob3J0RGVzY3JpcHRpb24sIHN0cmluZyBmdWxsRGVzY3JpcHRpb24sIElEaWN0aW9uYXJ5PHN0cmluZywgc3RyaW5nPiBtZXNzYWdlRm9ybWF0cywgUnVsZUNvbmZpZ3VyYXRpb25WZXJzaW9uT25lIGNvbmZpZ3VyYXRpb24sIFJlc3VsdExldmVsVmVyc2lvbk9uZSBkZWZhdWx0TGV2ZWwsIFVyaSBoZWxwVXJpLCBJRGljdGlvbmFyeTxzdHJpbmcsIFNlcmlhbGl6ZWRQcm9wZXJ0eUluZm8+IHByb3BlcnRpZXMpDQogICAgICAgIHsNCiAgICAgICAgICAgIElkID0gaWQ7DQogICAgICAgICAgICBOYW1lID0gbmFtZTsNCiAgICAgICAgICAgIFNob3J0RGVzY3JpcHRpb24gPSBzaG9ydERlc2NyaXB0aW9uOw0KICAgICAgICAgICAgRnVsbERlc2NyaXB0aW9uID0gZnVsbERlc2NyaXB0aW9uOw0KICAgICAgICAgICAgaWYgKG1lc3NhZ2VGb3JtYXRzICE9IG51bGwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgTWVzc2FnZUZvcm1hdHMgPSBuZXcgRGljdGlvbmFyeTxzdHJpbmcsIHN0cmluZz4obWVzc2FnZUZvcm1hdHMpOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBDb25maWd1cmF0aW9uID0gY29uZmlndXJhdGlvbjsNCiAgICAgICAgICAgIERlZmF1bHRMZXZlbCA9IGRlZmF1bHRMZXZlbDsNCiAgICAgICAgICAgIGlmIChoZWxwVXJpICE9IG51bGwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgSGVscFVyaSA9IG5ldyBVcmkoaGVscFVyaS5PcmlnaW5hbFN0cmluZywgaGVscFVyaS5Jc0Fic29sdXRlVXJpID8gVXJpS2luZC5BYnNvbHV0ZSA6IFVyaUtpbmQuUmVsYXRpdmUpOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBpZiAocHJvcGVydGllcyAhPSBudWxsKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIFByb3BlcnRpZXMgPSBuZXcgRGljdGlvbmFyeTxzdHJpbmcsIFNlcmlhbGl6ZWRQcm9wZXJ0eUluZm8+KHByb3BlcnRpZXMpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgfQ0KfQ==" + { + "ruleId": "CA1704", + "message": { + "text": "In method 'ResultFactory.CreateResult(JToken, ErrorNumber, object[])', correct the spelling of 'j' in parameter name 'jToken' or remove it entirely if it represents any sort of Hungarian notation.", + "id": "MemberParameter" }, - "hashes": [ - { - "value": "AF94BA1B2417B01BD8FF5A538BAEDF8B", - "algorithm": "md5" - }, - { - "value": "DF8390693EEFF2C45DFA144E9BFFECA6819EEE9A", - "algorithm": "sha-1" - }, + "locations": [ { - "value": "C37FA4281D090A49BAF1CD95490A8338B4489DB2FA97D6FC8EB24989CB1DB813", - "algorithm": "sha-256" + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Microsoft.Json.Schema.Validation.dll", + "uriBaseId": "$(ProjectDir)", + "index": 2 + } + }, + "logicalLocations": [ + { + "index": 111, + "fullyQualifiedName": "microsoft.json.schema.validation.dll!Microsoft.Json.Schema.Validation.ResultFactory.CreateResult(Newtonsoft.Json.Linq.JToken,Microsoft.Json.Schema.ErrorNumber,System.Object[])" + } + ] } - ] + ], + "partialFingerprints": { + "UniqueId": "j#MemberParameter" + }, + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" + } }, - "file:///E:/src/sarif-sdk-test/src/Sarif/VersionOne/Autogenerated/RuleVersionOneEqualityComparer.cs": { - "mimeType": "text/x-csharp", - "contents": { - "binary": "Ly8gQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQuICBBbGwgUmlnaHRzIFJlc2VydmVkLg0KLy8gTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlLiBTZWUgTElDRU5TRSBmaWxlIGluIHRoZSBwcm9qZWN0IHJvb3QgZm9yIGZ1bGwgbGljZW5zZSBpbmZvcm1hdGlvbi4NCg0KdXNpbmcgU3lzdGVtOw0KdXNpbmcgU3lzdGVtLkNvZGVEb20uQ29tcGlsZXI7DQp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsNCnVzaW5nIE1pY3Jvc29mdC5Db2RlQW5hbHlzaXMuU2FyaWYuUmVhZGVyczsNCg0KbmFtZXNwYWNlIE1pY3Jvc29mdC5Db2RlQW5hbHlzaXMuU2FyaWYuVmVyc2lvbk9uZQ0Kew0KICAgIC8vLyA8c3VtbWFyeT4NCiAgICAvLy8gRGVmaW5lcyBtZXRob2RzIHRvIHN1cHBvcnQgdGhlIGNvbXBhcmlzb24gb2Ygb2JqZWN0cyBvZiB0eXBlIFJ1bGVWZXJzaW9uT25lIGZvciBlcXVhbGl0eS4NCiAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgIFtHZW5lcmF0ZWRDb2RlKCJNaWNyb3NvZnQuSnNvbi5TY2hlbWEuVG9Eb3ROZXQiLCAiMC41Mi4wLjAiKV0NCiAgICBpbnRlcm5hbCBzZWFsZWQgY2xhc3MgUnVsZVZlcnNpb25PbmVFcXVhbGl0eUNvbXBhcmVyIDogSUVxdWFsaXR5Q29tcGFyZXI8UnVsZVZlcnNpb25PbmU+DQogICAgew0KICAgICAgICBpbnRlcm5hbCBzdGF0aWMgcmVhZG9ubHkgUnVsZVZlcnNpb25PbmVFcXVhbGl0eUNvbXBhcmVyIEluc3RhbmNlID0gbmV3IFJ1bGVWZXJzaW9uT25lRXF1YWxpdHlDb21wYXJlcigpOw0KDQogICAgICAgIHB1YmxpYyBib29sIEVxdWFscyhSdWxlVmVyc2lvbk9uZSBsZWZ0LCBSdWxlVmVyc2lvbk9uZSByaWdodCkNCiAgICAgICAgew0KICAgICAgICAgICAgaWYgKFJlZmVyZW5jZUVxdWFscyhsZWZ0LCByaWdodCkpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIGlmIChSZWZlcmVuY2VFcXVhbHMobGVmdCwgbnVsbCkgfHwgUmVmZXJlbmNlRXF1YWxzKHJpZ2h0LCBudWxsKSkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIGlmIChsZWZ0LklkICE9IHJpZ2h0LklkKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgaWYgKGxlZnQuTmFtZSAhPSByaWdodC5OYW1lKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgaWYgKGxlZnQuU2hvcnREZXNjcmlwdGlvbiAhPSByaWdodC5TaG9ydERlc2NyaXB0aW9uKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgaWYgKGxlZnQuRnVsbERlc2NyaXB0aW9uICE9IHJpZ2h0LkZ1bGxEZXNjcmlwdGlvbikNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIGlmICghb2JqZWN0LlJlZmVyZW5jZUVxdWFscyhsZWZ0Lk1lc3NhZ2VGb3JtYXRzLCByaWdodC5NZXNzYWdlRm9ybWF0cykpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgaWYgKGxlZnQuTWVzc2FnZUZvcm1hdHMgPT0gbnVsbCB8fCByaWdodC5NZXNzYWdlRm9ybWF0cyA9PSBudWxsIHx8IGxlZnQuTWVzc2FnZUZvcm1hdHMuQ291bnQgIT0gcmlnaHQuTWVzc2FnZUZvcm1hdHMuQ291bnQpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgZm9yZWFjaCAodmFyIHZhbHVlXzAgaW4gbGVmdC5NZXNzYWdlRm9ybWF0cykNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIHN0cmluZyB2YWx1ZV8xOw0KICAgICAgICAgICAgICAgICAgICBpZiAoIXJpZ2h0Lk1lc3NhZ2VGb3JtYXRzLlRyeUdldFZhbHVlKHZhbHVlXzAuS2V5LCBvdXQgdmFsdWVfMSkpDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZV8wLlZhbHVlICE9IHZhbHVlXzEpDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgaWYgKGxlZnQuQ29uZmlndXJhdGlvbiAhPSByaWdodC5Db25maWd1cmF0aW9uKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgaWYgKGxlZnQuRGVmYXVsdExldmVsICE9IHJpZ2h0LkRlZmF1bHRMZXZlbCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIGlmIChsZWZ0LkhlbHBVcmkgIT0gcmlnaHQuSGVscFVyaSkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIGlmICghb2JqZWN0LlJlZmVyZW5jZUVxdWFscyhsZWZ0LlByb3BlcnRpZXMsIHJpZ2h0LlByb3BlcnRpZXMpKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIGlmIChsZWZ0LlByb3BlcnRpZXMgPT0gbnVsbCB8fCByaWdodC5Qcm9wZXJ0aWVzID09IG51bGwgfHwgbGVmdC5Qcm9wZXJ0aWVzLkNvdW50ICE9IHJpZ2h0LlByb3BlcnRpZXMuQ291bnQpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgZm9yZWFjaCAodmFyIHZhbHVlXzIgaW4gbGVmdC5Qcm9wZXJ0aWVzKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgU2VyaWFsaXplZFByb3BlcnR5SW5mbyB2YWx1ZV8zOw0KICAgICAgICAgICAgICAgICAgICBpZiAoIXJpZ2h0LlByb3BlcnRpZXMuVHJ5R2V0VmFsdWUodmFsdWVfMi5LZXksIG91dCB2YWx1ZV8zKSkNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAgICAgaWYgKCFvYmplY3QuRXF1YWxzKHZhbHVlXzIuVmFsdWUsIHZhbHVlXzMpKQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIHJldHVybiB0cnVlOw0KICAgICAgICB9DQoNCiAgICAgICAgcHVibGljIGludCBHZXRIYXNoQ29kZShSdWxlVmVyc2lvbk9uZSBvYmopDQogICAgICAgIHsNCiAgICAgICAgICAgIGlmIChSZWZlcmVuY2VFcXVhbHMob2JqLCBudWxsKSkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gMDsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgaW50IHJlc3VsdCA9IDE3Ow0KICAgICAgICAgICAgdW5jaGVja2VkDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgaWYgKG9iai5JZCAhPSBudWxsKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gKHJlc3VsdCAqIDMxKSArIG9iai5JZC5HZXRIYXNoQ29kZSgpOw0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgIGlmIChvYmouTmFtZSAhPSBudWxsKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gKHJlc3VsdCAqIDMxKSArIG9iai5OYW1lLkdldEhhc2hDb2RlKCk7DQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgaWYgKG9iai5TaG9ydERlc2NyaXB0aW9uICE9IG51bGwpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSAocmVzdWx0ICogMzEpICsgb2JqLlNob3J0RGVzY3JpcHRpb24uR2V0SGFzaENvZGUoKTsNCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICBpZiAob2JqLkZ1bGxEZXNjcmlwdGlvbiAhPSBudWxsKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gKHJlc3VsdCAqIDMxKSArIG9iai5GdWxsRGVzY3JpcHRpb24uR2V0SGFzaENvZGUoKTsNCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICBpZiAob2JqLk1lc3NhZ2VGb3JtYXRzICE9IG51bGwpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAvLyBVc2UgeG9yIGZvciBkaWN0aW9uYXJpZXMgdG8gYmUgb3JkZXItaW5kZXBlbmRlbnQuDQogICAgICAgICAgICAgICAgICAgIGludCB4b3JfMCA9IDA7DQogICAgICAgICAgICAgICAgICAgIGZvcmVhY2ggKHZhciB2YWx1ZV80IGluIG9iai5NZXNzYWdlRm9ybWF0cykNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgeG9yXzAgXj0gdmFsdWVfNC5LZXkuR2V0SGFzaENvZGUoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZV80LlZhbHVlICE9IG51bGwpDQogICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgeG9yXzAgXj0gdmFsdWVfNC5WYWx1ZS5HZXRIYXNoQ29kZSgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gKHJlc3VsdCAqIDMxKSArIHhvcl8wOw0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgIHJlc3VsdCA9IChyZXN1bHQgKiAzMSkgKyBvYmouQ29uZmlndXJhdGlvbi5HZXRIYXNoQ29kZSgpOw0KICAgICAgICAgICAgICAgIHJlc3VsdCA9IChyZXN1bHQgKiAzMSkgKyBvYmouRGVmYXVsdExldmVsLkdldEhhc2hDb2RlKCk7DQogICAgICAgICAgICAgICAgaWYgKG9iai5IZWxwVXJpICE9IG51bGwpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSAocmVzdWx0ICogMzEpICsgb2JqLkhlbHBVcmkuR2V0SGFzaENvZGUoKTsNCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICBpZiAob2JqLlByb3BlcnRpZXMgIT0gbnVsbCkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIC8vIFVzZSB4b3IgZm9yIGRpY3Rpb25hcmllcyB0byBiZSBvcmRlci1pbmRlcGVuZGVudC4NCiAgICAgICAgICAgICAgICAgICAgaW50IHhvcl8xID0gMDsNCiAgICAgICAgICAgICAgICAgICAgZm9yZWFjaCAodmFyIHZhbHVlXzUgaW4gb2JqLlByb3BlcnRpZXMpDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHhvcl8xIF49IHZhbHVlXzUuS2V5LkdldEhhc2hDb2RlKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWVfNS5WYWx1ZSAhPSBudWxsKQ0KICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhvcl8xIF49IHZhbHVlXzUuVmFsdWUuR2V0SGFzaENvZGUoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IChyZXN1bHQgKiAzMSkgKyB4b3JfMTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIHJldHVybiByZXN1bHQ7DQogICAgICAgIH0NCiAgICB9DQp9" + { + "ruleId": "CA1062", + "message": { + "text": "In externally visible method 'ResultFactory.CreateResult(JToken, ErrorNumber, object[])', validate parameter 'jToken' before using it." }, - "hashes": [ - { - "value": "6B1097B1687AF2B42E046F3257820004", - "algorithm": "md5" - }, - { - "value": "DCDABAEE55720B8D2117F0878CF0F00CD0A1DDE0", - "algorithm": "sha-1" - }, + "locations": [ { - "value": "F90A07181F121ED36CDDEFD9E41780F14B191B7FDD1A5A7AF652CF4399DE2EAF", - "algorithm": "sha-256" + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Microsoft.Json.Schema.Validation.dll", + "uriBaseId": "$(ProjectDir)", + "index": 2 + } + }, + "logicalLocations": [ + { + "index": 111, + "fullyQualifiedName": "microsoft.json.schema.validation.dll!Microsoft.Json.Schema.Validation.ResultFactory.CreateResult(Newtonsoft.Json.Linq.JToken,Microsoft.Json.Schema.ErrorNumber,System.Object[])" + } + ] } - ] + ], + "partialFingerprints": { + "UniqueId": "0" + }, + "properties": { + "Category": "Microsoft.Design", + "FixCategory": "DependsOnFix" + } }, - "file:///E:/src/sarif-sdk-test/src/Sarif/VersionOne/Autogenerated/RunVersionOne.cs": { - "mimeType": "text/x-csharp", - "contents": { - "binary": "Ly8gQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQuICBBbGwgUmlnaHRzIFJlc2VydmVkLg0KLy8gTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlLiBTZWUgTElDRU5TRSBmaWxlIGluIHRoZSBwcm9qZWN0IHJvb3QgZm9yIGZ1bGwgbGljZW5zZSBpbmZvcm1hdGlvbi4NCg0KdXNpbmcgU3lzdGVtOw0KdXNpbmcgU3lzdGVtLkNvZGVEb20uQ29tcGlsZXI7DQp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsNCnVzaW5nIFN5c3RlbS5SdW50aW1lLlNlcmlhbGl6YXRpb247DQp1c2luZyBNaWNyb3NvZnQuQ29kZUFuYWx5c2lzLlNhcmlmLlJlYWRlcnM7DQoNCm5hbWVzcGFjZSBNaWNyb3NvZnQuQ29kZUFuYWx5c2lzLlNhcmlmLlZlcnNpb25PbmUNCnsNCiAgICAvLy8gPHN1bW1hcnk+DQogICAgLy8vIERlc2NyaWJlcyBhIHNpbmdsZSBydW4gb2YgYW4gYW5hbHlzaXMgdG9vbCwgYW5kIGNvbnRhaW5zIHRoZSBvdXRwdXQgb2YgdGhhdCBydW4uDQogICAgLy8vIDwvc3VtbWFyeT4NCiAgICBbRGF0YUNvbnRyYWN0XQ0KICAgIFtHZW5lcmF0ZWRDb2RlKCJNaWNyb3NvZnQuSnNvbi5TY2hlbWEuVG9Eb3ROZXQiLCAiMC41Mi4wLjAiKV0NCiAgICBwdWJsaWMgcGFydGlhbCBjbGFzcyBSdW5WZXJzaW9uT25lIDogUHJvcGVydHlCYWdIb2xkZXIsIElTYXJpZk5vZGVWZXJzaW9uT25lDQogICAgew0KICAgICAgICBwdWJsaWMgc3RhdGljIElFcXVhbGl0eUNvbXBhcmVyPFJ1blZlcnNpb25PbmU+IFZhbHVlQ29tcGFyZXIgPT4gUnVuVmVyc2lvbk9uZUVxdWFsaXR5Q29tcGFyZXIuSW5zdGFuY2U7DQoNCiAgICAgICAgcHVibGljIGJvb2wgVmFsdWVFcXVhbHMoUnVuVmVyc2lvbk9uZSBvdGhlcikgPT4gVmFsdWVDb21wYXJlci5FcXVhbHModGhpcywgb3RoZXIpOw0KICAgICAgICBwdWJsaWMgaW50IFZhbHVlR2V0SGFzaENvZGUoKSA9PiBWYWx1ZUNvbXBhcmVyLkdldEhhc2hDb2RlKHRoaXMpOw0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIEdldHMgYSB2YWx1ZSBpbmRpY2F0aW5nIHRoZSB0eXBlIG9mIG9iamVjdCBpbXBsZW1lbnRpbmcgPHNlZSBjcmVmPSJJU2FyaWZOb2RlVmVyc2lvbk9uZSIgLz4uDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIHB1YmxpYyBTYXJpZk5vZGVLaW5kVmVyc2lvbk9uZSBTYXJpZk5vZGVLaW5kVmVyc2lvbk9uZQ0KICAgICAgICB7DQogICAgICAgICAgICBnZXQNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gU2FyaWZOb2RlS2luZFZlcnNpb25PbmUuUnVuVmVyc2lvbk9uZTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIEluZm9ybWF0aW9uIGFib3V0IHRoZSB0b29sIG9yIHRvb2wgcGlwZWxpbmUgdGhhdCBnZW5lcmF0ZWQgdGhlIHJlc3VsdHMgaW4gdGhpcyBydW4uIEEgcnVuIGNhbiBvbmx5IGNvbnRhaW4gcmVzdWx0cyBwcm9kdWNlZCBieSBhIHNpbmdsZSB0b29sIG9yIHRvb2wgcGlwZWxpbmUuIEEgcnVuIGNhbiBhZ2dyZWdhdGUgcmVzdWx0cyBmcm9tIG11bHRpcGxlIGxvZyBmaWxlcywgYXMgbG9uZyBhcyBjb250ZXh0IGFyb3VuZCB0aGUgdG9vbCBydW4gKHRvb2wgY29tbWFuZC1saW5lIGFyZ3VtZW50cyBhbmQgdGhlIGxpa2UpIGlzIGlkZW50aWNhbCBmb3IgYWxsIGFnZ3JlZ2F0ZWQgZmlsZXMuDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIFtEYXRhTWVtYmVyKE5hbWUgPSAidG9vbCIsIElzUmVxdWlyZWQgPSB0cnVlKV0NCiAgICAgICAgcHVibGljIFRvb2xWZXJzaW9uT25lIFRvb2wgeyBnZXQ7IHNldDsgfQ0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIERlc2NyaWJlcyB0aGUgcnVudGltZSBlbnZpcm9ubWVudCwgaW5jbHVkaW5nIHBhcmFtZXRlcml6YXRpb24sIG9mIHRoZSBhbmFseXNpcyB0b29sIHJ1bi4NCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgW0RhdGFNZW1iZXIoTmFtZSA9ICJpbnZvY2F0aW9uIiwgSXNSZXF1aXJlZCA9IGZhbHNlLCBFbWl0RGVmYXVsdFZhbHVlID0gZmFsc2UpXQ0KICAgICAgICBwdWJsaWMgSW52b2NhdGlvblZlcnNpb25PbmUgSW52b2NhdGlvbiB7IGdldDsgc2V0OyB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gQSBkaWN0aW9uYXJ5LCBlYWNoIG9mIHdob3NlIGtleXMgaXMgYSBVUkkgYW5kIGVhY2ggb2Ygd2hvc2UgdmFsdWVzIGlzIGFuIGFycmF5IG9mIGZpbGUgb2JqZWN0cyByZXByZXNlbnRpbmcgdGhlIGxvY2F0aW9uIG9mIGEgc2luZ2xlIGZpbGUgc2Nhbm5lZCBkdXJpbmcgdGhlIHJ1bi4NCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgW0RhdGFNZW1iZXIoTmFtZSA9ICJmaWxlcyIsIElzUmVxdWlyZWQgPSBmYWxzZSwgRW1pdERlZmF1bHRWYWx1ZSA9IGZhbHNlKV0NCiAgICAgICAgcHVibGljIElEaWN0aW9uYXJ5PHN0cmluZywgRmlsZURhdGFWZXJzaW9uT25lPiBGaWxlcyB7IGdldDsgc2V0OyB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gQSBkaWN0aW9uYXJ5LCBlYWNoIG9mIHdob3NlIGtleXMgc3BlY2lmaWVzIGEgbG9naWNhbCBsb2NhdGlvbiBzdWNoIGFzIGEgbmFtZXNwYWNlLCB0eXBlIG9yIGZ1bmN0aW9uLg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICBbRGF0YU1lbWJlcihOYW1lID0gImxvZ2ljYWxMb2NhdGlvbnMiLCBJc1JlcXVpcmVkID0gZmFsc2UsIEVtaXREZWZhdWx0VmFsdWUgPSBmYWxzZSldDQogICAgICAgIHB1YmxpYyBJRGljdGlvbmFyeTxzdHJpbmcsIExvZ2ljYWxMb2NhdGlvblZlcnNpb25PbmU+IExvZ2ljYWxMb2NhdGlvbnMgeyBnZXQ7IHNldDsgfQ0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIFRoZSBzZXQgb2YgcmVzdWx0cyBjb250YWluZWQgaW4gYW4gU0FSSUYgbG9nLiBUaGUgcmVzdWx0cyBhcnJheSBjYW4gYmUgb21pdHRlZCB3aGVuIGEgcnVuIGlzIHNvbGVseSBleHBvcnRpbmcgcnVsZXMgbWV0YWRhdGEuIEl0IG11c3QgYmUgcHJlc2VudCAoYnV0IG1heSBiZSBlbXB0eSkgaW4gdGhlIGV2ZW50IHRoYXQgYSBsb2cgZmlsZSByZXByZXNlbnRzIGFuIGFjdHVhbCBzY2FuLg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICBbRGF0YU1lbWJlcihOYW1lID0gInJlc3VsdHMiLCBJc1JlcXVpcmVkID0gZmFsc2UsIEVtaXREZWZhdWx0VmFsdWUgPSBmYWxzZSldDQogICAgICAgIHB1YmxpYyBJTGlzdDxSZXN1bHRWZXJzaW9uT25lPiBSZXN1bHRzIHsgZ2V0OyBzZXQ7IH0NCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBBIGxpc3Qgb2YgcnVudGltZSBjb25kaXRpb25zIGRldGVjdGVkIGJ5IHRoZSB0b29sIGluIHRoZSBjb3Vyc2Ugb2YgdGhlIGFuYWx5c2lzLg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICBbRGF0YU1lbWJlcihOYW1lID0gInRvb2xOb3RpZmljYXRpb25zIiwgSXNSZXF1aXJlZCA9IGZhbHNlLCBFbWl0RGVmYXVsdFZhbHVlID0gZmFsc2UpXQ0KICAgICAgICBwdWJsaWMgSUxpc3Q8Tm90aWZpY2F0aW9uVmVyc2lvbk9uZT4gVG9vbE5vdGlmaWNhdGlvbnMgeyBnZXQ7IHNldDsgfQ0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIEEgbGlzdCBvZiBjb25kaXRpb25zIGRldGVjdGVkIGJ5IHRoZSB0b29sIHRoYXQgYXJlIHJlbGV2YW50IHRvIHRoZSB0b29sJ3MgY29uZmlndXJhdGlvbi4NCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgW0RhdGFNZW1iZXIoTmFtZSA9ICJjb25maWd1cmF0aW9uTm90aWZpY2F0aW9ucyIsIElzUmVxdWlyZWQgPSBmYWxzZSwgRW1pdERlZmF1bHRWYWx1ZSA9IGZhbHNlKV0NCiAgICAgICAgcHVibGljIElMaXN0PE5vdGlmaWNhdGlvblZlcnNpb25PbmU+IENvbmZpZ3VyYXRpb25Ob3RpZmljYXRpb25zIHsgZ2V0OyBzZXQ7IH0NCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBBIGRpY3Rpb25hcnksIGVhY2ggb2Ygd2hvc2Uga2V5cyBpcyBhIHN0cmluZyBhbmQgZWFjaCBvZiB3aG9zZSB2YWx1ZXMgaXMgYSAncnVsZScgb2JqZWN0LCB0aGF0IGRlc2NyaWJlIGFsbCBydWxlcyBhc3NvY2lhdGVkIHdpdGggYW4gYW5hbHlzaXMgdG9vbCBvciBhIHNwZWNpZmljIHJ1biBvZiBhbiBhbmFseXNpcyB0b29sLg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICBbRGF0YU1lbWJlcihOYW1lID0gInJ1bGVzIiwgSXNSZXF1aXJlZCA9IGZhbHNlLCBFbWl0RGVmYXVsdFZhbHVlID0gZmFsc2UpXQ0KICAgICAgICBwdWJsaWMgSURpY3Rpb25hcnk8c3RyaW5nLCBSdWxlVmVyc2lvbk9uZT4gUnVsZXMgeyBnZXQ7IHNldDsgfQ0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIEFuIGlkZW50aWZpZXIgZm9yIHRoZSBydW4uDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIFtEYXRhTWVtYmVyKE5hbWUgPSAiaWQiLCBJc1JlcXVpcmVkID0gZmFsc2UsIEVtaXREZWZhdWx0VmFsdWUgPSBmYWxzZSldDQogICAgICAgIHB1YmxpYyBzdHJpbmcgSWQgeyBnZXQ7IHNldDsgfQ0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIEEgc3RhYmxlIGlkZW50aWZpZXIgZm9yIGEgcnVuLCBmb3IgZXhhbXBsZSwgJ25pZ2h0bHkgQ2xhbmcgYW5hbHl6ZXIgcnVuJy4gTXVsdGlwbGUgcnVucyBvZiB0aGUgc2FtZSB0eXBlIGNhbiBoYXZlIHRoZSBzYW1lIHN0YWJsZUlkLg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICBbRGF0YU1lbWJlcihOYW1lID0gInN0YWJsZUlkIiwgSXNSZXF1aXJlZCA9IGZhbHNlLCBFbWl0RGVmYXVsdFZhbHVlID0gZmFsc2UpXQ0KICAgICAgICBwdWJsaWMgc3RyaW5nIFN0YWJsZUlkIHsgZ2V0OyBzZXQ7IH0NCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBBIGdsb2JhbCBpZGVudGlmaWVyIHRoYXQgYWxsb3dzIHRoZSBydW4gdG8gYmUgY29ycmVsYXRlZCB3aXRoIG90aGVyIGFydGlmYWN0cyBwcm9kdWNlZCBieSBhIGxhcmdlciBhdXRvbWF0aW9uIHByb2Nlc3MuDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIFtEYXRhTWVtYmVyKE5hbWUgPSAiYXV0b21hdGlvbklkIiwgSXNSZXF1aXJlZCA9IGZhbHNlLCBFbWl0RGVmYXVsdFZhbHVlID0gZmFsc2UpXQ0KICAgICAgICBwdWJsaWMgc3RyaW5nIEF1dG9tYXRpb25JZCB7IGdldDsgc2V0OyB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gVGhlICdpZCcgcHJvcGVydHkgb2YgYSBzZXBhcmF0ZSAocG90ZW50aWFsbHkgZXh0ZXJuYWwpIFNBUklGICdydW4nIGluc3RhbmNlIHRoYXQgY29tcHJpc2VzIHRoZSBiYXNlbGluZSB0aGF0IHdhcyB1c2VkIHRvIGNvbXB1dGUgcmVzdWx0ICdiYXNlbGluZVN0YXRlJyBwcm9wZXJ0aWVzIGZvciB0aGUgcnVuLg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICBbRGF0YU1lbWJlcihOYW1lID0gImJhc2VsaW5lSWQiLCBJc1JlcXVpcmVkID0gZmFsc2UsIEVtaXREZWZhdWx0VmFsdWUgPSBmYWxzZSldDQogICAgICAgIHB1YmxpYyBzdHJpbmcgQmFzZWxpbmVJZCB7IGdldDsgc2V0OyB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gVGhlIGhhcmR3YXJlIGFyY2hpdGVjdHVyZSBmb3Igd2hpY2ggdGhlIHJ1biB3YXMgdGFyZ2V0ZWQuDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIFtEYXRhTWVtYmVyKE5hbWUgPSAiYXJjaGl0ZWN0dXJlIiwgSXNSZXF1aXJlZCA9IGZhbHNlLCBFbWl0RGVmYXVsdFZhbHVlID0gZmFsc2UpXQ0KICAgICAgICBwdWJsaWMgc3RyaW5nIEFyY2hpdGVjdHVyZSB7IGdldDsgc2V0OyB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gS2V5L3ZhbHVlIHBhaXJzIHRoYXQgcHJvdmlkZSBhZGRpdGlvbmFsIGluZm9ybWF0aW9uIGFib3V0IHRoZSBydW4uDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIFtEYXRhTWVtYmVyKE5hbWUgPSAicHJvcGVydGllcyIsIElzUmVxdWlyZWQgPSBmYWxzZSwgRW1pdERlZmF1bHRWYWx1ZSA9IGZhbHNlKV0NCiAgICAgICAgaW50ZXJuYWwgb3ZlcnJpZGUgSURpY3Rpb25hcnk8c3RyaW5nLCBTZXJpYWxpemVkUHJvcGVydHlJbmZvPiBQcm9wZXJ0aWVzIHsgZ2V0OyBzZXQ7IH0NCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBJbml0aWFsaXplcyBhIG5ldyBpbnN0YW5jZSBvZiB0aGUgPHNlZSBjcmVmPSJSdW5WZXJzaW9uT25lIiAvPiBjbGFzcy4NCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgcHVibGljIFJ1blZlcnNpb25PbmUoKQ0KICAgICAgICB7DQogICAgICAgIH0NCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBJbml0aWFsaXplcyBhIG5ldyBpbnN0YW5jZSBvZiB0aGUgPHNlZSBjcmVmPSJSdW5WZXJzaW9uT25lIiAvPiBjbGFzcyBmcm9tIHRoZSBzdXBwbGllZCB2YWx1ZXMuDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIC8vLyA8cGFyYW0gbmFtZT0idG9vbCI+DQogICAgICAgIC8vLyBBbiBpbml0aWFsaXphdGlvbiB2YWx1ZSBmb3IgdGhlIDxzZWUgY3JlZj0iUDogVG9vbCIgLz4gcHJvcGVydHkuDQogICAgICAgIC8vLyA8L3BhcmFtPg0KICAgICAgICAvLy8gPHBhcmFtIG5hbWU9Imludm9jYXRpb24iPg0KICAgICAgICAvLy8gQW4gaW5pdGlhbGl6YXRpb24gdmFsdWUgZm9yIHRoZSA8c2VlIGNyZWY9IlA6IEludm9jYXRpb24iIC8+IHByb3BlcnR5Lg0KICAgICAgICAvLy8gPC9wYXJhbT4NCiAgICAgICAgLy8vIDxwYXJhbSBuYW1lPSJmaWxlcyI+DQogICAgICAgIC8vLyBBbiBpbml0aWFsaXphdGlvbiB2YWx1ZSBmb3IgdGhlIDxzZWUgY3JlZj0iUDogRmlsZXMiIC8+IHByb3BlcnR5Lg0KICAgICAgICAvLy8gPC9wYXJhbT4NCiAgICAgICAgLy8vIDxwYXJhbSBuYW1lPSJsb2dpY2FsTG9jYXRpb25zIj4NCiAgICAgICAgLy8vIEFuIGluaXRpYWxpemF0aW9uIHZhbHVlIGZvciB0aGUgPHNlZSBjcmVmPSJQOiBMb2dpY2FsTG9jYXRpb25zIiAvPiBwcm9wZXJ0eS4NCiAgICAgICAgLy8vIDwvcGFyYW0+DQogICAgICAgIC8vLyA8cGFyYW0gbmFtZT0icmVzdWx0cyI+DQogICAgICAgIC8vLyBBbiBpbml0aWFsaXphdGlvbiB2YWx1ZSBmb3IgdGhlIDxzZWUgY3JlZj0iUDogUmVzdWx0cyIgLz4gcHJvcGVydHkuDQogICAgICAgIC8vLyA8L3BhcmFtPg0KICAgICAgICAvLy8gPHBhcmFtIG5hbWU9InRvb2xOb3RpZmljYXRpb25zIj4NCiAgICAgICAgLy8vIEFuIGluaXRpYWxpemF0aW9uIHZhbHVlIGZvciB0aGUgPHNlZSBjcmVmPSJQOiBUb29sTm90aWZpY2F0aW9ucyIgLz4gcHJvcGVydHkuDQogICAgICAgIC8vLyA8L3BhcmFtPg0KICAgICAgICAvLy8gPHBhcmFtIG5hbWU9ImNvbmZpZ3VyYXRpb25Ob3RpZmljYXRpb25zIj4NCiAgICAgICAgLy8vIEFuIGluaXRpYWxpemF0aW9uIHZhbHVlIGZvciB0aGUgPHNlZSBjcmVmPSJQOiBDb25maWd1cmF0aW9uTm90aWZpY2F0aW9ucyIgLz4gcHJvcGVydHkuDQogICAgICAgIC8vLyA8L3BhcmFtPg0KICAgICAgICAvLy8gPHBhcmFtIG5hbWU9InJ1bGVzIj4NCiAgICAgICAgLy8vIEFuIGluaXRpYWxpemF0aW9uIHZhbHVlIGZvciB0aGUgPHNlZSBjcmVmPSJQOiBSdWxlcyIgLz4gcHJvcGVydHkuDQogICAgICAgIC8vLyA8L3BhcmFtPg0KICAgICAgICAvLy8gPHBhcmFtIG5hbWU9ImlkIj4NCiAgICAgICAgLy8vIEFuIGluaXRpYWxpemF0aW9uIHZhbHVlIGZvciB0aGUgPHNlZSBjcmVmPSJQOiBJZCIgLz4gcHJvcGVydHkuDQogICAgICAgIC8vLyA8L3BhcmFtPg0KICAgICAgICAvLy8gPHBhcmFtIG5hbWU9InN0YWJsZUlkIj4NCiAgICAgICAgLy8vIEFuIGluaXRpYWxpemF0aW9uIHZhbHVlIGZvciB0aGUgPHNlZSBjcmVmPSJQOiBTdGFibGVJZCIgLz4gcHJvcGVydHkuDQogICAgICAgIC8vLyA8L3BhcmFtPg0KICAgICAgICAvLy8gPHBhcmFtIG5hbWU9ImF1dG9tYXRpb25JZCI+DQogICAgICAgIC8vLyBBbiBpbml0aWFsaXphdGlvbiB2YWx1ZSBmb3IgdGhlIDxzZWUgY3JlZj0iUDogQXV0b21hdGlvbklkIiAvPiBwcm9wZXJ0eS4NCiAgICAgICAgLy8vIDwvcGFyYW0+DQogICAgICAgIC8vLyA8cGFyYW0gbmFtZT0iYmFzZWxpbmVJZCI+DQogICAgICAgIC8vLyBBbiBpbml0aWFsaXphdGlvbiB2YWx1ZSBmb3IgdGhlIDxzZWUgY3JlZj0iUDogQmFzZWxpbmVJZCIgLz4gcHJvcGVydHkuDQogICAgICAgIC8vLyA8L3BhcmFtPg0KICAgICAgICAvLy8gPHBhcmFtIG5hbWU9ImFyY2hpdGVjdHVyZSI+DQogICAgICAgIC8vLyBBbiBpbml0aWFsaXphdGlvbiB2YWx1ZSBmb3IgdGhlIDxzZWUgY3JlZj0iUDogQXJjaGl0ZWN0dXJlIiAvPiBwcm9wZXJ0eS4NCiAgICAgICAgLy8vIDwvcGFyYW0+DQogICAgICAgIC8vLyA8cGFyYW0gbmFtZT0icHJvcGVydGllcyI+DQogICAgICAgIC8vLyBBbiBpbml0aWFsaXphdGlvbiB2YWx1ZSBmb3IgdGhlIDxzZWUgY3JlZj0iUDogUHJvcGVydGllcyIgLz4gcHJvcGVydHkuDQogICAgICAgIC8vLyA8L3BhcmFtPg0KICAgICAgICBwdWJsaWMgUnVuVmVyc2lvbk9uZShUb29sVmVyc2lvbk9uZSB0b29sLCBJbnZvY2F0aW9uVmVyc2lvbk9uZSBpbnZvY2F0aW9uLCBJRGljdGlvbmFyeTxzdHJpbmcsIEZpbGVEYXRhVmVyc2lvbk9uZT4gZmlsZXMsIElEaWN0aW9uYXJ5PHN0cmluZywgTG9naWNhbExvY2F0aW9uVmVyc2lvbk9uZT4gbG9naWNhbExvY2F0aW9ucywgSUVudW1lcmFibGU8UmVzdWx0VmVyc2lvbk9uZT4gcmVzdWx0cywgSUVudW1lcmFibGU8Tm90aWZpY2F0aW9uVmVyc2lvbk9uZT4gdG9vbE5vdGlmaWNhdGlvbnMsIElFbnVtZXJhYmxlPE5vdGlmaWNhdGlvblZlcnNpb25PbmU+IGNvbmZpZ3VyYXRpb25Ob3RpZmljYXRpb25zLCBJRGljdGlvbmFyeTxzdHJpbmcsIFJ1bGVWZXJzaW9uT25lPiBydWxlcywgc3RyaW5nIGlkLCBzdHJpbmcgc3RhYmxlSWQsIHN0cmluZyBhdXRvbWF0aW9uSWQsIHN0cmluZyBiYXNlbGluZUlkLCBzdHJpbmcgYXJjaGl0ZWN0dXJlLCBJRGljdGlvbmFyeTxzdHJpbmcsIFNlcmlhbGl6ZWRQcm9wZXJ0eUluZm8+IHByb3BlcnRpZXMpDQogICAgICAgIHsNCiAgICAgICAgICAgIEluaXQodG9vbCwgaW52b2NhdGlvbiwgZmlsZXMsIGxvZ2ljYWxMb2NhdGlvbnMsIHJlc3VsdHMsIHRvb2xOb3RpZmljYXRpb25zLCBjb25maWd1cmF0aW9uTm90aWZpY2F0aW9ucywgcnVsZXMsIGlkLCBzdGFibGVJZCwgYXV0b21hdGlvbklkLCBiYXNlbGluZUlkLCBhcmNoaXRlY3R1cmUsIHByb3BlcnRpZXMpOw0KICAgICAgICB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gSW5pdGlhbGl6ZXMgYSBuZXcgaW5zdGFuY2Ugb2YgdGhlIDxzZWUgY3JlZj0iUnVuVmVyc2lvbk9uZSIgLz4gY2xhc3MgZnJvbSB0aGUgc3BlY2lmaWVkIGluc3RhbmNlLg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICAvLy8gPHBhcmFtIG5hbWU9Im90aGVyIj4NCiAgICAgICAgLy8vIFRoZSBpbnN0YW5jZSBmcm9tIHdoaWNoIHRoZSBuZXcgaW5zdGFuY2UgaXMgdG8gYmUgaW5pdGlhbGl6ZWQuDQogICAgICAgIC8vLyA8L3BhcmFtPg0KICAgICAgICAvLy8gPGV4Y2VwdGlvbiBjcmVmPSJBcmd1bWVudE51bGxFeGNlcHRpb24iPg0KICAgICAgICAvLy8gVGhyb3duIGlmIDxwYXJhbXJlZiBuYW1lPSJvdGhlciIgLz4gaXMgbnVsbC4NCiAgICAgICAgLy8vIDwvZXhjZXB0aW9uPg0KICAgICAgICBwdWJsaWMgUnVuVmVyc2lvbk9uZShSdW5WZXJzaW9uT25lIG90aGVyKQ0KICAgICAgICB7DQogICAgICAgICAgICBpZiAob3RoZXIgPT0gbnVsbCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgQXJndW1lbnROdWxsRXhjZXB0aW9uKG5hbWVvZihvdGhlcikpOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBJbml0KG90aGVyLlRvb2wsIG90aGVyLkludm9jYXRpb24sIG90aGVyLkZpbGVzLCBvdGhlci5Mb2dpY2FsTG9jYXRpb25zLCBvdGhlci5SZXN1bHRzLCBvdGhlci5Ub29sTm90aWZpY2F0aW9ucywgb3RoZXIuQ29uZmlndXJhdGlvbk5vdGlmaWNhdGlvbnMsIG90aGVyLlJ1bGVzLCBvdGhlci5JZCwgb3RoZXIuU3RhYmxlSWQsIG90aGVyLkF1dG9tYXRpb25JZCwgb3RoZXIuQmFzZWxpbmVJZCwgb3RoZXIuQXJjaGl0ZWN0dXJlLCBvdGhlci5Qcm9wZXJ0aWVzKTsNCiAgICAgICAgfQ0KDQogICAgICAgIElTYXJpZk5vZGVWZXJzaW9uT25lIElTYXJpZk5vZGVWZXJzaW9uT25lLkRlZXBDbG9uZSgpDQogICAgICAgIHsNCiAgICAgICAgICAgIHJldHVybiBEZWVwQ2xvbmVDb3JlKCk7DQogICAgICAgIH0NCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBDcmVhdGVzIGEgZGVlcCBjb3B5IG9mIHRoaXMgaW5zdGFuY2UuDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIHB1YmxpYyBSdW5WZXJzaW9uT25lIERlZXBDbG9uZSgpDQogICAgICAgIHsNCiAgICAgICAgICAgIHJldHVybiAoUnVuVmVyc2lvbk9uZSlEZWVwQ2xvbmVDb3JlKCk7DQogICAgICAgIH0NCg0KICAgICAgICBwcml2YXRlIElTYXJpZk5vZGVWZXJzaW9uT25lIERlZXBDbG9uZUNvcmUoKQ0KICAgICAgICB7DQogICAgICAgICAgICByZXR1cm4gbmV3IFJ1blZlcnNpb25PbmUodGhpcyk7DQogICAgICAgIH0NCg0KICAgICAgICBwcml2YXRlIHZvaWQgSW5pdChUb29sVmVyc2lvbk9uZSB0b29sLCBJbnZvY2F0aW9uVmVyc2lvbk9uZSBpbnZvY2F0aW9uLCBJRGljdGlvbmFyeTxzdHJpbmcsIEZpbGVEYXRhVmVyc2lvbk9uZT4gZmlsZXMsIElEaWN0aW9uYXJ5PHN0cmluZywgTG9naWNhbExvY2F0aW9uVmVyc2lvbk9uZT4gbG9naWNhbExvY2F0aW9ucywgSUVudW1lcmFibGU8UmVzdWx0VmVyc2lvbk9uZT4gcmVzdWx0cywgSUVudW1lcmFibGU8Tm90aWZpY2F0aW9uVmVyc2lvbk9uZT4gdG9vbE5vdGlmaWNhdGlvbnMsIElFbnVtZXJhYmxlPE5vdGlmaWNhdGlvblZlcnNpb25PbmU+IGNvbmZpZ3VyYXRpb25Ob3RpZmljYXRpb25zLCBJRGljdGlvbmFyeTxzdHJpbmcsIFJ1bGVWZXJzaW9uT25lPiBydWxlcywgc3RyaW5nIGlkLCBzdHJpbmcgc3RhYmxlSWQsIHN0cmluZyBhdXRvbWF0aW9uSWQsIHN0cmluZyBiYXNlbGluZUlkLCBzdHJpbmcgYXJjaGl0ZWN0dXJlLCBJRGljdGlvbmFyeTxzdHJpbmcsIFNlcmlhbGl6ZWRQcm9wZXJ0eUluZm8+IHByb3BlcnRpZXMpDQogICAgICAgIHsNCiAgICAgICAgICAgIGlmICh0b29sICE9IG51bGwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgVG9vbCA9IG5ldyBUb29sVmVyc2lvbk9uZSh0b29sKTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgaWYgKGludm9jYXRpb24gIT0gbnVsbCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBJbnZvY2F0aW9uID0gbmV3IEludm9jYXRpb25WZXJzaW9uT25lKGludm9jYXRpb24pOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBpZiAoZmlsZXMgIT0gbnVsbCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBGaWxlcyA9IG5ldyBEaWN0aW9uYXJ5PHN0cmluZywgRmlsZURhdGFWZXJzaW9uT25lPigpOw0KICAgICAgICAgICAgICAgIGZvcmVhY2ggKHZhciB2YWx1ZV8wIGluIGZpbGVzKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgRmlsZXMuQWRkKHZhbHVlXzAuS2V5LCBuZXcgRmlsZURhdGFWZXJzaW9uT25lKHZhbHVlXzAuVmFsdWUpKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIGlmIChsb2dpY2FsTG9jYXRpb25zICE9IG51bGwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgTG9naWNhbExvY2F0aW9ucyA9IG5ldyBEaWN0aW9uYXJ5PHN0cmluZywgTG9naWNhbExvY2F0aW9uVmVyc2lvbk9uZT4oKTsNCiAgICAgICAgICAgICAgICBmb3JlYWNoICh2YXIgdmFsdWVfMSBpbiBsb2dpY2FsTG9jYXRpb25zKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgTG9naWNhbExvY2F0aW9ucy5BZGQodmFsdWVfMS5LZXksIG5ldyBMb2dpY2FsTG9jYXRpb25WZXJzaW9uT25lKHZhbHVlXzEuVmFsdWUpKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIGlmIChyZXN1bHRzICE9IG51bGwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgdmFyIGRlc3RpbmF0aW9uXzAgPSBuZXcgTGlzdDxSZXN1bHRWZXJzaW9uT25lPigpOw0KICAgICAgICAgICAgICAgIGZvcmVhY2ggKHZhciB2YWx1ZV8yIGluIHJlc3VsdHMpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWVfMiA9PSBudWxsKQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICBkZXN0aW5hdGlvbl8wLkFkZChudWxsKTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBlbHNlDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGRlc3RpbmF0aW9uXzAuQWRkKG5ldyBSZXN1bHRWZXJzaW9uT25lKHZhbHVlXzIpKTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgIFJlc3VsdHMgPSBkZXN0aW5hdGlvbl8wOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBpZiAodG9vbE5vdGlmaWNhdGlvbnMgIT0gbnVsbCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICB2YXIgZGVzdGluYXRpb25fMSA9IG5ldyBMaXN0PE5vdGlmaWNhdGlvblZlcnNpb25PbmU+KCk7DQogICAgICAgICAgICAgICAgZm9yZWFjaCAodmFyIHZhbHVlXzMgaW4gdG9vbE5vdGlmaWNhdGlvbnMpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWVfMyA9PSBudWxsKQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICBkZXN0aW5hdGlvbl8xLkFkZChudWxsKTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBlbHNlDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGRlc3RpbmF0aW9uXzEuQWRkKG5ldyBOb3RpZmljYXRpb25WZXJzaW9uT25lKHZhbHVlXzMpKTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgIFRvb2xOb3RpZmljYXRpb25zID0gZGVzdGluYXRpb25fMTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgaWYgKGNvbmZpZ3VyYXRpb25Ob3RpZmljYXRpb25zICE9IG51bGwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgdmFyIGRlc3RpbmF0aW9uXzIgPSBuZXcgTGlzdDxOb3RpZmljYXRpb25WZXJzaW9uT25lPigpOw0KICAgICAgICAgICAgICAgIGZvcmVhY2ggKHZhciB2YWx1ZV80IGluIGNvbmZpZ3VyYXRpb25Ob3RpZmljYXRpb25zKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlXzQgPT0gbnVsbCkNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgZGVzdGluYXRpb25fMi5BZGQobnVsbCk7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgZWxzZQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICBkZXN0aW5hdGlvbl8yLkFkZChuZXcgTm90aWZpY2F0aW9uVmVyc2lvbk9uZSh2YWx1ZV80KSk7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICBDb25maWd1cmF0aW9uTm90aWZpY2F0aW9ucyA9IGRlc3RpbmF0aW9uXzI7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIGlmIChydWxlcyAhPSBudWxsKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIFJ1bGVzID0gbmV3IERpY3Rpb25hcnk8c3RyaW5nLCBSdWxlVmVyc2lvbk9uZT4oKTsNCiAgICAgICAgICAgICAgICBmb3JlYWNoICh2YXIgdmFsdWVfNSBpbiBydWxlcykNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIFJ1bGVzLkFkZCh2YWx1ZV81LktleSwgbmV3IFJ1bGVWZXJzaW9uT25lKHZhbHVlXzUuVmFsdWUpKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIElkID0gaWQ7DQogICAgICAgICAgICBTdGFibGVJZCA9IHN0YWJsZUlkOw0KICAgICAgICAgICAgQXV0b21hdGlvbklkID0gYXV0b21hdGlvbklkOw0KICAgICAgICAgICAgQmFzZWxpbmVJZCA9IGJhc2VsaW5lSWQ7DQogICAgICAgICAgICBBcmNoaXRlY3R1cmUgPSBhcmNoaXRlY3R1cmU7DQogICAgICAgICAgICBpZiAocHJvcGVydGllcyAhPSBudWxsKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIFByb3BlcnRpZXMgPSBuZXcgRGljdGlvbmFyeTxzdHJpbmcsIFNlcmlhbGl6ZWRQcm9wZXJ0eUluZm8+KHByb3BlcnRpZXMpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgfQ0KfQ==" + { + "ruleId": "CA1062", + "message": { + "text": "In externally visible method 'RuleExtensions.SetResultFile(this Result, string)', validate parameter 'result' before using it." }, - "hashes": [ - { - "value": "98644D166E8B2E263713EED0F1E02DBA", - "algorithm": "md5" - }, - { - "value": "4E53A96014FBA59E0448ADBC2A2EA8AA487DB217", - "algorithm": "sha-1" - }, + "locations": [ { - "value": "242EB12FE363DFE596A6CE00A5EA86442D0D8931F8F560FF05601FE3E8569655", - "algorithm": "sha-256" + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Microsoft.Json.Schema.Validation.dll", + "uriBaseId": "$(ProjectDir)", + "index": 2 + } + }, + "logicalLocations": [ + { + "index": 113, + "fullyQualifiedName": "microsoft.json.schema.validation.dll!Microsoft.Json.Schema.Validation.RuleExtensions.SetResultFile(Microsoft.CodeAnalysis.Sarif.Result,System.String)" + } + ] } - ] + ], + "partialFingerprints": { + "UniqueId": "0" + }, + "properties": { + "Category": "Microsoft.Design", + "FixCategory": "DependsOnFix" + } }, - "file:///E:/src/sarif-sdk-test/src/Sarif/VersionOne/Autogenerated/RunVersionOneEqualityComparer.cs": { - "mimeType": "text/x-csharp", - "contents": { - "binary": "Ly8gQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQuICBBbGwgUmlnaHRzIFJlc2VydmVkLg0KLy8gTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlLiBTZWUgTElDRU5TRSBmaWxlIGluIHRoZSBwcm9qZWN0IHJvb3QgZm9yIGZ1bGwgbGljZW5zZSBpbmZvcm1hdGlvbi4NCg0KdXNpbmcgU3lzdGVtOw0KdXNpbmcgU3lzdGVtLkNvZGVEb20uQ29tcGlsZXI7DQp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsNCnVzaW5nIE1pY3Jvc29mdC5Db2RlQW5hbHlzaXMuU2FyaWYuUmVhZGVyczsNCg0KbmFtZXNwYWNlIE1pY3Jvc29mdC5Db2RlQW5hbHlzaXMuU2FyaWYuVmVyc2lvbk9uZQ0Kew0KICAgIC8vLyA8c3VtbWFyeT4NCiAgICAvLy8gRGVmaW5lcyBtZXRob2RzIHRvIHN1cHBvcnQgdGhlIGNvbXBhcmlzb24gb2Ygb2JqZWN0cyBvZiB0eXBlIFJ1blZlcnNpb25PbmUgZm9yIGVxdWFsaXR5Lg0KICAgIC8vLyA8L3N1bW1hcnk+DQogICAgW0dlbmVyYXRlZENvZGUoIk1pY3Jvc29mdC5Kc29uLlNjaGVtYS5Ub0RvdE5ldCIsICIwLjUyLjAuMCIpXQ0KICAgIGludGVybmFsIHNlYWxlZCBjbGFzcyBSdW5WZXJzaW9uT25lRXF1YWxpdHlDb21wYXJlciA6IElFcXVhbGl0eUNvbXBhcmVyPFJ1blZlcnNpb25PbmU+DQogICAgew0KICAgICAgICBpbnRlcm5hbCBzdGF0aWMgcmVhZG9ubHkgUnVuVmVyc2lvbk9uZUVxdWFsaXR5Q29tcGFyZXIgSW5zdGFuY2UgPSBuZXcgUnVuVmVyc2lvbk9uZUVxdWFsaXR5Q29tcGFyZXIoKTsNCg0KICAgICAgICBwdWJsaWMgYm9vbCBFcXVhbHMoUnVuVmVyc2lvbk9uZSBsZWZ0LCBSdW5WZXJzaW9uT25lIHJpZ2h0KQ0KICAgICAgICB7DQogICAgICAgICAgICBpZiAoUmVmZXJlbmNlRXF1YWxzKGxlZnQsIHJpZ2h0KSkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgaWYgKFJlZmVyZW5jZUVxdWFscyhsZWZ0LCBudWxsKSB8fCBSZWZlcmVuY2VFcXVhbHMocmlnaHQsIG51bGwpKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgaWYgKCFUb29sVmVyc2lvbk9uZS5WYWx1ZUNvbXBhcmVyLkVxdWFscyhsZWZ0LlRvb2wsIHJpZ2h0LlRvb2wpKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgaWYgKCFJbnZvY2F0aW9uVmVyc2lvbk9uZS5WYWx1ZUNvbXBhcmVyLkVxdWFscyhsZWZ0Lkludm9jYXRpb24sIHJpZ2h0Lkludm9jYXRpb24pKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgaWYgKCFvYmplY3QuUmVmZXJlbmNlRXF1YWxzKGxlZnQuRmlsZXMsIHJpZ2h0LkZpbGVzKSkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBpZiAobGVmdC5GaWxlcyA9PSBudWxsIHx8IHJpZ2h0LkZpbGVzID09IG51bGwgfHwgbGVmdC5GaWxlcy5Db3VudCAhPSByaWdodC5GaWxlcy5Db3VudCkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICBmb3JlYWNoICh2YXIgdmFsdWVfMCBpbiBsZWZ0LkZpbGVzKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgRmlsZURhdGFWZXJzaW9uT25lIHZhbHVlXzE7DQogICAgICAgICAgICAgICAgICAgIGlmICghcmlnaHQuRmlsZXMuVHJ5R2V0VmFsdWUodmFsdWVfMC5LZXksIG91dCB2YWx1ZV8xKSkNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAgICAgaWYgKCFGaWxlRGF0YVZlcnNpb25PbmUuVmFsdWVDb21wYXJlci5FcXVhbHModmFsdWVfMC5WYWx1ZSwgdmFsdWVfMSkpDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgaWYgKCFvYmplY3QuUmVmZXJlbmNlRXF1YWxzKGxlZnQuTG9naWNhbExvY2F0aW9ucywgcmlnaHQuTG9naWNhbExvY2F0aW9ucykpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgaWYgKGxlZnQuTG9naWNhbExvY2F0aW9ucyA9PSBudWxsIHx8IHJpZ2h0LkxvZ2ljYWxMb2NhdGlvbnMgPT0gbnVsbCB8fCBsZWZ0LkxvZ2ljYWxMb2NhdGlvbnMuQ291bnQgIT0gcmlnaHQuTG9naWNhbExvY2F0aW9ucy5Db3VudCkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICBmb3JlYWNoICh2YXIgdmFsdWVfMiBpbiBsZWZ0LkxvZ2ljYWxMb2NhdGlvbnMpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBMb2dpY2FsTG9jYXRpb25WZXJzaW9uT25lIHZhbHVlXzM7DQogICAgICAgICAgICAgICAgICAgIGlmICghcmlnaHQuTG9naWNhbExvY2F0aW9ucy5UcnlHZXRWYWx1ZSh2YWx1ZV8yLktleSwgb3V0IHZhbHVlXzMpKQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgICAgICBpZiAoIUxvZ2ljYWxMb2NhdGlvblZlcnNpb25PbmUuVmFsdWVDb21wYXJlci5FcXVhbHModmFsdWVfMi5WYWx1ZSwgdmFsdWVfMykpDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgaWYgKCFvYmplY3QuUmVmZXJlbmNlRXF1YWxzKGxlZnQuUmVzdWx0cywgcmlnaHQuUmVzdWx0cykpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgaWYgKGxlZnQuUmVzdWx0cyA9PSBudWxsIHx8IHJpZ2h0LlJlc3VsdHMgPT0gbnVsbCkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICBpZiAobGVmdC5SZXN1bHRzLkNvdW50ICE9IHJpZ2h0LlJlc3VsdHMuQ291bnQpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgZm9yIChpbnQgaW5kZXhfMCA9IDA7IGluZGV4XzAgPCBsZWZ0LlJlc3VsdHMuQ291bnQ7ICsraW5kZXhfMCkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIGlmICghUmVzdWx0VmVyc2lvbk9uZS5WYWx1ZUNvbXBhcmVyLkVxdWFscyhsZWZ0LlJlc3VsdHNbaW5kZXhfMF0sIHJpZ2h0LlJlc3VsdHNbaW5kZXhfMF0pKQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIGlmICghb2JqZWN0LlJlZmVyZW5jZUVxdWFscyhsZWZ0LlRvb2xOb3RpZmljYXRpb25zLCByaWdodC5Ub29sTm90aWZpY2F0aW9ucykpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgaWYgKGxlZnQuVG9vbE5vdGlmaWNhdGlvbnMgPT0gbnVsbCB8fCByaWdodC5Ub29sTm90aWZpY2F0aW9ucyA9PSBudWxsKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgIGlmIChsZWZ0LlRvb2xOb3RpZmljYXRpb25zLkNvdW50ICE9IHJpZ2h0LlRvb2xOb3RpZmljYXRpb25zLkNvdW50KQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgIGZvciAoaW50IGluZGV4XzEgPSAwOyBpbmRleF8xIDwgbGVmdC5Ub29sTm90aWZpY2F0aW9ucy5Db3VudDsgKytpbmRleF8xKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgaWYgKCFOb3RpZmljYXRpb25WZXJzaW9uT25lLlZhbHVlQ29tcGFyZXIuRXF1YWxzKGxlZnQuVG9vbE5vdGlmaWNhdGlvbnNbaW5kZXhfMV0sIHJpZ2h0LlRvb2xOb3RpZmljYXRpb25zW2luZGV4XzFdKSkNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBpZiAoIW9iamVjdC5SZWZlcmVuY2VFcXVhbHMobGVmdC5Db25maWd1cmF0aW9uTm90aWZpY2F0aW9ucywgcmlnaHQuQ29uZmlndXJhdGlvbk5vdGlmaWNhdGlvbnMpKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIGlmIChsZWZ0LkNvbmZpZ3VyYXRpb25Ob3RpZmljYXRpb25zID09IG51bGwgfHwgcmlnaHQuQ29uZmlndXJhdGlvbk5vdGlmaWNhdGlvbnMgPT0gbnVsbCkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICBpZiAobGVmdC5Db25maWd1cmF0aW9uTm90aWZpY2F0aW9ucy5Db3VudCAhPSByaWdodC5Db25maWd1cmF0aW9uTm90aWZpY2F0aW9ucy5Db3VudCkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICBmb3IgKGludCBpbmRleF8yID0gMDsgaW5kZXhfMiA8IGxlZnQuQ29uZmlndXJhdGlvbk5vdGlmaWNhdGlvbnMuQ291bnQ7ICsraW5kZXhfMikNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIGlmICghTm90aWZpY2F0aW9uVmVyc2lvbk9uZS5WYWx1ZUNvbXBhcmVyLkVxdWFscyhsZWZ0LkNvbmZpZ3VyYXRpb25Ob3RpZmljYXRpb25zW2luZGV4XzJdLCByaWdodC5Db25maWd1cmF0aW9uTm90aWZpY2F0aW9uc1tpbmRleF8yXSkpDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgaWYgKCFvYmplY3QuUmVmZXJlbmNlRXF1YWxzKGxlZnQuUnVsZXMsIHJpZ2h0LlJ1bGVzKSkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBpZiAobGVmdC5SdWxlcyA9PSBudWxsIHx8IHJpZ2h0LlJ1bGVzID09IG51bGwgfHwgbGVmdC5SdWxlcy5Db3VudCAhPSByaWdodC5SdWxlcy5Db3VudCkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICBmb3JlYWNoICh2YXIgdmFsdWVfNCBpbiBsZWZ0LlJ1bGVzKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgUnVsZVZlcnNpb25PbmUgdmFsdWVfNTsNCiAgICAgICAgICAgICAgICAgICAgaWYgKCFyaWdodC5SdWxlcy5UcnlHZXRWYWx1ZSh2YWx1ZV80LktleSwgb3V0IHZhbHVlXzUpKQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgICAgICBpZiAoIVJ1bGVWZXJzaW9uT25lLlZhbHVlQ29tcGFyZXIuRXF1YWxzKHZhbHVlXzQuVmFsdWUsIHZhbHVlXzUpKQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIGlmIChsZWZ0LklkICE9IHJpZ2h0LklkKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgaWYgKGxlZnQuU3RhYmxlSWQgIT0gcmlnaHQuU3RhYmxlSWQpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBpZiAobGVmdC5BdXRvbWF0aW9uSWQgIT0gcmlnaHQuQXV0b21hdGlvbklkKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgaWYgKGxlZnQuQmFzZWxpbmVJZCAhPSByaWdodC5CYXNlbGluZUlkKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgaWYgKGxlZnQuQXJjaGl0ZWN0dXJlICE9IHJpZ2h0LkFyY2hpdGVjdHVyZSkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIGlmICghb2JqZWN0LlJlZmVyZW5jZUVxdWFscyhsZWZ0LlByb3BlcnRpZXMsIHJpZ2h0LlByb3BlcnRpZXMpKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIGlmIChsZWZ0LlByb3BlcnRpZXMgPT0gbnVsbCB8fCByaWdodC5Qcm9wZXJ0aWVzID09IG51bGwgfHwgbGVmdC5Qcm9wZXJ0aWVzLkNvdW50ICE9IHJpZ2h0LlByb3BlcnRpZXMuQ291bnQpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgZm9yZWFjaCAodmFyIHZhbHVlXzYgaW4gbGVmdC5Qcm9wZXJ0aWVzKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgU2VyaWFsaXplZFByb3BlcnR5SW5mbyB2YWx1ZV83Ow0KICAgICAgICAgICAgICAgICAgICBpZiAoIXJpZ2h0LlByb3BlcnRpZXMuVHJ5R2V0VmFsdWUodmFsdWVfNi5LZXksIG91dCB2YWx1ZV83KSkNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAgICAgaWYgKCFvYmplY3QuRXF1YWxzKHZhbHVlXzYuVmFsdWUsIHZhbHVlXzcpKQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIHJldHVybiB0cnVlOw0KICAgICAgICB9DQoNCiAgICAgICAgcHVibGljIGludCBHZXRIYXNoQ29kZShSdW5WZXJzaW9uT25lIG9iaikNCiAgICAgICAgew0KICAgICAgICAgICAgaWYgKFJlZmVyZW5jZUVxdWFscyhvYmosIG51bGwpKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHJldHVybiAwOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBpbnQgcmVzdWx0ID0gMTc7DQogICAgICAgICAgICB1bmNoZWNrZWQNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBpZiAob2JqLlRvb2wgIT0gbnVsbCkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IChyZXN1bHQgKiAzMSkgKyBvYmouVG9vbC5WYWx1ZUdldEhhc2hDb2RlKCk7DQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgaWYgKG9iai5JbnZvY2F0aW9uICE9IG51bGwpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSAocmVzdWx0ICogMzEpICsgb2JqLkludm9jYXRpb24uVmFsdWVHZXRIYXNoQ29kZSgpOw0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgIGlmIChvYmouRmlsZXMgIT0gbnVsbCkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIC8vIFVzZSB4b3IgZm9yIGRpY3Rpb25hcmllcyB0byBiZSBvcmRlci1pbmRlcGVuZGVudC4NCiAgICAgICAgICAgICAgICAgICAgaW50IHhvcl8wID0gMDsNCiAgICAgICAgICAgICAgICAgICAgZm9yZWFjaCAodmFyIHZhbHVlXzggaW4gb2JqLkZpbGVzKQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICB4b3JfMCBePSB2YWx1ZV84LktleS5HZXRIYXNoQ29kZSgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlXzguVmFsdWUgIT0gbnVsbCkNCiAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB4b3JfMCBePSB2YWx1ZV84LlZhbHVlLkdldEhhc2hDb2RlKCk7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSAocmVzdWx0ICogMzEpICsgeG9yXzA7DQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgaWYgKG9iai5Mb2dpY2FsTG9jYXRpb25zICE9IG51bGwpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAvLyBVc2UgeG9yIGZvciBkaWN0aW9uYXJpZXMgdG8gYmUgb3JkZXItaW5kZXBlbmRlbnQuDQogICAgICAgICAgICAgICAgICAgIGludCB4b3JfMSA9IDA7DQogICAgICAgICAgICAgICAgICAgIGZvcmVhY2ggKHZhciB2YWx1ZV85IGluIG9iai5Mb2dpY2FsTG9jYXRpb25zKQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICB4b3JfMSBePSB2YWx1ZV85LktleS5HZXRIYXNoQ29kZSgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlXzkuVmFsdWUgIT0gbnVsbCkNCiAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB4b3JfMSBePSB2YWx1ZV85LlZhbHVlLkdldEhhc2hDb2RlKCk7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSAocmVzdWx0ICogMzEpICsgeG9yXzE7DQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgaWYgKG9iai5SZXN1bHRzICE9IG51bGwpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBmb3JlYWNoICh2YXIgdmFsdWVfMTAgaW4gb2JqLlJlc3VsdHMpDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IHJlc3VsdCAqIDMxOw0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlXzEwICE9IG51bGwpDQogICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gKHJlc3VsdCAqIDMxKSArIHZhbHVlXzEwLlZhbHVlR2V0SGFzaENvZGUoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgIGlmIChvYmouVG9vbE5vdGlmaWNhdGlvbnMgIT0gbnVsbCkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIGZvcmVhY2ggKHZhciB2YWx1ZV8xMSBpbiBvYmouVG9vbE5vdGlmaWNhdGlvbnMpDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IHJlc3VsdCAqIDMxOw0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlXzExICE9IG51bGwpDQogICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gKHJlc3VsdCAqIDMxKSArIHZhbHVlXzExLlZhbHVlR2V0SGFzaENvZGUoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgIGlmIChvYmouQ29uZmlndXJhdGlvbk5vdGlmaWNhdGlvbnMgIT0gbnVsbCkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIGZvcmVhY2ggKHZhciB2YWx1ZV8xMiBpbiBvYmouQ29uZmlndXJhdGlvbk5vdGlmaWNhdGlvbnMpDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IHJlc3VsdCAqIDMxOw0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlXzEyICE9IG51bGwpDQogICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gKHJlc3VsdCAqIDMxKSArIHZhbHVlXzEyLlZhbHVlR2V0SGFzaENvZGUoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgIGlmIChvYmouUnVsZXMgIT0gbnVsbCkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIC8vIFVzZSB4b3IgZm9yIGRpY3Rpb25hcmllcyB0byBiZSBvcmRlci1pbmRlcGVuZGVudC4NCiAgICAgICAgICAgICAgICAgICAgaW50IHhvcl8yID0gMDsNCiAgICAgICAgICAgICAgICAgICAgZm9yZWFjaCAodmFyIHZhbHVlXzEzIGluIG9iai5SdWxlcykNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgeG9yXzIgXj0gdmFsdWVfMTMuS2V5LkdldEhhc2hDb2RlKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWVfMTMuVmFsdWUgIT0gbnVsbCkNCiAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB4b3JfMiBePSB2YWx1ZV8xMy5WYWx1ZS5HZXRIYXNoQ29kZSgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gKHJlc3VsdCAqIDMxKSArIHhvcl8yOw0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgIGlmIChvYmouSWQgIT0gbnVsbCkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IChyZXN1bHQgKiAzMSkgKyBvYmouSWQuR2V0SGFzaENvZGUoKTsNCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICBpZiAob2JqLlN0YWJsZUlkICE9IG51bGwpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSAocmVzdWx0ICogMzEpICsgb2JqLlN0YWJsZUlkLkdldEhhc2hDb2RlKCk7DQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgaWYgKG9iai5BdXRvbWF0aW9uSWQgIT0gbnVsbCkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IChyZXN1bHQgKiAzMSkgKyBvYmouQXV0b21hdGlvbklkLkdldEhhc2hDb2RlKCk7DQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgaWYgKG9iai5CYXNlbGluZUlkICE9IG51bGwpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSAocmVzdWx0ICogMzEpICsgb2JqLkJhc2VsaW5lSWQuR2V0SGFzaENvZGUoKTsNCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICBpZiAob2JqLkFyY2hpdGVjdHVyZSAhPSBudWxsKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gKHJlc3VsdCAqIDMxKSArIG9iai5BcmNoaXRlY3R1cmUuR2V0SGFzaENvZGUoKTsNCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICBpZiAob2JqLlByb3BlcnRpZXMgIT0gbnVsbCkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIC8vIFVzZSB4b3IgZm9yIGRpY3Rpb25hcmllcyB0byBiZSBvcmRlci1pbmRlcGVuZGVudC4NCiAgICAgICAgICAgICAgICAgICAgaW50IHhvcl8zID0gMDsNCiAgICAgICAgICAgICAgICAgICAgZm9yZWFjaCAodmFyIHZhbHVlXzE0IGluIG9iai5Qcm9wZXJ0aWVzKQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICB4b3JfMyBePSB2YWx1ZV8xNC5LZXkuR2V0SGFzaENvZGUoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZV8xNC5WYWx1ZSAhPSBudWxsKQ0KICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhvcl8zIF49IHZhbHVlXzE0LlZhbHVlLkdldEhhc2hDb2RlKCk7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSAocmVzdWx0ICogMzEpICsgeG9yXzM7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICByZXR1cm4gcmVzdWx0Ow0KICAgICAgICB9DQogICAgfQ0KfQ==" + { + "ruleId": "CA1802", + "message": { + "text": "Field 'RuleFactory.ErrorCodeFormat' is declared as 'static readonly' but is initialized with a constant value 'JSON{0:D4}'. Mark this field as 'const' instead." }, - "hashes": [ - { - "value": "182D9BA283567E8325A72AAA0575F572", - "algorithm": "md5" - }, - { - "value": "90CB23F32D258ABFE4E8F54AFD85745C5F868E23", - "algorithm": "sha-1" - }, + "locations": [ { - "value": "77BB589BAD9020D4FC46E716E3A94203FA2F8D3B2496A00904C54F386C343F46", - "algorithm": "sha-256" + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Microsoft.Json.Schema.Validation.dll", + "uriBaseId": "$(ProjectDir)", + "index": 2 + } + }, + "logicalLocations": [ + { + "index": 115, + "fullyQualifiedName": "microsoft.json.schema.validation.dll!Microsoft.Json.Schema.Validation.RuleFactory.ErrorCodeFormat" + } + ] } - ] + ], + "properties": { + "Category": "Microsoft.Performance", + "FixCategory": "NonBreaking" + } }, - "file:///E:/src/sarif-sdk-test/src/Sarif/VersionOne/Autogenerated/SarifLogVersionOne.cs": { - "mimeType": "text/x-csharp", - "contents": { - "binary": "Ly8gQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQuICBBbGwgUmlnaHRzIFJlc2VydmVkLg0KLy8gTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlLiBTZWUgTElDRU5TRSBmaWxlIGluIHRoZSBwcm9qZWN0IHJvb3QgZm9yIGZ1bGwgbGljZW5zZSBpbmZvcm1hdGlvbi4NCg0KdXNpbmcgU3lzdGVtOw0KdXNpbmcgU3lzdGVtLkNvZGVEb20uQ29tcGlsZXI7DQp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsNCnVzaW5nIFN5c3RlbS5SdW50aW1lLlNlcmlhbGl6YXRpb247DQoNCm5hbWVzcGFjZSBNaWNyb3NvZnQuQ29kZUFuYWx5c2lzLlNhcmlmLlZlcnNpb25PbmUNCnsNCiAgICAvLy8gPHN1bW1hcnk+DQogICAgLy8vIFN0YXRpYyBBbmFseXNpcyBSZXN1bHRzIEZvcm1hdCAoU0FSSUYpIFZlcnNpb24gMS4wLjAgSlNPTiBTY2hlbWE6IGEgc3RhbmRhcmQgZm9ybWF0IGZvciB0aGUgb3V0cHV0IG9mIHN0YXRpYyBhbmFseXNpcyBhbmQgb3RoZXIgdG9vbHMuDQogICAgLy8vIDwvc3VtbWFyeT4NCiAgICBbRGF0YUNvbnRyYWN0XQ0KICAgIFtHZW5lcmF0ZWRDb2RlKCJNaWNyb3NvZnQuSnNvbi5TY2hlbWEuVG9Eb3ROZXQiLCAiMC41Mi4wLjAiKV0NCiAgICBwdWJsaWMgcGFydGlhbCBjbGFzcyBTYXJpZkxvZ1ZlcnNpb25PbmUgOiBJU2FyaWZOb2RlVmVyc2lvbk9uZQ0KICAgIHsNCiAgICAgICAgcHVibGljIHN0YXRpYyBJRXF1YWxpdHlDb21wYXJlcjxTYXJpZkxvZ1ZlcnNpb25PbmU+IFZhbHVlQ29tcGFyZXIgPT4gU2FyaWZMb2dWZXJzaW9uT25lRXF1YWxpdHlDb21wYXJlci5JbnN0YW5jZTsNCg0KICAgICAgICBwdWJsaWMgYm9vbCBWYWx1ZUVxdWFscyhTYXJpZkxvZ1ZlcnNpb25PbmUgb3RoZXIpID0+IFZhbHVlQ29tcGFyZXIuRXF1YWxzKHRoaXMsIG90aGVyKTsNCiAgICAgICAgcHVibGljIGludCBWYWx1ZUdldEhhc2hDb2RlKCkgPT4gVmFsdWVDb21wYXJlci5HZXRIYXNoQ29kZSh0aGlzKTsNCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBHZXRzIGEgdmFsdWUgaW5kaWNhdGluZyB0aGUgdHlwZSBvZiBvYmplY3QgaW1wbGVtZW50aW5nIDxzZWUgY3JlZj0iSVNhcmlmTm9kZVZlcnNpb25PbmUiIC8+Lg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICBwdWJsaWMgU2FyaWZOb2RlS2luZFZlcnNpb25PbmUgU2FyaWZOb2RlS2luZFZlcnNpb25PbmUNCiAgICAgICAgew0KICAgICAgICAgICAgZ2V0DQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgcmV0dXJuIFNhcmlmTm9kZUtpbmRWZXJzaW9uT25lLlNhcmlmTG9nVmVyc2lvbk9uZTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIFRoZSBVUkkgb2YgdGhlIEpTT04gc2NoZW1hIGNvcnJlc3BvbmRpbmcgdG8gdGhlIHZlcnNpb24uDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIFtEYXRhTWVtYmVyKE5hbWUgPSAiJHNjaGVtYSIsIElzUmVxdWlyZWQgPSBmYWxzZSwgRW1pdERlZmF1bHRWYWx1ZSA9IGZhbHNlKV0NCiAgICAgICAgcHVibGljIFVyaSBTY2hlbWFVcmkgeyBnZXQ7IHNldDsgfQ0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIFRoZSBTQVJJRiBmb3JtYXQgdmVyc2lvbiBvZiB0aGlzIGxvZyBmaWxlLg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICBbRGF0YU1lbWJlcihOYW1lID0gInZlcnNpb24iLCBJc1JlcXVpcmVkID0gdHJ1ZSldDQogICAgICAgIHB1YmxpYyBTYXJpZlZlcnNpb25WZXJzaW9uT25lIFZlcnNpb24geyBnZXQ7IHNldDsgfQ0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIFRoZSBzZXQgb2YgcnVucyBjb250YWluZWQgaW4gdGhpcyBsb2cgZmlsZS4NCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgW0RhdGFNZW1iZXIoTmFtZSA9ICJydW5zIiwgSXNSZXF1aXJlZCA9IHRydWUpXQ0KICAgICAgICBwdWJsaWMgSUxpc3Q8UnVuVmVyc2lvbk9uZT4gUnVucyB7IGdldDsgc2V0OyB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gSW5pdGlhbGl6ZXMgYSBuZXcgaW5zdGFuY2Ugb2YgdGhlIDxzZWUgY3JlZj0iU2FyaWZMb2dWZXJzaW9uT25lIiAvPiBjbGFzcy4NCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgcHVibGljIFNhcmlmTG9nVmVyc2lvbk9uZSgpDQogICAgICAgIHsNCiAgICAgICAgfQ0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIEluaXRpYWxpemVzIGEgbmV3IGluc3RhbmNlIG9mIHRoZSA8c2VlIGNyZWY9IlNhcmlmTG9nVmVyc2lvbk9uZSIgLz4gY2xhc3MgZnJvbSB0aGUgc3VwcGxpZWQgdmFsdWVzLg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICAvLy8gPHBhcmFtIG5hbWU9InNjaGVtYVVyaSI+DQogICAgICAgIC8vLyBBbiBpbml0aWFsaXphdGlvbiB2YWx1ZSBmb3IgdGhlIDxzZWUgY3JlZj0iUDogU2NoZW1hVXJpIiAvPiBwcm9wZXJ0eS4NCiAgICAgICAgLy8vIDwvcGFyYW0+DQogICAgICAgIC8vLyA8cGFyYW0gbmFtZT0idmVyc2lvbiI+DQogICAgICAgIC8vLyBBbiBpbml0aWFsaXphdGlvbiB2YWx1ZSBmb3IgdGhlIDxzZWUgY3JlZj0iUDogVmVyc2lvbiIgLz4gcHJvcGVydHkuDQogICAgICAgIC8vLyA8L3BhcmFtPg0KICAgICAgICAvLy8gPHBhcmFtIG5hbWU9InJ1bnMiPg0KICAgICAgICAvLy8gQW4gaW5pdGlhbGl6YXRpb24gdmFsdWUgZm9yIHRoZSA8c2VlIGNyZWY9IlA6IFJ1bnMiIC8+IHByb3BlcnR5Lg0KICAgICAgICAvLy8gPC9wYXJhbT4NCiAgICAgICAgcHVibGljIFNhcmlmTG9nVmVyc2lvbk9uZShVcmkgc2NoZW1hVXJpLCBTYXJpZlZlcnNpb25WZXJzaW9uT25lIHZlcnNpb24sIElFbnVtZXJhYmxlPFJ1blZlcnNpb25PbmU+IHJ1bnMpDQogICAgICAgIHsNCiAgICAgICAgICAgIEluaXQoc2NoZW1hVXJpLCB2ZXJzaW9uLCBydW5zKTsNCiAgICAgICAgfQ0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIEluaXRpYWxpemVzIGEgbmV3IGluc3RhbmNlIG9mIHRoZSA8c2VlIGNyZWY9IlNhcmlmTG9nVmVyc2lvbk9uZSIgLz4gY2xhc3MgZnJvbSB0aGUgc3BlY2lmaWVkIGluc3RhbmNlLg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICAvLy8gPHBhcmFtIG5hbWU9Im90aGVyIj4NCiAgICAgICAgLy8vIFRoZSBpbnN0YW5jZSBmcm9tIHdoaWNoIHRoZSBuZXcgaW5zdGFuY2UgaXMgdG8gYmUgaW5pdGlhbGl6ZWQuDQogICAgICAgIC8vLyA8L3BhcmFtPg0KICAgICAgICAvLy8gPGV4Y2VwdGlvbiBjcmVmPSJBcmd1bWVudE51bGxFeGNlcHRpb24iPg0KICAgICAgICAvLy8gVGhyb3duIGlmIDxwYXJhbXJlZiBuYW1lPSJvdGhlciIgLz4gaXMgbnVsbC4NCiAgICAgICAgLy8vIDwvZXhjZXB0aW9uPg0KICAgICAgICBwdWJsaWMgU2FyaWZMb2dWZXJzaW9uT25lKFNhcmlmTG9nVmVyc2lvbk9uZSBvdGhlcikNCiAgICAgICAgew0KICAgICAgICAgICAgaWYgKG90aGVyID09IG51bGwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgdGhyb3cgbmV3IEFyZ3VtZW50TnVsbEV4Y2VwdGlvbihuYW1lb2Yob3RoZXIpKTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgSW5pdChvdGhlci5TY2hlbWFVcmksIG90aGVyLlZlcnNpb24sIG90aGVyLlJ1bnMpOw0KICAgICAgICB9DQoNCiAgICAgICAgSVNhcmlmTm9kZVZlcnNpb25PbmUgSVNhcmlmTm9kZVZlcnNpb25PbmUuRGVlcENsb25lKCkNCiAgICAgICAgew0KICAgICAgICAgICAgcmV0dXJuIERlZXBDbG9uZUNvcmUoKTsNCiAgICAgICAgfQ0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIENyZWF0ZXMgYSBkZWVwIGNvcHkgb2YgdGhpcyBpbnN0YW5jZS4NCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgcHVibGljIFNhcmlmTG9nVmVyc2lvbk9uZSBEZWVwQ2xvbmUoKQ0KICAgICAgICB7DQogICAgICAgICAgICByZXR1cm4gKFNhcmlmTG9nVmVyc2lvbk9uZSlEZWVwQ2xvbmVDb3JlKCk7DQogICAgICAgIH0NCg0KICAgICAgICBwcml2YXRlIElTYXJpZk5vZGVWZXJzaW9uT25lIERlZXBDbG9uZUNvcmUoKQ0KICAgICAgICB7DQogICAgICAgICAgICByZXR1cm4gbmV3IFNhcmlmTG9nVmVyc2lvbk9uZSh0aGlzKTsNCiAgICAgICAgfQ0KDQogICAgICAgIHByaXZhdGUgdm9pZCBJbml0KFVyaSBzY2hlbWFVcmksIFNhcmlmVmVyc2lvblZlcnNpb25PbmUgdmVyc2lvbiwgSUVudW1lcmFibGU8UnVuVmVyc2lvbk9uZT4gcnVucykNCiAgICAgICAgew0KICAgICAgICAgICAgaWYgKHNjaGVtYVVyaSAhPSBudWxsKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIFNjaGVtYVVyaSA9IG5ldyBVcmkoc2NoZW1hVXJpLk9yaWdpbmFsU3RyaW5nLCBzY2hlbWFVcmkuSXNBYnNvbHV0ZVVyaSA/IFVyaUtpbmQuQWJzb2x1dGUgOiBVcmlLaW5kLlJlbGF0aXZlKTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgVmVyc2lvbiA9IHZlcnNpb247DQogICAgICAgICAgICBpZiAocnVucyAhPSBudWxsKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHZhciBkZXN0aW5hdGlvbl8wID0gbmV3IExpc3Q8UnVuVmVyc2lvbk9uZT4oKTsNCiAgICAgICAgICAgICAgICBmb3JlYWNoICh2YXIgdmFsdWVfMCBpbiBydW5zKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlXzAgPT0gbnVsbCkNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgZGVzdGluYXRpb25fMC5BZGQobnVsbCk7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgZWxzZQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICBkZXN0aW5hdGlvbl8wLkFkZChuZXcgUnVuVmVyc2lvbk9uZSh2YWx1ZV8wKSk7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICBSdW5zID0gZGVzdGluYXRpb25fMDsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgIH0NCn0=" + { + "ruleId": "CA1305", + "level": "error", + "message": { + "text": "Because the behavior of 'int.Parse(string)' could vary based on the current user's locale settings, replace this call in 'RuleFactory.GetRuleFromRuleId(string)' with a call to 'int.Parse(string, IFormatProvider)'. If the result of 'int.Parse(string, IFormatProvider)' will be based on input from the user, specify 'CultureInfo.CurrentCulture' as the 'IFormatProvider' parameter. Otherwise, if the result will based on input stored and accessed by software, such as when it is loaded from disk or from a database, specify 'CultureInfo.InvariantCulture'.", + "id": "IFormatProviderAlternate" }, - "hashes": [ - { - "value": "32787796AD8EB311B122F93B86EE4A0D", - "algorithm": "md5" - }, - { - "value": "6F04CC8BA1B9C8F3ED4F568435A0F43EDE545377", - "algorithm": "sha-1" - }, + "locations": [ { - "value": "D8508319280D2BEB3FD416DCC9CD7D886BBFBFA5CABDA8FEFCA2B5B5A016F4E3", - "algorithm": "sha-256" + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Microsoft.Json.Schema.Validation.dll", + "uriBaseId": "$(ProjectDir)", + "index": 2 + } + }, + "logicalLocations": [ + { + "index": 116, + "fullyQualifiedName": "microsoft.json.schema.validation.dll!Microsoft.Json.Schema.Validation.RuleFactory.GetRuleFromRuleId(System.String)" + } + ] } - ] + ], + "partialFingerprints": { + "UniqueId": "System.Int32.Parse(System.String)#IFormatProviderAlternate" + }, + "properties": { + "Category": "Microsoft.Globalization", + "FixCategory": "NonBreaking" + } }, - "file:///E:/src/sarif-sdk-test/src/Sarif/VersionOne/Autogenerated/SarifRewritingVisitorVersionOne.cs": { - "mimeType": "text/x-csharp", - "contents": { - "binary": "Ly8gQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQuICBBbGwgUmlnaHRzIFJlc2VydmVkLg0KLy8gTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlLiBTZWUgTElDRU5TRSBmaWxlIGluIHRoZSBwcm9qZWN0IHJvb3QgZm9yIGZ1bGwgbGljZW5zZSBpbmZvcm1hdGlvbi4NCg0KdXNpbmcgU3lzdGVtOw0KdXNpbmcgU3lzdGVtLkNvZGVEb20uQ29tcGlsZXI7DQp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsNCnVzaW5nIFN5c3RlbS5MaW5xOw0KDQpuYW1lc3BhY2UgTWljcm9zb2Z0LkNvZGVBbmFseXNpcy5TYXJpZi5WZXJzaW9uT25lDQp7DQogICAgLy8vIDxzdW1tYXJ5Pg0KICAgIC8vLyBSZXdyaXRpbmcgdmlzaXRvciBmb3IgdGhlIFNhcmlmIG9iamVjdCBtb2RlbC4NCiAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgIFtHZW5lcmF0ZWRDb2RlKCJNaWNyb3NvZnQuSnNvbi5TY2hlbWEuVG9Eb3ROZXQiLCAiMC41Mi4wLjAiKV0NCiAgICBwdWJsaWMgYWJzdHJhY3QgY2xhc3MgU2FyaWZSZXdyaXRpbmdWaXNpdG9yVmVyc2lvbk9uZQ0KICAgIHsNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gU3RhcnRzIGEgcmV3cml0aW5nIHZpc2l0IG9mIGEgbm9kZSBpbiB0aGUgU2FyaWYgb2JqZWN0IG1vZGVsLg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICAvLy8gPHBhcmFtIG5hbWU9Im5vZGUiPg0KICAgICAgICAvLy8gVGhlIG5vZGUgdG8gcmV3cml0ZS4NCiAgICAgICAgLy8vIDwvcGFyYW0+DQogICAgICAgIC8vLyA8cmV0dXJucz4NCiAgICAgICAgLy8vIEEgcmV3cml0dGVuIGluc3RhbmNlIG9mIHRoZSBub2RlLg0KICAgICAgICAvLy8gPC9yZXR1cm5zPg0KICAgICAgICBwdWJsaWMgdmlydHVhbCBvYmplY3QgVmlzaXQoSVNhcmlmTm9kZVZlcnNpb25PbmUgbm9kZSkNCiAgICAgICAgew0KICAgICAgICAgICAgcmV0dXJuIHRoaXMuVmlzaXRBY3R1YWwobm9kZSk7DQogICAgICAgIH0NCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBWaXNpdHMgYW5kIHJld3JpdGVzIGEgbm9kZSBpbiB0aGUgU2FyaWYgb2JqZWN0IG1vZGVsLg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICAvLy8gPHBhcmFtIG5hbWU9Im5vZGUiPg0KICAgICAgICAvLy8gVGhlIG5vZGUgdG8gcmV3cml0ZS4NCiAgICAgICAgLy8vIDwvcGFyYW0+DQogICAgICAgIC8vLyA8cmV0dXJucz4NCiAgICAgICAgLy8vIEEgcmV3cml0dGVuIGluc3RhbmNlIG9mIHRoZSBub2RlLg0KICAgICAgICAvLy8gPC9yZXR1cm5zPg0KICAgICAgICBwdWJsaWMgdmlydHVhbCBvYmplY3QgVmlzaXRBY3R1YWwoSVNhcmlmTm9kZVZlcnNpb25PbmUgbm9kZSkNCiAgICAgICAgew0KICAgICAgICAgICAgaWYgKG5vZGUgPT0gbnVsbCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgQXJndW1lbnROdWxsRXhjZXB0aW9uKCJub2RlIik7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIHN3aXRjaCAobm9kZS5TYXJpZk5vZGVLaW5kVmVyc2lvbk9uZSkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBjYXNlIFNhcmlmTm9kZUtpbmRWZXJzaW9uT25lLkFubm90YXRlZENvZGVMb2NhdGlvblZlcnNpb25PbmU6DQogICAgICAgICAgICAgICAgICAgIHJldHVybiBWaXNpdEFubm90YXRlZENvZGVMb2NhdGlvblZlcnNpb25PbmUoKEFubm90YXRlZENvZGVMb2NhdGlvblZlcnNpb25PbmUpbm9kZSk7DQogICAgICAgICAgICAgICAgY2FzZSBTYXJpZk5vZGVLaW5kVmVyc2lvbk9uZS5Bbm5vdGF0aW9uVmVyc2lvbk9uZToNCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFZpc2l0QW5ub3RhdGlvblZlcnNpb25PbmUoKEFubm90YXRpb25WZXJzaW9uT25lKW5vZGUpOw0KICAgICAgICAgICAgICAgIGNhc2UgU2FyaWZOb2RlS2luZFZlcnNpb25PbmUuQ29kZUZsb3dWZXJzaW9uT25lOg0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gVmlzaXRDb2RlRmxvd1ZlcnNpb25PbmUoKENvZGVGbG93VmVyc2lvbk9uZSlub2RlKTsNCiAgICAgICAgICAgICAgICBjYXNlIFNhcmlmTm9kZUtpbmRWZXJzaW9uT25lLkV4Y2VwdGlvbkRhdGFWZXJzaW9uT25lOg0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gVmlzaXRFeGNlcHRpb25EYXRhVmVyc2lvbk9uZSgoRXhjZXB0aW9uRGF0YVZlcnNpb25PbmUpbm9kZSk7DQogICAgICAgICAgICAgICAgY2FzZSBTYXJpZk5vZGVLaW5kVmVyc2lvbk9uZS5GaWxlQ2hhbmdlVmVyc2lvbk9uZToNCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFZpc2l0RmlsZUNoYW5nZVZlcnNpb25PbmUoKEZpbGVDaGFuZ2VWZXJzaW9uT25lKW5vZGUpOw0KICAgICAgICAgICAgICAgIGNhc2UgU2FyaWZOb2RlS2luZFZlcnNpb25PbmUuRmlsZURhdGFWZXJzaW9uT25lOg0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gVmlzaXRGaWxlRGF0YVZlcnNpb25PbmUoKEZpbGVEYXRhVmVyc2lvbk9uZSlub2RlKTsNCiAgICAgICAgICAgICAgICBjYXNlIFNhcmlmTm9kZUtpbmRWZXJzaW9uT25lLkZpeFZlcnNpb25PbmU6DQogICAgICAgICAgICAgICAgICAgIHJldHVybiBWaXNpdEZpeFZlcnNpb25PbmUoKEZpeFZlcnNpb25PbmUpbm9kZSk7DQogICAgICAgICAgICAgICAgY2FzZSBTYXJpZk5vZGVLaW5kVmVyc2lvbk9uZS5Gb3JtYXR0ZWRSdWxlTWVzc2FnZVZlcnNpb25PbmU6DQogICAgICAgICAgICAgICAgICAgIHJldHVybiBWaXNpdEZvcm1hdHRlZFJ1bGVNZXNzYWdlVmVyc2lvbk9uZSgoRm9ybWF0dGVkUnVsZU1lc3NhZ2VWZXJzaW9uT25lKW5vZGUpOw0KICAgICAgICAgICAgICAgIGNhc2UgU2FyaWZOb2RlS2luZFZlcnNpb25PbmUuSGFzaFZlcnNpb25PbmU6DQogICAgICAgICAgICAgICAgICAgIHJldHVybiBWaXNpdEhhc2hWZXJzaW9uT25lKChIYXNoVmVyc2lvbk9uZSlub2RlKTsNCiAgICAgICAgICAgICAgICBjYXNlIFNhcmlmTm9kZUtpbmRWZXJzaW9uT25lLkludm9jYXRpb25WZXJzaW9uT25lOg0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gVmlzaXRJbnZvY2F0aW9uVmVyc2lvbk9uZSgoSW52b2NhdGlvblZlcnNpb25PbmUpbm9kZSk7DQogICAgICAgICAgICAgICAgY2FzZSBTYXJpZk5vZGVLaW5kVmVyc2lvbk9uZS5Mb2NhdGlvblZlcnNpb25PbmU6DQogICAgICAgICAgICAgICAgICAgIHJldHVybiBWaXNpdExvY2F0aW9uVmVyc2lvbk9uZSgoTG9jYXRpb25WZXJzaW9uT25lKW5vZGUpOw0KICAgICAgICAgICAgICAgIGNhc2UgU2FyaWZOb2RlS2luZFZlcnNpb25PbmUuTG9naWNhbExvY2F0aW9uVmVyc2lvbk9uZToNCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFZpc2l0TG9naWNhbExvY2F0aW9uVmVyc2lvbk9uZSgoTG9naWNhbExvY2F0aW9uVmVyc2lvbk9uZSlub2RlKTsNCiAgICAgICAgICAgICAgICBjYXNlIFNhcmlmTm9kZUtpbmRWZXJzaW9uT25lLk5vdGlmaWNhdGlvblZlcnNpb25PbmU6DQogICAgICAgICAgICAgICAgICAgIHJldHVybiBWaXNpdE5vdGlmaWNhdGlvblZlcnNpb25PbmUoKE5vdGlmaWNhdGlvblZlcnNpb25PbmUpbm9kZSk7DQogICAgICAgICAgICAgICAgY2FzZSBTYXJpZk5vZGVLaW5kVmVyc2lvbk9uZS5QaHlzaWNhbExvY2F0aW9uVmVyc2lvbk9uZToNCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFZpc2l0UGh5c2ljYWxMb2NhdGlvblZlcnNpb25PbmUoKFBoeXNpY2FsTG9jYXRpb25WZXJzaW9uT25lKW5vZGUpOw0KICAgICAgICAgICAgICAgIGNhc2UgU2FyaWZOb2RlS2luZFZlcnNpb25PbmUuUmVnaW9uVmVyc2lvbk9uZToNCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFZpc2l0UmVnaW9uVmVyc2lvbk9uZSgoUmVnaW9uVmVyc2lvbk9uZSlub2RlKTsNCiAgICAgICAgICAgICAgICBjYXNlIFNhcmlmTm9kZUtpbmRWZXJzaW9uT25lLlJlcGxhY2VtZW50VmVyc2lvbk9uZToNCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFZpc2l0UmVwbGFjZW1lbnRWZXJzaW9uT25lKChSZXBsYWNlbWVudFZlcnNpb25PbmUpbm9kZSk7DQogICAgICAgICAgICAgICAgY2FzZSBTYXJpZk5vZGVLaW5kVmVyc2lvbk9uZS5SZXN1bHRWZXJzaW9uT25lOg0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gVmlzaXRSZXN1bHRWZXJzaW9uT25lKChSZXN1bHRWZXJzaW9uT25lKW5vZGUpOw0KICAgICAgICAgICAgICAgIGNhc2UgU2FyaWZOb2RlS2luZFZlcnNpb25PbmUuUnVsZVZlcnNpb25PbmU6DQogICAgICAgICAgICAgICAgICAgIHJldHVybiBWaXNpdFJ1bGVWZXJzaW9uT25lKChSdWxlVmVyc2lvbk9uZSlub2RlKTsNCiAgICAgICAgICAgICAgICBjYXNlIFNhcmlmTm9kZUtpbmRWZXJzaW9uT25lLlJ1blZlcnNpb25PbmU6DQogICAgICAgICAgICAgICAgICAgIHJldHVybiBWaXNpdFJ1blZlcnNpb25PbmUoKFJ1blZlcnNpb25PbmUpbm9kZSk7DQogICAgICAgICAgICAgICAgY2FzZSBTYXJpZk5vZGVLaW5kVmVyc2lvbk9uZS5TYXJpZkxvZ1ZlcnNpb25PbmU6DQogICAgICAgICAgICAgICAgICAgIHJldHVybiBWaXNpdFNhcmlmTG9nVmVyc2lvbk9uZSgoU2FyaWZMb2dWZXJzaW9uT25lKW5vZGUpOw0KICAgICAgICAgICAgICAgIGNhc2UgU2FyaWZOb2RlS2luZFZlcnNpb25PbmUuU3RhY2tGcmFtZVZlcnNpb25PbmU6DQogICAgICAgICAgICAgICAgICAgIHJldHVybiBWaXNpdFN0YWNrRnJhbWVWZXJzaW9uT25lKChTdGFja0ZyYW1lVmVyc2lvbk9uZSlub2RlKTsNCiAgICAgICAgICAgICAgICBjYXNlIFNhcmlmTm9kZUtpbmRWZXJzaW9uT25lLlN0YWNrVmVyc2lvbk9uZToNCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFZpc2l0U3RhY2tWZXJzaW9uT25lKChTdGFja1ZlcnNpb25PbmUpbm9kZSk7DQogICAgICAgICAgICAgICAgY2FzZSBTYXJpZk5vZGVLaW5kVmVyc2lvbk9uZS5Ub29sVmVyc2lvbk9uZToNCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFZpc2l0VG9vbFZlcnNpb25PbmUoKFRvb2xWZXJzaW9uT25lKW5vZGUpOw0KICAgICAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgICAgIHJldHVybiBub2RlOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICAgICAgcHJpdmF0ZSBUIFZpc2l0TnVsbENoZWNrZWQ8VD4oVCBub2RlKSB3aGVyZSBUIDogY2xhc3MsIElTYXJpZk5vZGVWZXJzaW9uT25lDQogICAgICAgIHsNCiAgICAgICAgICAgIGlmIChub2RlID09IG51bGwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIHJldHVybiAoVClWaXNpdChub2RlKTsNCiAgICAgICAgfQ0KDQogICAgICAgIHB1YmxpYyB2aXJ0dWFsIEFubm90YXRlZENvZGVMb2NhdGlvblZlcnNpb25PbmUgVmlzaXRBbm5vdGF0ZWRDb2RlTG9jYXRpb25WZXJzaW9uT25lKEFubm90YXRlZENvZGVMb2NhdGlvblZlcnNpb25PbmUgbm9kZSkNCiAgICAgICAgew0KICAgICAgICAgICAgaWYgKG5vZGUgIT0gbnVsbCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBub2RlLlBoeXNpY2FsTG9jYXRpb24gPSBWaXNpdE51bGxDaGVja2VkKG5vZGUuUGh5c2ljYWxMb2NhdGlvbik7DQogICAgICAgICAgICAgICAgaWYgKG5vZGUuQW5ub3RhdGlvbnMgIT0gbnVsbCkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIGZvciAoaW50IGluZGV4XzAgPSAwOyBpbmRleF8wIDwgbm9kZS5Bbm5vdGF0aW9ucy5Db3VudDsgKytpbmRleF8wKQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICBub2RlLkFubm90YXRpb25zW2luZGV4XzBdID0gVmlzaXROdWxsQ2hlY2tlZChub2RlLkFubm90YXRpb25zW2luZGV4XzBdKTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgcmV0dXJuIG5vZGU7DQogICAgICAgIH0NCg0KICAgICAgICBwdWJsaWMgdmlydHVhbCBBbm5vdGF0aW9uVmVyc2lvbk9uZSBWaXNpdEFubm90YXRpb25WZXJzaW9uT25lKEFubm90YXRpb25WZXJzaW9uT25lIG5vZGUpDQogICAgICAgIHsNCiAgICAgICAgICAgIGlmIChub2RlICE9IG51bGwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgaWYgKG5vZGUuTG9jYXRpb25zICE9IG51bGwpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBmb3IgKGludCBpbmRleF8wID0gMDsgaW5kZXhfMCA8IG5vZGUuTG9jYXRpb25zLkNvdW50OyArK2luZGV4XzApDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIG5vZGUuTG9jYXRpb25zW2luZGV4XzBdID0gVmlzaXROdWxsQ2hlY2tlZChub2RlLkxvY2F0aW9uc1tpbmRleF8wXSk7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIHJldHVybiBub2RlOw0KICAgICAgICB9DQoNCiAgICAgICAgcHVibGljIHZpcnR1YWwgQ29kZUZsb3dWZXJzaW9uT25lIFZpc2l0Q29kZUZsb3dWZXJzaW9uT25lKENvZGVGbG93VmVyc2lvbk9uZSBub2RlKQ0KICAgICAgICB7DQogICAgICAgICAgICBpZiAobm9kZSAhPSBudWxsKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIGlmIChub2RlLkxvY2F0aW9ucyAhPSBudWxsKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgZm9yIChpbnQgaW5kZXhfMCA9IDA7IGluZGV4XzAgPCBub2RlLkxvY2F0aW9ucy5Db3VudDsgKytpbmRleF8wKQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICBub2RlLkxvY2F0aW9uc1tpbmRleF8wXSA9IFZpc2l0TnVsbENoZWNrZWQobm9kZS5Mb2NhdGlvbnNbaW5kZXhfMF0pOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICByZXR1cm4gbm9kZTsNCiAgICAgICAgfQ0KDQogICAgICAgIHB1YmxpYyB2aXJ0dWFsIEV4Y2VwdGlvbkRhdGFWZXJzaW9uT25lIFZpc2l0RXhjZXB0aW9uRGF0YVZlcnNpb25PbmUoRXhjZXB0aW9uRGF0YVZlcnNpb25PbmUgbm9kZSkNCiAgICAgICAgew0KICAgICAgICAgICAgaWYgKG5vZGUgIT0gbnVsbCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBub2RlLlN0YWNrID0gVmlzaXROdWxsQ2hlY2tlZChub2RlLlN0YWNrKTsNCiAgICAgICAgICAgICAgICBpZiAobm9kZS5Jbm5lckV4Y2VwdGlvbnMgIT0gbnVsbCkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIGZvciAoaW50IGluZGV4XzAgPSAwOyBpbmRleF8wIDwgbm9kZS5Jbm5lckV4Y2VwdGlvbnMuQ291bnQ7ICsraW5kZXhfMCkNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgbm9kZS5Jbm5lckV4Y2VwdGlvbnNbaW5kZXhfMF0gPSBWaXNpdE51bGxDaGVja2VkKG5vZGUuSW5uZXJFeGNlcHRpb25zW2luZGV4XzBdKTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgcmV0dXJuIG5vZGU7DQogICAgICAgIH0NCg0KICAgICAgICBwdWJsaWMgdmlydHVhbCBGaWxlQ2hhbmdlVmVyc2lvbk9uZSBWaXNpdEZpbGVDaGFuZ2VWZXJzaW9uT25lKEZpbGVDaGFuZ2VWZXJzaW9uT25lIG5vZGUpDQogICAgICAgIHsNCiAgICAgICAgICAgIGlmIChub2RlICE9IG51bGwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgaWYgKG5vZGUuUmVwbGFjZW1lbnRzICE9IG51bGwpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBmb3IgKGludCBpbmRleF8wID0gMDsgaW5kZXhfMCA8IG5vZGUuUmVwbGFjZW1lbnRzLkNvdW50OyArK2luZGV4XzApDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIG5vZGUuUmVwbGFjZW1lbnRzW2luZGV4XzBdID0gVmlzaXROdWxsQ2hlY2tlZChub2RlLlJlcGxhY2VtZW50c1tpbmRleF8wXSk7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIHJldHVybiBub2RlOw0KICAgICAgICB9DQoNCiAgICAgICAgcHVibGljIHZpcnR1YWwgRmlsZURhdGFWZXJzaW9uT25lIFZpc2l0RmlsZURhdGFWZXJzaW9uT25lKEZpbGVEYXRhVmVyc2lvbk9uZSBub2RlKQ0KICAgICAgICB7DQogICAgICAgICAgICBpZiAobm9kZSAhPSBudWxsKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIGlmIChub2RlLkhhc2hlcyAhPSBudWxsKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgZm9yIChpbnQgaW5kZXhfMCA9IDA7IGluZGV4XzAgPCBub2RlLkhhc2hlcy5Db3VudDsgKytpbmRleF8wKQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICBub2RlLkhhc2hlc1tpbmRleF8wXSA9IFZpc2l0TnVsbENoZWNrZWQobm9kZS5IYXNoZXNbaW5kZXhfMF0pOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICByZXR1cm4gbm9kZTsNCiAgICAgICAgfQ0KDQogICAgICAgIHB1YmxpYyB2aXJ0dWFsIEZpeFZlcnNpb25PbmUgVmlzaXRGaXhWZXJzaW9uT25lKEZpeFZlcnNpb25PbmUgbm9kZSkNCiAgICAgICAgew0KICAgICAgICAgICAgaWYgKG5vZGUgIT0gbnVsbCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBpZiAobm9kZS5GaWxlQ2hhbmdlcyAhPSBudWxsKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgZm9yIChpbnQgaW5kZXhfMCA9IDA7IGluZGV4XzAgPCBub2RlLkZpbGVDaGFuZ2VzLkNvdW50OyArK2luZGV4XzApDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIG5vZGUuRmlsZUNoYW5nZXNbaW5kZXhfMF0gPSBWaXNpdE51bGxDaGVja2VkKG5vZGUuRmlsZUNoYW5nZXNbaW5kZXhfMF0pOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICByZXR1cm4gbm9kZTsNCiAgICAgICAgfQ0KDQogICAgICAgIHB1YmxpYyB2aXJ0dWFsIEZvcm1hdHRlZFJ1bGVNZXNzYWdlVmVyc2lvbk9uZSBWaXNpdEZvcm1hdHRlZFJ1bGVNZXNzYWdlVmVyc2lvbk9uZShGb3JtYXR0ZWRSdWxlTWVzc2FnZVZlcnNpb25PbmUgbm9kZSkNCiAgICAgICAgew0KICAgICAgICAgICAgaWYgKG5vZGUgIT0gbnVsbCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgcmV0dXJuIG5vZGU7DQogICAgICAgIH0NCg0KICAgICAgICBwdWJsaWMgdmlydHVhbCBIYXNoVmVyc2lvbk9uZSBWaXNpdEhhc2hWZXJzaW9uT25lKEhhc2hWZXJzaW9uT25lIG5vZGUpDQogICAgICAgIHsNCiAgICAgICAgICAgIGlmIChub2RlICE9IG51bGwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIHJldHVybiBub2RlOw0KICAgICAgICB9DQoNCiAgICAgICAgcHVibGljIHZpcnR1YWwgSW52b2NhdGlvblZlcnNpb25PbmUgVmlzaXRJbnZvY2F0aW9uVmVyc2lvbk9uZShJbnZvY2F0aW9uVmVyc2lvbk9uZSBub2RlKQ0KICAgICAgICB7DQogICAgICAgICAgICBpZiAobm9kZSAhPSBudWxsKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICByZXR1cm4gbm9kZTsNCiAgICAgICAgfQ0KDQogICAgICAgIHB1YmxpYyB2aXJ0dWFsIExvY2F0aW9uVmVyc2lvbk9uZSBWaXNpdExvY2F0aW9uVmVyc2lvbk9uZShMb2NhdGlvblZlcnNpb25PbmUgbm9kZSkNCiAgICAgICAgew0KICAgICAgICAgICAgaWYgKG5vZGUgIT0gbnVsbCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBub2RlLkFuYWx5c2lzVGFyZ2V0ID0gVmlzaXROdWxsQ2hlY2tlZChub2RlLkFuYWx5c2lzVGFyZ2V0KTsNCiAgICAgICAgICAgICAgICBub2RlLlJlc3VsdEZpbGUgPSBWaXNpdE51bGxDaGVja2VkKG5vZGUuUmVzdWx0RmlsZSk7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIHJldHVybiBub2RlOw0KICAgICAgICB9DQoNCiAgICAgICAgcHVibGljIHZpcnR1YWwgTG9naWNhbExvY2F0aW9uVmVyc2lvbk9uZSBWaXNpdExvZ2ljYWxMb2NhdGlvblZlcnNpb25PbmUoTG9naWNhbExvY2F0aW9uVmVyc2lvbk9uZSBub2RlKQ0KICAgICAgICB7DQogICAgICAgICAgICBpZiAobm9kZSAhPSBudWxsKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICByZXR1cm4gbm9kZTsNCiAgICAgICAgfQ0KDQogICAgICAgIHB1YmxpYyB2aXJ0dWFsIE5vdGlmaWNhdGlvblZlcnNpb25PbmUgVmlzaXROb3RpZmljYXRpb25WZXJzaW9uT25lKE5vdGlmaWNhdGlvblZlcnNpb25PbmUgbm9kZSkNCiAgICAgICAgew0KICAgICAgICAgICAgaWYgKG5vZGUgIT0gbnVsbCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBub2RlLlBoeXNpY2FsTG9jYXRpb24gPSBWaXNpdE51bGxDaGVja2VkKG5vZGUuUGh5c2ljYWxMb2NhdGlvbik7DQogICAgICAgICAgICAgICAgbm9kZS5FeGNlcHRpb24gPSBWaXNpdE51bGxDaGVja2VkKG5vZGUuRXhjZXB0aW9uKTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgcmV0dXJuIG5vZGU7DQogICAgICAgIH0NCg0KICAgICAgICBwdWJsaWMgdmlydHVhbCBQaHlzaWNhbExvY2F0aW9uVmVyc2lvbk9uZSBWaXNpdFBoeXNpY2FsTG9jYXRpb25WZXJzaW9uT25lKFBoeXNpY2FsTG9jYXRpb25WZXJzaW9uT25lIG5vZGUpDQogICAgICAgIHsNCiAgICAgICAgICAgIGlmIChub2RlICE9IG51bGwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgbm9kZS5SZWdpb24gPSBWaXNpdE51bGxDaGVja2VkKG5vZGUuUmVnaW9uKTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgcmV0dXJuIG5vZGU7DQogICAgICAgIH0NCg0KICAgICAgICBwdWJsaWMgdmlydHVhbCBSZWdpb25WZXJzaW9uT25lIFZpc2l0UmVnaW9uVmVyc2lvbk9uZShSZWdpb25WZXJzaW9uT25lIG5vZGUpDQogICAgICAgIHsNCiAgICAgICAgICAgIGlmIChub2RlICE9IG51bGwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIHJldHVybiBub2RlOw0KICAgICAgICB9DQoNCiAgICAgICAgcHVibGljIHZpcnR1YWwgUmVwbGFjZW1lbnRWZXJzaW9uT25lIFZpc2l0UmVwbGFjZW1lbnRWZXJzaW9uT25lKFJlcGxhY2VtZW50VmVyc2lvbk9uZSBub2RlKQ0KICAgICAgICB7DQogICAgICAgICAgICBpZiAobm9kZSAhPSBudWxsKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICByZXR1cm4gbm9kZTsNCiAgICAgICAgfQ0KDQogICAgICAgIHB1YmxpYyB2aXJ0dWFsIFJlc3VsdFZlcnNpb25PbmUgVmlzaXRSZXN1bHRWZXJzaW9uT25lKFJlc3VsdFZlcnNpb25PbmUgbm9kZSkNCiAgICAgICAgew0KICAgICAgICAgICAgaWYgKG5vZGUgIT0gbnVsbCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBub2RlLkZvcm1hdHRlZFJ1bGVNZXNzYWdlID0gVmlzaXROdWxsQ2hlY2tlZChub2RlLkZvcm1hdHRlZFJ1bGVNZXNzYWdlKTsNCiAgICAgICAgICAgICAgICBpZiAobm9kZS5Mb2NhdGlvbnMgIT0gbnVsbCkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIGZvciAoaW50IGluZGV4XzAgPSAwOyBpbmRleF8wIDwgbm9kZS5Mb2NhdGlvbnMuQ291bnQ7ICsraW5kZXhfMCkNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgbm9kZS5Mb2NhdGlvbnNbaW5kZXhfMF0gPSBWaXNpdE51bGxDaGVja2VkKG5vZGUuTG9jYXRpb25zW2luZGV4XzBdKTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgIGlmIChub2RlLlN0YWNrcyAhPSBudWxsKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgZm9yIChpbnQgaW5kZXhfMCA9IDA7IGluZGV4XzAgPCBub2RlLlN0YWNrcy5Db3VudDsgKytpbmRleF8wKQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICBub2RlLlN0YWNrc1tpbmRleF8wXSA9IFZpc2l0TnVsbENoZWNrZWQobm9kZS5TdGFja3NbaW5kZXhfMF0pOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgaWYgKG5vZGUuQ29kZUZsb3dzICE9IG51bGwpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBmb3IgKGludCBpbmRleF8wID0gMDsgaW5kZXhfMCA8IG5vZGUuQ29kZUZsb3dzLkNvdW50OyArK2luZGV4XzApDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIG5vZGUuQ29kZUZsb3dzW2luZGV4XzBdID0gVmlzaXROdWxsQ2hlY2tlZChub2RlLkNvZGVGbG93c1tpbmRleF8wXSk7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICBpZiAobm9kZS5SZWxhdGVkTG9jYXRpb25zICE9IG51bGwpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBmb3IgKGludCBpbmRleF8wID0gMDsgaW5kZXhfMCA8IG5vZGUuUmVsYXRlZExvY2F0aW9ucy5Db3VudDsgKytpbmRleF8wKQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICBub2RlLlJlbGF0ZWRMb2NhdGlvbnNbaW5kZXhfMF0gPSBWaXNpdE51bGxDaGVja2VkKG5vZGUuUmVsYXRlZExvY2F0aW9uc1tpbmRleF8wXSk7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICBpZiAobm9kZS5GaXhlcyAhPSBudWxsKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgZm9yIChpbnQgaW5kZXhfMCA9IDA7IGluZGV4XzAgPCBub2RlLkZpeGVzLkNvdW50OyArK2luZGV4XzApDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIG5vZGUuRml4ZXNbaW5kZXhfMF0gPSBWaXNpdE51bGxDaGVja2VkKG5vZGUuRml4ZXNbaW5kZXhfMF0pOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICByZXR1cm4gbm9kZTsNCiAgICAgICAgfQ0KDQogICAgICAgIHB1YmxpYyB2aXJ0dWFsIFJ1bGVWZXJzaW9uT25lIFZpc2l0UnVsZVZlcnNpb25PbmUoUnVsZVZlcnNpb25PbmUgbm9kZSkNCiAgICAgICAgew0KICAgICAgICAgICAgaWYgKG5vZGUgIT0gbnVsbCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgcmV0dXJuIG5vZGU7DQogICAgICAgIH0NCg0KICAgICAgICBwdWJsaWMgdmlydHVhbCBSdW5WZXJzaW9uT25lIFZpc2l0UnVuVmVyc2lvbk9uZShSdW5WZXJzaW9uT25lIG5vZGUpDQogICAgICAgIHsNCiAgICAgICAgICAgIGlmIChub2RlICE9IG51bGwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgbm9kZS5Ub29sID0gVmlzaXROdWxsQ2hlY2tlZChub2RlLlRvb2wpOw0KICAgICAgICAgICAgICAgIG5vZGUuSW52b2NhdGlvbiA9IFZpc2l0TnVsbENoZWNrZWQobm9kZS5JbnZvY2F0aW9uKTsNCiAgICAgICAgICAgICAgICBpZiAobm9kZS5GaWxlcyAhPSBudWxsKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGtleXMgPSBub2RlLkZpbGVzLktleXMuVG9BcnJheSgpOw0KICAgICAgICAgICAgICAgICAgICBmb3JlYWNoICh2YXIga2V5IGluIGtleXMpDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciB2YWx1ZSA9IG5vZGUuRmlsZXNba2V5XTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZSAhPSBudWxsKQ0KICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vZGUuRmlsZXNba2V5XSA9IFZpc2l0TnVsbENoZWNrZWQodmFsdWUpOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgaWYgKG5vZGUuTG9naWNhbExvY2F0aW9ucyAhPSBudWxsKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGtleXMgPSBub2RlLkxvZ2ljYWxMb2NhdGlvbnMuS2V5cy5Ub0FycmF5KCk7DQogICAgICAgICAgICAgICAgICAgIGZvcmVhY2ggKHZhciBrZXkgaW4ga2V5cykNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHZhbHVlID0gbm9kZS5Mb2dpY2FsTG9jYXRpb25zW2tleV07DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWUgIT0gbnVsbCkNCiAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBub2RlLkxvZ2ljYWxMb2NhdGlvbnNba2V5XSA9IFZpc2l0TnVsbENoZWNrZWQodmFsdWUpOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgaWYgKG5vZGUuUmVzdWx0cyAhPSBudWxsKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgZm9yIChpbnQgaW5kZXhfMCA9IDA7IGluZGV4XzAgPCBub2RlLlJlc3VsdHMuQ291bnQ7ICsraW5kZXhfMCkNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgbm9kZS5SZXN1bHRzW2luZGV4XzBdID0gVmlzaXROdWxsQ2hlY2tlZChub2RlLlJlc3VsdHNbaW5kZXhfMF0pOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgaWYgKG5vZGUuVG9vbE5vdGlmaWNhdGlvbnMgIT0gbnVsbCkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIGZvciAoaW50IGluZGV4XzAgPSAwOyBpbmRleF8wIDwgbm9kZS5Ub29sTm90aWZpY2F0aW9ucy5Db3VudDsgKytpbmRleF8wKQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICBub2RlLlRvb2xOb3RpZmljYXRpb25zW2luZGV4XzBdID0gVmlzaXROdWxsQ2hlY2tlZChub2RlLlRvb2xOb3RpZmljYXRpb25zW2luZGV4XzBdKTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgIGlmIChub2RlLkNvbmZpZ3VyYXRpb25Ob3RpZmljYXRpb25zICE9IG51bGwpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBmb3IgKGludCBpbmRleF8wID0gMDsgaW5kZXhfMCA8IG5vZGUuQ29uZmlndXJhdGlvbk5vdGlmaWNhdGlvbnMuQ291bnQ7ICsraW5kZXhfMCkNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgbm9kZS5Db25maWd1cmF0aW9uTm90aWZpY2F0aW9uc1tpbmRleF8wXSA9IFZpc2l0TnVsbENoZWNrZWQobm9kZS5Db25maWd1cmF0aW9uTm90aWZpY2F0aW9uc1tpbmRleF8wXSk7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICBpZiAobm9kZS5SdWxlcyAhPSBudWxsKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGtleXMgPSBub2RlLlJ1bGVzLktleXMuVG9BcnJheSgpOw0KICAgICAgICAgICAgICAgICAgICBmb3JlYWNoICh2YXIga2V5IGluIGtleXMpDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciB2YWx1ZSA9IG5vZGUuUnVsZXNba2V5XTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZSAhPSBudWxsKQ0KICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vZGUuUnVsZXNba2V5XSA9IFZpc2l0TnVsbENoZWNrZWQodmFsdWUpOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICByZXR1cm4gbm9kZTsNCiAgICAgICAgfQ0KDQogICAgICAgIHB1YmxpYyB2aXJ0dWFsIFNhcmlmTG9nVmVyc2lvbk9uZSBWaXNpdFNhcmlmTG9nVmVyc2lvbk9uZShTYXJpZkxvZ1ZlcnNpb25PbmUgbm9kZSkNCiAgICAgICAgew0KICAgICAgICAgICAgaWYgKG5vZGUgIT0gbnVsbCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBpZiAobm9kZS5SdW5zICE9IG51bGwpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBmb3IgKGludCBpbmRleF8wID0gMDsgaW5kZXhfMCA8IG5vZGUuUnVucy5Db3VudDsgKytpbmRleF8wKQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICBub2RlLlJ1bnNbaW5kZXhfMF0gPSBWaXNpdE51bGxDaGVja2VkKG5vZGUuUnVuc1tpbmRleF8wXSk7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIHJldHVybiBub2RlOw0KICAgICAgICB9DQoNCiAgICAgICAgcHVibGljIHZpcnR1YWwgU3RhY2tGcmFtZVZlcnNpb25PbmUgVmlzaXRTdGFja0ZyYW1lVmVyc2lvbk9uZShTdGFja0ZyYW1lVmVyc2lvbk9uZSBub2RlKQ0KICAgICAgICB7DQogICAgICAgICAgICBpZiAobm9kZSAhPSBudWxsKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICByZXR1cm4gbm9kZTsNCiAgICAgICAgfQ0KDQogICAgICAgIHB1YmxpYyB2aXJ0dWFsIFN0YWNrVmVyc2lvbk9uZSBWaXNpdFN0YWNrVmVyc2lvbk9uZShTdGFja1ZlcnNpb25PbmUgbm9kZSkNCiAgICAgICAgew0KICAgICAgICAgICAgaWYgKG5vZGUgIT0gbnVsbCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBpZiAobm9kZS5GcmFtZXMgIT0gbnVsbCkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIGZvciAoaW50IGluZGV4XzAgPSAwOyBpbmRleF8wIDwgbm9kZS5GcmFtZXMuQ291bnQ7ICsraW5kZXhfMCkNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgbm9kZS5GcmFtZXNbaW5kZXhfMF0gPSBWaXNpdE51bGxDaGVja2VkKG5vZGUuRnJhbWVzW2luZGV4XzBdKTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgcmV0dXJuIG5vZGU7DQogICAgICAgIH0NCg0KICAgICAgICBwdWJsaWMgdmlydHVhbCBUb29sVmVyc2lvbk9uZSBWaXNpdFRvb2xWZXJzaW9uT25lKFRvb2xWZXJzaW9uT25lIG5vZGUpDQogICAgICAgIHsNCiAgICAgICAgICAgIGlmIChub2RlICE9IG51bGwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIHJldHVybiBub2RlOw0KICAgICAgICB9DQogICAgfQ0KfQ==" + { + "ruleId": "CA1062", + "message": { + "text": "In externally visible method 'RuleFactory.GetRuleFromRuleId(string)', validate parameter 'ruleId' before using it." }, - "hashes": [ - { - "value": "09CE01DCB6B63343783044639A82A48B", - "algorithm": "md5" - }, - { - "value": "BF6266E0E759F0F64512E5FFABD0068700124954", - "algorithm": "sha-1" - }, + "locations": [ { - "value": "DAE424C711D3A7E1659D60BBFFCAFC8B5EF524B8B692C676AEACF003CE3D7F5B", - "algorithm": "sha-256" + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Microsoft.Json.Schema.Validation.dll", + "uriBaseId": "$(ProjectDir)", + "index": 2 + } + }, + "logicalLocations": [ + { + "index": 116, + "fullyQualifiedName": "microsoft.json.schema.validation.dll!Microsoft.Json.Schema.Validation.RuleFactory.GetRuleFromRuleId(System.String)" + } + ] } - ] + ], + "partialFingerprints": { + "UniqueId": "0" + }, + "properties": { + "Category": "Microsoft.Design", + "FixCategory": "DependsOnFix" + } }, - "file:///E:/src/sarif-sdk-test/src/Sarif/VersionOne/Autogenerated/StackFrameVersionOne.cs": { - "mimeType": "text/x-csharp", - "contents": { - "binary": "Ly8gQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQuICBBbGwgUmlnaHRzIFJlc2VydmVkLg0KLy8gTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlLiBTZWUgTElDRU5TRSBmaWxlIGluIHRoZSBwcm9qZWN0IHJvb3QgZm9yIGZ1bGwgbGljZW5zZSBpbmZvcm1hdGlvbi4NCg0KdXNpbmcgU3lzdGVtOw0KdXNpbmcgU3lzdGVtLkNvZGVEb20uQ29tcGlsZXI7DQp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsNCnVzaW5nIFN5c3RlbS5SdW50aW1lLlNlcmlhbGl6YXRpb247DQp1c2luZyBNaWNyb3NvZnQuQ29kZUFuYWx5c2lzLlNhcmlmLlJlYWRlcnM7DQoNCm5hbWVzcGFjZSBNaWNyb3NvZnQuQ29kZUFuYWx5c2lzLlNhcmlmLlZlcnNpb25PbmUNCnsNCiAgICAvLy8gPHN1bW1hcnk+DQogICAgLy8vIEEgZnVuY3Rpb24gY2FsbCB3aXRoaW4gYSBzdGFjayB0cmFjZS4NCiAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgIFtEYXRhQ29udHJhY3RdDQogICAgW0dlbmVyYXRlZENvZGUoIk1pY3Jvc29mdC5Kc29uLlNjaGVtYS5Ub0RvdE5ldCIsICIwLjUyLjAuMCIpXQ0KICAgIHB1YmxpYyBwYXJ0aWFsIGNsYXNzIFN0YWNrRnJhbWVWZXJzaW9uT25lIDogUHJvcGVydHlCYWdIb2xkZXIsIElTYXJpZk5vZGVWZXJzaW9uT25lDQogICAgew0KICAgICAgICBwdWJsaWMgc3RhdGljIElFcXVhbGl0eUNvbXBhcmVyPFN0YWNrRnJhbWVWZXJzaW9uT25lPiBWYWx1ZUNvbXBhcmVyID0+IFN0YWNrRnJhbWVWZXJzaW9uT25lRXF1YWxpdHlDb21wYXJlci5JbnN0YW5jZTsNCg0KICAgICAgICBwdWJsaWMgYm9vbCBWYWx1ZUVxdWFscyhTdGFja0ZyYW1lVmVyc2lvbk9uZSBvdGhlcikgPT4gVmFsdWVDb21wYXJlci5FcXVhbHModGhpcywgb3RoZXIpOw0KICAgICAgICBwdWJsaWMgaW50IFZhbHVlR2V0SGFzaENvZGUoKSA9PiBWYWx1ZUNvbXBhcmVyLkdldEhhc2hDb2RlKHRoaXMpOw0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIEdldHMgYSB2YWx1ZSBpbmRpY2F0aW5nIHRoZSB0eXBlIG9mIG9iamVjdCBpbXBsZW1lbnRpbmcgPHNlZSBjcmVmPSJJU2FyaWZOb2RlVmVyc2lvbk9uZSIgLz4uDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIHB1YmxpYyBTYXJpZk5vZGVLaW5kVmVyc2lvbk9uZSBTYXJpZk5vZGVLaW5kVmVyc2lvbk9uZQ0KICAgICAgICB7DQogICAgICAgICAgICBnZXQNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gU2FyaWZOb2RlS2luZFZlcnNpb25PbmUuU3RhY2tGcmFtZVZlcnNpb25PbmU7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBBIG1lc3NhZ2UgcmVsZXZhbnQgdG8gdGhpcyBzdGFjayBmcmFtZS4NCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgW0RhdGFNZW1iZXIoTmFtZSA9ICJtZXNzYWdlIiwgSXNSZXF1aXJlZCA9IGZhbHNlLCBFbWl0RGVmYXVsdFZhbHVlID0gZmFsc2UpXQ0KICAgICAgICBwdWJsaWMgc3RyaW5nIE1lc3NhZ2UgeyBnZXQ7IHNldDsgfQ0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIFRoZSB1cmkgb2YgdGhlIHNvdXJjZSBjb2RlIGZpbGUgdG8gd2hpY2ggdGhpcyBzdGFjayBmcmFtZSByZWZlcnMuDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIFtEYXRhTWVtYmVyKE5hbWUgPSAidXJpIiwgSXNSZXF1aXJlZCA9IGZhbHNlLCBFbWl0RGVmYXVsdFZhbHVlID0gZmFsc2UpXQ0KICAgICAgICBwdWJsaWMgVXJpIFVyaSB7IGdldDsgc2V0OyB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gQSBzdHJpbmcgdGhhdCBpZGVudGlmaWVzIHRoZSBjb25jZXB0dWFsIGJhc2UgZm9yIHRoZSAndXJpJyBwcm9wZXJ0eSAoaWYgaXQgaXMgcmVsYXRpdmUpLCBlLmcuLCckKFNvbHV0aW9uRGlyKScgb3IgJyVTUkNST09UJScuDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIFtEYXRhTWVtYmVyKE5hbWUgPSAidXJpQmFzZUlkIiwgSXNSZXF1aXJlZCA9IGZhbHNlLCBFbWl0RGVmYXVsdFZhbHVlID0gZmFsc2UpXQ0KICAgICAgICBwdWJsaWMgc3RyaW5nIFVyaUJhc2VJZCB7IGdldDsgc2V0OyB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gVGhlIGxpbmUgb2YgdGhlIGxvY2F0aW9uIHRvIHdoaWNoIHRoaXMgc3RhY2sgZnJhbWUgcmVmZXJzLg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICBbRGF0YU1lbWJlcihOYW1lID0gImxpbmUiLCBJc1JlcXVpcmVkID0gZmFsc2UsIEVtaXREZWZhdWx0VmFsdWUgPSBmYWxzZSldDQogICAgICAgIHB1YmxpYyBpbnQgTGluZSB7IGdldDsgc2V0OyB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gVGhlIGxpbmUgb2YgdGhlIGxvY2F0aW9uIHRvIHdoaWNoIHRoaXMgc3RhY2sgZnJhbWUgcmVmZXJzLg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICBbRGF0YU1lbWJlcihOYW1lID0gImNvbHVtbiIsIElzUmVxdWlyZWQgPSBmYWxzZSwgRW1pdERlZmF1bHRWYWx1ZSA9IGZhbHNlKV0NCiAgICAgICAgcHVibGljIGludCBDb2x1bW4geyBnZXQ7IHNldDsgfQ0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIFRoZSBuYW1lIG9mIHRoZSBtb2R1bGUgdGhhdCBjb250YWlucyB0aGUgY29kZSBvZiB0aGlzIHN0YWNrIGZyYW1lLg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICBbRGF0YU1lbWJlcihOYW1lID0gIm1vZHVsZSIsIElzUmVxdWlyZWQgPSBmYWxzZSwgRW1pdERlZmF1bHRWYWx1ZSA9IGZhbHNlKV0NCiAgICAgICAgcHVibGljIHN0cmluZyBNb2R1bGUgeyBnZXQ7IHNldDsgfQ0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIFRoZSB0aHJlYWQgaWRlbnRpZmllciBvZiB0aGUgc3RhY2sgZnJhbWUuDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIFtEYXRhTWVtYmVyKE5hbWUgPSAidGhyZWFkSWQiLCBJc1JlcXVpcmVkID0gZmFsc2UsIEVtaXREZWZhdWx0VmFsdWUgPSBmYWxzZSldDQogICAgICAgIHB1YmxpYyBpbnQgVGhyZWFkSWQgeyBnZXQ7IHNldDsgfQ0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIFRoZSBmdWxseSBxdWFsaWZpZWQgbmFtZSBvZiB0aGUgbWV0aG9kIG9yIGZ1bmN0aW9uIHRoYXQgaXMgZXhlY3V0aW5nLg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICBbRGF0YU1lbWJlcihOYW1lID0gImZ1bGx5UXVhbGlmaWVkTG9naWNhbE5hbWUiLCBJc1JlcXVpcmVkID0gdHJ1ZSldDQogICAgICAgIHB1YmxpYyBzdHJpbmcgRnVsbHlRdWFsaWZpZWRMb2dpY2FsTmFtZSB7IGdldDsgc2V0OyB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gQSBrZXkgdXNlZCB0byByZXRyaWV2ZSB0aGUgc3RhY2sgZnJhbWUgbG9naWNhbExvY2F0aW9uIGZyb20gdGhlIGxvZ2ljYWxMb2NhdGlvbnMgZGljdGlvbmFyeSwgd2hlbiB0aGUgJ2Z1bGx5UXVhbGlmaWVkTG9naWNhbE5hbWUnIGlzIG5vdCB1bmlxdWUuDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIFtEYXRhTWVtYmVyKE5hbWUgPSAibG9naWNhbExvY2F0aW9uS2V5IiwgSXNSZXF1aXJlZCA9IGZhbHNlLCBFbWl0RGVmYXVsdFZhbHVlID0gZmFsc2UpXQ0KICAgICAgICBwdWJsaWMgc3RyaW5nIExvZ2ljYWxMb2NhdGlvbktleSB7IGdldDsgc2V0OyB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gVGhlIGFkZHJlc3Mgb2YgdGhlIG1ldGhvZCBvciBmdW5jdGlvbiB0aGF0IGlzIGV4ZWN1dGluZy4NCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgW0RhdGFNZW1iZXIoTmFtZSA9ICJhZGRyZXNzIiwgSXNSZXF1aXJlZCA9IGZhbHNlLCBFbWl0RGVmYXVsdFZhbHVlID0gZmFsc2UpXQ0KICAgICAgICBwdWJsaWMgaW50IEFkZHJlc3MgeyBnZXQ7IHNldDsgfQ0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIFRoZSBvZmZzZXQgZnJvbSB0aGUgbWV0aG9kIG9yIGZ1bmN0aW9uIHRoYXQgaXMgZXhlY3V0aW5nLg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICBbRGF0YU1lbWJlcihOYW1lID0gIm9mZnNldCIsIElzUmVxdWlyZWQgPSBmYWxzZSwgRW1pdERlZmF1bHRWYWx1ZSA9IGZhbHNlKV0NCiAgICAgICAgcHVibGljIGludCBPZmZzZXQgeyBnZXQ7IHNldDsgfQ0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIFRoZSBwYXJhbWV0ZXJzIG9mIHRoZSBjYWxsIHRoYXQgaXMgZXhlY3V0aW5nLg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICBbRGF0YU1lbWJlcihOYW1lID0gInBhcmFtZXRlcnMiLCBJc1JlcXVpcmVkID0gZmFsc2UsIEVtaXREZWZhdWx0VmFsdWUgPSBmYWxzZSldDQogICAgICAgIHB1YmxpYyBJTGlzdDxzdHJpbmc+IFBhcmFtZXRlcnMgeyBnZXQ7IHNldDsgfQ0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIEtleS92YWx1ZSBwYWlycyB0aGF0IHByb3ZpZGUgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiBhYm91dCB0aGUgc3RhY2sgZnJhbWUuDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIFtEYXRhTWVtYmVyKE5hbWUgPSAicHJvcGVydGllcyIsIElzUmVxdWlyZWQgPSBmYWxzZSwgRW1pdERlZmF1bHRWYWx1ZSA9IGZhbHNlKV0NCiAgICAgICAgaW50ZXJuYWwgb3ZlcnJpZGUgSURpY3Rpb25hcnk8c3RyaW5nLCBTZXJpYWxpemVkUHJvcGVydHlJbmZvPiBQcm9wZXJ0aWVzIHsgZ2V0OyBzZXQ7IH0NCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBJbml0aWFsaXplcyBhIG5ldyBpbnN0YW5jZSBvZiB0aGUgPHNlZSBjcmVmPSJTdGFja0ZyYW1lVmVyc2lvbk9uZSIgLz4gY2xhc3MuDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIHB1YmxpYyBTdGFja0ZyYW1lVmVyc2lvbk9uZSgpDQogICAgICAgIHsNCiAgICAgICAgfQ0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIEluaXRpYWxpemVzIGEgbmV3IGluc3RhbmNlIG9mIHRoZSA8c2VlIGNyZWY9IlN0YWNrRnJhbWVWZXJzaW9uT25lIiAvPiBjbGFzcyBmcm9tIHRoZSBzdXBwbGllZCB2YWx1ZXMuDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIC8vLyA8cGFyYW0gbmFtZT0ibWVzc2FnZSI+DQogICAgICAgIC8vLyBBbiBpbml0aWFsaXphdGlvbiB2YWx1ZSBmb3IgdGhlIDxzZWUgY3JlZj0iUDogTWVzc2FnZSIgLz4gcHJvcGVydHkuDQogICAgICAgIC8vLyA8L3BhcmFtPg0KICAgICAgICAvLy8gPHBhcmFtIG5hbWU9InVyaSI+DQogICAgICAgIC8vLyBBbiBpbml0aWFsaXphdGlvbiB2YWx1ZSBmb3IgdGhlIDxzZWUgY3JlZj0iUDogVXJpIiAvPiBwcm9wZXJ0eS4NCiAgICAgICAgLy8vIDwvcGFyYW0+DQogICAgICAgIC8vLyA8cGFyYW0gbmFtZT0idXJpQmFzZUlkIj4NCiAgICAgICAgLy8vIEFuIGluaXRpYWxpemF0aW9uIHZhbHVlIGZvciB0aGUgPHNlZSBjcmVmPSJQOiBVcmlCYXNlSWQiIC8+IHByb3BlcnR5Lg0KICAgICAgICAvLy8gPC9wYXJhbT4NCiAgICAgICAgLy8vIDxwYXJhbSBuYW1lPSJsaW5lIj4NCiAgICAgICAgLy8vIEFuIGluaXRpYWxpemF0aW9uIHZhbHVlIGZvciB0aGUgPHNlZSBjcmVmPSJQOiBMaW5lIiAvPiBwcm9wZXJ0eS4NCiAgICAgICAgLy8vIDwvcGFyYW0+DQogICAgICAgIC8vLyA8cGFyYW0gbmFtZT0iY29sdW1uIj4NCiAgICAgICAgLy8vIEFuIGluaXRpYWxpemF0aW9uIHZhbHVlIGZvciB0aGUgPHNlZSBjcmVmPSJQOiBDb2x1bW4iIC8+IHByb3BlcnR5Lg0KICAgICAgICAvLy8gPC9wYXJhbT4NCiAgICAgICAgLy8vIDxwYXJhbSBuYW1lPSJtb2R1bGUiPg0KICAgICAgICAvLy8gQW4gaW5pdGlhbGl6YXRpb24gdmFsdWUgZm9yIHRoZSA8c2VlIGNyZWY9IlA6IE1vZHVsZSIgLz4gcHJvcGVydHkuDQogICAgICAgIC8vLyA8L3BhcmFtPg0KICAgICAgICAvLy8gPHBhcmFtIG5hbWU9InRocmVhZElkIj4NCiAgICAgICAgLy8vIEFuIGluaXRpYWxpemF0aW9uIHZhbHVlIGZvciB0aGUgPHNlZSBjcmVmPSJQOiBUaHJlYWRJZCIgLz4gcHJvcGVydHkuDQogICAgICAgIC8vLyA8L3BhcmFtPg0KICAgICAgICAvLy8gPHBhcmFtIG5hbWU9ImZ1bGx5UXVhbGlmaWVkTG9naWNhbE5hbWUiPg0KICAgICAgICAvLy8gQW4gaW5pdGlhbGl6YXRpb24gdmFsdWUgZm9yIHRoZSA8c2VlIGNyZWY9IlA6IEZ1bGx5UXVhbGlmaWVkTG9naWNhbE5hbWUiIC8+IHByb3BlcnR5Lg0KICAgICAgICAvLy8gPC9wYXJhbT4NCiAgICAgICAgLy8vIDxwYXJhbSBuYW1lPSJsb2dpY2FsTG9jYXRpb25LZXkiPg0KICAgICAgICAvLy8gQW4gaW5pdGlhbGl6YXRpb24gdmFsdWUgZm9yIHRoZSA8c2VlIGNyZWY9IlA6IExvZ2ljYWxMb2NhdGlvbktleSIgLz4gcHJvcGVydHkuDQogICAgICAgIC8vLyA8L3BhcmFtPg0KICAgICAgICAvLy8gPHBhcmFtIG5hbWU9ImFkZHJlc3MiPg0KICAgICAgICAvLy8gQW4gaW5pdGlhbGl6YXRpb24gdmFsdWUgZm9yIHRoZSA8c2VlIGNyZWY9IlA6IEFkZHJlc3MiIC8+IHByb3BlcnR5Lg0KICAgICAgICAvLy8gPC9wYXJhbT4NCiAgICAgICAgLy8vIDxwYXJhbSBuYW1lPSJvZmZzZXQiPg0KICAgICAgICAvLy8gQW4gaW5pdGlhbGl6YXRpb24gdmFsdWUgZm9yIHRoZSA8c2VlIGNyZWY9IlA6IE9mZnNldCIgLz4gcHJvcGVydHkuDQogICAgICAgIC8vLyA8L3BhcmFtPg0KICAgICAgICAvLy8gPHBhcmFtIG5hbWU9InBhcmFtZXRlcnMiPg0KICAgICAgICAvLy8gQW4gaW5pdGlhbGl6YXRpb24gdmFsdWUgZm9yIHRoZSA8c2VlIGNyZWY9IlA6IFBhcmFtZXRlcnMiIC8+IHByb3BlcnR5Lg0KICAgICAgICAvLy8gPC9wYXJhbT4NCiAgICAgICAgLy8vIDxwYXJhbSBuYW1lPSJwcm9wZXJ0aWVzIj4NCiAgICAgICAgLy8vIEFuIGluaXRpYWxpemF0aW9uIHZhbHVlIGZvciB0aGUgPHNlZSBjcmVmPSJQOiBQcm9wZXJ0aWVzIiAvPiBwcm9wZXJ0eS4NCiAgICAgICAgLy8vIDwvcGFyYW0+DQogICAgICAgIHB1YmxpYyBTdGFja0ZyYW1lVmVyc2lvbk9uZShzdHJpbmcgbWVzc2FnZSwgVXJpIHVyaSwgc3RyaW5nIHVyaUJhc2VJZCwgaW50IGxpbmUsIGludCBjb2x1bW4sIHN0cmluZyBtb2R1bGUsIGludCB0aHJlYWRJZCwgc3RyaW5nIGZ1bGx5UXVhbGlmaWVkTG9naWNhbE5hbWUsIHN0cmluZyBsb2dpY2FsTG9jYXRpb25LZXksIGludCBhZGRyZXNzLCBpbnQgb2Zmc2V0LCBJRW51bWVyYWJsZTxzdHJpbmc+IHBhcmFtZXRlcnMsIElEaWN0aW9uYXJ5PHN0cmluZywgU2VyaWFsaXplZFByb3BlcnR5SW5mbz4gcHJvcGVydGllcykNCiAgICAgICAgew0KICAgICAgICAgICAgSW5pdChtZXNzYWdlLCB1cmksIHVyaUJhc2VJZCwgbGluZSwgY29sdW1uLCBtb2R1bGUsIHRocmVhZElkLCBmdWxseVF1YWxpZmllZExvZ2ljYWxOYW1lLCBsb2dpY2FsTG9jYXRpb25LZXksIGFkZHJlc3MsIG9mZnNldCwgcGFyYW1ldGVycywgcHJvcGVydGllcyk7DQogICAgICAgIH0NCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBJbml0aWFsaXplcyBhIG5ldyBpbnN0YW5jZSBvZiB0aGUgPHNlZSBjcmVmPSJTdGFja0ZyYW1lVmVyc2lvbk9uZSIgLz4gY2xhc3MgZnJvbSB0aGUgc3BlY2lmaWVkIGluc3RhbmNlLg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICAvLy8gPHBhcmFtIG5hbWU9Im90aGVyIj4NCiAgICAgICAgLy8vIFRoZSBpbnN0YW5jZSBmcm9tIHdoaWNoIHRoZSBuZXcgaW5zdGFuY2UgaXMgdG8gYmUgaW5pdGlhbGl6ZWQuDQogICAgICAgIC8vLyA8L3BhcmFtPg0KICAgICAgICAvLy8gPGV4Y2VwdGlvbiBjcmVmPSJBcmd1bWVudE51bGxFeGNlcHRpb24iPg0KICAgICAgICAvLy8gVGhyb3duIGlmIDxwYXJhbXJlZiBuYW1lPSJvdGhlciIgLz4gaXMgbnVsbC4NCiAgICAgICAgLy8vIDwvZXhjZXB0aW9uPg0KICAgICAgICBwdWJsaWMgU3RhY2tGcmFtZVZlcnNpb25PbmUoU3RhY2tGcmFtZVZlcnNpb25PbmUgb3RoZXIpDQogICAgICAgIHsNCiAgICAgICAgICAgIGlmIChvdGhlciA9PSBudWxsKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHRocm93IG5ldyBBcmd1bWVudE51bGxFeGNlcHRpb24obmFtZW9mKG90aGVyKSk7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIEluaXQob3RoZXIuTWVzc2FnZSwgb3RoZXIuVXJpLCBvdGhlci5VcmlCYXNlSWQsIG90aGVyLkxpbmUsIG90aGVyLkNvbHVtbiwgb3RoZXIuTW9kdWxlLCBvdGhlci5UaHJlYWRJZCwgb3RoZXIuRnVsbHlRdWFsaWZpZWRMb2dpY2FsTmFtZSwgb3RoZXIuTG9naWNhbExvY2F0aW9uS2V5LCBvdGhlci5BZGRyZXNzLCBvdGhlci5PZmZzZXQsIG90aGVyLlBhcmFtZXRlcnMsIG90aGVyLlByb3BlcnRpZXMpOw0KICAgICAgICB9DQoNCiAgICAgICAgSVNhcmlmTm9kZVZlcnNpb25PbmUgSVNhcmlmTm9kZVZlcnNpb25PbmUuRGVlcENsb25lKCkNCiAgICAgICAgew0KICAgICAgICAgICAgcmV0dXJuIERlZXBDbG9uZUNvcmUoKTsNCiAgICAgICAgfQ0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIENyZWF0ZXMgYSBkZWVwIGNvcHkgb2YgdGhpcyBpbnN0YW5jZS4NCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgcHVibGljIFN0YWNrRnJhbWVWZXJzaW9uT25lIERlZXBDbG9uZSgpDQogICAgICAgIHsNCiAgICAgICAgICAgIHJldHVybiAoU3RhY2tGcmFtZVZlcnNpb25PbmUpRGVlcENsb25lQ29yZSgpOw0KICAgICAgICB9DQoNCiAgICAgICAgcHJpdmF0ZSBJU2FyaWZOb2RlVmVyc2lvbk9uZSBEZWVwQ2xvbmVDb3JlKCkNCiAgICAgICAgew0KICAgICAgICAgICAgcmV0dXJuIG5ldyBTdGFja0ZyYW1lVmVyc2lvbk9uZSh0aGlzKTsNCiAgICAgICAgfQ0KDQogICAgICAgIHByaXZhdGUgdm9pZCBJbml0KHN0cmluZyBtZXNzYWdlLCBVcmkgdXJpLCBzdHJpbmcgdXJpQmFzZUlkLCBpbnQgbGluZSwgaW50IGNvbHVtbiwgc3RyaW5nIG1vZHVsZSwgaW50IHRocmVhZElkLCBzdHJpbmcgZnVsbHlRdWFsaWZpZWRMb2dpY2FsTmFtZSwgc3RyaW5nIGxvZ2ljYWxMb2NhdGlvbktleSwgaW50IGFkZHJlc3MsIGludCBvZmZzZXQsIElFbnVtZXJhYmxlPHN0cmluZz4gcGFyYW1ldGVycywgSURpY3Rpb25hcnk8c3RyaW5nLCBTZXJpYWxpemVkUHJvcGVydHlJbmZvPiBwcm9wZXJ0aWVzKQ0KICAgICAgICB7DQogICAgICAgICAgICBNZXNzYWdlID0gbWVzc2FnZTsNCiAgICAgICAgICAgIGlmICh1cmkgIT0gbnVsbCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBVcmkgPSBuZXcgVXJpKHVyaS5PcmlnaW5hbFN0cmluZywgdXJpLklzQWJzb2x1dGVVcmkgPyBVcmlLaW5kLkFic29sdXRlIDogVXJpS2luZC5SZWxhdGl2ZSk7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIFVyaUJhc2VJZCA9IHVyaUJhc2VJZDsNCiAgICAgICAgICAgIExpbmUgPSBsaW5lOw0KICAgICAgICAgICAgQ29sdW1uID0gY29sdW1uOw0KICAgICAgICAgICAgTW9kdWxlID0gbW9kdWxlOw0KICAgICAgICAgICAgVGhyZWFkSWQgPSB0aHJlYWRJZDsNCiAgICAgICAgICAgIEZ1bGx5UXVhbGlmaWVkTG9naWNhbE5hbWUgPSBmdWxseVF1YWxpZmllZExvZ2ljYWxOYW1lOw0KICAgICAgICAgICAgTG9naWNhbExvY2F0aW9uS2V5ID0gbG9naWNhbExvY2F0aW9uS2V5Ow0KICAgICAgICAgICAgQWRkcmVzcyA9IGFkZHJlc3M7DQogICAgICAgICAgICBPZmZzZXQgPSBvZmZzZXQ7DQogICAgICAgICAgICBpZiAocGFyYW1ldGVycyAhPSBudWxsKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHZhciBkZXN0aW5hdGlvbl8wID0gbmV3IExpc3Q8c3RyaW5nPigpOw0KICAgICAgICAgICAgICAgIGZvcmVhY2ggKHZhciB2YWx1ZV8wIGluIHBhcmFtZXRlcnMpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBkZXN0aW5hdGlvbl8wLkFkZCh2YWx1ZV8wKTsNCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICBQYXJhbWV0ZXJzID0gZGVzdGluYXRpb25fMDsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgaWYgKHByb3BlcnRpZXMgIT0gbnVsbCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBQcm9wZXJ0aWVzID0gbmV3IERpY3Rpb25hcnk8c3RyaW5nLCBTZXJpYWxpemVkUHJvcGVydHlJbmZvPihwcm9wZXJ0aWVzKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgIH0NCn0=" + { + "ruleId": "CA1812", + "message": { + "text": "'RuleResources' is an internal class that is apparently never instantiated. If so, remove the code from the assembly. If this class is intended to contain only static methods, consider adding a private constructor to prevent the compiler from generating a default constructor." }, - "hashes": [ - { - "value": "38ED407197D03A3836D2A32ACE474322", - "algorithm": "md5" - }, - { - "value": "C3B84AE5BB40F128F80A44A53E577C219F934F50", - "algorithm": "sha-1" - }, + "locations": [ { - "value": "2C89EEE95125A1E22F3D932C92851FED39A8B40C84C1C7F085A30C689BCBFE78", - "algorithm": "sha-256" + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Microsoft.Json.Schema.Validation.dll", + "uriBaseId": "$(ProjectDir)", + "index": 2 + } + }, + "logicalLocations": [ + { + "index": 117, + "fullyQualifiedName": "microsoft.json.schema.validation.dll!Microsoft.Json.Schema.Validation.RuleResources" + } + ] } - ] + ], + "properties": { + "Category": "Microsoft.Performance", + "FixCategory": "NonBreaking" + } }, - "file:///E:/src/sarif-sdk-test/src/Sarif/VersionOne/Autogenerated/StackFrameVersionOneEqualityComparer.cs": { - "mimeType": "text/x-csharp", - "contents": { - "binary": "Ly8gQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQuICBBbGwgUmlnaHRzIFJlc2VydmVkLg0KLy8gTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlLiBTZWUgTElDRU5TRSBmaWxlIGluIHRoZSBwcm9qZWN0IHJvb3QgZm9yIGZ1bGwgbGljZW5zZSBpbmZvcm1hdGlvbi4NCg0KdXNpbmcgU3lzdGVtOw0KdXNpbmcgU3lzdGVtLkNvZGVEb20uQ29tcGlsZXI7DQp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsNCnVzaW5nIE1pY3Jvc29mdC5Db2RlQW5hbHlzaXMuU2FyaWYuUmVhZGVyczsNCg0KbmFtZXNwYWNlIE1pY3Jvc29mdC5Db2RlQW5hbHlzaXMuU2FyaWYuVmVyc2lvbk9uZQ0Kew0KICAgIC8vLyA8c3VtbWFyeT4NCiAgICAvLy8gRGVmaW5lcyBtZXRob2RzIHRvIHN1cHBvcnQgdGhlIGNvbXBhcmlzb24gb2Ygb2JqZWN0cyBvZiB0eXBlIFN0YWNrRnJhbWVWZXJzaW9uT25lIGZvciBlcXVhbGl0eS4NCiAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgIFtHZW5lcmF0ZWRDb2RlKCJNaWNyb3NvZnQuSnNvbi5TY2hlbWEuVG9Eb3ROZXQiLCAiMC41Mi4wLjAiKV0NCiAgICBpbnRlcm5hbCBzZWFsZWQgY2xhc3MgU3RhY2tGcmFtZVZlcnNpb25PbmVFcXVhbGl0eUNvbXBhcmVyIDogSUVxdWFsaXR5Q29tcGFyZXI8U3RhY2tGcmFtZVZlcnNpb25PbmU+DQogICAgew0KICAgICAgICBpbnRlcm5hbCBzdGF0aWMgcmVhZG9ubHkgU3RhY2tGcmFtZVZlcnNpb25PbmVFcXVhbGl0eUNvbXBhcmVyIEluc3RhbmNlID0gbmV3IFN0YWNrRnJhbWVWZXJzaW9uT25lRXF1YWxpdHlDb21wYXJlcigpOw0KDQogICAgICAgIHB1YmxpYyBib29sIEVxdWFscyhTdGFja0ZyYW1lVmVyc2lvbk9uZSBsZWZ0LCBTdGFja0ZyYW1lVmVyc2lvbk9uZSByaWdodCkNCiAgICAgICAgew0KICAgICAgICAgICAgaWYgKFJlZmVyZW5jZUVxdWFscyhsZWZ0LCByaWdodCkpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIGlmIChSZWZlcmVuY2VFcXVhbHMobGVmdCwgbnVsbCkgfHwgUmVmZXJlbmNlRXF1YWxzKHJpZ2h0LCBudWxsKSkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIGlmIChsZWZ0Lk1lc3NhZ2UgIT0gcmlnaHQuTWVzc2FnZSkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIGlmIChsZWZ0LlVyaSAhPSByaWdodC5VcmkpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBpZiAobGVmdC5VcmlCYXNlSWQgIT0gcmlnaHQuVXJpQmFzZUlkKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgaWYgKGxlZnQuTGluZSAhPSByaWdodC5MaW5lKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgaWYgKGxlZnQuQ29sdW1uICE9IHJpZ2h0LkNvbHVtbikNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIGlmIChsZWZ0Lk1vZHVsZSAhPSByaWdodC5Nb2R1bGUpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBpZiAobGVmdC5UaHJlYWRJZCAhPSByaWdodC5UaHJlYWRJZCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIGlmIChsZWZ0LkZ1bGx5UXVhbGlmaWVkTG9naWNhbE5hbWUgIT0gcmlnaHQuRnVsbHlRdWFsaWZpZWRMb2dpY2FsTmFtZSkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIGlmIChsZWZ0LkxvZ2ljYWxMb2NhdGlvbktleSAhPSByaWdodC5Mb2dpY2FsTG9jYXRpb25LZXkpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBpZiAobGVmdC5BZGRyZXNzICE9IHJpZ2h0LkFkZHJlc3MpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBpZiAobGVmdC5PZmZzZXQgIT0gcmlnaHQuT2Zmc2V0KQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgaWYgKCFvYmplY3QuUmVmZXJlbmNlRXF1YWxzKGxlZnQuUGFyYW1ldGVycywgcmlnaHQuUGFyYW1ldGVycykpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgaWYgKGxlZnQuUGFyYW1ldGVycyA9PSBudWxsIHx8IHJpZ2h0LlBhcmFtZXRlcnMgPT0gbnVsbCkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICBpZiAobGVmdC5QYXJhbWV0ZXJzLkNvdW50ICE9IHJpZ2h0LlBhcmFtZXRlcnMuQ291bnQpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgZm9yIChpbnQgaW5kZXhfMCA9IDA7IGluZGV4XzAgPCBsZWZ0LlBhcmFtZXRlcnMuQ291bnQ7ICsraW5kZXhfMCkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIGlmIChsZWZ0LlBhcmFtZXRlcnNbaW5kZXhfMF0gIT0gcmlnaHQuUGFyYW1ldGVyc1tpbmRleF8wXSkNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBpZiAoIW9iamVjdC5SZWZlcmVuY2VFcXVhbHMobGVmdC5Qcm9wZXJ0aWVzLCByaWdodC5Qcm9wZXJ0aWVzKSkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBpZiAobGVmdC5Qcm9wZXJ0aWVzID09IG51bGwgfHwgcmlnaHQuUHJvcGVydGllcyA9PSBudWxsIHx8IGxlZnQuUHJvcGVydGllcy5Db3VudCAhPSByaWdodC5Qcm9wZXJ0aWVzLkNvdW50KQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgIGZvcmVhY2ggKHZhciB2YWx1ZV8wIGluIGxlZnQuUHJvcGVydGllcykNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIFNlcmlhbGl6ZWRQcm9wZXJ0eUluZm8gdmFsdWVfMTsNCiAgICAgICAgICAgICAgICAgICAgaWYgKCFyaWdodC5Qcm9wZXJ0aWVzLlRyeUdldFZhbHVlKHZhbHVlXzAuS2V5LCBvdXQgdmFsdWVfMSkpDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgICAgIGlmICghb2JqZWN0LkVxdWFscyh2YWx1ZV8wLlZhbHVlLCB2YWx1ZV8xKSkNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICByZXR1cm4gdHJ1ZTsNCiAgICAgICAgfQ0KDQogICAgICAgIHB1YmxpYyBpbnQgR2V0SGFzaENvZGUoU3RhY2tGcmFtZVZlcnNpb25PbmUgb2JqKQ0KICAgICAgICB7DQogICAgICAgICAgICBpZiAoUmVmZXJlbmNlRXF1YWxzKG9iaiwgbnVsbCkpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgcmV0dXJuIDA7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIGludCByZXN1bHQgPSAxNzsNCiAgICAgICAgICAgIHVuY2hlY2tlZA0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIGlmIChvYmouTWVzc2FnZSAhPSBudWxsKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gKHJlc3VsdCAqIDMxKSArIG9iai5NZXNzYWdlLkdldEhhc2hDb2RlKCk7DQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgaWYgKG9iai5VcmkgIT0gbnVsbCkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IChyZXN1bHQgKiAzMSkgKyBvYmouVXJpLkdldEhhc2hDb2RlKCk7DQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgaWYgKG9iai5VcmlCYXNlSWQgIT0gbnVsbCkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IChyZXN1bHQgKiAzMSkgKyBvYmouVXJpQmFzZUlkLkdldEhhc2hDb2RlKCk7DQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgcmVzdWx0ID0gKHJlc3VsdCAqIDMxKSArIG9iai5MaW5lLkdldEhhc2hDb2RlKCk7DQogICAgICAgICAgICAgICAgcmVzdWx0ID0gKHJlc3VsdCAqIDMxKSArIG9iai5Db2x1bW4uR2V0SGFzaENvZGUoKTsNCiAgICAgICAgICAgICAgICBpZiAob2JqLk1vZHVsZSAhPSBudWxsKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gKHJlc3VsdCAqIDMxKSArIG9iai5Nb2R1bGUuR2V0SGFzaENvZGUoKTsNCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICByZXN1bHQgPSAocmVzdWx0ICogMzEpICsgb2JqLlRocmVhZElkLkdldEhhc2hDb2RlKCk7DQogICAgICAgICAgICAgICAgaWYgKG9iai5GdWxseVF1YWxpZmllZExvZ2ljYWxOYW1lICE9IG51bGwpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSAocmVzdWx0ICogMzEpICsgb2JqLkZ1bGx5UXVhbGlmaWVkTG9naWNhbE5hbWUuR2V0SGFzaENvZGUoKTsNCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICBpZiAob2JqLkxvZ2ljYWxMb2NhdGlvbktleSAhPSBudWxsKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gKHJlc3VsdCAqIDMxKSArIG9iai5Mb2dpY2FsTG9jYXRpb25LZXkuR2V0SGFzaENvZGUoKTsNCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICByZXN1bHQgPSAocmVzdWx0ICogMzEpICsgb2JqLkFkZHJlc3MuR2V0SGFzaENvZGUoKTsNCiAgICAgICAgICAgICAgICByZXN1bHQgPSAocmVzdWx0ICogMzEpICsgb2JqLk9mZnNldC5HZXRIYXNoQ29kZSgpOw0KICAgICAgICAgICAgICAgIGlmIChvYmouUGFyYW1ldGVycyAhPSBudWxsKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgZm9yZWFjaCAodmFyIHZhbHVlXzIgaW4gb2JqLlBhcmFtZXRlcnMpDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IHJlc3VsdCAqIDMxOw0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlXzIgIT0gbnVsbCkNCiAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSAocmVzdWx0ICogMzEpICsgdmFsdWVfMi5HZXRIYXNoQ29kZSgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgaWYgKG9iai5Qcm9wZXJ0aWVzICE9IG51bGwpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAvLyBVc2UgeG9yIGZvciBkaWN0aW9uYXJpZXMgdG8gYmUgb3JkZXItaW5kZXBlbmRlbnQuDQogICAgICAgICAgICAgICAgICAgIGludCB4b3JfMCA9IDA7DQogICAgICAgICAgICAgICAgICAgIGZvcmVhY2ggKHZhciB2YWx1ZV8zIGluIG9iai5Qcm9wZXJ0aWVzKQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICB4b3JfMCBePSB2YWx1ZV8zLktleS5HZXRIYXNoQ29kZSgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlXzMuVmFsdWUgIT0gbnVsbCkNCiAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB4b3JfMCBePSB2YWx1ZV8zLlZhbHVlLkdldEhhc2hDb2RlKCk7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSAocmVzdWx0ICogMzEpICsgeG9yXzA7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICByZXR1cm4gcmVzdWx0Ow0KICAgICAgICB9DQogICAgfQ0KfQ==" + { + "ruleId": "CA1308", + "level": "error", + "message": { + "text": "In method 'Validator.FormatBoolean(string)', replace the call to 'string.ToLowerInvariant()' with String.ToUpperInvariant().", + "id": "ToUpperInvariant" }, - "hashes": [ - { - "value": "C94FDE18D44043961540D1E788435A25", - "algorithm": "md5" - }, - { - "value": "1B2DC2A605CA682504EF4C00C89ED3F0B80A5C1E", - "algorithm": "sha-1" - }, + "locations": [ { - "value": "3DAD641802C3FB543597674A07936376E1A36F2545FBFF224C4CDE3C86E7C78E", - "algorithm": "sha-256" + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Microsoft.Json.Schema.Validation.dll", + "uriBaseId": "$(ProjectDir)", + "index": 2 + } + }, + "logicalLocations": [ + { + "index": 119, + "fullyQualifiedName": "microsoft.json.schema.validation.dll!Microsoft.Json.Schema.Validation.Validator.FormatBoolean(System.String)" + } + ] } - ] + ], + "partialFingerprints": { + "UniqueId": "ToUpperInvariant" + }, + "properties": { + "Category": "Microsoft.Globalization", + "FixCategory": "NonBreaking" + } }, - "file:///E:/src/sarif-sdk-test/src/Sarif/VersionOne/Autogenerated/StackVersionOne.cs": { - "mimeType": "text/x-csharp", - "contents": { - "binary": "Ly8gQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQuICBBbGwgUmlnaHRzIFJlc2VydmVkLg0KLy8gTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlLiBTZWUgTElDRU5TRSBmaWxlIGluIHRoZSBwcm9qZWN0IHJvb3QgZm9yIGZ1bGwgbGljZW5zZSBpbmZvcm1hdGlvbi4NCg0KdXNpbmcgU3lzdGVtOw0KdXNpbmcgU3lzdGVtLkNvZGVEb20uQ29tcGlsZXI7DQp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsNCnVzaW5nIFN5c3RlbS5SdW50aW1lLlNlcmlhbGl6YXRpb247DQp1c2luZyBNaWNyb3NvZnQuQ29kZUFuYWx5c2lzLlNhcmlmLlJlYWRlcnM7DQoNCm5hbWVzcGFjZSBNaWNyb3NvZnQuQ29kZUFuYWx5c2lzLlNhcmlmLlZlcnNpb25PbmUNCnsNCiAgICAvLy8gPHN1bW1hcnk+DQogICAgLy8vIEEgY2FsbCBzdGFjayB0aGF0IGlzIHJlbGV2YW50IHRvIGEgcmVzdWx0Lg0KICAgIC8vLyA8L3N1bW1hcnk+DQogICAgW0RhdGFDb250cmFjdF0NCiAgICBbR2VuZXJhdGVkQ29kZSgiTWljcm9zb2Z0Lkpzb24uU2NoZW1hLlRvRG90TmV0IiwgIjAuNTIuMC4wIildDQogICAgcHVibGljIHBhcnRpYWwgY2xhc3MgU3RhY2tWZXJzaW9uT25lIDogUHJvcGVydHlCYWdIb2xkZXIsIElTYXJpZk5vZGVWZXJzaW9uT25lDQogICAgew0KICAgICAgICBwdWJsaWMgc3RhdGljIElFcXVhbGl0eUNvbXBhcmVyPFN0YWNrVmVyc2lvbk9uZT4gVmFsdWVDb21wYXJlciA9PiBTdGFja1ZlcnNpb25PbmVFcXVhbGl0eUNvbXBhcmVyLkluc3RhbmNlOw0KDQogICAgICAgIHB1YmxpYyBib29sIFZhbHVlRXF1YWxzKFN0YWNrVmVyc2lvbk9uZSBvdGhlcikgPT4gVmFsdWVDb21wYXJlci5FcXVhbHModGhpcywgb3RoZXIpOw0KICAgICAgICBwdWJsaWMgaW50IFZhbHVlR2V0SGFzaENvZGUoKSA9PiBWYWx1ZUNvbXBhcmVyLkdldEhhc2hDb2RlKHRoaXMpOw0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIEdldHMgYSB2YWx1ZSBpbmRpY2F0aW5nIHRoZSB0eXBlIG9mIG9iamVjdCBpbXBsZW1lbnRpbmcgPHNlZSBjcmVmPSJJU2FyaWZOb2RlVmVyc2lvbk9uZSIgLz4uDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIHB1YmxpYyBTYXJpZk5vZGVLaW5kVmVyc2lvbk9uZSBTYXJpZk5vZGVLaW5kVmVyc2lvbk9uZQ0KICAgICAgICB7DQogICAgICAgICAgICBnZXQNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gU2FyaWZOb2RlS2luZFZlcnNpb25PbmUuU3RhY2tWZXJzaW9uT25lOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gQSBtZXNzYWdlIHJlbGV2YW50IHRvIHRoaXMgY2FsbCBzdGFjay4NCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgW0RhdGFNZW1iZXIoTmFtZSA9ICJtZXNzYWdlIiwgSXNSZXF1aXJlZCA9IGZhbHNlLCBFbWl0RGVmYXVsdFZhbHVlID0gZmFsc2UpXQ0KICAgICAgICBwdWJsaWMgc3RyaW5nIE1lc3NhZ2UgeyBnZXQ7IHNldDsgfQ0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIEFuIGFycmF5IG9mIHN0YWNrIGZyYW1lcyB0aGF0IHJlcHJlc2VudCBhIHNlcXVlbmNlIG9mIGNhbGxzLCByZW5kZXJlZCBpbiByZXZlcnNlIGNocm9ub2xvZ2ljYWwgb3JkZXIsIHRoYXQgY29tcHJpc2UgdGhlIGNhbGwgc3RhY2suDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIFtEYXRhTWVtYmVyKE5hbWUgPSAiZnJhbWVzIiwgSXNSZXF1aXJlZCA9IHRydWUpXQ0KICAgICAgICBwdWJsaWMgSUxpc3Q8U3RhY2tGcmFtZVZlcnNpb25PbmU+IEZyYW1lcyB7IGdldDsgc2V0OyB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gS2V5L3ZhbHVlIHBhaXJzIHRoYXQgcHJvdmlkZSBhZGRpdGlvbmFsIGluZm9ybWF0aW9uIGFib3V0IHRoZSBzdGFjay4NCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgW0RhdGFNZW1iZXIoTmFtZSA9ICJwcm9wZXJ0aWVzIiwgSXNSZXF1aXJlZCA9IGZhbHNlLCBFbWl0RGVmYXVsdFZhbHVlID0gZmFsc2UpXQ0KICAgICAgICBpbnRlcm5hbCBvdmVycmlkZSBJRGljdGlvbmFyeTxzdHJpbmcsIFNlcmlhbGl6ZWRQcm9wZXJ0eUluZm8+IFByb3BlcnRpZXMgeyBnZXQ7IHNldDsgfQ0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIEluaXRpYWxpemVzIGEgbmV3IGluc3RhbmNlIG9mIHRoZSA8c2VlIGNyZWY9IlN0YWNrVmVyc2lvbk9uZSIgLz4gY2xhc3MuDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIHB1YmxpYyBTdGFja1ZlcnNpb25PbmUoKQ0KICAgICAgICB7DQogICAgICAgIH0NCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBJbml0aWFsaXplcyBhIG5ldyBpbnN0YW5jZSBvZiB0aGUgPHNlZSBjcmVmPSJTdGFja1ZlcnNpb25PbmUiIC8+IGNsYXNzIGZyb20gdGhlIHN1cHBsaWVkIHZhbHVlcy4NCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgLy8vIDxwYXJhbSBuYW1lPSJtZXNzYWdlIj4NCiAgICAgICAgLy8vIEFuIGluaXRpYWxpemF0aW9uIHZhbHVlIGZvciB0aGUgPHNlZSBjcmVmPSJQOiBNZXNzYWdlIiAvPiBwcm9wZXJ0eS4NCiAgICAgICAgLy8vIDwvcGFyYW0+DQogICAgICAgIC8vLyA8cGFyYW0gbmFtZT0iZnJhbWVzIj4NCiAgICAgICAgLy8vIEFuIGluaXRpYWxpemF0aW9uIHZhbHVlIGZvciB0aGUgPHNlZSBjcmVmPSJQOiBGcmFtZXMiIC8+IHByb3BlcnR5Lg0KICAgICAgICAvLy8gPC9wYXJhbT4NCiAgICAgICAgLy8vIDxwYXJhbSBuYW1lPSJwcm9wZXJ0aWVzIj4NCiAgICAgICAgLy8vIEFuIGluaXRpYWxpemF0aW9uIHZhbHVlIGZvciB0aGUgPHNlZSBjcmVmPSJQOiBQcm9wZXJ0aWVzIiAvPiBwcm9wZXJ0eS4NCiAgICAgICAgLy8vIDwvcGFyYW0+DQogICAgICAgIHB1YmxpYyBTdGFja1ZlcnNpb25PbmUoc3RyaW5nIG1lc3NhZ2UsIElFbnVtZXJhYmxlPFN0YWNrRnJhbWVWZXJzaW9uT25lPiBmcmFtZXMsIElEaWN0aW9uYXJ5PHN0cmluZywgU2VyaWFsaXplZFByb3BlcnR5SW5mbz4gcHJvcGVydGllcykNCiAgICAgICAgew0KICAgICAgICAgICAgSW5pdChtZXNzYWdlLCBmcmFtZXMsIHByb3BlcnRpZXMpOw0KICAgICAgICB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gSW5pdGlhbGl6ZXMgYSBuZXcgaW5zdGFuY2Ugb2YgdGhlIDxzZWUgY3JlZj0iU3RhY2tWZXJzaW9uT25lIiAvPiBjbGFzcyBmcm9tIHRoZSBzcGVjaWZpZWQgaW5zdGFuY2UuDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIC8vLyA8cGFyYW0gbmFtZT0ib3RoZXIiPg0KICAgICAgICAvLy8gVGhlIGluc3RhbmNlIGZyb20gd2hpY2ggdGhlIG5ldyBpbnN0YW5jZSBpcyB0byBiZSBpbml0aWFsaXplZC4NCiAgICAgICAgLy8vIDwvcGFyYW0+DQogICAgICAgIC8vLyA8ZXhjZXB0aW9uIGNyZWY9IkFyZ3VtZW50TnVsbEV4Y2VwdGlvbiI+DQogICAgICAgIC8vLyBUaHJvd24gaWYgPHBhcmFtcmVmIG5hbWU9Im90aGVyIiAvPiBpcyBudWxsLg0KICAgICAgICAvLy8gPC9leGNlcHRpb24+DQogICAgICAgIHB1YmxpYyBTdGFja1ZlcnNpb25PbmUoU3RhY2tWZXJzaW9uT25lIG90aGVyKQ0KICAgICAgICB7DQogICAgICAgICAgICBpZiAob3RoZXIgPT0gbnVsbCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgQXJndW1lbnROdWxsRXhjZXB0aW9uKG5hbWVvZihvdGhlcikpOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBJbml0KG90aGVyLk1lc3NhZ2UsIG90aGVyLkZyYW1lcywgb3RoZXIuUHJvcGVydGllcyk7DQogICAgICAgIH0NCg0KICAgICAgICBJU2FyaWZOb2RlVmVyc2lvbk9uZSBJU2FyaWZOb2RlVmVyc2lvbk9uZS5EZWVwQ2xvbmUoKQ0KICAgICAgICB7DQogICAgICAgICAgICByZXR1cm4gRGVlcENsb25lQ29yZSgpOw0KICAgICAgICB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gQ3JlYXRlcyBhIGRlZXAgY29weSBvZiB0aGlzIGluc3RhbmNlLg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICBwdWJsaWMgU3RhY2tWZXJzaW9uT25lIERlZXBDbG9uZSgpDQogICAgICAgIHsNCiAgICAgICAgICAgIHJldHVybiAoU3RhY2tWZXJzaW9uT25lKURlZXBDbG9uZUNvcmUoKTsNCiAgICAgICAgfQ0KDQogICAgICAgIHByaXZhdGUgSVNhcmlmTm9kZVZlcnNpb25PbmUgRGVlcENsb25lQ29yZSgpDQogICAgICAgIHsNCiAgICAgICAgICAgIHJldHVybiBuZXcgU3RhY2tWZXJzaW9uT25lKHRoaXMpOw0KICAgICAgICB9DQoNCiAgICAgICAgcHJpdmF0ZSB2b2lkIEluaXQoc3RyaW5nIG1lc3NhZ2UsIElFbnVtZXJhYmxlPFN0YWNrRnJhbWVWZXJzaW9uT25lPiBmcmFtZXMsIElEaWN0aW9uYXJ5PHN0cmluZywgU2VyaWFsaXplZFByb3BlcnR5SW5mbz4gcHJvcGVydGllcykNCiAgICAgICAgew0KICAgICAgICAgICAgTWVzc2FnZSA9IG1lc3NhZ2U7DQogICAgICAgICAgICBpZiAoZnJhbWVzICE9IG51bGwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgdmFyIGRlc3RpbmF0aW9uXzAgPSBuZXcgTGlzdDxTdGFja0ZyYW1lVmVyc2lvbk9uZT4oKTsNCiAgICAgICAgICAgICAgICBmb3JlYWNoICh2YXIgdmFsdWVfMCBpbiBmcmFtZXMpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWVfMCA9PSBudWxsKQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICBkZXN0aW5hdGlvbl8wLkFkZChudWxsKTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBlbHNlDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGRlc3RpbmF0aW9uXzAuQWRkKG5ldyBTdGFja0ZyYW1lVmVyc2lvbk9uZSh2YWx1ZV8wKSk7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICBGcmFtZXMgPSBkZXN0aW5hdGlvbl8wOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBpZiAocHJvcGVydGllcyAhPSBudWxsKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIFByb3BlcnRpZXMgPSBuZXcgRGljdGlvbmFyeTxzdHJpbmcsIFNlcmlhbGl6ZWRQcm9wZXJ0eUluZm8+KHByb3BlcnRpZXMpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgfQ0KfQ==" + { + "ruleId": "CA1800", + "message": { + "text": "'obj', a parameter, is cast to type 'JToken' multiple times in method 'Validator.FormatObject(object)'. Cache the result of the 'as' operator or direct cast in order to eliminate the redundant isint instruction.", + "id": "Parameter" }, - "hashes": [ - { - "value": "1B6A19ACC90CCE953862BCB97709905F", - "algorithm": "md5" - }, + "locations": [ { - "value": "392A37BA8124EABBF69D9BF4B1174F1C16F3ACE0", - "algorithm": "sha-1" - }, - { - "value": "651CAE5DA3B78B665A70CBE5480066F5EAA33FEFF4350B337BB06AAF879030FE", - "algorithm": "sha-256" + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Microsoft.Json.Schema.Validation.dll", + "uriBaseId": "$(ProjectDir)", + "index": 2 + } + }, + "logicalLocations": [ + { + "index": 120, + "fullyQualifiedName": "microsoft.json.schema.validation.dll!Microsoft.Json.Schema.Validation.Validator.FormatObject(System.Object)" + } + ] } - ] - }, - "file:///E:/src/sarif-sdk-test/src/Sarif/VersionOne/Autogenerated/ToolVersionOne.cs": { - "mimeType": "text/x-csharp", - "contents": { - "binary": "Ly8gQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQuICBBbGwgUmlnaHRzIFJlc2VydmVkLg0KLy8gTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlLiBTZWUgTElDRU5TRSBmaWxlIGluIHRoZSBwcm9qZWN0IHJvb3QgZm9yIGZ1bGwgbGljZW5zZSBpbmZvcm1hdGlvbi4NCg0KdXNpbmcgU3lzdGVtOw0KdXNpbmcgU3lzdGVtLkNvZGVEb20uQ29tcGlsZXI7DQp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsNCnVzaW5nIFN5c3RlbS5SdW50aW1lLlNlcmlhbGl6YXRpb247DQp1c2luZyBNaWNyb3NvZnQuQ29kZUFuYWx5c2lzLlNhcmlmLlJlYWRlcnM7DQoNCm5hbWVzcGFjZSBNaWNyb3NvZnQuQ29kZUFuYWx5c2lzLlNhcmlmLlZlcnNpb25PbmUNCnsNCiAgICAvLy8gPHN1bW1hcnk+DQogICAgLy8vIFRoZSBhbmFseXNpcyB0b29sIHRoYXQgd2FzIHJ1bi4NCiAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgIFtEYXRhQ29udHJhY3RdDQogICAgW0dlbmVyYXRlZENvZGUoIk1pY3Jvc29mdC5Kc29uLlNjaGVtYS5Ub0RvdE5ldCIsICIwLjUyLjAuMCIpXQ0KICAgIHB1YmxpYyBwYXJ0aWFsIGNsYXNzIFRvb2xWZXJzaW9uT25lIDogUHJvcGVydHlCYWdIb2xkZXIsIElTYXJpZk5vZGVWZXJzaW9uT25lDQogICAgew0KICAgICAgICBwdWJsaWMgc3RhdGljIElFcXVhbGl0eUNvbXBhcmVyPFRvb2xWZXJzaW9uT25lPiBWYWx1ZUNvbXBhcmVyID0+IFRvb2xWZXJzaW9uT25lRXF1YWxpdHlDb21wYXJlci5JbnN0YW5jZTsNCg0KICAgICAgICBwdWJsaWMgYm9vbCBWYWx1ZUVxdWFscyhUb29sVmVyc2lvbk9uZSBvdGhlcikgPT4gVmFsdWVDb21wYXJlci5FcXVhbHModGhpcywgb3RoZXIpOw0KICAgICAgICBwdWJsaWMgaW50IFZhbHVlR2V0SGFzaENvZGUoKSA9PiBWYWx1ZUNvbXBhcmVyLkdldEhhc2hDb2RlKHRoaXMpOw0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIEdldHMgYSB2YWx1ZSBpbmRpY2F0aW5nIHRoZSB0eXBlIG9mIG9iamVjdCBpbXBsZW1lbnRpbmcgPHNlZSBjcmVmPSJJU2FyaWZOb2RlVmVyc2lvbk9uZSIgLz4uDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIHB1YmxpYyBTYXJpZk5vZGVLaW5kVmVyc2lvbk9uZSBTYXJpZk5vZGVLaW5kVmVyc2lvbk9uZQ0KICAgICAgICB7DQogICAgICAgICAgICBnZXQNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gU2FyaWZOb2RlS2luZFZlcnNpb25PbmUuVG9vbFZlcnNpb25PbmU7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBUaGUgbmFtZSBvZiB0aGUgdG9vbC4NCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgW0RhdGFNZW1iZXIoTmFtZSA9ICJuYW1lIiwgSXNSZXF1aXJlZCA9IHRydWUpXQ0KICAgICAgICBwdWJsaWMgc3RyaW5nIE5hbWUgeyBnZXQ7IHNldDsgfQ0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIFRoZSBuYW1lIG9mIHRoZSB0b29sIGFsb25nIHdpdGggaXRzIHZlcnNpb24gYW5kIGFueSBvdGhlciB1c2VmdWwgaWRlbnRpZnlpbmcgaW5mb3JtYXRpb24sIHN1Y2ggYXMgaXRzIGxvY2FsZS4NCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgW0RhdGFNZW1iZXIoTmFtZSA9ICJmdWxsTmFtZSIsIElzUmVxdWlyZWQgPSBmYWxzZSwgRW1pdERlZmF1bHRWYWx1ZSA9IGZhbHNlKV0NCiAgICAgICAgcHVibGljIHN0cmluZyBGdWxsTmFtZSB7IGdldDsgc2V0OyB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gVGhlIHRvb2wgdmVyc2lvbiwgaW4gd2hhdGV2ZXIgZm9ybWF0IHRoZSB0b29sIG5hdGl2ZWx5IHByb3ZpZGVzLg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICBbRGF0YU1lbWJlcihOYW1lID0gInZlcnNpb24iLCBJc1JlcXVpcmVkID0gZmFsc2UsIEVtaXREZWZhdWx0VmFsdWUgPSBmYWxzZSldDQogICAgICAgIHB1YmxpYyBzdHJpbmcgVmVyc2lvbiB7IGdldDsgc2V0OyB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gVGhlIHRvb2wgdmVyc2lvbiBpbiB0aGUgZm9ybWF0IHNwZWNpZmllZCBieSBTZW1hbnRpYyBWZXJzaW9uaW5nIDIuMC4NCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgW0RhdGFNZW1iZXIoTmFtZSA9ICJzZW1hbnRpY1ZlcnNpb24iLCBJc1JlcXVpcmVkID0gZmFsc2UsIEVtaXREZWZhdWx0VmFsdWUgPSBmYWxzZSldDQogICAgICAgIHB1YmxpYyBzdHJpbmcgU2VtYW50aWNWZXJzaW9uIHsgZ2V0OyBzZXQ7IH0NCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBUaGUgYmluYXJ5IHZlcnNpb24gb2YgdGhlIHRvb2wncyBwcmltYXJ5IGV4ZWN1dGFibGUgZmlsZSAoZm9yIG9wZXJhdGluZyBzeXN0ZW1zIHN1Y2ggYXMgV2luZG93cyB0aGF0IHByb3ZpZGUgdGhhdCBpbmZvcm1hdGlvbikuDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIFtEYXRhTWVtYmVyKE5hbWUgPSAiZmlsZVZlcnNpb24iLCBJc1JlcXVpcmVkID0gZmFsc2UsIEVtaXREZWZhdWx0VmFsdWUgPSBmYWxzZSldDQogICAgICAgIHB1YmxpYyBzdHJpbmcgRmlsZVZlcnNpb24geyBnZXQ7IHNldDsgfQ0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIEEgdmVyc2lvbiB0aGF0IHVuaXF1ZWx5IGlkZW50aWZpZXMgdGhlIFNBUklGIGxvZ2dpbmcgY29tcG9uZW50IHRoYXQgZ2VuZXJhdGVkIHRoaXMgZmlsZSwgaWYgaXQgaXMgdmVyc2lvbmVkIHNlcGFyYXRlbHkgZnJvbSB0aGUgdG9vbC4NCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgW0RhdGFNZW1iZXIoTmFtZSA9ICJzYXJpZkxvZ2dlclZlcnNpb24iLCBJc1JlcXVpcmVkID0gZmFsc2UsIEVtaXREZWZhdWx0VmFsdWUgPSBmYWxzZSldDQogICAgICAgIHB1YmxpYyBzdHJpbmcgU2FyaWZMb2dnZXJWZXJzaW9uIHsgZ2V0OyBzZXQ7IH0NCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBUaGUgdG9vbCBsYW5ndWFnZSAoZXhwcmVzc2VkIGFzIGFuIElTTyA2NDkgdHdvLWxldHRlciBsb3dlcmNhc2UgY3VsdHVyZSBjb2RlKSBhbmQgcmVnaW9uIChleHByZXNzZWQgYXMgYW4gSVNPIDMxNjYgdHdvLWxldHRlciB1cHBlcmNhc2Ugc3ViY3VsdHVyZSBjb2RlIGFzc29jaWF0ZWQgd2l0aCBhIGNvdW50cnkgb3IgcmVnaW9uKS4NCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgW0RhdGFNZW1iZXIoTmFtZSA9ICJsYW5ndWFnZSIsIElzUmVxdWlyZWQgPSBmYWxzZSwgRW1pdERlZmF1bHRWYWx1ZSA9IGZhbHNlKV0NCiAgICAgICAgcHVibGljIHN0cmluZyBMYW5ndWFnZSB7IGdldDsgc2V0OyB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gS2V5L3ZhbHVlIHBhaXJzIHRoYXQgcHJvdmlkZSBhZGRpdGlvbmFsIGluZm9ybWF0aW9uIGFib3V0IHRoZSB0b29sLg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICBbRGF0YU1lbWJlcihOYW1lID0gInByb3BlcnRpZXMiLCBJc1JlcXVpcmVkID0gZmFsc2UsIEVtaXREZWZhdWx0VmFsdWUgPSBmYWxzZSldDQogICAgICAgIGludGVybmFsIG92ZXJyaWRlIElEaWN0aW9uYXJ5PHN0cmluZywgU2VyaWFsaXplZFByb3BlcnR5SW5mbz4gUHJvcGVydGllcyB7IGdldDsgc2V0OyB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gSW5pdGlhbGl6ZXMgYSBuZXcgaW5zdGFuY2Ugb2YgdGhlIDxzZWUgY3JlZj0iVG9vbFZlcnNpb25PbmUiIC8+IGNsYXNzLg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICBwdWJsaWMgVG9vbFZlcnNpb25PbmUoKQ0KICAgICAgICB7DQogICAgICAgIH0NCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBJbml0aWFsaXplcyBhIG5ldyBpbnN0YW5jZSBvZiB0aGUgPHNlZSBjcmVmPSJUb29sVmVyc2lvbk9uZSIgLz4gY2xhc3MgZnJvbSB0aGUgc3VwcGxpZWQgdmFsdWVzLg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICAvLy8gPHBhcmFtIG5hbWU9Im5hbWUiPg0KICAgICAgICAvLy8gQW4gaW5pdGlhbGl6YXRpb24gdmFsdWUgZm9yIHRoZSA8c2VlIGNyZWY9IlA6IE5hbWUiIC8+IHByb3BlcnR5Lg0KICAgICAgICAvLy8gPC9wYXJhbT4NCiAgICAgICAgLy8vIDxwYXJhbSBuYW1lPSJmdWxsTmFtZSI+DQogICAgICAgIC8vLyBBbiBpbml0aWFsaXphdGlvbiB2YWx1ZSBmb3IgdGhlIDxzZWUgY3JlZj0iUDogRnVsbE5hbWUiIC8+IHByb3BlcnR5Lg0KICAgICAgICAvLy8gPC9wYXJhbT4NCiAgICAgICAgLy8vIDxwYXJhbSBuYW1lPSJ2ZXJzaW9uIj4NCiAgICAgICAgLy8vIEFuIGluaXRpYWxpemF0aW9uIHZhbHVlIGZvciB0aGUgPHNlZSBjcmVmPSJQOiBWZXJzaW9uIiAvPiBwcm9wZXJ0eS4NCiAgICAgICAgLy8vIDwvcGFyYW0+DQogICAgICAgIC8vLyA8cGFyYW0gbmFtZT0ic2VtYW50aWNWZXJzaW9uIj4NCiAgICAgICAgLy8vIEFuIGluaXRpYWxpemF0aW9uIHZhbHVlIGZvciB0aGUgPHNlZSBjcmVmPSJQOiBTZW1hbnRpY1ZlcnNpb24iIC8+IHByb3BlcnR5Lg0KICAgICAgICAvLy8gPC9wYXJhbT4NCiAgICAgICAgLy8vIDxwYXJhbSBuYW1lPSJmaWxlVmVyc2lvbiI+DQogICAgICAgIC8vLyBBbiBpbml0aWFsaXphdGlvbiB2YWx1ZSBmb3IgdGhlIDxzZWUgY3JlZj0iUDogRmlsZVZlcnNpb24iIC8+IHByb3BlcnR5Lg0KICAgICAgICAvLy8gPC9wYXJhbT4NCiAgICAgICAgLy8vIDxwYXJhbSBuYW1lPSJzYXJpZkxvZ2dlclZlcnNpb24iPg0KICAgICAgICAvLy8gQW4gaW5pdGlhbGl6YXRpb24gdmFsdWUgZm9yIHRoZSA8c2VlIGNyZWY9IlA6IFNhcmlmTG9nZ2VyVmVyc2lvbiIgLz4gcHJvcGVydHkuDQogICAgICAgIC8vLyA8L3BhcmFtPg0KICAgICAgICAvLy8gPHBhcmFtIG5hbWU9Imxhbmd1YWdlIj4NCiAgICAgICAgLy8vIEFuIGluaXRpYWxpemF0aW9uIHZhbHVlIGZvciB0aGUgPHNlZSBjcmVmPSJQOiBMYW5ndWFnZSIgLz4gcHJvcGVydHkuDQogICAgICAgIC8vLyA8L3BhcmFtPg0KICAgICAgICAvLy8gPHBhcmFtIG5hbWU9InByb3BlcnRpZXMiPg0KICAgICAgICAvLy8gQW4gaW5pdGlhbGl6YXRpb24gdmFsdWUgZm9yIHRoZSA8c2VlIGNyZWY9IlA6IFByb3BlcnRpZXMiIC8+IHByb3BlcnR5Lg0KICAgICAgICAvLy8gPC9wYXJhbT4NCiAgICAgICAgcHVibGljIFRvb2xWZXJzaW9uT25lKHN0cmluZyBuYW1lLCBzdHJpbmcgZnVsbE5hbWUsIHN0cmluZyB2ZXJzaW9uLCBzdHJpbmcgc2VtYW50aWNWZXJzaW9uLCBzdHJpbmcgZmlsZVZlcnNpb24sIHN0cmluZyBzYXJpZkxvZ2dlclZlcnNpb24sIHN0cmluZyBsYW5ndWFnZSwgSURpY3Rpb25hcnk8c3RyaW5nLCBTZXJpYWxpemVkUHJvcGVydHlJbmZvPiBwcm9wZXJ0aWVzKQ0KICAgICAgICB7DQogICAgICAgICAgICBJbml0KG5hbWUsIGZ1bGxOYW1lLCB2ZXJzaW9uLCBzZW1hbnRpY1ZlcnNpb24sIGZpbGVWZXJzaW9uLCBzYXJpZkxvZ2dlclZlcnNpb24sIGxhbmd1YWdlLCBwcm9wZXJ0aWVzKTsNCiAgICAgICAgfQ0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIEluaXRpYWxpemVzIGEgbmV3IGluc3RhbmNlIG9mIHRoZSA8c2VlIGNyZWY9IlRvb2xWZXJzaW9uT25lIiAvPiBjbGFzcyBmcm9tIHRoZSBzcGVjaWZpZWQgaW5zdGFuY2UuDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIC8vLyA8cGFyYW0gbmFtZT0ib3RoZXIiPg0KICAgICAgICAvLy8gVGhlIGluc3RhbmNlIGZyb20gd2hpY2ggdGhlIG5ldyBpbnN0YW5jZSBpcyB0byBiZSBpbml0aWFsaXplZC4NCiAgICAgICAgLy8vIDwvcGFyYW0+DQogICAgICAgIC8vLyA8ZXhjZXB0aW9uIGNyZWY9IkFyZ3VtZW50TnVsbEV4Y2VwdGlvbiI+DQogICAgICAgIC8vLyBUaHJvd24gaWYgPHBhcmFtcmVmIG5hbWU9Im90aGVyIiAvPiBpcyBudWxsLg0KICAgICAgICAvLy8gPC9leGNlcHRpb24+DQogICAgICAgIHB1YmxpYyBUb29sVmVyc2lvbk9uZShUb29sVmVyc2lvbk9uZSBvdGhlcikNCiAgICAgICAgew0KICAgICAgICAgICAgaWYgKG90aGVyID09IG51bGwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgdGhyb3cgbmV3IEFyZ3VtZW50TnVsbEV4Y2VwdGlvbihuYW1lb2Yob3RoZXIpKTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgSW5pdChvdGhlci5OYW1lLCBvdGhlci5GdWxsTmFtZSwgb3RoZXIuVmVyc2lvbiwgb3RoZXIuU2VtYW50aWNWZXJzaW9uLCBvdGhlci5GaWxlVmVyc2lvbiwgb3RoZXIuU2FyaWZMb2dnZXJWZXJzaW9uLCBvdGhlci5MYW5ndWFnZSwgb3RoZXIuUHJvcGVydGllcyk7DQogICAgICAgIH0NCg0KICAgICAgICBJU2FyaWZOb2RlVmVyc2lvbk9uZSBJU2FyaWZOb2RlVmVyc2lvbk9uZS5EZWVwQ2xvbmUoKQ0KICAgICAgICB7DQogICAgICAgICAgICByZXR1cm4gRGVlcENsb25lQ29yZSgpOw0KICAgICAgICB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gQ3JlYXRlcyBhIGRlZXAgY29weSBvZiB0aGlzIGluc3RhbmNlLg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICBwdWJsaWMgVG9vbFZlcnNpb25PbmUgRGVlcENsb25lKCkNCiAgICAgICAgew0KICAgICAgICAgICAgcmV0dXJuIChUb29sVmVyc2lvbk9uZSlEZWVwQ2xvbmVDb3JlKCk7DQogICAgICAgIH0NCg0KICAgICAgICBwcml2YXRlIElTYXJpZk5vZGVWZXJzaW9uT25lIERlZXBDbG9uZUNvcmUoKQ0KICAgICAgICB7DQogICAgICAgICAgICByZXR1cm4gbmV3IFRvb2xWZXJzaW9uT25lKHRoaXMpOw0KICAgICAgICB9DQoNCiAgICAgICAgcHJpdmF0ZSB2b2lkIEluaXQoc3RyaW5nIG5hbWUsIHN0cmluZyBmdWxsTmFtZSwgc3RyaW5nIHZlcnNpb24sIHN0cmluZyBzZW1hbnRpY1ZlcnNpb24sIHN0cmluZyBmaWxlVmVyc2lvbiwgc3RyaW5nIHNhcmlmTG9nZ2VyVmVyc2lvbiwgc3RyaW5nIGxhbmd1YWdlLCBJRGljdGlvbmFyeTxzdHJpbmcsIFNlcmlhbGl6ZWRQcm9wZXJ0eUluZm8+IHByb3BlcnRpZXMpDQogICAgICAgIHsNCiAgICAgICAgICAgIE5hbWUgPSBuYW1lOw0KICAgICAgICAgICAgRnVsbE5hbWUgPSBmdWxsTmFtZTsNCiAgICAgICAgICAgIFZlcnNpb24gPSB2ZXJzaW9uOw0KICAgICAgICAgICAgU2VtYW50aWNWZXJzaW9uID0gc2VtYW50aWNWZXJzaW9uOw0KICAgICAgICAgICAgRmlsZVZlcnNpb24gPSBmaWxlVmVyc2lvbjsNCiAgICAgICAgICAgIFNhcmlmTG9nZ2VyVmVyc2lvbiA9IHNhcmlmTG9nZ2VyVmVyc2lvbjsNCiAgICAgICAgICAgIExhbmd1YWdlID0gbGFuZ3VhZ2U7DQogICAgICAgICAgICBpZiAocHJvcGVydGllcyAhPSBudWxsKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIFByb3BlcnRpZXMgPSBuZXcgRGljdGlvbmFyeTxzdHJpbmcsIFNlcmlhbGl6ZWRQcm9wZXJ0eUluZm8+KHByb3BlcnRpZXMpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgfQ0KfQ==" + ], + "partialFingerprints": { + "UniqueId": "Parameter" }, - "hashes": [ - { - "value": "E33376C7425F27E26F78E1DF7CAA7B3B", - "algorithm": "md5" - }, - { - "value": "9F3A4949737A7B4096C34736B119F3056724E32D", - "algorithm": "sha-1" - }, - { - "value": "67363E7A073D9C456DDB266CD6656A58B6D841A9991A248898D9D27CB65782FB", - "algorithm": "sha-256" - } - ] + "properties": { + "Category": "Microsoft.Performance", + "FixCategory": "NonBreaking" + } }, - "file:///E:/src/sarif-sdk-test/src/Sarif/Visitors/AbsoluteUrisVisitor.cs": { - "mimeType": "text/x-csharp", - "contents": { - "binary": "77u/Ly8gQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuDQovLyBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UuIFNlZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHByb2plY3Qgcm9vdCBmb3IgZnVsbCBsaWNlbnNlIGluZm9ybWF0aW9uLg0KDQp1c2luZyBTeXN0ZW07DQp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsNCg0KbmFtZXNwYWNlIE1pY3Jvc29mdC5Db2RlQW5hbHlzaXMuU2FyaWYuVmlzaXRvcnMNCnsNCiAgICBwdWJsaWMgY2xhc3MgQWJzb2x1dGVVcmlzVmlzaXRvciA6IFNhcmlmUmV3cml0aW5nVmlzaXRvcg0KICAgIHsNCiAgICAgICAgaW50ZXJuYWwgRGljdGlvbmFyeTxzdHJpbmcsIFVyaT4gX2N1cnJlbnRVcmlNYXBwaW5nczsNCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBDcmVhdGUgYSBSZWJhc2VVcmlWaXNpdG9yLCB3aXRoIGEgZ2l2ZW4gbmFtZSBmb3IgdGhlIEJhc2UgVVJJIGFuZCBhIHZhbHVlIGZvciB0aGUgYmFzZSBVUkkuDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIHB1YmxpYyBBYnNvbHV0ZVVyaXNWaXNpdG9yKCkNCiAgICAgICAgew0KICAgICAgICB9DQoNCiAgICAgICAgcHVibGljIG92ZXJyaWRlIFBoeXNpY2FsTG9jYXRpb24gVmlzaXRQaHlzaWNhbExvY2F0aW9uKFBoeXNpY2FsTG9jYXRpb24gbm9kZSkNCiAgICAgICAgew0KICAgICAgICAgICAgUGh5c2ljYWxMb2NhdGlvbiBuZXdOb2RlID0gYmFzZS5WaXNpdFBoeXNpY2FsTG9jYXRpb24obm9kZSk7DQogICAgICAgICAgICANCiAgICAgICAgICAgIGlmIChfY3VycmVudFVyaU1hcHBpbmdzICE9IG51bGwgJiYgIXN0cmluZy5Jc051bGxPckVtcHR5KG5ld05vZGUuRmlsZUxvY2F0aW9uPy5VcmlCYXNlSWQpICYmIF9jdXJyZW50VXJpTWFwcGluZ3MuQ29udGFpbnNLZXkobmV3Tm9kZS5GaWxlTG9jYXRpb24uVXJpQmFzZUlkKSkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBVcmkgYmFzZVVyaSA9IF9jdXJyZW50VXJpTWFwcGluZ3NbbmV3Tm9kZS5GaWxlTG9jYXRpb24uVXJpQmFzZUlkXTsNCiAgICAgICAgICAgICAgICBuZXdOb2RlLkZpbGVMb2NhdGlvbi5VcmkgPSBDb21iaW5lVXJpcyhiYXNlVXJpLCBuZXdOb2RlLkZpbGVMb2NhdGlvbi5VcmkpOw0KICAgICAgICAgICAgICAgIG5ld05vZGUuRmlsZUxvY2F0aW9uLlVyaUJhc2VJZCA9IG51bGw7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIHJldHVybiBuZXdOb2RlOw0KICAgICAgICB9DQoNCiAgICAgICAgcHVibGljIG92ZXJyaWRlIFJ1biBWaXNpdFJ1bihSdW4gbm9kZSkNCiAgICAgICAgew0KICAgICAgICAgICAgUnVuIG5ld1J1bjsNCg0KICAgICAgICAgICAgLy8gUmVzZXQgVVJJIG1hcHBpbmdzIGZvciB0aGlzIHJ1bi4NCiAgICAgICAgICAgIF9jdXJyZW50VXJpTWFwcGluZ3MgPSBuZXcgRGljdGlvbmFyeTxzdHJpbmcsIFVyaT4oKTsNCg0KICAgICAgICAgICAgLy8gVHJ5IHRvIGdldCB0aGUgdXJpIG1hcHBpbmdzIGRpY3Rpb25hcnkgb3V0IG9mIHRoZSANCiAgICAgICAgICAgIGlmIChub2RlLlByb3BlcnRpZXMgIT0gbnVsbCAmJiBub2RlLlByb3BlcnRpZXMuQ29udGFpbnNLZXkoUmViYXNlVXJpVmlzaXRvci5CYXNlVXJpRGljdGlvbmFyeU5hbWUpKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIC8vIEZvciBhIGdpdmVuIHJ1biwgd2UnbGwgcmVzZXQgdGhlIFVyaSBNYXBwaW5ncyB3aGlsZSB0cmF2ZXJzaW5nIGl0Lg0KICAgICAgICAgICAgICAgIGlmICghUmViYXNlVXJpVmlzaXRvci5UcnlEZXNlcmlhbGl6ZVByb3BlcnR5RGljdGlvbmFyeShub2RlLlByb3BlcnRpZXNbUmViYXNlVXJpVmlzaXRvci5CYXNlVXJpRGljdGlvbmFyeU5hbWVdLCBvdXQgX2N1cnJlbnRVcmlNYXBwaW5ncykpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSW52YWxpZE9wZXJhdGlvbkV4Y2VwdGlvbigkIkJhc2UgVVJJIERpY3Rpb25hcnkgaW5jb3JyZWN0bHkgZm9ybWF0dGVkLCB3ZSBleHBlY3QgYSBzdHJpbmctPnVyaSBkaWN0aW9uYXJ5IGluIHRoZSBSdW4gUHJvcGVydGllcyB3aXRoIG5hbWUge1JlYmFzZVVyaVZpc2l0b3IuQmFzZVVyaURpY3Rpb25hcnlOYW1lfSIpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgLy8gSWYgd2UgZG9uJ3QgaGF2ZSBhIGRpY3Rpb25hcnkgd2Ugd29uJ3QgbmVlZCB0byBmaXggdGhlIGZpbGVzIHVwLg0KICAgICAgICAgICAgICAgIGlmIChub2RlLkZpbGVzICE9IG51bGwpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBGaXhGaWxlcyhub2RlKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQogICAgICAgICAgICANCiAgICAgICAgICAgIG5ld1J1biA9IGJhc2UuVmlzaXRSdW4obm9kZSk7DQogICAgICAgICAgICANCiAgICAgICAgICAgIHJldHVybiBuZXdSdW47DQogICAgICAgIH0NCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBJZiB3ZSBhcmUgY2hhbmdpbmcgdGhlIFVSSXMgaW4gUmVzdWx0cyB0byBiZSByZWxhdGl2ZSwgd2UgbmVlZCB0byBhbHNvIGNoYW5nZSB0aGUgVVJJIGtleXMgaW4gdGhlIGZpbGVzIGRpY3Rpb25hcnkNCiAgICAgICAgLy8vIHRvIGJlIHJlbGF0aXZlLg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICAvLy8gPHBhcmFtIG5hbWU9InJ1biI+QSBydW4gdG8gZml4IHRoZSBGaWxlcyBkaWN0aW9uYXJ5IG9mLjwvcGFyYW0+DQogICAgICAgIHByaXZhdGUgdm9pZCBGaXhGaWxlcyhSdW4gcnVuKQ0KICAgICAgICB7DQogICAgICAgICAgICBEaWN0aW9uYXJ5PHN0cmluZywgRmlsZURhdGE+IG5ld0RpY3Rpb25hcnkgPSBuZXcgRGljdGlvbmFyeTxzdHJpbmcsIEZpbGVEYXRhPigpOw0KDQogICAgICAgICAgICBmb3JlYWNoICh2YXIga2V5IGluIHJ1bi5GaWxlcy5LZXlzKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIEZpbGVEYXRhIG5ld05vZGUgPSBydW4uRmlsZXNba2V5XTsNCg0KICAgICAgICAgICAgICAgIFVyaSBiYXNlVXJpOw0KICAgICAgICAgICAgICAgIC8vIE5vZGUgaGFzIGEgVXJpQmFzZUlkICYmIHdlJ3JlIGdvaW5nIHRvIHJld3JpdGUgaXQuDQogICAgICAgICAgICAgICAgaWYgKCFzdHJpbmcuSXNOdWxsT3JFbXB0eShuZXdOb2RlLkZpbGVMb2NhdGlvbj8uVXJpQmFzZUlkKSAmJiBfY3VycmVudFVyaU1hcHBpbmdzLkNvbnRhaW5zS2V5KG5ld05vZGUuRmlsZUxvY2F0aW9uPy5VcmlCYXNlSWQpKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgLy8gUmV3cml0ZSB0aGUgZmlsZWRhdGEncyBVUkkNCiAgICAgICAgICAgICAgICAgICAgYmFzZVVyaSA9IF9jdXJyZW50VXJpTWFwcGluZ3NbbmV3Tm9kZS5GaWxlTG9jYXRpb24uVXJpQmFzZUlkXTsNCiAgICAgICAgICAgICAgICAgICAgbmV3Tm9kZS5GaWxlTG9jYXRpb24uVXJpID0gQ29tYmluZVVyaXMoYmFzZVVyaSwgbmV3Tm9kZS5GaWxlTG9jYXRpb24uVXJpKTsNCg0KICAgICAgICAgICAgICAgICAgICBVcmkgcGFyZW50VXJpOw0KICAgICAgICAgICAgICAgICAgICAvLyBJZiB0aGUgcGFyZW50IHVyaSBpcyByZWxhdGl2ZSwgd2Ugc2hvdWxkIHJld3JpdGUgaXQgYXMgd2VsbC4NCiAgICAgICAgICAgICAgICAgICAgaWYgKFVyaS5UcnlDcmVhdGUobmV3Tm9kZS5QYXJlbnRLZXksIFVyaUtpbmQuUmVsYXRpdmUsIG91dCBwYXJlbnRVcmkpKQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICBuZXdOb2RlLlBhcmVudEtleSA9IENvbWJpbmVVcmlzKGJhc2VVcmksIHBhcmVudFVyaSkuVG9TdHJpbmcoKTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgICAgIG5ld05vZGUuRmlsZUxvY2F0aW9uLlVyaUJhc2VJZCA9IG51bGw7DQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgLy8gZml4IGRpY3Rpb25hcnkNCiAgICAgICAgICAgICAgICBuZXdEaWN0aW9uYXJ5W25ld05vZGUuRmlsZUxvY2F0aW9uLlVyaS5Ub1N0cmluZygpXSA9IG5ld05vZGU7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIHJ1bi5GaWxlcyA9IG5ld0RpY3Rpb25hcnk7DQogICAgICAgIH0NCg0KICAgICAgICBwcml2YXRlIHN0YXRpYyBVcmkgQ29tYmluZVVyaXMoVXJpIGJhc2VVcmksIFVyaSByZWxhdGl2ZVVyaSkNCiAgICAgICAgew0KICAgICAgICAgICAgVXJpIHJlbGF0aXZlUGFydCA9IHJlbGF0aXZlVXJpOw0KICAgICAgICAgICAgaWYocmVsYXRpdmVVcmkuT3JpZ2luYWxTdHJpbmcuU3RhcnRzV2l0aCgiLyIpKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHJlbGF0aXZlUGFydCA9IG5ldyBVcmkocmVsYXRpdmVVcmkuVG9TdHJpbmcoKS5UcmltU3RhcnQoJy8nKSwgVXJpS2luZC5SZWxhdGl2ZSk7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIHJldHVybiBuZXcgVXJpKGJhc2VVcmksIHJlbGF0aXZlUGFydCk7DQogICAgICAgIH0NCiAgICB9DQp9DQo=" + { + "ruleId": "CA1822", + "message": { + "text": "The 'this' parameter (or 'Me' in Visual Basic) of 'Validator.GetPropertyNames(JObject)' is never used. Mark the member as static (or Shared in Visual Basic) or use 'this'/'Me' in the method body or at least one property accessor, if appropriate." }, - "hashes": [ - { - "value": "D6C8C3453CE54E932D053FF83579AD42", - "algorithm": "md5" - }, - { - "value": "43266DE86ED7EB884EB196BF5CF62D3A4D2B01A1", - "algorithm": "sha-1" - }, + "locations": [ { - "value": "E8EBFB70ABAB356B08F2B8DF421738BEFA75E5E63B511945071C47F03D75DD27", - "algorithm": "sha-256" + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Microsoft.Json.Schema.Validation.dll", + "uriBaseId": "$(ProjectDir)", + "index": 2 + } + }, + "logicalLocations": [ + { + "index": 121, + "fullyQualifiedName": "microsoft.json.schema.validation.dll!Microsoft.Json.Schema.Validation.Validator.GetPropertyNames(Newtonsoft.Json.Linq.JObject)" + } + ] } - ] + ], + "properties": { + "Category": "Microsoft.Performance", + "FixCategory": "NonBreaking" + } }, - "file:///E:/src/sarif-sdk-test/src/Sarif/Visitors/AddFileReferencesVisitor.cs": { - "mimeType": "text/x-csharp", - "contents": { - "binary": "77u/Ly8gQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuDQovLyBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UuIFNlZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHByb2plY3Qgcm9vdCBmb3IgZnVsbCBsaWNlbnNlIGluZm9ybWF0aW9uLnVzaW5nIFN5c3RlbTsNCnVzaW5nIFN5c3RlbTsNCnVzaW5nIFN5c3RlbS5Db2xsZWN0aW9ucy5HZW5lcmljOw0KDQpuYW1lc3BhY2UgTWljcm9zb2Z0LkNvZGVBbmFseXNpcy5TYXJpZi5WaXNpdG9ycw0Kew0KICAgIHB1YmxpYyBjbGFzcyBBZGRGaWxlUmVmZXJlbmNlc1Zpc2l0b3IgOiBTYXJpZlJld3JpdGluZ1Zpc2l0b3INCiAgICB7DQogICAgICAgIElEaWN0aW9uYXJ5PHN0cmluZywgRmlsZURhdGE+IF9maWxlczsNCg0KICAgICAgICBwdWJsaWMgb3ZlcnJpZGUgUnVuIFZpc2l0UnVuKFJ1biBub2RlKQ0KICAgICAgICB7DQogICAgICAgICAgICBfZmlsZXMgPSBub2RlLkZpbGVzOw0KDQogICAgICAgICAgICBSdW4gcmVzdWx0ID0gYmFzZS5WaXNpdFJ1bihub2RlKTsNCiAgICAgICAgICAgIHJlc3VsdC5GaWxlcyA9IF9maWxlczsNCg0KICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsNCiAgICAgICAgfQ0KDQoNCiAgICAgICAgcHVibGljIG92ZXJyaWRlIFBoeXNpY2FsTG9jYXRpb24gVmlzaXRQaHlzaWNhbExvY2F0aW9uKFBoeXNpY2FsTG9jYXRpb24gbm9kZSkNCiAgICAgICAgew0KICAgICAgICAgICAgLy8gU3RyaWN0bHkgc3BlYWtpbmcsIHNvbWUgZWxlbWVudHMgdGhhdCBtYXkgY29udHJpYnV0ZSB0byBhIGZpbGVzIHRhYmxlIA0KICAgICAgICAgICAgLy8ga2V5IGFyZSBjYXNlIHNlbnNpdGl2ZSwgZS5nLiwgZXZlcnl0aGluZyBidXQgdGhlIHNjaGVtYSBhbmQgcHJvdG9jb2wgb2YgYQ0KICAgICAgICAgICAgLy8gd2ViIFVSSS4gV2UgZG9uJ3QgaGF2ZSBhIHByb3BlciBjb21wYXJlciBpbXBsZW1lbnRhdGlvbiB0aGF0IGNhbiBoYW5kbGUgDQogICAgICAgICAgICAvLyBhbGwgY2FzZXMuIEZvciBub3csIHdlIGNvdmVyIHRoZSBXaW5kb3dzIGhhcHB5IHBhdGgsIHdoaWNoIGFzc3VtZXMgdGhhdA0KICAgICAgICAgICAgLy8gbW9zdCBVUklzIGluIGxvZyBmaWxlcyBhcmUgZmlsZSBwYXRocyAod2hpY2ggYXJlIGNhc2UtaW5zZW5zaXRpdmUpDQogICAgICAgICAgICAvLw0KICAgICAgICAgICAgLy8gVHJhY2tpbmcgaXRlbSBmb3IgYW4gaW1wcm92ZWQgY29tcGFyZXI6DQogICAgICAgICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vTWljcm9zb2Z0L3NhcmlmLXNkay9pc3N1ZXMvOTczDQogICAgICAgICAgICBfZmlsZXMgPSBfZmlsZXMgPz8gbmV3IERpY3Rpb25hcnk8c3RyaW5nLCBGaWxlRGF0YT4oU3RyaW5nQ29tcGFyZXIuT3JkaW5hbElnbm9yZUNhc2UpOw0KDQogICAgICAgICAgICBGaWxlTG9jYXRpb24gZmlsZUxvY2F0aW9uID0gbm9kZS5GaWxlTG9jYXRpb247DQoNCiAgICAgICAgICAgIHN0cmluZyB1cmlUZXh0ID0gVXJpLkVzY2FwZVVyaVN0cmluZyhmaWxlTG9jYXRpb24uVXJpLlRvU3RyaW5nKCkpOw0KDQogICAgICAgICAgICBpZiAoIXN0cmluZy5Jc051bGxPckVtcHR5KGZpbGVMb2NhdGlvbi5VcmlCYXNlSWQpKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIC8vIFNlZSBFWEFNUExFIDMgb2YgMy4xMS4xMy4yICdQcm9wZXJ0eSBOYW1lcycgb2YNCiAgICAgICAgICAgICAgICAvLyBTQVJJRiB2MiAnZmlsZXMnIHByb3BlcnR5IHNwZWNpZmljYXRpb24gDQogICAgICAgICAgICAgICAgdXJpVGV4dCA9ICIjIiArIGZpbGVMb2NhdGlvbi5VcmlCYXNlSWQgKyAiIyIgKyB1cmlUZXh0Ow0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAvLyBJZiB0aGUgZmlsZSBhbHJlYWR5IGV4aXN0cywgd2Ugd2lsbCBub3QgaW5zZXJ0IG9uZSBhcyB3ZSB3YW50IHRvIA0KICAgICAgICAgICAgLy8gcHJlc2VydmUgbWltZS10eXBlLCBoYXNoIGRldGFpbHMsIGFuZCBvdGhlciBpbmZvcm1hdGlvbiB0aGF0IA0KICAgICAgICAgICAgLy8gbWF5IGFscmVhZHkgYmUgcHJlc2VudA0KICAgICAgICAgICAgaWYgKCFfZmlsZXMuQ29udGFpbnNLZXkodXJpVGV4dCkpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgc3RyaW5nIG1pbWVUeXBlID0gV3JpdGVycy5NaW1lVHlwZS5EZXRlcm1pbmVGcm9tRmlsZUV4dGVuc2lvbih1cmlUZXh0KTsNCg0KICAgICAgICAgICAgICAgIF9maWxlc1t1cmlUZXh0XSA9IG5ldyBGaWxlRGF0YSgpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBNaW1lVHlwZSA9IG1pbWVUeXBlDQogICAgICAgICAgICAgICAgfTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgcmV0dXJuIGJhc2UuVmlzaXRQaHlzaWNhbExvY2F0aW9uKG5vZGUpOw0KICAgICAgICB9DQogICAgfQ0KfQ0K" + { + "ruleId": "CA1822", + "message": { + "text": "The 'this' parameter (or 'Me' in Visual Basic) of 'Validator.TokenMatchesEnum(JToken, IList)' is never used. Mark the member as static (or Shared in Visual Basic) or use 'this'/'Me' in the method body or at least one property accessor, if appropriate." }, - "hashes": [ - { - "value": "C5D0A775A5ADCD19AE0C5DE29D0CA639", - "algorithm": "md5" - }, - { - "value": "4665932F1C9B5CA1ADE69C333F594B554E0EE82F", - "algorithm": "sha-1" - }, + "locations": [ { - "value": "FDCB2AB5B880B12B354A81CB6B02A69F14B78AC8E51B50386A0347A6C608DFA4", - "algorithm": "sha-256" + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Microsoft.Json.Schema.Validation.dll", + "uriBaseId": "$(ProjectDir)", + "index": 2 + } + }, + "logicalLocations": [ + { + "index": 122, + "fullyQualifiedName": "microsoft.json.schema.validation.dll!Microsoft.Json.Schema.Validation.Validator.TokenMatchesEnum(Newtonsoft.Json.Linq.JToken,System.Collections.Generic.IList`1)" + } + ] } - ] + ], + "properties": { + "Category": "Microsoft.Performance", + "FixCategory": "NonBreaking" + } }, - "file:///E:/src/sarif-sdk-test/src/Sarif/Visitors/InsertOptionalDataVisitor.cs": { - "mimeType": "text/x-csharp", - "contents": { - "binary": "77u/Ly8gQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuDQovLyBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UuIFNlZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHByb2plY3Qgcm9vdCBmb3IgZnVsbCBsaWNlbnNlIGluZm9ybWF0aW9uLg0KdXNpbmcgU3lzdGVtOw0KdXNpbmcgU3lzdGVtLkNvbGxlY3Rpb25zLkdlbmVyaWM7DQp1c2luZyBTeXN0ZW0uR2xvYmFsaXphdGlvbjsNCnVzaW5nIFN5c3RlbS5JTzsNCnVzaW5nIFN5c3RlbS5MaW5xOw0KdXNpbmcgU3lzdGVtLlRleHQ7DQoNCm5hbWVzcGFjZSBNaWNyb3NvZnQuQ29kZUFuYWx5c2lzLlNhcmlmLlZpc2l0b3JzDQp7DQogICAgcHVibGljIGNsYXNzIEluc2VydE9wdGlvbmFsRGF0YVZpc2l0b3IgOiBTYXJpZlJld3JpdGluZ1Zpc2l0b3INCiAgICB7DQogICAgICAgIGludGVybmFsIElGaWxlU3lzdGVtIHNfZmlsZVN5c3RlbSA9IG5ldyBGaWxlU3lzdGVtKCk7DQoNCiAgICAgICAgcHJpdmF0ZSBSdW4gX3J1bjsNCiAgICAgICAgcHJpdmF0ZSBzdHJpbmcgX3J1bGVJZDsNCiAgICAgICAgcHJpdmF0ZSBGaWxlUmVnaW9uc0NhY2hlIF9maWxlUmVnaW9uc0NhY2hlOw0KICAgICAgICBwcml2YXRlIHJlYWRvbmx5IE9wdGlvbmFsbHlFbWl0dGVkRGF0YSBfZGF0YVRvSW5zZXJ0Ow0KICAgICAgICANCiAgICAgICAgcHVibGljIEluc2VydE9wdGlvbmFsRGF0YVZpc2l0b3IoT3B0aW9uYWxseUVtaXR0ZWREYXRhIGRhdGFUb0luc2VydCkNCiAgICAgICAgew0KICAgICAgICAgICAgX2RhdGFUb0luc2VydCA9IGRhdGFUb0luc2VydDsNCiAgICAgICAgfQ0KDQogICAgICAgIHB1YmxpYyBvdmVycmlkZSBSdW4gVmlzaXRSdW4oUnVuIG5vZGUpDQogICAgICAgIHsNCiAgICAgICAgICAgIF9ydW4gPSBub2RlOw0KDQogICAgICAgICAgICBpZiAobm9kZSA9PSBudWxsKSB7IHJldHVybiBudWxsOyB9DQoNCiAgICAgICAgICAgIGJvb2wgc2NyYXBlRmlsZVJlZmVyZW5jZXMgPSBfZGF0YVRvSW5zZXJ0LkluY2x1ZGVzKE9wdGlvbmFsbHlFbWl0dGVkRGF0YS5IYXNoZXMpIHx8DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX2RhdGFUb0luc2VydC5JbmNsdWRlcyhPcHRpb25hbGx5RW1pdHRlZERhdGEuVGV4dEZpbGVzKSB8fA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9kYXRhVG9JbnNlcnQuSW5jbHVkZXMoT3B0aW9uYWxseUVtaXR0ZWREYXRhLkJpbmFyeUZpbGVzKTsNCg0KICAgICAgICAgICAgaWYgKHNjcmFwZUZpbGVSZWZlcmVuY2VzKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHZhciB2aXNpdG9yID0gbmV3IEFkZEZpbGVSZWZlcmVuY2VzVmlzaXRvcigpOw0KICAgICAgICAgICAgICAgIHZpc2l0b3IuVmlzaXRSdW4obm9kZSk7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIGlmIChub2RlLkZpbGVzICE9IG51bGwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgLy8gTm90ZSwgd2UgbW9kaWZ5IHRoaXMgY29sbGVjdGlvbiBhcyAgd2UgZW51bWVyYXRlIGl0Lg0KICAgICAgICAgICAgICAgIC8vIEhlbmNlIHRoZSBuZWVkIHRvIGNvbnZlcnQgdG8gYW4gYXJyYXkgaGVyZS4gT3RoZXJ3aXNlLA0KICAgICAgICAgICAgICAgIC8vIHRoZSBzdGFuZGFyZCBjb2xsZWN0aW9uIGVudW1lcmF0b3Igd2lsbCB0aHJvdyBhbg0KICAgICAgICAgICAgICAgIC8vIGV4Y2VwdGlvbiBhZnRlciB3ZSB0b3VjaCB0aGUgY29sbGVjdGlvbi4NCiAgICAgICAgICAgICAgICB2YXIga2V5cyA9IG5vZGUuRmlsZXMuS2V5cy5Ub0FycmF5KCk7DQogICAgICAgICAgICAgICAgZm9yZWFjaCAoc3RyaW5nIGtleSBpbiBrZXlzKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHZhbHVlID0gbm9kZS5GaWxlc1trZXldOw0KICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWUgIT0gbnVsbCkNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgbm9kZS5GaWxlc1trZXldID0gVmlzaXREaWN0aW9uYXJ5VmFsdWVOdWxsQ2hlY2tlZChrZXksIHZhbHVlKTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgcmV0dXJuIGJhc2UuVmlzaXRSdW4obm9kZSk7DQogICAgICAgIH0NCg0KICAgICAgICBwdWJsaWMgb3ZlcnJpZGUgUGh5c2ljYWxMb2NhdGlvbiBWaXNpdFBoeXNpY2FsTG9jYXRpb24oUGh5c2ljYWxMb2NhdGlvbiBub2RlKQ0KICAgICAgICB7DQogICAgICAgICAgICBpZiAobm9kZS5SZWdpb24gPT0gbnVsbCB8fCBub2RlLlJlZ2lvbi5Jc0JpbmFyeVJlZ2lvbikNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBnb3RvIEV4aXQ7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIGJvb2wgaW5zZXJ0UmVnaW9uU25pcHBldHMgPSBfZGF0YVRvSW5zZXJ0LkluY2x1ZGVzKE9wdGlvbmFsbHlFbWl0dGVkRGF0YS5SZWdpb25TbmlwcGV0cyk7DQogICAgICAgICAgICBib29sIG92ZXJ3cml0ZUV4aXN0aW5nRGF0YSA9IF9kYXRhVG9JbnNlcnQuSW5jbHVkZXMoT3B0aW9uYWxseUVtaXR0ZWREYXRhLk92ZXJ3cml0ZUV4aXN0aW5nRGF0YSk7DQogICAgICAgICAgICBib29sIGluc2VydENvbnRleHRDb2RlU25pcHBldHMgPSBfZGF0YVRvSW5zZXJ0LkluY2x1ZGVzKE9wdGlvbmFsbHlFbWl0dGVkRGF0YS5Db250ZXh0UmVnaW9uU25pcHBldHMpOw0KICAgICAgICAgICAgYm9vbCBwb3B1bGF0ZVJlZ2lvblByb3BlcnRpZXMgPSBfZGF0YVRvSW5zZXJ0LkluY2x1ZGVzKE9wdGlvbmFsbHlFbWl0dGVkRGF0YS5Db21wcmVoZW5zaXZlUmVnaW9uUHJvcGVydGllcyk7DQoNCiAgICAgICAgICAgIGlmIChpbnNlcnRSZWdpb25TbmlwcGV0cyB8fCBwb3B1bGF0ZVJlZ2lvblByb3BlcnRpZXMgfHwgaW5zZXJ0Q29udGV4dENvZGVTbmlwcGV0cykNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBSZWdpb24gZXhwYW5kZWRSZWdpb247DQoNCiAgICAgICAgICAgICAgICBfZmlsZVJlZ2lvbnNDYWNoZSA9IF9maWxlUmVnaW9uc0NhY2hlID8/IG5ldyBGaWxlUmVnaW9uc0NhY2hlKF9ydW4pOw0KDQogICAgICAgICAgICAgICAgLy8gSWYgd2UgY2FuIHJlc29sdmUgYSBmaWxlIGxvY2F0aW9uIHRvIGEgbmV3bHkgY29uc3RydWN0ZWQNCiAgICAgICAgICAgICAgICAvLyBhYnNvbHV0ZSBVUkksIHdlIHdpbGwgcHJlZmVyIHRoYXQNCiAgICAgICAgICAgICAgICBpZiAoIW5vZGUuRmlsZUxvY2F0aW9uLlRyeVJlY29uc3RydWN0QWJzb2x1dGVVcmkoX3J1bi5PcmlnaW5hbFVyaUJhc2VJZHMsIG91dCBVcmkgcmVzb2x2ZWRVcmkpKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZWRVcmkgPSBub2RlLkZpbGVMb2NhdGlvbi5Vcmk7DQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgaWYgKCFyZXNvbHZlZFVyaS5Jc0Fic29sdXRlVXJpKSBnb3RvIEV4aXQ7DQoNCiAgICAgICAgICAgICAgICBleHBhbmRlZFJlZ2lvbiA9IF9maWxlUmVnaW9uc0NhY2hlLlBvcHVsYXRlVGV4dFJlZ2lvblByb3BlcnRpZXMobm9kZS5SZWdpb24sIHJlc29sdmVkVXJpLCBwb3B1bGF0ZVNuaXBwZXQ6IGluc2VydFJlZ2lvblNuaXBwZXRzKTsNCg0KICAgICAgICAgICAgICAgIEZpbGVDb250ZW50IG9yaWdpbmFsU25pcHBldCA9IG5vZGUuUmVnaW9uLlNuaXBwZXQ7DQoNCiAgICAgICAgICAgICAgICBpZiAocG9wdWxhdGVSZWdpb25Qcm9wZXJ0aWVzKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgbm9kZS5SZWdpb24gPSBleHBhbmRlZFJlZ2lvbjsNCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICBpZiAob3JpZ2luYWxTbmlwcGV0ID09IG51bGwgfHwgb3ZlcndyaXRlRXhpc3RpbmdEYXRhKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgbm9kZS5SZWdpb24uU25pcHBldCA9IGV4cGFuZGVkUmVnaW9uLlNuaXBwZXQ7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGVsc2UNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIG5vZGUuUmVnaW9uLlNuaXBwZXQgPSBvcmlnaW5hbFNuaXBwZXQ7DQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgaWYgKGluc2VydENvbnRleHRDb2RlU25pcHBldHMgJiYgKG5vZGUuQ29udGV4dFJlZ2lvbiA9PSBudWxsIHx8IG92ZXJ3cml0ZUV4aXN0aW5nRGF0YSkpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBub2RlLkNvbnRleHRSZWdpb24gPSBfZmlsZVJlZ2lvbnNDYWNoZS5Db25zdHJ1Y3RNdWx0aWxpbmVDb250ZXh0U25pcHBldChleHBhbmRlZFJlZ2lvbiwgcmVzb2x2ZWRVcmkpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgRXhpdDoNCiAgICAgICAgICAgIHJldHVybiBiYXNlLlZpc2l0UGh5c2ljYWxMb2NhdGlvbihub2RlKTsNCiAgICAgICAgfQ0KDQogICAgICAgIGludGVybmFsIEZpbGVEYXRhIFZpc2l0RGljdGlvbmFyeVZhbHVlTnVsbENoZWNrZWQoc3RyaW5nIGtleSwgRmlsZURhdGEgbm9kZSkNCiAgICAgICAgew0KICAgICAgICAgICAgRmlsZUxvY2F0aW9uIGZpbGVMb2NhdGlvbiA9IEZpbGVMb2NhdGlvbi5DcmVhdGVGcm9tRmlsZXNEaWN0aW9uYXJ5S2V5KGtleSk7DQoNCiAgICAgICAgICAgIGJvb2wgd29ya1RvRG8gPSBmYWxzZTsNCiAgICAgICAgICAgIGJvb2wgb3ZlcndyaXRlRXhpc3RpbmdEYXRhID0gX2RhdGFUb0luc2VydC5JbmNsdWRlcyhPcHRpb25hbGx5RW1pdHRlZERhdGEuT3ZlcndyaXRlRXhpc3RpbmdEYXRhKTsNCg0KICAgICAgICAgICAgd29ya1RvRG8gfD0gKG5vZGUuSGFzaGVzID09IG51bGwgfHwgb3ZlcndyaXRlRXhpc3RpbmdEYXRhKSAmJiBfZGF0YVRvSW5zZXJ0LkluY2x1ZGVzKE9wdGlvbmFsbHlFbWl0dGVkRGF0YS5IYXNoZXMpOw0KICAgICAgICAgICAgd29ya1RvRG8gfD0gKG5vZGUuQ29udGVudHM/LkJpbmFyeSA9PSBudWxsIHx8IG92ZXJ3cml0ZUV4aXN0aW5nRGF0YSkgJiYgX2RhdGFUb0luc2VydC5JbmNsdWRlcyhPcHRpb25hbGx5RW1pdHRlZERhdGEuVGV4dEZpbGVzKTsNCiAgICAgICAgICAgIHdvcmtUb0RvIHw9IChub2RlLkNvbnRlbnRzPy5CaW5hcnkgPT0gbnVsbCB8fCBvdmVyd3JpdGVFeGlzdGluZ0RhdGEpICYmIF9kYXRhVG9JbnNlcnQuSW5jbHVkZXMoT3B0aW9uYWxseUVtaXR0ZWREYXRhLkJpbmFyeUZpbGVzKTsNCg0KICAgICAgICAgICAgaWYgKHdvcmtUb0RvKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIGlmIChmaWxlTG9jYXRpb24uVHJ5UmVjb25zdHJ1Y3RBYnNvbHV0ZVVyaShfcnVuLk9yaWdpbmFsVXJpQmFzZUlkcywgb3V0IFVyaSB1cmkpKQ0KICAgICAgICAgICAgICAgIHsNCg0KICAgICAgICAgICAgICAgICAgICBFbmNvZGluZyBlbmNvZGluZyA9IG51bGw7DQoNCiAgICAgICAgICAgICAgICAgICAgaWYgKCFzdHJpbmcuSXNOdWxsT3JXaGl0ZVNwYWNlKG5vZGUuRW5jb2RpbmcpKQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICB0cnkNCiAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmNvZGluZyA9IEVuY29kaW5nLkdldEVuY29kaW5nKG5vZGUuRW5jb2RpbmcpOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgY2F0Y2ggKEFyZ3VtZW50RXhjZXB0aW9uKSB7IH0NCiAgICAgICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgICAgIGludCBsZW5ndGggPSBub2RlLkxlbmd0aDsNCiAgICAgICAgICAgICAgICAgICAgbm9kZSA9IEZpbGVEYXRhLkNyZWF0ZSh1cmksIF9kYXRhVG9JbnNlcnQsIG5vZGUuTWltZVR5cGUsIGVuY29kaW5nOiBlbmNvZGluZyk7DQogICAgICAgICAgICAgICAgICAgIG5vZGUuTGVuZ3RoID0gbGVuZ3RoOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgcmV0dXJuIGJhc2UuVmlzaXRGaWxlRGF0YShub2RlKTsNCiAgICAgICAgfQ0KDQogICAgICAgIHB1YmxpYyBvdmVycmlkZSBSZXN1bHQgVmlzaXRSZXN1bHQoUmVzdWx0IG5vZGUpDQogICAgICAgIHsNCiAgICAgICAgICAgIF9ydWxlSWQgPSBub2RlLlJ1bGVJZDsNCiAgICAgICAgICAgIG5vZGUgPSBiYXNlLlZpc2l0UmVzdWx0KG5vZGUpOw0KICAgICAgICAgICAgX3J1bGVJZCA9IG51bGw7DQoNCiAgICAgICAgICAgIHJldHVybiBub2RlOw0KICAgICAgICB9DQoNCiAgICAgICAgcHVibGljIG92ZXJyaWRlIE1lc3NhZ2UgVmlzaXRNZXNzYWdlKE1lc3NhZ2Ugbm9kZSkNCiAgICAgICAgew0KICAgICAgICAgICAgaWYgKChub2RlLlRleHQgPT0gbnVsbCB8fCBfZGF0YVRvSW5zZXJ0LkluY2x1ZGVzKE9wdGlvbmFsbHlFbWl0dGVkRGF0YS5PdmVyd3JpdGVFeGlzdGluZ0RhdGEpKSAmJg0KICAgICAgICAgICAgICAgIF9kYXRhVG9JbnNlcnQuSW5jbHVkZXMoT3B0aW9uYWxseUVtaXR0ZWREYXRhLkZsYXR0ZW5lZE1lc3NhZ2VzKSkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBSdWxlIHJ1bGUgPSBudWxsOw0KICAgICAgICAgICAgICAgIHN0cmluZyBmb3JtYXRTdHJpbmcgPSBudWxsOw0KICAgICAgICAgICAgICAgIGlmIChfcnVsZUlkICE9IG51bGwgJiYNCiAgICAgICAgICAgICAgICAgICAgX3J1bi5SZXNvdXJjZXM/LlJ1bGVzLlRyeUdldFZhbHVlKF9ydWxlSWQsIG91dCBydWxlKSA9PSB0cnVlKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgbm9kZS5UZXh0ID0gbm9kZS5Bcmd1bWVudHM/LkNvdW50ID4gMCANCiAgICAgICAgICAgICAgICAgICAgICAgID8gcnVsZS5Gb3JtYXQobm9kZS5NZXNzYWdlSWQsIG5vZGUuQXJndW1lbnRzKSANCiAgICAgICAgICAgICAgICAgICAgICAgIDogcnVsZS5NZXNzYWdlU3RyaW5nc1tub2RlLk1lc3NhZ2VJZF07DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGVsc2UgaWYgKF9ydW4uUmVzb3VyY2VzPy5NZXNzYWdlU3RyaW5ncz8uVHJ5R2V0VmFsdWUobm9kZS5NZXNzYWdlSWQsIG91dCBmb3JtYXRTdHJpbmcpID09IHRydWUpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBub2RlLlRleHQgPSBub2RlLkFyZ3VtZW50cz8uQ291bnQgPiAwDQogICAgICAgICAgICAgICAgICAgICAgICA/IHN0cmluZy5Gb3JtYXQoQ3VsdHVyZUluZm8uQ3VycmVudEN1bHR1cmUsIGZvcm1hdFN0cmluZywgbm9kZS5Bcmd1bWVudHMuVG9BcnJheSgpKQ0KICAgICAgICAgICAgICAgICAgICAgICAgOiBmb3JtYXRTdHJpbmc7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgcmV0dXJuIGJhc2UuVmlzaXRNZXNzYWdlKG5vZGUpOw0KICAgICAgICB9DQogICAgfQ0KfQ0K" + { + "ruleId": "CA1822", + "message": { + "text": "The 'this' parameter (or 'Me' in Visual Basic) of 'Validator.UnicodeLength(string)' is never used. Mark the member as static (or Shared in Visual Basic) or use 'this'/'Me' in the method body or at least one property accessor, if appropriate." }, - "hashes": [ - { - "value": "5E3F70F9B27555BFA29C79C0F12B32B7", - "algorithm": "md5" - }, - { - "value": "8C031F979EEC82EC30D1FD94983CDC57F7FBA41E", - "algorithm": "sha-1" - }, + "locations": [ { - "value": "198DD3E8E21216ABF3C577AB8A58613082692641AF2FAFD77F80F2ECD8322AAA", - "algorithm": "sha-256" + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Microsoft.Json.Schema.Validation.dll", + "uriBaseId": "$(ProjectDir)", + "index": 2 + } + }, + "logicalLocations": [ + { + "index": 123, + "fullyQualifiedName": "microsoft.json.schema.validation.dll!Microsoft.Json.Schema.Validation.Validator.UnicodeLength(System.String)" + } + ] } - ] + ], + "properties": { + "Category": "Microsoft.Performance", + "FixCategory": "NonBreaking" + } }, - "file:///E:/src/sarif-sdk-test/src/Sarif/Visitors/RebaseUriVisitor.cs": { - "mimeType": "text/x-csharp", - "contents": { - "binary": "77u/Ly8gQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIExpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgICAgICAgIA0KLy8gbGljZW5zZS4gU2VlIExJQ0VOU0UgZmlsZSBpbiB0aGUgcHJvamVjdCByb290IGZvciBmdWxsIGxpY2Vuc2UgaW5mb3JtYXRpb24uIA0KDQp1c2luZyBTeXN0ZW07DQp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsNCnVzaW5nIFN5c3RlbS5EaWFnbm9zdGljczsNCnVzaW5nIE1pY3Jvc29mdC5Db2RlQW5hbHlzaXMuU2FyaWYuUmVhZGVyczsNCnVzaW5nIE5ld3RvbnNvZnQuSnNvbjsNCg0KbmFtZXNwYWNlIE1pY3Jvc29mdC5Db2RlQW5hbHlzaXMuU2FyaWYuVmlzaXRvcnMNCnsNCiAgICAvLy8gPHN1bW1hcnk+DQogICAgLy8vIEEgY2xhc3MgdGhhdCwgZ2l2ZW4gYSB2YXJpYWJsZSBuYW1lIChlLnguICIlU1JDUk9PVCUiKSBhbmQgYSB2YWx1ZSAoZS54LiAiQzpcc3JjXHJvb3RcIiksIHJlYmFzZXMgdGhlIFVSSXMgaW4gYSBTQVJJRiBsb2cgDQogICAgLy8vIGluIG9yZGVyIHRvIG1ha2UgYSBTQVJJRiBsb2cgbm90IGRlcGVuZCBvbiBhYnNvbHV0ZSBwYXRocy9iZSBtYWNoaW5lIGluZGVwZW5kZW50Lg0KICAgIC8vLyA8L3N1bW1hcnk+DQogICAgcHVibGljIGNsYXNzIFJlYmFzZVVyaVZpc2l0b3IgOiBTYXJpZlJld3JpdGluZ1Zpc2l0b3INCiAgICB7DQogICAgICAgIGludGVybmFsIGNvbnN0IHN0cmluZyBCYXNlVXJpRGljdGlvbmFyeU5hbWUgPSAib3JpZ2luYWxVcmlCYXNlSWRzIjsNCiAgICAgICAgaW50ZXJuYWwgY29uc3Qgc3RyaW5nIEluY29ycmVjdGx5Rm9ybWF0dGVkRGljdGlvbmFyeVN1ZmZpeCA9ICIuT2xkIjsNCg0KICAgICAgICBwcml2YXRlIFVyaSBfYmFzZVVyaTsNCiAgICAgICAgcHJpdmF0ZSBzdHJpbmcgX2Jhc2VOYW1lOw0KICAgICAgICBwcml2YXRlIGJvb2wgX3JlYmFzZVJlbGF0aXZlVXJpczsNCiAgICAgICAgSURpY3Rpb25hcnk8c3RyaW5nLCBGaWxlRGF0YT4gX2ZpbGVzOw0KDQogICAgICAgIHByaXZhdGUgc3RhdGljIEpzb25TZXJpYWxpemVyU2V0dGluZ3MgX3NldHRpbmdzOw0KDQogICAgICAgIGludGVybmFsIHN0YXRpYyBKc29uU2VyaWFsaXplclNldHRpbmdzIEpzb25TZXJpYWxpemVyU2V0dGluZ3MNCiAgICAgICAgew0KICAgICAgICAgICAgZ2V0DQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgaWYgKF9zZXR0aW5ncyA9PSBudWxsKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgX3NldHRpbmdzID0gbmV3IEpzb25TZXJpYWxpemVyU2V0dGluZ3MoKTsNCiAgICAgICAgICAgICAgICAgICAgX3NldHRpbmdzLkNvbnRyYWN0UmVzb2x2ZXIgPSBTYXJpZkNvbnRyYWN0UmVzb2x2ZXIuSW5zdGFuY2U7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIHJldHVybiBfc2V0dGluZ3M7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCiAgICAgICAgDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIENyZWF0ZSBhIFJlYmFzZVVyaVZpc2l0b3IsIHdpdGggYSBnaXZlbiBuYW1lIGZvciB0aGUgQmFzZSBVUkkgYW5kIGEgdmFsdWUgZm9yIHRoZSBiYXNlIFVSSS4NCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgcHVibGljIFJlYmFzZVVyaVZpc2l0b3Ioc3RyaW5nIGJhc2VOYW1lLCBVcmkgYmFzZVVyaSkNCiAgICAgICAgew0KICAgICAgICAgICAgX2Jhc2VVcmkgPSBiYXNlVXJpOw0KICAgICAgICAgICAgX2Jhc2VOYW1lID0gYmFzZU5hbWU7DQogICAgICAgICAgICBfcmViYXNlUmVsYXRpdmVVcmlzID0gZmFsc2U7DQogICAgICAgICAgICBEZWJ1Zy5Bc3NlcnQoX2Jhc2VVcmkuSXNBYnNvbHV0ZVVyaSk7DQogICAgICAgIH0NCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBDcmVhdGUgYSBSZWJhc2VVcmlWaXNpdG9yLCB3aXRoIGEgZ2l2ZW4gbmFtZSBmb3IgdGhlIEJhc2UgVVJJIGFuZCBhIHZhbHVlIGZvciB0aGUgYmFzZSBVUkkuDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIHB1YmxpYyBSZWJhc2VVcmlWaXNpdG9yKHN0cmluZyBiYXNlTmFtZSwgYm9vbCByZWJhc2VSZWxhdGl2ZVVyaXMsIFVyaSBiYXNlVXJpKQ0KICAgICAgICB7DQogICAgICAgICAgICBfYmFzZVVyaSA9IGJhc2VVcmk7DQogICAgICAgICAgICBfYmFzZU5hbWUgPSBiYXNlTmFtZTsNCiAgICAgICAgICAgIERlYnVnLkFzc2VydChfYmFzZVVyaS5Jc0Fic29sdXRlVXJpKTsNCg0KICAgICAgICAgICAgX3JlYmFzZVJlbGF0aXZlVXJpcyA9IHJlYmFzZVJlbGF0aXZlVXJpczsNCiAgICAgICAgfQ0KDQogICAgICAgIHB1YmxpYyBvdmVycmlkZSBQaHlzaWNhbExvY2F0aW9uIFZpc2l0UGh5c2ljYWxMb2NhdGlvbihQaHlzaWNhbExvY2F0aW9uIG5vZGUpDQogICAgICAgIHsNCiAgICAgICAgICAgIFBoeXNpY2FsTG9jYXRpb24gbmV3Tm9kZSA9IGJhc2UuVmlzaXRQaHlzaWNhbExvY2F0aW9uKG5vZGUpOw0KICAgICAgICAgICAgDQogICAgICAgICAgICBpZiAoc3RyaW5nLklzTnVsbE9yRW1wdHkobmV3Tm9kZS5GaWxlTG9jYXRpb24/LlVyaUJhc2VJZCkpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgaWYgKG5ld05vZGUuRmlsZUxvY2F0aW9uLlVyaS5Jc0Fic29sdXRlVXJpICYmIF9iYXNlVXJpLklzQmFzZU9mKG5ld05vZGUuRmlsZUxvY2F0aW9uLlVyaSkpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBuZXdOb2RlLkZpbGVMb2NhdGlvbi5VcmlCYXNlSWQgPSBfYmFzZU5hbWU7DQogICAgICAgICAgICAgICAgICAgIG5ld05vZGUuRmlsZUxvY2F0aW9uLlVyaSA9IF9iYXNlVXJpLk1ha2VSZWxhdGl2ZVVyaShub2RlLkZpbGVMb2NhdGlvbi5VcmkpOw0KICAgICAgICAgICAgICAgICAgICBSZWJhc2VGaWxlc0RpY3Rpb25hcnkobmV3Tm9kZSk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGVsc2UgaWYgKF9yZWJhc2VSZWxhdGl2ZVVyaXMgJiYgIW5ld05vZGUuRmlsZUxvY2F0aW9uLlVyaS5Jc0Fic29sdXRlVXJpKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgbmV3Tm9kZS5GaWxlTG9jYXRpb24uVXJpQmFzZUlkID0gX2Jhc2VOYW1lOw0KICAgICAgICAgICAgICAgICAgICBSZWJhc2VGaWxlc0RpY3Rpb25hcnkobmV3Tm9kZSk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICByZXR1cm4gbmV3Tm9kZTsNCiAgICAgICAgfQ0KDQogICAgICAgIHB1YmxpYyBvdmVycmlkZSBSdW4gVmlzaXRSdW4oUnVuIG5vZGUpDQogICAgICAgIHsNCiAgICAgICAgICAgIF9maWxlcyA9IG5vZGUuRmlsZXM7DQoNCiAgICAgICAgICAgIFJ1biBuZXdSdW4gPSBiYXNlLlZpc2l0UnVuKG5vZGUpOw0KDQogICAgICAgICAgICBuZXdSdW4uRmlsZXMgPSBfZmlsZXM7DQoNCiAgICAgICAgICAgIC8vIElmIHRoZSBkaWN0aW9uYXJ5IGRvZXNuJ3QgZXhpc3QsIHdlIHNob3VsZCBhZGQgaXQgdG8gdGhlIHByb3BlcnRpZXMuICBJZiBpdCBkb2VzLCB3ZSBzaG91bGQgYWRkL3VwZGF0ZSB0aGUgZXhpc3RpbmcgZGljdGlvbmFyeS4NCiAgICAgICAgICAgIElEaWN0aW9uYXJ5PHN0cmluZywgVXJpPiBiYXNlVXJpRGljdGlvbmFyeSA9IG5ldyBEaWN0aW9uYXJ5PHN0cmluZywgVXJpPigpOw0KICAgICAgICAgICAgaWYgKG5vZGUuT3JpZ2luYWxVcmlCYXNlSWRzICE9IG51bGwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgYmFzZVVyaURpY3Rpb25hcnkgPSBub2RlLk9yaWdpbmFsVXJpQmFzZUlkczsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIA0KICAgICAgICAgICAgLy8gTm90ZS0tdGhpcyBpcyBhbiBhZGQgb3IgdXBkYXRlLCBzbyBpZiB0aGlzIGlzIHJ1biB0d2ljZSB3aXRoIHRoZSBzYW1lIGJhc2UgdmFyaWFibGUsIHdlJ2xsIHJlcGxhY2UgdGhlIHBhdGguDQogICAgICAgICAgICBiYXNlVXJpRGljdGlvbmFyeVtfYmFzZU5hbWVdID0gX2Jhc2VVcmk7DQogICAgICAgICAgICBuZXdSdW4uT3JpZ2luYWxVcmlCYXNlSWRzID0gYmFzZVVyaURpY3Rpb25hcnk7DQoNCiAgICAgICAgICAgIHJldHVybiBuZXdSdW47DQogICAgICAgIH0NCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBJZiB3ZSBhcmUgY2hhbmdpbmcgdGhlIFVSSXMgaW4gUmVzdWx0cyB0byBiZSByZWxhdGl2ZSwgd2UgbmVlZCB0byBhbHNvIGNoYW5nZSB0aGUgVVJJIGtleXMgaW4gdGhlIGZpbGVzIGRpY3Rpb25hcnkNCiAgICAgICAgLy8vIHRvIGJlIHJlbGF0aXZlLg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICAvLy8gPHBhcmFtIG5hbWU9Im5vZGUiPlJlc3VsdCBsb2NhdGlvbiBiZWluZyBjaGFuZ2VkIHRvIHJlbGF0aXZlLjwvcGFyYW0+DQogICAgICAgIGludGVybmFsIHZvaWQgUmViYXNlRmlsZXNEaWN0aW9uYXJ5KFBoeXNpY2FsTG9jYXRpb24gbm9kZSkNCiAgICAgICAgew0KICAgICAgICAgICAgX2ZpbGVzID0gX2ZpbGVzID8/IG5ldyBEaWN0aW9uYXJ5PHN0cmluZywgRmlsZURhdGE+KFN0cmluZ0NvbXBhcmVyLk9yZGluYWxJZ25vcmVDYXNlKTsNCg0KICAgICAgICAgICAgRmlsZUxvY2F0aW9uIGZpbGVMb2NhdGlvbiA9IG5vZGUuRmlsZUxvY2F0aW9uOw0KDQogICAgICAgICAgICBzdHJpbmcgdXJpVGV4dCA9IFVyaS5Fc2NhcGVVcmlTdHJpbmcoZmlsZUxvY2F0aW9uLlVyaS5Ub1N0cmluZygpKTsNCiAgICAgICAgICAgIHN0cmluZyB1cmlUZXh0T3JpZ2luYWwgPSB1cmlUZXh0Ow0KICAgICAgICAgICAgc3RyaW5nIHVyaVRleHRPcmlnaW5hbFdpdGhCYXNlID0gX2Jhc2VVcmkgKyB1cmlUZXh0Ow0KDQogICAgICAgICAgICBpZiAoIXN0cmluZy5Jc051bGxPckVtcHR5KGZpbGVMb2NhdGlvbi5VcmlCYXNlSWQpKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHVyaVRleHQgPSAiIyIgKyBmaWxlTG9jYXRpb24uVXJpQmFzZUlkICsgIiMiICsgdXJpVGV4dDsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgaWYgKCFfZmlsZXMuQ29udGFpbnNLZXkodXJpVGV4dCkpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgc3RyaW5nIG1pbWVUeXBlID0gV3JpdGVycy5NaW1lVHlwZS5EZXRlcm1pbmVGcm9tRmlsZUV4dGVuc2lvbih1cmlUZXh0KTsNCg0KICAgICAgICAgICAgICAgIGlmIChfZmlsZXMuQ29udGFpbnNLZXkodXJpVGV4dE9yaWdpbmFsKSkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIF9maWxlc1t1cmlUZXh0XSA9IF9maWxlc1t1cmlUZXh0T3JpZ2luYWxdOw0KICAgICAgICAgICAgICAgICAgICBfZmlsZXMuUmVtb3ZlKHVyaVRleHRPcmlnaW5hbCk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGVsc2UgaWYgKF9maWxlcy5Db250YWluc0tleSh1cmlUZXh0T3JpZ2luYWxXaXRoQmFzZSkpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBfZmlsZXNbdXJpVGV4dF0gPSBfZmlsZXNbdXJpVGV4dE9yaWdpbmFsV2l0aEJhc2VdOw0KICAgICAgICAgICAgICAgICAgICBfZmlsZXMuUmVtb3ZlKHVyaVRleHRPcmlnaW5hbFdpdGhCYXNlKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgZWxzZQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgX2ZpbGVzW3VyaVRleHRdID0gbmV3IEZpbGVEYXRhKCkNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgTWltZVR5cGUgPSBtaW1lVHlwZQ0KICAgICAgICAgICAgICAgICAgICB9Ow0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgIGludGVybmFsIHN0YXRpYyBib29sIFRyeURlc2VyaWFsaXplUHJvcGVydHlEaWN0aW9uYXJ5KFNlcmlhbGl6ZWRQcm9wZXJ0eUluZm8gc2VyaWFsaXplZFByb3BlcnR5LCBvdXQgRGljdGlvbmFyeTxzdHJpbmcsIFVyaT4gZGljdGlvbmFyeSkNCiAgICAgICAgew0KICAgICAgICAgICAgdHJ5DQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgZGljdGlvbmFyeSA9IEpzb25Db252ZXJ0LkRlc2VyaWFsaXplT2JqZWN0PERpY3Rpb25hcnk8c3RyaW5nLCBVcmk+PihzZXJpYWxpemVkUHJvcGVydHkuU2VyaWFsaXplZFZhbHVlLCBfc2V0dGluZ3MpOw0KDQogICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBEaWRuJ3QgZGVzZXJpYWxpemUgY29ycmVjdGx5DQogICAgICAgICAgICBjYXRjaCAoRXhjZXB0aW9uIGV4KQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIGlmKGV4IGlzIEpzb25TZXJpYWxpemF0aW9uRXhjZXB0aW9uIHx8IGV4IGlzIEFyZ3VtZW50TnVsbEV4Y2VwdGlvbikNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIGRpY3Rpb25hcnkgPSBudWxsOw0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIHRocm93Ow0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgICAgIA0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBJbnRlcm5hbCBhcyB1c2VkIGluIHRlc3RpbmcgYXMgYSBoZWxwZXIuDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIGludGVybmFsIHN0YXRpYyBEaWN0aW9uYXJ5PHN0cmluZywgVXJpPiBEZXNlcmlhbGl6ZVByb3BlcnR5RGljdGlvbmFyeShTZXJpYWxpemVkUHJvcGVydHlJbmZvIGluZm8pDQogICAgICAgIHsNCiAgICAgICAgICAgIHJldHVybiBKc29uQ29udmVydC5EZXNlcmlhbGl6ZU9iamVjdDxEaWN0aW9uYXJ5PHN0cmluZywgVXJpPj4oaW5mby5TZXJpYWxpemVkVmFsdWUsIF9zZXR0aW5ncyk7DQogICAgICAgIH0NCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBJbnRlcm5hbCBhcyB1c2VkIGluIHRlc3RpbmcgYXMgYSBoZWxwZXIuDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIGludGVybmFsIHN0YXRpYyBTZXJpYWxpemVkUHJvcGVydHlJbmZvIFJlc2VyaWFsaXplUHJvcGVydHlEaWN0aW9uYXJ5KERpY3Rpb25hcnk8c3RyaW5nLCBVcmk+IGRpY3Rpb25hcnkpDQogICAgICAgIHsNCiAgICAgICAgICAgIHJldHVybiBuZXcgU2VyaWFsaXplZFByb3BlcnR5SW5mbyhKc29uQ29udmVydC5TZXJpYWxpemVPYmplY3QoZGljdGlvbmFyeSwgX3NldHRpbmdzKSwgZmFsc2UpOw0KICAgICAgICB9DQogICAgfQ0KfQ0K" + { + "ruleId": "CA1811", + "message": { + "text": "'Validator.ValidateAdditionalProperties(JObject, List, AdditionalProperties)' appears to have no upstream public or protected callers." }, - "hashes": [ - { - "value": "3EB0F4C674CDE6763880800019FD3FB8", - "algorithm": "md5" - }, - { - "value": "953498CB0D7D7D75957969F1C87EF690EEC68DC2", - "algorithm": "sha-1" - }, + "locations": [ { - "value": "0FA6ADA90310F6E8F4875C974AFB0B25ACD4575C1BEDBAE40229456D25F69DBB", - "algorithm": "sha-256" + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Microsoft.Json.Schema.Validation.dll", + "uriBaseId": "$(ProjectDir)", + "index": 2 + } + }, + "logicalLocations": [ + { + "index": 124, + "fullyQualifiedName": "microsoft.json.schema.validation.dll!Microsoft.Json.Schema.Validation.Validator.ValidateAdditionalProperties(Newtonsoft.Json.Linq.JObject,System.Collections.Generic.List`1,Microsoft.Json.Schema.AdditionalProperties)" + } + ] } - ] + ], + "properties": { + "Category": "Microsoft.Performance", + "FixCategory": "NonBreaking" + } }, - "file:///E:/src/sarif-sdk-test/src/Sarif/Visitors/SarifCurrentToVersionOneVisitor.cs": { - "mimeType": "text/x-csharp", - "contents": { - "binary": "77u/Ly8gQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuDQovLyBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UuIFNlZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHByb2plY3Qgcm9vdCBmb3IgZnVsbCBsaWNlbnNlIGluZm9ybWF0aW9uLg0KDQp1c2luZyBTeXN0ZW07DQp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsNCnVzaW5nIFN5c3RlbS5JTzsNCnVzaW5nIFN5c3RlbS5MaW5xOw0KdXNpbmcgU3lzdGVtLlNlY3VyaXR5Ow0KdXNpbmcgU3lzdGVtLlRleHQ7DQp1c2luZyBNaWNyb3NvZnQuQ29kZUFuYWx5c2lzLlNhcmlmLlZlcnNpb25PbmU7DQp1c2luZyBNaWNyb3NvZnQuQ29kZUFuYWx5c2lzLlNhcmlmLldyaXRlcnM7DQp1c2luZyBVdGlsaXRpZXMgPSBNaWNyb3NvZnQuQ29kZUFuYWx5c2lzLlNhcmlmLlZpc2l0b3JzLlNhcmlmVHJhbnNmb3JtZXJVdGlsaXRpZXM7DQoNCm5hbWVzcGFjZSBNaWNyb3NvZnQuQ29kZUFuYWx5c2lzLlNhcmlmLlZpc2l0b3JzDQp7DQogICAgcHVibGljIGNsYXNzIFNhcmlmQ3VycmVudFRvVmVyc2lvbk9uZVZpc2l0b3IgOiBTYXJpZlJld3JpdGluZ1Zpc2l0b3INCiAgICB7DQogICAgICAgIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IFNhcmlmVmVyc2lvbiBGcm9tU2FyaWZWZXJzaW9uID0gU2FyaWZWZXJzaW9uLlR3b1plcm9aZXJvOw0KICAgICAgICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBzdHJpbmcgRnJvbVByb3BlcnR5QmFnUHJlZml4ID0NCiAgICAgICAgICAgIFV0aWxpdGllcy5Qcm9wZXJ0eUJhZ1RyYW5zZm9ybWVySXRlbVByZWZpeGVzW0Zyb21TYXJpZlZlcnNpb25dOw0KDQogICAgICAgIHByaXZhdGUgUnVuVmVyc2lvbk9uZSBfY3VycmVudFJ1biA9IG51bGw7DQogICAgICAgIHByaXZhdGUgUnVuIF9jdXJyZW50VjJSdW4gPSBudWxsOw0KDQogICAgICAgIHB1YmxpYyBTYXJpZkxvZ1ZlcnNpb25PbmUgU2FyaWZMb2dWZXJzaW9uT25lIHsgZ2V0OyBwcml2YXRlIHNldDsgfQ0KDQogICAgICAgIHB1YmxpYyBvdmVycmlkZSBTYXJpZkxvZyBWaXNpdFNhcmlmTG9nKFNhcmlmTG9nIHYyU2FyaWZMb2cpDQogICAgICAgIHsNCiAgICAgICAgICAgIFNhcmlmTG9nVmVyc2lvbk9uZSA9IG5ldyBTYXJpZkxvZ1ZlcnNpb25PbmUoU2FyaWZWZXJzaW9uVmVyc2lvbk9uZS5PbmVaZXJvWmVyby5Db252ZXJ0VG9TY2hlbWFVcmkoKSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU2FyaWZWZXJzaW9uVmVyc2lvbk9uZS5PbmVaZXJvWmVybywNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IExpc3Q8UnVuVmVyc2lvbk9uZT4oKSk7DQoNCiAgICAgICAgICAgIGZvcmVhY2ggKFJ1biB2MlJ1biBpbiB2MlNhcmlmTG9nLlJ1bnMpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgU2FyaWZMb2dWZXJzaW9uT25lLlJ1bnMuQWRkKENyZWF0ZVJ1bih2MlJ1bikpOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICByZXR1cm4gbnVsbDsNCiAgICAgICAgfQ0KDQogICAgICAgIGludGVybmFsIEFubm90YXRlZENvZGVMb2NhdGlvblZlcnNpb25PbmUgQ3JlYXRlQW5ub3RhdGVkQ29kZUxvY2F0aW9uKExvY2F0aW9uIHYyTG9jYXRpb24pDQogICAgICAgIHsNCiAgICAgICAgICAgIEFubm90YXRlZENvZGVMb2NhdGlvblZlcnNpb25PbmUgYW5ub3RhdGVkQ29kZUxvY2F0aW9uID0gbnVsbDsNCg0KICAgICAgICAgICAgaWYgKHYyTG9jYXRpb24gIT0gbnVsbCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBhbm5vdGF0ZWRDb2RlTG9jYXRpb24gPSBuZXcgQW5ub3RhdGVkQ29kZUxvY2F0aW9uVmVyc2lvbk9uZQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgQW5ub3RhdGlvbnMgPSB2MkxvY2F0aW9uLkFubm90YXRpb25zPy5TZWxlY3QoQ3JlYXRlQW5ub3RhdGlvbikuVG9MaXN0KCksDQogICAgICAgICAgICAgICAgICAgIEZ1bGx5UXVhbGlmaWVkTG9naWNhbE5hbWUgPSB2MkxvY2F0aW9uLkZ1bGx5UXVhbGlmaWVkTG9naWNhbE5hbWUsDQogICAgICAgICAgICAgICAgICAgIExvZ2ljYWxMb2NhdGlvbktleSA9IHYyTG9jYXRpb24uRnVsbHlRdWFsaWZpZWRMb2dpY2FsTmFtZSwNCiAgICAgICAgICAgICAgICAgICAgTWVzc2FnZSA9IHYyTG9jYXRpb24uTWVzc2FnZT8uVGV4dCwNCiAgICAgICAgICAgICAgICAgICAgUGh5c2ljYWxMb2NhdGlvbiA9IENyZWF0ZVBoeXNpY2FsTG9jYXRpb24odjJMb2NhdGlvbi5QaHlzaWNhbExvY2F0aW9uKSwNCiAgICAgICAgICAgICAgICAgICAgU25pcHBldCA9IHYyTG9jYXRpb24uUGh5c2ljYWxMb2NhdGlvbj8uUmVnaW9uPy5TbmlwcGV0Py5UZXh0DQogICAgICAgICAgICAgICAgfTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgcmV0dXJuIGFubm90YXRlZENvZGVMb2NhdGlvbjsNCiAgICAgICAgfQ0KDQogICAgICAgIGludGVybmFsIEFubm90YXRlZENvZGVMb2NhdGlvblZlcnNpb25PbmUgQ3JlYXRlQW5ub3RhdGVkQ29kZUxvY2F0aW9uKFRocmVhZEZsb3dMb2NhdGlvbiB2MlRocmVhZEZsb3dMb2NhdGlvbikNCiAgICAgICAgew0KICAgICAgICAgICAgQW5ub3RhdGVkQ29kZUxvY2F0aW9uVmVyc2lvbk9uZSBhbm5vdGF0ZWRDb2RlTG9jYXRpb24gPSBudWxsOw0KDQogICAgICAgICAgICBpZiAodjJUaHJlYWRGbG93TG9jYXRpb24gIT0gbnVsbCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBhbm5vdGF0ZWRDb2RlTG9jYXRpb24gPSBDcmVhdGVBbm5vdGF0ZWRDb2RlTG9jYXRpb24odjJUaHJlYWRGbG93TG9jYXRpb24uTG9jYXRpb24pOw0KICAgICAgICAgICAgICAgIGFubm90YXRlZENvZGVMb2NhdGlvbiA9IGFubm90YXRlZENvZGVMb2NhdGlvbiA/PyBuZXcgQW5ub3RhdGVkQ29kZUxvY2F0aW9uVmVyc2lvbk9uZSgpOw0KDQogICAgICAgICAgICAgICAgYW5ub3RhdGVkQ29kZUxvY2F0aW9uLkltcG9ydGFuY2UgPSBVdGlsaXRpZXMuQ3JlYXRlQW5ub3RhdGVkQ29kZUxvY2F0aW9uSW1wb3J0YW5jZSh2MlRocmVhZEZsb3dMb2NhdGlvbi5JbXBvcnRhbmNlKTsNCiAgICAgICAgICAgICAgICBhbm5vdGF0ZWRDb2RlTG9jYXRpb24uTW9kdWxlID0gdjJUaHJlYWRGbG93TG9jYXRpb24uTW9kdWxlOw0KICAgICAgICAgICAgICAgIGFubm90YXRlZENvZGVMb2NhdGlvbi5Qcm9wZXJ0aWVzID0gdjJUaHJlYWRGbG93TG9jYXRpb24uUHJvcGVydGllczsNCiAgICAgICAgICAgICAgICBhbm5vdGF0ZWRDb2RlTG9jYXRpb24uU3RhdGUgPSB2MlRocmVhZEZsb3dMb2NhdGlvbi5TdGF0ZTsNCiAgICAgICAgICAgICAgICBhbm5vdGF0ZWRDb2RlTG9jYXRpb24uU3RlcCA9IHYyVGhyZWFkRmxvd0xvY2F0aW9uLkV4ZWN1dGlvbk9yZGVyOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICByZXR1cm4gYW5ub3RhdGVkQ29kZUxvY2F0aW9uOw0KICAgICAgICB9DQoNCiAgICAgICAgaW50ZXJuYWwgQW5ub3RhdGlvblZlcnNpb25PbmUgQ3JlYXRlQW5ub3RhdGlvbihSZWdpb24gdjJSZWdpb24pDQogICAgICAgIHsNCiAgICAgICAgICAgIEFubm90YXRpb25WZXJzaW9uT25lIGFubm90YXRpb24gPSBudWxsOw0KDQogICAgICAgICAgICBpZiAodjJSZWdpb24gIT0gbnVsbCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBhbm5vdGF0aW9uID0gbmV3IEFubm90YXRpb25WZXJzaW9uT25lDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBMb2NhdGlvbnMgPSBuZXcgTGlzdDxQaHlzaWNhbExvY2F0aW9uVmVyc2lvbk9uZT4NCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgQ3JlYXRlUGh5c2ljYWxMb2NhdGlvbih2MlJlZ2lvbikNCiAgICAgICAgICAgICAgICAgICAgfSwNCiAgICAgICAgICAgICAgICAgICAgTWVzc2FnZSA9IHYyUmVnaW9uLk1lc3NhZ2U/LlRleHQNCiAgICAgICAgICAgICAgICB9Ow0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICByZXR1cm4gYW5ub3RhdGlvbjsNCiAgICAgICAgfQ0KDQogICAgICAgIGludGVybmFsIEV4Y2VwdGlvbkRhdGFWZXJzaW9uT25lIENyZWF0ZUV4Y2VwdGlvbkRhdGEoRXhjZXB0aW9uRGF0YSB2MkV4Y2VwdGlvbkRhdGEpDQogICAgICAgIHsNCiAgICAgICAgICAgIEV4Y2VwdGlvbkRhdGFWZXJzaW9uT25lIGV4Y2VwdGlvbkRhdGEgPSBudWxsOw0KDQogICAgICAgICAgICBpZiAodjJFeGNlcHRpb25EYXRhICE9IG51bGwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgZXhjZXB0aW9uRGF0YSA9IG5ldyBFeGNlcHRpb25EYXRhVmVyc2lvbk9uZQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgSW5uZXJFeGNlcHRpb25zID0gdjJFeGNlcHRpb25EYXRhLklubmVyRXhjZXB0aW9ucz8uU2VsZWN0KENyZWF0ZUV4Y2VwdGlvbkRhdGEpLlRvTGlzdCgpLA0KICAgICAgICAgICAgICAgICAgICBLaW5kID0gdjJFeGNlcHRpb25EYXRhLktpbmQsDQogICAgICAgICAgICAgICAgICAgIE1lc3NhZ2UgPSB2MkV4Y2VwdGlvbkRhdGEuTWVzc2FnZSwNCiAgICAgICAgICAgICAgICAgICAgU3RhY2sgPSBDcmVhdGVTdGFjayh2MkV4Y2VwdGlvbkRhdGEuU3RhY2spDQogICAgICAgICAgICAgICAgfTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgcmV0dXJuIGV4Y2VwdGlvbkRhdGE7DQogICAgICAgIH0NCg0KICAgICAgICBpbnRlcm5hbCBGaWxlQ2hhbmdlVmVyc2lvbk9uZSBDcmVhdGVGaWxlQ2hhbmdlKEZpbGVDaGFuZ2UgdjJGaWxlQ2hhbmdlKQ0KICAgICAgICB7DQogICAgICAgICAgICBGaWxlQ2hhbmdlVmVyc2lvbk9uZSBmaWxlQ2hhbmdlID0gbnVsbDsNCg0KICAgICAgICAgICAgaWYgKHYyRmlsZUNoYW5nZSAhPSBudWxsKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHN0cmluZyBlbmNvZGluZ05hbWUgPSBHZXRGaWxlRW5jb2RpbmdOYW1lKHYyRmlsZUNoYW5nZS5GaWxlTG9jYXRpb24/LlVyaSk7DQogICAgICAgICAgICAgICAgRW5jb2RpbmcgZW5jb2RpbmcgPSBHZXRGaWxlRW5jb2RpbmcoZW5jb2RpbmdOYW1lKTsNCg0KICAgICAgICAgICAgICAgIHRyeQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgZmlsZUNoYW5nZSA9IG5ldyBGaWxlQ2hhbmdlVmVyc2lvbk9uZQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICBSZXBsYWNlbWVudHMgPSB2MkZpbGVDaGFuZ2UuUmVwbGFjZW1lbnRzPy5TZWxlY3QociA9PiBDcmVhdGVSZXBsYWNlbWVudChyLCBlbmNvZGluZykpLlRvTGlzdCgpLA0KICAgICAgICAgICAgICAgICAgICAgICAgVXJpID0gdjJGaWxlQ2hhbmdlLkZpbGVMb2NhdGlvbj8uVXJpLA0KICAgICAgICAgICAgICAgICAgICAgICAgVXJpQmFzZUlkID0gdjJGaWxlQ2hhbmdlLkZpbGVMb2NhdGlvbj8uVXJpQmFzZUlkDQogICAgICAgICAgICAgICAgICAgIH07DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGNhdGNoIChVbmtub3duRW5jb2RpbmdFeGNlcHRpb24gZXgpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAvLyBTZXQgdGhlIHVua25vd24gZW5jb2RpbmcgbmFtZSBzbyB0aGUgY2FsbGVyIGNhbiBwcm92aWRlIHVzZWZ1bCByZXBvcnRpbmcNCiAgICAgICAgICAgICAgICAgICAgZXguRW5jb2RpbmdOYW1lID0gZW5jb2RpbmdOYW1lOw0KICAgICAgICAgICAgICAgICAgICB0aHJvdyBleDsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIHJldHVybiBmaWxlQ2hhbmdlOw0KICAgICAgICB9DQoNCiAgICAgICAgcHJpdmF0ZSBzdHJpbmcgR2V0RmlsZUVuY29kaW5nTmFtZShVcmkgdXJpKQ0KICAgICAgICB7DQogICAgICAgICAgICBzdHJpbmcgZW5jb2RpbmdOYW1lID0gbnVsbDsNCiAgICAgICAgICAgIElEaWN0aW9uYXJ5PHN0cmluZywgRmlsZURhdGE+IGZpbGVzRGljdGlvbmFyeSA9IF9jdXJyZW50VjJSdW4uRmlsZXM7DQoNCiAgICAgICAgICAgIEZpbGVEYXRhIGZpbGVEYXRhOw0KICAgICAgICAgICAgaWYgKHVyaSAhPSBudWxsICYmDQogICAgICAgICAgICAgICAgZmlsZXNEaWN0aW9uYXJ5ICE9IG51bGwgJiYNCiAgICAgICAgICAgICAgICBmaWxlc0RpY3Rpb25hcnkuVHJ5R2V0VmFsdWUodXJpLk9yaWdpbmFsU3RyaW5nLCBvdXQgZmlsZURhdGEpKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIGVuY29kaW5nTmFtZSA9IGZpbGVEYXRhLkVuY29kaW5nOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICByZXR1cm4gZW5jb2RpbmdOYW1lOw0KICAgICAgICB9DQoNCiAgICAgICAgcHJpdmF0ZSBFbmNvZGluZyBHZXRGaWxlRW5jb2Rpbmcoc3RyaW5nIGVuY29kaW5nTmFtZSkNCiAgICAgICAgew0KICAgICAgICAgICAgRW5jb2RpbmcgZW5jb2RpbmcgPSBudWxsOw0KDQogICAgICAgICAgICB0cnkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBlbmNvZGluZyA9IEVuY29kaW5nLkdldEVuY29kaW5nKGVuY29kaW5nTmFtZSk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBjYXRjaCAoQXJndW1lbnRFeGNlcHRpb24pIHsgfQ0KDQogICAgICAgICAgICByZXR1cm4gZW5jb2Rpbmc7DQogICAgICAgIH0NCg0KICAgICAgICBpbnRlcm5hbCBGaWxlRGF0YVZlcnNpb25PbmUgQ3JlYXRlRmlsZURhdGEoRmlsZURhdGEgdjJGaWxlRGF0YSkNCiAgICAgICAgew0KICAgICAgICAgICAgRmlsZURhdGFWZXJzaW9uT25lIGZpbGVEYXRhID0gbnVsbDsNCg0KICAgICAgICAgICAgaWYgKHYyRmlsZURhdGEgIT0gbnVsbCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBmaWxlRGF0YSA9IG5ldyBGaWxlRGF0YVZlcnNpb25PbmUNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIEhhc2hlcyA9IHYyRmlsZURhdGEuSGFzaGVzPy5TZWxlY3QoQ3JlYXRlSGFzaCkuVG9MaXN0KCksDQogICAgICAgICAgICAgICAgICAgIExlbmd0aCA9IHYyRmlsZURhdGEuTGVuZ3RoLA0KICAgICAgICAgICAgICAgICAgICBNaW1lVHlwZSA9IHYyRmlsZURhdGEuTWltZVR5cGUsDQogICAgICAgICAgICAgICAgICAgIE9mZnNldCA9IHYyRmlsZURhdGEuT2Zmc2V0LA0KICAgICAgICAgICAgICAgICAgICBQYXJlbnRLZXkgPSB2MkZpbGVEYXRhLlBhcmVudEtleSwNCiAgICAgICAgICAgICAgICAgICAgUHJvcGVydGllcyA9IHYyRmlsZURhdGEuUHJvcGVydGllcywNCiAgICAgICAgICAgICAgICAgICAgVXJpID0gdjJGaWxlRGF0YS5GaWxlTG9jYXRpb24/LlVyaSwNCiAgICAgICAgICAgICAgICAgICAgVXJpQmFzZUlkID0gdjJGaWxlRGF0YS5GaWxlTG9jYXRpb24/LlVyaUJhc2VJZA0KICAgICAgICAgICAgICAgIH07DQoNCiAgICAgICAgICAgICAgICBpZiAodjJGaWxlRGF0YS5Db250ZW50cyAhPSBudWxsKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgZmlsZURhdGEuQ29udGVudHMgPSBNaW1lVHlwZS5Jc1RleHR1YWxNaW1lVHlwZSh2MkZpbGVEYXRhLk1pbWVUeXBlKSA/DQogICAgICAgICAgICAgICAgICAgICAgICBTYXJpZlV0aWxpdGllcy5HZXRVdGY4QmFzZTY0U3RyaW5nKHYyRmlsZURhdGEuQ29udGVudHMuVGV4dCkgOg0KICAgICAgICAgICAgICAgICAgICAgICAgdjJGaWxlRGF0YS5Db250ZW50cy5CaW5hcnk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICByZXR1cm4gZmlsZURhdGE7DQogICAgICAgIH0NCg0KICAgICAgICBpbnRlcm5hbCBGaXhWZXJzaW9uT25lIENyZWF0ZUZpeChGaXggdjJGaXgpDQogICAgICAgIHsNCiAgICAgICAgICAgIEZpeFZlcnNpb25PbmUgZml4ID0gbnVsbDsNCg0KICAgICAgICAgICAgaWYgKHYyRml4ICE9IG51bGwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgdHJ5DQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBmaXggPSBuZXcgRml4VmVyc2lvbk9uZSgpDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIERlc2NyaXB0aW9uID0gdjJGaXguRGVzY3JpcHRpb24/LlRleHQsDQogICAgICAgICAgICAgICAgICAgICAgICBGaWxlQ2hhbmdlcyA9IHYyRml4LkZpbGVDaGFuZ2VzPy5TZWxlY3QoQ3JlYXRlRmlsZUNoYW5nZSkuVG9MaXN0KCkNCiAgICAgICAgICAgICAgICAgICAgfTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgY2F0Y2ggKFVua25vd25FbmNvZGluZ0V4Y2VwdGlvbikNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIC8vIEEgcmVwbGFjZW1lbnQgaW4gdGhpcyBmaXggc3BlY2lmaWVzIHBsYWluIHRleHQsIGJ1dCB0aGUgZmlsZSdzDQogICAgICAgICAgICAgICAgICAgIC8vIGVuY29kaW5nIGlzIHVua25vd24gb3IgdW5zdXBwb3J0ZWQsIHNvIHdlIHJlZnVzZSB0byB0cmFuc2Zvcm0gdGhlIGZpeC4NCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICByZXR1cm4gZml4Ow0KICAgICAgICB9DQoNCiAgICAgICAgaW50ZXJuYWwgSGFzaFZlcnNpb25PbmUgQ3JlYXRlSGFzaChIYXNoIHYySGFzaCkNCiAgICAgICAgew0KICAgICAgICAgICAgSGFzaFZlcnNpb25PbmUgaGFzaCA9IG51bGw7DQoNCiAgICAgICAgICAgIGlmICh2Mkhhc2ggIT0gbnVsbCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBBbGdvcml0aG1LaW5kVmVyc2lvbk9uZSBhbGdvcml0aG07DQogICAgICAgICAgICAgICAgaWYgKCFVdGlsaXRpZXMuQWxnb3JpdGhtTmFtZUtpbmRNYXAuVHJ5R2V0VmFsdWUodjJIYXNoLkFsZ29yaXRobSwgb3V0IGFsZ29yaXRobSkpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBhbGdvcml0aG0gPSBBbGdvcml0aG1LaW5kVmVyc2lvbk9uZS5Vbmtub3duOw0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgIGhhc2ggPSBuZXcgSGFzaFZlcnNpb25PbmUNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIEFsZ29yaXRobSA9IGFsZ29yaXRobSwNCiAgICAgICAgICAgICAgICAgICAgVmFsdWUgPSB2Mkhhc2guVmFsdWUNCiAgICAgICAgICAgICAgICB9Ow0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICByZXR1cm4gaGFzaDsNCiAgICAgICAgfQ0KDQogICAgICAgIGludGVybmFsIEludm9jYXRpb25WZXJzaW9uT25lIENyZWF0ZUludm9jYXRpb24oSW52b2NhdGlvbiB2Mkludm9jYXRpb24pDQogICAgICAgIHsNCiAgICAgICAgICAgIEludm9jYXRpb25WZXJzaW9uT25lIGludm9jYXRpb24gPSBudWxsOw0KDQogICAgICAgICAgICBpZiAodjJJbnZvY2F0aW9uICE9IG51bGwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgaW52b2NhdGlvbiA9IG5ldyBJbnZvY2F0aW9uVmVyc2lvbk9uZQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgQWNjb3VudCA9IHYySW52b2NhdGlvbi5BY2NvdW50LA0KICAgICAgICAgICAgICAgICAgICBDb21tYW5kTGluZSA9IHYySW52b2NhdGlvbi5Db21tYW5kTGluZSwNCiAgICAgICAgICAgICAgICAgICAgRW5kVGltZSA9IHYySW52b2NhdGlvbi5FbmRUaW1lLA0KICAgICAgICAgICAgICAgICAgICBFbnZpcm9ubWVudFZhcmlhYmxlcyA9IHYySW52b2NhdGlvbi5FbnZpcm9ubWVudFZhcmlhYmxlcywNCiAgICAgICAgICAgICAgICAgICAgRmlsZU5hbWUgPSB2Mkludm9jYXRpb24uRXhlY3V0YWJsZUxvY2F0aW9uPy5Vcmk/Lk9yaWdpbmFsU3RyaW5nLA0KICAgICAgICAgICAgICAgICAgICBNYWNoaW5lID0gdjJJbnZvY2F0aW9uLk1hY2hpbmUsDQogICAgICAgICAgICAgICAgICAgIFByb2Nlc3NJZCA9IHYySW52b2NhdGlvbi5Qcm9jZXNzSWQsDQogICAgICAgICAgICAgICAgICAgIFByb3BlcnRpZXMgPSB2Mkludm9jYXRpb24uUHJvcGVydGllcywNCiAgICAgICAgICAgICAgICAgICAgUmVzcG9uc2VGaWxlcyA9IENyZWF0ZVJlc3BvbnNlRmlsZXNEaWN0aW9uYXJ5KHYySW52b2NhdGlvbi5SZXNwb25zZUZpbGVzKSwNCiAgICAgICAgICAgICAgICAgICAgU3RhcnRUaW1lID0gdjJJbnZvY2F0aW9uLlN0YXJ0VGltZSwNCiAgICAgICAgICAgICAgICAgICAgV29ya2luZ0RpcmVjdG9yeSA9IHYySW52b2NhdGlvbi5Xb3JraW5nRGlyZWN0b3J5DQogICAgICAgICAgICAgICAgfTsNCg0KICAgICAgICAgICAgICAgIGlmICh2Mkludm9jYXRpb24uQ29uZmlndXJhdGlvbk5vdGlmaWNhdGlvbnMgIT0gbnVsbCkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIGlmIChfY3VycmVudFJ1bi5Db25maWd1cmF0aW9uTm90aWZpY2F0aW9ucyA9PSBudWxsKQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICBfY3VycmVudFJ1bi5Db25maWd1cmF0aW9uTm90aWZpY2F0aW9ucyA9IG5ldyBMaXN0PE5vdGlmaWNhdGlvblZlcnNpb25PbmU+KCk7DQogICAgICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgICAgICBJRW51bWVyYWJsZTxOb3RpZmljYXRpb25WZXJzaW9uT25lPiBub3RpZmljYXRpb25zID0gdjJJbnZvY2F0aW9uLkNvbmZpZ3VyYXRpb25Ob3RpZmljYXRpb25zLlNlbGVjdChDcmVhdGVOb3RpZmljYXRpb24pOw0KICAgICAgICAgICAgICAgICAgICBfY3VycmVudFJ1bi5Db25maWd1cmF0aW9uTm90aWZpY2F0aW9ucyA9IF9jdXJyZW50UnVuLkNvbmZpZ3VyYXRpb25Ob3RpZmljYXRpb25zLlVuaW9uKG5vdGlmaWNhdGlvbnMpLlRvTGlzdCgpOw0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgIGlmICh2Mkludm9jYXRpb24uVG9vbE5vdGlmaWNhdGlvbnMgIT0gbnVsbCkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIGlmIChfY3VycmVudFJ1bi5Ub29sTm90aWZpY2F0aW9ucyA9PSBudWxsKQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICBfY3VycmVudFJ1bi5Ub29sTm90aWZpY2F0aW9ucyA9IG5ldyBMaXN0PE5vdGlmaWNhdGlvblZlcnNpb25PbmU+KCk7DQogICAgICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgICAgICBMaXN0PE5vdGlmaWNhdGlvblZlcnNpb25PbmU+IG5vdGlmaWNhdGlvbnMgPSB2Mkludm9jYXRpb24uVG9vbE5vdGlmaWNhdGlvbnMuU2VsZWN0KENyZWF0ZU5vdGlmaWNhdGlvbikuVG9MaXN0KCk7DQogICAgICAgICAgICAgICAgICAgIF9jdXJyZW50UnVuLlRvb2xOb3RpZmljYXRpb25zID0gX2N1cnJlbnRSdW4uVG9vbE5vdGlmaWNhdGlvbnMuVW5pb24obm90aWZpY2F0aW9ucykuVG9MaXN0KCk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICByZXR1cm4gaW52b2NhdGlvbjsNCiAgICAgICAgfQ0KDQogICAgICAgIGludGVybmFsIExvY2F0aW9uVmVyc2lvbk9uZSBDcmVhdGVMb2NhdGlvbihMb2NhdGlvbiB2MkxvY2F0aW9uKQ0KICAgICAgICB7DQogICAgICAgICAgICBMb2NhdGlvblZlcnNpb25PbmUgbG9jYXRpb24gPSBudWxsOw0KDQogICAgICAgICAgICBpZiAodjJMb2NhdGlvbiAhPSBudWxsKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIGxvY2F0aW9uID0gbmV3IExvY2F0aW9uVmVyc2lvbk9uZQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgRnVsbHlRdWFsaWZpZWRMb2dpY2FsTmFtZSA9IHYyTG9jYXRpb24uRnVsbHlRdWFsaWZpZWRMb2dpY2FsTmFtZSwNCiAgICAgICAgICAgICAgICAgICAgUHJvcGVydGllcyA9IHYyTG9jYXRpb24uUHJvcGVydGllcywNCiAgICAgICAgICAgICAgICAgICAgUmVzdWx0RmlsZSA9IENyZWF0ZVBoeXNpY2FsTG9jYXRpb24odjJMb2NhdGlvbi5QaHlzaWNhbExvY2F0aW9uKQ0KICAgICAgICAgICAgICAgIH07DQoNCiAgICAgICAgICAgICAgICBpZiAoIXN0cmluZy5Jc051bGxPcldoaXRlU3BhY2UodjJMb2NhdGlvbi5GdWxseVF1YWxpZmllZExvZ2ljYWxOYW1lKSAmJg0KICAgICAgICAgICAgICAgICAgICBfY3VycmVudFYyUnVuLkxvZ2ljYWxMb2NhdGlvbnM/LkNvbnRhaW5zS2V5KHYyTG9jYXRpb24uRnVsbHlRdWFsaWZpZWRMb2dpY2FsTmFtZSkgPT0gdHJ1ZSkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIGxvY2F0aW9uLkRlY29yYXRlZE5hbWUgPSBfY3VycmVudFYyUnVuLkxvZ2ljYWxMb2NhdGlvbnNbdjJMb2NhdGlvbi5GdWxseVF1YWxpZmllZExvZ2ljYWxOYW1lXS5EZWNvcmF0ZWROYW1lOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgcmV0dXJuIGxvY2F0aW9uOw0KICAgICAgICB9DQoNCiAgICAgICAgaW50ZXJuYWwgTG9naWNhbExvY2F0aW9uVmVyc2lvbk9uZSBDcmVhdGVMb2dpY2FsTG9jYXRpb24oTG9naWNhbExvY2F0aW9uIHYyTG9naWNhbExvY2F0aW9uKQ0KICAgICAgICB7DQogICAgICAgICAgICBMb2dpY2FsTG9jYXRpb25WZXJzaW9uT25lIGxvZ2ljYWxMb2NhdGlvbiA9IG51bGw7DQoNCiAgICAgICAgICAgIGlmICh2MkxvZ2ljYWxMb2NhdGlvbiAhPSBudWxsKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIGxvZ2ljYWxMb2NhdGlvbiA9IG5ldyBMb2dpY2FsTG9jYXRpb25WZXJzaW9uT25lDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBLaW5kID0gdjJMb2dpY2FsTG9jYXRpb24uS2luZCwNCiAgICAgICAgICAgICAgICAgICAgTmFtZSA9IHYyTG9naWNhbExvY2F0aW9uLk5hbWUsDQogICAgICAgICAgICAgICAgICAgIFBhcmVudEtleSA9IHYyTG9naWNhbExvY2F0aW9uLlBhcmVudEtleQ0KICAgICAgICAgICAgICAgIH07DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIHJldHVybiBsb2dpY2FsTG9jYXRpb247DQogICAgICAgIH0NCg0KICAgICAgICBpbnRlcm5hbCBOb3RpZmljYXRpb25WZXJzaW9uT25lIENyZWF0ZU5vdGlmaWNhdGlvbihOb3RpZmljYXRpb24gdjJOb3RpZmljYXRpb24pDQogICAgICAgIHsNCiAgICAgICAgICAgIE5vdGlmaWNhdGlvblZlcnNpb25PbmUgbm90aWZpY2F0aW9uID0gbnVsbDsNCg0KICAgICAgICAgICAgaWYgKHYyTm90aWZpY2F0aW9uICE9IG51bGwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgbm90aWZpY2F0aW9uID0gbmV3IE5vdGlmaWNhdGlvblZlcnNpb25PbmUNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIEV4Y2VwdGlvbiA9IENyZWF0ZUV4Y2VwdGlvbkRhdGEodjJOb3RpZmljYXRpb24uRXhjZXB0aW9uKSwNCiAgICAgICAgICAgICAgICAgICAgSWQgPSB2Mk5vdGlmaWNhdGlvbi5JZCwNCiAgICAgICAgICAgICAgICAgICAgTGV2ZWwgPSBVdGlsaXRpZXMuQ3JlYXRlTm90aWZpY2F0aW9uTGV2ZWxWZXJzaW9uT25lKHYyTm90aWZpY2F0aW9uLkxldmVsKSwNCiAgICAgICAgICAgICAgICAgICAgTWVzc2FnZSA9IHYyTm90aWZpY2F0aW9uLk1lc3NhZ2U/LlRleHQsDQogICAgICAgICAgICAgICAgICAgIFBoeXNpY2FsTG9jYXRpb24gPSBDcmVhdGVQaHlzaWNhbExvY2F0aW9uKHYyTm90aWZpY2F0aW9uLlBoeXNpY2FsTG9jYXRpb24pLA0KICAgICAgICAgICAgICAgICAgICBQcm9wZXJ0aWVzID0gdjJOb3RpZmljYXRpb24uUHJvcGVydGllcywNCiAgICAgICAgICAgICAgICAgICAgUnVsZUlkID0gdjJOb3RpZmljYXRpb24uUnVsZUlkLA0KICAgICAgICAgICAgICAgICAgICBUaHJlYWRJZCA9IHYyTm90aWZpY2F0aW9uLlRocmVhZElkLA0KICAgICAgICAgICAgICAgICAgICBUaW1lID0gdjJOb3RpZmljYXRpb24uVGltZQ0KICAgICAgICAgICAgICAgIH07DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIHJldHVybiBub3RpZmljYXRpb247DQogICAgICAgIH0NCg0KICAgICAgICBpbnRlcm5hbCBQaHlzaWNhbExvY2F0aW9uVmVyc2lvbk9uZSBDcmVhdGVQaHlzaWNhbExvY2F0aW9uKFBoeXNpY2FsTG9jYXRpb24gdjJQaHlzaWNhbExvY2F0aW9uKQ0KICAgICAgICB7DQogICAgICAgICAgICBQaHlzaWNhbExvY2F0aW9uVmVyc2lvbk9uZSBwaHlzaWNhbExvY2F0aW9uID0gbnVsbDsNCg0KICAgICAgICAgICAgaWYgKHYyUGh5c2ljYWxMb2NhdGlvbiAhPSBudWxsKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHBoeXNpY2FsTG9jYXRpb24gPSBuZXcgUGh5c2ljYWxMb2NhdGlvblZlcnNpb25PbmUNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIFJlZ2lvbiA9IENyZWF0ZVJlZ2lvbih2MlBoeXNpY2FsTG9jYXRpb24uUmVnaW9uLCB2MlBoeXNpY2FsTG9jYXRpb24uRmlsZUxvY2F0aW9uPy5VcmkpLA0KICAgICAgICAgICAgICAgICAgICBVcmkgPSB2MlBoeXNpY2FsTG9jYXRpb24uRmlsZUxvY2F0aW9uPy5VcmksDQogICAgICAgICAgICAgICAgICAgIFVyaUJhc2VJZCA9IHYyUGh5c2ljYWxMb2NhdGlvbi5GaWxlTG9jYXRpb24/LlVyaUJhc2VJZA0KICAgICAgICAgICAgICAgIH07DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIHJldHVybiBwaHlzaWNhbExvY2F0aW9uOw0KICAgICAgICB9DQoNCiAgICAgICAgaW50ZXJuYWwgUGh5c2ljYWxMb2NhdGlvblZlcnNpb25PbmUgQ3JlYXRlUGh5c2ljYWxMb2NhdGlvbihGaWxlTG9jYXRpb24gdjJGaWxlTG9jYXRpb24pDQogICAgICAgIHsNCiAgICAgICAgICAgIFBoeXNpY2FsTG9jYXRpb25WZXJzaW9uT25lIHBoeXNpY2FsTG9jYXRpb24gPSBudWxsOw0KDQogICAgICAgICAgICBpZiAodjJGaWxlTG9jYXRpb24gIT0gbnVsbCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBwaHlzaWNhbExvY2F0aW9uID0gbmV3IFBoeXNpY2FsTG9jYXRpb25WZXJzaW9uT25lDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBVcmkgPSB2MkZpbGVMb2NhdGlvbi5VcmksDQogICAgICAgICAgICAgICAgICAgIFVyaUJhc2VJZCA9IHYyRmlsZUxvY2F0aW9uLlVyaUJhc2VJZA0KICAgICAgICAgICAgICAgIH07DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIHJldHVybiBwaHlzaWNhbExvY2F0aW9uOw0KICAgICAgICB9DQoNCiAgICAgICAgaW50ZXJuYWwgUGh5c2ljYWxMb2NhdGlvblZlcnNpb25PbmUgQ3JlYXRlUGh5c2ljYWxMb2NhdGlvbihSZWdpb24gdjJSZWdpb24pDQogICAgICAgIHsNCiAgICAgICAgICAgIFBoeXNpY2FsTG9jYXRpb25WZXJzaW9uT25lIHBoeXNpY2FsTG9jYXRpb24gPSBudWxsOw0KDQogICAgICAgICAgICBpZiAodjJSZWdpb24gIT0gbnVsbCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBwaHlzaWNhbExvY2F0aW9uID0gbmV3IFBoeXNpY2FsTG9jYXRpb25WZXJzaW9uT25lDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBSZWdpb24gPSBDcmVhdGVSZWdpb24odjJSZWdpb24sIHVyaTogbnVsbCkNCiAgICAgICAgICAgICAgICB9Ow0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICByZXR1cm4gcGh5c2ljYWxMb2NhdGlvbjsNCiAgICAgICAgfQ0KDQogICAgICAgIGludGVybmFsIFJlZ2lvblZlcnNpb25PbmUgQ3JlYXRlUmVnaW9uKFJlZ2lvbiB2MlJlZ2lvbiwgVXJpIHVyaSkNCiAgICAgICAgew0KICAgICAgICAgICAgUmVnaW9uVmVyc2lvbk9uZSByZWdpb24gPSBudWxsOw0KDQogICAgICAgICAgICBpZiAodjJSZWdpb24gIT0gbnVsbCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICByZWdpb24gPSBuZXcgUmVnaW9uVmVyc2lvbk9uZSgpOw0KDQogICAgICAgICAgICAgICAgaWYgKHYyUmVnaW9uLlN0YXJ0TGluZSA+IDAgfHwNCiAgICAgICAgICAgICAgICAgICAgdjJSZWdpb24uRW5kTGluZSA+IDAgfHwNCiAgICAgICAgICAgICAgICAgICAgdjJSZWdpb24uU3RhcnRDb2x1bW4gPiAwIHx8DQogICAgICAgICAgICAgICAgICAgIHYyUmVnaW9uLkVuZENvbHVtbiA+IDAgfHwNCiAgICAgICAgICAgICAgICAgICAgdjJSZWdpb24uQ2hhck9mZnNldCA+IDAgfHwNCiAgICAgICAgICAgICAgICAgICAgdjJSZWdpb24uQ2hhckxlbmd0aCA+IDApDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBpZiAodjJSZWdpb24uU3RhcnRMaW5lID4gMCkNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgLy8gVGhlIHN0YXJ0IG9mIHRoZSByZWdpb24gaXMgZGVzY3JpYmVkIGJ5IGxpbmUvY29sdW1uDQogICAgICAgICAgICAgICAgICAgICAgICByZWdpb24uU3RhcnRMaW5lID0gdjJSZWdpb24uU3RhcnRMaW5lOw0KICAgICAgICAgICAgICAgICAgICAgICAgcmVnaW9uLlN0YXJ0Q29sdW1uID0gdjJSZWdpb24uU3RhcnRDb2x1bW4gPiAwDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPyB2MlJlZ2lvbi5TdGFydENvbHVtbg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogMTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBlbHNlDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRoZSBzdGFydCBvZiB0aGUgcmVnaW9uIGlzIGRlc2NyaWJlZCBieSBjaGFyYWN0ZXIgb2Zmc2V0DQogICAgICAgICAgICAgICAgICAgICAgICAvLyBUcnkgdG8gZ2V0IHRoZSBieXRlIG9mZnNldCB1c2luZyB0aGUgZmlsZSBlbmNvZGluZyBhbmQgY29udGVudHMNCiAgICAgICAgICAgICAgICAgICAgICAgIHJlZ2lvbi5PZmZzZXQgPSBDb252ZXJ0Q2hhck9mZnNldFRvQnl0ZU9mZnNldCh2MlJlZ2lvbi5DaGFyT2Zmc2V0LCB1cmkpOw0KICAgICAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAgICAgaWYgKHYyUmVnaW9uLkNoYXJMZW5ndGggPiAwKQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAvLyBUaGUgZW5kIG9mIHRoZSByZWdpb24gaXMgZGVzY3JpYmVkIGJ5IGNoYXJhY3RlciBsZW5ndGgNCiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRyeSB0byBnZXQgdGhlIGJ5dGUgbGVuZ3RoIHVzaW5nIHRoZSBmaWxlIGVuY29kaW5nIGFuZCBjb250ZW50cw0KICAgICAgICAgICAgICAgICAgICAgICAgcmVnaW9uLkxlbmd0aCA9IEdldFJlZ2lvbkJ5dGVMZW5ndGgodjJSZWdpb24sIHVyaSk7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAodjJSZWdpb24uRW5kTGluZSA+IDApDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHJlZ2lvbi5FbmRMaW5lID0gdjJSZWdpb24uRW5kTGluZTsNCg0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHYyUmVnaW9uLkVuZENvbHVtbiA+IDApDQogICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVnaW9uLkVuZENvbHVtbiA9IHYyUmVnaW9uLkVuZENvbHVtbjsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UNCiAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBJbiB2MiwgaWYgZW5kQ29sdW1uIGlzIG1pc3NpbmcsIHRoZW4gdGhlIHJlZ2lvbiBleHRlbmRzIHRvIHRoZSBlbmQNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBvZiB0aGUgbGluZSAoZXhjbHVzaXZlIG9mIGFueSBuZXdsaW5lIHNlcXVlbmNlKS4gVXNlIHRoZSBmaWxlIGNvbnRlbnRzDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gYW5kIGVuY29kaW5nIHRvIGRldGVybWluZSBob3cgbWFueSBjb2x1bW5zIGFyZSBpbiB0aGUgZW5kIGxpbmUuDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVnaW9uLkVuZENvbHVtbiA9IEdldFJlZ2lvbkVuZENvbHVtbih2MlJlZ2lvbiwgdXJpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBlbHNlIGlmICh2MlJlZ2lvbi5FbmRDb2x1bW4gPiAwKQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICByZWdpb24uRW5kQ29sdW1uID0gdjJSZWdpb24uRW5kQ29sdW1uOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGVsc2UNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgLy8gVEhJUyBJUyBBIFBST0JMRU0uIElGIEFMTCBUSEUgIkVORCIgUFJPUEVSVElFUyBBUkUgTUlTU0lORywNCiAgICAgICAgICAgICAgICAgICAgICAgIC8vIElUIE1FQU5TICJUSEUgUkVTVCBPRiBUSEUgU3RhcnRMaW5lIi4gQlVUIElGIENIQVJMRU5HVEggSVMNCiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFBSRVNFTlQgQlVUIDAsIElUIE1FQU5TICJJTlNFUlRJT04gUE9JTlQiLiBBTkQgV0UgQ0FOJ1QgVEVMTA0KICAgICAgICAgICAgICAgICAgICAgICAgLy8gVEhFIERJRkZFUkVOQ0UuDQogICAgICAgICAgICAgICAgICAgICAgICAvLyBUT0RPOiBJc3N1ZSAjOTMyDQoNCiAgICAgICAgICAgICAgICAgICAgICAgIC8vIEFzc3VtZSBpdCdzIGFuIGluc2VydGlvbiBwb2ludA0KICAgICAgICAgICAgICAgICAgICAgICAgcmVnaW9uLkVuZExpbmUgPSByZWdpb24uRW5kQ29sdW1uID0gcmVnaW9uLkxlbmd0aCA9IDA7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgZWxzZQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgLy8gVGhlcmUgYXJlIG5vIHRleHQtcmVsYXRlZCBwcm9wZXJ0aWVzLiBUaGVyZWZvcmUgZWl0aGVyIHRoZSByZWdpb24gaXMNCiAgICAgICAgICAgICAgICAgICAgLy8gZGVzY3JpYmVkIGVudGlyZWx5IGJ5IGJpbmFyeS1yZWxhdGVkIHByb3BlcnRpZXMsIG9yIHRoZSByZWdpb24gaXMgYW4NCiAgICAgICAgICAgICAgICAgICAgLy8gaW5zZXJ0aW9uIHBvaW50IGF0IHRoZSBzdGFydCBvZiB0aGUgZmlsZS4NCiAgICAgICAgICAgICAgICAgICAgcmVnaW9uLkxlbmd0aCA9IHYyUmVnaW9uLkJ5dGVMZW5ndGg7DQogICAgICAgICAgICAgICAgICAgIHJlZ2lvbi5PZmZzZXQgPSB2MlJlZ2lvbi5CeXRlT2Zmc2V0Ow0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgcmV0dXJuIHJlZ2lvbjsNCiAgICAgICAgfQ0KDQogICAgICAgIHByaXZhdGUgaW50IENvbnZlcnRDaGFyT2Zmc2V0VG9CeXRlT2Zmc2V0KGludCBjaGFyT2Zmc2V0LCBVcmkgdXJpKQ0KICAgICAgICB7DQogICAgICAgICAgICBpbnQgYnl0ZU9mZnNldCA9IDA7DQogICAgICAgICAgICBFbmNvZGluZyBlbmNvZGluZzsNCg0KICAgICAgICAgICAgdXNpbmcgKFN0cmVhbVJlYWRlciByZWFkZXIgPSBHZXRGaWxlU3RyZWFtUmVhZGVyKHVyaSwgb3V0IGVuY29kaW5nKSkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBpZiAocmVhZGVyICE9IG51bGwpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBjaGFyW10gYnVmZmVyID0gbmV3IGNoYXJbY2hhck9mZnNldF07DQoNCiAgICAgICAgICAgICAgICAgICAgLy8gUmVhZCBldmVyeXRoaW5nIHVwIHRvIGNoYXJPZmZzZXQNCiAgICAgICAgICAgICAgICAgICAgaWYgKHJlYWRlci5SZWFkQmxvY2soYnVmZmVyLCAwLCBidWZmZXIuTGVuZ3RoKSA+IDApDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJ5dGVPZmZzZXQgPSBlbmNvZGluZy5HZXRCeXRlQ291bnQoYnVmZmVyLCAwLCBidWZmZXIuTGVuZ3RoKTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgcmV0dXJuIGJ5dGVPZmZzZXQ7DQogICAgICAgIH0NCg0KICAgICAgICBwcml2YXRlIGludCBHZXRSZWdpb25CeXRlTGVuZ3RoKFJlZ2lvbiB2MlJlZ2lvbiwgVXJpIHVyaSkNCiAgICAgICAgew0KICAgICAgICAgICAgaW50IGJ5dGVMZW5ndGggPSAwOw0KICAgICAgICAgICAgRW5jb2RpbmcgZW5jb2Rpbmc7DQoNCiAgICAgICAgICAgIHVzaW5nIChTdHJlYW1SZWFkZXIgcmVhZGVyID0gR2V0RmlsZVN0cmVhbVJlYWRlcih1cmksIG91dCBlbmNvZGluZykpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgaWYgKHJlYWRlciAhPSBudWxsKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgaWYgKHYyUmVnaW9uLlN0YXJ0TGluZSA+IDApIC8vIFVzZSBsaW5lIGFuZCBjb2x1bW4gDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHN0cmluZyBzb3VyY2VMaW5lID0gc3RyaW5nLkVtcHR5Ow0KDQogICAgICAgICAgICAgICAgICAgICAgICAvLyBSZWFkIGRvd24gdG8gc3RhcnRMaW5lIChudWxsIHJldHVybiBtZWFucyBFT0YpDQogICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMTsgaSA8PSB2MlJlZ2lvbi5TdGFydExpbmUgJiYgc291cmNlTGluZSAhPSBudWxsOyBzb3VyY2VMaW5lID0gcmVhZGVyLlJlYWRMaW5lKCksIGkrKykgeyB9DQoNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzb3VyY2VMaW5lICE9IG51bGwpDQogICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHN0YXJ0Q29sdW1uID0gdjJSZWdpb24uU3RhcnRDb2x1bW4gPiAwDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IHYyUmVnaW9uLlN0YXJ0Q29sdW1uDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IDE7DQoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoc291cmNlTGluZS5MZW5ndGggPiBzdGFydENvbHVtbikNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNpbmNlIHdlIHJlYWQgcGFzdCBzdGFydENvbHVtbiwgd2UgbmVlZCB0byBiYWNrIHVwIHVzaW5nIHRoZSBiYXNlIHN0cmVhbQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJlYW0gc3RyZWFtID0gcmVhZGVyLkJhc2VTdHJlYW07DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cmVhbS5Qb3NpdGlvbiAtPSBlbmNvZGluZy5HZXRCeXRlQ291bnQoc291cmNlTGluZS5TdWJzdHJpbmcoc3RhcnRDb2x1bW4gLSAxKSk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gUmVhZCB0aGUgbmV4dCBjaGFyTGVuZ3RoIGNoYXJhY3RlcnMNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyW10gYnVmZmVyID0gbmV3IGNoYXJbdjJSZWdpb24uQ2hhckxlbmd0aF07DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVhZGVyLlJlYWQoYnVmZmVyLCAwLCBidWZmZXIuTGVuZ3RoKTsNCg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ5dGVMZW5ndGggPSBlbmNvZGluZy5HZXRCeXRlQ291bnQoYnVmZmVyKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBlbHNlIC8vIFVzZSBjaGFyT2Zmc2V0DQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFJlYWQgdGhlIGZpcnN0IGNoYXJPZmZzZXQgY2hhcmFjdGVycw0KICAgICAgICAgICAgICAgICAgICAgICAgY2hhcltdIGJ1ZmZlciA9IG5ldyBjaGFyW3YyUmVnaW9uLkNoYXJPZmZzZXRdOw0KICAgICAgICAgICAgICAgICAgICAgICAgcmVhZGVyLlJlYWQoYnVmZmVyLCAwLCBidWZmZXIuTGVuZ3RoKTsNCg0KICAgICAgICAgICAgICAgICAgICAgICAgLy8gUmVhZCB0aGUgbmV4dCBjaGFyTGVuZ3RoIGNoYXJhY3RlcnMgIA0KICAgICAgICAgICAgICAgICAgICAgICAgYnVmZmVyID0gbmV3IGNoYXJbdjJSZWdpb24uQ2hhckxlbmd0aF07DQogICAgICAgICAgICAgICAgICAgICAgICByZWFkZXIuUmVhZChidWZmZXIsIDAsIGJ1ZmZlci5MZW5ndGgpOw0KDQogICAgICAgICAgICAgICAgICAgICAgICBieXRlTGVuZ3RoID0gZW5jb2RpbmcuR2V0Qnl0ZUNvdW50KGJ1ZmZlcik7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIHJldHVybiBieXRlTGVuZ3RoOw0KICAgICAgICB9DQoNCiAgICAgICAgcHJpdmF0ZSBpbnQgR2V0UmVnaW9uRW5kQ29sdW1uKFJlZ2lvbiB2MlJlZ2lvbiwgVXJpIHVyaSkNCiAgICAgICAgew0KICAgICAgICAgICAgaW50IGVuZENvbHVtbiA9IDA7DQogICAgICAgICAgICBFbmNvZGluZyBlbmNvZGluZzsNCg0KICAgICAgICAgICAgdXNpbmcgKFN0cmVhbVJlYWRlciByZWFkZXIgPSBHZXRGaWxlU3RyZWFtUmVhZGVyKHVyaSwgb3V0IGVuY29kaW5nKSkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBpZiAocmVhZGVyICE9IG51bGwpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBzdHJpbmcgc291cmNlTGluZSA9IHN0cmluZy5FbXB0eTsNCg0KICAgICAgICAgICAgICAgICAgICAvLyBSZWFkIGRvd24gdG8gZW5kTGluZSAobnVsbCByZXR1cm4gbWVhbnMgRU9GKQ0KICAgICAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMTsgaSA8PSB2MlJlZ2lvbi5FbmRMaW5lICYmIHNvdXJjZUxpbmUgIT0gbnVsbDsgc291cmNlTGluZSA9IHJlYWRlci5SZWFkTGluZSgpLCBpKyspIHsgfQ0KDQogICAgICAgICAgICAgICAgICAgIGlmIChzb3VyY2VMaW5lICE9IG51bGwpDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGVuZENvbHVtbiA9IHNvdXJjZUxpbmUuTGVuZ3RoID49IHYyUmVnaW9uLkVuZENvbHVtbg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gdjJSZWdpb24uRW5kQ29sdW1uDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBzb3VyY2VMaW5lLkxlbmd0aCArIDE7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIHJldHVybiBlbmRDb2x1bW47DQogICAgICAgIH0NCg0KICAgICAgICBwcml2YXRlIFN0cmVhbSBHZXRDb250ZW50U3RyZWFtKFVyaSB1cmksIG91dCBFbmNvZGluZyBlbmNvZGluZykNCiAgICAgICAgew0KICAgICAgICAgICAgU3RyZWFtIHN0cmVhbSA9IG51bGw7DQogICAgICAgICAgICBlbmNvZGluZyA9IG51bGw7DQogICAgICAgICAgICBzdHJpbmcgZmFpbHVyZVJlYXNvbiA9IG51bGw7DQoNCiAgICAgICAgICAgIGlmICh1cmkgIT0gbnVsbCAmJiBfY3VycmVudFYyUnVuLkZpbGVzICE9IG51bGwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgRmlsZURhdGEgZmlsZURhdGE7DQogICAgICAgICAgICAgICAgaWYgKF9jdXJyZW50VjJSdW4uRmlsZXMuVHJ5R2V0VmFsdWUodXJpLk9yaWdpbmFsU3RyaW5nLCBvdXQgZmlsZURhdGEpKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgLy8gV2UgbmVlZCB0aGUgZW5jb2RpbmcgYmVjYXVzZSB0aGUgY29udGVudCBtaWdodCBoYXZlIGJlZW4gdHJhbnNjb2RlZCB0byBVVEYtOA0KICAgICAgICAgICAgICAgICAgICBzdHJpbmcgZW5jb2RpbmdOYW1lID0gZmlsZURhdGEuRW5jb2RpbmcgPz8gX2N1cnJlbnRWMlJ1bi5EZWZhdWx0RmlsZUVuY29kaW5nOw0KICAgICAgICAgICAgICAgICAgICBlbmNvZGluZyA9IEdldEZpbGVFbmNvZGluZyhlbmNvZGluZ05hbWUpOw0KDQogICAgICAgICAgICAgICAgICAgIGlmIChlbmNvZGluZyAhPSBudWxsKQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoZmlsZURhdGEuQ29udGVudHM/LkJpbmFyeSAhPSBudWxsKQ0KICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEVtYmVkZGVkIGJpbmFyeSBmaWxlIGNvbnRlbnQNCg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ5dGVbXSBjb250ZW50ID0gQ29udmVydC5Gcm9tQmFzZTY0U3RyaW5nKGZpbGVEYXRhLkNvbnRlbnRzLkJpbmFyeSk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyZWFtID0gbmV3IE1lbW9yeVN0cmVhbShjb250ZW50KTsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKGZpbGVEYXRhLkNvbnRlbnRzPy5UZXh0ICE9IG51bGwpDQogICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gRW1iZWRkZWQgdGV4dCBmaWxlIGNvbnRlbnQNCg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ5dGVbXSBjb250ZW50ID0gZW5jb2RpbmcuR2V0Qnl0ZXMoZmlsZURhdGEuQ29udGVudHMuVGV4dCk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyZWFtID0gbmV3IE1lbW9yeVN0cmVhbShjb250ZW50KTsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKHVyaS5Jc0Fic29sdXRlVXJpICYmIHVyaS5TY2hlbWUgPT0gVXJpLlVyaVNjaGVtZUZpbGUgJiYgRmlsZS5FeGlzdHModXJpLkxvY2FsUGF0aCkpDQogICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gRXh0ZXJuYWwgc291cmNlIGZpbGUNCg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyeQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyZWFtID0gbmV3IEZpbGVTdHJlYW0odXJpLkxvY2FsUGF0aCwgRmlsZU1vZGUuT3Blbik7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhdGNoIChGaWxlTm90Rm91bmRFeGNlcHRpb24gZXgpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWlsdXJlUmVhc29uID0gJCJGaWxlICd7dXJpLkxvY2FsUGF0aH0nIGNvdWxkIG5vdCBiZSBmb3VuZDoge2V4LlRvU3RyaW5nKCl9IjsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2F0Y2ggKElPRXhjZXB0aW9uIGV4KQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFpbHVyZVJlYXNvbiA9ICQiRmlsZSAne3VyaS5Mb2NhbFBhdGh9JyBjb3VsZCBub3QgYmUgcmVhZDoge2V4LlRvU3RyaW5nKCl9IjsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2F0Y2ggKFNlY3VyaXR5RXhjZXB0aW9uIGV4KQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFpbHVyZVJlYXNvbiA9ICQiRmlsZSAne3VyaS5Mb2NhbFBhdGh9JyBjb3VsZCBub3QgYmUgYWNjZXNzZWQ6IHtleC5Ub1N0cmluZygpfSI7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGVsc2UNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgZmFpbHVyZVJlYXNvbiA9ICQiRW5jb2RpbmcgZm9yIGZpbGUgJ3t1cmkuT3JpZ2luYWxTdHJpbmd9JyBjb3VsZCBub3QgYmUgZGV0ZXJtaW5lZCI7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIGlmIChzdHJlYW0gPT0gbnVsbCAmJiBmYWlsdXJlUmVhc29uID09IG51bGwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgZmFpbHVyZVJlYXNvbiA9ICQiRmlsZSAne3VyaS5Mb2NhbFBhdGh9JyBjb3VsZCBub3QgYmUgb3BlbmVkIjsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgaWYgKGZhaWx1cmVSZWFzb24gIT0gbnVsbCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAvLyBJZiB3ZSBnZXQgaGVyZSwgd2Ugd2VyZSB1bmFibGUgdG8gZGV0ZXJtaW5lIHJlZ2lvbiBjaGFyYWN0ZXIgb2Zmc2V0LCBzbyB3ZSBoYXZlIHRvIHdhcm4gdGhlIGNhbGxlcg0KICAgICAgICAgICAgICAgIC8vIFRPRE86IGFkZCBhIHdhcm5pbmcgdG8gdGhlIGxpc3QNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgcmV0dXJuIHN0cmVhbTsNCiAgICAgICAgfQ0KDQogICAgICAgIHByaXZhdGUgU3RyZWFtUmVhZGVyIEdldEZpbGVTdHJlYW1SZWFkZXIoVXJpIHVyaSwgb3V0IEVuY29kaW5nIGVuY29kaW5nKQ0KICAgICAgICB7DQogICAgICAgICAgICBTdHJlYW1SZWFkZXIgcmVhZGVyID0gbnVsbDsNCg0KICAgICAgICAgICAgU3RyZWFtIGNvbnRlbnRTdHJlYW0gPSBHZXRDb250ZW50U3RyZWFtKHVyaSwgb3V0IGVuY29kaW5nKTsNCiAgICAgICAgICAgIGlmIChjb250ZW50U3RyZWFtICE9IG51bGwgJiYgZW5jb2RpbmcgIT0gbnVsbCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICByZWFkZXIgPSBuZXcgU3RyZWFtUmVhZGVyKGNvbnRlbnRTdHJlYW0sIGVuY29kaW5nLCBkZXRlY3RFbmNvZGluZ0Zyb21CeXRlT3JkZXJNYXJrczogZmFsc2UpOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICByZXR1cm4gcmVhZGVyOw0KICAgICAgICB9DQoNCiAgICAgICAgaW50ZXJuYWwgUmVwbGFjZW1lbnRWZXJzaW9uT25lIENyZWF0ZVJlcGxhY2VtZW50KFJlcGxhY2VtZW50IHYyUmVwbGFjZW1lbnQsIEVuY29kaW5nIGVuY29kaW5nKQ0KICAgICAgICB7DQogICAgICAgICAgICBSZXBsYWNlbWVudFZlcnNpb25PbmUgcmVwbGFjZW1lbnQgPSBudWxsOw0KDQogICAgICAgICAgICBpZiAodjJSZXBsYWNlbWVudCAhPSBudWxsKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHJlcGxhY2VtZW50ID0gbmV3IFJlcGxhY2VtZW50VmVyc2lvbk9uZSgpOw0KICAgICAgICAgICAgICAgIEZpbGVDb250ZW50IGluc2VydGVkQ29udGVudCA9IHYyUmVwbGFjZW1lbnQuSW5zZXJ0ZWRDb250ZW50Ow0KDQogICAgICAgICAgICAgICAgaWYgKGluc2VydGVkQ29udGVudCAhPSBudWxsKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgaWYgKGluc2VydGVkQ29udGVudC5CaW5hcnkgIT0gbnVsbCkNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgcmVwbGFjZW1lbnQuSW5zZXJ0ZWRCeXRlcyA9IGluc2VydGVkQ29udGVudC5CaW5hcnk7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoaW5zZXJ0ZWRDb250ZW50LlRleHQgIT0gbnVsbCkNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGVuY29kaW5nICE9IG51bGwpDQogICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVwbGFjZW1lbnQuSW5zZXJ0ZWRCeXRlcyA9IFNhcmlmVXRpbGl0aWVzLkdldEJhc2U2NFN0cmluZyhpbnNlcnRlZENvbnRlbnQuVGV4dCwgZW5jb2RpbmcpOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgZWxzZQ0KICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRoZSBlbmNvZGluZyBpcyBudWxsIG9yIG5vdCBzdXBwb3J0ZWQgb24gdGhlIGN1cnJlbnQgcGxhdGZvcm0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgVW5rbm93bkVuY29kaW5nRXhjZXB0aW9uKCk7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICByZXBsYWNlbWVudC5EZWxldGVkTGVuZ3RoID0gdjJSZXBsYWNlbWVudC5EZWxldGVkUmVnaW9uLkJ5dGVMZW5ndGg7DQogICAgICAgICAgICAgICAgcmVwbGFjZW1lbnQuT2Zmc2V0ID0gdjJSZXBsYWNlbWVudC5EZWxldGVkUmVnaW9uLkJ5dGVPZmZzZXQ7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIHJldHVybiByZXBsYWNlbWVudDsNCiAgICAgICAgfQ0KDQogICAgICAgIGludGVybmFsIERpY3Rpb25hcnk8c3RyaW5nLCBzdHJpbmc+IENyZWF0ZVJlc3BvbnNlRmlsZXNEaWN0aW9uYXJ5KElMaXN0PEZpbGVMb2NhdGlvbj4gdjJSZXNwb25zZUZpbGVzTGlzdCkNCiAgICAgICAgew0KICAgICAgICAgICAgRGljdGlvbmFyeTxzdHJpbmcsIHN0cmluZz4gcmVzcG9uc2VGaWxlcyA9IG51bGw7DQoNCiAgICAgICAgICAgIGlmICh2MlJlc3BvbnNlRmlsZXNMaXN0ICE9IG51bGwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgcmVzcG9uc2VGaWxlcyA9IG5ldyBEaWN0aW9uYXJ5PHN0cmluZywgc3RyaW5nPigpOw0KDQogICAgICAgICAgICAgICAgZm9yZWFjaCAoRmlsZUxvY2F0aW9uIGZpbGVMb2NhdGlvbiBpbiB2MlJlc3BvbnNlRmlsZXNMaXN0KQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgc3RyaW5nIGtleSA9IGZpbGVMb2NhdGlvbi5VcmkuT3JpZ2luYWxTdHJpbmc7DQogICAgICAgICAgICAgICAgICAgIHN0cmluZyBmaWxlQ29udGVudCA9IG51bGw7DQogICAgICAgICAgICAgICAgICAgIEZpbGVEYXRhIHJlc3BvbnNlRmlsZTsNCg0KICAgICAgICAgICAgICAgICAgICBpZiAoX2N1cnJlbnRWMlJ1bi5GaWxlcyAhPSBudWxsICYmIF9jdXJyZW50VjJSdW4uRmlsZXMuVHJ5R2V0VmFsdWUoa2V5LCBvdXQgcmVzcG9uc2VGaWxlKSkNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgZmlsZUNvbnRlbnQgPSByZXNwb25zZUZpbGUuQ29udGVudHM/LlRleHQ7DQogICAgICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgICAgICByZXNwb25zZUZpbGVzLkFkZChrZXksIGZpbGVDb250ZW50KTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIHJldHVybiByZXNwb25zZUZpbGVzOw0KICAgICAgICB9DQoNCiAgICAgICAgaW50ZXJuYWwgUmVzdWx0VmVyc2lvbk9uZSBDcmVhdGVSZXN1bHQoUmVzdWx0IHYyUmVzdWx0KQ0KICAgICAgICB7DQogICAgICAgICAgICBSZXN1bHRWZXJzaW9uT25lIHJlc3VsdCA9IG51bGw7DQoNCiAgICAgICAgICAgIGlmICh2MlJlc3VsdCAhPSBudWxsKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHJlc3VsdCA9IG5ldyBSZXN1bHRWZXJzaW9uT25lDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBCYXNlbGluZVN0YXRlID0gVXRpbGl0aWVzLkNyZWF0ZUJhc2VsaW5lU3RhdGVWZXJzaW9uT25lKHYyUmVzdWx0LkJhc2VsaW5lU3RhdGUpLA0KICAgICAgICAgICAgICAgICAgICBGaXhlcyA9IHYyUmVzdWx0LkZpeGVzPy5TZWxlY3QoQ3JlYXRlRml4KS5Ub0xpc3QoKSwNCiAgICAgICAgICAgICAgICAgICAgSWQgPSB2MlJlc3VsdC5JbnN0YW5jZUd1aWQsDQogICAgICAgICAgICAgICAgICAgIExldmVsID0gVXRpbGl0aWVzLkNyZWF0ZVJlc3VsdExldmVsVmVyc2lvbk9uZSh2MlJlc3VsdC5MZXZlbCksDQogICAgICAgICAgICAgICAgICAgIExvY2F0aW9ucyA9IHYyUmVzdWx0LkxvY2F0aW9ucz8uU2VsZWN0KENyZWF0ZUxvY2F0aW9uKS5Ub0xpc3QoKSwNCiAgICAgICAgICAgICAgICAgICAgTWVzc2FnZSA9IHYyUmVzdWx0Lk1lc3NhZ2U/LlRleHQsDQogICAgICAgICAgICAgICAgICAgIFByb3BlcnRpZXMgPSB2MlJlc3VsdC5Qcm9wZXJ0aWVzLA0KICAgICAgICAgICAgICAgICAgICBSZWxhdGVkTG9jYXRpb25zID0gdjJSZXN1bHQuUmVsYXRlZExvY2F0aW9ucz8uU2VsZWN0KENyZWF0ZUFubm90YXRlZENvZGVMb2NhdGlvbikuVG9MaXN0KCksDQogICAgICAgICAgICAgICAgICAgIFNuaXBwZXQgPSB2MlJlc3VsdC5Mb2NhdGlvbnM/WzBdPy5QaHlzaWNhbExvY2F0aW9uPy5SZWdpb24/LlNuaXBwZXQ/LlRleHQsDQogICAgICAgICAgICAgICAgICAgIFN0YWNrcyA9IHYyUmVzdWx0LlN0YWNrcz8uU2VsZWN0KENyZWF0ZVN0YWNrKS5Ub0xpc3QoKSwNCiAgICAgICAgICAgICAgICAgICAgU3VwcHJlc3Npb25TdGF0ZXMgPSBVdGlsaXRpZXMuQ3JlYXRlU3VwcHJlc3Npb25TdGF0ZXNWZXJzaW9uT25lKHYyUmVzdWx0LlN1cHByZXNzaW9uU3RhdGVzKQ0KICAgICAgICAgICAgICAgIH07DQoNCiAgICAgICAgICAgICAgICBpZiAocmVzdWx0LkZpeGVzICE9IG51bGwpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAvLyBOdWxsIEZpeGVzIHdpbGwgYmUgcHJlc2VudCBpbiB0aGUgY2FzZSBvZiB1bnN1cHBvcnRlZCBlbmNvZGluZw0KICAgICAgICAgICAgICAgICAgICAocmVzdWx0LkZpeGVzIGFzIExpc3Q8Rml4VmVyc2lvbk9uZT4pLlJlbW92ZUFsbChmID0+IGYgPT0gbnVsbCk7DQoNCiAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3VsdC5GaXhlcy5Db3VudCA9PSAwKQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQuRml4ZXMgPSBudWxsOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgaWYgKHYyUmVzdWx0LkFuYWx5c2lzVGFyZ2V0ICE9IG51bGwpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBmb3JlYWNoIChMb2NhdGlvblZlcnNpb25PbmUgbG9jYXRpb24gaW4gcmVzdWx0LkxvY2F0aW9ucykNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgbG9jYXRpb24uQW5hbHlzaXNUYXJnZXQgPSBDcmVhdGVQaHlzaWNhbExvY2F0aW9uKHYyUmVzdWx0LkFuYWx5c2lzVGFyZ2V0KTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgIGlmIChfY3VycmVudFYyUnVuLlJlc291cmNlcz8uUnVsZXMgIT0gbnVsbCkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIElEaWN0aW9uYXJ5PHN0cmluZywgUnVsZT4gcnVsZXMgPSBfY3VycmVudFYyUnVuLlJlc291cmNlcy5SdWxlczsNCiAgICAgICAgICAgICAgICAgICAgUnVsZSB2MlJ1bGU7DQoNCiAgICAgICAgICAgICAgICAgICAgaWYgKHYyUmVzdWx0LlJ1bGVJZCAhPSBudWxsICYmDQogICAgICAgICAgICAgICAgICAgICAgICBydWxlcy5UcnlHZXRWYWx1ZSh2MlJlc3VsdC5SdWxlSWQsIG91dCB2MlJ1bGUpICYmDQogICAgICAgICAgICAgICAgICAgICAgICB2MlJ1bGUuSWQgIT0gdjJSZXN1bHQuUnVsZUlkKQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQuUnVsZUlkID0gdjJSdWxlLklkOw0KICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0LlJ1bGVLZXkgPSB2MlJlc3VsdC5SdWxlSWQ7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgZWxzZQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQuUnVsZUlkID0gdjJSZXN1bHQuUnVsZUlkOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGVsc2UNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIHJlc3VsdC5SdWxlSWQgPSB2MlJlc3VsdC5SdWxlSWQ7DQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgaWYgKCFzdHJpbmcuSXNOdWxsT3JXaGl0ZVNwYWNlKHYyUmVzdWx0LlJ1bGVNZXNzYWdlSWQpKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgcmVzdWx0LkZvcm1hdHRlZFJ1bGVNZXNzYWdlID0gbmV3IEZvcm1hdHRlZFJ1bGVNZXNzYWdlVmVyc2lvbk9uZQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICBBcmd1bWVudHMgPSB2MlJlc3VsdC5NZXNzYWdlPy5Bcmd1bWVudHMsDQogICAgICAgICAgICAgICAgICAgICAgICBGb3JtYXRJZCA9IHYyUmVzdWx0LlJ1bGVNZXNzYWdlSWQNCiAgICAgICAgICAgICAgICAgICAgfTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIHJldHVybiByZXN1bHQ7DQogICAgICAgIH0NCg0KICAgICAgICBpbnRlcm5hbCBSdWxlVmVyc2lvbk9uZSBDcmVhdGVSdWxlKFJ1bGUgdjJSdWxlKQ0KICAgICAgICB7DQogICAgICAgICAgICBSdWxlVmVyc2lvbk9uZSBydWxlID0gbnVsbDsNCg0KICAgICAgICAgICAgaWYgKHYyUnVsZSAhPSBudWxsKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHJ1bGUgPSBuZXcgUnVsZVZlcnNpb25PbmUNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIEZ1bGxEZXNjcmlwdGlvbiA9IHYyUnVsZS5GdWxsRGVzY3JpcHRpb24/LlRleHQsDQogICAgICAgICAgICAgICAgICAgIEhlbHBVcmkgPSB2MlJ1bGUuSGVscFVyaSwNCiAgICAgICAgICAgICAgICAgICAgSWQgPSB2MlJ1bGUuSWQsDQogICAgICAgICAgICAgICAgICAgIE1lc3NhZ2VGb3JtYXRzID0gdjJSdWxlLk1lc3NhZ2VTdHJpbmdzLA0KICAgICAgICAgICAgICAgICAgICBOYW1lID0gdjJSdWxlLk5hbWU/LlRleHQsDQogICAgICAgICAgICAgICAgICAgIFByb3BlcnRpZXMgPSB2MlJ1bGUuUHJvcGVydGllcywNCiAgICAgICAgICAgICAgICAgICAgU2hvcnREZXNjcmlwdGlvbiA9IHYyUnVsZS5TaG9ydERlc2NyaXB0aW9uPy5UZXh0DQogICAgICAgICAgICAgICAgfTsNCg0KICAgICAgICAgICAgICAgIGlmICh2MlJ1bGUuQ29uZmlndXJhdGlvbiAhPSBudWxsKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgcnVsZS5Db25maWd1cmF0aW9uID0gdjJSdWxlLkNvbmZpZ3VyYXRpb24uRW5hYmxlZCA/DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgUnVsZUNvbmZpZ3VyYXRpb25WZXJzaW9uT25lLkVuYWJsZWQgOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJ1bGVDb25maWd1cmF0aW9uVmVyc2lvbk9uZS5EaXNhYmxlZDsNCiAgICAgICAgICAgICAgICAgICAgcnVsZS5EZWZhdWx0TGV2ZWwgPSBVdGlsaXRpZXMuQ3JlYXRlUmVzdWx0TGV2ZWxWZXJzaW9uT25lKHYyUnVsZS5Db25maWd1cmF0aW9uLkRlZmF1bHRMZXZlbCk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICByZXR1cm4gcnVsZTsNCiAgICAgICAgfQ0KDQogICAgICAgIGludGVybmFsIFJ1blZlcnNpb25PbmUgQ3JlYXRlUnVuKFJ1biB2MlJ1bikNCiAgICAgICAgew0KICAgICAgICAgICAgUnVuVmVyc2lvbk9uZSBydW4gPSBudWxsOw0KDQogICAgICAgICAgICBpZiAodjJSdW4gIT0gbnVsbCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBpZiAodjJSdW4uVHJ5R2V0UHJvcGVydHkoInNhcmlmdjEvcnVuIiwgb3V0IHJ1bikpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gcnVuOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBlbHNlDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBfY3VycmVudFYyUnVuID0gdjJSdW47DQoNCiAgICAgICAgICAgICAgICAgICAgLy8gV2UgbmVlZCB0byBjcmVhdGUgdGhlIHJ1biBiZWZvcmUgd2Ugc3RhcnQgd29ya2luZyBvbiBjaGlsZHJlbg0KICAgICAgICAgICAgICAgICAgICAvLyBiZWNhdXNlIHNvbWUgb2YgdGhlbSB3aWxsIG5lZWQgdG8gcmVmZXIgdG8gX2N1cnJlbnRSdW4NCiAgICAgICAgICAgICAgICAgICAgcnVuID0gbmV3IFJ1blZlcnNpb25PbmUoKTsNCiAgICAgICAgICAgICAgICAgICAgX2N1cnJlbnRSdW4gPSBydW47DQoNCiAgICAgICAgICAgICAgICAgICAgcnVuLkFyY2hpdGVjdHVyZSA9IHYyUnVuLkFyY2hpdGVjdHVyZTsNCiAgICAgICAgICAgICAgICAgICAgcnVuLkF1dG9tYXRpb25JZCA9IHYyUnVuLkF1dG9tYXRpb25Mb2dpY2FsSWQ7DQogICAgICAgICAgICAgICAgICAgIHJ1bi5CYXNlbGluZUlkID0gdjJSdW4uQmFzZWxpbmVJbnN0YW5jZUd1aWQ7DQogICAgICAgICAgICAgICAgICAgIHJ1bi5GaWxlcyA9IHYyUnVuLkZpbGVzPy5Ub0RpY3Rpb25hcnkodiA9PiB2LktleSwgdiA9PiBDcmVhdGVGaWxlRGF0YSh2LlZhbHVlKSk7DQogICAgICAgICAgICAgICAgICAgIHJ1bi5JZCA9IHYyUnVuLkluc3RhbmNlR3VpZDsNCiAgICAgICAgICAgICAgICAgICAgcnVuLkludm9jYXRpb24gPSBDcmVhdGVJbnZvY2F0aW9uKHYyUnVuLkludm9jYXRpb25zP1swXSk7DQogICAgICAgICAgICAgICAgICAgIHJ1bi5Mb2dpY2FsTG9jYXRpb25zID0gdjJSdW4uTG9naWNhbExvY2F0aW9ucz8uVG9EaWN0aW9uYXJ5KHYgPT4gdi5LZXksIHYgPT4gQ3JlYXRlTG9naWNhbExvY2F0aW9uKHYuVmFsdWUpKTsNCiAgICAgICAgICAgICAgICAgICAgcnVuLlByb3BlcnRpZXMgPSB2MlJ1bi5Qcm9wZXJ0aWVzOw0KICAgICAgICAgICAgICAgICAgICBydW4uUmVzdWx0cyA9IG5ldyBMaXN0PFJlc3VsdFZlcnNpb25PbmU+KCk7DQogICAgICAgICAgICAgICAgICAgIHJ1bi5SdWxlcyA9IHYyUnVuLlJlc291cmNlcz8uUnVsZXM/LlRvRGljdGlvbmFyeSh2ID0+IHYuS2V5LCB2ID0+IENyZWF0ZVJ1bGUodi5WYWx1ZSkpOw0KICAgICAgICAgICAgICAgICAgICBydW4uU3RhYmxlSWQgPSB2MlJ1bi5Mb2dpY2FsSWQ7DQogICAgICAgICAgICAgICAgICAgIHJ1bi5Ub29sID0gQ3JlYXRlVG9vbCh2MlJ1bi5Ub29sKTsNCg0KICAgICAgICAgICAgICAgICAgICBmb3JlYWNoIChSZXN1bHQgdjJSZXN1bHQgaW4gdjJSdW4uUmVzdWx0cykNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgcnVuLlJlc3VsdHMuQWRkKENyZWF0ZVJlc3VsdCh2MlJlc3VsdCkpOw0KICAgICAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAgICAgLy8gU3Rhc2ggdGhlIGVudGlyZSB2MiBydW4gaW4gdGhpcyB2MSBydW4ncyBwcm9wZXJ0eSBiYWcNCiAgICAgICAgICAgICAgICAgICAgcnVuLlNldFByb3BlcnR5KCQie0Zyb21Qcm9wZXJ0eUJhZ1ByZWZpeH0vcnVuIiwgdjJSdW4pOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgcmV0dXJuIHJ1bjsNCiAgICAgICAgfQ0KDQogICAgICAgIGludGVybmFsIFN0YWNrVmVyc2lvbk9uZSBDcmVhdGVTdGFjayhTdGFjayB2MlN0YWNrKQ0KICAgICAgICB7DQogICAgICAgICAgICBTdGFja1ZlcnNpb25PbmUgc3RhY2sgPSBudWxsOw0KDQogICAgICAgICAgICBpZiAodjJTdGFjayAhPSBudWxsKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHN0YWNrID0gbmV3IFN0YWNrVmVyc2lvbk9uZQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgTWVzc2FnZSA9IHYyU3RhY2suTWVzc2FnZT8uVGV4dCwNCiAgICAgICAgICAgICAgICAgICAgUHJvcGVydGllcyA9IHYyU3RhY2suUHJvcGVydGllcywNCiAgICAgICAgICAgICAgICAgICAgRnJhbWVzID0gdjJTdGFjay5GcmFtZXM/LlNlbGVjdChDcmVhdGVTdGFja0ZyYW1lKS5Ub0xpc3QoKQ0KICAgICAgICAgICAgICAgIH07DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIHJldHVybiBzdGFjazsNCiAgICAgICAgfQ0KDQogICAgICAgIGludGVybmFsIFN0YWNrRnJhbWVWZXJzaW9uT25lIENyZWF0ZVN0YWNrRnJhbWUoU3RhY2tGcmFtZSB2MlN0YWNrRnJhbWUpDQogICAgICAgIHsNCiAgICAgICAgICAgIFN0YWNrRnJhbWVWZXJzaW9uT25lIHN0YWNrRnJhbWUgPSBudWxsOw0KDQogICAgICAgICAgICBpZiAodjJTdGFja0ZyYW1lICE9IG51bGwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgc3RhY2tGcmFtZSA9IG5ldyBTdGFja0ZyYW1lVmVyc2lvbk9uZQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgQWRkcmVzcyA9IHYyU3RhY2tGcmFtZS5BZGRyZXNzLA0KICAgICAgICAgICAgICAgICAgICBNb2R1bGUgPSB2MlN0YWNrRnJhbWUuTW9kdWxlLA0KICAgICAgICAgICAgICAgICAgICBPZmZzZXQgPSB2MlN0YWNrRnJhbWUuT2Zmc2V0LA0KICAgICAgICAgICAgICAgICAgICBQYXJhbWV0ZXJzID0gdjJTdGFja0ZyYW1lLlBhcmFtZXRlcnMsDQogICAgICAgICAgICAgICAgICAgIFByb3BlcnRpZXMgPSB2MlN0YWNrRnJhbWUuUHJvcGVydGllcywNCiAgICAgICAgICAgICAgICAgICAgVGhyZWFkSWQgPSB2MlN0YWNrRnJhbWUuVGhyZWFkSWQNCiAgICAgICAgICAgICAgICB9Ow0KDQogICAgICAgICAgICAgICAgTG9jYXRpb24gbG9jYXRpb24gPSB2MlN0YWNrRnJhbWUuTG9jYXRpb247DQogICAgICAgICAgICAgICAgaWYgKGxvY2F0aW9uICE9IG51bGwpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBzdHJpbmcgZnFsbiA9IGxvY2F0aW9uLkZ1bGx5UXVhbGlmaWVkTG9naWNhbE5hbWU7DQoNCiAgICAgICAgICAgICAgICAgICAgaWYgKF9jdXJyZW50VjJSdW4uTG9naWNhbExvY2F0aW9ucyAhPSBudWxsICYmDQogICAgICAgICAgICAgICAgICAgICAgICBfY3VycmVudFYyUnVuLkxvZ2ljYWxMb2NhdGlvbnMuQ29udGFpbnNLZXkoZnFsbikgJiYNCiAgICAgICAgICAgICAgICAgICAgICAgICFzdHJpbmcuSXNOdWxsT3JXaGl0ZVNwYWNlKF9jdXJyZW50VjJSdW4uTG9naWNhbExvY2F0aW9uc1tmcWxuXS5GdWxseVF1YWxpZmllZE5hbWUpKQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICBzdGFja0ZyYW1lLkZ1bGx5UXVhbGlmaWVkTG9naWNhbE5hbWUgPSBfY3VycmVudFYyUnVuLkxvZ2ljYWxMb2NhdGlvbnNbZnFsbl0uRnVsbHlRdWFsaWZpZWROYW1lOw0KICAgICAgICAgICAgICAgICAgICAgICAgc3RhY2tGcmFtZS5Mb2dpY2FsTG9jYXRpb25LZXkgPSBmcWxuOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGVsc2UNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgc3RhY2tGcmFtZS5GdWxseVF1YWxpZmllZExvZ2ljYWxOYW1lID0gZnFsbjsNCiAgICAgICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgICAgIHN0YWNrRnJhbWUuTWVzc2FnZSA9IGxvY2F0aW9uLk1lc3NhZ2U/LlRleHQ7DQoNCiAgICAgICAgICAgICAgICAgICAgUGh5c2ljYWxMb2NhdGlvbiBwaHlzaWNhbExvY2F0aW9uID0gbG9jYXRpb24uUGh5c2ljYWxMb2NhdGlvbjsNCiAgICAgICAgICAgICAgICAgICAgaWYgKHBoeXNpY2FsTG9jYXRpb24gIT0gbnVsbCkNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgc3RhY2tGcmFtZS5Db2x1bW4gPSBwaHlzaWNhbExvY2F0aW9uLlJlZ2lvbj8uU3RhcnRDb2x1bW4gPz8gMDsNCiAgICAgICAgICAgICAgICAgICAgICAgIHN0YWNrRnJhbWUuTGluZSA9IHBoeXNpY2FsTG9jYXRpb24uUmVnaW9uPy5TdGFydExpbmUgPz8gMDsNCiAgICAgICAgICAgICAgICAgICAgICAgIHN0YWNrRnJhbWUuVXJpID0gcGh5c2ljYWxMb2NhdGlvbi5GaWxlTG9jYXRpb24/LlVyaTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHN0YWNrRnJhbWUuVXJpQmFzZUlkID0gcGh5c2ljYWxMb2NhdGlvbi5GaWxlTG9jYXRpb24/LlVyaUJhc2VJZDsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgcmV0dXJuIHN0YWNrRnJhbWU7DQogICAgICAgIH0NCg0KICAgICAgICBpbnRlcm5hbCBUb29sVmVyc2lvbk9uZSBDcmVhdGVUb29sKFRvb2wgdjJUb29sKQ0KICAgICAgICB7DQogICAgICAgICAgICBUb29sVmVyc2lvbk9uZSB0b29sID0gbnVsbDsNCg0KICAgICAgICAgICAgaWYgKHYyVG9vbCAhPSBudWxsKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHRvb2wgPSBuZXcgVG9vbFZlcnNpb25PbmUoKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgRmlsZVZlcnNpb24gPSB2MlRvb2wuRmlsZVZlcnNpb24sDQogICAgICAgICAgICAgICAgICAgIEZ1bGxOYW1lID0gdjJUb29sLkZ1bGxOYW1lLA0KICAgICAgICAgICAgICAgICAgICBMYW5ndWFnZSA9IHYyVG9vbC5MYW5ndWFnZSwNCiAgICAgICAgICAgICAgICAgICAgTmFtZSA9IHYyVG9vbC5OYW1lLA0KICAgICAgICAgICAgICAgICAgICBQcm9wZXJ0aWVzID0gdjJUb29sLlByb3BlcnRpZXMsDQogICAgICAgICAgICAgICAgICAgIFNhcmlmTG9nZ2VyVmVyc2lvbiA9IHYyVG9vbC5TYXJpZkxvZ2dlclZlcnNpb24sDQogICAgICAgICAgICAgICAgICAgIFNlbWFudGljVmVyc2lvbiA9IHYyVG9vbC5TZW1hbnRpY1ZlcnNpb24sDQogICAgICAgICAgICAgICAgICAgIFZlcnNpb24gPSB2MlRvb2wuVmVyc2lvbg0KICAgICAgICAgICAgICAgIH07DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIHJldHVybiB0b29sOw0KICAgICAgICB9DQogICAgfQ0KfQ0K" + { + "ruleId": "CA1800", + "message": { + "text": "'jToken', a parameter, is cast to type 'JValue' multiple times in method 'Validator.ValidateToken(JToken, JsonSchema)'. Cache the result of the 'as' operator or direct cast in order to eliminate the redundant castclass instruction.", + "id": "Parameter" }, - "hashes": [ - { - "value": "777BC3EBAE01867A7BC30658C25F85CC", - "algorithm": "md5" - }, - { - "value": "4A86B89B1FBBDA4ACB490DE6150EECE929479477", - "algorithm": "sha-1" - }, + "locations": [ { - "value": "9905B985594516BB504E5F73590592716644EDD1BF88FDF924FDB2E109F5F5A9", - "algorithm": "sha-256" + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Microsoft.Json.Schema.Validation.dll", + "uriBaseId": "$(ProjectDir)", + "index": 2 + } + }, + "logicalLocations": [ + { + "index": 125, + "fullyQualifiedName": "microsoft.json.schema.validation.dll!Microsoft.Json.Schema.Validation.Validator.ValidateToken(Newtonsoft.Json.Linq.JToken,Microsoft.Json.Schema.JsonSchema)" + } + ] } - ] - }, - "file:///E:/src/sarif-sdk-test/src/Sarif/Visitors/SarifTransformerUtilities.cs": { - "mimeType": "text/x-csharp", - "contents": { - "binary": "77u/Ly8gQ29weXJpZ2h0KGMpIE1pY3Jvc29mdC5BbGwgcmlnaHRzIHJlc2VydmVkLg0KLy8gTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlLiBTZWUgTElDRU5TRSBmaWxlIGluIHRoZSBwcm9qZWN0IHJvb3QgZm9yIGZ1bGwgbGljZW5zZSBpbmZvcm1hdGlvbi4NCg0KdXNpbmcgU3lzdGVtOw0KdXNpbmcgU3lzdGVtLkNvbGxlY3Rpb25zLkdlbmVyaWM7DQp1c2luZyBTeXN0ZW0uR2xvYmFsaXphdGlvbjsNCnVzaW5nIE1pY3Jvc29mdC5Db2RlQW5hbHlzaXMuU2FyaWYuUmVhZGVyczsNCnVzaW5nIE1pY3Jvc29mdC5Db2RlQW5hbHlzaXMuU2FyaWYuVmVyc2lvbk9uZTsNCnVzaW5nIE5ld3RvbnNvZnQuSnNvbjsNCg0KbmFtZXNwYWNlIE1pY3Jvc29mdC5Db2RlQW5hbHlzaXMuU2FyaWYuVmlzaXRvcnMNCnsNCiAgICBwdWJsaWMgc3RhdGljIGNsYXNzIFNhcmlmVHJhbnNmb3JtZXJVdGlsaXRpZXMNCiAgICB7DQogICAgICAgIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgRGljdGlvbmFyeTxTYXJpZlZlcnNpb24sIHN0cmluZz4gUHJvcGVydHlCYWdUcmFuc2Zvcm1lckl0ZW1QcmVmaXhlcyA9IG5ldyBEaWN0aW9uYXJ5PFNhcmlmVmVyc2lvbiwgc3RyaW5nPigpDQogICAgICAgIHsNCiAgICAgICAgICAgIHsgU2FyaWZWZXJzaW9uLk9uZVplcm9aZXJvLCAic2FyaWZ2MSIgfSwNCiAgICAgICAgICAgIHsgU2FyaWZWZXJzaW9uLlR3b1plcm9aZXJvLCAic2FyaWZ2MiIgfQ0KICAgICAgICB9Ow0KDQogICAgICAgIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgc3RyaW5nW10gRGVmYXVsdEZ1bGx5UXVhbGlmaWVkTmFtZURlbGltaXRlcnMgPSB7ICIuIiwgIi8iLCAiXFwiLCAiOjoiIH07DQoNCiAgICAgICAgcHVibGljIHN0YXRpYyByZWFkb25seSBKc29uU2VyaWFsaXplclNldHRpbmdzIEpzb25TZXR0aW5nc1YxID0gbmV3IEpzb25TZXJpYWxpemVyU2V0dGluZ3MNCiAgICAgICAgew0KICAgICAgICAgICAgQ29udHJhY3RSZXNvbHZlciA9IFNhcmlmQ29udHJhY3RSZXNvbHZlclZlcnNpb25PbmUuSW5zdGFuY2UsDQogICAgICAgICAgICBGb3JtYXR0aW5nID0gRm9ybWF0dGluZy5JbmRlbnRlZA0KICAgICAgICB9Ow0KDQogICAgICAgIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgSnNvblNlcmlhbGl6ZXJTZXR0aW5ncyBKc29uU2V0dGluZ3NWMiA9IG5ldyBKc29uU2VyaWFsaXplclNldHRpbmdzDQogICAgICAgIHsNCiAgICAgICAgICAgIENvbnRyYWN0UmVzb2x2ZXIgPSBTYXJpZkNvbnRyYWN0UmVzb2x2ZXIuSW5zdGFuY2UsDQogICAgICAgICAgICBGb3JtYXR0aW5nID0gRm9ybWF0dGluZy5JbmRlbnRlZA0KICAgICAgICB9Ow0KDQogICAgICAgIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgSnNvblNlcmlhbGl6ZXJTZXR0aW5ncyBKc29uU2V0dGluZ3NWMUNvbXBhY3QgPSBuZXcgSnNvblNlcmlhbGl6ZXJTZXR0aW5ncw0KICAgICAgICB7DQogICAgICAgICAgICBDb250cmFjdFJlc29sdmVyID0gU2FyaWZDb250cmFjdFJlc29sdmVyVmVyc2lvbk9uZS5JbnN0YW5jZQ0KICAgICAgICB9Ow0KDQogICAgICAgIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgSnNvblNlcmlhbGl6ZXJTZXR0aW5ncyBKc29uU2V0dGluZ3NWMkNvbXBhY3QgPSBuZXcgSnNvblNlcmlhbGl6ZXJTZXR0aW5ncw0KICAgICAgICB7DQogICAgICAgICAgICBDb250cmFjdFJlc29sdmVyID0gU2FyaWZDb250cmFjdFJlc29sdmVyLkluc3RhbmNlDQogICAgICAgIH07DQoNCiAgICAgICAgcHVibGljIHN0YXRpYyByZWFkb25seSBEaWN0aW9uYXJ5PEFsZ29yaXRobUtpbmRWZXJzaW9uT25lLCBzdHJpbmc+IEFsZ29yaXRobUtpbmROYW1lTWFwID0gbmV3IERpY3Rpb25hcnk8QWxnb3JpdGhtS2luZFZlcnNpb25PbmUsIHN0cmluZz4NCiAgICAgICAgew0KICAgICAgICAgICAgeyBBbGdvcml0aG1LaW5kVmVyc2lvbk9uZS5TaGExLCAic2hhLTEiIH0sDQogICAgICAgICAgICB7IEFsZ29yaXRobUtpbmRWZXJzaW9uT25lLlNoYTMsICJzaGEtMyIgfSwNCiAgICAgICAgICAgIHsgQWxnb3JpdGhtS2luZFZlcnNpb25PbmUuU2hhMjI0LCAic2hhLTIyNCIgfSwNCiAgICAgICAgICAgIHsgQWxnb3JpdGhtS2luZFZlcnNpb25PbmUuU2hhMjU2LCAic2hhLTI1NiIgfSwNCiAgICAgICAgICAgIHsgQWxnb3JpdGhtS2luZFZlcnNpb25PbmUuU2hhMzg0LCAic2hhLTM4NCIgfSwNCiAgICAgICAgICAgIHsgQWxnb3JpdGhtS2luZFZlcnNpb25PbmUuU2hhNTEyLCAic2hhLTUxMiIgfQ0KICAgICAgICB9Ow0KDQogICAgICAgIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgRGljdGlvbmFyeTxzdHJpbmcsIEFsZ29yaXRobUtpbmRWZXJzaW9uT25lPiBBbGdvcml0aG1OYW1lS2luZE1hcCA9IG5ldyBEaWN0aW9uYXJ5PHN0cmluZywgQWxnb3JpdGhtS2luZFZlcnNpb25PbmU+DQogICAgICAgIHsNCiAgICAgICAgICAgIHsgInNoYS0xIiwgQWxnb3JpdGhtS2luZFZlcnNpb25PbmUuU2hhMSB9LA0KICAgICAgICAgICAgeyAic2hhLTMiLCBBbGdvcml0aG1LaW5kVmVyc2lvbk9uZS5TaGEzIH0sDQogICAgICAgICAgICB7ICJzaGEtMjI0IiwgQWxnb3JpdGhtS2luZFZlcnNpb25PbmUuU2hhMjI0IH0sDQogICAgICAgICAgICB7ICJzaGEtMjU2IiwgQWxnb3JpdGhtS2luZFZlcnNpb25PbmUuU2hhMjU2IH0sDQogICAgICAgICAgICB7ICJzaGEtMzg0IiwgQWxnb3JpdGhtS2luZFZlcnNpb25PbmUuU2hhMzg0IH0sDQogICAgICAgICAgICB7ICJzaGEtNTEyIiwgQWxnb3JpdGhtS2luZFZlcnNpb25PbmUuU2hhNTEyIH0NCiAgICAgICAgfTsNCg0KICAgICAgICBwdWJsaWMgc3RhdGljIHN0cmluZyBDcmVhdGVEaXNhbWJpZ3VhdGVkTmFtZShzdHJpbmcgYmFzZU5hbWUsIGludCBpbmRleCkNCiAgICAgICAgew0KICAgICAgICAgICAgcmV0dXJuICQie2Jhc2VOYW1lfS17aW5kZXguVG9TdHJpbmcoQ3VsdHVyZUluZm8uSW52YXJpYW50Q3VsdHVyZSl9IjsNCiAgICAgICAgfQ0KDQogICAgICAgIHB1YmxpYyBzdGF0aWMgTm90aWZpY2F0aW9uTGV2ZWwgQ3JlYXRlTm90aWZpY2F0aW9uTGV2ZWwoTm90aWZpY2F0aW9uTGV2ZWxWZXJzaW9uT25lIHYxTm90aWZpY2F0aW9uTGV2ZWwpDQogICAgICAgIHsNCiAgICAgICAgICAgIHN3aXRjaCAodjFOb3RpZmljYXRpb25MZXZlbCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBjYXNlIE5vdGlmaWNhdGlvbkxldmVsVmVyc2lvbk9uZS5FcnJvcjoNCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIE5vdGlmaWNhdGlvbkxldmVsLkVycm9yOw0KICAgICAgICAgICAgICAgIGNhc2UgTm90aWZpY2F0aW9uTGV2ZWxWZXJzaW9uT25lLk5vdGU6DQogICAgICAgICAgICAgICAgICAgIHJldHVybiBOb3RpZmljYXRpb25MZXZlbC5Ob3RlOw0KICAgICAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgICAgIHJldHVybiBOb3RpZmljYXRpb25MZXZlbC5XYXJuaW5nOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICAgICAgcHVibGljIHN0YXRpYyBOb3RpZmljYXRpb25MZXZlbFZlcnNpb25PbmUgQ3JlYXRlTm90aWZpY2F0aW9uTGV2ZWxWZXJzaW9uT25lKE5vdGlmaWNhdGlvbkxldmVsIHYyTm90aWZpY2F0aW9uTGV2ZWwpDQogICAgICAgIHsNCiAgICAgICAgICAgIHN3aXRjaCAodjJOb3RpZmljYXRpb25MZXZlbCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBjYXNlIE5vdGlmaWNhdGlvbkxldmVsLkVycm9yOg0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gTm90aWZpY2F0aW9uTGV2ZWxWZXJzaW9uT25lLkVycm9yOw0KICAgICAgICAgICAgICAgIGNhc2UgTm90aWZpY2F0aW9uTGV2ZWwuTm90ZToNCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIE5vdGlmaWNhdGlvbkxldmVsVmVyc2lvbk9uZS5Ob3RlOw0KICAgICAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgICAgIHJldHVybiBOb3RpZmljYXRpb25MZXZlbFZlcnNpb25PbmUuV2FybmluZzsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgIHB1YmxpYyBzdGF0aWMgUnVsZUNvbmZpZ3VyYXRpb25EZWZhdWx0TGV2ZWwgQ3JlYXRlUnVsZUNvbmZpZ3VyYXRpb25EZWZhdWx0TGV2ZWwoUmVzdWx0TGV2ZWxWZXJzaW9uT25lIHYxUmVzdWx0TGV2ZWwpDQogICAgICAgIHsNCiAgICAgICAgICAgIHN3aXRjaCAodjFSZXN1bHRMZXZlbCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBjYXNlIFJlc3VsdExldmVsVmVyc2lvbk9uZS5FcnJvcjoNCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFJ1bGVDb25maWd1cmF0aW9uRGVmYXVsdExldmVsLkVycm9yOw0KICAgICAgICAgICAgICAgIGNhc2UgUmVzdWx0TGV2ZWxWZXJzaW9uT25lLlBhc3M6DQogICAgICAgICAgICAgICAgICAgIHJldHVybiBSdWxlQ29uZmlndXJhdGlvbkRlZmF1bHRMZXZlbC5Ob3RlOw0KICAgICAgICAgICAgICAgIGNhc2UgUmVzdWx0TGV2ZWxWZXJzaW9uT25lLldhcm5pbmc6DQogICAgICAgICAgICAgICAgICAgIHJldHVybiBSdWxlQ29uZmlndXJhdGlvbkRlZmF1bHRMZXZlbC5XYXJuaW5nOw0KICAgICAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgICAgIHJldHVybiBSdWxlQ29uZmlndXJhdGlvbkRlZmF1bHRMZXZlbC5XYXJuaW5nOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICAgICAgcHVibGljIHN0YXRpYyBSZXN1bHRMZXZlbCBDcmVhdGVSZXN1bHRMZXZlbChSZXN1bHRMZXZlbFZlcnNpb25PbmUgdjFSZXN1bHRMZXZlbCkNCiAgICAgICAgew0KICAgICAgICAgICAgc3dpdGNoICh2MVJlc3VsdExldmVsKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIGNhc2UgUmVzdWx0TGV2ZWxWZXJzaW9uT25lLkVycm9yOg0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gUmVzdWx0TGV2ZWwuRXJyb3I7DQogICAgICAgICAgICAgICAgY2FzZSBSZXN1bHRMZXZlbFZlcnNpb25PbmUuTm90ZToNCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFJlc3VsdExldmVsLk5vdGU7DQogICAgICAgICAgICAgICAgY2FzZSBSZXN1bHRMZXZlbFZlcnNpb25PbmUuUGFzczoNCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFJlc3VsdExldmVsLlBhc3M7DQogICAgICAgICAgICAgICAgY2FzZSBSZXN1bHRMZXZlbFZlcnNpb25PbmUuV2FybmluZzoNCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFJlc3VsdExldmVsLldhcm5pbmc7DQogICAgICAgICAgICAgICAgY2FzZSBSZXN1bHRMZXZlbFZlcnNpb25PbmUuTm90QXBwbGljYWJsZToNCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFJlc3VsdExldmVsLk5vdEFwcGxpY2FibGU7DQogICAgICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFJlc3VsdExldmVsLkRlZmF1bHQ7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICBwdWJsaWMgc3RhdGljIFJlc3VsdExldmVsVmVyc2lvbk9uZSBDcmVhdGVSZXN1bHRMZXZlbFZlcnNpb25PbmUoUnVsZUNvbmZpZ3VyYXRpb25EZWZhdWx0TGV2ZWwgdjJEZWZhdWx0TGV2ZWwpDQogICAgICAgIHsNCiAgICAgICAgICAgIHN3aXRjaCAodjJEZWZhdWx0TGV2ZWwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgY2FzZSBSdWxlQ29uZmlndXJhdGlvbkRlZmF1bHRMZXZlbC5FcnJvcjoNCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFJlc3VsdExldmVsVmVyc2lvbk9uZS5FcnJvcjsNCiAgICAgICAgICAgICAgICBjYXNlIFJ1bGVDb25maWd1cmF0aW9uRGVmYXVsdExldmVsLk5vdGU6DQogICAgICAgICAgICAgICAgICAgIHJldHVybiBSZXN1bHRMZXZlbFZlcnNpb25PbmUuUGFzczsNCiAgICAgICAgICAgICAgICBjYXNlIFJ1bGVDb25maWd1cmF0aW9uRGVmYXVsdExldmVsLldhcm5pbmc6DQogICAgICAgICAgICAgICAgICAgIHJldHVybiBSZXN1bHRMZXZlbFZlcnNpb25PbmUuV2FybmluZzsNCiAgICAgICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gUmVzdWx0TGV2ZWxWZXJzaW9uT25lLldhcm5pbmc7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICBwdWJsaWMgc3RhdGljIFJlc3VsdExldmVsVmVyc2lvbk9uZSBDcmVhdGVSZXN1bHRMZXZlbFZlcnNpb25PbmUoUmVzdWx0TGV2ZWwgdjJSZXN1bHRMZXZlbCkNCiAgICAgICAgew0KICAgICAgICAgICAgc3dpdGNoICh2MlJlc3VsdExldmVsKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIGNhc2UgUmVzdWx0TGV2ZWwuRXJyb3I6DQogICAgICAgICAgICAgICAgICAgIHJldHVybiBSZXN1bHRMZXZlbFZlcnNpb25PbmUuRXJyb3I7DQogICAgICAgICAgICAgICAgY2FzZSBSZXN1bHRMZXZlbC5Ob3RlOg0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gUmVzdWx0TGV2ZWxWZXJzaW9uT25lLk5vdGU7DQogICAgICAgICAgICAgICAgY2FzZSBSZXN1bHRMZXZlbC5QYXNzOg0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gUmVzdWx0TGV2ZWxWZXJzaW9uT25lLlBhc3M7DQogICAgICAgICAgICAgICAgY2FzZSBSZXN1bHRMZXZlbC5XYXJuaW5nOg0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gUmVzdWx0TGV2ZWxWZXJzaW9uT25lLldhcm5pbmc7DQogICAgICAgICAgICAgICAgY2FzZSBSZXN1bHRMZXZlbC5Ob3RBcHBsaWNhYmxlOg0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gUmVzdWx0TGV2ZWxWZXJzaW9uT25lLk5vdEFwcGxpY2FibGU7DQogICAgICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFJlc3VsdExldmVsVmVyc2lvbk9uZS5EZWZhdWx0Ow0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICAgICAgcHVibGljIHN0YXRpYyBTdXBwcmVzc2lvblN0YXRlcyBDcmVhdGVTdXBwcmVzc2lvblN0YXRlcyhTdXBwcmVzc2lvblN0YXRlc1ZlcnNpb25PbmUgdjFTdXBwcmVzc2lvblN0YXRlcykNCiAgICAgICAgew0KICAgICAgICAgICAgc3dpdGNoICh2MVN1cHByZXNzaW9uU3RhdGVzKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIGNhc2UgU3VwcHJlc3Npb25TdGF0ZXNWZXJzaW9uT25lLlN1cHByZXNzZWRFeHRlcm5hbGx5Og0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gU3VwcHJlc3Npb25TdGF0ZXMuU3VwcHJlc3NlZEV4dGVybmFsbHk7DQogICAgICAgICAgICAgICAgY2FzZSBTdXBwcmVzc2lvblN0YXRlc1ZlcnNpb25PbmUuU3VwcHJlc3NlZEluU291cmNlOg0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gU3VwcHJlc3Npb25TdGF0ZXMuU3VwcHJlc3NlZEluU291cmNlOw0KICAgICAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgICAgIHJldHVybiBTdXBwcmVzc2lvblN0YXRlcy5Ob25lOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICAgICAgcHVibGljIHN0YXRpYyBTdXBwcmVzc2lvblN0YXRlc1ZlcnNpb25PbmUgQ3JlYXRlU3VwcHJlc3Npb25TdGF0ZXNWZXJzaW9uT25lKFN1cHByZXNzaW9uU3RhdGVzIHYyU3VwcHJlc3Npb25TdGF0ZXMpDQogICAgICAgIHsNCiAgICAgICAgICAgIHN3aXRjaCAodjJTdXBwcmVzc2lvblN0YXRlcykNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBjYXNlIFN1cHByZXNzaW9uU3RhdGVzLlN1cHByZXNzZWRFeHRlcm5hbGx5Og0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gU3VwcHJlc3Npb25TdGF0ZXNWZXJzaW9uT25lLlN1cHByZXNzZWRFeHRlcm5hbGx5Ow0KICAgICAgICAgICAgICAgIGNhc2UgU3VwcHJlc3Npb25TdGF0ZXMuU3VwcHJlc3NlZEluU291cmNlOg0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gU3VwcHJlc3Npb25TdGF0ZXNWZXJzaW9uT25lLlN1cHByZXNzZWRJblNvdXJjZTsNCiAgICAgICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gU3VwcHJlc3Npb25TdGF0ZXNWZXJzaW9uT25lLk5vbmU7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICBwdWJsaWMgc3RhdGljIEJhc2VsaW5lU3RhdGUgQ3JlYXRlQmFzZWxpbmVTdGF0ZShCYXNlbGluZVN0YXRlVmVyc2lvbk9uZSB2MUJhc2VsaW5lU3RhdGUpDQogICAgICAgIHsNCiAgICAgICAgICAgIHN3aXRjaCAodjFCYXNlbGluZVN0YXRlKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIGNhc2UgQmFzZWxpbmVTdGF0ZVZlcnNpb25PbmUuQWJzZW50Og0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gQmFzZWxpbmVTdGF0ZS5BYnNlbnQ7DQogICAgICAgICAgICAgICAgY2FzZSBCYXNlbGluZVN0YXRlVmVyc2lvbk9uZS5FeGlzdGluZzoNCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEJhc2VsaW5lU3RhdGUuRXhpc3Rpbmc7DQogICAgICAgICAgICAgICAgY2FzZSBCYXNlbGluZVN0YXRlVmVyc2lvbk9uZS5OZXc6DQogICAgICAgICAgICAgICAgICAgIHJldHVybiBCYXNlbGluZVN0YXRlLk5ldzsNCiAgICAgICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gQmFzZWxpbmVTdGF0ZS5Ob25lOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgICAgIHB1YmxpYyBzdGF0aWMgQmFzZWxpbmVTdGF0ZVZlcnNpb25PbmUgQ3JlYXRlQmFzZWxpbmVTdGF0ZVZlcnNpb25PbmUoQmFzZWxpbmVTdGF0ZSB2MkJhc2VsaW5lU3RhdGUpDQogICAgICAgIHsNCiAgICAgICAgICAgIHN3aXRjaCAodjJCYXNlbGluZVN0YXRlKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIGNhc2UgQmFzZWxpbmVTdGF0ZS5BYnNlbnQ6DQogICAgICAgICAgICAgICAgICAgIHJldHVybiBCYXNlbGluZVN0YXRlVmVyc2lvbk9uZS5BYnNlbnQ7DQogICAgICAgICAgICAgICAgY2FzZSBCYXNlbGluZVN0YXRlLkV4aXN0aW5nOg0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gQmFzZWxpbmVTdGF0ZVZlcnNpb25PbmUuRXhpc3Rpbmc7DQogICAgICAgICAgICAgICAgY2FzZSBCYXNlbGluZVN0YXRlLk5ldzoNCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEJhc2VsaW5lU3RhdGVWZXJzaW9uT25lLk5ldzsNCiAgICAgICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gQmFzZWxpbmVTdGF0ZVZlcnNpb25PbmUuTm9uZTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgIHB1YmxpYyBzdGF0aWMgVGhyZWFkRmxvd0xvY2F0aW9uSW1wb3J0YW5jZSBDcmVhdGVUaHJlYWRGbG93TG9jYXRpb25JbXBvcnRhbmNlKEFubm90YXRlZENvZGVMb2NhdGlvbkltcG9ydGFuY2VWZXJzaW9uT25lIHYxQW5ub3RhdGVkQ29kZUxvY2F0aW9uSW1wb3J0YW5jZSkNCiAgICAgICAgew0KICAgICAgICAgICAgc3dpdGNoICh2MUFubm90YXRlZENvZGVMb2NhdGlvbkltcG9ydGFuY2UpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgY2FzZSBBbm5vdGF0ZWRDb2RlTG9jYXRpb25JbXBvcnRhbmNlVmVyc2lvbk9uZS5Fc3NlbnRpYWw6DQogICAgICAgICAgICAgICAgICAgIHJldHVybiBUaHJlYWRGbG93TG9jYXRpb25JbXBvcnRhbmNlLkVzc2VudGlhbDsNCiAgICAgICAgICAgICAgICBjYXNlIEFubm90YXRlZENvZGVMb2NhdGlvbkltcG9ydGFuY2VWZXJzaW9uT25lLkltcG9ydGFudDoNCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFRocmVhZEZsb3dMb2NhdGlvbkltcG9ydGFuY2UuSW1wb3J0YW50Ow0KICAgICAgICAgICAgICAgIGNhc2UgQW5ub3RhdGVkQ29kZUxvY2F0aW9uSW1wb3J0YW5jZVZlcnNpb25PbmUuVW5pbXBvcnRhbnQ6DQogICAgICAgICAgICAgICAgICAgIHJldHVybiBUaHJlYWRGbG93TG9jYXRpb25JbXBvcnRhbmNlLlVuaW1wb3J0YW50Ow0KICAgICAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgICAgIHJldHVybiBUaHJlYWRGbG93TG9jYXRpb25JbXBvcnRhbmNlLkltcG9ydGFudDsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgIHB1YmxpYyBzdGF0aWMgQW5ub3RhdGVkQ29kZUxvY2F0aW9uSW1wb3J0YW5jZVZlcnNpb25PbmUgQ3JlYXRlQW5ub3RhdGVkQ29kZUxvY2F0aW9uSW1wb3J0YW5jZShUaHJlYWRGbG93TG9jYXRpb25JbXBvcnRhbmNlIHYyVGhyZWFkRmxvd0xvY2F0aW9uSW1wb3J0YW5jZSkNCiAgICAgICAgew0KICAgICAgICAgICAgc3dpdGNoICh2MlRocmVhZEZsb3dMb2NhdGlvbkltcG9ydGFuY2UpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgY2FzZSBUaHJlYWRGbG93TG9jYXRpb25JbXBvcnRhbmNlLkVzc2VudGlhbDoNCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEFubm90YXRlZENvZGVMb2NhdGlvbkltcG9ydGFuY2VWZXJzaW9uT25lLkVzc2VudGlhbDsNCiAgICAgICAgICAgICAgICBjYXNlIFRocmVhZEZsb3dMb2NhdGlvbkltcG9ydGFuY2UuSW1wb3J0YW50Og0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gQW5ub3RhdGVkQ29kZUxvY2F0aW9uSW1wb3J0YW5jZVZlcnNpb25PbmUuSW1wb3J0YW50Ow0KICAgICAgICAgICAgICAgIGNhc2UgVGhyZWFkRmxvd0xvY2F0aW9uSW1wb3J0YW5jZS5VbmltcG9ydGFudDoNCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEFubm90YXRlZENvZGVMb2NhdGlvbkltcG9ydGFuY2VWZXJzaW9uT25lLlVuaW1wb3J0YW50Ow0KICAgICAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgICAgIHJldHVybiBBbm5vdGF0ZWRDb2RlTG9jYXRpb25JbXBvcnRhbmNlVmVyc2lvbk9uZS5JbXBvcnRhbnQ7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCiAgICB9DQp9" + ], + "partialFingerprints": { + "UniqueId": "Parameter" }, - "hashes": [ - { - "value": "B779CA0CA15C477813991DB43B70A49E", - "algorithm": "md5" - }, - { - "value": "CB069FCDD1B501E603688CE92D275F0DB87737F0", - "algorithm": "sha-1" - }, - { - "value": "9FFC6F9DCDC132B48F222EFFCCB564B738F60059DED7748947851C5E1BDF4895", - "algorithm": "sha-256" - } - ] + "properties": { + "Category": "Microsoft.Performance", + "FixCategory": "NonBreaking" + } }, - "file:///E:/src/sarif-sdk-test/src/Sarif/Visitors/SarifVersionOneToCurrentVisitor.cs": { - "mimeType": "text/x-csharp", - "contents": { - "binary": "77u/Ly8gQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuDQovLyBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UuIFNlZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHByb2plY3Qgcm9vdCBmb3IgZnVsbCBsaWNlbnNlIGluZm9ybWF0aW9uLg0KDQp1c2luZyBTeXN0ZW07DQp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsNCnVzaW5nIFN5c3RlbS5HbG9iYWxpemF0aW9uOw0KdXNpbmcgU3lzdGVtLkxpbnE7DQp1c2luZyBNaWNyb3NvZnQuQ29kZUFuYWx5c2lzLlNhcmlmLlZlcnNpb25PbmU7DQp1c2luZyBNaWNyb3NvZnQuQ29kZUFuYWx5c2lzLlNhcmlmLldyaXRlcnM7DQp1c2luZyBVdGlsaXRpZXMgPSBNaWNyb3NvZnQuQ29kZUFuYWx5c2lzLlNhcmlmLlZpc2l0b3JzLlNhcmlmVHJhbnNmb3JtZXJVdGlsaXRpZXM7DQoNCm5hbWVzcGFjZSBNaWNyb3NvZnQuQ29kZUFuYWx5c2lzLlNhcmlmLlZpc2l0b3JzDQp7DQogICAgcHVibGljIGNsYXNzIFNhcmlmVmVyc2lvbk9uZVRvQ3VycmVudFZpc2l0b3IgOiBTYXJpZlJld3JpdGluZ1Zpc2l0b3JWZXJzaW9uT25lDQogICAgew0KICAgICAgICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBTYXJpZlZlcnNpb24gRnJvbVNhcmlmVmVyc2lvbiA9IFNhcmlmVmVyc2lvbi5PbmVaZXJvWmVybzsNCiAgICAgICAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgc3RyaW5nIEZyb21Qcm9wZXJ0eUJhZ1ByZWZpeCA9DQogICAgICAgICAgICBVdGlsaXRpZXMuUHJvcGVydHlCYWdUcmFuc2Zvcm1lckl0ZW1QcmVmaXhlc1tGcm9tU2FyaWZWZXJzaW9uXTsNCg0KICAgICAgICBwcml2YXRlIFJ1biBfY3VycmVudFJ1biA9IG51bGw7DQogICAgICAgIHByaXZhdGUgUnVuVmVyc2lvbk9uZSBfY3VycmVudFYxUnVuID0gbnVsbDsNCiAgICAgICAgcHJpdmF0ZSBpbnQgX3RocmVhZEZsb3dMb2NhdGlvbk5lc3RpbmdMZXZlbDsNCg0KICAgICAgICBwdWJsaWMgU2FyaWZMb2cgU2FyaWZMb2cgeyBnZXQ7IHByaXZhdGUgc2V0OyB9DQoNCiAgICAgICAgcHVibGljIG92ZXJyaWRlIFNhcmlmTG9nVmVyc2lvbk9uZSBWaXNpdFNhcmlmTG9nVmVyc2lvbk9uZShTYXJpZkxvZ1ZlcnNpb25PbmUgdjFTYXJpZkxvZykNCiAgICAgICAgew0KICAgICAgICAgICAgU2FyaWZMb2cgPSBuZXcgU2FyaWZMb2coU2FyaWZWZXJzaW9uLlR3b1plcm9aZXJvLkNvbnZlcnRUb1NjaGVtYVVyaSgpLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU2FyaWZWZXJzaW9uLlR3b1plcm9aZXJvLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IExpc3Q8UnVuPigpKTsNCg0KICAgICAgICAgICAgZm9yZWFjaCAoUnVuVmVyc2lvbk9uZSB2MVJ1biBpbiB2MVNhcmlmTG9nLlJ1bnMpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgU2FyaWZMb2cuUnVucy5BZGQoQ3JlYXRlUnVuKHYxUnVuKSk7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIHJldHVybiBudWxsOw0KICAgICAgICB9DQoNCiAgICAgICAgaW50ZXJuYWwgQ29kZUZsb3cgQ3JlYXRlQ29kZUZsb3coQ29kZUZsb3dWZXJzaW9uT25lIHYxQ29kZUZsb3cpDQogICAgICAgIHsNCiAgICAgICAgICAgIENvZGVGbG93IGNvZGVGbG93ID0gbnVsbDsNCg0KICAgICAgICAgICAgaWYgKHYxQ29kZUZsb3cgIT0gbnVsbCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBjb2RlRmxvdyA9IG5ldyBDb2RlRmxvdw0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgTWVzc2FnZSA9IENyZWF0ZU1lc3NhZ2UodjFDb2RlRmxvdy5NZXNzYWdlKSwNCiAgICAgICAgICAgICAgICAgICAgUHJvcGVydGllcyA9IHYxQ29kZUZsb3cuUHJvcGVydGllcw0KICAgICAgICAgICAgICAgIH07DQoNCiAgICAgICAgICAgICAgICBpZiAodjFDb2RlRmxvdy5Mb2NhdGlvbnMgIT0gbnVsbCAmJiB2MUNvZGVGbG93LkxvY2F0aW9ucy5Db3VudCA+IDApDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBfdGhyZWFkRmxvd0xvY2F0aW9uTmVzdGluZ0xldmVsID0gMDsNCiAgICAgICAgICAgICAgICAgICAgaW50IGV4ZWN1dGlvbk9yZGVyID0gMDsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRocmVhZEZsb3dEaWN0aW9uYXJ5ID0gbmV3IERpY3Rpb25hcnk8aW50LCBUaHJlYWRGbG93PigpOw0KDQogICAgICAgICAgICAgICAgICAgIGZvcmVhY2ggKEFubm90YXRlZENvZGVMb2NhdGlvblZlcnNpb25PbmUgdjFDb2RlTG9jYXRpb24gaW4gdjFDb2RlRmxvdy5Mb2NhdGlvbnMpDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIFRocmVhZEZsb3cgdGhyZWFkRmxvdzsNCiAgICAgICAgICAgICAgICAgICAgICAgIGludCB0aHJlYWRJZCA9IHYxQ29kZUxvY2F0aW9uLlRocmVhZElkOw0KDQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXRocmVhZEZsb3dEaWN0aW9uYXJ5LlRyeUdldFZhbHVlKHRocmVhZElkLCBvdXQgdGhyZWFkRmxvdykpDQogICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyZWFkRmxvdyA9IG5ldyBUaHJlYWRGbG93DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZCA9IHRocmVhZElkLlRvU3RyaW5nKEN1bHR1cmVJbmZvLkludmFyaWFudEN1bHR1cmUpLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhdGlvbnMgPSBuZXcgTGlzdDxUaHJlYWRGbG93TG9jYXRpb24+KCkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ow0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocmVhZEZsb3dEaWN0aW9uYXJ5LkFkZCh0aHJlYWRJZCwgdGhyZWFkRmxvdyk7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAgICAgICAgIFRocmVhZEZsb3dMb2NhdGlvbiB0ZmwgPSBDcmVhdGVUaHJlYWRGbG93TG9jYXRpb24odjFDb2RlTG9jYXRpb24pOw0KICAgICAgICAgICAgICAgICAgICAgICAgdGZsLlN0ZXAgPSB0aHJlYWRGbG93LkxvY2F0aW9ucy5Db3VudCArIDE7DQogICAgICAgICAgICAgICAgICAgICAgICB0ZmwuRXhlY3V0aW9uT3JkZXIgPSArK2V4ZWN1dGlvbk9yZGVyOw0KICAgICAgICAgICAgICAgICAgICAgICAgdGhyZWFkRmxvdy5Mb2NhdGlvbnMuQWRkKHRmbCk7DQogICAgICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgICAgICBjb2RlRmxvdy5UaHJlYWRGbG93cyA9IHRocmVhZEZsb3dEaWN0aW9uYXJ5LlZhbHVlcy5Ub0xpc3QoKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIHJldHVybiBjb2RlRmxvdzsNCiAgICAgICAgfQ0KDQogICAgICAgIGludGVybmFsIFRocmVhZEZsb3dMb2NhdGlvbiBDcmVhdGVUaHJlYWRGbG93TG9jYXRpb24oQW5ub3RhdGVkQ29kZUxvY2F0aW9uVmVyc2lvbk9uZSB2MUFubm90YXRlZENvZGVMb2NhdGlvbikNCiAgICAgICAgew0KICAgICAgICAgICAgVGhyZWFkRmxvd0xvY2F0aW9uIHRocmVhZEZsb3dMb2NhdGlvbiA9IG51bGw7DQoNCiAgICAgICAgICAgIGlmICh2MUFubm90YXRlZENvZGVMb2NhdGlvbiAhPSBudWxsKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHRocmVhZEZsb3dMb2NhdGlvbiA9IG5ldyBUaHJlYWRGbG93TG9jYXRpb24NCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIEltcG9ydGFuY2UgPSBVdGlsaXRpZXMuQ3JlYXRlVGhyZWFkRmxvd0xvY2F0aW9uSW1wb3J0YW5jZSh2MUFubm90YXRlZENvZGVMb2NhdGlvbi5JbXBvcnRhbmNlKSwNCiAgICAgICAgICAgICAgICAgICAgTG9jYXRpb24gPSBDcmVhdGVMb2NhdGlvbih2MUFubm90YXRlZENvZGVMb2NhdGlvbiksDQogICAgICAgICAgICAgICAgICAgIE1vZHVsZSA9IHYxQW5ub3RhdGVkQ29kZUxvY2F0aW9uLk1vZHVsZSwNCiAgICAgICAgICAgICAgICAgICAgTmVzdGluZ0xldmVsID0gX3RocmVhZEZsb3dMb2NhdGlvbk5lc3RpbmdMZXZlbCwNCiAgICAgICAgICAgICAgICAgICAgUHJvcGVydGllcyA9IHYxQW5ub3RhdGVkQ29kZUxvY2F0aW9uLlByb3BlcnRpZXMsDQogICAgICAgICAgICAgICAgICAgIFN0YXRlID0gdjFBbm5vdGF0ZWRDb2RlTG9jYXRpb24uU3RhdGUsDQogICAgICAgICAgICAgICAgICAgIFN0ZXAgPSB2MUFubm90YXRlZENvZGVMb2NhdGlvbi5TdGVwDQogICAgICAgICAgICAgICAgfTsNCg0KICAgICAgICAgICAgICAgIGlmICh2MUFubm90YXRlZENvZGVMb2NhdGlvbi5LaW5kID09IEFubm90YXRlZENvZGVMb2NhdGlvbktpbmRWZXJzaW9uT25lLkNhbGwpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBfdGhyZWFkRmxvd0xvY2F0aW9uTmVzdGluZ0xldmVsKys7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGVsc2UgaWYgKHYxQW5ub3RhdGVkQ29kZUxvY2F0aW9uLktpbmQgPT0gQW5ub3RhdGVkQ29kZUxvY2F0aW9uS2luZFZlcnNpb25PbmUuQ2FsbFJldHVybikNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIF90aHJlYWRGbG93TG9jYXRpb25OZXN0aW5nTGV2ZWwtLTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIHJldHVybiB0aHJlYWRGbG93TG9jYXRpb247DQogICAgICAgIH0NCg0KICAgICAgICBpbnRlcm5hbCBFeGNlcHRpb25EYXRhIENyZWF0ZUV4Y2VwdGlvbkRhdGEoRXhjZXB0aW9uRGF0YVZlcnNpb25PbmUgdjFFeGNlcHRpb25EYXRhKQ0KICAgICAgICB7DQogICAgICAgICAgICBFeGNlcHRpb25EYXRhIGV4Y2VwdGlvbkRhdGEgPSBudWxsOw0KDQogICAgICAgICAgICBpZiAodjFFeGNlcHRpb25EYXRhICE9IG51bGwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgZXhjZXB0aW9uRGF0YSA9IG5ldyBFeGNlcHRpb25EYXRhDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBJbm5lckV4Y2VwdGlvbnMgPSB2MUV4Y2VwdGlvbkRhdGEuSW5uZXJFeGNlcHRpb25zPy5TZWxlY3QoQ3JlYXRlRXhjZXB0aW9uRGF0YSkuVG9MaXN0KCksDQogICAgICAgICAgICAgICAgICAgIEtpbmQgPSB2MUV4Y2VwdGlvbkRhdGEuS2luZCwNCiAgICAgICAgICAgICAgICAgICAgTWVzc2FnZSA9IHYxRXhjZXB0aW9uRGF0YS5NZXNzYWdlLA0KICAgICAgICAgICAgICAgICAgICBTdGFjayA9IENyZWF0ZVN0YWNrKHYxRXhjZXB0aW9uRGF0YS5TdGFjaykNCiAgICAgICAgICAgICAgICB9Ow0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICByZXR1cm4gZXhjZXB0aW9uRGF0YTsNCiAgICAgICAgfQ0KDQogICAgICAgIGludGVybmFsIEZpbGVDaGFuZ2UgQ3JlYXRlRmlsZUNoYW5nZShGaWxlQ2hhbmdlVmVyc2lvbk9uZSB2MUZpbGVDaGFuZ2UpDQogICAgICAgIHsNCiAgICAgICAgICAgIEZpbGVDaGFuZ2UgZmlsZUNoYW5nZSA9IG51bGw7DQoNCiAgICAgICAgICAgIGlmICh2MUZpbGVDaGFuZ2UgIT0gbnVsbCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBmaWxlQ2hhbmdlID0gbmV3IEZpbGVDaGFuZ2UNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIEZpbGVMb2NhdGlvbiA9IENyZWF0ZUZpbGVMb2NhdGlvbih2MUZpbGVDaGFuZ2UpLA0KICAgICAgICAgICAgICAgICAgICBSZXBsYWNlbWVudHMgPSB2MUZpbGVDaGFuZ2UuUmVwbGFjZW1lbnRzPy5TZWxlY3QoQ3JlYXRlUmVwbGFjZW1lbnQpLlRvTGlzdCgpDQogICAgICAgICAgICAgICAgfTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgcmV0dXJuIGZpbGVDaGFuZ2U7DQogICAgICAgIH0NCg0KICAgICAgICBpbnRlcm5hbCBGaWxlRGF0YSBDcmVhdGVGaWxlRGF0YShGaWxlRGF0YVZlcnNpb25PbmUgdjFGaWxlRGF0YSkNCiAgICAgICAgew0KICAgICAgICAgICAgRmlsZURhdGEgZmlsZURhdGEgPSBudWxsOw0KDQogICAgICAgICAgICBpZiAodjFGaWxlRGF0YSAhPSBudWxsKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIGZpbGVEYXRhID0gbmV3IEZpbGVEYXRhDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBIYXNoZXMgPSB2MUZpbGVEYXRhLkhhc2hlcz8uU2VsZWN0KENyZWF0ZUhhc2gpLlRvTGlzdCgpLA0KICAgICAgICAgICAgICAgICAgICBMZW5ndGggPSB2MUZpbGVEYXRhLkxlbmd0aCwNCiAgICAgICAgICAgICAgICAgICAgTWltZVR5cGUgPSB2MUZpbGVEYXRhLk1pbWVUeXBlLA0KICAgICAgICAgICAgICAgICAgICBPZmZzZXQgPSB2MUZpbGVEYXRhLk9mZnNldCwNCiAgICAgICAgICAgICAgICAgICAgUGFyZW50S2V5ID0gdjFGaWxlRGF0YS5QYXJlbnRLZXksDQogICAgICAgICAgICAgICAgICAgIFByb3BlcnRpZXMgPSB2MUZpbGVEYXRhLlByb3BlcnRpZXMNCiAgICAgICAgICAgICAgICB9Ow0KDQogICAgICAgICAgICAgICAgaWYgKHYxRmlsZURhdGEuVXJpICE9IG51bGwpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBmaWxlRGF0YS5GaWxlTG9jYXRpb24gPSBuZXcgRmlsZUxvY2F0aW9uDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIFVyaSA9IHYxRmlsZURhdGEuVXJpLA0KICAgICAgICAgICAgICAgICAgICAgICAgVXJpQmFzZUlkID0gdjFGaWxlRGF0YS5VcmlCYXNlSWQNCiAgICAgICAgICAgICAgICAgICAgfTsNCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICBpZiAodjFGaWxlRGF0YS5Db250ZW50cyAhPSBudWxsKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgZmlsZURhdGEuQ29udGVudHMgPSBuZXcgRmlsZUNvbnRlbnQoKTsNCg0KICAgICAgICAgICAgICAgICAgICBpZiAoTWltZVR5cGUuSXNUZXh0dWFsTWltZVR5cGUodjFGaWxlRGF0YS5NaW1lVHlwZSkpDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGZpbGVEYXRhLkNvbnRlbnRzLlRleHQgPSBTYXJpZlV0aWxpdGllcy5EZWNvZGVCYXNlNjRTdHJpbmcodjFGaWxlRGF0YS5Db250ZW50cyk7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgZWxzZQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICBmaWxlRGF0YS5Db250ZW50cy5CaW5hcnkgPSB2MUZpbGVEYXRhLkNvbnRlbnRzOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICByZXR1cm4gZmlsZURhdGE7DQogICAgICAgIH0NCg0KICAgICAgICBpbnRlcm5hbCBGaWxlTG9jYXRpb24gQ3JlYXRlRmlsZUxvY2F0aW9uKFVyaSB1cmksIHN0cmluZyB1cmlCYXNlSWQpDQogICAgICAgIHsNCiAgICAgICAgICAgIEZpbGVMb2NhdGlvbiBmaWxlTG9jYXRpb24gPSBudWxsOw0KDQogICAgICAgICAgICBpZiAodXJpICE9IG51bGwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgZmlsZUxvY2F0aW9uID0gbmV3IEZpbGVMb2NhdGlvbg0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgVXJpID0gdXJpLA0KICAgICAgICAgICAgICAgICAgICBVcmlCYXNlSWQgPSB1cmlCYXNlSWQNCiAgICAgICAgICAgICAgICB9Ow0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICByZXR1cm4gZmlsZUxvY2F0aW9uOw0KICAgICAgICB9DQoNCiAgICAgICAgaW50ZXJuYWwgRmlsZUxvY2F0aW9uIENyZWF0ZUZpbGVMb2NhdGlvbihQaHlzaWNhbExvY2F0aW9uVmVyc2lvbk9uZSB2MVBoeXNpY2FsTG9jYXRpb24pDQogICAgICAgIHsNCiAgICAgICAgICAgIHJldHVybiBDcmVhdGVGaWxlTG9jYXRpb24odjFQaHlzaWNhbExvY2F0aW9uPy5VcmksIHYxUGh5c2ljYWxMb2NhdGlvbj8uVXJpQmFzZUlkKTsNCiAgICAgICAgfQ0KDQogICAgICAgIGludGVybmFsIEZpbGVMb2NhdGlvbiBDcmVhdGVGaWxlTG9jYXRpb24oRmlsZUNoYW5nZVZlcnNpb25PbmUgdjFGaWxlQ2hhbmdlKQ0KICAgICAgICB7DQogICAgICAgICAgICByZXR1cm4gQ3JlYXRlRmlsZUxvY2F0aW9uKHYxRmlsZUNoYW5nZT8uVXJpLCB2MUZpbGVDaGFuZ2U/LlVyaUJhc2VJZCk7DQogICAgICAgIH0NCg0KICAgICAgICBpbnRlcm5hbCBGaXggQ3JlYXRlRml4KEZpeFZlcnNpb25PbmUgdjFGaXgpDQogICAgICAgIHsNCiAgICAgICAgICAgIEZpeCBmaXggPSBudWxsOw0KDQogICAgICAgICAgICBpZiAodjFGaXggIT0gbnVsbCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBmaXggPSBuZXcgRml4KCkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIERlc2NyaXB0aW9uID0gQ3JlYXRlTWVzc2FnZSh2MUZpeC5EZXNjcmlwdGlvbiksDQogICAgICAgICAgICAgICAgICAgIEZpbGVDaGFuZ2VzID0gdjFGaXguRmlsZUNoYW5nZXM/LlNlbGVjdChDcmVhdGVGaWxlQ2hhbmdlKS5Ub0xpc3QoKQ0KICAgICAgICAgICAgICAgIH07DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIHJldHVybiBmaXg7DQogICAgICAgIH0NCg0KICAgICAgICBpbnRlcm5hbCBIYXNoIENyZWF0ZUhhc2goSGFzaFZlcnNpb25PbmUgdjFIYXNoKQ0KICAgICAgICB7DQogICAgICAgICAgICBIYXNoIGhhc2ggPSBudWxsOw0KDQogICAgICAgICAgICBpZiAodjFIYXNoICE9IG51bGwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgc3RyaW5nIGFsZ29yaXRobTsNCiAgICAgICAgICAgICAgICBpZiAoIVV0aWxpdGllcy5BbGdvcml0aG1LaW5kTmFtZU1hcC5UcnlHZXRWYWx1ZSh2MUhhc2guQWxnb3JpdGhtLCBvdXQgYWxnb3JpdGhtKSkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIGFsZ29yaXRobSA9IHYxSGFzaC5BbGdvcml0aG0uVG9TdHJpbmcoKS5Ub0xvd2VySW52YXJpYW50KCk7DQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgaGFzaCA9IG5ldyBIYXNoDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBBbGdvcml0aG0gPSBhbGdvcml0aG0sDQogICAgICAgICAgICAgICAgICAgIFZhbHVlID0gdjFIYXNoLlZhbHVlDQogICAgICAgICAgICAgICAgfTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgcmV0dXJuIGhhc2g7DQogICAgICAgIH0NCg0KICAgICAgICBpbnRlcm5hbCBJbnZvY2F0aW9uIENyZWF0ZUludm9jYXRpb24oSW52b2NhdGlvblZlcnNpb25PbmUgdjFJbnZvY2F0aW9uLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSUxpc3Q8Tm90aWZpY2F0aW9uVmVyc2lvbk9uZT4gdjFUb29sTm90aWZpY2F0aW9ucywNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElMaXN0PE5vdGlmaWNhdGlvblZlcnNpb25PbmU+IHYxQ29uZmlndXJhdGlvbk5vdGlmaWNhdGlvbnMpDQogICAgICAgIHsNCiAgICAgICAgICAgIEludm9jYXRpb24gaW52b2NhdGlvbiA9IENyZWF0ZUludm9jYXRpb24odjFJbnZvY2F0aW9uKTsNCiAgICAgICAgICAgIElMaXN0PE5vdGlmaWNhdGlvbj4gdG9vbE5vdGlmaWNhdGlvbnMgPSB2MVRvb2xOb3RpZmljYXRpb25zPy5TZWxlY3QoQ3JlYXRlTm90aWZpY2F0aW9uKS5Ub0xpc3QoKTsNCiAgICAgICAgICAgIElMaXN0PE5vdGlmaWNhdGlvbj4gY29uZmlndXJhdGlvbk5vdGlmaWNhdGlvbnMgPSB2MUNvbmZpZ3VyYXRpb25Ob3RpZmljYXRpb25zPy5TZWxlY3QoQ3JlYXRlTm90aWZpY2F0aW9uKS5Ub0xpc3QoKTsgOw0KDQogICAgICAgICAgICBpZiAodG9vbE5vdGlmaWNhdGlvbnM/LkNvdW50ID4gMCB8fCBjb25maWd1cmF0aW9uTm90aWZpY2F0aW9ucz8uQ291bnQgPiAwKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIGlmIChpbnZvY2F0aW9uID09IG51bGwpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBpbnZvY2F0aW9uID0gbmV3IEludm9jYXRpb24oKTsNCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICBpbnZvY2F0aW9uLlRvb2xOb3RpZmljYXRpb25zID0gdG9vbE5vdGlmaWNhdGlvbnM7DQogICAgICAgICAgICAgICAgaW52b2NhdGlvbi5Db25maWd1cmF0aW9uTm90aWZpY2F0aW9ucyA9IGNvbmZpZ3VyYXRpb25Ob3RpZmljYXRpb25zOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICByZXR1cm4gaW52b2NhdGlvbjsNCiAgICAgICAgfQ0KDQogICAgICAgIGludGVybmFsIEludm9jYXRpb24gQ3JlYXRlSW52b2NhdGlvbihJbnZvY2F0aW9uVmVyc2lvbk9uZSB2MUludm9jYXRpb24pDQogICAgICAgIHsNCiAgICAgICAgICAgIEludm9jYXRpb24gaW52b2NhdGlvbiA9IG51bGw7DQoNCiAgICAgICAgICAgIGlmICh2MUludm9jYXRpb24gIT0gbnVsbCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBpbnZvY2F0aW9uID0gbmV3IEludm9jYXRpb24NCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIEFjY291bnQgPSB2MUludm9jYXRpb24uQWNjb3VudCwNCiAgICAgICAgICAgICAgICAgICAgQ29tbWFuZExpbmUgPSB2MUludm9jYXRpb24uQ29tbWFuZExpbmUsDQogICAgICAgICAgICAgICAgICAgIEVuZFRpbWUgPSB2MUludm9jYXRpb24uRW5kVGltZSwNCiAgICAgICAgICAgICAgICAgICAgRW52aXJvbm1lbnRWYXJpYWJsZXMgPSB2MUludm9jYXRpb24uRW52aXJvbm1lbnRWYXJpYWJsZXMsDQogICAgICAgICAgICAgICAgICAgIE1hY2hpbmUgPSB2MUludm9jYXRpb24uTWFjaGluZSwNCiAgICAgICAgICAgICAgICAgICAgUHJvY2Vzc0lkID0gdjFJbnZvY2F0aW9uLlByb2Nlc3NJZCwNCiAgICAgICAgICAgICAgICAgICAgUHJvcGVydGllcyA9IHYxSW52b2NhdGlvbi5Qcm9wZXJ0aWVzLA0KICAgICAgICAgICAgICAgICAgICBSZXNwb25zZUZpbGVzID0gQ3JlYXRlUmVzcG9uc2VGaWxlc0xpc3QodjFJbnZvY2F0aW9uLlJlc3BvbnNlRmlsZXMpLA0KICAgICAgICAgICAgICAgICAgICBTdGFydFRpbWUgPSB2MUludm9jYXRpb24uU3RhcnRUaW1lLA0KICAgICAgICAgICAgICAgICAgICBXb3JraW5nRGlyZWN0b3J5ID0gdjFJbnZvY2F0aW9uLldvcmtpbmdEaXJlY3RvcnkNCiAgICAgICAgICAgICAgICB9Ow0KDQogICAgICAgICAgICAgICAgaWYgKCFzdHJpbmcuSXNOdWxsT3JXaGl0ZVNwYWNlKHYxSW52b2NhdGlvbi5GaWxlTmFtZSkpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBpbnZvY2F0aW9uLkV4ZWN1dGFibGVMb2NhdGlvbiA9IG5ldyBGaWxlTG9jYXRpb24NCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgVXJpID0gbmV3IFVyaSh2MUludm9jYXRpb24uRmlsZU5hbWUsIFVyaUtpbmQuUmVsYXRpdmVPckFic29sdXRlKQ0KICAgICAgICAgICAgICAgICAgICB9Ow0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgcmV0dXJuIGludm9jYXRpb247DQogICAgICAgIH0NCg0KICAgICAgICBpbnRlcm5hbCBMb2NhdGlvbiBDcmVhdGVMb2NhdGlvbihMb2NhdGlvblZlcnNpb25PbmUgdjFMb2NhdGlvbikNCiAgICAgICAgew0KICAgICAgICAgICAgTG9jYXRpb24gbG9jYXRpb24gPSBudWxsOw0KDQogICAgICAgICAgICBpZiAodjFMb2NhdGlvbiAhPSBudWxsKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIGxvY2F0aW9uID0gbmV3IExvY2F0aW9uDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBGdWxseVF1YWxpZmllZExvZ2ljYWxOYW1lID0gdjFMb2NhdGlvbi5Mb2dpY2FsTG9jYXRpb25LZXkgPz8gdjFMb2NhdGlvbi5GdWxseVF1YWxpZmllZExvZ2ljYWxOYW1lLA0KICAgICAgICAgICAgICAgICAgICBQaHlzaWNhbExvY2F0aW9uID0gQ3JlYXRlUGh5c2ljYWxMb2NhdGlvbih2MUxvY2F0aW9uLlJlc3VsdEZpbGUpLA0KICAgICAgICAgICAgICAgICAgICBQcm9wZXJ0aWVzID0gdjFMb2NhdGlvbi5Qcm9wZXJ0aWVzDQogICAgICAgICAgICAgICAgfTsNCg0KICAgICAgICAgICAgICAgIGlmICghc3RyaW5nLklzTnVsbE9yV2hpdGVTcGFjZShsb2NhdGlvbi5GdWxseVF1YWxpZmllZExvZ2ljYWxOYW1lKSkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIGlmIChfY3VycmVudFJ1bi5Mb2dpY2FsTG9jYXRpb25zPy5Db250YWluc0tleShsb2NhdGlvbi5GdWxseVF1YWxpZmllZExvZ2ljYWxOYW1lKSA9PSB0cnVlKQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICBfY3VycmVudFJ1bi5Mb2dpY2FsTG9jYXRpb25zW2xvY2F0aW9uLkZ1bGx5UXVhbGlmaWVkTG9naWNhbE5hbWVdLkRlY29yYXRlZE5hbWUgPSB2MUxvY2F0aW9uLkRlY29yYXRlZE5hbWU7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgZWxzZQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICBMb2dpY2FsTG9jYXRpb24gbG9naWNhbExvY2F0aW9uID0gQ3JlYXRlTG9naWNhbExvY2F0aW9uKGxvY2F0aW9uLkZ1bGx5UXVhbGlmaWVkTG9naWNhbE5hbWUsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlY29yYXRlZE5hbWU6IHYxTG9jYXRpb24uRGVjb3JhdGVkTmFtZSk7DQogICAgICAgICAgICAgICAgICAgICAgICBsb2NhdGlvbi5GdWxseVF1YWxpZmllZExvZ2ljYWxOYW1lID0gQWRkTG9naWNhbExvY2F0aW9uKGxvZ2ljYWxMb2NhdGlvbik7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIHJldHVybiBsb2NhdGlvbjsNCiAgICAgICAgfQ0KDQogICAgICAgIGludGVybmFsIExvY2F0aW9uIENyZWF0ZUxvY2F0aW9uKEFubm90YXRlZENvZGVMb2NhdGlvblZlcnNpb25PbmUgdjFBbm5vdGF0ZWRDb2RlTG9jYXRpb24pDQogICAgICAgIHsNCiAgICAgICAgICAgIExvY2F0aW9uIGxvY2F0aW9uID0gbnVsbDsNCg0KICAgICAgICAgICAgaWYgKHYxQW5ub3RhdGVkQ29kZUxvY2F0aW9uICE9IG51bGwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgbG9jYXRpb24gPSBuZXcgTG9jYXRpb24NCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIEFubm90YXRpb25zID0gdjFBbm5vdGF0ZWRDb2RlTG9jYXRpb24uQW5ub3RhdGlvbnM/LlNlbGVjdE1hbnkoYSA9PiBhLkxvY2F0aW9ucywNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChhLCBwbCkgPT4gQ3JlYXRlUmVnaW9uKHYxQW5ub3RhdGVkQ29kZUxvY2F0aW9uLlBoeXNpY2FsTG9jYXRpb24sDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbCwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGEuTWVzc2FnZSkpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLldoZXJlKHIgPT4gciAhPSBudWxsKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5Ub0xpc3QoKSwNCiAgICAgICAgICAgICAgICAgICAgRnVsbHlRdWFsaWZpZWRMb2dpY2FsTmFtZSA9IHYxQW5ub3RhdGVkQ29kZUxvY2F0aW9uLkxvZ2ljYWxMb2NhdGlvbktleSA/PyB2MUFubm90YXRlZENvZGVMb2NhdGlvbi5GdWxseVF1YWxpZmllZExvZ2ljYWxOYW1lLA0KICAgICAgICAgICAgICAgICAgICBNZXNzYWdlID0gQ3JlYXRlTWVzc2FnZSh2MUFubm90YXRlZENvZGVMb2NhdGlvbi5NZXNzYWdlKSwNCiAgICAgICAgICAgICAgICAgICAgUGh5c2ljYWxMb2NhdGlvbiA9IENyZWF0ZVBoeXNpY2FsTG9jYXRpb24odjFBbm5vdGF0ZWRDb2RlTG9jYXRpb24uUGh5c2ljYWxMb2NhdGlvbiksDQogICAgICAgICAgICAgICAgICAgIFByb3BlcnRpZXMgPSB2MUFubm90YXRlZENvZGVMb2NhdGlvbi5Qcm9wZXJ0aWVzDQogICAgICAgICAgICAgICAgfTsNCg0KICAgICAgICAgICAgICAgIGlmICghc3RyaW5nLklzTnVsbE9yV2hpdGVTcGFjZSh2MUFubm90YXRlZENvZGVMb2NhdGlvbi5TbmlwcGV0KSkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIGlmIChsb2NhdGlvbi5QaHlzaWNhbExvY2F0aW9uID09IG51bGwpDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGxvY2F0aW9uLlBoeXNpY2FsTG9jYXRpb24gPSBuZXcgUGh5c2ljYWxMb2NhdGlvbigpOw0KICAgICAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAgICAgaWYgKGxvY2F0aW9uLlBoeXNpY2FsTG9jYXRpb24uUmVnaW9uID09IG51bGwpDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGxvY2F0aW9uLlBoeXNpY2FsTG9jYXRpb24uUmVnaW9uID0gbmV3IFJlZ2lvbigpOw0KICAgICAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAgICAgbG9jYXRpb24uUGh5c2ljYWxMb2NhdGlvbi5SZWdpb24uU25pcHBldCA9IG5ldyBGaWxlQ29udGVudA0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICBUZXh0ID0gdjFBbm5vdGF0ZWRDb2RlTG9jYXRpb24uU25pcHBldA0KICAgICAgICAgICAgICAgICAgICB9Ow0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgcmV0dXJuIGxvY2F0aW9uOw0KICAgICAgICB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gVGhpcyBvdmVybG9hZCBvZiBDcmVhdGVMb2NhdGlvbiBpcyB1c2VkIGJ5IENyZWF0ZVN0YWNrRnJhbWUgdG8gYXNzZW1ibGUNCiAgICAgICAgLy8vIGEgbG9jYXRpb24gb2JqZWN0IGZyb20gYSBidW5jaCBvZiBpbmRpdmlkdWFsIHByb3BlcnRpZXMuDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIGludGVybmFsIExvY2F0aW9uIENyZWF0ZUxvY2F0aW9uKHN0cmluZyBmdWxseVF1YWxpZmllZExvZ2ljYWxOYW1lLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJpbmcgbG9naWNhbExvY2F0aW9uS2V5LA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJpbmcgbWVzc2FnZSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVXJpIHVyaSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyaW5nIHVyaUJhc2VJZCwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGNvbHVtbiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGxpbmUpDQogICAgICAgIHsNCiAgICAgICAgICAgIHZhciBsb2NhdGlvbiA9IG5ldyBMb2NhdGlvbg0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIE1lc3NhZ2UgPSBDcmVhdGVNZXNzYWdlKG1lc3NhZ2UpDQogICAgICAgICAgICB9Ow0KDQogICAgICAgICAgICBMb2dpY2FsTG9jYXRpb24gbG9naWNhbExvY2F0aW9uOw0KDQogICAgICAgICAgICBpZiAoIXN0cmluZy5Jc051bGxPcldoaXRlU3BhY2UobG9naWNhbExvY2F0aW9uS2V5KSAmJg0KICAgICAgICAgICAgICAgIF9jdXJyZW50UnVuLkxvZ2ljYWxMb2NhdGlvbnMuVHJ5R2V0VmFsdWUobG9naWNhbExvY2F0aW9uS2V5LCBvdXQgbG9naWNhbExvY2F0aW9uKSkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBsb2dpY2FsTG9jYXRpb24uRnVsbHlRdWFsaWZpZWROYW1lID0gZnVsbHlRdWFsaWZpZWRMb2dpY2FsTmFtZTsNCiAgICAgICAgICAgICAgICBsb2dpY2FsTG9jYXRpb24uTmFtZSA9IEdldExvZ2ljYWxMb2NhdGlvbk5hbWUoZnVsbHlRdWFsaWZpZWRMb2dpY2FsTmFtZSk7DQogICAgICAgICAgICAgICAgbG9jYXRpb24uRnVsbHlRdWFsaWZpZWRMb2dpY2FsTmFtZSA9IGxvZ2ljYWxMb2NhdGlvbktleTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2UgaWYgKCFzdHJpbmcuSXNOdWxsT3JXaGl0ZVNwYWNlKGZ1bGx5UXVhbGlmaWVkTG9naWNhbE5hbWUpKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIGxvZ2ljYWxMb2NhdGlvbiA9IENyZWF0ZUxvZ2ljYWxMb2NhdGlvbihmdWxseVF1YWxpZmllZExvZ2ljYWxOYW1lKTsNCiAgICAgICAgICAgICAgICBsb2NhdGlvbi5GdWxseVF1YWxpZmllZExvZ2ljYWxOYW1lID0gQWRkTG9naWNhbExvY2F0aW9uKGxvZ2ljYWxMb2NhdGlvbik7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIGlmICh1cmkgIT0gbnVsbCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBsb2NhdGlvbi5QaHlzaWNhbExvY2F0aW9uID0gbmV3IFBoeXNpY2FsTG9jYXRpb24NCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIEZpbGVMb2NhdGlvbiA9IENyZWF0ZUZpbGVMb2NhdGlvbih1cmksIHVyaUJhc2VJZCksDQogICAgICAgICAgICAgICAgICAgIFJlZ2lvbiA9IENyZWF0ZVJlZ2lvbihjb2x1bW4sIGxpbmUpDQogICAgICAgICAgICAgICAgfTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgcmV0dXJuIGxvY2F0aW9uOw0KICAgICAgICB9DQoNCiAgICAgICAgaW50ZXJuYWwgTG9naWNhbExvY2F0aW9uIENyZWF0ZUxvZ2ljYWxMb2NhdGlvbihMb2dpY2FsTG9jYXRpb25WZXJzaW9uT25lIHYxTG9naWNhbExvY2F0aW9uKQ0KICAgICAgICB7DQogICAgICAgICAgICBMb2dpY2FsTG9jYXRpb24gbG9naWNhbExvY2F0aW9uID0gbnVsbDsNCg0KICAgICAgICAgICAgaWYgKHYxTG9naWNhbExvY2F0aW9uICE9IG51bGwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgbG9naWNhbExvY2F0aW9uID0gbmV3IExvZ2ljYWxMb2NhdGlvbg0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgS2luZCA9IHYxTG9naWNhbExvY2F0aW9uLktpbmQsDQogICAgICAgICAgICAgICAgICAgIE5hbWUgPSB2MUxvZ2ljYWxMb2NhdGlvbi5OYW1lLA0KICAgICAgICAgICAgICAgICAgICBQYXJlbnRLZXkgPSB2MUxvZ2ljYWxMb2NhdGlvbi5QYXJlbnRLZXkNCiAgICAgICAgICAgICAgICB9Ow0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICByZXR1cm4gbG9naWNhbExvY2F0aW9uOw0KICAgICAgICB9DQoNCiAgICAgICAgaW50ZXJuYWwgTG9naWNhbExvY2F0aW9uIENyZWF0ZUxvZ2ljYWxMb2NhdGlvbihzdHJpbmcgZnVsbHlRdWFsaWZpZWRMb2dpY2FsTmFtZSwgc3RyaW5nIHBhcmVudEtleSA9IG51bGwsIHN0cmluZyBkZWNvcmF0ZWROYW1lID0gbnVsbCwgc3RyaW5nIGtpbmQgPSBudWxsKQ0KICAgICAgICB7DQogICAgICAgICAgICByZXR1cm4gbmV3IExvZ2ljYWxMb2NhdGlvbg0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIERlY29yYXRlZE5hbWUgPSBkZWNvcmF0ZWROYW1lLA0KICAgICAgICAgICAgICAgIEZ1bGx5UXVhbGlmaWVkTmFtZSA9IGZ1bGx5UXVhbGlmaWVkTG9naWNhbE5hbWUsDQogICAgICAgICAgICAgICAgTmFtZSA9IEdldExvZ2ljYWxMb2NhdGlvbk5hbWUoZnVsbHlRdWFsaWZpZWRMb2dpY2FsTmFtZSksDQogICAgICAgICAgICAgICAgUGFyZW50S2V5ID0gcGFyZW50S2V5LA0KICAgICAgICAgICAgICAgIEtpbmQgPSBraW5kDQogICAgICAgICAgICB9Ow0KICAgICAgICB9DQoNCiAgICAgICAgaW50ZXJuYWwgc3RyaW5nIEFkZExvZ2ljYWxMb2NhdGlvbihMb2dpY2FsTG9jYXRpb24gbG9naWNhbExvY2F0aW9uKQ0KICAgICAgICB7DQogICAgICAgICAgICBpZiAoX2N1cnJlbnRSdW4uTG9naWNhbExvY2F0aW9ucyA9PSBudWxsKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIF9jdXJyZW50UnVuLkxvZ2ljYWxMb2NhdGlvbnMgPSBuZXcgRGljdGlvbmFyeTxzdHJpbmcsIExvZ2ljYWxMb2NhdGlvbj4oKTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgc3RyaW5nIGZ1bGx5UXVhbGlmaWVkTmFtZSA9IGxvZ2ljYWxMb2NhdGlvbi5GdWxseVF1YWxpZmllZE5hbWU7DQogICAgICAgICAgICBzdHJpbmcgbG9naWNhbExvY2F0aW9uS2V5ID0gbG9naWNhbExvY2F0aW9uLkZ1bGx5UXVhbGlmaWVkTmFtZTsNCiAgICAgICAgICAgIGludCBkaXNhbWJpZ3VhdG9yID0gMDsNCg0KICAgICAgICAgICAgd2hpbGUgKF9jdXJyZW50UnVuLkxvZ2ljYWxMb2NhdGlvbnMuQ29udGFpbnNLZXkobG9naWNhbExvY2F0aW9uS2V5KSkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBMb2dpY2FsTG9jYXRpb24gbG9nTG9jID0gX2N1cnJlbnRSdW4uTG9naWNhbExvY2F0aW9uc1tsb2dpY2FsTG9jYXRpb25LZXldLkRlZXBDbG9uZSgpOw0KICAgICAgICAgICAgICAgIGxvZ0xvYy5GdWxseVF1YWxpZmllZE5hbWUgPSBsb2dMb2MuRnVsbHlRdWFsaWZpZWROYW1lID8/IGZ1bGx5UXVhbGlmaWVkTmFtZTsNCiAgICAgICAgICAgICAgICBsb2dMb2MuTmFtZSA9IGxvZ0xvYy5OYW1lID8/IEdldExvZ2ljYWxMb2NhdGlvbk5hbWUobG9nTG9jLkZ1bGx5UXVhbGlmaWVkTmFtZSk7DQoNCiAgICAgICAgICAgICAgICAvLyBDb21wYXJlIG9ubHkgRlFOIGFuZCBOYW1lLCBzaW5jZSBLaW5kLCBQYXJlbnRLZXksIGFuZCBEZWNvcmF0ZWROYW1lIG9uDQogICAgICAgICAgICAgICAgLy8gb3VyIG5ldyBMb2dpY2FsTG9jYXRpb24gZG9uJ3QgaGF2ZSB2YWx1ZXMgZm9yIHRob3NlIHByb3BlcnRpZXMNCiAgICAgICAgICAgICAgICBpZiAobG9naWNhbExvY2F0aW9uLkZ1bGx5UXVhbGlmaWVkTmFtZSA9PSBsb2dMb2MuRnVsbHlRdWFsaWZpZWROYW1lICYmDQogICAgICAgICAgICAgICAgICAgIGxvZ2ljYWxMb2NhdGlvbi5OYW1lID09IGxvZ0xvYy5OYW1lKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgbG9naWNhbExvY2F0aW9uS2V5ID0gVXRpbGl0aWVzLkNyZWF0ZURpc2FtYmlndWF0ZWROYW1lKGZ1bGx5UXVhbGlmaWVkTmFtZSwgZGlzYW1iaWd1YXRvcik7DQogICAgICAgICAgICAgICAgZGlzYW1iaWd1YXRvcisrOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBpZiAoIV9jdXJyZW50UnVuLkxvZ2ljYWxMb2NhdGlvbnMuQ29udGFpbnNLZXkobG9naWNhbExvY2F0aW9uS2V5KSkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBfY3VycmVudFJ1bi5Mb2dpY2FsTG9jYXRpb25zLkFkZChsb2dpY2FsTG9jYXRpb25LZXksIGxvZ2ljYWxMb2NhdGlvbik7DQogICAgICAgICAgICAgICAgUmVtb3ZlUmVkdW5kYW50UHJvcGVydGllcyhsb2dpY2FsTG9jYXRpb25LZXkpOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICByZXR1cm4gbG9naWNhbExvY2F0aW9uS2V5Ow0KICAgICAgICB9DQoNCiAgICAgICAgaW50ZXJuYWwgc3RyaW5nIEdldExvZ2ljYWxMb2NhdGlvbk5hbWUoc3RyaW5nIGZ1bGx5UXVhbGlmaWVkTG9naWNhbE5hbWUpDQogICAgICAgIHsNCiAgICAgICAgICAgIGlmIChzdHJpbmcuSXNOdWxsT3JXaGl0ZVNwYWNlKGZ1bGx5UXVhbGlmaWVkTG9naWNhbE5hbWUpKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHRocm93IG5ldyBBcmd1bWVudE51bGxFeGNlcHRpb24obmFtZW9mKGZ1bGx5UXVhbGlmaWVkTG9naWNhbE5hbWUpKTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgcmV0dXJuIGZ1bGx5UXVhbGlmaWVkTG9naWNhbE5hbWUuU3BsaXQoVXRpbGl0aWVzLkRlZmF1bHRGdWxseVF1YWxpZmllZE5hbWVEZWxpbWl0ZXJzLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nU3BsaXRPcHRpb25zLlJlbW92ZUVtcHR5RW50cmllcykuTGFzdCgpOw0KICAgICAgICB9DQoNCiAgICAgICAgaW50ZXJuYWwgdm9pZCBSZW1vdmVSZWR1bmRhbnRMb2dpY2FsTG9jYXRpb25Qcm9wZXJ0aWVzKCkNCiAgICAgICAgew0KICAgICAgICAgICAgZm9yZWFjaCAoc3RyaW5nIGtleSBpbiBfY3VycmVudFJ1bi5Mb2dpY2FsTG9jYXRpb25zLktleXMpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgUmVtb3ZlUmVkdW5kYW50UHJvcGVydGllcyhrZXkpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICAgICAgaW50ZXJuYWwgdm9pZCBSZW1vdmVSZWR1bmRhbnRQcm9wZXJ0aWVzKHN0cmluZyBrZXkpDQogICAgICAgIHsNCiAgICAgICAgICAgIExvZ2ljYWxMb2NhdGlvbiBsb2dpY2FsTG9jYXRpb24gPSBfY3VycmVudFJ1bi5Mb2dpY2FsTG9jYXRpb25zW2tleV07DQoNCiAgICAgICAgICAgIGlmIChsb2dpY2FsTG9jYXRpb24uRnVsbHlRdWFsaWZpZWROYW1lID09IGtleSkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBsb2dpY2FsTG9jYXRpb24uRnVsbHlRdWFsaWZpZWROYW1lID0gbnVsbDsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgaWYgKGxvZ2ljYWxMb2NhdGlvbi5OYW1lID09IGtleSkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBsb2dpY2FsTG9jYXRpb24uTmFtZSA9IG51bGw7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICBpbnRlcm5hbCBNZXNzYWdlIENyZWF0ZU1lc3NhZ2Uoc3RyaW5nIHRleHQpDQogICAgICAgIHsNCiAgICAgICAgICAgIE1lc3NhZ2UgbWVzc2FnZSA9IG51bGw7DQoNCiAgICAgICAgICAgIGlmICh0ZXh0ICE9IG51bGwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgbWVzc2FnZSA9IG5ldyBNZXNzYWdlDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBUZXh0ID0gdGV4dA0KICAgICAgICAgICAgICAgIH07DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIHJldHVybiBtZXNzYWdlOw0KICAgICAgICB9DQoNCiAgICAgICAgaW50ZXJuYWwgTm90aWZpY2F0aW9uIENyZWF0ZU5vdGlmaWNhdGlvbihOb3RpZmljYXRpb25WZXJzaW9uT25lIHYxTm90aWZpY2F0aW9uKQ0KICAgICAgICB7DQogICAgICAgICAgICBOb3RpZmljYXRpb24gbm90aWZpY2F0aW9uID0gbnVsbDsNCg0KICAgICAgICAgICAgaWYgKHYxTm90aWZpY2F0aW9uICE9IG51bGwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgbm90aWZpY2F0aW9uID0gbmV3IE5vdGlmaWNhdGlvbg0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgRXhjZXB0aW9uID0gQ3JlYXRlRXhjZXB0aW9uRGF0YSh2MU5vdGlmaWNhdGlvbi5FeGNlcHRpb24pLA0KICAgICAgICAgICAgICAgICAgICBJZCA9IHYxTm90aWZpY2F0aW9uLklkLA0KICAgICAgICAgICAgICAgICAgICBMZXZlbCA9IFV0aWxpdGllcy5DcmVhdGVOb3RpZmljYXRpb25MZXZlbCh2MU5vdGlmaWNhdGlvbi5MZXZlbCksDQogICAgICAgICAgICAgICAgICAgIE1lc3NhZ2UgPSBDcmVhdGVNZXNzYWdlKHYxTm90aWZpY2F0aW9uLk1lc3NhZ2UpLA0KICAgICAgICAgICAgICAgICAgICBQaHlzaWNhbExvY2F0aW9uID0gQ3JlYXRlUGh5c2ljYWxMb2NhdGlvbih2MU5vdGlmaWNhdGlvbi5QaHlzaWNhbExvY2F0aW9uKSwNCiAgICAgICAgICAgICAgICAgICAgUHJvcGVydGllcyA9IHYxTm90aWZpY2F0aW9uLlByb3BlcnRpZXMsDQogICAgICAgICAgICAgICAgICAgIFJ1bGVJZCA9IHYxTm90aWZpY2F0aW9uLlJ1bGVJZCwNCiAgICAgICAgICAgICAgICAgICAgVGhyZWFkSWQgPSB2MU5vdGlmaWNhdGlvbi5UaHJlYWRJZCwNCiAgICAgICAgICAgICAgICAgICAgVGltZSA9IHYxTm90aWZpY2F0aW9uLlRpbWUNCiAgICAgICAgICAgICAgICB9Ow0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICByZXR1cm4gbm90aWZpY2F0aW9uOw0KICAgICAgICB9DQoNCiAgICAgICAgaW50ZXJuYWwgUmVwbGFjZW1lbnQgQ3JlYXRlUmVwbGFjZW1lbnQoUmVwbGFjZW1lbnRWZXJzaW9uT25lIHYxUmVwbGFjZW1lbnQpDQogICAgICAgIHsNCiAgICAgICAgICAgIFJlcGxhY2VtZW50IHJlcGxhY2VtZW50ID0gbnVsbDsNCg0KICAgICAgICAgICAgaWYgKHYxUmVwbGFjZW1lbnQgIT0gbnVsbCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICByZXBsYWNlbWVudCA9IG5ldyBSZXBsYWNlbWVudCgpOw0KICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgIGlmICh2MVJlcGxhY2VtZW50Lkluc2VydGVkQnl0ZXMgIT0gbnVsbCkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIHJlcGxhY2VtZW50Lkluc2VydGVkQ29udGVudCA9IG5ldyBGaWxlQ29udGVudA0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICBCaW5hcnkgPSB2MVJlcGxhY2VtZW50Lkluc2VydGVkQnl0ZXMNCiAgICAgICAgICAgICAgICAgICAgfTsNCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICByZXBsYWNlbWVudC5EZWxldGVkUmVnaW9uID0gbmV3IFJlZ2lvbg0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgQnl0ZUxlbmd0aCA9IHYxUmVwbGFjZW1lbnQuRGVsZXRlZExlbmd0aCwNCiAgICAgICAgICAgICAgICAgICAgQnl0ZU9mZnNldCA9IHYxUmVwbGFjZW1lbnQuT2Zmc2V0DQogICAgICAgICAgICAgICAgfTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgcmV0dXJuIHJlcGxhY2VtZW50Ow0KICAgICAgICB9DQoNCiAgICAgICAgaW50ZXJuYWwgSUxpc3Q8RmlsZUxvY2F0aW9uPiBDcmVhdGVSZXNwb25zZUZpbGVzTGlzdChJRGljdGlvbmFyeTxzdHJpbmcsIHN0cmluZz4gcmVzcG9uc2VGaWxlVG9Db250ZW50c0RpY3Rpb25hcnkpDQogICAgICAgIHsNCiAgICAgICAgICAgIExpc3Q8RmlsZUxvY2F0aW9uPiBmaWxlTG9jYXRpb25zID0gbnVsbDsNCg0KICAgICAgICAgICAgaWYgKHJlc3BvbnNlRmlsZVRvQ29udGVudHNEaWN0aW9uYXJ5ICE9IG51bGwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgZmlsZUxvY2F0aW9ucyA9IG5ldyBMaXN0PEZpbGVMb2NhdGlvbj4oKTsNCg0KICAgICAgICAgICAgICAgIGZvcmVhY2ggKHN0cmluZyBrZXkgaW4gcmVzcG9uc2VGaWxlVG9Db250ZW50c0RpY3Rpb25hcnkuS2V5cykNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIHZhciBmaWxlTG9jYXRpb24gPSBuZXcgRmlsZUxvY2F0aW9uDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIFVyaSA9IG5ldyBVcmkoa2V5LCBVcmlLaW5kLlJlbGF0aXZlT3JBYnNvbHV0ZSkNCiAgICAgICAgICAgICAgICAgICAgfTsNCiAgICAgICAgICAgICAgICAgICAgZmlsZUxvY2F0aW9ucy5BZGQoZmlsZUxvY2F0aW9uKTsNCg0KICAgICAgICAgICAgICAgICAgICBpZiAoX2N1cnJlbnRSdW4gIT0gbnVsbCAmJiAhc3RyaW5nLklzTnVsbE9yV2hpdGVTcGFjZShyZXNwb25zZUZpbGVUb0NvbnRlbnRzRGljdGlvbmFyeVtrZXldKSkNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgLy8gV2UgaGF2ZSBjb250ZW50cywgc28gbWVudGlvbiB0aGlzIGZpbGUgaW4gX2N1cnJlbnRSdW4uZmlsZXMNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChfY3VycmVudFJ1bi5GaWxlcyA9PSBudWxsKQ0KICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9jdXJyZW50UnVuLkZpbGVzID0gbmV3IERpY3Rpb25hcnk8c3RyaW5nLCBGaWxlRGF0YT4oKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFfY3VycmVudFJ1bi5GaWxlcy5Db250YWluc0tleShrZXkpKQ0KICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9jdXJyZW50UnVuLkZpbGVzLkFkZChrZXksIG5ldyBGaWxlRGF0YSgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgICAgICAgICAgRmlsZURhdGEgcmVzcG9uc2VGaWxlID0gX2N1cnJlbnRSdW4uRmlsZXNba2V5XTsNCg0KICAgICAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2VGaWxlLkNvbnRlbnRzID0gbmV3IEZpbGVDb250ZW50DQogICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgVGV4dCA9IHJlc3BvbnNlRmlsZVRvQ29udGVudHNEaWN0aW9uYXJ5W2tleV0NCiAgICAgICAgICAgICAgICAgICAgICAgIH07DQogICAgICAgICAgICAgICAgICAgICAgICByZXNwb25zZUZpbGUuRmlsZUxvY2F0aW9uID0gZmlsZUxvY2F0aW9uOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICByZXR1cm4gZmlsZUxvY2F0aW9uczsNCiAgICAgICAgfQ0KDQogICAgICAgIGludGVybmFsIFBoeXNpY2FsTG9jYXRpb24gQ3JlYXRlUGh5c2ljYWxMb2NhdGlvbihQaHlzaWNhbExvY2F0aW9uVmVyc2lvbk9uZSB2MVBoeXNpY2FsTG9jYXRpb24pDQogICAgICAgIHsNCiAgICAgICAgICAgIFBoeXNpY2FsTG9jYXRpb24gcGh5c2ljYWxMb2NhdGlvbiA9IG51bGw7DQoNCiAgICAgICAgICAgIGlmICh2MVBoeXNpY2FsTG9jYXRpb24gIT0gbnVsbCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBwaHlzaWNhbExvY2F0aW9uID0gbmV3IFBoeXNpY2FsTG9jYXRpb24NCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIEZpbGVMb2NhdGlvbiA9IENyZWF0ZUZpbGVMb2NhdGlvbih2MVBoeXNpY2FsTG9jYXRpb24pLA0KICAgICAgICAgICAgICAgICAgICBSZWdpb24gPSBDcmVhdGVSZWdpb24odjFQaHlzaWNhbExvY2F0aW9uLlJlZ2lvbikNCiAgICAgICAgICAgICAgICB9Ow0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICByZXR1cm4gcGh5c2ljYWxMb2NhdGlvbjsNCiAgICAgICAgfQ0KDQogICAgICAgIGludGVybmFsIFJlZ2lvbiBDcmVhdGVSZWdpb24oUmVnaW9uVmVyc2lvbk9uZSB2MVJlZ2lvbikNCiAgICAgICAgew0KICAgICAgICAgICAgUmVnaW9uIHJlZ2lvbiA9IG51bGw7DQoNCiAgICAgICAgICAgIGlmICh2MVJlZ2lvbiAhPSBudWxsKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHJlZ2lvbiA9IG5ldyBSZWdpb24NCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIEJ5dGVMZW5ndGggPSB2MVJlZ2lvbi5MZW5ndGgsDQogICAgICAgICAgICAgICAgICAgIEJ5dGVPZmZzZXQgPSB2MVJlZ2lvbi5PZmZzZXQsDQogICAgICAgICAgICAgICAgICAgIEVuZENvbHVtbiA9IHYxUmVnaW9uLkVuZENvbHVtbiwNCiAgICAgICAgICAgICAgICAgICAgRW5kTGluZSA9IHYxUmVnaW9uLkVuZExpbmUsDQogICAgICAgICAgICAgICAgICAgIFN0YXJ0Q29sdW1uID0gdjFSZWdpb24uU3RhcnRDb2x1bW4sDQogICAgICAgICAgICAgICAgICAgIFN0YXJ0TGluZSA9IHYxUmVnaW9uLlN0YXJ0TGluZQ0KICAgICAgICAgICAgICAgIH07DQoNCiAgICAgICAgICAgICAgICBib29sIHN0YXJ0SXNUZXh0QmFzZWQgPSB2MVJlZ2lvbi5TdGFydExpbmUgPiAwOw0KICAgICAgICAgICAgICAgIGJvb2wgZW5kSXNUZXh0QmFzZWQgPSB2MVJlZ2lvbi5FbmRMaW5lID4gMCB8fCB2MVJlZ2lvbi5FbmRDb2x1bW4gPiAwOw0KDQogICAgICAgICAgICAgICAgaWYgKHN0YXJ0SXNUZXh0QmFzZWQgJiYgZW5kSXNUZXh0QmFzZWQgJiYgdjFSZWdpb24uRW5kQ29sdW1uID09IDApDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICByZWdpb24uRW5kQ29sdW1uID0gdjFSZWdpb24uU3RhcnRDb2x1bW47DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICByZXR1cm4gcmVnaW9uOw0KICAgICAgICB9DQoNCiAgICAgICAgaW50ZXJuYWwgUmVnaW9uIENyZWF0ZVJlZ2lvbihQaHlzaWNhbExvY2F0aW9uVmVyc2lvbk9uZSB2MUFubm90YXRpb25Mb2NhdGlvbiwgUGh5c2ljYWxMb2NhdGlvblZlcnNpb25PbmUgdjFQaHlzaWNhbExvY2F0aW9uLCBzdHJpbmcgbWVzc2FnZSkNCiAgICAgICAgew0KICAgICAgICAgICAgUmVnaW9uIHJlZ2lvbiA9IG51bGw7DQoNCiAgICAgICAgICAgIC8vIEluIFNBUklGIHYxLCBhIGxvY2F0aW9uIGNvdWxkIGhhdmUgYW5ub3RhdGlvbnMgdGhhdCByZWZlcnJlZCB0byBmaWxlcyBvdGhlciB0aGFuIHRoZSBsb2NhdGlvbidzIG93biBmaWxlLg0KICAgICAgICAgICAgLy8gVGhhdCBtYWRlIG5vIHNlbnNlLiBJbiBTQVJJRiB2MiwgYSBsb2NhdGlvbiBjYW4gb25seSBiZSBhbm5vdGF0ZWQgd2l0aCByZWdpb25zIGluIHRoZSBzYW1lIGZpbGUuDQogICAgICAgICAgICAvLyBTbyBvbmx5IGNvcHkgdGhlIHYxIGFubm90YXRpb25zIHRoYXQgcmVmZXIgdG8gdGhlIHNhbWUgZmlsZSBhcyB0aGUgbG9jYXRpb24uDQogICAgICAgICAgICBpZiAodjFQaHlzaWNhbExvY2F0aW9uICE9IG51bGwgJiYgdjFBbm5vdGF0aW9uTG9jYXRpb24uVXJpID09IHYxUGh5c2ljYWxMb2NhdGlvbi5VcmkpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgcmVnaW9uID0gQ3JlYXRlUmVnaW9uKHYxUGh5c2ljYWxMb2NhdGlvbi5SZWdpb24pOw0KICAgICAgICAgICAgICAgIHJlZ2lvbi5NZXNzYWdlID0gQ3JlYXRlTWVzc2FnZShtZXNzYWdlKTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgcmV0dXJuIHJlZ2lvbjsNCiAgICAgICAgfQ0KDQogICAgICAgIGludGVybmFsIFJlZ2lvbiBDcmVhdGVSZWdpb24oaW50IHN0YXJ0Q29sdW1uLCBpbnQgc3RhcnRMaW5lLCBpbnQgZW5kQ29sdW1uID0gMCwgaW50IGVuZExpbmUgPSAwLCBpbnQgbGVuZ3RoID0gMCwgaW50IG9mZnNldCA9IDApDQogICAgICAgIHsNCiAgICAgICAgICAgIFJlZ2lvbiByZWdpb24gPSBudWxsOw0KDQogICAgICAgICAgICBpZiAoc3RhcnRDb2x1bW4gPiAwIHx8IHN0YXJ0TGluZSA+IDAgfHwgZW5kQ29sdW1uID4gMCB8fCBlbmRMaW5lID4gMCB8fCBsZW5ndGggPiAwIHx8IG9mZnNldCA+IDApDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgcmVnaW9uID0gbmV3IFJlZ2lvbg0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgQnl0ZUxlbmd0aCA9IGxlbmd0aCwNCiAgICAgICAgICAgICAgICAgICAgQnl0ZU9mZnNldCA9IG9mZnNldCwNCiAgICAgICAgICAgICAgICAgICAgRW5kQ29sdW1uID0gZW5kQ29sdW1uID4gMCA/IGVuZENvbHVtbiA6IHN0YXJ0Q29sdW1uLA0KICAgICAgICAgICAgICAgICAgICBFbmRMaW5lID0gZW5kTGluZSwNCiAgICAgICAgICAgICAgICAgICAgU3RhcnRDb2x1bW4gPSBzdGFydENvbHVtbiwNCiAgICAgICAgICAgICAgICAgICAgU3RhcnRMaW5lID0gc3RhcnRMaW5lDQogICAgICAgICAgICAgICAgfTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgcmV0dXJuIHJlZ2lvbjsNCiAgICAgICAgfQ0KDQogICAgICAgIGludGVybmFsIFJlc3VsdCBDcmVhdGVSZXN1bHQoUmVzdWx0VmVyc2lvbk9uZSB2MVJlc3VsdCkNCiAgICAgICAgew0KICAgICAgICAgICAgUmVzdWx0IHJlc3VsdCA9IG51bGw7DQoNCiAgICAgICAgICAgIGlmICh2MVJlc3VsdCAhPSBudWxsKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHJlc3VsdCA9IG5ldyBSZXN1bHQNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIEJhc2VsaW5lU3RhdGUgPSBVdGlsaXRpZXMuQ3JlYXRlQmFzZWxpbmVTdGF0ZSh2MVJlc3VsdC5CYXNlbGluZVN0YXRlKSwNCiAgICAgICAgICAgICAgICAgICAgQ29kZUZsb3dzID0gdjFSZXN1bHQuQ29kZUZsb3dzPy5TZWxlY3QoQ3JlYXRlQ29kZUZsb3cpLlRvTGlzdCgpLA0KICAgICAgICAgICAgICAgICAgICBGaXhlcyA9IHYxUmVzdWx0LkZpeGVzPy5TZWxlY3QoQ3JlYXRlRml4KS5Ub0xpc3QoKSwNCiAgICAgICAgICAgICAgICAgICAgSW5zdGFuY2VHdWlkID0gdjFSZXN1bHQuSWQsDQogICAgICAgICAgICAgICAgICAgIExldmVsID0gVXRpbGl0aWVzLkNyZWF0ZVJlc3VsdExldmVsKHYxUmVzdWx0LkxldmVsKSwNCiAgICAgICAgICAgICAgICAgICAgTG9jYXRpb25zID0gdjFSZXN1bHQuTG9jYXRpb25zPy5TZWxlY3QoQ3JlYXRlTG9jYXRpb24pLlRvTGlzdCgpLA0KICAgICAgICAgICAgICAgICAgICBNZXNzYWdlID0gQ3JlYXRlTWVzc2FnZSh2MVJlc3VsdC5NZXNzYWdlKSwNCiAgICAgICAgICAgICAgICAgICAgUHJvcGVydGllcyA9IHYxUmVzdWx0LlByb3BlcnRpZXMsDQogICAgICAgICAgICAgICAgICAgIFJlbGF0ZWRMb2NhdGlvbnMgPSB2MVJlc3VsdC5SZWxhdGVkTG9jYXRpb25zPy5TZWxlY3QoQ3JlYXRlTG9jYXRpb24pLlRvTGlzdCgpLA0KICAgICAgICAgICAgICAgICAgICBTdGFja3MgPSB2MVJlc3VsdC5TdGFja3M/LlNlbGVjdChDcmVhdGVTdGFjaykuVG9MaXN0KCksDQogICAgICAgICAgICAgICAgICAgIFN1cHByZXNzaW9uU3RhdGVzID0gVXRpbGl0aWVzLkNyZWF0ZVN1cHByZXNzaW9uU3RhdGVzKHYxUmVzdWx0LlN1cHByZXNzaW9uU3RhdGVzKQ0KICAgICAgICAgICAgICAgIH07DQoNCiAgICAgICAgICAgICAgICAvLyBUaGUgc3BlYyBzYXlzIHRoYXQgYW5hbHlzaXNUYXJnZXQgaXMgcmVxdWlyZWQgb25seSBpZiBpdCBkaWZmZXJzIGZyb20gdGhlIHJlc3VsdCBmaWxlLg0KICAgICAgICAgICAgICAgIGlmICh2MVJlc3VsdC5Mb2NhdGlvbnM/WzBdPy5BbmFseXNpc1RhcmdldD8uVXJpICE9IHYxUmVzdWx0LkxvY2F0aW9ucz9bMF0/LlJlc3VsdEZpbGU/LlVyaSkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIHJlc3VsdC5BbmFseXNpc1RhcmdldCA9IENyZWF0ZUZpbGVMb2NhdGlvbih2MVJlc3VsdC5Mb2NhdGlvbnNbMF0uQW5hbHlzaXNUYXJnZXQpOw0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgIGlmICh2MVJlc3VsdC5SdWxlS2V5ID09IG51bGwpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICByZXN1bHQuUnVsZUlkID0gdjFSZXN1bHQuUnVsZUlkOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBlbHNlDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBpZiAodjFSZXN1bHQuUnVsZUlkID09IG51bGwpDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5SdWxlSWQgPSB2MVJlc3VsdC5SdWxlS2V5Ow0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGVsc2UNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHYxUmVzdWx0LlJ1bGVJZCA9PSB2MVJlc3VsdC5SdWxlS2V5KQ0KICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5SdWxlSWQgPSB2MVJlc3VsdC5SdWxlSWQ7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlDQogICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0LlJ1bGVJZCA9IHYxUmVzdWx0LlJ1bGVLZXk7DQoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoX2N1cnJlbnRSdW4uUmVzb3VyY2VzID09IG51bGwpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfY3VycmVudFJ1bi5SZXNvdXJjZXMgPSBuZXcgUmVzb3VyY2VzKCk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKF9jdXJyZW50UnVuLlJlc291cmNlcy5SdWxlcyA9PSBudWxsKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX2N1cnJlbnRSdW4uUmVzb3VyY2VzLlJ1bGVzID0gbmV3IERpY3Rpb25hcnk8c3RyaW5nLCBSdWxlPigpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIElEaWN0aW9uYXJ5PHN0cmluZywgUnVsZT4gcnVsZXMgPSBfY3VycmVudFJ1bi5SZXNvdXJjZXMuUnVsZXM7DQoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXJ1bGVzLkNvbnRhaW5zS2V5KHYxUmVzdWx0LlJ1bGVLZXkpKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnVsZXMuQWRkKHYxUmVzdWx0LlJ1bGVLZXksIG5ldyBSdWxlKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ1bGVzW3YxUmVzdWx0LlJ1bGVLZXldLklkID0gdjFSZXN1bHQuUnVsZUlkOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgIGlmICh2MVJlc3VsdC5Gb3JtYXR0ZWRSdWxlTWVzc2FnZSAhPSBudWxsKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgcmVzdWx0LlJ1bGVNZXNzYWdlSWQgPSB2MVJlc3VsdC5Gb3JtYXR0ZWRSdWxlTWVzc2FnZS5Gb3JtYXRJZDsNCg0KICAgICAgICAgICAgICAgICAgICBpZiAocmVzdWx0Lk1lc3NhZ2UgPT0gbnVsbCkNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0Lk1lc3NhZ2UgPSBuZXcgTWVzc2FnZSgpOw0KICAgICAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAgICAgcmVzdWx0Lk1lc3NhZ2UuQXJndW1lbnRzID0gdjFSZXN1bHQuRm9ybWF0dGVkUnVsZU1lc3NhZ2UuQXJndW1lbnRzOw0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgIGlmICghc3RyaW5nLklzTnVsbE9yV2hpdGVTcGFjZSh2MVJlc3VsdC5Ub29sRmluZ2VycHJpbnRDb250cmlidXRpb24pKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgcmVzdWx0LlBhcnRpYWxGaW5nZXJwcmludHMgPSBuZXcgRGljdGlvbmFyeTxzdHJpbmcsIHN0cmluZz4NCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgeyAiRmluZ2VycHJpbnQiLCB2MVJlc3VsdC5Ub29sRmluZ2VycHJpbnRDb250cmlidXRpb24gfQ0KICAgICAgICAgICAgICAgICAgICB9Ow0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgIGlmICghc3RyaW5nLklzTnVsbE9yV2hpdGVTcGFjZSh2MVJlc3VsdC5TbmlwcGV0KSkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIGlmIChyZXN1bHQuTG9jYXRpb25zID09IG51bGwpDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5Mb2NhdGlvbnMgPSBuZXcgTGlzdDxMb2NhdGlvbj4oKTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgICAgIGlmIChyZXN1bHQuTG9jYXRpb25zLkNvdW50ID09IDApDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5Mb2NhdGlvbnMuQWRkKG5ldyBMb2NhdGlvbigpKTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgICAgIGlmIChyZXN1bHQuTG9jYXRpb25zWzBdLlBoeXNpY2FsTG9jYXRpb24gPT0gbnVsbCkNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0LkxvY2F0aW9uc1swXS5QaHlzaWNhbExvY2F0aW9uID0gbmV3IFBoeXNpY2FsTG9jYXRpb24oKTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgICAgIGlmIChyZXN1bHQuTG9jYXRpb25zWzBdLlBoeXNpY2FsTG9jYXRpb24uUmVnaW9uID09IG51bGwpDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5Mb2NhdGlvbnNbMF0uUGh5c2ljYWxMb2NhdGlvbi5SZWdpb24gPSBuZXcgUmVnaW9uKCk7DQogICAgICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgICAgICByZXN1bHQuTG9jYXRpb25zWzBdLlBoeXNpY2FsTG9jYXRpb24uUmVnaW9uLlNuaXBwZXQgPSBuZXcgRmlsZUNvbnRlbnQNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgVGV4dCA9IHYxUmVzdWx0LlNuaXBwZXQNCiAgICAgICAgICAgICAgICAgICAgfTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIHJldHVybiByZXN1bHQ7DQogICAgICAgIH0NCg0KICAgICAgICBpbnRlcm5hbCBSdWxlIENyZWF0ZVJ1bGUoUnVsZVZlcnNpb25PbmUgdjFSdWxlKQ0KICAgICAgICB7DQogICAgICAgICAgICBSdWxlIHJ1bGUgPSBudWxsOw0KDQogICAgICAgICAgICBpZiAodjFSdWxlICE9IG51bGwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgcnVsZSA9IG5ldyBSdWxlDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBGdWxsRGVzY3JpcHRpb24gPSBDcmVhdGVNZXNzYWdlKHYxUnVsZS5GdWxsRGVzY3JpcHRpb24pLA0KICAgICAgICAgICAgICAgICAgICBIZWxwVXJpID0gdjFSdWxlLkhlbHBVcmksDQogICAgICAgICAgICAgICAgICAgIElkID0gdjFSdWxlLklkLA0KICAgICAgICAgICAgICAgICAgICBNZXNzYWdlU3RyaW5ncyA9IHYxUnVsZS5NZXNzYWdlRm9ybWF0cywNCiAgICAgICAgICAgICAgICAgICAgTmFtZSA9IENyZWF0ZU1lc3NhZ2UodjFSdWxlLk5hbWUpLA0KICAgICAgICAgICAgICAgICAgICBQcm9wZXJ0aWVzID0gdjFSdWxlLlByb3BlcnRpZXMsDQogICAgICAgICAgICAgICAgICAgIFNob3J0RGVzY3JpcHRpb24gPSBDcmVhdGVNZXNzYWdlKHYxUnVsZS5TaG9ydERlc2NyaXB0aW9uKQ0KICAgICAgICAgICAgICAgIH07DQoNCiAgICAgICAgICAgICAgICBSdWxlQ29uZmlndXJhdGlvbkRlZmF1bHRMZXZlbCBsZXZlbCA9IFV0aWxpdGllcy5DcmVhdGVSdWxlQ29uZmlndXJhdGlvbkRlZmF1bHRMZXZlbCh2MVJ1bGUuRGVmYXVsdExldmVsKTsNCg0KICAgICAgICAgICAgICAgIGlmICh2MVJ1bGUuQ29uZmlndXJhdGlvbiA9PSBSdWxlQ29uZmlndXJhdGlvblZlcnNpb25PbmUuRW5hYmxlZCB8fA0KICAgICAgICAgICAgICAgICAgICBsZXZlbCAhPSBSdWxlQ29uZmlndXJhdGlvbkRlZmF1bHRMZXZlbC5XYXJuaW5nKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgcnVsZS5Db25maWd1cmF0aW9uID0gbmV3IFJ1bGVDb25maWd1cmF0aW9uDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIERlZmF1bHRMZXZlbCA9IGxldmVsLA0KICAgICAgICAgICAgICAgICAgICAgICAgRW5hYmxlZCA9IHYxUnVsZS5Db25maWd1cmF0aW9uID09IFJ1bGVDb25maWd1cmF0aW9uVmVyc2lvbk9uZS5FbmFibGVkDQogICAgICAgICAgICAgICAgICAgIH07DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICByZXR1cm4gcnVsZTsNCiAgICAgICAgfQ0KDQogICAgICAgIGludGVybmFsIFJ1biBDcmVhdGVSdW4oUnVuVmVyc2lvbk9uZSB2MVJ1bikNCiAgICAgICAgew0KICAgICAgICAgICAgUnVuIHJ1biA9IG51bGw7DQoNCiAgICAgICAgICAgIGlmICh2MVJ1biAhPSBudWxsKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIGlmICh2MVJ1bi5UcnlHZXRQcm9wZXJ0eSgic2FyaWZ2Mi9ydW4iLCBvdXQgcnVuKSkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIHJldHVybiBydW47DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGVsc2UNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIF9jdXJyZW50VjFSdW4gPSB2MVJ1bjsNCg0KICAgICAgICAgICAgICAgICAgICBydW4gPSBuZXcgUnVuKCkNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgQXJjaGl0ZWN0dXJlID0gdjFSdW4uQXJjaGl0ZWN0dXJlLA0KICAgICAgICAgICAgICAgICAgICAgICAgQXV0b21hdGlvbkxvZ2ljYWxJZCA9IHYxUnVuLkF1dG9tYXRpb25JZCwNCiAgICAgICAgICAgICAgICAgICAgICAgIEJhc2VsaW5lSW5zdGFuY2VHdWlkID0gdjFSdW4uQmFzZWxpbmVJZCwNCiAgICAgICAgICAgICAgICAgICAgICAgIEluc3RhbmNlR3VpZCA9IHYxUnVuLklkLA0KICAgICAgICAgICAgICAgICAgICAgICAgUHJvcGVydGllcyA9IHYxUnVuLlByb3BlcnRpZXMsDQogICAgICAgICAgICAgICAgICAgICAgICBSZXN1bHRzID0gbmV3IExpc3Q8UmVzdWx0PigpLA0KICAgICAgICAgICAgICAgICAgICAgICAgTG9naWNhbElkID0gdjFSdW4uU3RhYmxlSWQsDQogICAgICAgICAgICAgICAgICAgICAgICBUb29sID0gQ3JlYXRlVG9vbCh2MVJ1bi5Ub29sKQ0KICAgICAgICAgICAgICAgICAgICB9Ow0KDQogICAgICAgICAgICAgICAgICAgIF9jdXJyZW50UnVuID0gcnVuOw0KDQogICAgICAgICAgICAgICAgICAgIGlmICh2MVJ1bi5SdWxlcyAhPSBudWxsKQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICBydW4uUmVzb3VyY2VzID0gbmV3IFJlc291cmNlcw0KICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJ1bGVzID0gbmV3IERpY3Rpb25hcnk8c3RyaW5nLCBSdWxlPigpDQogICAgICAgICAgICAgICAgICAgICAgICB9Ow0KDQogICAgICAgICAgICAgICAgICAgICAgICBmb3JlYWNoICh2YXIgcGFpciBpbiB2MVJ1bi5SdWxlcykNCiAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBydW4uUmVzb3VyY2VzLlJ1bGVzLkFkZChwYWlyLktleSwgQ3JlYXRlUnVsZShwYWlyLlZhbHVlKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgICAgICBpZiAodjFSdW4uRmlsZXMgIT0gbnVsbCkNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgcnVuLkZpbGVzID0gbmV3IERpY3Rpb25hcnk8c3RyaW5nLCBGaWxlRGF0YT4oKTsNCg0KICAgICAgICAgICAgICAgICAgICAgICAgZm9yZWFjaCAodmFyIHBhaXIgaW4gdjFSdW4uRmlsZXMpDQogICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgcnVuLkZpbGVzLkFkZChwYWlyLktleSwgQ3JlYXRlRmlsZURhdGEocGFpci5WYWx1ZSkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAgICAgaWYgKHYxUnVuLkxvZ2ljYWxMb2NhdGlvbnMgIT0gbnVsbCkNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgcnVuLkxvZ2ljYWxMb2NhdGlvbnMgPSBuZXcgRGljdGlvbmFyeTxzdHJpbmcsIExvZ2ljYWxMb2NhdGlvbj4oKTsNCg0KICAgICAgICAgICAgICAgICAgICAgICAgZm9yZWFjaCAodmFyIHBhaXIgaW4gdjFSdW4uTG9naWNhbExvY2F0aW9ucykNCiAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBydW4uTG9naWNhbExvY2F0aW9ucy5BZGQocGFpci5LZXksIENyZWF0ZUxvZ2ljYWxMb2NhdGlvbihwYWlyLlZhbHVlKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAgICAgICAgIFJlbW92ZVJlZHVuZGFudExvZ2ljYWxMb2NhdGlvblByb3BlcnRpZXMoKTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgICAgIC8vIEV2ZW4gaWYgdGhlcmUgaXMgbm8gdjEgaW52b2NhdGlvbiwgdGhlcmUgbWF5IGJlIG5vdGlmaWNhdGlvbnMNCiAgICAgICAgICAgICAgICAgICAgLy8gaW4gd2hpY2ggY2FzZSB3ZSB3aWxsIG5lZWQgYSB2MiBpbnZvY2F0aW9uIHRvIGNvbnRhaW4gdGhlbQ0KICAgICAgICAgICAgICAgICAgICBJbnZvY2F0aW9uIGludm9jYXRpb24gPSBDcmVhdGVJbnZvY2F0aW9uKHYxUnVuLkludm9jYXRpb24sDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdjFSdW4uVG9vbE5vdGlmaWNhdGlvbnMsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdjFSdW4uQ29uZmlndXJhdGlvbk5vdGlmaWNhdGlvbnMpOw0KDQogICAgICAgICAgICAgICAgICAgIGlmIChpbnZvY2F0aW9uICE9IG51bGwpDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHJ1bi5JbnZvY2F0aW9ucyA9IG5ldyBMaXN0PEludm9jYXRpb24+KCkNCiAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnZvY2F0aW9uDQogICAgICAgICAgICAgICAgICAgICAgICB9Ow0KICAgICAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAgICAgZm9yZWFjaCAoUmVzdWx0VmVyc2lvbk9uZSB2MVJlc3VsdCBpbiB2MVJ1bi5SZXN1bHRzKQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICBydW4uUmVzdWx0cy5BZGQoQ3JlYXRlUmVzdWx0KHYxUmVzdWx0KSk7DQogICAgICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgICAgICAvLyBTdGFzaCB0aGUgZW50aXJlIHYxIHJ1biBpbiB0aGlzIHYyIHJ1bidzIHByb3BlcnR5IGJhZw0KICAgICAgICAgICAgICAgICAgICBydW4uU2V0UHJvcGVydHkoJCJ7RnJvbVByb3BlcnR5QmFnUHJlZml4fS9ydW4iLCB2MVJ1bik7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICByZXR1cm4gcnVuOw0KICAgICAgICB9DQoNCiAgICAgICAgaW50ZXJuYWwgU3RhY2sgQ3JlYXRlU3RhY2soU3RhY2tWZXJzaW9uT25lIHYxU3RhY2spDQogICAgICAgIHsNCiAgICAgICAgICAgIFN0YWNrIHN0YWNrID0gbnVsbDsNCg0KICAgICAgICAgICAgaWYgKHYxU3RhY2sgIT0gbnVsbCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBzdGFjayA9IG5ldyBTdGFjaw0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgTWVzc2FnZSA9IENyZWF0ZU1lc3NhZ2UodjFTdGFjay5NZXNzYWdlKSwNCiAgICAgICAgICAgICAgICAgICAgUHJvcGVydGllcyA9IHYxU3RhY2suUHJvcGVydGllcywNCiAgICAgICAgICAgICAgICAgICAgRnJhbWVzID0gdjFTdGFjay5GcmFtZXM/LlNlbGVjdChDcmVhdGVTdGFja0ZyYW1lKS5Ub0xpc3QoKQ0KICAgICAgICAgICAgICAgIH07DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIHJldHVybiBzdGFjazsNCiAgICAgICAgfQ0KDQogICAgICAgIGludGVybmFsIFN0YWNrRnJhbWUgQ3JlYXRlU3RhY2tGcmFtZShTdGFja0ZyYW1lVmVyc2lvbk9uZSB2MVN0YWNrRnJhbWUpDQogICAgICAgIHsNCiAgICAgICAgICAgIFN0YWNrRnJhbWUgc3RhY2tGcmFtZSA9IG51bGw7DQoNCiAgICAgICAgICAgIGlmICh2MVN0YWNrRnJhbWUgIT0gbnVsbCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBzdGFja0ZyYW1lID0gbmV3IFN0YWNrRnJhbWUNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIEFkZHJlc3MgPSB2MVN0YWNrRnJhbWUuQWRkcmVzcywNCiAgICAgICAgICAgICAgICAgICAgTW9kdWxlID0gdjFTdGFja0ZyYW1lLk1vZHVsZSwNCiAgICAgICAgICAgICAgICAgICAgT2Zmc2V0ID0gdjFTdGFja0ZyYW1lLk9mZnNldCwNCiAgICAgICAgICAgICAgICAgICAgUGFyYW1ldGVycyA9IHYxU3RhY2tGcmFtZS5QYXJhbWV0ZXJzLA0KICAgICAgICAgICAgICAgICAgICBQcm9wZXJ0aWVzID0gdjFTdGFja0ZyYW1lLlByb3BlcnRpZXMsDQogICAgICAgICAgICAgICAgICAgIFRocmVhZElkID0gdjFTdGFja0ZyYW1lLlRocmVhZElkDQogICAgICAgICAgICAgICAgfTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgc3RhY2tGcmFtZS5Mb2NhdGlvbiA9IENyZWF0ZUxvY2F0aW9uKHYxU3RhY2tGcmFtZS5GdWxseVF1YWxpZmllZExvZ2ljYWxOYW1lLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYxU3RhY2tGcmFtZS5Mb2dpY2FsTG9jYXRpb25LZXksDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdjFTdGFja0ZyYW1lLk1lc3NhZ2UsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdjFTdGFja0ZyYW1lLlVyaSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2MVN0YWNrRnJhbWUuVXJpQmFzZUlkLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYxU3RhY2tGcmFtZS5Db2x1bW4sDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdjFTdGFja0ZyYW1lLkxpbmUpOw0KDQogICAgICAgICAgICByZXR1cm4gc3RhY2tGcmFtZTsNCiAgICAgICAgfQ0KDQogICAgICAgIGludGVybmFsIFRvb2wgQ3JlYXRlVG9vbChUb29sVmVyc2lvbk9uZSB2MVRvb2wpDQogICAgICAgIHsNCiAgICAgICAgICAgIFRvb2wgdG9vbCA9IG51bGw7DQoNCiAgICAgICAgICAgIGlmICh2MVRvb2wgIT0gbnVsbCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICB0b29sID0gbmV3IFRvb2woKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgRmlsZVZlcnNpb24gPSB2MVRvb2wuRmlsZVZlcnNpb24sDQogICAgICAgICAgICAgICAgICAgIEZ1bGxOYW1lID0gdjFUb29sLkZ1bGxOYW1lLA0KICAgICAgICAgICAgICAgICAgICBMYW5ndWFnZSA9IHYxVG9vbC5MYW5ndWFnZSwNCiAgICAgICAgICAgICAgICAgICAgTmFtZSA9IHYxVG9vbC5OYW1lLA0KICAgICAgICAgICAgICAgICAgICBQcm9wZXJ0aWVzID0gdjFUb29sLlByb3BlcnRpZXMsDQogICAgICAgICAgICAgICAgICAgIFNhcmlmTG9nZ2VyVmVyc2lvbiA9IHYxVG9vbC5TYXJpZkxvZ2dlclZlcnNpb24sDQogICAgICAgICAgICAgICAgICAgIFNlbWFudGljVmVyc2lvbiA9IHYxVG9vbC5TZW1hbnRpY1ZlcnNpb24sDQogICAgICAgICAgICAgICAgICAgIFZlcnNpb24gPSB2MVRvb2wuVmVyc2lvbg0KICAgICAgICAgICAgICAgIH07DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIHJldHVybiB0b29sOw0KICAgICAgICB9DQogICAgfQ0KfQ0K" + { + "ruleId": "CA1702", + "level": "error", + "message": { + "text": "The compound word 'PreRelease' in member name 'VersionConstants.PreRelease' exists as a discrete term. If your usage is intended to be single word, case it as 'Prerelease' or strip the first token entirely if it represents any sort of Hungarian notation.", + "id": "MemberShouldBeDiscreteTerm" }, - "hashes": [ - { - "value": "7AF9B6C89984380EDD4922B2C6667BA1", - "algorithm": "md5" - }, - { - "value": "2F5155E6B4F5CCA6B0D66A0FE3BC1159102D7469", - "algorithm": "sha-1" - }, + "locations": [ { - "value": "F42E685051273889DD672719E682259DAF6548372336534BDCCE0C1C90B03E40", - "algorithm": "sha-256" + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Microsoft.Json.Schema.Validation.dll", + "uriBaseId": "$(ProjectDir)", + "index": 2 + } + }, + "logicalLocations": [ + { + "index": 127, + "fullyQualifiedName": "microsoft.json.schema.validation.dll!Microsoft.Json.Schema.Validation.VersionConstants.PreRelease" + } + ] } - ] - }, - "file:///E:/src/sarif-sdk-test/src/Sarif/Writers/MimeType.cs": { - "mimeType": "text/x-csharp", - "contents": { - "binary": "77u/Ly8gQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuDQovLyBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UuIFNlZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHByb2plY3Qgcm9vdCBmb3IgZnVsbCBsaWNlbnNlIGluZm9ybWF0aW9uLg0KDQp1c2luZyBTeXN0ZW07DQp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsNCnVzaW5nIFN5c3RlbS5Db2xsZWN0aW9ucy5JbW11dGFibGU7DQoNCm5hbWVzcGFjZSBNaWNyb3NvZnQuQ29kZUFuYWx5c2lzLlNhcmlmLldyaXRlcnMNCnsNCiAgICAvLy8gPHN1bW1hcnk+QSBjbGFzcyBjb250YWluaW5nIHV0aWxpdHkgZnVuY3Rpb25zIGZvciB3b3JraW5nIHdpdGggTUlNRSB0eXBlcy48L3N1bW1hcnk+DQogICAgcHVibGljIHN0YXRpYyBjbGFzcyBNaW1lVHlwZQ0KICAgIHsNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pkd1ZXNzZXMgZmlsZVBhdGggYXBwcm9wcmlhdGUgTUlNRSB0eXBlIGdpdmVuIHRoZSBleHRlbnNpb24gZnJvbSBhIGZpbGUgbmFtZS48L3N1bW1hcnk+DQogICAgICAgIC8vLyA8cGFyYW0gbmFtZT0icGF0aCI+RmlsZSBwYXRoIGZyb20gd2hpY2ggTUlNRSB0eXBlIHNoYWxsIGJlIGd1ZXNzZWQuPC9wYXJhbT4NCiAgICAgICAgLy8vIDxyZXR1cm5zPkEgc3RyaW5nIGNvcnJlc3BvbmRpbmcgdG8gdGhlIGxpa2VseSBNSU1FIHR5cGUgb2YgPHBhcmFtcmVmIG5hbWU9InBhdGgiLz4NCiAgICAgICAgcHVibGljIHN0YXRpYyBzdHJpbmcgRGV0ZXJtaW5lRnJvbUZpbGVFeHRlbnNpb24oc3RyaW5nIHBhdGgpDQogICAgICAgIHsNCiAgICAgICAgICAgIGlmIChwYXRoID09IG51bGwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgdGhyb3cgbmV3IEFyZ3VtZW50TnVsbEV4Y2VwdGlvbihuYW1lb2YocGF0aCkpOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBpZiAoU3lzdGVtLklPLkRpcmVjdG9yeS5FeGlzdHMocGF0aCkpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgcmV0dXJuIE1pbWVUeXBlLkRpcmVjdG9yeTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgZm9yZWFjaCAoSW1tdXRhYmxlQXJyYXk8SW1tdXRhYmxlQXJyYXk8c3RyaW5nPj4gZXh0ZW5zaW9uc1RhYmxlIGluIEdldEV4dGVuc2lvbnNUYWJsZXMoKSkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBmb3JlYWNoIChJbW11dGFibGVBcnJheTxzdHJpbmc+IHRhYmxlRW50cnkgaW4gZXh0ZW5zaW9uc1RhYmxlKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgLy8gRWFjaCBlbnRyeSBpbiB0aGUgdGFibGUgaXMgb2YgdGhlIGZvcm0gWyBtaW1lVHlwZSwgZXh0MSwgZXh0MiwgLi4uIGV4dE4gXQ0KICAgICAgICAgICAgICAgICAgICBmb3IgKGludCBpZHggPSAxOyBpZHggPCB0YWJsZUVudHJ5Lkxlbmd0aDsgKytpZHgpDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChIYXNFeHRlbnNpb24ocGF0aCwgdGFibGVFbnRyeVtpZHhdKSkNCiAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGFibGVFbnRyeVswXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHJldHVybiBNaW1lVHlwZS5CaW5hcnk7DQogICAgICAgIH0NCg0KICAgICAgICAvLy8gPHN1bW1hcnk+R3Vlc3NlcyBhbiBhcHByb3ByaWF0ZSBNSU1FIHR5cGUgZ2l2ZW4gdGhlIGV4dGVuc2lvbiBmcm9tIGEgZmlsZSBuYW1lLjwvc3VtbWFyeT4NCiAgICAgICAgLy8vIDxwYXJhbSBuYW1lPSJmaWxlTmFtZSI+RmlsZSBuYW1lIGZyb20gd2hpY2ggTUlNRSB0eXBlIHNoYWxsIGJlIGd1ZXNzZWQuPC9wYXJhbT4NCiAgICAgICAgLy8vIDxyZXR1cm5zPkEgc3RyaW5nIGNvcnJlc3BvbmRpbmcgdG8gdGhlIGxpa2VseSBNSU1FIHR5cGUgb2YgPHBhcmFtcmVmIG5hbWU9ImZpbGVOYW1lIi8+IGdpdmVuDQogICAgICAgIC8vLyBpdHMgZXh0ZW5zaW9uLjwvcmV0dXJucz4NCiAgICAgICAgcHVibGljIHN0YXRpYyBzdHJpbmcgRGV0ZXJtaW5lRnJvbUZpbGVFeHRlbnNpb24oVXJpIGZpbGVVcmkpDQogICAgICAgIHsNCiAgICAgICAgICAgIGlmIChmaWxlVXJpID09IG51bGwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgdGhyb3cgbmV3IEFyZ3VtZW50TnVsbEV4Y2VwdGlvbihuYW1lb2YoZmlsZVVyaSkpOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBzdHJpbmcgZmlsZU5hbWUgPSBmaWxlVXJpLlRvU3RyaW5nKCk7DQoNCiAgICAgICAgICAgIGlmIChmaWxlVXJpLklzQWJzb2x1dGVVcmkgJiYgZmlsZVVyaS5Jc0ZpbGUpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgZmlsZU5hbWUgPSBmaWxlVXJpLkxvY2FsUGF0aDsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgcmV0dXJuIERldGVybWluZUZyb21GaWxlRXh0ZW5zaW9uKGZpbGVOYW1lKTsNCiAgICAgICAgfQ0KDQogICAgICAgIHB1YmxpYyBzdGF0aWMgYm9vbCBJc1RleHR1YWxNaW1lVHlwZShzdHJpbmcgbWltZVR5cGUpDQogICAgICAgIHsNCiAgICAgICAgICAgIHNfdGV4dHVhbE1pbWVUeXBlcyA9IHNfdGV4dHVhbE1pbWVUeXBlcyA/PyBJbml0aWFsaXplTWltZVR5cGVzU2V0KHNfdGV4dHVhbEV4dGVuc2lvbnNUYWJsZSk7DQoNCiAgICAgICAgICAgIC8vIEluIG9yZGVyIGZvciBhIG1pbWUgdHlwZSB0byBiZSByZWdhcmRlZCBhcyB0ZXh0dWFsLCB3ZSByZXF1aXJlIGFuIGV4cGxpY2l0IA0KICAgICAgICAgICAgLy8gcmVmZXJlbmNlIHRvIGl0IGluIHRoaXMgc2V0LiBBbGwgdW5yZWNvZ25pemVkIG1pbWUgdHlwZXMgYXJlIHJlZ2FyZGVkIGFzIA0KICAgICAgICAgICAgLy8gYmluYXJ5LCBpbiBvcmRlciB0byBwcm92b2tlIHRoZSBtb3N0IGNvbnNlcnZhdGl2ZSBTREsgYmVoYXZpb3JzIGFyb3VuZCANCiAgICAgICAgICAgIC8vIHJldHJpZXZpbmcgY29kZSBzbmlwcGV0cywgZXRjLg0KICAgICAgICAgICAgcmV0dXJuIHNfdGV4dHVhbE1pbWVUeXBlcy5Db250YWlucyhtaW1lVHlwZSk7DQogICAgICAgIH0NCg0KICAgICAgICBwdWJsaWMgc3RhdGljIGJvb2wgSXNCaW5hcnlNaW1lVHlwZShzdHJpbmcgbWltZVR5cGUpDQogICAgICAgIHsNCiAgICAgICAgICAgIHNfdGV4dHVhbE1pbWVUeXBlcyA9IHNfdGV4dHVhbE1pbWVUeXBlcyA/PyBJbml0aWFsaXplTWltZVR5cGVzU2V0KHNfdGV4dHVhbEV4dGVuc2lvbnNUYWJsZSk7DQoNCiAgICAgICAgICAgIC8vIEluIG9yZGVyIGZvciBhIG1pbWUgdHlwZSB0byBiZSByZWdhcmRlZCBhcyB0ZXh0dWFsLCB3ZSByZXF1aXJlIGFuIGV4cGxpY2l0IA0KICAgICAgICAgICAgLy8gcmVmZXJlbmNlIHRvIGl0IGluIHRoaXMgc2V0LiBBbGwgdW5yZWNvZ25pemVkIG1pbWUgdHlwZXMgYXJlIHJlZ2FyZGVkIGFzIA0KICAgICAgICAgICAgLy8gYmluYXJ5LCBpbiBvcmRlciB0byBwcm92b2tlIHRoZSBtb3N0IGNvbnNlcnZhdGl2ZSBTREsgYmVoYXZpb3JzIGFyb3VuZCANCiAgICAgICAgICAgIC8vIHJldHJpZXZpbmcgY29kZSBzbmlwcGV0cywgZXRjLg0KICAgICAgICAgICAgcmV0dXJuICFzX3RleHR1YWxNaW1lVHlwZXMuQ29udGFpbnMobWltZVR5cGUpOw0KICAgICAgICB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5PlRoZSBNSU1FIHR5cGUgdG8gdXNlIHdoZW4gbm8gYmV0dGVyIE1JTUUgdHlwZSBpcyBrbm93bi48L3N1bW1hcnk+DQogICAgICAgIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgc3RyaW5nIERlZmF1bHQgPSBCaW5hcnk7DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5PlRoZSBNSU1FIHR5cGUgZm9yIEMgYW5kIEMrKyBmaWxlcy48L3N1bW1hcnk+DQogICAgICAgIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgc3RyaW5nIENwcCA9ICJ0ZXh0L3gtY3BwIjsNCiAgICAgICAgLy8vIC8vLyA8c3VtbWFyeT5UaGUgTUlNRSB0eXBlIGZvciBKYXZhIHNvdXJjZSBjb2RlIGZpbGVzLjwvc3VtbWFyeT4NCiAgICAgICAgcHVibGljIHN0YXRpYyByZWFkb25seSBzdHJpbmcgSmF2YSA9ICJ0ZXh0L3gtamF2YS1zb3VyY2UiOw0KICAgICAgICAvLy8gPHN1bW1hcnk+VGhlIE1JTUUgdHlwZSBmb3IgYmluYXJpZXMuPC9zdW1tYXJ5Pg0KICAgICAgICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IHN0cmluZyBCaW5hcnkgPSAiYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtIjsNCiAgICAgICAgLy8vIDxzdW1tYXJ5PlRoZSBNSU1FIHR5cGUgZm9yIGRpcmVjdG9yaWVzLjwvc3VtbWFyeT4NCiAgICAgICAgcHVibGljIHN0YXRpYyByZWFkb25seSBzdHJpbmcgRGlyZWN0b3J5ID0gImFwcGxpY2F0aW9uL3gtZGlyZWN0b3J5IjsNCiAgICAgICAgLy8vIDxzdW1tYXJ5PlRoZSBNSU1FIHR5cGUgdXNlZCBmb3IgQ1NoYXJwIGZpbGVzLjwvc3VtbWFyeT4NCiAgICAgICAgcHVibGljIHN0YXRpYyByZWFkb25seSBzdHJpbmcgQ1NoYXJwID0gInRleHQveC1jc2hhcnAiOw0KICAgICAgICAvLy8gPHN1bW1hcnk+VGhlIE1JTUUgdHlwZSBmb3IgU0FSSUYgZmlsZXMuPC9zdW1tYXJ5Pg0KICAgICAgICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IHN0cmluZyBTYXJpZiA9ICJhcHBsaWNhdGlvbi9zYXJpZi1qc29uIjsNCiAgICAgICAgLy8vIDxzdW1tYXJ5PlRoZSBNSU1FIHR5cGUgZm9yIEphdmEgcHJvcGVydGllcyBmaWxlcyAod2hpY2ggYXJlIHhtbCkuPC9zdW1tYXJ5Pg0KICAgICAgICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IHN0cmluZyBKYXZhUHJvcGVydGllcyA9ICJ0ZXh0L3gtamF2YS1wcm9wZXJ0aWVzIjsNCg0KICAgICAgICBwcml2YXRlIHN0YXRpYyBib29sIEhhc0V4dGVuc2lvbihzdHJpbmcgZmlsZU5hbWUsIHN0cmluZyBleHRlbnNpb24pDQogICAgICAgIHsNCiAgICAgICAgICAgIGlmIChleHRlbnNpb24uTGVuZ3RoICsgMSA+IGZpbGVOYW1lLkxlbmd0aCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAvLyBOb3QgbG9uZyBlbm91Z2gNCiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIC8vIENoZWNrIGZvciAnLicgd2l0aG91dCBhbGxvY2F0aW5nICIuIiArIGV4dGVuc2lvbg0KICAgICAgICAgICAgaW50IHNob3VsZEJlRG90SW5kZXggPSBmaWxlTmFtZS5MZW5ndGggLSBleHRlbnNpb24uTGVuZ3RoIC0gMTsNCiAgICAgICAgICAgIGlmIChmaWxlTmFtZVtzaG91bGRCZURvdEluZGV4XSAhPSAnLicpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgLy8gUGVyaW9kIG5vdCBpbiB0aGUgcmlnaHQgcGxhY2UuDQogICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICByZXR1cm4gZmlsZU5hbWUuRW5kc1dpdGgoZXh0ZW5zaW9uLCBTdHJpbmdDb21wYXJpc29uLk9yZGluYWxJZ25vcmVDYXNlKTsNCiAgICAgICAgfQ0KDQogICAgICAgIHByaXZhdGUgc3RhdGljIElFbnVtZXJhYmxlPEltbXV0YWJsZUFycmF5PEltbXV0YWJsZUFycmF5PHN0cmluZz4+PiBHZXRFeHRlbnNpb25zVGFibGVzKCkNCiAgICAgICAgew0KICAgICAgICAgICAgeWllbGQgcmV0dXJuIHNfdGV4dHVhbEV4dGVuc2lvbnNUYWJsZTsNCiAgICAgICAgICAgIHlpZWxkIHJldHVybiBzX2JpbmFyeUV4dGVuc2lvbnNUYWJsZTsNCiAgICAgICAgfQ0KDQogICAgICAgIHByaXZhdGUgc3RhdGljIEltbXV0YWJsZUhhc2hTZXQ8c3RyaW5nPiBJbml0aWFsaXplTWltZVR5cGVzU2V0KEltbXV0YWJsZUFycmF5PEltbXV0YWJsZUFycmF5PHN0cmluZz4+IGV4dGVuc2lvbnNUYWJsZSkNCiAgICAgICAgew0KICAgICAgICAgICAgdmFyIGJ1aWxkZXIgPSBJbW11dGFibGVIYXNoU2V0LkNyZWF0ZUJ1aWxkZXI8c3RyaW5nPigpOw0KICAgICAgICAgICAgZm9yZWFjaCAoSW1tdXRhYmxlQXJyYXk8c3RyaW5nPiB0YWJsZUVudHJ5IGluIGV4dGVuc2lvbnNUYWJsZSkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBidWlsZGVyLkFkZCh0YWJsZUVudHJ5WzBdKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHJldHVybiBidWlsZGVyLlRvSW1tdXRhYmxlSGFzaFNldDxzdHJpbmc+KCk7DQogICAgICAgIH0NCg0KICAgICAgICBwcml2YXRlIHN0YXRpYyBJbW11dGFibGVIYXNoU2V0PHN0cmluZz4gc190ZXh0dWFsTWltZVR5cGVzOw0KDQogICAgICAgIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IEltbXV0YWJsZUFycmF5PEltbXV0YWJsZUFycmF5PHN0cmluZz4+IHNfdGV4dHVhbEV4dGVuc2lvbnNUYWJsZSA9IEltbXV0YWJsZUFycmF5LkNyZWF0ZSgNCiAgICAgICAgICAgIEltbXV0YWJsZUFycmF5LkNyZWF0ZSgidGV4dC94LWJhdCIsICJiYXQiLCAiY21kIiksDQogICAgICAgICAgICBJbW11dGFibGVBcnJheS5DcmVhdGUoTWltZVR5cGUuQ3BwLCAiYyIsICJjcHAiLCAiaCIsICJocHAiLCAiY3h4IiwgLypTRFYgcnVsZSBmaWxlKi8gInNsaWMiKSwNCiAgICAgICAgICAgIEltbXV0YWJsZUFycmF5LkNyZWF0ZShNaW1lVHlwZS5DU2hhcnAsICJjcyIpLA0KICAgICAgICAgICAgSW1tdXRhYmxlQXJyYXkuQ3JlYXRlKCJ0ZXh0L2NvZmZlZXNjcmlwdCIsICJjb2ZmZWUiKSwNCiAgICAgICAgICAgIEltbXV0YWJsZUFycmF5LkNyZWF0ZSgidGV4dC9jc3MiLCAiY3NzIiksDQogICAgICAgICAgICBJbW11dGFibGVBcnJheS5DcmVhdGUoInRleHQveC1mc2hhcnAiLCAiZnMiKSwNCiAgICAgICAgICAgIEltbXV0YWJsZUFycmF5LkNyZWF0ZSgidGV4dC94LWhhbmRsZWJhcnMtdGVtcGxhdGUiLCAiaGFuZGxlYmFycyIpLA0KICAgICAgICAgICAgSW1tdXRhYmxlQXJyYXkuQ3JlYXRlKCJ0ZXh0L2h0bWwiLCAiaHRtIiwgImh0bWwiKSwNCiAgICAgICAgICAgIEltbXV0YWJsZUFycmF5LkNyZWF0ZSgidGV4dC94LWluaSIsICJpbmkiLCAiZ2l0Y29uZmlnIiwgInltbCIpLA0KICAgICAgICAgICAgSW1tdXRhYmxlQXJyYXkuQ3JlYXRlKCJ0ZXh0L3gtamFkZSIsICJqYWRlIiksDQogICAgICAgICAgICBJbW11dGFibGVBcnJheS5DcmVhdGUoTWltZVR5cGUuSmF2YVByb3BlcnRpZXMsICJwcm9wZXJ0aWVzIiksDQogICAgICAgICAgICBJbW11dGFibGVBcnJheS5DcmVhdGUoInRleHQvamF2YXNjcmlwdCIsICJqcyIpLA0KICAgICAgICAgICAgSW1tdXRhYmxlQXJyYXkuQ3JlYXRlKCJhcHBsaWNhdGlvbi9qc29uIiwgImpzb24iKSwNCiAgICAgICAgICAgIEltbXV0YWJsZUFycmF5LkNyZWF0ZSgidGV4dC9sZXNzIiwgImxlc3MiKSwNCiAgICAgICAgICAgIEltbXV0YWJsZUFycmF5LkNyZWF0ZSgidGV4dC94LWx1YSIsICJsdWEiKSwNCiAgICAgICAgICAgIEltbXV0YWJsZUFycmF5LkNyZWF0ZSgidGV4dC94LXdlYi1tYXJrZG93biIsICJtZCIsICJtYXJrZG93biIpLA0KICAgICAgICAgICAgSW1tdXRhYmxlQXJyYXkuQ3JlYXRlKCJhcHBsaWNhdGlvbi94LXBocCIsICJwaHAiKSwNCiAgICAgICAgICAgIEltbXV0YWJsZUFycmF5LkNyZWF0ZSgidGV4dC9wbGFpbiIsICJ0eHQiKSwNCiAgICAgICAgICAgIEltbXV0YWJsZUFycmF5LkNyZWF0ZSgidGV4dC94LXBvd2Vyc2hlbGwiLCAicHMiLCAicHMxIiksDQogICAgICAgICAgICBJbW11dGFibGVBcnJheS5DcmVhdGUoInRleHQvcHl0aG9uIiwgInB5IiksDQogICAgICAgICAgICBJbW11dGFibGVBcnJheS5DcmVhdGUoInRleHQveC1jc2h0bWwiLCAiY3NodG1sIiksDQogICAgICAgICAgICBJbW11dGFibGVBcnJheS5DcmVhdGUoInRleHQvcnVieSIsICJydWJ5IiwgImdlbXNwZWMiKSwNCiAgICAgICAgICAgIEltbXV0YWJsZUFycmF5LkNyZWF0ZShNaW1lVHlwZS5TYXJpZiwgInNhcmlmIiksDQogICAgICAgICAgICBJbW11dGFibGVBcnJheS5DcmVhdGUoInRleHQvc2NzcyIsICJzY3NzIiksDQogICAgICAgICAgICBJbW11dGFibGVBcnJheS5DcmVhdGUoInRleHQveC1zcWwiLCAic3FsIiwgInRzcWwiKSwNCiAgICAgICAgICAgIEltbXV0YWJsZUFycmF5LkNyZWF0ZSgidGV4dC90eXBlc2NyaXB0IiwgInRzIiksDQogICAgICAgICAgICBJbW11dGFibGVBcnJheS5DcmVhdGUoInRleHQveC12YiIsICJ2YiIpLA0KICAgICAgICAgICAgSW1tdXRhYmxlQXJyYXkuQ3JlYXRlKCJ0ZXh0L3htbCIsICJ4bWwiLCAiYXNjeCIsICJhc3B4IiwgImNzcHJvaiIsICJ4YW1sIiwgImR0ZCIsICJ4c2QiLCAidmN4cHJvaiIsICJ2YnByb2oiLCAid2l4cHJvaiIsICJqc3Byb2oiLCAicHJvaiIsICJ0YXJnZXRzIiwgInByb3BzIiwgImNvbmZpZyIpDQogICAgICAgICAgICApOw0KDQogICAgICAgIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IEltbXV0YWJsZUFycmF5PEltbXV0YWJsZUFycmF5PHN0cmluZz4+IHNfYmluYXJ5RXh0ZW5zaW9uc1RhYmxlID0gSW1tdXRhYmxlQXJyYXkuQ3JlYXRlKA0KICAgICAgICAgICAgIEltbXV0YWJsZUFycmF5LkNyZWF0ZShNaW1lVHlwZS5KYXZhLCAiamF2YSIsICJqYXYiKSwNCiAgICAgICAgICAgICBJbW11dGFibGVBcnJheS5DcmVhdGUoImFwcGxpY2F0aW9uL2phdmEtYXJjaGl2ZSIsICJqYXIiKSwgICAgICAgICAgICAgDQogICAgICAgICAgICAgSW1tdXRhYmxlQXJyYXkuQ3JlYXRlKCJhcHBsaWNhdGlvbi96aXAiLCAiemlwIiksDQogICAgICAgICAgICAgSW1tdXRhYmxlQXJyYXkuQ3JlYXRlKCJhcHBsaWNhdGlvbi92bnMubXMtYXBweCIsICJhcHB4IiksDQogICAgICAgICAgICAgSW1tdXRhYmxlQXJyYXkuQ3JlYXRlKCJhcHBsaWNhdGlvbi92bmQubXMtd29yZC5kb2N1bWVudCIsICJkb2N4IiksDQogICAgICAgICAgICAgSW1tdXRhYmxlQXJyYXkuQ3JlYXRlKCJhcHBsaWNhdGlvbi92bmQubXMtd29yZC50ZW1wbGF0ZSIsICJkb3R4IiksDQogICAgICAgICAgICAgSW1tdXRhYmxlQXJyYXkuQ3JlYXRlKCJhcHBsaWNhdGlvbi92bmQubXMtZXhjZWwiLCAieGxzeCIpLA0KICAgICAgICAgICAgIEltbXV0YWJsZUFycmF5LkNyZWF0ZSgiYXBwbGljYXRpb24vdm5kLm1zLXBvd2VycG9pbnQiLCAicHB0eCIpLA0KICAgICAgICAgICAgIEltbXV0YWJsZUFycmF5LkNyZWF0ZSgiYXBwbGljYXRpb24vdm5kLm1zLWNhYi1jb21wcmVzc2VkIiwgImNhYiIpLA0KICAgICAgICAgICAgIEltbXV0YWJsZUFycmF5LkNyZWF0ZSgiYXBwbGljYXRpb24vdm5kLm1zLXhwc2RvY3VtZW50IiwgInhwcyIpDQogICAgICAgICAgICAgKTsNCiAgICB9DQp9DQo=" + ], + "partialFingerprints": { + "UniqueId": "PreRelease#MemberShouldBeDiscreteTerm" }, - "hashes": [ - { - "value": "7E5F1F023FDD060A1E721FDD65FE5FB9", - "algorithm": "md5" - }, - { - "value": "382B2F2743508343C7D86234F3579BE17F91A335", - "algorithm": "sha-1" - }, - { - "value": "DD2847887E3307FA4E769C5709EC60A56039CE8427523E5D5A8AB3B5F667CEE7", - "algorithm": "sha-256" - } - ] + "properties": { + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" + } }, - "file:///E:/src/sarif-sdk-test/src/Sarif/Writers/ResultLogJsonWriter.cs": { - "mimeType": "text/x-csharp", - "contents": { - "binary": "77u/Ly8gQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuDQovLyBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UuIFNlZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHByb2plY3Qgcm9vdCBmb3IgZnVsbCBsaWNlbnNlIGluZm9ybWF0aW9uLg0KDQp1c2luZyBTeXN0ZW07DQp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsNCg0KdXNpbmcgTWljcm9zb2Z0LkNvZGVBbmFseXNpcy5TYXJpZi5SZWFkZXJzOw0KDQp1c2luZyBOZXd0b25zb2Z0Lkpzb247DQp1c2luZyBTeXN0ZW0uR2xvYmFsaXphdGlvbjsNCg0KbmFtZXNwYWNlIE1pY3Jvc29mdC5Db2RlQW5hbHlzaXMuU2FyaWYuV3JpdGVycw0Kew0KICAgIC8vLyA8c3VtbWFyeT5BbiBpbXBsZW1lbnRhdGlvbiBvZiA8c2VlIGNyZWY9IklSZXN1bHRMb2dXcml0ZXIiLz4gdGhhdCB3cml0ZXMgdGhlIHJlc3VsdHMgYXMgSlNPTiB0byBhDQogICAgLy8vIDxzZWUgY3JlZj0iVGV4dFdyaXRlciIvPi48L3N1bW1hcnk+DQogICAgLy8vIDxzZWVhbHNvIGNyZWY9IlQ6TWljcm9zb2Z0LkNvZGVBbmFseXNpcy5TYXJpZi5JUmVzdWx0TG9nV3JpdGVyIi8+DQogICAgcHVibGljIHNlYWxlZCBjbGFzcyBSZXN1bHRMb2dKc29uV3JpdGVyIDogSVJlc3VsdExvZ1dyaXRlciwgSURpc3Bvc2FibGUNCiAgICB7DQogICAgICAgIFtGbGFnc10NCiAgICAgICAgcHJpdmF0ZSBlbnVtIENvbmRpdGlvbnMNCiAgICAgICAgew0KICAgICAgICAgICAgTm9uZSA9IDB4MDAsDQogICAgICAgICAgICBSdW5Jbml0aWFsaXplZCA9IDB4MDAxLA0KICAgICAgICAgICAgUnVsZXNXcml0dGVuID0gMHgwMDIsDQogICAgICAgICAgICBGaWxlc1dyaXR0ZW4gPSAweDAwNCwNCiAgICAgICAgICAgIEludm9jYXRpb25zV3JpdHRlbiA9IDB4MDA4LA0KICAgICAgICAgICAgUmVzdWx0c0luaXRpYWxpemVkID0gMHgwMTAsDQogICAgICAgICAgICBSZXN1bHRzQ2xvc2VkID0gMHgwMjAsDQogICAgICAgICAgICBMb2dpY2FsTG9jYXRpb25zV3JpdHRlbiA9IDB4MDQwLA0KICAgICAgICAgICAgVG9vbE5vdGlmaWNhdGlvbnNXcml0dGVuID0gMHgwODAsDQogICAgICAgICAgICBDb25maWd1cmF0aW9uTm90aWZpY2F0aW9uc1dyaXR0ZW4gPSAweDEwMCwNCiAgICAgICAgICAgIERpc3Bvc2VkID0gMHg0MDAwMDAwMA0KICAgICAgICB9DQoNCiAgICAgICAgcHJpdmF0ZSBDb25kaXRpb25zIF93cml0ZUNvbmRpdGlvbnM7DQogICAgICAgIHByaXZhdGUgcmVhZG9ubHkgSnNvbldyaXRlciBfanNvbldyaXRlcjsNCiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBKc29uU2VyaWFsaXplciBfc2VyaWFsaXplcjsNCg0KICAgICAgICAvLy8gPHN1bW1hcnk+SW5pdGlhbGl6ZXMgYSBuZXcgaW5zdGFuY2Ugb2YgdGhlIDxzZWUgY3JlZj0iUmVzdWx0TG9nSnNvbldyaXRlciIvPiBjbGFzcy48L3N1bW1hcnk+DQogICAgICAgIC8vLyA8cGFyYW0gbmFtZT0ianNvbldyaXRlciI+VGhlIEpTT04gd3JpdGVyLiBUaGlzIGNsYXNzIGRvZXMgbm90IHRha2Ugb3duZXJzaGlwIG9mIHRoZSBKU09ODQogICAgICAgIC8vLyB3cml0ZXI7IHRoZSBjYWxsZXIgaXMgcmVzcG9uc2libGUgZm9yIGRlc3Ryb3lpbmcgaXQuPC9wYXJhbT4NCiAgICAgICAgcHVibGljIFJlc3VsdExvZ0pzb25Xcml0ZXIoSnNvbldyaXRlciBqc29uV3JpdGVyKQ0KICAgICAgICB7DQogICAgICAgICAgICBfanNvbldyaXRlciA9IGpzb25Xcml0ZXI7DQogICAgICAgICAgICBfc2VyaWFsaXplciA9IG5ldyBKc29uU2VyaWFsaXplcigpOw0KICAgICAgICAgICAgX3NlcmlhbGl6ZXIuQ29udHJhY3RSZXNvbHZlciA9IFNhcmlmQ29udHJhY3RSZXNvbHZlci5JbnN0YW5jZTsNCiAgICAgICAgfQ0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIEluaXRpYWxpemVzIHRoZSBTQVJJRiBsb2cgYnkgZW1pdHRpbmcgcHJvcGVydGllcyBhbmQgb3RoZXIgY29uc3RydWN0cw0KICAgICAgICAvLy8gc3VmZmljaWVudCB0byBiZWluZyBwb3B1bGF0aW5nIGEgcnVuIHdpdGggcmVzdWx0cy4NCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgLy8vIDxwYXJhbSBuYW1lPSJpZCI+QSBzdHJpbmcgdGhhdCB1bmlxdWVseSBpZGVudGlmaWVzIGEgcnVuLjwvcGFyYW0+DQogICAgICAgIC8vLyA8cGFyYW0gbmFtZT0iYXV0b21hdGlvbklkIj5BIGdsb2JhbCBpZGVudGlmaWVyIGZvciBhIHJ1biB0aGF0IHBlcm1pdHMgY29ycmVsYXRpb24gd2l0aCBhIGxhcmdlciBhdXRvbWF0aW9uIHByb2Nlc3MuPC9wYXJhbT4NCiAgICAgICAgcHVibGljIHZvaWQgSW5pdGlhbGl6ZShSdW4gcnVuKQ0KICAgICAgICB7DQogICAgICAgICAgICBpZiAocnVuID09IG51bGwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgdGhyb3cgbmV3IEFyZ3VtZW50TnVsbEV4Y2VwdGlvbihuYW1lb2YocnVuKSk7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIGlmIChydW4uVG9vbCA9PSBudWxsKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHRocm93IG5ldyBBcmd1bWVudE51bGxFeGNlcHRpb24obmFtZW9mKHJ1bi5Ub29sKSk7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIHRoaXMuRW5zdXJlU3RhdGVOb3RBbHJlYWR5U2V0KENvbmRpdGlvbnMuRGlzcG9zZWQgfCBDb25kaXRpb25zLlJ1bkluaXRpYWxpemVkKTsNCg0KICAgICAgICAgICAgU2FyaWZWZXJzaW9uIHNhcmlmVmVyc2lvbiA9IFNhcmlmVmVyc2lvbi5Ud29aZXJvWmVybzsNCg0KICAgICAgICAgICAgX2pzb25Xcml0ZXIuV3JpdGVTdGFydE9iamVjdCgpOyAvLyBCZWdpbjogc2FyaWZMb2cNCiAgICAgICAgICAgIF9qc29uV3JpdGVyLldyaXRlUHJvcGVydHlOYW1lKCIkc2NoZW1hIik7DQogICAgICAgICAgICBfanNvbldyaXRlci5Xcml0ZVZhbHVlKHNhcmlmVmVyc2lvbi5Db252ZXJ0VG9TY2hlbWFVcmkoKS5PcmlnaW5hbFN0cmluZyk7DQogICAgICAgICAgICBfanNvbldyaXRlci5Xcml0ZVByb3BlcnR5TmFtZSgidmVyc2lvbiIpOw0KICAgICAgICAgICAgX2pzb25Xcml0ZXIuV3JpdGVWYWx1ZShzYXJpZlZlcnNpb24uQ29udmVydFRvVGV4dCgpKTsNCg0KICAgICAgICAgICAgX2pzb25Xcml0ZXIuV3JpdGVQcm9wZXJ0eU5hbWUoInJ1bnMiKTsNCiAgICAgICAgICAgIF9qc29uV3JpdGVyLldyaXRlU3RhcnRBcnJheSgpOyAvLyBCZWdpbjogcnVucw0KDQogICAgICAgICAgICBfanNvbldyaXRlci5Xcml0ZVN0YXJ0T2JqZWN0KCk7IC8vIEJlZ2luOiBydW4NCg0KICAgICAgICAgICAgaWYgKCFzdHJpbmcuSXNOdWxsT3JFbXB0eShydW4uSW5zdGFuY2VHdWlkKSkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBfanNvbldyaXRlci5Xcml0ZVByb3BlcnR5TmFtZSgiaW5zdGFuY2VHdWlkIik7DQogICAgICAgICAgICAgICAgX3NlcmlhbGl6ZXIuU2VyaWFsaXplKF9qc29uV3JpdGVyLCBydW4uSW5zdGFuY2VHdWlkKTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgaWYgKCFzdHJpbmcuSXNOdWxsT3JFbXB0eShydW4uQmFzZWxpbmVJbnN0YW5jZUd1aWQpKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIF9qc29uV3JpdGVyLldyaXRlUHJvcGVydHlOYW1lKCJiYXNlbGluZUluc3RhbmNlR3VpZCIpOw0KICAgICAgICAgICAgICAgIF9zZXJpYWxpemVyLlNlcmlhbGl6ZShfanNvbldyaXRlciwgcnVuLkJhc2VsaW5lSW5zdGFuY2VHdWlkKTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgaWYgKCFzdHJpbmcuSXNOdWxsT3JFbXB0eShydW4uQXV0b21hdGlvbkxvZ2ljYWxJZCkpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgX2pzb25Xcml0ZXIuV3JpdGVQcm9wZXJ0eU5hbWUoImF1dG9tYXRpb25Mb2dpY2FsSWQiKTsNCiAgICAgICAgICAgICAgICBfc2VyaWFsaXplci5TZXJpYWxpemUoX2pzb25Xcml0ZXIsIHJ1bi5BdXRvbWF0aW9uTG9naWNhbElkKTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgaWYgKCFzdHJpbmcuSXNOdWxsT3JFbXB0eShydW4uTG9naWNhbElkKSkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBfanNvbldyaXRlci5Xcml0ZVByb3BlcnR5TmFtZSgibG9naWNhbElkIik7DQogICAgICAgICAgICAgICAgX3NlcmlhbGl6ZXIuU2VyaWFsaXplKF9qc29uV3JpdGVyLCBydW4uTG9naWNhbElkKTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgaWYgKCFzdHJpbmcuSXNOdWxsT3JFbXB0eShydW4uQXJjaGl0ZWN0dXJlKSkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBfanNvbldyaXRlci5Xcml0ZVByb3BlcnR5TmFtZSgiYXJjaGl0ZWN0dXJlIik7DQogICAgICAgICAgICAgICAgX3NlcmlhbGl6ZXIuU2VyaWFsaXplKF9qc29uV3JpdGVyLCBydW4uQXJjaGl0ZWN0dXJlKTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgaWYgKHJ1bi5EZXNjcmlwdGlvbiAhPSBudWxsKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIF9qc29uV3JpdGVyLldyaXRlUHJvcGVydHlOYW1lKCJkZXNjcmlwdGlvbiIpOw0KICAgICAgICAgICAgICAgIF9zZXJpYWxpemVyLlNlcmlhbGl6ZShfanNvbldyaXRlciwgcnVuLkRlc2NyaXB0aW9uKTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgaWYgKHJ1bi5Ub29sICE9IG51bGwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgX2pzb25Xcml0ZXIuV3JpdGVQcm9wZXJ0eU5hbWUoInRvb2wiKTsNCiAgICAgICAgICAgICAgICBfc2VyaWFsaXplci5TZXJpYWxpemUoX2pzb25Xcml0ZXIsIHJ1bi5Ub29sKTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgaWYgKHJ1bi5Db252ZXJzaW9uICE9IG51bGwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgX2pzb25Xcml0ZXIuV3JpdGVQcm9wZXJ0eU5hbWUoImNvbnZlcnNpb24iKTsNCiAgICAgICAgICAgICAgICBfc2VyaWFsaXplci5TZXJpYWxpemUoX2pzb25Xcml0ZXIsIHJ1bi5Db252ZXJzaW9uKTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgaWYgKHJ1bi5WZXJzaW9uQ29udHJvbFByb3ZlbmFuY2UgIT0gbnVsbCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBfanNvbldyaXRlci5Xcml0ZVByb3BlcnR5TmFtZSgidmVyc2lvbkNvbnRyb2xQcm92ZW5hbmNlIik7DQogICAgICAgICAgICAgICAgX3NlcmlhbGl6ZXIuU2VyaWFsaXplKF9qc29uV3JpdGVyLCBydW4uVmVyc2lvbkNvbnRyb2xQcm92ZW5hbmNlKTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgaWYgKHJ1bi5PcmlnaW5hbFVyaUJhc2VJZHMgIT0gbnVsbCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBfanNvbldyaXRlci5Xcml0ZVByb3BlcnR5TmFtZSgib3JpZ2luYWxVcmlCYXNlSWRzIik7DQogICAgICAgICAgICAgICAgX3NlcmlhbGl6ZXIuU2VyaWFsaXplKF9qc29uV3JpdGVyLCBydW4uT3JpZ2luYWxVcmlCYXNlSWRzKTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgaWYgKHJ1bi5EZWZhdWx0RmlsZUVuY29kaW5nICE9IG51bGwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgX2pzb25Xcml0ZXIuV3JpdGVQcm9wZXJ0eU5hbWUoImRlZmF1bHRGaWxlRW5jb2RpbmciKTsNCiAgICAgICAgICAgICAgICBfc2VyaWFsaXplci5TZXJpYWxpemUoX2pzb25Xcml0ZXIsIHJ1bi5EZWZhdWx0RmlsZUVuY29kaW5nKTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgaWYgKHJ1bi5SaWNoTWVzc2FnZU1pbWVUeXBlICE9IG51bGwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgX2pzb25Xcml0ZXIuV3JpdGVQcm9wZXJ0eU5hbWUoInJpY2hNZXNzYWdlTWltZVR5cGUiKTsNCiAgICAgICAgICAgICAgICBfc2VyaWFsaXplci5TZXJpYWxpemUoX2pzb25Xcml0ZXIsIHJ1bi5SaWNoTWVzc2FnZU1pbWVUeXBlKTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgaWYgKHJ1bi5SZWRhY3Rpb25Ub2tlbiAhPSBudWxsKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIF9qc29uV3JpdGVyLldyaXRlUHJvcGVydHlOYW1lKCJyZWRhY3Rpb25Ub2tlbiIpOw0KICAgICAgICAgICAgICAgIF9zZXJpYWxpemVyLlNlcmlhbGl6ZShfanNvbldyaXRlciwgcnVuLlJlZGFjdGlvblRva2VuKTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgX3dyaXRlQ29uZGl0aW9ucyB8PSBDb25kaXRpb25zLlJ1bkluaXRpYWxpemVkOw0KICAgICAgICB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gV3JpdGUgaW5mb3JtYXRpb24gYWJvdXQgc2Nhbm5lZCBmaWxlcyB0byB0aGUgbG9nLiBUaGlzIGluZm9ybWF0aW9uIG1heSBhcHBlYXINCiAgICAgICAgLy8vIGFmdGVyIHRoZSByZXN1bHRzLCBhcyB0aGUgZnVsbCBsaXN0IG9mIHNjYW5uZWQgZmlsZXMgbWlnaHQgbm90IGJlIGtub3duIHVudGlsDQogICAgICAgIC8vLyBhbGwgcmVzdWx0cyBoYXZlIGJlZW4gZ2VuZXJhdGVkLg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICAvLy8gPHBhcmFtIG5hbWU9ImZpbGVEaWN0aW9uYXJ5Ij4NCiAgICAgICAgLy8vIEEgZGljdGlvbmFyeSB3aG9zZSBrZXlzIGFyZSB0aGUgVVJJcyBvZiBzY2FubmVkIGZpbGVzIGFuZCB3aG9zZSB2YWx1ZXMgcHJvdmlkZQ0KICAgICAgICAvLy8gaW5mb3JtYXRpb24gYWJvdXQgdGhvc2UgZmlsZXMuDQogICAgICAgIC8vLyA8L3BhcmFtPg0KICAgICAgICBwdWJsaWMgdm9pZCBXcml0ZUZpbGVzKElEaWN0aW9uYXJ5PHN0cmluZywgRmlsZURhdGE+IGZpbGVEaWN0aW9uYXJ5KQ0KICAgICAgICB7DQogICAgICAgICAgICBpZiAoZmlsZURpY3Rpb25hcnkgPT0gbnVsbCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgQXJndW1lbnROdWxsRXhjZXB0aW9uKG5hbWVvZihmaWxlRGljdGlvbmFyeSkpOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBFbnN1cmVJbml0aWFsaXplZCgpOw0KICAgICAgICAgICAgRW5zdXJlUmVzdWx0c0FycmF5SXNOb3RPcGVuKCk7DQogICAgICAgICAgICBFbnN1cmVTdGF0ZU5vdEFscmVhZHlTZXQoQ29uZGl0aW9ucy5EaXNwb3NlZCB8IENvbmRpdGlvbnMuRmlsZXNXcml0dGVuKTsNCg0KICAgICAgICAgICAgX2pzb25Xcml0ZXIuV3JpdGVQcm9wZXJ0eU5hbWUoImZpbGVzIik7DQogICAgICAgICAgICBfc2VyaWFsaXplci5TZXJpYWxpemUoX2pzb25Xcml0ZXIsIGZpbGVEaWN0aW9uYXJ5LCB0eXBlb2YoRGljdGlvbmFyeTxVcmksIEZpbGVEYXRhPikpOw0KDQogICAgICAgICAgICBfd3JpdGVDb25kaXRpb25zIHw9IENvbmRpdGlvbnMuRmlsZXNXcml0dGVuOw0KICAgICAgICB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gV3JpdGUgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGxvZ2ljYWwgbG9jYXRpb25zIHdoZXJlIHJlc3VsdHMgd2VyZSBwcm9kdWNlZCB0bw0KICAgICAgICAvLy8gdGhlIGxvZy4gVGhpcyBpbmZvcm1hdGlvbiBtYXkgYXBwZWFyIGFmdGVyIHRoZSByZXN1bHRzLCBhcyB0aGUgZnVsbCBsaXN0IG9mDQogICAgICAgIC8vLyBsb2dpY2FsIGxvY2F0aW9ucyB3aWxsIG5vdCBiZSBrbm93biB1bnRpbCBhbGwgcmVzdWx0cyBoYXZlIGJlZW4gZ2VuZXJhdGVkLg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICAvLy8gPHBhcmFtIG5hbWU9ImxvZ2ljYWxMb2NhdGlvbkRpY3Rpb25hcnkiPg0KICAgICAgICAvLy8gQSBkaWN0aW9uYXJ5IHdob3NlIGtleXMgYXJlIHN0cmluZ3Mgc3BlY2lmeWluZyBhIGxvZ2ljYWwgbG9jYXRpb24gYW5kDQogICAgICAgIC8vLyB3aG9zZSB2YWx1ZXMgcHJvdmlkZSBpbmZvcm1hdGlvbiBhYm91dCBlYWNoIGNvbXBvbmVudCBvZiB0aGUgbG9naWNhbCBsb2NhdGlvbi4NCiAgICAgICAgLy8vIDwvcGFyYW0+DQogICAgICAgIHB1YmxpYyB2b2lkIFdyaXRlTG9naWNhbExvY2F0aW9ucyhJRGljdGlvbmFyeTxzdHJpbmcsIExvZ2ljYWxMb2NhdGlvbj4gbG9naWNhbExvY2F0aW9uc0RpY3Rpb25hcnkpDQogICAgICAgIHsNCiAgICAgICAgICAgIGlmIChsb2dpY2FsTG9jYXRpb25zRGljdGlvbmFyeSA9PSBudWxsKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHRocm93IG5ldyBBcmd1bWVudE51bGxFeGNlcHRpb24obmFtZW9mKGxvZ2ljYWxMb2NhdGlvbnNEaWN0aW9uYXJ5KSk7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIEVuc3VyZUluaXRpYWxpemVkKCk7DQogICAgICAgICAgICBFbnN1cmVSZXN1bHRzQXJyYXlJc05vdE9wZW4oKTsNCiAgICAgICAgICAgIEVuc3VyZVN0YXRlTm90QWxyZWFkeVNldChDb25kaXRpb25zLkRpc3Bvc2VkIHwgQ29uZGl0aW9ucy5Mb2dpY2FsTG9jYXRpb25zV3JpdHRlbik7DQoNCiAgICAgICAgICAgIF9qc29uV3JpdGVyLldyaXRlUHJvcGVydHlOYW1lKCJsb2dpY2FsTG9jYXRpb25zIik7DQogICAgICAgICAgICBfc2VyaWFsaXplci5TZXJpYWxpemUoX2pzb25Xcml0ZXIsIGxvZ2ljYWxMb2NhdGlvbnNEaWN0aW9uYXJ5LCB0eXBlb2YoRGljdGlvbmFyeTxzdHJpbmcsIExvZ2ljYWxMb2NhdGlvbj4pKTsNCg0KICAgICAgICAgICAgX3dyaXRlQ29uZGl0aW9ucyB8PSBDb25kaXRpb25zLkxvZ2ljYWxMb2NhdGlvbnNXcml0dGVuOw0KICAgICAgICB9DQoNCiAgICAgICAgcHVibGljIHZvaWQgV3JpdGVJbnZvY2F0aW9ucyhJRW51bWVyYWJsZTxJbnZvY2F0aW9uPiBpbnZvY2F0aW9ucykNCiAgICAgICAgew0KICAgICAgICAgICAgaWYgKGludm9jYXRpb25zID09IG51bGwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgdGhyb3cgbmV3IEFyZ3VtZW50TnVsbEV4Y2VwdGlvbihuYW1lb2YoaW52b2NhdGlvbnMpKTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgRW5zdXJlSW5pdGlhbGl6ZWQoKTsNCiAgICAgICAgICAgIEVuc3VyZVJlc3VsdHNBcnJheUlzTm90T3BlbigpOw0KICAgICAgICAgICAgRW5zdXJlU3RhdGVOb3RBbHJlYWR5U2V0KENvbmRpdGlvbnMuRGlzcG9zZWQgfCBDb25kaXRpb25zLkludm9jYXRpb25zV3JpdHRlbik7DQoNCiAgICAgICAgICAgIF9qc29uV3JpdGVyLldyaXRlUHJvcGVydHlOYW1lKCJpbnZvY2F0aW9ucyIpOw0KICAgICAgICAgICAgX3NlcmlhbGl6ZXIuU2VyaWFsaXplKF9qc29uV3JpdGVyLCBpbnZvY2F0aW9ucywgdHlwZW9mKExpc3Q8SW52b2NhdGlvbj4pKTsNCg0KICAgICAgICAgICAgX3dyaXRlQ29uZGl0aW9ucyB8PSBDb25kaXRpb25zLkludm9jYXRpb25zV3JpdHRlbjsNCiAgICAgICAgfQ0KDQoNCiAgICAgICAgcHVibGljIHZvaWQgV3JpdGVSdWxlcyhJRGljdGlvbmFyeTxzdHJpbmcsIElSdWxlPiBydWxlcykNCiAgICAgICAgew0KICAgICAgICAgICAgaWYgKHJ1bGVzID09IG51bGwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgdGhyb3cgbmV3IEFyZ3VtZW50TnVsbEV4Y2VwdGlvbihuYW1lb2YocnVsZXMpKTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgRW5zdXJlSW5pdGlhbGl6ZWQoKTsNCiAgICAgICAgICAgIEVuc3VyZVJlc3VsdHNBcnJheUlzTm90T3BlbigpOw0KICAgICAgICAgICAgRW5zdXJlU3RhdGVOb3RBbHJlYWR5U2V0KENvbmRpdGlvbnMuRGlzcG9zZWQgfCBDb25kaXRpb25zLlJ1bGVzV3JpdHRlbik7DQoNCiAgICAgICAgICAgIF9qc29uV3JpdGVyLldyaXRlUHJvcGVydHlOYW1lKCJyZXNvdXJjZXMiKTsNCiAgICAgICAgICAgIF9qc29uV3JpdGVyLldyaXRlU3RhcnRPYmplY3QoKTsgLy8gQmVnaW46IHJlc291cmNlcw0KDQogICAgICAgICAgICBfanNvbldyaXRlci5Xcml0ZVByb3BlcnR5TmFtZSgicnVsZXMiKTsNCiAgICAgICAgICAgIF9zZXJpYWxpemVyLlNlcmlhbGl6ZShfanNvbldyaXRlciwgcnVsZXMsIHR5cGVvZihEaWN0aW9uYXJ5PHN0cmluZywgSVJ1bGU+KSk7DQoNCiAgICAgICAgICAgIF9qc29uV3JpdGVyLldyaXRlRW5kT2JqZWN0KCk7ICAvLyBFbmQ6IHJlc291cmNlcw0KDQogICAgICAgICAgICBfd3JpdGVDb25kaXRpb25zIHw9IENvbmRpdGlvbnMuUnVsZXNXcml0dGVuOw0KICAgICAgICB9DQoNCiAgICAgICAgcHVibGljIHZvaWQgT3BlblJlc3VsdHMoKQ0KICAgICAgICB7DQogICAgICAgICAgICBFbnN1cmVJbml0aWFsaXplZCgpOw0KICAgICAgICAgICAgRW5zdXJlUmVzdWx0c0FycmF5SXNOb3RPcGVuKCk7DQogICAgICAgICAgICBFbnN1cmVTdGF0ZU5vdEFscmVhZHlTZXQoQ29uZGl0aW9ucy5EaXNwb3NlZCB8IENvbmRpdGlvbnMuUmVzdWx0c0Nsb3NlZCk7DQoNCiAgICAgICAgICAgIF9qc29uV3JpdGVyLldyaXRlUHJvcGVydHlOYW1lKCJyZXN1bHRzIik7DQogICAgICAgICAgICBfanNvbldyaXRlci5Xcml0ZVN0YXJ0QXJyYXkoKTsgLy8gQmVnaW46IHJlc3VsdHMNCiAgICAgICAgICAgIF93cml0ZUNvbmRpdGlvbnMgPSBDb25kaXRpb25zLlJlc3VsdHNJbml0aWFsaXplZDsNCiAgICAgICAgfQ0KDQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gV3JpdGVzIGEgcmVzdWx0IHRvIHRoZSBsb2cuIA0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICAvLy8gPHJlbWFya3M+DQogICAgICAgIC8vLyBUaGlzIGZ1bmN0aW9uIG1ha2VzIGEgY29weSBvZiB0aGUgZGF0YSBzdG9yZWQgaW4gPHBhcmFtcmVmIG5hbWU9InJlc3VsdCIvPjsgaWYgYQ0KICAgICAgICAvLy8gY2xpZW50IHdpc2hlcyB0byByZXVzZSB0aGUgcmVzdWx0IGluc3RhbmNlIHRvIGF2b2lkIGFsbG9jYXRpb25zIHRoZXkgY2FuIGRvIHNvLiAoVGhpcyBmdW5jdGlvbg0KICAgICAgICAvLy8gbWF5IGludm9rZSBhbiBpbnRlcm5hbCBjb3B5IG9mIHRoZSByZXN1bHQgb3Igc2VyaWFsaXplIGl0IGluIHBsYWNlIHRvIGRpc2ssIGV0Yy4pDQogICAgICAgIC8vLyA8L3JlbWFya3M+DQogICAgICAgIC8vLyA8ZXhjZXB0aW9uIGNyZWY9IklPRXhjZXB0aW9uIj4NCiAgICAgICAgLy8vIEEgZmlsZSBJTyBlcnJvciBvY2N1cmVkLiBDbGllbnRzIGltcGxlbWVudGluZw0KICAgICAgICAvLy8gPHNlZSBjcmVmPSJUb29sRmlsZUNvbnZlcnRlckJhc2UiLz4gc2hvdWxkIGFsbG93IHRoZXNlIGV4Y2VwdGlvbnMgdG8gcHJvcGFnYXRlLg0KICAgICAgICAvLy8gPC9leGNlcHRpb24+DQogICAgICAgIC8vLyA8ZXhjZXB0aW9uIGNyZWY9IkludmFsaWRPcGVyYXRpb25FeGNlcHRpb24iPg0KICAgICAgICAvLy8gVGhyb3duIGlmIHRoZSB0b29sIGluZm8gaXMgbm90IHlldCB3cml0dGVuLg0KICAgICAgICAvLy8gPC9leGNlcHRpb24+DQogICAgICAgIC8vLyA8cGFyYW0gbmFtZT0icmVzdWx0Ij4NCiAgICAgICAgLy8vIFRoZSByZXN1bHQgdG8gd3JpdGUuDQogICAgICAgIC8vLyA8L3BhcmFtPg0KICAgICAgICAvLy8gPHNlZWFsc28gY3JlZj0iTTpNaWNyb3NvZnQuQ29kZUFuYWx5c2lzLlNhcmlmLklzYXJpZldyaXRlci5Xcml0ZVJlc3VsdChSZXN1bHQpIi8+DQogICAgICAgIHB1YmxpYyB2b2lkIFdyaXRlUmVzdWx0KFJlc3VsdCByZXN1bHQpDQogICAgICAgIHsNCiAgICAgICAgICAgIGlmIChyZXN1bHQgPT0gbnVsbCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgQXJndW1lbnROdWxsRXhjZXB0aW9uKG5hbWVvZihyZXN1bHQpKTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgRW5zdXJlU3RhdGVOb3RBbHJlYWR5U2V0KENvbmRpdGlvbnMuRGlzcG9zZWQgfCBDb25kaXRpb25zLlJlc3VsdHNDbG9zZWQpOw0KDQogICAgICAgICAgICBpZiAoKF93cml0ZUNvbmRpdGlvbnMgJiBDb25kaXRpb25zLlJlc3VsdHNJbml0aWFsaXplZCkgIT0gQ29uZGl0aW9ucy5SZXN1bHRzSW5pdGlhbGl6ZWQpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgT3BlblJlc3VsdHMoKTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgX3NlcmlhbGl6ZXIuU2VyaWFsaXplKF9qc29uV3JpdGVyLCByZXN1bHQsIHR5cGVvZihSZXN1bHQpKTsNCiAgICAgICAgfQ0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIFdyaXRlcyBhIHNldCBvZiByZXN1bHRzIHRvIHRoZSBsb2cuDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIC8vLyA8cmVtYXJrcz4NCiAgICAgICAgLy8vIFRoaXMgZnVuY3Rpb24gbWFrZXMgYSBjb3B5IG9mIHRoZSBkYXRhIHN0b3JlZCBpbiA8cGFyYW1yZWYgbmFtZT0icmVzdWx0cyIvPjsgaWYgYQ0KICAgICAgICAvLy8gY2xpZW50IHdpc2hlcyB0byByZXVzZSB0aGUgcmVzdWx0IGluc3RhbmNlIHRvIGF2b2lkIGFsbG9jYXRpb25zIHRoZXkgY2FuIGRvIHNvLiAoVGhpcyBmdW5jdGlvbg0KICAgICAgICAvLy8gbWF5IGludm9rZSBhbiBpbnRlcm5hbCBjb3B5IG9mIHRoZSByZXN1bHQgb3Igc2VyaWFsaXplIGl0IGluIHBsYWNlIHRvIGRpc2ssIGV0Yy4pDQogICAgICAgIC8vLyA8L3JlbWFya3M+DQogICAgICAgIC8vLyA8ZXhjZXB0aW9uIGNyZWY9IklPRXhjZXB0aW9uIj4NCiAgICAgICAgLy8vIEEgZmlsZSBJTyBlcnJvciBvY2N1cmVkLiBDbGllbnRzIGltcGxlbWVudGluZw0KICAgICAgICAvLy8gPHNlZSBjcmVmPSJUb29sRmlsZUNvbnZlcnRlckJhc2UiLz4gc2hvdWxkIGFsbG93IHRoZXNlIGV4Y2VwdGlvbnMgdG8gcHJvcGFnYXRlLg0KICAgICAgICAvLy8gPC9leGNlcHRpb24+DQogICAgICAgIC8vLyA8ZXhjZXB0aW9uIGNyZWY9IkludmFsaWRPcGVyYXRpb25FeGNlcHRpb24iPg0KICAgICAgICAvLy8gVGhyb3duIGlmIHRoZSB0b29sIGluZm8gaXMgbm90IHlldCB3cml0dGVuLg0KICAgICAgICAvLy8gPC9leGNlcHRpb24+DQogICAgICAgIC8vLyA8ZXhjZXB0aW9uIGNyZWY9IkFyZ3VtZW50TnVsbEV4Y2VwdGlvbiI+DQogICAgICAgIC8vLyBUaHJvd24gaWYgPHBhcmFtcmVmIG5hbWU9InJlc3VsdCIvPiBpcyBudWxsLg0KICAgICAgICAvLy8gPC9leGNlcHRpb24+DQogICAgICAgIC8vLyAgPHBhcmFtIG5hbWU9InJlc3VsdHMiPg0KICAgICAgICAvLy8gIFRoZSByZXN1bHRzIHRvIHdyaXRlLg0KICAgICAgICAvLy8gIDwvcGFyYW0+DQogICAgICAgIHB1YmxpYyB2b2lkIFdyaXRlUmVzdWx0cyhJRW51bWVyYWJsZTxSZXN1bHQ+IHJlc3VsdHMpDQogICAgICAgIHsNCiAgICAgICAgICAgIGlmIChyZXN1bHRzID09IG51bGwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgdGhyb3cgbmV3IEFyZ3VtZW50TnVsbEV4Y2VwdGlvbihuYW1lb2YocmVzdWx0cykpOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBmb3JlYWNoIChSZXN1bHQgcmVzdWx0IGluIHJlc3VsdHMpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgV3JpdGVSZXN1bHQocmVzdWx0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgIHB1YmxpYyB2b2lkIENsb3NlUmVzdWx0cygpDQogICAgICAgIHsNCiAgICAgICAgICAgIEVuc3VyZVN0YXRlTm90QWxyZWFkeVNldChDb25kaXRpb25zLkRpc3Bvc2VkKTsNCg0KICAgICAgICAgICAgLy8gV2UgYWxsb3cgc29tZSByZXNpbGllbmNlIGZvciB3cml0ZXJzIHRoYXQgc3RyZWFtIGluZGl2aWR1YWwgcmVzdWx0cyB0bw0KICAgICAgICAgICAgLy8gdGhlIGxvZyB3aXRob3V0IGV4cGxpY2l0IG9wZW5pbmcvY2xvc2luZyB0aGUgcmVzdWx0cyBvYmplY3QNCiAgICAgICAgICAgIGlmICgoX3dyaXRlQ29uZGl0aW9ucyAmIENvbmRpdGlvbnMuUmVzdWx0c0luaXRpYWxpemVkKSAhPSBDb25kaXRpb25zLlJlc3VsdHNJbml0aWFsaXplZCB8fA0KICAgICAgICAgICAgICAgIChfd3JpdGVDb25kaXRpb25zICYgQ29uZGl0aW9ucy5SZXN1bHRzQ2xvc2VkKSA9PSBDb25kaXRpb25zLlJlc3VsdHNDbG9zZWQpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgcmV0dXJuOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBfanNvbldyaXRlci5Xcml0ZUVuZEFycmF5KCk7DQogICAgICAgICAgICBfd3JpdGVDb25kaXRpb25zIHw9IENvbmRpdGlvbnMuUmVzdWx0c0Nsb3NlZDsNCiAgICAgICAgfQ0KDQogICAgICAgIHB1YmxpYyB2b2lkIFdyaXRlVG9vbE5vdGlmaWNhdGlvbnMoSUVudW1lcmFibGU8Tm90aWZpY2F0aW9uPiBub3RpZmljYXRpb25zKQ0KICAgICAgICB7DQogICAgICAgICAgICBpZiAobm90aWZpY2F0aW9ucyA9PSBudWxsKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHRocm93IG5ldyBBcmd1bWVudE51bGxFeGNlcHRpb24obmFtZW9mKG5vdGlmaWNhdGlvbnMpKTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgRW5zdXJlSW5pdGlhbGl6ZWQoKTsNCiAgICAgICAgICAgIEVuc3VyZVJlc3VsdHNBcnJheUlzTm90T3BlbigpOw0KICAgICAgICAgICAgRW5zdXJlU3RhdGVOb3RBbHJlYWR5U2V0KENvbmRpdGlvbnMuRGlzcG9zZWQgfCBDb25kaXRpb25zLlRvb2xOb3RpZmljYXRpb25zV3JpdHRlbik7DQoNCiAgICAgICAgICAgIF9qc29uV3JpdGVyLldyaXRlUHJvcGVydHlOYW1lKCJ0b29sTm90aWZpY2F0aW9ucyIpOw0KICAgICAgICAgICAgX3NlcmlhbGl6ZXIuU2VyaWFsaXplKF9qc29uV3JpdGVyLCBub3RpZmljYXRpb25zLCBub3RpZmljYXRpb25zLkdldFR5cGUoKSk7DQoNCiAgICAgICAgICAgIF93cml0ZUNvbmRpdGlvbnMgfD0gQ29uZGl0aW9ucy5Ub29sTm90aWZpY2F0aW9uc1dyaXR0ZW47DQogICAgICAgIH0NCg0KICAgICAgICBwdWJsaWMgdm9pZCBXcml0ZUNvbmZpZ3VyYXRpb25Ob3RpZmljYXRpb25zKElFbnVtZXJhYmxlPE5vdGlmaWNhdGlvbj4gbm90aWZpY2F0aW9ucykNCiAgICAgICAgew0KICAgICAgICAgICAgaWYgKG5vdGlmaWNhdGlvbnMgPT0gbnVsbCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgQXJndW1lbnROdWxsRXhjZXB0aW9uKG5hbWVvZihub3RpZmljYXRpb25zKSk7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIEVuc3VyZUluaXRpYWxpemVkKCk7DQogICAgICAgICAgICBFbnN1cmVSZXN1bHRzQXJyYXlJc05vdE9wZW4oKTsNCiAgICAgICAgICAgIEVuc3VyZVN0YXRlTm90QWxyZWFkeVNldChDb25kaXRpb25zLkRpc3Bvc2VkIHwgQ29uZGl0aW9ucy5Db25maWd1cmF0aW9uTm90aWZpY2F0aW9uc1dyaXR0ZW4pOw0KDQogICAgICAgICAgICBfanNvbldyaXRlci5Xcml0ZVByb3BlcnR5TmFtZSgiY29uZmlndXJhdGlvbk5vdGlmaWNhdGlvbnMiKTsNCiAgICAgICAgICAgIF9zZXJpYWxpemVyLlNlcmlhbGl6ZShfanNvbldyaXRlciwgbm90aWZpY2F0aW9ucywgbm90aWZpY2F0aW9ucy5HZXRUeXBlKCkpOw0KDQogICAgICAgICAgICBfd3JpdGVDb25kaXRpb25zIHw9IENvbmRpdGlvbnMuQ29uZmlndXJhdGlvbk5vdGlmaWNhdGlvbnNXcml0dGVuOw0KICAgICAgICB9DQoNCiAgICAgICAgaW50ZXJuYWwgdm9pZCBXcml0ZVJ1blByb3BlcnRpZXMoSURpY3Rpb25hcnk8c3RyaW5nLCBTZXJpYWxpemVkUHJvcGVydHlJbmZvPiBwcm9wZXJ0aWVzKQ0KICAgICAgICB7DQogICAgICAgICAgICBfanNvbldyaXRlci5Xcml0ZVByb3BlcnR5TmFtZSgicHJvcGVydGllcyIpOw0KICAgICAgICAgICAgX3NlcmlhbGl6ZXIuU2VyaWFsaXplKF9qc29uV3JpdGVyLCBwcm9wZXJ0aWVzKTsNCiAgICAgICAgfQ0KDQogICAgICAgIC8vLyA8c3VtbWFyeT5Xcml0ZXMgdGhlIGxvZyBmb290ZXIgYW5kIGNsb3NlcyB0aGUgdW5kZXJseWluZyA8c2VlIGNyZWY9Ikpzb25Xcml0ZXIiLz4uPC9zdW1tYXJ5Pg0KICAgICAgICAvLy8gPHNlZWFsc28gY3JlZj0iTTpTeXN0ZW0uSURpc3Bvc2FibGUuRGlzcG9zZSgpIi8+DQogICAgICAgIHB1YmxpYyB2b2lkIERpc3Bvc2UoKQ0KICAgICAgICB7DQogICAgICAgICAgICBFbnN1cmVJbml0aWFsaXplZCgpOw0KDQogICAgICAgICAgICBpZiAoKF93cml0ZUNvbmRpdGlvbnMgJiBDb25kaXRpb25zLkRpc3Bvc2VkKSA9PSBDb25kaXRpb25zLkRpc3Bvc2VkKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgaWYgKChfd3JpdGVDb25kaXRpb25zICYgQ29uZGl0aW9ucy5SZXN1bHRzSW5pdGlhbGl6ZWQpID09IENvbmRpdGlvbnMuUmVzdWx0c0luaXRpYWxpemVkICYmDQogICAgICAgICAgICAgICAgKF93cml0ZUNvbmRpdGlvbnMgJiBDb25kaXRpb25zLlJlc3VsdHNDbG9zZWQpICE9IENvbmRpdGlvbnMuUmVzdWx0c0Nsb3NlZCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBDbG9zZVJlc3VsdHMoKTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgLy8gTG9nIGNvbXBsZXRlLiBXcml0ZSB0aGUgZW5kIG9iamVjdC4NCg0KICAgICAgICAgICAgX2pzb25Xcml0ZXIuV3JpdGVFbmRPYmplY3QoKTsgLy8gRW5kOiBydW4NCiAgICAgICAgICAgIF9qc29uV3JpdGVyLldyaXRlRW5kQXJyYXkoKTsgIC8vIEVuZDogcnVucw0KICAgICAgICAgICAgX2pzb25Xcml0ZXIuV3JpdGVFbmRPYmplY3QoKTsgLy8gRW5kOiBzYXJpZkxvZw0KDQogICAgICAgICAgICBfd3JpdGVDb25kaXRpb25zIHw9IENvbmRpdGlvbnMuRGlzcG9zZWQ7DQogICAgICAgIH0NCg0KICAgICAgICBwcml2YXRlIHZvaWQgRW5zdXJlSW5pdGlhbGl6ZWQoKQ0KICAgICAgICB7DQogICAgICAgICAgICBpZiAoX3dyaXRlQ29uZGl0aW9ucyA9PSBDb25kaXRpb25zLk5vbmUpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgSW5pdGlhbGl6ZShuZXcgUnVuKCkgeyBUb29sID0gbmV3IFRvb2woKSB9KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgIHByaXZhdGUgdm9pZCBFbnN1cmVTdGF0ZU5vdEFscmVhZHlTZXQoQ29uZGl0aW9ucyBpbnZhbGlkQ29uZGl0aW9ucykNCiAgICAgICAgew0KICAgICAgICAgICAgQ29uZGl0aW9ucyBvYnNlcnZlZEludmFsaWRDb25kaXRpb25zID0gX3dyaXRlQ29uZGl0aW9ucyAmIGludmFsaWRDb25kaXRpb25zOw0KICAgICAgICAgICAgaWYgKG9ic2VydmVkSW52YWxpZENvbmRpdGlvbnMgIT0gQ29uZGl0aW9ucy5Ob25lKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIC8vIAlJbnZhbGlkU3RhdGUJT25lIG9yIG1vcmUgaW52YWxpZCBzdGF0ZXMgd2VyZSBkZXRlY3RlZCBkdXJpbmcgc2VyaWFsaXphdGlvbjogezB9CQ0KICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbnZhbGlkT3BlcmF0aW9uRXhjZXB0aW9uKHN0cmluZy5Gb3JtYXQoQ3VsdHVyZUluZm8uSW52YXJpYW50Q3VsdHVyZSwgU2RrUmVzb3VyY2VzLkludmFsaWRTdGF0ZSwgb2JzZXJ2ZWRJbnZhbGlkQ29uZGl0aW9ucykpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICAgICAgcHJpdmF0ZSB2b2lkIEVuc3VyZVJlc3VsdHNBcnJheUlzTm90T3BlbigpDQogICAgICAgIHsNCiAgICAgICAgICAgIC8vIFRoaXMgbWV0aG9kIGVuc3VyZXMgdGhhdCBubyBpbi1wcm9ncmVzcyBzZXJpYWxpemF0aW9uDQogICAgICAgICAgICAvLyB1bmRlcndheS4gQ3VycmVudGx5LCBvbmx5IHRoZSByZXN1bHRzIHNlcmlhbGl6YXRpb24NCiAgICAgICAgICAgIC8vIGlzIGEgbXVsdGktc3RlcCBwcm9jZXNzDQogICAgICAgICAgICBpZiAoKF93cml0ZUNvbmRpdGlvbnMgJiBDb25kaXRpb25zLlJlc3VsdHNJbml0aWFsaXplZCkgPT0gQ29uZGl0aW9ucy5SZXN1bHRzSW5pdGlhbGl6ZWQgJiYNCiAgICAgICAgICAgICAgICAoX3dyaXRlQ29uZGl0aW9ucyAmIENvbmRpdGlvbnMuUmVzdWx0c0Nsb3NlZCkgIT0gQ29uZGl0aW9ucy5SZXN1bHRzQ2xvc2VkKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbnZhbGlkT3BlcmF0aW9uRXhjZXB0aW9uKFNka1Jlc291cmNlcy5SZXN1bHRzU2VyaWFsaXphdGlvbk5vdENvbXBsZXRlKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgIH0NCn0NCg==" + { + "ruleId": "CA2243", + "message": { + "text": "In the constructor of 'AssemblyInformationalVersionAttribute', change the value of argument 'informationalVersion', which is currently \"2.0.0-csd.1.0.1\", to something that can be correctly parsed as 'Version'." }, - "hashes": [ - { - "value": "FEC612921342BB5D0EB68744225DD48D", - "algorithm": "md5" - }, - { - "value": "38377AF2BB80558EE13DA57F77CCDE17E43CCC2B", - "algorithm": "sha-1" - }, + "locations": [ { - "value": "10F52AAF3272855AA08CF019EA1B33386E9820CF6A10F8AC83127B297D79031C", - "algorithm": "sha-256" + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", + "uriBaseId": "$(ProjectDir)", + "index": 3 + } + }, + "logicalLocations": [ + { + "index": 128, + "fullyQualifiedName": "sarif.converters.dll" + } + ] } - ] + ], + "properties": { + "Category": "Microsoft.Usage", + "FixCategory": "NonBreaking" + } }, - "file:///E:/src/sarif-sdk-test/src/Sarif/Writers/SarifLogger.cs": { - "mimeType": "text/x-csharp", - "contents": { - "binary": "77u/Ly8gQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuDQovLyBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UuIFNlZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHByb2plY3Qgcm9vdCBmb3IgZnVsbCBsaWNlbnNlIGluZm9ybWF0aW9uLg0KDQp1c2luZyBTeXN0ZW07DQp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsNCnVzaW5nIFN5c3RlbS5EaWFnbm9zdGljczsNCnVzaW5nIFN5c3RlbS5HbG9iYWxpemF0aW9uOw0KdXNpbmcgU3lzdGVtLklPOw0KdXNpbmcgU3lzdGVtLkxpbnE7DQp1c2luZyBTeXN0ZW0uVGV4dDsNCnVzaW5nIE1pY3Jvc29mdC5Db2RlQW5hbHlzaXMuU2FyaWYuUmVhZGVyczsNCnVzaW5nIE5ld3RvbnNvZnQuSnNvbjsNCg0KbmFtZXNwYWNlIE1pY3Jvc29mdC5Db2RlQW5hbHlzaXMuU2FyaWYuV3JpdGVycw0Kew0KICAgIHNlYWxlZCBwdWJsaWMgY2xhc3MgU2FyaWZMb2dnZXIgOiBJRGlzcG9zYWJsZSwgSUFuYWx5c2lzTG9nZ2VyDQogICAgew0KICAgICAgICBwcml2YXRlIFJ1biBfcnVuOw0KICAgICAgICBwcml2YXRlIFRleHRXcml0ZXIgX3RleHRXcml0ZXI7DQogICAgICAgIHByaXZhdGUgTG9nZ2luZ09wdGlvbnMgX2xvZ2dpbmdPcHRpb25zOw0KICAgICAgICBwcml2YXRlIEpzb25UZXh0V3JpdGVyIF9qc29uVGV4dFdyaXRlcjsNCiAgICAgICAgcHJpdmF0ZSBPcHRpb25hbGx5RW1pdHRlZERhdGEgX2RhdGFUb0luc2VydDsNCiAgICAgICAgcHJpdmF0ZSBSZXN1bHRMb2dKc29uV3JpdGVyIF9pc3N1ZUxvZ0pzb25Xcml0ZXI7DQogICAgICAgIHByaXZhdGUgRGljdGlvbmFyeTxzdHJpbmcsIElSdWxlPiBfcnVsZXM7DQoNCiAgICAgICAgcHJpdmF0ZSBjb25zdCBMb2dnaW5nT3B0aW9ucyBEZWZhdWx0TG9nZ2luZ09wdGlvbnMgPSBMb2dnaW5nT3B0aW9ucy5QcmV0dHlQcmludDsNCg0KICAgICAgICBwcml2YXRlIHN0YXRpYyBSdW4gQ3JlYXRlUnVuKA0KICAgICAgICAgICAgSUVudW1lcmFibGU8c3RyaW5nPiBhbmFseXNpc1RhcmdldHMsDQogICAgICAgICAgICBPcHRpb25hbGx5RW1pdHRlZERhdGEgZGF0YVRvSW5zZXJ0LA0KICAgICAgICAgICAgSUVudW1lcmFibGU8c3RyaW5nPiBpbnZvY2F0aW9uVG9rZW5zVG9SZWRhY3QsDQogICAgICAgICAgICBJRW51bWVyYWJsZTxzdHJpbmc+IGludm9jYXRpb25Qcm9wZXJ0aWVzVG9Mb2csDQogICAgICAgICAgICBzdHJpbmcgZGVmYXVsdEZpbGVFbmNvZGluZyA9IG51bGwpDQogICAgICAgIHsNCiAgICAgICAgICAgIHZhciBydW4gPSBuZXcgUnVuDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgSW52b2NhdGlvbnMgPSBuZXcgTGlzdDxJbnZvY2F0aW9uPigpLA0KICAgICAgICAgICAgICAgIERlZmF1bHRGaWxlRW5jb2RpbmcgPSBkZWZhdWx0RmlsZUVuY29kaW5nDQogICAgICAgICAgICB9Ow0KDQogICAgICAgICAgICBpZiAoYW5hbHlzaXNUYXJnZXRzICE9IG51bGwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgcnVuLkZpbGVzID0gbmV3IERpY3Rpb25hcnk8c3RyaW5nLCBGaWxlRGF0YT4oKTsNCg0KICAgICAgICAgICAgICAgIGZvcmVhY2ggKHN0cmluZyB0YXJnZXQgaW4gYW5hbHlzaXNUYXJnZXRzKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgc3RyaW5nIGZpbGVEYXRhS2V5ID0gVXJpSGVscGVyLk1ha2VWYWxpZFVyaSh0YXJnZXQpOw0KDQogICAgICAgICAgICAgICAgICAgIHZhciBmaWxlRGF0YSA9IEZpbGVEYXRhLkNyZWF0ZSgNCiAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBVcmkodGFyZ2V0LCBVcmlLaW5kLlJlbGF0aXZlT3JBYnNvbHV0ZSksDQogICAgICAgICAgICAgICAgICAgICAgICBkYXRhVG9JbnNlcnQpOw0KDQogICAgICAgICAgICAgICAgICAgIHJ1bi5GaWxlcy5BZGQoZmlsZURhdGFLZXksIGZpbGVEYXRhKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIHZhciBpbnZvY2F0aW9uID0gSW52b2NhdGlvbi5DcmVhdGUoZGF0YVRvSW5zZXJ0LkluY2x1ZGVzKE9wdGlvbmFsbHlFbWl0dGVkRGF0YS5FbnZpcm9ubWVudFZhcmlhYmxlcyksIGludm9jYXRpb25Qcm9wZXJ0aWVzVG9Mb2cpOw0KDQogICAgICAgICAgICAvLyBUT0RPIHdlIHNob3VsZCBhY3R1YWxseSByZWRhY3QgYWNyb3NzIHRoZSBjb21wbGV0ZSBsb2cgZmlsZSBjb250ZXh0DQogICAgICAgICAgICAvLyBieSBhIGRlZGljYXRlZCByZXdyaXRpbmcgdmlzaXRvciBvciBzb21lIG90aGVyIGFwcHJvYWNoLg0KICAgICAgICAgICAgaWYgKGludm9jYXRpb25Ub2tlbnNUb1JlZGFjdCAhPSBudWxsKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIGludm9jYXRpb24uQ29tbWFuZExpbmUgPSBSZWRhY3QoaW52b2NhdGlvbi5Db21tYW5kTGluZSwgaW52b2NhdGlvblRva2Vuc1RvUmVkYWN0KTsNCiAgICAgICAgICAgICAgICBpbnZvY2F0aW9uLk1hY2hpbmUgPSBSZWRhY3QoaW52b2NhdGlvbi5NYWNoaW5lLCBpbnZvY2F0aW9uVG9rZW5zVG9SZWRhY3QpOw0KICAgICAgICAgICAgICAgIGludm9jYXRpb24uQWNjb3VudCA9IFJlZGFjdChpbnZvY2F0aW9uLkFjY291bnQsIGludm9jYXRpb25Ub2tlbnNUb1JlZGFjdCk7DQogICAgICAgICAgICAgICAgaW52b2NhdGlvbi5Xb3JraW5nRGlyZWN0b3J5ID0gUmVkYWN0KGludm9jYXRpb24uV29ya2luZ0RpcmVjdG9yeSwgaW52b2NhdGlvblRva2Vuc1RvUmVkYWN0KTsNCg0KICAgICAgICAgICAgICAgIGlmIChpbnZvY2F0aW9uLkVudmlyb25tZW50VmFyaWFibGVzICE9IG51bGwpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBzdHJpbmdbXSBrZXlzID0gaW52b2NhdGlvbi5FbnZpcm9ubWVudFZhcmlhYmxlcy5LZXlzLlRvQXJyYXkoKTsNCg0KICAgICAgICAgICAgICAgICAgICBmb3JlYWNoIChzdHJpbmcga2V5IGluIGtleXMpDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHN0cmluZyB2YWx1ZSA9IGludm9jYXRpb24uRW52aXJvbm1lbnRWYXJpYWJsZXNba2V5XTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGludm9jYXRpb24uRW52aXJvbm1lbnRWYXJpYWJsZXNba2V5XSA9IFJlZGFjdCh2YWx1ZSwgaW52b2NhdGlvblRva2Vuc1RvUmVkYWN0KTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgcnVuLkludm9jYXRpb25zLkFkZChpbnZvY2F0aW9uKTsNCiAgICAgICAgICAgIHJldHVybiBydW47DQogICAgICAgIH0NCg0KICAgICAgICBwcml2YXRlIHN0YXRpYyBzdHJpbmcgUmVkYWN0KHN0cmluZyB0ZXh0LCBJRW51bWVyYWJsZTxzdHJpbmc+IHRva2Vuc1RvUmVkYWN0KQ0KICAgICAgICB7DQogICAgICAgICAgICBpZiAodGV4dCA9PSBudWxsICkgeyByZXR1cm4gdGV4dDsgfQ0KDQogICAgICAgICAgICBmb3JlYWNoIChzdHJpbmcgdG9rZW5Ub1JlZGFjdCBpbiB0b2tlbnNUb1JlZGFjdCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICB0ZXh0ID0gdGV4dC5SZXBsYWNlKHRva2VuVG9SZWRhY3QsIFNhcmlmQ29uc3RhbnRzLlJlbW92ZWRNYXJrZXIpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgcmV0dXJuIHRleHQ7DQogICAgICAgIH0NCg0KICAgICAgICBwdWJsaWMgU2FyaWZMb2dnZXIoDQogICAgICAgICAgICBzdHJpbmcgb3V0cHV0RmlsZVBhdGgsDQogICAgICAgICAgICBMb2dnaW5nT3B0aW9ucyBsb2dnaW5nT3B0aW9ucyA9IERlZmF1bHRMb2dnaW5nT3B0aW9ucywNCiAgICAgICAgICAgIE9wdGlvbmFsbHlFbWl0dGVkRGF0YSBkYXRhVG9JbnNlcnQgPSBPcHRpb25hbGx5RW1pdHRlZERhdGEuTm9uZSwNCiAgICAgICAgICAgIFRvb2wgdG9vbCA9IG51bGwsDQogICAgICAgICAgICBSdW4gcnVuID0gbnVsbCwNCiAgICAgICAgICAgIElFbnVtZXJhYmxlPHN0cmluZz4gYW5hbHlzaXNUYXJnZXRzID0gbnVsbCwNCiAgICAgICAgICAgIElFbnVtZXJhYmxlPHN0cmluZz4gaW52b2NhdGlvblRva2Vuc1RvUmVkYWN0ID0gbnVsbCwNCiAgICAgICAgICAgIElFbnVtZXJhYmxlPHN0cmluZz4gaW52b2NhdGlvblByb3BlcnRpZXNUb0xvZyA9IG51bGwsDQogICAgICAgICAgICBzdHJpbmcgZGVmYXVsdEZpbGVFbmNvZGluZyA9IG51bGwpDQogICAgICAgICAgICA6IHRoaXMobmV3IFN0cmVhbVdyaXRlcihuZXcgRmlsZVN0cmVhbShvdXRwdXRGaWxlUGF0aCwgRmlsZU1vZGUuQ3JlYXRlLCBGaWxlQWNjZXNzLldyaXRlLCBGaWxlU2hhcmUuTm9uZSkpLA0KICAgICAgICAgICAgICAgICAgbG9nZ2luZ09wdGlvbnMsDQogICAgICAgICAgICAgICAgICBkYXRhVG9JbnNlcnQsDQogICAgICAgICAgICAgICAgICB0b29sLA0KICAgICAgICAgICAgICAgICAgcnVuLA0KICAgICAgICAgICAgICAgICAgaW52b2NhdGlvblRva2Vuc1RvUmVkYWN0LA0KICAgICAgICAgICAgICAgICAgaW52b2NhdGlvblByb3BlcnRpZXNUb0xvZykNCiAgICAgICAgew0KICAgICAgICB9DQoNCiAgICAgICAgcHVibGljIFNhcmlmTG9nZ2VyKA0KICAgICAgICAgICAgVGV4dFdyaXRlciB0ZXh0V3JpdGVyLA0KICAgICAgICAgICAgTG9nZ2luZ09wdGlvbnMgbG9nZ2luZ09wdGlvbnMgPSBMb2dnaW5nT3B0aW9ucy5QcmV0dHlQcmludCwNCiAgICAgICAgICAgIE9wdGlvbmFsbHlFbWl0dGVkRGF0YSBkYXRhVG9JbnNlcnQgPSBPcHRpb25hbGx5RW1pdHRlZERhdGEuTm9uZSwNCiAgICAgICAgICAgIFRvb2wgdG9vbCA9IG51bGwsDQogICAgICAgICAgICBSdW4gcnVuID0gbnVsbCwNCiAgICAgICAgICAgIElFbnVtZXJhYmxlPHN0cmluZz4gYW5hbHlzaXNUYXJnZXRzID0gbnVsbCwNCiAgICAgICAgICAgIElFbnVtZXJhYmxlPHN0cmluZz4gaW52b2NhdGlvblRva2Vuc1RvUmVkYWN0ID0gbnVsbCwNCiAgICAgICAgICAgIElFbnVtZXJhYmxlPHN0cmluZz4gaW52b2NhdGlvblByb3BlcnRpZXNUb0xvZyA9IG51bGwsDQogICAgICAgICAgICBzdHJpbmcgZGVmYXVsdEZpbGVFbmNvZGluZyA9IG51bGwpIDogdGhpcyh0ZXh0V3JpdGVyLCBsb2dnaW5nT3B0aW9ucykNCiAgICAgICAgew0KICAgICAgICAgICAgX3J1biA9IHJ1biA/PyBDcmVhdGVSdW4oDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5hbHlzaXNUYXJnZXRzLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFUb0luc2VydCwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnZvY2F0aW9uVG9rZW5zVG9SZWRhY3QsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgaW52b2NhdGlvblByb3BlcnRpZXNUb0xvZywNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0RmlsZUVuY29kaW5nKTsNCg0KDQoNCiAgICAgICAgICAgIHRvb2wgPSB0b29sID8/IFRvb2wuQ3JlYXRlRnJvbUFzc2VtYmx5RGF0YSgpOw0KICAgICAgICAgICAgU2V0U2FyaWZMb2dnZXJWZXJzaW9uKHRvb2wpOw0KDQogICAgICAgICAgICBfcnVuLlRvb2wgPSB0b29sOw0KICAgICAgICAgICAgX2RhdGFUb0luc2VydCA9IGRhdGFUb0luc2VydDsNCiAgICAgICAgICAgIF9pc3N1ZUxvZ0pzb25Xcml0ZXIuSW5pdGlhbGl6ZShfcnVuKTsNCg0KICAgICAgICB9DQoNCiAgICAgICAgcHJpdmF0ZSBzdGF0aWMgdm9pZCBTZXRTYXJpZkxvZ2dlclZlcnNpb24oVG9vbCB0b29sKQ0KICAgICAgICB7DQogICAgICAgICAgICBzdHJpbmcgc2FyaWZMb2dnZXJMb2NhdGlvbiA9IHR5cGVvZihTYXJpZkxvZ2dlcikuQXNzZW1ibHkuTG9jYXRpb247DQogICAgICAgICAgICB0b29sLlNhcmlmTG9nZ2VyVmVyc2lvbiA9IEZpbGVWZXJzaW9uSW5mby5HZXRWZXJzaW9uSW5mbyhzYXJpZkxvZ2dlckxvY2F0aW9uKS5GaWxlVmVyc2lvbjsNCiAgICAgICAgfQ0KDQogICAgICAgIHByaXZhdGUgU2FyaWZMb2dnZXIoVGV4dFdyaXRlciB0ZXh0V3JpdGVyLCBMb2dnaW5nT3B0aW9ucyBsb2dnaW5nT3B0aW9ucykNCiAgICAgICAgew0KICAgICAgICAgICAgX3RleHRXcml0ZXIgPSB0ZXh0V3JpdGVyOw0KICAgICAgICAgICAgX2pzb25UZXh0V3JpdGVyID0gbmV3IEpzb25UZXh0V3JpdGVyKF90ZXh0V3JpdGVyKTsNCg0KICAgICAgICAgICAgX2xvZ2dpbmdPcHRpb25zID0gbG9nZ2luZ09wdGlvbnM7DQoNCiAgICAgICAgICAgIGlmIChQcmV0dHlQcmludCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAvLyBJbmRlbnRlZCBvdXRwdXQgaXMgcHJlZmVyYWJsZSBmb3IgZGVidWdnaW5nDQogICAgICAgICAgICAgICAgX2pzb25UZXh0V3JpdGVyLkZvcm1hdHRpbmcgPSBOZXd0b25zb2Z0Lkpzb24uRm9ybWF0dGluZy5JbmRlbnRlZDsNCiAgICAgICAgICAgIH0gICAgICAgIA0KDQogICAgICAgICAgICBfanNvblRleHRXcml0ZXIuRGF0ZUZvcm1hdFN0cmluZyA9IERhdGVUaW1lQ29udmVydGVyLkRhdGVUaW1lRm9ybWF0Ow0KDQogICAgICAgICAgICBfaXNzdWVMb2dKc29uV3JpdGVyID0gbmV3IFJlc3VsdExvZ0pzb25Xcml0ZXIoX2pzb25UZXh0V3JpdGVyKTsNCiAgICAgICAgfQ0KDQogICAgICAgIHB1YmxpYyBEaWN0aW9uYXJ5PHN0cmluZywgSVJ1bGU+IFJ1bGVzDQogICAgICAgIHsNCiAgICAgICAgICAgIGdldA0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIF9ydWxlcyA9IF9ydWxlcyA/PyBuZXcgRGljdGlvbmFyeTxzdHJpbmcsIElSdWxlPigpOw0KICAgICAgICAgICAgICAgIHJldHVybiBfcnVsZXM7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICBwdWJsaWMgYm9vbCBDb21wdXRlRmlsZUhhc2hlcyB7IGdldCB7IHJldHVybiBfZGF0YVRvSW5zZXJ0LkluY2x1ZGVzKE9wdGlvbmFsbHlFbWl0dGVkRGF0YS5IYXNoZXMpOyB9IH0NCg0KICAgICAgICBwdWJsaWMgYm9vbCBQZXJzaXN0QmluYXJ5Q29udGVudHMgeyBnZXQgeyByZXR1cm4gX2RhdGFUb0luc2VydC5JbmNsdWRlcyhPcHRpb25hbGx5RW1pdHRlZERhdGEuQmluYXJ5RmlsZXMpOyB9IH0NCg0KICAgICAgICBwdWJsaWMgYm9vbCBQZXJzaXN0VGV4dEZpbGVDb250ZW50cyB7IGdldCB7IHJldHVybiBfZGF0YVRvSW5zZXJ0LkluY2x1ZGVzKE9wdGlvbmFsbHlFbWl0dGVkRGF0YS5UZXh0RmlsZXMpOyB9IH0NCg0KICAgICAgICBwdWJsaWMgYm9vbCBQZXJzaXN0RW52aXJvbm1lbnQgeyBnZXQgeyByZXR1cm4gX2RhdGFUb0luc2VydC5JbmNsdWRlcyhPcHRpb25hbGx5RW1pdHRlZERhdGEuRW52aXJvbm1lbnRWYXJpYWJsZXMpOyB9IH0NCg0KICAgICAgICBwdWJsaWMgYm9vbCBPdmVyd3JpdGVFeGlzdGluZ091dHB1dEZpbGUgeyBnZXQgeyByZXR1cm4gX2xvZ2dpbmdPcHRpb25zLkluY2x1ZGVzKExvZ2dpbmdPcHRpb25zLk92ZXJ3cml0ZUV4aXN0aW5nT3V0cHV0RmlsZSk7IH0gfQ0KDQogICAgICAgIHB1YmxpYyBib29sIFByZXR0eVByaW50IHsgZ2V0IHsgcmV0dXJuIF9sb2dnaW5nT3B0aW9ucy5JbmNsdWRlcyhMb2dnaW5nT3B0aW9ucy5QcmV0dHlQcmludCk7IH0gfQ0KDQogICAgICAgIHB1YmxpYyBib29sIFZlcmJvc2UgeyBnZXQgeyByZXR1cm4gX2xvZ2dpbmdPcHRpb25zLkluY2x1ZGVzKExvZ2dpbmdPcHRpb25zLlZlcmJvc2UpOyB9IH0NCg0KICAgICAgICBwdWJsaWMgdm9pZCBEaXNwb3NlKCkNCiAgICAgICAgew0KICAgICAgICAgICAgLy8gRGlzcG9zaW5nIHRoZSBqc29uIHdyaXRlciBjbG9zZXMgdGhlIHN0cmVhbSBidXQgdGhlIHRleHR3cml0ZXIgDQogICAgICAgICAgICAvLyBzdGlsbCBuZWVkcyB0byBiZSBkaXNwb3NlZCBvciBjbG9zZWQgdG8gd3JpdGUgdGhlIHJlc3VsdHMNCiAgICAgICAgICAgIGlmIChfaXNzdWVMb2dKc29uV3JpdGVyICE9IG51bGwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgX2lzc3VlTG9nSnNvbldyaXRlci5DbG9zZVJlc3VsdHMoKTsNCg0KICAgICAgICAgICAgICAgIGlmIChfcnVuPy5JbnZvY2F0aW9ucz8uQ291bnQgPiAwICYmIF9ydW4uSW52b2NhdGlvbnNbMF0uU3RhcnRUaW1lICE9IG5ldyBEYXRlVGltZSgpKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgX3J1bi5JbnZvY2F0aW9uc1swXS5FbmRUaW1lID0gRGF0ZVRpbWUuVXRjTm93Ow0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgIC8vIE5vdGU6IHdlIHdyaXRlIG91dCB0aGUgYmFja2luZyBydWxlcw0KICAgICAgICAgICAgICAgIC8vIHRvIHByZXZlbnQgdGhlIHByb3BlcnR5IGFjY2Vzc29yIGZyb20gcG9wdWxhdGluZw0KICAgICAgICAgICAgICAgIC8vIHRoaXMgZGF0YSB3aXRoIGFuIGVtcHR5IGNvbGxlY3Rpb24uDQogICAgICAgICAgICAgICAgaWYgKF9ydWxlcyAhPSBudWxsKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgX2lzc3VlTG9nSnNvbldyaXRlci5Xcml0ZVJ1bGVzKF9ydWxlcyk7DQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgaWYgKF9ydW4/LkZpbGVzICE9IG51bGwpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBfaXNzdWVMb2dKc29uV3JpdGVyLldyaXRlRmlsZXMoX3J1bi5GaWxlcyk7DQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgaWYgKF9ydW4/Lkludm9jYXRpb25zICE9IG51bGwpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBfaXNzdWVMb2dKc29uV3JpdGVyLldyaXRlSW52b2NhdGlvbnMoaW52b2NhdGlvbnM6IF9ydW4uSW52b2NhdGlvbnMpOw0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgIGlmIChfcnVuPy5Qcm9wZXJ0aWVzICE9IG51bGwpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBfaXNzdWVMb2dKc29uV3JpdGVyLldyaXRlUnVuUHJvcGVydGllcyhfcnVuLlByb3BlcnRpZXMpOw0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgIF9pc3N1ZUxvZ0pzb25Xcml0ZXIuRGlzcG9zZSgpOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBpZiAoX3RleHRXcml0ZXIgIT0gbnVsbCkgeyBfdGV4dFdyaXRlci5EaXNwb3NlKCk7IH0NCg0KICAgICAgICAgICAgaWYgKF9qc29uVGV4dFdyaXRlciA9PSBudWxsKSB7IF9qc29uVGV4dFdyaXRlci5DbG9zZSgpOyB9DQoNCiAgICAgICAgICAgIEdDLlN1cHByZXNzRmluYWxpemUodGhpcyk7DQogICAgICAgIH0NCg0KICAgICAgICBwdWJsaWMgdm9pZCBMb2dNZXNzYWdlKGJvb2wgdmVyYm9zZSwgc3RyaW5nIG1lc3NhZ2UpDQogICAgICAgIHsNCiAgICAgICAgICAgIC8vIFdlIGRvIG5vdCBwZXJzaXN0IHRoZXNlIHRvIGxvZyBmaWxlDQogICAgICAgIH0NCg0KICAgICAgICBwdWJsaWMgdm9pZCBBbmFseXNpc1N0YXJ0ZWQoKQ0KICAgICAgICB7DQogICAgICAgICAgICBfaXNzdWVMb2dKc29uV3JpdGVyLk9wZW5SZXN1bHRzKCk7DQogICAgICAgIH0NCg0KICAgICAgICBwdWJsaWMgdm9pZCBBbmFseXNpc1N0b3BwZWQoUnVudGltZUNvbmRpdGlvbnMgcnVudGltZUNvbmRpdGlvbnMpDQogICAgICAgIHsNCiAgICAgICAgICAgIGlmIChfcnVuLkludm9jYXRpb25zICE9IG51bGwgJiYgX3J1bi5JbnZvY2F0aW9ucy5Db3VudCA+IDApDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgX3J1bi5JbnZvY2F0aW9uc1swXS5FbmRUaW1lID0gRGF0ZVRpbWUuVXRjTm93Ow0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICAgICAgcHVibGljIHZvaWQgTG9nKElSdWxlIHJ1bGUsIFJlc3VsdCByZXN1bHQpDQogICAgICAgIHsNCiAgICAgICAgICAgIGlmIChydWxlID09IG51bGwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgdGhyb3cgbmV3IEFyZ3VtZW50TnVsbEV4Y2VwdGlvbihuYW1lb2YocnVsZSkpOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBpZiAocmVzdWx0ID09IG51bGwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgdGhyb3cgbmV3IEFyZ3VtZW50TnVsbEV4Y2VwdGlvbihuYW1lb2YocmVzdWx0KSk7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIGlmIChydWxlLklkICE9IHJlc3VsdC5SdWxlSWQpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgLy9UaGUgcnVsZSBpZCAnezB9JyBzcGVjaWZpZWQgYnkgdGhlIHJlc3VsdCBkb2VzIG5vdCBtYXRjaCB0aGUgYWN0dWFsIGlkIG9mIHRoZSBydWxlICd7MX0nDQogICAgICAgICAgICAgICAgc3RyaW5nIG1lc3NhZ2UgPSBzdHJpbmcuRm9ybWF0KEN1bHR1cmVJbmZvLkludmFyaWFudEN1bHR1cmUsIFNka1Jlc291cmNlcy5SZXN1bHRSdWxlSWREb2VzTm90TWF0Y2hSdWxlLA0KICAgICAgICAgICAgICAgICAgICByZXN1bHQuUnVsZUlkLlRvU3RyaW5nKCksDQogICAgICAgICAgICAgICAgICAgIHJ1bGUuSWQuVG9TdHJpbmcoKSk7DQoNCiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgQXJndW1lbnRFeGNlcHRpb24obWVzc2FnZSk7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIGlmICghU2hvdWxkTG9nKHJlc3VsdC5MZXZlbCkpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgcmV0dXJuOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBSdWxlc1tyZXN1bHQuUnVsZUlkXSA9IHJ1bGU7DQoNCiAgICAgICAgICAgIENhcHR1cmVGaWxlc0luUmVzdWx0KHJlc3VsdCk7DQogICAgICAgICAgICBfaXNzdWVMb2dKc29uV3JpdGVyLldyaXRlUmVzdWx0KHJlc3VsdCk7DQogICAgICAgIH0NCg0KICAgICAgICBwcml2YXRlIHZvaWQgQ2FwdHVyZUZpbGVzSW5SZXN1bHQoUmVzdWx0IHJlc3VsdCkNCiAgICAgICAgew0KICAgICAgICAgICAgaWYgKHJlc3VsdC5BbmFseXNpc1RhcmdldCAhPSBudWxsKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIENhcHR1cmVGaWxlKHJlc3VsdC5BbmFseXNpc1RhcmdldC5VcmkpOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBpZiAocmVzdWx0LkxvY2F0aW9ucyAhPSBudWxsKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIGZvcmVhY2ggKExvY2F0aW9uIGxvY2F0aW9uIGluIHJlc3VsdC5Mb2NhdGlvbnMpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBpZiAobG9jYXRpb24uUGh5c2ljYWxMb2NhdGlvbiAhPSBudWxsKQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICBDYXB0dXJlRmlsZShsb2NhdGlvbi5QaHlzaWNhbExvY2F0aW9uLkZpbGVMb2NhdGlvbj8uVXJpKTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgaWYgKHJlc3VsdC5SZWxhdGVkTG9jYXRpb25zICE9IG51bGwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgZm9yZWFjaCAoTG9jYXRpb24gcmVsYXRlZExvY2F0aW9uIGluIHJlc3VsdC5SZWxhdGVkTG9jYXRpb25zKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgaWYgKHJlbGF0ZWRMb2NhdGlvbi5QaHlzaWNhbExvY2F0aW9uICE9IG51bGwpDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIENhcHR1cmVGaWxlKHJlbGF0ZWRMb2NhdGlvbi5QaHlzaWNhbExvY2F0aW9uLkZpbGVMb2NhdGlvbj8uVXJpKTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgaWYgKHJlc3VsdC5TdGFja3MgIT0gbnVsbCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBmb3JlYWNoIChTdGFjayBzdGFjayBpbiByZXN1bHQuU3RhY2tzKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgZm9yZWFjaCAoU3RhY2tGcmFtZSBmcmFtZSBpbiBzdGFjay5GcmFtZXMpDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIENhcHR1cmVGaWxlKGZyYW1lLkxvY2F0aW9uPy5QaHlzaWNhbExvY2F0aW9uPy5GaWxlTG9jYXRpb24/LlVyaSk7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIGlmIChyZXN1bHQuQ29kZUZsb3dzICE9IG51bGwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgZm9yZWFjaCAoQ29kZUZsb3cgY29kZUZsb3cgaW4gcmVzdWx0LkNvZGVGbG93cykNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIGZvcmVhY2ggKFRocmVhZEZsb3cgdGhyZWFkRmxvdyBpbiBjb2RlRmxvdy5UaHJlYWRGbG93cykNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgQ2FwdHVyZVRocmVhZEZsb3dMb2NhdGlvbnModGhyZWFkRmxvdy5Mb2NhdGlvbnMpOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBpZiAocmVzdWx0LkZpeGVzICE9IG51bGwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgZm9yZWFjaCAoRml4IGZpeCBpbiByZXN1bHQuRml4ZXMpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBpZiAoZml4LkZpbGVDaGFuZ2VzICE9IG51bGwpDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGZvcmVhY2ggKEZpbGVDaGFuZ2UgZmlsZUNoYW5nZSBpbiBmaXguRmlsZUNoYW5nZXMpDQogICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FwdHVyZUZpbGUoZmlsZUNoYW5nZS5GaWxlTG9jYXRpb24uVXJpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgIHByaXZhdGUgdm9pZCBDYXB0dXJlVGhyZWFkRmxvd0xvY2F0aW9ucyhJTGlzdDxUaHJlYWRGbG93TG9jYXRpb24+IGxvY2F0aW9ucykNCiAgICAgICAgew0KICAgICAgICAgICAgaWYgKGxvY2F0aW9ucyA9PSBudWxsKSB7IHJldHVybjsgfQ0KDQogICAgICAgICAgICBmb3JlYWNoIChUaHJlYWRGbG93TG9jYXRpb24gdGZsIGluIGxvY2F0aW9ucykNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBpZiAodGZsLkxvY2F0aW9uPy5QaHlzaWNhbExvY2F0aW9uICE9IG51bGwpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBDYXB0dXJlRmlsZSh0ZmwuTG9jYXRpb24uUGh5c2ljYWxMb2NhdGlvbi5GaWxlTG9jYXRpb24/LlVyaSk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICAgICAgcHJpdmF0ZSB2b2lkIENhcHR1cmVGaWxlKFVyaSB1cmkpDQogICAgICAgIHsgDQogICAgICAgICAgICBpZiAodXJpID09IG51bGwpIHsgcmV0dXJuOyB9DQoNCiAgICAgICAgICAgIF9ydW4uRmlsZXMgPSBfcnVuLkZpbGVzID8/IG5ldyBEaWN0aW9uYXJ5PHN0cmluZywgRmlsZURhdGE+KCk7DQoNCiAgICAgICAgICAgIHN0cmluZyBmaWxlRGF0YUtleSA9IFVyaUhlbHBlci5NYWtlVmFsaWRVcmkodXJpLk9yaWdpbmFsU3RyaW5nKTsNCiAgICAgICAgICAgIGlmIChfcnVuLkZpbGVzLkNvbnRhaW5zS2V5KGZpbGVEYXRhS2V5KSkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAvLyBBbHJlYWR5IHBvcHVsYXRlZA0KICAgICAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgRW5jb2RpbmcgZW5jb2RpbmcgPSBudWxsOw0KDQogICAgICAgICAgICB0cnkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBlbmNvZGluZyA9IEVuY29kaW5nLkdldEVuY29kaW5nKF9ydW4uRGVmYXVsdEZpbGVFbmNvZGluZyk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBjYXRjaCAoQXJndW1lbnRFeGNlcHRpb24pIHsgfSAvLyBVbnJlY29nbml6ZWQgb3IgbnVsbCBlbmNvZGluZyBuYW1lDQoNCiAgICAgICAgICAgIF9ydW4uRmlsZXNbZmlsZURhdGFLZXldID0gRmlsZURhdGEuQ3JlYXRlKHVyaSwgX2RhdGFUb0luc2VydCwgbnVsbCwgZW5jb2RpbmcpOw0KICAgICAgICB9DQoNCiAgICAgICAgcHVibGljIHZvaWQgQW5hbHl6aW5nVGFyZ2V0KElBbmFseXNpc0NvbnRleHQgY29udGV4dCkNCiAgICAgICAgew0KICAgICAgICAgICAgLy8gVGhpcyBjb2RlIGRvZXNuJ3QgY2FsbCB0aHJvdWdoIGEgY29tbW9uIGhlbHBlciwgc3VjaCBhcw0KICAgICAgICAgICAgLy8gcHJvdmlkZWQgYnkgdGhlIFNESyBOb3RlcyBjbGFzcywgYmVjYXVzZSB3ZSBhcmUgaW4gYSBzcGVjaWZpYw0KICAgICAgICAgICAgLy8gbG9nZ2VyLiBJZiB3ZSBjYWxsZWQgdGhyb3VnaCBhIGhlbHBlciwgd2UnZCByZS1lbnRlcg0KICAgICAgICAgICAgLy8gdGhyb3VnaCBhbGwgYWdncmVnYXRlZCBsb2dnZXJzLg0KDQogICAgICAgICAgICAvLyBBbmFseXppbmcgdGFyZ2V0ICd7MH0nLi4uDQoNCiAgICAgICAgICAgIGlmIChjb250ZXh0ID09IG51bGwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgdGhyb3cgbmV3IEFyZ3VtZW50TnVsbEV4Y2VwdGlvbihuYW1lb2YoY29udGV4dCkpOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBzdHJpbmcgbWVzc2FnZSA9IHN0cmluZy5Gb3JtYXQoQ3VsdHVyZUluZm8uSW52YXJpYW50Q3VsdHVyZSwgDQogICAgICAgICAgICAgICAgU2RrUmVzb3VyY2VzLk1TRzAwMV9BbmFseXppbmdUYXJnZXQsDQogICAgICAgICAgICAgICAgY29udGV4dC5UYXJnZXRVcmkuR2V0RmlsZU5hbWUoKSk7DQoNCiAgICAgICAgICAgIExvZ1Rvb2xOb3RpZmljYXRpb24oDQogICAgICAgICAgICAgICAgbmV3IE5vdGlmaWNhdGlvbg0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgUGh5c2ljYWxMb2NhdGlvbiA9IG5ldyBQaHlzaWNhbExvY2F0aW9uDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIEZpbGVMb2NhdGlvbiA9IG5ldyBGaWxlTG9jYXRpb24NCiAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBVcmkgPSBjb250ZXh0LlRhcmdldFVyaQ0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICB9LA0KICAgICAgICAgICAgICAgICAgICBJZCA9IE5vdGVzLk1zZzAwMUFuYWx5emluZ1RhcmdldCwNCiAgICAgICAgICAgICAgICAgICAgTWVzc2FnZSA9IG5ldyBNZXNzYWdlIHsgVGV4dCA9IG1lc3NhZ2UgfSwNCiAgICAgICAgICAgICAgICAgICAgTGV2ZWwgPSBOb3RpZmljYXRpb25MZXZlbC5Ob3RlLA0KICAgICAgICAgICAgICAgICAgICBUaW1lID0gRGF0ZVRpbWUuVXRjTm93LA0KICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICB9DQoNCiAgICAgICAgcHVibGljIHZvaWQgTG9nKFJlc3VsdExldmVsIG1lc3NhZ2VLaW5kLCBJQW5hbHlzaXNDb250ZXh0IGNvbnRleHQsIFJlZ2lvbiByZWdpb24sIHN0cmluZyBydWxlTWVzc2FnZUlkLCBwYXJhbXMgc3RyaW5nW10gYXJndW1lbnRzKQ0KICAgICAgICB7DQogICAgICAgICAgICBpZiAoY29udGV4dCA9PSBudWxsKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHRocm93IG5ldyBBcmd1bWVudE51bGxFeGNlcHRpb24obmFtZW9mKGNvbnRleHQpKTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgaWYgKGNvbnRleHQuUnVsZSAhPSBudWxsKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIFJ1bGVzW2NvbnRleHQuUnVsZS5JZF0gPSBjb250ZXh0LlJ1bGU7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIHJ1bGVNZXNzYWdlSWQgPSBSdWxlVXRpbGl0aWVzLk5vcm1hbGl6ZVJ1bGVNZXNzYWdlSWQocnVsZU1lc3NhZ2VJZCwgY29udGV4dC5SdWxlLklkKTsNCiAgICAgICAgICAgIExvZ0pzb25Jc3N1ZShtZXNzYWdlS2luZCwgY29udGV4dC5UYXJnZXRVcmkuTG9jYWxQYXRoLCByZWdpb24sIGNvbnRleHQuUnVsZS5JZCwgcnVsZU1lc3NhZ2VJZCwgYXJndW1lbnRzKTsNCiAgICAgICAgfQ0KDQogICAgICAgIHByaXZhdGUgdm9pZCBMb2dKc29uSXNzdWUoUmVzdWx0TGV2ZWwgbGV2ZWwsIHN0cmluZyB0YXJnZXRQYXRoLCBSZWdpb24gcmVnaW9uLCBzdHJpbmcgcnVsZUlkLCBzdHJpbmcgcnVsZU1lc3NhZ2VJZCwgcGFyYW1zIHN0cmluZ1tdIGFyZ3VtZW50cykNCiAgICAgICAgew0KICAgICAgICAgICAgaWYgKCFTaG91bGRMb2cobGV2ZWwpKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgUmVzdWx0IHJlc3VsdCA9IG5ldyBSZXN1bHQoKTsNCg0KICAgICAgICAgICAgcmVzdWx0LlJ1bGVJZCA9IHJ1bGVJZDsNCg0KICAgICAgICAgICAgcmVzdWx0Lk1lc3NhZ2UgPSBuZXcgTWVzc2FnZSgpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgTWVzc2FnZUlkID0gcnVsZU1lc3NhZ2VJZCwNCiAgICAgICAgICAgICAgICBBcmd1bWVudHMgPSBhcmd1bWVudHMNCiAgICAgICAgICAgIH07DQoNCiAgICAgICAgICAgIHJlc3VsdC5MZXZlbCA9IGxldmVsOw0KDQogICAgICAgICAgICBpZiAodGFyZ2V0UGF0aCAhPSBudWxsKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHJlc3VsdC5Mb2NhdGlvbnMgPSBuZXcgTGlzdDxMb2NhdGlvbj4gew0KICAgICAgICAgICAgICAgICAgICBuZXcgU2FyaWYuTG9jYXRpb24gew0KICAgICAgICAgICAgICAgICAgICAgICAgUGh5c2ljYWxMb2NhdGlvbiA9IG5ldyBQaHlzaWNhbExvY2F0aW9uDQogICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgRmlsZUxvY2F0aW9uID0gbmV3IEZpbGVMb2NhdGlvbg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVXJpID0gbmV3IFVyaSh0YXJnZXRQYXRoKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVnaW9uID0gcmVnaW9uDQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9Ow0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBfaXNzdWVMb2dKc29uV3JpdGVyLldyaXRlUmVzdWx0KHJlc3VsdCk7DQogICAgICAgIH0NCg0KICAgICAgICBwdWJsaWMgYm9vbCBTaG91bGRMb2coUmVzdWx0TGV2ZWwgbGV2ZWwpDQogICAgICAgIHsNCiAgICAgICAgICAgIHN3aXRjaCAobGV2ZWwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgY2FzZSBSZXN1bHRMZXZlbC5Ob3RlOg0KICAgICAgICAgICAgICAgIGNhc2UgUmVzdWx0TGV2ZWwuUGFzczoNCiAgICAgICAgICAgICAgICBjYXNlIFJlc3VsdExldmVsLk9wZW46DQogICAgICAgICAgICAgICAgY2FzZSBSZXN1bHRMZXZlbC5Ob3RBcHBsaWNhYmxlOg0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgaWYgKCFWZXJib3NlKQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgY2FzZSBSZXN1bHRMZXZlbC5FcnJvcjoNCiAgICAgICAgICAgICAgICBjYXNlIFJlc3VsdExldmVsLkRlZmF1bHQ6DQogICAgICAgICAgICAgICAgY2FzZSBSZXN1bHRMZXZlbC5XYXJuaW5nOg0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbnZhbGlkT3BlcmF0aW9uRXhjZXB0aW9uKCk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgcmV0dXJuIHRydWU7DQogICAgICAgIH0NCg0KICAgICAgICBwdWJsaWMgdm9pZCBMb2dUb29sTm90aWZpY2F0aW9uKE5vdGlmaWNhdGlvbiBub3RpZmljYXRpb24pDQogICAgICAgIHsNCiAgICAgICAgICAgIGlmIChfcnVuLkludm9jYXRpb25zLkNvdW50ID09IDApDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgX3J1bi5JbnZvY2F0aW9ucy5BZGQobmV3IEludm9jYXRpb24oKSk7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIF9ydW4uSW52b2NhdGlvbnNbMF0uVG9vbE5vdGlmaWNhdGlvbnMgPSBfcnVuLkludm9jYXRpb25zWzBdLlRvb2xOb3RpZmljYXRpb25zID8/IG5ldyBMaXN0PE5vdGlmaWNhdGlvbj4oKTsNCiAgICAgICAgICAgIF9ydW4uSW52b2NhdGlvbnNbMF0uVG9vbE5vdGlmaWNhdGlvbnMuQWRkKG5vdGlmaWNhdGlvbik7DQogICAgICAgIH0NCg0KICAgICAgICBwdWJsaWMgdm9pZCBMb2dDb25maWd1cmF0aW9uTm90aWZpY2F0aW9uKE5vdGlmaWNhdGlvbiBub3RpZmljYXRpb24pDQogICAgICAgIHsNCiAgICAgICAgICAgIGlmIChfcnVuLkludm9jYXRpb25zLkNvdW50ID09IDApDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgX3J1bi5JbnZvY2F0aW9ucy5BZGQobmV3IEludm9jYXRpb24oKSk7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIF9ydW4uSW52b2NhdGlvbnNbMF0uQ29uZmlndXJhdGlvbk5vdGlmaWNhdGlvbnMgPSBfcnVuLkludm9jYXRpb25zWzBdLkNvbmZpZ3VyYXRpb25Ob3RpZmljYXRpb25zID8/IG5ldyBMaXN0PE5vdGlmaWNhdGlvbj4oKTsNCiAgICAgICAgICAgIF9ydW4uSW52b2NhdGlvbnNbMF0uQ29uZmlndXJhdGlvbk5vdGlmaWNhdGlvbnMuQWRkKG5vdGlmaWNhdGlvbik7DQogICAgICAgIH0NCiAgICB9DQp9" + { + "ruleId": "CA1704", + "message": { + "text": "Correct the spelling of 'Sarif' in assembly name 'Sarif.Converters.dll'.", + "id": "Assembly" }, - "hashes": [ - { - "value": "C52026713C3429648AFD17539730D186", - "algorithm": "md5" - }, - { - "value": "B1325BFED0C0696EE623FEFC129012B1B0190AA8", - "algorithm": "sha-1" - }, + "locations": [ { - "value": "6942BE0CFD521073C65AC136EB83044BF086FD3D6B3006F3CD132AD6C26EB5BD", - "algorithm": "sha-256" + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", + "uriBaseId": "$(ProjectDir)", + "index": 3 + } + }, + "logicalLocations": [ + { + "index": 128, + "fullyQualifiedName": "sarif.converters.dll" + } + ] } - ] - }, - "#$(ProjectDir)#../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll": { - "mimeType": "application/octet-stream" - }, - "file:///E:/src/sarif-sdk-test/src/Sarif.Driver/Sdk/AggregatingLogger.cs": { - "mimeType": "text/x-csharp", - "contents": { - "binary": "77u/Ly8gQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuDQovLyBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UuIFNlZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHByb2plY3Qgcm9vdCBmb3IgZnVsbCBsaWNlbnNlIGluZm9ybWF0aW9uLg0KDQp1c2luZyBTeXN0ZW07DQp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsNCg0KbmFtZXNwYWNlIE1pY3Jvc29mdC5Db2RlQW5hbHlzaXMuU2FyaWYuRHJpdmVyDQp7DQogICAgcHVibGljIGNsYXNzIEFnZ3JlZ2F0aW5nTG9nZ2VyIDogSURpc3Bvc2FibGUsIElBbmFseXNpc0xvZ2dlcg0KICAgIHsNCiAgICAgICAgcHVibGljIEFnZ3JlZ2F0aW5nTG9nZ2VyKCkgOiB0aGlzKG51bGwpDQogICAgICAgIHsNCiAgICAgICAgfQ0KDQogICAgICAgIHB1YmxpYyBBZ2dyZWdhdGluZ0xvZ2dlcihJRW51bWVyYWJsZTxJQW5hbHlzaXNMb2dnZXI+IGxvZ2dlcnMpDQogICAgICAgIHsNCiAgICAgICAgICAgIHRoaXMuTG9nZ2VycyA9IGxvZ2dlcnMgIT0gbnVsbCA/DQogICAgICAgICAgICAgICAgbmV3IExpc3Q8SUFuYWx5c2lzTG9nZ2VyPihsb2dnZXJzKSA6DQogICAgICAgICAgICAgICAgbmV3IExpc3Q8SUFuYWx5c2lzTG9nZ2VyPigpOw0KICAgICAgICB9DQoNCiAgICAgICAgcHVibGljIElMaXN0PElBbmFseXNpc0xvZ2dlcj4gTG9nZ2VycyB7IGdldDsgc2V0OyB9DQoNCiAgICAgICAgcHVibGljIHZvaWQgRGlzcG9zZSgpDQogICAgICAgIHsNCiAgICAgICAgICAgIGZvcmVhY2ggKElBbmFseXNpc0xvZ2dlciBsb2dnZXIgaW4gTG9nZ2VycykNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICB1c2luZyAobG9nZ2VyIGFzIElEaXNwb3NhYmxlKSB7IH07DQogICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICBwdWJsaWMgdm9pZCBBbmFseXNpc1N0YXJ0ZWQoKQ0KICAgICAgICB7DQogICAgICAgICAgICBmb3JlYWNoIChJQW5hbHlzaXNMb2dnZXIgbG9nZ2VyIGluIExvZ2dlcnMpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgbG9nZ2VyLkFuYWx5c2lzU3RhcnRlZCgpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICAgICAgcHVibGljIHZvaWQgQW5hbHlzaXNTdG9wcGVkKFJ1bnRpbWVDb25kaXRpb25zIHJ1bnRpbWVDb25kaXRpb25zKQ0KICAgICAgICB7DQogICAgICAgICAgICBmb3JlYWNoIChJQW5hbHlzaXNMb2dnZXIgbG9nZ2VyIGluIExvZ2dlcnMpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgbG9nZ2VyLkFuYWx5c2lzU3RvcHBlZChydW50aW1lQ29uZGl0aW9ucyk7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICBwdWJsaWMgdm9pZCBBbmFseXppbmdUYXJnZXQoSUFuYWx5c2lzQ29udGV4dCBjb250ZXh0KQ0KICAgICAgICB7DQogICAgICAgICAgICBmb3JlYWNoIChJQW5hbHlzaXNMb2dnZXIgbG9nZ2VyIGluIExvZ2dlcnMpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgbG9nZ2VyLkFuYWx5emluZ1RhcmdldChjb250ZXh0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgIHB1YmxpYyB2b2lkIExvZ01lc3NhZ2UoYm9vbCB2ZXJib3NlLCBzdHJpbmcgbWVzc2FnZSkNCiAgICAgICAgew0KICAgICAgICAgICAgZm9yZWFjaCAoSUFuYWx5c2lzTG9nZ2VyIGxvZ2dlciBpbiBMb2dnZXJzKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIGxvZ2dlci5Mb2dNZXNzYWdlKHZlcmJvc2UsIG1lc3NhZ2UpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICAgICAgcHVibGljIHZvaWQgTG9nKElSdWxlIHJ1bGUsIFJlc3VsdCByZXN1bHQpDQogICAgICAgIHsNCiAgICAgICAgICAgIGZvcmVhY2ggKElBbmFseXNpc0xvZ2dlciBsb2dnZXIgaW4gTG9nZ2VycykNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBsb2dnZXIuTG9nKHJ1bGUsIHJlc3VsdCk7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICBwdWJsaWMgdm9pZCBMb2dUb29sTm90aWZpY2F0aW9uKE5vdGlmaWNhdGlvbiBub3RpZmljYXRpb24pDQogICAgICAgIHsNCiAgICAgICAgICAgIGZvcmVhY2ggKElBbmFseXNpc0xvZ2dlciBsb2dnZXIgaW4gTG9nZ2VycykNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBsb2dnZXIuTG9nVG9vbE5vdGlmaWNhdGlvbihub3RpZmljYXRpb24pOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICAgICAgcHVibGljIHZvaWQgTG9nQ29uZmlndXJhdGlvbk5vdGlmaWNhdGlvbihOb3RpZmljYXRpb24gbm90aWZpY2F0aW9uKQ0KICAgICAgICB7DQogICAgICAgICAgICBmb3JlYWNoIChJQW5hbHlzaXNMb2dnZXIgbG9nZ2VyIGluIExvZ2dlcnMpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgbG9nZ2VyLkxvZ0NvbmZpZ3VyYXRpb25Ob3RpZmljYXRpb24obm90aWZpY2F0aW9uKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgIH0NCn0NCg==" + ], + "partialFingerprints": { + "UniqueId": "Sarif#Assembly" }, - "hashes": [ - { - "value": "477A8267A3B752ADBBE09E15E45AED17", - "algorithm": "md5" - }, - { - "value": "660E0FCEF6AC12FEA43AD3E95E5241B24A4E7276", - "algorithm": "sha-1" - }, - { - "value": "2FA60A117943D3D2FC360856C099D734A8395FC64449FE41995451E5FE06C48E", - "algorithm": "sha-256" - } - ] + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" + } }, - "file:///E:/src/sarif-sdk-test/src/Sarif.Driver/Sdk/AnalysisContext.cs": { - "mimeType": "text/x-csharp", - "contents": { - "binary": "77u/DQovLyBDb3B5cmlnaHQgKGMpIE1pY3Jvc29mdC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4NCi8vIExpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZS4gU2VlIExJQ0VOU0UgZmlsZSBpbiB0aGUgcHJvamVjdCByb290IGZvciBmdWxsIGxpY2Vuc2UgaW5mb3JtYXRpb24uDQoNCnVzaW5nIFN5c3RlbTsNCg0KbmFtZXNwYWNlIE1pY3Jvc29mdC5Db2RlQW5hbHlzaXMuU2FyaWYuRHJpdmVyDQp7DQogICAgcHVibGljIGNsYXNzIEFuYWx5c2lzQ29udGV4dCA6IElBbmFseXNpc0NvbnRleHQNCiAgICB7DQogICAgICAgIHB1YmxpYyBFeGNlcHRpb24gVGFyZ2V0TG9hZEV4Y2VwdGlvbiB7IGdldDsgc2V0OyB9DQoNCiAgICAgICAgcHVibGljIGJvb2wgSXNWYWxpZEFuYWx5c2lzVGFyZ2V0IHsgZ2V0OyBzZXQ7IH0NCg0KICAgICAgICBwdWJsaWMgSUFuYWx5c2lzTG9nZ2VyIExvZ2dlciB7IGdldDsgc2V0OyB9DQoNCiAgICAgICAgcHVibGljIElSdWxlIFJ1bGUgeyBnZXQ7IHNldDsgfQ0KDQogICAgICAgIHB1YmxpYyBQcm9wZXJ0aWVzRGljdGlvbmFyeSBQb2xpY3kgeyBnZXQ7IHNldDsgfQ0KDQogICAgICAgIHB1YmxpYyBzdHJpbmcgTWltZVR5cGUgeyBnZXQ7IHNldDsgfQ0KDQogICAgICAgIHB1YmxpYyBSdW50aW1lQ29uZGl0aW9ucyBSdW50aW1lRXJyb3JzIHsgZ2V0OyBzZXQ7IH0NCg0KICAgICAgICBwdWJsaWMgVXJpIFRhcmdldFVyaSB7IGdldDsgc2V0OyB9DQoNCiAgICAgICAgcHVibGljIHZvaWQgRGlzcG9zZSgpIHsgfQ0KICAgIH0NCn0=" + { + "ruleId": "CA3053", + "message": { + "text": "'AndroidStudioConverter.Convert(Stream, IResultLogWriter, OptionallyEmittedData)' instantiates an XmlReader instance by calling System.Xml.XmlReader.Create(System.IO.Stream,System.Xml.XmlReaderSettings) and provided an XmlReaderSettings instance with an insecure XmlResolver property value. This usage is potentially unsafe as untrusted external resources may be resolved during read operations. Provide a XmlReaderSettings instance and set the XmlResolver property to null or an instance of XmlSecureResolver.", + "id": "XmlReaderCreateInsecureXmlResolver" }, - "hashes": [ - { - "value": "002EF84EF2B303216D319E3AE60D0DEC", - "algorithm": "md5" - }, - { - "value": "60F89C2E33195A9F1BAC1CCAE9534E6DA6D1756B", - "algorithm": "sha-1" - }, - { - "value": "21B1A6B5CF98EC602E48232F4FF43B6B129129CACE2935D5F386D38421DC6EEA", - "algorithm": "sha-256" - } - ] - }, - "file:///E:/src/sarif-sdk-test/src/Sarif.Driver/Sdk/AnalyzeCommandBase.cs": { - "mimeType": "text/x-csharp", - "contents": { - "binary": "77u/Ly8gQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuDQovLyBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UuIFNlZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHByb2plY3Qgcm9vdCBmb3IgZnVsbCBsaWNlbnNlIGluZm9ybWF0aW9uLg0KDQp1c2luZyBTeXN0ZW07DQp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsNCnVzaW5nIFN5c3RlbS5EaWFnbm9zdGljczsNCnVzaW5nIFN5c3RlbS5JTzsNCnVzaW5nIFN5c3RlbS5MaW5xOw0KdXNpbmcgU3lzdGVtLlJlZmxlY3Rpb247DQp1c2luZyBTeXN0ZW0uUnVudGltZS5JbnRlcm9wU2VydmljZXM7DQp1c2luZyBTeXN0ZW0uU2VjdXJpdHk7DQoNCnVzaW5nIE1pY3Jvc29mdC5Db2RlQW5hbHlzaXMuU2FyaWYuV3JpdGVyczsNCg0KbmFtZXNwYWNlIE1pY3Jvc29mdC5Db2RlQW5hbHlzaXMuU2FyaWYuRHJpdmVyDQp7DQogICAgcHVibGljIGFic3RyYWN0IGNsYXNzIEFuYWx5emVDb21tYW5kQmFzZTxUQ29udGV4dCwgVE9wdGlvbnM+IDogUGx1Z0luRHJpdmVyQ29tbWFuZDxUT3B0aW9ucz4NCiAgICAgICAgd2hlcmUgVENvbnRleHQgOiBJQW5hbHlzaXNDb250ZXh0LCBuZXcoKQ0KICAgICAgICB3aGVyZSBUT3B0aW9ucyA6IEFuYWx5emVPcHRpb25zQmFzZQ0KICAgIHsNCiAgICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBEZWZhdWx0UG9saWN5TmFtZSA9ICJkZWZhdWx0IjsNCg0KICAgICAgICBwcml2YXRlIFRDb250ZXh0IHJvb3RDb250ZXh0Ow0KDQogICAgICAgIHB1YmxpYyBFeGNlcHRpb24gRXhlY3V0aW9uRXhjZXB0aW9uIHsgZ2V0OyBzZXQ7IH0NCg0KICAgICAgICBwdWJsaWMgUnVudGltZUNvbmRpdGlvbnMgUnVudGltZUVycm9ycyB7IGdldDsgc2V0OyB9DQoNCiAgICAgICAgcHVibGljIHN0YXRpYyBib29sIFJhaXNlVW5oYW5kbGVkRXhjZXB0aW9uSW5Ecml2ZXJDb2RlIHsgZ2V0OyBzZXQ7IH0NCg0KICAgICAgICBwdWJsaWMgdmlydHVhbCBGaWxlRm9ybWF0IENvbmZpZ3VyYXRpb25Gb3JtYXQgeyBnZXQgeyByZXR1cm4gRmlsZUZvcm1hdC5Kc29uOyB9IH0NCiAgICAgICAgDQogICAgICAgIHB1YmxpYyBzdHJpbmcgRGVmYXVsdENvbmZpZ3VyYXRpb25QYXRoDQogICAgICAgIHsNCiAgICAgICAgICAgIGdldA0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHN0cmluZyBjdXJyZW50RGlyZWN0b3J5ID0gUGF0aC5HZXREaXJlY3RvcnlOYW1lKHRoaXMuR2V0VHlwZSgpLkFzc2VtYmx5LkxvY2F0aW9uKTsNCiAgICAgICAgICAgICAgICByZXR1cm4gUGF0aC5Db21iaW5lKGN1cnJlbnREaXJlY3RvcnksICJkZWZhdWx0LmNvbmZpZ3VyYXRpb24ueG1sIik7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICBwdWJsaWMgb3ZlcnJpZGUgaW50IFJ1bihUT3B0aW9ucyBhbmFseXplT3B0aW9ucykNCiAgICAgICAgew0KICAgICAgICAgICAgLy8gMC4gSW5pdGlhbGl6ZSBhbiBjb21tb24gbG9nZ2VyIHRoYXQgZHJpdmVzIGFsbCBvdXRwdXRzLiBUaGlzDQogICAgICAgICAgICAvLyAgICBvYmplY3QgZHJpdmVzIGxvZ2dpbmcgZm9yIGNvbnNvbGUsIHN0YXRpc3RpY3MsIGV0Yy4NCiAgICAgICAgICAgIHVzaW5nIChBZ2dyZWdhdGluZ0xvZ2dlciBsb2dnZXIgPSBJbml0aWFsaXplTG9nZ2VyKGFuYWx5emVPcHRpb25zKSkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICB0cnkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIEFuYWx5emUoYW5hbHl6ZU9wdGlvbnMsIGxvZ2dlcik7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGNhdGNoIChFeGl0QXBwbGljYXRpb25FeGNlcHRpb248RXhpdFJlYXNvbj4gZXgpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAvLyBUaGVzZSBleGNlcHRpb25zIGhhdmUgYWxyZWFkeSBiZWVuIGxvZ2dlZA0KICAgICAgICAgICAgICAgICAgICBFeGVjdXRpb25FeGNlcHRpb24gPSBleDsNCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEZBSUxVUkU7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGNhdGNoIChFeGNlcHRpb24gZXgpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAvLyBUaGVzZSBleGNlcHRpb25zIGVzY2FwZWQgb3VyIG5ldCBhbmQgbXVzdCBiZSBsb2dnZWQgaGVyZSAgICAgICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgICAgIFJ1bnRpbWVFcnJvcnMgfD0gRXJyb3JzLkxvZ1VuaGFuZGxlZEVuZ2luZUV4Y2VwdGlvbih0aGlzLnJvb3RDb250ZXh0LCBleCk7DQogICAgICAgICAgICAgICAgICAgIEV4ZWN1dGlvbkV4Y2VwdGlvbiA9IGV4Ow0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gRkFJTFVSRTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgZmluYWxseQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgbG9nZ2VyLkFuYWx5c2lzU3RvcHBlZChSdW50aW1lRXJyb3JzKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIGJvb2wgc3VjY2VlZGVkID0gKFJ1bnRpbWVFcnJvcnMgJiB+UnVudGltZUNvbmRpdGlvbnMuTm9uZmF0YWwpID09IFJ1bnRpbWVDb25kaXRpb25zLk5vbmU7DQoNCiAgICAgICAgICAgIGlmIChhbmFseXplT3B0aW9ucy5SaWNoUmV0dXJuQ29kZSkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gKGludClSdW50aW1lRXJyb3JzOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICByZXR1cm4gc3VjY2VlZGVkID8gU1VDQ0VTUyA6IEZBSUxVUkU7DQogICAgICAgIH0NCg0KICAgICAgICBwcml2YXRlIHZvaWQgQW5hbHl6ZShUT3B0aW9ucyBhbmFseXplT3B0aW9ucywgQWdncmVnYXRpbmdMb2dnZXIgbG9nZ2VyKQ0KICAgICAgICB7DQogICAgICAgICAgICAvLyAwLiBMb2cgYW5hbHlzaXMgaW5pdGlhdGlvbg0KICAgICAgICAgICAgbG9nZ2VyLkFuYWx5c2lzU3RhcnRlZCgpOw0KDQogICAgICAgICAgICAvLyAxLiBDcmVhdGUgY29udGV4dCBvYmplY3QgdG8gcGFzcyB0byBza2ltbWVycy4gVGhlIGxvZ2dlcg0KICAgICAgICAgICAgLy8gICAgYW5kIGNvbmZpZ3VyYXRpb24gb2JqZWN0cyBhcmUgY29tbW9uIHRvIGFsbCBjb250ZXh0DQogICAgICAgICAgICAvLyAgICBpbnN0YW5jZXMgYW5kIHdpbGwgYmUgcGFzc2VkIG9uIGFnYWluIGZvciBhbmFseXNpcy4NCiAgICAgICAgICAgIHRoaXMucm9vdENvbnRleHQgPSBDcmVhdGVDb250ZXh0KGFuYWx5emVPcHRpb25zLCBsb2dnZXIsIFJ1bnRpbWVFcnJvcnMpOw0KDQogICAgICAgICAgICAvLyAyLiBQZXJmb3JtIGFueSBjb21tYW5kIGxpbmUgYXJndW1lbnQgdmFsaWRhdGlvbiBiZXlvbmQgd2hhdA0KICAgICAgICAgICAgLy8gICAgdGhlIGNvbW1hbmQgbGluZSBwYXJzZXIgbGlicmFyeSBpcyBjYXBhYmxlIG9mLg0KICAgICAgICAgICAgVmFsaWRhdGVPcHRpb25zKHRoaXMucm9vdENvbnRleHQsIGFuYWx5emVPcHRpb25zKTsNCg0KICAgICAgICAgICAgLy8gMy4gUHJvZHVjZSBhIGNvbXByZWhlbnNpdmUgc2V0IG9mIGFuYWx5c2lzIHRhcmdldHMgDQogICAgICAgICAgICBIYXNoU2V0PHN0cmluZz4gdGFyZ2V0cyA9IENyZWF0ZVRhcmdldHNTZXQoYW5hbHl6ZU9wdGlvbnMpOw0KDQogICAgICAgICAgICAvLyA0LiBQcm9hY3RpdmVseSB2YWxpZGF0ZSB0aGF0IHdlIGNhbiBsb2NhdGUgYW5kIA0KICAgICAgICAgICAgLy8gICAgYWNjZXNzIGFsbCBhbmFseXNpcyB0YXJnZXRzLiBIZWxwZXIgd2lsbCByZXR1cm4NCiAgICAgICAgICAgIC8vICAgIGEgbGlzdCB0aGF0IHBvdGVudGlhbGx5IGZpbHRlcnMgb3V0IGZpbGVzIHdoaWNoDQogICAgICAgICAgICAvLyAgICBkaWQgbm90IGV4aXN0LCBjb3VsZCBub3QgYmUgYWNjZXNzZWQsIGV0Yy4NCiAgICAgICAgICAgIHRhcmdldHMgPSBWYWxpZGF0ZVRhcmdldHNFeGlzdCh0aGlzLnJvb3RDb250ZXh0LCB0YXJnZXRzKTsNCg0KICAgICAgICAgICAgLy8gNS4gSW5pdGlhbGl6ZSByZXBvcnQgZmlsZSwgaWYgY29uZmlndXJlZC4NCiAgICAgICAgICAgIEluaXRpYWxpemVPdXRwdXRGaWxlKGFuYWx5emVPcHRpb25zLCB0aGlzLnJvb3RDb250ZXh0LCB0YXJnZXRzKTsNCg0KICAgICAgICAgICAgLy8gNi4gSW5zdGFudGlhdGUgc2tpbW1lcnMuDQogICAgICAgICAgICBIYXNoU2V0PElTa2ltbWVyPFRDb250ZXh0Pj4gc2tpbW1lcnMgPSBDcmVhdGVTa2ltbWVycyh0aGlzLnJvb3RDb250ZXh0KTsNCg0KICAgICAgICAgICAgLy8gNy4gSW5pdGlhbGl6ZSBjb25maWd1cmF0aW9uLiBUaGlzIHN0ZXAgbXVzdCBiZSBkb25lIGFmdGVyIGluaXRpYWxpemluZw0KICAgICAgICAgICAgLy8gICAgdGhlIHNraW1tZXJzLCBhcyBydWxlcyBkZWZpbmUgdGhlaXIgc3BlY2lmaWMgY29udGV4dCBvYmplY3RzIGFuZA0KICAgICAgICAgICAgLy8gICAgc28gdGhvc2UgYXNzZW1ibGllcyBtdXN0IGJlIGxvYWRlZC4NCiAgICAgICAgICAgIEluaXRpYWxpemVDb25maWd1cmF0aW9uKGFuYWx5emVPcHRpb25zLCB0aGlzLnJvb3RDb250ZXh0KTsNCg0KICAgICAgICAgICAgLy8gOC4gSW5pdGlhbGl6ZSBza2ltbWVycy4gSW5pdGlhbGl6ZSBvY2N1cnMgYSBzaW5nbGUgdGltZSBvbmx5LiBUaGlzDQogICAgICAgICAgICAvLyAgICBzdGVwIG5lZWRzIHRvIG9jY3VycyBhZnRlciBpbml0aWFsaXppbmcgY29uZmlndXJhdGlvbiBpbiBvcmRlcg0KICAgICAgICAgICAgLy8gICAgdG8gYWxsb3cgY29tbWFuZC1saW5lIG92ZXJyaWRlIG9mIHJ1bGUgc2V0dGluZ3MNCiAgICAgICAgICAgIHNraW1tZXJzID0gSW5pdGlhbGl6ZVNraW1tZXJzKHNraW1tZXJzLCB0aGlzLnJvb3RDb250ZXh0KTsNCg0KICAgICAgICAgICAgLy8gOS4gUnVuIGFsbCBhbmFseXNpcw0KICAgICAgICAgICAgQW5hbHl6ZVRhcmdldHMoYW5hbHl6ZU9wdGlvbnMsIHNraW1tZXJzLCB0aGlzLnJvb3RDb250ZXh0LCB0YXJnZXRzKTsNCg0KICAgICAgICAgICAgLy8gMTAuIEZvciB0ZXN0IHB1cnBvc2VzLCByYWlzZSBhbiB1bmhhbmRsZWQgZXhjZXB0aW9uIGlmIGluZGljYXRlZA0KICAgICAgICAgICAgaWYgKFJhaXNlVW5oYW5kbGVkRXhjZXB0aW9uSW5Ecml2ZXJDb2RlKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbnZhbGlkT3BlcmF0aW9uRXhjZXB0aW9uKHRoaXMuR2V0VHlwZSgpLk5hbWUpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICAgICAgcHJvdGVjdGVkIHZpcnR1YWwgdm9pZCBWYWxpZGF0ZU9wdGlvbnMoVENvbnRleHQgY29udGV4dCwgVE9wdGlvbnMgYW5hbHl6ZU9wdGlvbnMpDQogICAgICAgIHsNCiAgICAgICAgICAgIGJvb2wgc3VjY2VlZGVkID0gdHJ1ZTsNCg0KICAgICAgICAgICAgc3VjY2VlZGVkICY9IFZhbGlkYXRlRmlsZShjb250ZXh0LCBhbmFseXplT3B0aW9ucy5PdXRwdXRGaWxlUGF0aCwgc2hvdWxkRXhpc3Q6IG51bGwpOw0KICAgICAgICAgICAgc3VjY2VlZGVkICY9IFZhbGlkYXRlRmlsZShjb250ZXh0LCBhbmFseXplT3B0aW9ucy5Db25maWd1cmF0aW9uRmlsZVBhdGgsIHNob3VsZEV4aXN0OiB0cnVlKTsNCiAgICAgICAgICAgIHN1Y2NlZWRlZCAmPSBWYWxpZGF0ZUZpbGVzKGNvbnRleHQsIGFuYWx5emVPcHRpb25zLlBsdWdpbkZpbGVQYXRocywgc2hvdWxkRXhpc3Q6IHRydWUpOw0KICAgICAgICAgICAgc3VjY2VlZGVkICY9IFZhbGlkYXRlSW52b2NhdGlvblByb3BlcnRpZXNUb0xvZyhjb250ZXh0LCBhbmFseXplT3B0aW9ucy5JbnZvY2F0aW9uUHJvcGVydGllc1RvTG9nKTsNCg0KICAgICAgICAgICAgaWYgKCFzdWNjZWVkZWQpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgVGhyb3dFeGl0QXBwbGljYXRpb25FeGNlcHRpb24oY29udGV4dCwgRXhpdFJlYXNvbi5JbnZhbGlkQ29tbWFuZExpbmVPcHRpb24pOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICAgICAgcHJpdmF0ZSBib29sIFZhbGlkYXRlRmlsZXMoVENvbnRleHQgY29udGV4dCwgSUVudW1lcmFibGU8c3RyaW5nPiBmaWxlUGF0aHMsIGJvb2wgc2hvdWxkRXhpc3QpDQogICAgICAgIHsNCiAgICAgICAgICAgIGlmIChmaWxlUGF0aHMgPT0gbnVsbCkgeyByZXR1cm4gdHJ1ZTsgfQ0KDQogICAgICAgICAgICBib29sIHN1Y2NlZWRlZCA9IHRydWU7DQoNCiAgICAgICAgICAgIGZvcmVhY2ggKHN0cmluZyBmaWxlUGF0aCBpbiBmaWxlUGF0aHMpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgc3VjY2VlZGVkICY9IFZhbGlkYXRlRmlsZShjb250ZXh0LCBmaWxlUGF0aCwgc2hvdWxkRXhpc3QpOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICByZXR1cm4gc3VjY2VlZGVkOw0KICAgICAgICB9DQoNCiAgICAgICAgcHJpdmF0ZSBib29sIFZhbGlkYXRlRmlsZShUQ29udGV4dCBjb250ZXh0LCBzdHJpbmcgZmlsZVBhdGgsIGJvb2w/IHNob3VsZEV4aXN0KQ0KICAgICAgICB7DQogICAgICAgICAgICBpZiAoZmlsZVBhdGggPT0gbnVsbCB8fCBmaWxlUGF0aCA9PSBEZWZhdWx0UG9saWN5TmFtZSkgeyByZXR1cm4gdHJ1ZTsgfQ0KDQogICAgICAgICAgICBFeGNlcHRpb24gZXhjZXB0aW9uID0gbnVsbDsNCg0KICAgICAgICAgICAgdHJ5DQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgYm9vbCBmaWxlRXhpc3RzID0gRmlsZS5FeGlzdHMoZmlsZVBhdGgpOw0KDQogICAgICAgICAgICAgICAgaWYgKGZpbGVFeGlzdHMgfHwgc2hvdWxkRXhpc3QgPT0gbnVsbCB8fCAhc2hvdWxkRXhpc3QuVmFsdWUpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsNCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICBFcnJvcnMuTG9nTWlzc2luZ0ZpbGUoY29udGV4dCwgZmlsZVBhdGgpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgY2F0Y2ggKElPRXhjZXB0aW9uIGV4KSB7IGV4Y2VwdGlvbiA9IGV4OyB9DQogICAgICAgICAgICBjYXRjaCAoU2VjdXJpdHlFeGNlcHRpb24gZXgpIHsgZXhjZXB0aW9uID0gZXg7IH0NCiAgICAgICAgICAgIGNhdGNoIChVbmF1dGhvcml6ZWRBY2Nlc3NFeGNlcHRpb24gZXgpIHsgZXhjZXB0aW9uID0gZXg7IH0NCg0KICAgICAgICAgICAgaWYgKGV4Y2VwdGlvbiAhPSBudWxsKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIEVycm9ycy5Mb2dFeGNlcHRpb25BY2Nlc3NpbmdGaWxlKGNvbnRleHQsIGZpbGVQYXRoLCBleGNlcHRpb24pOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgIH0NCg0KICAgICAgICBwcml2YXRlIHN0YXRpYyBib29sIFZhbGlkYXRlSW52b2NhdGlvblByb3BlcnRpZXNUb0xvZyhUQ29udGV4dCBjb250ZXh0LCBJRW51bWVyYWJsZTxzdHJpbmc+IHByb3BlcnRpZXNUb0xvZykNCiAgICAgICAgew0KICAgICAgICAgICAgYm9vbCBzdWNjZWVkZWQgPSB0cnVlOw0KDQogICAgICAgICAgICBpZiAocHJvcGVydGllc1RvTG9nICE9IG51bGwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgTGlzdDxzdHJpbmc+IHZhbGlkUHJvcGVydHlOYW1lcyA9IHR5cGVvZihJbnZvY2F0aW9uKS5HZXRQcm9wZXJ0aWVzKEJpbmRpbmdGbGFncy5QdWJsaWMgfCBCaW5kaW5nRmxhZ3MuSW5zdGFuY2UpDQogICAgICAgICAgICAgICAgICAgIC5TZWxlY3QocHJvcEluZm8gPT4gcHJvcEluZm8uTmFtZS5Ub1VwcGVySW52YXJpYW50KCkpDQogICAgICAgICAgICAgICAgICAgIC5Ub0xpc3QoKTsNCg0KICAgICAgICAgICAgICAgIGZvcmVhY2ggKHN0cmluZyBwcm9wZXJ0eU5hbWUgaW4gcHJvcGVydGllc1RvTG9nKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgaWYgKCF2YWxpZFByb3BlcnR5TmFtZXMuQ29udGFpbnMocHJvcGVydHlOYW1lLlRvVXBwZXJJbnZhcmlhbnQoKSkpDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIEVycm9ycy5Mb2dJbnZhbGlkSW52b2NhdGlvblByb3BlcnR5TmFtZShjb250ZXh0LCBwcm9wZXJ0eU5hbWUpOw0KICAgICAgICAgICAgICAgICAgICAgICAgc3VjY2VlZGVkID0gZmFsc2U7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIHJldHVybiBzdWNjZWVkZWQ7DQogICAgICAgIH0NCg0KICAgICAgICBpbnRlcm5hbCBBZ2dyZWdhdGluZ0xvZ2dlciBJbml0aWFsaXplTG9nZ2VyKEFuYWx5emVPcHRpb25zQmFzZSBhbmFseXplT3B0aW9ucykNCiAgICAgICAgew0KICAgICAgICAgICAgdmFyIGxvZ2dlciA9IG5ldyBBZ2dyZWdhdGluZ0xvZ2dlcigpOw0KDQogICAgICAgICAgICBpZiAoIWFuYWx5emVPcHRpb25zLlF1aWV0KQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIGxvZ2dlci5Mb2dnZXJzLkFkZChuZXcgQ29uc29sZUxvZ2dlcihhbmFseXplT3B0aW9ucy5WZXJib3NlKSk7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIGlmIChhbmFseXplT3B0aW9ucy5TdGF0aXN0aWNzKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIGxvZ2dlci5Mb2dnZXJzLkFkZChuZXcgU3RhdGlzdGljc0xvZ2dlcigpKTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgcmV0dXJuIGxvZ2dlcjsNCiAgICAgICAgfQ0KDQogICAgICAgIHByaXZhdGUgc3RhdGljIEhhc2hTZXQ8c3RyaW5nPiBDcmVhdGVUYXJnZXRzU2V0KFRPcHRpb25zIGFuYWx5emVPcHRpb25zKQ0KICAgICAgICB7DQogICAgICAgICAgICBIYXNoU2V0PHN0cmluZz4gdGFyZ2V0cyA9IG5ldyBIYXNoU2V0PHN0cmluZz4oU3RyaW5nQ29tcGFyZXIuT3JkaW5hbElnbm9yZUNhc2UpOw0KICAgICAgICAgICAgZm9yZWFjaCAoc3RyaW5nIHNwZWNpZmllciBpbiBhbmFseXplT3B0aW9ucy5UYXJnZXRGaWxlU3BlY2lmaWVycykNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBzdHJpbmcgbm9ybWFsaXplZFNwZWNpZmllciA9IHNwZWNpZmllcjsNCg0KICAgICAgICAgICAgICAgIFVyaSB1cmk7DQogICAgICAgICAgICAgICAgaWYgKFVyaS5UcnlDcmVhdGUoc3BlY2lmaWVyLCBVcmlLaW5kLlJlbGF0aXZlT3JBYnNvbHV0ZSwgb3V0IHVyaSkpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBpZiAodXJpLklzQWJzb2x1dGVVcmkgJiYgKHVyaS5Jc0ZpbGUgfHwgdXJpLklzVW5jKSkNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgbm9ybWFsaXplZFNwZWNpZmllciA9IHVyaS5Mb2NhbFBhdGg7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgLy8gQ3VycmVudGx5LCB3ZSBkbyBub3QgZmlsdGVyIG9uIGFueSBleHRlbnNpb25zLg0KICAgICAgICAgICAgICAgIHZhciBmaWxlU3BlY2lmaWVyID0gbmV3IEZpbGVTcGVjaWZpZXIobm9ybWFsaXplZFNwZWNpZmllciwgcmVjdXJzZTogYW5hbHl6ZU9wdGlvbnMuUmVjdXJzZSk7DQogICAgICAgICAgICAgICAgZm9yZWFjaCAoc3RyaW5nIGZpbGUgaW4gZmlsZVNwZWNpZmllci5GaWxlcykgeyB0YXJnZXRzLkFkZChmaWxlKTsgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgRGVidWcuQXNzZXJ0KHRhcmdldHMuQ291bnQgPiAwKTsNCiAgICAgICAgICAgIHJldHVybiB0YXJnZXRzOw0KICAgICAgICB9DQoNCiAgICAgICAgcHJpdmF0ZSBIYXNoU2V0PHN0cmluZz4gVmFsaWRhdGVUYXJnZXRzRXhpc3QoVENvbnRleHQgY29udGV4dCwgSGFzaFNldDxzdHJpbmc+IHRhcmdldHMpDQogICAgICAgIHsNCiAgICAgICAgICAgIGlmICh0YXJnZXRzLkNvdW50ID09IDApDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgRXJyb3JzLkxvZ05vVmFsaWRBbmFseXNpc1RhcmdldHMoY29udGV4dCk7DQogICAgICAgICAgICAgICAgVGhyb3dFeGl0QXBwbGljYXRpb25FeGNlcHRpb24oY29udGV4dCwgRXhpdFJlYXNvbi5Ob1ZhbGlkQW5hbHlzaXNUYXJnZXRzKTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgcmV0dXJuIHRhcmdldHM7DQogICAgICAgIH0NCg0KICAgICAgICBwcm90ZWN0ZWQgdmlydHVhbCBUQ29udGV4dCBDcmVhdGVDb250ZXh0KA0KICAgICAgICAgICAgVE9wdGlvbnMgb3B0aW9ucywNCiAgICAgICAgICAgIElBbmFseXNpc0xvZ2dlciBsb2dnZXIsDQogICAgICAgICAgICBSdW50aW1lQ29uZGl0aW9ucyBydW50aW1lRXJyb3JzLA0KICAgICAgICAgICAgc3RyaW5nIGZpbGVQYXRoID0gbnVsbCkNCiAgICAgICAgew0KICAgICAgICAgICAgdmFyIGNvbnRleHQgPSBuZXcgVENvbnRleHQoKTsNCiAgICAgICAgICAgIGNvbnRleHQuTG9nZ2VyID0gbG9nZ2VyOw0KICAgICAgICAgICAgY29udGV4dC5SdW50aW1lRXJyb3JzID0gcnVudGltZUVycm9yczsNCg0KICAgICAgICAgICAgaWYgKGZpbGVQYXRoICE9IG51bGwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgY29udGV4dC5UYXJnZXRVcmkgPSBuZXcgVXJpKGZpbGVQYXRoKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIA0KICAgICAgICAgICAgcmV0dXJuIGNvbnRleHQ7DQogICAgICAgIH0NCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBDYWxjdWxhdGUgdGhlIGZpbGUgdG8gbG9hZCB0aGUgY29uZmlndXJhdGlvbiBmcm9tLg0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICAvLy8gPHBhcmFtIG5hbWU9Im9wdGlvbnMiPk9wdGlvbnM8L3BhcmFtPg0KICAgICAgICAvLy8gPHBhcmFtIG5hbWU9InVuaXRUZXN0RmlsZUV4aXN0cyI+VXNlZCBvbmx5IGluIHVuaXQgdGVzdGluZywgb3ZlcnJpZGVzICJGaWxlLkV4aXN0cyIuICANCiAgICAgICAgLy8vIFRPRE8tLVJlc3RydWN0dXJlIFNhcmlmLkRyaXZlciB0byB1c2UgU2FyaWYuSUZpbGVTeXN0ZW0gZm9yIGFjdGlvbnMgb24gZmlsZSwgdG8gZW5hYmxlIHVuaXQgdGVzdGluZyBoZXJlIGluc3RlYWQuPC9wYXJhbT4NCiAgICAgICAgLy8vIDxyZXR1cm5zPkNvbmZpZ3VyYXRpb24gZmlsZSBwYXRoLCBvciBudWxsIGlmIHRoZSBidWlsdCBpbiBjb25maWd1cmF0aW9uIHNob3VsZCBiZSB1c2VkLjwvcmV0dXJucz4NCiAgICAgICAgaW50ZXJuYWwgc3RyaW5nIEdldENvbmZpZ3VyYXRpb25GaWxlTmFtZShUT3B0aW9ucyBvcHRpb25zLCBib29sIHVuaXRUZXN0RmlsZUV4aXN0cyA9IGZhbHNlKQ0KICAgICAgICB7DQogICAgICAgICAgICBpZiAob3B0aW9ucy5Db25maWd1cmF0aW9uRmlsZVBhdGggPT0gRGVmYXVsdFBvbGljeU5hbWUpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIGlmIChTdHJpbmcuSXNOdWxsT3JFbXB0eShvcHRpb25zLkNvbmZpZ3VyYXRpb25GaWxlUGF0aCkpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgaWYgKCFGaWxlLkV4aXN0cyhEZWZhdWx0Q29uZmlndXJhdGlvblBhdGgpICYmICF1bml0VGVzdEZpbGVFeGlzdHMpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDsNCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICByZXR1cm4gRGVmYXVsdENvbmZpZ3VyYXRpb25QYXRoOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgcmV0dXJuIG9wdGlvbnMuQ29uZmlndXJhdGlvbkZpbGVQYXRoOw0KICAgICAgICB9DQogICAgICAgIA0KICAgICAgICBwcm90ZWN0ZWQgdmlydHVhbCB2b2lkIEluaXRpYWxpemVDb25maWd1cmF0aW9uKFRPcHRpb25zIG9wdGlvbnMsIFRDb250ZXh0IGNvbnRleHQpDQogICAgICAgIHsNCiAgICAgICAgICAgIGNvbnRleHQuUG9saWN5ID0gbmV3IFByb3BlcnRpZXNEaWN0aW9uYXJ5KCk7DQoNCiAgICAgICAgICAgIHN0cmluZyBjb25maWd1cmF0aW9uRmlsZU5hbWUgPSBHZXRDb25maWd1cmF0aW9uRmlsZU5hbWUob3B0aW9ucyk7DQogICAgICAgICAgICBpZiAoc3RyaW5nLklzTnVsbE9yRW1wdHkoY29uZmlndXJhdGlvbkZpbGVOYW1lKSkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICByZXR1cm47DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIHN0cmluZyBleHRlbnNpb24gPSBQYXRoLkdldEV4dGVuc2lvbihjb25maWd1cmF0aW9uRmlsZU5hbWUpOw0KDQogICAgICAgICAgICBpZiAoZXh0ZW5zaW9uLkVxdWFscygiLnhtbCIsIFN0cmluZ0NvbXBhcmlzb24uT3JkaW5hbElnbm9yZUNhc2UpKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIGNvbnRleHQuUG9saWN5LkxvYWRGcm9tWG1sKGNvbmZpZ3VyYXRpb25GaWxlTmFtZSk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIGlmIChleHRlbnNpb24uRXF1YWxzKCIuanNvbiIsIFN0cmluZ0NvbXBhcmlzb24uT3JkaW5hbElnbm9yZUNhc2UpKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIGNvbnRleHQuUG9saWN5LkxvYWRGcm9tSnNvbihjb25maWd1cmF0aW9uRmlsZU5hbWUpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZWxzZSBpZiAoQ29uZmlndXJhdGlvbkZvcm1hdCA9PSBGaWxlRm9ybWF0LlhtbCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBjb250ZXh0LlBvbGljeS5Mb2FkRnJvbVhtbChjb25maWd1cmF0aW9uRmlsZU5hbWUpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZWxzZQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIGNvbnRleHQuUG9saWN5LkxvYWRGcm9tSnNvbihjb25maWd1cmF0aW9uRmlsZU5hbWUpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICAgICAgcHJpdmF0ZSB2b2lkIEluaXRpYWxpemVPdXRwdXRGaWxlKFRPcHRpb25zIGFuYWx5emVPcHRpb25zLCBUQ29udGV4dCBjb250ZXh0LCBIYXNoU2V0PHN0cmluZz4gdGFyZ2V0cykNCiAgICAgICAgew0KICAgICAgICAgICAgc3RyaW5nIGZpbGVQYXRoID0gYW5hbHl6ZU9wdGlvbnMuT3V0cHV0RmlsZVBhdGg7DQogICAgICAgICAgICBBZ2dyZWdhdGluZ0xvZ2dlciBhZ2dyZWdhdGluZ0xvZ2dlciA9IChBZ2dyZWdhdGluZ0xvZ2dlciljb250ZXh0LkxvZ2dlcjsNCg0KICAgICAgICAgICAgaWYgKCFzdHJpbmcuSXNOdWxsT3JFbXB0eShmaWxlUGF0aCkpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgSW52b2tlQ2F0Y2hpbmdSZWxldmFudElPRXhjZXB0aW9ucw0KICAgICAgICAgICAgICAgICgNCiAgICAgICAgICAgICAgICAgICAgKCkgPT4NCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgTG9nZ2luZ09wdGlvbnMgbG9nZ2luZ09wdGlvbnM7DQogICAgICAgICAgICAgICAgICAgICAgICBsb2dnaW5nT3B0aW9ucyA9IGFuYWx5emVPcHRpb25zLkNvbnZlcnRUb0xvZ2dpbmdPcHRpb25zKCk7DQoNCiAgICAgICAgICAgICAgICAgICAgICAgIE9wdGlvbmFsbHlFbWl0dGVkRGF0YSBkYXRhVG9JbnNlcnQgPSBhbmFseXplT3B0aW9ucy5EYXRhVG9JbnNlcnQuVG9GbGFncygpOw0KDQogICAgICAgICAgICAgICAgICAgICAgICAvLyBUaGlzIGNvZGUgaXMgcmVxdWlyZWQgaW4gb3JkZXIgdG8gc3VwcG9ydCB0aGUgb2Jzb2xldGVkIENvbXB1dGVGaWxlSGFzaGVzIGFyZ3VtZW50DQogICAgICAgICAgICAgICAgICAgICAgICAvLyBvbiB0aGUgYW5hbHl6ZSBjb21tYW5kLWxpbmU7DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoYW5hbHl6ZU9wdGlvbnMuQ29tcHV0ZUZpbGVIYXNoZXMpIHsgZGF0YVRvSW5zZXJ0IHw9IE9wdGlvbmFsbHlFbWl0dGVkRGF0YS5IYXNoZXM7IH0NCg0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHNhcmlmTG9nZ2VyID0gbmV3IFNhcmlmTG9nZ2VyKA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5hbHl6ZU9wdGlvbnMuT3V0cHV0RmlsZVBhdGgsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2dnaW5nT3B0aW9ucywNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFUb0luc2VydCwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvb2w6IG51bGwsIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnVuOiBudWxsLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5hbHlzaXNUYXJnZXRzOiB0YXJnZXRzLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW52b2NhdGlvblRva2Vuc1RvUmVkYWN0OiBHZW5lcmF0ZVNlbnNpdGl2ZVRva2Vuc0xpc3QoKSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludm9jYXRpb25Qcm9wZXJ0aWVzVG9Mb2c6IGFuYWx5emVPcHRpb25zLkludm9jYXRpb25Qcm9wZXJ0aWVzVG9Mb2cpOw0KICAgICAgICAgICAgICAgICAgICAgICAgc2FyaWZMb2dnZXIuQW5hbHlzaXNTdGFydGVkKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBhZ2dyZWdhdGluZ0xvZ2dlci5Mb2dnZXJzLkFkZChzYXJpZkxvZ2dlcik7DQogICAgICAgICAgICAgICAgICAgIH0sDQogICAgICAgICAgICAgICAgICAgIChleCkgPT4NCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgRXJyb3JzLkxvZ0V4Y2VwdGlvbkNyZWF0aW5nTG9nRmlsZShjb250ZXh0LCBmaWxlUGF0aCwgZXgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgVGhyb3dFeGl0QXBwbGljYXRpb25FeGNlcHRpb24oY29udGV4dCwgRXhpdFJlYXNvbi5FeGNlcHRpb25DcmVhdGluZ0xvZ0ZpbGUsIGV4KTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICk7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICBwcml2YXRlIElFbnVtZXJhYmxlPHN0cmluZz4gR2VuZXJhdGVTZW5zaXRpdmVUb2tlbnNMaXN0KCkNCiAgICAgICAgew0KICAgICAgICAgICAgdmFyIHJlc3VsdCA9IG5ldyBMaXN0PFN0cmluZz4oKTsNCg0KICAgICAgICAgICAgcmVzdWx0LkFkZChFbnZpcm9ubWVudC5NYWNoaW5lTmFtZSk7DQogICAgICAgICAgICByZXN1bHQuQWRkKEVudmlyb25tZW50LlVzZXJOYW1lKTsNCiAgICAgICAgICAgIHJlc3VsdC5BZGQoRW52aXJvbm1lbnQuVXNlckRvbWFpbk5hbWUpOw0KDQogICAgICAgICAgICBzdHJpbmcgdXNlckRuc0RvbWFpbiA9IEVudmlyb25tZW50LkdldEVudmlyb25tZW50VmFyaWFibGUoIlVTRVJETlNET01BSU4iKTsNCiAgICAgICAgICAgIHN0cmluZyBsb2dvblNlcnZlciA9IEVudmlyb25tZW50LkdldEVudmlyb25tZW50VmFyaWFibGUoIkxPR09OU0VSVkVSIik7DQoNCiAgICAgICAgICAgIGlmICghc3RyaW5nLklzTnVsbE9yRW1wdHkodXNlckRuc0RvbWFpbikpIHsgcmVzdWx0LkFkZCh1c2VyRG5zRG9tYWluKTsgfQ0KICAgICAgICAgICAgaWYgKCFzdHJpbmcuSXNOdWxsT3JFbXB0eShsb2dvblNlcnZlcikpIHsgcmVzdWx0LkFkZChsb2dvblNlcnZlcik7IH0NCg0KICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsNCiAgICAgICAgfQ0KDQogICAgICAgIHB1YmxpYyB2b2lkIEludm9rZUNhdGNoaW5nUmVsZXZhbnRJT0V4Y2VwdGlvbnMoQWN0aW9uIGFjdGlvbiwgQWN0aW9uPEV4Y2VwdGlvbj4gZXhjZXB0aW9uSGFuZGxlcikNCiAgICAgICAgew0KICAgICAgICAgICAgdHJ5DQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgYWN0aW9uKCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBjYXRjaCAoVW5hdXRob3JpemVkQWNjZXNzRXhjZXB0aW9uIGV4KQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIGV4Y2VwdGlvbkhhbmRsZXIoZXgpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgY2F0Y2ggKElPRXhjZXB0aW9uIGV4KQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIGV4Y2VwdGlvbkhhbmRsZXIoZXgpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICAgICAgcHJpdmF0ZSBIYXNoU2V0PElTa2ltbWVyPFRDb250ZXh0Pj4gQ3JlYXRlU2tpbW1lcnMoVENvbnRleHQgY29udGV4dCkNCiAgICAgICAgew0KICAgICAgICAgICAgSUVudW1lcmFibGU8SVNraW1tZXI8VENvbnRleHQ+PiBza2ltbWVyczsNCiAgICAgICAgICAgIEhhc2hTZXQ8SVNraW1tZXI8VENvbnRleHQ+PiByZXN1bHQgPSBuZXcgSGFzaFNldDxJU2tpbW1lcjxUQ29udGV4dD4+KCk7DQoNCiAgICAgICAgICAgIHRyeQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHNraW1tZXJzID0gRHJpdmVyVXRpbGl0aWVzLkdldEV4cG9ydHM8SVNraW1tZXI8VENvbnRleHQ+PihEZWZhdWx0UGx1Z0luQXNzZW1ibGllcyk7DQoNCiAgICAgICAgICAgICAgICBTdXBwb3J0ZWRQbGF0Zm9ybSBjdXJyZW50T1MgPSBHZXRDdXJyZW50UnVubmluZ09TKCk7DQogICAgICAgICAgICAgICAgZm9yZWFjaCAoSVNraW1tZXI8VENvbnRleHQ+IHNraW1tZXIgaW4gc2tpbW1lcnMpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBpZihza2ltbWVyLlN1cHBvcnRlZFBsYXRmb3Jtcy5IYXNGbGFnKGN1cnJlbnRPUykpDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5BZGQoc2tpbW1lcik7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgZWxzZQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICBXYXJuaW5ncy5Mb2dVbnN1cHBvcnRlZFBsYXRmb3JtRm9yUnVsZShjb250ZXh0LCBza2ltbWVyLk5hbWUuVGV4dCwgc2tpbW1lci5TdXBwb3J0ZWRQbGF0Zm9ybXMsIGN1cnJlbnRPUyk7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQogICAgICAgICAgICBjYXRjaCAoRXhjZXB0aW9uIGV4KQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIEVycm9ycy5Mb2dFeGNlcHRpb25JbnN0YW50aWF0aW5nU2tpbW1lcnMoY29udGV4dCwgRGVmYXVsdFBsdWdJbkFzc2VtYmxpZXMsIGV4KTsNCiAgICAgICAgICAgICAgICBUaHJvd0V4aXRBcHBsaWNhdGlvbkV4Y2VwdGlvbihjb250ZXh0LCBFeGl0UmVhc29uLlVuaGFuZGxlZEV4Y2VwdGlvbkluc3RhbnRpYXRpbmdTa2ltbWVycywgZXgpOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBpZiAocmVzdWx0LkNvdW50ID09IDApDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgRXJyb3JzLkxvZ05vUnVsZXNMb2FkZWQoY29udGV4dCk7DQogICAgICAgICAgICAgICAgVGhyb3dFeGl0QXBwbGljYXRpb25FeGNlcHRpb24oY29udGV4dCwgRXhpdFJlYXNvbi5Ob1J1bGVzTG9hZGVkKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHJldHVybiByZXN1bHQ7DQogICAgICAgIH0NCg0KICAgICAgICBwcml2YXRlIFN1cHBvcnRlZFBsYXRmb3JtIEdldEN1cnJlbnRSdW5uaW5nT1MoKQ0KICAgICAgICB7DQogICAgICAgICAgICAvLyBSdW50aW1lSW5mb3JtYXRpb24gaXMgbm90IHByZXNlbnQgaW4gTkVUNDUyLg0KI2lmIE5FVDQ1Mg0KICAgICAgICAgICAgcmV0dXJuIFN1cHBvcnRlZFBsYXRmb3JtLldpbmRvd3M7DQojZWxzZQ0KICAgICAgICAgICAgaWYgKFJ1bnRpbWVJbmZvcm1hdGlvbi5Jc09TUGxhdGZvcm0oT1NQbGF0Zm9ybS5MaW51eCkpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgcmV0dXJuIFN1cHBvcnRlZFBsYXRmb3JtLkxpbnV4Ow0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZWxzZSBpZiAoUnVudGltZUluZm9ybWF0aW9uLklzT1NQbGF0Zm9ybShPU1BsYXRmb3JtLk9TWCkpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgcmV0dXJuIFN1cHBvcnRlZFBsYXRmb3JtLk9TWDsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2UgaWYgKFJ1bnRpbWVJbmZvcm1hdGlvbi5Jc09TUGxhdGZvcm0oT1NQbGF0Zm9ybS5XaW5kb3dzKSkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gU3VwcG9ydGVkUGxhdGZvcm0uV2luZG93czsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2UNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gU3VwcG9ydGVkUGxhdGZvcm0uVW5rbm93bjsNCiAgICAgICAgICAgIH0NCiNlbmRpZg0KICAgICAgICB9DQoNCiAgICAgICAgcHJvdGVjdGVkIHZpcnR1YWwgdm9pZCBBbmFseXplVGFyZ2V0cygNCiAgICAgICAgICAgIFRPcHRpb25zIG9wdGlvbnMsDQogICAgICAgICAgICBJRW51bWVyYWJsZTxJU2tpbW1lcjxUQ29udGV4dD4+IHNraW1tZXJzLA0KICAgICAgICAgICAgVENvbnRleHQgcm9vdENvbnRleHQsDQogICAgICAgICAgICBJRW51bWVyYWJsZTxzdHJpbmc+IHRhcmdldHMpDQogICAgICAgIHsNCiAgICAgICAgICAgIEhhc2hTZXQ8c3RyaW5nPiBkaXNhYmxlZFNraW1tZXJzID0gbmV3IEhhc2hTZXQ8c3RyaW5nPigpOw0KDQogICAgICAgICAgICBmb3JlYWNoIChJU2tpbW1lcjxUQ29udGV4dD4gc2tpbW1lciBpbiBza2ltbWVycykNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBQZXJMYW5ndWFnZU9wdGlvbjxSdWxlRW5hYmxlZFN0YXRlPiBydWxlRW5hYmxlZFByb3BlcnR5Ow0KICAgICAgICAgICAgICAgIHJ1bGVFbmFibGVkUHJvcGVydHkgPSBEZWZhdWx0RHJpdmVyT3B0aW9ucy5DcmVhdGVSdWxlU3BlY2lmaWNPcHRpb24oc2tpbW1lciwgRGVmYXVsdERyaXZlck9wdGlvbnMuUnVsZUVuYWJsZWQpOw0KDQogICAgICAgICAgICAgICAgUnVsZUVuYWJsZWRTdGF0ZSBydWxlRW5hYmxlZCA9IHJvb3RDb250ZXh0LlBvbGljeS5HZXRQcm9wZXJ0eShydWxlRW5hYmxlZFByb3BlcnR5KTsNCg0KICAgICAgICAgICAgICAgIGlmIChydWxlRW5hYmxlZCA9PSBSdWxlRW5hYmxlZFN0YXRlLkRpc2FibGVkKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWRTa2ltbWVycy5BZGQoc2tpbW1lci5JZCk7DQogICAgICAgICAgICAgICAgICAgIFdhcm5pbmdzLkxvZ1J1bGVFeHBsaWNpdGx5RGlzYWJsZWQocm9vdENvbnRleHQsIHNraW1tZXIuSWQpOw0KICAgICAgICAgICAgICAgICAgICBSdW50aW1lRXJyb3JzIHw9IFJ1bnRpbWVDb25kaXRpb25zLlJ1bGVXYXNFeHBsaWNpdGx5RGlzYWJsZWQ7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBpZiAoZGlzYWJsZWRTa2ltbWVycy5Db3VudCA9PSBza2ltbWVycy5Db3VudCgpKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIEVycm9ycy5Mb2dBbGxSdWxlc0V4cGxpY2l0bHlEaXNhYmxlZChyb290Q29udGV4dCk7DQogICAgICAgICAgICAgICAgVGhyb3dFeGl0QXBwbGljYXRpb25FeGNlcHRpb24ocm9vdENvbnRleHQsIEV4aXRSZWFzb24uTm9SdWxlc0xvYWRlZCk7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIGZvcmVhY2ggKHN0cmluZyB0YXJnZXQgaW4gdGFyZ2V0cykNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICB1c2luZyAoVENvbnRleHQgY29udGV4dCA9IERldGVybWluZUFwcGxpY2FiaWxpdHlBbmRBbmFseXplKG9wdGlvbnMsIHNraW1tZXJzLCByb290Q29udGV4dCwgdGFyZ2V0LCBkaXNhYmxlZFNraW1tZXJzKSkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIFJ1bnRpbWVFcnJvcnMgfD0gY29udGV4dC5SdW50aW1lRXJyb3JzOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgIHByb3RlY3RlZCB2aXJ0dWFsIFRDb250ZXh0IERldGVybWluZUFwcGxpY2FiaWxpdHlBbmRBbmFseXplKA0KICAgICAgICAgICAgVE9wdGlvbnMgb3B0aW9ucywNCiAgICAgICAgICAgIElFbnVtZXJhYmxlPElTa2ltbWVyPFRDb250ZXh0Pj4gc2tpbW1lcnMsDQogICAgICAgICAgICBUQ29udGV4dCByb290Q29udGV4dCwNCiAgICAgICAgICAgIHN0cmluZyB0YXJnZXQsDQogICAgICAgICAgICBIYXNoU2V0PHN0cmluZz4gZGlzYWJsZWRTa2ltbWVycykNCiAgICAgICAgew0KICAgICAgICAgICAgdmFyIGNvbnRleHQgPSBDcmVhdGVDb250ZXh0KG9wdGlvbnMsIHJvb3RDb250ZXh0LkxvZ2dlciwgcm9vdENvbnRleHQuUnVudGltZUVycm9ycywgdGFyZ2V0KTsNCiAgICAgICAgICAgIGNvbnRleHQuUG9saWN5ID0gcm9vdENvbnRleHQuUG9saWN5Ow0KDQogICAgICAgICAgICBpZiAoY29udGV4dC5UYXJnZXRMb2FkRXhjZXB0aW9uICE9IG51bGwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgRXJyb3JzLkxvZ0V4Y2VwdGlvbkxvYWRpbmdUYXJnZXQoY29udGV4dCk7DQogICAgICAgICAgICAgICAgY29udGV4dC5EaXNwb3NlKCk7DQogICAgICAgICAgICAgICAgcmV0dXJuIGNvbnRleHQ7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIGlmICghY29udGV4dC5Jc1ZhbGlkQW5hbHlzaXNUYXJnZXQpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgV2FybmluZ3MuTG9nRXhjZXB0aW9uSW52YWxpZFRhcmdldChjb250ZXh0KTsNCiAgICAgICAgICAgICAgICBjb250ZXh0LkRpc3Bvc2UoKTsNCiAgICAgICAgICAgICAgICByZXR1cm4gY29udGV4dDsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgLy8gQW5hbHl6aW5nICd7MH0nLi4uDQogICAgICAgICAgICBjb250ZXh0LkxvZ2dlci5BbmFseXppbmdUYXJnZXQoY29udGV4dCk7DQoNCiAgICAgICAgICAgIElFbnVtZXJhYmxlPElTa2ltbWVyPFRDb250ZXh0Pj4gYXBwbGljYWJsZVNraW1tZXJzID0gRGV0ZXJtaW5lQXBwbGljYWJpbGl0eUZvclRhcmdldChza2ltbWVycywgY29udGV4dCwgZGlzYWJsZWRTa2ltbWVycyk7DQoNCiAgICAgICAgICAgIEFuYWx5emVUYXJnZXQoYXBwbGljYWJsZVNraW1tZXJzLCBjb250ZXh0LCBkaXNhYmxlZFNraW1tZXJzKTsNCg0KICAgICAgICAgICAgcmV0dXJuIGNvbnRleHQ7DQogICAgICAgIH0NCg0KICAgICAgICBwcm90ZWN0ZWQgdmlydHVhbCB2b2lkIEFuYWx5emVUYXJnZXQoSUVudW1lcmFibGU8SVNraW1tZXI8VENvbnRleHQ+PiBza2ltbWVycywgVENvbnRleHQgY29udGV4dCwgSGFzaFNldDxzdHJpbmc+IGRpc2FibGVkU2tpbW1lcnMpDQogICAgICAgIHsNCiAgICAgICAgICAgIGZvcmVhY2ggKElTa2ltbWVyPFRDb250ZXh0PiBza2ltbWVyIGluIHNraW1tZXJzKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIGlmIChkaXNhYmxlZFNraW1tZXJzLkNvbnRhaW5zKHNraW1tZXIuSWQpKSB7IGNvbnRpbnVlOyB9DQoNCiAgICAgICAgICAgICAgICBjb250ZXh0LlJ1bGUgPSBza2ltbWVyOw0KDQogICAgICAgICAgICAgICAgdHJ5DQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBza2ltbWVyLkFuYWx5emUoY29udGV4dCk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGNhdGNoIChFeGNlcHRpb24gZXgpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBSdW50aW1lRXJyb3JzIHw9IEVycm9ycy5Mb2dVbmhhbmRsZWRSdWxlRXhjZXB0aW9uQW5hbHl6aW5nVGFyZ2V0KGRpc2FibGVkU2tpbW1lcnMsIGNvbnRleHQsIGV4KTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICBwcm90ZWN0ZWQgdmlydHVhbCBJRW51bWVyYWJsZTxJU2tpbW1lcjxUQ29udGV4dD4+IERldGVybWluZUFwcGxpY2FiaWxpdHlGb3JUYXJnZXQoDQogICAgICAgICAgICBJRW51bWVyYWJsZTxJU2tpbW1lcjxUQ29udGV4dD4+IHNraW1tZXJzLA0KICAgICAgICAgICAgVENvbnRleHQgY29udGV4dCwNCiAgICAgICAgICAgIEhhc2hTZXQ8c3RyaW5nPiBkaXNhYmxlZFNraW1tZXJzKQ0KICAgICAgICB7DQogICAgICAgICAgICB2YXIgY2FuZGlkYXRlU2tpbW1lcnMgPSBuZXcgTGlzdDxJU2tpbW1lcjxUQ29udGV4dD4+KCk7DQoNCiAgICAgICAgICAgIGZvcmVhY2ggKElTa2ltbWVyPFRDb250ZXh0PiBza2ltbWVyIGluIHNraW1tZXJzKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIGlmIChkaXNhYmxlZFNraW1tZXJzLkNvbnRhaW5zKHNraW1tZXIuSWQpKSB7IGNvbnRpbnVlOyB9DQoNCiAgICAgICAgICAgICAgICBzdHJpbmcgcmVhc29uRm9yTm90QW5hbHl6aW5nID0gbnVsbDsNCiAgICAgICAgICAgICAgICBjb250ZXh0LlJ1bGUgPSBza2ltbWVyOw0KDQogICAgICAgICAgICAgICAgQW5hbHlzaXNBcHBsaWNhYmlsaXR5IGFwcGxpY2FiaWxpdHkgPSBBbmFseXNpc0FwcGxpY2FiaWxpdHkuVW5rbm93bjsNCg0KICAgICAgICAgICAgICAgIHRyeQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgYXBwbGljYWJpbGl0eSA9IHNraW1tZXIuQ2FuQW5hbHl6ZShjb250ZXh0LCBvdXQgcmVhc29uRm9yTm90QW5hbHl6aW5nKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgY2F0Y2ggKEV4Y2VwdGlvbiBleCkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIEVycm9ycy5Mb2dVbmhhbmRsZWRSdWxlRXhjZXB0aW9uQXNzZXNzaW5nVGFyZ2V0QXBwbGljYWJpbGl0eShkaXNhYmxlZFNraW1tZXJzLCBjb250ZXh0LCBleCk7DQogICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBmaW5hbGx5DQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBSdW50aW1lRXJyb3JzIHw9IGNvbnRleHQuUnVudGltZUVycm9yczsNCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICBzd2l0Y2ggKGFwcGxpY2FiaWxpdHkpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBjYXNlIEFuYWx5c2lzQXBwbGljYWJpbGl0eS5Ob3RBcHBsaWNhYmxlVG9TcGVjaWZpZWRUYXJnZXQ6DQogICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgTm90ZXMuTG9nTm90QXBwbGljYWJsZVRvU3BlY2lmaWVkVGFyZ2V0KGNvbnRleHQsIHJlYXNvbkZvck5vdEFuYWx5emluZyk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAgICAgY2FzZSBBbmFseXNpc0FwcGxpY2FiaWxpdHkuQXBwbGljYWJsZVRvU3BlY2lmaWVkVGFyZ2V0Og0KICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhbmRpZGF0ZVNraW1tZXJzLkFkZChza2ltbWVyKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQogICAgICAgICAgICByZXR1cm4gY2FuZGlkYXRlU2tpbW1lcnM7DQogICAgICAgIH0NCg0KICAgICAgICBwcm90ZWN0ZWQgdm9pZCBUaHJvd0V4aXRBcHBsaWNhdGlvbkV4Y2VwdGlvbihUQ29udGV4dCBjb250ZXh0LCBFeGl0UmVhc29uIGV4aXRSZWFzb24sIEV4Y2VwdGlvbiBpbm5lckV4Y2VwdGlvbiA9IG51bGwpDQogICAgICAgIHsNCiAgICAgICAgICAgIFJ1bnRpbWVFcnJvcnMgfD0gY29udGV4dC5SdW50aW1lRXJyb3JzOw0KDQogICAgICAgICAgICB0aHJvdyBuZXcgRXhpdEFwcGxpY2F0aW9uRXhjZXB0aW9uPEV4aXRSZWFzb24+KERyaXZlclJlc291cmNlcy5NU0dfVW5leHBlY3RlZEFwcGxpY2F0aW9uRXhpdCwgaW5uZXJFeGNlcHRpb24pDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgRXhpdFJlYXNvbiA9IGV4aXRSZWFzb24NCiAgICAgICAgICAgIH07DQogICAgICAgIH0NCg0KICAgICAgICBwcm90ZWN0ZWQgdmlydHVhbCBIYXNoU2V0PElTa2ltbWVyPFRDb250ZXh0Pj4gSW5pdGlhbGl6ZVNraW1tZXJzKEhhc2hTZXQ8SVNraW1tZXI8VENvbnRleHQ+PiBza2ltbWVycywgVENvbnRleHQgY29udGV4dCkNCiAgICAgICAgew0KICAgICAgICAgICAgSGFzaFNldDxJU2tpbW1lcjxUQ29udGV4dD4+IGRpc2FibGVkU2tpbW1lcnMgPSBuZXcgSGFzaFNldDxJU2tpbW1lcjxUQ29udGV4dD4+KCk7DQoNCiAgICAgICAgICAgIC8vIE9ORS1USU1FIGluaXRpYWxpemF0aW9uIG9mIHNraW1tZXJzLiBEbyBub3QgY2FsbCANCiAgICAgICAgICAgIC8vIEluaXRpYWxpemUgbW9yZSB0aGFuIG9uY2UgcGVyIHNraW1tZXIgaW5zdGFudGlhdGlvbg0KICAgICAgICAgICAgZm9yZWFjaCAoSVNraW1tZXI8VENvbnRleHQ+IHNraW1tZXIgaW4gc2tpbW1lcnMpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgdHJ5DQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBjb250ZXh0LlJ1bGUgPSBza2ltbWVyOw0KICAgICAgICAgICAgICAgICAgICBza2ltbWVyLkluaXRpYWxpemUoY29udGV4dCk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGNhdGNoIChFeGNlcHRpb24gZXgpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBSdW50aW1lRXJyb3JzIHw9IFJ1bnRpbWVDb25kaXRpb25zLkV4Y2VwdGlvbkluU2tpbW1lckluaXRpYWxpemU7DQogICAgICAgICAgICAgICAgICAgIEVycm9ycy5Mb2dVbmhhbmRsZWRFeGNlcHRpb25Jbml0aWFsaXppbmdSdWxlKGNvbnRleHQsIGV4KTsNCiAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWRTa2ltbWVycy5BZGQoc2tpbW1lcik7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBmb3JlYWNoIChJU2tpbW1lcjxUQ29udGV4dD4gZGlzYWJsZWRTa2ltbWVyIGluIGRpc2FibGVkU2tpbW1lcnMpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgc2tpbW1lcnMuUmVtb3ZlKGRpc2FibGVkU2tpbW1lcik7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIHJldHVybiBza2ltbWVyczsNCiAgICAgICAgfQ0KDQogICAgICAgIHByb3RlY3RlZCBzdGF0aWMgdm9pZCBMb2dUb29sTm90aWZpY2F0aW9uKA0KICAgICAgICAgICAgSUFuYWx5c2lzTG9nZ2VyIGxvZ2dlciwNCiAgICAgICAgICAgIHN0cmluZyBtZXNzYWdlLA0KICAgICAgICAgICAgTm90aWZpY2F0aW9uTGV2ZWwgbGV2ZWwgPSBOb3RpZmljYXRpb25MZXZlbC5Ob3RlLA0KICAgICAgICAgICAgRXhjZXB0aW9uIGV4ID0gbnVsbCkNCiAgICAgICAgew0KICAgICAgICAgICAgRXhjZXB0aW9uRGF0YSBleGNlcHRpb25EYXRhID0gbnVsbDsNCiAgICAgICAgICAgIGlmIChleCAhPSBudWxsKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIGV4Y2VwdGlvbkRhdGEgPSBuZXcgRXhjZXB0aW9uRGF0YQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgS2luZCA9IGV4LkdldFR5cGUoKS5GdWxsTmFtZSwNCiAgICAgICAgICAgICAgICAgICAgTWVzc2FnZSA9IGV4Lk1lc3NhZ2UsDQogICAgICAgICAgICAgICAgICAgIFN0YWNrID0gU3RhY2suQ3JlYXRlU3RhY2tzKGV4KS5GaXJzdE9yRGVmYXVsdCgpDQogICAgICAgICAgICAgICAgfTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgVGV4dFdyaXRlciB3cml0ZXIgPSBsZXZlbCA9PSBOb3RpZmljYXRpb25MZXZlbC5FcnJvciA/IENvbnNvbGUuRXJyb3IgOiBDb25zb2xlLk91dDsNCiAgICAgICAgICAgIHdyaXRlci5Xcml0ZUxpbmUobWVzc2FnZSk7DQoNCiAgICAgICAgICAgIGxvZ2dlci5Mb2dUb29sTm90aWZpY2F0aW9uKG5ldyBOb3RpZmljYXRpb24NCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBMZXZlbCA9IGxldmVsLA0KICAgICAgICAgICAgICAgIE1lc3NhZ2UgPSBuZXcgTWVzc2FnZSB7IFRleHQgPSBtZXNzYWdlIH0sDQogICAgICAgICAgICAgICAgRXhjZXB0aW9uID0gZXhjZXB0aW9uRGF0YQ0KICAgICAgICAgICAgfSk7DQogICAgICAgIH0NCiAgICB9DQp9" + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", + "uriBaseId": "$(ProjectDir)", + "index": 3 }, - "hashes": [ - { - "value": "A82CF1C6034692257B8844979888925E", - "algorithm": "md5" - }, - { - "value": "0AB3C65E9962C34E429C617727484A4DED110B8B", - "algorithm": "sha-1" - }, + "locations": [ { - "value": "0E75B82C8E413031980B28CDCCEDE3C52E9DB2FF5535EC7E90CC8F7CCFFE1438", - "algorithm": "sha-256" + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/AndroidStudioConverter.cs", + "index": 4 + }, + "region": { + "startLine": 63 + } + }, + "logicalLocations": [ + { + "index": 131, + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.AndroidStudioConverter.Convert(System.IO.Stream,Microsoft.CodeAnalysis.Sarif.IResultLogWriter,Microsoft.CodeAnalysis.Sarif.OptionallyEmittedData)" + } + ] } - ] + ], + "partialFingerprints": { + "UniqueId": "XmlReaderCreateInsecureXmlResolver" + }, + "properties": { + "Category": "Microsoft.Security.Xml", + "FixCategory": "NonBreaking" + } }, - "file:///E:/src/sarif-sdk-test/src/Sarif.Driver/ArgumentSplitter.cs": { - "mimeType": "text/x-csharp", - "contents": { - "binary": "77u/Ly8gQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuDQovLyBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UuIFNlZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHByb2plY3Qgcm9vdCBmb3IgZnVsbCBsaWNlbnNlIGluZm9ybWF0aW9uLg0KDQp1c2luZyBTeXN0ZW07DQp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsNCnVzaW5nIFN5c3RlbS5UZXh0Ow0KDQpuYW1lc3BhY2UgTWljcm9zb2Z0LkNvZGVBbmFseXNpcy5TYXJpZi5Ecml2ZXINCnsNCiAgICAvLy8gPHN1bW1hcnk+VGhpcyBjbGFzcyBjb250YWlucyBhcmd1bWVudCBzcGxpdHRpbmcgZnVuY3Rpb25hbGl0eS48L3N1bW1hcnk+DQogICAgcHVibGljIHN0YXRpYyBjbGFzcyBBcmd1bWVudFNwbGl0dGVyDQogICAgew0KICAgICAgICBwcml2YXRlIGVudW0gV2hpdGVzcGFjZU1vZGUNCiAgICAgICAgew0KICAgICAgICAgICAgSWdub3JlLA0KICAgICAgICAgICAgUGFydE9mQXJndW1lbnQsDQogICAgICAgICAgICBFbmRBcmd1bWVudA0KICAgICAgICB9DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gTWltaWNzIENvbW1hbmRMaW5lVG9Bcmd2VydzIGFyZ3VtZW50IHNwbGl0dGluZyBiZWhhdmlvciwgcGx1cyBidWcgZml4ZXMuDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIC8vLyA8cGFyYW0gbmFtZT0iaW5wdXQiPlRoZSBjb21tYW5kIGxpbmUgdG8gc3BsaXQgaW50byBhcmd1bWVudHMuPC9wYXJhbT4NCiAgICAgICAgLy8vIDxyZXR1cm5zPlRoZSB2YWx1ZXMgb2YgdGhlIGFyZ3VtZW50cyBzdXBwbGllZCBpbiB0aGUgaW5wdXQuPC9yZXR1cm5zPg0KICAgICAgICBwdWJsaWMgc3RhdGljIExpc3Q8c3RyaW5nPiBDb21tYW5kTGluZVRvQXJndlcoc3RyaW5nIGlucHV0KQ0KICAgICAgICB7DQogICAgICAgICAgICAvLyBUaGlzIGZ1bmN0aW9uIG1pbWljcyBDb21tYW5kTGluZVRvQXJndlcncyBlc2NhcGluZyBiZWhhdmlvciwgZG9jdW1lbnRlZCBoZXJlOg0KICAgICAgICAgICAgLy8gaHR0cDovL21zZG4ubWljcm9zb2Z0LmNvbS9lbi11cy9saWJyYXJ5L3dpbmRvd3MvZGVza3RvcC9iYjc3NjM5MS5hc3B4DQoNCiAgICAgICAgICAgIC8vDQogICAgICAgICAgICAvLyBXZSB1c2VkIHRvIFAvSW52b2tlIHRvIHRoZSByZWFsIENvbW1hbmRMaW5lVG9Bcmd2VywgYnV0IHJlLWltcGxlbWVudCBpdCBoZXJlDQogICAgICAgICAgICAvLyBhcyBhIHdvcmthcm91bmQgZm9yIHRoZSBmb2xsb3dpbmc6DQogICAgICAgICAgICAvLyANCiAgICAgICAgICAgIC8vICogQ29tbWFuZExpbmVUb0FyZ3ZXIGRvZXMgbm90IHRyZWF0IG5ld2xpbmVzIGFzIHdoaXRlc3BhY2UgKHR3Y3NlYy10ZnMwMSBidWcgIyAxNzI5MSkNCiAgICAgICAgICAgIC8vICogQ29tbWFuZExpbmVUb0FyZ3ZXIHJldHVybnMgdGhlIGV4ZWN1dGFibGUgbmFtZSBmb3IgdGhlIGVtcHR5IHN0cmluZywgbm90IHRoZSBlbXB0eSBzZXQNCiAgICAgICAgICAgIC8vICogQ29tbWFuZExpbmVUb0FyZ3ZXIGNob2tlcyBvbiBsZWFkaW5nIHdoaXRlc3BhY2UgKHR3Y3NlYy10ZnMwMSBidWcjIDE3Mzc4KQ0KICAgICAgICAgICAgLy8NCiAgICAgICAgICAgIC8vIGFuZCBhcyBhIHJlc3VsdCBvZiB0aGUgYWJvdmUgd2UgZXhwZWN0IHRvIGZpbmQgbW9yZSBuYXN0eSBlZGdlIGNhc2VzIGluIHRoZSBmdXR1cmUuDQogICAgICAgICAgICAvLw0KDQogICAgICAgICAgICBpZiAoaW5wdXQgPT0gbnVsbCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgQXJndW1lbnROdWxsRXhjZXB0aW9uKCJpbnB1dCIpOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBXaGl0ZXNwYWNlTW9kZSB3aGl0ZXNwYWNlTW9kZSA9IFdoaXRlc3BhY2VNb2RlLklnbm9yZTsNCiAgICAgICAgICAgIGludCBzbGFzaENvdW50ID0gMDsNCg0KICAgICAgICAgICAgdmFyIHJlc3VsdCA9IG5ldyBMaXN0PHN0cmluZz4oKTsNCiAgICAgICAgICAgIHZhciBzYiA9IG5ldyBTdHJpbmdCdWlsZGVyKCk7DQoNCiAgICAgICAgICAgIGZvcmVhY2ggKGNoYXIgYyBpbiBpbnB1dCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBpZiAod2hpdGVzcGFjZU1vZGUgPT0gV2hpdGVzcGFjZU1vZGUuSWdub3JlICYmIENoYXIuSXNXaGl0ZVNwYWNlKGMpKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgLy8gUHVycG9zZWx5IGRvIG5vdGhpbmcNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgZWxzZSBpZiAod2hpdGVzcGFjZU1vZGUgPT0gV2hpdGVzcGFjZU1vZGUuRW5kQXJndW1lbnQgJiYgQ2hhci5Jc1doaXRlU3BhY2UoYykpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBBZGRTbGFzaGVzKHNiLCByZWYgc2xhc2hDb3VudCk7DQogICAgICAgICAgICAgICAgICAgIEVtaXRBcmd1bWVudChyZXN1bHQsIHNiKTsNCiAgICAgICAgICAgICAgICAgICAgd2hpdGVzcGFjZU1vZGUgPSBXaGl0ZXNwYWNlTW9kZS5JZ25vcmU7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGVsc2UgaWYgKGMgPT0gJ1xcJykNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICsrc2xhc2hDb3VudDsNCiAgICAgICAgICAgICAgICAgICAgaWYgKHdoaXRlc3BhY2VNb2RlID09IFdoaXRlc3BhY2VNb2RlLklnbm9yZSkNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgd2hpdGVzcGFjZU1vZGUgPSBXaGl0ZXNwYWNlTW9kZS5FbmRBcmd1bWVudDsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBlbHNlIGlmIChjID09ICdcIicpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBib29sIHF1b3RlSXNFc2NhcGVkID0gKHNsYXNoQ291bnQgJiAxKSA9PSAxOw0KICAgICAgICAgICAgICAgICAgICBzbGFzaENvdW50ID4+PSAxOyAvLyBVc2luZyA+PiB0byBhdm9pZCBDIyBiYW5rZXJzIHJvdW5kaW5nDQogICAgICAgICAgICAgICAgICAgIC8vIDJuIGJhY2tzbGFzaGVzIGZvbGxvd2VkIGJ5IGEgcXVvdGF0aW9uIG1hcmsgcHJvZHVjZSBuIHNsYXNoZXMgZm9sbG93ZWQgYnkgYSBxdW90YXRpb24gbWFyaw0KICAgICAgICAgICAgICAgICAgICBBZGRTbGFzaGVzKHNiLCByZWYgc2xhc2hDb3VudCk7DQoNCiAgICAgICAgICAgICAgICAgICAgaWYgKHF1b3RlSXNFc2NhcGVkKQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICBzYi5BcHBlbmQoYyk7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAod2hpdGVzcGFjZU1vZGUgPT0gV2hpdGVzcGFjZU1vZGUuUGFydE9mQXJndW1lbnQpDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHdoaXRlc3BhY2VNb2RlID0gV2hpdGVzcGFjZU1vZGUuRW5kQXJndW1lbnQ7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgZWxzZQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICB3aGl0ZXNwYWNlTW9kZSA9IFdoaXRlc3BhY2VNb2RlLlBhcnRPZkFyZ3VtZW50Ow0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGVsc2UNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIEFkZFNsYXNoZXMoc2IsIHJlZiBzbGFzaENvdW50KTsNCiAgICAgICAgICAgICAgICAgICAgc2IuQXBwZW5kKGMpOw0KICAgICAgICAgICAgICAgICAgICBpZiAod2hpdGVzcGFjZU1vZGUgPT0gV2hpdGVzcGFjZU1vZGUuSWdub3JlKQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICB3aGl0ZXNwYWNlTW9kZSA9IFdoaXRlc3BhY2VNb2RlLkVuZEFyZ3VtZW50Ow0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBBZGRTbGFzaGVzKHNiLCByZWYgc2xhc2hDb3VudCk7DQogICAgICAgICAgICBpZiAoc2IuTGVuZ3RoICE9IDApDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgRW1pdEFyZ3VtZW50KHJlc3VsdCwgc2IpOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICByZXR1cm4gcmVzdWx0Ow0KICAgICAgICB9DQoNCiAgICAgICAgcHJpdmF0ZSBzdGF0aWMgdm9pZCBFbWl0QXJndW1lbnQoTGlzdDxzdHJpbmc+IHJlc3VsdCwgU3RyaW5nQnVpbGRlciBzYikNCiAgICAgICAgew0KICAgICAgICAgICAgcmVzdWx0LkFkZChzYi5Ub1N0cmluZygpKTsNCiAgICAgICAgICAgIHNiLkNsZWFyKCk7DQogICAgICAgIH0NCg0KICAgICAgICBwcml2YXRlIHN0YXRpYyB2b2lkIEFkZFNsYXNoZXMoU3RyaW5nQnVpbGRlciBzYiwgcmVmIGludCBzbGFzaENvdW50KQ0KICAgICAgICB7DQogICAgICAgICAgICBzYi5BcHBlbmQoJ1xcJywgc2xhc2hDb3VudCk7DQogICAgICAgICAgICBzbGFzaENvdW50ID0gMDsNCiAgICAgICAgfQ0KICAgIH0NCn0NCg==" + { + "ruleId": "CA1711", + "level": "error", + "message": { + "text": "Rename type name 'AssemblyLoadFileDelegate' so that it does not end in 'Delegate'.", + "id": "TypeNoAlternate" }, - "hashes": [ + "locations": [ { - "value": "0878916455AC07A4502DC3456418451D", - "algorithm": "md5" - }, - { - "value": "C9F3359CC12F91F95AB8043AB889662078171EA3", - "algorithm": "sha-1" - }, - { - "value": "BE8F69C1F9F4A599B81B88B85577FC0D4B864A26E98D244067F7BF876E5EA974", - "algorithm": "sha-256" + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", + "uriBaseId": "$(ProjectDir)", + "index": 3 + } + }, + "logicalLocations": [ + { + "index": 132, + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.AssemblyLoadFileDelegate" + } + ] } - ] - }, - "file:///E:/src/sarif-sdk-test/src/Sarif.Driver/Sdk/DefaultDriverOptions.cs": { - "mimeType": "text/x-csharp", - "contents": { - "binary": "77u/Ly8gQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuDQovLyBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UuIFNlZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHByb2plY3Qgcm9vdCBmb3IgZnVsbCBsaWNlbnNlIGluZm9ybWF0aW9uLg0KDQp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsNCg0KbmFtZXNwYWNlIE1pY3Jvc29mdC5Db2RlQW5hbHlzaXMuU2FyaWYuRHJpdmVyDQp7DQogICAgLy8vIDxzdW1tYXJ5Pg0KICAgIC8vLyBPcHRpb25zIHRoYXQgY3V0IGFjcm9zcyBhbGwgcnVsZXMgdGhhdCBhcmUgcHJvdmlkZWQgYnkgYSBkcml2ZXIuIEN1cnJlbnRseSByZXN0cmljdGVkIHRvIGEgDQogICAgLy8vIHNpbmdsZSBzZXR0aW5nIHRoYXQgYWxsb3dzIGZvciBydWxlcyB0byBiZSBleHBsaWNpdGx5IGRpc2FibGVkLiBJbiB0aGUgZnV0dXJlLCB0aGlzIA0KICAgIC8vLyBzYW1lIG1lY2hhbmlzbSB3aWxsIGJlIGltcHJvdmVkIHRvIGFsbG93IGNvbmZpZ3VyYXRpb24gdG8gYWx0ZXIgdGhlIHdhcm5pbmcgbGV2ZWwNCiAgICAvLy8gZm9yIGEgcmVzdWx0Lg0KICAgIC8vLyA8L3N1bW1hcnk+DQogICAgcHVibGljIGNsYXNzIERlZmF1bHREcml2ZXJPcHRpb25zIDogSU9wdGlvbnNQcm92aWRlcg0KICAgIHsNCiAgICAgICAgcHVibGljIHN0YXRpYyBEZWZhdWx0RHJpdmVyT3B0aW9ucyBJbnN0YW5jZSA9IG5ldyBEZWZhdWx0RHJpdmVyT3B0aW9ucygpOw0KDQogICAgICAgIHByaXZhdGUgRGVmYXVsdERyaXZlck9wdGlvbnMoKQ0KICAgICAgICB7DQogICAgICAgIH0NCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBFbmFibGUgbmFtZXNwYWNlIGltcG9ydCBvcHRpbWl6YXRpb24uDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIHB1YmxpYyBzdGF0aWMgUGVyTGFuZ3VhZ2VPcHRpb248UnVsZUVuYWJsZWRTdGF0ZT4gUnVsZUVuYWJsZWQgeyBnZXQ7IH0gPQ0KICAgICAgICAgICAgbmV3IFBlckxhbmd1YWdlT3B0aW9uPFJ1bGVFbmFibGVkU3RhdGU+KA0KICAgICAgICAgICAgICAgIGZlYXR1cmU6ICJEZWZhdWx0RHJpdmVyT3B0aW9ucyIsIA0KICAgICAgICAgICAgICAgIG5hbWU6IG5hbWVvZihSdWxlRW5hYmxlZCksIA0KICAgICAgICAgICAgICAgIGRlZmF1bHRWYWx1ZTogKCkgPT4geyByZXR1cm4gUnVsZUVuYWJsZWRTdGF0ZS5EZWZhdWx0OyB9LA0KICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiANCiAgICAgICAgICAgICAgICBAIkVuYWJsZWQgc3RhdGUgb2YgcnVsZS4gVmFsaWQgdmFsdWVzOiBEZWZhdWx0LCBEaXNhYmxlZCwgV2FybmluZywgRXJyb3IuIEEgcnVsZSBpbiB0aGUgJ0RlZmF1bHQnICIgKyANCiAgICAgICAgICAgICAgICBAInN0YXRlIHdpbGwgcmFpc2UgYWxsIGlzc3VlcyBhcyBlcnJvcnMgb3Igd2FybmluZ3MgYWNjb3JkaW5nIHRvIGhvdyB0aGUgaXNzdWUgaXMgbG9nZ2VkLiIpOw0KDQogICAgICAgIHB1YmxpYyBzdGF0aWMgUGVyTGFuZ3VhZ2VPcHRpb248VD4gQ3JlYXRlUnVsZVNwZWNpZmljT3B0aW9uPFQ+KElSdWxlIHJ1bGUsIFBlckxhbmd1YWdlT3B0aW9uPFQ+IG9wdGlvbikNCiAgICAgICAgew0KICAgICAgICAgICAgLy8gVGhpcyBoZWxwZXIgcmV0dXJucyBhIGNvcHkgb2YgYSBydWxlIG9wdGlvbiB0aGF0IGlzIHF1YWxpZmllZCBieSBhIG5ldyBmZWF0dXJlIG5hbWUgY29uc3RydWN0ZWQNCiAgICAgICAgICAgIC8vIGZyb20gYW4gYXJiaXRyYXJ5IHJ1bGUgaW5zdGFuY2UuIFRoaXMgYWxsb3dzIHVzZXJzIHRvIGNyZWF0ZSBhIGdlbmVyaWMgcHJvcGVydHkgZGVzY3JpcHRvcg0KICAgICAgICAgICAgLy8gdGhhdCBpcyBmdXJ0aGVyIHF1YWxpZmllZCAoYnkgZmVhdHVyZSBuYW1lKSB0byBiZSBhc3NvY2lhdGVkIHdpdGggYSBkaWZmZXJlbnQgY2hlY2suDQogICAgICAgICAgICByZXR1cm4gbmV3IFBlckxhbmd1YWdlT3B0aW9uPFQ+KA0KICAgICAgICAgICAgICAgIGZlYXR1cmU6IHJ1bGUuSWQgKyAiLiIgKyBydWxlLk5hbWUuVGV4dCwNCiAgICAgICAgICAgICAgICBuYW1lOiBvcHRpb24uTmFtZSwNCiAgICAgICAgICAgICAgICBkZWZhdWx0VmFsdWU6IG9wdGlvbi5EZWZhdWx0VmFsdWUsDQogICAgICAgICAgICAgICAgZGVzY3JpcHRpb246IG9wdGlvbi5EZXNjcmlwdGlvbiApOw0KICAgICAgICB9DQoNCiAgICAgICAgcHVibGljIElFbnVtZXJhYmxlPElPcHRpb24+IEdldE9wdGlvbnMoKQ0KICAgICAgICB7DQogICAgICAgICAgICByZXR1cm4gbmV3IElPcHRpb25bXQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIFJ1bGVFbmFibGVkDQogICAgICAgICAgICB9Ow0KICAgICAgICB9DQogICAgfQ0KfQ0K" + ], + "partialFingerprints": { + "UniqueId": "TypeNoAlternate" }, - "hashes": [ - { - "value": "70B3E477CA39148CF072B9AE89ADBA4B", - "algorithm": "md5" - }, - { - "value": "D958175FAC9675F4734ECE230DD503C5A19D7EFE", - "algorithm": "sha-1" - }, - { - "value": "32EA2FB89C3345ED7706080296882DC415A0789DEC06A33CDE76F76A501D1F1B", - "algorithm": "sha-256" - } - ] + "properties": { + "Level": "CriticalError", + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" + } }, - "file:///E:/src/sarif-sdk-test/src/Sarif.Driver/DriverExtensionMethods.cs": { - "mimeType": "text/x-csharp", - "contents": { - "binary": "77u/Ly8gQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuDQovLyBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UuIFNlZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHByb2plY3Qgcm9vdCBmb3IgZnVsbCBsaWNlbnNlIGluZm9ybWF0aW9uLnVzaW5nIFN5c3RlbTsNCg0KdXNpbmcgTWljcm9zb2Z0LkNvZGVBbmFseXNpcy5TYXJpZi5Xcml0ZXJzOw0KDQpuYW1lc3BhY2UgTWljcm9zb2Z0LkNvZGVBbmFseXNpcy5TYXJpZi5Ecml2ZXINCnsNCiAgICBwdWJsaWMgc3RhdGljIGNsYXNzIERyaXZlckV4dGVuc2lvbk1ldGhvZHMNCiAgICB7DQogICAgICAgIHB1YmxpYyBzdGF0aWMgTG9nZ2luZ09wdGlvbnMgQ29udmVydFRvTG9nZ2luZ09wdGlvbnModGhpcyBBbmFseXplT3B0aW9uc0Jhc2UgYW5hbHl6ZU9wdGlvbnMpDQogICAgICAgIHsNCiAgICAgICAgICAgIExvZ2dpbmdPcHRpb25zIGxvZ2dpbmdPcHRpb25zID0gTG9nZ2luZ09wdGlvbnMuTm9uZTsNCg0KICAgICAgICAgICAgaWYgKGFuYWx5emVPcHRpb25zLlZlcmJvc2UpIHsgbG9nZ2luZ09wdGlvbnMgfD0gTG9nZ2luZ09wdGlvbnMuVmVyYm9zZTsgfQ0KICAgICAgICAgICAgaWYgKGFuYWx5emVPcHRpb25zLlByZXR0eVByaW50KSB7IGxvZ2dpbmdPcHRpb25zIHw9IExvZ2dpbmdPcHRpb25zLlByZXR0eVByaW50OyB9DQogICAgICAgICAgICBpZiAoYW5hbHl6ZU9wdGlvbnMuRm9yY2UpIHsgbG9nZ2luZ09wdGlvbnMgfD0gTG9nZ2luZ09wdGlvbnMuT3ZlcndyaXRlRXhpc3RpbmdPdXRwdXRGaWxlOyB9DQoNCiAgICAgICAgICAgIHJldHVybiBsb2dnaW5nT3B0aW9uczsNCiAgICAgICAgfQ0KICAgIH0NCn0NCg==" + { + "ruleId": "CA3053", + "message": { + "text": "'ClangAnalyzerConverter.Convert(Stream, IResultLogWriter, OptionallyEmittedData)' instantiates an XmlReader instance by calling System.Xml.XmlReader.Create(System.IO.Stream,System.Xml.XmlReaderSettings) and provided an XmlReaderSettings instance with an insecure XmlResolver property value. This usage is potentially unsafe as untrusted external resources may be resolved during read operations. Provide a XmlReaderSettings instance and set the XmlResolver property to null or an instance of XmlSecureResolver.", + "id": "XmlReaderCreateInsecureXmlResolver" }, - "hashes": [ - { - "value": "8DCBF982C1AFDD37E51668D7AAED7D2D", - "algorithm": "md5" - }, - { - "value": "E4240E9BECF3399C7A4C9C29C74FCF001BBEE78F", - "algorithm": "sha-1" - }, - { - "value": "B6A8FDAD1C48655C27F6581D02C5E0865FDA906312FE754CEBE2A6702BEC7327", - "algorithm": "sha-256" - } - ] - }, - "file:///E:/src/sarif-sdk-test/src/Sarif.Driver/Sdk/CompositionUtilities.cs": { - "mimeType": "text/x-csharp", - "contents": { - "binary": "77u/Ly8gQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuDQovLyBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UuIFNlZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHByb2plY3Qgcm9vdCBmb3IgZnVsbCBsaWNlbnNlIGluZm9ybWF0aW9uLg0KDQp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsNCnVzaW5nIFN5c3RlbS5Db2xsZWN0aW9ucy5JbW11dGFibGU7DQp1c2luZyBTeXN0ZW0uQ29tcG9zaXRpb24uQ29udmVudGlvbjsNCnVzaW5nIFN5c3RlbS5Db21wb3NpdGlvbi5Ib3N0aW5nOw0KdXNpbmcgU3lzdGVtLlJlZmxlY3Rpb247DQoNCm5hbWVzcGFjZSBNaWNyb3NvZnQuQ29kZUFuYWx5c2lzLlNhcmlmLkRyaXZlcg0Kew0KICAgIGludGVybmFsIHN0YXRpYyBjbGFzcyBEcml2ZXJVdGlsaXRpZXMNCiAgICB7DQogICAgICAgIHB1YmxpYyBzdGF0aWMgSW1tdXRhYmxlQXJyYXk8VD4gR2V0RXhwb3J0czxUPihJRW51bWVyYWJsZTxBc3NlbWJseT4gYXNzZW1ibGllcykNCiAgICAgICAgew0KICAgICAgICAgICAgdmFyIGNvbnRhaW5lciA9IENyZWF0ZUNvbXBvc2l0aW9uQ29udGFpbmVyPFQ+KGFzc2VtYmxpZXMpOw0KICAgICAgICAgICAgcmV0dXJuIGNvbnRhaW5lci5HZXRFeHBvcnRzPFQ+KCkuVG9JbW11dGFibGVBcnJheSgpOw0KICAgICAgICB9DQoNCiAgICAgICAgcHJpdmF0ZSBzdGF0aWMgQ29tcG9zaXRpb25Ib3N0IENyZWF0ZUNvbXBvc2l0aW9uQ29udGFpbmVyPFQ+KElFbnVtZXJhYmxlPEFzc2VtYmx5PiBhc3NlbWJsaWVzKQ0KICAgICAgICB7DQogICAgICAgICAgICBDb252ZW50aW9uQnVpbGRlciBjb252ZW50aW9ucyA9IEdldENvbnZlbnRpb25zPFQ+KCk7DQoNCiAgICAgICAgICAgIHJldHVybiBuZXcgQ29udGFpbmVyQ29uZmlndXJhdGlvbigpDQogICAgICAgICAgICAgICAgLldpdGhBc3NlbWJsaWVzKGFzc2VtYmxpZXMsIGNvbnZlbnRpb25zKQ0KICAgICAgICAgICAgICAgIC5DcmVhdGVDb250YWluZXIoKTsNCiAgICAgICAgfQ0KDQogICAgICAgIHByaXZhdGUgc3RhdGljIENvbnZlbnRpb25CdWlsZGVyIEdldENvbnZlbnRpb25zPFQ+KCkNCiAgICAgICAgew0KICAgICAgICAgICAgdmFyIGNvbnZlbnRpb25zID0gbmV3IENvbnZlbnRpb25CdWlsZGVyKCk7DQoNCiAgICAgICAgICAgIC8vIE5ldyBwZXItYW5hbHl6ZXIgb3B0aW9ucyBtZWNoYW5pc20gDQogICAgICAgICAgICBjb252ZW50aW9ucy5Gb3JUeXBlc0Rlcml2ZWRGcm9tPFQ+KCkNCiAgICAgICAgICAgICAgICAuRXhwb3J0PFQ+KCk7DQoNCiAgICAgICAgICAgIHJldHVybiBjb252ZW50aW9uczsNCiAgICAgICAgfQ0KICAgIH0NCn0NCg==" + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", + "uriBaseId": "$(ProjectDir)", + "index": 3 }, - "hashes": [ - { - "value": "4822A208FA68050764CD2975448549AE", - "algorithm": "md5" - }, - { - "value": "B11EE77C180C8C1A0EAE298FE28BEC85CDA8862F", - "algorithm": "sha-1" - }, + "locations": [ { - "value": "9F8D2C31CD778D3C26221FF8CD5F8D23173DFB8AFA1598E7D306667632CC64B1", - "algorithm": "sha-256" + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/ClangAnalyzerConverter.cs", + "index": 5 + }, + "region": { + "startLine": 48 + } + }, + "logicalLocations": [ + { + "index": 134, + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.ClangAnalyzerConverter.Convert(System.IO.Stream,Microsoft.CodeAnalysis.Sarif.IResultLogWriter,Microsoft.CodeAnalysis.Sarif.OptionallyEmittedData)" + } + ] } - ] - }, - "file:///E:/src/sarif-sdk-test/src/Sarif.Driver/Sdk/EntryPointUtilities.cs": { - "mimeType": "text/x-csharp", - "contents": { - "binary": "77u/Ly8gQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuDQovLyBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UuIFNlZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHByb2plY3Qgcm9vdCBmb3IgZnVsbCBsaWNlbnNlIGluZm9ybWF0aW9uLg0KDQp1c2luZyBTeXN0ZW07DQp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsNCnVzaW5nIFN5c3RlbS5SdW50aW1lLkludGVyb3BTZXJ2aWNlczsNCg0KbmFtZXNwYWNlIE1pY3Jvc29mdC5Db2RlQW5hbHlzaXMuU2FyaWYuRHJpdmVyDQp7DQogICAgcHVibGljIHN0YXRpYyBjbGFzcyBFbnRyeVBvaW50VXRpbGl0aWVzDQogICAgew0KICAgICAgICBwdWJsaWMgc3RhdGljIHN0cmluZ1tdIEdlbmVyYXRlQXJndW1lbnRzKA0KICAgICAgICAgICAgc3RyaW5nW10gYXJncywNCiAgICAgICAgICAgIElGaWxlU3lzdGVtIGZpbGVTeXN0ZW0sDQogICAgICAgICAgICBJRW52aXJvbm1lbnRWYXJpYWJsZXMgZW52aXJvbm1lbnRWYXJpYWJsZXMpDQogICAgICAgIHsNCiAgICAgICAgICAgIExpc3Q8c3RyaW5nPiBleHBhbmRlZEFyZ3VtZW50cyA9IG5ldyBMaXN0PHN0cmluZz4oKTsNCg0KICAgICAgICAgICAgZm9yZWFjaCAoc3RyaW5nIGFyZ3VtZW50IGluIGFyZ3MpDQogICAgICAgICAgICB7DQoNCiAgICAgICAgICAgICAgICBpZiAoIUlzUmVzcG9uc2VGaWxlQXJndW1lbnQoYXJndW1lbnQpKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgZXhwYW5kZWRBcmd1bWVudHMuQWRkKGFyZ3VtZW50KTsNCiAgICAgICAgICAgICAgICAgICAgY29udGludWU7DQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgc3RyaW5nIHJlc3BvbnNlRmlsZSA9IGFyZ3VtZW50LlRyaW0oJyInKS5TdWJzdHJpbmcoMSk7DQoNCiAgICAgICAgICAgICAgICByZXNwb25zZUZpbGUgPSBlbnZpcm9ubWVudFZhcmlhYmxlcy5FeHBhbmRFbnZpcm9ubWVudFZhcmlhYmxlcyhyZXNwb25zZUZpbGUpOw0KICAgICAgICAgICAgICAgIHJlc3BvbnNlRmlsZSA9IGZpbGVTeXN0ZW0uR2V0RnVsbFBhdGgocmVzcG9uc2VGaWxlKTsNCg0KICAgICAgICAgICAgICAgIHN0cmluZ1tdIHJlc3BvbnNlRmlsZUxpbmVzID0gZmlsZVN5c3RlbS5SZWFkQWxsTGluZXMocmVzcG9uc2VGaWxlKTsNCg0KICAgICAgICAgICAgICAgIEV4cGFuZFJlc3BvbnNlRmlsZShyZXNwb25zZUZpbGVMaW5lcywgZXhwYW5kZWRBcmd1bWVudHMpOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICByZXR1cm4gZXhwYW5kZWRBcmd1bWVudHMuVG9BcnJheSgpOw0KICAgICAgICB9DQoNCiAgICAgICAgcHJpdmF0ZSBzdGF0aWMgYm9vbCBJc1Jlc3BvbnNlRmlsZUFyZ3VtZW50KHN0cmluZyBhcmd1bWVudCkNCiAgICAgICAgew0KICAgICAgICAgICAgcmV0dXJuIGFyZ3VtZW50WzBdID09ICdAJyAmJiBhcmd1bWVudC5MZW5ndGggPiAxOw0KICAgICAgICB9DQoNCiAgICAgICAgcHJpdmF0ZSBzdGF0aWMgdm9pZCBFeHBhbmRSZXNwb25zZUZpbGUoc3RyaW5nW10gcmVzcG9uc2VGaWxlTGluZXMsIExpc3Q8c3RyaW5nPiBleHBhbmRlZEFyZ3VtZW50cykNCiAgICAgICAgew0KICAgICAgICAgICAgZm9yZWFjaCAoc3RyaW5nIHJlc3BvbnNlRmlsZUxpbmUgaW4gcmVzcG9uc2VGaWxlTGluZXMpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgaW50IGFyZ3VtZW50Q291bnQ7DQogICAgICAgICAgICAgICAgSW50UHRyIHBvaW50ZXI7DQoNCiAgICAgICAgICAgICAgICBwb2ludGVyID0gQ29tbWFuZExpbmVUb0FyZ3ZXKHJlc3BvbnNlRmlsZUxpbmUuVHJpbSgpLCBvdXQgYXJndW1lbnRDb3VudCk7DQoNCiAgICAgICAgICAgICAgICBpZiAocG9pbnRlciA9PSBJbnRQdHIuWmVybykNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbnZhbGlkT3BlcmF0aW9uRXhjZXB0aW9uKCJDb3VsZCBub3QgcGFyc2UgcmVzcG9uc2UgZmlsZSBsaW5lOiIgKyByZXNwb25zZUZpbGVMaW5lKTsNCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICB0cnkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIC8vIENvcHkgZWFjaCBvZiB0aGVzZSBzdHJpbmdzIGludG8gb3VyIHNwbGl0IGFyZ3VtZW50IGFycmF5Lg0KICAgICAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGFyZ3VtZW50Q291bnQ7IGkrKykNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgZXhwYW5kZWRBcmd1bWVudHMuQWRkKE1hcnNoYWwuUHRyVG9TdHJpbmdVbmkoTWFyc2hhbC5SZWFkSW50UHRyKHBvaW50ZXIsIGkgKiBJbnRQdHIuU2l6ZSkpKTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGZpbmFsbHkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIExvY2FsRnJlZShwb2ludGVyKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICBbRGxsSW1wb3J0KCJzaGVsbDMyLmRsbCIsIFNldExhc3RFcnJvciA9IHRydWUpXQ0KICAgICAgICBzdGF0aWMgZXh0ZXJuIEludFB0ciBDb21tYW5kTGluZVRvQXJndlcoW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkxQV1N0cildIHN0cmluZyBscENtZExpbmUsIG91dCBpbnQgcE51bUFyZ3MpOw0KDQogICAgICAgIFtEbGxJbXBvcnQoImtlcm5lbDMyLmRsbCIpXQ0KICAgICAgICBzdGF0aWMgZXh0ZXJuIEludFB0ciBMb2NhbEZyZWUoSW50UHRyIGhNZW0pOw0KICAgIH0NCn0NCg==" + ], + "partialFingerprints": { + "UniqueId": "XmlReaderCreateInsecureXmlResolver" }, - "hashes": [ - { - "value": "323D62D39303E72A09BCCE37667B4D66", - "algorithm": "md5" - }, - { - "value": "96CAEE925D7966407E28E38FF6D762913729E5CE", - "algorithm": "sha-1" - }, - { - "value": "CD3071E51C16BBBC184F4135B63A78D4EA31792E16584EA36BFDF993E5575A24", - "algorithm": "sha-256" - } - ] + "properties": { + "Category": "Microsoft.Security.Xml", + "FixCategory": "NonBreaking" + } }, - "file:///E:/src/sarif-sdk-test/src/Sarif.Driver/Sdk/ExportConfigurationCommandBase.cs": { - "mimeType": "text/x-csharp", - "contents": { - "binary": "77u/Ly8gQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuDQovLyBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UuIFNlZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHByb2plY3Qgcm9vdCBmb3IgZnVsbCBsaWNlbnNlIGluZm9ybWF0aW9uLg0KDQp1c2luZyBTeXN0ZW07DQp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsNCnVzaW5nIFN5c3RlbS5Db2xsZWN0aW9ucy5JbW11dGFibGU7DQp1c2luZyBTeXN0ZW0uSU87DQoNCm5hbWVzcGFjZSBNaWNyb3NvZnQuQ29kZUFuYWx5c2lzLlNhcmlmLkRyaXZlcg0Kew0KICAgIHB1YmxpYyBhYnN0cmFjdCBjbGFzcyBFeHBvcnRDb25maWd1cmF0aW9uQ29tbWFuZEJhc2UgOiBQbHVnSW5Ecml2ZXJDb21tYW5kPEV4cG9ydENvbmZpZ3VyYXRpb25PcHRpb25zPg0KICAgIHsNCiAgICAgICAgcHVibGljIG92ZXJyaWRlIGludCBSdW4oRXhwb3J0Q29uZmlndXJhdGlvbk9wdGlvbnMgZXhwb3J0T3B0aW9ucykNCiAgICAgICAgew0KICAgICAgICAgICAgaW50IHJlc3VsdCA9IEZBSUxVUkU7DQoNCiAgICAgICAgICAgIHRyeQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIFByb3BlcnRpZXNEaWN0aW9uYXJ5IGFsbE9wdGlvbnMgPSBuZXcgUHJvcGVydGllc0RpY3Rpb25hcnkoKTsNCg0KICAgICAgICAgICAgICAgIC8vIFRoZSBleHBvcnQgY29tbWFuZCBjb3VsZCBiZSB1cGRhdGVkIGluIHRoZSBmdXR1cmUgdG8gYWNjZXB0IGFuIGFyYml0cmFyeSBzZXQNCiAgICAgICAgICAgICAgICAvLyBvZiBhbmFseXplcnMgZm9yIHdoaWNoIHRvIGJ1aWxkIGFuIG9wdGlvbnMgWE1MIGZpbGUgc3VpdGFibGUgZm9yIGNvbmZpZ3VyaW5nIHRoZW0uDQogICAgICAgICAgICAgICAgSW1tdXRhYmxlQXJyYXk8SU9wdGlvbnNQcm92aWRlcj4gcHJvdmlkZXJzID0gRHJpdmVyVXRpbGl0aWVzLkdldEV4cG9ydHM8SU9wdGlvbnNQcm92aWRlcj4oRGVmYXVsdFBsdWdJbkFzc2VtYmxpZXMpOw0KICAgICAgICAgICAgICAgIGZvcmVhY2ggKElPcHRpb25zUHJvdmlkZXIgcHJvdmlkZXIgaW4gcHJvdmlkZXJzKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgSU9wdGlvbiBzYW1wbGVPcHRpb24gPSBudWxsOw0KDQogICAgICAgICAgICAgICAgICAgIC8vIEV2ZXJ5IGFuYWx5c2lzIG9wdGlvbnMgcHJvdmlkZXIgaGFzIGFjY2VzcyB0byB0aGUgZm9sbG93aW5nIGRlZmF1bHQgY29uZmlndXJhdGlvbiBrbm9icw0KICAgICAgICAgICAgICAgICAgICBmb3JlYWNoIChJT3B0aW9uIG9wdGlvbiBpbiBwcm92aWRlci5HZXRPcHRpb25zKCkpDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHNhbXBsZU9wdGlvbiA9IHNhbXBsZU9wdGlvbiA/PyBvcHRpb247DQogICAgICAgICAgICAgICAgICAgICAgICBhbGxPcHRpb25zLlNldFByb3BlcnR5KG9wdGlvbiwgb3B0aW9uLkRlZmF1bHRWYWx1ZSwgY2FjaGVEZXNjcmlwdGlvbjogdHJ1ZSk7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICBJRW51bWVyYWJsZTxJUnVsZT4gcnVsZXM7DQogICAgICAgICAgICAgICAgcnVsZXMgPSBEcml2ZXJVdGlsaXRpZXMuR2V0RXhwb3J0czxJUnVsZT4oRGVmYXVsdFBsdWdJbkFzc2VtYmxpZXMpOw0KDQogICAgICAgICAgICAgICAgLy8gVGhpcyBjb2RlIGluamVjdHMgcHJvcGVydGllcyB0aGF0IGFyZSBwcm92aWRlZCBmb3IgZXZlcnkgcnVsZSBpbnN0YW5jZS4NCiAgICAgICAgICAgICAgICBmb3JlYWNoIChJUnVsZSBydWxlIGluIHJ1bGVzKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgb2JqZWN0IG9iamVjdFJlc3VsdDsNCiAgICAgICAgICAgICAgICAgICAgUHJvcGVydGllc0RpY3Rpb25hcnkgcHJvcGVydGllczsNCg0KICAgICAgICAgICAgICAgICAgICBzdHJpbmcgcnVsZU9wdGlvbnNLZXkgPSBydWxlLklkICsgIi4iICsgcnVsZS5OYW1lLlRleHQgKyAiLk9wdGlvbnMiOw0KDQogICAgICAgICAgICAgICAgICAgIGlmICghYWxsT3B0aW9ucy5UcnlHZXRWYWx1ZShydWxlT3B0aW9uc0tleSwgb3V0IG9iamVjdFJlc3VsdCkpDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIG9iamVjdFJlc3VsdCA9IGFsbE9wdGlvbnNbcnVsZU9wdGlvbnNLZXldID0gbmV3IFByb3BlcnRpZXNEaWN0aW9uYXJ5KCk7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgcHJvcGVydGllcyA9IChQcm9wZXJ0aWVzRGljdGlvbmFyeSlvYmplY3RSZXN1bHQ7DQoNCiAgICAgICAgICAgICAgICAgICAgZm9yZWFjaCAoSU9wdGlvbiBvcHRpb24gaW4gRGVmYXVsdERyaXZlck9wdGlvbnMuSW5zdGFuY2UuR2V0T3B0aW9ucygpKQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0aWVzLlNldFByb3BlcnR5KG9wdGlvbiwgb3B0aW9uLkRlZmF1bHRWYWx1ZSwgY2FjaGVEZXNjcmlwdGlvbjogdHJ1ZSwgcGVyc2lzdFRvU2V0dGluZ3NDb250YWluZXIgOiBmYWxzZSk7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICBzdHJpbmcgZXh0ZW5zaW9uID0gUGF0aC5HZXRFeHRlbnNpb24oZXhwb3J0T3B0aW9ucy5PdXRwdXRGaWxlUGF0aCk7DQoNCiAgICAgICAgICAgICAgICBpZiAoZXh0ZW5zaW9uLkVxdWFscygiLnhtbCIsIFN0cmluZ0NvbXBhcmlzb24uT3JkaW5hbElnbm9yZUNhc2UpKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgYWxsT3B0aW9ucy5TYXZlVG9YbWwoZXhwb3J0T3B0aW9ucy5PdXRwdXRGaWxlUGF0aCk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGVsc2UgaWYgKGV4dGVuc2lvbi5FcXVhbHMoIi5qc29uIiwgU3RyaW5nQ29tcGFyaXNvbi5PcmRpbmFsSWdub3JlQ2FzZSkpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBhbGxPcHRpb25zLlNhdmVUb0pzb24oZXhwb3J0T3B0aW9ucy5PdXRwdXRGaWxlUGF0aCk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGVsc2UgaWYgKGV4cG9ydE9wdGlvbnMuRmlsZUZvcm1hdCA9PSBGaWxlRm9ybWF0LlhtbCkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIGFsbE9wdGlvbnMuU2F2ZVRvWG1sKGV4cG9ydE9wdGlvbnMuT3V0cHV0RmlsZVBhdGgpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBlbHNlDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBhbGxPcHRpb25zLlNhdmVUb0pzb24oZXhwb3J0T3B0aW9ucy5PdXRwdXRGaWxlUGF0aCk7DQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgQ29uc29sZS5Xcml0ZUxpbmUoIkNvbmZpZ3VyYXRpb24gZmlsZSBzYXZlZCB0bzogIiArIFBhdGguR2V0RnVsbFBhdGgoZXhwb3J0T3B0aW9ucy5PdXRwdXRGaWxlUGF0aCkpOw0KDQogICAgICAgICAgICAgICAgcmVzdWx0ID0gU1VDQ0VTUzsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGNhdGNoIChFeGNlcHRpb24gZXgpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgQ29uc29sZS5FcnJvci5Xcml0ZUxpbmUoZXguVG9TdHJpbmcoKSk7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIHJldHVybiByZXN1bHQ7DQogICAgICAgIH0NCiAgICB9DQp9DQo=" + { + "ruleId": "CA1502", + "message": { + "text": "'ClangAnalyzerConverter.ReadDictionary(XmlReader)' has a cyclomatic complexity of 30. Rewrite or refactor the method to reduce complexity to 25." }, - "hashes": [ - { - "value": "315EA2F57966C4D1464D316331358E2C", - "algorithm": "md5" - }, - { - "value": "DD987B2260A3D32EE42FAEFF52F9EF2AEDE3076B", - "algorithm": "sha-1" - }, - { - "value": "4767276940B2578A358260E08CBD93EA6607465D7167D9D9BE879587536B38B1", - "algorithm": "sha-256" - } - ] - }, - "file:///E:/src/sarif-sdk-test/src/Sarif.Driver/Sdk/ExportRulesMetadataCommandBase.cs": { - "mimeType": "text/x-csharp", - "contents": { - "binary": "77u/Ly8gQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuDQovLyBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UuIFNlZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHByb2plY3Qgcm9vdCBmb3IgZnVsbCBsaWNlbnNlIGluZm9ybWF0aW9uLg0KDQp1c2luZyBTeXN0ZW07DQp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsNCnVzaW5nIFN5c3RlbS5Db2xsZWN0aW9ucy5JbW11dGFibGU7DQp1c2luZyBTeXN0ZW0uSU87DQp1c2luZyBTeXN0ZW0uVGV4dDsNCnVzaW5nIE1pY3Jvc29mdC5Db2RlQW5hbHlzaXMuU2FyaWYuUmVhZGVyczsNCg0KdXNpbmcgTmV3dG9uc29mdC5Kc29uOw0KDQpuYW1lc3BhY2UgTWljcm9zb2Z0LkNvZGVBbmFseXNpcy5TYXJpZi5Ecml2ZXINCnsNCiAgICBwdWJsaWMgYWJzdHJhY3QgY2xhc3MgRXhwb3J0UnVsZXNNZXRhZGF0YUNvbW1hbmRCYXNlIDogUGx1Z0luRHJpdmVyQ29tbWFuZDxFeHBvcnRSdWxlc01ldGFkYXRhT3B0aW9ucz4NCiAgICB7DQoNCiAgICAgICAgcHVibGljIG92ZXJyaWRlIGludCBSdW4oRXhwb3J0UnVsZXNNZXRhZGF0YU9wdGlvbnMgZXhwb3J0T3B0aW9ucykNCiAgICAgICAgew0KICAgICAgICAgICAgaW50IHJlc3VsdCA9IEZBSUxVUkU7DQoNCiAgICAgICAgICAgIHRyeQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIEltbXV0YWJsZUFycmF5PElSdWxlPiBza2ltbWVycyA9IERyaXZlclV0aWxpdGllcy5HZXRFeHBvcnRzPElSdWxlPihEZWZhdWx0UGx1Z0luQXNzZW1ibGllcyk7DQoNCiAgICAgICAgICAgICAgICBzdHJpbmcgZm9ybWF0ID0gIiI7DQogICAgICAgICAgICAgICAgc3RyaW5nIG91dHB1dEZpbGVQYXRoID0gZXhwb3J0T3B0aW9ucy5PdXRwdXRGaWxlUGF0aDsNCiAgICAgICAgICAgICAgICBzdHJpbmcgZXh0ZW5zaW9uID0gUGF0aC5HZXRFeHRlbnNpb24ob3V0cHV0RmlsZVBhdGgpOw0KICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgIHN3aXRjaCAoZXh0ZW5zaW9uKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgY2FzZSAoIi5qc29uIik6DQogICAgICAgICAgICAgICAgICAgIGNhc2UgKCIuc2FyaWYiKToNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgZm9ybWF0ID0gIlNBUklGIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIE91dHB1dFNhcmlmUnVsZXNNZXRhZGEob3V0cHV0RmlsZVBhdGgsIHNraW1tZXJzKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAgICAgY2FzZSAoIi54bWwiKToNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgZm9ybWF0ID0gIlNvbmFyUXViZSI7DQogICAgICAgICAgICAgICAgICAgICAgICBPdXRwdXRTb25hclF1YmVSdWxlc01ldGFkYShvdXRwdXRGaWxlUGF0aCwgc2tpbW1lcnMpOw0KICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSW52YWxpZE9wZXJhdGlvbkV4Y2VwdGlvbigiVW5yZWNvZ25pemVkIG91dHB1dCBmaWxlIGV4dGVuc2lvbjogIiArIGV4dGVuc2lvbik7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICByZXN1bHQgPSBTVUNDRVNTOw0KICAgICAgICAgICAgICAgIENvbnNvbGUuV3JpdGVMaW5lKGZvcm1hdCArICIgcnVsZXMgbWV0YWRhdGEgZXhwb3J0ZWQgdG86ICIgKyBQYXRoLkdldEZ1bGxQYXRoKG91dHB1dEZpbGVQYXRoKSk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBjYXRjaCAoRXhjZXB0aW9uIGV4KQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIENvbnNvbGUuRXJyb3IuV3JpdGVMaW5lKGV4LlRvU3RyaW5nKCkpOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICByZXR1cm4gcmVzdWx0Ow0KICAgICAgICB9DQoNCiAgICAgICAgcHJpdmF0ZSB2b2lkIE91dHB1dFNvbmFyUXViZVJ1bGVzTWV0YWRhKHN0cmluZyBvdXRwdXRGaWxlUGF0aCwgSW1tdXRhYmxlQXJyYXk8SVJ1bGU+IHNraW1tZXJzKQ0KICAgICAgICB7DQogICAgICAgICAgICBjb25zdCBzdHJpbmcgVEFCID0gIiAgICI7DQogICAgICAgICAgICB2YXIgc2IgPSBuZXcgU3RyaW5nQnVpbGRlcigpOw0KDQogICAgICAgICAgICBTb3J0ZWREaWN0aW9uYXJ5PGludCwgSVJ1bGU+IHNvcnRlZFJ1bGVDb250ZXh0cyA9IG5ldyBTb3J0ZWREaWN0aW9uYXJ5PGludCwgSVJ1bGU+KCk7DQoNCiAgICAgICAgICAgIGZvcmVhY2ggKElSdWxlIHJ1bGUgaW4gc2tpbW1lcnMpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgaW50IG51bWVyaWNJZCA9IEdldElkSW50ZWdlclN1ZmZpeChydWxlLklkKTsNCiAgICAgICAgICAgICAgICBzb3J0ZWRSdWxlQ29udGV4dHNbbnVtZXJpY0lkXSA9IHJ1bGU7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIHNiLkFwcGVuZExpbmUoIjw/eG1sIHZlcnNpb249JzEuMCcgZW5jb2Rpbmc9J1VURi04Jz8+IiArIEVudmlyb25tZW50Lk5ld0xpbmUgKw0KICAgICAgICAgICAgICAgICAgICAgICAgICI8cnVsZXM+Iik7DQoNCiAgICAgICAgICAgIGZvcmVhY2ggKElSdWxlIHJ1bGVDb250ZXh0IGluIHNvcnRlZFJ1bGVDb250ZXh0cy5WYWx1ZXMpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgc2IuQXBwZW5kTGluZShUQUIgKyAiPHJ1bGU+Iik7DQogICAgICAgICAgICAgICAgc2IuQXBwZW5kTGluZShUQUIgKyBUQUIgKyAiPGtleT4iICsgcnVsZUNvbnRleHQuSWQgKyAiPC9rZXk+Iik7DQogICAgICAgICAgICAgICAgc2IuQXBwZW5kTGluZShUQUIgKyBUQUIgKyAiPG5hbWU+IiArIHJ1bGVDb250ZXh0Lk5hbWUgKyAiPC9uYW1lPiIpOw0KICAgICAgICAgICAgICAgIHNiLkFwcGVuZExpbmUoVEFCICsgVEFCICsgIjxzZXZlcml0eT5NQUpPUjwvc2V2ZXJpdHk+Iik7DQoNCiAgICAgICAgICAgICAgICBzYi5BcHBlbmRMaW5lKFRBQiArIFRBQiArICI8ZGVzY3JpcHRpb24+IiArIEVudmlyb25tZW50Lk5ld0xpbmUgKw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVEFCICsgVEFCICsgVEFCICsgIjwhW0NEQVRBWyIgKyBFbnZpcm9ubWVudC5OZXdMaW5lICsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRBQiArIFRBQiArIFRBQiArIFRBQiArIHJ1bGVDb250ZXh0LkZ1bGxEZXNjcmlwdGlvbiArIEVudmlyb25tZW50Lk5ld0xpbmUgKw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVEFCICsgVEFCICsgVEFCICsgIl1dPiIgKyBFbnZpcm9ubWVudC5OZXdMaW5lICsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRBQiArIFRBQiArICI8L2Rlc2NyaXB0aW9uPiIpOw0KDQogICAgICAgICAgICAgICAgc2IuQXBwZW5kTGluZShUQUIgKyBUQUIgKyAiPHRhZz5iaW5hcnk8L3RhZz4iKTsNCiAgICAgICAgICAgICAgICBzYi5BcHBlbmRMaW5lKFRBQiArICI8L3J1bGU+Iik7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIHNiLkFwcGVuZExpbmUoIjwvcnVsZXM+IiArIEVudmlyb25tZW50Lk5ld0xpbmUgKyAiPC9wcm9maWxlPiIpOw0KDQogICAgICAgICAgICBGaWxlLldyaXRlQWxsVGV4dChvdXRwdXRGaWxlUGF0aCwgc2IuVG9TdHJpbmcoKSk7DQogICAgICAgIH0gICAgDQoNCiAgICAgICAgcHJpdmF0ZSB2b2lkIE91dHB1dFNhcmlmUnVsZXNNZXRhZGEoc3RyaW5nIG91dHB1dEZpbGVQYXRoLCBJbW11dGFibGVBcnJheTxJUnVsZT4gc2tpbW1lcnMpDQogICAgICAgIHsNCiAgICAgICAgICAgIHZhciBsb2cgPSBuZXcgU2FyaWZMb2coKTsNCg0KICAgICAgICAgICAgU2FyaWZWZXJzaW9uIHNhcmlmVmVyc2lvbiA9IFNhcmlmVmVyc2lvbi5Ud29aZXJvWmVybzsNCiAgICAgICAgICAgIGxvZy5TY2hlbWFVcmkgPSBzYXJpZlZlcnNpb24uQ29udmVydFRvU2NoZW1hVXJpKCk7DQogICAgICAgICAgICBsb2cuVmVyc2lvbiA9IHNhcmlmVmVyc2lvbjsNCg0KICAgICAgICAgICAgLy8gVGhlIFNBUklGIHNwZWMgY3VycmVudGx5IHJlcXVpcmVzIGFuIGFycmF5DQogICAgICAgICAgICAvLyBvZiBydW4gbG9ncyB3aXRoIGF0IGxlYXN0IG9uZSBtZW1iZXINCiAgICAgICAgICAgIGxvZy5SdW5zID0gbmV3IExpc3Q8UnVuPigpOw0KDQogICAgICAgICAgICB2YXIgcnVuID0gbmV3IFJ1bigpOw0KICAgICAgICAgICAgcnVuLlRvb2wgPSBuZXcgVG9vbCgpOw0KDQogICAgICAgICAgICBydW4uVG9vbC5Jbml0aWFsaXplRnJvbUFzc2VtYmx5KHRoaXMuR2V0VHlwZSgpLkFzc2VtYmx5LCBQcmVyZWxlYXNlKTsNCiAgICAgICAgICAgIHJ1bi5SZXN1bHRzID0gbmV3IExpc3Q8UmVzdWx0PigpOw0KDQogICAgICAgICAgICBsb2cuUnVucy5BZGQocnVuKTsNCiAgICAgICAgICAgIHJ1bi5SZXNvdXJjZXMgPSBuZXcgUmVzb3VyY2VzDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgUnVsZXMgPSBuZXcgRGljdGlvbmFyeTxzdHJpbmcsIFJ1bGU+KCkNCiAgICAgICAgICAgIH07DQoNCiAgICAgICAgICAgIFNvcnRlZERpY3Rpb25hcnk8aW50LCBSdWxlPiBzb3J0ZWRSdWxlcyA9IG5ldyBTb3J0ZWREaWN0aW9uYXJ5PGludCwgUnVsZT4oKTsNCg0KICAgICAgICAgICAgZm9yZWFjaCAoSVJ1bGUgcnVsZSBpbiBza2ltbWVycykNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICB2YXIgbmV3UnVsZSA9IG5ldyBSdWxlKCk7DQoNCiAgICAgICAgICAgICAgICBuZXdSdWxlLklkID0gcnVsZS5JZDsNCiAgICAgICAgICAgICAgICBuZXdSdWxlLk5hbWUgPSBydWxlLk5hbWU7DQogICAgICAgICAgICAgICAgbmV3UnVsZS5IZWxwVXJpID0gcnVsZS5IZWxwVXJpOw0KICAgICAgICAgICAgICAgIG5ld1J1bGUuRnVsbERlc2NyaXB0aW9uID0gcnVsZS5GdWxsRGVzY3JpcHRpb247DQogICAgICAgICAgICAgICAgbmV3UnVsZS5NZXNzYWdlU3RyaW5ncyA9IHJ1bGUuTWVzc2FnZVN0cmluZ3M7DQogICAgICAgICAgICAgICAgbmV3UnVsZS5SaWNoTWVzc2FnZVN0cmluZ3MgPSBydWxlLlJpY2hNZXNzYWdlU3RyaW5nczsNCg0KICAgICAgICAgICAgICAgIG5ld1J1bGUuU2hvcnREZXNjcmlwdGlvbiA9IHJ1bGUuU2hvcnREZXNjcmlwdGlvbjsNCg0KICAgICAgICAgICAgICAgIGZvcmVhY2ggKHN0cmluZyBwcm9wZXJ0eU5hbWUgaW4gcnVsZS5Qcm9wZXJ0eU5hbWVzKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgbmV3UnVsZS5TZXRQcm9wZXJ0eShwcm9wZXJ0eU5hbWUsIHJ1bGUuR2V0UHJvcGVydHkocHJvcGVydHlOYW1lKSk7DQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgaW50IG51bWVyaWNJZCA9IEdldElkSW50ZWdlclN1ZmZpeChuZXdSdWxlLklkKTsNCg0KICAgICAgICAgICAgICAgIHNvcnRlZFJ1bGVzW251bWVyaWNJZF0gPSBuZXdSdWxlOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBmb3JlYWNoIChSdWxlIHJ1bGUgaW4gc29ydGVkUnVsZXMuVmFsdWVzKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHJ1bi5SZXNvdXJjZXMuUnVsZXNbcnVsZS5JZF0gPSBydWxlOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICB2YXIgc2V0dGluZ3MgPSBuZXcgSnNvblNlcmlhbGl6ZXJTZXR0aW5ncygpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgQ29udHJhY3RSZXNvbHZlciA9IFNhcmlmQ29udHJhY3RSZXNvbHZlci5JbnN0YW5jZSwNCiAgICAgICAgICAgICAgICBGb3JtYXR0aW5nID0gTmV3dG9uc29mdC5Kc29uLkZvcm1hdHRpbmcuSW5kZW50ZWQsDQogICAgICAgICAgICB9Ow0KDQogICAgICAgICAgICBGaWxlLldyaXRlQWxsVGV4dChvdXRwdXRGaWxlUGF0aCwgSnNvbkNvbnZlcnQuU2VyaWFsaXplT2JqZWN0KGxvZywgc2V0dGluZ3MpKTsNCiAgICAgICAgfQ0KDQogICAgICAgIHByaXZhdGUgaW50IEdldElkSW50ZWdlclN1ZmZpeChzdHJpbmcgaWQpDQogICAgICAgIHsNCiAgICAgICAgICAgIGludCBhbHBoYUNvdW50ID0gMDsNCg0KICAgICAgICAgICAgZm9yZWFjaCAoY2hhciBjaCBpbiBpZCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBpZiAoQ2hhci5Jc0xldHRlcihjaCkpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBhbHBoYUNvdW50Kys7DQogICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHJldHVybiBJbnQzMi5QYXJzZShpZC5TdWJzdHJpbmcoYWxwaGFDb3VudCkpOw0KICAgICAgICB9DQogICAgfQ0KfQ0K" + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", + "uriBaseId": "$(ProjectDir)", + "index": 3 }, - "hashes": [ - { - "value": "F3A534B006E2BA051FD12F236AC706E7", - "algorithm": "md5" - }, - { - "value": "47D12D0AA6311D7055FADDA419C81EA0F4EE29E8", - "algorithm": "sha-1" - }, + "locations": [ { - "value": "51711FF650F4050A869EB13D6261CFE4A1D1B99BA815ACF431AE3AC52248F11D", - "algorithm": "sha-256" + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/ClangAnalyzerConverter.cs", + "index": 5 + }, + "region": { + "startLine": 258 + } + }, + "logicalLocations": [ + { + "index": 135, + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.ClangAnalyzerConverter.ReadDictionary(System.Xml.XmlReader)" + } + ] } - ] + ], + "properties": { + "Category": "Microsoft.Maintainability", + "FixCategory": "NonBreaking" + } }, - "file:///E:/src/sarif-sdk-test/src/Sarif.Driver/FileSpecifier.cs": { - "mimeType": "text/x-csharp", - "contents": { - "binary": "77u/Ly8gQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuDQovLyBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UuIFNlZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHByb2plY3Qgcm9vdCBmb3IgZnVsbCBsaWNlbnNlIGluZm9ybWF0aW9uLg0KDQp1c2luZyBTeXN0ZW07DQp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsNCnVzaW5nIFN5c3RlbS5JTzsNCg0KbmFtZXNwYWNlIE1pY3Jvc29mdC5Db2RlQW5hbHlzaXMuU2FyaWYuRHJpdmVyDQp7DQogICAgcHVibGljIGNsYXNzIEZpbGVTcGVjaWZpZXINCiAgICB7DQogICAgICAgIHB1YmxpYyBGaWxlU3BlY2lmaWVyKHN0cmluZyBzcGVjaWZpZXIsIGJvb2wgcmVjdXJzZSA9IGZhbHNlKQ0KICAgICAgICB7DQogICAgICAgICAgICBfcmVjdXJzZSA9IHJlY3Vyc2U7DQogICAgICAgICAgICBfc3BlY2lmaWVyID0gc3BlY2lmaWVyOw0KICAgICAgICB9DQoNCiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBib29sIF9yZWN1cnNlOw0KICAgICAgICBwcml2YXRlIHJlYWRvbmx5IHN0cmluZyBfc3BlY2lmaWVyOw0KICAgICAgICBwcml2YXRlIExpc3Q8c3RyaW5nPiBfZmlsZXM7DQogICAgICAgIHByaXZhdGUgTGlzdDxzdHJpbmc+IF9kaXJlY3RvcmllczsNCg0KICAgICAgICBwdWJsaWMgSUxpc3Q8c3RyaW5nPiBGaWxlcw0KICAgICAgICB7DQogICAgICAgICAgICBnZXQgeyByZXR1cm4gX2ZpbGVzID8/IEJ1aWxkRmlsZXMoKTsgfQ0KICAgICAgICB9DQoNCiAgICAgICAgcHVibGljIElMaXN0PHN0cmluZz4gRGlyZWN0b3JpZXMNCiAgICAgICAgew0KICAgICAgICAgICAgZ2V0IHsgcmV0dXJuIF9kaXJlY3RvcmllcyA/PyBCdWlsZERpcmVjdG9yaWVzKCk7IH0NCiAgICAgICAgfQ0KDQogICAgICAgIHByaXZhdGUgTGlzdDxzdHJpbmc+IEJ1aWxkRGlyZWN0b3JpZXMoKQ0KICAgICAgICB7DQogICAgICAgICAgICBCdWlsZEZpbGVzQW5kRGlyZWN0b3JpZXNMaXN0KCk7DQogICAgICAgICAgICByZXR1cm4gX2RpcmVjdG9yaWVzOw0KICAgICAgICB9DQoNCiAgICAgICAgcHJpdmF0ZSBMaXN0PHN0cmluZz4gQnVpbGRGaWxlcygpDQogICAgICAgIHsNCiAgICAgICAgICAgIEJ1aWxkRmlsZXNBbmREaXJlY3Rvcmllc0xpc3QoKTsNCiAgICAgICAgICAgIHJldHVybiBfZmlsZXM7DQogICAgICAgIH0NCg0KICAgICAgICBwcml2YXRlIHZvaWQgQnVpbGRGaWxlc0FuZERpcmVjdG9yaWVzTGlzdCgpDQogICAgICAgIHsNCiAgICAgICAgICAgIHN0cmluZyBleHBhbmRlZFNwZWNpZmllcjsNCg0KICAgICAgICAgICAgX2ZpbGVzID0gbmV3IExpc3Q8c3RyaW5nPigpOw0KICAgICAgICAgICAgX2RpcmVjdG9yaWVzID0gbmV3IExpc3Q8c3RyaW5nPigpOw0KDQogICAgICAgICAgICBleHBhbmRlZFNwZWNpZmllciA9IEVudmlyb25tZW50LkV4cGFuZEVudmlyb25tZW50VmFyaWFibGVzKF9zcGVjaWZpZXIpOw0KDQogICAgICAgICAgICBzdHJpbmcgZmlsdGVyID0gUGF0aC5HZXRGaWxlTmFtZShleHBhbmRlZFNwZWNpZmllcik7DQogICAgICAgICAgICBzdHJpbmcgZGlyZWN0b3J5ID0gUGF0aC5HZXREaXJlY3RvcnlOYW1lKGV4cGFuZGVkU3BlY2lmaWVyKTsNCg0KICAgICAgICAgICAgaWYgKGRpcmVjdG9yeS5MZW5ndGggPT0gMCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBkaXJlY3RvcnkgPSBAIi5cIjsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgQWRkRmlsZXNGcm9tRGlyZWN0b3J5KGRpcmVjdG9yeSwgZmlsdGVyKTsNCiAgICAgICAgfQ0KDQogICAgICAgIHByaXZhdGUgdm9pZCBBZGRGaWxlc0Zyb21EaXJlY3Rvcnkoc3RyaW5nIGRpciwgc3RyaW5nIGZpbHRlcikNCiAgICAgICAgew0KICAgICAgICAgICAgaWYgKERpcmVjdG9yeS5FeGlzdHMoZGlyKSkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBmb3JlYWNoIChzdHJpbmcgZmlsZSBpbiBEaXJlY3RvcnkuR2V0RmlsZXMoZGlyLCBmaWx0ZXIpKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgQWRkRmlsZVRvTGlzdChmaWxlKTsNCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICBpZiAoX3JlY3Vyc2UpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICB0cnkNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgZm9yZWFjaCAoc3RyaW5nIHN1YmRpciBpbiBEaXJlY3RvcnkuR2V0RGlyZWN0b3JpZXMoZGlyKSkNCiAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBBZGRGaWxlc0Zyb21EaXJlY3Rvcnkoc3ViZGlyLCBmaWx0ZXIpOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGNhdGNoIChVbmF1dGhvcml6ZWRBY2Nlc3NFeGNlcHRpb24pDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIENvbnNvbGUuRXJyb3IuV3JpdGVMaW5lQXN5bmMoIlVuYXV0aG9yaXplZCBhY2Nlc3MgZXhjZXB0aW9uIGZvciBkaXJlY3Rvcnk6ICIgKyBkaXIpOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICAgICAgcHJpdmF0ZSB2b2lkIEFkZEZpbGVUb0xpc3Qoc3RyaW5nIGV4cGFuZGVkU3BlY2lmaWVyKQ0KICAgICAgICB7DQogICAgICAgICAgICBfZmlsZXMuQWRkKFBhdGguR2V0RnVsbFBhdGgoZXhwYW5kZWRTcGVjaWZpZXIpKTsNCiAgICAgICAgfQ0KICAgIH0NCn0NCg==" + { + "ruleId": "CA1811", + "message": { + "text": "FxCop results that have been suppressed do not contain a message string." }, - "hashes": [ - { - "value": "4FBE119755A1FAF6B3C50D1A3CC09490", - "algorithm": "md5" - }, - { - "value": "987003D0A847B66E744143AC195E5966195343C7", - "algorithm": "sha-1" - }, + "locations": [ { - "value": "1681F40BB1D0419DA0C477C5F2705FCCD08078CD07977AF37D435DFBF8DFA6E7", - "algorithm": "sha-256" + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", + "uriBaseId": "$(ProjectDir)", + "index": 3 + } + }, + "logicalLocations": [ + { + "index": 137, + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.ConverterResources..ctor()" + } + ] } - ] - }, - "file:///E:/src/sarif-sdk-test/src/Sarif.Driver/Sdk/PlugInDriverCommand.cs": { - "mimeType": "text/x-csharp", - "contents": { - "binary": "77u/Ly8gQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuDQovLyBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UuIFNlZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHByb2plY3Qgcm9vdCBmb3IgZnVsbCBsaWNlbnNlIGluZm9ybWF0aW9uLg0KDQp1c2luZyBTeXN0ZW07DQp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsNCnVzaW5nIFN5c3RlbS5SZWZsZWN0aW9uOw0KDQpuYW1lc3BhY2UgTWljcm9zb2Z0LkNvZGVBbmFseXNpcy5TYXJpZi5Ecml2ZXINCnsNCiAgICBwdWJsaWMgYWJzdHJhY3QgY2xhc3MgUGx1Z0luRHJpdmVyQ29tbWFuZDxUPiA6IERyaXZlckNvbW1hbmQ8VD4NCiAgICB7DQogICAgICAgIHB1YmxpYyB2aXJ0dWFsIElFbnVtZXJhYmxlPEFzc2VtYmx5PiBEZWZhdWx0UGx1Z0luQXNzZW1ibGllcw0KICAgICAgICB7DQogICAgICAgICAgICBnZXQgeyByZXR1cm4gbnVsbDsgfQ0KICAgICAgICAgICAgc2V0IHsgdGhyb3cgbmV3IEludmFsaWRPcGVyYXRpb25FeGNlcHRpb24oKTsgfQ0KICAgICAgICB9DQoNCiAgICAgICAgcHVibGljIGFic3RyYWN0IHN0cmluZyBQcmVyZWxlYXNlIHsgZ2V0OyB9DQogICAgfQ0KfQ0K" - }, - "hashes": [ - { - "value": "EFC732551C16AAEEDCB4FB47E49FAE62", - "algorithm": "md5" - }, - { - "value": "306374909D562B7E608ADD655E3D038B111E3B3D", - "algorithm": "sha-1" - }, + ], + "suppressions": [ { - "value": "68C91CCB24A7C3E7F7E4952F6CA126FF9BC99A621DD3634B1096C7D456E9A3C9", - "algorithm": "sha-256" + "kind": "inSource" } - ] + ], + "properties": { + "Category": "Microsoft.Performance", + "FixCategory": "NonBreaking" + } }, - "file:///E:/src/sarif-sdk-test/src/Sarif.Driver/Sdk/StatisticsLogger.cs": { - "mimeType": "text/x-csharp", - "contents": { - "binary": "77u/Ly8gQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuDQovLyBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UuIFNlZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHByb2plY3Qgcm9vdCBmb3IgZnVsbCBsaWNlbnNlIGluZm9ybWF0aW9uLg0KDQp1c2luZyBTeXN0ZW07DQp1c2luZyBTeXN0ZW0uRGlhZ25vc3RpY3M7DQoNCm5hbWVzcGFjZSBNaWNyb3NvZnQuQ29kZUFuYWx5c2lzLlNhcmlmLkRyaXZlcg0Kew0KICAgIHB1YmxpYyBjbGFzcyBTdGF0aXN0aWNzTG9nZ2VyIDogSUFuYWx5c2lzTG9nZ2VyDQogICAgew0KICAgICAgICBwcml2YXRlIFN0b3B3YXRjaCBfc3RvcHdhdGNoOw0KICAgICAgICBwcml2YXRlIGxvbmcgX3RhcmdldHNDb3VudDsNCiAgICAgICAgcHJpdmF0ZSBsb25nIF9pbnZhbGlkVGFyZ2V0c0NvdW50Ow0KDQogICAgICAgIHB1YmxpYyBTdGF0aXN0aWNzTG9nZ2VyKCkNCiAgICAgICAgew0KICAgICAgICB9DQoNCiAgICAgICAgcHVibGljIHZvaWQgQW5hbHlzaXNTdGFydGVkKCkNCiAgICAgICAgew0KICAgICAgICAgICAgX3N0b3B3YXRjaCA9IFN0b3B3YXRjaC5TdGFydE5ldygpOw0KICAgICAgICB9DQoNCiAgICAgICAgcHVibGljIHZvaWQgQW5hbHlzaXNTdG9wcGVkKFJ1bnRpbWVDb25kaXRpb25zIHJ1bnRpbWVDb25kaXRpb25zKQ0KICAgICAgICB7DQogICAgICAgICAgICBDb25zb2xlLldyaXRlTGluZSgpOw0KICAgICAgICAgICAgQ29uc29sZS5Xcml0ZUxpbmUoIiMgdmFsaWQgdGFyZ2V0czogIiArIF90YXJnZXRzQ291bnQuVG9TdHJpbmcoKSk7DQogICAgICAgICAgICBDb25zb2xlLldyaXRlTGluZSgiIyBpbnZhbGlkIHRhcmdldHM6ICIgKyBfaW52YWxpZFRhcmdldHNDb3VudC5Ub1N0cmluZygpKTsNCiAgICAgICAgICAgIENvbnNvbGUuV3JpdGVMaW5lKCJUaW1lIGVsYXBzZWQ6ICIgKyBfc3RvcHdhdGNoLkVsYXBzZWQuVG9TdHJpbmcoKSk7DQogICAgICAgIH0NCg0KICAgICAgICBwdWJsaWMgdm9pZCBBbmFseXppbmdUYXJnZXQoSUFuYWx5c2lzQ29udGV4dCBjb250ZXh0KQ0KICAgICAgICB7DQogICAgICAgICAgICBfdGFyZ2V0c0NvdW50Kys7DQogICAgICAgIH0NCg0KICAgICAgICBwdWJsaWMgdm9pZCBMb2coSVJ1bGUgcnVsZSwgUmVzdWx0IHJlc3VsdCkNCiAgICAgICAgew0KICAgICAgICAgICAgTG9nKHJlc3VsdC5MZXZlbCwgcmVzdWx0LlJ1bGVJZCk7DQogICAgICAgIH0NCg0KICAgICAgICBwdWJsaWMgdm9pZCBMb2dUb29sTm90aWZpY2F0aW9uKE5vdGlmaWNhdGlvbiBub3RpZmljYXRpb24pDQogICAgICAgIHsNCiAgICAgICAgfQ0KDQogICAgICAgIHB1YmxpYyB2b2lkIExvZ0NvbmZpZ3VyYXRpb25Ob3RpZmljYXRpb24oTm90aWZpY2F0aW9uIG5vdGlmaWNhdGlvbikNCiAgICAgICAgew0KICAgICAgICAgICAgaWYgKG5vdGlmaWNhdGlvbi5JZCA9PSBXYXJuaW5ncy5Xcm45OTdfSW52YWxpZFRhcmdldCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBfaW52YWxpZFRhcmdldHNDb3VudCsrOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICAgICAgcHVibGljIHZvaWQgTG9nTWVzc2FnZShib29sIHZlcmJvc2UsIHN0cmluZyBtZXNzYWdlKQ0KICAgICAgICB7DQogICAgICAgIH0NCg0KICAgICAgICBwdWJsaWMgdm9pZCBMb2coUmVzdWx0TGV2ZWwgbGV2ZWwsIHN0cmluZyBydWxlSWQpDQogICAgICAgIHsNCiAgICAgICAgICAgIHN3aXRjaCAobGV2ZWwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgY2FzZSBSZXN1bHRMZXZlbC5QYXNzOg0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCg0KICAgICAgICAgICAgICAgIGNhc2UgUmVzdWx0TGV2ZWwuRXJyb3I6DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KDQogICAgICAgICAgICAgICAgY2FzZSBSZXN1bHRMZXZlbC5XYXJuaW5nOg0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCg0KICAgICAgICAgICAgICAgIGNhc2UgUmVzdWx0TGV2ZWwuTm90QXBwbGljYWJsZToNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQoNCiAgICAgICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSW52YWxpZE9wZXJhdGlvbkV4Y2VwdGlvbigpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICAgICAgcHVibGljIHZvaWQgRGlzcG9zZSgpDQogICAgICAgIHsNCiAgICAgICAgfQ0KICAgIH0NCn0NCg==" + { + "ruleId": "CA1704", + "message": { + "text": "Correct the spelling of 'Cpp' in type name 'CppCheckConverter'.", + "id": "Type" }, - "hashes": [ - { - "value": "DF87300DA72F4E03DA0FF4287216F0E3", - "algorithm": "md5" - }, - { - "value": "0287101A9B9092B73EC71DD7CE1CD89607685970", - "algorithm": "sha-1" - }, + "locations": [ { - "value": "99F87598447ED0DF3878137AE69873CFE3E4D15A38F3806D97ECFB76B4842561", - "algorithm": "sha-256" + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", + "uriBaseId": "$(ProjectDir)", + "index": 3 + } + }, + "logicalLocations": [ + { + "index": 138, + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.CppCheckConverter" + } + ] } - ] - }, - "file:///E:/src/sarif-sdk-test/src/Sarif.Driver/FileStreamExtensionMethods.cs": { - "mimeType": "text/x-csharp", - "contents": { - "binary": "77u/Ly8gQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuDQovLyBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UuIFNlZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHByb2plY3Qgcm9vdCBmb3IgZnVsbCBsaWNlbnNlIGluZm9ybWF0aW9uLg0KDQp1c2luZyBTeXN0ZW07DQp1c2luZyBTeXN0ZW0uSU87DQoNCm5hbWVzcGFjZSBNaWNyb3NvZnQuQ29kZUFuYWx5c2lzRHJpdmVyDQp7DQogICAgcHVibGljIHN0YXRpYyBjbGFzcyBGaWxlU3RyZWFtRXh0ZW5zaW9uTWV0aG9kcw0KICAgIHsNCiAgICAgICAgcHVibGljIHN0YXRpYyBzdHJpbmcgUmVhZFN0cmluZyh0aGlzIEZpbGVTdHJlYW0gc3RyZWFtLCBpbnQgcGFkVG8pDQogICAgICAgIHsNCiAgICAgICAgICAgIGxvbmcgc3RhcnRQb3NpdGlvbiA9IHN0cmVhbS5Qb3NpdGlvbjsNCg0KICAgICAgICAgICAgaW50IGJ5dGVSZWFkOw0KICAgICAgICAgICAgaW50IGJ5dGVDb3VudCA9IDA7DQoNCiAgICAgICAgICAgIHdoaWxlICgoYnl0ZVJlYWQgPSBzdHJlYW0uUmVhZEJ5dGUoKSkgPiAwKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIGJ5dGVDb3VudCsrOw0KICAgICAgICAgICAgfTsNCg0KICAgICAgICAgICAgc3RyZWFtLlNlZWsoc3RhcnRQb3NpdGlvbiwgU2Vla09yaWdpbi5CZWdpbik7DQogICAgICAgICAgICBieXRlW10gYWJTdHJpbmcgPSBzdHJlYW0uUmVhZFRvQXJyYXkoYnl0ZUNvdW50KTsNCg0KICAgICAgICAgICAgaW50IHBhZGRpbmcgPSBwYWRUbyAtIChieXRlQ291bnQgKyAxKSAlIHBhZFRvOw0KICAgICAgICAgICAgaWYgKHBhZGRpbmcgPiAwKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHN0cmVhbS5TZWVrKHBhZGRpbmcgKyAxLCBTZWVrT3JpZ2luLkN1cnJlbnQpOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICByZXR1cm4gU3lzdGVtLlRleHQuRW5jb2RpbmcuVVRGOC5HZXRTdHJpbmcoYWJTdHJpbmcpOw0KICAgICAgICB9DQoNCiAgICAgICAgcHVibGljIHN0YXRpYyBVSW50MTYgUmVhZFVJbnQxNih0aGlzIEZpbGVTdHJlYW0gc3RyZWFtKQ0KICAgICAgICB7DQogICAgICAgICAgICByZXR1cm4gQml0Q29udmVydGVyLlRvVUludDE2KHN0cmVhbS5SZWFkVG9BcnJheSgyKSwgMCk7DQogICAgICAgIH0NCg0KICAgICAgICBwdWJsaWMgc3RhdGljIEludDMyIFJlYWRJbnQzMih0aGlzIEZpbGVTdHJlYW0gc3RyZWFtKQ0KICAgICAgICB7DQogICAgICAgICAgICByZXR1cm4gQml0Q29udmVydGVyLlRvSW50MzIoc3RyZWFtLlJlYWRUb0FycmF5KDQpLCAwKTsNCiAgICAgICAgfQ0KDQogICAgICAgIHB1YmxpYyBzdGF0aWMgSW50NjQgUmVhZEludDY0KHRoaXMgRmlsZVN0cmVhbSBzdHJlYW0pDQogICAgICAgIHsNCiAgICAgICAgICAgIHJldHVybiBCaXRDb252ZXJ0ZXIuVG9JbnQ2NChzdHJlYW0uUmVhZFRvQXJyYXkoOCksIDApOw0KICAgICAgICB9DQoNCiAgICAgICAgcHVibGljIHN0YXRpYyBieXRlW10gUmVhZFRvQXJyYXkodGhpcyBGaWxlU3RyZWFtIHN0cmVhbSwgaW50IGxlbmd0aCkNCiAgICAgICAgew0KICAgICAgICAgICAgYnl0ZVtdIGJ5dGVzID0gbmV3IGJ5dGVbbGVuZ3RoXTsNCiAgICAgICAgICAgIGludCBkYXRhUmVhZCA9IHN0cmVhbS5SZWFkKGJ5dGVzLCAwLCBsZW5ndGgpOw0KICAgICAgICAgICAgaWYgKGRhdGFSZWFkICE9IGxlbmd0aCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSW52YWxpZERhdGFFeGNlcHRpb24oIkludmFsaWQgZGF0YSBsZW5ndGggcmVhZC4gRXhwZWN0ZWQgIiArIGxlbmd0aCArICIgcmVhZCAiICsgZGF0YVJlYWQpOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICByZXR1cm4gYnl0ZXM7DQogICAgICAgIH0NCiAgICB9DQp9DQo=" + ], + "partialFingerprints": { + "UniqueId": "Cpp#Type" }, - "hashes": [ - { - "value": "CF395E762EDAF2473EB23F853F1BC5F1", - "algorithm": "md5" - }, - { - "value": "11896D73D0548CA253653CFF3C7A0ECB62697640", - "algorithm": "sha-1" - }, - { - "value": "682095ADA3FB093A8020EEA66F56766A417DAE3039D5729F7AF6761A9AC670BC", - "algorithm": "sha-256" - } - ] - }, - "#$(ProjectDir)#../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Multitool.exe": { - "mimeType": "application/octet-stream" + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" + } }, - "file:///E:/src/sarif-sdk-test/src/Sarif.Multitool/AbsoluteUriCommand.cs": { - "mimeType": "text/x-csharp", - "contents": { - "binary": "77u/Ly8gQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuDQovLyBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UuIFNlZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHByb2plY3Qgcm9vdCBmb3IgZnVsbCBsaWNlbnNlIGluZm9ybWF0aW9uLg0KDQp1c2luZyBTeXN0ZW07DQp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsNCnVzaW5nIFN5c3RlbS5JTzsNCnVzaW5nIE1pY3Jvc29mdC5Db2RlQW5hbHlzaXMuU2FyaWYuUHJvY2Vzc29yczsNCnVzaW5nIE5ld3RvbnNvZnQuSnNvbjsNCg0KbmFtZXNwYWNlIE1pY3Jvc29mdC5Db2RlQW5hbHlzaXMuU2FyaWYuTXVsdGl0b29sDQp7DQogICAgaW50ZXJuYWwgc3RhdGljIGNsYXNzIEFic29sdXRlVXJpQ29tbWFuZA0KICAgIHsNCiAgICAgICAgcHVibGljIHN0YXRpYyBpbnQgUnVuKEFic29sdXRlVXJpT3B0aW9ucyBhYnNvbHV0ZVVyaU9wdGlvbnMpDQogICAgICAgIHsNCiAgICAgICAgICAgIHRyeQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHZhciBzYXJpZkZpbGVzID0gR2V0U2FyaWZGaWxlcyhhYnNvbHV0ZVVyaU9wdGlvbnMpOw0KDQogICAgICAgICAgICAgICAgRGlyZWN0b3J5LkNyZWF0ZURpcmVjdG9yeShhYnNvbHV0ZVVyaU9wdGlvbnMuT3V0cHV0Rm9sZGVyUGF0aCk7DQogICAgICAgICAgICAgICAgZm9yZWFjaCAodmFyIHNhcmlmTG9nIGluIHNhcmlmRmlsZXMpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBzYXJpZkxvZy5Mb2cgPSBzYXJpZkxvZy5Mb2cuTWFrZVVyaXNBYnNvbHV0ZSgpOw0KDQogICAgICAgICAgICAgICAgICAgIC8vIFdyaXRlIG91dHB1dCB0byBmaWxlLg0KICAgICAgICAgICAgICAgICAgICBzdHJpbmcgb3V0cHV0TmFtZSA9IHNhcmlmTG9nLkdldE91dHB1dEZpbGVOYW1lKGFic29sdXRlVXJpT3B0aW9ucyk7DQogICAgICAgICAgICAgICAgICAgIHZhciBmb3JtYXR0aW5nID0gYWJzb2x1dGVVcmlPcHRpb25zLlByZXR0eVByaW50DQogICAgICAgICAgICAgICAgICAgICAgICA/IEZvcm1hdHRpbmcuSW5kZW50ZWQNCiAgICAgICAgICAgICAgICAgICAgICAgIDogRm9ybWF0dGluZy5Ob25lOw0KDQogICAgICAgICAgICAgICAgICAgIE11bHRpdG9vbEZpbGVIZWxwZXJzLldyaXRlU2FyaWZGaWxlKHNhcmlmTG9nLkxvZywgb3V0cHV0TmFtZSwgZm9ybWF0dGluZyk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgY2F0Y2ggKEV4Y2VwdGlvbiBleCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBDb25zb2xlLldyaXRlTGluZShleCk7DQogICAgICAgICAgICAgICAgcmV0dXJuIDE7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIHJldHVybiAwOw0KICAgICAgICB9DQoNCiAgICAgICAgcHJpdmF0ZSBzdGF0aWMgSUVudW1lcmFibGU8QWJzb2x1dGVVcmlGaWxlPiBHZXRTYXJpZkZpbGVzKEFic29sdXRlVXJpT3B0aW9ucyBhYnNvbHV0ZVVyaU9wdGlvbnMpDQogICAgICAgIHsNCiAgICAgICAgICAgIC8vIEdldCBmaWxlcyBuYW1lcyBmaXJzdCwgYXMgd2UgbWF5IHdyaXRlIG1vcmUgc2FyaWYgbG9ncyB0byB0aGUgc2FtZSBkaXJlY3RvcnkgYXMgd2UgcmViYXNlIHRoZW0uDQogICAgICAgICAgICBIYXNoU2V0PHN0cmluZz4gZmlsZU5hbWVzID0gTXVsdGl0b29sRmlsZUhlbHBlcnMuQ3JlYXRlVGFyZ2V0c1NldChhYnNvbHV0ZVVyaU9wdGlvbnMuVGFyZ2V0RmlsZVNwZWNpZmllcnMsIGFic29sdXRlVXJpT3B0aW9ucy5SZWN1cnNlKTsNCiAgICAgICAgICAgIGZvcmVhY2ggKHZhciBmaWxlIGluIGZpbGVOYW1lcykNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICB5aWVsZCByZXR1cm4gbmV3IEFic29sdXRlVXJpRmlsZSgpIHsgRmlsZU5hbWUgPSBmaWxlLCBMb2cgPSBNdWx0aXRvb2xGaWxlSGVscGVycy5SZWFkU2FyaWZGaWxlPFNhcmlmTG9nPihmaWxlKSB9Ow0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICAgICAgcHJpdmF0ZSBjbGFzcyBBYnNvbHV0ZVVyaUZpbGUNCiAgICAgICAgew0KICAgICAgICAgICAgcHVibGljIHN0cmluZyBGaWxlTmFtZTsNCg0KICAgICAgICAgICAgcHVibGljIFNhcmlmTG9nIExvZzsNCg0KICAgICAgICAgICAgaW50ZXJuYWwgc3RyaW5nIEdldE91dHB1dEZpbGVOYW1lKEFic29sdXRlVXJpT3B0aW9ucyBtZXJnZU9wdGlvbnMpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgcmV0dXJuICFzdHJpbmcuSXNOdWxsT3JFbXB0eShtZXJnZU9wdGlvbnMuT3V0cHV0Rm9sZGVyUGF0aCkNCiAgICAgICAgICAgICAgICAgICAgPyBQYXRoLkdldEZ1bGxQYXRoKG1lcmdlT3B0aW9ucy5PdXRwdXRGb2xkZXJQYXRoKSArIFBhdGguRGlyZWN0b3J5U2VwYXJhdG9yQ2hhciArIFBhdGguR2V0RmlsZU5hbWVXaXRob3V0RXh0ZW5zaW9uKEZpbGVOYW1lKSArICItYWJzb2x1dGUuc2FyaWYiDQogICAgICAgICAgICAgICAgICAgIDogUGF0aC5HZXREaXJlY3RvcnlOYW1lKEZpbGVOYW1lKSArIFBhdGguRGlyZWN0b3J5U2VwYXJhdG9yQ2hhciArIFBhdGguR2V0RmlsZU5hbWVXaXRob3V0RXh0ZW5zaW9uKEZpbGVOYW1lKSArICItYWJzb2x1dGUuc2FyaWYiOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgfQ0KfQ0K" + { + "ruleId": "CA3053", + "message": { + "text": "'CppCheckConverter.Convert(Stream, IResultLogWriter, OptionallyEmittedData)' instantiates an XmlReader instance by calling System.Xml.XmlReader.Create(System.IO.Stream,System.Xml.XmlReaderSettings) and provided an XmlReaderSettings instance with an insecure XmlResolver property value. This usage is potentially unsafe as untrusted external resources may be resolved during read operations. Provide a XmlReaderSettings instance and set the XmlResolver property to null or an instance of XmlSecureResolver.", + "id": "XmlReaderCreateInsecureXmlResolver" }, - "hashes": [ - { - "value": "B2F4038A54399CD66B1D48523BA46EC7", - "algorithm": "md5" - }, - { - "value": "EA509A044FB191DA3102D320DB1B7BFCCA42EC37", - "algorithm": "sha-1" - }, - { - "value": "3A4BC849AD5A1EE275982CA55F5DBFF8503E94D7BD951167682412520BD7724E", - "algorithm": "sha-256" - } - ] - }, - "file:///E:/src/sarif-sdk-test/src/Sarif.Multitool/BaselineCommand.cs": { - "mimeType": "text/x-csharp", - "contents": { - "binary": "77u/Ly8gQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuDQovLyBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UuIFNlZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHByb2plY3Qgcm9vdCBmb3IgZnVsbCBsaWNlbnNlIGluZm9ybWF0aW9uLg0KDQp1c2luZyBTeXN0ZW07DQp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsNCnVzaW5nIFN5c3RlbS5MaW5xOw0KdXNpbmcgTWljcm9zb2Z0LkNvZGVBbmFseXNpcy5TYXJpZi5CYXNlbGluZTsNCnVzaW5nIE5ld3RvbnNvZnQuSnNvbjsNCg0KbmFtZXNwYWNlIE1pY3Jvc29mdC5Db2RlQW5hbHlzaXMuU2FyaWYuTXVsdGl0b29sDQp7DQogICAgY2xhc3MgQmFzZWxpbmVDb21tYW5kDQogICAgew0KICAgICAgICBwdWJsaWMgc3RhdGljIGludCBSdW4oQmFzZWxpbmVPcHRpb25zIGJhc2VsaW5lT3B0aW9ucykNCiAgICAgICAgew0KICAgICAgICAgICAgdHJ5DQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgU2FyaWZMb2cgYmFzZWxpbmVGaWxlID0gTXVsdGl0b29sRmlsZUhlbHBlcnMuUmVhZFNhcmlmRmlsZTxTYXJpZkxvZz4oYmFzZWxpbmVPcHRpb25zLkJhc2VsaW5lRmlsZVBhdGgpOw0KICAgICAgICAgICAgICAgIFNhcmlmTG9nIGN1cnJlbnRGaWxlID0gTXVsdGl0b29sRmlsZUhlbHBlcnMuUmVhZFNhcmlmRmlsZTxTYXJpZkxvZz4oYmFzZWxpbmVPcHRpb25zLkN1cnJlbnRGaWxlUGF0aCk7DQogICAgICAgICAgICAgICAgaWYgKGJhc2VsaW5lRmlsZS5SdW5zLkNvdW50ICE9IDEgfHwgY3VycmVudEZpbGUuUnVucy5Db3VudCAhPSAxKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEFyZ3VtZW50RXhjZXB0aW9uKCJJbnZhbGlkIHNhcmlmIGxvZ3MsIHdlIGNhbiBvbmx5IGJhc2VsaW5lIGxvZ3Mgd2l0aCBhIHNpbmdsZSBydW4gaW4gdGhlbS4iKTsNCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICBJU2FyaWZMb2dCYXNlbGluZXIgYmFzZWxpbmVyID0gU2FyaWZMb2dCYXNlbGluZXJGYWN0b3J5LkNyZWF0ZVNhcmlmTG9nQmFzZWxpbmVyKGJhc2VsaW5lT3B0aW9ucy5CYXNlbGluZVR5cGUpOw0KDQogICAgICAgICAgICAgICAgUnVuIGRpZmZlZFJ1biA9IGJhc2VsaW5lci5DcmVhdGVCYXNlbGluZWRSdW4oYmFzZWxpbmVGaWxlLlJ1bnMuRmlyc3QoKSwgY3VycmVudEZpbGUuUnVucy5GaXJzdCgpKTsNCiAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICBTYXJpZkxvZyBvdXRwdXQgPSBjdXJyZW50RmlsZS5EZWVwQ2xvbmUoKTsNCiAgICAgICAgICAgICAgICBvdXRwdXQuUnVucyA9IG5ldyBMaXN0PFJ1bj4oKTsNCiAgICAgICAgICAgICAgICBvdXRwdXQuUnVucy5BZGQoZGlmZmVkUnVuKTsNCg0KICAgICAgICAgICAgICAgIHZhciBmb3JtYXR0aW5nID0gYmFzZWxpbmVPcHRpb25zLlByZXR0eVByaW50DQogICAgICAgICAgICAgICAgICAgICAgICA/IEZvcm1hdHRpbmcuSW5kZW50ZWQNCiAgICAgICAgICAgICAgICAgICAgICAgIDogRm9ybWF0dGluZy5Ob25lOw0KICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgIE11bHRpdG9vbEZpbGVIZWxwZXJzLldyaXRlU2FyaWZGaWxlKG91dHB1dCwgYmFzZWxpbmVPcHRpb25zLk91dHB1dEZpbGVQYXRoLCBmb3JtYXR0aW5nKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGNhdGNoIChFeGNlcHRpb24gZXgpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgQ29uc29sZS5Xcml0ZUxpbmUoZXgpOw0KICAgICAgICAgICAgICAgIHJldHVybiAxOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICByZXR1cm4gMDsNCiAgICAgICAgfQ0KICAgIH0NCn0NCg==" + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", + "uriBaseId": "$(ProjectDir)", + "index": 3 }, - "hashes": [ - { - "value": "8D96C0D8D8A11E4534C6C4C699586E44", - "algorithm": "md5" - }, - { - "value": "B680E327B4EB9F26708FB207420D9AA13A23C0E7", - "algorithm": "sha-1" - }, + "locations": [ { - "value": "937482494EB291A0D10034551920564F46D0851511011152CFBFF08E1303CED6", - "algorithm": "sha-256" + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/CppCheckConverter.cs", + "index": 6 + }, + "region": { + "startLine": 52 + } + }, + "logicalLocations": [ + { + "index": 139, + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.CppCheckConverter.Convert(System.IO.Stream,Microsoft.CodeAnalysis.Sarif.IResultLogWriter,Microsoft.CodeAnalysis.Sarif.OptionallyEmittedData)" + } + ] } - ] - }, - "file:///E:/src/sarif-sdk-test/src/Sarif.Multitool/ConvertCommand.cs": { - "mimeType": "text/x-csharp", - "contents": { - "binary": "77u/Ly8gQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuDQovLyBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UuIFNlZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHByb2plY3Qgcm9vdCBmb3IgZnVsbCBsaWNlbnNlIGluZm9ybWF0aW9uLg0KDQp1c2luZyBTeXN0ZW07DQp1c2luZyBNaWNyb3NvZnQuQ29kZUFuYWx5c2lzLlNhcmlmLkNvbnZlcnRlcnM7DQp1c2luZyBNaWNyb3NvZnQuQ29kZUFuYWx5c2lzLlNhcmlmLldyaXRlcnM7DQoNCm5hbWVzcGFjZSBNaWNyb3NvZnQuQ29kZUFuYWx5c2lzLlNhcmlmLk11bHRpdG9vbA0Kew0KICAgIGludGVybmFsIHN0YXRpYyBjbGFzcyBDb252ZXJ0Q29tbWFuZA0KICAgIHsNCiAgICAgICAgcHVibGljIHN0YXRpYyBpbnQgUnVuKENvbnZlcnRPcHRpb25zIGNvbnZlcnRPcHRpb25zKQ0KICAgICAgICB7DQogICAgICAgICAgICB0cnkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBMb2dnaW5nT3B0aW9ucyBsb2dnaW5nT3B0aW9ucyA9IExvZ2dpbmdPcHRpb25zLk5vbmU7DQoNCiAgICAgICAgICAgICAgICBPcHRpb25hbGx5RW1pdHRlZERhdGEgZGF0YVRvSW5zZXJ0ID0gY29udmVydE9wdGlvbnMuRGF0YVRvSW5zZXJ0LlRvRmxhZ3MoKTsNCg0KICAgICAgICAgICAgICAgIGlmIChjb252ZXJ0T3B0aW9ucy5QcmV0dHlQcmludCkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIGxvZ2dpbmdPcHRpb25zIHw9IExvZ2dpbmdPcHRpb25zLlByZXR0eVByaW50Ow0KICAgICAgICAgICAgICAgIH07DQoNCiAgICAgICAgICAgICAgICBpZiAoY29udmVydE9wdGlvbnMuRm9yY2UpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBsb2dnaW5nT3B0aW9ucyB8PSBMb2dnaW5nT3B0aW9ucy5PdmVyd3JpdGVFeGlzdGluZ091dHB1dEZpbGU7DQogICAgICAgICAgICAgICAgfTsNCg0KICAgICAgICAgICAgICAgIGlmIChzdHJpbmcuSXNOdWxsT3JFbXB0eShjb252ZXJ0T3B0aW9ucy5PdXRwdXRGaWxlUGF0aCkpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBjb252ZXJ0T3B0aW9ucy5PdXRwdXRGaWxlUGF0aCA9IGNvbnZlcnRPcHRpb25zLklucHV0RmlsZVBhdGggKyAiLnNhcmlmIjsNCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICBuZXcgVG9vbEZvcm1hdENvbnZlcnRlcigpLkNvbnZlcnRUb1N0YW5kYXJkRm9ybWF0KA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udmVydE9wdGlvbnMuVG9vbEZvcm1hdCwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnZlcnRPcHRpb25zLklucHV0RmlsZVBhdGgsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb252ZXJ0T3B0aW9ucy5PdXRwdXRGaWxlUGF0aCwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvZ2dpbmdPcHRpb25zLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YVRvSW5zZXJ0LA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udmVydE9wdGlvbnMuUGx1Z2luQXNzZW1ibHlQYXRoKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGNhdGNoIChFeGNlcHRpb24gZXgpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgQ29uc29sZS5Xcml0ZUxpbmUoZXgpOw0KICAgICAgICAgICAgICAgIHJldHVybiAxOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICByZXR1cm4gMDsNCiAgICAgICAgfQ0KICAgIH0NCn0NCg==" + ], + "partialFingerprints": { + "UniqueId": "XmlReaderCreateInsecureXmlResolver" }, - "hashes": [ - { - "value": "5E094347B99CE16E9ACE8CECBC2727CC", - "algorithm": "md5" - }, - { - "value": "F03F18CECBEAC10D71A5BB1BC188EDDB550D2B45", - "algorithm": "sha-1" - }, - { - "value": "2C76320F230E64650D9EB73B24FFF1E7D02F57DD19FC388FC587333BB7D96A08", - "algorithm": "sha-256" - } - ] + "properties": { + "Category": "Microsoft.Security.Xml", + "FixCategory": "NonBreaking" + } }, - "file:///E:/src/sarif-sdk-test/src/Sarif.Multitool/JTokenExtensions.cs": { - "mimeType": "text/x-csharp", - "contents": { - "binary": "77u/Ly8gQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuDQovLyBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UuIFNlZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHByb2plY3Qgcm9vdCBmb3IgZnVsbCBsaWNlbnNlIGluZm9ybWF0aW9uLg0KDQp1c2luZyBTeXN0ZW07DQp1c2luZyBTeXN0ZW0uTGlucTsNCnVzaW5nIE5ld3RvbnNvZnQuSnNvbi5MaW5xOw0KDQpuYW1lc3BhY2UgTWljcm9zb2Z0LkNvZGVBbmFseXNpcy5TYXJpZi5NdWx0aXRvb2wNCnsNCiAgICBwdWJsaWMgc3RhdGljIGNsYXNzIEpUb2tlbkV4dGVuc2lvbnMNCiAgICB7DQogICAgICAgIHB1YmxpYyBzdGF0aWMgYm9vbCBIYXNQcm9wZXJ0eSh0aGlzIEpUb2tlbiB0b2tlbiwgc3RyaW5nIHByb3BlcnR5TmFtZSkNCiAgICAgICAgew0KICAgICAgICAgICAgcmV0dXJuIHRva2VuLkNoaWxkcmVuPEpQcm9wZXJ0eT4oKQ0KICAgICAgICAgICAgICAgIC5BbnkoanAgPT4ganAuTmFtZS5FcXVhbHMocHJvcGVydHlOYW1lLCBTdHJpbmdDb21wYXJpc29uLk9yZGluYWwpKTsNCiAgICAgICAgfQ0KICAgIH0NCn0=" + { + "ruleId": "CA1062", + "message": { + "text": "In externally visible method 'Extensions.HasDefaultConstructor(this Type)', validate parameter 'type' before using it." }, - "hashes": [ - { - "value": "E9F1FE8FB7A42227F148A95FE5171683", - "algorithm": "md5" - }, - { - "value": "C320CB4A55F78F13134B5693FECB5BB29BC339C0", - "algorithm": "sha-1" - }, - { - "value": "EF3CBC855ADBD50946100796CF23661245C4169FABAACB9C61BC8730BDC8BCF2", - "algorithm": "sha-256" - } - ] - }, - "file:///E:/src/sarif-sdk-test/src/Sarif.Multitool/MergeCommand.cs": { - "mimeType": "text/x-csharp", - "contents": { - "binary": "77u/Ly8gQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuDQovLyBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UuIFNlZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHByb2plY3Qgcm9vdCBmb3IgZnVsbCBsaWNlbnNlIGluZm9ybWF0aW9uLg0KDQp1c2luZyBTeXN0ZW07DQp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsNCnVzaW5nIFN5c3RlbS5JTzsNCnVzaW5nIE1pY3Jvc29mdC5Db2RlQW5hbHlzaXMuU2FyaWYuUHJvY2Vzc29yczsNCnVzaW5nIE1pY3Jvc29mdC5Db2RlQW5hbHlzaXMuU2FyaWYuVmlzaXRvcnM7DQp1c2luZyBOZXd0b25zb2Z0Lkpzb247DQoNCm5hbWVzcGFjZSBNaWNyb3NvZnQuQ29kZUFuYWx5c2lzLlNhcmlmLk11bHRpdG9vbA0Kew0KICAgIGludGVybmFsIHN0YXRpYyBjbGFzcyBNZXJnZUNvbW1hbmQNCiAgICB7DQogICAgICAgIHB1YmxpYyBzdGF0aWMgaW50IFJ1bihNZXJnZU9wdGlvbnMgbWVyZ2VPcHRpb25zKQ0KICAgICAgICB7DQogICAgICAgICAgICB0cnkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICB2YXIgc2FyaWZGaWxlcyA9IE11bHRpdG9vbEZpbGVIZWxwZXJzLkNyZWF0ZVRhcmdldHNTZXQobWVyZ2VPcHRpb25zLlRhcmdldEZpbGVTcGVjaWZpZXJzLCBtZXJnZU9wdGlvbnMuUmVjdXJzZSk7DQoNCiAgICAgICAgICAgICAgICB2YXIgYWxsUnVucyA9IFBhcnNlRmlsZXMoc2FyaWZGaWxlcyk7DQoNCiAgICAgICAgICAgICAgICAvLyBCdWlsZCBvbmUgU2FyaWZMb2cgd2l0aCBhbGwgdGhlIFJ1bnMuDQogICAgICAgICAgICAgICAgU2FyaWZMb2cgY29tYmluZWRMb2cgPSBhbGxSdW5zLk1lcmdlKCk7DQogICAgICAgICAgICAgICAgY29tYmluZWRMb2cuVmVyc2lvbiA9IFNhcmlmVmVyc2lvbi5Ud29aZXJvWmVybzsNCiAgICAgICAgICAgICAgICBjb21iaW5lZExvZy5TY2hlbWFVcmkgPSBjb21iaW5lZExvZy5WZXJzaW9uLkNvbnZlcnRUb1NjaGVtYVVyaSgpOw0KDQogICAgICAgICAgICAgICAgT3B0aW9uYWxseUVtaXR0ZWREYXRhIGRhdGFUb0luc2VydCA9IG1lcmdlT3B0aW9ucy5EYXRhVG9JbnNlcnQuVG9GbGFncygpOw0KDQogICAgICAgICAgICAgICAgaWYgKGRhdGFUb0luc2VydCAhPSBPcHRpb25hbGx5RW1pdHRlZERhdGEuTm9uZSkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIGNvbWJpbmVkTG9nID0gbmV3IEluc2VydE9wdGlvbmFsRGF0YVZpc2l0b3IoZGF0YVRvSW5zZXJ0KS5WaXNpdFNhcmlmTG9nKGNvbWJpbmVkTG9nKTsNCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAvLyBXcml0ZSBvdXRwdXQgdG8gZmlsZS4NCiAgICAgICAgICAgICAgICBzdHJpbmcgb3V0cHV0TmFtZSA9IFBhdGguQ29tYmluZShtZXJnZU9wdGlvbnMuT3V0cHV0Rm9sZGVyUGF0aCwgR2V0T3V0cHV0RmlsZU5hbWUobWVyZ2VPcHRpb25zKSk7DQogICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgdmFyIGZvcm1hdHRpbmcgPSBtZXJnZU9wdGlvbnMuUHJldHR5UHJpbnQNCiAgICAgICAgICAgICAgICAgICAgPyBGb3JtYXR0aW5nLkluZGVudGVkDQogICAgICAgICAgICAgICAgICAgIDogRm9ybWF0dGluZy5Ob25lOw0KDQogICAgICAgICAgICAgICAgRGlyZWN0b3J5LkNyZWF0ZURpcmVjdG9yeShtZXJnZU9wdGlvbnMuT3V0cHV0Rm9sZGVyUGF0aCk7DQogICAgICAgICAgICAgICAgTXVsdGl0b29sRmlsZUhlbHBlcnMuV3JpdGVTYXJpZkZpbGUoY29tYmluZWRMb2csIG91dHB1dE5hbWUsIGZvcm1hdHRpbmcpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgY2F0Y2ggKEV4Y2VwdGlvbiBleCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBDb25zb2xlLldyaXRlTGluZShleCk7DQogICAgICAgICAgICAgICAgcmV0dXJuIDE7DQogICAgICAgICAgICB9DQogICAgICAgICAgICByZXR1cm4gMDsNCiAgICAgICAgfQ0KDQoJICAgIHByaXZhdGUgc3RhdGljIElFbnVtZXJhYmxlPFNhcmlmTG9nPiBQYXJzZUZpbGVzKElFbnVtZXJhYmxlPHN0cmluZz4gc2FyaWZGaWxlcykNCgkgICAgew0KICAgICAgICAgICAgZm9yZWFjaCAodmFyIGZpbGUgaW4gc2FyaWZGaWxlcykNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICB5aWVsZCByZXR1cm4gTXVsdGl0b29sRmlsZUhlbHBlcnMuUmVhZFNhcmlmRmlsZTxTYXJpZkxvZz4oZmlsZSk7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCiAgICAgICAgDQogICAgICAgIGludGVybmFsIHN0YXRpYyBzdHJpbmcgR2V0T3V0cHV0RmlsZU5hbWUoTWVyZ2VPcHRpb25zIG1lcmdlT3B0aW9ucykNCiAgICAgICAgew0KICAgICAgICAgICAgcmV0dXJuICFzdHJpbmcuSXNOdWxsT3JFbXB0eShtZXJnZU9wdGlvbnMuT3V0cHV0RmlsZU5hbWUpDQogICAgICAgICAgICAgICAgPyBtZXJnZU9wdGlvbnMuT3V0cHV0RmlsZU5hbWUNCiAgICAgICAgICAgICAgICA6ICJjb21iaW5lZC5zYXJpZiI7DQogICAgICAgIH0NCiAgICB9DQp9DQo=" + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", + "uriBaseId": "$(ProjectDir)", + "index": 3 }, - "hashes": [ - { - "value": "4F5468D76C1112D9E5F648090426D13E", - "algorithm": "md5" - }, - { - "value": "8D9D3BFC8301BF9648C048056768616574F5829D", - "algorithm": "sha-1" - }, + "locations": [ { - "value": "50A70E4EC158587E9DB304D8AC832CB3E44FE50497360386A9DE57F81CC0F584", - "algorithm": "sha-256" + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/Extensions.cs", + "index": 7 + }, + "region": { + "startLine": 22 + } + }, + "logicalLocations": [ + { + "index": 141, + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.Extensions.HasDefaultConstructor(System.Type)" + } + ] } - ] - }, - "file:///E:/src/sarif-sdk-test/src/Sarif.Multitool/RebaseUriCommand.cs": { - "mimeType": "text/x-csharp", - "contents": { - "binary": "77u/Ly8gQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuDQovLyBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UuIFNlZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHByb2plY3Qgcm9vdCBmb3IgZnVsbCBsaWNlbnNlIGluZm9ybWF0aW9uLg0KDQp1c2luZyBTeXN0ZW07DQp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsNCnVzaW5nIFN5c3RlbS5JTzsNCnVzaW5nIE1pY3Jvc29mdC5Db2RlQW5hbHlzaXMuU2FyaWYuUHJvY2Vzc29yczsNCnVzaW5nIE5ld3RvbnNvZnQuSnNvbjsNCg0KbmFtZXNwYWNlIE1pY3Jvc29mdC5Db2RlQW5hbHlzaXMuU2FyaWYuTXVsdGl0b29sDQp7DQogICAgaW50ZXJuYWwgc3RhdGljIGNsYXNzIFJlYmFzZVVyaUNvbW1hbmQNCiAgICB7DQogICAgICAgIHB1YmxpYyBzdGF0aWMgaW50IFJ1bihSZWJhc2VVcmlPcHRpb25zIHJlYmFzZU9wdGlvbnMpDQogICAgICAgIHsNCiAgICAgICAgICAgIHRyeQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIFVyaSBiYXNlVXJpOw0KICAgICAgICAgICAgICAgIGlmICghVXJpLlRyeUNyZWF0ZShyZWJhc2VPcHRpb25zLkJhc2VQYXRoLCBVcmlLaW5kLkFic29sdXRlLCBvdXQgYmFzZVVyaSkpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgQXJndW1lbnRFeGNlcHRpb24oJCJCYXNlUGF0aCB7cmViYXNlT3B0aW9ucy5CYXNlUGF0aH0gd2FzIG5vdCBhbiBhYnNvbHV0ZSBVUkkuICBJdCBtdXN0IGJlLiIpOw0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgIC8vIEluIGNhc2Ugc29tZW9uZSBhY2NpZGVudGFsbHkgcGFzc2VzIEM6XGJsZFxzcmMgYW5kIG1lYW50IEM6XGJsZFxzcmNcLS10aGUgYmFzZSBwYXRoIHNob3VsZCBhbHdheXMgYmUgYSBmb2xkZXIsIG5vdCBzb21ldGhpbmcgdGhhdCBwb2ludHMgdG8gYSBmaWxlLg0KICAgICAgICAgICAgICAgIGlmICghc3RyaW5nLklzTnVsbE9yRW1wdHkoYmFzZVVyaS5HZXRGaWxlTmFtZSgpKSkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIGJhc2VVcmkgPSBuZXcgVXJpKGJhc2VVcmkuVG9TdHJpbmcoKSArICIvIik7DQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgdmFyIHNhcmlmRmlsZXMgPSBHZXRTYXJpZkZpbGVzKHJlYmFzZU9wdGlvbnMpOw0KDQogICAgICAgICAgICAgICAgRGlyZWN0b3J5LkNyZWF0ZURpcmVjdG9yeShyZWJhc2VPcHRpb25zLk91dHB1dEZvbGRlclBhdGgpOw0KICAgICAgICAgICAgICAgIGZvcmVhY2ggKHZhciBzYXJpZkxvZyBpbiBzYXJpZkZpbGVzKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgc2FyaWZMb2cuTG9nID0gc2FyaWZMb2cuTG9nLlJlYmFzZVVyaShyZWJhc2VPcHRpb25zLkJhc2VQYXRoVG9rZW4sIHJlYmFzZU9wdGlvbnMuUmViYXNlUmVsYXRpdmVVcmlzLCBiYXNlVXJpKTsNCg0KICAgICAgICAgICAgICAgICAgICAvLyBXcml0ZSBvdXRwdXQgdG8gZmlsZS4NCiAgICAgICAgICAgICAgICAgICAgc3RyaW5nIG91dHB1dE5hbWUgPSBzYXJpZkxvZy5HZXRPdXRwdXRGaWxlTmFtZShyZWJhc2VPcHRpb25zKTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGZvcm1hdHRpbmcgPSByZWJhc2VPcHRpb25zLlByZXR0eVByaW50DQogICAgICAgICAgICAgICAgICAgICAgICA/IEZvcm1hdHRpbmcuSW5kZW50ZWQNCiAgICAgICAgICAgICAgICAgICAgICAgIDogRm9ybWF0dGluZy5Ob25lOw0KICAgICAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICAgICAgTXVsdGl0b29sRmlsZUhlbHBlcnMuV3JpdGVTYXJpZkZpbGUoc2FyaWZMb2cuTG9nLCBvdXRwdXROYW1lLCBmb3JtYXR0aW5nKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQogICAgICAgICAgICBjYXRjaCAoRXhjZXB0aW9uIGV4KQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIENvbnNvbGUuV3JpdGVMaW5lKGV4KTsNCiAgICAgICAgICAgICAgICByZXR1cm4gMTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgcmV0dXJuIDA7DQogICAgICAgIH0NCiAgICAgICAgDQogICAgICAgIHByaXZhdGUgc3RhdGljIElFbnVtZXJhYmxlPFJlYmFzZVVyaUZpbGU+IEdldFNhcmlmRmlsZXMoUmViYXNlVXJpT3B0aW9ucyBtZXJnZU9wdGlvbnMpDQogICAgICAgIHsNCiAgICAgICAgICAgIC8vIEdldCBmaWxlcyBuYW1lcyBmaXJzdCwgYXMgd2UgbWF5IHdyaXRlIG1vcmUgc2FyaWYgbG9ncyB0byB0aGUgc2FtZSBkaXJlY3RvcnkgYXMgd2UgcmViYXNlIHRoZW0uDQogICAgICAgICAgICBIYXNoU2V0PHN0cmluZz4gZmlsZU5hbWVzID0gTXVsdGl0b29sRmlsZUhlbHBlcnMuQ3JlYXRlVGFyZ2V0c1NldChtZXJnZU9wdGlvbnMuVGFyZ2V0RmlsZVNwZWNpZmllcnMsIG1lcmdlT3B0aW9ucy5SZWN1cnNlKTsNCiAgICAgICAgICAgIGZvcmVhY2godmFyIGZpbGUgaW4gZmlsZU5hbWVzKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHlpZWxkIHJldHVybiBuZXcgUmViYXNlVXJpRmlsZSgpIHsgRmlsZU5hbWUgPSBmaWxlLCBMb2cgPSBNdWx0aXRvb2xGaWxlSGVscGVycy5SZWFkU2FyaWZGaWxlPFNhcmlmTG9nPihmaWxlKSB9Ow0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgICAgIA0KICAgICAgICBwcml2YXRlIGNsYXNzIFJlYmFzZVVyaUZpbGUNCiAgICAgICAgew0KICAgICAgICAgICAgcHVibGljIHN0cmluZyBGaWxlTmFtZTsNCg0KICAgICAgICAgICAgcHVibGljIFNhcmlmTG9nIExvZzsNCiAgICAgICAgICAgIA0KICAgICAgICAgICAgaW50ZXJuYWwgc3RyaW5nIEdldE91dHB1dEZpbGVOYW1lKFJlYmFzZVVyaU9wdGlvbnMgbWVyZ2VPcHRpb25zKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHJldHVybiAhc3RyaW5nLklzTnVsbE9yRW1wdHkobWVyZ2VPcHRpb25zLk91dHB1dEZvbGRlclBhdGgpDQogICAgICAgICAgICAgICAgICAgID8gUGF0aC5HZXRGdWxsUGF0aChtZXJnZU9wdGlvbnMuT3V0cHV0Rm9sZGVyUGF0aCkgKyBQYXRoLkRpcmVjdG9yeVNlcGFyYXRvckNoYXIgKyBQYXRoLkdldEZpbGVOYW1lV2l0aG91dEV4dGVuc2lvbihGaWxlTmFtZSkgKyAiLXJlYmFzZWQuc2FyaWYiDQogICAgICAgICAgICAgICAgICAgIDogUGF0aC5HZXREaXJlY3RvcnlOYW1lKEZpbGVOYW1lKSArIFBhdGguRGlyZWN0b3J5U2VwYXJhdG9yQ2hhciArIFBhdGguR2V0RmlsZU5hbWVXaXRob3V0RXh0ZW5zaW9uKEZpbGVOYW1lKSArICItcmViYXNlZC5zYXJpZiI7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCiAgICB9DQp9DQo=" + ], + "partialFingerprints": { + "UniqueId": "0" }, - "hashes": [ - { - "value": "70EC20AB28968CEBDC3AE97F66B02F91", - "algorithm": "md5" - }, - { - "value": "517AAC263014E5BBAD71BF3079FA5F9835DDA50C", - "algorithm": "sha-1" - }, - { - "value": "793DC570C59CFF0BF2369EEF47F13DC94AE70F5FC70F37C11A56E8AAA49D1820", - "algorithm": "sha-256" - } - ] + "properties": { + "Category": "Microsoft.Design", + "FixCategory": "DependsOnFix" + } }, - "file:///E:/src/sarif-sdk-test/src/Sarif.Multitool/RewriteCommand.cs": { - "mimeType": "text/x-csharp", - "contents": { - "binary": "77u/Ly8gQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuDQovLyBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UuIFNlZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHByb2plY3Qgcm9vdCBmb3IgZnVsbCBsaWNlbnNlIGluZm9ybWF0aW9uLg0KDQp1c2luZyBTeXN0ZW07DQp1c2luZyBTeXN0ZW0uTGlucTsNCnVzaW5nIE1pY3Jvc29mdC5Db2RlQW5hbHlzaXMuU2FyaWYuVmlzaXRvcnM7DQp1c2luZyBOZXd0b25zb2Z0Lkpzb247DQoNCm5hbWVzcGFjZSBNaWNyb3NvZnQuQ29kZUFuYWx5c2lzLlNhcmlmLk11bHRpdG9vbA0Kew0KICAgIGludGVybmFsIHN0YXRpYyBjbGFzcyBSZXdyaXRlQ29tbWFuZA0KICAgIHsNCiAgICAgICAgcHVibGljIHN0YXRpYyBpbnQgUnVuKFJld3JpdGVPcHRpb25zIHJld3JpdGVPcHRpb25zKQ0KICAgICAgICB7DQogICAgICAgICAgICB0cnkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICByZXdyaXRlT3B0aW9ucyA9IFZhbGlkYXRlT3B0aW9ucyhyZXdyaXRlT3B0aW9ucyk7DQogICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgU2FyaWZMb2cgYWN0dWFsTG9nID0gTXVsdGl0b29sRmlsZUhlbHBlcnMuUmVhZFNhcmlmRmlsZTxTYXJpZkxvZz4ocmV3cml0ZU9wdGlvbnMuSW5wdXRGaWxlUGF0aCk7DQoNCiAgICAgICAgICAgICAgICBPcHRpb25hbGx5RW1pdHRlZERhdGEgZGF0YVRvSW5zZXJ0ID0gcmV3cml0ZU9wdGlvbnMuRGF0YVRvSW5zZXJ0LlRvRmxhZ3MoKTsNCg0KICAgICAgICAgICAgICAgIFNhcmlmTG9nIHJlZm9ybWF0dGVkTG9nID0gbmV3IEluc2VydE9wdGlvbmFsRGF0YVZpc2l0b3IoZGF0YVRvSW5zZXJ0KS5WaXNpdFNhcmlmTG9nKGFjdHVhbExvZyk7DQogICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgc3RyaW5nIGZpbGVOYW1lID0gQ29tbWFuZFV0aWxpdGllcy5HZXRUcmFuc2Zvcm1lZE91dHB1dEZpbGVOYW1lKHJld3JpdGVPcHRpb25zKTsNCg0KICAgICAgICAgICAgICAgIHZhciBmb3JtYXR0aW5nID0gcmV3cml0ZU9wdGlvbnMuUHJldHR5UHJpbnQNCiAgICAgICAgICAgICAgICAgICAgPyBGb3JtYXR0aW5nLkluZGVudGVkDQogICAgICAgICAgICAgICAgICAgIDogRm9ybWF0dGluZy5Ob25lOw0KDQogICAgICAgICAgICAgICAgTXVsdGl0b29sRmlsZUhlbHBlcnMuV3JpdGVTYXJpZkZpbGUocmVmb3JtYXR0ZWRMb2csIGZpbGVOYW1lLCBmb3JtYXR0aW5nKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGNhdGNoKEV4Y2VwdGlvbiBleCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBDb25zb2xlLldyaXRlTGluZShleCk7DQogICAgICAgICAgICAgICAgcmV0dXJuIDE7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIHJldHVybiAwOw0KICAgICAgICB9DQoNCiAgICAgICAgcHJpdmF0ZSBzdGF0aWMgUmV3cml0ZU9wdGlvbnMgVmFsaWRhdGVPcHRpb25zKFJld3JpdGVPcHRpb25zIHJld3JpdGVPcHRpb25zKQ0KICAgICAgICB7DQogICAgICAgICAgICBpZiAocmV3cml0ZU9wdGlvbnMuSW5saW5lKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHJld3JpdGVPcHRpb25zLkZvcmNlID0gdHJ1ZTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgcmV0dXJuIHJld3JpdGVPcHRpb25zOw0KICAgICAgICB9DQogICAgfQ0KfQ0K" + { + "ruleId": "CA1062", + "message": { + "text": "In externally visible method 'Extensions.MatchesToolFormat(this string, string)', validate parameter 'toolFormat' before using it." }, - "hashes": [ - { - "value": "55B3231D002CAF5A646D0FCD8B380988", - "algorithm": "md5" - }, - { - "value": "E5938724EE8AEDD1E66FBBECBFA7D2842B612C70", - "algorithm": "sha-1" - }, - { - "value": "7D19F67E3969E5C44D74549D2069F7D84C13B1EBC64FDDC80EA41C542C1492DC", - "algorithm": "sha-256" - } - ] - }, - "file:///E:/src/sarif-sdk-test/src/Sarif.Multitool/SarifValidationContext.cs": { - "mimeType": "text/x-csharp", - "contents": { - "binary": "77u/Ly8gQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuDQovLyBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UuIFNlZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHByb2plY3Qgcm9vdCBmb3IgZnVsbCBsaWNlbnNlIGluZm9ybWF0aW9uLg0KDQp1c2luZyBTeXN0ZW07DQp1c2luZyBTeXN0ZW0uSU87DQp1c2luZyBOZXd0b25zb2Z0Lkpzb24uTGlucTsNCg0KbmFtZXNwYWNlIE1pY3Jvc29mdC5Db2RlQW5hbHlzaXMuU2FyaWYuTXVsdGl0b29sDQp7DQogICAgcHVibGljIGNsYXNzIFNhcmlmVmFsaWRhdGlvbkNvbnRleHQgOiBJQW5hbHlzaXNDb250ZXh0DQogICAgew0KICAgICAgICBwdWJsaWMgYm9vbCBJc1ZhbGlkQW5hbHlzaXNUYXJnZXQNCiAgICAgICAgew0KICAgICAgICAgICAgZ2V0DQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgcmV0dXJuIFBhdGguR2V0RXh0ZW5zaW9uKFRhcmdldFVyaS5Mb2NhbFBhdGgpLkVxdWFscygiLnNhcmlmIiwgU3RyaW5nQ29tcGFyaXNvbi5PcmRpbmFsSWdub3JlQ2FzZSk7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICBwdWJsaWMgSUFuYWx5c2lzTG9nZ2VyIExvZ2dlciB7IGdldDsgc2V0OyB9DQoNCiAgICAgICAgcHVibGljIHN0cmluZyBNaW1lVHlwZQ0KICAgICAgICB7DQogICAgICAgICAgICBnZXQgeyByZXR1cm4gImFwcGxpY2F0aW9uL3NhcmlmLWpzb24iOyB9DQogICAgICAgICAgICBzZXQgeyB0aHJvdyBuZXcgSW52YWxpZE9wZXJhdGlvbkV4Y2VwdGlvbigpOyB9DQogICAgICAgIH0NCg0KICAgICAgICBwdWJsaWMgUHJvcGVydGllc0RpY3Rpb25hcnkgUG9saWN5IHsgZ2V0OyBzZXQ7IH0NCg0KICAgICAgICBwdWJsaWMgSVJ1bGUgUnVsZSB7IGdldDsgc2V0OyB9DQoNCiAgICAgICAgcHVibGljIFJ1bnRpbWVDb25kaXRpb25zIFJ1bnRpbWVFcnJvcnMgeyBnZXQ7IHNldDsgfQ0KDQogICAgICAgIHB1YmxpYyBFeGNlcHRpb24gVGFyZ2V0TG9hZEV4Y2VwdGlvbiB7IGdldDsgc2V0OyB9DQoNCiAgICAgICAgcHJpdmF0ZSBVcmkgX3VyaTsNCg0KICAgICAgICBwdWJsaWMgVXJpIFRhcmdldFVyaQ0KICAgICAgICB7DQogICAgICAgICAgICBnZXQNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gX3VyaTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgc2V0DQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgaWYgKF91cmkgIT0gbnVsbCkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbnZhbGlkT3BlcmF0aW9uRXhjZXB0aW9uKE11bHRpdG9vbFJlc291cmNlcy5FcnJvcklsbGVnYWxDb250ZXh0UmV1c2UpOw0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgIF91cmkgPSB2YWx1ZTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgIHB1YmxpYyBzdHJpbmcgU2NoZW1hRmlsZVBhdGggeyBnZXQ7IGludGVybmFsIHNldDsgfQ0KDQogICAgICAgIHB1YmxpYyBzdHJpbmcgSW5wdXRMb2dDb250ZW50cyB7IGdldDsgaW50ZXJuYWwgc2V0OyB9DQoNCiAgICAgICAgcHVibGljIFNhcmlmTG9nIElucHV0TG9nIHsgZ2V0OyBpbnRlcm5hbCBzZXQ7IH0NCg0KICAgICAgICBwdWJsaWMgSlRva2VuIElucHV0TG9nVG9rZW4geyBnZXQ7IGludGVybmFsIHNldDsgfQ0KDQogICAgICAgIHB1YmxpYyB2b2lkIERpc3Bvc2UoKQ0KICAgICAgICB7DQogICAgICAgICAgICAvLyBOb3RoaW5nIHRvIGRpc3Bvc2UuDQogICAgICAgIH0NCiAgICB9DQp9DQo=" + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", + "uriBaseId": "$(ProjectDir)", + "index": 3 }, - "hashes": [ - { - "value": "ADB8B2587C882B4B3226A104836207A1", - "algorithm": "md5" - }, + "locations": [ { - "value": "D3A23875A748D7CB8C1884CA8E8F95EC30D41C82", - "algorithm": "sha-1" - }, - { - "value": "B7D3FF38EF24CD8019D77414661B52686FADB9127D894B3B4C830E21A3D84BE9", - "algorithm": "sha-256" + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/Extensions.cs", + "index": 7 + }, + "region": { + "startLine": 16 + } + }, + "logicalLocations": [ + { + "index": 142, + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.Extensions.MatchesToolFormat(System.String,System.String)" + } + ] } - ] - }, - "file:///E:/src/sarif-sdk-test/src/Sarif.Multitool/TransformCommand.cs": { - "mimeType": "text/x-csharp", - "contents": { - "binary": "77u/Ly8gQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuDQovLyBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UuIFNlZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHByb2plY3Qgcm9vdCBmb3IgZnVsbCBsaWNlbnNlIGluZm9ybWF0aW9uLg0KDQp1c2luZyBTeXN0ZW07DQp1c2luZyBNaWNyb3NvZnQuQ29kZUFuYWx5c2lzLlNhcmlmLlJlYWRlcnM7DQp1c2luZyBNaWNyb3NvZnQuQ29kZUFuYWx5c2lzLlNhcmlmLlZlcnNpb25PbmU7DQp1c2luZyBNaWNyb3NvZnQuQ29kZUFuYWx5c2lzLlNhcmlmLlZpc2l0b3JzOw0KdXNpbmcgTmV3dG9uc29mdC5Kc29uOw0KDQpuYW1lc3BhY2UgTWljcm9zb2Z0LkNvZGVBbmFseXNpcy5TYXJpZi5NdWx0aXRvb2wNCnsNCiAgICBpbnRlcm5hbCBzdGF0aWMgY2xhc3MgVHJhbnNmb3JtQ29tbWFuZA0KICAgIHsNCiAgICAgICAgcHVibGljIHN0YXRpYyBpbnQgUnVuKFRyYW5zZm9ybU9wdGlvbnMgdHJhbnNmb3JtT3B0aW9ucykNCiAgICAgICAgew0KICAgICAgICAgICAgdHJ5DQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgaWYgKHRyYW5zZm9ybU9wdGlvbnMuVmVyc2lvbiA8IDEgfHwgdHJhbnNmb3JtT3B0aW9ucy5WZXJzaW9uID4gMikNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIENvbnNvbGUuV3JpdGVMaW5lKE11bHRpdG9vbFJlc291cmNlcy5FcnJvckludmFsaWRUcmFuc2Zvcm1UYXJnZXRWZXJzaW9uKTsNCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDE7DQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgT3B0aW9uYWxseUVtaXR0ZWREYXRhIGRhdGFUb0luc2VydCA9IHRyYW5zZm9ybU9wdGlvbnMuRGF0YVRvSW5zZXJ0LlRvRmxhZ3MoKTsNCg0KICAgICAgICAgICAgICAgIC8vIE5PVEU6IHdlIGRvbid0IGFjdHVhbGx5IHV0aWxpemUgdGhlIGRhdGFUb0luc2VydCBjb21tYW5kLWxpbmUgZGF0YSB5ZXQuLi4NCg0KICAgICAgICAgICAgICAgIHN0cmluZyBmaWxlTmFtZSA9IENvbW1hbmRVdGlsaXRpZXMuR2V0VHJhbnNmb3JtZWRPdXRwdXRGaWxlTmFtZSh0cmFuc2Zvcm1PcHRpb25zKTsNCg0KICAgICAgICAgICAgICAgIHZhciBmb3JtYXR0aW5nID0gdHJhbnNmb3JtT3B0aW9ucy5QcmV0dHlQcmludA0KICAgICAgICAgICAgICAgICAgICA/IEZvcm1hdHRpbmcuSW5kZW50ZWQNCiAgICAgICAgICAgICAgICAgICAgOiBGb3JtYXR0aW5nLk5vbmU7DQoNCiAgICAgICAgICAgICAgICAvLyBBc3N1bWUgdGhlIGlucHV0IGxvZyBpcyB0aGUgIm90aGVyIiB2ZXJzaW9uDQogICAgICAgICAgICAgICAgaWYgKHRyYW5zZm9ybU9wdGlvbnMuVmVyc2lvbiA9PSAyKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgU2FyaWZMb2dWZXJzaW9uT25lIGFjdHVhbExvZyA9IE11bHRpdG9vbEZpbGVIZWxwZXJzLlJlYWRTYXJpZkZpbGU8U2FyaWZMb2dWZXJzaW9uT25lPih0cmFuc2Zvcm1PcHRpb25zLklucHV0RmlsZVBhdGgsIFNhcmlmQ29udHJhY3RSZXNvbHZlclZlcnNpb25PbmUuSW5zdGFuY2UpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgdmlzaXRvciA9IG5ldyBTYXJpZlZlcnNpb25PbmVUb0N1cnJlbnRWaXNpdG9yKCk7DQogICAgICAgICAgICAgICAgICAgIHZpc2l0b3IuVmlzaXRTYXJpZkxvZ1ZlcnNpb25PbmUoYWN0dWFsTG9nKTsNCg0KICAgICAgICAgICAgICAgICAgICBNdWx0aXRvb2xGaWxlSGVscGVycy5Xcml0ZVNhcmlmRmlsZSh2aXNpdG9yLlNhcmlmTG9nLCBmaWxlTmFtZSwgZm9ybWF0dGluZyk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGVsc2UNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIFNhcmlmTG9nIGFjdHVhbExvZyA9IE11bHRpdG9vbEZpbGVIZWxwZXJzLlJlYWRTYXJpZkZpbGU8U2FyaWZMb2c+KHRyYW5zZm9ybU9wdGlvbnMuSW5wdXRGaWxlUGF0aCk7DQogICAgICAgICAgICAgICAgICAgIHZhciB2aXNpdG9yID0gbmV3IFNhcmlmQ3VycmVudFRvVmVyc2lvbk9uZVZpc2l0b3IoKTsNCiAgICAgICAgICAgICAgICAgICAgdmlzaXRvci5WaXNpdFNhcmlmTG9nKGFjdHVhbExvZyk7DQoNCiAgICAgICAgICAgICAgICAgICAgTXVsdGl0b29sRmlsZUhlbHBlcnMuV3JpdGVTYXJpZkZpbGUodmlzaXRvci5TYXJpZkxvZ1ZlcnNpb25PbmUsIGZpbGVOYW1lLCBmb3JtYXR0aW5nKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQogICAgICAgICAgICBjYXRjaCAoRXhjZXB0aW9uIGV4KQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIENvbnNvbGUuV3JpdGVMaW5lKGV4KTsNCiAgICAgICAgICAgICAgICByZXR1cm4gMTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgcmV0dXJuIDA7DQogICAgICAgIH0NCiAgICB9DQp9DQo=" + ], + "partialFingerprints": { + "UniqueId": "0" }, - "hashes": [ - { - "value": "8D17A2CA85DF3D41AA1AEEAE83D3E4D6", - "algorithm": "md5" - }, - { - "value": "5B6A2B0ACFD268AD9B315B5BA8815796A99EB2F2", - "algorithm": "sha-1" - }, - { - "value": "25C4EDC24D644766F380F461CA055E75235534B86EC20F1BD770BF1D68C8A7AD", - "algorithm": "sha-256" - } - ] + "properties": { + "Category": "Microsoft.Design", + "FixCategory": "DependsOnFix" + } }, - "file:///E:/src/sarif-sdk-test/src/Sarif.Multitool/ValidateCommand.cs": { - "mimeType": "text/x-csharp", - "contents": { - "binary": "77u/Ly8gQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuDQovLyBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UuIFNlZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHByb2plY3Qgcm9vdCBmb3IgZnVsbCBsaWNlbnNlIGluZm9ybWF0aW9uLg0KDQp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsNCnVzaW5nIFN5c3RlbS5JTzsNCnVzaW5nIFN5c3RlbS5SZWZsZWN0aW9uOw0KdXNpbmcgTWljcm9zb2Z0LkNvZGVBbmFseXNpcy5TYXJpZi5Ecml2ZXI7DQp1c2luZyBNaWNyb3NvZnQuQ29kZUFuYWx5c2lzLlNhcmlmLlJlYWRlcnM7DQp1c2luZyBNaWNyb3NvZnQuSnNvbi5TY2hlbWE7DQp1c2luZyBNaWNyb3NvZnQuSnNvbi5TY2hlbWEuVmFsaWRhdGlvbjsNCnVzaW5nIE5ld3RvbnNvZnQuSnNvbjsNCg0KbmFtZXNwYWNlIE1pY3Jvc29mdC5Db2RlQW5hbHlzaXMuU2FyaWYuTXVsdGl0b29sDQp7DQogICAgaW50ZXJuYWwgY2xhc3MgVmFsaWRhdGVDb21tYW5kIDogQW5hbHl6ZUNvbW1hbmRCYXNlPFNhcmlmVmFsaWRhdGlvbkNvbnRleHQsIFZhbGlkYXRlT3B0aW9ucz4NCiAgICB7DQogICAgICAgIHB1YmxpYyBvdmVycmlkZSBzdHJpbmcgUHJlcmVsZWFzZSA9PiBWZXJzaW9uQ29uc3RhbnRzLlByZXJlbGVhc2U7DQoNCiAgICAgICAgcHJpdmF0ZSBMaXN0PEFzc2VtYmx5PiBfZGVmYXVsdFBsdWdJbkFzc2VtYmxpZXM7DQoNCiAgICAgICAgcHVibGljIG92ZXJyaWRlIElFbnVtZXJhYmxlPEFzc2VtYmx5PiBEZWZhdWx0UGx1Z0luQXNzZW1ibGllcw0KICAgICAgICB7DQogICAgICAgICAgICBnZXQNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBpZiAoX2RlZmF1bHRQbHVnSW5Bc3NlbWJsaWVzID09IG51bGwpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBfZGVmYXVsdFBsdWdJbkFzc2VtYmxpZXMgPSBuZXcgTGlzdDxBc3NlbWJseT4NCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5HZXRUeXBlKCkuQXNzZW1ibHkNCiAgICAgICAgICAgICAgICAgICAgfTsNCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICByZXR1cm4gX2RlZmF1bHRQbHVnSW5Bc3NlbWJsaWVzOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICAgICAgcHJvdGVjdGVkIG92ZXJyaWRlIFNhcmlmVmFsaWRhdGlvbkNvbnRleHQgQ3JlYXRlQ29udGV4dChWYWxpZGF0ZU9wdGlvbnMgb3B0aW9ucywgSUFuYWx5c2lzTG9nZ2VyIGxvZ2dlciwgUnVudGltZUNvbmRpdGlvbnMgcnVudGltZUVycm9ycywgc3RyaW5nIGZpbGVQYXRoID0gbnVsbCkNCiAgICAgICAgew0KICAgICAgICAgICAgU2FyaWZWYWxpZGF0aW9uQ29udGV4dCBjb250ZXh0ID0gYmFzZS5DcmVhdGVDb250ZXh0KG9wdGlvbnMsIGxvZ2dlciwgcnVudGltZUVycm9ycywgZmlsZVBhdGgpOw0KICAgICAgICAgICAgY29udGV4dC5TY2hlbWFGaWxlUGF0aCA9IG9wdGlvbnMuU2NoZW1hRmlsZVBhdGg7DQogICAgICAgICAgICByZXR1cm4gY29udGV4dDsNCiAgICAgICAgfQ0KDQogICAgICAgIHByb3RlY3RlZCBvdmVycmlkZSB2b2lkIEFuYWx5emVUYXJnZXQoDQogICAgICAgICAgICBJRW51bWVyYWJsZTxJU2tpbW1lcjxTYXJpZlZhbGlkYXRpb25Db250ZXh0Pj4gc2tpbW1lcnMsDQogICAgICAgICAgICBTYXJpZlZhbGlkYXRpb25Db250ZXh0IGNvbnRleHQsDQogICAgICAgICAgICBIYXNoU2V0PHN0cmluZz4gZGlzYWJsZWRTa2ltbWVycykNCiAgICAgICAgew0KICAgICAgICAgICAgLy8gVGhlIGJhc2UgY2xhc3Mga25vd3MgaG93IHRvIGludm9rZSB0aGUgc2tpbW1lcnMgdGhhdCBpbXBsZW1lbnQgc21hcnQgdmFsaWRhdGlvbiwNCiAgICAgICAgICAgIC8vIGJ1dCBpdCBkb2Vzbid0IGtub3cgaG93IHRvIGludm9rZSBzY2hlbWEgdmFsaWRhdGlvbiwgd2hpY2ggaGFzIGl0cyBvd24gc2V0IG9mIHJ1bGVzLA0KICAgICAgICAgICAgLy8gc28gd2UgZG8gdGhhdCBvdXJzZWx2ZXMuDQogICAgICAgICAgICAvLw0KICAgICAgICAgICAgLy8gVmFsaWRhdGUgd2lsbCByZXR1cm4gZmFsc2UgaWYgdGhlcmUgYXJlIGFueSBKU09OIHN5bnRheCBlcnJvcnMuIEluIHRoYXQgY2FzZQ0KICAgICAgICAgICAgLy8gdGhlcmUncyBubyBwb2ludCBpbiBnb2luZyBvbi4NCiAgICAgICAgICAgIGJvb2wgb2sgPSBWYWxpZGF0ZShjb250ZXh0LlRhcmdldFVyaS5Mb2NhbFBhdGgsIGNvbnRleHQuU2NoZW1hRmlsZVBhdGgsIGNvbnRleHQuTG9nZ2VyKTsNCg0KICAgICAgICAgICAgaWYgKG9rKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIC8vIERlc2VyaWFsaXplIHdpbGwgcmV0dXJuIG51bGwgaWYgdGhlcmUgYXJlIGFueSBKU09OIGRlc2VyaWFsaXphdGlvbiBlcnJvcnMNCiAgICAgICAgICAgICAgICAvLyAod2hpY2ggY2FuIGhhcHBlbiwgZm9yIGV4YW1wbGUsIGlmIGEgcHJvcGVydHkgcmVxdWlyZWQgYnkgdGhlIHNjaGVtYSBpcw0KICAgICAgICAgICAgICAgIC8vIG1pc3NpbmcuIEluIHRoYXQgY2FzZSwgYWdhaW4sIHRoZXJlJ3Mgbm8gcG9pbnQgaW4gZ29pbmcgb24uDQogICAgICAgICAgICAgICAgY29udGV4dC5JbnB1dExvZ0NvbnRlbnRzID0gRmlsZS5SZWFkQWxsVGV4dChjb250ZXh0LlRhcmdldFVyaS5BYnNvbHV0ZVBhdGgpOw0KICAgICAgICAgICAgICAgIGNvbnRleHQuSW5wdXRMb2cgPSBEZXNlcmlhbGl6ZShjb250ZXh0LklucHV0TG9nQ29udGVudHMpOw0KDQogICAgICAgICAgICAgICAgaWYgKGNvbnRleHQuSW5wdXRMb2cgIT0gbnVsbCkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIC8vIEV2ZXJ5dGhpbmcncyByZWFkeSwgc28gcnVuIGFsbCB0aGUgc2tpbW1lcnMuDQogICAgICAgICAgICAgICAgICAgIGJhc2UuQW5hbHl6ZVRhcmdldChza2ltbWVycywgY29udGV4dCwgZGlzYWJsZWRTa2ltbWVycyk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICAgICAgcHJpdmF0ZSBzdGF0aWMgU2FyaWZMb2cgRGVzZXJpYWxpemUoc3RyaW5nIGxvZ0NvbnRlbnRzKQ0KICAgICAgICB7DQogICAgICAgICAgICBKc29uU2VyaWFsaXplclNldHRpbmdzIHNldHRpbmdzID0gbmV3IEpzb25TZXJpYWxpemVyU2V0dGluZ3MNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBDb250cmFjdFJlc29sdmVyID0gU2FyaWZDb250cmFjdFJlc29sdmVyLkluc3RhbmNlDQogICAgICAgICAgICB9Ow0KDQogICAgICAgICAgICBTYXJpZkxvZyBsb2cgPSBudWxsOw0KICAgICAgICAgICAgdHJ5DQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgcmV0dXJuIEpzb25Db252ZXJ0LkRlc2VyaWFsaXplT2JqZWN0PFNhcmlmTG9nPihsb2dDb250ZW50cywgc2V0dGluZ3MpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgY2F0Y2ggKEpzb25TZXJpYWxpemF0aW9uRXhjZXB0aW9uKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIC8vIFRoaXMgZXhjZXB0aW9uIGNhbiBoYXBwZW4sIGZvciBleGFtcGxlLCBpZiBhIHByb3BlcnR5IHJlcXVpcmVkIGJ5IHRoZSBzY2hlbWEgaXMNCiAgICAgICAgICAgICAgICAvLyBtaXNzaW5nLg0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICByZXR1cm4gbG9nOw0KICAgICAgICB9DQoNCiAgICAgICAgcHJpdmF0ZSBib29sIFZhbGlkYXRlKHN0cmluZyBpbnN0YW5jZUZpbGVQYXRoLCBzdHJpbmcgc2NoZW1hRmlsZVBhdGgsIElBbmFseXNpc0xvZ2dlciBsb2dnZXIpDQogICAgICAgIHsNCiAgICAgICAgICAgIGJvb2wgb2sgPSB0cnVlOw0KDQogICAgICAgICAgICB0cnkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBzdHJpbmcgaW5zdGFuY2VUZXh0ID0gRmlsZS5SZWFkQWxsVGV4dChpbnN0YW5jZUZpbGVQYXRoKTsNCiAgICAgICAgICAgICAgICBQZXJmb3JtU2NoZW1hVmFsaWRhdGlvbihpbnN0YW5jZVRleHQsIGluc3RhbmNlRmlsZVBhdGgsIHNjaGVtYUZpbGVQYXRoLCBsb2dnZXIpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgY2F0Y2ggKEpzb25TeW50YXhFeGNlcHRpb24gZXgpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgUmVzdWx0IHJlc3VsdCA9IGV4LlRvU2FyaWZSZXN1bHQoKTsNCiAgICAgICAgICAgICAgICBSZXBvcnRSZXN1bHQocmVzdWx0LCBsb2dnZXIpOw0KDQogICAgICAgICAgICAgICAgLy8gSWYgdGhlIGZpbGUgaXNuJ3Qgc3ludGFjdGljYWxseSB2YWxpZCBKU09OLCB3ZSB3b24ndCBiZSBhYmxlIHRvIHJ1bg0KICAgICAgICAgICAgICAgIC8vIHRoZSBza2ltbWVycywgYmVjYXVzZSB0aGV5IHJlbHkgb24gYmVpbmcgYWJsZSB0byBkZXNlcmlhbGl6ZWQgdGhlIGZpbGUNCiAgICAgICAgICAgICAgICAvLyBpbnRvIGEgU2FyaWZMb2cgb2JqZWN0Lg0KICAgICAgICAgICAgICAgIG9rID0gZmFsc2U7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBjYXRjaCAoU2NoZW1hVmFsaWRhdGlvbkV4Y2VwdGlvbiBleCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBSZXBvcnRJbnZhbGlkU2NoZW1hRXJyb3JzKGV4LCBzY2hlbWFGaWxlUGF0aCwgbG9nZ2VyKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIC8vIFRoZSBmcmFtZXdvcmsgd2lsbCBjYXRjaCBhbGwgb3RoZXIsIHVuZXhwZWN0ZWQgZXhjZXB0aW9ucywgYW5kIGl0IHdpbGwNCiAgICAgICAgICAgIC8vIGNhdXNlIHRoZSB0b29sIHRvIGV4aXQgd2l0aCBhIG5vbi0wIGV4aXQgY29kZS4NCg0KICAgICAgICAgICAgcmV0dXJuIG9rOw0KICAgICAgICB9DQoNCiAgICAgICAgcHJpdmF0ZSBzdGF0aWMgdm9pZCBQZXJmb3JtU2NoZW1hVmFsaWRhdGlvbigNCiAgICAgICAgICAgIHN0cmluZyBpbnN0YW5jZVRleHQsDQogICAgICAgICAgICBzdHJpbmcgaW5zdGFuY2VGaWxlUGF0aCwNCiAgICAgICAgICAgIHN0cmluZyBzY2hlbWFGaWxlUGF0aCwNCiAgICAgICAgICAgIElBbmFseXNpc0xvZ2dlciBsb2dnZXIpDQogICAgICAgIHsNCiAgICAgICAgICAgIHN0cmluZyBzY2hlbWFUZXh0ID0gRmlsZS5SZWFkQWxsVGV4dChzY2hlbWFGaWxlUGF0aCk7DQogICAgICAgICAgICBKc29uU2NoZW1hIHNjaGVtYSA9IFNjaGVtYVJlYWRlci5SZWFkU2NoZW1hKHNjaGVtYVRleHQsIHNjaGVtYUZpbGVQYXRoKTsNCg0KICAgICAgICAgICAgdmFyIHZhbGlkYXRvciA9IG5ldyBWYWxpZGF0b3Ioc2NoZW1hKTsNCiAgICAgICAgICAgIFJlc3VsdFtdIHJlc3VsdHMgPSB2YWxpZGF0b3IuVmFsaWRhdGUoaW5zdGFuY2VUZXh0LCBpbnN0YW5jZUZpbGVQYXRoKTsNCg0KICAgICAgICAgICAgUmVwb3J0UmVzdWx0cyhyZXN1bHRzLCBsb2dnZXIpOw0KICAgICAgICB9DQoNCiAgICAgICAgcHJpdmF0ZSBzdGF0aWMgdm9pZCBSZXBvcnRJbnZhbGlkU2NoZW1hRXJyb3JzKA0KICAgICAgICAgICAgU2NoZW1hVmFsaWRhdGlvbkV4Y2VwdGlvbiBleCwNCiAgICAgICAgICAgIHN0cmluZyBzY2hlbWFGaWxlLA0KICAgICAgICAgICAgSUFuYWx5c2lzTG9nZ2VyIGxvZ2dlcikNCiAgICAgICAgeyAgICAgICAgICAgIA0KICAgICAgICAgICAgZm9yZWFjaCAoU2NoZW1hVmFsaWRhdGlvbkV4Y2VwdGlvbiBzY2hlbWFWYWxpZGF0aW9uRXhjZXB0aW9uIGluIGV4LldyYXBwZWRFeGNlcHRpb25zKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIFJlc3VsdCByZXN1bHQgPSBSZXN1bHRGYWN0b3J5LkNyZWF0ZVJlc3VsdCgNCiAgICAgICAgICAgICAgICAgICAgc2NoZW1hVmFsaWRhdGlvbkV4Y2VwdGlvbi5KVG9rZW4sDQogICAgICAgICAgICAgICAgICAgIHNjaGVtYVZhbGlkYXRpb25FeGNlcHRpb24uRXJyb3JOdW1iZXIsDQogICAgICAgICAgICAgICAgICAgIHNjaGVtYVZhbGlkYXRpb25FeGNlcHRpb24uQXJncyk7DQoNCiAgICAgICAgICAgICAgICByZXN1bHQuU2V0UmVzdWx0RmlsZShzY2hlbWFGaWxlKTsNCiAgICAgICAgICAgICAgICBSZXBvcnRSZXN1bHQocmVzdWx0LCBsb2dnZXIpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICAgICAgcHJpdmF0ZSBzdGF0aWMgdm9pZCBSZXBvcnRSZXN1bHRzKA0KICAgICAgICAgICAgUmVzdWx0W10gcmVzdWx0cywNCiAgICAgICAgICAgIElBbmFseXNpc0xvZ2dlciBsb2dnZXIpDQogICAgICAgIHsNCiAgICAgICAgICAgIGZvcmVhY2ggKFJlc3VsdCByZXN1bHQgaW4gcmVzdWx0cykNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBSZXBvcnRSZXN1bHQocmVzdWx0LCBsb2dnZXIpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICAgICAgcHJpdmF0ZSBzdGF0aWMgdm9pZCBSZXBvcnRSZXN1bHQoDQogICAgICAgICAgICBSZXN1bHQgcmVzdWx0LA0KICAgICAgICAgICAgSUFuYWx5c2lzTG9nZ2VyIGxvZ2dlcikNCiAgICAgICAgew0KICAgICAgICAgICAgUnVsZSBydWxlID0gUnVsZUZhY3RvcnkuR2V0UnVsZUZyb21SdWxlSWQocmVzdWx0LlJ1bGVJZCk7DQogICAgICAgICAgICBsb2dnZXIuTG9nKHJ1bGUsIHJlc3VsdCk7DQogICAgICAgIH0NCiAgICB9DQp9DQo=" + { + "ruleId": "CA3053", + "message": { + "text": "'FortifyConverter.Convert(Stream, IResultLogWriter, OptionallyEmittedData)' instantiates an XmlReader instance by calling System.Xml.XmlReader.Create(System.IO.Stream,System.Xml.XmlReaderSettings) and provided an XmlReaderSettings instance with an insecure XmlResolver property value. This usage is potentially unsafe as untrusted external resources may be resolved during read operations. Provide a XmlReaderSettings instance and set the XmlResolver property to null or an instance of XmlSecureResolver.", + "id": "XmlReaderCreateInsecureXmlResolver" }, - "hashes": [ - { - "value": "570818640A038E510E1C8C4E59B190DE", - "algorithm": "md5" - }, - { - "value": "73B7C61ADC20D4694714D303C231578BA9C647B3", - "algorithm": "sha-1" - }, - { - "value": "7D24966EDEA651E7C731732930DB8F50EF3D7D8DE8B57EB3FA1EC5C4E53CF1C7", - "algorithm": "sha-256" - } - ] - }, - "file:///E:/src/sarif-sdk-test/src/Sarif.Multitool/Rules/DoNotUseFriendlyNameAsRuleId.cs": { - "mimeType": "text/x-csharp", - "contents": { - "binary": "77u/Ly8gQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuDQovLyBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UuIFNlZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHByb2plY3Qgcm9vdCBmb3IgZnVsbCBsaWNlbnNlIGluZm9ybWF0aW9uLg0KDQp1c2luZyBTeXN0ZW07DQp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsNCg0KbmFtZXNwYWNlIE1pY3Jvc29mdC5Db2RlQW5hbHlzaXMuU2FyaWYuTXVsdGl0b29sLlJ1bGVzDQp7DQogICAgcHVibGljIGNsYXNzIERvTm90VXNlRnJpZW5kbHlOYW1lQXNSdWxlSWQgOiBTYXJpZlZhbGlkYXRpb25Ta2ltbWVyQmFzZQ0KICAgIHsNCiAgICAgICAgcHJpdmF0ZSBNZXNzYWdlIF9mdWxsRGVzY3JpcHRpb24gPSBuZXcgTWVzc2FnZQ0KICAgICAgICB7DQogICAgICAgICAgICBUZXh0ID0gUnVsZVJlc291cmNlcy5TQVJJRjEwMDFfRG9Ob3RVc2VGcmllbmRseU5hbWVBc1J1bGVJZERlc2NyaXB0aW9uDQogICAgICAgIH07DQoNCiAgICAgICAgcHVibGljIG92ZXJyaWRlIE1lc3NhZ2UgRnVsbERlc2NyaXB0aW9uID0+IF9mdWxsRGVzY3JpcHRpb247DQoNCiAgICAgICAgcHVibGljIG92ZXJyaWRlIFJlc3VsdExldmVsIERlZmF1bHRMZXZlbCA9PiBSZXN1bHRMZXZlbC5XYXJuaW5nOw0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIFNBUklGMTAwMQ0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICBwdWJsaWMgb3ZlcnJpZGUgc3RyaW5nIElkID0+IFJ1bGVJZC5Eb05vdFVzZUZyaWVuZGx5TmFtZUFzUnVsZUlkOw0KDQogICAgICAgIHByb3RlY3RlZCBvdmVycmlkZSBJRW51bWVyYWJsZTxzdHJpbmc+IE1lc3NhZ2VSZXNvdXJjZU5hbWVzDQogICAgICAgIHsNCiAgICAgICAgICAgIGdldA0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHJldHVybiBuZXcgc3RyaW5nW10NCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIG5hbWVvZihSdWxlUmVzb3VyY2VzLlNBUklGMTAwMV9EZWZhdWx0KQ0KICAgICAgICAgICAgICAgIH07DQogICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgdm9pZCBBbmFseXplKFJ1bGUgcnVsZSwgc3RyaW5nIHJ1bGVQb2ludGVyKQ0KICAgICAgICB7DQogICAgICAgICAgICBpZiAocnVsZS5JZCAhPSBudWxsICYmDQogICAgICAgICAgICAgICAgcnVsZS5OYW1lICE9IG51bGwgJiYNCiAgICAgICAgICAgICAgICBydWxlLk5hbWUuVGV4dCAhPSBudWxsICYmDQogICAgICAgICAgICAgICAgcnVsZS5JZC5FcXVhbHMocnVsZS5OYW1lLlRleHQsIFN0cmluZ0NvbXBhcmlzb24uT3JkaW5hbElnbm9yZUNhc2UpKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIExvZ1Jlc3VsdCgNCiAgICAgICAgICAgICAgICAgICAgcnVsZVBvaW50ZXIsDQogICAgICAgICAgICAgICAgICAgIG5hbWVvZihSdWxlUmVzb3VyY2VzLlNBUklGMTAwMV9EZWZhdWx0KSwNCiAgICAgICAgICAgICAgICAgICAgcnVsZS5JZCk7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCiAgICB9DQp9DQo=" + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", + "uriBaseId": "$(ProjectDir)", + "index": 3 }, - "hashes": [ - { - "value": "5BE513CA01FABBFC46CA5C7681FF074C", - "algorithm": "md5" - }, - { - "value": "B20A8D169DA67D6BAACBD9727E4A2680FB8F3271", - "algorithm": "sha-1" - }, + "locations": [ { - "value": "69E3EF06A9B17C61D161D44D6C1A699131BD30E615CA3D6C089099D473581A1E", - "algorithm": "sha-256" + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/FortifyConverter.cs", + "index": 8 + }, + "region": { + "startLine": 57 + } + }, + "logicalLocations": [ + { + "index": 144, + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.FortifyConverter.Convert(System.IO.Stream,Microsoft.CodeAnalysis.Sarif.IResultLogWriter,Microsoft.CodeAnalysis.Sarif.OptionallyEmittedData)" + } + ] } - ] - }, - "file:///E:/src/sarif-sdk-test/src/Sarif.Multitool/Rules/EndColumnMustNotBeLessThanStartColumn.cs": { - "mimeType": "text/x-csharp", - "contents": { - "binary": "77u/Ly8gQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuDQovLyBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UuIFNlZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHByb2plY3Qgcm9vdCBmb3IgZnVsbCBsaWNlbnNlIGluZm9ybWF0aW9uLg0KDQp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsNCnVzaW5nIE1pY3Jvc29mdC5Kc29uLlBvaW50ZXI7DQp1c2luZyBOZXd0b25zb2Z0Lkpzb24uTGlucTsNCg0KbmFtZXNwYWNlIE1pY3Jvc29mdC5Db2RlQW5hbHlzaXMuU2FyaWYuTXVsdGl0b29sLlJ1bGVzDQp7DQogICAgcHVibGljIGNsYXNzIEVuZENvbHVtbk11c3ROb3RCZUxlc3NUaGFuU3RhcnRDb2x1bW4gOiBTYXJpZlZhbGlkYXRpb25Ta2ltbWVyQmFzZQ0KICAgIHsNCiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBNZXNzYWdlIF9mdWxsRGVzY3JpcHRpb24gPSBuZXcgTWVzc2FnZQ0KICAgICAgICB7DQogICAgICAgICAgICBUZXh0ID0gUnVsZVJlc291cmNlcy5TQVJJRjEwMTNfRW5kQ29sdW1uTXVzdE5vdEJlTGVzc1RoYW5TdGFydENvbHVtbg0KICAgICAgICB9Ow0KDQogICAgICAgIHB1YmxpYyBvdmVycmlkZSBNZXNzYWdlIEZ1bGxEZXNjcmlwdGlvbiA9PiBfZnVsbERlc2NyaXB0aW9uOw0KDQogICAgICAgIHB1YmxpYyBvdmVycmlkZSBSZXN1bHRMZXZlbCBEZWZhdWx0TGV2ZWwgPT4gUmVzdWx0TGV2ZWwuRXJyb3I7DQoNCiAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KICAgICAgICAvLy8gU0FSSUYxMDEzDQogICAgICAgIC8vLyA8L3N1bW1hcnk+DQogICAgICAgIHB1YmxpYyBvdmVycmlkZSBzdHJpbmcgSWQgPT4gUnVsZUlkLkVuZENvbHVtbk11c3ROb3RCZUxlc3NUaGFuU3RhcnRDb2x1bW47DQoNCiAgICAgICAgcHJvdGVjdGVkIG92ZXJyaWRlIElFbnVtZXJhYmxlPHN0cmluZz4gTWVzc2FnZVJlc291cmNlTmFtZXMNCiAgICAgICAgew0KICAgICAgICAgICAgZ2V0DQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBzdHJpbmdbXQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgbmFtZW9mKFJ1bGVSZXNvdXJjZXMuU0FSSUYxMDEzX0RlZmF1bHQpDQogICAgICAgICAgICAgICAgfTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgIHByb3RlY3RlZCBvdmVycmlkZSB2b2lkIEFuYWx5emUoUmVnaW9uIHJlZ2lvbiwgc3RyaW5nIHJlZ2lvblBvaW50ZXIpDQogICAgICAgIHsNCiAgICAgICAgICAgIHZhciBqc29uUG9pbnRlciA9IG5ldyBKc29uUG9pbnRlcihyZWdpb25Qb2ludGVyKTsNCiAgICAgICAgICAgIHZhciByZWdpb25Ub2tlbiA9IGpzb25Qb2ludGVyLkV2YWx1YXRlKENvbnRleHQuSW5wdXRMb2dUb2tlbik7DQoNCiAgICAgICAgICAgIGlmIChSZWdpb25Jc09uT25lTGluZShyZWdpb24sIHJlZ2lvblRva2VuKSAmJg0KICAgICAgICAgICAgICAgIHJlZ2lvblRva2VuLkhhc1Byb3BlcnR5KFNhcmlmUHJvcGVydHlOYW1lLkVuZENvbHVtbikgJiYNCiAgICAgICAgICAgICAgICByZWdpb24uRW5kQ29sdW1uIDwgcmVnaW9uLlN0YXJ0Q29sdW1uKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHN0cmluZyBlbmRDb2x1bW5Qb2ludGVyID0gcmVnaW9uUG9pbnRlci5BdFByb3BlcnR5KFNhcmlmUHJvcGVydHlOYW1lLkVuZENvbHVtbik7DQoNCiAgICAgICAgICAgICAgICBMb2dSZXN1bHQoDQogICAgICAgICAgICAgICAgICAgIGVuZENvbHVtblBvaW50ZXIsDQogICAgICAgICAgICAgICAgICAgIG5hbWVvZihSdWxlUmVzb3VyY2VzLlNBUklGMTAxM19EZWZhdWx0KSwNCiAgICAgICAgICAgICAgICAgICAgcmVnaW9uLkVuZENvbHVtbi5Ub0ludmFyaWFudFN0cmluZygpLA0KICAgICAgICAgICAgICAgICAgICByZWdpb24uU3RhcnRDb2x1bW4uVG9JbnZhcmlhbnRTdHJpbmcoKSk7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICBwcml2YXRlIHN0YXRpYyBib29sIFJlZ2lvbklzT25PbmVMaW5lKFJlZ2lvbiByZWdpb24sIEpUb2tlbiByZWdpb25Ub2tlbikNCiAgICAgICAgew0KICAgICAgICAgICAgcmV0dXJuIHJlZ2lvblRva2VuLkhhc1Byb3BlcnR5KFNhcmlmUHJvcGVydHlOYW1lLkVuZExpbmUpDQogICAgICAgICAgICAgICAgPyByZWdpb24uU3RhcnRMaW5lID09IHJlZ2lvbi5FbmRMaW5lDQogICAgICAgICAgICAgICAgOiB0cnVlOw0KICAgICAgICB9DQogICAgfQ0KfQ0K" + ], + "partialFingerprints": { + "UniqueId": "XmlReaderCreateInsecureXmlResolver" }, - "hashes": [ - { - "value": "6D4D0F8F7F14983C174E7475B411484C", - "algorithm": "md5" - }, - { - "value": "C4123B0BD6809059B152E084F5E02245A95EFE2A", - "algorithm": "sha-1" - }, - { - "value": "6221EB52D51CD295752AB2DB1CB074AE7B23C8A39607C3EE71F38D4AD5476D8C", - "algorithm": "sha-256" - } - ] + "properties": { + "Category": "Microsoft.Security.Xml", + "FixCategory": "NonBreaking" + } }, - "file:///E:/src/sarif-sdk-test/src/Sarif.Multitool/Rules/EndLineMustNotBeLessThanStartLine.cs": { - "mimeType": "text/x-csharp", - "contents": { - "binary": "77u/Ly8gQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuDQovLyBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UuIFNlZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHByb2plY3Qgcm9vdCBmb3IgZnVsbCBsaWNlbnNlIGluZm9ybWF0aW9uLg0KDQp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsNCnVzaW5nIE1pY3Jvc29mdC5Kc29uLlBvaW50ZXI7DQoNCm5hbWVzcGFjZSBNaWNyb3NvZnQuQ29kZUFuYWx5c2lzLlNhcmlmLk11bHRpdG9vbC5SdWxlcw0Kew0KICAgIHB1YmxpYyBjbGFzcyBFbmRMaW5lTXVzdE5vdEJlTGVzc1RoYW5TdGFydExpbmUgOiBTYXJpZlZhbGlkYXRpb25Ta2ltbWVyQmFzZQ0KICAgIHsNCiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBNZXNzYWdlIF9mdWxsRGVzY3JpcHRpb24gPSBuZXcgTWVzc2FnZQ0KICAgICAgICB7DQogICAgICAgICAgICBUZXh0ID0gUnVsZVJlc291cmNlcy5TQVJJRjEwMTJfRW5kTGluZU11c3ROb3RCZUxlc3NUaGFuU3RhcnRMaW5lDQogICAgICAgIH07DQoNCiAgICAgICAgcHVibGljIG92ZXJyaWRlIE1lc3NhZ2UgRnVsbERlc2NyaXB0aW9uID0+IF9mdWxsRGVzY3JpcHRpb247DQoNCiAgICAgICAgcHVibGljIG92ZXJyaWRlIFJlc3VsdExldmVsIERlZmF1bHRMZXZlbCA9PiBSZXN1bHRMZXZlbC5FcnJvcjsNCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBTQVJJRjEwMTINCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgcHVibGljIG92ZXJyaWRlIHN0cmluZyBJZCA9PiBSdWxlSWQuRW5kTGluZU11c3ROb3RCZUxlc3NUaGFuU3RhcnRMaW5lOw0KDQogICAgICAgIHByb3RlY3RlZCBvdmVycmlkZSBJRW51bWVyYWJsZTxzdHJpbmc+IE1lc3NhZ2VSZXNvdXJjZU5hbWVzDQogICAgICAgIHsNCiAgICAgICAgICAgIGdldA0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHJldHVybiBuZXcgc3RyaW5nW10NCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIG5hbWVvZihSdWxlUmVzb3VyY2VzLlNBUklGMTAxMl9EZWZhdWx0KQ0KICAgICAgICAgICAgICAgIH07DQogICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgdm9pZCBBbmFseXplKFJlZ2lvbiByZWdpb24sIHN0cmluZyByZWdpb25Qb2ludGVyKQ0KICAgICAgICB7DQogICAgICAgICAgICB2YXIganNvblBvaW50ZXIgPSBuZXcgSnNvblBvaW50ZXIocmVnaW9uUG9pbnRlcik7DQogICAgICAgICAgICB2YXIgcmVnaW9uVG9rZW4gPSBqc29uUG9pbnRlci5FdmFsdWF0ZShDb250ZXh0LklucHV0TG9nVG9rZW4pOw0KDQogICAgICAgICAgICBpZiAocmVnaW9uVG9rZW4uSGFzUHJvcGVydHkoU2FyaWZQcm9wZXJ0eU5hbWUuRW5kTGluZSkgJiYNCiAgICAgICAgICAgICAgICByZWdpb24uRW5kTGluZSA8IHJlZ2lvbi5TdGFydExpbmUpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgc3RyaW5nIGVuZExpbmVQb2ludGVyID0gcmVnaW9uUG9pbnRlci5BdFByb3BlcnR5KFNhcmlmUHJvcGVydHlOYW1lLkVuZExpbmUpOw0KDQogICAgICAgICAgICAgICAgTG9nUmVzdWx0KA0KICAgICAgICAgICAgICAgICAgICBlbmRMaW5lUG9pbnRlciwNCiAgICAgICAgICAgICAgICAgICAgbmFtZW9mKFJ1bGVSZXNvdXJjZXMuU0FSSUYxMDEyX0RlZmF1bHQpLA0KICAgICAgICAgICAgICAgICAgICByZWdpb24uRW5kTGluZS5Ub0ludmFyaWFudFN0cmluZygpLA0KICAgICAgICAgICAgICAgICAgICByZWdpb24uU3RhcnRMaW5lLlRvSW52YXJpYW50U3RyaW5nKCkpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgfQ0KfQ0K" + { + "ruleId": "CA1303", + "message": { + "text": "Method 'FortifyFprConverter.AddMessagesToResults()' passes a literal string as parameter 'value' of a call to 'Message.Text.set(string)'. Retrieve the following string(s) from a resource table instead: \"[, ](1)\".", + "id": "KnownValue" }, - "hashes": [ - { - "value": "8A8194EE833A2F79EAC0FBBB1D5ADB7B", - "algorithm": "md5" - }, - { - "value": "35892C1BBD461CC6B1040B7A512B9543C291A3EA", - "algorithm": "sha-1" - }, - { - "value": "3EBE9CE18C311B2D9D41382CD35A46998B57181055BAE716966B44B11E06CB2D", - "algorithm": "sha-256" - } - ] - }, - "file:///E:/src/sarif-sdk-test/src/Sarif.Multitool/Rules/EndTimeMustBeAfterStartTime.cs": { - "mimeType": "text/x-csharp", - "contents": { - "binary": "77u/Ly8gQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuDQovLyBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UuIFNlZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHByb2plY3Qgcm9vdCBmb3IgZnVsbCBsaWNlbnNlIGluZm9ybWF0aW9uLg0KDQp1c2luZyBTeXN0ZW07DQp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsNCnVzaW5nIFN5c3RlbS5HbG9iYWxpemF0aW9uOw0KdXNpbmcgTWljcm9zb2Z0Lkpzb24uUG9pbnRlcjsNCg0KbmFtZXNwYWNlIE1pY3Jvc29mdC5Db2RlQW5hbHlzaXMuU2FyaWYuTXVsdGl0b29sLlJ1bGVzDQp7DQogICAgcHVibGljIGNsYXNzIEVuZFRpbWVNdXN0QmVBZnRlclN0YXJ0VGltZSA6IFNhcmlmVmFsaWRhdGlvblNraW1tZXJCYXNlDQogICAgew0KICAgICAgICBwcml2YXRlIE1lc3NhZ2UgX2Z1bGxEZXNjcmlwdGlvbiA9IG5ldyBNZXNzYWdlDQogICAgICAgIHsNCiAgICAgICAgICAgIFRleHQgPSBSdWxlUmVzb3VyY2VzLlNBUklGMTAwN19FbmRUaW1lTXVzdEJlQWZ0ZXJTdGFydFRpbWUNCiAgICAgICAgfTsNCg0KICAgICAgICBwdWJsaWMgb3ZlcnJpZGUgTWVzc2FnZSBGdWxsRGVzY3JpcHRpb24gPT4gX2Z1bGxEZXNjcmlwdGlvbjsNCg0KICAgICAgICBwdWJsaWMgb3ZlcnJpZGUgUmVzdWx0TGV2ZWwgRGVmYXVsdExldmVsID0+IFJlc3VsdExldmVsLkVycm9yOw0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIFNBUklGMTAwNw0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICBwdWJsaWMgb3ZlcnJpZGUgc3RyaW5nIElkID0+IFJ1bGVJZC5FbmRUaW1lTXVzdEJlQWZ0ZXJTdGFydFRpbWU7DQoNCiAgICAgICAgcHJvdGVjdGVkIG92ZXJyaWRlIElFbnVtZXJhYmxlPHN0cmluZz4gTWVzc2FnZVJlc291cmNlTmFtZXMNCiAgICAgICAgew0KICAgICAgICAgICAgZ2V0DQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBzdHJpbmdbXQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgbmFtZW9mKFJ1bGVSZXNvdXJjZXMuU0FSSUYxMDA3X0RlZmF1bHQpDQogICAgICAgICAgICAgICAgfTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgIHByb3RlY3RlZCBvdmVycmlkZSB2b2lkIEFuYWx5emUoSW52b2NhdGlvbiBpbnZvY2F0aW9uLCBzdHJpbmcgaW52b2NhdGlvblBvaW50ZXIpDQogICAgICAgIHsNCiAgICAgICAgICAgIGlmIChpbnZvY2F0aW9uLlN0YXJ0VGltZSA+IGludm9jYXRpb24uRW5kVGltZSkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBzdHJpbmcgZW5kVGltZVBvaW50ZXIgPSBpbnZvY2F0aW9uUG9pbnRlci5BdFByb3BlcnR5KFNhcmlmUHJvcGVydHlOYW1lLkVuZFRpbWUpOw0KDQogICAgICAgICAgICAgICAgTG9nUmVzdWx0KA0KICAgICAgICAgICAgICAgICAgICBlbmRUaW1lUG9pbnRlciwNCiAgICAgICAgICAgICAgICAgICAgbmFtZW9mKFJ1bGVSZXNvdXJjZXMuU0FSSUYxMDA3X0RlZmF1bHQpLA0KICAgICAgICAgICAgICAgICAgICBGb3JtYXREYXRlVGltZShpbnZvY2F0aW9uLkVuZFRpbWUpLA0KICAgICAgICAgICAgICAgICAgICBGb3JtYXREYXRlVGltZShpbnZvY2F0aW9uLlN0YXJ0VGltZSkpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICAgICAgcHJpdmF0ZSBzdGF0aWMgc3RyaW5nIEZvcm1hdERhdGVUaW1lKERhdGVUaW1lIGRhdGVUaW1lKQ0KICAgICAgICB7DQogICAgICAgICAgICByZXR1cm4gZGF0ZVRpbWUuVG9TdHJpbmcoDQogICAgICAgICAgICAgICAgU2FyaWZVdGlsaXRpZXMuU2FyaWZEYXRlVGltZUZvcm1hdE1pbGxpc2Vjb25kc1ByZWNpc2lvbiwNCiAgICAgICAgICAgICAgICBDdWx0dXJlSW5mby5JbnZhcmlhbnRDdWx0dXJlKTsNCiAgICAgICAgfQ0KICAgIH0NCn0NCg==" + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", + "uriBaseId": "$(ProjectDir)", + "index": 3 }, - "hashes": [ - { - "value": "B4379693888BE062E8DD8BF30D83DDF9", - "algorithm": "md5" - }, - { - "value": "5FBC8A93C99D698D66EC0F9EAFC46C7BE5997C63", - "algorithm": "sha-1" - }, + "locations": [ { - "value": "E9041838DAF4B78299001D10F3AB5D50995C85E6CBB4FCAB607ACAA41892AC18", - "algorithm": "sha-256" + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/FortifyFprConverter.cs", + "index": 9 + }, + "region": { + "startLine": 854 + } + }, + "logicalLocations": [ + { + "index": 146, + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.FortifyFprConverter.AddMessagesToResults()" + } + ] } - ] - }, - "file:///E:/src/sarif-sdk-test/src/Sarif.Multitool/Rules/HashAlgorithmsMustBeUnique.cs": { - "mimeType": "text/x-csharp", - "contents": { - "binary": "77u/Ly8gQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuDQovLyBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UuIFNlZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHByb2plY3Qgcm9vdCBmb3IgZnVsbCBsaWNlbnNlIGluZm9ybWF0aW9uLg0KDQp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsNCnVzaW5nIFN5c3RlbS5MaW5xOw0KdXNpbmcgTWljcm9zb2Z0Lkpzb24uUG9pbnRlcjsNCg0KbmFtZXNwYWNlIE1pY3Jvc29mdC5Db2RlQW5hbHlzaXMuU2FyaWYuTXVsdGl0b29sLlJ1bGVzDQp7DQogICAgcHVibGljIGNsYXNzIEhhc2hBbGdvcml0aG1zTXVzdEJlVW5pcXVlIDogU2FyaWZWYWxpZGF0aW9uU2tpbW1lckJhc2UNCiAgICB7DQogICAgICAgIHByaXZhdGUgTWVzc2FnZSBfZnVsbERlc2NyaXB0aW9uID0gbmV3IE1lc3NhZ2UNCiAgICAgICAgew0KICAgICAgICAgICAgVGV4dCA9IFJ1bGVSZXNvdXJjZXMuU0FSSUYxMDA2X0hhc2hBbGdvcml0aG1zTXVzdEJlVW5pcXVlDQogICAgICAgIH07DQoNCiAgICAgICAgcHVibGljIG92ZXJyaWRlIE1lc3NhZ2UgRnVsbERlc2NyaXB0aW9uID0+IF9mdWxsRGVzY3JpcHRpb247DQoNCiAgICAgICAgcHVibGljIG92ZXJyaWRlIFJlc3VsdExldmVsIERlZmF1bHRMZXZlbCA9PiBSZXN1bHRMZXZlbC5FcnJvcjsNCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBTQVJJRjEwMDYNCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgcHVibGljIG92ZXJyaWRlIHN0cmluZyBJZCA9PiBSdWxlSWQuSGFzaEFsZ29yaXRobXNNdXN0QmVVbmlxdWU7DQoNCiAgICAgICAgcHJvdGVjdGVkIG92ZXJyaWRlIElFbnVtZXJhYmxlPHN0cmluZz4gTWVzc2FnZVJlc291cmNlTmFtZXMNCiAgICAgICAgew0KICAgICAgICAgICAgZ2V0DQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBzdHJpbmdbXQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgbmFtZW9mKFJ1bGVSZXNvdXJjZXMuU0FSSUYxMDA2X0RlZmF1bHQpDQogICAgICAgICAgICAgICAgfTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgIHByb3RlY3RlZCBvdmVycmlkZSB2b2lkIEFuYWx5emUoRmlsZURhdGEgZmlsZURhdGEsIHN0cmluZyBmaWxlS2V5LCBzdHJpbmcgZmlsZVBvaW50ZXIpDQogICAgICAgIHsNCiAgICAgICAgICAgIGlmIChmaWxlRGF0YS5IYXNoZXMgIT0gbnVsbCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBmb3JlYWNoIChzdHJpbmcgYWxnb3JpdGhtS2luZCBpbiBmaWxlRGF0YS5IYXNoZXMuU2VsZWN0KGggPT4gaC5BbGdvcml0aG0pLkRpc3RpbmN0KCkpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBpZiAoZmlsZURhdGEuSGFzaGVzLkNvdW50KGggPT4gaC5BbGdvcml0aG0gPT0gYWxnb3JpdGhtS2luZCkgPiAxKQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICBzdHJpbmcgaGFzaGVzUG9pbnRlciA9IGZpbGVQb2ludGVyLkF0UHJvcGVydHkoU2FyaWZQcm9wZXJ0eU5hbWUuSGFzaGVzKTsNCg0KICAgICAgICAgICAgICAgICAgICAgICAgTG9nUmVzdWx0KA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhc2hlc1BvaW50ZXIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZW9mKFJ1bGVSZXNvdXJjZXMuU0FSSUYxMDA2X0RlZmF1bHQpLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsZ29yaXRobUtpbmQuVG9TdHJpbmcoKSk7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQogICAgICAgIH0NCiAgICB9DQp9DQo=" + ], + "partialFingerprints": { + "UniqueId": "Microsoft.CodeAnalysis.Sarif.Message.set_Text(System.String)#KnownValue" }, - "hashes": [ - { - "value": "D6720FEFE4E8DF0660CBF192CC8AA6B0", - "algorithm": "md5" - }, - { - "value": "20EFE0DDD16934507DAA6EC869D2ECF271A89BEE", - "algorithm": "sha-1" - }, - { - "value": "389D5F10E9F9748082DE756624EE72329743AE3C454CE543A7801EE33CCD8889", - "algorithm": "sha-256" - } - ] + "properties": { + "Category": "Microsoft.Globalization", + "FixCategory": "DependsOnFix" + } }, - "file:///E:/src/sarif-sdk-test/src/Sarif.Multitool/Rules/MessagesShouldEndWithPeriod.cs": { - "mimeType": "text/x-csharp", - "contents": { - "binary": "77u/Ly8gQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuDQovLyBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UuIFNlZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHByb2plY3Qgcm9vdCBmb3IgZnVsbCBsaWNlbnNlIGluZm9ybWF0aW9uLg0KDQp1c2luZyBTeXN0ZW07DQp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsNCnVzaW5nIE1pY3Jvc29mdC5Kc29uLlBvaW50ZXI7DQoNCm5hbWVzcGFjZSBNaWNyb3NvZnQuQ29kZUFuYWx5c2lzLlNhcmlmLk11bHRpdG9vbC5SdWxlcw0Kew0KICAgIHB1YmxpYyBjbGFzcyBNZXNzYWdlc1Nob3VsZEVuZFdpdGhQZXJpb2QgOiBTYXJpZlZhbGlkYXRpb25Ta2ltbWVyQmFzZQ0KICAgIHsNCiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBNZXNzYWdlIF9mdWxsRGVzY3JpcHRpb24gPSBuZXcgTWVzc2FnZQ0KICAgICAgICB7DQogICAgICAgICAgICBUZXh0ID0gUnVsZVJlc291cmNlcy5TQVJJRjEwMDhfTWVzc2FnZXNTaG91bGRFbmRXaXRoUGVyaW9kDQogICAgICAgIH07DQoNCiAgICAgICAgcHVibGljIG92ZXJyaWRlIE1lc3NhZ2UgRnVsbERlc2NyaXB0aW9uID0+IF9mdWxsRGVzY3JpcHRpb247DQoNCiAgICAgICAgcHVibGljIG92ZXJyaWRlIFJlc3VsdExldmVsIERlZmF1bHRMZXZlbCA9PiBSZXN1bHRMZXZlbC5XYXJuaW5nOw0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIFNBUklGMTAwOA0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICBwdWJsaWMgb3ZlcnJpZGUgc3RyaW5nIElkID0+IFJ1bGVJZC5NZXNzYWdlc1Nob3VsZEVuZFdpdGhQZXJpb2Q7DQoNCiAgICAgICAgcHJvdGVjdGVkIG92ZXJyaWRlIElFbnVtZXJhYmxlPHN0cmluZz4gTWVzc2FnZVJlc291cmNlTmFtZXMNCiAgICAgICAgew0KICAgICAgICAgICAgZ2V0DQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBzdHJpbmdbXQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgbmFtZW9mKFJ1bGVSZXNvdXJjZXMuU0FSSUYxMDA4X0RlZmF1bHQpDQogICAgICAgICAgICAgICAgfTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgIHByb3RlY3RlZCBvdmVycmlkZSB2b2lkIEFuYWx5emUoUnVsZSBydWxlLCBzdHJpbmcgcnVsZVBvaW50ZXIpDQogICAgICAgIHsNCiAgICAgICAgICAgIEFuYWx5emVNZXNzYWdlU3RyaW5ncyhydWxlLk1lc3NhZ2VTdHJpbmdzLCBydWxlUG9pbnRlciwgU2FyaWZQcm9wZXJ0eU5hbWUuTWVzc2FnZVN0cmluZ3MpOw0KICAgICAgICAgICAgQW5hbHl6ZU1lc3NhZ2VTdHJpbmdzKHJ1bGUuUmljaE1lc3NhZ2VTdHJpbmdzLCBydWxlUG9pbnRlciwgU2FyaWZQcm9wZXJ0eU5hbWUuUmljaE1lc3NhZ2VTdHJpbmdzKTsNCiAgICAgICAgfQ0KDQogICAgICAgIHByaXZhdGUgdm9pZCBBbmFseXplTWVzc2FnZVN0cmluZ3MoDQogICAgICAgICAgICBJRGljdGlvbmFyeTxzdHJpbmcsIHN0cmluZz4gbWVzc2FnZVN0cmluZ3MsDQogICAgICAgICAgICBzdHJpbmcgcnVsZVBvaW50ZXIsDQogICAgICAgICAgICBzdHJpbmcgcHJvcGVydHlOYW1lKQ0KICAgICAgICB7DQogICAgICAgICAgICBpZiAobWVzc2FnZVN0cmluZ3MgIT0gbnVsbCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBmb3JlYWNoIChzdHJpbmcga2V5IGluIG1lc3NhZ2VTdHJpbmdzLktleXMpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBzdHJpbmcgbWVzc2FnZVN0cmluZyA9IG1lc3NhZ2VTdHJpbmdzW2tleV07DQogICAgICAgICAgICAgICAgICAgIGlmICghU3RyaW5nLklzTnVsbE9yRW1wdHkobWVzc2FnZVN0cmluZykgJiYgRG9lc05vdEVuZFdpdGhQZXJpb2QobWVzc2FnZVN0cmluZykpDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHN0cmluZyBtZXNzYWdlUG9pbnRlciA9IHJ1bGVQb2ludGVyDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF0UHJvcGVydHkocHJvcGVydHlOYW1lKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdFByb3BlcnR5KGtleSk7DQoNCiAgICAgICAgICAgICAgICAgICAgICAgIExvZ1Jlc3VsdCgNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlUG9pbnRlciwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lb2YoUnVsZVJlc291cmNlcy5TQVJJRjEwMDhfRGVmYXVsdCksDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZVN0cmluZyk7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgdm9pZCBBbmFseXplKE1lc3NhZ2UgbWVzc2FnZSwgc3RyaW5nIG1lc3NhZ2VQb2ludGVyKQ0KICAgICAgICB7DQogICAgICAgICAgICBBbmFseXplTWVzc2FnZVN0cmluZyhtZXNzYWdlLlRleHQsIG1lc3NhZ2VQb2ludGVyLCBTYXJpZlByb3BlcnR5TmFtZS5UZXh0KTsNCiAgICAgICAgICAgIEFuYWx5emVNZXNzYWdlU3RyaW5nKG1lc3NhZ2UuUmljaFRleHQsIG1lc3NhZ2VQb2ludGVyLCBTYXJpZlByb3BlcnR5TmFtZS5SaWNoVGV4dCk7DQogICAgICAgIH0NCg0KICAgICAgICBwcml2YXRlIHZvaWQgQW5hbHl6ZU1lc3NhZ2VTdHJpbmcoDQogICAgICAgICAgICBzdHJpbmcgbWVzc2FnZVN0cmluZywNCiAgICAgICAgICAgIHN0cmluZyBtZXNzYWdlUG9pbnRlciwNCiAgICAgICAgICAgIHN0cmluZyBwcm9wZXJ0eU5hbWUpDQogICAgICAgIHsNCiAgICAgICAgICAgIGlmICghU3RyaW5nLklzTnVsbE9yRW1wdHkobWVzc2FnZVN0cmluZykgJiYgRG9lc05vdEVuZFdpdGhQZXJpb2QobWVzc2FnZVN0cmluZykpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgc3RyaW5nIHRleHRQb2ludGVyID0gbWVzc2FnZVBvaW50ZXIuQXRQcm9wZXJ0eShwcm9wZXJ0eU5hbWUpOw0KDQogICAgICAgICAgICAgICAgTG9nUmVzdWx0KA0KICAgICAgICAgICAgICAgICAgICB0ZXh0UG9pbnRlciwNCiAgICAgICAgICAgICAgICAgICAgbmFtZW9mKFJ1bGVSZXNvdXJjZXMuU0FSSUYxMDA4X0RlZmF1bHQpLA0KICAgICAgICAgICAgICAgICAgICBtZXNzYWdlU3RyaW5nKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgIHByaXZhdGUgc3RhdGljIGJvb2wgRG9lc05vdEVuZFdpdGhQZXJpb2Qoc3RyaW5nIG1lc3NhZ2UpDQogICAgICAgIHsNCiAgICAgICAgICAgIHJldHVybiBtZXNzYWdlICE9IG51bGwgJiYgIW1lc3NhZ2UuRW5kc1dpdGgoIi4iLCBTdHJpbmdDb21wYXJpc29uLk9yZGluYWwpOw0KICAgICAgICB9DQogICAgfQ0KfQ0K" + { + "ruleId": "CA1305", + "level": "error", + "message": { + "text": "Because the behavior of 'string.Format(string, object)' could vary based on the current user's locale settings, replace this call in 'FortifyFprConverter.AddMessagesToResults()' with a call to 'string.Format(IFormatProvider, string, params object[])'. If the result of 'string.Format(IFormatProvider, string, params object[])' will be displayed to the user, specify 'CultureInfo.CurrentCulture' as the 'IFormatProvider' parameter. Otherwise, if the result will be stored and accessed by software, such as when it is persisted to disk or to a database, specify 'CultureInfo.InvariantCulture'.", + "id": "IFormatProviderAlternateString" }, - "hashes": [ - { - "value": "3E5EE632E853DF80BD3D1129FEA07B94", - "algorithm": "md5" - }, - { - "value": "41045F7B9BB45E9D8ECD597967DEA30A22880998", - "algorithm": "sha-1" - }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", + "uriBaseId": "$(ProjectDir)", + "index": 3 + }, + "locations": [ { - "value": "6F46C60DF254D88557ABAAE8599DC9C43EEC666A2BCBEF7EED7ADCB6961AF358", - "algorithm": "sha-256" + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/FortifyFprConverter.cs", + "index": 9 + }, + "region": { + "startLine": 843 + } + }, + "logicalLocations": [ + { + "index": 146, + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.FortifyFprConverter.AddMessagesToResults()" + } + ] } - ] + ], + "partialFingerprints": { + "UniqueId": "System.String.Format(System.String,System.Object)#IFormatProviderAlternateString" + }, + "properties": { + "Category": "Microsoft.Globalization", + "FixCategory": "NonBreaking" + } }, - "file:///E:/src/sarif-sdk-test/src/Sarif.Multitool/Rules/SarifValidationSkimmerBase.cs": { - "mimeType": "text/x-csharp", - "contents": { - "binary": "77u/Ly8gQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuDQovLyBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UuIFNlZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHByb2plY3Qgcm9vdCBmb3IgZnVsbCBsaWNlbnNlIGluZm9ybWF0aW9uLg0KDQp1c2luZyBTeXN0ZW07DQp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsNCnVzaW5nIFN5c3RlbS5MaW5xOw0KdXNpbmcgU3lzdGVtLlJlc291cmNlczsNCnVzaW5nIE1pY3Jvc29mdC5Db2RlQW5hbHlzaXMuU2FyaWYuRHJpdmVyOw0KdXNpbmcgTWljcm9zb2Z0Lkpzb24uUG9pbnRlcjsNCnVzaW5nIE5ld3RvbnNvZnQuSnNvbjsNCnVzaW5nIE5ld3RvbnNvZnQuSnNvbi5MaW5xOw0KDQpuYW1lc3BhY2UgTWljcm9zb2Z0LkNvZGVBbmFseXNpcy5TYXJpZi5NdWx0aXRvb2wuUnVsZXMNCnsNCiAgICBwdWJsaWMgYWJzdHJhY3QgY2xhc3MgU2FyaWZWYWxpZGF0aW9uU2tpbW1lckJhc2UgOiBTa2ltbWVyQmFzZTxTYXJpZlZhbGlkYXRpb25Db250ZXh0Pg0KICAgIHsNCiAgICAgICAgcHJpdmF0ZSBjb25zdCBzdHJpbmcgU2FyaWZTcGVjVXJpID0NCiAgICAgICAgICAgICJodHRwOi8vZG9jcy5vYXNpcy1vcGVuLm9yZy9zYXJpZi9zYXJpZi92Mi4wL2NzcHJkMDEvc2FyaWYtdjIuMC1jc3ByZDAxLmh0bWwiOw0KDQogICAgICAgIHByaXZhdGUgcmVhZG9ubHkgVXJpIF9kZWZhdWx0SGVscFVyaSA9IG5ldyBVcmkoU2FyaWZTcGVjVXJpKTsNCg0KICAgICAgICBwdWJsaWMgb3ZlcnJpZGUgVXJpIEhlbHBVcmkgPT4gX2RlZmF1bHRIZWxwVXJpOw0KDQogICAgICAgIHByaXZhdGUgcmVhZG9ubHkgTWVzc2FnZSBfZW1wdHlIZWxwTWVzc2FnZSA9IG5ldyBNZXNzYWdlDQogICAgICAgIHsNCiAgICAgICAgICAgIFRleHQgPSBzdHJpbmcuRW1wdHkNCiAgICAgICAgfTsNCg0KICAgICAgICBwdWJsaWMgb3ZlcnJpZGUgTWVzc2FnZSBIZWxwID0+IF9lbXB0eUhlbHBNZXNzYWdlOw0KDQogICAgICAgIHByb3RlY3RlZCBTYXJpZlZhbGlkYXRpb25Db250ZXh0IENvbnRleHQgeyBnZXQ7IHByaXZhdGUgc2V0OyB9DQoNCiAgICAgICAgcHJvdGVjdGVkIG92ZXJyaWRlIHNlYWxlZCBSZXNvdXJjZU1hbmFnZXIgUmVzb3VyY2VNYW5hZ2VyID0+IFJ1bGVSZXNvdXJjZXMuUmVzb3VyY2VNYW5hZ2VyOw0KDQogICAgICAgIHByaXZhdGUgcmVhZG9ubHkgc3RyaW5nW10gX2VtcHR5TWVzc2FnZVJlc291cmNlTmFtZXMgPSBuZXcgc3RyaW5nWzBdOw0KDQogICAgICAgIHByb3RlY3RlZCBvdmVycmlkZSBJRW51bWVyYWJsZTxzdHJpbmc+IE1lc3NhZ2VSZXNvdXJjZU5hbWVzID0+IF9lbXB0eU1lc3NhZ2VSZXNvdXJjZU5hbWVzOw0KDQogICAgICAgIHB1YmxpYyBvdmVycmlkZSBzZWFsZWQgdm9pZCBBbmFseXplKFNhcmlmVmFsaWRhdGlvbkNvbnRleHQgY29udGV4dCkNCiAgICAgICAgew0KICAgICAgICAgICAgQ29udGV4dCA9IGNvbnRleHQ7DQogICAgICAgICAgICBDb250ZXh0LklucHV0TG9nVG9rZW4gPSBKVG9rZW4uUGFyc2UoQ29udGV4dC5JbnB1dExvZ0NvbnRlbnRzKTsNCg0KICAgICAgICAgICAgVmlzaXQoQ29udGV4dC5JbnB1dExvZywgbG9nUG9pbnRlcjogc3RyaW5nLkVtcHR5KTsNCiAgICAgICAgfQ0KDQogICAgICAgIHByb3RlY3RlZCB2b2lkIExvZ1Jlc3VsdChzdHJpbmcgalBvaW50ZXIsIHN0cmluZyBmb3JtYXRJZCwgcGFyYW1zIHN0cmluZ1tdIGFyZ3MpDQogICAgICAgIHsNCiAgICAgICAgICAgIFJlZ2lvbiByZWdpb24gPSBHZXRSZWdpb25Gcm9tSlBvaW50ZXIoalBvaW50ZXIpOw0KDQogICAgICAgICAgICAvLyBBbGwgbWVzc2FnZXMgc3RhcnQgd2l0aCAiSW4ge2ZpbGV9LCBhdCB7alBvaW50ZXJ9LCAuLi4iLiBQcmVwZW5kIHRoZSBqUG9pbnRlciB0byB0aGUgYXJncy4NCiAgICAgICAgICAgIHN0cmluZ1tdIGFyZ3NXaXRoUG9pbnRlciA9IG5ldyBzdHJpbmdbYXJncy5MZW5ndGggKyAxXTsNCiAgICAgICAgICAgIEFycmF5LkNvcHkoYXJncywgMCwgYXJnc1dpdGhQb2ludGVyLCAxLCBhcmdzLkxlbmd0aCk7DQogICAgICAgICAgICBhcmdzV2l0aFBvaW50ZXJbMF0gPSBqUG9pbnRlcjsNCg0KICAgICAgICAgICAgQ29udGV4dC5Mb2dnZXIuTG9nKHRoaXMsDQogICAgICAgICAgICAgICAgUnVsZVV0aWxpdGllcy5CdWlsZFJlc3VsdChEZWZhdWx0TGV2ZWwsIENvbnRleHQsIHJlZ2lvbiwgZm9ybWF0SWQsIGFyZ3NXaXRoUG9pbnRlcikpOw0KICAgICAgICB9DQoNCiAgICAgICAgcHJvdGVjdGVkIHZpcnR1YWwgdm9pZCBBbmFseXplKEF0dGFjaG1lbnQgYXR0YWNobWVudCwgc3RyaW5nIGF0dGFjaG1lbnRQb2ludGVyKQ0KICAgICAgICB7DQogICAgICAgIH0NCg0KICAgICAgICBwcm90ZWN0ZWQgdmlydHVhbCB2b2lkIEFuYWx5emUoQ29kZUZsb3cgY29kZUZsb3csIHN0cmluZyBjb2RlRmxvd1BvaW50ZXIpDQogICAgICAgIHsNCiAgICAgICAgfQ0KDQogICAgICAgIHByb3RlY3RlZCB2aXJ0dWFsIHZvaWQgQW5hbHl6ZShDb252ZXJzaW9uIGNvbnZlcnNpb24sIHN0cmluZyBjb252ZXJzaW9uUG9pbnRlcikNCiAgICAgICAgew0KICAgICAgICB9DQoNCiAgICAgICAgcHJvdGVjdGVkIHZpcnR1YWwgdm9pZCBBbmFseXplKEVkZ2UgZWRnZSwgc3RyaW5nIGVkZ2VQb2ludGVyKQ0KICAgICAgICB7DQogICAgICAgIH0NCg0KICAgICAgICBwcm90ZWN0ZWQgdmlydHVhbCB2b2lkIEFuYWx5emUoRmlsZUNoYW5nZSBmaWxlQ2hhbmdlLCBzdHJpbmcgZmlsZUNoYW5nZVBvaW50ZXIpDQogICAgICAgIHsNCiAgICAgICAgfQ0KDQogICAgICAgIHByb3RlY3RlZCB2aXJ0dWFsIHZvaWQgQW5hbHl6ZShGaWxlTG9jYXRpb24gZmlsZUxvY2F0aW9uLCBzdHJpbmcgZmlsZUxvY2F0aW9uUG9pbnRlcikNCiAgICAgICAgew0KICAgICAgICB9DQoNCiAgICAgICAgcHJvdGVjdGVkIHZpcnR1YWwgdm9pZCBBbmFseXplKEZpbGVEYXRhIGZpbGVEYXRhLCBzdHJpbmcgZmlsZUtleSwgc3RyaW5nIGZpbGVQb2ludGVyKQ0KICAgICAgICB7DQogICAgICAgIH0NCg0KICAgICAgICBwcm90ZWN0ZWQgdmlydHVhbCB2b2lkIEFuYWx5emUoR3JhcGggZ3JhcGgsIHN0cmluZyBncmFwaFBvaW50ZXIpDQogICAgICAgIHsNCiAgICAgICAgfQ0KDQogICAgICAgIHByb3RlY3RlZCB2aXJ0dWFsIHZvaWQgQW5hbHl6ZShJbnZvY2F0aW9uIGludm9jYXRpb24sIHN0cmluZyBpbnZvY2F0aW9uUG9pbnRlcikNCiAgICAgICAgew0KICAgICAgICB9DQoNCiAgICAgICAgcHJvdGVjdGVkIHZpcnR1YWwgdm9pZCBBbmFseXplKE1lc3NhZ2UgbWVzc2FnZSwgc3RyaW5nIG1lc3NhZ2VQb2ludGVyKQ0KICAgICAgICB7DQogICAgICAgIH0NCg0KICAgICAgICBwcm90ZWN0ZWQgdmlydHVhbCB2b2lkIEFuYWx5emUoTm9kZSBub2RlLCBzdHJpbmcgbm9kZVBvaW50ZXIpDQogICAgICAgIHsNCiAgICAgICAgfQ0KDQogICAgICAgIHByb3RlY3RlZCB2aXJ0dWFsIHZvaWQgQW5hbHl6ZShOb3RpZmljYXRpb24gbm90aWZpY2F0aW9uLCBzdHJpbmcgbm90aWZpY2F0aW9uUG9pbnRlcikNCiAgICAgICAgew0KICAgICAgICB9DQoNCiAgICAgICAgcHJvdGVjdGVkIHZpcnR1YWwgdm9pZCBBbmFseXplKFBoeXNpY2FsTG9jYXRpb24gcGh5c2ljYWxMb2NhdGlvbiwgc3RyaW5nIHBoeXNpY2FsTG9jYXRpb25Qb2ludGVyKQ0KICAgICAgICB7DQogICAgICAgIH0NCg0KICAgICAgICBwcm90ZWN0ZWQgdmlydHVhbCB2b2lkIEFuYWx5emUoUmVnaW9uIHJlZ2lvbiwgc3RyaW5nIHJlZ2lvblBvaW50ZXIpDQogICAgICAgIHsNCiAgICAgICAgfQ0KDQogICAgICAgIHByb3RlY3RlZCB2aXJ0dWFsIHZvaWQgQW5hbHl6ZShSZXN1bHQgcmVzdWx0LCBzdHJpbmcgcmVzdWx0UG9pbnRlcikNCiAgICAgICAgew0KICAgICAgICB9DQoNCiAgICAgICAgcHJvdGVjdGVkIHZpcnR1YWwgdm9pZCBBbmFseXplKFJ1bGUgcnVsZSwgc3RyaW5nIHJ1bGVQb2ludGVyKQ0KICAgICAgICB7DQogICAgICAgIH0NCiAgICAgICAgcHJvdGVjdGVkIHZpcnR1YWwgdm9pZCBBbmFseXplKFJ1biBydW4sIHN0cmluZyBydW5Qb2ludGVyKQ0KICAgICAgICB7DQogICAgICAgIH0NCg0KICAgICAgICBwcm90ZWN0ZWQgdmlydHVhbCB2b2lkIEFuYWx5emUoU2FyaWZMb2cgbG9nLCBzdHJpbmcgbG9nUG9pbnRlcikNCiAgICAgICAgew0KICAgICAgICB9DQoNCiAgICAgICAgcHJvdGVjdGVkIHZpcnR1YWwgdm9pZCBBbmFseXplKFN0YWNrIHN0YWNrLCBzdHJpbmcgc3RhY2tQb2ludGVyKQ0KICAgICAgICB7DQogICAgICAgIH0NCg0KICAgICAgICBwcm90ZWN0ZWQgdmlydHVhbCB2b2lkIEFuYWx5emUoU3RhY2tGcmFtZSBmcmFtZSwgc3RyaW5nIGZyYW1lUG9pbnRlcikNCiAgICAgICAgew0KICAgICAgICB9DQoNCiAgICAgICAgcHJvdGVjdGVkIHZpcnR1YWwgdm9pZCBBbmFseXplKFRocmVhZEZsb3cgdGhyZWFkRmxvdywgc3RyaW5nIHRocmVhZEZsb3dQb2ludGVyKQ0KICAgICAgICB7DQogICAgICAgIH0NCg0KICAgICAgICBwcm90ZWN0ZWQgdmlydHVhbCB2b2lkIEFuYWx5emUoVGhyZWFkRmxvd0xvY2F0aW9uIHRocmVhZEZsb3dMb2NhdGlvbiwgc3RyaW5nIHRocmVhZEZsb3dMb2NhdGlvblBvaW50ZXIpDQogICAgICAgIHsNCiAgICAgICAgfQ0KDQogICAgICAgIHByb3RlY3RlZCB2aXJ0dWFsIHZvaWQgQW5hbHl6ZShUb29sIHRvb2wsIHN0cmluZyB0b29sUG9pbnRlcikNCiAgICAgICAgew0KICAgICAgICB9DQoNCiAgICAgICAgcHJvdGVjdGVkIHZpcnR1YWwgdm9pZCBBbmFseXplKFZlcnNpb25Db250cm9sRGV0YWlscyB2ZXJzaW9uQ29udHJvbERldGFpbHMsIHN0cmluZyB2ZXJzaW9uQ29udHJvbERldGFpbHNQb2ludGVyKQ0KICAgICAgICB7DQogICAgICAgIH0NCg0KICAgICAgICBwcml2YXRlIHZvaWQgVmlzaXQoU2FyaWZMb2cgbG9nLCBzdHJpbmcgbG9nUG9pbnRlcikNCiAgICAgICAgew0KICAgICAgICAgICAgQW5hbHl6ZShsb2csIGxvZ1BvaW50ZXIpOw0KDQogICAgICAgICAgICBpZiAobG9nLlJ1bnMgIT0gbnVsbCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBSdW5bXSBydW5zID0gbG9nLlJ1bnMuVG9BcnJheSgpOw0KICAgICAgICAgICAgICAgIHN0cmluZyBydW5zUG9pbnRlciA9IGxvZ1BvaW50ZXIuQXRQcm9wZXJ0eShTYXJpZlByb3BlcnR5TmFtZS5SdW5zKTsNCg0KICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgcnVucy5MZW5ndGg7ICsraSkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIFZpc2l0KHJ1bnNbaV0sIHJ1bnNQb2ludGVyLkF0SW5kZXgoaSkpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgIHByaXZhdGUgdm9pZCBWaXNpdChBdHRhY2htZW50IGF0dGFjaG1lbnQsIHN0cmluZyBhdHRhY2htZW50UG9pbnRlcikNCiAgICAgICAgew0KICAgICAgICAgICAgQW5hbHl6ZShhdHRhY2htZW50LCBhdHRhY2htZW50UG9pbnRlcik7DQoNCiAgICAgICAgICAgIGlmIChhdHRhY2htZW50LkZpbGVMb2NhdGlvbiAhPSBudWxsKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIFZpc2l0KGF0dGFjaG1lbnQuRmlsZUxvY2F0aW9uLCBhdHRhY2htZW50UG9pbnRlci5BdFByb3BlcnR5KFNhcmlmUHJvcGVydHlOYW1lLkZpbGVMb2NhdGlvbikpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICAgICAgcHJpdmF0ZSB2b2lkIFZpc2l0KENvZGVGbG93IGNvZGVGbG93LCBzdHJpbmcgY29kZUZsb3dQb2ludGVyKQ0KICAgICAgICB7DQogICAgICAgICAgICBBbmFseXplKGNvZGVGbG93LCBjb2RlRmxvd1BvaW50ZXIpOw0KDQogICAgICAgICAgICBpZiAoY29kZUZsb3cuTWVzc2FnZSAhPSBudWxsKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIFZpc2l0KGNvZGVGbG93Lk1lc3NhZ2UsIGNvZGVGbG93UG9pbnRlci5BdFByb3BlcnR5KFNhcmlmUHJvcGVydHlOYW1lLk1lc3NhZ2UpKTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgaWYgKGNvZGVGbG93LlRocmVhZEZsb3dzICE9IG51bGwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgVGhyZWFkRmxvd1tdIHRocmVhZEZsb3dzID0gY29kZUZsb3cuVGhyZWFkRmxvd3MuVG9BcnJheSgpOw0KICAgICAgICAgICAgICAgIHN0cmluZyB0aHJlYWRGbG93c1BvaW50ZXIgPSBjb2RlRmxvd1BvaW50ZXIuQXRQcm9wZXJ0eShTYXJpZlByb3BlcnR5TmFtZS5UaHJlYWRGbG93cyk7DQoNCiAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHRocmVhZEZsb3dzLkxlbmd0aDsgKytpKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgVmlzaXQodGhyZWFkRmxvd3NbaV0sIHRocmVhZEZsb3dzUG9pbnRlci5BdEluZGV4KGkpKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICBwcml2YXRlIHZvaWQgVmlzaXQoQ29udmVyc2lvbiBjb252ZXJzaW9uLCBzdHJpbmcgY29udmVyc2lvblBvaW50ZXIpDQogICAgICAgIHsNCiAgICAgICAgICAgIEFuYWx5emUoY29udmVyc2lvbiwgY29udmVyc2lvblBvaW50ZXIpOw0KDQogICAgICAgICAgICBpZiAoY29udmVyc2lvbi5BbmFseXNpc1Rvb2xMb2dGaWxlcyAhPSBudWxsKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIEZpbGVMb2NhdGlvbltdIGFuYWx5c2lzVG9vbExvZ0ZpbGVzID0gY29udmVyc2lvbi5BbmFseXNpc1Rvb2xMb2dGaWxlcy5Ub0FycmF5KCk7DQogICAgICAgICAgICAgICAgc3RyaW5nIGFuYWx5c2lzVG9vbExvZ0ZpbGVzUG9pbnRlciA9IGNvbnZlcnNpb25Qb2ludGVyLkF0UHJvcGVydHkoU2FyaWZQcm9wZXJ0eU5hbWUuQW5hbHlzaXNUb29sTG9nRmlsZXMpOw0KDQogICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBhbmFseXNpc1Rvb2xMb2dGaWxlcy5MZW5ndGg7ICsraSkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIFZpc2l0KGFuYWx5c2lzVG9vbExvZ0ZpbGVzW2ldLCBhbmFseXNpc1Rvb2xMb2dGaWxlc1BvaW50ZXIuQXRJbmRleChpKSk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICAgICAgcHJpdmF0ZSB2b2lkIFZpc2l0KEVkZ2UgZWRnZSwgc3RyaW5nIGVkZ2VQb2ludGVyKQ0KICAgICAgICB7DQogICAgICAgICAgICBBbmFseXplKGVkZ2UsIGVkZ2VQb2ludGVyKTsNCiAgICAgICAgfQ0KDQogICAgICAgIHByaXZhdGUgdm9pZCBWaXNpdChGaWxlRGF0YSBmaWxlRGF0YSwgc3RyaW5nIGZpbGVLZXksIHN0cmluZyBmaWxlUG9pbnRlcikNCiAgICAgICAgew0KICAgICAgICAgICAgQW5hbHl6ZShmaWxlRGF0YSwgZmlsZUtleSwgZmlsZVBvaW50ZXIpOw0KDQogICAgICAgICAgICBpZiAoZmlsZURhdGEuRmlsZUxvY2F0aW9uICE9IG51bGwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgVmlzaXQoZmlsZURhdGEuRmlsZUxvY2F0aW9uLCBmaWxlUG9pbnRlci5BdFByb3BlcnR5KFNhcmlmUHJvcGVydHlOYW1lLkZpbGVMb2NhdGlvbikpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICAgICAgcHJpdmF0ZSB2b2lkIFZpc2l0KEZpbGVMb2NhdGlvbiBmaWxlTG9jYXRpb24sIHN0cmluZyBmaWxlTG9jYXRpb25Qb2ludGVyKQ0KICAgICAgICB7DQogICAgICAgICAgICBBbmFseXplKGZpbGVMb2NhdGlvbiwgZmlsZUxvY2F0aW9uUG9pbnRlcik7DQogICAgICAgIH0NCg0KICAgICAgICBwcml2YXRlIHZvaWQgVmlzaXQoRml4IGZpeCwgc3RyaW5nIGZpeFBvaW50ZXIpDQogICAgICAgIHsNCiAgICAgICAgICAgIGlmIChmaXguRmlsZUNoYW5nZXMgIT0gbnVsbCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBGaWxlQ2hhbmdlW10gZmlsZUNoYW5nZXMgPSBmaXguRmlsZUNoYW5nZXMuVG9BcnJheSgpOw0KICAgICAgICAgICAgICAgIHN0cmluZyBmaWxlQ2hhbmdlc1BvaW50ZXIgPSBmaXhQb2ludGVyLkF0UHJvcGVydHkoU2FyaWZQcm9wZXJ0eU5hbWUuRmlsZUNoYW5nZXMpOw0KDQogICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBmaWxlQ2hhbmdlcy5MZW5ndGg7ICsraSkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIFZpc2l0KGZpbGVDaGFuZ2VzW2ldLCBmaWxlQ2hhbmdlc1BvaW50ZXIuQXRJbmRleChpKSk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICAgICAgcHJpdmF0ZSB2b2lkIFZpc2l0KEZpbGVDaGFuZ2UgZmlsZUNoYW5nZSwgc3RyaW5nIGZpbGVDaGFuZ2VQb2ludGVyKQ0KICAgICAgICB7DQogICAgICAgICAgICBBbmFseXplKGZpbGVDaGFuZ2UsIGZpbGVDaGFuZ2VQb2ludGVyKTsNCg0KICAgICAgICAgICAgaWYgKGZpbGVDaGFuZ2UuRmlsZUxvY2F0aW9uICE9IG51bGwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgVmlzaXQoZmlsZUNoYW5nZS5GaWxlTG9jYXRpb24sIGZpbGVDaGFuZ2VQb2ludGVyLkF0UHJvcGVydHkoU2FyaWZQcm9wZXJ0eU5hbWUuRmlsZUxvY2F0aW9uKSk7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICBwcml2YXRlIHZvaWQgVmlzaXQoR3JhcGggZ3JhcGgsIHN0cmluZyBncmFwaFBvaW50ZXIpDQogICAgICAgIHsNCiAgICAgICAgICAgIEFuYWx5emUoZ3JhcGgsIGdyYXBoUG9pbnRlcik7DQoNCiAgICAgICAgICAgIGlmIChncmFwaC5FZGdlcyAhPSBudWxsKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIEVkZ2VbXSBlZGdlcyA9IGdyYXBoLkVkZ2VzLlRvQXJyYXkoKTsNCiAgICAgICAgICAgICAgICBzdHJpbmcgZWRnZXNQb2ludGVyID0gZ3JhcGhQb2ludGVyLkF0UHJvcGVydHkoU2FyaWZQcm9wZXJ0eU5hbWUuRWRnZXMpOw0KDQogICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBlZGdlcy5MZW5ndGg7ICsraSkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIFZpc2l0KGVkZ2VzW2ldLCBlZGdlc1BvaW50ZXIuQXRJbmRleChpKSk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBpZiAoZ3JhcGguTm9kZXMgIT0gbnVsbCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBOb2RlW10gbm9kZXMgPSBncmFwaC5Ob2Rlcy5Ub0FycmF5KCk7DQogICAgICAgICAgICAgICAgc3RyaW5nIG5vZGVzUG9pbnRlciA9IGdyYXBoUG9pbnRlci5BdFByb3BlcnR5KFNhcmlmUHJvcGVydHlOYW1lLk5vZGVzKTsNCg0KICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbm9kZXMuTGVuZ3RoOyArK2kpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBWaXNpdChub2Rlc1tpXSwgbm9kZXNQb2ludGVyLkF0SW5kZXgoaSkpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgIHByaXZhdGUgdm9pZCBWaXNpdChJbnZvY2F0aW9uIGludm9jYXRpb24sIHN0cmluZyBpbnZvY2F0aW9uUG9pbnRlcikNCiAgICAgICAgew0KICAgICAgICAgICAgQW5hbHl6ZShpbnZvY2F0aW9uLCBpbnZvY2F0aW9uUG9pbnRlcik7DQoNCiAgICAgICAgICAgIGlmIChpbnZvY2F0aW9uLkF0dGFjaG1lbnRzICE9IG51bGwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgQXR0YWNobWVudFtdIGF0dGFjaG1lbnRzID0gaW52b2NhdGlvbi5BdHRhY2htZW50cy5Ub0FycmF5KCk7DQogICAgICAgICAgICAgICAgc3RyaW5nIGF0dGFjaG1lbnRzUG9pbnRlciA9IGludm9jYXRpb25Qb2ludGVyLkF0UHJvcGVydHkoU2FyaWZQcm9wZXJ0eU5hbWUuQXR0YWNobWVudHMpOw0KDQogICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBhdHRhY2htZW50cy5MZW5ndGg7ICsraSkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIFZpc2l0KGF0dGFjaG1lbnRzW2ldLCBhdHRhY2htZW50c1BvaW50ZXIuQXRJbmRleChpKSk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBpZiAoaW52b2NhdGlvbi5FeGVjdXRhYmxlTG9jYXRpb24gIT0gbnVsbCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBWaXNpdChpbnZvY2F0aW9uLkV4ZWN1dGFibGVMb2NhdGlvbiwgaW52b2NhdGlvblBvaW50ZXIuQXRQcm9wZXJ0eShTYXJpZlByb3BlcnR5TmFtZS5FeGVjdXRhYmxlTG9jYXRpb24pKTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgaWYgKGludm9jYXRpb24uUmVzcG9uc2VGaWxlcyAhPSBudWxsKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIEZpbGVMb2NhdGlvbltdIHJlc3BvbnNlRmlsZXMgPSBpbnZvY2F0aW9uLlJlc3BvbnNlRmlsZXMuVG9BcnJheSgpOw0KICAgICAgICAgICAgICAgIHN0cmluZyByZXNwb25zZUZpbGVzUG9pbnRlciA9IGludm9jYXRpb25Qb2ludGVyLkF0UHJvcGVydHkoU2FyaWZQcm9wZXJ0eU5hbWUuUmVzcG9uc2VGaWxlcyk7DQoNCiAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHJlc3BvbnNlRmlsZXMuTGVuZ3RoOyArK2kpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBWaXNpdChyZXNwb25zZUZpbGVzW2ldLCByZXNwb25zZUZpbGVzUG9pbnRlci5BdEluZGV4KGkpKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIGlmIChpbnZvY2F0aW9uLlN0ZGluICE9IG51bGwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgVmlzaXQoaW52b2NhdGlvbi5TdGRpbiwgaW52b2NhdGlvblBvaW50ZXIuQXRQcm9wZXJ0eShTYXJpZlByb3BlcnR5TmFtZS5TdGRpbikpOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBpZiAoaW52b2NhdGlvbi5TdGRvdXQgIT0gbnVsbCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBWaXNpdChpbnZvY2F0aW9uLlN0ZG91dCwgaW52b2NhdGlvblBvaW50ZXIuQXRQcm9wZXJ0eShTYXJpZlByb3BlcnR5TmFtZS5TdGRvdXQpKTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgaWYgKGludm9jYXRpb24uU3RkZXJyICE9IG51bGwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgVmlzaXQoaW52b2NhdGlvbi5TdGRlcnIsIGludm9jYXRpb25Qb2ludGVyLkF0UHJvcGVydHkoU2FyaWZQcm9wZXJ0eU5hbWUuU3RkZXJyKSk7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIGlmIChpbnZvY2F0aW9uLlN0ZG91dFN0ZGVyciAhPSBudWxsKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIFZpc2l0KGludm9jYXRpb24uU3Rkb3V0U3RkZXJyLCBpbnZvY2F0aW9uUG9pbnRlci5BdFByb3BlcnR5KFNhcmlmUHJvcGVydHlOYW1lLlN0ZG91dFN0ZGVycikpOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBpZiAoaW52b2NhdGlvbi5Ub29sTm90aWZpY2F0aW9ucyAhPSBudWxsKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIFZpc2l0KGludm9jYXRpb24uVG9vbE5vdGlmaWNhdGlvbnMsIGludm9jYXRpb25Qb2ludGVyLCBTYXJpZlByb3BlcnR5TmFtZS5Ub29sTm90aWZpY2F0aW9ucyk7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIGlmIChpbnZvY2F0aW9uLkNvbmZpZ3VyYXRpb25Ob3RpZmljYXRpb25zICE9IG51bGwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgVmlzaXQoaW52b2NhdGlvbi5Db25maWd1cmF0aW9uTm90aWZpY2F0aW9ucywgaW52b2NhdGlvblBvaW50ZXIsIFNhcmlmUHJvcGVydHlOYW1lLkNvbmZpZ3VyYXRpb25Ob3RpZmljYXRpb25zKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgIHByaXZhdGUgdm9pZCBWaXNpdChMb2NhdGlvbiBsb2NhdGlvbiwgc3RyaW5nIGxvY2F0aW9uUG9pbnRlcikNCiAgICAgICAgew0KICAgICAgICAgICAgaWYgKGxvY2F0aW9uLk1lc3NhZ2UgIT0gbnVsbCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBWaXNpdChsb2NhdGlvbi5NZXNzYWdlLCBsb2NhdGlvblBvaW50ZXIuQXRQcm9wZXJ0eShTYXJpZlByb3BlcnR5TmFtZS5NZXNzYWdlKSk7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIGlmIChsb2NhdGlvbi5QaHlzaWNhbExvY2F0aW9uICE9IG51bGwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgVmlzaXQobG9jYXRpb24uUGh5c2ljYWxMb2NhdGlvbiwgbG9jYXRpb25Qb2ludGVyLkF0UHJvcGVydHkoU2FyaWZQcm9wZXJ0eU5hbWUuUGh5c2ljYWxMb2NhdGlvbikpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICAgICAgcHJpdmF0ZSB2b2lkIFZpc2l0KE1lc3NhZ2UgbWVzc2FnZSwgc3RyaW5nIG1lc3NhZ2VQb2ludGVyKQ0KICAgICAgICB7DQogICAgICAgICAgICBBbmFseXplKG1lc3NhZ2UsIG1lc3NhZ2VQb2ludGVyKTsNCiAgICAgICAgfQ0KDQogICAgICAgIHByaXZhdGUgdm9pZCBWaXNpdChOb2RlIG5vZGUsIHN0cmluZyBub2RlUG9pbnRlcikNCiAgICAgICAgew0KICAgICAgICAgICAgQW5hbHl6ZShub2RlLCBub2RlUG9pbnRlcik7DQoNCiAgICAgICAgICAgIGlmIChub2RlLkxvY2F0aW9uICE9IG51bGwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgVmlzaXQobm9kZS5Mb2NhdGlvbiwgbm9kZVBvaW50ZXIuQXRQcm9wZXJ0eShTYXJpZlByb3BlcnR5TmFtZS5Mb2NhdGlvbikpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICAgICAgcHJpdmF0ZSB2b2lkIFZpc2l0KE5vdGlmaWNhdGlvbiBub3RpZmljYXRpb24sIHN0cmluZyBub3RpZmljYXRpb25Qb2ludGVyKQ0KICAgICAgICB7DQogICAgICAgICAgICBBbmFseXplKG5vdGlmaWNhdGlvbiwgbm90aWZpY2F0aW9uUG9pbnRlcik7DQoNCiAgICAgICAgICAgIGlmIChub3RpZmljYXRpb24uTWVzc2FnZSAhPSBudWxsKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIFZpc2l0KG5vdGlmaWNhdGlvbi5NZXNzYWdlLCBub3RpZmljYXRpb25Qb2ludGVyLkF0UHJvcGVydHkoU2FyaWZQcm9wZXJ0eU5hbWUuTWVzc2FnZSkpOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBpZiAobm90aWZpY2F0aW9uLlBoeXNpY2FsTG9jYXRpb24gIT0gbnVsbCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBWaXNpdChub3RpZmljYXRpb24uUGh5c2ljYWxMb2NhdGlvbiwgbm90aWZpY2F0aW9uUG9pbnRlci5BdFByb3BlcnR5KFNhcmlmUHJvcGVydHlOYW1lLlBoeXNpY2FsTG9jYXRpb24pKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgIHByaXZhdGUgdm9pZCBWaXNpdChQaHlzaWNhbExvY2F0aW9uIHBoeXNpY2FsTG9jYXRpb24sIHN0cmluZyBwaHlzaWNhbExvY2F0aW9uUG9pbnRlcikNCiAgICAgICAgew0KICAgICAgICAgICAgQW5hbHl6ZShwaHlzaWNhbExvY2F0aW9uLCBwaHlzaWNhbExvY2F0aW9uUG9pbnRlcik7DQoNCiAgICAgICAgICAgIGlmIChwaHlzaWNhbExvY2F0aW9uLkZpbGVMb2NhdGlvbiAhPSBudWxsKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIFZpc2l0KHBoeXNpY2FsTG9jYXRpb24uRmlsZUxvY2F0aW9uLCBwaHlzaWNhbExvY2F0aW9uUG9pbnRlci5BdFByb3BlcnR5KFNhcmlmUHJvcGVydHlOYW1lLkZpbGVMb2NhdGlvbikpOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBpZiAocGh5c2ljYWxMb2NhdGlvbi5SZWdpb24gIT0gbnVsbCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBWaXNpdChwaHlzaWNhbExvY2F0aW9uLlJlZ2lvbiwgcGh5c2ljYWxMb2NhdGlvblBvaW50ZXIuQXRQcm9wZXJ0eShTYXJpZlByb3BlcnR5TmFtZS5SZWdpb24pKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgIHByaXZhdGUgdm9pZCBWaXNpdChSZWdpb24gcmVnaW9uLCBzdHJpbmcgcmVnaW9uUG9pbnRlcikNCiAgICAgICAgew0KICAgICAgICAgICAgQW5hbHl6ZShyZWdpb24sIHJlZ2lvblBvaW50ZXIpOw0KICAgICAgICB9DQoNCiAgICAgICAgcHJpdmF0ZSB2b2lkIFZpc2l0KFJlc3VsdCByZXN1bHQsIHN0cmluZyByZXN1bHRQb2ludGVyKQ0KICAgICAgICB7DQogICAgICAgICAgICBBbmFseXplKHJlc3VsdCwgcmVzdWx0UG9pbnRlcik7DQoNCiAgICAgICAgICAgIGlmIChyZXN1bHQuQW5hbHlzaXNUYXJnZXQgIT0gbnVsbCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBWaXNpdChyZXN1bHQuQW5hbHlzaXNUYXJnZXQsIHJlc3VsdFBvaW50ZXIuQXRQcm9wZXJ0eShTYXJpZlByb3BlcnR5TmFtZS5BbmFseXNpc1RhcmdldCkpOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBpZiAocmVzdWx0LkF0dGFjaG1lbnRzICE9IG51bGwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgQXR0YWNobWVudFtdIGF0dGFjaG1lbnRzID0gcmVzdWx0LkF0dGFjaG1lbnRzLlRvQXJyYXkoKTsNCiAgICAgICAgICAgICAgICBzdHJpbmcgYXR0YWNobWVudHNQb2ludGVyID0gcmVzdWx0UG9pbnRlci5BdFByb3BlcnR5KFNhcmlmUHJvcGVydHlOYW1lLkF0dGFjaG1lbnRzKTsNCg0KICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgYXR0YWNobWVudHMuTGVuZ3RoOyArK2kpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBWaXNpdChhdHRhY2htZW50c1tpXSwgYXR0YWNobWVudHNQb2ludGVyLkF0SW5kZXgoaSkpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgaWYgKHJlc3VsdC5Mb2NhdGlvbnMgIT0gbnVsbCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBMb2NhdGlvbltdIGxvY2F0aW9ucyA9IHJlc3VsdC5Mb2NhdGlvbnMuVG9BcnJheSgpOw0KICAgICAgICAgICAgICAgIHN0cmluZyBsb2NhdGlvbnNQb2ludGVyID0gcmVzdWx0UG9pbnRlci5BdFByb3BlcnR5KFNhcmlmUHJvcGVydHlOYW1lLkxvY2F0aW9ucyk7DQoNCiAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGxvY2F0aW9ucy5MZW5ndGg7ICsraSkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIFZpc2l0KGxvY2F0aW9uc1tpXSwgbG9jYXRpb25zUG9pbnRlci5BdEluZGV4KGkpKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIGlmIChyZXN1bHQuQ29kZUZsb3dzICE9IG51bGwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgQ29kZUZsb3dbXSBjb2RlRmxvd3MgPSByZXN1bHQuQ29kZUZsb3dzLlRvQXJyYXkoKTsNCiAgICAgICAgICAgICAgICBzdHJpbmcgY29kZUZsb3dzUG9pbnRlciA9IHJlc3VsdFBvaW50ZXIuQXRQcm9wZXJ0eShTYXJpZlByb3BlcnR5TmFtZS5Db2RlRmxvd3MpOw0KDQogICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBjb2RlRmxvd3MuTGVuZ3RoOyArK2kpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBWaXNpdChjb2RlRmxvd3NbaV0sIGNvZGVGbG93c1BvaW50ZXIuQXRJbmRleChpKSk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBpZiAocmVzdWx0LkNvbnZlcnNpb25Qcm92ZW5hbmNlICE9IG51bGwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgUGh5c2ljYWxMb2NhdGlvbltdIHBoeXNpY2FsTG9jYXRpb25zID0gcmVzdWx0LkNvbnZlcnNpb25Qcm92ZW5hbmNlLlRvQXJyYXkoKTsNCiAgICAgICAgICAgICAgICBzdHJpbmcgY29udmVyc2lvblByb3ZlbmFuY2VQb2ludGVyID0gcmVzdWx0UG9pbnRlci5BdFByb3BlcnR5KFNhcmlmUHJvcGVydHlOYW1lLkNvbnZlcnNpb25Qcm92ZW5hbmNlKTsNCg0KICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgcGh5c2ljYWxMb2NhdGlvbnMuTGVuZ3RoOyArK2kpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBWaXNpdChwaHlzaWNhbExvY2F0aW9uc1tpXSwgY29udmVyc2lvblByb3ZlbmFuY2VQb2ludGVyLkF0SW5kZXgoaSkpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgaWYgKHJlc3VsdC5HcmFwaHMgIT0gbnVsbCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBHcmFwaFtdIGdyYXBocyA9IHJlc3VsdC5HcmFwaHMuVG9BcnJheSgpOw0KICAgICAgICAgICAgICAgIHN0cmluZyBncmFwaHNQb2ludGVyID0gcmVzdWx0UG9pbnRlci5BdFByb3BlcnR5KFNhcmlmUHJvcGVydHlOYW1lLkdyYXBocyk7DQoNCiAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGdyYXBocy5MZW5ndGg7ICsraSkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIFZpc2l0KGdyYXBoc1tpXSwgZ3JhcGhzUG9pbnRlci5BdEluZGV4KGkpKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIGlmIChyZXN1bHQuTWVzc2FnZSAhPSBudWxsKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIFZpc2l0KHJlc3VsdC5NZXNzYWdlLCByZXN1bHRQb2ludGVyLkF0UHJvcGVydHkoU2FyaWZQcm9wZXJ0eU5hbWUuTWVzc2FnZSkpOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBpZiAocmVzdWx0LlN0YWNrcyAhPSBudWxsKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIFN0YWNrW10gc3RhY2tzID0gcmVzdWx0LlN0YWNrcy5Ub0FycmF5KCk7DQogICAgICAgICAgICAgICAgc3RyaW5nIHN0YWNrc1BvaW50ZXIgPSByZXN1bHRQb2ludGVyLkF0UHJvcGVydHkoU2FyaWZQcm9wZXJ0eU5hbWUuU3RhY2tzKTsNCg0KICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgc3RhY2tzLkxlbmd0aDsgKytpKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgVmlzaXQoc3RhY2tzW2ldLCBzdGFja3NQb2ludGVyLkF0SW5kZXgoaSkpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgaWYgKHJlc3VsdC5SZWxhdGVkTG9jYXRpb25zICE9IG51bGwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgTG9jYXRpb25bXSByZWxhdGVkTG9jYXRpb25zID0gcmVzdWx0LlJlbGF0ZWRMb2NhdGlvbnMuVG9BcnJheSgpOw0KICAgICAgICAgICAgICAgIHN0cmluZyByZWxhdGVkTG9jYXRpb25zUG9pbnRlciA9IHJlc3VsdFBvaW50ZXIuQXRQcm9wZXJ0eShTYXJpZlByb3BlcnR5TmFtZS5SZWxhdGVkTG9jYXRpb25zKTsNCg0KICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgcmVsYXRlZExvY2F0aW9ucy5MZW5ndGg7ICsraSkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIFZpc2l0KHJlbGF0ZWRMb2NhdGlvbnNbaV0sIHJlbGF0ZWRMb2NhdGlvbnNQb2ludGVyLkF0SW5kZXgoaSkpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgaWYgKHJlc3VsdC5GaXhlcyAhPSBudWxsKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIEZpeFtdIGZpeGVzID0gcmVzdWx0LkZpeGVzLlRvQXJyYXkoKTsNCiAgICAgICAgICAgICAgICBzdHJpbmcgZml4ZXNQb2ludGVyID0gcmVzdWx0UG9pbnRlci5BdFByb3BlcnR5KFNhcmlmUHJvcGVydHlOYW1lLkZpeGVzKTsNCg0KICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgZml4ZXMuTGVuZ3RoOyArK2kpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBWaXNpdChmaXhlc1tpXSwgZml4ZXNQb2ludGVyLkF0SW5kZXgoaSkpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgIHByaXZhdGUgdm9pZCBWaXNpdChJTGlzdDxOb3RpZmljYXRpb24+IG5vdGlmaWNhdGlvbnMsIHN0cmluZyBwYXJlbnRQb2ludGVyLCBzdHJpbmcgcHJvcGVydHlOYW1lKQ0KICAgICAgICB7DQogICAgICAgICAgICBOb3RpZmljYXRpb25bXSBub3RpZmljYXRpb25zQXJyYXkgPSBub3RpZmljYXRpb25zLlRvQXJyYXkoKTsNCiAgICAgICAgICAgIHN0cmluZyBub3RpZmljYXRpb25zUG9pbnRlciA9IHBhcmVudFBvaW50ZXIuQXRQcm9wZXJ0eShwcm9wZXJ0eU5hbWUpOw0KDQogICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG5vdGlmaWNhdGlvbnNBcnJheS5MZW5ndGg7ICsraSkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBWaXNpdChub3RpZmljYXRpb25zQXJyYXlbaV0sIG5vdGlmaWNhdGlvbnNQb2ludGVyLkF0SW5kZXgoaSkpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICAgICAgcHJpdmF0ZSB2b2lkIFZpc2l0KFJlc291cmNlcyByZXNvdXJjZXMsIHN0cmluZyByZXNvdXJjZXNQb2ludGVyKQ0KICAgICAgICB7DQogICAgICAgICAgICBSdWxlW10gcnVsZXMgPSByZXNvdXJjZXMuUnVsZXMuVmFsdWVzLlRvQXJyYXkoKTsNCiAgICAgICAgICAgIHN0cmluZyBydWxlc1BvaW50ZXIgPSByZXNvdXJjZXNQb2ludGVyLkF0UHJvcGVydHkoU2FyaWZQcm9wZXJ0eU5hbWUuUnVsZXMpOw0KDQogICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHJ1bGVzLkxlbmd0aDsgKytpKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIFJ1bGUgcnVsZSA9IHJ1bGVzW2ldOw0KICAgICAgICAgICAgICAgIGlmIChydWxlLklkICE9IG51bGwpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBWaXNpdChydWxlLCBydWxlc1BvaW50ZXIuQXRQcm9wZXJ0eShydWxlLklkKSk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICAgICAgcHJpdmF0ZSB2b2lkIFZpc2l0KFJ1bGUgcnVsZSwgc3RyaW5nIHJ1bGVQb2ludGVyKQ0KICAgICAgICB7DQogICAgICAgICAgICBBbmFseXplKHJ1bGUsIHJ1bGVQb2ludGVyKTsNCiAgICAgICAgfQ0KDQogICAgICAgIHByaXZhdGUgdm9pZCBWaXNpdChSdW4gcnVuLCBzdHJpbmcgcnVuUG9pbnRlcikNCiAgICAgICAgew0KICAgICAgICAgICAgQW5hbHl6ZShydW4sIHJ1blBvaW50ZXIpOw0KDQogICAgICAgICAgICBpZiAocnVuLkNvbnZlcnNpb24gIT0gbnVsbCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBWaXNpdChydW4uQ29udmVyc2lvbiwgcnVuUG9pbnRlci5BdFByb3BlcnR5KFNhcmlmUHJvcGVydHlOYW1lLkNvbnZlcnNpb24pKTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgaWYgKHJ1bi5SZXN1bHRzICE9IG51bGwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgUmVzdWx0W10gcmVzdWx0cyA9IHJ1bi5SZXN1bHRzLlRvQXJyYXkoKTsNCiAgICAgICAgICAgICAgICBzdHJpbmcgcmVzdWx0c1BvaW50ZXIgPSBydW5Qb2ludGVyLkF0UHJvcGVydHkoU2FyaWZQcm9wZXJ0eU5hbWUuUmVzdWx0cyk7DQoNCiAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHJlc3VsdHMuTGVuZ3RoOyArK2kpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBWaXNpdChyZXN1bHRzW2ldLCByZXN1bHRzUG9pbnRlci5BdEluZGV4KGkpKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIGlmIChydW4uRmlsZXMgIT0gbnVsbCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBJRGljdGlvbmFyeTxzdHJpbmcsIEZpbGVEYXRhPiBmaWxlcyA9IHJ1bi5GaWxlczsNCiAgICAgICAgICAgICAgICBzdHJpbmcgZmlsZXNQb2ludGVyID0gcnVuUG9pbnRlci5BdFByb3BlcnR5KFNhcmlmUHJvcGVydHlOYW1lLkZpbGVzKTsNCg0KICAgICAgICAgICAgICAgIGZvcmVhY2ggKHN0cmluZyBmaWxlS2V5IGluIGZpbGVzLktleXMpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBWaXNpdChmaWxlc1tmaWxlS2V5XSwgZmlsZUtleSwgZmlsZXNQb2ludGVyLkF0UHJvcGVydHkoZmlsZUtleSkpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgaWYgKHJ1bi5HcmFwaHMgIT0gbnVsbCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBHcmFwaFtdIGdyYXBocyA9IHJ1bi5HcmFwaHMuVG9BcnJheSgpOw0KICAgICAgICAgICAgICAgIHN0cmluZyBncmFwaHNQb2ludGVyID0gcnVuUG9pbnRlci5BdFByb3BlcnR5KFNhcmlmUHJvcGVydHlOYW1lLkdyYXBocyk7DQoNCiAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGdyYXBocy5MZW5ndGg7ICsraSkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIFZpc2l0KGdyYXBoc1tpXSwgZ3JhcGhzUG9pbnRlci5BdEluZGV4KGkpKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIGlmIChydW4uUmVzb3VyY2VzICE9IG51bGwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgVmlzaXQocnVuLlJlc291cmNlcywgcnVuUG9pbnRlci5BdFByb3BlcnR5KFNhcmlmUHJvcGVydHlOYW1lLlJlc291cmNlcykpOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBpZiAocnVuLkludm9jYXRpb25zICE9IG51bGwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgSW52b2NhdGlvbltdIGludm9jYXRpb25zID0gcnVuLkludm9jYXRpb25zLlRvQXJyYXkoKTsNCiAgICAgICAgICAgICAgICBzdHJpbmcgaW52b2NhdGlvbnNQb2ludGVyID0gcnVuUG9pbnRlci5BdFByb3BlcnR5KFNhcmlmUHJvcGVydHlOYW1lLkludm9jYXRpb25zKTsNCg0KICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgaW52b2NhdGlvbnMuTGVuZ3RoOyArK2kpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBWaXNpdChpbnZvY2F0aW9uc1tpXSwgaW52b2NhdGlvbnNQb2ludGVyLkF0SW5kZXgoaSkpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgaWYgKHJ1bi5Ub29sICE9IG51bGwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgVmlzaXQocnVuLlRvb2wsIHJ1blBvaW50ZXIuQXRQcm9wZXJ0eShTYXJpZlByb3BlcnR5TmFtZS5Ub29sKSk7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIGlmIChydW4uVmVyc2lvbkNvbnRyb2xQcm92ZW5hbmNlICE9IG51bGwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgVmVyc2lvbkNvbnRyb2xEZXRhaWxzW10gdmVyc2lvbkNvbnRyb2xEZXRhaWxzQXJyYXkgPSBydW4uVmVyc2lvbkNvbnRyb2xQcm92ZW5hbmNlLlRvQXJyYXkoKTsNCiAgICAgICAgICAgICAgICBzdHJpbmcgdmVyc2lvbkNvbnRyb2xQcm92ZW5hbmNlUG9pbnRlciA9IHJ1blBvaW50ZXIuQXRQcm9wZXJ0eShTYXJpZlByb3BlcnR5TmFtZS5WZXJzaW9uQ29udHJvbFByb3ZlbmFuY2UpOw0KDQogICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB2ZXJzaW9uQ29udHJvbERldGFpbHNBcnJheS5MZW5ndGg7ICsraSkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIFZpc2l0KHJ1bi5WZXJzaW9uQ29udHJvbFByb3ZlbmFuY2VbaV0sIHZlcnNpb25Db250cm9sUHJvdmVuYW5jZVBvaW50ZXIuQXRJbmRleChpKSk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICAgICAgcHJpdmF0ZSB2b2lkIFZpc2l0KFN0YWNrIHN0YWNrLCBzdHJpbmcgc3RhY2tQb2ludGVyKQ0KICAgICAgICB7DQogICAgICAgICAgICBBbmFseXplKHN0YWNrLCBzdGFja1BvaW50ZXIpOw0KDQogICAgICAgICAgICBpZiAoc3RhY2suRnJhbWVzICE9IG51bGwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgU3RhY2tGcmFtZVtdIGZyYW1lcyA9IHN0YWNrLkZyYW1lcy5Ub0FycmF5KCk7DQogICAgICAgICAgICAgICAgc3RyaW5nIGZyYW1lc1BvaW50ZXIgPSBzdGFja1BvaW50ZXIuQXRQcm9wZXJ0eShTYXJpZlByb3BlcnR5TmFtZS5GcmFtZXMpOw0KDQogICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBmcmFtZXMuTGVuZ3RoOyArK2kpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBWaXNpdChmcmFtZXNbaV0sIGZyYW1lc1BvaW50ZXIuQXRJbmRleChpKSk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBpZiAoc3RhY2suTWVzc2FnZSAhPSBudWxsKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIFZpc2l0KHN0YWNrLk1lc3NhZ2UsIHN0YWNrUG9pbnRlci5BdFByb3BlcnR5KFNhcmlmUHJvcGVydHlOYW1lLk1lc3NhZ2UpKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgIHByaXZhdGUgdm9pZCBWaXNpdChTdGFja0ZyYW1lIGZyYW1lLCBzdHJpbmcgZnJhbWVQb2ludGVyKQ0KICAgICAgICB7DQogICAgICAgICAgICBBbmFseXplKGZyYW1lLCBmcmFtZVBvaW50ZXIpOw0KDQogICAgICAgICAgICBpZiAoZnJhbWUuTG9jYXRpb24gIT0gbnVsbCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBWaXNpdChmcmFtZS5Mb2NhdGlvbiwgZnJhbWVQb2ludGVyLkF0UHJvcGVydHkoU2FyaWZQcm9wZXJ0eU5hbWUuTG9jYXRpb24pKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgIHByaXZhdGUgdm9pZCBWaXNpdChUaHJlYWRGbG93IHRocmVhZEZsb3csIHN0cmluZyB0aHJlYWRGbG93UG9pbnRlcikNCiAgICAgICAgew0KICAgICAgICAgICAgQW5hbHl6ZSh0aHJlYWRGbG93LCB0aHJlYWRGbG93UG9pbnRlcik7DQoNCiAgICAgICAgICAgIGlmICh0aHJlYWRGbG93LkxvY2F0aW9ucyAhPSBudWxsKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIFRocmVhZEZsb3dMb2NhdGlvbltdIHRocmVhZEZsb3dMb2NhdGlvbnMgPSB0aHJlYWRGbG93LkxvY2F0aW9ucy5Ub0FycmF5KCk7DQogICAgICAgICAgICAgICAgc3RyaW5nIHRocmVhZEZsb3dMb2NhdGlvbnNQb2ludGVyID0gdGhyZWFkRmxvd1BvaW50ZXIuQXRQcm9wZXJ0eShTYXJpZlByb3BlcnR5TmFtZS5Mb2NhdGlvbnMpOw0KDQogICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB0aHJlYWRGbG93TG9jYXRpb25zLkxlbmd0aDsgKytpKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgVmlzaXQodGhyZWFkRmxvd0xvY2F0aW9uc1tpXSwgdGhyZWFkRmxvd0xvY2F0aW9uc1BvaW50ZXIuQXRJbmRleChpKSk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICAgICAgcHJpdmF0ZSB2b2lkIFZpc2l0KFRocmVhZEZsb3dMb2NhdGlvbiB0aHJlYWRGbG93TG9jYXRpb24sIHN0cmluZyB0aHJlYWRGbG93TG9jYXRpb25Qb2ludGVyKQ0KICAgICAgICB7DQogICAgICAgICAgICBBbmFseXplKHRocmVhZEZsb3dMb2NhdGlvbiwgdGhyZWFkRmxvd0xvY2F0aW9uUG9pbnRlcik7DQoNCiAgICAgICAgICAgIGlmICh0aHJlYWRGbG93TG9jYXRpb24uTG9jYXRpb24gIT0gbnVsbCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBWaXNpdCh0aHJlYWRGbG93TG9jYXRpb24uTG9jYXRpb24sIHRocmVhZEZsb3dMb2NhdGlvblBvaW50ZXIuQXRQcm9wZXJ0eShTYXJpZlByb3BlcnR5TmFtZS5Mb2NhdGlvbikpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICAgICAgcHJpdmF0ZSB2b2lkIFZpc2l0KFRvb2wgdG9vbCwgc3RyaW5nIHRvb2xQb2ludGVyKQ0KICAgICAgICB7DQogICAgICAgICAgICBBbmFseXplKHRvb2wsIHRvb2xQb2ludGVyKTsNCiAgICAgICAgfQ0KDQogICAgICAgIHByaXZhdGUgdm9pZCBWaXNpdChWZXJzaW9uQ29udHJvbERldGFpbHMgdmVyc2lvbkNvbnRyb2xEZXRhaWxzLCBzdHJpbmcgdmVyc2lvbkNvbnRyb2xEZXRhaWxzUG9pbnRlcikNCiAgICAgICAgew0KICAgICAgICAgICAgQW5hbHl6ZSh2ZXJzaW9uQ29udHJvbERldGFpbHMsIHZlcnNpb25Db250cm9sRGV0YWlsc1BvaW50ZXIpOw0KICAgICAgICB9DQoNCiAgICAgICAgcHJpdmF0ZSBSZWdpb24gR2V0UmVnaW9uRnJvbUpQb2ludGVyKHN0cmluZyBqUG9pbnRlcikNCiAgICAgICAgew0KICAgICAgICAgICAgSnNvblBvaW50ZXIganNvblBvaW50ZXIgPSBuZXcgSnNvblBvaW50ZXIoalBvaW50ZXIpOw0KICAgICAgICAgICAgSlRva2VuIGpUb2tlbiA9IGpzb25Qb2ludGVyLkV2YWx1YXRlKENvbnRleHQuSW5wdXRMb2dUb2tlbik7DQogICAgICAgICAgICBJSnNvbkxpbmVJbmZvIGxpbmVJbmZvID0galRva2VuOw0KDQogICAgICAgICAgICBSZWdpb24gcmVnaW9uID0gbnVsbDsNCiAgICAgICAgICAgIGlmIChsaW5lSW5mby5IYXNMaW5lSW5mbygpKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHJlZ2lvbiA9IG5ldyBSZWdpb24NCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIFN0YXJ0TGluZSA9IGxpbmVJbmZvLkxpbmVOdW1iZXIsDQogICAgICAgICAgICAgICAgICAgIFN0YXJ0Q29sdW1uID0gbGluZUluZm8uTGluZVBvc2l0aW9uDQogICAgICAgICAgICAgICAgfTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgcmV0dXJuIHJlZ2lvbjsNCiAgICAgICAgfQ0KICAgIH0NCn0NCg==" + { + "ruleId": "CA1305", + "level": "error", + "message": { + "text": "Because the behavior of 'string.Format(string, object)' could vary based on the current user's locale settings, replace this call in 'FortifyFprConverter.AddMessagesToResults()' with a call to 'string.Format(IFormatProvider, string, params object[])'. If the result of 'string.Format(IFormatProvider, string, params object[])' will be displayed to the user, specify 'CultureInfo.CurrentCulture' as the 'IFormatProvider' parameter. Otherwise, if the result will be stored and accessed by software, such as when it is persisted to disk or to a database, specify 'CultureInfo.InvariantCulture'.", + "id": "IFormatProviderAlternateString" }, - "hashes": [ - { - "value": "C7A5DD1303E8A1D562F5D5043B7E342B", - "algorithm": "md5" - }, - { - "value": "8AC2F5B437B07DA37AAD322F18934BF82E64C087", - "algorithm": "sha-1" - }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", + "uriBaseId": "$(ProjectDir)", + "index": 3 + }, + "locations": [ { - "value": "F0F2EC1D30EB594294A2E2DC1BA7247DFCE5B619266F79F38FC262500BAB1A13", - "algorithm": "sha-256" + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/FortifyFprConverter.cs", + "index": 9 + }, + "region": { + "startLine": 843 + } + }, + "logicalLocations": [ + { + "index": 146, + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.FortifyFprConverter.AddMessagesToResults()" + } + ] } - ] + ], + "partialFingerprints": { + "UniqueId": "System.String.Format(System.String,System.Object)#IFormatProviderAlternateString" + }, + "properties": { + "Category": "Microsoft.Globalization", + "FixCategory": "NonBreaking" + } }, - "file:///E:/src/sarif-sdk-test/src/Sarif.Multitool/Rules/StepValuesMustFormOneBasedSequence.cs": { - "mimeType": "text/x-csharp", - "contents": { - "binary": "77u/Ly8gQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuDQovLyBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UuIFNlZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHByb2plY3Qgcm9vdCBmb3IgZnVsbCBsaWNlbnNlIGluZm9ybWF0aW9uLg0KDQp1c2luZyBTeXN0ZW07DQp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsNCnVzaW5nIFN5c3RlbS5EaWFnbm9zdGljczsNCnVzaW5nIFN5c3RlbS5MaW5xOw0KdXNpbmcgTWljcm9zb2Z0Lkpzb24uUG9pbnRlcjsNCnVzaW5nIE5ld3RvbnNvZnQuSnNvbi5MaW5xOw0KDQpuYW1lc3BhY2UgTWljcm9zb2Z0LkNvZGVBbmFseXNpcy5TYXJpZi5NdWx0aXRvb2wuUnVsZXMNCnsNCiAgICBwdWJsaWMgY2xhc3MgU3RlcFZhbHVlc011c3RGb3JtT25lQmFzZWRTZXF1ZW5jZSA6IFNhcmlmVmFsaWRhdGlvblNraW1tZXJCYXNlDQogICAgew0KICAgICAgICBwcml2YXRlIHJlYWRvbmx5IE1lc3NhZ2UgX2Z1bGxEZXNjcmlwdGlvbiA9IG5ldyBNZXNzYWdlDQogICAgICAgIHsNCiAgICAgICAgICAgIFRleHQgPSBSdWxlUmVzb3VyY2VzLlNBUklGMTAwOV9TdGVwVmFsdWVzTXVzdEZvcm1PbmVCYXNlZFNlcXVlbmNlDQogICAgICAgIH07DQoNCiAgICAgICAgcHVibGljIG92ZXJyaWRlIE1lc3NhZ2UgRnVsbERlc2NyaXB0aW9uID0+IF9mdWxsRGVzY3JpcHRpb247DQoNCiAgICAgICAgcHVibGljIG92ZXJyaWRlIFJlc3VsdExldmVsIERlZmF1bHRMZXZlbCA9PiBSZXN1bHRMZXZlbC5FcnJvcjsNCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBTQVJJRjEwMDkNCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgcHVibGljIG92ZXJyaWRlIHN0cmluZyBJZCA9PiBSdWxlSWQuU3RlcFZhbHVlc011c3RGb3JtT25lQmFzZWRTZXF1ZW5jZTsNCg0KICAgICAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgSUVudW1lcmFibGU8c3RyaW5nPiBNZXNzYWdlUmVzb3VyY2VOYW1lcw0KICAgICAgICB7DQogICAgICAgICAgICBnZXQNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gbmV3IHN0cmluZ1tdDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBuYW1lb2YoUnVsZVJlc291cmNlcy5TQVJJRjEwMDlfU3RlcE5vdFByZXNlbnRPbkFsbExvY2F0aW9ucyksDQogICAgICAgICAgICAgICAgICAgIG5hbWVvZihSdWxlUmVzb3VyY2VzLlNBUklGMTAwOV9JbnZhbGlkU3RlcFZhbHVlKQ0KICAgICAgICAgICAgICAgIH07DQogICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgdm9pZCBBbmFseXplKFRocmVhZEZsb3cgdGhyZWFkRmxvdywgc3RyaW5nIHRocmVhZEZsb3dQb2ludGVyKQ0KICAgICAgICB7DQogICAgICAgICAgICB2YXIgcG9pbnRlciA9IG5ldyBKc29uUG9pbnRlcih0aHJlYWRGbG93UG9pbnRlcik7DQogICAgICAgICAgICBKVG9rZW4gdGhyZWFkRmxvd1Rva2VuID0gcG9pbnRlci5FdmFsdWF0ZShDb250ZXh0LklucHV0TG9nVG9rZW4pOw0KDQogICAgICAgICAgICBKUHJvcGVydHkgbG9jYXRpb25zUHJvcGVydHkgPSB0aHJlYWRGbG93VG9rZW4uQ2hpbGRyZW48SlByb3BlcnR5PigpDQogICAgICAgICAgICAgICAgLkZpcnN0T3JEZWZhdWx0KHByb3AgPT4gcHJvcC5OYW1lLkVxdWFscyhTYXJpZlByb3BlcnR5TmFtZS5Mb2NhdGlvbnMsIFN0cmluZ0NvbXBhcmlzb24uT3JkaW5hbCkpOw0KICAgICAgICAgICAgaWYgKGxvY2F0aW9uc1Byb3BlcnR5ICE9IG51bGwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgSkFycmF5IHRocmVhZEZsb3dMb2NhdGlvbnNBcnJheSA9IGxvY2F0aW9uc1Byb3BlcnR5LlZhbHVlIGFzIEpBcnJheTsNCiAgICAgICAgICAgICAgICBzdHJpbmcgdGhyZWFkRmxvd0xvY2F0aW9uc1BvaW50ZXIgPSB0aHJlYWRGbG93UG9pbnRlci5BdFByb3BlcnR5KFNhcmlmUHJvcGVydHlOYW1lLkxvY2F0aW9ucyk7DQoNCiAgICAgICAgICAgICAgICBSZXBvcnRNaXNzaW5nU3RlcFByb3BlcnR5KA0KICAgICAgICAgICAgICAgICAgICB0aHJlYWRGbG93TG9jYXRpb25zQXJyYXksDQogICAgICAgICAgICAgICAgICAgIHRocmVhZEZsb3dMb2NhdGlvbnNQb2ludGVyKTsNCg0KICAgICAgICAgICAgICAgIFJlcG9ydEludmFsaWRTdGVwVmFsdWVzKA0KICAgICAgICAgICAgICAgICAgICB0aHJlYWRGbG93LkxvY2F0aW9ucy5Ub0FycmF5KCksDQogICAgICAgICAgICAgICAgICAgIHRocmVhZEZsb3dMb2NhdGlvbnNBcnJheSwNCiAgICAgICAgICAgICAgICAgICAgdGhyZWFkRmxvd0xvY2F0aW9uc1BvaW50ZXIpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICAgICAgcHJpdmF0ZSB2b2lkIFJlcG9ydEludmFsaWRTdGVwVmFsdWVzKA0KICAgICAgICAgICAgVGhyZWFkRmxvd0xvY2F0aW9uW10gbG9jYXRpb25zLA0KICAgICAgICAgICAgSkFycmF5IHRocmVhZEZsb3dMb2NhdGlvbnNBcnJheSwNCiAgICAgICAgICAgIHN0cmluZyB0aHJlYWRGbG93TG9jYXRpb25zUG9pbnRlcikNCiAgICAgICAgew0KICAgICAgICAgICAgSk9iamVjdFtdIHRocmVhZEZsb3dMb2NhdGlvbk9iamVjdHMgPSB0aHJlYWRGbG93TG9jYXRpb25zQXJyYXkuQ2hpbGRyZW48Sk9iamVjdD4oKS5Ub0FycmF5KCk7DQoNCiAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbG9jYXRpb25zLkxlbmd0aDsgKytpKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIC8vIE9ubHkgcmVwb3J0ICJpbnZhbGlkIHN0ZXAgdmFsdWUiIGZvciBsb2NhdGlvbnMgdGhhdCBhY3R1YWxseSBzcGVjaWZ5DQogICAgICAgICAgICAgICAgLy8gdGhlICJzdGVwIiBwcm9wZXJ0eSAodGhlIHZhbHVlIG9mIHRoZSBTdGVwIHByb3BlcnR5IGluIHRoZSBvYmplY3QNCiAgICAgICAgICAgICAgICAvLyBtb2RlbCB3aWxsIGJlIDAgZm9yIHN1Y2ggc3RlcHMsIHdoaWNoIGlzIG5ldmVyIHZhbGlkKSwgYmVjYXVzZSB3ZQ0KICAgICAgICAgICAgICAgIC8vIGFscmVhZHkgcmVwb3J0ZWQgdGhlIG1pc3NpbmcgInN0ZXAiIHByb3BlcnRpZXMuDQogICAgICAgICAgICAgICAgaWYgKExvY2F0aW9uSGFzU3RlcCh0aHJlYWRGbG93TG9jYXRpb25PYmplY3RzW2ldKSAmJg0KICAgICAgICAgICAgICAgICAgICBsb2NhdGlvbnNbaV0uU3RlcCAhPSBpICsgMSkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIHN0cmluZyBpbnZhbGlkU3RlcFBvaW50ZXIgPSB0aHJlYWRGbG93TG9jYXRpb25zUG9pbnRlcg0KICAgICAgICAgICAgICAgICAgICAgICAgLkF0SW5kZXgoaSkuQXRQcm9wZXJ0eShTYXJpZlByb3BlcnR5TmFtZS5TdGVwKTsNCg0KICAgICAgICAgICAgICAgICAgICBMb2dSZXN1bHQoDQogICAgICAgICAgICAgICAgICAgICAgICBpbnZhbGlkU3RlcFBvaW50ZXIsDQogICAgICAgICAgICAgICAgICAgICAgICBuYW1lb2YoUnVsZVJlc291cmNlcy5TQVJJRjEwMDlfSW52YWxpZFN0ZXBWYWx1ZSksDQogICAgICAgICAgICAgICAgICAgICAgICAoaSArIDEpLlRvSW52YXJpYW50U3RyaW5nKCksDQogICAgICAgICAgICAgICAgICAgICAgICAobG9jYXRpb25zW2ldLlN0ZXApLlRvSW52YXJpYW50U3RyaW5nKCkpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgIHByaXZhdGUgdm9pZCBSZXBvcnRNaXNzaW5nU3RlcFByb3BlcnR5KA0KICAgICAgICAgICAgSkFycmF5IHRocmVhZEZsb3dMb2NhdGlvbkFycmF5LA0KICAgICAgICAgICAgc3RyaW5nIHRocmVhZEZsb3dMb2NhdGlvbnNQb2ludGVyKQ0KICAgICAgICB7DQogICAgICAgICAgICBKT2JqZWN0W10gdGhyZWFkRmxvd0xvY2F0aW9uT2JqZWN0cyA9IHRocmVhZEZsb3dMb2NhdGlvbkFycmF5LkNoaWxkcmVuPEpPYmplY3Q+KCkuVG9BcnJheSgpOw0KICAgICAgICAgICAgaWYgKHRocmVhZEZsb3dMb2NhdGlvbk9iamVjdHMuTGVuZ3RoID4gMCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBKT2JqZWN0W10gbG9jYXRpb25zV2l0aFN0ZXAgPSBHZXRMb2NhdGlvbnNXaXRoU3RlcCh0aHJlYWRGbG93TG9jYXRpb25PYmplY3RzKTsNCg0KICAgICAgICAgICAgICAgIC8vIEl0J3Mgb2sgaWYgdGhlcmUgYXJlIG5vIHN0ZXBzLCBidXQgaWYgYW55IGxvY2F0aW9uIGhhcyBhIHN0ZXAgcHJvcGVydHksDQogICAgICAgICAgICAgICAgLy8gYWxsIGxvY2F0aW9ucyBtdXN0IGhhdmUgaXQuDQogICAgICAgICAgICAgICAgaWYgKGxvY2F0aW9uc1dpdGhTdGVwLkxlbmd0aCA+IDAgJiYNCiAgICAgICAgICAgICAgICAgICAgbG9jYXRpb25zV2l0aFN0ZXAuTGVuZ3RoIDwgdGhyZWFkRmxvd0xvY2F0aW9uT2JqZWN0cy5MZW5ndGgpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBpbnQgbWlzc2luZ1N0ZXBJbmRleCA9IEZpbmRGaXJzdExvY2F0aW9uV2l0aE1pc3NpbmdTdGVwKHRocmVhZEZsb3dMb2NhdGlvbk9iamVjdHMpOw0KICAgICAgICAgICAgICAgICAgICBEZWJ1Zy5Bc3NlcnQobWlzc2luZ1N0ZXBJbmRleCAhPSAtMSwgIkNvdWxkbid0IGZpbmQgbG9jYXRpb24gd2l0aCBtaXNzaW5nIHN0ZXAuIik7DQoNCiAgICAgICAgICAgICAgICAgICAgc3RyaW5nIG1pc3NpbmdTdGVwUG9pbnRlciA9IHRocmVhZEZsb3dMb2NhdGlvbnNQb2ludGVyLkF0SW5kZXgobWlzc2luZ1N0ZXBJbmRleCk7DQoNCiAgICAgICAgICAgICAgICAgICAgTG9nUmVzdWx0KG1pc3NpbmdTdGVwUG9pbnRlciwgbmFtZW9mKFJ1bGVSZXNvdXJjZXMuU0FSSUYxMDA5X1N0ZXBOb3RQcmVzZW50T25BbGxMb2NhdGlvbnMpKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICBwcml2YXRlIGludCBGaW5kRmlyc3RMb2NhdGlvbldpdGhNaXNzaW5nU3RlcChKT2JqZWN0W10gdGhyZWFkRmxvd0xvY2F0aW9uT2JqZWN0cykNCiAgICAgICAgew0KICAgICAgICAgICAgaW50IGluZGV4ID0gLTE7DQoNCiAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdGhyZWFkRmxvd0xvY2F0aW9uT2JqZWN0cy5MZW5ndGg7ICsraSkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBpZiAoIXRocmVhZEZsb3dMb2NhdGlvbk9iamVjdHNbaV0uSGFzUHJvcGVydHkoU2FyaWZQcm9wZXJ0eU5hbWUuU3RlcCkpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBpbmRleCA9IGk7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgcmV0dXJuIGluZGV4Ow0KICAgICAgICB9DQoNCiAgICAgICAgcHJpdmF0ZSBzdGF0aWMgSk9iamVjdFtdIEdldExvY2F0aW9uc1dpdGhTdGVwKEpPYmplY3RbXSB0aHJlYWRGbG93TG9jYXRpb25PYmplY3RzKQ0KICAgICAgICB7DQogICAgICAgICAgICByZXR1cm4gdGhyZWFkRmxvd0xvY2F0aW9uT2JqZWN0cw0KICAgICAgICAgICAgICAgIC5XaGVyZShMb2NhdGlvbkhhc1N0ZXApDQogICAgICAgICAgICAgICAgLlRvQXJyYXkoKTsNCiAgICAgICAgfQ0KDQogICAgICAgIHByaXZhdGUgc3RhdGljIGJvb2wgTG9jYXRpb25IYXNTdGVwKEpPYmplY3QgbG9jKQ0KICAgICAgICB7DQogICAgICAgICAgICByZXR1cm4gbG9jLkhhc1Byb3BlcnR5KFNhcmlmUHJvcGVydHlOYW1lLlN0ZXApOw0KICAgICAgICB9DQogICAgfQ0KfQ==" + { + "ruleId": "CA1305", + "level": "error", + "message": { + "text": "Because the behavior of 'string.Format(string, object)' could vary based on the current user's locale settings, replace this call in 'FortifyFprConverter.AddMessagesToResults()' with a call to 'string.Format(IFormatProvider, string, params object[])'. If the result of 'string.Format(IFormatProvider, string, params object[])' will be displayed to the user, specify 'CultureInfo.CurrentCulture' as the 'IFormatProvider' parameter. Otherwise, if the result will be stored and accessed by software, such as when it is persisted to disk or to a database, specify 'CultureInfo.InvariantCulture'.", + "id": "IFormatProviderAlternateString" }, - "hashes": [ - { - "value": "94FF2EA8E532104E4738B02D0852E1FF", - "algorithm": "md5" - }, - { - "value": "1A5E6BFD822CA2201D1B4C3752325BF0A6728148", - "algorithm": "sha-1" - }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", + "uriBaseId": "$(ProjectDir)", + "index": 3 + }, + "locations": [ { - "value": "DD04AB0CAB06CDF2A353AC531C40B6ADEE803BC1CACBA225074D038B390DC8D0", - "algorithm": "sha-256" + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/FortifyFprConverter.cs", + "index": 9 + }, + "region": { + "startLine": 849 + } + }, + "logicalLocations": [ + { + "index": 146, + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.FortifyFprConverter.AddMessagesToResults()" + } + ] } - ] + ], + "partialFingerprints": { + "UniqueId": "System.String.Format(System.String,System.Object)#IFormatProviderAlternateString" + }, + "properties": { + "Category": "Microsoft.Globalization", + "FixCategory": "NonBreaking" + } }, - "file:///E:/src/sarif-sdk-test/src/Sarif.Multitool/Rules/UriBaseIdRequiresRelativeUri.cs": { - "mimeType": "text/x-csharp", - "contents": { - "binary": "77u/Ly8gQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuDQovLyBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UuIFNlZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHByb2plY3Qgcm9vdCBmb3IgZnVsbCBsaWNlbnNlIGluZm9ybWF0aW9uLg0KDQp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsNCnVzaW5nIE1pY3Jvc29mdC5Kc29uLlBvaW50ZXI7DQoNCm5hbWVzcGFjZSBNaWNyb3NvZnQuQ29kZUFuYWx5c2lzLlNhcmlmLk11bHRpdG9vbC5SdWxlcw0Kew0KICAgIHB1YmxpYyBjbGFzcyBVcmlCYXNlSWRSZXF1aXJlc1JlbGF0aXZlVXJpIDogU2FyaWZWYWxpZGF0aW9uU2tpbW1lckJhc2UNCiAgICB7DQogICAgICAgIHByaXZhdGUgTWVzc2FnZSBfZnVsbERlc2NyaXB0aW9uID0gbmV3IE1lc3NhZ2UNCiAgICAgICAgew0KICAgICAgICAgICAgVGV4dCA9IFJ1bGVSZXNvdXJjZXMuU0FSSUYxMDE0X1VyaUJhc2VJZFJlcXVpcmVzUmVsYXRpdmVVcmkNCiAgICAgICAgfTsNCg0KICAgICAgICBwdWJsaWMgb3ZlcnJpZGUgTWVzc2FnZSBGdWxsRGVzY3JpcHRpb24gPT4gX2Z1bGxEZXNjcmlwdGlvbjsNCg0KICAgICAgICBwdWJsaWMgb3ZlcnJpZGUgUmVzdWx0TGV2ZWwgRGVmYXVsdExldmVsID0+IFJlc3VsdExldmVsLkVycm9yOw0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIFNBUklGMTAxNA0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICBwdWJsaWMgb3ZlcnJpZGUgc3RyaW5nIElkID0+IFJ1bGVJZC5VcmlCYXNlSWRSZXF1aXJlc1JlbGF0aXZlVXJpOw0KDQogICAgICAgIHByb3RlY3RlZCBvdmVycmlkZSBJRW51bWVyYWJsZTxzdHJpbmc+IE1lc3NhZ2VSZXNvdXJjZU5hbWVzDQogICAgICAgIHsNCiAgICAgICAgICAgIGdldA0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHJldHVybiBuZXcgc3RyaW5nW10NCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIG5hbWVvZihSdWxlUmVzb3VyY2VzLlNBUklGMTAxNF9EZWZhdWx0KQ0KICAgICAgICAgICAgICAgIH07DQogICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgdm9pZCBBbmFseXplKEZpbGVMb2NhdGlvbiBmaWxlTG9jYXRpb24sIHN0cmluZyBmaWxlTG9jYXRpb25Qb2ludGVyKQ0KICAgICAgICB7DQogICAgICAgICAgICBpZiAoZmlsZUxvY2F0aW9uLlVyaUJhc2VJZCAhPSBudWxsICYmIGZpbGVMb2NhdGlvbi5VcmkuSXNBYnNvbHV0ZVVyaSkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBMb2dSZXN1bHQoDQogICAgICAgICAgICAgICAgICAgIGZpbGVMb2NhdGlvblBvaW50ZXIuQXRQcm9wZXJ0eShTYXJpZlByb3BlcnR5TmFtZS5VcmkpLA0KICAgICAgICAgICAgICAgICAgICBuYW1lb2YoUnVsZVJlc291cmNlcy5TQVJJRjEwMTRfRGVmYXVsdCksDQogICAgICAgICAgICAgICAgICAgIGZpbGVMb2NhdGlvbi5VcmkuT3JpZ2luYWxTdHJpbmcpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgfQ0KfQ0K" + { + "ruleId": "CA3053", + "message": { + "text": "FxCop results that have been suppressed do not contain a message string." }, - "hashes": [ - { - "value": "D9A3E0CFAE4C55C8D66D9940A0D5B0C4", - "algorithm": "md5" - }, + "locations": [ { - "value": "76F3C35D4F1D87544E7145E1A91030E9EE407D66", - "algorithm": "sha-1" - }, + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", + "uriBaseId": "$(ProjectDir)", + "index": 3 + } + }, + "logicalLocations": [ + { + "index": 147, + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.FortifyFprConverter.ParseAuditStream(System.IO.Stream)" + } + ] + } + ], + "suppressions": [ { - "value": "ADEF38A19C11FEED62009AD99CC79FB5DBAFD62FBC65993FA0E2684CA0EDEE06", - "algorithm": "sha-256" + "kind": "inSource" } - ] + ], + "properties": { + "Category": "Microsoft.Security.Xml", + "FixCategory": "NonBreaking" + } }, - "file:///E:/src/sarif-sdk-test/src/Sarif.Multitool/Rules/UrisMustBeValid.cs": { - "mimeType": "text/x-csharp", - "contents": { - "binary": "77u/Ly8gQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuDQovLyBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UuIFNlZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHByb2plY3Qgcm9vdCBmb3IgZnVsbCBsaWNlbnNlIGluZm9ybWF0aW9uLg0KDQp1c2luZyBTeXN0ZW07DQp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsNCnVzaW5nIFN5c3RlbS5MaW5xOw0KdXNpbmcgTWljcm9zb2Z0Lkpzb24uUG9pbnRlcjsNCg0KbmFtZXNwYWNlIE1pY3Jvc29mdC5Db2RlQW5hbHlzaXMuU2FyaWYuTXVsdGl0b29sLlJ1bGVzDQp7DQogICAgcHVibGljIGNsYXNzIFVyaXNNdXN0QmVWYWxpZCA6IFNhcmlmVmFsaWRhdGlvblNraW1tZXJCYXNlDQogICAgew0KICAgICAgICBwcml2YXRlIE1lc3NhZ2UgX2Z1bGxEZXNjcmlwdGlvbiA9IG5ldyBNZXNzYWdlDQogICAgICAgIHsNCiAgICAgICAgICAgIFRleHQgPSBSdWxlUmVzb3VyY2VzLlNBUklGMTAwM19VcmlzTXVzdEJlVmFsaWQNCiAgICAgICAgfTsNCg0KICAgICAgICBwdWJsaWMgb3ZlcnJpZGUgTWVzc2FnZSBGdWxsRGVzY3JpcHRpb24gPT4gX2Z1bGxEZXNjcmlwdGlvbjsNCg0KICAgICAgICBwdWJsaWMgb3ZlcnJpZGUgUmVzdWx0TGV2ZWwgRGVmYXVsdExldmVsID0+IFJlc3VsdExldmVsLkVycm9yOw0KDQogICAgICAgIC8vLyA8c3VtbWFyeT4NCiAgICAgICAgLy8vIFNBUklGMTAwMw0KICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICBwdWJsaWMgb3ZlcnJpZGUgc3RyaW5nIElkID0+IFJ1bGVJZC5VcmlzTXVzdEJlVmFsaWQ7DQoNCiAgICAgICAgcHJvdGVjdGVkIG92ZXJyaWRlIElFbnVtZXJhYmxlPHN0cmluZz4gTWVzc2FnZVJlc291cmNlTmFtZXMNCiAgICAgICAgew0KICAgICAgICAgICAgZ2V0DQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBzdHJpbmdbXQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgbmFtZW9mKFJ1bGVSZXNvdXJjZXMuU0FSSUYxMDAzX0RlZmF1bHQpDQogICAgICAgICAgICAgICAgfTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgIHByb3RlY3RlZCBvdmVycmlkZSB2b2lkIEFuYWx5emUoU2FyaWZMb2cgbG9nLCBzdHJpbmcgbG9nUG9pbnRlcikNCiAgICAgICAgew0KICAgICAgICAgICAgQW5hbHl6ZVVyaShsb2cuU2NoZW1hVXJpLCBsb2dQb2ludGVyLkF0UHJvcGVydHkoU2FyaWZQcm9wZXJ0eU5hbWUuU2NoZW1hKSk7DQogICAgICAgIH0NCg0KICAgICAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgdm9pZCBBbmFseXplKEZpbGVEYXRhIGZpbGVEYXRhLCBzdHJpbmcgZmlsZUtleSwgc3RyaW5nIGZpbGVQb2ludGVyKQ0KICAgICAgICB7DQogICAgICAgICAgICBzdHJpbmcgZmlsZVVyaVJlZmVyZW5jZSA9IGZpbGVLZXkuVW5lc2NhcGVKc29uUG9pbnRlcigpOw0KICAgICAgICAgICAgQW5hbHl6ZVVyaShmaWxlVXJpUmVmZXJlbmNlLCBmaWxlUG9pbnRlcik7DQogICAgICAgIH0NCg0KICAgICAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgdm9pZCBBbmFseXplKEZpbGVMb2NhdGlvbiBmaWxlTG9jYXRpb24sIHN0cmluZyBmaWxlTG9jYXRpb25Qb2ludGVyKQ0KICAgICAgICB7DQogICAgICAgICAgICBBbmFseXplVXJpKGZpbGVMb2NhdGlvbi5VcmksIGZpbGVMb2NhdGlvblBvaW50ZXIuQXRQcm9wZXJ0eShTYXJpZlByb3BlcnR5TmFtZS5VcmkpKTsNCiAgICAgICAgfQ0KDQogICAgICAgIHByb3RlY3RlZCBvdmVycmlkZSB2b2lkIEFuYWx5emUoUmVzdWx0IHJlc3VsdCwgc3RyaW5nIHJlc3VsdFBvaW50ZXIpDQogICAgICAgIHsNCiAgICAgICAgICAgIGlmIChyZXN1bHQuV29ya0l0ZW1VcmlzICE9IG51bGwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgVXJpW10gd29ya0l0ZW1VcmlzID0gcmVzdWx0LldvcmtJdGVtVXJpcy5Ub0FycmF5KCk7DQogICAgICAgICAgICAgICAgc3RyaW5nIHdvcmtJdGVtVXJpc1BvaW50ZXIgPSByZXN1bHRQb2ludGVyLkF0UHJvcGVydHkoU2FyaWZQcm9wZXJ0eU5hbWUuV29ya0l0ZW1VcmlzKTsNCg0KICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgd29ya0l0ZW1VcmlzLkxlbmd0aDsgKytpKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgQW5hbHl6ZVVyaSh3b3JrSXRlbVVyaXNbaV0sIHdvcmtJdGVtVXJpc1BvaW50ZXIuQXRJbmRleChpKSk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICAgICAgcHJvdGVjdGVkIG92ZXJyaWRlIHZvaWQgQW5hbHl6ZShSdWxlIHJ1bGUsIHN0cmluZyBydWxlUG9pbnRlcikNCiAgICAgICAgew0KICAgICAgICAgICAgQW5hbHl6ZVVyaShydWxlLkhlbHBVcmksIHJ1bGVQb2ludGVyLkF0UHJvcGVydHkoU2FyaWZQcm9wZXJ0eU5hbWUuSGVscFVyaSkpOw0KICAgICAgICB9DQoNCiAgICAgICAgcHJvdGVjdGVkIG92ZXJyaWRlIHZvaWQgQW5hbHl6ZShSdW4gcnVuLCBzdHJpbmcgcnVuUG9pbnRlcikNCiAgICAgICAgew0KICAgICAgICAgICAgaWYgKHJ1bi5PcmlnaW5hbFVyaUJhc2VJZHMgIT0gbnVsbCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBzdHJpbmcgb3JpZ2luYWxVcmlCYXNlSWRzUG9pbnRlciA9IHJ1blBvaW50ZXIuQXRQcm9wZXJ0eShTYXJpZlByb3BlcnR5TmFtZS5PcmlnaW5hbFVyaUJhc2VJZHMpOw0KDQogICAgICAgICAgICAgICAgZm9yZWFjaCAoc3RyaW5nIGtleSBpbiBydW4uT3JpZ2luYWxVcmlCYXNlSWRzLktleXMpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBBbmFseXplVXJpKHJ1bi5PcmlnaW5hbFVyaUJhc2VJZHNba2V5XSwgb3JpZ2luYWxVcmlCYXNlSWRzUG9pbnRlci5BdFByb3BlcnR5KGtleSkpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgIHByb3RlY3RlZCBvdmVycmlkZSB2b2lkIEFuYWx5emUoVG9vbCB0b29sLCBzdHJpbmcgdG9vbFBvaW50ZXIpDQogICAgICAgIHsNCiAgICAgICAgICAgIEFuYWx5emVVcmkodG9vbC5Eb3dubG9hZFVyaSwgdG9vbFBvaW50ZXIuQXRQcm9wZXJ0eShTYXJpZlByb3BlcnR5TmFtZS5Eb3dubG9hZFVyaSkpOw0KICAgICAgICB9DQoNCiAgICAgICAgcHJvdGVjdGVkIG92ZXJyaWRlIHZvaWQgQW5hbHl6ZShWZXJzaW9uQ29udHJvbERldGFpbHMgdmVyc2lvbkNvbnRyb2xEZXRhaWxzLCBzdHJpbmcgdmVyc2lvbkNvbnRyb2xEZXRhaWxzUG9pbnRlcikNCiAgICAgICAgew0KICAgICAgICAgICAgQW5hbHl6ZVVyaSh2ZXJzaW9uQ29udHJvbERldGFpbHMuVXJpLCB2ZXJzaW9uQ29udHJvbERldGFpbHNQb2ludGVyLkF0UHJvcGVydHkoU2FyaWZQcm9wZXJ0eU5hbWUuVXJpKSk7DQogICAgICAgIH0NCg0KICAgICAgICBwcml2YXRlIHZvaWQgQW5hbHl6ZVVyaShVcmkgdXJpLCBzdHJpbmcgcG9pbnRlcikNCiAgICAgICAgew0KICAgICAgICAgICAgQW5hbHl6ZVVyaSh1cmk/Lk9yaWdpbmFsU3RyaW5nLCBwb2ludGVyKTsNCiAgICAgICAgfQ0KDQogICAgICAgIHByaXZhdGUgdm9pZCBBbmFseXplVXJpKHN0cmluZyB1cmksIHN0cmluZyBwb2ludGVyKQ0KICAgICAgICB7DQogICAgICAgICAgICBpZiAodXJpICE9IG51bGwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgaWYgKCFVcmkuSXNXZWxsRm9ybWVkVXJpU3RyaW5nKHVyaSwgVXJpS2luZC5SZWxhdGl2ZU9yQWJzb2x1dGUpKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgTG9nUmVzdWx0KHBvaW50ZXIsIG5hbWVvZihSdWxlUmVzb3VyY2VzLlNBUklGMTAwM19EZWZhdWx0KSwgdXJpKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQogICAgICAgIH0NCiAgICB9DQp9DQo=" + { + "ruleId": "CA1806", + "message": { + "text": "'FortifyFprConverter.ParseFile()' calls 'int.TryParse(string, out int)' but does not explicitly check whether the conversion succeeded. Either use the return value in a conditional statement or verify that the call site expects that the out argument will be set to the default value when the conversion fails.", + "id": "TryParse" }, - "hashes": [ - { - "value": "6A1837DFD46BA4DB774FDC24900BE67C", - "algorithm": "md5" - }, - { - "value": "103C94AB280938C404AA177EF736F9D1DF18E537", - "algorithm": "sha-1" - }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", + "uriBaseId": "$(ProjectDir)", + "index": 3 + }, + "locations": [ { - "value": "6CDF947BA73AFC247D5CB2E6FB49C0535B2596040CFC31709866A77FFC01453D", - "algorithm": "sha-256" + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/FortifyFprConverter.cs", + "index": 9 + }, + "region": { + "startLine": 276 + } + }, + "logicalLocations": [ + { + "index": 148, + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.FortifyFprConverter.ParseFile()" + } + ] } - ] + ], + "partialFingerprints": { + "UniqueId": "System.Int32.TryParse(System.String,System.Int32@)#TryParse" + }, + "properties": { + "Category": "Microsoft.Usage", + "FixCategory": "NonBreaking" + } }, - "file:///E:/src/sarif-sdk-test/src/Sarif.Multitool/Rules/UseAbsolutePathsForNestedFileUriFragments.cs": { - "mimeType": "text/x-csharp", - "contents": { - "binary": "77u/Ly8gQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuDQovLyBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UuIFNlZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHByb2plY3Qgcm9vdCBmb3IgZnVsbCBsaWNlbnNlIGluZm9ybWF0aW9uLg0KDQp1c2luZyBTeXN0ZW07DQp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsNCnVzaW5nIE1pY3Jvc29mdC5Kc29uLlBvaW50ZXI7DQoNCm5hbWVzcGFjZSBNaWNyb3NvZnQuQ29kZUFuYWx5c2lzLlNhcmlmLk11bHRpdG9vbC5SdWxlcw0Kew0KICAgIHB1YmxpYyBjbGFzcyBVc2VBYnNvbHV0ZVBhdGhzRm9yTmVzdGVkRmlsZVVyaUZyYWdtZW50cyA6IFNhcmlmVmFsaWRhdGlvblNraW1tZXJCYXNlDQogICAgew0KICAgICAgICBwcml2YXRlIE1lc3NhZ2UgX2Z1bGxEZXNjcmlwdGlvbiA9IG5ldyBNZXNzYWdlDQogICAgICAgIHsNCiAgICAgICAgICAgIFRleHQgPSBSdWxlUmVzb3VyY2VzLlNBUklGMTAwMl9Vc2VBYnNvbHV0ZVBhdGhzRm9yTmVzdGVkRmlsZVVyaUZyYWdtZW50c0Rlc2NyaXB0aW9uDQogICAgICAgIH07DQoNCiAgICAgICAgcHVibGljIG92ZXJyaWRlIE1lc3NhZ2UgRnVsbERlc2NyaXB0aW9uID0+IF9mdWxsRGVzY3JpcHRpb247DQoNCiAgICAgICAgcHVibGljIG92ZXJyaWRlIFJlc3VsdExldmVsIERlZmF1bHRMZXZlbCA9PiBSZXN1bHRMZXZlbC5FcnJvcjsNCg0KICAgICAgICAvLy8gPHN1bW1hcnk+DQogICAgICAgIC8vLyBTQVJJRjEwMDINCiAgICAgICAgLy8vIDwvc3VtbWFyeT4NCiAgICAgICAgcHVibGljIG92ZXJyaWRlIHN0cmluZyBJZCA9PiBSdWxlSWQuVXNlQWJzb2x1dGVQYXRoc0Zvck5lc3RlZEZpbGVVcmlGcmFnbWVudHM7DQoNCiAgICAgICAgcHJvdGVjdGVkIG92ZXJyaWRlIElFbnVtZXJhYmxlPHN0cmluZz4gTWVzc2FnZVJlc291cmNlTmFtZXMNCiAgICAgICAgew0KICAgICAgICAgICAgZ2V0DQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBzdHJpbmdbXQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgbmFtZW9mKFJ1bGVSZXNvdXJjZXMuU0FSSUYxMDAyX0RlZmF1bHQpDQogICAgICAgICAgICAgICAgfTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgIHByb3RlY3RlZCBvdmVycmlkZSB2b2lkIEFuYWx5emUoRmlsZUxvY2F0aW9uIGZpbGVMb2NhdGlvbiwgc3RyaW5nIGZpbGVMb2NhdGlvblBvaW50ZXIpDQogICAgICAgIHsNCiAgICAgICAgICAgIEFuYWx5emVVcmkoZmlsZUxvY2F0aW9uLlVyaSwgZmlsZUxvY2F0aW9uUG9pbnRlci5BdFByb3BlcnR5KFNhcmlmUHJvcGVydHlOYW1lLlVyaSkpOw0KICAgICAgICB9DQoNCiAgICAgICAgLy8gSW4gYWRkaXRpb24gdG8gYXBwZWFyaW5nIGluIGZpbGVMb2NhdGlvbiBvYmplY3RzLCBVUklzIHdpdGggZnJhZ21lbnRzIG1pZ2h0DQogICAgICAgIC8vIGFwcGVhciBhcyBwcm9wZXJ0eSBuYW1lcyBpbiB0aGUgcnVuLmZpbGVzIGRpY3Rpb25hcnkuDQogICAgICAgIHByb3RlY3RlZCBvdmVycmlkZSB2b2lkIEFuYWx5emUoRmlsZURhdGEgZmlsZURhdGEsIHN0cmluZyBmaWxlS2V5LCBzdHJpbmcgZmlsZVBvaW50ZXIpDQogICAgICAgIHsNCiAgICAgICAgICAgIGlmICghVXJpLklzV2VsbEZvcm1lZFVyaVN0cmluZyhmaWxlS2V5LCBVcmlLaW5kLlJlbGF0aXZlT3JBYnNvbHV0ZSkpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgLy8gSXQgd2Fzbid0IGEgdmFsdWUgVVJJLiBSdWxlIFNBUklGMTAwMywgVXJpc011c3RCZVZhbGlkLCB3aWxsIGNhdGNoIHRoaXMgcHJvYmxlbS4NCiAgICAgICAgICAgICAgICByZXR1cm47DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIFVyaSBmaWxlS2V5VXJpID0gbmV3IFVyaShmaWxlS2V5LCBVcmlLaW5kLlJlbGF0aXZlT3JBYnNvbHV0ZSk7DQogICAgICAgICAgICBBbmFseXplVXJpKGZpbGVLZXlVcmksIGZpbGVQb2ludGVyKTsNCiAgICAgICAgfQ0KDQogICAgICAgIHByaXZhdGUgdm9pZCBBbmFseXplVXJpKFVyaSB1cmksIHN0cmluZyBwb2ludGVyKQ0KICAgICAgICB7DQogICAgICAgICAgICBpZiAoVXJpSGFzTm9uQWJzb2x1dGVGcmFnbWVudCh1cmkpKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIExvZ1Jlc3VsdChwb2ludGVyLCBuYW1lb2YoUnVsZVJlc291cmNlcy5TQVJJRjEwMDJfRGVmYXVsdCksIHVyaS5PcmlnaW5hbFN0cmluZyk7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICBwcml2YXRlIGJvb2wgVXJpSGFzTm9uQWJzb2x1dGVGcmFnbWVudChVcmkgdXJpKQ0KICAgICAgICB7DQogICAgICAgICAgICBpZiAodXJpID09IG51bGwpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAvLyBZb3UgY2FuJ3QgYWNjZXNzIHRoZSBGcmFnbWVudCBwcm9wZXJ0eSBvZiBhIHJlbGF0aXZlIFVSSSwgc28gaWYgdGhpcyBVUkkgaXMNCiAgICAgICAgICAgIC8vIHJlbGF0aXZlLCB0dXJuIGl0IGludG8gYSBmYWtlIGFic29sdXRlIFVSSSwgYW5kIGdldCB0aGUgZnJhZ21lbnQgZnJvbSB0aGF0Lg0KICAgICAgICAgICAgVXJpIGFic29sdXRlVXJpID0gdXJpLklzQWJzb2x1dGVVcmkNCiAgICAgICAgICAgICAgICA/IHVyaQ0KICAgICAgICAgICAgICAgIDogTWFrZUZha2VBYnNvbHV0ZVVyaSh1cmkpOw0KDQogICAgICAgICAgICBzdHJpbmcgZnJhZ21lbnQgPSBhYnNvbHV0ZVVyaS5GcmFnbWVudDsNCg0KICAgICAgICAgICAgcmV0dXJuICFzdHJpbmcuSXNOdWxsT3JFbXB0eShmcmFnbWVudCkgJiYgIWZyYWdtZW50LlN0YXJ0c1dpdGgoIiMvIiwgU3RyaW5nQ29tcGFyaXNvbi5PcmRpbmFsKTsNCiAgICAgICAgfQ0KDQogICAgICAgIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IFVyaSBfZmFrZUJhc2VVcmkgPSBuZXcgVXJpKCJmaWxlOi8vL3Jvb3QiLCBVcmlLaW5kLkFic29sdXRlKTsNCg0KICAgICAgICBwcml2YXRlIHN0YXRpYyBVcmkgTWFrZUZha2VBYnNvbHV0ZVVyaShVcmkgcmVsYXRpdmVVcmkpDQogICAgICAgIHsNCiAgICAgICAgICAgIHJldHVybiBuZXcgVXJpKF9mYWtlQmFzZVVyaSwgcmVsYXRpdmVVcmkpOw0KICAgICAgICB9DQogICAgfQ0KfQ0K" + { + "ruleId": "CA1806", + "message": { + "text": "'FortifyFprConverter.ParseRegion()' calls 'int.TryParse(string, out int)' but does not explicitly check whether the conversion succeeded. Either use the return value in a conditional statement or verify that the call site expects that the out argument will be set to the default value when the conversion fails.", + "id": "TryParse" }, - "hashes": [ - { - "value": "0063A6EABDCA8799BFB019DDBC8539C8", - "algorithm": "md5" - }, - { - "value": "6B8AD418A3045AC84459E950458D48E6FAD7468B", - "algorithm": "sha-1" - }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", + "uriBaseId": "$(ProjectDir)", + "index": 3 + }, + "locations": [ { - "value": "1B4C2015E7BFAF738BF67AA8A0B25BD79926A55426AE10900627A3E15FDE9262", - "algorithm": "sha-256" + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/FortifyFprConverter.cs", + "index": 9 + }, + "region": { + "startLine": 508 + } + }, + "logicalLocations": [ + { + "index": 149, + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.FortifyFprConverter.ParseRegion()" + } + ] } - ] - } - }, - "logicalLocations": { - "Microsoft.CodeAnalysis.Sarif": { - "kind": "namespace" - }, - "Microsoft.CodeAnalysis.Sarif.Baseline": { - "kind": "namespace" - }, - "Microsoft.CodeAnalysis.Sarif.Baseline.DefaultBaseline": { - "kind": "namespace" - }, - "Microsoft.CodeAnalysis.Sarif.Converters": { - "kind": "namespace" - }, - "Microsoft.CodeAnalysis.Sarif.Converters.PREFastObjectModel": { - "kind": "namespace" - }, - "Microsoft.CodeAnalysis.Sarif.Converters.PylintObjectModel": { - "kind": "namespace" - }, - "Microsoft.CodeAnalysis.Sarif.Converters.TSLintObjectModel": { - "kind": "namespace" + ], + "partialFingerprints": { + "UniqueId": "System.Int32.TryParse(System.String,System.Int32@)#TryParse" + }, + "properties": { + "Category": "Microsoft.Usage", + "FixCategory": "NonBreaking" + } }, - "Microsoft.CodeAnalysis.Sarif.Driver": { - "kind": "namespace" + { + "ruleId": "CA1806", + "message": { + "text": "'FortifyFprConverter.ParseRegion()' calls 'int.TryParse(string, out int)' but does not explicitly check whether the conversion succeeded. Either use the return value in a conditional statement or verify that the call site expects that the out argument will be set to the default value when the conversion fails.", + "id": "TryParse" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", + "uriBaseId": "$(ProjectDir)", + "index": 3 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/FortifyFprConverter.cs", + "index": 9 + }, + "region": { + "startLine": 515 + } + }, + "logicalLocations": [ + { + "index": 149, + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.FortifyFprConverter.ParseRegion()" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "System.Int32.TryParse(System.String,System.Int32@)#TryParse" + }, + "properties": { + "Category": "Microsoft.Usage", + "FixCategory": "NonBreaking" + } }, - "Microsoft.CodeAnalysis.Sarif.Multitool": { - "kind": "namespace" + { + "ruleId": "CA1806", + "message": { + "text": "'FortifyFprConverter.ParseRegion()' calls 'int.TryParse(string, out int)' but does not explicitly check whether the conversion succeeded. Either use the return value in a conditional statement or verify that the call site expects that the out argument will be set to the default value when the conversion fails.", + "id": "TryParse" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", + "uriBaseId": "$(ProjectDir)", + "index": 3 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/FortifyFprConverter.cs", + "index": 9 + }, + "region": { + "startLine": 522 + } + }, + "logicalLocations": [ + { + "index": 149, + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.FortifyFprConverter.ParseRegion()" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "System.Int32.TryParse(System.String,System.Int32@)#TryParse" + }, + "properties": { + "Category": "Microsoft.Usage", + "FixCategory": "NonBreaking" + } }, - "Microsoft.CodeAnalysis.Sarif.Multitool.Rules": { - "kind": "namespace" + { + "ruleId": "CA1806", + "message": { + "text": "'FortifyFprConverter.ParseRegion()' calls 'int.TryParse(string, out int)' but does not explicitly check whether the conversion succeeded. Either use the return value in a conditional statement or verify that the call site expects that the out argument will be set to the default value when the conversion fails.", + "id": "TryParse" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", + "uriBaseId": "$(ProjectDir)", + "index": 3 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/FortifyFprConverter.cs", + "index": 9 + }, + "region": { + "startLine": 529 + } + }, + "logicalLocations": [ + { + "index": 149, + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.FortifyFprConverter.ParseRegion()" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "System.Int32.TryParse(System.String,System.Int32@)#TryParse" + }, + "properties": { + "Category": "Microsoft.Usage", + "FixCategory": "NonBreaking" + } }, - "Microsoft.CodeAnalysis.Sarif.Processors": { - "kind": "namespace" + { + "ruleId": "CA1806", + "message": { + "text": "'FortifyFprConverter.ParseSnippet()' calls 'int.TryParse(string, out int)' but does not explicitly check whether the conversion succeeded. Either use the return value in a conditional statement or verify that the call site expects that the out argument will be set to the default value when the conversion fails.", + "id": "TryParse" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", + "uriBaseId": "$(ProjectDir)", + "index": 3 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/FortifyFprConverter.cs", + "index": 9 + }, + "region": { + "startLine": 659 + } + }, + "logicalLocations": [ + { + "index": 150, + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.FortifyFprConverter.ParseSnippet()" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "System.Int32.TryParse(System.String,System.Int32@)#TryParse" + }, + "properties": { + "Category": "Microsoft.Usage", + "FixCategory": "NonBreaking" + } }, - "Microsoft.CodeAnalysis.Sarif.Readers": { - "kind": "namespace" + { + "ruleId": "CA1806", + "message": { + "text": "'FortifyFprConverter.ParseSnippet()' calls 'int.TryParse(string, out int)' but does not explicitly check whether the conversion succeeded. Either use the return value in a conditional statement or verify that the call site expects that the out argument will be set to the default value when the conversion fails.", + "id": "TryParse" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", + "uriBaseId": "$(ProjectDir)", + "index": 3 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/FortifyFprConverter.cs", + "index": 9 + }, + "region": { + "startLine": 660 + } + }, + "logicalLocations": [ + { + "index": 150, + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.FortifyFprConverter.ParseSnippet()" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "System.Int32.TryParse(System.String,System.Int32@)#TryParse" + }, + "properties": { + "Category": "Microsoft.Usage", + "FixCategory": "NonBreaking" + } }, - "Microsoft.CodeAnalysis.Sarif.VersionOne": { - "kind": "namespace" + { + "ruleId": "CA1806", + "message": { + "text": "'FortifyFprConverter.ParseSnippet()' calls 'int.TryParse(string, out int)' but does not explicitly check whether the conversion succeeded. Either use the return value in a conditional statement or verify that the call site expects that the out argument will be set to the default value when the conversion fails.", + "id": "TryParse" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", + "uriBaseId": "$(ProjectDir)", + "index": 3 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/FortifyFprConverter.cs", + "index": 9 + }, + "region": { + "startLine": 670 + } + }, + "logicalLocations": [ + { + "index": 150, + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.FortifyFprConverter.ParseSnippet()" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "System.Int32.TryParse(System.String,System.Int32@)#TryParse" + }, + "properties": { + "Category": "Microsoft.Usage", + "FixCategory": "NonBreaking" + } }, - "Microsoft.CodeAnalysis.Sarif.VersionOne.Readers": { - "kind": "namespace" + { + "ruleId": "CA1806", + "message": { + "text": "'FortifyFprConverter.ParseSnippet()' calls 'int.TryParse(string, out int)' but does not explicitly check whether the conversion succeeded. Either use the return value in a conditional statement or verify that the call site expects that the out argument will be set to the default value when the conversion fails.", + "id": "TryParse" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", + "uriBaseId": "$(ProjectDir)", + "index": 3 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/FortifyFprConverter.cs", + "index": 9 + }, + "region": { + "startLine": 675 + } + }, + "logicalLocations": [ + { + "index": 150, + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.FortifyFprConverter.ParseSnippet()" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "System.Int32.TryParse(System.String,System.Int32@)#TryParse" + }, + "properties": { + "Category": "Microsoft.Usage", + "FixCategory": "NonBreaking" + } }, - "Microsoft.CodeAnalysis.Sarif.Visitors": { - "kind": "namespace" + { + "ruleId": "CA1822", + "message": { + "text": "The 'this' parameter (or 'Me' in Visual Basic) of 'FxCopConverter.BuildFileLocationFromFxCopReference(string)' is never used. Mark the member as static (or Shared in Visual Basic) or use 'this'/'Me' in the method body or at least one property accessor, if appropriate." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", + "uriBaseId": "$(ProjectDir)", + "index": 3 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/FxCopConverter.cs", + "index": 10 + }, + "region": { + "startLine": 193 + } + }, + "logicalLocations": [ + { + "index": 152, + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.FxCopConverter.BuildFileLocationFromFxCopReference(System.String)" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Performance", + "FixCategory": "NonBreaking" + } }, - "Microsoft.CodeAnalysis.Sarif.Writers": { - "kind": "namespace" + { + "ruleId": "CA1307", + "level": "error", + "message": { + "text": "Because the behavior of 'string.StartsWith(string)' could vary based on the current user's locale settings, replace this call in 'FxCopConverter.BuildFileLocationFromFxCopReference(string)' with a call to 'string.StartsWith(string, StringComparison)'. If the result of 'string.StartsWith(string, StringComparison)' will be displayed to the user, such as when sorting a list of items for display in a list box, specify 'StringComparison.CurrentCulture' or 'StringComparison.CurrentCultureIgnoreCase' as the 'StringComparison' parameter. If comparing case-insensitive identifiers, such as file paths, environment variables, or registry keys and values, specify 'StringComparison.OrdinalIgnoreCase'. Otherwise, if comparing case-sensitive identifiers, specify 'StringComparison.Ordinal'." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", + "uriBaseId": "$(ProjectDir)", + "index": 3 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/FxCopConverter.cs", + "index": 10 + }, + "region": { + "startLine": 196 + } + }, + "logicalLocations": [ + { + "index": 152, + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.FxCopConverter.BuildFileLocationFromFxCopReference(System.String)" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "System.String.StartsWith(System.String)" + }, + "properties": { + "Category": "Microsoft.Globalization", + "FixCategory": "NonBreaking" + } }, - "Microsoft.CodeAnalysisDriver": { - "kind": "namespace" - }, - "Microsoft.Json.Pointer": { - "kind": "namespace" - }, - "microsoft.json.pointer.dll": { - "kind": "module" - }, - "microsoft.json.pointer.dll!Microsoft.Json.Pointer": { - "name": "Microsoft.Json.Pointer", - "parentKey": "microsoft.json.pointer.dll", - "kind": "namespace" - }, - "microsoft.json.pointer.dll!Microsoft.Json.Pointer.JsonPointer": { - "name": "JsonPointer", - "parentKey": "microsoft.json.pointer.dll!Microsoft.Json.Pointer", - "kind": "type" - }, - "microsoft.json.pointer.dll!Microsoft.Json.Pointer.JsonPointer..ctor(System.String,Microsoft.Json.Pointer.JsonPointerRepresentation)": { - "name": ".ctor(System.String,Microsoft.Json.Pointer.JsonPointerRepresentation)", - "parentKey": "microsoft.json.pointer.dll!Microsoft.Json.Pointer.JsonPointer", - "kind": "member" - }, - "microsoft.json.pointer.dll!Microsoft.Json.Pointer.Resources": { - "name": "Resources", - "parentKey": "microsoft.json.pointer.dll!Microsoft.Json.Pointer", - "kind": "type" - }, - "microsoft.json.pointer.dll!Microsoft.Json.Pointer.StringExtensions": { - "name": "StringExtensions", - "parentKey": "microsoft.json.pointer.dll!Microsoft.Json.Pointer", - "kind": "type" - }, - "microsoft.json.pointer.dll!Microsoft.Json.Pointer.StringExtensions.AtIndex(System.String,System.Int32)": { - "name": "AtIndex(System.String,System.Int32)", - "parentKey": "microsoft.json.pointer.dll!Microsoft.Json.Pointer.StringExtensions", - "kind": "member" - }, - "microsoft.json.pointer.dll!Microsoft.Json.Pointer.StringExtensions.AtProperty(System.String,System.String)": { - "name": "AtProperty(System.String,System.String)", - "parentKey": "microsoft.json.pointer.dll!Microsoft.Json.Pointer.StringExtensions", - "kind": "member" + { + "ruleId": "CA1822", + "message": { + "text": "The 'this' parameter (or 'Me' in Visual Basic) of 'FxCopConverter.CreateRule(FxCopLogReader.Context)' is never used. Mark the member as static (or Shared in Visual Basic) or use 'this'/'Me' in the method body or at least one property accessor, if appropriate." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", + "uriBaseId": "$(ProjectDir)", + "index": 3 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/FxCopConverter.cs", + "index": 10 + }, + "region": { + "startLine": 99 + } + }, + "logicalLocations": [ + { + "index": 153, + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.FxCopConverter.CreateRule(Microsoft.CodeAnalysis.Sarif.Converters.FxCopLogReader+Context)" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Performance", + "FixCategory": "NonBreaking" + } }, - "microsoft.json.pointer.dll!Microsoft.Json.Pointer.StringExtensions.UnescapeJsonPointer(System.String)": { - "name": "UnescapeJsonPointer(System.String)", - "parentKey": "microsoft.json.pointer.dll!Microsoft.Json.Pointer.StringExtensions", - "kind": "member" + { + "ruleId": "CA2202", + "message": { + "text": "Object 'stream' can be disposed more than once in method 'FxCopLogReader.Read(FxCopLogReader.Context, Stream)'. To avoid generating a System.ObjectDisposedException you should not call Dispose more than one time on an object.: Lines: 734" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", + "uriBaseId": "$(ProjectDir)", + "index": 3 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/FxCopConverter.cs", + "index": 10 + }, + "region": { + "startLine": 734 + } + }, + "logicalLocations": [ + { + "index": 155, + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.FxCopLogReader.Read(Microsoft.CodeAnalysis.Sarif.Converters.FxCopLogReader+Context,System.IO.Stream)" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Usage", + "FixCategory": "DependsOnFix" + } }, - "microsoft.json.pointer.dll!Microsoft.Json.Pointer.VersionConstants": { - "name": "VersionConstants", - "parentKey": "microsoft.json.pointer.dll!Microsoft.Json.Pointer", - "kind": "type" + { + "ruleId": "CA3053", + "message": { + "text": "FxCop results that have been suppressed do not contain a message string." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", + "uriBaseId": "$(ProjectDir)", + "index": 3 + } + }, + "logicalLocations": [ + { + "index": 155, + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.FxCopLogReader.Read(Microsoft.CodeAnalysis.Sarif.Converters.FxCopLogReader+Context,System.IO.Stream)" + } + ] + } + ], + "suppressions": [ + { + "kind": "inSource" + } + ], + "properties": { + "Category": "Microsoft.Security.Xml", + "FixCategory": "NonBreaking" + } }, - "microsoft.json.pointer.dll!Microsoft.Json.Pointer.VersionConstants.PreRelease": { - "name": "PreRelease", - "parentKey": "microsoft.json.pointer.dll!Microsoft.Json.Pointer.VersionConstants", - "kind": "member" + { + "ruleId": "CA2000", + "message": { + "text": "In method 'LogReader.ReadLog(string, Encoding)', call System.IDisposable.Dispose on object 'new MemoryStream(encoding.GetBytes(input))' before all references to it are out of scope.", + "id": "NonExceptionEdge" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", + "uriBaseId": "$(ProjectDir)", + "index": 3 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/LogReader.cs", + "index": 11 + }, + "region": { + "startLine": 18 + } + }, + "logicalLocations": [ + { + "index": 157, + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.LogReader`1.ReadLog(System.String,System.Text.Encoding)" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "NonExceptionEdge" + }, + "properties": { + "Category": "Microsoft.Reliability", + "FixCategory": "DependsOnFix" + } }, - "microsoft.json.schema.dll": { - "kind": "module" + { + "ruleId": "CA1062", + "message": { + "text": "In externally visible method 'LogReader.ReadLog(string, Encoding)', validate parameter 'encoding' before using it." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", + "uriBaseId": "$(ProjectDir)", + "index": 3 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/LogReader.cs", + "index": 11 + }, + "region": { + "startLine": 18 + } + }, + "logicalLocations": [ + { + "index": 157, + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.LogReader`1.ReadLog(System.String,System.Text.Encoding)" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "1" + }, + "properties": { + "Category": "Microsoft.Design", + "FixCategory": "DependsOnFix" + } }, - "microsoft.json.schema.dll!Microsoft.Json.Schema": { - "name": "Microsoft.Json.Schema", - "parentKey": "microsoft.json.schema.dll", - "kind": "namespace" + { + "ruleId": "CA2208", + "level": "error", + "message": { + "text": "Method 'PluginConverterFactory.CreateConverterCore(string)' passes 'pluginAssemblyPath' as the 'paramName' argument to a 'ArgumentException' constructor. Replace this argument with one of the method's parameter names. Note that the provided parameter name should have the exact casing as declared on the method.", + "id": "IncorrectParameterName" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", + "uriBaseId": "$(ProjectDir)", + "index": 3 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/PluginConverterFactory.cs", + "index": 12 + }, + "region": { + "startLine": 39 + } + }, + "logicalLocations": [ + { + "index": 159, + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.PluginConverterFactory.CreateConverterCore(System.String)" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "IncorrectParameterName" + }, + "properties": { + "Level": "CriticalError", + "Category": "Microsoft.Usage", + "FixCategory": "NonBreaking" + } }, - "microsoft.json.schema.dll!Microsoft.Json.Schema.AdditionalItems": { - "name": "AdditionalItems", - "parentKey": "microsoft.json.schema.dll!Microsoft.Json.Schema", - "kind": "type" + { + "ruleId": "CA2208", + "level": "error", + "message": { + "text": "Method 'PluginConverterFactory.CreateConverterCore(string)' passes 'pluginAssemblyPath' as the 'paramName' argument to a 'ArgumentException' constructor. Replace this argument with one of the method's parameter names. Note that the provided parameter name should have the exact casing as declared on the method.", + "id": "IncorrectParameterName" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", + "uriBaseId": "$(ProjectDir)", + "index": 3 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/PluginConverterFactory.cs", + "index": 12 + }, + "region": { + "startLine": 58 + } + }, + "logicalLocations": [ + { + "index": 159, + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.PluginConverterFactory.CreateConverterCore(System.String)" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "IncorrectParameterName" + }, + "properties": { + "Level": "CriticalError", + "Category": "Microsoft.Usage", + "FixCategory": "NonBreaking" + } }, - "microsoft.json.schema.dll!Microsoft.Json.Schema.AdditionalItems..ctor(Microsoft.Json.Schema.AdditionalItems)": { - "name": ".ctor(Microsoft.Json.Schema.AdditionalItems)", - "parentKey": "microsoft.json.schema.dll!Microsoft.Json.Schema.AdditionalItems", - "kind": "member" + { + "ruleId": "CA1704", + "message": { + "text": "Correct the spelling of 'Efast' in type name 'PREfastConverter'.", + "id": "Type" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", + "uriBaseId": "$(ProjectDir)", + "index": 3 + } + }, + "logicalLocations": [ + { + "index": 160, + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.PREfastConverter" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "Efast#Type" + }, + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" + } }, - "microsoft.json.schema.dll!Microsoft.Json.Schema.AdditionalProperties": { - "name": "AdditionalProperties", - "parentKey": "microsoft.json.schema.dll!Microsoft.Json.Schema", - "kind": "type" + { + "ruleId": "CA3053", + "message": { + "text": "'PREfastConverter.Convert(Stream, IResultLogWriter, OptionallyEmittedData)' instantiates an XmlReader instance by calling System.Xml.XmlReader.Create(System.IO.Stream,System.Xml.XmlReaderSettings) and provided an XmlReaderSettings instance with an insecure XmlResolver property value. This usage is potentially unsafe as untrusted external resources may be resolved during read operations. Provide a XmlReaderSettings instance and set the XmlResolver property to null or an instance of XmlSecureResolver.", + "id": "XmlReaderCreateInsecureXmlResolver" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", + "uriBaseId": "$(ProjectDir)", + "index": 3 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/PREFastConverter.cs", + "index": 13 + }, + "region": { + "startLine": 50 + } + }, + "logicalLocations": [ + { + "index": 161, + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.PREfastConverter.Convert(System.IO.Stream,Microsoft.CodeAnalysis.Sarif.IResultLogWriter,Microsoft.CodeAnalysis.Sarif.OptionallyEmittedData)" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "XmlReaderCreateInsecureXmlResolver" + }, + "properties": { + "Category": "Microsoft.Security.Xml", + "FixCategory": "NonBreaking" + } }, - "microsoft.json.schema.dll!Microsoft.Json.Schema.AdditionalProperties..ctor(Microsoft.Json.Schema.AdditionalProperties)": { - "name": ".ctor(Microsoft.Json.Schema.AdditionalProperties)", - "parentKey": "microsoft.json.schema.dll!Microsoft.Json.Schema.AdditionalProperties", - "kind": "member" + { + "ruleId": "CA1305", + "level": "error", + "message": { + "text": "Because the behavior of 'string.Format(string, object, object)' could vary based on the current user's locale settings, replace this call in 'PREfastConverter.CreateResult(Defect)' with a call to 'string.Format(IFormatProvider, string, params object[])'. If the result of 'string.Format(IFormatProvider, string, params object[])' will be displayed to the user, specify 'CultureInfo.CurrentCulture' as the 'IFormatProvider' parameter. Otherwise, if the result will be stored and accessed by software, such as when it is persisted to disk or to a database, specify 'CultureInfo.InvariantCulture'.", + "id": "IFormatProviderAlternateString" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", + "uriBaseId": "$(ProjectDir)", + "index": 3 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/PREFastConverter.cs", + "index": 13 + }, + "region": { + "startLine": 86 + } + }, + "logicalLocations": [ + { + "index": 162, + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.PREfastConverter.CreateResult(Microsoft.CodeAnalysis.Sarif.Converters.PREFastObjectModel.Defect)" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "System.String.Format(System.String,System.Object,System.Object)#IFormatProviderAlternateString" + }, + "properties": { + "Category": "Microsoft.Globalization", + "FixCategory": "NonBreaking" + } }, - "microsoft.json.schema.dll!Microsoft.Json.Schema.Dependency": { - "name": "Dependency", - "parentKey": "microsoft.json.schema.dll!Microsoft.Json.Schema", - "kind": "type" + { + "ruleId": "CA1822", + "message": { + "text": "The 'this' parameter (or 'Me' in Visual Basic) of 'PREfastConverter.GenerateCodeFlows(Defect, Result)' is never used. Mark the member as static (or Shared in Visual Basic) or use 'this'/'Me' in the method body or at least one property accessor, if appropriate." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", + "uriBaseId": "$(ProjectDir)", + "index": 3 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/PREFastConverter.cs", + "index": 13 + }, + "region": { + "startLine": 144 + } + }, + "logicalLocations": [ + { + "index": 163, + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.PREfastConverter.GenerateCodeFlows(Microsoft.CodeAnalysis.Sarif.Converters.PREFastObjectModel.Defect,Microsoft.CodeAnalysis.Sarif.Result)" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Performance", + "FixCategory": "NonBreaking" + } }, - "microsoft.json.schema.dll!Microsoft.Json.Schema.Dependency..ctor(Microsoft.Json.Schema.Dependency)": { - "name": ".ctor(Microsoft.Json.Schema.Dependency)", - "parentKey": "microsoft.json.schema.dll!Microsoft.Json.Schema.Dependency", - "kind": "member" + { + "ruleId": "CA1305", + "level": "error", + "message": { + "text": "Because the behavior of 'string.Format(string, object, object)' could vary based on the current user's locale settings, replace this call in 'PREfastConverter.GenerateCodeFlows(Defect, Result)' with a call to 'string.Format(IFormatProvider, string, params object[])'. If the result of 'string.Format(IFormatProvider, string, params object[])' will be displayed to the user, specify 'CultureInfo.CurrentCulture' as the 'IFormatProvider' parameter. Otherwise, if the result will be stored and accessed by software, such as when it is persisted to disk or to a database, specify 'CultureInfo.InvariantCulture'.", + "id": "IFormatProviderAlternateString" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", + "uriBaseId": "$(ProjectDir)", + "index": 3 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/PREFastConverter.cs", + "index": 13 + }, + "region": { + "startLine": 163 + } + }, + "logicalLocations": [ + { + "index": 163, + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.PREfastConverter.GenerateCodeFlows(Microsoft.CodeAnalysis.Sarif.Converters.PREFastObjectModel.Defect,Microsoft.CodeAnalysis.Sarif.Result)" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "System.String.Format(System.String,System.Object,System.Object)#IFormatProviderAlternateString" + }, + "properties": { + "Category": "Microsoft.Globalization", + "FixCategory": "NonBreaking" + } }, - "microsoft.json.schema.dll!Microsoft.Json.Schema.Dependency.PropertyDependencies": { - "name": "PropertyDependencies", - "parentKey": "microsoft.json.schema.dll!Microsoft.Json.Schema.Dependency", - "kind": "member" + { + "ruleId": "CA1822", + "message": { + "text": "The 'this' parameter (or 'Me' in Visual Basic) of 'PREfastConverter.RemovePREfastNewLine(string)' is never used. Mark the member as static (or Shared in Visual Basic) or use 'this'/'Me' in the method body or at least one property accessor, if appropriate." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", + "uriBaseId": "$(ProjectDir)", + "index": 3 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/PREFastConverter.cs", + "index": 13 + }, + "region": { + "startLine": 224 + } + }, + "logicalLocations": [ + { + "index": 164, + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.PREfastConverter.RemovePREfastNewLine(System.String)" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Performance", + "FixCategory": "NonBreaking" + } }, - "microsoft.json.schema.dll!Microsoft.Json.Schema.DependencyConverter": { - "name": "DependencyConverter", - "parentKey": "microsoft.json.schema.dll!Microsoft.Json.Schema", - "kind": "type" + { + "ruleId": "CA1822", + "message": { + "text": "The 'this' parameter (or 'Me' in Visual Basic) of 'PREfastConverter.SetProbability(Defect, Result)' is never used. Mark the member as static (or Shared in Visual Basic) or use 'this'/'Me' in the method body or at least one property accessor, if appropriate." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", + "uriBaseId": "$(ProjectDir)", + "index": 3 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/PREFastConverter.cs", + "index": 13 + }, + "region": { + "startLine": 136 + } + }, + "logicalLocations": [ + { + "index": 165, + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.PREfastConverter.SetProbability(Microsoft.CodeAnalysis.Sarif.Converters.PREFastObjectModel.Defect,Microsoft.CodeAnalysis.Sarif.Result)" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Performance", + "FixCategory": "NonBreaking" + } }, - "microsoft.json.schema.dll!Microsoft.Json.Schema.DependencyConverter.WriteJson(Newtonsoft.Json.JsonWriter,System.Object,Newtonsoft.Json.JsonSerializer)": { - "name": "WriteJson(Newtonsoft.Json.JsonWriter,System.Object,Newtonsoft.Json.JsonSerializer)", - "parentKey": "microsoft.json.schema.dll!Microsoft.Json.Schema.DependencyConverter", - "kind": "member" + { + "ruleId": "CA1822", + "message": { + "text": "The 'this' parameter (or 'Me' in Visual Basic) of 'PREfastConverter.SetRank(Defect, Result)' is never used. Mark the member as static (or Shared in Visual Basic) or use 'this'/'Me' in the method body or at least one property accessor, if appropriate." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", + "uriBaseId": "$(ProjectDir)", + "index": 3 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/PREFastConverter.cs", + "index": 13 + }, + "region": { + "startLine": 128 + } + }, + "logicalLocations": [ + { + "index": 166, + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.PREfastConverter.SetRank(Microsoft.CodeAnalysis.Sarif.Converters.PREFastObjectModel.Defect,Microsoft.CodeAnalysis.Sarif.Result)" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Performance", + "FixCategory": "NonBreaking" + } }, - "microsoft.json.schema.dll!Microsoft.Json.Schema.Error": { - "name": "Error", - "parentKey": "microsoft.json.schema.dll!Microsoft.Json.Schema", - "kind": "type" + { + "ruleId": "CA1704", + "message": { + "text": "Correct the spelling of 'Pylint' in type name 'PylintConverter'.", + "id": "Type" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", + "uriBaseId": "$(ProjectDir)", + "index": 3 + } + }, + "logicalLocations": [ + { + "index": 167, + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.PylintConverter" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "Pylint#Type" + }, + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" + } }, - "microsoft.json.schema.dll!Microsoft.Json.Schema.Error.CreateException(System.String,System.Object[])": { - "name": "CreateException(System.String,System.Object[])", - "parentKey": "microsoft.json.schema.dll!Microsoft.Json.Schema.Error", - "kind": "member" + { + "ruleId": "CA1822", + "message": { + "text": "The 'this' parameter (or 'Me' in Visual Basic) of 'PylintConverter.CreateResult(PylintLogEntry)' is never used. Mark the member as static (or Shared in Visual Basic) or use 'this'/'Me' in the method body or at least one property accessor, if appropriate." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", + "uriBaseId": "$(ProjectDir)", + "index": 3 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/PylintConverter.cs", + "index": 14 + }, + "region": { + "startLine": 62 + } + }, + "logicalLocations": [ + { + "index": 168, + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.PylintConverter.CreateResult(Microsoft.CodeAnalysis.Sarif.Converters.PylintObjectModel.PylintLogEntry)" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Performance", + "FixCategory": "NonBreaking" + } }, - "microsoft.json.schema.dll!Microsoft.Json.Schema.Items": { - "name": "Items", - "parentKey": "microsoft.json.schema.dll!Microsoft.Json.Schema", - "kind": "type" + { + "ruleId": "CA1305", + "level": "error", + "message": { + "text": "Because the behavior of 'int.Parse(string)' could vary based on the current user's locale settings, replace this call in 'PylintConverter.CreateResult(PylintLogEntry)' with a call to 'int.Parse(string, IFormatProvider)'. If the result of 'int.Parse(string, IFormatProvider)' will be based on input from the user, specify 'CultureInfo.CurrentCulture' as the 'IFormatProvider' parameter. Otherwise, if the result will based on input stored and accessed by software, such as when it is loaded from disk or from a database, specify 'CultureInfo.InvariantCulture'.", + "id": "IFormatProviderAlternate" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", + "uriBaseId": "$(ProjectDir)", + "index": 3 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/PylintConverter.cs", + "index": 14 + }, + "region": { + "startLine": 87 + } + }, + "logicalLocations": [ + { + "index": 168, + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.PylintConverter.CreateResult(Microsoft.CodeAnalysis.Sarif.Converters.PylintObjectModel.PylintLogEntry)" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "System.Int32.Parse(System.String)#IFormatProviderAlternate" + }, + "properties": { + "Category": "Microsoft.Globalization", + "FixCategory": "NonBreaking" + } }, - "microsoft.json.schema.dll!Microsoft.Json.Schema.Items..ctor(Microsoft.Json.Schema.Items)": { - "name": ".ctor(Microsoft.Json.Schema.Items)", - "parentKey": "microsoft.json.schema.dll!Microsoft.Json.Schema.Items", - "kind": "member" + { + "ruleId": "CA1305", + "level": "error", + "message": { + "text": "Because the behavior of 'int.Parse(string)' could vary based on the current user's locale settings, replace this call in 'PylintConverter.CreateResult(PylintLogEntry)' with a call to 'int.Parse(string, IFormatProvider)'. If the result of 'int.Parse(string, IFormatProvider)' will be based on input from the user, specify 'CultureInfo.CurrentCulture' as the 'IFormatProvider' parameter. Otherwise, if the result will based on input stored and accessed by software, such as when it is loaded from disk or from a database, specify 'CultureInfo.InvariantCulture'.", + "id": "IFormatProviderAlternate" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", + "uriBaseId": "$(ProjectDir)", + "index": 3 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/PylintConverter.cs", + "index": 14 + }, + "region": { + "startLine": 87 + } + }, + "logicalLocations": [ + { + "index": 168, + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.PylintConverter.CreateResult(Microsoft.CodeAnalysis.Sarif.Converters.PylintObjectModel.PylintLogEntry)" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "System.Int32.Parse(System.String)#IFormatProviderAlternate" + }, + "properties": { + "Category": "Microsoft.Globalization", + "FixCategory": "NonBreaking" + } }, - "microsoft.json.schema.dll!Microsoft.Json.Schema.Items.Schemas": { - "name": "Schemas", - "parentKey": "microsoft.json.schema.dll!Microsoft.Json.Schema.Items", - "kind": "member" - }, - "microsoft.json.schema.dll!Microsoft.Json.Schema.ItemsConverter": { - "name": "ItemsConverter", - "parentKey": "microsoft.json.schema.dll!Microsoft.Json.Schema", - "kind": "type" - }, - "microsoft.json.schema.dll!Microsoft.Json.Schema.ItemsConverter.Instance": { - "name": "Instance", - "parentKey": "microsoft.json.schema.dll!Microsoft.Json.Schema.ItemsConverter", - "kind": "member" - }, - "microsoft.json.schema.dll!Microsoft.Json.Schema.ItemsConverter.WriteJson(Newtonsoft.Json.JsonWriter,System.Object,Newtonsoft.Json.JsonSerializer)": { - "name": "WriteJson(Newtonsoft.Json.JsonWriter,System.Object,Newtonsoft.Json.JsonSerializer)", - "parentKey": "microsoft.json.schema.dll!Microsoft.Json.Schema.ItemsConverter", - "kind": "member" - }, - "microsoft.json.schema.dll!Microsoft.Json.Schema.JsonSchema": { - "name": "JsonSchema", - "parentKey": "microsoft.json.schema.dll!Microsoft.Json.Schema", - "kind": "type" - }, - "microsoft.json.schema.dll!Microsoft.Json.Schema.JsonSchema..ctor(Microsoft.Json.Schema.JsonSchema)": { - "name": ".ctor(Microsoft.Json.Schema.JsonSchema)", - "parentKey": "microsoft.json.schema.dll!Microsoft.Json.Schema.JsonSchema", - "kind": "member" - }, - "microsoft.json.schema.dll!Microsoft.Json.Schema.JsonSchema.AllOf": { - "name": "AllOf", - "parentKey": "microsoft.json.schema.dll!Microsoft.Json.Schema.JsonSchema", - "kind": "member" - }, - "microsoft.json.schema.dll!Microsoft.Json.Schema.JsonSchema.AnyOf": { - "name": "AnyOf", - "parentKey": "microsoft.json.schema.dll!Microsoft.Json.Schema.JsonSchema", - "kind": "member" + { + "ruleId": "CA1305", + "level": "error", + "message": { + "text": "Because the behavior of 'string.Format(string, object)' could vary based on the current user's locale settings, replace this call in 'PylintConverter.CreateResult(PylintLogEntry)' with a call to 'string.Format(IFormatProvider, string, params object[])'. If the result of 'string.Format(IFormatProvider, string, params object[])' will be displayed to the user, specify 'CultureInfo.CurrentCulture' as the 'IFormatProvider' parameter. Otherwise, if the result will be stored and accessed by software, such as when it is persisted to disk or to a database, specify 'CultureInfo.InvariantCulture'.", + "id": "IFormatProviderAlternateString" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", + "uriBaseId": "$(ProjectDir)", + "index": 3 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/PylintConverter.cs", + "index": 14 + }, + "region": { + "startLine": 93 + } + }, + "logicalLocations": [ + { + "index": 168, + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.PylintConverter.CreateResult(Microsoft.CodeAnalysis.Sarif.Converters.PylintObjectModel.PylintLogEntry)" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "System.String.Format(System.String,System.Object)#IFormatProviderAlternateString" + }, + "properties": { + "Category": "Microsoft.Globalization", + "FixCategory": "NonBreaking" + } }, - "microsoft.json.schema.dll!Microsoft.Json.Schema.JsonSchema.Collapse(Microsoft.Json.Schema.JsonSchema,Microsoft.Json.Schema.JsonSchema)": { - "name": "Collapse(Microsoft.Json.Schema.JsonSchema,Microsoft.Json.Schema.JsonSchema)", - "parentKey": "microsoft.json.schema.dll!Microsoft.Json.Schema.JsonSchema", - "kind": "member" + { + "ruleId": "CA1305", + "level": "error", + "message": { + "text": "Because the behavior of 'string.Format(string, object, object)' could vary based on the current user's locale settings, replace this call in 'PylintConverter.CreateResult(PylintLogEntry)' with a call to 'string.Format(IFormatProvider, string, params object[])'. If the result of 'string.Format(IFormatProvider, string, params object[])' will be displayed to the user, specify 'CultureInfo.CurrentCulture' as the 'IFormatProvider' parameter. Otherwise, if the result will be stored and accessed by software, such as when it is persisted to disk or to a database, specify 'CultureInfo.InvariantCulture'.", + "id": "IFormatProviderAlternateString" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", + "uriBaseId": "$(ProjectDir)", + "index": 3 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/PylintConverter.cs", + "index": 14 + }, + "region": { + "startLine": 65 + } + }, + "logicalLocations": [ + { + "index": 168, + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.PylintConverter.CreateResult(Microsoft.CodeAnalysis.Sarif.Converters.PylintObjectModel.PylintLogEntry)" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "System.String.Format(System.String,System.Object,System.Object)#IFormatProviderAlternateString" + }, + "properties": { + "Category": "Microsoft.Globalization", + "FixCategory": "NonBreaking" + } }, - "microsoft.json.schema.dll!Microsoft.Json.Schema.JsonSchema.Definitions": { - "name": "Definitions", - "parentKey": "microsoft.json.schema.dll!Microsoft.Json.Schema.JsonSchema", - "kind": "member" + { + "ruleId": "CA1704", + "message": { + "text": "Correct the spelling of 'Semmle' in type name 'SemmleQLConverter'.", + "id": "Type" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", + "uriBaseId": "$(ProjectDir)", + "index": 3 + } + }, + "logicalLocations": [ + { + "index": 169, + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.SemmleQLConverter" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "Semmle#Type" + }, + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" + } }, - "microsoft.json.schema.dll!Microsoft.Json.Schema.JsonSchema.Dependencies": { - "name": "Dependencies", - "parentKey": "microsoft.json.schema.dll!Microsoft.Json.Schema.JsonSchema", - "kind": "member" + { + "ruleId": "CA2202", + "message": { + "text": "Object 'reader' can be disposed more than once in method 'SemmleQLConverter.GetResultsFromStream(Stream)'. To avoid generating a System.ObjectDisposedException you should not call Dispose more than one time on an object.: Lines: 110" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", + "uriBaseId": "$(ProjectDir)", + "index": 3 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/SemmleQlConverter.cs", + "index": 15 + }, + "region": { + "startLine": 110 + } + }, + "logicalLocations": [ + { + "index": 170, + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.SemmleQLConverter.GetResultsFromStream(System.IO.Stream)" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Usage", + "FixCategory": "DependsOnFix" + } }, - "microsoft.json.schema.dll!Microsoft.Json.Schema.JsonSchema.Enum": { - "name": "Enum", - "parentKey": "microsoft.json.schema.dll!Microsoft.Json.Schema.JsonSchema", - "kind": "member" + { + "ruleId": "CA2202", + "message": { + "text": "Object 'this' can be disposed more than once in method 'SemmleQLConverter.GetResultsFromStream(Stream)'. To avoid generating a System.ObjectDisposedException you should not call Dispose more than one time on an object.: Lines: 110" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", + "uriBaseId": "$(ProjectDir)", + "index": 3 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/SemmleQlConverter.cs", + "index": 15 + }, + "region": { + "startLine": 110 + } + }, + "logicalLocations": [ + { + "index": 170, + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.SemmleQLConverter.GetResultsFromStream(System.IO.Stream)" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Usage", + "FixCategory": "DependsOnFix" + } }, - "microsoft.json.schema.dll!Microsoft.Json.Schema.JsonSchema.Equals(Microsoft.Json.Schema.JsonSchema)": { - "name": "Equals(Microsoft.Json.Schema.JsonSchema)", - "parentKey": "microsoft.json.schema.dll!Microsoft.Json.Schema.JsonSchema", - "kind": "member" + { + "ruleId": "CA1822", + "message": { + "text": "The 'this' parameter (or 'Me' in Visual Basic) of 'SemmleQLConverter.NormalizeRawMessage(string, out string)' is never used. Mark the member as static (or Shared in Visual Basic) or use 'this'/'Me' in the method body or at least one property accessor, if appropriate." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", + "uriBaseId": "$(ProjectDir)", + "index": 3 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/SemmleQlConverter.cs", + "index": 15 + }, + "region": { + "startLine": 153 + } + }, + "logicalLocations": [ + { + "index": 171, + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.SemmleQLConverter.NormalizeRawMessage(System.String,System.String&)" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Performance", + "FixCategory": "NonBreaking" + } }, - "microsoft.json.schema.dll!Microsoft.Json.Schema.JsonSchema.OneOf": { - "name": "OneOf", - "parentKey": "microsoft.json.schema.dll!Microsoft.Json.Schema.JsonSchema", - "kind": "member" + { + "ruleId": "CA1305", + "level": "error", + "message": { + "text": "Because the behavior of 'int.Parse(string)' could vary based on the current user's locale settings, replace this call in 'SemmleQLConverter.NormalizeRawMessage(string, out string)' with a call to 'int.Parse(string, IFormatProvider)'. If the result of 'int.Parse(string, IFormatProvider)' will be based on input from the user, specify 'CultureInfo.CurrentCulture' as the 'IFormatProvider' parameter. Otherwise, if the result will based on input stored and accessed by software, such as when it is loaded from disk or from a database, specify 'CultureInfo.InvariantCulture'.", + "id": "IFormatProviderAlternate" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", + "uriBaseId": "$(ProjectDir)", + "index": 3 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/SemmleQlConverter.cs", + "index": 15 + }, + "region": { + "startLine": 207 + } + }, + "logicalLocations": [ + { + "index": 171, + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.SemmleQLConverter.NormalizeRawMessage(System.String,System.String&)" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "System.Int32.Parse(System.String)#IFormatProviderAlternate" + }, + "properties": { + "Category": "Microsoft.Globalization", + "FixCategory": "NonBreaking" + } }, - "microsoft.json.schema.dll!Microsoft.Json.Schema.JsonSchema.PatternProperties": { - "name": "PatternProperties", - "parentKey": "microsoft.json.schema.dll!Microsoft.Json.Schema.JsonSchema", - "kind": "member" + { + "ruleId": "CA1305", + "level": "error", + "message": { + "text": "Because the behavior of 'int.Parse(string)' could vary based on the current user's locale settings, replace this call in 'SemmleQLConverter.NormalizeRawMessage(string, out string)' with a call to 'int.Parse(string, IFormatProvider)'. If the result of 'int.Parse(string, IFormatProvider)' will be based on input from the user, specify 'CultureInfo.CurrentCulture' as the 'IFormatProvider' parameter. Otherwise, if the result will based on input stored and accessed by software, such as when it is loaded from disk or from a database, specify 'CultureInfo.InvariantCulture'.", + "id": "IFormatProviderAlternate" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", + "uriBaseId": "$(ProjectDir)", + "index": 3 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/SemmleQlConverter.cs", + "index": 15 + }, + "region": { + "startLine": 207 + } + }, + "logicalLocations": [ + { + "index": 171, + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.SemmleQLConverter.NormalizeRawMessage(System.String,System.String&)" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "System.Int32.Parse(System.String)#IFormatProviderAlternate" + }, + "properties": { + "Category": "Microsoft.Globalization", + "FixCategory": "NonBreaking" + } }, - "microsoft.json.schema.dll!Microsoft.Json.Schema.JsonSchema.Properties": { - "name": "Properties", - "parentKey": "microsoft.json.schema.dll!Microsoft.Json.Schema.JsonSchema", - "kind": "member" + { + "ruleId": "CA1305", + "level": "error", + "message": { + "text": "Because the behavior of 'int.Parse(string)' could vary based on the current user's locale settings, replace this call in 'SemmleQLConverter.NormalizeRawMessage(string, out string)' with a call to 'int.Parse(string, IFormatProvider)'. If the result of 'int.Parse(string, IFormatProvider)' will be based on input from the user, specify 'CultureInfo.CurrentCulture' as the 'IFormatProvider' parameter. Otherwise, if the result will based on input stored and accessed by software, such as when it is loaded from disk or from a database, specify 'CultureInfo.InvariantCulture'.", + "id": "IFormatProviderAlternate" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", + "uriBaseId": "$(ProjectDir)", + "index": 3 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/SemmleQlConverter.cs", + "index": 15 + }, + "region": { + "startLine": 207 + } + }, + "logicalLocations": [ + { + "index": 171, + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.SemmleQLConverter.NormalizeRawMessage(System.String,System.String&)" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "System.Int32.Parse(System.String)#IFormatProviderAlternate" + }, + "properties": { + "Category": "Microsoft.Globalization", + "FixCategory": "NonBreaking" + } }, - "microsoft.json.schema.dll!Microsoft.Json.Schema.JsonSchema.Required": { - "name": "Required", - "parentKey": "microsoft.json.schema.dll!Microsoft.Json.Schema.JsonSchema", - "kind": "member" - }, - "microsoft.json.schema.dll!Microsoft.Json.Schema.JsonSchema.Type": { - "name": "Type", - "parentKey": "microsoft.json.schema.dll!Microsoft.Json.Schema.JsonSchema", - "kind": "member" - }, - "microsoft.json.schema.dll!Microsoft.Json.Schema.JsonSchemaContractResolver": { - "name": "JsonSchemaContractResolver", - "parentKey": "microsoft.json.schema.dll!Microsoft.Json.Schema", - "kind": "type" - }, - "microsoft.json.schema.dll!Microsoft.Json.Schema.JsonSchemaContractResolver.ResolveContract(System.Type)": { - "name": "ResolveContract(System.Type)", - "parentKey": "microsoft.json.schema.dll!Microsoft.Json.Schema.JsonSchemaContractResolver", - "kind": "member" - }, - "microsoft.json.schema.dll!Microsoft.Json.Schema.JsonSchemaExtensions": { - "name": "JsonSchemaExtensions", - "parentKey": "microsoft.json.schema.dll!Microsoft.Json.Schema", - "kind": "type" + { + "ruleId": "CA1305", + "level": "error", + "message": { + "text": "Because the behavior of 'int.Parse(string)' could vary based on the current user's locale settings, replace this call in 'SemmleQLConverter.NormalizeRawMessage(string, out string)' with a call to 'int.Parse(string, IFormatProvider)'. If the result of 'int.Parse(string, IFormatProvider)' will be based on input from the user, specify 'CultureInfo.CurrentCulture' as the 'IFormatProvider' parameter. Otherwise, if the result will based on input stored and accessed by software, such as when it is loaded from disk or from a database, specify 'CultureInfo.InvariantCulture'.", + "id": "IFormatProviderAlternate" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", + "uriBaseId": "$(ProjectDir)", + "index": 3 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/SemmleQlConverter.cs", + "index": 15 + }, + "region": { + "startLine": 224 + } + }, + "logicalLocations": [ + { + "index": 171, + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.SemmleQLConverter.NormalizeRawMessage(System.String,System.String&)" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "System.Int32.Parse(System.String)#IFormatProviderAlternate" + }, + "properties": { + "Category": "Microsoft.Globalization", + "FixCategory": "NonBreaking" + } }, - "microsoft.json.schema.dll!Microsoft.Json.Schema.JsonSchemaExtensions.SafeGetType(Microsoft.Json.Schema.JsonSchema)": { - "name": "SafeGetType(Microsoft.Json.Schema.JsonSchema)", - "parentKey": "microsoft.json.schema.dll!Microsoft.Json.Schema.JsonSchemaExtensions", - "kind": "member" + { + "ruleId": "CA1305", + "level": "error", + "message": { + "text": "Because the behavior of 'int.Parse(string)' could vary based on the current user's locale settings, replace this call in 'SemmleQLConverter.NormalizeRawMessage(string, out string)' with a call to 'int.Parse(string, IFormatProvider)'. If the result of 'int.Parse(string, IFormatProvider)' will be based on input from the user, specify 'CultureInfo.CurrentCulture' as the 'IFormatProvider' parameter. Otherwise, if the result will based on input stored and accessed by software, such as when it is loaded from disk or from a database, specify 'CultureInfo.InvariantCulture'.", + "id": "IFormatProviderAlternate" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", + "uriBaseId": "$(ProjectDir)", + "index": 3 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/SemmleQlConverter.cs", + "index": 15 + }, + "region": { + "startLine": 224 + } + }, + "logicalLocations": [ + { + "index": 171, + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.SemmleQLConverter.NormalizeRawMessage(System.String,System.String&)" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "System.Int32.Parse(System.String)#IFormatProviderAlternate" + }, + "properties": { + "Category": "Microsoft.Globalization", + "FixCategory": "NonBreaking" + } }, - "microsoft.json.schema.dll!Microsoft.Json.Schema.JsonSerializerExtensions": { - "name": "JsonSerializerExtensions", - "parentKey": "microsoft.json.schema.dll!Microsoft.Json.Schema", - "kind": "type" + { + "ruleId": "CA1305", + "level": "error", + "message": { + "text": "Because the behavior of 'int.Parse(string)' could vary based on the current user's locale settings, replace this call in 'SemmleQLConverter.NormalizeRawMessage(string, out string)' with a call to 'int.Parse(string, IFormatProvider)'. If the result of 'int.Parse(string, IFormatProvider)' will be based on input from the user, specify 'CultureInfo.CurrentCulture' as the 'IFormatProvider' parameter. Otherwise, if the result will based on input stored and accessed by software, such as when it is loaded from disk or from a database, specify 'CultureInfo.InvariantCulture'.", + "id": "IFormatProviderAlternate" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", + "uriBaseId": "$(ProjectDir)", + "index": 3 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/SemmleQlConverter.cs", + "index": 15 + }, + "region": { + "startLine": 224 + } + }, + "logicalLocations": [ + { + "index": 171, + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.SemmleQLConverter.NormalizeRawMessage(System.String,System.String&)" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "System.Int32.Parse(System.String)#IFormatProviderAlternate" + }, + "properties": { + "Category": "Microsoft.Globalization", + "FixCategory": "NonBreaking" + } }, - "microsoft.json.schema.dll!Microsoft.Json.Schema.JsonSerializerExtensions.CaptureError(Newtonsoft.Json.JsonSerializer,Newtonsoft.Json.Linq.JToken,Microsoft.Json.Schema.ErrorNumber,System.Object[])": { - "name": "CaptureError(Newtonsoft.Json.JsonSerializer,Newtonsoft.Json.Linq.JToken,Microsoft.Json.Schema.ErrorNumber,System.Object[])", - "parentKey": "microsoft.json.schema.dll!Microsoft.Json.Schema.JsonSerializerExtensions", - "kind": "member" + { + "ruleId": "CA1305", + "level": "error", + "message": { + "text": "Because the behavior of 'string.Format(string, object, object)' could vary based on the current user's locale settings, replace this call in 'SemmleQLConverter.NormalizeRawMessage(string, out string)' with a call to 'string.Format(IFormatProvider, string, params object[])'. If the result of 'string.Format(IFormatProvider, string, params object[])' will be displayed to the user, specify 'CultureInfo.CurrentCulture' as the 'IFormatProvider' parameter. Otherwise, if the result will be stored and accessed by software, such as when it is persisted to disk or to a database, specify 'CultureInfo.InvariantCulture'.", + "id": "IFormatProviderAlternateString" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", + "uriBaseId": "$(ProjectDir)", + "index": 3 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/SemmleQlConverter.cs", + "index": 15 + }, + "region": { + "startLine": 250 + } + }, + "logicalLocations": [ + { + "index": 171, + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.SemmleQLConverter.NormalizeRawMessage(System.String,System.String&)" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "System.String.Format(System.String,System.Object,System.Object)#IFormatProviderAlternateString" + }, + "properties": { + "Category": "Microsoft.Globalization", + "FixCategory": "NonBreaking" + } }, - "microsoft.json.schema.dll!Microsoft.Json.Schema.JsonSyntaxException": { - "name": "JsonSyntaxException", - "parentKey": "microsoft.json.schema.dll!Microsoft.Json.Schema", - "kind": "type" + { + "ruleId": "CA1305", + "level": "error", + "message": { + "text": "Because the behavior of 'string.Format(string, object, object, object)' could vary based on the current user's locale settings, replace this call in 'SemmleQLConverter.NormalizeRawMessage(string, out string)' with a call to 'string.Format(IFormatProvider, string, params object[])'. If the result of 'string.Format(IFormatProvider, string, params object[])' will be displayed to the user, specify 'CultureInfo.CurrentCulture' as the 'IFormatProvider' parameter. Otherwise, if the result will be stored and accessed by software, such as when it is persisted to disk or to a database, specify 'CultureInfo.InvariantCulture'.", + "id": "IFormatProviderAlternateString" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", + "uriBaseId": "$(ProjectDir)", + "index": 3 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/SemmleQlConverter.cs", + "index": 15 + }, + "region": { + "startLine": 207 + } + }, + "logicalLocations": [ + { + "index": 171, + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.SemmleQLConverter.NormalizeRawMessage(System.String,System.String&)" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "System.String.Format(System.String,System.Object,System.Object,System.Object)#IFormatProviderAlternateString" + }, + "properties": { + "Category": "Microsoft.Globalization", + "FixCategory": "NonBreaking" + } }, - "microsoft.json.schema.dll!Microsoft.Json.Schema.JsonSyntaxException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)": { - "name": ".ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)", - "parentKey": "microsoft.json.schema.dll!Microsoft.Json.Schema.JsonSyntaxException", - "kind": "member" + { + "ruleId": "CA1307", + "level": "error", + "message": { + "text": "Because the behavior of 'string.IndexOf(string)' could vary based on the current user's locale settings, replace this call in 'SemmleQLConverter.NormalizeRawMessage(string, out string)' with a call to 'string.IndexOf(string, StringComparison)'. If the result of 'string.IndexOf(string, StringComparison)' will be displayed to the user, such as when sorting a list of items for display in a list box, specify 'StringComparison.CurrentCulture' or 'StringComparison.CurrentCultureIgnoreCase' as the 'StringComparison' parameter. If comparing case-insensitive identifiers, such as file paths, environment variables, or registry keys and values, specify 'StringComparison.OrdinalIgnoreCase'. Otherwise, if comparing case-sensitive identifiers, specify 'StringComparison.Ordinal'." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", + "uriBaseId": "$(ProjectDir)", + "index": 3 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/SemmleQlConverter.cs", + "index": 15 + }, + "region": { + "startLine": 170 + } + }, + "logicalLocations": [ + { + "index": 171, + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.SemmleQLConverter.NormalizeRawMessage(System.String,System.String&)" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "System.String.IndexOf(System.String)" + }, + "properties": { + "Category": "Microsoft.Globalization", + "FixCategory": "NonBreaking" + } }, - "microsoft.json.schema.dll!Microsoft.Json.Schema.JTokenTypeExtensions": { - "name": "JTokenTypeExtensions", - "parentKey": "microsoft.json.schema.dll!Microsoft.Json.Schema", - "kind": "type" + { + "ruleId": "CA1307", + "level": "error", + "message": { + "text": "Because the behavior of 'string.IndexOf(string)' could vary based on the current user's locale settings, replace this call in 'SemmleQLConverter.NormalizeRawMessage(string, out string)' with a call to 'string.IndexOf(string, StringComparison)'. If the result of 'string.IndexOf(string, StringComparison)' will be displayed to the user, such as when sorting a list of items for display in a list box, specify 'StringComparison.CurrentCulture' or 'StringComparison.CurrentCultureIgnoreCase' as the 'StringComparison' parameter. If comparing case-insensitive identifiers, such as file paths, environment variables, or registry keys and values, specify 'StringComparison.OrdinalIgnoreCase'. Otherwise, if comparing case-sensitive identifiers, specify 'StringComparison.Ordinal'." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", + "uriBaseId": "$(ProjectDir)", + "index": 3 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/SemmleQlConverter.cs", + "index": 15 + }, + "region": { + "startLine": 177 + } + }, + "logicalLocations": [ + { + "index": 171, + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.SemmleQLConverter.NormalizeRawMessage(System.String,System.String&)" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "System.String.IndexOf(System.String)" + }, + "properties": { + "Category": "Microsoft.Globalization", + "FixCategory": "NonBreaking" + } }, - "microsoft.json.schema.dll!Microsoft.Json.Schema.JTokenTypeExtensions.ToSchemaType(Newtonsoft.Json.Linq.JTokenType)": { - "name": "ToSchemaType(Newtonsoft.Json.Linq.JTokenType)", - "parentKey": "microsoft.json.schema.dll!Microsoft.Json.Schema.JTokenTypeExtensions", - "kind": "member" + { + "ruleId": "CA1307", + "level": "error", + "message": { + "text": "Because the behavior of 'string.IndexOf(string)' could vary based on the current user's locale settings, replace this call in 'SemmleQLConverter.NormalizeRawMessage(string, out string)' with a call to 'string.IndexOf(string, StringComparison)'. If the result of 'string.IndexOf(string, StringComparison)' will be displayed to the user, such as when sorting a list of items for display in a list box, specify 'StringComparison.CurrentCulture' or 'StringComparison.CurrentCultureIgnoreCase' as the 'StringComparison' parameter. If comparing case-insensitive identifiers, such as file paths, environment variables, or registry keys and values, specify 'StringComparison.OrdinalIgnoreCase'. Otherwise, if comparing case-sensitive identifiers, specify 'StringComparison.Ordinal'." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", + "uriBaseId": "$(ProjectDir)", + "index": 3 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/SemmleQlConverter.cs", + "index": 15 + }, + "region": { + "startLine": 253 + } + }, + "logicalLocations": [ + { + "index": 171, + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.SemmleQLConverter.NormalizeRawMessage(System.String,System.String&)" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "System.String.IndexOf(System.String)" + }, + "properties": { + "Category": "Microsoft.Globalization", + "FixCategory": "NonBreaking" + } }, - "microsoft.json.schema.dll!Microsoft.Json.Schema.MustBeStringConverter": { - "name": "MustBeStringConverter", - "parentKey": "microsoft.json.schema.dll!Microsoft.Json.Schema", - "kind": "type" + { + "ruleId": "CA1823", + "message": { + "text": "It appears that field 'SemmleQLConverter.s_delimiters' is never used or is only ever assigned to. Use this field or remove it." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", + "uriBaseId": "$(ProjectDir)", + "index": 3 + } + }, + "logicalLocations": [ + { + "index": 172, + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.SemmleQLConverter.s_delimiters" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Performance", + "FixCategory": "NonBreaking" + } }, - "microsoft.json.schema.dll!Microsoft.Json.Schema.MustBeStringConverter.CanConvert(System.Type)": { - "name": "CanConvert(System.Type)", - "parentKey": "microsoft.json.schema.dll!Microsoft.Json.Schema.MustBeStringConverter", - "kind": "member" - }, - "microsoft.json.schema.dll!Microsoft.Json.Schema.MustBeStringConverter.ReadJson(Newtonsoft.Json.JsonReader,System.Type,System.Object,Newtonsoft.Json.JsonSerializer)": { - "name": "ReadJson(Newtonsoft.Json.JsonReader,System.Type,System.Object,Newtonsoft.Json.JsonSerializer)", - "parentKey": "microsoft.json.schema.dll!Microsoft.Json.Schema.MustBeStringConverter", - "kind": "member" - }, - "microsoft.json.schema.dll!Microsoft.Json.Schema.RefProperty": { - "name": "RefProperty", - "parentKey": "microsoft.json.schema.dll!Microsoft.Json.Schema", - "kind": "type" - }, - "microsoft.json.schema.dll!Microsoft.Json.Schema.RefProperty.s_inputPattern": { - "name": "s_inputPattern", - "parentKey": "microsoft.json.schema.dll!Microsoft.Json.Schema.RefProperty", - "kind": "member" - }, - "microsoft.json.schema.dll!Microsoft.Json.Schema.RefProperty.s_outputPattern": { - "name": "s_outputPattern", - "parentKey": "microsoft.json.schema.dll!Microsoft.Json.Schema.RefProperty", - "kind": "member" + { + "ruleId": "CA1704", + "message": { + "text": "Correct the spelling of 'Semmle' in member name 'SemmleQLConverter.SemmleError' or remove it entirely if it represents any sort of Hungarian notation.", + "id": "Member" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", + "uriBaseId": "$(ProjectDir)", + "index": 3 + } + }, + "logicalLocations": [ + { + "index": 173, + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.SemmleQLConverter.SemmleError" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "Semmle#Member" + }, + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" + } }, - "microsoft.json.schema.dll!Microsoft.Json.Schema.SchemaReader": { - "name": "SchemaReader", - "parentKey": "microsoft.json.schema.dll!Microsoft.Json.Schema", - "kind": "type" + { + "ruleId": "CA1704", + "message": { + "text": "Correct the spelling of 'Semmle' in member name 'SemmleQLConverter.SemmleRecommendation' or remove it entirely if it represents any sort of Hungarian notation.", + "id": "Member" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", + "uriBaseId": "$(ProjectDir)", + "index": 3 + } + }, + "logicalLocations": [ + { + "index": 174, + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.SemmleQLConverter.SemmleRecommendation" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "Semmle#Member" + }, + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" + } }, - "microsoft.json.schema.dll!Microsoft.Json.Schema.SchemaReader.ReadSchema(System.IO.TextReader,System.String)": { - "name": "ReadSchema(System.IO.TextReader,System.String)", - "parentKey": "microsoft.json.schema.dll!Microsoft.Json.Schema.SchemaReader", - "kind": "member" + { + "ruleId": "CA1704", + "message": { + "text": "Correct the spelling of 'Semmle' in member name 'SemmleQLConverter.SemmleWarning' or remove it entirely if it represents any sort of Hungarian notation.", + "id": "Member" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", + "uriBaseId": "$(ProjectDir)", + "index": 3 + } + }, + "logicalLocations": [ + { + "index": 175, + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.SemmleQLConverter.SemmleWarning" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "Semmle#Member" + }, + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" + } }, - "microsoft.json.schema.dll!Microsoft.Json.Schema.SchemaReader.ReadSchema(System.String,System.String)": { - "name": "ReadSchema(System.String,System.String)", - "parentKey": "microsoft.json.schema.dll!Microsoft.Json.Schema.SchemaReader", - "kind": "member" + { + "ruleId": "CA3053", + "message": { + "text": "FxCop results that have been suppressed do not contain a message string." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", + "uriBaseId": "$(ProjectDir)", + "index": 3 + } + }, + "logicalLocations": [ + { + "index": 177, + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.SparseReader.CreateFromStream(Microsoft.CodeAnalysis.Sarif.Converters.SparseReaderDispatchTable,System.IO.Stream,System.Xml.Schema.XmlSchemaSet)" + } + ] + } + ], + "suppressions": [ + { + "kind": "inSource" + } + ], + "properties": { + "Category": "Microsoft.Security.Xml", + "FixCategory": "NonBreaking" + } }, - "microsoft.json.schema.dll!Microsoft.Json.Schema.SchemaTypeConverter": { - "name": "SchemaTypeConverter", - "parentKey": "microsoft.json.schema.dll!Microsoft.Json.Schema", - "kind": "type" + { + "ruleId": "CA1021", + "message": { + "text": "Consider a design that does not require that 'innerText' be an out parameter." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", + "uriBaseId": "$(ProjectDir)", + "index": 3 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/SparseReader.cs", + "index": 16 + }, + "region": { + "startLine": 103 + } + }, + "logicalLocations": [ + { + "index": 178, + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.SparseReader.ReadChildren(System.String,System.Object,System.String&)" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "2#" + }, + "properties": { + "Category": "Microsoft.Design", + "FixCategory": "Breaking" + } }, - "microsoft.json.schema.dll!Microsoft.Json.Schema.SchemaTypeConverter.SchemaTypeFromString(System.String)": { - "name": "SchemaTypeFromString(System.String)", - "parentKey": "microsoft.json.schema.dll!Microsoft.Json.Schema.SchemaTypeConverter", - "kind": "member" + { + "ruleId": "CA1710", + "message": { + "text": "FxCop results that have been suppressed do not contain a message string." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", + "uriBaseId": "$(ProjectDir)", + "index": 3 + } + }, + "logicalLocations": [ + { + "index": 179, + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.SparseReaderDispatchTable" + } + ] + } + ], + "suppressions": [ + { + "kind": "inSource" + } + ], + "properties": { + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" + } }, - "microsoft.json.schema.dll!Microsoft.Json.Schema.SchemaTypeConverter.WriteJson(Newtonsoft.Json.JsonWriter,System.Object,Newtonsoft.Json.JsonSerializer)": { - "name": "WriteJson(Newtonsoft.Json.JsonWriter,System.Object,Newtonsoft.Json.JsonSerializer)", - "parentKey": "microsoft.json.schema.dll!Microsoft.Json.Schema.SchemaTypeConverter", - "kind": "member" + { + "ruleId": "CA1823", + "message": { + "text": "It appears that field 'StaticDriverVerifierConverter._sb' is never used or is only ever assigned to. Use this field or remove it." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", + "uriBaseId": "$(ProjectDir)", + "index": 3 + } + }, + "logicalLocations": [ + { + "index": 181, + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.StaticDriverVerifierConverter._sb" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Performance", + "FixCategory": "NonBreaking" + } }, - "microsoft.json.schema.dll!Microsoft.Json.Schema.SchemaTypeConverter+<>c": { - "name": "SchemaTypeConverter+<>c", - "parentKey": "microsoft.json.schema.dll!Microsoft.Json.Schema", - "kind": "type" + { + "ruleId": "CA1822", + "message": { + "text": "The 'this' parameter (or 'Me' in Visual Basic) of 'StaticDriverVerifierConverter.IsHarnessOrRulesFiles(string)' is never used. Mark the member as static (or Shared in Visual Basic) or use 'this'/'Me' in the method body or at least one property accessor, if appropriate." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", + "uriBaseId": "$(ProjectDir)", + "index": 3 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/StaticDriverVerifierConverter.cs", + "index": 17 + }, + "region": { + "startLine": 288 + } + }, + "logicalLocations": [ + { + "index": 182, + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.StaticDriverVerifierConverter.IsHarnessOrRulesFiles(System.String)" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Performance", + "FixCategory": "NonBreaking" + } }, - "microsoft.json.schema.dll!Microsoft.Json.Schema.SchemaTypeConverter+<>c.b__3_0(Microsoft.Json.Schema.SchemaType)": { - "name": "b__3_0(Microsoft.Json.Schema.SchemaType)", - "parentKey": "microsoft.json.schema.dll!Microsoft.Json.Schema.SchemaTypeConverter+<>c", - "kind": "member" + { + "ruleId": "CA1303", + "message": { + "text": "Method 'StaticDriverVerifierConverter.ProcessLine(string, ref int, Result)' passes a literal string as parameter 'text' of a call to 'StaticDriverVerifierConverter.ExtractCallerAndCallee(string, out string, out string)'. Retrieve the following string(s) from a resource table instead: \" \".", + "id": "KnownValue" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", + "uriBaseId": "$(ProjectDir)", + "index": 3 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/StaticDriverVerifierConverter.cs", + "index": 17 + }, + "region": { + "startLine": 181 + } + }, + "logicalLocations": [ + { + "index": 183, + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.StaticDriverVerifierConverter.ProcessLine(System.String,System.Int32&,Microsoft.CodeAnalysis.Sarif.Result)" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "Microsoft.CodeAnalysis.Sarif.Converters.StaticDriverVerifierConverter.ExtractCallerAndCallee(System.String,System.String@,System.String@)#KnownValue" + }, + "properties": { + "Category": "Microsoft.Globalization", + "FixCategory": "DependsOnFix" + } }, - "microsoft.json.schema.dll!Microsoft.Json.Schema.SchemaValidationException": { - "name": "SchemaValidationException", - "parentKey": "microsoft.json.schema.dll!Microsoft.Json.Schema", - "kind": "type" + { + "ruleId": "CA1305", + "level": "error", + "message": { + "text": "Because the behavior of 'int.Parse(string)' could vary based on the current user's locale settings, replace this call in 'StaticDriverVerifierConverter.ProcessLine(string, ref int, Result)' with a call to 'int.Parse(string, IFormatProvider)'. If the result of 'int.Parse(string, IFormatProvider)' will be based on input from the user, specify 'CultureInfo.CurrentCulture' as the 'IFormatProvider' parameter. Otherwise, if the result will based on input stored and accessed by software, such as when it is loaded from disk or from a database, specify 'CultureInfo.InvariantCulture'.", + "id": "IFormatProviderAlternate" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", + "uriBaseId": "$(ProjectDir)", + "index": 3 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/StaticDriverVerifierConverter.cs", + "index": 17 + }, + "region": { + "startLine": 136 + } + }, + "logicalLocations": [ + { + "index": 183, + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.StaticDriverVerifierConverter.ProcessLine(System.String,System.Int32&,Microsoft.CodeAnalysis.Sarif.Result)" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "System.Int32.Parse(System.String)#IFormatProviderAlternate" + }, + "properties": { + "Category": "Microsoft.Globalization", + "FixCategory": "NonBreaking" + } }, - "microsoft.json.schema.dll!Microsoft.Json.Schema.SchemaValidationException..ctor(Newtonsoft.Json.Linq.JToken,Microsoft.Json.Schema.ErrorNumber,System.Object[])": { - "name": ".ctor(Newtonsoft.Json.Linq.JToken,Microsoft.Json.Schema.ErrorNumber,System.Object[])", - "parentKey": "microsoft.json.schema.dll!Microsoft.Json.Schema.SchemaValidationException", - "kind": "member" - }, - "microsoft.json.schema.dll!Microsoft.Json.Schema.SchemaValidationException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)": { - "name": ".ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)", - "parentKey": "microsoft.json.schema.dll!Microsoft.Json.Schema.SchemaValidationException", - "kind": "member" + { + "ruleId": "CA1305", + "level": "error", + "message": { + "text": "Because the behavior of 'string.Format(string, object, object, object)' could vary based on the current user's locale settings, replace this call in 'StaticDriverVerifierConverter.ProcessLine(string, ref int, Result)' with a call to 'string.Format(IFormatProvider, string, params object[])'. If the result of 'string.Format(IFormatProvider, string, params object[])' will be displayed to the user, specify 'CultureInfo.CurrentCulture' as the 'IFormatProvider' parameter. Otherwise, if the result will be stored and accessed by software, such as when it is persisted to disk or to a database, specify 'CultureInfo.InvariantCulture'.", + "id": "IFormatProviderAlternateString" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", + "uriBaseId": "$(ProjectDir)", + "index": 3 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/StaticDriverVerifierConverter.cs", + "index": 17 + }, + "region": { + "startLine": 177 + } + }, + "logicalLocations": [ + { + "index": 183, + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.StaticDriverVerifierConverter.ProcessLine(System.String,System.Int32&,Microsoft.CodeAnalysis.Sarif.Result)" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "System.String.Format(System.String,System.Object,System.Object,System.Object)#IFormatProviderAlternateString" + }, + "properties": { + "Category": "Microsoft.Globalization", + "FixCategory": "NonBreaking" + } }, - "microsoft.json.schema.dll!Microsoft.Json.Schema.SchemaValidationException.Args": { - "name": "Args", - "parentKey": "microsoft.json.schema.dll!Microsoft.Json.Schema.SchemaValidationException", - "kind": "member" + { + "ruleId": "CA1307", + "level": "error", + "message": { + "text": "Because the behavior of 'string.StartsWith(string)' could vary based on the current user's locale settings, replace this call in 'StaticDriverVerifierConverter.ProcessLine(string, ref int, Result)' with a call to 'string.StartsWith(string, StringComparison)'. If the result of 'string.StartsWith(string, StringComparison)' will be displayed to the user, such as when sorting a list of items for display in a list box, specify 'StringComparison.CurrentCulture' or 'StringComparison.CurrentCultureIgnoreCase' as the 'StringComparison' parameter. If comparing case-insensitive identifiers, such as file paths, environment variables, or registry keys and values, specify 'StringComparison.OrdinalIgnoreCase'. Otherwise, if comparing case-sensitive identifiers, specify 'StringComparison.Ordinal'." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", + "uriBaseId": "$(ProjectDir)", + "index": 3 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/StaticDriverVerifierConverter.cs", + "index": 17 + }, + "region": { + "startLine": 235 + } + }, + "logicalLocations": [ + { + "index": 183, + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.StaticDriverVerifierConverter.ProcessLine(System.String,System.Int32&,Microsoft.CodeAnalysis.Sarif.Result)" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "System.String.StartsWith(System.String)" + }, + "properties": { + "Category": "Microsoft.Globalization", + "FixCategory": "NonBreaking" + } }, - "microsoft.json.schema.dll!Microsoft.Json.Schema.SchemaWriter": { - "name": "SchemaWriter", - "parentKey": "microsoft.json.schema.dll!Microsoft.Json.Schema", - "kind": "type" + { + "ruleId": "CA1801", + "message": { + "text": "FxCop results that have been suppressed do not contain a message string." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", + "uriBaseId": "$(ProjectDir)", + "index": 3 + } + }, + "logicalLocations": [ + { + "index": 185, + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.StringReference.Equals(System.Object,System.Object)" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "unusedA" + }, + "suppressions": [ + { + "kind": "inSource" + } + ], + "properties": { + "Category": "Microsoft.Usage", + "FixCategory": "NonBreaking" + } }, - "microsoft.json.schema.dll!Microsoft.Json.Schema.SchemaWriter.WriteSchema(Newtonsoft.Json.JsonWriter,Microsoft.Json.Schema.JsonSchema,Newtonsoft.Json.Formatting)": { - "name": "WriteSchema(Newtonsoft.Json.JsonWriter,Microsoft.Json.Schema.JsonSchema,Newtonsoft.Json.Formatting)", - "parentKey": "microsoft.json.schema.dll!Microsoft.Json.Schema.SchemaWriter", - "kind": "member" + { + "ruleId": "CA1801", + "message": { + "text": "FxCop results that have been suppressed do not contain a message string." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", + "uriBaseId": "$(ProjectDir)", + "index": 3 + } + }, + "logicalLocations": [ + { + "index": 185, + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.StringReference.Equals(System.Object,System.Object)" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "unusedB" + }, + "suppressions": [ + { + "kind": "inSource" + } + ], + "properties": { + "Category": "Microsoft.Usage", + "FixCategory": "NonBreaking" + } }, - "microsoft.json.schema.dll!Microsoft.Json.Schema.SchemaWriter.WriteSchema(System.IO.TextWriter,Microsoft.Json.Schema.JsonSchema,Newtonsoft.Json.Formatting)": { - "name": "WriteSchema(System.IO.TextWriter,Microsoft.Json.Schema.JsonSchema,Newtonsoft.Json.Formatting)", - "parentKey": "microsoft.json.schema.dll!Microsoft.Json.Schema.SchemaWriter", - "kind": "member" + { + "ruleId": "CA1307", + "level": "error", + "message": { + "text": "Because the behavior of 'string.LastIndexOf(string)' could vary based on the current user's locale settings, replace this call in 'ToolFileConverterBase.GetLogicalLocationName(string, string, string)' with a call to 'string.LastIndexOf(string, StringComparison)'. If the result of 'string.LastIndexOf(string, StringComparison)' will be displayed to the user, such as when sorting a list of items for display in a list box, specify 'StringComparison.CurrentCulture' or 'StringComparison.CurrentCultureIgnoreCase' as the 'StringComparison' parameter. If comparing case-insensitive identifiers, such as file paths, environment variables, or registry keys and values, specify 'StringComparison.OrdinalIgnoreCase'. Otherwise, if comparing case-sensitive identifiers, specify 'StringComparison.Ordinal'." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", + "uriBaseId": "$(ProjectDir)", + "index": 3 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/ToolFileConverterBase.cs", + "index": 18 + }, + "region": { + "startLine": 90 + } + }, + "logicalLocations": [ + { + "index": 187, + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.ToolFileConverterBase.GetLogicalLocationName(System.String,System.String,System.String)" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "System.String.LastIndexOf(System.String)" + }, + "properties": { + "Category": "Microsoft.Globalization", + "FixCategory": "NonBreaking" + } }, - "microsoft.json.schema.dll!Microsoft.Json.Schema.UriOrFragment": { - "name": "UriOrFragment", - "parentKey": "microsoft.json.schema.dll!Microsoft.Json.Schema", - "kind": "type" + { + "ruleId": "CA1704", + "message": { + "text": "Correct the spelling of 'Cpp' in member name 'ToolFormat.CppCheck' or remove it entirely if it represents any sort of Hungarian notation.", + "id": "Member" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", + "uriBaseId": "$(ProjectDir)", + "index": 3 + } + }, + "logicalLocations": [ + { + "index": 189, + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.ToolFormat.CppCheck" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "Cpp#Member" + }, + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" + } }, - "microsoft.json.schema.dll!Microsoft.Json.Schema.UriOrFragment..ctor(Microsoft.Json.Schema.UriOrFragment)": { - "name": ".ctor(Microsoft.Json.Schema.UriOrFragment)", - "parentKey": "microsoft.json.schema.dll!Microsoft.Json.Schema.UriOrFragment", - "kind": "member" + { + "ruleId": "CA1704", + "message": { + "text": "Correct the spelling of 'Fpr' in member name 'ToolFormat.FortifyFpr' or remove it entirely if it represents any sort of Hungarian notation.", + "id": "Member" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", + "uriBaseId": "$(ProjectDir)", + "index": 3 + } + }, + "logicalLocations": [ + { + "index": 190, + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.ToolFormat.FortifyFpr" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "Fpr#Member" + }, + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" + } }, - "microsoft.json.schema.dll!Microsoft.Json.Schema.UriOrFragment..ctor(System.String)": { - "name": ".ctor(System.String)", - "parentKey": "microsoft.json.schema.dll!Microsoft.Json.Schema.UriOrFragment", - "kind": "member" + { + "ruleId": "CA1704", + "message": { + "text": "Correct the spelling of 'Efast' in member name 'ToolFormat.PREfast' or remove it entirely if it represents any sort of Hungarian notation.", + "id": "Member" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", + "uriBaseId": "$(ProjectDir)", + "index": 3 + } + }, + "logicalLocations": [ + { + "index": 191, + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.ToolFormat.PREfast" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "Efast#Member" + }, + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" + } }, - "microsoft.json.schema.dll!Microsoft.Json.Schema.UriOrFragment.Equals(System.Object)": { - "name": "Equals(System.Object)", - "parentKey": "microsoft.json.schema.dll!Microsoft.Json.Schema.UriOrFragment", - "kind": "member" + { + "ruleId": "CA1704", + "message": { + "text": "Correct the spelling of 'Pylint' in member name 'ToolFormat.Pylint' or remove it entirely if it represents any sort of Hungarian notation.", + "id": "Member" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", + "uriBaseId": "$(ProjectDir)", + "index": 3 + } + }, + "logicalLocations": [ + { + "index": 192, + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.ToolFormat.Pylint" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "Pylint#Member" + }, + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" + } }, - "microsoft.json.schema.dll!Microsoft.Json.Schema.UriOrFragmentConverter": { - "name": "UriOrFragmentConverter", - "parentKey": "microsoft.json.schema.dll!Microsoft.Json.Schema", - "kind": "type" + { + "ruleId": "CA1704", + "message": { + "text": "Correct the spelling of 'Semmle' in member name 'ToolFormat.SemmleQL' or remove it entirely if it represents any sort of Hungarian notation.", + "id": "Member" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", + "uriBaseId": "$(ProjectDir)", + "index": 3 + } + }, + "logicalLocations": [ + { + "index": 193, + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.ToolFormat.SemmleQL" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "Semmle#Member" + }, + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" + } }, - "microsoft.json.schema.dll!Microsoft.Json.Schema.UriOrFragmentConverter.ReadJson(Newtonsoft.Json.JsonReader,System.Type,System.Object,Newtonsoft.Json.JsonSerializer)": { - "name": "ReadJson(Newtonsoft.Json.JsonReader,System.Type,System.Object,Newtonsoft.Json.JsonSerializer)", - "parentKey": "microsoft.json.schema.dll!Microsoft.Json.Schema.UriOrFragmentConverter", - "kind": "member" - }, - "microsoft.json.schema.dll!Microsoft.Json.Schema.UriOrFragmentConverter.WriteJson(Newtonsoft.Json.JsonWriter,System.Object,Newtonsoft.Json.JsonSerializer)": { - "name": "WriteJson(Newtonsoft.Json.JsonWriter,System.Object,Newtonsoft.Json.JsonSerializer)", - "parentKey": "microsoft.json.schema.dll!Microsoft.Json.Schema.UriOrFragmentConverter", - "kind": "member" + { + "ruleId": "CA1026", + "level": "error", + "message": { + "text": "Replace method 'ToolFormatConverter.ToolFormatConverter(AssemblyLoadFileDelegate)' with an overload that supplies all default arguments." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", + "uriBaseId": "$(ProjectDir)", + "index": 3 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/ToolFormatConverter.cs", + "index": 19 + }, + "region": { + "startLine": 19 + } + }, + "logicalLocations": [ + { + "index": 195, + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.ToolFormatConverter..ctor(Microsoft.CodeAnalysis.Sarif.Converters.AssemblyLoadFileDelegate)" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Design", + "FixCategory": "Breaking" + } }, - "microsoft.json.schema.dll!Microsoft.Json.Schema.UriOrFragmentExtensions": { - "name": "UriOrFragmentExtensions", - "parentKey": "microsoft.json.schema.dll!Microsoft.Json.Schema", - "kind": "type" + { + "ruleId": "CA1026", + "level": "error", + "message": { + "text": "Replace method 'ToolFormatConverter.ConvertToStandardFormat(string, Stream, IResultLogWriter, OptionallyEmittedData, string)' with an overload that supplies all default arguments." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", + "uriBaseId": "$(ProjectDir)", + "index": 3 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/ToolFormatConverter.cs", + "index": 19 + }, + "region": { + "startLine": 90 + } + }, + "logicalLocations": [ + { + "index": 196, + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.ToolFormatConverter.ConvertToStandardFormat(System.String,System.IO.Stream,Microsoft.CodeAnalysis.Sarif.IResultLogWriter,Microsoft.CodeAnalysis.Sarif.OptionallyEmittedData,System.String)" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Design", + "FixCategory": "Breaking" + } }, - "microsoft.json.schema.dll!Microsoft.Json.Schema.UriOrFragmentExtensions.GetDefinitionName(Microsoft.Json.Schema.UriOrFragment)": { - "name": "GetDefinitionName(Microsoft.Json.Schema.UriOrFragment)", - "parentKey": "microsoft.json.schema.dll!Microsoft.Json.Schema.UriOrFragmentExtensions", - "kind": "member" + { + "ruleId": "CA1026", + "level": "error", + "message": { + "text": "Replace method 'ToolFormatConverter.ConvertToStandardFormat(string, string, string, LoggingOptions, OptionallyEmittedData, string)' with an overload that supplies all default arguments." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", + "uriBaseId": "$(ProjectDir)", + "index": 3 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/ToolFormatConverter.cs", + "index": 19 + }, + "region": { + "startLine": 42 + } + }, + "logicalLocations": [ + { + "index": 197, + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.ToolFormatConverter.ConvertToStandardFormat(System.String,System.String,System.String,Microsoft.CodeAnalysis.Sarif.Writers.LoggingOptions,Microsoft.CodeAnalysis.Sarif.OptionallyEmittedData,System.String)" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Design", + "FixCategory": "Breaking" + } }, - "microsoft.json.schema.dll!Microsoft.Json.Schema.VersionConstants": { - "name": "VersionConstants", - "parentKey": "microsoft.json.schema.dll!Microsoft.Json.Schema", - "kind": "type" + { + "ruleId": "CA2202", + "message": { + "text": "Object 'outputTextStream' can be disposed more than once in method 'ToolFormatConverter.ConvertToStandardFormat(string, string, string, LoggingOptions, OptionallyEmittedData, string)'. To avoid generating a System.ObjectDisposedException you should not call Dispose more than one time on an object.: Lines: 72" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", + "uriBaseId": "$(ProjectDir)", + "index": 3 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/ToolFormatConverter.cs", + "index": 19 + }, + "region": { + "startLine": 72 + } + }, + "logicalLocations": [ + { + "index": 197, + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.ToolFormatConverter.ConvertToStandardFormat(System.String,System.String,System.String,Microsoft.CodeAnalysis.Sarif.Writers.LoggingOptions,Microsoft.CodeAnalysis.Sarif.OptionallyEmittedData,System.String)" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Usage", + "FixCategory": "DependsOnFix" + } }, - "microsoft.json.schema.dll!Microsoft.Json.Schema.VersionConstants.PreRelease": { - "name": "PreRelease", - "parentKey": "microsoft.json.schema.dll!Microsoft.Json.Schema.VersionConstants", - "kind": "member" + { + "ruleId": "CA2202", + "message": { + "text": "Object 'outputTextWriter' can be disposed more than once in method 'ToolFormatConverter.ConvertToStandardFormat(string, string, string, LoggingOptions, OptionallyEmittedData, string)'. To avoid generating a System.ObjectDisposedException you should not call Dispose more than one time on an object.: Lines: 72" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", + "uriBaseId": "$(ProjectDir)", + "index": 3 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/ToolFormatConverter.cs", + "index": 19 + }, + "region": { + "startLine": 72 + } + }, + "logicalLocations": [ + { + "index": 197, + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.ToolFormatConverter.ConvertToStandardFormat(System.String,System.String,System.String,Microsoft.CodeAnalysis.Sarif.Writers.LoggingOptions,Microsoft.CodeAnalysis.Sarif.OptionallyEmittedData,System.String)" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Usage", + "FixCategory": "DependsOnFix" + } }, - "microsoft.json.schema.validation.dll": { - "kind": "module" + { + "ruleId": "CA1822", + "message": { + "text": "The 'this' parameter (or 'Me' in Visual Basic) of 'TSLintConverter.CreateResult(TSLintLogEntry)' is never used. Mark the member as static (or Shared in Visual Basic) or use 'this'/'Me' in the method body or at least one property accessor, if appropriate." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", + "uriBaseId": "$(ProjectDir)", + "index": 3 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/TSLintConverter.cs", + "index": 20 + }, + "region": { + "startLine": 62 + } + }, + "logicalLocations": [ + { + "index": 199, + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.TSLintConverter.CreateResult(Microsoft.CodeAnalysis.Sarif.Converters.TSLintObjectModel.TSLintLogEntry)" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Performance", + "FixCategory": "NonBreaking" + } }, - "microsoft.json.schema.validation.dll!Microsoft.Json.Schema.Validation": { - "name": "Microsoft.Json.Schema.Validation", - "parentKey": "microsoft.json.schema.validation.dll", - "kind": "namespace" + { + "ruleId": "CA2201", + "level": "error", + "message": { + "text": "'TSLintLogReader.NormalizeEntries(JArray)' creates an exception of type 'Exception', an exception type that is not sufficiently specific and should never be raised by user code. If this exception instance might be thrown, use a different exception type.", + "id": "TooGeneric" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", + "uriBaseId": "$(ProjectDir)", + "index": 3 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/TSLintLogReader.cs", + "index": 21 + }, + "region": { + "startLine": 105 + } + }, + "logicalLocations": [ + { + "index": 201, + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.TSLintLogReader.NormalizeEntries(Newtonsoft.Json.Linq.JArray)" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "TooGeneric" + }, + "properties": { + "Category": "Microsoft.Usage", + "FixCategory": "Breaking" + } }, - "microsoft.json.schema.validation.dll!Microsoft.Json.Schema.Validation.JsonSyntaxErrorExceptionExtensions": { - "name": "JsonSyntaxErrorExceptionExtensions", - "parentKey": "microsoft.json.schema.validation.dll!Microsoft.Json.Schema.Validation", - "kind": "type" + { + "ruleId": "CA1822", + "message": { + "text": "The 'this' parameter (or 'Me' in Visual Basic) of 'TSLintLogReader.NormalizeEntries(JArray)' is never used. Mark the member as static (or Shared in Visual Basic) or use 'this'/'Me' in the method body or at least one property accessor, if appropriate." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", + "uriBaseId": "$(ProjectDir)", + "index": 3 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/TSLintLogReader.cs", + "index": 21 + }, + "region": { + "startLine": 95 + } + }, + "logicalLocations": [ + { + "index": 201, + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.TSLintLogReader.NormalizeEntries(Newtonsoft.Json.Linq.JArray)" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Performance", + "FixCategory": "NonBreaking" + } }, - "microsoft.json.schema.validation.dll!Microsoft.Json.Schema.Validation.JsonSyntaxErrorExceptionExtensions.ToSarifResult(Microsoft.Json.Schema.JsonSyntaxException)": { - "name": "ToSarifResult(Microsoft.Json.Schema.JsonSyntaxException)", - "parentKey": "microsoft.json.schema.validation.dll!Microsoft.Json.Schema.Validation.JsonSyntaxErrorExceptionExtensions", - "kind": "member" + { + "ruleId": "CA2201", + "level": "error", + "message": { + "text": "'TSLintLogReader.NormalizeFixProperty(JProperty)' creates an exception of type 'Exception', an exception type that is not sufficiently specific and should never be raised by user code. If this exception instance might be thrown, use a different exception type.", + "id": "TooGeneric" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", + "uriBaseId": "$(ProjectDir)", + "index": 3 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/TSLintLogReader.cs", + "index": 21 + }, + "region": { + "startLine": 143 + } + }, + "logicalLocations": [ + { + "index": 202, + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.TSLintLogReader.NormalizeFixProperty(Newtonsoft.Json.Linq.JProperty)" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "TooGeneric" + }, + "properties": { + "Category": "Microsoft.Usage", + "FixCategory": "Breaking" + } }, - "microsoft.json.schema.validation.dll!Microsoft.Json.Schema.Validation.JTokenEqualityComparer": { - "name": "JTokenEqualityComparer", - "parentKey": "microsoft.json.schema.validation.dll!Microsoft.Json.Schema.Validation", - "kind": "type" + { + "ruleId": "CA2201", + "level": "error", + "message": { + "text": "'TSLintLogReader.NormalizeLog(JToken)' creates an exception of type 'Exception', an exception type that is not sufficiently specific and should never be raised by user code. If this exception instance might be thrown, use a different exception type.", + "id": "TooGeneric" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", + "uriBaseId": "$(ProjectDir)", + "index": 3 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/TSLintLogReader.cs", + "index": 21 + }, + "region": { + "startLine": 84 + } + }, + "logicalLocations": [ + { + "index": 203, + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.TSLintLogReader.NormalizeLog(Newtonsoft.Json.Linq.JToken)" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "TooGeneric" + }, + "properties": { + "Category": "Microsoft.Usage", + "FixCategory": "Breaking" + } }, - "microsoft.json.schema.validation.dll!Microsoft.Json.Schema.Validation.JTokenEqualityComparer.NullEquals(System.Object)": { - "name": "NullEquals(System.Object)", - "parentKey": "microsoft.json.schema.validation.dll!Microsoft.Json.Schema.Validation.JTokenEqualityComparer", - "kind": "member" - }, - "microsoft.json.schema.validation.dll!Microsoft.Json.Schema.Validation.ResultFactory": { - "name": "ResultFactory", - "parentKey": "microsoft.json.schema.validation.dll!Microsoft.Json.Schema.Validation", - "kind": "type" - }, - "microsoft.json.schema.validation.dll!Microsoft.Json.Schema.Validation.ResultFactory.CreateResult(Newtonsoft.Json.Linq.JToken,Microsoft.Json.Schema.ErrorNumber,System.Object[])": { - "name": "CreateResult(Newtonsoft.Json.Linq.JToken,Microsoft.Json.Schema.ErrorNumber,System.Object[])", - "parentKey": "microsoft.json.schema.validation.dll!Microsoft.Json.Schema.Validation.ResultFactory", - "kind": "member" - }, - "microsoft.json.schema.validation.dll!Microsoft.Json.Schema.Validation.RuleExtensions": { - "name": "RuleExtensions", - "parentKey": "microsoft.json.schema.validation.dll!Microsoft.Json.Schema.Validation", - "kind": "type" + { + "ruleId": "CA2202", + "message": { + "text": "Object 'streamReader' can be disposed more than once in method 'TSLintLogReader.ReadLog(Stream)'. To avoid generating a System.ObjectDisposedException you should not call Dispose more than one time on an object.: Lines: 38" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", + "uriBaseId": "$(ProjectDir)", + "index": 3 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/TSLintLogReader.cs", + "index": 21 + }, + "region": { + "startLine": 38 + } + }, + "logicalLocations": [ + { + "index": 204, + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.TSLintLogReader.ReadLog(System.IO.Stream)" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Usage", + "FixCategory": "DependsOnFix" + } }, - "microsoft.json.schema.validation.dll!Microsoft.Json.Schema.Validation.RuleExtensions.SetResultFile(Microsoft.CodeAnalysis.Sarif.Result,System.String)": { - "name": "SetResultFile(Microsoft.CodeAnalysis.Sarif.Result,System.String)", - "parentKey": "microsoft.json.schema.validation.dll!Microsoft.Json.Schema.Validation.RuleExtensions", - "kind": "member" + { + "ruleId": "CA2202", + "message": { + "text": "Object 'this' can be disposed more than once in method 'TSLintLogReader.ReadLog(Stream)'. To avoid generating a System.ObjectDisposedException you should not call Dispose more than one time on an object.: Lines: 38" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", + "uriBaseId": "$(ProjectDir)", + "index": 3 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/TSLintLogReader.cs", + "index": 21 + }, + "region": { + "startLine": 38 + } + }, + "logicalLocations": [ + { + "index": 204, + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.TSLintLogReader.ReadLog(System.IO.Stream)" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Usage", + "FixCategory": "DependsOnFix" + } }, - "microsoft.json.schema.validation.dll!Microsoft.Json.Schema.Validation.RuleFactory": { - "name": "RuleFactory", - "parentKey": "microsoft.json.schema.validation.dll!Microsoft.Json.Schema.Validation", - "kind": "type" + { + "ruleId": "CA1002", + "level": "error", + "message": { + "text": "Change 'TSLintLog' in 'TSLintLogReader.ReadLog(Stream)' to use Collection, ReadOnlyCollection or KeyedCollection" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", + "uriBaseId": "$(ProjectDir)", + "index": 3 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/TSLintLogReader.cs", + "index": 21 + }, + "region": { + "startLine": 27 + } + }, + "logicalLocations": [ + { + "index": 204, + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.TSLintLogReader.ReadLog(System.IO.Stream)" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Design", + "FixCategory": "Breaking" + } }, - "microsoft.json.schema.validation.dll!Microsoft.Json.Schema.Validation.RuleFactory.ErrorCodeFormat": { - "name": "ErrorCodeFormat", - "parentKey": "microsoft.json.schema.validation.dll!Microsoft.Json.Schema.Validation.RuleFactory", - "kind": "member" + { + "ruleId": "CA1710", + "level": "error", + "message": { + "text": "Rename 'Category' to end in 'Dictionary'." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", + "uriBaseId": "$(ProjectDir)", + "index": 3 + } + }, + "logicalLocations": [ + { + "index": 206, + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.PREFastObjectModel.Category" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" + } }, - "microsoft.json.schema.validation.dll!Microsoft.Json.Schema.Validation.RuleFactory.GetRuleFromRuleId(System.String)": { - "name": "GetRuleFromRuleId(System.String)", - "parentKey": "microsoft.json.schema.validation.dll!Microsoft.Json.Schema.Validation.RuleFactory", - "kind": "member" + { + "ruleId": "CA2237", + "message": { + "text": "Add [Serializable] to 'Category' as this type implements ISerializable." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", + "uriBaseId": "$(ProjectDir)", + "index": 3 + } + }, + "logicalLocations": [ + { + "index": 206, + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.PREFastObjectModel.Category" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Usage", + "FixCategory": "NonBreaking" + } }, - "microsoft.json.schema.validation.dll!Microsoft.Json.Schema.Validation.RuleResources": { - "name": "RuleResources", - "parentKey": "microsoft.json.schema.validation.dll!Microsoft.Json.Schema.Validation", - "kind": "type" + { + "ruleId": "CA1062", + "message": { + "text": "In externally visible method 'Category.ReadXml(XmlReader)', validate parameter 'reader' before using it." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", + "uriBaseId": "$(ProjectDir)", + "index": 3 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/PREFastObjectModel/Category.cs", + "index": 22 + }, + "region": { + "startLine": 19 + } + }, + "logicalLocations": [ + { + "index": 207, + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.PREFastObjectModel.Category.ReadXml(System.Xml.XmlReader)" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "0" + }, + "properties": { + "Category": "Microsoft.Design", + "FixCategory": "DependsOnFix" + } }, - "microsoft.json.schema.validation.dll!Microsoft.Json.Schema.Validation.Validator": { - "name": "Validator", - "parentKey": "microsoft.json.schema.validation.dll!Microsoft.Json.Schema.Validation", - "kind": "type" + { + "ruleId": "CA2227", + "message": { + "text": "Change 'Defect.Category' to be read-only by removing the property setter." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", + "uriBaseId": "$(ProjectDir)", + "index": 3 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/PREFastObjectModel/Defect.cs", + "index": 23 + }, + "region": { + "startLine": 35 + } + }, + "logicalLocations": [ + { + "index": 209, + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.PREFastObjectModel.Defect.Category" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Usage", + "FixCategory": "Breaking" + } }, - "microsoft.json.schema.validation.dll!Microsoft.Json.Schema.Validation.Validator.FormatBoolean(System.String)": { - "name": "FormatBoolean(System.String)", - "parentKey": "microsoft.json.schema.validation.dll!Microsoft.Json.Schema.Validation.Validator", - "kind": "member" + { + "ruleId": "CA1704", + "message": { + "text": "Correct the spelling of 'Funcline' in member name 'Defect.Funcline' or remove it entirely if it represents any sort of Hungarian notation.", + "id": "Member" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", + "uriBaseId": "$(ProjectDir)", + "index": 3 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/PREFastObjectModel/Defect.cs", + "index": 23 + }, + "region": { + "startLine": 23 + } + }, + "logicalLocations": [ + { + "index": 210, + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.PREFastObjectModel.Defect.Funcline" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "Funcline#Member" + }, + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" + } }, - "microsoft.json.schema.validation.dll!Microsoft.Json.Schema.Validation.Validator.FormatObject(System.Object)": { - "name": "FormatObject(System.Object)", - "parentKey": "microsoft.json.schema.validation.dll!Microsoft.Json.Schema.Validation.Validator", - "kind": "member" + { + "ruleId": "CA1709", + "level": "error", + "message": { + "text": "Correct the casing of 'SFA' in member name 'Defect.SFA' by changing it to 'Sfa'.", + "id": "Member" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", + "uriBaseId": "$(ProjectDir)", + "index": 3 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/PREFastObjectModel/Defect.cs", + "index": 23 + }, + "region": { + "startLine": 8 + } + }, + "logicalLocations": [ + { + "index": 211, + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.PREFastObjectModel.Defect.SFA" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "SFA#Member" + }, + "properties": { + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" + } }, - "microsoft.json.schema.validation.dll!Microsoft.Json.Schema.Validation.Validator.GetPropertyNames(Newtonsoft.Json.Linq.JObject)": { - "name": "GetPropertyNames(Newtonsoft.Json.Linq.JObject)", - "parentKey": "microsoft.json.schema.validation.dll!Microsoft.Json.Schema.Validation.Validator", - "kind": "member" + { + "ruleId": "CA2227", + "message": { + "text": "Change 'DefectList.Defects' to be read-only by removing the property setter." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", + "uriBaseId": "$(ProjectDir)", + "index": 3 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/PREFastObjectModel/DefectList.cs", + "index": 24 + }, + "region": { + "startLine": 10 + } + }, + "logicalLocations": [ + { + "index": 213, + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.PREFastObjectModel.DefectList.Defects" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Usage", + "FixCategory": "Breaking" + } }, - "microsoft.json.schema.validation.dll!Microsoft.Json.Schema.Validation.Validator.TokenMatchesEnum(Newtonsoft.Json.Linq.JToken,System.Collections.Generic.IList`1)": { - "name": "TokenMatchesEnum(Newtonsoft.Json.Linq.JToken,System.Collections.Generic.IList`1)", - "parentKey": "microsoft.json.schema.validation.dll!Microsoft.Json.Schema.Validation.Validator", - "kind": "member" - }, - "microsoft.json.schema.validation.dll!Microsoft.Json.Schema.Validation.Validator.UnicodeLength(System.String)": { - "name": "UnicodeLength(System.String)", - "parentKey": "microsoft.json.schema.validation.dll!Microsoft.Json.Schema.Validation.Validator", - "kind": "member" - }, - "microsoft.json.schema.validation.dll!Microsoft.Json.Schema.Validation.Validator.ValidateAdditionalProperties(Newtonsoft.Json.Linq.JObject,System.Collections.Generic.List`1,Microsoft.Json.Schema.AdditionalProperties)": { - "name": "ValidateAdditionalProperties(Newtonsoft.Json.Linq.JObject,System.Collections.Generic.List`1,Microsoft.Json.Schema.AdditionalProperties)", - "parentKey": "microsoft.json.schema.validation.dll!Microsoft.Json.Schema.Validation.Validator", - "kind": "member" - }, - "microsoft.json.schema.validation.dll!Microsoft.Json.Schema.Validation.Validator.ValidateToken(Newtonsoft.Json.Linq.JToken,Microsoft.Json.Schema.JsonSchema)": { - "name": "ValidateToken(Newtonsoft.Json.Linq.JToken,Microsoft.Json.Schema.JsonSchema)", - "parentKey": "microsoft.json.schema.validation.dll!Microsoft.Json.Schema.Validation.Validator", - "kind": "member" - }, - "microsoft.json.schema.validation.dll!Microsoft.Json.Schema.Validation.VersionConstants": { - "name": "VersionConstants", - "parentKey": "microsoft.json.schema.validation.dll!Microsoft.Json.Schema.Validation", - "kind": "type" + { + "ruleId": "CA1002", + "level": "error", + "message": { + "text": "Change 'List' in 'DefectList.Defects' to use Collection, ReadOnlyCollection or KeyedCollection" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", + "uriBaseId": "$(ProjectDir)", + "index": 3 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/PREFastObjectModel/DefectList.cs", + "index": 24 + }, + "region": { + "startLine": 10 + } + }, + "logicalLocations": [ + { + "index": 213, + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.PREFastObjectModel.DefectList.Defects" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Design", + "FixCategory": "Breaking" + } }, - "microsoft.json.schema.validation.dll!Microsoft.Json.Schema.Validation.VersionConstants.PreRelease": { - "name": "PreRelease", - "parentKey": "microsoft.json.schema.validation.dll!Microsoft.Json.Schema.Validation.VersionConstants", - "kind": "member" + { + "ruleId": "CA1709", + "level": "error", + "message": { + "text": "Correct the casing of 'PRE' in type name 'PREFastPath' by changing it to 'Pre'.", + "id": "Type" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", + "uriBaseId": "$(ProjectDir)", + "index": 3 + } + }, + "logicalLocations": [ + { + "index": 214, + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.PREFastObjectModel.PREFastPath" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "PRE#Type" + }, + "properties": { + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" + } }, - "sarif.converters.dll": { - "kind": "module" + { + "ruleId": "CA2227", + "message": { + "text": "Change 'PREFastPath.SFAs' to be read-only by removing the property setter." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", + "uriBaseId": "$(ProjectDir)", + "index": 3 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/PREFastObjectModel/PREFastPath.cs", + "index": 25 + }, + "region": { + "startLine": 9 + } + }, + "logicalLocations": [ + { + "index": 215, + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.PREFastObjectModel.PREFastPath.SFAs" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Usage", + "FixCategory": "Breaking" + } }, - "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters": { - "name": "Microsoft.CodeAnalysis.Sarif.Converters", - "parentKey": "sarif.converters.dll", - "kind": "namespace" + { + "ruleId": "CA1002", + "level": "error", + "message": { + "text": "Change 'List' in 'PREFastPath.SFAs' to use Collection, ReadOnlyCollection or KeyedCollection" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", + "uriBaseId": "$(ProjectDir)", + "index": 3 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/PREFastObjectModel/PREFastPath.cs", + "index": 25 + }, + "region": { + "startLine": 9 + } + }, + "logicalLocations": [ + { + "index": 215, + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.PREFastObjectModel.PREFastPath.SFAs" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Design", + "FixCategory": "Breaking" + } }, - "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.AndroidStudioConverter": { - "name": "AndroidStudioConverter", - "parentKey": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters", - "kind": "type" + { + "ruleId": "CA1709", + "level": "error", + "message": { + "text": "Correct the casing of 'SFAs' in member name 'PREFastPath.SFAs' by changing it to 'Sfas'.", + "id": "Member" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", + "uriBaseId": "$(ProjectDir)", + "index": 3 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/PREFastObjectModel/PREFastPath.cs", + "index": 25 + }, + "region": { + "startLine": 9 + } + }, + "logicalLocations": [ + { + "index": 215, + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.PREFastObjectModel.PREFastPath.SFAs" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "SFAs#Member" + }, + "properties": { + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" + } }, - "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.AndroidStudioConverter.Convert(System.IO.Stream,Microsoft.CodeAnalysis.Sarif.IResultLogWriter,Microsoft.CodeAnalysis.Sarif.OptionallyEmittedData)": { - "name": "Convert(System.IO.Stream,Microsoft.CodeAnalysis.Sarif.IResultLogWriter,Microsoft.CodeAnalysis.Sarif.OptionallyEmittedData)", - "parentKey": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.AndroidStudioConverter", - "kind": "member" + { + "ruleId": "CA1709", + "level": "error", + "message": { + "text": "Correct the casing of 'SFA' in type name 'SFA' by changing it to 'Sfa'.", + "id": "Type" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", + "uriBaseId": "$(ProjectDir)", + "index": 3 + } + }, + "logicalLocations": [ + { + "index": 216, + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.PREFastObjectModel.SFA" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "SFA#Type" + }, + "properties": { + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" + } }, - "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.AssemblyLoadFileDelegate": { - "name": "AssemblyLoadFileDelegate", - "parentKey": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters", - "kind": "type" + { + "ruleId": "CA1704", + "message": { + "text": "Correct the spelling of 'Pylint' in type name 'PylintLog'.", + "id": "Type" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", + "uriBaseId": "$(ProjectDir)", + "index": 3 + } + }, + "logicalLocations": [ + { + "index": 218, + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.PylintObjectModel.PylintLog" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "Pylint#Type" + }, + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" + } }, - "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.ClangAnalyzerConverter": { - "name": "ClangAnalyzerConverter", - "parentKey": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters", - "kind": "type" + { + "ruleId": "CA1710", + "level": "error", + "message": { + "text": "Rename 'PylintLog' to end in 'Collection'." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", + "uriBaseId": "$(ProjectDir)", + "index": 3 + } + }, + "logicalLocations": [ + { + "index": 218, + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.PylintObjectModel.PylintLog" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" + } }, - "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.ClangAnalyzerConverter.Convert(System.IO.Stream,Microsoft.CodeAnalysis.Sarif.IResultLogWriter,Microsoft.CodeAnalysis.Sarif.OptionallyEmittedData)": { - "name": "Convert(System.IO.Stream,Microsoft.CodeAnalysis.Sarif.IResultLogWriter,Microsoft.CodeAnalysis.Sarif.OptionallyEmittedData)", - "parentKey": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.ClangAnalyzerConverter", - "kind": "member" + { + "ruleId": "CA1704", + "message": { + "text": "Correct the spelling of 'Pylint' in type name 'PylintLogEntry'.", + "id": "Type" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", + "uriBaseId": "$(ProjectDir)", + "index": 3 + } + }, + "logicalLocations": [ + { + "index": 219, + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.PylintObjectModel.PylintLogEntry" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "Pylint#Type" + }, + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" + } }, - "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.ClangAnalyzerConverter.ReadDictionary(System.Xml.XmlReader)": { - "name": "ReadDictionary(System.Xml.XmlReader)", - "parentKey": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.ClangAnalyzerConverter", - "kind": "member" + { + "ruleId": "CA1721", + "level": "error", + "message": { + "text": "The property name 'PylintLogEntry.Type' is confusing given the existence of inherited method 'object.GetType()'. Rename or remove this property.", + "id": "BaseType" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", + "uriBaseId": "$(ProjectDir)", + "index": 3 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/PylintObjectModel/PylintLogEntry.cs", + "index": 26 + }, + "region": { + "startLine": 11 + } + }, + "logicalLocations": [ + { + "index": 220, + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.PylintObjectModel.PylintLogEntry.Type" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "BaseType" + }, + "properties": { + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" + } }, - "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.ConverterResources": { - "name": "ConverterResources", - "parentKey": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters", - "kind": "type" - }, - "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.ConverterResources..ctor()": { - "name": ".ctor()", - "parentKey": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.ConverterResources", - "kind": "member" - }, - "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.CppCheckConverter": { - "name": "CppCheckConverter", - "parentKey": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters", - "kind": "type" - }, - "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.CppCheckConverter.Convert(System.IO.Stream,Microsoft.CodeAnalysis.Sarif.IResultLogWriter,Microsoft.CodeAnalysis.Sarif.OptionallyEmittedData)": { - "name": "Convert(System.IO.Stream,Microsoft.CodeAnalysis.Sarif.IResultLogWriter,Microsoft.CodeAnalysis.Sarif.OptionallyEmittedData)", - "parentKey": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.CppCheckConverter", - "kind": "member" - }, - "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.Extensions": { - "name": "Extensions", - "parentKey": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters", - "kind": "type" - }, - "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.Extensions.HasDefaultConstructor(System.Type)": { - "name": "HasDefaultConstructor(System.Type)", - "parentKey": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.Extensions", - "kind": "member" - }, - "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.Extensions.MatchesToolFormat(System.String,System.String)": { - "name": "MatchesToolFormat(System.String,System.String)", - "parentKey": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.Extensions", - "kind": "member" + { + "ruleId": "CA1704", + "message": { + "text": "Correct the spelling of 'Pylint' in type name 'PylintLogReader'.", + "id": "Type" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", + "uriBaseId": "$(ProjectDir)", + "index": 3 + } + }, + "logicalLocations": [ + { + "index": 221, + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.PylintObjectModel.PylintLogReader" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "Pylint#Type" + }, + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" + } }, - "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.FortifyConverter": { - "name": "FortifyConverter", - "parentKey": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters", - "kind": "type" + { + "ruleId": "CA1002", + "level": "error", + "message": { + "text": "Change 'PylintLog' in 'PylintLogReader.ReadLog(Stream)' to use Collection, ReadOnlyCollection or KeyedCollection" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", + "uriBaseId": "$(ProjectDir)", + "index": 3 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/PylintObjectModel/PylintLogReader.cs", + "index": 27 + }, + "region": { + "startLine": 12 + } + }, + "logicalLocations": [ + { + "index": 222, + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.PylintObjectModel.PylintLogReader.ReadLog(System.IO.Stream)" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Design", + "FixCategory": "Breaking" + } }, - "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.FortifyConverter.Convert(System.IO.Stream,Microsoft.CodeAnalysis.Sarif.IResultLogWriter,Microsoft.CodeAnalysis.Sarif.OptionallyEmittedData)": { - "name": "Convert(System.IO.Stream,Microsoft.CodeAnalysis.Sarif.IResultLogWriter,Microsoft.CodeAnalysis.Sarif.OptionallyEmittedData)", - "parentKey": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.FortifyConverter", - "kind": "member" + { + "ruleId": "CA1710", + "level": "error", + "message": { + "text": "Rename 'TSLintLog' to end in 'Collection'." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", + "uriBaseId": "$(ProjectDir)", + "index": 3 + } + }, + "logicalLocations": [ + { + "index": 224, + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.TSLintObjectModel.TSLintLog" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" + } }, - "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.FortifyFprConverter": { - "name": "FortifyFprConverter", - "parentKey": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters", - "kind": "type" + { + "ruleId": "CA2227", + "message": { + "text": "Change 'TSLintLogEntry.Fixes' to be read-only by removing the property setter." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", + "uriBaseId": "$(ProjectDir)", + "index": 3 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/TSLintObjectModel/TSLintLogEntry.cs", + "index": 28 + }, + "region": { + "startLine": 31 + } + }, + "logicalLocations": [ + { + "index": 226, + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.TSLintObjectModel.TSLintLogEntry.Fixes" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Usage", + "FixCategory": "Breaking" + } }, - "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.FortifyFprConverter.AddMessagesToResults()": { - "name": "AddMessagesToResults()", - "parentKey": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.FortifyFprConverter", - "kind": "member" + { + "ruleId": "CA1703", + "message": { + "text": "In resource 'Microsoft.CodeAnalysis.Sarif.Converters.ConverterResources.resx', referenced by name 'CppCheckCppCheckElementMissing', correct the spelling of 'Cpp' in string value 'CppCheck file did not start with \"results/cppcheck\" element with version information.'.", + "id": "StringResource" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", + "uriBaseId": "$(ProjectDir)", + "index": 3 + } + }, + "logicalLocations": [ + { + "index": 227, + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.ConverterResources.resources" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "Cpp#StringResource" + }, + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Naming", + "FixCategory": "NonBreaking" + } }, - "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.FortifyFprConverter.ParseAuditStream(System.IO.Stream)": { - "name": "ParseAuditStream(System.IO.Stream)", - "parentKey": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.FortifyFprConverter", - "kind": "member" + { + "ruleId": "CA1703", + "message": { + "text": "In resource 'Microsoft.CodeAnalysis.Sarif.Converters.ConverterResources.resx', referenced by name 'CppCheckElementNotError', correct the spelling of 'Cpp' in string value 'Could not parse CppCheck error node; element name was not error.'.", + "id": "StringResource" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", + "uriBaseId": "$(ProjectDir)", + "index": 3 + } + }, + "logicalLocations": [ + { + "index": 227, + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.ConverterResources.resources" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "Cpp#StringResource" + }, + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Naming", + "FixCategory": "NonBreaking" + } }, - "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.FortifyFprConverter.ParseFile()": { - "name": "ParseFile()", - "parentKey": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.FortifyFprConverter", - "kind": "member" + { + "ruleId": "CA1703", + "message": { + "text": "In resource 'Microsoft.CodeAnalysis.Sarif.Converters.ConverterResources.resx', referenced by name 'CppCheckErrorsElementMissing', correct the spelling of 'Cpp' in string value 'CppCheck file did not contain the errors element in the expected location.'.", + "id": "StringResource" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", + "uriBaseId": "$(ProjectDir)", + "index": 3 + } + }, + "logicalLocations": [ + { + "index": 227, + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.ConverterResources.resources" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "Cpp#StringResource" + }, + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Naming", + "FixCategory": "NonBreaking" + } }, - "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.FortifyFprConverter.ParseRegion()": { - "name": "ParseRegion()", - "parentKey": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.FortifyFprConverter", - "kind": "member" + { + "ruleId": "CA1703", + "message": { + "text": "In resource 'Microsoft.CodeAnalysis.Sarif.Converters.ConverterResources.resx', referenced by name 'CppCheckLocationElementNameIncorrect', correct the spelling of 'Cpp' in string value 'Could not parse CppCheck location node; element name was not 'location'.'.", + "id": "StringResource" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", + "uriBaseId": "$(ProjectDir)", + "index": 3 + } + }, + "logicalLocations": [ + { + "index": 227, + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.ConverterResources.resources" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "Cpp#StringResource" + }, + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Naming", + "FixCategory": "NonBreaking" + } }, - "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.FortifyFprConverter.ParseSnippet()": { - "name": "ParseSnippet()", - "parentKey": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.FortifyFprConverter", - "kind": "member" + { + "ruleId": "CA1703", + "message": { + "text": "In resource 'Microsoft.CodeAnalysis.Sarif.Converters.ConverterResources.resx', referenced by name 'CppCheckLocationMissingLine', correct the spelling of 'Cpp' in string value 'The `line` attribute for a CppCheck was not set.'.", + "id": "StringResource" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", + "uriBaseId": "$(ProjectDir)", + "index": 3 + } + }, + "logicalLocations": [ + { + "index": 227, + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.ConverterResources.resources" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "Cpp#StringResource" + }, + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Naming", + "FixCategory": "NonBreaking" + } }, - "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.FxCopConverter": { - "name": "FxCopConverter", - "parentKey": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters", - "kind": "type" + { + "ruleId": "CA1703", + "message": { + "text": "In resource 'Microsoft.CodeAnalysis.Sarif.Converters.ConverterResources.resx', referenced by name 'CppCheckLocationMissingName', correct the spelling of 'Cpp' in string value 'The `file` attribute for a CppCheck was not set.'.", + "id": "StringResource" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", + "uriBaseId": "$(ProjectDir)", + "index": 3 + } + }, + "logicalLocations": [ + { + "index": 227, + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.ConverterResources.resources" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "Cpp#StringResource" + }, + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Naming", + "FixCategory": "NonBreaking" + } }, - "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.FxCopConverter.BuildFileLocationFromFxCopReference(System.String)": { - "name": "BuildFileLocationFromFxCopReference(System.String)", - "parentKey": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.FxCopConverter", - "kind": "member" - }, - "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.FxCopConverter.CreateRule(Microsoft.CodeAnalysis.Sarif.Converters.FxCopLogReader+Context)": { - "name": "CreateRule(Microsoft.CodeAnalysis.Sarif.Converters.FxCopLogReader+Context)", - "parentKey": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.FxCopConverter", - "kind": "member" - }, - "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.FxCopLogReader": { - "name": "FxCopLogReader", - "parentKey": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters", - "kind": "type" - }, - "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.FxCopLogReader.Read(Microsoft.CodeAnalysis.Sarif.Converters.FxCopLogReader+Context,System.IO.Stream)": { - "name": "Read(Microsoft.CodeAnalysis.Sarif.Converters.FxCopLogReader+Context,System.IO.Stream)", - "parentKey": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.FxCopLogReader", - "kind": "member" - }, - "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.LogReader`1": { - "name": "LogReader`1", - "parentKey": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters", - "kind": "type" - }, - "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.LogReader`1.ReadLog(System.String,System.Text.Encoding)": { - "name": "ReadLog(System.String,System.Text.Encoding)", - "parentKey": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.LogReader`1", - "kind": "member" - }, - "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.PluginConverterFactory": { - "name": "PluginConverterFactory", - "parentKey": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters", - "kind": "type" + { + "ruleId": "CA1703", + "message": { + "text": "In resource 'Microsoft.CodeAnalysis.Sarif.Converters.ConverterResources.resx', referenced by name 'CppCheckLocationNameEmpty', correct the spelling of 'Cpp' in string value 'The `file` value for a CppCheckLocation was empty.'.", + "id": "StringResource" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", + "uriBaseId": "$(ProjectDir)", + "index": 3 + } + }, + "logicalLocations": [ + { + "index": 227, + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.ConverterResources.resources" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "Cpp#StringResource" + }, + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Naming", + "FixCategory": "NonBreaking" + } }, - "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.PluginConverterFactory.CreateConverterCore(System.String)": { - "name": "CreateConverterCore(System.String)", - "parentKey": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.PluginConverterFactory", - "kind": "member" + { + "ruleId": "CA1703", + "message": { + "text": "In resource 'Microsoft.CodeAnalysis.Sarif.Converters.ConverterResources.resx', referenced by name 'CppCheckLocationNegativeLine', correct the spelling of 'Cpp' in string value 'The `line` value for a CppCheckLocation must be positive.'.", + "id": "StringResource" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", + "uriBaseId": "$(ProjectDir)", + "index": 3 + } + }, + "logicalLocations": [ + { + "index": 227, + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.ConverterResources.resources" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "Cpp#StringResource" + }, + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Naming", + "FixCategory": "NonBreaking" + } }, - "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.PREfastConverter": { - "name": "PREfastConverter", - "parentKey": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters", - "kind": "type" + { + "ruleId": "CA1703", + "message": { + "text": "In resource 'Microsoft.CodeAnalysis.Sarif.Converters.ConverterResources.resx', referenced by name 'CppCheckMissingLocation', correct the spelling of 'Cpp' in string value 'A CppCheck entry must have a nonzero number of locations.'.", + "id": "StringResource" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", + "uriBaseId": "$(ProjectDir)", + "index": 3 + } + }, + "logicalLocations": [ + { + "index": 227, + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.ConverterResources.resources" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "Cpp#StringResource" + }, + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Naming", + "FixCategory": "NonBreaking" + } }, - "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.PREfastConverter.Convert(System.IO.Stream,Microsoft.CodeAnalysis.Sarif.IResultLogWriter,Microsoft.CodeAnalysis.Sarif.OptionallyEmittedData)": { - "name": "Convert(System.IO.Stream,Microsoft.CodeAnalysis.Sarif.IResultLogWriter,Microsoft.CodeAnalysis.Sarif.OptionallyEmittedData)", - "parentKey": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.PREfastConverter", - "kind": "member" + { + "ruleId": "CA1703", + "message": { + "text": "In resource 'Microsoft.CodeAnalysis.Sarif.Converters.ConverterResources.resx', referenced by name 'CppCheckCppCheckElementMissing', correct the spelling of 'cppcheck' in string value 'CppCheck file did not start with \"results/cppcheck\" element with version information.'.", + "id": "StringResource" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", + "uriBaseId": "$(ProjectDir)", + "index": 3 + } + }, + "logicalLocations": [ + { + "index": 227, + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.ConverterResources.resources" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "cppcheck#StringResource" + }, + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Naming", + "FixCategory": "NonBreaking" + } }, - "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.PREfastConverter.CreateResult(Microsoft.CodeAnalysis.Sarif.Converters.PREFastObjectModel.Defect)": { - "name": "CreateResult(Microsoft.CodeAnalysis.Sarif.Converters.PREFastObjectModel.Defect)", - "parentKey": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.PREfastConverter", - "kind": "member" + { + "ruleId": "CA2243", + "message": { + "text": "In the constructor of 'AssemblyInformationalVersionAttribute', change the value of argument 'informationalVersion', which is currently \"2.0.0-csd.1.0.1\", to something that can be correctly parsed as 'Version'." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + } + }, + "logicalLocations": [ + { + "index": 228, + "fullyQualifiedName": "sarif.dll" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Usage", + "FixCategory": "NonBreaking" + } }, - "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.PREfastConverter.GenerateCodeFlows(Microsoft.CodeAnalysis.Sarif.Converters.PREFastObjectModel.Defect,Microsoft.CodeAnalysis.Sarif.Result)": { - "name": "GenerateCodeFlows(Microsoft.CodeAnalysis.Sarif.Converters.PREFastObjectModel.Defect,Microsoft.CodeAnalysis.Sarif.Result)", - "parentKey": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.PREfastConverter", - "kind": "member" + { + "ruleId": "CA1704", + "message": { + "text": "Correct the spelling of 'Sarif' in assembly name 'Sarif.dll'.", + "id": "Assembly" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + } + }, + "logicalLocations": [ + { + "index": 228, + "fullyQualifiedName": "sarif.dll" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "Sarif#Assembly" + }, + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" + } }, - "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.PREfastConverter.RemovePREfastNewLine(System.String)": { - "name": "RemovePREfastNewLine(System.String)", - "parentKey": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.PREfastConverter", - "kind": "member" + { + "ruleId": "CA2227", + "message": { + "text": "Change 'Attachment.Rectangles' to be read-only by removing the property setter." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/Attachment.cs", + "index": 30 + }, + "region": { + "startLine": 56 + } + }, + "logicalLocations": [ + { + "index": 231, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Attachment.Rectangles" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Usage", + "FixCategory": "Breaking" + } }, - "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.PREfastConverter.SetProbability(Microsoft.CodeAnalysis.Sarif.Converters.PREFastObjectModel.Defect,Microsoft.CodeAnalysis.Sarif.Result)": { - "name": "SetProbability(Microsoft.CodeAnalysis.Sarif.Converters.PREFastObjectModel.Defect,Microsoft.CodeAnalysis.Sarif.Result)", - "parentKey": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.PREfastConverter", - "kind": "member" + { + "ruleId": "CA2227", + "message": { + "text": "Change 'Attachment.Regions' to be read-only by removing the property setter." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/Attachment.cs", + "index": 30 + }, + "region": { + "startLine": 50 + } + }, + "logicalLocations": [ + { + "index": 232, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Attachment.Regions" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Usage", + "FixCategory": "Breaking" + } }, - "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.PREfastConverter.SetRank(Microsoft.CodeAnalysis.Sarif.Converters.PREFastObjectModel.Defect,Microsoft.CodeAnalysis.Sarif.Result)": { - "name": "SetRank(Microsoft.CodeAnalysis.Sarif.Converters.PREFastObjectModel.Defect,Microsoft.CodeAnalysis.Sarif.Result)", - "parentKey": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.PREfastConverter", - "kind": "member" + { + "ruleId": "CA2214", + "message": { + "text": "'CodeFlow.CodeFlow(CodeFlow)' contains a call chain that results in a call to a virtual method defined by the class. Review the following call stack for unintended consequences: \r\n\r\nCodeFlow..ctor(CodeFlow)\r\nCodeFlow.Init(Message, IEnumerable, IDictionary):Void\r\nPropertyBagHolder.set_Properties(IDictionary):Void" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/CodeFlow.cs", + "index": 31 + }, + "region": { + "startLine": 86 + } + }, + "logicalLocations": [ + { + "index": 234, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.CodeFlow..ctor(Microsoft.CodeAnalysis.Sarif.CodeFlow)" + } + ] + } + ], + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Usage", + "FixCategory": "NonBreaking" + } }, - "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.PylintConverter": { - "name": "PylintConverter", - "parentKey": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters", - "kind": "type" + { + "ruleId": "CA2214", + "message": { + "text": "'CodeFlow.CodeFlow(Message, IEnumerable, IDictionary)' contains a call chain that results in a call to a virtual method defined by the class. Review the following call stack for unintended consequences: \r\n\r\nCodeFlow..ctor(Message, IEnumerable, IDictionary)\r\nCodeFlow.Init(Message, IEnumerable, IDictionary):Void\r\nPropertyBagHolder.set_Properties(IDictionary):Void" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/CodeFlow.cs", + "index": 31 + }, + "region": { + "startLine": 72 + } + }, + "logicalLocations": [ + { + "index": 235, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.CodeFlow..ctor(Microsoft.CodeAnalysis.Sarif.Message,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IDictionary`2)" + } + ] + } + ], + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Usage", + "FixCategory": "NonBreaking" + } }, - "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.PylintConverter.CreateResult(Microsoft.CodeAnalysis.Sarif.Converters.PylintObjectModel.PylintLogEntry)": { - "name": "CreateResult(Microsoft.CodeAnalysis.Sarif.Converters.PylintObjectModel.PylintLogEntry)", - "parentKey": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.PylintConverter", - "kind": "member" - }, - "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.SemmleQLConverter": { - "name": "SemmleQLConverter", - "parentKey": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters", - "kind": "type" + { + "ruleId": "CA2227", + "message": { + "text": "Change 'CodeFlow.ThreadFlows' to be read-only by removing the property setter." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/CodeFlow.cs", + "index": 31 + }, + "region": { + "startLine": 45 + } + }, + "logicalLocations": [ + { + "index": 236, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.CodeFlow.ThreadFlows" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Usage", + "FixCategory": "Breaking" + } }, - "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.SemmleQLConverter.GetResultsFromStream(System.IO.Stream)": { - "name": "GetResultsFromStream(System.IO.Stream)", - "parentKey": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.SemmleQLConverter", - "kind": "member" + { + "ruleId": "CA1822", + "message": { + "text": "The 'this' parameter (or 'Me' in Visual Basic) of 'ConsoleLogger.FormatNotificationMessage(Notification)' is never used. Mark the member as static (or Shared in Visual Basic) or use 'this'/'Me' in the method body or at least one property accessor, if appropriate." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/ConsoleLogger.cs", + "index": 32 + }, + "region": { + "startLine": 257 + } + }, + "logicalLocations": [ + { + "index": 238, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.ConsoleLogger.FormatNotificationMessage(Microsoft.CodeAnalysis.Sarif.Notification)" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Performance", + "FixCategory": "NonBreaking" + } }, - "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.SemmleQLConverter.NormalizeRawMessage(System.String,System.String&)": { - "name": "NormalizeRawMessage(System.String,System.String&)", - "parentKey": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.SemmleQLConverter", - "kind": "member" + { + "ruleId": "CA1704", + "message": { + "text": "In method 'ConsoleLogger.NormalizeMessage(string, bool)', correct the spelling of 'enquote' in parameter name 'enquote' or remove it entirely if it represents any sort of Hungarian notation.", + "id": "MemberParameter" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/ConsoleLogger.cs", + "index": 32 + }, + "region": { + "startLine": 212 + } + }, + "logicalLocations": [ + { + "index": 239, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.ConsoleLogger.NormalizeMessage(System.String,System.Boolean)" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "enquote#MemberParameter" + }, + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" + } }, - "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.SemmleQLConverter.s_delimiters": { - "name": "s_delimiters", - "parentKey": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.SemmleQLConverter", - "kind": "member" + { + "ruleId": "CA2227", + "message": { + "text": "Change 'Conversion.AnalysisToolLogFiles' to be read-only by removing the property setter." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/Conversion.cs", + "index": 33 + }, + "region": { + "startLine": 50 + } + }, + "logicalLocations": [ + { + "index": 241, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Conversion.AnalysisToolLogFiles" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Usage", + "FixCategory": "Breaking" + } }, - "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.SemmleQLConverter.SemmleError": { - "name": "SemmleError", - "parentKey": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.SemmleQLConverter", - "kind": "member" + { + "ruleId": "CA2214", + "message": { + "text": "'Edge.Edge(Edge)' contains a call chain that results in a call to a virtual method defined by the class. Review the following call stack for unintended consequences: \r\n\r\nEdge..ctor(Edge)\r\nEdge.Init(String, Message, String, String, IDictionary):Void\r\nPropertyBagHolder.set_Properties(IDictionary):Void" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/Edge.cs", + "index": 34 + }, + "region": { + "startLine": 104 + } + }, + "logicalLocations": [ + { + "index": 243, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Edge..ctor(Microsoft.CodeAnalysis.Sarif.Edge)" + } + ] + } + ], + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Usage", + "FixCategory": "NonBreaking" + } }, - "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.SemmleQLConverter.SemmleRecommendation": { - "name": "SemmleRecommendation", - "parentKey": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.SemmleQLConverter", - "kind": "member" + { + "ruleId": "CA2214", + "message": { + "text": "'Edge.Edge(string, Message, string, string, IDictionary)' contains a call chain that results in a call to a virtual method defined by the class. Review the following call stack for unintended consequences: \r\n\r\nEdge..ctor(String, Message, String, String, IDictionary)\r\nEdge.Init(String, Message, String, String, IDictionary):Void\r\nPropertyBagHolder.set_Properties(IDictionary):Void" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/Edge.cs", + "index": 34 + }, + "region": { + "startLine": 90 + } + }, + "logicalLocations": [ + { + "index": 244, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Edge..ctor(System.String,Microsoft.CodeAnalysis.Sarif.Message,System.String,System.String,System.Collections.Generic.IDictionary`2)" + } + ] + } + ], + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Usage", + "FixCategory": "NonBreaking" + } }, - "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.SemmleQLConverter.SemmleWarning": { - "name": "SemmleWarning", - "parentKey": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.SemmleQLConverter", - "kind": "member" + { + "ruleId": "CA2214", + "message": { + "text": "'EdgeTraversal.EdgeTraversal(EdgeTraversal)' contains a call chain that results in a call to a virtual method defined by the class. Review the following call stack for unintended consequences: \r\n\r\nEdgeTraversal..ctor(EdgeTraversal)\r\nEdgeTraversal.Init(String, Message, IDictionary, Int32, IDictionary):Void\r\nPropertyBagHolder.set_Properties(IDictionary):Void" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/EdgeTraversal.cs", + "index": 35 + }, + "region": { + "startLine": 104 + } + }, + "logicalLocations": [ + { + "index": 246, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.EdgeTraversal..ctor(Microsoft.CodeAnalysis.Sarif.EdgeTraversal)" + } + ] + } + ], + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Usage", + "FixCategory": "NonBreaking" + } }, - "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.SparseReader": { - "name": "SparseReader", - "parentKey": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters", - "kind": "type" + { + "ruleId": "CA2214", + "message": { + "text": "'EdgeTraversal.EdgeTraversal(string, Message, IDictionary, int, IDictionary)' contains a call chain that results in a call to a virtual method defined by the class. Review the following call stack for unintended consequences: \r\n\r\nEdgeTraversal..ctor(String, Message, IDictionary, Int32, IDictionary)\r\nEdgeTraversal.Init(String, Message, IDictionary, Int32, IDictionary):Void\r\nPropertyBagHolder.set_Properties(IDictionary):Void" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/EdgeTraversal.cs", + "index": 35 + }, + "region": { + "startLine": 90 + } + }, + "logicalLocations": [ + { + "index": 247, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.EdgeTraversal..ctor(System.String,Microsoft.CodeAnalysis.Sarif.Message,System.Collections.Generic.IDictionary`2,System.Int32,System.Collections.Generic.IDictionary`2)" + } + ] + } + ], + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Usage", + "FixCategory": "NonBreaking" + } }, - "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.SparseReader.CreateFromStream(Microsoft.CodeAnalysis.Sarif.Converters.SparseReaderDispatchTable,System.IO.Stream,System.Xml.Schema.XmlSchemaSet)": { - "name": "CreateFromStream(Microsoft.CodeAnalysis.Sarif.Converters.SparseReaderDispatchTable,System.IO.Stream,System.Xml.Schema.XmlSchemaSet)", - "parentKey": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.SparseReader", - "kind": "member" + { + "ruleId": "CA2227", + "message": { + "text": "Change 'EdgeTraversal.FinalState' to be read-only by removing the property setter." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/EdgeTraversal.cs", + "index": 35 + }, + "region": { + "startLine": 51 + } + }, + "logicalLocations": [ + { + "index": 248, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.EdgeTraversal.FinalState" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Usage", + "FixCategory": "Breaking" + } }, - "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.SparseReader.ReadChildren(System.String,System.Object,System.String&)": { - "name": "ReadChildren(System.String,System.Object,System.String&)", - "parentKey": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.SparseReader", - "kind": "member" + { + "ruleId": "CA1062", + "message": { + "text": "In externally visible method 'ExceptionData.Create(Exception)', validate parameter 'exception' before using it." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Core/ExceptionData.cs", + "index": 36 + }, + "region": { + "startLine": 16 + } + }, + "logicalLocations": [ + { + "index": 250, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.ExceptionData.Create(System.Exception)" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "0" + }, + "properties": { + "Category": "Microsoft.Design", + "FixCategory": "DependsOnFix" + } }, - "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.SparseReaderDispatchTable": { - "name": "SparseReaderDispatchTable", - "parentKey": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters", - "kind": "type" - }, - "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.StaticDriverVerifierConverter": { - "name": "StaticDriverVerifierConverter", - "parentKey": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters", - "kind": "type" + { + "ruleId": "CA2227", + "message": { + "text": "Change 'ExceptionData.InnerExceptions' to be read-only by removing the property setter." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/ExceptionData.cs", + "index": 37 + }, + "region": { + "startLine": 53 + } + }, + "logicalLocations": [ + { + "index": 251, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.ExceptionData.InnerExceptions" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Usage", + "FixCategory": "Breaking" + } }, - "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.StaticDriverVerifierConverter._sb": { - "name": "_sb", - "parentKey": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.StaticDriverVerifierConverter", - "kind": "member" + { + "ruleId": "CA1062", + "message": { + "text": "In externally visible method 'ExtensionMethods.GetFileName(this Uri)', validate parameter 'uri' before using it." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/ExtensionMethods.cs", + "index": 38 + }, + "region": { + "startLine": 46 + } + }, + "logicalLocations": [ + { + "index": 253, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.ExtensionMethods.GetFileName(System.Uri)" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "0" + }, + "properties": { + "Category": "Microsoft.Design", + "FixCategory": "DependsOnFix" + } }, - "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.StaticDriverVerifierConverter.IsHarnessOrRulesFiles(System.String)": { - "name": "IsHarnessOrRulesFiles(System.String)", - "parentKey": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.StaticDriverVerifierConverter", - "kind": "member" + { + "ruleId": "CA1726", + "level": "error", + "message": { + "text": "Replace the term 'Flags' in member name 'ExtensionMethods.ToFlags(this IEnumerable)' with an appropriate alternate or remove it entirely.", + "id": "MemberNoAlternate" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/ExtensionMethods.cs", + "index": 38 + }, + "region": { + "startLine": 24 + } + }, + "logicalLocations": [ + { + "index": 254, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.ExtensionMethods.ToFlags(System.Collections.Generic.IEnumerable`1)" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "Flags#MemberNoAlternate" + }, + "properties": { + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" + } }, - "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.StaticDriverVerifierConverter.ProcessLine(System.String,System.Int32&,Microsoft.CodeAnalysis.Sarif.Result)": { - "name": "ProcessLine(System.String,System.Int32&,Microsoft.CodeAnalysis.Sarif.Result)", - "parentKey": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.StaticDriverVerifierConverter", - "kind": "member" + { + "ruleId": "CA2227", + "message": { + "text": "Change 'FileChange.Replacements' to be read-only by removing the property setter." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/FileChange.cs", + "index": 39 + }, + "region": { + "startLine": 44 + } + }, + "logicalLocations": [ + { + "index": 256, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.FileChange.Replacements" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Usage", + "FixCategory": "Breaking" + } }, - "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.StringReference": { - "name": "StringReference", - "parentKey": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters", - "kind": "type" + { + "ruleId": "CA2214", + "message": { + "text": "'FileData.FileData(FileData)' contains a call chain that results in a call to a virtual method defined by the class. Review the following call stack for unintended consequences: \r\n\r\nFileData..ctor(FileData)\r\nFileData.Init(FileLocation, String, Int32, Int32, FileRoles, String, FileContent, String, IEnumerable, DateTime, IDictionary):Void\r\nPropertyBagHolder.set_Properties(IDictionary):Void" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/FileData.cs", + "index": 40 + }, + "region": { + "startLine": 158 + } + }, + "logicalLocations": [ + { + "index": 258, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.FileData..ctor(Microsoft.CodeAnalysis.Sarif.FileData)" + } + ] + } + ], + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Usage", + "FixCategory": "NonBreaking" + } }, - "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.StringReference.Equals(System.Object,System.Object)": { - "name": "Equals(System.Object,System.Object)", - "parentKey": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.StringReference", - "kind": "member" + { + "ruleId": "CA2214", + "message": { + "text": "'FileData.FileData(FileLocation, string, int, int, FileRoles, string, FileContent, string, IEnumerable, DateTime, IDictionary)' contains a call chain that results in a call to a virtual method defined by the class. Review the following call stack for unintended consequences: \r\n\r\nFileData..ctor(FileLocation, String, Int32, Int32, FileRoles, String, FileContent, String, IEnumerable, DateTime, IDictionary)\r\nFileData.Init(FileLocation, String, Int32, Int32, FileRoles, String, FileContent, String, IEnumerable, DateTime, IDictionary):Void\r\nPropertyBagHolder.set_Properties(IDictionary):Void" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/FileData.cs", + "index": 40 + }, + "region": { + "startLine": 144 + } + }, + "logicalLocations": [ + { + "index": 259, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.FileData..ctor(Microsoft.CodeAnalysis.Sarif.FileLocation,System.String,System.Int32,System.Int32,Microsoft.CodeAnalysis.Sarif.FileRoles,System.String,Microsoft.CodeAnalysis.Sarif.FileContent,System.String,System.Collections.Generic.IEnumerable`1,System.DateTime,System.Collections.Generic.IDictionary`2)" + } + ] + } + ], + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Usage", + "FixCategory": "NonBreaking" + } }, - "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.ToolFileConverterBase": { - "name": "ToolFileConverterBase", - "parentKey": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters", - "kind": "type" + { + "ruleId": "CA1026", + "level": "error", + "message": { + "text": "Replace method 'FileData.Create(Uri, OptionallyEmittedData, string, Encoding, IFileSystem)' with an overload that supplies all default arguments." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Core/FileData.cs", + "index": 41 + }, + "region": { + "startLine": 23 + } + }, + "logicalLocations": [ + { + "index": 260, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.FileData.Create(System.Uri,Microsoft.CodeAnalysis.Sarif.OptionallyEmittedData,System.String,System.Text.Encoding,Microsoft.CodeAnalysis.Sarif.IFileSystem)" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Design", + "FixCategory": "Breaking" + } }, - "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.ToolFileConverterBase.GetLogicalLocationName(System.String,System.String,System.String)": { - "name": "GetLogicalLocationName(System.String,System.String,System.String)", - "parentKey": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.ToolFileConverterBase", - "kind": "member" + { + "ruleId": "CA2227", + "message": { + "text": "Change 'FileData.Hashes' to be read-only by removing the property setter." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/FileData.cs", + "index": 40 + }, + "region": { + "startLine": 87 + } + }, + "logicalLocations": [ + { + "index": 261, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.FileData.Hashes" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Usage", + "FixCategory": "Breaking" + } }, - "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.ToolFormat": { - "name": "ToolFormat", - "parentKey": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters", - "kind": "type" + { + "ruleId": "CA1502", + "message": { + "text": "'FileDataEqualityComparer.Equals(FileData, FileData)' has a cyclomatic complexity of 27. Rewrite or refactor the method to reduce complexity to 25." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/FileDataEqualityComparer.cs", + "index": 42 + }, + "region": { + "startLine": 20 + } + }, + "logicalLocations": [ + { + "index": 263, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.FileDataEqualityComparer.Equals(Microsoft.CodeAnalysis.Sarif.FileData,Microsoft.CodeAnalysis.Sarif.FileData)" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Maintainability", + "FixCategory": "NonBreaking" + } }, - "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.ToolFormat.CppCheck": { - "name": "CppCheck", - "parentKey": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.ToolFormat", - "kind": "member" + { + "ruleId": "CA1054", + "level": "error", + "message": { + "text": "Change the type of parameter 'uriBaseId' of method 'FileLocation.FileLocation(Uri, string)' from string to System.Uri, or provide an overload of 'FileLocation.FileLocation(Uri, string)', that allows 'uriBaseId' to be passed as a System.Uri object." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/FileLocation.cs", + "index": 43 + }, + "region": { + "startLine": 62 + } + }, + "logicalLocations": [ + { + "index": 265, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.FileLocation..ctor(System.Uri,System.String)" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "1#" + }, + "properties": { + "Category": "Microsoft.Design", + "FixCategory": "Breaking" + } }, - "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.ToolFormat.FortifyFpr": { - "name": "FortifyFpr", - "parentKey": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.ToolFormat", - "kind": "member" - }, - "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.ToolFormat.PREfast": { - "name": "PREfast", - "parentKey": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.ToolFormat", - "kind": "member" - }, - "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.ToolFormat.Pylint": { - "name": "Pylint", - "parentKey": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.ToolFormat", - "kind": "member" - }, - "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.ToolFormat.SemmleQL": { - "name": "SemmleQL", - "parentKey": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.ToolFormat", - "kind": "member" - }, - "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.ToolFormatConverter": { - "name": "ToolFormatConverter", - "parentKey": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters", - "kind": "type" - }, - "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.ToolFormatConverter..ctor(Microsoft.CodeAnalysis.Sarif.Converters.AssemblyLoadFileDelegate)": { - "name": ".ctor(Microsoft.CodeAnalysis.Sarif.Converters.AssemblyLoadFileDelegate)", - "parentKey": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.ToolFormatConverter", - "kind": "member" + { + "ruleId": "CA1307", + "level": "error", + "message": { + "text": "Because the behavior of 'string.StartsWith(string)' could vary based on the current user's locale settings, replace this call in 'FileLocation.CreateFromFilesDictionaryKey(string)' with a call to 'string.StartsWith(string, StringComparison)'. If the result of 'string.StartsWith(string, StringComparison)' will be displayed to the user, such as when sorting a list of items for display in a list box, specify 'StringComparison.CurrentCulture' or 'StringComparison.CurrentCultureIgnoreCase' as the 'StringComparison' parameter. If comparing case-insensitive identifiers, such as file paths, environment variables, or registry keys and values, specify 'StringComparison.OrdinalIgnoreCase'. Otherwise, if comparing case-sensitive identifiers, specify 'StringComparison.Ordinal'." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Core/FileLocation.cs", + "index": 44 + }, + "region": { + "startLine": 53 + } + }, + "logicalLocations": [ + { + "index": 266, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.FileLocation.CreateFromFilesDictionaryKey(System.String)" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "System.String.StartsWith(System.String)" + }, + "properties": { + "Category": "Microsoft.Globalization", + "FixCategory": "NonBreaking" + } }, - "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.ToolFormatConverter.ConvertToStandardFormat(System.String,System.IO.Stream,Microsoft.CodeAnalysis.Sarif.IResultLogWriter,Microsoft.CodeAnalysis.Sarif.OptionallyEmittedData,System.String)": { - "name": "ConvertToStandardFormat(System.String,System.IO.Stream,Microsoft.CodeAnalysis.Sarif.IResultLogWriter,Microsoft.CodeAnalysis.Sarif.OptionallyEmittedData,System.String)", - "parentKey": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.ToolFormatConverter", - "kind": "member" + { + "ruleId": "CA1062", + "message": { + "text": "In externally visible method 'FileLocation.CreateFromFilesDictionaryKey(string)', validate parameter 'key' before using it." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Core/FileLocation.cs", + "index": 44 + }, + "region": { + "startLine": 53 + } + }, + "logicalLocations": [ + { + "index": 266, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.FileLocation.CreateFromFilesDictionaryKey(System.String)" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "0" + }, + "properties": { + "Category": "Microsoft.Design", + "FixCategory": "DependsOnFix" + } }, - "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.ToolFormatConverter.ConvertToStandardFormat(System.String,System.String,System.String,Microsoft.CodeAnalysis.Sarif.Writers.LoggingOptions,Microsoft.CodeAnalysis.Sarif.OptionallyEmittedData,System.String)": { - "name": "ConvertToStandardFormat(System.String,System.String,System.String,Microsoft.CodeAnalysis.Sarif.Writers.LoggingOptions,Microsoft.CodeAnalysis.Sarif.OptionallyEmittedData,System.String)", - "parentKey": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.ToolFormatConverter", - "kind": "member" + { + "ruleId": "CA2234", + "message": { + "text": "Modify 'FileLocation.TryReconstructAbsoluteUri(IDictionary, out Uri)' to call 'Uri.Uri(Uri, Uri)' instead of 'Uri.Uri(Uri, string)'." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Core/FileLocation.cs", + "index": 44 + }, + "region": { + "startLine": 22 + } + }, + "logicalLocations": [ + { + "index": 267, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.FileLocation.TryReconstructAbsoluteUri(System.Collections.Generic.IDictionary`2,System.Uri&)" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Usage", + "FixCategory": "NonBreaking" + } }, - "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.TSLintConverter": { - "name": "TSLintConverter", - "parentKey": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters", - "kind": "type" + { + "ruleId": "CA1056", + "level": "error", + "message": { + "text": "Change the type of property 'FileLocation.UriBaseId' from string to System.Uri." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/FileLocation.cs", + "index": 43 + }, + "region": { + "startLine": 44 + } + }, + "logicalLocations": [ + { + "index": 268, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.FileLocation.UriBaseId" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Design", + "FixCategory": "Breaking" + } }, - "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.TSLintConverter.CreateResult(Microsoft.CodeAnalysis.Sarif.Converters.TSLintObjectModel.TSLintLogEntry)": { - "name": "CreateResult(Microsoft.CodeAnalysis.Sarif.Converters.TSLintObjectModel.TSLintLogEntry)", - "parentKey": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.TSLintConverter", - "kind": "member" + { + "ruleId": "CA1823", + "message": { + "text": "It appears that field 'FileRegionsCache._filePathToNewLineIndexMap' is never used or is only ever assigned to. Use this field or remove it." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + } + }, + "logicalLocations": [ + { + "index": 270, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.FileRegionsCache._filePathToNewLineIndexMap" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Performance", + "FixCategory": "NonBreaking" + } }, - "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.TSLintLogReader": { - "name": "TSLintLogReader", - "parentKey": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters", - "kind": "type" + { + "ruleId": "CA1823", + "message": { + "text": "It appears that field 'FileRegionsCache._run' is never used or is only ever assigned to. Use this field or remove it." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + } + }, + "logicalLocations": [ + { + "index": 271, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.FileRegionsCache._run" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Performance", + "FixCategory": "NonBreaking" + } }, - "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.TSLintLogReader.NormalizeEntries(Newtonsoft.Json.Linq.JArray)": { - "name": "NormalizeEntries(Newtonsoft.Json.Linq.JArray)", - "parentKey": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.TSLintLogReader", - "kind": "member" + { + "ruleId": "CA1822", + "message": { + "text": "The 'this' parameter (or 'Me' in Visual Basic) of 'FileRegionsCache.PopulateCharLength(NewLineIndex, Region)' is never used. Mark the member as static (or Shared in Visual Basic) or use 'this'/'Me' in the method body or at least one property accessor, if appropriate." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/FileRegionsCache.cs", + "index": 45 + }, + "region": { + "startLine": 259 + } + }, + "logicalLocations": [ + { + "index": 272, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.FileRegionsCache.PopulateCharLength(Microsoft.CodeAnalysis.Sarif.NewLineIndex,Microsoft.CodeAnalysis.Sarif.Region)" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Performance", + "FixCategory": "NonBreaking" + } }, - "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.TSLintLogReader.NormalizeFixProperty(Newtonsoft.Json.Linq.JProperty)": { - "name": "NormalizeFixProperty(Newtonsoft.Json.Linq.JProperty)", - "parentKey": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.TSLintLogReader", - "kind": "member" + { + "ruleId": "CA1822", + "message": { + "text": "The 'this' parameter (or 'Me' in Visual Basic) of 'FileRegionsCache.PopulateEndColumn(NewLineIndex, Region, string)' is never used. Mark the member as static (or Shared in Visual Basic) or use 'this'/'Me' in the method body or at least one property accessor, if appropriate." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/FileRegionsCache.cs", + "index": 45 + }, + "region": { + "startLine": 213 + } + }, + "logicalLocations": [ + { + "index": 273, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.FileRegionsCache.PopulateEndColumn(Microsoft.CodeAnalysis.Sarif.NewLineIndex,Microsoft.CodeAnalysis.Sarif.Region,System.String)" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Performance", + "FixCategory": "NonBreaking" + } }, - "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.TSLintLogReader.NormalizeLog(Newtonsoft.Json.Linq.JToken)": { - "name": "NormalizeLog(Newtonsoft.Json.Linq.JToken)", - "parentKey": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.TSLintLogReader", - "kind": "member" + { + "ruleId": "CA1822", + "message": { + "text": "The 'this' parameter (or 'Me' in Visual Basic) of 'FileRegionsCache.PopulatePropertiesFromCharOffsetAndLength(NewLineIndex, Region)' is never used. Mark the member as static (or Shared in Visual Basic) or use 'this'/'Me' in the method body or at least one property accessor, if appropriate." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/FileRegionsCache.cs", + "index": 45 + }, + "region": { + "startLine": 129 + } + }, + "logicalLocations": [ + { + "index": 274, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.FileRegionsCache.PopulatePropertiesFromCharOffsetAndLength(Microsoft.CodeAnalysis.Sarif.NewLineIndex,Microsoft.CodeAnalysis.Sarif.Region)" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Performance", + "FixCategory": "NonBreaking" + } }, - "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.TSLintLogReader.ReadLog(System.IO.Stream)": { - "name": "ReadLog(System.IO.Stream)", - "parentKey": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.TSLintLogReader", - "kind": "member" + { + "ruleId": "CA2227", + "message": { + "text": "Change 'Fix.FileChanges' to be read-only by removing the property setter." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/Fix.cs", + "index": 46 + }, + "region": { + "startLine": 44 + } + }, + "logicalLocations": [ + { + "index": 276, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Fix.FileChanges" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Usage", + "FixCategory": "Breaking" + } }, - "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.PREFastObjectModel": { - "name": "Microsoft.CodeAnalysis.Sarif.Converters.PREFastObjectModel", - "parentKey": "sarif.converters.dll", - "kind": "namespace" - }, - "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.PREFastObjectModel.Category": { - "name": "Category", - "parentKey": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.PREFastObjectModel", - "kind": "type" - }, - "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.PREFastObjectModel.Category.ReadXml(System.Xml.XmlReader)": { - "name": "ReadXml(System.Xml.XmlReader)", - "parentKey": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.PREFastObjectModel.Category", - "kind": "member" - }, - "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.PREFastObjectModel.Defect": { - "name": "Defect", - "parentKey": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.PREFastObjectModel", - "kind": "type" - }, - "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.PREFastObjectModel.Defect.Category": { - "name": "Category", - "parentKey": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.PREFastObjectModel.Defect", - "kind": "member" + { + "ruleId": "CA2214", + "message": { + "text": "'Graph.Graph(Graph)' contains a call chain that results in a call to a virtual method defined by the class. Review the following call stack for unintended consequences: \r\n\r\nGraph..ctor(Graph)\r\nGraph.Init(String, Message, IEnumerable, IEnumerable, IDictionary):Void\r\nPropertyBagHolder.set_Properties(IDictionary):Void" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/Graph.cs", + "index": 47 + }, + "region": { + "startLine": 104 + } + }, + "logicalLocations": [ + { + "index": 278, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Graph..ctor(Microsoft.CodeAnalysis.Sarif.Graph)" + } + ] + } + ], + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Usage", + "FixCategory": "NonBreaking" + } }, - "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.PREFastObjectModel.Defect.Funcline": { - "name": "Funcline", - "parentKey": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.PREFastObjectModel.Defect", - "kind": "member" + { + "ruleId": "CA2214", + "message": { + "text": "'Graph.Graph(string, Message, IEnumerable, IEnumerable, IDictionary)' contains a call chain that results in a call to a virtual method defined by the class. Review the following call stack for unintended consequences: \r\n\r\nGraph..ctor(String, Message, IEnumerable, IEnumerable, IDictionary)\r\nGraph.Init(String, Message, IEnumerable, IEnumerable, IDictionary):Void\r\nPropertyBagHolder.set_Properties(IDictionary):Void" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/Graph.cs", + "index": 47 + }, + "region": { + "startLine": 90 + } + }, + "logicalLocations": [ + { + "index": 279, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Graph..ctor(System.String,Microsoft.CodeAnalysis.Sarif.Message,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IDictionary`2)" + } + ] + } + ], + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Usage", + "FixCategory": "NonBreaking" + } }, - "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.PREFastObjectModel.Defect.SFA": { - "name": "SFA", - "parentKey": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.PREFastObjectModel.Defect", - "kind": "member" + { + "ruleId": "CA2227", + "message": { + "text": "Change 'Graph.Edges' to be read-only by removing the property setter." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/Graph.cs", + "index": 47 + }, + "region": { + "startLine": 57 + } + }, + "logicalLocations": [ + { + "index": 280, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Graph.Edges" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Usage", + "FixCategory": "Breaking" + } }, - "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.PREFastObjectModel.DefectList": { - "name": "DefectList", - "parentKey": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.PREFastObjectModel", - "kind": "type" + { + "ruleId": "CA2227", + "message": { + "text": "Change 'Graph.Nodes' to be read-only by removing the property setter." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/Graph.cs", + "index": 47 + }, + "region": { + "startLine": 51 + } + }, + "logicalLocations": [ + { + "index": 281, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Graph.Nodes" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Usage", + "FixCategory": "Breaking" + } }, - "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.PREFastObjectModel.DefectList.Defects": { - "name": "Defects", - "parentKey": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.PREFastObjectModel.DefectList", - "kind": "member" + { + "ruleId": "CA1502", + "message": { + "text": "'GraphEqualityComparer.Equals(Graph, Graph)' has a cyclomatic complexity of 26. Rewrite or refactor the method to reduce complexity to 25." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/GraphEqualityComparer.cs", + "index": 48 + }, + "region": { + "startLine": 20 + } + }, + "logicalLocations": [ + { + "index": 283, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.GraphEqualityComparer.Equals(Microsoft.CodeAnalysis.Sarif.Graph,Microsoft.CodeAnalysis.Sarif.Graph)" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Maintainability", + "FixCategory": "NonBreaking" + } }, - "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.PREFastObjectModel.PREFastPath": { - "name": "PREFastPath", - "parentKey": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.PREFastObjectModel", - "kind": "type" + { + "ruleId": "CA2214", + "message": { + "text": "'GraphTraversal.GraphTraversal(GraphTraversal)' contains a call chain that results in a call to a virtual method defined by the class. Review the following call stack for unintended consequences: \r\n\r\nGraphTraversal..ctor(GraphTraversal)\r\nGraphTraversal.Init(String, Message, IDictionary, IEnumerable, IDictionary):Void\r\nPropertyBagHolder.set_Properties(IDictionary):Void" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/GraphTraversal.cs", + "index": 49 + }, + "region": { + "startLine": 104 + } + }, + "logicalLocations": [ + { + "index": 285, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.GraphTraversal..ctor(Microsoft.CodeAnalysis.Sarif.GraphTraversal)" + } + ] + } + ], + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Usage", + "FixCategory": "NonBreaking" + } }, - "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.PREFastObjectModel.PREFastPath.SFAs": { - "name": "SFAs", - "parentKey": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.PREFastObjectModel.PREFastPath", - "kind": "member" + { + "ruleId": "CA2214", + "message": { + "text": "'GraphTraversal.GraphTraversal(string, Message, IDictionary, IEnumerable, IDictionary)' contains a call chain that results in a call to a virtual method defined by the class. Review the following call stack for unintended consequences: \r\n\r\nGraphTraversal..ctor(String, Message, IDictionary, IEnumerable, IDictionary)\r\nGraphTraversal.Init(String, Message, IDictionary, IEnumerable, IDictionary):Void\r\nPropertyBagHolder.set_Properties(IDictionary):Void" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/GraphTraversal.cs", + "index": 49 + }, + "region": { + "startLine": 90 + } + }, + "logicalLocations": [ + { + "index": 286, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.GraphTraversal..ctor(System.String,Microsoft.CodeAnalysis.Sarif.Message,System.Collections.Generic.IDictionary`2,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IDictionary`2)" + } + ] + } + ], + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Usage", + "FixCategory": "NonBreaking" + } }, - "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.PREFastObjectModel.SFA": { - "name": "SFA", - "parentKey": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.PREFastObjectModel", - "kind": "type" + { + "ruleId": "CA2227", + "message": { + "text": "Change 'GraphTraversal.EdgeTraversals' to be read-only by removing the property setter." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/GraphTraversal.cs", + "index": 49 + }, + "region": { + "startLine": 57 + } + }, + "logicalLocations": [ + { + "index": 287, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.GraphTraversal.EdgeTraversals" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Usage", + "FixCategory": "Breaking" + } }, - "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.PylintObjectModel": { - "name": "Microsoft.CodeAnalysis.Sarif.Converters.PylintObjectModel", - "parentKey": "sarif.converters.dll", - "kind": "namespace" + { + "ruleId": "CA2227", + "message": { + "text": "Change 'GraphTraversal.InitialState' to be read-only by removing the property setter." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/GraphTraversal.cs", + "index": 49 + }, + "region": { + "startLine": 51 + } + }, + "logicalLocations": [ + { + "index": 288, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.GraphTraversal.InitialState" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Usage", + "FixCategory": "Breaking" + } }, - "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.PylintObjectModel.PylintLog": { - "name": "PylintLog", - "parentKey": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.PylintObjectModel", - "kind": "type" + { + "ruleId": "CA1502", + "message": { + "text": "'GraphTraversalEqualityComparer.Equals(GraphTraversal, GraphTraversal)' has a cyclomatic complexity of 28. Rewrite or refactor the method to reduce complexity to 25." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/GraphTraversalEqualityComparer.cs", + "index": 50 + }, + "region": { + "startLine": 20 + } + }, + "logicalLocations": [ + { + "index": 290, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.GraphTraversalEqualityComparer.Equals(Microsoft.CodeAnalysis.Sarif.GraphTraversal,Microsoft.CodeAnalysis.Sarif.GraphTraversal)" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Maintainability", + "FixCategory": "NonBreaking" + } }, - "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.PylintObjectModel.PylintLogEntry": { - "name": "PylintLogEntry", - "parentKey": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.PylintObjectModel", - "kind": "type" - }, - "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.PylintObjectModel.PylintLogEntry.Type": { - "name": "Type", - "parentKey": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.PylintObjectModel.PylintLogEntry", - "kind": "member" - }, - "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.PylintObjectModel.PylintLogReader": { - "name": "PylintLogReader", - "parentKey": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.PylintObjectModel", - "kind": "type" - }, - "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.PylintObjectModel.PylintLogReader.ReadLog(System.IO.Stream)": { - "name": "ReadLog(System.IO.Stream)", - "parentKey": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.PylintObjectModel.PylintLogReader", - "kind": "member" + { + "ruleId": "CA1704", + "message": { + "text": "In method 'HashData.HashData(string, string, string)', correct the spelling of 'sha' in parameter name 'sha1' or remove it entirely if it represents any sort of Hungarian notation.", + "id": "MemberParameter" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/HashData.cs", + "index": 51 + }, + "region": { + "startLine": 8 + } + }, + "logicalLocations": [ + { + "index": 292, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.HashData..ctor(System.String,System.String,System.String)" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "sha#MemberParameter" + }, + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" + } }, - "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.TSLintObjectModel": { - "name": "Microsoft.CodeAnalysis.Sarif.Converters.TSLintObjectModel", - "parentKey": "sarif.converters.dll", - "kind": "namespace" + { + "ruleId": "CA1704", + "message": { + "text": "In method 'HashData.HashData(string, string, string)', correct the spelling of 'sha' in parameter name 'sha256' or remove it entirely if it represents any sort of Hungarian notation.", + "id": "MemberParameter" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/HashData.cs", + "index": 51 + }, + "region": { + "startLine": 8 + } + }, + "logicalLocations": [ + { + "index": 292, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.HashData..ctor(System.String,System.String,System.String)" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "sha#MemberParameter" + }, + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" + } }, - "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.TSLintObjectModel.TSLintLog": { - "name": "TSLintLog", - "parentKey": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.TSLintObjectModel", - "kind": "type" + { + "ruleId": "CA1704", + "message": { + "text": "Correct the spelling of 'Sha' in member name 'HashData.Sha1' or remove it entirely if it represents any sort of Hungarian notation.", + "id": "Member" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/HashData.cs", + "index": 51 + }, + "region": { + "startLine": 17 + } + }, + "logicalLocations": [ + { + "index": 293, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.HashData.Sha1" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "Sha#Member" + }, + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" + } }, - "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.TSLintObjectModel.TSLintLogEntry": { - "name": "TSLintLogEntry", - "parentKey": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.TSLintObjectModel", - "kind": "type" + { + "ruleId": "CA1704", + "message": { + "text": "Correct the spelling of 'Sha' in member name 'HashData.Sha256' or remove it entirely if it represents any sort of Hungarian notation.", + "id": "Member" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/HashData.cs", + "index": 51 + }, + "region": { + "startLine": 19 + } + }, + "logicalLocations": [ + { + "index": 294, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.HashData.Sha256" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "Sha#Member" + }, + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" + } }, - "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.TSLintObjectModel.TSLintLogEntry.Fixes": { - "name": "Fixes", - "parentKey": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.TSLintObjectModel.TSLintLogEntry", - "kind": "member" + { + "ruleId": "CA2202", + "message": { + "text": "Object 'stream' can be disposed more than once in method 'HashUtilities.ComputeHashes(string)'. To avoid generating a System.ObjectDisposedException you should not call Dispose more than one time on an object.: Lines: 50" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/HashUtilities.cs", + "index": 52 + }, + "region": { + "startLine": 50 + } + }, + "logicalLocations": [ + { + "index": 296, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.HashUtilities.ComputeHashes(System.String)" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Usage", + "FixCategory": "DependsOnFix" + } }, - "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.ConverterResources.resources": { - "name": "Microsoft.CodeAnalysis.Sarif.Converters.ConverterResources.resources", - "parentKey": "sarif.converters.dll", - "kind": "resource" + { + "ruleId": "CA5350", + "message": { + "text": "FxCop results that have been suppressed do not contain a message string." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + } + }, + "logicalLocations": [ + { + "index": 296, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.HashUtilities.ComputeHashes(System.String)" + } + ] + } + ], + "suppressions": [ + { + "kind": "inSource" + } + ], + "properties": { + "Category": "Microsoft.Security.Cryptography", + "FixCategory": "NonBreaking" + } }, - "sarif.dll": { - "kind": "module" + { + "ruleId": "CA5354", + "message": { + "text": "FxCop results that have been suppressed do not contain a message string." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + } + }, + "logicalLocations": [ + { + "index": 296, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.HashUtilities.ComputeHashes(System.String)" + } + ] + } + ], + "suppressions": [ + { + "kind": "inSource" + } + ], + "properties": { + "Category": "Microsoft.Security.Cryptography", + "FixCategory": "NonBreaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif": { - "name": "Microsoft.CodeAnalysis.Sarif", - "parentKey": "sarif.dll", - "kind": "namespace" + { + "ruleId": "CA2202", + "message": { + "text": "Object 'stream' can be disposed more than once in method 'HashUtilities.ComputeMD5Hash(string)'. To avoid generating a System.ObjectDisposedException you should not call Dispose more than one time on an object.: Lines: 124" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/HashUtilities.cs", + "index": 52 + }, + "region": { + "startLine": 124 + } + }, + "logicalLocations": [ + { + "index": 297, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.HashUtilities.ComputeMD5Hash(System.String)" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Usage", + "FixCategory": "DependsOnFix" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Attachment": { - "name": "Attachment", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif", - "kind": "type" + { + "ruleId": "CA5350", + "message": { + "text": "FxCop results that have been suppressed do not contain a message string." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + } + }, + "logicalLocations": [ + { + "index": 297, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.HashUtilities.ComputeMD5Hash(System.String)" + } + ] + } + ], + "suppressions": [ + { + "kind": "inSource" + } + ], + "properties": { + "Category": "Microsoft.Security.Cryptography", + "FixCategory": "NonBreaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Attachment.Rectangles": { - "name": "Rectangles", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Attachment", - "kind": "member" + { + "ruleId": "CA2202", + "message": { + "text": "Object 'stream' can be disposed more than once in method 'HashUtilities.ComputeSha1Hash(string)'. To avoid generating a System.ObjectDisposedException you should not call Dispose more than one time on an object.: Lines: 100" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/HashUtilities.cs", + "index": 52 + }, + "region": { + "startLine": 100 + } + }, + "logicalLocations": [ + { + "index": 298, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.HashUtilities.ComputeSha1Hash(System.String)" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Usage", + "FixCategory": "DependsOnFix" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Attachment.Regions": { - "name": "Regions", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Attachment", - "kind": "member" - }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.CodeFlow": { - "name": "CodeFlow", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif", - "kind": "type" - }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.CodeFlow..ctor(Microsoft.CodeAnalysis.Sarif.CodeFlow)": { - "name": ".ctor(Microsoft.CodeAnalysis.Sarif.CodeFlow)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.CodeFlow", - "kind": "member" - }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.CodeFlow..ctor(Microsoft.CodeAnalysis.Sarif.Message,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IDictionary`2)": { - "name": ".ctor(Microsoft.CodeAnalysis.Sarif.Message,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IDictionary`2)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.CodeFlow", - "kind": "member" - }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.CodeFlow.ThreadFlows": { - "name": "ThreadFlows", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.CodeFlow", - "kind": "member" - }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.ConsoleLogger": { - "name": "ConsoleLogger", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif", - "kind": "type" + { + "ruleId": "CA1704", + "message": { + "text": "Correct the spelling of 'Sha' in member name 'HashUtilities.ComputeSha1Hash(string)' or remove it entirely if it represents any sort of Hungarian notation.", + "id": "Member" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/HashUtilities.cs", + "index": 52 + }, + "region": { + "startLine": 85 + } + }, + "logicalLocations": [ + { + "index": 298, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.HashUtilities.ComputeSha1Hash(System.String)" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "Sha#Member" + }, + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.ConsoleLogger.FormatNotificationMessage(Microsoft.CodeAnalysis.Sarif.Notification)": { - "name": "FormatNotificationMessage(Microsoft.CodeAnalysis.Sarif.Notification)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.ConsoleLogger", - "kind": "member" + { + "ruleId": "CA5354", + "message": { + "text": "FxCop results that have been suppressed do not contain a message string." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + } + }, + "logicalLocations": [ + { + "index": 298, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.HashUtilities.ComputeSha1Hash(System.String)" + } + ] + } + ], + "suppressions": [ + { + "kind": "inSource" + } + ], + "properties": { + "Category": "Microsoft.Security.Cryptography", + "FixCategory": "NonBreaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.ConsoleLogger.NormalizeMessage(System.String,System.Boolean)": { - "name": "NormalizeMessage(System.String,System.Boolean)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.ConsoleLogger", - "kind": "member" + { + "ruleId": "CA2202", + "message": { + "text": "Object 'stream' can be disposed more than once in method 'HashUtilities.ComputeSha256Hash(string)'. To avoid generating a System.ObjectDisposedException you should not call Dispose more than one time on an object.: Lines: 76" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/HashUtilities.cs", + "index": 52 + }, + "region": { + "startLine": 76 + } + }, + "logicalLocations": [ + { + "index": 299, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.HashUtilities.ComputeSha256Hash(System.String)" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Usage", + "FixCategory": "DependsOnFix" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Conversion": { - "name": "Conversion", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif", - "kind": "type" + { + "ruleId": "CA1704", + "message": { + "text": "Correct the spelling of 'Sha' in member name 'HashUtilities.ComputeSha256Hash(string)' or remove it entirely if it represents any sort of Hungarian notation.", + "id": "Member" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/HashUtilities.cs", + "index": 52 + }, + "region": { + "startLine": 60 + } + }, + "logicalLocations": [ + { + "index": 299, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.HashUtilities.ComputeSha256Hash(System.String)" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "Sha#Member" + }, + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Conversion.AnalysisToolLogFiles": { - "name": "AnalysisToolLogFiles", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Conversion", - "kind": "member" + { + "ruleId": "CA2227", + "message": { + "text": "FxCop results that have been suppressed do not contain a message string." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + } + }, + "logicalLocations": [ + { + "index": 301, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.IAnalysisContext.Policy" + } + ] + } + ], + "suppressions": [ + { + "kind": "inSource" + } + ], + "properties": { + "Category": "Microsoft.Usage", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Edge": { - "name": "Edge", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif", - "kind": "type" + { + "ruleId": "CA1720", + "level": "error", + "message": { + "text": "In member 'IFileSystem.WriteAllBytes(string, byte[])', consider replacing the data type identifier 'bytes' in parameter name 'bytes' with a more generic term, such as 'value'.", + "id": "LanguageIndependentMemberParameter" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + } + }, + "logicalLocations": [ + { + "index": 303, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.IFileSystem.WriteAllBytes(System.String,System.Byte[])" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "bytes#LanguageIndependentMemberParameter" + }, + "properties": { + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Edge..ctor(Microsoft.CodeAnalysis.Sarif.Edge)": { - "name": ".ctor(Microsoft.CodeAnalysis.Sarif.Edge)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Edge", - "kind": "member" + { + "ruleId": "CA1040", + "message": { + "text": "Define a custom attribute to replace 'IMarker'." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + } + }, + "logicalLocations": [ + { + "index": 304, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.IMarker" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Design", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Edge..ctor(System.String,Microsoft.CodeAnalysis.Sarif.Message,System.String,System.String,System.Collections.Generic.IDictionary`2)": { - "name": ".ctor(System.String,Microsoft.CodeAnalysis.Sarif.Message,System.String,System.String,System.Collections.Generic.IDictionary`2)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Edge", - "kind": "member" + { + "ruleId": "CA1710", + "level": "error", + "message": { + "text": "Rename 'IntegerSet' to end in 'Collection'." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + } + }, + "logicalLocations": [ + { + "index": 305, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.IntegerSet" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.EdgeTraversal": { - "name": "EdgeTraversal", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif", - "kind": "type" + { + "ruleId": "CA2214", + "message": { + "text": "'Invocation.Invocation(Invocation)' contains a call chain that results in a call to a virtual method defined by the class. Review the following call stack for unintended consequences: \r\n\r\nInvocation..ctor(Invocation)\r\nInvocation.Init(IEnumerable, String, IEnumerable, IEnumerable, DateTime, DateTime, Int32, IEnumerable, IEnumerable, String, String, Int32, String, Boolean, String, String, Int32, FileLocation, String, IDictionary, FileLocation, FileLocation, FileLocation, FileLocation, IDictionary):Void\r\nPropertyBagHolder.set_Properties(IDictionary):Void" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/Invocation.cs", + "index": 53 + }, + "region": { + "startLine": 284 + } + }, + "logicalLocations": [ + { + "index": 307, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Invocation..ctor(Microsoft.CodeAnalysis.Sarif.Invocation)" + } + ] + } + ], + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Usage", + "FixCategory": "NonBreaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.EdgeTraversal..ctor(Microsoft.CodeAnalysis.Sarif.EdgeTraversal)": { - "name": ".ctor(Microsoft.CodeAnalysis.Sarif.EdgeTraversal)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.EdgeTraversal", - "kind": "member" + { + "ruleId": "CA2214", + "message": { + "text": "'Invocation.Invocation(IEnumerable, string, IEnumerable, IEnumerable, DateTime, DateTime, int, IEnumerable, IEnumerable, string, string, int, string, bool, string, string, int, FileLocation, string, IDictionary, FileLocation, FileLocation, FileLocation, FileLocation, IDictionary)' contains a call chain that results in a call to a virtual method defined by the class. Review the following call stack for unintended consequences: \r\n\r\nInvocation..ctor(IEnumerable, String, IEnumerable, IEnumerable, DateTime, DateTime, Int32, IEnumerable, IEnumerable, String, String, Int32, String, Boolean, String, String, Int32, FileLocation, String, IDictionary, FileLocation, FileLocation, FileLocation, FileLocation, IDictionary)\r\nInvocation.Init(IEnumerable, String, IEnumerable, IEnumerable, DateTime, DateTime, Int32, IEnumerable, IEnumerable, String, String, Int32, String, Boolean, String, String, Int32, FileLocation, String, IDictionary, FileLocation, FileLocation, FileLocation, FileLocation, IDictionary):Void\r\nPropertyBagHolder.set_Properties(IDictionary):Void" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/Invocation.cs", + "index": 53 + }, + "region": { + "startLine": 270 + } + }, + "logicalLocations": [ + { + "index": 308, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Invocation..ctor(System.Collections.Generic.IEnumerable`1,System.String,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,System.DateTime,System.DateTime,System.Int32,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,System.String,System.String,System.Int32,System.String,System.Boolean,System.String,System.String,System.Int32,Microsoft.CodeAnalysis.Sarif.FileLocation,System.String,System.Collections.Generic.IDictionary`2,Microsoft.CodeAnalysis.Sarif.FileLocation,Microsoft.CodeAnalysis.Sarif.FileLocation,Microsoft.CodeAnalysis.Sarif.FileLocation,Microsoft.CodeAnalysis.Sarif.FileLocation,System.Collections.Generic.IDictionary`2)" + } + ] + } + ], + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Usage", + "FixCategory": "NonBreaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.EdgeTraversal..ctor(System.String,Microsoft.CodeAnalysis.Sarif.Message,System.Collections.Generic.IDictionary`2,System.Int32,System.Collections.Generic.IDictionary`2)": { - "name": ".ctor(System.String,Microsoft.CodeAnalysis.Sarif.Message,System.Collections.Generic.IDictionary`2,System.Int32,System.Collections.Generic.IDictionary`2)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.EdgeTraversal", - "kind": "member" - }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.EdgeTraversal.FinalState": { - "name": "FinalState", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.EdgeTraversal", - "kind": "member" - }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.ExceptionData": { - "name": "ExceptionData", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif", - "kind": "type" - }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.ExceptionData.Create(System.Exception)": { - "name": "Create(System.Exception)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.ExceptionData", - "kind": "member" - }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.ExceptionData.InnerExceptions": { - "name": "InnerExceptions", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.ExceptionData", - "kind": "member" - }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.ExtensionMethods": { - "name": "ExtensionMethods", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif", - "kind": "type" - }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.ExtensionMethods.GetFileName(System.Uri)": { - "name": "GetFileName(System.Uri)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.ExtensionMethods", - "kind": "member" - }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.ExtensionMethods.ToFlags(System.Collections.Generic.IEnumerable`1)": { - "name": "ToFlags(System.Collections.Generic.IEnumerable`1)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.ExtensionMethods", - "kind": "member" + { + "ruleId": "CA1704", + "message": { + "text": "In method 'Invocation.Invocation(IEnumerable, string, IEnumerable, IEnumerable, DateTime, DateTime, int, IEnumerable, IEnumerable, string, string, int, string, bool, string, string, int, FileLocation, string, IDictionary, FileLocation, FileLocation, FileLocation, FileLocation, IDictionary)', correct the spelling of 'Stderr' in parameter name 'stdoutStderr' or remove it entirely if it represents any sort of Hungarian notation.", + "id": "MemberParameter" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/Invocation.cs", + "index": 53 + }, + "region": { + "startLine": 270 + } + }, + "logicalLocations": [ + { + "index": 308, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Invocation..ctor(System.Collections.Generic.IEnumerable`1,System.String,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,System.DateTime,System.DateTime,System.Int32,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,System.String,System.String,System.Int32,System.String,System.Boolean,System.String,System.String,System.Int32,Microsoft.CodeAnalysis.Sarif.FileLocation,System.String,System.Collections.Generic.IDictionary`2,Microsoft.CodeAnalysis.Sarif.FileLocation,Microsoft.CodeAnalysis.Sarif.FileLocation,Microsoft.CodeAnalysis.Sarif.FileLocation,Microsoft.CodeAnalysis.Sarif.FileLocation,System.Collections.Generic.IDictionary`2)" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "Stderr#MemberParameter" + }, + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.FileChange": { - "name": "FileChange", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif", - "kind": "type" + { + "ruleId": "CA1704", + "message": { + "text": "In method 'Invocation.Invocation(IEnumerable, string, IEnumerable, IEnumerable, DateTime, DateTime, int, IEnumerable, IEnumerable, string, string, int, string, bool, string, string, int, FileLocation, string, IDictionary, FileLocation, FileLocation, FileLocation, FileLocation, IDictionary)', correct the spelling of 'stderr' in parameter name 'stderr' or remove it entirely if it represents any sort of Hungarian notation.", + "id": "MemberParameter" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/Invocation.cs", + "index": 53 + }, + "region": { + "startLine": 270 + } + }, + "logicalLocations": [ + { + "index": 308, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Invocation..ctor(System.Collections.Generic.IEnumerable`1,System.String,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,System.DateTime,System.DateTime,System.Int32,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,System.String,System.String,System.Int32,System.String,System.Boolean,System.String,System.String,System.Int32,Microsoft.CodeAnalysis.Sarif.FileLocation,System.String,System.Collections.Generic.IDictionary`2,Microsoft.CodeAnalysis.Sarif.FileLocation,Microsoft.CodeAnalysis.Sarif.FileLocation,Microsoft.CodeAnalysis.Sarif.FileLocation,Microsoft.CodeAnalysis.Sarif.FileLocation,System.Collections.Generic.IDictionary`2)" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "stderr#MemberParameter" + }, + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.FileChange.Replacements": { - "name": "Replacements", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.FileChange", - "kind": "member" + { + "ruleId": "CA1704", + "message": { + "text": "In method 'Invocation.Invocation(IEnumerable, string, IEnumerable, IEnumerable, DateTime, DateTime, int, IEnumerable, IEnumerable, string, string, int, string, bool, string, string, int, FileLocation, string, IDictionary, FileLocation, FileLocation, FileLocation, FileLocation, IDictionary)', correct the spelling of 'stdin' in parameter name 'stdin' or remove it entirely if it represents any sort of Hungarian notation.", + "id": "MemberParameter" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/Invocation.cs", + "index": 53 + }, + "region": { + "startLine": 270 + } + }, + "logicalLocations": [ + { + "index": 308, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Invocation..ctor(System.Collections.Generic.IEnumerable`1,System.String,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,System.DateTime,System.DateTime,System.Int32,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,System.String,System.String,System.Int32,System.String,System.Boolean,System.String,System.String,System.Int32,Microsoft.CodeAnalysis.Sarif.FileLocation,System.String,System.Collections.Generic.IDictionary`2,Microsoft.CodeAnalysis.Sarif.FileLocation,Microsoft.CodeAnalysis.Sarif.FileLocation,Microsoft.CodeAnalysis.Sarif.FileLocation,Microsoft.CodeAnalysis.Sarif.FileLocation,System.Collections.Generic.IDictionary`2)" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "stdin#MemberParameter" + }, + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.FileData": { - "name": "FileData", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif", - "kind": "type" + { + "ruleId": "CA1704", + "message": { + "text": "In method 'Invocation.Invocation(IEnumerable, string, IEnumerable, IEnumerable, DateTime, DateTime, int, IEnumerable, IEnumerable, string, string, int, string, bool, string, string, int, FileLocation, string, IDictionary, FileLocation, FileLocation, FileLocation, FileLocation, IDictionary)', correct the spelling of 'stdout' in parameter name 'stdout' or remove it entirely if it represents any sort of Hungarian notation.", + "id": "MemberParameter" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/Invocation.cs", + "index": 53 + }, + "region": { + "startLine": 270 + } + }, + "logicalLocations": [ + { + "index": 308, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Invocation..ctor(System.Collections.Generic.IEnumerable`1,System.String,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,System.DateTime,System.DateTime,System.Int32,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,System.String,System.String,System.Int32,System.String,System.Boolean,System.String,System.String,System.Int32,Microsoft.CodeAnalysis.Sarif.FileLocation,System.String,System.Collections.Generic.IDictionary`2,Microsoft.CodeAnalysis.Sarif.FileLocation,Microsoft.CodeAnalysis.Sarif.FileLocation,Microsoft.CodeAnalysis.Sarif.FileLocation,Microsoft.CodeAnalysis.Sarif.FileLocation,System.Collections.Generic.IDictionary`2)" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "stdout#MemberParameter" + }, + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.FileData..ctor(Microsoft.CodeAnalysis.Sarif.FileData)": { - "name": ".ctor(Microsoft.CodeAnalysis.Sarif.FileData)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.FileData", - "kind": "member" + { + "ruleId": "CA1704", + "message": { + "text": "In method 'Invocation.Invocation(IEnumerable, string, IEnumerable, IEnumerable, DateTime, DateTime, int, IEnumerable, IEnumerable, string, string, int, string, bool, string, string, int, FileLocation, string, IDictionary, FileLocation, FileLocation, FileLocation, FileLocation, IDictionary)', correct the spelling of 'stdout' in parameter name 'stdoutStderr' or remove it entirely if it represents any sort of Hungarian notation.", + "id": "MemberParameter" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/Invocation.cs", + "index": 53 + }, + "region": { + "startLine": 270 + } + }, + "logicalLocations": [ + { + "index": 308, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Invocation..ctor(System.Collections.Generic.IEnumerable`1,System.String,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,System.DateTime,System.DateTime,System.Int32,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,System.String,System.String,System.Int32,System.String,System.Boolean,System.String,System.String,System.Int32,Microsoft.CodeAnalysis.Sarif.FileLocation,System.String,System.Collections.Generic.IDictionary`2,Microsoft.CodeAnalysis.Sarif.FileLocation,Microsoft.CodeAnalysis.Sarif.FileLocation,Microsoft.CodeAnalysis.Sarif.FileLocation,Microsoft.CodeAnalysis.Sarif.FileLocation,System.Collections.Generic.IDictionary`2)" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "stdout#MemberParameter" + }, + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.FileData..ctor(Microsoft.CodeAnalysis.Sarif.FileLocation,System.String,System.Int32,System.Int32,Microsoft.CodeAnalysis.Sarif.FileRoles,System.String,Microsoft.CodeAnalysis.Sarif.FileContent,System.String,System.Collections.Generic.IEnumerable`1,System.DateTime,System.Collections.Generic.IDictionary`2)": { - "name": ".ctor(Microsoft.CodeAnalysis.Sarif.FileLocation,System.String,System.Int32,System.Int32,Microsoft.CodeAnalysis.Sarif.FileRoles,System.String,Microsoft.CodeAnalysis.Sarif.FileContent,System.String,System.Collections.Generic.IEnumerable`1,System.DateTime,System.Collections.Generic.IDictionary`2)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.FileData", - "kind": "member" + { + "ruleId": "CA2227", + "message": { + "text": "Change 'Invocation.Arguments' to be read-only by removing the property setter." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/Invocation.cs", + "index": 53 + }, + "region": { + "startLine": 51 + } + }, + "logicalLocations": [ + { + "index": 309, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Invocation.Arguments" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Usage", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.FileData.Create(System.Uri,Microsoft.CodeAnalysis.Sarif.OptionallyEmittedData,System.String,System.Text.Encoding,Microsoft.CodeAnalysis.Sarif.IFileSystem)": { - "name": "Create(System.Uri,Microsoft.CodeAnalysis.Sarif.OptionallyEmittedData,System.String,System.Text.Encoding,Microsoft.CodeAnalysis.Sarif.IFileSystem)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.FileData", - "kind": "member" + { + "ruleId": "CA2227", + "message": { + "text": "Change 'Invocation.Attachments' to be read-only by removing the property setter." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/Invocation.cs", + "index": 53 + }, + "region": { + "startLine": 39 + } + }, + "logicalLocations": [ + { + "index": 310, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Invocation.Attachments" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Usage", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.FileData.Hashes": { - "name": "Hashes", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.FileData", - "kind": "member" + { + "ruleId": "CA2227", + "message": { + "text": "Change 'Invocation.ConfigurationNotifications' to be read-only by removing the property setter." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/Invocation.cs", + "index": 53 + }, + "region": { + "startLine": 87 + } + }, + "logicalLocations": [ + { + "index": 311, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Invocation.ConfigurationNotifications" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Usage", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.FileDataEqualityComparer": { - "name": "FileDataEqualityComparer", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif", - "kind": "type" + { + "ruleId": "CA1026", + "level": "error", + "message": { + "text": "Replace method 'Invocation.Create(bool, IEnumerable)' with an overload that supplies all default arguments." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Core/Invocation.cs", + "index": 54 + }, + "region": { + "startLine": 19 + } + }, + "logicalLocations": [ + { + "index": 312, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Invocation.Create(System.Boolean,System.Collections.Generic.IEnumerable`1)" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Design", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.FileDataEqualityComparer.Equals(Microsoft.CodeAnalysis.Sarif.FileData,Microsoft.CodeAnalysis.Sarif.FileData)": { - "name": "Equals(Microsoft.CodeAnalysis.Sarif.FileData,Microsoft.CodeAnalysis.Sarif.FileData)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.FileDataEqualityComparer", - "kind": "member" - }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.FileLocation": { - "name": "FileLocation", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif", - "kind": "type" - }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.FileLocation..ctor(System.Uri,System.String)": { - "name": ".ctor(System.Uri,System.String)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.FileLocation", - "kind": "member" - }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.FileLocation.CreateFromFilesDictionaryKey(System.String)": { - "name": "CreateFromFilesDictionaryKey(System.String)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.FileLocation", - "kind": "member" - }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.FileLocation.TryReconstructAbsoluteUri(System.Collections.Generic.IDictionary`2,System.Uri&)": { - "name": "TryReconstructAbsoluteUri(System.Collections.Generic.IDictionary`2,System.Uri&)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.FileLocation", - "kind": "member" - }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.FileLocation.UriBaseId": { - "name": "UriBaseId", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.FileLocation", - "kind": "member" - }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.FileRegionsCache": { - "name": "FileRegionsCache", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif", - "kind": "type" + { + "ruleId": "CA2227", + "message": { + "text": "Change 'Invocation.EnvironmentVariables' to be read-only by removing the property setter." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/Invocation.cs", + "index": 53 + }, + "region": { + "startLine": 153 + } + }, + "logicalLocations": [ + { + "index": 313, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Invocation.EnvironmentVariables" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Usage", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.FileRegionsCache._filePathToNewLineIndexMap": { - "name": "_filePathToNewLineIndexMap", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.FileRegionsCache", - "kind": "member" + { + "ruleId": "CA1502", + "message": { + "text": "'Invocation.Init(IEnumerable, string, IEnumerable, IEnumerable, DateTime, DateTime, int, IEnumerable, IEnumerable, string, string, int, string, bool, string, string, int, FileLocation, string, IDictionary, FileLocation, FileLocation, FileLocation, FileLocation, IDictionary)' has a cyclomatic complexity of 27. Rewrite or refactor the method to reduce complexity to 25." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/Invocation.cs", + "index": 53 + }, + "region": { + "startLine": 313 + } + }, + "logicalLocations": [ + { + "index": 314, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Invocation.Init(System.Collections.Generic.IEnumerable`1,System.String,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,System.DateTime,System.DateTime,System.Int32,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,System.String,System.String,System.Int32,System.String,System.Boolean,System.String,System.String,System.Int32,Microsoft.CodeAnalysis.Sarif.FileLocation,System.String,System.Collections.Generic.IDictionary`2,Microsoft.CodeAnalysis.Sarif.FileLocation,Microsoft.CodeAnalysis.Sarif.FileLocation,Microsoft.CodeAnalysis.Sarif.FileLocation,Microsoft.CodeAnalysis.Sarif.FileLocation,System.Collections.Generic.IDictionary`2)" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Maintainability", + "FixCategory": "NonBreaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.FileRegionsCache._run": { - "name": "_run", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.FileRegionsCache", - "kind": "member" + { + "ruleId": "CA2227", + "message": { + "text": "Change 'Invocation.ResponseFiles' to be read-only by removing the property setter." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/Invocation.cs", + "index": 53 + }, + "region": { + "startLine": 57 + } + }, + "logicalLocations": [ + { + "index": 315, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Invocation.ResponseFiles" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Usage", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.FileRegionsCache.PopulateCharLength(Microsoft.CodeAnalysis.Sarif.NewLineIndex,Microsoft.CodeAnalysis.Sarif.Region)": { - "name": "PopulateCharLength(Microsoft.CodeAnalysis.Sarif.NewLineIndex,Microsoft.CodeAnalysis.Sarif.Region)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.FileRegionsCache", - "kind": "member" + { + "ruleId": "CA1704", + "message": { + "text": "Correct the spelling of 'Stderr' in member name 'Invocation.Stderr' or remove it entirely if it represents any sort of Hungarian notation.", + "id": "Member" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/Invocation.cs", + "index": 53 + }, + "region": { + "startLine": 171 + } + }, + "logicalLocations": [ + { + "index": 316, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Invocation.Stderr" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "Stderr#Member" + }, + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.FileRegionsCache.PopulateEndColumn(Microsoft.CodeAnalysis.Sarif.NewLineIndex,Microsoft.CodeAnalysis.Sarif.Region,System.String)": { - "name": "PopulateEndColumn(Microsoft.CodeAnalysis.Sarif.NewLineIndex,Microsoft.CodeAnalysis.Sarif.Region,System.String)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.FileRegionsCache", - "kind": "member" + { + "ruleId": "CA1704", + "message": { + "text": "Correct the spelling of 'Stdin' in member name 'Invocation.Stdin' or remove it entirely if it represents any sort of Hungarian notation.", + "id": "Member" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/Invocation.cs", + "index": 53 + }, + "region": { + "startLine": 159 + } + }, + "logicalLocations": [ + { + "index": 317, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Invocation.Stdin" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "Stdin#Member" + }, + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.FileRegionsCache.PopulatePropertiesFromCharOffsetAndLength(Microsoft.CodeAnalysis.Sarif.NewLineIndex,Microsoft.CodeAnalysis.Sarif.Region)": { - "name": "PopulatePropertiesFromCharOffsetAndLength(Microsoft.CodeAnalysis.Sarif.NewLineIndex,Microsoft.CodeAnalysis.Sarif.Region)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.FileRegionsCache", - "kind": "member" + { + "ruleId": "CA1704", + "message": { + "text": "Correct the spelling of 'Stdout' in member name 'Invocation.Stdout' or remove it entirely if it represents any sort of Hungarian notation.", + "id": "Member" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/Invocation.cs", + "index": 53 + }, + "region": { + "startLine": 165 + } + }, + "logicalLocations": [ + { + "index": 318, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Invocation.Stdout" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "Stdout#Member" + }, + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Fix": { - "name": "Fix", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif", - "kind": "type" + { + "ruleId": "CA1704", + "message": { + "text": "Correct the spelling of 'Stderr' in member name 'Invocation.StdoutStderr' or remove it entirely if it represents any sort of Hungarian notation.", + "id": "Member" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/Invocation.cs", + "index": 53 + }, + "region": { + "startLine": 177 + } + }, + "logicalLocations": [ + { + "index": 319, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Invocation.StdoutStderr" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "Stderr#Member" + }, + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Fix.FileChanges": { - "name": "FileChanges", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Fix", - "kind": "member" + { + "ruleId": "CA1704", + "message": { + "text": "Correct the spelling of 'Stdout' in member name 'Invocation.StdoutStderr' or remove it entirely if it represents any sort of Hungarian notation.", + "id": "Member" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/Invocation.cs", + "index": 53 + }, + "region": { + "startLine": 177 + } + }, + "logicalLocations": [ + { + "index": 319, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Invocation.StdoutStderr" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "Stdout#Member" + }, + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Graph": { - "name": "Graph", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif", - "kind": "type" + { + "ruleId": "CA2227", + "message": { + "text": "Change 'Invocation.ToolNotifications' to be read-only by removing the property setter." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/Invocation.cs", + "index": 53 + }, + "region": { + "startLine": 81 + } + }, + "logicalLocations": [ + { + "index": 320, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Invocation.ToolNotifications" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Usage", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Graph..ctor(Microsoft.CodeAnalysis.Sarif.Graph)": { - "name": ".ctor(Microsoft.CodeAnalysis.Sarif.Graph)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Graph", - "kind": "member" - }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Graph..ctor(System.String,Microsoft.CodeAnalysis.Sarif.Message,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IDictionary`2)": { - "name": ".ctor(System.String,Microsoft.CodeAnalysis.Sarif.Message,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IDictionary`2)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Graph", - "kind": "member" - }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Graph.Edges": { - "name": "Edges", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Graph", - "kind": "member" - }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Graph.Nodes": { - "name": "Nodes", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Graph", - "kind": "member" - }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.GraphEqualityComparer": { - "name": "GraphEqualityComparer", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif", - "kind": "type" + { + "ruleId": "CA1502", + "message": { + "text": "'InvocationEqualityComparer.Equals(Invocation, Invocation)' has a cyclomatic complexity of 68. Rewrite or refactor the method to reduce complexity to 25." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/InvocationEqualityComparer.cs", + "index": 55 + }, + "region": { + "startLine": 20 + } + }, + "logicalLocations": [ + { + "index": 322, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.InvocationEqualityComparer.Equals(Microsoft.CodeAnalysis.Sarif.Invocation,Microsoft.CodeAnalysis.Sarif.Invocation)" + } + ] + } + ], + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Maintainability", + "FixCategory": "NonBreaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.GraphEqualityComparer.Equals(Microsoft.CodeAnalysis.Sarif.Graph,Microsoft.CodeAnalysis.Sarif.Graph)": { - "name": "Equals(Microsoft.CodeAnalysis.Sarif.Graph,Microsoft.CodeAnalysis.Sarif.Graph)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.GraphEqualityComparer", - "kind": "member" + { + "ruleId": "CA1809", + "message": { + "text": "'InvocationEqualityComparer.Equals(Invocation, Invocation)' has 65 local variables, 56 of which were generated by the compiler. Refactor 'InvocationEqualityComparer.Equals(Invocation, Invocation)' so that it uses fewer than 64 local variables.", + "id": "Compiler" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/InvocationEqualityComparer.cs", + "index": 55 + }, + "region": { + "startLine": 20 + } + }, + "logicalLocations": [ + { + "index": 322, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.InvocationEqualityComparer.Equals(Microsoft.CodeAnalysis.Sarif.Invocation,Microsoft.CodeAnalysis.Sarif.Invocation)" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "Compiler" + }, + "properties": { + "Category": "Microsoft.Performance", + "FixCategory": "NonBreaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.GraphTraversal": { - "name": "GraphTraversal", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif", - "kind": "type" + { + "ruleId": "CA1502", + "message": { + "text": "'InvocationEqualityComparer.GetHashCode(Invocation)' has a cyclomatic complexity of 42. Rewrite or refactor the method to reduce complexity to 25." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/InvocationEqualityComparer.cs", + "index": 55 + }, + "region": { + "startLine": 274 + } + }, + "logicalLocations": [ + { + "index": 323, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.InvocationEqualityComparer.GetHashCode(Microsoft.CodeAnalysis.Sarif.Invocation)" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Maintainability", + "FixCategory": "NonBreaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.GraphTraversal..ctor(Microsoft.CodeAnalysis.Sarif.GraphTraversal)": { - "name": ".ctor(Microsoft.CodeAnalysis.Sarif.GraphTraversal)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.GraphTraversal", - "kind": "member" + { + "ruleId": "CA1024", + "message": { + "text": "FxCop results that have been suppressed do not contain a message string." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + } + }, + "logicalLocations": [ + { + "index": 325, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.IOptionsProvider.GetOptions()" + } + ] + } + ], + "suppressions": [ + { + "kind": "inSource" + } + ], + "properties": { + "Category": "Microsoft.Design", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.GraphTraversal..ctor(System.String,Microsoft.CodeAnalysis.Sarif.Message,System.Collections.Generic.IDictionary`2,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IDictionary`2)": { - "name": ".ctor(System.String,Microsoft.CodeAnalysis.Sarif.Message,System.Collections.Generic.IDictionary`2,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IDictionary`2)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.GraphTraversal", - "kind": "member" + { + "ruleId": "CA1704", + "message": { + "text": "Correct the spelling of 'Sarif' in type name 'ISarifNode'.", + "id": "Type" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + } + }, + "logicalLocations": [ + { + "index": 326, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.ISarifNode" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "Sarif#Type" + }, + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.GraphTraversal.EdgeTraversals": { - "name": "EdgeTraversals", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.GraphTraversal", - "kind": "member" + { + "ruleId": "CA1704", + "message": { + "text": "Correct the spelling of 'Sarif' in member name 'ISarifNode.SarifNodeKind' or remove it entirely if it represents any sort of Hungarian notation.", + "id": "Member" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + } + }, + "logicalLocations": [ + { + "index": 327, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.ISarifNode.SarifNodeKind" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "Sarif#Member" + }, + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.GraphTraversal.InitialState": { - "name": "InitialState", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.GraphTraversal", - "kind": "member" + { + "ruleId": "CA2214", + "message": { + "text": "'Location.Location(Location)' contains a call chain that results in a call to a virtual method defined by the class. Review the following call stack for unintended consequences: \r\n\r\nLocation..ctor(Location)\r\nLocation.Init(PhysicalLocation, String, Message, IEnumerable, IDictionary):Void\r\nPropertyBagHolder.set_Properties(IDictionary):Void" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/Location.cs", + "index": 56 + }, + "region": { + "startLine": 104 + } + }, + "logicalLocations": [ + { + "index": 329, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Location..ctor(Microsoft.CodeAnalysis.Sarif.Location)" + } + ] + } + ], + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Usage", + "FixCategory": "NonBreaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.GraphTraversalEqualityComparer": { - "name": "GraphTraversalEqualityComparer", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif", - "kind": "type" + { + "ruleId": "CA2214", + "message": { + "text": "'Location.Location(PhysicalLocation, string, Message, IEnumerable, IDictionary)' contains a call chain that results in a call to a virtual method defined by the class. Review the following call stack for unintended consequences: \r\n\r\nLocation..ctor(PhysicalLocation, String, Message, IEnumerable, IDictionary)\r\nLocation.Init(PhysicalLocation, String, Message, IEnumerable, IDictionary):Void\r\nPropertyBagHolder.set_Properties(IDictionary):Void" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/Location.cs", + "index": 56 + }, + "region": { + "startLine": 90 + } + }, + "logicalLocations": [ + { + "index": 330, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Location..ctor(Microsoft.CodeAnalysis.Sarif.PhysicalLocation,System.String,Microsoft.CodeAnalysis.Sarif.Message,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IDictionary`2)" + } + ] + } + ], + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Usage", + "FixCategory": "NonBreaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.GraphTraversalEqualityComparer.Equals(Microsoft.CodeAnalysis.Sarif.GraphTraversal,Microsoft.CodeAnalysis.Sarif.GraphTraversal)": { - "name": "Equals(Microsoft.CodeAnalysis.Sarif.GraphTraversal,Microsoft.CodeAnalysis.Sarif.GraphTraversal)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.GraphTraversalEqualityComparer", - "kind": "member" + { + "ruleId": "CA2227", + "message": { + "text": "Change 'Location.Annotations' to be read-only by removing the property setter." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/Location.cs", + "index": 56 + }, + "region": { + "startLine": 57 + } + }, + "logicalLocations": [ + { + "index": 331, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Location.Annotations" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Usage", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.HashData": { - "name": "HashData", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif", - "kind": "type" + { + "ruleId": "CA2227", + "message": { + "text": "Change 'Message.Arguments' to be read-only by removing the property setter." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/Message.cs", + "index": 57 + }, + "region": { + "startLine": 62 + } + }, + "logicalLocations": [ + { + "index": 333, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Message.Arguments" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Usage", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.HashData..ctor(System.String,System.String,System.String)": { - "name": ".ctor(System.String,System.String,System.String)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.HashData", - "kind": "member" - }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.HashData.Sha1": { - "name": "Sha1", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.HashData", - "kind": "member" - }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.HashData.Sha256": { - "name": "Sha256", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.HashData", - "kind": "member" - }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.HashUtilities": { - "name": "HashUtilities", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif", - "kind": "type" + { + "ruleId": "CA1062", + "message": { + "text": "FxCop results that have been suppressed do not contain a message string." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + } + }, + "logicalLocations": [ + { + "index": 335, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.MultiplyByPrimesHash.AddRange(System.Collections.Generic.IEnumerable`1)" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "0" + }, + "suppressions": [ + { + "kind": "inSource" + } + ], + "properties": { + "Category": "Microsoft.Design", + "FixCategory": "DependsOnFix" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.HashUtilities.ComputeHashes(System.String)": { - "name": "ComputeHashes(System.String)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.HashUtilities", - "kind": "member" + { + "ruleId": "CA1062", + "message": { + "text": "FxCop results that have been suppressed do not contain a message string." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + } + }, + "logicalLocations": [ + { + "index": 336, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.MultiplyByPrimesHash.AddRange(System.Collections.IEnumerable)" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "0" + }, + "suppressions": [ + { + "kind": "inSource" + } + ], + "properties": { + "Category": "Microsoft.Design", + "FixCategory": "DependsOnFix" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.HashUtilities.ComputeMD5Hash(System.String)": { - "name": "ComputeMD5Hash(System.String)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.HashUtilities", - "kind": "member" + { + "ruleId": "CA1062", + "message": { + "text": "FxCop results that have been suppressed do not contain a message string." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + } + }, + "logicalLocations": [ + { + "index": 337, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.MultiplyByPrimesHash.AddRange(System.Int32[])" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "0" + }, + "suppressions": [ + { + "kind": "inSource" + } + ], + "properties": { + "Category": "Microsoft.Design", + "FixCategory": "DependsOnFix" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.HashUtilities.ComputeSha1Hash(System.String)": { - "name": "ComputeSha1Hash(System.String)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.HashUtilities", - "kind": "member" + { + "ruleId": "CA1062", + "message": { + "text": "FxCop results that have been suppressed do not contain a message string." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + } + }, + "logicalLocations": [ + { + "index": 339, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.NewLineIndex..ctor(System.String)" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "0" + }, + "suppressions": [ + { + "kind": "inSource" + } + ], + "properties": { + "Category": "Microsoft.Design", + "FixCategory": "DependsOnFix" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.HashUtilities.ComputeSha256Hash(System.String)": { - "name": "ComputeSha256Hash(System.String)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.HashUtilities", - "kind": "member" + { + "ruleId": "CA2214", + "message": { + "text": "'Node.Node(Node)' contains a call chain that results in a call to a virtual method defined by the class. Review the following call stack for unintended consequences: \r\n\r\nNode..ctor(Node)\r\nNode.Init(String, Message, Location, IEnumerable, IDictionary):Void\r\nPropertyBagHolder.set_Properties(IDictionary):Void" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/Node.cs", + "index": 58 + }, + "region": { + "startLine": 104 + } + }, + "logicalLocations": [ + { + "index": 341, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Node..ctor(Microsoft.CodeAnalysis.Sarif.Node)" + } + ] + } + ], + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Usage", + "FixCategory": "NonBreaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.IAnalysisContext": { - "name": "IAnalysisContext", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif", - "kind": "type" + { + "ruleId": "CA2214", + "message": { + "text": "'Node.Node(string, Message, Location, IEnumerable, IDictionary)' contains a call chain that results in a call to a virtual method defined by the class. Review the following call stack for unintended consequences: \r\n\r\nNode..ctor(String, Message, Location, IEnumerable, IDictionary)\r\nNode.Init(String, Message, Location, IEnumerable, IDictionary):Void\r\nPropertyBagHolder.set_Properties(IDictionary):Void" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/Node.cs", + "index": 58 + }, + "region": { + "startLine": 90 + } + }, + "logicalLocations": [ + { + "index": 342, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Node..ctor(System.String,Microsoft.CodeAnalysis.Sarif.Message,Microsoft.CodeAnalysis.Sarif.Location,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IDictionary`2)" + } + ] + } + ], + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Usage", + "FixCategory": "NonBreaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.IAnalysisContext.Policy": { - "name": "Policy", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.IAnalysisContext", - "kind": "member" + { + "ruleId": "CA2227", + "message": { + "text": "Change 'Node.Children' to be read-only by removing the property setter." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/Node.cs", + "index": 58 + }, + "region": { + "startLine": 57 + } + }, + "logicalLocations": [ + { + "index": 343, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Node.Children" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Usage", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.IFileSystem": { - "name": "IFileSystem", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif", - "kind": "type" + { + "ruleId": "CA1704", + "message": { + "text": "Correct the spelling of 'Msg' in member name 'Notes.Msg001AnalyzingTarget' or remove it entirely if it represents any sort of Hungarian notation.", + "id": "Member" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + } + }, + "logicalLocations": [ + { + "index": 345, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Notes.Msg001AnalyzingTarget" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "Msg#Member" + }, + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.IFileSystem.WriteAllBytes(System.String,System.Byte[])": { - "name": "WriteAllBytes(System.String,System.Byte[])", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.IFileSystem", - "kind": "member" + { + "ruleId": "CA2214", + "message": { + "text": "'Notification.Notification(Notification)' contains a call chain that results in a call to a virtual method defined by the class. Review the following call stack for unintended consequences: \r\n\r\nNotification..ctor(Notification)\r\nNotification.Init(String, String, PhysicalLocation, Message, FailureLevel, Int32, DateTime, ExceptionData, IDictionary):Void\r\nPropertyBagHolder.set_Properties(IDictionary):Void" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/Notification.cs", + "index": 59 + }, + "region": { + "startLine": 140 + } + }, + "logicalLocations": [ + { + "index": 347, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Notification..ctor(Microsoft.CodeAnalysis.Sarif.Notification)" + } + ] + } + ], + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Usage", + "FixCategory": "NonBreaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.IMarker": { - "name": "IMarker", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif", - "kind": "type" + { + "ruleId": "CA2214", + "message": { + "text": "'Notification.Notification(string, string, PhysicalLocation, Message, FailureLevel, int, DateTime, ExceptionData, IDictionary)' contains a call chain that results in a call to a virtual method defined by the class. Review the following call stack for unintended consequences: \r\n\r\nNotification..ctor(String, String, PhysicalLocation, Message, FailureLevel, Int32, DateTime, ExceptionData, IDictionary)\r\nNotification.Init(String, String, PhysicalLocation, Message, FailureLevel, Int32, DateTime, ExceptionData, IDictionary):Void\r\nPropertyBagHolder.set_Properties(IDictionary):Void" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/Notification.cs", + "index": 59 + }, + "region": { + "startLine": 126 + } + }, + "logicalLocations": [ + { + "index": 348, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Notification..ctor(System.String,System.String,Microsoft.CodeAnalysis.Sarif.PhysicalLocation,Microsoft.CodeAnalysis.Sarif.Message,Microsoft.CodeAnalysis.Sarif.FailureLevel,System.Int32,System.DateTime,Microsoft.CodeAnalysis.Sarif.ExceptionData,System.Collections.Generic.IDictionary`2)" + } + ] + } + ], + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Usage", + "FixCategory": "NonBreaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.IntegerSet": { - "name": "IntegerSet", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif", - "kind": "type" - }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Invocation": { - "name": "Invocation", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif", - "kind": "type" - }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Invocation..ctor(Microsoft.CodeAnalysis.Sarif.Invocation)": { - "name": ".ctor(Microsoft.CodeAnalysis.Sarif.Invocation)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Invocation", - "kind": "member" + { + "ruleId": "CA1028", + "message": { + "text": "If possible, make the underlying type of 'OptionallyEmittedData' Int32 instead of 'uint'. Otherwise consider Byte, Int16, or Int64.", + "id": "NotIntegral" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + } + }, + "logicalLocations": [ + { + "index": 349, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.OptionallyEmittedData" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "NotIntegral" + }, + "properties": { + "Category": "Microsoft.Design", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Invocation..ctor(System.Collections.Generic.IEnumerable`1,System.String,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,System.DateTime,System.DateTime,System.Int32,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,System.String,System.String,System.Int32,System.String,System.Boolean,System.String,System.String,System.Int32,Microsoft.CodeAnalysis.Sarif.FileLocation,System.String,System.Collections.Generic.IDictionary`2,Microsoft.CodeAnalysis.Sarif.FileLocation,Microsoft.CodeAnalysis.Sarif.FileLocation,Microsoft.CodeAnalysis.Sarif.FileLocation,Microsoft.CodeAnalysis.Sarif.FileLocation,System.Collections.Generic.IDictionary`2)": { - "name": ".ctor(System.Collections.Generic.IEnumerable`1,System.String,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,System.DateTime,System.DateTime,System.Int32,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,System.String,System.String,System.Int32,System.String,System.Boolean,System.String,System.String,System.Int32,Microsoft.CodeAnalysis.Sarif.FileLocation,System.String,System.Collections.Generic.IDictionary`2,Microsoft.CodeAnalysis.Sarif.FileLocation,Microsoft.CodeAnalysis.Sarif.FileLocation,Microsoft.CodeAnalysis.Sarif.FileLocation,Microsoft.CodeAnalysis.Sarif.FileLocation,System.Collections.Generic.IDictionary`2)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Invocation", - "kind": "member" + { + "ruleId": "CA1714", + "level": "error", + "message": { + "text": "If enumeration name 'OptionallyEmittedData' is singular, change it to a plural form." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + } + }, + "logicalLocations": [ + { + "index": 349, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.OptionallyEmittedData" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Invocation.Arguments": { - "name": "Arguments", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Invocation", - "kind": "member" + { + "ruleId": "CA2240", + "level": "error", + "message": { + "text": "Add an implementation of GetObjectData to type 'PropertiesDictionary'." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + } + }, + "logicalLocations": [ + { + "index": 350, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.PropertiesDictionary" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Usage", + "FixCategory": "NonBreaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Invocation.Attachments": { - "name": "Attachments", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Invocation", - "kind": "member" + { + "ruleId": "CA3053", + "message": { + "text": "FxCop results that have been suppressed do not contain a message string." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + } + }, + "logicalLocations": [ + { + "index": 351, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.PropertiesDictionary.LoadFromXml(System.IO.Stream)" + } + ] + } + ], + "suppressions": [ + { + "kind": "inSource" + } + ], + "properties": { + "Category": "Microsoft.Security.Xml", + "FixCategory": "NonBreaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Invocation.ConfigurationNotifications": { - "name": "ConfigurationNotifications", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Invocation", - "kind": "member" + { + "ruleId": "CA1026", + "level": "error", + "message": { + "text": "Replace method 'PropertiesDictionary.SaveToJson(string, bool)' with an overload that supplies all default arguments." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/PropertiesDictionary.cs", + "index": 60 + }, + "region": { + "startLine": 152 + } + }, + "logicalLocations": [ + { + "index": 352, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.PropertiesDictionary.SaveToJson(System.String,System.Boolean)" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Design", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Invocation.Create(System.Boolean,System.Collections.Generic.IEnumerable`1)": { - "name": "Create(System.Boolean,System.Collections.Generic.IEnumerable`1)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Invocation", - "kind": "member" + { + "ruleId": "CA1800", + "message": { + "text": "'result', a variable, is cast to type 'JToken' multiple times in method 'PropertiesDictionary.TryGetProperty(string, out T)'. Cache the result of the 'as' operator or direct cast in order to eliminate the redundant castclass instruction.", + "id": "Local" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/PropertiesDictionary.cs", + "index": 60 + }, + "region": { + "startLine": 111 + } + }, + "logicalLocations": [ + { + "index": 353, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.PropertiesDictionary.TryGetProperty`1(System.String,!!0&)" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "Local" + }, + "properties": { + "Category": "Microsoft.Performance", + "FixCategory": "NonBreaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Invocation.EnvironmentVariables": { - "name": "EnvironmentVariables", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Invocation", - "kind": "member" + { + "ruleId": "CA1307", + "level": "error", + "message": { + "text": "Because the behavior of 'string.StartsWith(string)' could vary based on the current user's locale settings, replace this call in 'PropertyBagHolder.SetProperty(string, T)' with a call to 'string.StartsWith(string, StringComparison)'. If the result of 'string.StartsWith(string, StringComparison)' will be displayed to the user, such as when sorting a list of items for display in a list box, specify 'StringComparison.CurrentCulture' or 'StringComparison.CurrentCultureIgnoreCase' as the 'StringComparison' parameter. If comparing case-insensitive identifiers, such as file paths, environment variables, or registry keys and values, specify 'StringComparison.OrdinalIgnoreCase'. Otherwise, if comparing case-sensitive identifiers, specify 'StringComparison.Ordinal'." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Core/PropertyBagHolder.cs", + "index": 61 + }, + "region": { + "startLine": 130 + } + }, + "logicalLocations": [ + { + "index": 355, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.PropertyBagHolder.SetProperty`1(System.String,!!0)" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "System.String.StartsWith(System.String)" + }, + "properties": { + "Category": "Microsoft.Globalization", + "FixCategory": "NonBreaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Invocation.Init(System.Collections.Generic.IEnumerable`1,System.String,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,System.DateTime,System.DateTime,System.Int32,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,System.String,System.String,System.Int32,System.String,System.Boolean,System.String,System.String,System.Int32,Microsoft.CodeAnalysis.Sarif.FileLocation,System.String,System.Collections.Generic.IDictionary`2,Microsoft.CodeAnalysis.Sarif.FileLocation,Microsoft.CodeAnalysis.Sarif.FileLocation,Microsoft.CodeAnalysis.Sarif.FileLocation,Microsoft.CodeAnalysis.Sarif.FileLocation,System.Collections.Generic.IDictionary`2)": { - "name": "Init(System.Collections.Generic.IEnumerable`1,System.String,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,System.DateTime,System.DateTime,System.Int32,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,System.String,System.String,System.Int32,System.String,System.Boolean,System.String,System.String,System.Int32,Microsoft.CodeAnalysis.Sarif.FileLocation,System.String,System.Collections.Generic.IDictionary`2,Microsoft.CodeAnalysis.Sarif.FileLocation,Microsoft.CodeAnalysis.Sarif.FileLocation,Microsoft.CodeAnalysis.Sarif.FileLocation,Microsoft.CodeAnalysis.Sarif.FileLocation,System.Collections.Generic.IDictionary`2)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Invocation", - "kind": "member" + { + "ruleId": "CA1307", + "level": "error", + "message": { + "text": "Because the behavior of 'string.StartsWith(string)' could vary based on the current user's locale settings, replace this call in 'PropertyBagHolder.SetProperty(string, T)' with a call to 'string.StartsWith(string, StringComparison)'. If the result of 'string.StartsWith(string, StringComparison)' will be displayed to the user, such as when sorting a list of items for display in a list box, specify 'StringComparison.CurrentCulture' or 'StringComparison.CurrentCultureIgnoreCase' as the 'StringComparison' parameter. If comparing case-insensitive identifiers, such as file paths, environment variables, or registry keys and values, specify 'StringComparison.OrdinalIgnoreCase'. Otherwise, if comparing case-sensitive identifiers, specify 'StringComparison.Ordinal'." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Core/PropertyBagHolder.cs", + "index": 61 + }, + "region": { + "startLine": 134 + } + }, + "logicalLocations": [ + { + "index": 355, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.PropertyBagHolder.SetProperty`1(System.String,!!0)" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "System.String.StartsWith(System.String)" + }, + "properties": { + "Category": "Microsoft.Globalization", + "FixCategory": "NonBreaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Invocation.ResponseFiles": { - "name": "ResponseFiles", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Invocation", - "kind": "member" + { + "ruleId": "CA1062", + "message": { + "text": "In externally visible method 'PropertyBagHolder.SetProperty(string, T)', validate parameter 'propertyName' before using it." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Core/PropertyBagHolder.cs", + "index": 61 + }, + "region": { + "startLine": 130 + } + }, + "logicalLocations": [ + { + "index": 355, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.PropertyBagHolder.SetProperty`1(System.String,!!0)" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "0" + }, + "properties": { + "Category": "Microsoft.Design", + "FixCategory": "DependsOnFix" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Invocation.Stderr": { - "name": "Stderr", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Invocation", - "kind": "member" + { + "ruleId": "CA1720", + "level": "error", + "message": { + "text": "In member 'Region.Region(int, int, int, int, int, int, int, int, FileContent, Message)', consider replacing the data type identifier 'byte' in parameter name 'byteLength' with a more generic term, such as 'value'.", + "id": "LanguageIndependentMemberParameter" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/Region.cs", + "index": 62 + }, + "region": { + "startLine": 134 + } + }, + "logicalLocations": [ + { + "index": 357, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Region..ctor(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,Microsoft.CodeAnalysis.Sarif.FileContent,Microsoft.CodeAnalysis.Sarif.Message)" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "byte#LanguageIndependentMemberParameter" + }, + "properties": { + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Invocation.Stdin": { - "name": "Stdin", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Invocation", - "kind": "member" - }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Invocation.Stdout": { - "name": "Stdout", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Invocation", - "kind": "member" - }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Invocation.StdoutStderr": { - "name": "StdoutStderr", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Invocation", - "kind": "member" - }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Invocation.ToolNotifications": { - "name": "ToolNotifications", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Invocation", - "kind": "member" + { + "ruleId": "CA1720", + "level": "error", + "message": { + "text": "In member 'Region.Region(int, int, int, int, int, int, int, int, FileContent, Message)', consider replacing the data type identifier 'byte' in parameter name 'byteOffset' with a more generic term, such as 'value'.", + "id": "LanguageIndependentMemberParameter" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/Region.cs", + "index": 62 + }, + "region": { + "startLine": 134 + } + }, + "logicalLocations": [ + { + "index": 357, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Region..ctor(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,Microsoft.CodeAnalysis.Sarif.FileContent,Microsoft.CodeAnalysis.Sarif.Message)" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "byte#LanguageIndependentMemberParameter" + }, + "properties": { + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.InvocationEqualityComparer": { - "name": "InvocationEqualityComparer", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif", - "kind": "type" + { + "ruleId": "CA1724", + "level": "error", + "message": { + "text": "The type name 'Resources' conflicts in whole or in part with the namespace name 'System.Resources' defined in the .NET Framework. Rename the type to eliminate the conflict.", + "id": "System" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + } + }, + "logicalLocations": [ + { + "index": 358, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Resources" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "System" + }, + "properties": { + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.InvocationEqualityComparer.Equals(Microsoft.CodeAnalysis.Sarif.Invocation,Microsoft.CodeAnalysis.Sarif.Invocation)": { - "name": "Equals(Microsoft.CodeAnalysis.Sarif.Invocation,Microsoft.CodeAnalysis.Sarif.Invocation)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.InvocationEqualityComparer", - "kind": "member" + { + "ruleId": "CA2227", + "message": { + "text": "Change 'Resources.MessageStrings' to be read-only by removing the property setter." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/Resources.cs", + "index": 63 + }, + "region": { + "startLine": 39 + } + }, + "logicalLocations": [ + { + "index": 359, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Resources.MessageStrings" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Usage", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.InvocationEqualityComparer.GetHashCode(Microsoft.CodeAnalysis.Sarif.Invocation)": { - "name": "GetHashCode(Microsoft.CodeAnalysis.Sarif.Invocation)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.InvocationEqualityComparer", - "kind": "member" + { + "ruleId": "CA2227", + "message": { + "text": "Change 'Resources.Rules' to be read-only by removing the property setter." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/Resources.cs", + "index": 63 + }, + "region": { + "startLine": 45 + } + }, + "logicalLocations": [ + { + "index": 360, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Resources.Rules" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Usage", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.IOptionsProvider": { - "name": "IOptionsProvider", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif", - "kind": "type" + { + "ruleId": "CA2214", + "message": { + "text": "'Result.Result(Result)' contains a call chain that results in a call to a virtual method defined by the class. Review the following call stack for unintended consequences: \r\n\r\nResult..ctor(Result)\r\nResult.Init(String, ResultLevel, Message, String, FileLocation, IEnumerable, String, String, IDictionary, IDictionary, IEnumerable, IEnumerable, IEnumerable, IEnumerable, IEnumerable, SuppressionStates, BaselineState, IEnumerable, IEnumerable, IEnumerable, IEnumerable, IDictionary):Void\r\nPropertyBagHolder.set_Properties(IDictionary):Void" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/Result.cs", + "index": 64 + }, + "region": { + "startLine": 253 + } + }, + "logicalLocations": [ + { + "index": 362, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Result..ctor(Microsoft.CodeAnalysis.Sarif.Result)" + } + ] + } + ], + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Usage", + "FixCategory": "NonBreaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.IOptionsProvider.GetOptions()": { - "name": "GetOptions()", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.IOptionsProvider", - "kind": "member" + { + "ruleId": "CA2214", + "message": { + "text": "'Result.Result(string, ResultLevel, Message, string, FileLocation, IEnumerable, string, string, IDictionary, IDictionary, IEnumerable, IEnumerable, IEnumerable, IEnumerable, IEnumerable, SuppressionStates, BaselineState, IEnumerable, IEnumerable, IEnumerable, IEnumerable, IDictionary)' contains a call chain that results in a call to a virtual method defined by the class. Review the following call stack for unintended consequences: \r\n\r\nResult..ctor(String, ResultLevel, Message, String, FileLocation, IEnumerable, String, String, IDictionary, IDictionary, IEnumerable, IEnumerable, IEnumerable, IEnumerable, IEnumerable, SuppressionStates, BaselineState, IEnumerable, IEnumerable, IEnumerable, IEnumerable, IDictionary)\r\nResult.Init(String, ResultLevel, Message, String, FileLocation, IEnumerable, String, String, IDictionary, IDictionary, IEnumerable, IEnumerable, IEnumerable, IEnumerable, IEnumerable, SuppressionStates, BaselineState, IEnumerable, IEnumerable, IEnumerable, IEnumerable, IDictionary):Void\r\nPropertyBagHolder.set_Properties(IDictionary):Void" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/Result.cs", + "index": 64 + }, + "region": { + "startLine": 239 + } + }, + "logicalLocations": [ + { + "index": 363, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Result..ctor(System.String,Microsoft.CodeAnalysis.Sarif.ResultLevel,Microsoft.CodeAnalysis.Sarif.Message,System.String,Microsoft.CodeAnalysis.Sarif.FileLocation,System.Collections.Generic.IEnumerable`1,System.String,System.String,System.Collections.Generic.IDictionary`2,System.Collections.Generic.IDictionary`2,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,Microsoft.CodeAnalysis.Sarif.SuppressionStates,Microsoft.CodeAnalysis.Sarif.BaselineState,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IDictionary`2)" + } + ] + } + ], + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Usage", + "FixCategory": "NonBreaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.ISarifNode": { - "name": "ISarifNode", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif", - "kind": "type" + { + "ruleId": "CA2227", + "message": { + "text": "Change 'Result.Attachments' to be read-only by removing the property setter." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/Result.cs", + "index": 64 + }, + "region": { + "startLine": 137 + } + }, + "logicalLocations": [ + { + "index": 364, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Result.Attachments" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Usage", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.ISarifNode.SarifNodeKind": { - "name": "SarifNodeKind", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.ISarifNode", - "kind": "member" + { + "ruleId": "CA2227", + "message": { + "text": "Change 'Result.CodeFlows' to be read-only by removing the property setter." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/Result.cs", + "index": 64 + }, + "region": { + "startLine": 105 + } + }, + "logicalLocations": [ + { + "index": 365, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Result.CodeFlows" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Usage", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Location": { - "name": "Location", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif", - "kind": "type" + { + "ruleId": "CA2227", + "message": { + "text": "Change 'Result.ConversionProvenance' to be read-only by removing the property setter." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/Result.cs", + "index": 64 + }, + "region": { + "startLine": 149 + } + }, + "logicalLocations": [ + { + "index": 366, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Result.ConversionProvenance" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Usage", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Location..ctor(Microsoft.CodeAnalysis.Sarif.Location)": { - "name": ".ctor(Microsoft.CodeAnalysis.Sarif.Location)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Location", - "kind": "member" + { + "ruleId": "CA2227", + "message": { + "text": "Change 'Result.Fingerprints' to be read-only by removing the property setter." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/Result.cs", + "index": 64 + }, + "region": { + "startLine": 93 + } + }, + "logicalLocations": [ + { + "index": 367, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Result.Fingerprints" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Usage", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Location..ctor(Microsoft.CodeAnalysis.Sarif.PhysicalLocation,System.String,Microsoft.CodeAnalysis.Sarif.Message,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IDictionary`2)": { - "name": ".ctor(Microsoft.CodeAnalysis.Sarif.PhysicalLocation,System.String,Microsoft.CodeAnalysis.Sarif.Message,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IDictionary`2)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Location", - "kind": "member" - }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Location.Annotations": { - "name": "Annotations", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Location", - "kind": "member" - }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Message": { - "name": "Message", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif", - "kind": "type" - }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Message.Arguments": { - "name": "Arguments", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Message", - "kind": "member" - }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.MultiplyByPrimesHash": { - "name": "MultiplyByPrimesHash", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif", - "kind": "type" - }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.MultiplyByPrimesHash.AddRange(System.Collections.Generic.IEnumerable`1)": { - "name": "AddRange(System.Collections.Generic.IEnumerable`1)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.MultiplyByPrimesHash", - "kind": "member" + { + "ruleId": "CA2227", + "message": { + "text": "Change 'Result.Fixes' to be read-only by removing the property setter." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/Result.cs", + "index": 64 + }, + "region": { + "startLine": 155 + } + }, + "logicalLocations": [ + { + "index": 368, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Result.Fixes" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Usage", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.MultiplyByPrimesHash.AddRange(System.Collections.IEnumerable)": { - "name": "AddRange(System.Collections.IEnumerable)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.MultiplyByPrimesHash", - "kind": "member" + { + "ruleId": "CA2227", + "message": { + "text": "Change 'Result.Graphs' to be read-only by removing the property setter." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/Result.cs", + "index": 64 + }, + "region": { + "startLine": 111 + } + }, + "logicalLocations": [ + { + "index": 369, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Result.Graphs" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Usage", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.MultiplyByPrimesHash.AddRange(System.Int32[])": { - "name": "AddRange(System.Int32[])", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.MultiplyByPrimesHash", - "kind": "member" + { + "ruleId": "CA2227", + "message": { + "text": "Change 'Result.GraphTraversals' to be read-only by removing the property setter." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/Result.cs", + "index": 64 + }, + "region": { + "startLine": 117 + } + }, + "logicalLocations": [ + { + "index": 370, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Result.GraphTraversals" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Usage", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.NewLineIndex": { - "name": "NewLineIndex", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif", - "kind": "type" + { + "ruleId": "CA1502", + "message": { + "text": "'Result.Init(string, ResultLevel, Message, string, FileLocation, IEnumerable, string, string, IDictionary, IDictionary, IEnumerable, IEnumerable, IEnumerable, IEnumerable, IEnumerable, SuppressionStates, BaselineState, IEnumerable, IEnumerable, IEnumerable, IEnumerable, IDictionary)' has a cyclomatic complexity of 45. Rewrite or refactor the method to reduce complexity to 25." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/Result.cs", + "index": 64 + }, + "region": { + "startLine": 282 + } + }, + "logicalLocations": [ + { + "index": 371, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Result.Init(System.String,Microsoft.CodeAnalysis.Sarif.ResultLevel,Microsoft.CodeAnalysis.Sarif.Message,System.String,Microsoft.CodeAnalysis.Sarif.FileLocation,System.Collections.Generic.IEnumerable`1,System.String,System.String,System.Collections.Generic.IDictionary`2,System.Collections.Generic.IDictionary`2,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,Microsoft.CodeAnalysis.Sarif.SuppressionStates,Microsoft.CodeAnalysis.Sarif.BaselineState,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IDictionary`2)" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Maintainability", + "FixCategory": "NonBreaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.NewLineIndex..ctor(System.String)": { - "name": ".ctor(System.String)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.NewLineIndex", - "kind": "member" + { + "ruleId": "CA2227", + "message": { + "text": "Change 'Result.Locations' to be read-only by removing the property setter." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/Result.cs", + "index": 64 + }, + "region": { + "startLine": 69 + } + }, + "logicalLocations": [ + { + "index": 372, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Result.Locations" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Usage", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Node": { - "name": "Node", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif", - "kind": "type" + { + "ruleId": "CA2227", + "message": { + "text": "Change 'Result.PartialFingerprints' to be read-only by removing the property setter." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/Result.cs", + "index": 64 + }, + "region": { + "startLine": 87 + } + }, + "logicalLocations": [ + { + "index": 373, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Result.PartialFingerprints" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Usage", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Node..ctor(Microsoft.CodeAnalysis.Sarif.Node)": { - "name": ".ctor(Microsoft.CodeAnalysis.Sarif.Node)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Node", - "kind": "member" + { + "ruleId": "CA2227", + "message": { + "text": "Change 'Result.RelatedLocations' to be read-only by removing the property setter." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/Result.cs", + "index": 64 + }, + "region": { + "startLine": 123 + } + }, + "logicalLocations": [ + { + "index": 374, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Result.RelatedLocations" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Usage", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Node..ctor(System.String,Microsoft.CodeAnalysis.Sarif.Message,Microsoft.CodeAnalysis.Sarif.Location,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IDictionary`2)": { - "name": ".ctor(System.String,Microsoft.CodeAnalysis.Sarif.Message,Microsoft.CodeAnalysis.Sarif.Location,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IDictionary`2)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Node", - "kind": "member" + { + "ruleId": "CA2227", + "message": { + "text": "Change 'Result.Stacks' to be read-only by removing the property setter." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/Result.cs", + "index": 64 + }, + "region": { + "startLine": 99 + } + }, + "logicalLocations": [ + { + "index": 375, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Result.Stacks" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Usage", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Node.Children": { - "name": "Children", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Node", - "kind": "member" + { + "ruleId": "CA2227", + "message": { + "text": "Change 'Result.WorkItemUris' to be read-only by removing the property setter." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/Result.cs", + "index": 64 + }, + "region": { + "startLine": 143 + } + }, + "logicalLocations": [ + { + "index": 376, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Result.WorkItemUris" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Usage", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Notes": { - "name": "Notes", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif", - "kind": "type" + { + "ruleId": "CA1502", + "level": "error", + "message": { + "text": "'ResultEqualityComparer.Equals(Result, Result)' has a cyclomatic complexity of 97. Rewrite or refactor the method to reduce complexity to 25." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/ResultEqualityComparer.cs", + "index": 65 + }, + "region": { + "startLine": 20 + } + }, + "logicalLocations": [ + { + "index": 378, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.ResultEqualityComparer.Equals(Microsoft.CodeAnalysis.Sarif.Result,Microsoft.CodeAnalysis.Sarif.Result)" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Maintainability", + "FixCategory": "NonBreaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Notes.Msg001AnalyzingTarget": { - "name": "Msg001AnalyzingTarget", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Notes", - "kind": "member" - }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Notification": { - "name": "Notification", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif", - "kind": "type" - }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Notification..ctor(Microsoft.CodeAnalysis.Sarif.Notification)": { - "name": ".ctor(Microsoft.CodeAnalysis.Sarif.Notification)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Notification", - "kind": "member" + { + "ruleId": "CA1809", + "message": { + "text": "'ResultEqualityComparer.Equals(Result, Result)' has 93 local variables, 77 of which were generated by the compiler. Refactor 'ResultEqualityComparer.Equals(Result, Result)' so that it uses fewer than 64 local variables.", + "id": "Compiler" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/ResultEqualityComparer.cs", + "index": 65 + }, + "region": { + "startLine": 20 + } + }, + "logicalLocations": [ + { + "index": 378, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.ResultEqualityComparer.Equals(Microsoft.CodeAnalysis.Sarif.Result,Microsoft.CodeAnalysis.Sarif.Result)" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "Compiler" + }, + "properties": { + "Category": "Microsoft.Performance", + "FixCategory": "NonBreaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Notification..ctor(System.String,System.String,Microsoft.CodeAnalysis.Sarif.PhysicalLocation,Microsoft.CodeAnalysis.Sarif.Message,Microsoft.CodeAnalysis.Sarif.FailureLevel,System.Int32,System.DateTime,Microsoft.CodeAnalysis.Sarif.ExceptionData,System.Collections.Generic.IDictionary`2)": { - "name": ".ctor(System.String,System.String,Microsoft.CodeAnalysis.Sarif.PhysicalLocation,Microsoft.CodeAnalysis.Sarif.Message,Microsoft.CodeAnalysis.Sarif.FailureLevel,System.Int32,System.DateTime,Microsoft.CodeAnalysis.Sarif.ExceptionData,System.Collections.Generic.IDictionary`2)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Notification", - "kind": "member" + { + "ruleId": "CA1505", + "message": { + "text": "'ResultEqualityComparer.Equals(Result, Result)' has a maintainability index of 14. Rewrite or refactor the method to increase its maintainability index (MI). An MI below 10 indicates poor maintainability, an MI between 10 and 20 indicates moderate maintainability, and an MI above 20 indicates good maintainability.", + "id": "Method" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/ResultEqualityComparer.cs", + "index": 65 + }, + "region": { + "startLine": 20 + } + }, + "logicalLocations": [ + { + "index": 378, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.ResultEqualityComparer.Equals(Microsoft.CodeAnalysis.Sarif.Result,Microsoft.CodeAnalysis.Sarif.Result)" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "Method" + }, + "properties": { + "Category": "Microsoft.Maintainability", + "FixCategory": "NonBreaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.OptionallyEmittedData": { - "name": "OptionallyEmittedData", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif", - "kind": "type" + { + "ruleId": "CA1502", + "message": { + "text": "'ResultEqualityComparer.GetHashCode(Result)' has a cyclomatic complexity of 60. Rewrite or refactor the method to reduce complexity to 25." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/ResultEqualityComparer.cs", + "index": 65 + }, + "region": { + "startLine": 356 + } + }, + "logicalLocations": [ + { + "index": 379, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.ResultEqualityComparer.GetHashCode(Microsoft.CodeAnalysis.Sarif.Result)" + } + ] + } + ], + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Maintainability", + "FixCategory": "NonBreaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.PropertiesDictionary": { - "name": "PropertiesDictionary", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif", - "kind": "type" + { + "ruleId": "CA1809", + "message": { + "text": "'ResultEqualityComparer.GetHashCode(Result)' has 67 local variables, 50 of which were generated by the compiler. Refactor 'ResultEqualityComparer.GetHashCode(Result)' so that it uses fewer than 64 local variables.", + "id": "Compiler" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/ResultEqualityComparer.cs", + "index": 65 + }, + "region": { + "startLine": 356 + } + }, + "logicalLocations": [ + { + "index": 379, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.ResultEqualityComparer.GetHashCode(Microsoft.CodeAnalysis.Sarif.Result)" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "Compiler" + }, + "properties": { + "Category": "Microsoft.Performance", + "FixCategory": "NonBreaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.PropertiesDictionary.LoadFromXml(System.IO.Stream)": { - "name": "LoadFromXml(System.IO.Stream)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.PropertiesDictionary", - "kind": "member" + { + "ruleId": "CA2214", + "message": { + "text": "'Rule.Rule(Rule)' contains a call chain that results in a call to a virtual method defined by the class. Review the following call stack for unintended consequences: \r\n\r\nRule..ctor(Rule)\r\nRule.Init(String, Message, Message, Message, IDictionary, IDictionary, ReportingConfiguration, Uri, Message, IDictionary):Void\r\nPropertyBagHolder.set_Properties(IDictionary):Void" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/Rule.cs", + "index": 66 + }, + "region": { + "startLine": 149 + } + }, + "logicalLocations": [ + { + "index": 381, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Rule..ctor(Microsoft.CodeAnalysis.Sarif.Rule)" + } + ] + } + ], + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Usage", + "FixCategory": "NonBreaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.PropertiesDictionary.SaveToJson(System.String,System.Boolean)": { - "name": "SaveToJson(System.String,System.Boolean)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.PropertiesDictionary", - "kind": "member" + { + "ruleId": "CA2214", + "message": { + "text": "'Rule.Rule(string, Message, Message, Message, IDictionary, IDictionary, ReportingConfiguration, Uri, Message, IDictionary)' contains a call chain that results in a call to a virtual method defined by the class. Review the following call stack for unintended consequences: \r\n\r\nRule..ctor(String, Message, Message, Message, IDictionary, IDictionary, ReportingConfiguration, Uri, Message, IDictionary)\r\nRule.Init(String, Message, Message, Message, IDictionary, IDictionary, ReportingConfiguration, Uri, Message, IDictionary):Void\r\nPropertyBagHolder.set_Properties(IDictionary):Void" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/Rule.cs", + "index": 66 + }, + "region": { + "startLine": 135 + } + }, + "logicalLocations": [ + { + "index": 382, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Rule..ctor(System.String,Microsoft.CodeAnalysis.Sarif.Message,Microsoft.CodeAnalysis.Sarif.Message,Microsoft.CodeAnalysis.Sarif.Message,System.Collections.Generic.IDictionary`2,System.Collections.Generic.IDictionary`2,Microsoft.CodeAnalysis.Sarif.ReportingConfiguration,System.Uri,Microsoft.CodeAnalysis.Sarif.Message,System.Collections.Generic.IDictionary`2)" + } + ] + } + ], + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Usage", + "FixCategory": "NonBreaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.PropertiesDictionary.TryGetProperty`1(System.String,!!0&)": { - "name": "TryGetProperty`1(System.String,!!0&)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.PropertiesDictionary", - "kind": "member" + { + "ruleId": "CA2227", + "message": { + "text": "Change 'Rule.MessageStrings' to be read-only by removing the property setter." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/Rule.cs", + "index": 66 + }, + "region": { + "startLine": 63 + } + }, + "logicalLocations": [ + { + "index": 383, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Rule.MessageStrings" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Usage", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.PropertyBagHolder": { - "name": "PropertyBagHolder", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif", - "kind": "type" + { + "ruleId": "CA2227", + "message": { + "text": "Change 'Rule.RichMessageStrings' to be read-only by removing the property setter." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/Rule.cs", + "index": 66 + }, + "region": { + "startLine": 69 + } + }, + "logicalLocations": [ + { + "index": 384, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Rule.RichMessageStrings" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Usage", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.PropertyBagHolder.SetProperty`1(System.String,!!0)": { - "name": "SetProperty`1(System.String,!!0)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.PropertyBagHolder", - "kind": "member" + { + "ruleId": "CA2227", + "message": { + "text": "Change 'ReportingConfiguration.Parameters' to be read-only by removing the property setter." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/ReportingConfiguration.cs", + "index": 67 + }, + "region": { + "startLine": 51 + } + }, + "logicalLocations": [ + { + "index": 386, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.ReportingConfiguration.Parameters" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Usage", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Region": { - "name": "Region", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif", - "kind": "type" + { + "ruleId": "CA1502", + "message": { + "text": "'RuleEqualityComparer.Equals(Rule, Rule)' has a cyclomatic complexity of 35. Rewrite or refactor the method to reduce complexity to 25." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/RuleEqualityComparer.cs", + "index": 68 + }, + "region": { + "startLine": 20 + } + }, + "logicalLocations": [ + { + "index": 388, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.RuleEqualityComparer.Equals(Microsoft.CodeAnalysis.Sarif.Rule,Microsoft.CodeAnalysis.Sarif.Rule)" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Maintainability", + "FixCategory": "NonBreaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Region..ctor(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,Microsoft.CodeAnalysis.Sarif.FileContent,Microsoft.CodeAnalysis.Sarif.Message)": { - "name": ".ctor(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,Microsoft.CodeAnalysis.Sarif.FileContent,Microsoft.CodeAnalysis.Sarif.Message)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Region", - "kind": "member" - }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Resources": { - "name": "Resources", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif", - "kind": "type" - }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Resources.MessageStrings": { - "name": "MessageStrings", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Resources", - "kind": "member" - }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Resources.Rules": { - "name": "Rules", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Resources", - "kind": "member" + { + "ruleId": "CA1026", + "level": "error", + "message": { + "text": "Replace method 'RuleUtilities.BuildDictionary(ResourceManager, IEnumerable, string, string)' with an overload that supplies all default arguments." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/RuleUtilities.cs", + "index": 69 + }, + "region": { + "startLine": 74 + } + }, + "logicalLocations": [ + { + "index": 390, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.RuleUtilities.BuildDictionary(System.Resources.ResourceManager,System.Collections.Generic.IEnumerable`1,System.String,System.String)" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Design", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Result": { - "name": "Result", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif", - "kind": "type" + { + "ruleId": "CA1026", + "level": "error", + "message": { + "text": "Replace method 'RuleUtilities.NormalizeRuleMessageId(string, string, string)' with an overload that supplies all default arguments." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/RuleUtilities.cs", + "index": 69 + }, + "region": { + "startLine": 104 + } + }, + "logicalLocations": [ + { + "index": 391, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.RuleUtilities.NormalizeRuleMessageId(System.String,System.String,System.String)" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Design", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Result..ctor(Microsoft.CodeAnalysis.Sarif.Result)": { - "name": ".ctor(Microsoft.CodeAnalysis.Sarif.Result)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Result", - "kind": "member" + { + "ruleId": "CA2214", + "message": { + "text": "'Run.Run(Run)' contains a call chain that results in a call to a virtual method defined by the class. Review the following call stack for unintended consequences: \r\n\r\nRun..ctor(Run)\r\nRun.Init(Tool, IEnumerable, Conversion, IEnumerable, IDictionary, IDictionary, IDictionary, IEnumerable, IEnumerable, Resources, String, String, Message, String, String, String, String, String, String, ColumnKind, IDictionary):Void\r\nPropertyBagHolder.set_Properties(IDictionary):Void" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/Run.cs", + "index": 70 + }, + "region": { + "startLine": 248 + } + }, + "logicalLocations": [ + { + "index": 393, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Run..ctor(Microsoft.CodeAnalysis.Sarif.Run)" + } + ] + } + ], + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Usage", + "FixCategory": "NonBreaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Result..ctor(System.String,Microsoft.CodeAnalysis.Sarif.ResultLevel,Microsoft.CodeAnalysis.Sarif.Message,System.String,Microsoft.CodeAnalysis.Sarif.FileLocation,System.Collections.Generic.IEnumerable`1,System.String,System.String,System.Collections.Generic.IDictionary`2,System.Collections.Generic.IDictionary`2,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,Microsoft.CodeAnalysis.Sarif.SuppressionStates,Microsoft.CodeAnalysis.Sarif.BaselineState,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IDictionary`2)": { - "name": ".ctor(System.String,Microsoft.CodeAnalysis.Sarif.ResultLevel,Microsoft.CodeAnalysis.Sarif.Message,System.String,Microsoft.CodeAnalysis.Sarif.FileLocation,System.Collections.Generic.IEnumerable`1,System.String,System.String,System.Collections.Generic.IDictionary`2,System.Collections.Generic.IDictionary`2,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,Microsoft.CodeAnalysis.Sarif.SuppressionStates,Microsoft.CodeAnalysis.Sarif.BaselineState,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IDictionary`2)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Result", - "kind": "member" + { + "ruleId": "CA2214", + "message": { + "text": "'Run.Run(Tool, IEnumerable, Conversion, IEnumerable, IDictionary, IDictionary, IDictionary, IEnumerable, IEnumerable, Resources, string, string, Message, string, string, string, string, string, string, ColumnKind, IDictionary)' contains a call chain that results in a call to a virtual method defined by the class. Review the following call stack for unintended consequences: \r\n\r\nRun..ctor(Tool, IEnumerable, Conversion, IEnumerable, IDictionary, IDictionary, IDictionary, IEnumerable, IEnumerable, Resources, String, String, Message, String, String, String, String, String, String, ColumnKind, IDictionary)\r\nRun.Init(Tool, IEnumerable, Conversion, IEnumerable, IDictionary, IDictionary, IDictionary, IEnumerable, IEnumerable, Resources, String, String, Message, String, String, String, String, String, String, ColumnKind, IDictionary):Void\r\nPropertyBagHolder.set_Properties(IDictionary):Void" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/Run.cs", + "index": 70 + }, + "region": { + "startLine": 234 + } + }, + "logicalLocations": [ + { + "index": 394, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Run..ctor(Microsoft.CodeAnalysis.Sarif.Tool,System.Collections.Generic.IEnumerable`1,Microsoft.CodeAnalysis.Sarif.Conversion,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IDictionary`2,System.Collections.Generic.IDictionary`2,System.Collections.Generic.IDictionary`2,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,Microsoft.CodeAnalysis.Sarif.Resources,System.String,System.String,Microsoft.CodeAnalysis.Sarif.Message,System.String,System.String,System.String,System.String,System.String,System.String,Microsoft.CodeAnalysis.Sarif.ColumnKind,System.Collections.Generic.IDictionary`2)" + } + ] + } + ], + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Usage", + "FixCategory": "NonBreaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Result.Attachments": { - "name": "Attachments", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Result", - "kind": "member" + { + "ruleId": "CA2227", + "message": { + "text": "Change 'Run.Files' to be read-only by removing the property setter." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/Run.cs", + "index": 70 + }, + "region": { + "startLine": 69 + } + }, + "logicalLocations": [ + { + "index": 395, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Run.Files" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Usage", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Result.CodeFlows": { - "name": "CodeFlows", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Result", - "kind": "member" + { + "ruleId": "CA2227", + "message": { + "text": "Change 'Run.Graphs' to be read-only by removing the property setter." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/Run.cs", + "index": 70 + }, + "region": { + "startLine": 81 + } + }, + "logicalLocations": [ + { + "index": 396, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Run.Graphs" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Usage", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Result.ConversionProvenance": { - "name": "ConversionProvenance", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Result", - "kind": "member" + { + "ruleId": "CA1502", + "message": { + "text": "'Run.Init(Tool, IEnumerable, Conversion, IEnumerable, IDictionary, IDictionary, IDictionary, IEnumerable, IEnumerable, Resources, string, string, Message, string, string, string, string, string, string, ColumnKind, IDictionary)' has a cyclomatic complexity of 28. Rewrite or refactor the method to reduce complexity to 25." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/Run.cs", + "index": 70 + }, + "region": { + "startLine": 277 + } + }, + "logicalLocations": [ + { + "index": 397, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Run.Init(Microsoft.CodeAnalysis.Sarif.Tool,System.Collections.Generic.IEnumerable`1,Microsoft.CodeAnalysis.Sarif.Conversion,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IDictionary`2,System.Collections.Generic.IDictionary`2,System.Collections.Generic.IDictionary`2,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,Microsoft.CodeAnalysis.Sarif.Resources,System.String,System.String,Microsoft.CodeAnalysis.Sarif.Message,System.String,System.String,System.String,System.String,System.String,System.String,Microsoft.CodeAnalysis.Sarif.ColumnKind,System.Collections.Generic.IDictionary`2)" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Maintainability", + "FixCategory": "NonBreaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Result.Fingerprints": { - "name": "Fingerprints", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Result", - "kind": "member" + { + "ruleId": "CA1801", + "message": { + "text": "Parameter 'originalUriBaseIds' of 'Run.Init(Tool, IEnumerable, Conversion, IEnumerable, IDictionary, IDictionary, IDictionary, IEnumerable, IEnumerable, Resources, string, string, Message, string, string, string, string, string, string, ColumnKind, IDictionary)' is never used. Remove the parameter or use it in the method body." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/Run.cs", + "index": 70 + }, + "region": { + "startLine": 277 + } + }, + "logicalLocations": [ + { + "index": 397, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Run.Init(Microsoft.CodeAnalysis.Sarif.Tool,System.Collections.Generic.IEnumerable`1,Microsoft.CodeAnalysis.Sarif.Conversion,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IDictionary`2,System.Collections.Generic.IDictionary`2,System.Collections.Generic.IDictionary`2,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,Microsoft.CodeAnalysis.Sarif.Resources,System.String,System.String,Microsoft.CodeAnalysis.Sarif.Message,System.String,System.String,System.String,System.String,System.String,System.String,Microsoft.CodeAnalysis.Sarif.ColumnKind,System.Collections.Generic.IDictionary`2)" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "originalUriBaseIds" + }, + "properties": { + "Category": "Microsoft.Usage", + "FixCategory": "NonBreaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Result.Fixes": { - "name": "Fixes", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Result", - "kind": "member" + { + "ruleId": "CA2227", + "message": { + "text": "Change 'Run.Invocations' to be read-only by removing the property setter." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/Run.cs", + "index": 70 + }, + "region": { + "startLine": 45 + } + }, + "logicalLocations": [ + { + "index": 398, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Run.Invocations" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Usage", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Result.Graphs": { - "name": "Graphs", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Result", - "kind": "member" + { + "ruleId": "CA2227", + "message": { + "text": "Change 'Run.LogicalLocations' to be read-only by removing the property setter." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/Run.cs", + "index": 70 + }, + "region": { + "startLine": 75 + } + }, + "logicalLocations": [ + { + "index": 399, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Run.LogicalLocations" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Usage", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Result.GraphTraversals": { - "name": "GraphTraversals", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Result", - "kind": "member" - }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Result.Init(System.String,Microsoft.CodeAnalysis.Sarif.ResultLevel,Microsoft.CodeAnalysis.Sarif.Message,System.String,Microsoft.CodeAnalysis.Sarif.FileLocation,System.Collections.Generic.IEnumerable`1,System.String,System.String,System.Collections.Generic.IDictionary`2,System.Collections.Generic.IDictionary`2,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,Microsoft.CodeAnalysis.Sarif.SuppressionStates,Microsoft.CodeAnalysis.Sarif.BaselineState,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IDictionary`2)": { - "name": "Init(System.String,Microsoft.CodeAnalysis.Sarif.ResultLevel,Microsoft.CodeAnalysis.Sarif.Message,System.String,Microsoft.CodeAnalysis.Sarif.FileLocation,System.Collections.Generic.IEnumerable`1,System.String,System.String,System.Collections.Generic.IDictionary`2,System.Collections.Generic.IDictionary`2,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,Microsoft.CodeAnalysis.Sarif.SuppressionStates,Microsoft.CodeAnalysis.Sarif.BaselineState,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IDictionary`2)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Result", - "kind": "member" - }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Result.Locations": { - "name": "Locations", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Result", - "kind": "member" - }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Result.PartialFingerprints": { - "name": "PartialFingerprints", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Result", - "kind": "member" - }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Result.RelatedLocations": { - "name": "RelatedLocations", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Result", - "kind": "member" - }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Result.Stacks": { - "name": "Stacks", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Result", - "kind": "member" + { + "ruleId": "CA2227", + "message": { + "text": "Change 'Run.OriginalUriBaseIds' to be read-only by removing the property setter." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/Run.cs", + "index": 70 + }, + "region": { + "startLine": 63 + } + }, + "logicalLocations": [ + { + "index": 400, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Run.OriginalUriBaseIds" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Usage", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Result.WorkItemUris": { - "name": "WorkItemUris", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Result", - "kind": "member" + { + "ruleId": "CA2227", + "message": { + "text": "Change 'Run.Results' to be read-only by removing the property setter." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/Run.cs", + "index": 70 + }, + "region": { + "startLine": 87 + } + }, + "logicalLocations": [ + { + "index": 401, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Run.Results" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Usage", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.ResultEqualityComparer": { - "name": "ResultEqualityComparer", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif", - "kind": "type" + { + "ruleId": "CA2227", + "message": { + "text": "Change 'Run.VersionControlProvenance' to be read-only by removing the property setter." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/Run.cs", + "index": 70 + }, + "region": { + "startLine": 57 + } + }, + "logicalLocations": [ + { + "index": 402, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Run.VersionControlProvenance" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Usage", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.ResultEqualityComparer.Equals(Microsoft.CodeAnalysis.Sarif.Result,Microsoft.CodeAnalysis.Sarif.Result)": { - "name": "Equals(Microsoft.CodeAnalysis.Sarif.Result,Microsoft.CodeAnalysis.Sarif.Result)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.ResultEqualityComparer", - "kind": "member" + { + "ruleId": "CA1502", + "message": { + "text": "'RunEqualityComparer.Equals(Run, Run)' has a cyclomatic complexity of 73. Rewrite or refactor the method to reduce complexity to 25." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/RunEqualityComparer.cs", + "index": 71 + }, + "region": { + "startLine": 20 + } + }, + "logicalLocations": [ + { + "index": 404, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.RunEqualityComparer.Equals(Microsoft.CodeAnalysis.Sarif.Run,Microsoft.CodeAnalysis.Sarif.Run)" + } + ] + } + ], + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Maintainability", + "FixCategory": "NonBreaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.ResultEqualityComparer.GetHashCode(Microsoft.CodeAnalysis.Sarif.Result)": { - "name": "GetHashCode(Microsoft.CodeAnalysis.Sarif.Result)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.ResultEqualityComparer", - "kind": "member" + { + "ruleId": "CA1809", + "message": { + "text": "'RunEqualityComparer.Equals(Run, Run)' has 68 local variables, 56 of which were generated by the compiler. Refactor 'RunEqualityComparer.Equals(Run, Run)' so that it uses fewer than 64 local variables.", + "id": "Compiler" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/RunEqualityComparer.cs", + "index": 71 + }, + "region": { + "startLine": 20 + } + }, + "logicalLocations": [ + { + "index": 404, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.RunEqualityComparer.Equals(Microsoft.CodeAnalysis.Sarif.Run,Microsoft.CodeAnalysis.Sarif.Run)" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "Compiler" + }, + "properties": { + "Category": "Microsoft.Performance", + "FixCategory": "NonBreaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Rule": { - "name": "Rule", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif", - "kind": "type" + { + "ruleId": "CA1502", + "message": { + "text": "'RunEqualityComparer.GetHashCode(Run)' has a cyclomatic complexity of 46. Rewrite or refactor the method to reduce complexity to 25." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/RunEqualityComparer.cs", + "index": 71 + }, + "region": { + "startLine": 272 + } + }, + "logicalLocations": [ + { + "index": 405, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.RunEqualityComparer.GetHashCode(Microsoft.CodeAnalysis.Sarif.Run)" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Maintainability", + "FixCategory": "NonBreaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Rule..ctor(Microsoft.CodeAnalysis.Sarif.Rule)": { - "name": ".ctor(Microsoft.CodeAnalysis.Sarif.Rule)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Rule", - "kind": "member" + { + "ruleId": "CA2217", + "level": "error", + "message": { + "text": "'RuntimeConditions' is marked with FlagsAttribute but a discrete member cannot be found for every settable bit that is used across the range of enum values. Remove FlagsAttribute from the type or define new members for the following (currently missing) values: 0x100000, 0x200000, 0x400000, 0x800000, 0x1000000, 0x2000000" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + } + }, + "logicalLocations": [ + { + "index": 406, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.RuntimeConditions" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Usage", + "FixCategory": "NonBreaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Rule..ctor(System.String,Microsoft.CodeAnalysis.Sarif.Message,Microsoft.CodeAnalysis.Sarif.Message,Microsoft.CodeAnalysis.Sarif.Message,System.Collections.Generic.IDictionary`2,System.Collections.Generic.IDictionary`2,Microsoft.CodeAnalysis.Sarif.ReportingConfiguration,System.Uri,Microsoft.CodeAnalysis.Sarif.Message,System.Collections.Generic.IDictionary`2)": { - "name": ".ctor(System.String,Microsoft.CodeAnalysis.Sarif.Message,Microsoft.CodeAnalysis.Sarif.Message,Microsoft.CodeAnalysis.Sarif.Message,System.Collections.Generic.IDictionary`2,System.Collections.Generic.IDictionary`2,Microsoft.CodeAnalysis.Sarif.ReportingConfiguration,System.Uri,Microsoft.CodeAnalysis.Sarif.Message,System.Collections.Generic.IDictionary`2)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Rule", - "kind": "member" + { + "ruleId": "CA1028", + "message": { + "text": "If possible, make the underlying type of 'RuntimeConditions' Int32 instead of 'uint'. Otherwise consider Byte, Int16, or Int64.", + "id": "NotIntegral" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + } + }, + "logicalLocations": [ + { + "index": 406, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.RuntimeConditions" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "NotIntegral" + }, + "properties": { + "Category": "Microsoft.Design", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Rule.MessageStrings": { - "name": "MessageStrings", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Rule", - "kind": "member" + { + "ruleId": "CA1704", + "message": { + "text": "Correct the spelling of 'Sarif' in type name 'SarifConstants'.", + "id": "Type" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + } + }, + "logicalLocations": [ + { + "index": 407, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.SarifConstants" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "Sarif#Type" + }, + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Rule.RichMessageStrings": { - "name": "RichMessageStrings", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Rule", - "kind": "member" + { + "ruleId": "CA1704", + "message": { + "text": "Correct the spelling of 'Sarif' in type name 'SarifLog'.", + "id": "Type" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + } + }, + "logicalLocations": [ + { + "index": 408, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.SarifLog" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "Sarif#Type" + }, + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.ReportingConfiguration": { - "name": "ReportingConfiguration", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif", - "kind": "type" - }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.ReportingConfiguration.Parameters": { - "name": "Parameters", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.ReportingConfiguration", - "kind": "member" + { + "ruleId": "CA2227", + "message": { + "text": "Change 'SarifLog.Runs' to be read-only by removing the property setter." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/SarifLog.cs", + "index": 72 + }, + "region": { + "startLine": 50 + } + }, + "logicalLocations": [ + { + "index": 409, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.SarifLog.Runs" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Usage", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.RuleEqualityComparer": { - "name": "RuleEqualityComparer", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif", - "kind": "type" + { + "ruleId": "CA1704", + "message": { + "text": "Correct the spelling of 'Sarif' in type name 'SarifNodeKind'.", + "id": "Type" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + } + }, + "logicalLocations": [ + { + "index": 410, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.SarifNodeKind" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "Sarif#Type" + }, + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.RuleEqualityComparer.Equals(Microsoft.CodeAnalysis.Sarif.Rule,Microsoft.CodeAnalysis.Sarif.Rule)": { - "name": "Equals(Microsoft.CodeAnalysis.Sarif.Rule,Microsoft.CodeAnalysis.Sarif.Rule)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.RuleEqualityComparer", - "kind": "member" + { + "ruleId": "CA1704", + "message": { + "text": "Correct the spelling of 'Sarif' in member name 'SarifNodeKind.SarifLog' or remove it entirely if it represents any sort of Hungarian notation.", + "id": "Member" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + } + }, + "logicalLocations": [ + { + "index": 411, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.SarifNodeKind.SarifLog" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "Sarif#Member" + }, + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.RuleUtilities": { - "name": "RuleUtilities", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif", - "kind": "type" + { + "ruleId": "CA1704", + "message": { + "text": "Correct the spelling of 'Sarif' in type name 'SarifRewritingVisitor'.", + "id": "Type" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + } + }, + "logicalLocations": [ + { + "index": 412, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.SarifRewritingVisitor" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "Sarif#Type" + }, + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.RuleUtilities.BuildDictionary(System.Resources.ResourceManager,System.Collections.Generic.IEnumerable`1,System.String,System.String)": { - "name": "BuildDictionary(System.Resources.ResourceManager,System.Collections.Generic.IEnumerable`1,System.String,System.String)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.RuleUtilities", - "kind": "member" + { + "ruleId": "CA1506", + "message": { + "text": "'SarifRewritingVisitor.VisitActual(ISarifNode)' is coupled with 39 different types from 2 different namespaces. Rewrite or refactor the method to decrease its class coupling, or consider moving the method to one of the other types it is tightly coupled with. A class coupling above 40 indicates poor maintainability, a class coupling between 40 and 30 indicates moderate maintainability, and a class coupling below 30 indicates good maintainability.", + "id": "Method" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/SarifRewritingVisitor.cs", + "index": 73 + }, + "region": { + "startLine": 41 + } + }, + "logicalLocations": [ + { + "index": 413, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.SarifRewritingVisitor.VisitActual(Microsoft.CodeAnalysis.Sarif.ISarifNode)" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "Method" + }, + "properties": { + "Category": "Microsoft.Maintainability", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.RuleUtilities.NormalizeRuleMessageId(System.String,System.String,System.String)": { - "name": "NormalizeRuleMessageId(System.String,System.String,System.String)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.RuleUtilities", - "kind": "member" + { + "ruleId": "CA1502", + "message": { + "text": "'SarifRewritingVisitor.VisitActual(ISarifNode)' has a cyclomatic complexity of 38. Rewrite or refactor the method to reduce complexity to 25." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/SarifRewritingVisitor.cs", + "index": 73 + }, + "region": { + "startLine": 41 + } + }, + "logicalLocations": [ + { + "index": 413, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.SarifRewritingVisitor.VisitActual(Microsoft.CodeAnalysis.Sarif.ISarifNode)" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Maintainability", + "FixCategory": "NonBreaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Run": { - "name": "Run", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif", - "kind": "type" + { + "ruleId": "CA1704", + "message": { + "text": "Correct the spelling of 'Sarif' in member name 'SarifRewritingVisitor.VisitSarifLog(SarifLog)' or remove it entirely if it represents any sort of Hungarian notation.", + "id": "Member" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/SarifRewritingVisitor.cs", + "index": 73 + }, + "region": { + "startLine": 697 + } + }, + "logicalLocations": [ + { + "index": 414, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.SarifRewritingVisitor.VisitSarifLog(Microsoft.CodeAnalysis.Sarif.SarifLog)" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "Sarif#Member" + }, + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Run..ctor(Microsoft.CodeAnalysis.Sarif.Run)": { - "name": ".ctor(Microsoft.CodeAnalysis.Sarif.Run)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Run", - "kind": "member" + { + "ruleId": "CA1704", + "message": { + "text": "Correct the spelling of 'Sarif' in type name 'SarifUtilities'.", + "id": "Type" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + } + }, + "logicalLocations": [ + { + "index": 415, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.SarifUtilities" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "Sarif#Type" + }, + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Run..ctor(Microsoft.CodeAnalysis.Sarif.Tool,System.Collections.Generic.IEnumerable`1,Microsoft.CodeAnalysis.Sarif.Conversion,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IDictionary`2,System.Collections.Generic.IDictionary`2,System.Collections.Generic.IDictionary`2,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,Microsoft.CodeAnalysis.Sarif.Resources,System.String,System.String,Microsoft.CodeAnalysis.Sarif.Message,System.String,System.String,System.String,System.String,System.String,System.String,Microsoft.CodeAnalysis.Sarif.ColumnKind,System.Collections.Generic.IDictionary`2)": { - "name": ".ctor(Microsoft.CodeAnalysis.Sarif.Tool,System.Collections.Generic.IEnumerable`1,Microsoft.CodeAnalysis.Sarif.Conversion,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IDictionary`2,System.Collections.Generic.IDictionary`2,System.Collections.Generic.IDictionary`2,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,Microsoft.CodeAnalysis.Sarif.Resources,System.String,System.String,Microsoft.CodeAnalysis.Sarif.Message,System.String,System.String,System.String,System.String,System.String,System.String,Microsoft.CodeAnalysis.Sarif.ColumnKind,System.Collections.Generic.IDictionary`2)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Run", - "kind": "member" + { + "ruleId": "CA1704", + "message": { + "text": "In method 'SarifUtilities.AddOrUpdateDictionaryEntry(IDictionary, TKey, TValue)', correct the spelling of 'val' in parameter name 'val' or remove it entirely if it represents any sort of Hungarian notation.", + "id": "MemberParameter" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/SarifUtilities.cs", + "index": 74 + }, + "region": { + "startLine": 130 + } + }, + "logicalLocations": [ + { + "index": 416, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.SarifUtilities.AddOrUpdateDictionaryEntry`2(System.Collections.Generic.IDictionary`2,!!0,!!1)" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "val#MemberParameter" + }, + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Run.Files": { - "name": "Files", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Run", - "kind": "member" + { + "ruleId": "CA1062", + "message": { + "text": "In externally visible method 'SarifUtilities.AddOrUpdateDictionaryEntry(IDictionary, TKey, TValue)', validate parameter 'dictionary' before using it." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/SarifUtilities.cs", + "index": 74 + }, + "region": { + "startLine": 131 + } + }, + "logicalLocations": [ + { + "index": 416, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.SarifUtilities.AddOrUpdateDictionaryEntry`2(System.Collections.Generic.IDictionary`2,!!0,!!1)" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "0" + }, + "properties": { + "Category": "Microsoft.Design", + "FixCategory": "DependsOnFix" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Run.Graphs": { - "name": "Graphs", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Run", - "kind": "member" - }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Run.Init(Microsoft.CodeAnalysis.Sarif.Tool,System.Collections.Generic.IEnumerable`1,Microsoft.CodeAnalysis.Sarif.Conversion,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IDictionary`2,System.Collections.Generic.IDictionary`2,System.Collections.Generic.IDictionary`2,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,Microsoft.CodeAnalysis.Sarif.Resources,System.String,System.String,Microsoft.CodeAnalysis.Sarif.Message,System.String,System.String,System.String,System.String,System.String,System.String,Microsoft.CodeAnalysis.Sarif.ColumnKind,System.Collections.Generic.IDictionary`2)": { - "name": "Init(Microsoft.CodeAnalysis.Sarif.Tool,System.Collections.Generic.IEnumerable`1,Microsoft.CodeAnalysis.Sarif.Conversion,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IDictionary`2,System.Collections.Generic.IDictionary`2,System.Collections.Generic.IDictionary`2,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,Microsoft.CodeAnalysis.Sarif.Resources,System.String,System.String,Microsoft.CodeAnalysis.Sarif.Message,System.String,System.String,System.String,System.String,System.String,System.String,Microsoft.CodeAnalysis.Sarif.ColumnKind,System.Collections.Generic.IDictionary`2)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Run", - "kind": "member" - }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Run.Invocations": { - "name": "Invocations", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Run", - "kind": "member" - }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Run.LogicalLocations": { - "name": "LogicalLocations", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Run", - "kind": "member" + { + "ruleId": "CA1704", + "message": { + "text": "Correct the spelling of 'Sarif' in member name 'SarifUtilities.ConvertToSarifVersion(this string)' or remove it entirely if it represents any sort of Hungarian notation.", + "id": "Member" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/SarifUtilities.cs", + "index": 74 + }, + "region": { + "startLine": 40 + } + }, + "logicalLocations": [ + { + "index": 417, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.SarifUtilities.ConvertToSarifVersion(System.String)" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "Sarif#Member" + }, + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Run.OriginalUriBaseIds": { - "name": "OriginalUriBaseIds", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Run", - "kind": "member" + { + "ruleId": "CA1704", + "message": { + "text": "In method 'SarifUtilities.ConvertToSarifVersion(this string)', correct the spelling of 'sarif' in parameter name 'sarifVersionText' or remove it entirely if it represents any sort of Hungarian notation.", + "id": "MemberParameter" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/SarifUtilities.cs", + "index": 74 + }, + "region": { + "startLine": 40 + } + }, + "logicalLocations": [ + { + "index": 417, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.SarifUtilities.ConvertToSarifVersion(System.String)" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "sarif#MemberParameter" + }, + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Run.Results": { - "name": "Results", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Run", - "kind": "member" + { + "ruleId": "CA1704", + "message": { + "text": "In method 'SarifUtilities.ConvertToSchemaUri(this SarifVersion)', correct the spelling of 'sarif' in parameter name 'sarifVersion' or remove it entirely if it represents any sort of Hungarian notation.", + "id": "MemberParameter" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/SarifUtilities.cs", + "index": 74 + }, + "region": { + "startLine": 63 + } + }, + "logicalLocations": [ + { + "index": 418, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.SarifUtilities.ConvertToSchemaUri(Microsoft.CodeAnalysis.Sarif.SarifVersion)" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "sarif#MemberParameter" + }, + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Run.VersionControlProvenance": { - "name": "VersionControlProvenance", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Run", - "kind": "member" + { + "ruleId": "CA1704", + "message": { + "text": "In method 'SarifUtilities.ConvertToText(this SarifVersion)', correct the spelling of 'sarif' in parameter name 'sarifVersion' or remove it entirely if it represents any sort of Hungarian notation.", + "id": "MemberParameter" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/SarifUtilities.cs", + "index": 74 + }, + "region": { + "startLine": 52 + } + }, + "logicalLocations": [ + { + "index": 419, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.SarifUtilities.ConvertToText(Microsoft.CodeAnalysis.Sarif.SarifVersion)" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "sarif#MemberParameter" + }, + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.RunEqualityComparer": { - "name": "RunEqualityComparer", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif", - "kind": "type" + { + "ruleId": "CA1026", + "level": "error", + "message": { + "text": "Replace method 'SarifUtilities.CreateSingleThreadedCodeFlow(IEnumerable)' with an overload that supplies all default arguments." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/SarifUtilities.cs", + "index": 74 + }, + "region": { + "startLine": 142 + } + }, + "logicalLocations": [ + { + "index": 420, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.SarifUtilities.CreateSingleThreadedCodeFlow(System.Collections.Generic.IEnumerable`1)" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Design", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.RunEqualityComparer.Equals(Microsoft.CodeAnalysis.Sarif.Run,Microsoft.CodeAnalysis.Sarif.Run)": { - "name": "Equals(Microsoft.CodeAnalysis.Sarif.Run,Microsoft.CodeAnalysis.Sarif.Run)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.RunEqualityComparer", - "kind": "member" + { + "ruleId": "CA1026", + "level": "error", + "message": { + "text": "Replace method 'SarifUtilities.DecodeBase64String(string, Encoding)' with an overload that supplies all default arguments." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/SarifUtilities.cs", + "index": 74 + }, + "region": { + "startLine": 167 + } + }, + "logicalLocations": [ + { + "index": 421, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.SarifUtilities.DecodeBase64String(System.String,System.Text.Encoding)" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Design", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.RunEqualityComparer.GetHashCode(Microsoft.CodeAnalysis.Sarif.Run)": { - "name": "GetHashCode(Microsoft.CodeAnalysis.Sarif.Run)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.RunEqualityComparer", - "kind": "member" + { + "ruleId": "CA1704", + "message": { + "text": "In method 'SarifUtilities.DecodeBase64String(string, Encoding)', consider providing a more meaningful name than parameter name 's'.", + "id": "MemberParameterMoreMeaningfulName" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/SarifUtilities.cs", + "index": 74 + }, + "region": { + "startLine": 167 + } + }, + "logicalLocations": [ + { + "index": 421, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.SarifUtilities.DecodeBase64String(System.String,System.Text.Encoding)" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "s#MemberParameterMoreMeaningfulName" + }, + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.RuntimeConditions": { - "name": "RuntimeConditions", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif", - "kind": "type" + { + "ruleId": "CA1704", + "message": { + "text": "In method 'SarifUtilities.GetBase64String(string, Encoding)', consider providing a more meaningful name than parameter name 's'.", + "id": "MemberParameterMoreMeaningfulName" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/SarifUtilities.cs", + "index": 74 + }, + "region": { + "startLine": 161 + } + }, + "logicalLocations": [ + { + "index": 422, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.SarifUtilities.GetBase64String(System.String,System.Text.Encoding)" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "s#MemberParameterMoreMeaningfulName" + }, + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.SarifConstants": { - "name": "SarifConstants", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif", - "kind": "type" + { + "ruleId": "CA1062", + "message": { + "text": "In externally visible method 'SarifUtilities.GetBase64String(string, Encoding)', validate parameter 'encoding' before using it." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/SarifUtilities.cs", + "index": 74 + }, + "region": { + "startLine": 162 + } + }, + "logicalLocations": [ + { + "index": 422, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.SarifUtilities.GetBase64String(System.String,System.Text.Encoding)" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "1" + }, + "properties": { + "Category": "Microsoft.Design", + "FixCategory": "DependsOnFix" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.SarifLog": { - "name": "SarifLog", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif", - "kind": "type" + { + "ruleId": "CA1720", + "level": "error", + "message": { + "text": "In member 'SarifUtilities.GetByteLength(char[], Encoding)', consider replacing the data type identifier 'chars' in parameter name 'chars' with a more generic term, such as 'value'.", + "id": "LanguageIndependentMemberParameter" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/SarifUtilities.cs", + "index": 74 + }, + "region": { + "startLine": 174 + } + }, + "logicalLocations": [ + { + "index": 423, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.SarifUtilities.GetByteLength(System.Char[],System.Text.Encoding)" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "chars#LanguageIndependentMemberParameter" + }, + "properties": { + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.SarifLog.Runs": { - "name": "Runs", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.SarifLog", - "kind": "member" + { + "ruleId": "CA1704", + "message": { + "text": "In method 'SarifUtilities.GetByteLength(string, Encoding)', consider providing a more meaningful name than parameter name 's'.", + "id": "MemberParameterMoreMeaningfulName" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/SarifUtilities.cs", + "index": 74 + }, + "region": { + "startLine": 183 + } + }, + "logicalLocations": [ + { + "index": 424, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.SarifUtilities.GetByteLength(System.String,System.Text.Encoding)" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "s#MemberParameterMoreMeaningfulName" + }, + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.SarifNodeKind": { - "name": "SarifNodeKind", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif", - "kind": "type" + { + "ruleId": "CA1704", + "message": { + "text": "In method 'SarifUtilities.GetUtf8Base64String(string)', consider providing a more meaningful name than parameter name 's'.", + "id": "MemberParameterMoreMeaningfulName" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/SarifUtilities.cs", + "index": 74 + }, + "region": { + "startLine": 156 + } + }, + "logicalLocations": [ + { + "index": 425, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.SarifUtilities.GetUtf8Base64String(System.String)" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "s#MemberParameterMoreMeaningfulName" + }, + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.SarifNodeKind.SarifLog": { - "name": "SarifLog", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.SarifNodeKind", - "kind": "member" + { + "ruleId": "CA1704", + "message": { + "text": "Correct the spelling of 'Sarif' in member name 'SarifUtilities.SarifDateTimeFormatMillisecondsPrecision' or remove it entirely if it represents any sort of Hungarian notation.", + "id": "Member" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + } + }, + "logicalLocations": [ + { + "index": 426, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.SarifUtilities.SarifDateTimeFormatMillisecondsPrecision" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "Sarif#Member" + }, + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.SarifRewritingVisitor": { - "name": "SarifRewritingVisitor", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif", - "kind": "type" + { + "ruleId": "CA1704", + "message": { + "text": "Correct the spelling of 'Sarif' in member name 'SarifUtilities.SarifDateTimeFormatSecondsPrecision' or remove it entirely if it represents any sort of Hungarian notation.", + "id": "Member" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + } + }, + "logicalLocations": [ + { + "index": 427, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.SarifUtilities.SarifDateTimeFormatSecondsPrecision" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "Sarif#Member" + }, + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.SarifRewritingVisitor.VisitActual(Microsoft.CodeAnalysis.Sarif.ISarifNode)": { - "name": "VisitActual(Microsoft.CodeAnalysis.Sarif.ISarifNode)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.SarifRewritingVisitor", - "kind": "member" + { + "ruleId": "CA1704", + "message": { + "text": "Correct the spelling of 'Sarif' in type name 'SarifUtilitiesVersionOne'.", + "id": "Type" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + } + }, + "logicalLocations": [ + { + "index": 428, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.SarifUtilitiesVersionOne" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "Sarif#Type" + }, + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.SarifRewritingVisitor.VisitSarifLog(Microsoft.CodeAnalysis.Sarif.SarifLog)": { - "name": "VisitSarifLog(Microsoft.CodeAnalysis.Sarif.SarifLog)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.SarifRewritingVisitor", - "kind": "member" + { + "ruleId": "CA1704", + "message": { + "text": "In method 'SarifUtilitiesVersionOne.ConvertToSchemaUri(this SarifVersionVersionOne)', correct the spelling of 'sarif' in parameter name 'sarifVersion' or remove it entirely if it represents any sort of Hungarian notation.", + "id": "MemberParameter" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/VersionOne/SarifUtilitiesVersionOne.cs", + "index": 75 + }, + "region": { + "startLine": 25 + } + }, + "logicalLocations": [ + { + "index": 429, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.SarifUtilitiesVersionOne.ConvertToSchemaUri(Microsoft.CodeAnalysis.Sarif.VersionOne.SarifVersionVersionOne)" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "sarif#MemberParameter" + }, + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.SarifUtilities": { - "name": "SarifUtilities", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif", - "kind": "type" + { + "ruleId": "CA1704", + "message": { + "text": "In method 'SarifUtilitiesVersionOne.ConvertToText(this SarifVersionVersionOne)', correct the spelling of 'sarif' in parameter name 'sarifVersion' or remove it entirely if it represents any sort of Hungarian notation.", + "id": "MemberParameter" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/VersionOne/SarifUtilitiesVersionOne.cs", + "index": 75 + }, + "region": { + "startLine": 14 + } + }, + "logicalLocations": [ + { + "index": 430, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.SarifUtilitiesVersionOne.ConvertToText(Microsoft.CodeAnalysis.Sarif.VersionOne.SarifVersionVersionOne)" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "sarif#MemberParameter" + }, + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.SarifUtilities.AddOrUpdateDictionaryEntry`2(System.Collections.Generic.IDictionary`2,!!0,!!1)": { - "name": "AddOrUpdateDictionaryEntry`2(System.Collections.Generic.IDictionary`2,!!0,!!1)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.SarifUtilities", - "kind": "member" + { + "ruleId": "CA1704", + "message": { + "text": "Correct the spelling of 'Sarif' in type name 'SarifVersion'.", + "id": "Type" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + } + }, + "logicalLocations": [ + { + "index": 431, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.SarifVersion" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "Sarif#Type" + }, + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.SarifUtilities.ConvertToSarifVersion(System.String)": { - "name": "ConvertToSarifVersion(System.String)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.SarifUtilities", - "kind": "member" + { + "ruleId": "CA1811", + "message": { + "text": "FxCop results that have been suppressed do not contain a message string." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + } + }, + "logicalLocations": [ + { + "index": 433, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.SdkResources..ctor()" + } + ] + } + ], + "suppressions": [ + { + "kind": "inSource" + } + ], + "properties": { + "Category": "Microsoft.Performance", + "FixCategory": "NonBreaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.SarifUtilities.ConvertToSchemaUri(Microsoft.CodeAnalysis.Sarif.SarifVersion)": { - "name": "ConvertToSchemaUri(Microsoft.CodeAnalysis.Sarif.SarifVersion)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.SarifUtilities", - "kind": "member" - }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.SarifUtilities.ConvertToText(Microsoft.CodeAnalysis.Sarif.SarifVersion)": { - "name": "ConvertToText(Microsoft.CodeAnalysis.Sarif.SarifVersion)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.SarifUtilities", - "kind": "member" - }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.SarifUtilities.CreateSingleThreadedCodeFlow(System.Collections.Generic.IEnumerable`1)": { - "name": "CreateSingleThreadedCodeFlow(System.Collections.Generic.IEnumerable`1)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.SarifUtilities", - "kind": "member" - }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.SarifUtilities.DecodeBase64String(System.String,System.Text.Encoding)": { - "name": "DecodeBase64String(System.String,System.Text.Encoding)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.SarifUtilities", - "kind": "member" - }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.SarifUtilities.GetBase64String(System.String,System.Text.Encoding)": { - "name": "GetBase64String(System.String,System.Text.Encoding)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.SarifUtilities", - "kind": "member" - }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.SarifUtilities.GetByteLength(System.Char[],System.Text.Encoding)": { - "name": "GetByteLength(System.Char[],System.Text.Encoding)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.SarifUtilities", - "kind": "member" - }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.SarifUtilities.GetByteLength(System.String,System.Text.Encoding)": { - "name": "GetByteLength(System.String,System.Text.Encoding)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.SarifUtilities", - "kind": "member" - }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.SarifUtilities.GetUtf8Base64String(System.String)": { - "name": "GetUtf8Base64String(System.String)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.SarifUtilities", - "kind": "member" - }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.SarifUtilities.SarifDateTimeFormatMillisecondsPrecision": { - "name": "SarifDateTimeFormatMillisecondsPrecision", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.SarifUtilities", - "kind": "member" + { + "ruleId": "CA1711", + "level": "error", + "message": { + "text": "Rename type name 'Stack' so that it does not end in 'Stack'.", + "id": "TypeNoAlternate" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + } + }, + "logicalLocations": [ + { + "index": 434, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Stack" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "TypeNoAlternate" + }, + "properties": { + "Level": "CriticalError", + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.SarifUtilities.SarifDateTimeFormatSecondsPrecision": { - "name": "SarifDateTimeFormatSecondsPrecision", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.SarifUtilities", - "kind": "member" + { + "ruleId": "CA2214", + "message": { + "text": "'Stack.Stack(Message, IEnumerable, IDictionary)' contains a call chain that results in a call to a virtual method defined by the class. Review the following call stack for unintended consequences: \r\n\r\nStack..ctor(Message, IEnumerable, IDictionary)\r\nStack.Init(Message, IEnumerable, IDictionary):Void\r\nPropertyBagHolder.set_Properties(IDictionary):Void" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/Stack.cs", + "index": 76 + }, + "region": { + "startLine": 72 + } + }, + "logicalLocations": [ + { + "index": 435, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Stack..ctor(Microsoft.CodeAnalysis.Sarif.Message,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IDictionary`2)" + } + ] + } + ], + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Usage", + "FixCategory": "NonBreaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.SarifUtilitiesVersionOne": { - "name": "SarifUtilitiesVersionOne", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif", - "kind": "type" + { + "ruleId": "CA2214", + "message": { + "text": "'Stack.Stack(Stack)' contains a call chain that results in a call to a virtual method defined by the class. Review the following call stack for unintended consequences: \r\n\r\nStack..ctor(Stack)\r\nStack.Init(Message, IEnumerable, IDictionary):Void\r\nPropertyBagHolder.set_Properties(IDictionary):Void" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/Stack.cs", + "index": 76 + }, + "region": { + "startLine": 86 + } + }, + "logicalLocations": [ + { + "index": 436, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Stack..ctor(Microsoft.CodeAnalysis.Sarif.Stack)" + } + ] + } + ], + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Usage", + "FixCategory": "NonBreaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.SarifUtilitiesVersionOne.ConvertToSchemaUri(Microsoft.CodeAnalysis.Sarif.VersionOne.SarifVersionVersionOne)": { - "name": "ConvertToSchemaUri(Microsoft.CodeAnalysis.Sarif.VersionOne.SarifVersionVersionOne)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.SarifUtilitiesVersionOne", - "kind": "member" + { + "ruleId": "CA1062", + "message": { + "text": "In externally visible method 'Stack.Stack(StackTrace)', validate parameter 'stackTrace' before using it." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Core/Stack.cs", + "index": 77 + }, + "region": { + "startLine": 79 + } + }, + "logicalLocations": [ + { + "index": 437, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Stack..ctor(System.Diagnostics.StackTrace)" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "0" + }, + "properties": { + "Category": "Microsoft.Design", + "FixCategory": "DependsOnFix" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.SarifUtilitiesVersionOne.ConvertToText(Microsoft.CodeAnalysis.Sarif.VersionOne.SarifVersionVersionOne)": { - "name": "ConvertToText(Microsoft.CodeAnalysis.Sarif.VersionOne.SarifVersionVersionOne)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.SarifUtilitiesVersionOne", - "kind": "member" + { + "ruleId": "CA1804", + "message": { + "text": "'Stack.Create(string)' declares a variable, 'current', of type 'string', which is never used or is only assigned to. Use this variable or remove it." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Core/Stack.cs", + "index": 77 + }, + "region": { + "startLine": 113 + } + }, + "logicalLocations": [ + { + "index": 438, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Stack.Create(System.String)" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "current" + }, + "properties": { + "Category": "Microsoft.Performance", + "FixCategory": "NonBreaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.SarifVersion": { - "name": "SarifVersion", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif", - "kind": "type" + { + "ruleId": "CA1305", + "level": "error", + "message": { + "text": "Because the behavior of 'int.Parse(string)' could vary based on the current user's locale settings, replace this call in 'Stack.Create(string)' with a call to 'int.Parse(string, IFormatProvider)'. If the result of 'int.Parse(string, IFormatProvider)' will be based on input from the user, specify 'CultureInfo.CurrentCulture' as the 'IFormatProvider' parameter. Otherwise, if the result will based on input stored and accessed by software, such as when it is loaded from disk or from a database, specify 'CultureInfo.InvariantCulture'.", + "id": "IFormatProviderAlternate" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Core/Stack.cs", + "index": 77 + }, + "region": { + "startLine": 129 + } + }, + "logicalLocations": [ + { + "index": 438, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Stack.Create(System.String)" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "System.Int32.Parse(System.String)#IFormatProviderAlternate" + }, + "properties": { + "Category": "Microsoft.Globalization", + "FixCategory": "NonBreaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.SdkResources": { - "name": "SdkResources", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif", - "kind": "type" + { + "ruleId": "CA2227", + "message": { + "text": "Change 'Stack.Frames' to be read-only by removing the property setter." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/Stack.cs", + "index": 76 + }, + "region": { + "startLine": 45 + } + }, + "logicalLocations": [ + { + "index": 439, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Stack.Frames" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Usage", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.SdkResources..ctor()": { - "name": ".ctor()", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.SdkResources", - "kind": "member" + { + "ruleId": "CA2214", + "message": { + "text": "'StackFrame.StackFrame(Location, string, int, int, int, IEnumerable, IDictionary)' contains a call chain that results in a call to a virtual method defined by the class. Review the following call stack for unintended consequences: \r\n\r\nStackFrame..ctor(Location, String, Int32, Int32, Int32, IEnumerable, IDictionary)\r\nStackFrame.Init(Location, String, Int32, Int32, Int32, IEnumerable, IDictionary):Void\r\nPropertyBagHolder.set_Properties(IDictionary):Void" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/StackFrame.cs", + "index": 78 + }, + "region": { + "startLine": 108 + } + }, + "logicalLocations": [ + { + "index": 441, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.StackFrame..ctor(Microsoft.CodeAnalysis.Sarif.Location,System.String,System.Int32,System.Int32,System.Int32,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IDictionary`2)" + } + ] + } + ], + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Usage", + "FixCategory": "NonBreaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Stack": { - "name": "Stack", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif", - "kind": "type" + { + "ruleId": "CA2214", + "message": { + "text": "'StackFrame.StackFrame(StackFrame)' contains a call chain that results in a call to a virtual method defined by the class. Review the following call stack for unintended consequences: \r\n\r\nStackFrame..ctor(StackFrame)\r\nStackFrame.Init(Location, String, Int32, Int32, Int32, IEnumerable, IDictionary):Void\r\nPropertyBagHolder.set_Properties(IDictionary):Void" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/StackFrame.cs", + "index": 78 + }, + "region": { + "startLine": 122 + } + }, + "logicalLocations": [ + { + "index": 442, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.StackFrame..ctor(Microsoft.CodeAnalysis.Sarif.StackFrame)" + } + ] + } + ], + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Usage", + "FixCategory": "NonBreaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Stack..ctor(Microsoft.CodeAnalysis.Sarif.Message,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IDictionary`2)": { - "name": ".ctor(Microsoft.CodeAnalysis.Sarif.Message,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IDictionary`2)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Stack", - "kind": "member" - }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Stack..ctor(Microsoft.CodeAnalysis.Sarif.Stack)": { - "name": ".ctor(Microsoft.CodeAnalysis.Sarif.Stack)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Stack", - "kind": "member" - }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Stack..ctor(System.Diagnostics.StackTrace)": { - "name": ".ctor(System.Diagnostics.StackTrace)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Stack", - "kind": "member" - }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Stack.Create(System.String)": { - "name": "Create(System.String)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Stack", - "kind": "member" - }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Stack.Frames": { - "name": "Frames", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Stack", - "kind": "member" - }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.StackFrame": { - "name": "StackFrame", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif", - "kind": "type" - }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.StackFrame..ctor(Microsoft.CodeAnalysis.Sarif.Location,System.String,System.Int32,System.Int32,System.Int32,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IDictionary`2)": { - "name": ".ctor(Microsoft.CodeAnalysis.Sarif.Location,System.String,System.Int32,System.Int32,System.Int32,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IDictionary`2)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.StackFrame", - "kind": "member" + { + "ruleId": "CA1062", + "message": { + "text": "In externally visible method 'StackFrame.Create(StackFrame)', validate parameter 'dotNetStackFrame' before using it." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Core/StackFrame.cs", + "index": 79 + }, + "region": { + "startLine": 28 + } + }, + "logicalLocations": [ + { + "index": 443, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.StackFrame.Create(System.Diagnostics.StackFrame)" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "0" + }, + "properties": { + "Category": "Microsoft.Design", + "FixCategory": "DependsOnFix" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.StackFrame..ctor(Microsoft.CodeAnalysis.Sarif.StackFrame)": { - "name": ".ctor(Microsoft.CodeAnalysis.Sarif.StackFrame)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.StackFrame", - "kind": "member" + { + "ruleId": "CA1800", + "message": { + "text": "'methodBase', a parameter, is cast to type 'MethodInfo' multiple times in method 'StackFrame.CreateFullyQualifiedName(MethodBase)'. Cache the result of the 'as' operator or direct cast in order to eliminate the redundant castclass instruction.", + "id": "Parameter" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Core/StackFrame.cs", + "index": 79 + }, + "region": { + "startLine": 111 + } + }, + "logicalLocations": [ + { + "index": 444, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.StackFrame.CreateFullyQualifiedName(System.Reflection.MethodBase)" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "Parameter" + }, + "properties": { + "Category": "Microsoft.Performance", + "FixCategory": "NonBreaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.StackFrame.Create(System.Diagnostics.StackFrame)": { - "name": "Create(System.Diagnostics.StackFrame)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.StackFrame", - "kind": "member" + { + "ruleId": "CA1800", + "message": { + "text": "'methodBase', a parameter, is cast to type 'MethodInfo' multiple times in method 'StackFrame.CreateFullyQualifiedName(MethodBase)'. Cache the result of the 'as' operator or direct cast in order to eliminate the redundant castclass instruction.", + "id": "Parameter" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Core/StackFrame.cs", + "index": 79 + }, + "region": { + "startLine": 113 + } + }, + "logicalLocations": [ + { + "index": 444, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.StackFrame.CreateFullyQualifiedName(System.Reflection.MethodBase)" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "Parameter" + }, + "properties": { + "Category": "Microsoft.Performance", + "FixCategory": "NonBreaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.StackFrame.CreateFullyQualifiedName(System.Reflection.MethodBase)": { - "name": "CreateFullyQualifiedName(System.Reflection.MethodBase)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.StackFrame", - "kind": "member" + { + "ruleId": "CA2227", + "message": { + "text": "Change 'StackFrame.Parameters' to be read-only by removing the property setter." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/StackFrame.cs", + "index": 78 + }, + "region": { + "startLine": 69 + } + }, + "logicalLocations": [ + { + "index": 445, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.StackFrame.Parameters" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Usage", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.StackFrame.Parameters": { - "name": "Parameters", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.StackFrame", - "kind": "member" + { + "ruleId": "CA1710", + "level": "error", + "message": { + "text": "Rename 'StringSet' to end in 'Collection'." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + } + }, + "logicalLocations": [ + { + "index": 446, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.StringSet" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.StringSet": { - "name": "StringSet", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif", - "kind": "type" + { + "ruleId": "CA1710", + "level": "error", + "message": { + "text": "Rename 'StringToVersionMap' to end in 'Dictionary'." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + } + }, + "logicalLocations": [ + { + "index": 447, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.StringToVersionMap" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.StringToVersionMap": { - "name": "StringToVersionMap", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif", - "kind": "type" + { + "ruleId": "CA2237", + "message": { + "text": "Add [Serializable] to 'StringToVersionMap' as this type implements ISerializable." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + } + }, + "logicalLocations": [ + { + "index": 447, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.StringToVersionMap" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Usage", + "FixCategory": "NonBreaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.SupportedPlatform": { - "name": "SupportedPlatform", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif", - "kind": "type" + { + "ruleId": "CA1008", + "level": "error", + "message": { + "text": "In enum 'SupportedPlatform', change the name of 'SupportedPlatform.Unknown' to 'None'.", + "id": "FlagsRename" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + } + }, + "logicalLocations": [ + { + "index": 448, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.SupportedPlatform" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "FlagsRename" + }, + "properties": { + "Level": "CriticalError", + "Category": "Microsoft.Design", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.SupportedPlatform.OSX": { - "name": "OSX", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.SupportedPlatform", - "kind": "member" + { + "ruleId": "CA1714", + "level": "error", + "message": { + "text": "If enumeration name 'SupportedPlatform' is singular, change it to a plural form." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + } + }, + "logicalLocations": [ + { + "index": 448, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.SupportedPlatform" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.ThreadFlow": { - "name": "ThreadFlow", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif", - "kind": "type" + { + "ruleId": "CA1709", + "level": "error", + "message": { + "text": "Correct the casing of 'OSX' in member name 'SupportedPlatform.OSX' by changing it to 'Osx'.", + "id": "Member" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + } + }, + "logicalLocations": [ + { + "index": 449, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.SupportedPlatform.OSX" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "OSX#Member" + }, + "properties": { + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.ThreadFlow..ctor(Microsoft.CodeAnalysis.Sarif.ThreadFlow)": { - "name": ".ctor(Microsoft.CodeAnalysis.Sarif.ThreadFlow)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.ThreadFlow", - "kind": "member" - }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.ThreadFlow..ctor(System.String,Microsoft.CodeAnalysis.Sarif.Message,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IDictionary`2)": { - "name": ".ctor(System.String,Microsoft.CodeAnalysis.Sarif.Message,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IDictionary`2)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.ThreadFlow", - "kind": "member" - }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.ThreadFlow.Locations": { - "name": "Locations", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.ThreadFlow", - "kind": "member" + { + "ruleId": "CA2214", + "message": { + "text": "'ThreadFlow.ThreadFlow(ThreadFlow)' contains a call chain that results in a call to a virtual method defined by the class. Review the following call stack for unintended consequences: \r\n\r\nThreadFlow..ctor(ThreadFlow)\r\nThreadFlow.Init(String, Message, IEnumerable, IDictionary):Void\r\nPropertyBagHolder.set_Properties(IDictionary):Void" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/ThreadFlow.cs", + "index": 80 + }, + "region": { + "startLine": 92 + } + }, + "logicalLocations": [ + { + "index": 451, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.ThreadFlow..ctor(Microsoft.CodeAnalysis.Sarif.ThreadFlow)" + } + ] + } + ], + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Usage", + "FixCategory": "NonBreaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.ThreadFlowLocation": { - "name": "ThreadFlowLocation", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif", - "kind": "type" + { + "ruleId": "CA2214", + "message": { + "text": "'ThreadFlow.ThreadFlow(string, Message, IEnumerable, IDictionary)' contains a call chain that results in a call to a virtual method defined by the class. Review the following call stack for unintended consequences: \r\n\r\nThreadFlow..ctor(String, Message, IEnumerable, IDictionary)\r\nThreadFlow.Init(String, Message, IEnumerable, IDictionary):Void\r\nPropertyBagHolder.set_Properties(IDictionary):Void" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/ThreadFlow.cs", + "index": 80 + }, + "region": { + "startLine": 78 + } + }, + "logicalLocations": [ + { + "index": 452, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.ThreadFlow..ctor(System.String,Microsoft.CodeAnalysis.Sarif.Message,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IDictionary`2)" + } + ] + } + ], + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Usage", + "FixCategory": "NonBreaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.ThreadFlowLocation..ctor(Microsoft.CodeAnalysis.Sarif.ThreadFlowLocation)": { - "name": ".ctor(Microsoft.CodeAnalysis.Sarif.ThreadFlowLocation)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.ThreadFlowLocation", - "kind": "member" + { + "ruleId": "CA2227", + "message": { + "text": "Change 'ThreadFlow.Locations' to be read-only by removing the property setter." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/ThreadFlow.cs", + "index": 80 + }, + "region": { + "startLine": 48 + } + }, + "logicalLocations": [ + { + "index": 453, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.ThreadFlow.Locations" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Usage", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.ThreadFlowLocation..ctor(System.Int32,Microsoft.CodeAnalysis.Sarif.Location,Microsoft.CodeAnalysis.Sarif.Stack,System.String,System.String,System.Collections.Generic.IDictionary`2,System.Int32,System.Int32,System.DateTime,Microsoft.CodeAnalysis.Sarif.ThreadFlowLocationImportance,System.Collections.Generic.IDictionary`2)": { - "name": ".ctor(System.Int32,Microsoft.CodeAnalysis.Sarif.Location,Microsoft.CodeAnalysis.Sarif.Stack,System.String,System.String,System.Collections.Generic.IDictionary`2,System.Int32,System.Int32,System.DateTime,Microsoft.CodeAnalysis.Sarif.ThreadFlowLocationImportance,System.Collections.Generic.IDictionary`2)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.ThreadFlowLocation", - "kind": "member" + { + "ruleId": "CA2214", + "message": { + "text": "'ThreadFlowLocation.ThreadFlowLocation(ThreadFlowLocation)' contains a call chain that results in a call to a virtual method defined by the class. Review the following call stack for unintended consequences: \r\n\r\nThreadFlowLocation..ctor(ThreadFlowLocation)\r\nThreadFlowLocation.Init(Int32, Location, Stack, String, String, IDictionary, Int32, Int32, DateTime, ThreadFlowLocationImportance, IDictionary):Void\r\nPropertyBagHolder.set_Properties(IDictionary):Void" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/ThreadFlowLocation.cs", + "index": 81 + }, + "region": { + "startLine": 158 + } + }, + "logicalLocations": [ + { + "index": 455, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.ThreadFlowLocation..ctor(Microsoft.CodeAnalysis.Sarif.ThreadFlowLocation)" + } + ] + } + ], + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Usage", + "FixCategory": "NonBreaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.ThreadFlowLocation.State": { - "name": "State", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.ThreadFlowLocation", - "kind": "member" + { + "ruleId": "CA2214", + "message": { + "text": "'ThreadFlowLocation.ThreadFlowLocation(int, Location, Stack, string, string, IDictionary, int, int, DateTime, ThreadFlowLocationImportance, IDictionary)' contains a call chain that results in a call to a virtual method defined by the class. Review the following call stack for unintended consequences: \r\n\r\nThreadFlowLocation..ctor(Int32, Location, Stack, String, String, IDictionary, Int32, Int32, DateTime, ThreadFlowLocationImportance, IDictionary)\r\nThreadFlowLocation.Init(Int32, Location, Stack, String, String, IDictionary, Int32, Int32, DateTime, ThreadFlowLocationImportance, IDictionary):Void\r\nPropertyBagHolder.set_Properties(IDictionary):Void" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/ThreadFlowLocation.cs", + "index": 81 + }, + "region": { + "startLine": 144 + } + }, + "logicalLocations": [ + { + "index": 456, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.ThreadFlowLocation..ctor(System.Int32,Microsoft.CodeAnalysis.Sarif.Location,Microsoft.CodeAnalysis.Sarif.Stack,System.String,System.String,System.Collections.Generic.IDictionary`2,System.Int32,System.Int32,System.DateTime,Microsoft.CodeAnalysis.Sarif.ThreadFlowLocationImportance,System.Collections.Generic.IDictionary`2)" + } + ] + } + ], + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Usage", + "FixCategory": "NonBreaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.ThreadFlowLocationEqualityComparer": { - "name": "ThreadFlowLocationEqualityComparer", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif", - "kind": "type" + { + "ruleId": "CA2227", + "message": { + "text": "Change 'ThreadFlowLocation.State' to be read-only by removing the property setter." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/ThreadFlowLocation.cs", + "index": 81 + }, + "region": { + "startLine": 69 + } + }, + "logicalLocations": [ + { + "index": 457, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.ThreadFlowLocation.State" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Usage", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.ThreadFlowLocationEqualityComparer.Equals(Microsoft.CodeAnalysis.Sarif.ThreadFlowLocation,Microsoft.CodeAnalysis.Sarif.ThreadFlowLocation)": { - "name": "Equals(Microsoft.CodeAnalysis.Sarif.ThreadFlowLocation,Microsoft.CodeAnalysis.Sarif.ThreadFlowLocation)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.ThreadFlowLocationEqualityComparer", - "kind": "member" + { + "ruleId": "CA1502", + "message": { + "text": "'ThreadFlowLocationEqualityComparer.Equals(ThreadFlowLocation, ThreadFlowLocation)' has a cyclomatic complexity of 29. Rewrite or refactor the method to reduce complexity to 25." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/ThreadFlowLocationEqualityComparer.cs", + "index": 82 + }, + "region": { + "startLine": 20 + } + }, + "logicalLocations": [ + { + "index": 459, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.ThreadFlowLocationEqualityComparer.Equals(Microsoft.CodeAnalysis.Sarif.ThreadFlowLocation,Microsoft.CodeAnalysis.Sarif.ThreadFlowLocation)" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Maintainability", + "FixCategory": "NonBreaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Tool": { - "name": "Tool", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif", - "kind": "type" + { + "ruleId": "CA2214", + "message": { + "text": "'Tool.Tool(Tool)' contains a call chain that results in a call to a virtual method defined by the class. Review the following call stack for unintended consequences: \r\n\r\nTool..ctor(Tool)\r\nTool.Init(String, String, String, String, String, Uri, String, String, IDictionary):Void\r\nPropertyBagHolder.set_Properties(IDictionary):Void" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/Tool.cs", + "index": 83 + }, + "region": { + "startLine": 140 + } + }, + "logicalLocations": [ + { + "index": 461, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Tool..ctor(Microsoft.CodeAnalysis.Sarif.Tool)" + } + ] + } + ], + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Usage", + "FixCategory": "NonBreaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Tool..ctor(Microsoft.CodeAnalysis.Sarif.Tool)": { - "name": ".ctor(Microsoft.CodeAnalysis.Sarif.Tool)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Tool", - "kind": "member" + { + "ruleId": "CA2214", + "message": { + "text": "'Tool.Tool(string, string, string, string, string, Uri, string, string, IDictionary)' contains a call chain that results in a call to a virtual method defined by the class. Review the following call stack for unintended consequences: \r\n\r\nTool..ctor(String, String, String, String, String, Uri, String, String, IDictionary)\r\nTool.Init(String, String, String, String, String, Uri, String, String, IDictionary):Void\r\nPropertyBagHolder.set_Properties(IDictionary):Void" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/Tool.cs", + "index": 83 + }, + "region": { + "startLine": 126 + } + }, + "logicalLocations": [ + { + "index": 462, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Tool..ctor(System.String,System.String,System.String,System.String,System.String,System.Uri,System.String,System.String,System.Collections.Generic.IDictionary`2)" + } + ] + } + ], + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Usage", + "FixCategory": "NonBreaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Tool..ctor(System.String,System.String,System.String,System.String,System.String,System.Uri,System.String,System.String,System.Collections.Generic.IDictionary`2)": { - "name": ".ctor(System.String,System.String,System.String,System.String,System.String,System.Uri,System.String,System.String,System.Collections.Generic.IDictionary`2)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Tool", - "kind": "member" + { + "ruleId": "CA1704", + "message": { + "text": "In method 'Tool.Tool(string, string, string, string, string, Uri, string, string, IDictionary)', correct the spelling of 'sarif' in parameter name 'sarifLoggerVersion' or remove it entirely if it represents any sort of Hungarian notation.", + "id": "MemberParameter" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/Tool.cs", + "index": 83 + }, + "region": { + "startLine": 126 + } + }, + "logicalLocations": [ + { + "index": 462, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Tool..ctor(System.String,System.String,System.String,System.String,System.String,System.Uri,System.String,System.String,System.Collections.Generic.IDictionary`2)" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "sarif#MemberParameter" + }, + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Tool.CreateFromAssemblyData(System.String)": { - "name": "CreateFromAssemblyData(System.String)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Tool", - "kind": "member" - }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Tool.SarifLoggerVersion": { - "name": "SarifLoggerVersion", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Tool", - "kind": "member" - }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.TypedPropertiesDictionary`1": { - "name": "TypedPropertiesDictionary`1", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif", - "kind": "type" - }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.TypedPropertiesDictionary`1.SettingNameToDescriptionsMap": { - "name": "SettingNameToDescriptionsMap", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.TypedPropertiesDictionary`1", - "kind": "member" - }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.TypedPropertiesDictionaryConverter": { - "name": "TypedPropertiesDictionaryConverter", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif", - "kind": "type" - }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.TypedPropertiesDictionaryConverter.ReadJson(Newtonsoft.Json.JsonReader,System.Type,System.Object,Newtonsoft.Json.JsonSerializer)": { - "name": "ReadJson(Newtonsoft.Json.JsonReader,System.Type,System.Object,Newtonsoft.Json.JsonSerializer)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.TypedPropertiesDictionaryConverter", - "kind": "member" - }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.TypedPropertiesDictionaryConverter.WriteJson(Newtonsoft.Json.JsonWriter,System.Object,Newtonsoft.Json.JsonSerializer)": { - "name": "WriteJson(Newtonsoft.Json.JsonWriter,System.Object,Newtonsoft.Json.JsonSerializer)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.TypedPropertiesDictionaryConverter", - "kind": "member" - }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.TypedPropertiesDictionaryConverter+<>c": { - "name": "TypedPropertiesDictionaryConverter+<>c", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif", - "kind": "type" + { + "ruleId": "CA1026", + "level": "error", + "message": { + "text": "Replace method 'Tool.CreateFromAssemblyData(string)' with an overload that supplies all default arguments." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Core/Tool.cs", + "index": 84 + }, + "region": { + "startLine": 18 + } + }, + "logicalLocations": [ + { + "index": 463, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Tool.CreateFromAssemblyData(System.String)" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Design", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.TypedPropertiesDictionaryConverter+<>c.b__3_1(Newtonsoft.Json.Linq.JToken)": { - "name": "b__3_1(Newtonsoft.Json.Linq.JToken)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.TypedPropertiesDictionaryConverter+<>c", - "kind": "member" + { + "ruleId": "CA1305", + "level": "error", + "message": { + "text": "Because the behavior of 'int.ToString()' could vary based on the current user's locale settings, replace this call in 'Tool.CreateFromAssemblyData(string)' with a call to 'int.ToString(IFormatProvider)'. If the result of 'int.ToString(IFormatProvider)' will be displayed to the user, specify 'CultureInfo.CurrentCulture' as the 'IFormatProvider' parameter. Otherwise, if the result will be stored and accessed by software, such as when it is persisted to disk or to a database, specify 'CultureInfo.InvariantCulture'.", + "id": "IFormatProviderAlternateString" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Core/Tool.cs", + "index": 84 + }, + "region": { + "startLine": 32 + } + }, + "logicalLocations": [ + { + "index": 463, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Tool.CreateFromAssemblyData(System.String)" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "System.Int32.ToString#IFormatProviderAlternateString" + }, + "properties": { + "Category": "Microsoft.Globalization", + "FixCategory": "NonBreaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.UriHelper": { - "name": "UriHelper", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif", - "kind": "type" + { + "ruleId": "CA1305", + "level": "error", + "message": { + "text": "Because the behavior of 'int.ToString()' could vary based on the current user's locale settings, replace this call in 'Tool.CreateFromAssemblyData(string)' with a call to 'int.ToString(IFormatProvider)'. If the result of 'int.ToString(IFormatProvider)' will be displayed to the user, specify 'CultureInfo.CurrentCulture' as the 'IFormatProvider' parameter. Otherwise, if the result will be stored and accessed by software, such as when it is persisted to disk or to a database, specify 'CultureInfo.InvariantCulture'.", + "id": "IFormatProviderAlternateString" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Core/Tool.cs", + "index": 84 + }, + "region": { + "startLine": 32 + } + }, + "logicalLocations": [ + { + "index": 463, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Tool.CreateFromAssemblyData(System.String)" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "System.Int32.ToString#IFormatProviderAlternateString" + }, + "properties": { + "Category": "Microsoft.Globalization", + "FixCategory": "NonBreaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.UriHelper.MakeValidUri(System.String)": { - "name": "MakeValidUri(System.String)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.UriHelper", - "kind": "member" + { + "ruleId": "CA1305", + "level": "error", + "message": { + "text": "Because the behavior of 'int.ToString()' could vary based on the current user's locale settings, replace this call in 'Tool.CreateFromAssemblyData(string)' with a call to 'int.ToString(IFormatProvider)'. If the result of 'int.ToString(IFormatProvider)' will be displayed to the user, specify 'CultureInfo.CurrentCulture' as the 'IFormatProvider' parameter. Otherwise, if the result will be stored and accessed by software, such as when it is persisted to disk or to a database, specify 'CultureInfo.InvariantCulture'.", + "id": "IFormatProviderAlternateString" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Core/Tool.cs", + "index": 84 + }, + "region": { + "startLine": 32 + } + }, + "logicalLocations": [ + { + "index": 463, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Tool.CreateFromAssemblyData(System.String)" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "System.Int32.ToString#IFormatProviderAlternateString" + }, + "properties": { + "Category": "Microsoft.Globalization", + "FixCategory": "NonBreaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionControlDetails": { - "name": "VersionControlDetails", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif", - "kind": "type" + { + "ruleId": "CA1704", + "message": { + "text": "Correct the spelling of 'Sarif' in member name 'Tool.SarifLoggerVersion' or remove it entirely if it represents any sort of Hungarian notation.", + "id": "Member" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/Tool.cs", + "index": 83 + }, + "region": { + "startLine": 75 + } + }, + "logicalLocations": [ + { + "index": 464, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Tool.SarifLoggerVersion" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "Sarif#Member" + }, + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionControlDetails..ctor(Microsoft.CodeAnalysis.Sarif.VersionControlDetails)": { - "name": ".ctor(Microsoft.CodeAnalysis.Sarif.VersionControlDetails)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionControlDetails", - "kind": "member" + { + "ruleId": "CA2240", + "level": "error", + "message": { + "text": "Add an implementation of GetObjectData to type 'TypedPropertiesDictionary'." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + } + }, + "logicalLocations": [ + { + "index": 465, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.TypedPropertiesDictionary`1" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Usage", + "FixCategory": "NonBreaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionControlDetails..ctor(System.Uri,System.String,System.String,System.String,System.DateTime,System.Collections.Generic.IDictionary`2)": { - "name": ".ctor(System.Uri,System.String,System.String,System.String,System.DateTime,System.Collections.Generic.IDictionary`2)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionControlDetails", - "kind": "member" + { + "ruleId": "CA2227", + "message": { + "text": "FxCop results that have been suppressed do not contain a message string." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + } + }, + "logicalLocations": [ + { + "index": 466, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.TypedPropertiesDictionary`1.SettingNameToDescriptionsMap" + } + ] + } + ], + "suppressions": [ + { + "kind": "inSource" + } + ], + "properties": { + "Category": "Microsoft.Usage", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Warnings": { - "name": "Warnings", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif", - "kind": "type" + { + "ruleId": "CA1305", + "level": "error", + "message": { + "text": "Because the behavior of 'int.Parse(string)' could vary based on the current user's locale settings, replace this call in 'TypedPropertiesDictionaryConverter.ReadJson(JsonReader, Type, object, JsonSerializer)' with a call to 'int.Parse(string, IFormatProvider)'. If the result of 'int.Parse(string, IFormatProvider)' will be based on input from the user, specify 'CultureInfo.CurrentCulture' as the 'IFormatProvider' parameter. Otherwise, if the result will based on input stored and accessed by software, such as when it is loaded from disk or from a database, specify 'CultureInfo.InvariantCulture'.", + "id": "IFormatProviderAlternate" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/TypedPropertiesDictionaryConverter.cs", + "index": 85 + }, + "region": { + "startLine": 43 + } + }, + "logicalLocations": [ + { + "index": 468, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.TypedPropertiesDictionaryConverter.ReadJson(Newtonsoft.Json.JsonReader,System.Type,System.Object,Newtonsoft.Json.JsonSerializer)" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "System.Int32.Parse(System.String)#IFormatProviderAlternate" + }, + "properties": { + "Category": "Microsoft.Globalization", + "FixCategory": "NonBreaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Warnings.Wrn997_InvalidTarget": { - "name": "Wrn997_InvalidTarget", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Warnings", - "kind": "member" + { + "ruleId": "CA1062", + "message": { + "text": "In externally visible method 'TypedPropertiesDictionaryConverter.ReadJson(JsonReader, Type, object, JsonSerializer)', validate parameter 'reader' before using it." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/TypedPropertiesDictionaryConverter.cs", + "index": 85 + }, + "region": { + "startLine": 47 + } + }, + "logicalLocations": [ + { + "index": 468, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.TypedPropertiesDictionaryConverter.ReadJson(Newtonsoft.Json.JsonReader,System.Type,System.Object,Newtonsoft.Json.JsonSerializer)" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "0" + }, + "properties": { + "Category": "Microsoft.Design", + "FixCategory": "DependsOnFix" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Warnings.Wrn998_UnsupportedPlatform": { - "name": "Wrn998_UnsupportedPlatform", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Warnings", - "kind": "member" - }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Warnings.Wrn999_RuleExplicitlyDisabled": { - "name": "Wrn999_RuleExplicitlyDisabled", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Warnings", - "kind": "member" - }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Baseline": { - "name": "Microsoft.CodeAnalysis.Sarif.Baseline", - "parentKey": "sarif.dll", - "kind": "namespace" - }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Baseline.ISarifLogBaseliner": { - "name": "ISarifLogBaseliner", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Baseline", - "kind": "type" - }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Baseline.ISarifLogBaseliner.CreateBaselinedRun(Microsoft.CodeAnalysis.Sarif.Run,Microsoft.CodeAnalysis.Sarif.Run)": { - "name": "CreateBaselinedRun(Microsoft.CodeAnalysis.Sarif.Run,Microsoft.CodeAnalysis.Sarif.Run)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Baseline.ISarifLogBaseliner", - "kind": "member" - }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Baseline.SarifBaselineType": { - "name": "SarifBaselineType", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Baseline", - "kind": "type" - }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Baseline.SarifLogBaseliner": { - "name": "SarifLogBaseliner", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Baseline", - "kind": "type" + { + "ruleId": "CA1800", + "message": { + "text": "'value', a parameter, is cast to type 'IntegerSet' multiple times in method 'TypedPropertiesDictionaryConverter.WriteJson(JsonWriter, object, JsonSerializer)'. Cache the result of the 'as' operator or direct cast in order to eliminate the redundant castclass instruction.", + "id": "Parameter" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/TypedPropertiesDictionaryConverter.cs", + "index": 85 + }, + "region": { + "startLine": 112 + } + }, + "logicalLocations": [ + { + "index": 469, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.TypedPropertiesDictionaryConverter.WriteJson(Newtonsoft.Json.JsonWriter,System.Object,Newtonsoft.Json.JsonSerializer)" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "Parameter" + }, + "properties": { + "Category": "Microsoft.Performance", + "FixCategory": "NonBreaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Baseline.SarifLogBaseliner.CreateBaselinedRun(Microsoft.CodeAnalysis.Sarif.Run,Microsoft.CodeAnalysis.Sarif.Run)": { - "name": "CreateBaselinedRun(Microsoft.CodeAnalysis.Sarif.Run,Microsoft.CodeAnalysis.Sarif.Run)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Baseline.SarifLogBaseliner", - "kind": "member" + { + "ruleId": "CA1800", + "message": { + "text": "'value', a parameter, is cast to type 'StringSet' multiple times in method 'TypedPropertiesDictionaryConverter.WriteJson(JsonWriter, object, JsonSerializer)'. Cache the result of the 'as' operator or direct cast in order to eliminate the redundant castclass instruction.", + "id": "Parameter" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/TypedPropertiesDictionaryConverter.cs", + "index": 85 + }, + "region": { + "startLine": 106 + } + }, + "logicalLocations": [ + { + "index": 469, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.TypedPropertiesDictionaryConverter.WriteJson(Newtonsoft.Json.JsonWriter,System.Object,Newtonsoft.Json.JsonSerializer)" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "Parameter" + }, + "properties": { + "Category": "Microsoft.Performance", + "FixCategory": "NonBreaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Baseline.SarifLogBaselinerFactory": { - "name": "SarifLogBaselinerFactory", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Baseline", - "kind": "type" + { + "ruleId": "CA1804", + "message": { + "text": "'TypedPropertiesDictionaryConverter.WriteJson(JsonWriter, object, JsonSerializer)' declares a variable, 't', of type 'Type', which is never used or is only assigned to. Use this variable or remove it." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/TypedPropertiesDictionaryConverter.cs", + "index": 85 + }, + "region": { + "startLine": 127 + } + }, + "logicalLocations": [ + { + "index": 469, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.TypedPropertiesDictionaryConverter.WriteJson(Newtonsoft.Json.JsonWriter,System.Object,Newtonsoft.Json.JsonSerializer)" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "t" + }, + "properties": { + "Category": "Microsoft.Performance", + "FixCategory": "NonBreaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Baseline.SarifLogBaselinerFactory.CreateSarifLogBaseliner(Microsoft.CodeAnalysis.Sarif.Baseline.SarifBaselineType)": { - "name": "CreateSarifLogBaseliner(Microsoft.CodeAnalysis.Sarif.Baseline.SarifBaselineType)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Baseline.SarifLogBaselinerFactory", - "kind": "member" + { + "ruleId": "CA1062", + "message": { + "text": "In externally visible method 'TypedPropertiesDictionaryConverter.WriteJson(JsonWriter, object, JsonSerializer)', validate parameter 'writer' before using it." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/TypedPropertiesDictionaryConverter.cs", + "index": 85 + }, + "region": { + "startLine": 119 + } + }, + "logicalLocations": [ + { + "index": 469, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.TypedPropertiesDictionaryConverter.WriteJson(Newtonsoft.Json.JsonWriter,System.Object,Newtonsoft.Json.JsonSerializer)" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "0" + }, + "properties": { + "Category": "Microsoft.Design", + "FixCategory": "DependsOnFix" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Baseline.DefaultBaseline": { - "name": "Microsoft.CodeAnalysis.Sarif.Baseline.DefaultBaseline", - "parentKey": "sarif.dll", - "kind": "namespace" + { + "ruleId": "CA1062", + "message": { + "text": "In externally visible method 'TypedPropertiesDictionaryConverter.WriteJson(JsonWriter, object, JsonSerializer)', validate parameter 'serializer' before using it." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/TypedPropertiesDictionaryConverter.cs", + "index": 85 + }, + "region": { + "startLine": 136 + } + }, + "logicalLocations": [ + { + "index": 469, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.TypedPropertiesDictionaryConverter.WriteJson(Newtonsoft.Json.JsonWriter,System.Object,Newtonsoft.Json.JsonSerializer)" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "2" + }, + "properties": { + "Category": "Microsoft.Design", + "FixCategory": "DependsOnFix" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Baseline.DefaultBaseline.CodeFlowBaselineEqualityComparator": { - "name": "CodeFlowBaselineEqualityComparator", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Baseline.DefaultBaseline", - "kind": "type" + { + "ruleId": "CA1305", + "level": "error", + "message": { + "text": "Because the behavior of 'int.Parse(string)' could vary based on the current user's locale settings, replace this call in 'TypedPropertiesDictionaryConverter.ReadJson(JsonReader, Type, object, JsonSerializer)' with a call to 'int.Parse(string, IFormatProvider)'. If the result of 'int.Parse(string, IFormatProvider)' will be based on input from the user, specify 'CultureInfo.CurrentCulture' as the 'IFormatProvider' parameter. Otherwise, if the result will based on input stored and accessed by software, such as when it is loaded from disk or from a database, specify 'CultureInfo.InvariantCulture'.", + "id": "IFormatProviderAlternate" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/TypedPropertiesDictionaryConverter.cs", + "index": 85 + }, + "region": { + "startLine": 43 + } + }, + "logicalLocations": [ + { + "index": 471, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.TypedPropertiesDictionaryConverter+<>c.b__3_1(Newtonsoft.Json.Linq.JToken)" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "System.Int32.Parse(System.String)#IFormatProviderAlternate" + }, + "properties": { + "Category": "Microsoft.Globalization", + "FixCategory": "NonBreaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Baseline.DefaultBaseline.CodeFlowBaselineEqualityComparator.Equals(Microsoft.CodeAnalysis.Sarif.CodeFlow,Microsoft.CodeAnalysis.Sarif.CodeFlow)": { - "name": "Equals(Microsoft.CodeAnalysis.Sarif.CodeFlow,Microsoft.CodeAnalysis.Sarif.CodeFlow)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Baseline.DefaultBaseline.CodeFlowBaselineEqualityComparator", - "kind": "member" + { + "ruleId": "CA1055", + "level": "error", + "message": { + "text": "Change the return type of 'UriHelper.MakeValidUri(string)' from string to System.Uri." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/UriHelper.cs", + "index": 86 + }, + "region": { + "startLine": 51 + } + }, + "logicalLocations": [ + { + "index": 473, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.UriHelper.MakeValidUri(System.String)" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Design", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Baseline.DefaultBaseline.DefaultBaselineExtensions": { - "name": "DefaultBaselineExtensions", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Baseline.DefaultBaseline", - "kind": "type" + { + "ruleId": "CA2214", + "message": { + "text": "'VersionControlDetails.VersionControlDetails(VersionControlDetails)' contains a call chain that results in a call to a virtual method defined by the class. Review the following call stack for unintended consequences: \r\n\r\nVersionControlDetails..ctor(VersionControlDetails)\r\nVersionControlDetails.Init(Uri, String, String, String, DateTime, IDictionary):Void\r\nPropertyBagHolder.set_Properties(IDictionary):Void" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/VersionControlDetails.cs", + "index": 87 + }, + "region": { + "startLine": 110 + } + }, + "logicalLocations": [ + { + "index": 475, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionControlDetails..ctor(Microsoft.CodeAnalysis.Sarif.VersionControlDetails)" + } + ] + } + ], + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Usage", + "FixCategory": "NonBreaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Baseline.DefaultBaseline.DefaultBaselineExtensions.GetNullCheckedHashCode(System.Object)": { - "name": "GetNullCheckedHashCode(System.Object)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Baseline.DefaultBaseline.DefaultBaselineExtensions", - "kind": "member" + { + "ruleId": "CA2214", + "message": { + "text": "'VersionControlDetails.VersionControlDetails(Uri, string, string, string, DateTime, IDictionary)' contains a call chain that results in a call to a virtual method defined by the class. Review the following call stack for unintended consequences: \r\n\r\nVersionControlDetails..ctor(Uri, String, String, String, DateTime, IDictionary)\r\nVersionControlDetails.Init(Uri, String, String, String, DateTime, IDictionary):Void\r\nPropertyBagHolder.set_Properties(IDictionary):Void" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/VersionControlDetails.cs", + "index": 87 + }, + "region": { + "startLine": 96 + } + }, + "logicalLocations": [ + { + "index": 476, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionControlDetails..ctor(System.Uri,System.String,System.String,System.String,System.DateTime,System.Collections.Generic.IDictionary`2)" + } + ] + } + ], + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Usage", + "FixCategory": "NonBreaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Baseline.DefaultBaseline.LocationBaselineEquals": { - "name": "LocationBaselineEquals", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Baseline.DefaultBaseline", - "kind": "type" - }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Baseline.DefaultBaseline.LocationBaselineEquals.Equals(Microsoft.CodeAnalysis.Sarif.Location,Microsoft.CodeAnalysis.Sarif.Location)": { - "name": "Equals(Microsoft.CodeAnalysis.Sarif.Location,Microsoft.CodeAnalysis.Sarif.Location)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Baseline.DefaultBaseline.LocationBaselineEquals", - "kind": "member" - }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Baseline.DefaultBaseline.ResultBaselineEquals": { - "name": "ResultBaselineEquals", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Baseline.DefaultBaseline", - "kind": "type" - }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Baseline.DefaultBaseline.ResultBaselineEquals.Equals(Microsoft.CodeAnalysis.Sarif.Result,Microsoft.CodeAnalysis.Sarif.Result)": { - "name": "Equals(Microsoft.CodeAnalysis.Sarif.Result,Microsoft.CodeAnalysis.Sarif.Result)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Baseline.DefaultBaseline.ResultBaselineEquals", - "kind": "member" - }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Baseline.DefaultBaseline.StackBaselineEquals": { - "name": "StackBaselineEquals", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Baseline.DefaultBaseline", - "kind": "type" - }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Baseline.DefaultBaseline.StackBaselineEquals.Equals(Microsoft.CodeAnalysis.Sarif.Stack,Microsoft.CodeAnalysis.Sarif.Stack)": { - "name": "Equals(Microsoft.CodeAnalysis.Sarif.Stack,Microsoft.CodeAnalysis.Sarif.Stack)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Baseline.DefaultBaseline.StackBaselineEquals", - "kind": "member" - }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Baseline.DefaultBaseline.StackFrameBaselineEquals": { - "name": "StackFrameBaselineEquals", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Baseline.DefaultBaseline", - "kind": "type" + { + "ruleId": "CA1704", + "message": { + "text": "Correct the spelling of 'Wrn' in member name 'Warnings.Wrn997_InvalidTarget' or remove it entirely if it represents any sort of Hungarian notation.", + "id": "Member" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + } + }, + "logicalLocations": [ + { + "index": 478, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Warnings.Wrn997_InvalidTarget" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "Wrn#Member" + }, + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Baseline.DefaultBaseline.StackFrameBaselineEquals.Equals(Microsoft.CodeAnalysis.Sarif.StackFrame,Microsoft.CodeAnalysis.Sarif.StackFrame)": { - "name": "Equals(Microsoft.CodeAnalysis.Sarif.StackFrame,Microsoft.CodeAnalysis.Sarif.StackFrame)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Baseline.DefaultBaseline.StackFrameBaselineEquals", - "kind": "member" + { + "ruleId": "CA1707", + "level": "error", + "message": { + "text": "Remove the underscores from member name 'Warnings.Wrn997_InvalidTarget'.", + "id": "Member" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + } + }, + "logicalLocations": [ + { + "index": 478, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Warnings.Wrn997_InvalidTarget" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "Member" + }, + "properties": { + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Baseline.DefaultBaseline.ThreadFlowBaselineEqualityComparator": { - "name": "ThreadFlowBaselineEqualityComparator", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Baseline.DefaultBaseline", - "kind": "type" + { + "ruleId": "CA1704", + "message": { + "text": "Correct the spelling of 'Wrn' in member name 'Warnings.Wrn998_UnsupportedPlatform' or remove it entirely if it represents any sort of Hungarian notation.", + "id": "Member" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + } + }, + "logicalLocations": [ + { + "index": 479, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Warnings.Wrn998_UnsupportedPlatform" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "Wrn#Member" + }, + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Baseline.DefaultBaseline.ThreadFlowBaselineEqualityComparator.Equals(Microsoft.CodeAnalysis.Sarif.ThreadFlow,Microsoft.CodeAnalysis.Sarif.ThreadFlow)": { - "name": "Equals(Microsoft.CodeAnalysis.Sarif.ThreadFlow,Microsoft.CodeAnalysis.Sarif.ThreadFlow)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Baseline.DefaultBaseline.ThreadFlowBaselineEqualityComparator", - "kind": "member" + { + "ruleId": "CA1707", + "level": "error", + "message": { + "text": "Remove the underscores from member name 'Warnings.Wrn998_UnsupportedPlatform'.", + "id": "Member" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + } + }, + "logicalLocations": [ + { + "index": 479, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Warnings.Wrn998_UnsupportedPlatform" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "Member" + }, + "properties": { + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Baseline.DefaultBaseline.ThreadFlowLocationBaselineEquals": { - "name": "ThreadFlowLocationBaselineEquals", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Baseline.DefaultBaseline", - "kind": "type" + { + "ruleId": "CA1704", + "message": { + "text": "Correct the spelling of 'Wrn' in member name 'Warnings.Wrn999_RuleExplicitlyDisabled' or remove it entirely if it represents any sort of Hungarian notation.", + "id": "Member" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + } + }, + "logicalLocations": [ + { + "index": 480, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Warnings.Wrn999_RuleExplicitlyDisabled" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "Wrn#Member" + }, + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Baseline.DefaultBaseline.ThreadFlowLocationBaselineEquals.Equals(Microsoft.CodeAnalysis.Sarif.ThreadFlowLocation,Microsoft.CodeAnalysis.Sarif.ThreadFlowLocation)": { - "name": "Equals(Microsoft.CodeAnalysis.Sarif.ThreadFlowLocation,Microsoft.CodeAnalysis.Sarif.ThreadFlowLocation)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Baseline.DefaultBaseline.ThreadFlowLocationBaselineEquals", - "kind": "member" + { + "ruleId": "CA1707", + "level": "error", + "message": { + "text": "Remove the underscores from member name 'Warnings.Wrn999_RuleExplicitlyDisabled'.", + "id": "Member" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + } + }, + "logicalLocations": [ + { + "index": 480, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Warnings.Wrn999_RuleExplicitlyDisabled" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "Member" + }, + "properties": { + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Processors": { - "name": "Microsoft.CodeAnalysis.Sarif.Processors", - "parentKey": "sarif.dll", - "kind": "namespace" + { + "ruleId": "CA1704", + "message": { + "text": "Correct the spelling of 'Sarif' in type name 'ISarifLogBaseliner'.", + "id": "Type" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + } + }, + "logicalLocations": [ + { + "index": 482, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Baseline.ISarifLogBaseliner" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "Sarif#Type" + }, + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Processors.GenericActionPipeline`1": { - "name": "GenericActionPipeline`1", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Processors", - "kind": "type" + { + "ruleId": "CA1702", + "level": "error", + "message": { + "text": "In member 'ISarifLogBaseliner.CreateBaselinedRun(Run, Run)', the compound word 'baseLine' in parameter name 'baseLine' exists as a discrete term. If your usage is intended to be single word, case it as 'baseline' or strip the first token entirely if it represents any sort of Hungarian notation.", + "id": "MemberParameterShouldBeDiscreteTerm" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + } + }, + "logicalLocations": [ + { + "index": 483, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Baseline.ISarifLogBaseliner.CreateBaselinedRun(Microsoft.CodeAnalysis.Sarif.Run,Microsoft.CodeAnalysis.Sarif.Run)" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "baseLine#MemberParameterShouldBeDiscreteTerm" + }, + "properties": { + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Processors.GenericActionPipeline`1..ctor(System.Collections.Generic.IEnumerable`1>)": { - "name": ".ctor(System.Collections.Generic.IEnumerable`1>)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Processors.GenericActionPipeline`1", - "kind": "member" + { + "ruleId": "CA1704", + "message": { + "text": "Correct the spelling of 'Baselined' in member name 'ISarifLogBaseliner.CreateBaselinedRun(Run, Run)' or remove it entirely if it represents any sort of Hungarian notation.", + "id": "Member" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + } + }, + "logicalLocations": [ + { + "index": 483, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Baseline.ISarifLogBaseliner.CreateBaselinedRun(Microsoft.CodeAnalysis.Sarif.Run,Microsoft.CodeAnalysis.Sarif.Run)" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "Baselined#Member" + }, + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Processors.GenericMappingAction`1": { - "name": "GenericMappingAction`1", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Processors", - "kind": "type" + { + "ruleId": "CA1704", + "message": { + "text": "Correct the spelling of 'Sarif' in type name 'SarifBaselineType'.", + "id": "Type" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + } + }, + "logicalLocations": [ + { + "index": 484, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Baseline.SarifBaselineType" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "Sarif#Type" + }, + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Processors.GenericMappingAction`1.Act(System.Collections.Generic.IEnumerable`1)": { - "name": "Act(System.Collections.Generic.IEnumerable`1)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Processors.GenericMappingAction`1", - "kind": "member" - }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Processors.GenericMappingAction`1.Action": { - "name": "Action", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Processors.GenericMappingAction`1", - "kind": "member" - }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Processors.GenericMappingAction`1.Map(System.Collections.Generic.IEnumerable`1)": { - "name": "Map(System.Collections.Generic.IEnumerable`1)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Processors.GenericMappingAction`1", - "kind": "member" - }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Processors.SarifLogAction": { - "name": "SarifLogAction", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Processors", - "kind": "type" - }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Processors.SarifLogActionTuple": { - "name": "SarifLogActionTuple", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Processors", - "kind": "type" - }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Processors.SarifLogActionTuple.Action": { - "name": "Action", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Processors.SarifLogActionTuple", - "kind": "member" + { + "ruleId": "CA1062", + "message": { + "text": "In externally visible method 'SarifLogBaseliner.CreateBaselinedRun(Run, Run)', validate parameter 'baseLine' before using it." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Baseline/SarifLogBaseliner.cs", + "index": 88 + }, + "region": { + "startLine": 27 + } + }, + "logicalLocations": [ + { + "index": 486, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Baseline.SarifLogBaseliner.CreateBaselinedRun(Microsoft.CodeAnalysis.Sarif.Run,Microsoft.CodeAnalysis.Sarif.Run)" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "0" + }, + "properties": { + "Category": "Microsoft.Design", + "FixCategory": "DependsOnFix" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Processors.SarifLogActionTuple.Parameters": { - "name": "Parameters", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Processors.SarifLogActionTuple", - "kind": "member" + { + "ruleId": "CA1062", + "message": { + "text": "In externally visible method 'SarifLogBaseliner.CreateBaselinedRun(Run, Run)', validate parameter 'nextLog' before using it." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Baseline/SarifLogBaseliner.cs", + "index": 88 + }, + "region": { + "startLine": 20 + } + }, + "logicalLocations": [ + { + "index": 486, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Baseline.SarifLogBaseliner.CreateBaselinedRun(Microsoft.CodeAnalysis.Sarif.Run,Microsoft.CodeAnalysis.Sarif.Run)" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "1" + }, + "properties": { + "Category": "Microsoft.Design", + "FixCategory": "DependsOnFix" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Processors.SarifLogExtensionMethods": { - "name": "SarifLogExtensionMethods", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Processors", - "kind": "type" + { + "ruleId": "CA1704", + "message": { + "text": "Correct the spelling of 'Sarif' in type name 'SarifLogBaselinerFactory'.", + "id": "Type" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + } + }, + "logicalLocations": [ + { + "index": 487, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Baseline.SarifLogBaselinerFactory" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "Sarif#Type" + }, + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Processors.SarifLogExtensionMethods.MakeUrisAbsolute(Microsoft.CodeAnalysis.Sarif.SarifLog)": { - "name": "MakeUrisAbsolute(Microsoft.CodeAnalysis.Sarif.SarifLog)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Processors.SarifLogExtensionMethods", - "kind": "member" + { + "ruleId": "CA1053", + "level": "error", + "message": { + "text": "Because type 'SarifLogBaselinerFactory' contains only 'static' members, mark it as 'static' to prevent the compiler from adding a default public constructor.", + "id": "CSharp2_0" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + } + }, + "logicalLocations": [ + { + "index": 487, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Baseline.SarifLogBaselinerFactory" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "CSharp2_0" + }, + "properties": { + "Category": "Microsoft.Design", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Processors.SarifLogExtensionMethods.MakeUrisAbsolute(System.Collections.Generic.IEnumerable`1)": { - "name": "MakeUrisAbsolute(System.Collections.Generic.IEnumerable`1)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Processors.SarifLogExtensionMethods", - "kind": "member" + { + "ruleId": "CA1704", + "message": { + "text": "Correct the spelling of 'Sarif' in member name 'SarifLogBaselinerFactory.CreateSarifLogBaseliner(SarifBaselineType)' or remove it entirely if it represents any sort of Hungarian notation.", + "id": "Member" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Baseline/SarifLogBaselinerFactory.cs", + "index": 89 + }, + "region": { + "startLine": 9 + } + }, + "logicalLocations": [ + { + "index": 488, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Baseline.SarifLogBaselinerFactory.CreateSarifLogBaseliner(Microsoft.CodeAnalysis.Sarif.Baseline.SarifBaselineType)" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "Sarif#Member" + }, + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Processors.SarifLogExtensionMethods.Merge(System.Collections.Generic.IEnumerable`1)": { - "name": "Merge(System.Collections.Generic.IEnumerable`1)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Processors.SarifLogExtensionMethods", - "kind": "member" + { + "ruleId": "CA1062", + "message": { + "text": "In externally visible method 'CodeFlowBaselineEqualityComparator.Equals(CodeFlow, CodeFlow)', validate parameter 'x' before using it." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Baseline/DefaultBaseline/CodeFlowBaselineEquals.cs", + "index": 90 + }, + "region": { + "startLine": 16 + } + }, + "logicalLocations": [ + { + "index": 491, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Baseline.DefaultBaseline.CodeFlowBaselineEqualityComparator.Equals(Microsoft.CodeAnalysis.Sarif.CodeFlow,Microsoft.CodeAnalysis.Sarif.CodeFlow)" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "0" + }, + "properties": { + "Category": "Microsoft.Design", + "FixCategory": "DependsOnFix" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Processors.SarifLogExtensionMethods.RebaseUri(Microsoft.CodeAnalysis.Sarif.SarifLog,System.String,System.Boolean,System.Uri)": { - "name": "RebaseUri(Microsoft.CodeAnalysis.Sarif.SarifLog,System.String,System.Boolean,System.Uri)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Processors.SarifLogExtensionMethods", - "kind": "member" + { + "ruleId": "CA1062", + "message": { + "text": "In externally visible method 'CodeFlowBaselineEqualityComparator.Equals(CodeFlow, CodeFlow)', validate parameter 'y' before using it." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Baseline/DefaultBaseline/CodeFlowBaselineEquals.cs", + "index": 90 + }, + "region": { + "startLine": 16 + } + }, + "logicalLocations": [ + { + "index": 491, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Baseline.DefaultBaseline.CodeFlowBaselineEqualityComparator.Equals(Microsoft.CodeAnalysis.Sarif.CodeFlow,Microsoft.CodeAnalysis.Sarif.CodeFlow)" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "1" + }, + "properties": { + "Category": "Microsoft.Design", + "FixCategory": "DependsOnFix" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Processors.SarifLogExtensionMethods.RebaseUri(System.Collections.Generic.IEnumerable`1,System.String,System.Boolean,System.Uri)": { - "name": "RebaseUri(System.Collections.Generic.IEnumerable`1,System.String,System.Boolean,System.Uri)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Processors.SarifLogExtensionMethods", - "kind": "member" + { + "ruleId": "CA1720", + "level": "error", + "message": { + "text": "In member 'DefaultBaselineExtensions.GetNullCheckedHashCode(this object)', consider replacing the data type identifier 'obj' in parameter name 'obj' with a more generic term, such as 'value'.", + "id": "LanguageIndependentMemberParameter" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Baseline/DefaultBaseline/DefaultBaselineExtensions.cs", + "index": 91 + }, + "region": { + "startLine": 9 + } + }, + "logicalLocations": [ + { + "index": 493, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Baseline.DefaultBaseline.DefaultBaselineExtensions.GetNullCheckedHashCode(System.Object)" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "obj#LanguageIndependentMemberParameter" + }, + "properties": { + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Processors.SarifLogPipeline": { - "name": "SarifLogPipeline", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Processors", - "kind": "type" + { + "ruleId": "CA1062", + "message": { + "text": "In externally visible method 'LocationBaselineEquals.Equals(Location, Location)', validate parameter 'x' before using it." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Baseline/DefaultBaseline/LocationBaselineEquals.cs", + "index": 92 + }, + "region": { + "startLine": 17 + } + }, + "logicalLocations": [ + { + "index": 495, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Baseline.DefaultBaseline.LocationBaselineEquals.Equals(Microsoft.CodeAnalysis.Sarif.Location,Microsoft.CodeAnalysis.Sarif.Location)" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "0" + }, + "properties": { + "Category": "Microsoft.Design", + "FixCategory": "DependsOnFix" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Processors.SarifLogPipeline..ctor(System.Collections.Generic.List`1)": { - "name": ".ctor(System.Collections.Generic.List`1)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Processors.SarifLogPipeline", - "kind": "member" - }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Processors.SarifLogPipeline._pipeline": { - "name": "_pipeline", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Processors.SarifLogPipeline", - "kind": "member" - }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Processors.SarifLogPipeline.Actions": { - "name": "Actions", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Processors.SarifLogPipeline", - "kind": "member" - }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Processors.SarifLogProcessorFactory": { - "name": "SarifLogProcessorFactory", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Processors", - "kind": "type" - }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Processors.SarifLogProcessorFactory.GetActionStage(Microsoft.CodeAnalysis.Sarif.Processors.SarifLogAction,System.String[])": { - "name": "GetActionStage(Microsoft.CodeAnalysis.Sarif.Processors.SarifLogAction,System.String[])", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Processors.SarifLogProcessorFactory", - "kind": "member" - }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Readers": { - "name": "Microsoft.CodeAnalysis.Sarif.Readers", - "parentKey": "sarif.dll", - "kind": "namespace" + { + "ruleId": "CA1062", + "message": { + "text": "In externally visible method 'LocationBaselineEquals.Equals(Location, Location)', validate parameter 'y' before using it." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Baseline/DefaultBaseline/LocationBaselineEquals.cs", + "index": 92 + }, + "region": { + "startLine": 17 + } + }, + "logicalLocations": [ + { + "index": 495, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Baseline.DefaultBaseline.LocationBaselineEquals.Equals(Microsoft.CodeAnalysis.Sarif.Location,Microsoft.CodeAnalysis.Sarif.Location)" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "1" + }, + "properties": { + "Category": "Microsoft.Design", + "FixCategory": "DependsOnFix" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Readers.DateTimeConverter": { - "name": "DateTimeConverter", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Readers", - "kind": "type" + { + "ruleId": "CA1062", + "message": { + "text": "In externally visible method 'ResultBaselineEquals.Equals(Result, Result)', validate parameter 'x' before using it." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Baseline/DefaultBaseline/ResultBaselineEquals.cs", + "index": 93 + }, + "region": { + "startLine": 19 + } + }, + "logicalLocations": [ + { + "index": 497, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Baseline.DefaultBaseline.ResultBaselineEquals.Equals(Microsoft.CodeAnalysis.Sarif.Result,Microsoft.CodeAnalysis.Sarif.Result)" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "0" + }, + "properties": { + "Category": "Microsoft.Design", + "FixCategory": "DependsOnFix" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Readers.DateTimeConverter.Instance": { - "name": "Instance", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Readers.DateTimeConverter", - "kind": "member" + { + "ruleId": "CA1062", + "message": { + "text": "In externally visible method 'ResultBaselineEquals.Equals(Result, Result)', validate parameter 'y' before using it." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Baseline/DefaultBaseline/ResultBaselineEquals.cs", + "index": 93 + }, + "region": { + "startLine": 19 + } + }, + "logicalLocations": [ + { + "index": 497, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Baseline.DefaultBaseline.ResultBaselineEquals.Equals(Microsoft.CodeAnalysis.Sarif.Result,Microsoft.CodeAnalysis.Sarif.Result)" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "1" + }, + "properties": { + "Category": "Microsoft.Design", + "FixCategory": "DependsOnFix" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Readers.EnumConverter": { - "name": "EnumConverter", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Readers", - "kind": "type" + { + "ruleId": "CA1062", + "message": { + "text": "In externally visible method 'StackBaselineEquals.Equals(Stack, Stack)', validate parameter 'x' before using it." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Baseline/DefaultBaseline/StackBaselineEquals.cs", + "index": 94 + }, + "region": { + "startLine": 16 + } + }, + "logicalLocations": [ + { + "index": 499, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Baseline.DefaultBaseline.StackBaselineEquals.Equals(Microsoft.CodeAnalysis.Sarif.Stack,Microsoft.CodeAnalysis.Sarif.Stack)" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "0" + }, + "properties": { + "Category": "Microsoft.Design", + "FixCategory": "DependsOnFix" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Readers.EnumConverter.ConvertToCamelCase(System.String)": { - "name": "ConvertToCamelCase(System.String)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Readers.EnumConverter", - "kind": "member" + { + "ruleId": "CA1062", + "message": { + "text": "In externally visible method 'StackBaselineEquals.Equals(Stack, Stack)', validate parameter 'y' before using it." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Baseline/DefaultBaseline/StackBaselineEquals.cs", + "index": 94 + }, + "region": { + "startLine": 16 + } + }, + "logicalLocations": [ + { + "index": 499, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Baseline.DefaultBaseline.StackBaselineEquals.Equals(Microsoft.CodeAnalysis.Sarif.Stack,Microsoft.CodeAnalysis.Sarif.Stack)" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "1" + }, + "properties": { + "Category": "Microsoft.Design", + "FixCategory": "DependsOnFix" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Readers.EnumConverter.Instance": { - "name": "Instance", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Readers.EnumConverter", - "kind": "member" + { + "ruleId": "CA1062", + "message": { + "text": "In externally visible method 'StackFrameBaselineEquals.Equals(StackFrame, StackFrame)', validate parameter 'x' before using it." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Baseline/DefaultBaseline/StackFrameBaselineEquals.cs", + "index": 95 + }, + "region": { + "startLine": 16 + } + }, + "logicalLocations": [ + { + "index": 501, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Baseline.DefaultBaseline.StackFrameBaselineEquals.Equals(Microsoft.CodeAnalysis.Sarif.StackFrame,Microsoft.CodeAnalysis.Sarif.StackFrame)" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "0" + }, + "properties": { + "Category": "Microsoft.Design", + "FixCategory": "DependsOnFix" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Readers.FlagsEnumConverter": { - "name": "FlagsEnumConverter", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Readers", - "kind": "type" + { + "ruleId": "CA1062", + "message": { + "text": "In externally visible method 'StackFrameBaselineEquals.Equals(StackFrame, StackFrame)', validate parameter 'y' before using it." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Baseline/DefaultBaseline/StackFrameBaselineEquals.cs", + "index": 95 + }, + "region": { + "startLine": 16 + } + }, + "logicalLocations": [ + { + "index": 501, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Baseline.DefaultBaseline.StackFrameBaselineEquals.Equals(Microsoft.CodeAnalysis.Sarif.StackFrame,Microsoft.CodeAnalysis.Sarif.StackFrame)" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "1" + }, + "properties": { + "Category": "Microsoft.Design", + "FixCategory": "DependsOnFix" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Readers.FlagsEnumConverter.Instance": { - "name": "Instance", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Readers.FlagsEnumConverter", - "kind": "member" + { + "ruleId": "CA1062", + "message": { + "text": "In externally visible method 'ThreadFlowBaselineEqualityComparator.Equals(ThreadFlow, ThreadFlow)', validate parameter 'x' before using it." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Baseline/DefaultBaseline/ThreadFlowBaselineEquals.cs", + "index": 96 + }, + "region": { + "startLine": 16 + } + }, + "logicalLocations": [ + { + "index": 503, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Baseline.DefaultBaseline.ThreadFlowBaselineEqualityComparator.Equals(Microsoft.CodeAnalysis.Sarif.ThreadFlow,Microsoft.CodeAnalysis.Sarif.ThreadFlow)" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "0" + }, + "properties": { + "Category": "Microsoft.Design", + "FixCategory": "DependsOnFix" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Readers.FlagsEnumConverter.WriteJson(Newtonsoft.Json.JsonWriter,System.Object,Newtonsoft.Json.JsonSerializer)": { - "name": "WriteJson(Newtonsoft.Json.JsonWriter,System.Object,Newtonsoft.Json.JsonSerializer)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Readers.FlagsEnumConverter", - "kind": "member" + { + "ruleId": "CA1062", + "message": { + "text": "In externally visible method 'ThreadFlowBaselineEqualityComparator.Equals(ThreadFlow, ThreadFlow)', validate parameter 'y' before using it." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Baseline/DefaultBaseline/ThreadFlowBaselineEquals.cs", + "index": 96 + }, + "region": { + "startLine": 16 + } + }, + "logicalLocations": [ + { + "index": 503, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Baseline.DefaultBaseline.ThreadFlowBaselineEqualityComparator.Equals(Microsoft.CodeAnalysis.Sarif.ThreadFlow,Microsoft.CodeAnalysis.Sarif.ThreadFlow)" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "1" + }, + "properties": { + "Category": "Microsoft.Design", + "FixCategory": "DependsOnFix" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Readers.PropertyBagConverter": { - "name": "PropertyBagConverter", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Readers", - "kind": "type" - }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Readers.PropertyBagConverter.ReadJson(Newtonsoft.Json.JsonReader,System.Type,System.Object,Newtonsoft.Json.JsonSerializer)": { - "name": "ReadJson(Newtonsoft.Json.JsonReader,System.Type,System.Object,Newtonsoft.Json.JsonSerializer)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Readers.PropertyBagConverter", - "kind": "member" - }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Readers.ResultDiffingVisitor": { - "name": "ResultDiffingVisitor", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Readers", - "kind": "type" - }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Readers.ResultDiffingVisitor..ctor(Microsoft.CodeAnalysis.Sarif.SarifLog)": { - "name": ".ctor(Microsoft.CodeAnalysis.Sarif.SarifLog)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Readers.ResultDiffingVisitor", - "kind": "member" + { + "ruleId": "CA1062", + "message": { + "text": "In externally visible method 'ThreadFlowLocationBaselineEquals.Equals(ThreadFlowLocation, ThreadFlowLocation)', validate parameter 'x' before using it." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Baseline/DefaultBaseline/ThreadFlowLocationBaselineEquals.cs", + "index": 97 + }, + "region": { + "startLine": 16 + } + }, + "logicalLocations": [ + { + "index": 505, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Baseline.DefaultBaseline.ThreadFlowLocationBaselineEquals.Equals(Microsoft.CodeAnalysis.Sarif.ThreadFlowLocation,Microsoft.CodeAnalysis.Sarif.ThreadFlowLocation)" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "0" + }, + "properties": { + "Category": "Microsoft.Design", + "FixCategory": "DependsOnFix" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Readers.ResultDiffingVisitor.AbsentResults": { - "name": "AbsentResults", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Readers.ResultDiffingVisitor", - "kind": "member" + { + "ruleId": "CA1062", + "message": { + "text": "In externally visible method 'ThreadFlowLocationBaselineEquals.Equals(ThreadFlowLocation, ThreadFlowLocation)', validate parameter 'y' before using it." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Baseline/DefaultBaseline/ThreadFlowLocationBaselineEquals.cs", + "index": 97 + }, + "region": { + "startLine": 16 + } + }, + "logicalLocations": [ + { + "index": 505, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Baseline.DefaultBaseline.ThreadFlowLocationBaselineEquals.Equals(Microsoft.CodeAnalysis.Sarif.ThreadFlowLocation,Microsoft.CodeAnalysis.Sarif.ThreadFlowLocation)" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "1" + }, + "properties": { + "Category": "Microsoft.Design", + "FixCategory": "DependsOnFix" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Readers.ResultDiffingVisitor.NewResults": { - "name": "NewResults", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Readers.ResultDiffingVisitor", - "kind": "member" + { + "ruleId": "CA1006", + "level": "error", + "message": { + "text": "Consider a design where 'GenericActionPipeline.GenericActionPipeline(IEnumerable>)' doesn't nest generic type 'IEnumerable>'." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Processors/Generic/GenericActionPipeline.cs", + "index": 98 + }, + "region": { + "startLine": 12 + } + }, + "logicalLocations": [ + { + "index": 508, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Processors.GenericActionPipeline`1..ctor(System.Collections.Generic.IEnumerable`1>)" + } + ] + } + ], + "properties": { + "Level": "CriticalError", + "Category": "Microsoft.Design", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Readers.ResultDiffingVisitor.SharedResults": { - "name": "SharedResults", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Readers.ResultDiffingVisitor", - "kind": "member" + { + "ruleId": "CA1725", + "level": "error", + "message": { + "text": "In member 'GenericMappingAction.Act(IEnumerable)', change parameter name 'list' to 'collection' in order to match the identifier as it has been declared in 'IActionWrapper.Act(IEnumerable)'." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Processors/Generic/GenericMappingAction.cs", + "index": 99 + }, + "region": { + "startLine": 29 + } + }, + "logicalLocations": [ + { + "index": 510, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Processors.GenericMappingAction`1.Act(System.Collections.Generic.IEnumerable`1)" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "0#" + }, + "properties": { + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Readers.RuleDictionaryConverter": { - "name": "RuleDictionaryConverter", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Readers", - "kind": "type" + { + "ruleId": "CA1051", + "level": "error", + "message": { + "text": "Because field 'GenericMappingAction.Action' is visible outside of its declaring type, change its accessibility to private and add a property, with the same accessibility as the field has currently, to provide access to it." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + } + }, + "logicalLocations": [ + { + "index": 511, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Processors.GenericMappingAction`1.Action" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Design", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Readers.RuleDictionaryConverter.Instance": { - "name": "Instance", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Readers.RuleDictionaryConverter", - "kind": "member" + { + "ruleId": "CA1062", + "message": { + "text": "In externally visible method 'GenericMappingAction.Map(IEnumerable)', validate parameter 'collection' before using it." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Processors/Generic/GenericMappingAction.cs", + "index": 99 + }, + "region": { + "startLine": 21 + } + }, + "logicalLocations": [ + { + "index": 512, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Processors.GenericMappingAction`1.Map(System.Collections.Generic.IEnumerable`1)" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "0" + }, + "properties": { + "Category": "Microsoft.Design", + "FixCategory": "DependsOnFix" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Readers.SarifContractResolver": { - "name": "SarifContractResolver", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Readers", - "kind": "type" + { + "ruleId": "CA1704", + "message": { + "text": "Correct the spelling of 'Sarif' in type name 'SarifLogAction'.", + "id": "Type" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + } + }, + "logicalLocations": [ + { + "index": 513, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Processors.SarifLogAction" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "Sarif#Type" + }, + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Readers.SarifContractResolver.Instance": { - "name": "Instance", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Readers.SarifContractResolver", - "kind": "member" + { + "ruleId": "CA1704", + "message": { + "text": "Correct the spelling of 'Sarif' in type name 'SarifLogActionTuple'.", + "id": "Type" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + } + }, + "logicalLocations": [ + { + "index": 514, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Processors.SarifLogActionTuple" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "Sarif#Type" + }, + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Readers.SarifContractResolverVersionOne": { - "name": "SarifContractResolverVersionOne", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Readers", - "kind": "type" + { + "ruleId": "CA1051", + "level": "error", + "message": { + "text": "Because field 'SarifLogActionTuple.Action' is visible outside of its declaring type, change its accessibility to private and add a property, with the same accessibility as the field has currently, to provide access to it." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + } + }, + "logicalLocations": [ + { + "index": 515, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Processors.SarifLogActionTuple.Action" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Design", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Readers.SarifContractResolverVersionOne.Instance": { - "name": "Instance", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Readers.SarifContractResolverVersionOne", - "kind": "member" + { + "ruleId": "CA1051", + "level": "error", + "message": { + "text": "Because field 'SarifLogActionTuple.Parameters' is visible outside of its declaring type, change its accessibility to private and add a property, with the same accessibility as the field has currently, to provide access to it." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + } + }, + "logicalLocations": [ + { + "index": 516, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Processors.SarifLogActionTuple.Parameters" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Design", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Readers.SarifVersionConverter": { - "name": "SarifVersionConverter", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Readers", - "kind": "type" - }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Readers.SarifVersionConverter.Instance": { - "name": "Instance", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Readers.SarifVersionConverter", - "kind": "member" - }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Readers.UriConverter": { - "name": "UriConverter", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Readers", - "kind": "type" - }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Readers.UriConverter.Instance": { - "name": "Instance", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Readers.UriConverter", - "kind": "member" - }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Readers.VersionConverter": { - "name": "VersionConverter", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Readers", - "kind": "type" - }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Readers.VersionConverter.Instance": { - "name": "Instance", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Readers.VersionConverter", - "kind": "member" + { + "ruleId": "CA1704", + "message": { + "text": "Correct the spelling of 'Sarif' in type name 'SarifLogExtensionMethods'.", + "id": "Type" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + } + }, + "logicalLocations": [ + { + "index": 517, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Processors.SarifLogExtensionMethods" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "Sarif#Type" + }, + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne": { - "name": "Microsoft.CodeAnalysis.Sarif.VersionOne", - "parentKey": "sarif.dll", - "kind": "namespace" + { + "ruleId": "CA1704", + "message": { + "text": "In method 'SarifLogExtensionMethods.MakeUrisAbsolute(this SarifLog)', correct the spelling of 'sarif' in parameter name 'sarifLog' or remove it entirely if it represents any sort of Hungarian notation.", + "id": "MemberParameter" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Processors/Log/SarifLogExtensionMethods.cs", + "index": 100 + }, + "region": { + "startLine": 36 + } + }, + "logicalLocations": [ + { + "index": 518, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Processors.SarifLogExtensionMethods.MakeUrisAbsolute(Microsoft.CodeAnalysis.Sarif.SarifLog)" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "sarif#MemberParameter" + }, + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.AlgorithmKindVersionOne": { - "name": "AlgorithmKindVersionOne", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne", - "kind": "type" + { + "ruleId": "CA1704", + "message": { + "text": "In method 'SarifLogExtensionMethods.MakeUrisAbsolute(this IEnumerable)', correct the spelling of 'sarif' in parameter name 'sarifLogs' or remove it entirely if it represents any sort of Hungarian notation.", + "id": "MemberParameter" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Processors/Log/SarifLogExtensionMethods.cs", + "index": 100 + }, + "region": { + "startLine": 31 + } + }, + "logicalLocations": [ + { + "index": 519, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Processors.SarifLogExtensionMethods.MakeUrisAbsolute(System.Collections.Generic.IEnumerable`1)" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "sarif#MemberParameter" + }, + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.AlgorithmKindVersionOne.Authentihash": { - "name": "Authentihash", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.AlgorithmKindVersionOne", - "kind": "member" + { + "ruleId": "CA1704", + "message": { + "text": "In method 'SarifLogExtensionMethods.Merge(this IEnumerable)', correct the spelling of 'sarif' in parameter name 'sarifLog' or remove it entirely if it represents any sort of Hungarian notation.", + "id": "MemberParameter" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Processors/Log/SarifLogExtensionMethods.cs", + "index": 100 + }, + "region": { + "startLine": 16 + } + }, + "logicalLocations": [ + { + "index": 520, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Processors.SarifLogExtensionMethods.Merge(System.Collections.Generic.IEnumerable`1)" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "sarif#MemberParameter" + }, + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.AlgorithmKindVersionOne.Ecoh": { - "name": "Ecoh", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.AlgorithmKindVersionOne", - "kind": "member" + { + "ruleId": "CA1704", + "message": { + "text": "In method 'SarifLogExtensionMethods.RebaseUri(this SarifLog, string, bool, Uri)', correct the spelling of 'sarif' in parameter name 'sarifLog' or remove it entirely if it represents any sort of Hungarian notation.", + "id": "MemberParameter" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Processors/Log/SarifLogExtensionMethods.cs", + "index": 100 + }, + "region": { + "startLine": 26 + } + }, + "logicalLocations": [ + { + "index": 521, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Processors.SarifLogExtensionMethods.RebaseUri(Microsoft.CodeAnalysis.Sarif.SarifLog,System.String,System.Boolean,System.Uri)" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "sarif#MemberParameter" + }, + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.AlgorithmKindVersionOne.Fsb": { - "name": "Fsb", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.AlgorithmKindVersionOne", - "kind": "member" + { + "ruleId": "CA1704", + "message": { + "text": "In method 'SarifLogExtensionMethods.RebaseUri(this IEnumerable, string, bool, Uri)', correct the spelling of 'sarif' in parameter name 'sarifLog' or remove it entirely if it represents any sort of Hungarian notation.", + "id": "MemberParameter" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Processors/Log/SarifLogExtensionMethods.cs", + "index": 100 + }, + "region": { + "startLine": 21 + } + }, + "logicalLocations": [ + { + "index": 522, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Processors.SarifLogExtensionMethods.RebaseUri(System.Collections.Generic.IEnumerable`1,System.String,System.Boolean,System.Uri)" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "sarif#MemberParameter" + }, + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.AlgorithmKindVersionOne.Gost": { - "name": "Gost", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.AlgorithmKindVersionOne", - "kind": "member" + { + "ruleId": "CA1062", + "message": { + "text": "In externally visible method 'SarifLogExtensionMethods.RebaseUri(this IEnumerable, string, bool, Uri)', validate parameter 'uri' before using it." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Processors/Log/SarifLogExtensionMethods.cs", + "index": 100 + }, + "region": { + "startLine": 22 + } + }, + "logicalLocations": [ + { + "index": 522, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Processors.SarifLogExtensionMethods.RebaseUri(System.Collections.Generic.IEnumerable`1,System.String,System.Boolean,System.Uri)" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "3" + }, + "properties": { + "Category": "Microsoft.Design", + "FixCategory": "DependsOnFix" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.AlgorithmKindVersionOne.Groestl": { - "name": "Groestl", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.AlgorithmKindVersionOne", - "kind": "member" + { + "ruleId": "CA1704", + "message": { + "text": "Correct the spelling of 'Sarif' in type name 'SarifLogPipeline'.", + "id": "Type" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + } + }, + "logicalLocations": [ + { + "index": 523, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Processors.SarifLogPipeline" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "Sarif#Type" + }, + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.AlgorithmKindVersionOne.Haval": { - "name": "Haval", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.AlgorithmKindVersionOne", - "kind": "member" + { + "ruleId": "CA1002", + "level": "error", + "message": { + "text": "Change 'List' in 'SarifLogPipeline.SarifLogPipeline(List)' to use Collection, ReadOnlyCollection or KeyedCollection" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Processors/Log/SarifLogPipeline.cs", + "index": 101 + }, + "region": { + "startLine": 27 + } + }, + "logicalLocations": [ + { + "index": 524, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Processors.SarifLogPipeline..ctor(System.Collections.Generic.List`1)" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Design", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.AlgorithmKindVersionOne.Sdhash": { - "name": "Sdhash", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.AlgorithmKindVersionOne", - "kind": "member" - }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.AlgorithmKindVersionOne.Sha1": { - "name": "Sha1", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.AlgorithmKindVersionOne", - "kind": "member" - }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.AlgorithmKindVersionOne.Sha224": { - "name": "Sha224", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.AlgorithmKindVersionOne", - "kind": "member" - }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.AlgorithmKindVersionOne.Sha256": { - "name": "Sha256", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.AlgorithmKindVersionOne", - "kind": "member" - }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.AlgorithmKindVersionOne.Sha3": { - "name": "Sha3", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.AlgorithmKindVersionOne", - "kind": "member" + { + "ruleId": "CA2235", + "level": "error", + "message": { + "text": "Field 'SarifLogPipeline._pipeline' is a member of type 'SarifLogPipeline', which is serializable, but is of type 'GenericActionPipeline', which is not serializable. Add the NonSerializedAttribute to 'SarifLogPipeline._pipeline'." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + } + }, + "logicalLocations": [ + { + "index": 525, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Processors.SarifLogPipeline._pipeline" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Usage", + "FixCategory": "NonBreaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.AlgorithmKindVersionOne.Sha384": { - "name": "Sha384", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.AlgorithmKindVersionOne", - "kind": "member" + { + "ruleId": "CA1002", + "level": "error", + "message": { + "text": "Change 'List' in 'SarifLogPipeline.Actions' to use Collection, ReadOnlyCollection or KeyedCollection" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Processors/Log/SarifLogPipeline.cs", + "index": 101 + }, + "region": { + "startLine": 20 + } + }, + "logicalLocations": [ + { + "index": 526, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Processors.SarifLogPipeline.Actions" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Design", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.AlgorithmKindVersionOne.Sha512": { - "name": "Sha512", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.AlgorithmKindVersionOne", - "kind": "member" + { + "ruleId": "CA1704", + "message": { + "text": "Correct the spelling of 'Sarif' in type name 'SarifLogProcessorFactory'.", + "id": "Type" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + } + }, + "logicalLocations": [ + { + "index": 527, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Processors.SarifLogProcessorFactory" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "Sarif#Type" + }, + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.AlgorithmKindVersionOne.Snefru": { - "name": "Snefru", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.AlgorithmKindVersionOne", - "kind": "member" + { + "ruleId": "CA1053", + "level": "error", + "message": { + "text": "Because type 'SarifLogProcessorFactory' contains only 'static' members, mark it as 'static' to prevent the compiler from adding a default public constructor.", + "id": "CSharp2_0" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + } + }, + "logicalLocations": [ + { + "index": 527, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Processors.SarifLogProcessorFactory" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "CSharp2_0" + }, + "properties": { + "Category": "Microsoft.Design", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.AlgorithmKindVersionOne.Ssdeep": { - "name": "Ssdeep", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.AlgorithmKindVersionOne", - "kind": "member" + { + "ruleId": "CA1305", + "level": "error", + "message": { + "text": "Because the behavior of 'string.Format(string, object)' could vary based on the current user's locale settings, replace this call in 'SarifLogProcessorFactory.GetActionStage(SarifLogAction, params string[])' with a call to 'string.Format(IFormatProvider, string, params object[])'. If the result of 'string.Format(IFormatProvider, string, params object[])' will be displayed to the user, specify 'CultureInfo.CurrentCulture' as the 'IFormatProvider' parameter. Otherwise, if the result will be stored and accessed by software, such as when it is persisted to disk or to a database, specify 'CultureInfo.InvariantCulture'.", + "id": "IFormatProviderAlternateString" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Processors/Log/SarifLogStageFactory.cs", + "index": 102 + }, + "region": { + "startLine": 55 + } + }, + "logicalLocations": [ + { + "index": 528, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Processors.SarifLogProcessorFactory.GetActionStage(Microsoft.CodeAnalysis.Sarif.Processors.SarifLogAction,System.String[])" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "System.String.Format(System.String,System.Object)#IFormatProviderAlternateString" + }, + "properties": { + "Category": "Microsoft.Globalization", + "FixCategory": "NonBreaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.AlgorithmKindVersionOne.Swifft": { - "name": "Swifft", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.AlgorithmKindVersionOne", - "kind": "member" + { + "ruleId": "CA2104", + "level": "error", + "message": { + "text": "Remove the read-only designation from 'DateTimeConverter.Instance' or change the field to one that is an immutable reference type. If the reference type 'DateTimeConverter' is, in fact, immutable, exclude this message." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + } + }, + "logicalLocations": [ + { + "index": 531, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Readers.DateTimeConverter.Instance" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Security", + "FixCategory": "NonBreaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.AlgorithmKindVersionOne.Tlsh": { - "name": "Tlsh", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.AlgorithmKindVersionOne", - "kind": "member" + { + "ruleId": "CA1308", + "level": "error", + "message": { + "text": "In method 'EnumConverter.ConvertToCamelCase(string)', replace the call to 'string.ToLowerInvariant()' with String.ToUpperInvariant().", + "id": "ToUpperInvariant" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Readers/EnumConverter.cs", + "index": 103 + }, + "region": { + "startLine": 52 + } + }, + "logicalLocations": [ + { + "index": 533, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Readers.EnumConverter.ConvertToCamelCase(System.String)" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "ToUpperInvariant" + }, + "properties": { + "Category": "Microsoft.Globalization", + "FixCategory": "NonBreaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.AnnotatedCodeLocationVersionOne": { - "name": "AnnotatedCodeLocationVersionOne", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne", - "kind": "type" + { + "ruleId": "CA1308", + "level": "error", + "message": { + "text": "In method 'EnumConverter.ConvertToCamelCase(string)', replace the call to 'string.ToLowerInvariant()' with String.ToUpperInvariant().", + "id": "ToUpperInvariant" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Readers/EnumConverter.cs", + "index": 103 + }, + "region": { + "startLine": 57 + } + }, + "logicalLocations": [ + { + "index": 533, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Readers.EnumConverter.ConvertToCamelCase(System.String)" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "ToUpperInvariant" + }, + "properties": { + "Category": "Microsoft.Globalization", + "FixCategory": "NonBreaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.AnnotatedCodeLocationVersionOne..ctor(Microsoft.CodeAnalysis.Sarif.VersionOne.AnnotatedCodeLocationVersionOne)": { - "name": ".ctor(Microsoft.CodeAnalysis.Sarif.VersionOne.AnnotatedCodeLocationVersionOne)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.AnnotatedCodeLocationVersionOne", - "kind": "member" + { + "ruleId": "CA2104", + "level": "error", + "message": { + "text": "Remove the read-only designation from 'EnumConverter.Instance' or change the field to one that is an immutable reference type. If the reference type 'EnumConverter' is, in fact, immutable, exclude this message." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + } + }, + "logicalLocations": [ + { + "index": 534, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Readers.EnumConverter.Instance" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Security", + "FixCategory": "NonBreaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.AnnotatedCodeLocationVersionOne..ctor(System.Int32,System.Int32,Microsoft.CodeAnalysis.Sarif.VersionOne.PhysicalLocationVersionOne,System.String,System.String,System.String,System.Int32,System.String,Microsoft.CodeAnalysis.Sarif.VersionOne.AnnotatedCodeLocationKindVersionOne,Microsoft.CodeAnalysis.Sarif.VersionOne.TaintKindVersionOne,System.String,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IDictionary`2,System.String,System.Boolean,Microsoft.CodeAnalysis.Sarif.VersionOne.AnnotatedCodeLocationImportanceVersionOne,System.String,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IDictionary`2)": { - "name": ".ctor(System.Int32,System.Int32,Microsoft.CodeAnalysis.Sarif.VersionOne.PhysicalLocationVersionOne,System.String,System.String,System.String,System.Int32,System.String,Microsoft.CodeAnalysis.Sarif.VersionOne.AnnotatedCodeLocationKindVersionOne,Microsoft.CodeAnalysis.Sarif.VersionOne.TaintKindVersionOne,System.String,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IDictionary`2,System.String,System.Boolean,Microsoft.CodeAnalysis.Sarif.VersionOne.AnnotatedCodeLocationImportanceVersionOne,System.String,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IDictionary`2)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.AnnotatedCodeLocationVersionOne", - "kind": "member" + { + "ruleId": "CA1726", + "message": { + "text": "FxCop results that have been suppressed do not contain a message string." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + } + }, + "logicalLocations": [ + { + "index": 535, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Readers.FlagsEnumConverter" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "Flags" + }, + "suppressions": [ + { + "kind": "inSource" + } + ], + "properties": { + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.AnnotatedCodeLocationVersionOne.Annotations": { - "name": "Annotations", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.AnnotatedCodeLocationVersionOne", - "kind": "member" - }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.AnnotatedCodeLocationVersionOne.State": { - "name": "State", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.AnnotatedCodeLocationVersionOne", - "kind": "member" - }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.AnnotatedCodeLocationVersionOne.Values": { - "name": "Values", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.AnnotatedCodeLocationVersionOne", - "kind": "member" - }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.AnnotatedCodeLocationVersionOneEqualityComparer": { - "name": "AnnotatedCodeLocationVersionOneEqualityComparer", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne", - "kind": "type" - }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.AnnotatedCodeLocationVersionOneEqualityComparer.Equals(Microsoft.CodeAnalysis.Sarif.VersionOne.AnnotatedCodeLocationVersionOne,Microsoft.CodeAnalysis.Sarif.VersionOne.AnnotatedCodeLocationVersionOne)": { - "name": "Equals(Microsoft.CodeAnalysis.Sarif.VersionOne.AnnotatedCodeLocationVersionOne,Microsoft.CodeAnalysis.Sarif.VersionOne.AnnotatedCodeLocationVersionOne)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.AnnotatedCodeLocationVersionOneEqualityComparer", - "kind": "member" - }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.AnnotatedCodeLocationVersionOneEqualityComparer.GetHashCode(Microsoft.CodeAnalysis.Sarif.VersionOne.AnnotatedCodeLocationVersionOne)": { - "name": "GetHashCode(Microsoft.CodeAnalysis.Sarif.VersionOne.AnnotatedCodeLocationVersionOne)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.AnnotatedCodeLocationVersionOneEqualityComparer", - "kind": "member" + { + "ruleId": "CA2104", + "level": "error", + "message": { + "text": "Remove the read-only designation from 'FlagsEnumConverter.Instance' or change the field to one that is an immutable reference type. If the reference type 'FlagsEnumConverter' is, in fact, immutable, exclude this message." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + } + }, + "logicalLocations": [ + { + "index": 536, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Readers.FlagsEnumConverter.Instance" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Security", + "FixCategory": "NonBreaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.AnnotationVersionOne": { - "name": "AnnotationVersionOne", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne", - "kind": "type" + { + "ruleId": "CA1062", + "message": { + "text": "In externally visible method 'FlagsEnumConverter.WriteJson(JsonWriter, object, JsonSerializer)', validate parameter 'value' before using it." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Readers/FlagsEnumConverter.cs", + "index": 104 + }, + "region": { + "startLine": 62 + } + }, + "logicalLocations": [ + { + "index": 537, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Readers.FlagsEnumConverter.WriteJson(Newtonsoft.Json.JsonWriter,System.Object,Newtonsoft.Json.JsonSerializer)" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "1" + }, + "properties": { + "Category": "Microsoft.Design", + "FixCategory": "DependsOnFix" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.AnnotationVersionOne.Locations": { - "name": "Locations", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.AnnotationVersionOne", - "kind": "member" + { + "ruleId": "CA1308", + "level": "error", + "message": { + "text": "In method 'PropertyBagConverter.ReadJson(JsonReader, Type, object, JsonSerializer)', replace the call to 'string.ToLowerInvariant()' with String.ToUpperInvariant().", + "id": "ToUpperInvariant" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Readers/PropertyBagConverter.cs", + "index": 105 + }, + "region": { + "startLine": 44 + } + }, + "logicalLocations": [ + { + "index": 539, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Readers.PropertyBagConverter.ReadJson(Newtonsoft.Json.JsonReader,System.Type,System.Object,Newtonsoft.Json.JsonSerializer)" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "ToUpperInvariant" + }, + "properties": { + "Category": "Microsoft.Globalization", + "FixCategory": "NonBreaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.CodeFlowVersionOne": { - "name": "CodeFlowVersionOne", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne", - "kind": "type" + { + "ruleId": "CA2214", + "message": { + "text": "'ResultDiffingVisitor.ResultDiffingVisitor(SarifLog)' contains a call chain that results in a call to a virtual method defined by the class. Review the following call stack for unintended consequences: \r\n\r\nResultDiffingVisitor..ctor(SarifLog)\r\nSarifRewritingVisitor.VisitSarifLog(SarifLog):SarifLog" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Readers/ResultDiffingVisitor.cs", + "index": 106 + }, + "region": { + "startLine": 10 + } + }, + "logicalLocations": [ + { + "index": 541, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Readers.ResultDiffingVisitor..ctor(Microsoft.CodeAnalysis.Sarif.SarifLog)" + } + ] + } + ], + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Usage", + "FixCategory": "NonBreaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.CodeFlowVersionOne..ctor(Microsoft.CodeAnalysis.Sarif.VersionOne.CodeFlowVersionOne)": { - "name": ".ctor(Microsoft.CodeAnalysis.Sarif.VersionOne.CodeFlowVersionOne)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.CodeFlowVersionOne", - "kind": "member" + { + "ruleId": "CA1704", + "message": { + "text": "In method 'ResultDiffingVisitor.ResultDiffingVisitor(SarifLog)', correct the spelling of 'sarif' in parameter name 'sarifLog' or remove it entirely if it represents any sort of Hungarian notation.", + "id": "MemberParameter" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Readers/ResultDiffingVisitor.cs", + "index": 106 + }, + "region": { + "startLine": 10 + } + }, + "logicalLocations": [ + { + "index": 541, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Readers.ResultDiffingVisitor..ctor(Microsoft.CodeAnalysis.Sarif.SarifLog)" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "sarif#MemberParameter" + }, + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.CodeFlowVersionOne..ctor(System.String,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IDictionary`2)": { - "name": ".ctor(System.String,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IDictionary`2)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.CodeFlowVersionOne", - "kind": "member" + { + "ruleId": "CA2227", + "message": { + "text": "FxCop results that have been suppressed do not contain a message string." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + } + }, + "logicalLocations": [ + { + "index": 542, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Readers.ResultDiffingVisitor.AbsentResults" + } + ] + } + ], + "suppressions": [ + { + "kind": "inSource" + } + ], + "properties": { + "Category": "Microsoft.Usage", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.CodeFlowVersionOne.Locations": { - "name": "Locations", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.CodeFlowVersionOne", - "kind": "member" + { + "ruleId": "CA2227", + "message": { + "text": "FxCop results that have been suppressed do not contain a message string." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + } + }, + "logicalLocations": [ + { + "index": 543, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Readers.ResultDiffingVisitor.NewResults" + } + ] + } + ], + "suppressions": [ + { + "kind": "inSource" + } + ], + "properties": { + "Category": "Microsoft.Usage", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.ExceptionDataVersionOne": { - "name": "ExceptionDataVersionOne", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne", - "kind": "type" + { + "ruleId": "CA2227", + "message": { + "text": "FxCop results that have been suppressed do not contain a message string." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + } + }, + "logicalLocations": [ + { + "index": 544, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Readers.ResultDiffingVisitor.SharedResults" + } + ] + } + ], + "suppressions": [ + { + "kind": "inSource" + } + ], + "properties": { + "Category": "Microsoft.Usage", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.ExceptionDataVersionOne.InnerExceptions": { - "name": "InnerExceptions", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.ExceptionDataVersionOne", - "kind": "member" + { + "ruleId": "CA2104", + "level": "error", + "message": { + "text": "Remove the read-only designation from 'RuleDictionaryConverter.Instance' or change the field to one that is an immutable reference type. If the reference type 'RuleDictionaryConverter' is, in fact, immutable, exclude this message." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + } + }, + "logicalLocations": [ + { + "index": 546, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Readers.RuleDictionaryConverter.Instance" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Security", + "FixCategory": "NonBreaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.FileChangeVersionOne": { - "name": "FileChangeVersionOne", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne", - "kind": "type" + { + "ruleId": "CA1704", + "message": { + "text": "Correct the spelling of 'Sarif' in type name 'SarifContractResolver'.", + "id": "Type" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + } + }, + "logicalLocations": [ + { + "index": 547, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Readers.SarifContractResolver" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "Sarif#Type" + }, + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.FileChangeVersionOne..ctor(System.Uri,System.String,System.Collections.Generic.IEnumerable`1)": { - "name": ".ctor(System.Uri,System.String,System.Collections.Generic.IEnumerable`1)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.FileChangeVersionOne", - "kind": "member" - }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.FileChangeVersionOne.Replacements": { - "name": "Replacements", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.FileChangeVersionOne", - "kind": "member" - }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.FileChangeVersionOne.UriBaseId": { - "name": "UriBaseId", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.FileChangeVersionOne", - "kind": "member" - }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.FileDataVersionOne": { - "name": "FileDataVersionOne", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne", - "kind": "type" + { + "ruleId": "CA2104", + "level": "error", + "message": { + "text": "Remove the read-only designation from 'SarifContractResolver.Instance' or change the field to one that is an immutable reference type. If the reference type 'SarifContractResolver' is, in fact, immutable, exclude this message." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + } + }, + "logicalLocations": [ + { + "index": 548, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Readers.SarifContractResolver.Instance" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Security", + "FixCategory": "NonBreaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.FileDataVersionOne..ctor(Microsoft.CodeAnalysis.Sarif.VersionOne.FileDataVersionOne)": { - "name": ".ctor(Microsoft.CodeAnalysis.Sarif.VersionOne.FileDataVersionOne)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.FileDataVersionOne", - "kind": "member" + { + "ruleId": "CA1704", + "message": { + "text": "Correct the spelling of 'Sarif' in type name 'SarifContractResolverVersionOne'.", + "id": "Type" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + } + }, + "logicalLocations": [ + { + "index": 549, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Readers.SarifContractResolverVersionOne" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "Sarif#Type" + }, + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.FileDataVersionOne..ctor(System.Uri,System.String,System.String,System.Int32,System.Int32,System.String,System.String,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IDictionary`2)": { - "name": ".ctor(System.Uri,System.String,System.String,System.Int32,System.Int32,System.String,System.String,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IDictionary`2)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.FileDataVersionOne", - "kind": "member" + { + "ruleId": "CA2104", + "level": "error", + "message": { + "text": "Remove the read-only designation from 'SarifContractResolverVersionOne.Instance' or change the field to one that is an immutable reference type. If the reference type 'SarifContractResolverVersionOne' is, in fact, immutable, exclude this message." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + } + }, + "logicalLocations": [ + { + "index": 550, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Readers.SarifContractResolverVersionOne.Instance" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Security", + "FixCategory": "NonBreaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.FileDataVersionOne.Hashes": { - "name": "Hashes", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.FileDataVersionOne", - "kind": "member" + { + "ruleId": "CA1704", + "message": { + "text": "Correct the spelling of 'Sarif' in type name 'SarifVersionConverter'.", + "id": "Type" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + } + }, + "logicalLocations": [ + { + "index": 551, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Readers.SarifVersionConverter" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "Sarif#Type" + }, + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.FileDataVersionOne.UriBaseId": { - "name": "UriBaseId", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.FileDataVersionOne", - "kind": "member" + { + "ruleId": "CA2104", + "level": "error", + "message": { + "text": "Remove the read-only designation from 'SarifVersionConverter.Instance' or change the field to one that is an immutable reference type. If the reference type 'SarifVersionConverter' is, in fact, immutable, exclude this message." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + } + }, + "logicalLocations": [ + { + "index": 552, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Readers.SarifVersionConverter.Instance" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Security", + "FixCategory": "NonBreaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.FixVersionOne": { - "name": "FixVersionOne", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne", - "kind": "type" + { + "ruleId": "CA2104", + "level": "error", + "message": { + "text": "Remove the read-only designation from 'UriConverter.Instance' or change the field to one that is an immutable reference type. If the reference type 'UriConverter' is, in fact, immutable, exclude this message." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + } + }, + "logicalLocations": [ + { + "index": 554, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Readers.UriConverter.Instance" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Security", + "FixCategory": "NonBreaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.FixVersionOne.FileChanges": { - "name": "FileChanges", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.FixVersionOne", - "kind": "member" + { + "ruleId": "CA2104", + "level": "error", + "message": { + "text": "Remove the read-only designation from 'VersionConverter.Instance' or change the field to one that is an immutable reference type. If the reference type 'VersionConverter' is, in fact, immutable, exclude this message." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + } + }, + "logicalLocations": [ + { + "index": 556, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Readers.VersionConverter.Instance" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Security", + "FixCategory": "NonBreaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.FormattedRuleMessageVersionOne": { - "name": "FormattedRuleMessageVersionOne", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne", - "kind": "type" + { + "ruleId": "CA1704", + "message": { + "text": "Correct the spelling of 'Authentihash' in member name 'AlgorithmKindVersionOne.Authentihash' or remove it entirely if it represents any sort of Hungarian notation.", + "id": "Member" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + } + }, + "logicalLocations": [ + { + "index": 559, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.AlgorithmKindVersionOne.Authentihash" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "Authentihash#Member" + }, + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.FormattedRuleMessageVersionOne.Arguments": { - "name": "Arguments", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.FormattedRuleMessageVersionOne", - "kind": "member" + { + "ruleId": "CA1704", + "message": { + "text": "Correct the spelling of 'Ecoh' in member name 'AlgorithmKindVersionOne.Ecoh' or remove it entirely if it represents any sort of Hungarian notation.", + "id": "Member" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + } + }, + "logicalLocations": [ + { + "index": 560, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.AlgorithmKindVersionOne.Ecoh" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "Ecoh#Member" + }, + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.InvocationVersionOne": { - "name": "InvocationVersionOne", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne", - "kind": "type" + { + "ruleId": "CA1704", + "message": { + "text": "Correct the spelling of 'Fsb' in member name 'AlgorithmKindVersionOne.Fsb' or remove it entirely if it represents any sort of Hungarian notation.", + "id": "Member" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + } + }, + "logicalLocations": [ + { + "index": 561, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.AlgorithmKindVersionOne.Fsb" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "Fsb#Member" + }, + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.InvocationVersionOne..ctor(Microsoft.CodeAnalysis.Sarif.VersionOne.InvocationVersionOne)": { - "name": ".ctor(Microsoft.CodeAnalysis.Sarif.VersionOne.InvocationVersionOne)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.InvocationVersionOne", - "kind": "member" + { + "ruleId": "CA1704", + "message": { + "text": "Correct the spelling of 'Gost' in member name 'AlgorithmKindVersionOne.Gost' or remove it entirely if it represents any sort of Hungarian notation.", + "id": "Member" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + } + }, + "logicalLocations": [ + { + "index": 562, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.AlgorithmKindVersionOne.Gost" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "Gost#Member" + }, + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.InvocationVersionOne..ctor(System.String,System.Collections.Generic.IDictionary`2,System.DateTime,System.DateTime,System.String,System.String,System.Int32,System.String,System.String,System.Collections.Generic.IDictionary`2,System.Collections.Generic.IDictionary`2)": { - "name": ".ctor(System.String,System.Collections.Generic.IDictionary`2,System.DateTime,System.DateTime,System.String,System.String,System.Int32,System.String,System.String,System.Collections.Generic.IDictionary`2,System.Collections.Generic.IDictionary`2)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.InvocationVersionOne", - "kind": "member" - }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.InvocationVersionOne.EnvironmentVariables": { - "name": "EnvironmentVariables", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.InvocationVersionOne", - "kind": "member" - }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.InvocationVersionOne.ResponseFiles": { - "name": "ResponseFiles", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.InvocationVersionOne", - "kind": "member" - }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.InvocationVersionOneEqualityComparer": { - "name": "InvocationVersionOneEqualityComparer", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne", - "kind": "type" - }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.InvocationVersionOneEqualityComparer.Equals(Microsoft.CodeAnalysis.Sarif.VersionOne.InvocationVersionOne,Microsoft.CodeAnalysis.Sarif.VersionOne.InvocationVersionOne)": { - "name": "Equals(Microsoft.CodeAnalysis.Sarif.VersionOne.InvocationVersionOne,Microsoft.CodeAnalysis.Sarif.VersionOne.InvocationVersionOne)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.InvocationVersionOneEqualityComparer", - "kind": "member" - }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.IRuleVersionOne": { - "name": "IRuleVersionOne", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne", - "kind": "type" + { + "ruleId": "CA1704", + "message": { + "text": "Correct the spelling of 'Groestl' in member name 'AlgorithmKindVersionOne.Groestl' or remove it entirely if it represents any sort of Hungarian notation.", + "id": "Member" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + } + }, + "logicalLocations": [ + { + "index": 563, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.AlgorithmKindVersionOne.Groestl" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "Groestl#Member" + }, + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.ISarifNodeVersionOne": { - "name": "ISarifNodeVersionOne", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne", - "kind": "type" + { + "ruleId": "CA1704", + "message": { + "text": "Correct the spelling of 'Haval' in member name 'AlgorithmKindVersionOne.Haval' or remove it entirely if it represents any sort of Hungarian notation.", + "id": "Member" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + } + }, + "logicalLocations": [ + { + "index": 564, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.AlgorithmKindVersionOne.Haval" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "Haval#Member" + }, + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.ISarifNodeVersionOne.SarifNodeKindVersionOne": { - "name": "SarifNodeKindVersionOne", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.ISarifNodeVersionOne", - "kind": "member" + { + "ruleId": "CA1704", + "message": { + "text": "Correct the spelling of 'Sdhash' in member name 'AlgorithmKindVersionOne.Sdhash' or remove it entirely if it represents any sort of Hungarian notation.", + "id": "Member" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + } + }, + "logicalLocations": [ + { + "index": 565, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.AlgorithmKindVersionOne.Sdhash" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "Sdhash#Member" + }, + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.LocationVersionOne": { - "name": "LocationVersionOne", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne", - "kind": "type" + { + "ruleId": "CA1704", + "message": { + "text": "Correct the spelling of 'Sha' in member name 'AlgorithmKindVersionOne.Sha1' or remove it entirely if it represents any sort of Hungarian notation.", + "id": "Member" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + } + }, + "logicalLocations": [ + { + "index": 566, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.AlgorithmKindVersionOne.Sha1" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "Sha#Member" + }, + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.LocationVersionOne..ctor(Microsoft.CodeAnalysis.Sarif.VersionOne.LocationVersionOne)": { - "name": ".ctor(Microsoft.CodeAnalysis.Sarif.VersionOne.LocationVersionOne)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.LocationVersionOne", - "kind": "member" + { + "ruleId": "CA1704", + "message": { + "text": "Correct the spelling of 'Sha' in member name 'AlgorithmKindVersionOne.Sha224' or remove it entirely if it represents any sort of Hungarian notation.", + "id": "Member" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + } + }, + "logicalLocations": [ + { + "index": 567, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.AlgorithmKindVersionOne.Sha224" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "Sha#Member" + }, + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.LocationVersionOne..ctor(Microsoft.CodeAnalysis.Sarif.VersionOne.PhysicalLocationVersionOne,Microsoft.CodeAnalysis.Sarif.VersionOne.PhysicalLocationVersionOne,System.String,System.String,System.String,System.Collections.Generic.IDictionary`2)": { - "name": ".ctor(Microsoft.CodeAnalysis.Sarif.VersionOne.PhysicalLocationVersionOne,Microsoft.CodeAnalysis.Sarif.VersionOne.PhysicalLocationVersionOne,System.String,System.String,System.String,System.Collections.Generic.IDictionary`2)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.LocationVersionOne", - "kind": "member" + { + "ruleId": "CA1704", + "message": { + "text": "Correct the spelling of 'Sha' in member name 'AlgorithmKindVersionOne.Sha256' or remove it entirely if it represents any sort of Hungarian notation.", + "id": "Member" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + } + }, + "logicalLocations": [ + { + "index": 568, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.AlgorithmKindVersionOne.Sha256" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "Sha#Member" + }, + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.NotificationVersionOne": { - "name": "NotificationVersionOne", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne", - "kind": "type" + { + "ruleId": "CA1704", + "message": { + "text": "Correct the spelling of 'Sha' in member name 'AlgorithmKindVersionOne.Sha3' or remove it entirely if it represents any sort of Hungarian notation.", + "id": "Member" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + } + }, + "logicalLocations": [ + { + "index": 569, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.AlgorithmKindVersionOne.Sha3" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "Sha#Member" + }, + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.NotificationVersionOne..ctor(Microsoft.CodeAnalysis.Sarif.VersionOne.NotificationVersionOne)": { - "name": ".ctor(Microsoft.CodeAnalysis.Sarif.VersionOne.NotificationVersionOne)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.NotificationVersionOne", - "kind": "member" + { + "ruleId": "CA1704", + "message": { + "text": "Correct the spelling of 'Sha' in member name 'AlgorithmKindVersionOne.Sha384' or remove it entirely if it represents any sort of Hungarian notation.", + "id": "Member" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + } + }, + "logicalLocations": [ + { + "index": 570, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.AlgorithmKindVersionOne.Sha384" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "Sha#Member" + }, + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.NotificationVersionOne..ctor(System.String,System.String,System.String,Microsoft.CodeAnalysis.Sarif.VersionOne.PhysicalLocationVersionOne,System.String,Microsoft.CodeAnalysis.Sarif.VersionOne.NotificationLevelVersionOne,System.Int32,System.DateTime,Microsoft.CodeAnalysis.Sarif.VersionOne.ExceptionDataVersionOne,System.Collections.Generic.IDictionary`2)": { - "name": ".ctor(System.String,System.String,System.String,Microsoft.CodeAnalysis.Sarif.VersionOne.PhysicalLocationVersionOne,System.String,Microsoft.CodeAnalysis.Sarif.VersionOne.NotificationLevelVersionOne,System.Int32,System.DateTime,Microsoft.CodeAnalysis.Sarif.VersionOne.ExceptionDataVersionOne,System.Collections.Generic.IDictionary`2)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.NotificationVersionOne", - "kind": "member" + { + "ruleId": "CA1704", + "message": { + "text": "Correct the spelling of 'Sha' in member name 'AlgorithmKindVersionOne.Sha512' or remove it entirely if it represents any sort of Hungarian notation.", + "id": "Member" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + } + }, + "logicalLocations": [ + { + "index": 571, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.AlgorithmKindVersionOne.Sha512" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "Sha#Member" + }, + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.PhysicalLocationVersionOne": { - "name": "PhysicalLocationVersionOne", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne", - "kind": "type" + { + "ruleId": "CA1704", + "message": { + "text": "Correct the spelling of 'Snefru' in member name 'AlgorithmKindVersionOne.Snefru' or remove it entirely if it represents any sort of Hungarian notation.", + "id": "Member" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + } + }, + "logicalLocations": [ + { + "index": 572, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.AlgorithmKindVersionOne.Snefru" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "Snefru#Member" + }, + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.PhysicalLocationVersionOne..ctor(System.Uri,System.String,Microsoft.CodeAnalysis.Sarif.VersionOne.RegionVersionOne)": { - "name": ".ctor(System.Uri,System.String,Microsoft.CodeAnalysis.Sarif.VersionOne.RegionVersionOne)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.PhysicalLocationVersionOne", - "kind": "member" - }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.PhysicalLocationVersionOne.UriBaseId": { - "name": "UriBaseId", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.PhysicalLocationVersionOne", - "kind": "member" - }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.ResultVersionOne": { - "name": "ResultVersionOne", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne", - "kind": "type" - }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.ResultVersionOne..ctor(Microsoft.CodeAnalysis.Sarif.VersionOne.ResultVersionOne)": { - "name": ".ctor(Microsoft.CodeAnalysis.Sarif.VersionOne.ResultVersionOne)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.ResultVersionOne", - "kind": "member" - }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.ResultVersionOne..ctor(System.String,System.String,Microsoft.CodeAnalysis.Sarif.VersionOne.ResultLevelVersionOne,System.String,Microsoft.CodeAnalysis.Sarif.VersionOne.FormattedRuleMessageVersionOne,System.Collections.Generic.IEnumerable`1,System.String,System.String,System.String,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,Microsoft.CodeAnalysis.Sarif.VersionOne.SuppressionStatesVersionOne,Microsoft.CodeAnalysis.Sarif.VersionOne.BaselineStateVersionOne,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IDictionary`2)": { - "name": ".ctor(System.String,System.String,Microsoft.CodeAnalysis.Sarif.VersionOne.ResultLevelVersionOne,System.String,Microsoft.CodeAnalysis.Sarif.VersionOne.FormattedRuleMessageVersionOne,System.Collections.Generic.IEnumerable`1,System.String,System.String,System.String,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,Microsoft.CodeAnalysis.Sarif.VersionOne.SuppressionStatesVersionOne,Microsoft.CodeAnalysis.Sarif.VersionOne.BaselineStateVersionOne,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IDictionary`2)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.ResultVersionOne", - "kind": "member" - }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.ResultVersionOne.CodeFlows": { - "name": "CodeFlows", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.ResultVersionOne", - "kind": "member" + { + "ruleId": "CA1704", + "message": { + "text": "Correct the spelling of 'Ssdeep' in member name 'AlgorithmKindVersionOne.Ssdeep' or remove it entirely if it represents any sort of Hungarian notation.", + "id": "Member" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + } + }, + "logicalLocations": [ + { + "index": 573, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.AlgorithmKindVersionOne.Ssdeep" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "Ssdeep#Member" + }, + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.ResultVersionOne.Fixes": { - "name": "Fixes", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.ResultVersionOne", - "kind": "member" + { + "ruleId": "CA1704", + "message": { + "text": "Correct the spelling of 'Swifft' in member name 'AlgorithmKindVersionOne.Swifft' or remove it entirely if it represents any sort of Hungarian notation.", + "id": "Member" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + } + }, + "logicalLocations": [ + { + "index": 574, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.AlgorithmKindVersionOne.Swifft" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "Swifft#Member" + }, + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.ResultVersionOne.Locations": { - "name": "Locations", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.ResultVersionOne", - "kind": "member" + { + "ruleId": "CA1704", + "message": { + "text": "Correct the spelling of 'Tlsh' in member name 'AlgorithmKindVersionOne.Tlsh' or remove it entirely if it represents any sort of Hungarian notation.", + "id": "Member" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + } + }, + "logicalLocations": [ + { + "index": 575, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.AlgorithmKindVersionOne.Tlsh" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "Tlsh#Member" + }, + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.ResultVersionOne.RelatedLocations": { - "name": "RelatedLocations", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.ResultVersionOne", - "kind": "member" + { + "ruleId": "CA2214", + "message": { + "text": "'AnnotatedCodeLocationVersionOne.AnnotatedCodeLocationVersionOne(AnnotatedCodeLocationVersionOne)' contains a call chain that results in a call to a virtual method defined by the class. Review the following call stack for unintended consequences: \r\n\r\nAnnotatedCodeLocationVersionOne..ctor(AnnotatedCodeLocationVersionOne)\r\nAnnotatedCodeLocationVersionOne.Init(Int32, Int32, PhysicalLocationVersionOne, String, String, String, Int32, String, AnnotatedCodeLocationKindVersionOne, TaintKindVersionOne, String, IEnumerable, IDictionary, String, Boolean, AnnotatedCodeLocationImportanceVersionOne, String, IEnumerable, IDictionary):Void\r\nPropertyBagHolder.set_Properties(IDictionary):Void" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/VersionOne/Autogenerated/AnnotatedCodeLocationVersionOne.cs", + "index": 107 + }, + "region": { + "startLine": 234 + } + }, + "logicalLocations": [ + { + "index": 577, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.AnnotatedCodeLocationVersionOne..ctor(Microsoft.CodeAnalysis.Sarif.VersionOne.AnnotatedCodeLocationVersionOne)" + } + ] + } + ], + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Usage", + "FixCategory": "NonBreaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.ResultVersionOne.Stacks": { - "name": "Stacks", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.ResultVersionOne", - "kind": "member" + { + "ruleId": "CA2214", + "message": { + "text": "'AnnotatedCodeLocationVersionOne.AnnotatedCodeLocationVersionOne(int, int, PhysicalLocationVersionOne, string, string, string, int, string, AnnotatedCodeLocationKindVersionOne, TaintKindVersionOne, string, IEnumerable, IDictionary, string, bool, AnnotatedCodeLocationImportanceVersionOne, string, IEnumerable, IDictionary)' contains a call chain that results in a call to a virtual method defined by the class. Review the following call stack for unintended consequences: \r\n\r\nAnnotatedCodeLocationVersionOne..ctor(Int32, Int32, PhysicalLocationVersionOne, String, String, String, Int32, String, AnnotatedCodeLocationKindVersionOne, TaintKindVersionOne, String, IEnumerable, IDictionary, String, Boolean, AnnotatedCodeLocationImportanceVersionOne, String, IEnumerable, IDictionary)\r\nAnnotatedCodeLocationVersionOne.Init(Int32, Int32, PhysicalLocationVersionOne, String, String, String, Int32, String, AnnotatedCodeLocationKindVersionOne, TaintKindVersionOne, String, IEnumerable, IDictionary, String, Boolean, AnnotatedCodeLocationImportanceVersionOne, String, IEnumerable, IDictionary):Void\r\nPropertyBagHolder.set_Properties(IDictionary):Void" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/VersionOne/Autogenerated/AnnotatedCodeLocationVersionOne.cs", + "index": 107 + }, + "region": { + "startLine": 220 + } + }, + "logicalLocations": [ + { + "index": 578, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.AnnotatedCodeLocationVersionOne..ctor(System.Int32,System.Int32,Microsoft.CodeAnalysis.Sarif.VersionOne.PhysicalLocationVersionOne,System.String,System.String,System.String,System.Int32,System.String,Microsoft.CodeAnalysis.Sarif.VersionOne.AnnotatedCodeLocationKindVersionOne,Microsoft.CodeAnalysis.Sarif.VersionOne.TaintKindVersionOne,System.String,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IDictionary`2,System.String,System.Boolean,Microsoft.CodeAnalysis.Sarif.VersionOne.AnnotatedCodeLocationImportanceVersionOne,System.String,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IDictionary`2)" + } + ] + } + ], + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Usage", + "FixCategory": "NonBreaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.ResultVersionOneEqualityComparer": { - "name": "ResultVersionOneEqualityComparer", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne", - "kind": "type" + { + "ruleId": "CA2227", + "message": { + "text": "Change 'AnnotatedCodeLocationVersionOne.Annotations' to be read-only by removing the property setter." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/VersionOne/Autogenerated/AnnotatedCodeLocationVersionOne.cs", + "index": 107 + }, + "region": { + "startLine": 145 + } + }, + "logicalLocations": [ + { + "index": 579, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.AnnotatedCodeLocationVersionOne.Annotations" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Usage", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.ResultVersionOneEqualityComparer.Equals(Microsoft.CodeAnalysis.Sarif.VersionOne.ResultVersionOne,Microsoft.CodeAnalysis.Sarif.VersionOne.ResultVersionOne)": { - "name": "Equals(Microsoft.CodeAnalysis.Sarif.VersionOne.ResultVersionOne,Microsoft.CodeAnalysis.Sarif.VersionOne.ResultVersionOne)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.ResultVersionOneEqualityComparer", - "kind": "member" + { + "ruleId": "CA2227", + "message": { + "text": "Change 'AnnotatedCodeLocationVersionOne.State' to be read-only by removing the property setter." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/VersionOne/Autogenerated/AnnotatedCodeLocationVersionOne.cs", + "index": 107 + }, + "region": { + "startLine": 114 + } + }, + "logicalLocations": [ + { + "index": 580, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.AnnotatedCodeLocationVersionOne.State" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Usage", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.ResultVersionOneEqualityComparer.GetHashCode(Microsoft.CodeAnalysis.Sarif.VersionOne.ResultVersionOne)": { - "name": "GetHashCode(Microsoft.CodeAnalysis.Sarif.VersionOne.ResultVersionOne)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.ResultVersionOneEqualityComparer", - "kind": "member" + { + "ruleId": "CA2227", + "message": { + "text": "Change 'AnnotatedCodeLocationVersionOne.Values' to be read-only by removing the property setter." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/VersionOne/Autogenerated/AnnotatedCodeLocationVersionOne.cs", + "index": 107 + }, + "region": { + "startLine": 108 + } + }, + "logicalLocations": [ + { + "index": 581, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.AnnotatedCodeLocationVersionOne.Values" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Usage", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.RuleVersionOne": { - "name": "RuleVersionOne", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne", - "kind": "type" + { + "ruleId": "CA1502", + "message": { + "text": "'AnnotatedCodeLocationVersionOneEqualityComparer.Equals(AnnotatedCodeLocationVersionOne, AnnotatedCodeLocationVersionOne)' has a cyclomatic complexity of 47. Rewrite or refactor the method to reduce complexity to 25." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/VersionOne/Autogenerated/AnnotatedCodeLocationVersionOneEqualityComparer.cs", + "index": 108 + }, + "region": { + "startLine": 20 + } + }, + "logicalLocations": [ + { + "index": 583, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.AnnotatedCodeLocationVersionOneEqualityComparer.Equals(Microsoft.CodeAnalysis.Sarif.VersionOne.AnnotatedCodeLocationVersionOne,Microsoft.CodeAnalysis.Sarif.VersionOne.AnnotatedCodeLocationVersionOne)" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Maintainability", + "FixCategory": "NonBreaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.RuleVersionOne..ctor(Microsoft.CodeAnalysis.Sarif.VersionOne.RuleVersionOne)": { - "name": ".ctor(Microsoft.CodeAnalysis.Sarif.VersionOne.RuleVersionOne)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.RuleVersionOne", - "kind": "member" + { + "ruleId": "CA1502", + "message": { + "text": "'AnnotatedCodeLocationVersionOneEqualityComparer.GetHashCode(AnnotatedCodeLocationVersionOne)' has a cyclomatic complexity of 26. Rewrite or refactor the method to reduce complexity to 25." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/VersionOne/Autogenerated/AnnotatedCodeLocationVersionOneEqualityComparer.cs", + "index": 108 + }, + "region": { + "startLine": 196 + } + }, + "logicalLocations": [ + { + "index": 584, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.AnnotatedCodeLocationVersionOneEqualityComparer.GetHashCode(Microsoft.CodeAnalysis.Sarif.VersionOne.AnnotatedCodeLocationVersionOne)" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Maintainability", + "FixCategory": "NonBreaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.RuleVersionOne..ctor(System.String,System.String,System.String,System.String,System.Collections.Generic.IDictionary`2,Microsoft.CodeAnalysis.Sarif.VersionOne.reportingConfigurationVersionOne,Microsoft.CodeAnalysis.Sarif.VersionOne.ResultLevelVersionOne,System.Uri,System.Collections.Generic.IDictionary`2)": { - "name": ".ctor(System.String,System.String,System.String,System.String,System.Collections.Generic.IDictionary`2,Microsoft.CodeAnalysis.Sarif.VersionOne.reportingConfigurationVersionOne,Microsoft.CodeAnalysis.Sarif.VersionOne.ResultLevelVersionOne,System.Uri,System.Collections.Generic.IDictionary`2)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.RuleVersionOne", - "kind": "member" - }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.RuleVersionOne.MessageFormats": { - "name": "MessageFormats", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.RuleVersionOne", - "kind": "member" - }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.RuleVersionOneEqualityComparer": { - "name": "RuleVersionOneEqualityComparer", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne", - "kind": "type" + { + "ruleId": "CA2227", + "message": { + "text": "Change 'AnnotationVersionOne.Locations' to be read-only by removing the property setter." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/VersionOne/Autogenerated/AnnotationVersionOne.cs", + "index": 109 + }, + "region": { + "startLine": 41 + } + }, + "logicalLocations": [ + { + "index": 586, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.AnnotationVersionOne.Locations" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Usage", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.RuleVersionOneEqualityComparer.Equals(Microsoft.CodeAnalysis.Sarif.VersionOne.RuleVersionOne,Microsoft.CodeAnalysis.Sarif.VersionOne.RuleVersionOne)": { - "name": "Equals(Microsoft.CodeAnalysis.Sarif.VersionOne.RuleVersionOne,Microsoft.CodeAnalysis.Sarif.VersionOne.RuleVersionOne)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.RuleVersionOneEqualityComparer", - "kind": "member" + { + "ruleId": "CA2214", + "message": { + "text": "'CodeFlowVersionOne.CodeFlowVersionOne(CodeFlowVersionOne)' contains a call chain that results in a call to a virtual method defined by the class. Review the following call stack for unintended consequences: \r\n\r\nCodeFlowVersionOne..ctor(CodeFlowVersionOne)\r\nCodeFlowVersionOne.Init(String, IEnumerable, IDictionary):Void\r\nPropertyBagHolder.set_Properties(IDictionary):Void" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/VersionOne/Autogenerated/CodeFlowVersionOne.cs", + "index": 110 + }, + "region": { + "startLine": 83 + } + }, + "logicalLocations": [ + { + "index": 588, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.CodeFlowVersionOne..ctor(Microsoft.CodeAnalysis.Sarif.VersionOne.CodeFlowVersionOne)" + } + ] + } + ], + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Usage", + "FixCategory": "NonBreaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.RunVersionOne": { - "name": "RunVersionOne", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne", - "kind": "type" + { + "ruleId": "CA2214", + "message": { + "text": "'CodeFlowVersionOne.CodeFlowVersionOne(string, IEnumerable, IDictionary)' contains a call chain that results in a call to a virtual method defined by the class. Review the following call stack for unintended consequences: \r\n\r\nCodeFlowVersionOne..ctor(String, IEnumerable, IDictionary)\r\nCodeFlowVersionOne.Init(String, IEnumerable, IDictionary):Void\r\nPropertyBagHolder.set_Properties(IDictionary):Void" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/VersionOne/Autogenerated/CodeFlowVersionOne.cs", + "index": 110 + }, + "region": { + "startLine": 69 + } + }, + "logicalLocations": [ + { + "index": 589, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.CodeFlowVersionOne..ctor(System.String,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IDictionary`2)" + } + ] + } + ], + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Usage", + "FixCategory": "NonBreaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.RunVersionOne..ctor(Microsoft.CodeAnalysis.Sarif.VersionOne.RunVersionOne)": { - "name": ".ctor(Microsoft.CodeAnalysis.Sarif.VersionOne.RunVersionOne)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.RunVersionOne", - "kind": "member" + { + "ruleId": "CA2227", + "message": { + "text": "Change 'CodeFlowVersionOne.Locations' to be read-only by removing the property setter." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/VersionOne/Autogenerated/CodeFlowVersionOne.cs", + "index": 110 + }, + "region": { + "startLine": 42 + } + }, + "logicalLocations": [ + { + "index": 590, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.CodeFlowVersionOne.Locations" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Usage", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.RunVersionOne..ctor(Microsoft.CodeAnalysis.Sarif.VersionOne.ToolVersionOne,Microsoft.CodeAnalysis.Sarif.VersionOne.InvocationVersionOne,System.Collections.Generic.IDictionary`2,System.Collections.Generic.IDictionary`2,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IDictionary`2,System.String,System.String,System.String,System.String,System.String,System.Collections.Generic.IDictionary`2)": { - "name": ".ctor(Microsoft.CodeAnalysis.Sarif.VersionOne.ToolVersionOne,Microsoft.CodeAnalysis.Sarif.VersionOne.InvocationVersionOne,System.Collections.Generic.IDictionary`2,System.Collections.Generic.IDictionary`2,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IDictionary`2,System.String,System.String,System.String,System.String,System.String,System.Collections.Generic.IDictionary`2)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.RunVersionOne", - "kind": "member" + { + "ruleId": "CA2227", + "message": { + "text": "Change 'ExceptionDataVersionOne.InnerExceptions' to be read-only by removing the property setter." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/VersionOne/Autogenerated/ExceptionDataVersionOne.cs", + "index": 111 + }, + "region": { + "startLine": 53 + } + }, + "logicalLocations": [ + { + "index": 592, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.ExceptionDataVersionOne.InnerExceptions" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Usage", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.RunVersionOne.ConfigurationNotifications": { - "name": "ConfigurationNotifications", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.RunVersionOne", - "kind": "member" + { + "ruleId": "CA1054", + "level": "error", + "message": { + "text": "Change the type of parameter 'uriBaseId' of method 'FileChangeVersionOne.FileChangeVersionOne(Uri, string, IEnumerable)' from string to System.Uri, or provide an overload of 'FileChangeVersionOne.FileChangeVersionOne(Uri, string, IEnumerable)', that allows 'uriBaseId' to be passed as a System.Uri object." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/VersionOne/Autogenerated/FileChangeVersionOne.cs", + "index": 112 + }, + "region": { + "startLine": 71 + } + }, + "logicalLocations": [ + { + "index": 594, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.FileChangeVersionOne..ctor(System.Uri,System.String,System.Collections.Generic.IEnumerable`1)" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "1#" + }, + "properties": { + "Category": "Microsoft.Design", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.RunVersionOne.Files": { - "name": "Files", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.RunVersionOne", - "kind": "member" + { + "ruleId": "CA2227", + "message": { + "text": "Change 'FileChangeVersionOne.Replacements' to be read-only by removing the property setter." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/VersionOne/Autogenerated/FileChangeVersionOne.cs", + "index": 112 + }, + "region": { + "startLine": 50 + } + }, + "logicalLocations": [ + { + "index": 595, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.FileChangeVersionOne.Replacements" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Usage", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.RunVersionOne.LogicalLocations": { - "name": "LogicalLocations", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.RunVersionOne", - "kind": "member" + { + "ruleId": "CA1056", + "level": "error", + "message": { + "text": "Change the type of property 'FileChangeVersionOne.UriBaseId' from string to System.Uri." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/VersionOne/Autogenerated/FileChangeVersionOne.cs", + "index": 112 + }, + "region": { + "startLine": 44 + } + }, + "logicalLocations": [ + { + "index": 596, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.FileChangeVersionOne.UriBaseId" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Design", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.RunVersionOne.Results": { - "name": "Results", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.RunVersionOne", - "kind": "member" + { + "ruleId": "CA2214", + "message": { + "text": "'FileDataVersionOne.FileDataVersionOne(FileDataVersionOne)' contains a call chain that results in a call to a virtual method defined by the class. Review the following call stack for unintended consequences: \r\n\r\nFileDataVersionOne..ctor(FileDataVersionOne)\r\nFileDataVersionOne.Init(Uri, String, String, Int32, Int32, String, String, IEnumerable, IDictionary):Void\r\nPropertyBagHolder.set_Properties(IDictionary):Void" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/VersionOne/Autogenerated/FileDataVersionOne.cs", + "index": 113 + }, + "region": { + "startLine": 140 + } + }, + "logicalLocations": [ + { + "index": 598, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.FileDataVersionOne..ctor(Microsoft.CodeAnalysis.Sarif.VersionOne.FileDataVersionOne)" + } + ] + } + ], + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Usage", + "FixCategory": "NonBreaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.RunVersionOne.Rules": { - "name": "Rules", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.RunVersionOne", - "kind": "member" + { + "ruleId": "CA2214", + "message": { + "text": "'FileDataVersionOne.FileDataVersionOne(Uri, string, string, int, int, string, string, IEnumerable, IDictionary)' contains a call chain that results in a call to a virtual method defined by the class. Review the following call stack for unintended consequences: \r\n\r\nFileDataVersionOne..ctor(Uri, String, String, Int32, Int32, String, String, IEnumerable, IDictionary)\r\nFileDataVersionOne.Init(Uri, String, String, Int32, Int32, String, String, IEnumerable, IDictionary):Void\r\nPropertyBagHolder.set_Properties(IDictionary):Void" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/VersionOne/Autogenerated/FileDataVersionOne.cs", + "index": 113 + }, + "region": { + "startLine": 126 + } + }, + "logicalLocations": [ + { + "index": 599, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.FileDataVersionOne..ctor(System.Uri,System.String,System.String,System.Int32,System.Int32,System.String,System.String,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IDictionary`2)" + } + ] + } + ], + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Usage", + "FixCategory": "NonBreaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.RunVersionOne.ToolNotifications": { - "name": "ToolNotifications", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.RunVersionOne", - "kind": "member" - }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.RunVersionOneEqualityComparer": { - "name": "RunVersionOneEqualityComparer", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne", - "kind": "type" - }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.RunVersionOneEqualityComparer.Equals(Microsoft.CodeAnalysis.Sarif.VersionOne.RunVersionOne,Microsoft.CodeAnalysis.Sarif.VersionOne.RunVersionOne)": { - "name": "Equals(Microsoft.CodeAnalysis.Sarif.VersionOne.RunVersionOne,Microsoft.CodeAnalysis.Sarif.VersionOne.RunVersionOne)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.RunVersionOneEqualityComparer", - "kind": "member" - }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.RunVersionOneEqualityComparer.GetHashCode(Microsoft.CodeAnalysis.Sarif.VersionOne.RunVersionOne)": { - "name": "GetHashCode(Microsoft.CodeAnalysis.Sarif.VersionOne.RunVersionOne)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.RunVersionOneEqualityComparer", - "kind": "member" + { + "ruleId": "CA1054", + "level": "error", + "message": { + "text": "Change the type of parameter 'uriBaseId' of method 'FileDataVersionOne.FileDataVersionOne(Uri, string, string, int, int, string, string, IEnumerable, IDictionary)' from string to System.Uri, or provide an overload of 'FileDataVersionOne.FileDataVersionOne(Uri, string, string, int, int, string, string, IEnumerable, IDictionary)', that allows 'uriBaseId' to be passed as a System.Uri object." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/VersionOne/Autogenerated/FileDataVersionOne.cs", + "index": 113 + }, + "region": { + "startLine": 126 + } + }, + "logicalLocations": [ + { + "index": 599, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.FileDataVersionOne..ctor(System.Uri,System.String,System.String,System.Int32,System.Int32,System.String,System.String,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IDictionary`2)" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "1#" + }, + "properties": { + "Category": "Microsoft.Design", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.SarifLogVersionOne": { - "name": "SarifLogVersionOne", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne", - "kind": "type" + { + "ruleId": "CA2227", + "message": { + "text": "Change 'FileDataVersionOne.Hashes' to be read-only by removing the property setter." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/VersionOne/Autogenerated/FileDataVersionOne.cs", + "index": 113 + }, + "region": { + "startLine": 81 + } + }, + "logicalLocations": [ + { + "index": 600, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.FileDataVersionOne.Hashes" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Usage", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.SarifLogVersionOne.Runs": { - "name": "Runs", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.SarifLogVersionOne", - "kind": "member" + { + "ruleId": "CA1056", + "level": "error", + "message": { + "text": "Change the type of property 'FileDataVersionOne.UriBaseId' from string to System.Uri." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/VersionOne/Autogenerated/FileDataVersionOne.cs", + "index": 113 + }, + "region": { + "startLine": 45 + } + }, + "logicalLocations": [ + { + "index": 601, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.FileDataVersionOne.UriBaseId" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Design", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.SarifNodeKindVersionOne": { - "name": "SarifNodeKindVersionOne", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne", - "kind": "type" + { + "ruleId": "CA2227", + "message": { + "text": "Change 'FixVersionOne.FileChanges' to be read-only by removing the property setter." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/VersionOne/Autogenerated/FixVersionOne.cs", + "index": 114 + }, + "region": { + "startLine": 44 + } + }, + "logicalLocations": [ + { + "index": 603, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.FixVersionOne.FileChanges" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Usage", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.SarifNodeKindVersionOne.SarifLogVersionOne": { - "name": "SarifLogVersionOne", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.SarifNodeKindVersionOne", - "kind": "member" + { + "ruleId": "CA2227", + "message": { + "text": "Change 'FormattedRuleMessageVersionOne.Arguments' to be read-only by removing the property setter." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/VersionOne/Autogenerated/FormattedRuleMessageVersionOne.cs", + "index": 115 + }, + "region": { + "startLine": 44 + } + }, + "logicalLocations": [ + { + "index": 605, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.FormattedRuleMessageVersionOne.Arguments" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Usage", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.SarifRewritingVisitorVersionOne": { - "name": "SarifRewritingVisitorVersionOne", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne", - "kind": "type" + { + "ruleId": "CA2214", + "message": { + "text": "'InvocationVersionOne.InvocationVersionOne(InvocationVersionOne)' contains a call chain that results in a call to a virtual method defined by the class. Review the following call stack for unintended consequences: \r\n\r\nInvocationVersionOne..ctor(InvocationVersionOne)\r\nInvocationVersionOne.Init(String, IDictionary, DateTime, DateTime, String, String, Int32, String, String, IDictionary, IDictionary):Void\r\nPropertyBagHolder.set_Properties(IDictionary):Void" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/VersionOne/Autogenerated/InvocationVersionOne.cs", + "index": 116 + }, + "region": { + "startLine": 158 + } + }, + "logicalLocations": [ + { + "index": 607, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.InvocationVersionOne..ctor(Microsoft.CodeAnalysis.Sarif.VersionOne.InvocationVersionOne)" + } + ] + } + ], + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Usage", + "FixCategory": "NonBreaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.SarifRewritingVisitorVersionOne.VisitSarifLogVersionOne(Microsoft.CodeAnalysis.Sarif.VersionOne.SarifLogVersionOne)": { - "name": "VisitSarifLogVersionOne(Microsoft.CodeAnalysis.Sarif.VersionOne.SarifLogVersionOne)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.SarifRewritingVisitorVersionOne", - "kind": "member" + { + "ruleId": "CA2214", + "message": { + "text": "'InvocationVersionOne.InvocationVersionOne(string, IDictionary, DateTime, DateTime, string, string, int, string, string, IDictionary, IDictionary)' contains a call chain that results in a call to a virtual method defined by the class. Review the following call stack for unintended consequences: \r\n\r\nInvocationVersionOne..ctor(String, IDictionary, DateTime, DateTime, String, String, Int32, String, String, IDictionary, IDictionary)\r\nInvocationVersionOne.Init(String, IDictionary, DateTime, DateTime, String, String, Int32, String, String, IDictionary, IDictionary):Void\r\nPropertyBagHolder.set_Properties(IDictionary):Void" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/VersionOne/Autogenerated/InvocationVersionOne.cs", + "index": 116 + }, + "region": { + "startLine": 144 + } + }, + "logicalLocations": [ + { + "index": 608, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.InvocationVersionOne..ctor(System.String,System.Collections.Generic.IDictionary`2,System.DateTime,System.DateTime,System.String,System.String,System.Int32,System.String,System.String,System.Collections.Generic.IDictionary`2,System.Collections.Generic.IDictionary`2)" + } + ] + } + ], + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Usage", + "FixCategory": "NonBreaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.SarifVersionVersionOne": { - "name": "SarifVersionVersionOne", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne", - "kind": "type" + { + "ruleId": "CA2227", + "message": { + "text": "Change 'InvocationVersionOne.EnvironmentVariables' to be read-only by removing the property setter." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/VersionOne/Autogenerated/InvocationVersionOne.cs", + "index": 116 + }, + "region": { + "startLine": 93 + } + }, + "logicalLocations": [ + { + "index": 609, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.InvocationVersionOne.EnvironmentVariables" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Usage", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.StackFrameVersionOne": { - "name": "StackFrameVersionOne", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne", - "kind": "type" + { + "ruleId": "CA2227", + "message": { + "text": "Change 'InvocationVersionOne.ResponseFiles' to be read-only by removing the property setter." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/VersionOne/Autogenerated/InvocationVersionOne.cs", + "index": 116 + }, + "region": { + "startLine": 45 + } + }, + "logicalLocations": [ + { + "index": 610, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.InvocationVersionOne.ResponseFiles" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Usage", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.StackFrameVersionOne..ctor(Microsoft.CodeAnalysis.Sarif.VersionOne.StackFrameVersionOne)": { - "name": ".ctor(Microsoft.CodeAnalysis.Sarif.VersionOne.StackFrameVersionOne)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.StackFrameVersionOne", - "kind": "member" + { + "ruleId": "CA1502", + "message": { + "text": "'InvocationVersionOneEqualityComparer.Equals(InvocationVersionOne, InvocationVersionOne)' has a cyclomatic complexity of 36. Rewrite or refactor the method to reduce complexity to 25." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/VersionOne/Autogenerated/InvocationVersionOneEqualityComparer.cs", + "index": 117 + }, + "region": { + "startLine": 20 + } + }, + "logicalLocations": [ + { + "index": 612, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.InvocationVersionOneEqualityComparer.Equals(Microsoft.CodeAnalysis.Sarif.VersionOne.InvocationVersionOne,Microsoft.CodeAnalysis.Sarif.VersionOne.InvocationVersionOne)" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Maintainability", + "FixCategory": "NonBreaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.StackFrameVersionOne..ctor(System.String,System.Uri,System.String,System.Int32,System.Int32,System.String,System.Int32,System.String,System.String,System.Int32,System.Int32,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IDictionary`2)": { - "name": ".ctor(System.String,System.Uri,System.String,System.Int32,System.Int32,System.String,System.Int32,System.String,System.String,System.Int32,System.Int32,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IDictionary`2)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.StackFrameVersionOne", - "kind": "member" - }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.StackFrameVersionOne.Parameters": { - "name": "Parameters", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.StackFrameVersionOne", - "kind": "member" - }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.StackFrameVersionOne.UriBaseId": { - "name": "UriBaseId", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.StackFrameVersionOne", - "kind": "member" - }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.StackFrameVersionOneEqualityComparer": { - "name": "StackFrameVersionOneEqualityComparer", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne", - "kind": "type" + { + "ruleId": "CA1040", + "message": { + "text": "Define a custom attribute to replace 'IRuleVersionOne'." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + } + }, + "logicalLocations": [ + { + "index": 613, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.IRuleVersionOne" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Design", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.StackFrameVersionOneEqualityComparer.Equals(Microsoft.CodeAnalysis.Sarif.VersionOne.StackFrameVersionOne,Microsoft.CodeAnalysis.Sarif.VersionOne.StackFrameVersionOne)": { - "name": "Equals(Microsoft.CodeAnalysis.Sarif.VersionOne.StackFrameVersionOne,Microsoft.CodeAnalysis.Sarif.VersionOne.StackFrameVersionOne)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.StackFrameVersionOneEqualityComparer", - "kind": "member" + { + "ruleId": "CA1704", + "message": { + "text": "Correct the spelling of 'Sarif' in type name 'ISarifNodeVersionOne'.", + "id": "Type" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + } + }, + "logicalLocations": [ + { + "index": 614, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.ISarifNodeVersionOne" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "Sarif#Type" + }, + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.StackVersionOne": { - "name": "StackVersionOne", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne", - "kind": "type" + { + "ruleId": "CA1704", + "message": { + "text": "Correct the spelling of 'Sarif' in member name 'ISarifNodeVersionOne.SarifNodeKindVersionOne' or remove it entirely if it represents any sort of Hungarian notation.", + "id": "Member" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + } + }, + "logicalLocations": [ + { + "index": 615, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.ISarifNodeVersionOne.SarifNodeKindVersionOne" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "Sarif#Member" + }, + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.StackVersionOne..ctor(Microsoft.CodeAnalysis.Sarif.VersionOne.StackVersionOne)": { - "name": ".ctor(Microsoft.CodeAnalysis.Sarif.VersionOne.StackVersionOne)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.StackVersionOne", - "kind": "member" + { + "ruleId": "CA2214", + "message": { + "text": "'LocationVersionOne.LocationVersionOne(LocationVersionOne)' contains a call chain that results in a call to a virtual method defined by the class. Review the following call stack for unintended consequences: \r\n\r\nLocationVersionOne..ctor(LocationVersionOne)\r\nLocationVersionOne.Init(PhysicalLocationVersionOne, PhysicalLocationVersionOne, String, String, String, IDictionary):Void\r\nPropertyBagHolder.set_Properties(IDictionary):Void" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/VersionOne/Autogenerated/LocationVersionOne.cs", + "index": 118 + }, + "region": { + "startLine": 113 + } + }, + "logicalLocations": [ + { + "index": 617, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.LocationVersionOne..ctor(Microsoft.CodeAnalysis.Sarif.VersionOne.LocationVersionOne)" + } + ] + } + ], + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Usage", + "FixCategory": "NonBreaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.StackVersionOne..ctor(System.String,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IDictionary`2)": { - "name": ".ctor(System.String,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IDictionary`2)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.StackVersionOne", - "kind": "member" + { + "ruleId": "CA2214", + "message": { + "text": "'LocationVersionOne.LocationVersionOne(PhysicalLocationVersionOne, PhysicalLocationVersionOne, string, string, string, IDictionary)' contains a call chain that results in a call to a virtual method defined by the class. Review the following call stack for unintended consequences: \r\n\r\nLocationVersionOne..ctor(PhysicalLocationVersionOne, PhysicalLocationVersionOne, String, String, String, IDictionary)\r\nLocationVersionOne.Init(PhysicalLocationVersionOne, PhysicalLocationVersionOne, String, String, String, IDictionary):Void\r\nPropertyBagHolder.set_Properties(IDictionary):Void" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/VersionOne/Autogenerated/LocationVersionOne.cs", + "index": 118 + }, + "region": { + "startLine": 99 + } + }, + "logicalLocations": [ + { + "index": 618, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.LocationVersionOne..ctor(Microsoft.CodeAnalysis.Sarif.VersionOne.PhysicalLocationVersionOne,Microsoft.CodeAnalysis.Sarif.VersionOne.PhysicalLocationVersionOne,System.String,System.String,System.String,System.Collections.Generic.IDictionary`2)" + } + ] + } + ], + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Usage", + "FixCategory": "NonBreaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.StackVersionOne.Frames": { - "name": "Frames", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.StackVersionOne", - "kind": "member" + { + "ruleId": "CA2214", + "message": { + "text": "'NotificationVersionOne.NotificationVersionOne(NotificationVersionOne)' contains a call chain that results in a call to a virtual method defined by the class. Review the following call stack for unintended consequences: \r\n\r\nNotificationVersionOne..ctor(NotificationVersionOne)\r\nNotificationVersionOne.Init(String, String, String, PhysicalLocationVersionOne, String, NotificationLevelVersionOne, Int32, DateTime, ExceptionDataVersionOne, IDictionary):Void\r\nPropertyBagHolder.set_Properties(IDictionary):Void" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/VersionOne/Autogenerated/NotificationVersionOne.cs", + "index": 119 + }, + "region": { + "startLine": 149 + } + }, + "logicalLocations": [ + { + "index": 620, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.NotificationVersionOne..ctor(Microsoft.CodeAnalysis.Sarif.VersionOne.NotificationVersionOne)" + } + ] + } + ], + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Usage", + "FixCategory": "NonBreaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.SuppressionStatesVersionOne": { - "name": "SuppressionStatesVersionOne", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne", - "kind": "type" + { + "ruleId": "CA2214", + "message": { + "text": "'NotificationVersionOne.NotificationVersionOne(string, string, string, PhysicalLocationVersionOne, string, NotificationLevelVersionOne, int, DateTime, ExceptionDataVersionOne, IDictionary)' contains a call chain that results in a call to a virtual method defined by the class. Review the following call stack for unintended consequences: \r\n\r\nNotificationVersionOne..ctor(String, String, String, PhysicalLocationVersionOne, String, NotificationLevelVersionOne, Int32, DateTime, ExceptionDataVersionOne, IDictionary)\r\nNotificationVersionOne.Init(String, String, String, PhysicalLocationVersionOne, String, NotificationLevelVersionOne, Int32, DateTime, ExceptionDataVersionOne, IDictionary):Void\r\nPropertyBagHolder.set_Properties(IDictionary):Void" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/VersionOne/Autogenerated/NotificationVersionOne.cs", + "index": 119 + }, + "region": { + "startLine": 135 + } + }, + "logicalLocations": [ + { + "index": 621, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.NotificationVersionOne..ctor(System.String,System.String,System.String,Microsoft.CodeAnalysis.Sarif.VersionOne.PhysicalLocationVersionOne,System.String,Microsoft.CodeAnalysis.Sarif.VersionOne.NotificationLevelVersionOne,System.Int32,System.DateTime,Microsoft.CodeAnalysis.Sarif.VersionOne.ExceptionDataVersionOne,System.Collections.Generic.IDictionary`2)" + } + ] + } + ], + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Usage", + "FixCategory": "NonBreaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.TagsCollectionVersionOne": { - "name": "TagsCollectionVersionOne", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne", - "kind": "type" + { + "ruleId": "CA1054", + "level": "error", + "message": { + "text": "Change the type of parameter 'uriBaseId' of method 'PhysicalLocationVersionOne.PhysicalLocationVersionOne(Uri, string, RegionVersionOne)' from string to System.Uri, or provide an overload of 'PhysicalLocationVersionOne.PhysicalLocationVersionOne(Uri, string, RegionVersionOne)', that allows 'uriBaseId' to be passed as a System.Uri object." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/VersionOne/Autogenerated/PhysicalLocationVersionOne.cs", + "index": 120 + }, + "region": { + "startLine": 71 + } + }, + "logicalLocations": [ + { + "index": 623, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.PhysicalLocationVersionOne..ctor(System.Uri,System.String,Microsoft.CodeAnalysis.Sarif.VersionOne.RegionVersionOne)" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "1#" + }, + "properties": { + "Category": "Microsoft.Design", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.ToolVersionOne": { - "name": "ToolVersionOne", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne", - "kind": "type" + { + "ruleId": "CA1056", + "level": "error", + "message": { + "text": "Change the type of property 'PhysicalLocationVersionOne.UriBaseId' from string to System.Uri." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/VersionOne/Autogenerated/PhysicalLocationVersionOne.cs", + "index": 120 + }, + "region": { + "startLine": 44 + } + }, + "logicalLocations": [ + { + "index": 624, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.PhysicalLocationVersionOne.UriBaseId" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Design", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.ToolVersionOne..ctor(Microsoft.CodeAnalysis.Sarif.VersionOne.ToolVersionOne)": { - "name": ".ctor(Microsoft.CodeAnalysis.Sarif.VersionOne.ToolVersionOne)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.ToolVersionOne", - "kind": "member" + { + "ruleId": "CA2214", + "message": { + "text": "'ResultVersionOne.ResultVersionOne(ResultVersionOne)' contains a call chain that results in a call to a virtual method defined by the class. Review the following call stack for unintended consequences: \r\n\r\nResultVersionOne..ctor(ResultVersionOne)\r\nResultVersionOne.Init(String, String, ResultLevelVersionOne, String, FormattedRuleMessageVersionOne, IEnumerable, String, String, String, IEnumerable, IEnumerable, IEnumerable, SuppressionStatesVersionOne, BaselineStateVersionOne, IEnumerable, IDictionary):Void\r\nPropertyBagHolder.set_Properties(IDictionary):Void" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/VersionOne/Autogenerated/ResultVersionOne.cs", + "index": 121 + }, + "region": { + "startLine": 199 + } + }, + "logicalLocations": [ + { + "index": 626, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.ResultVersionOne..ctor(Microsoft.CodeAnalysis.Sarif.VersionOne.ResultVersionOne)" + } + ] + } + ], + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Usage", + "FixCategory": "NonBreaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.ToolVersionOne..ctor(System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.Collections.Generic.IDictionary`2)": { - "name": ".ctor(System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.Collections.Generic.IDictionary`2)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.ToolVersionOne", - "kind": "member" - }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.ToolVersionOne.SarifLoggerVersion": { - "name": "SarifLoggerVersion", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.ToolVersionOne", - "kind": "member" - }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors": { - "name": "Microsoft.CodeAnalysis.Sarif.Visitors", - "parentKey": "sarif.dll", - "kind": "namespace" - }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.AbsoluteUrisVisitor": { - "name": "AbsoluteUrisVisitor", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors", - "kind": "type" - }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.AbsoluteUrisVisitor.CombineUris(System.Uri,System.Uri)": { - "name": "CombineUris(System.Uri,System.Uri)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.AbsoluteUrisVisitor", - "kind": "member" + { + "ruleId": "CA2214", + "message": { + "text": "'ResultVersionOne.ResultVersionOne(string, string, ResultLevelVersionOne, string, FormattedRuleMessageVersionOne, IEnumerable, string, string, string, IEnumerable, IEnumerable, IEnumerable, SuppressionStatesVersionOne, BaselineStateVersionOne, IEnumerable, IDictionary)' contains a call chain that results in a call to a virtual method defined by the class. Review the following call stack for unintended consequences: \r\n\r\nResultVersionOne..ctor(String, String, ResultLevelVersionOne, String, FormattedRuleMessageVersionOne, IEnumerable, String, String, String, IEnumerable, IEnumerable, IEnumerable, SuppressionStatesVersionOne, BaselineStateVersionOne, IEnumerable, IDictionary)\r\nResultVersionOne.Init(String, String, ResultLevelVersionOne, String, FormattedRuleMessageVersionOne, IEnumerable, String, String, String, IEnumerable, IEnumerable, IEnumerable, SuppressionStatesVersionOne, BaselineStateVersionOne, IEnumerable, IDictionary):Void\r\nPropertyBagHolder.set_Properties(IDictionary):Void" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/VersionOne/Autogenerated/ResultVersionOne.cs", + "index": 121 + }, + "region": { + "startLine": 185 + } + }, + "logicalLocations": [ + { + "index": 627, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.ResultVersionOne..ctor(System.String,System.String,Microsoft.CodeAnalysis.Sarif.VersionOne.ResultLevelVersionOne,System.String,Microsoft.CodeAnalysis.Sarif.VersionOne.FormattedRuleMessageVersionOne,System.Collections.Generic.IEnumerable`1,System.String,System.String,System.String,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,Microsoft.CodeAnalysis.Sarif.VersionOne.SuppressionStatesVersionOne,Microsoft.CodeAnalysis.Sarif.VersionOne.BaselineStateVersionOne,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IDictionary`2)" + } + ] + } + ], + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Usage", + "FixCategory": "NonBreaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.AbsoluteUrisVisitor.VisitRun(Microsoft.CodeAnalysis.Sarif.Run)": { - "name": "VisitRun(Microsoft.CodeAnalysis.Sarif.Run)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.AbsoluteUrisVisitor", - "kind": "member" + { + "ruleId": "CA2227", + "message": { + "text": "Change 'ResultVersionOne.CodeFlows' to be read-only by removing the property setter." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/VersionOne/Autogenerated/ResultVersionOne.cs", + "index": 121 + }, + "region": { + "startLine": 99 + } + }, + "logicalLocations": [ + { + "index": 628, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.ResultVersionOne.CodeFlows" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Usage", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.AddFileReferencesVisitor": { - "name": "AddFileReferencesVisitor", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors", - "kind": "type" + { + "ruleId": "CA2227", + "message": { + "text": "Change 'ResultVersionOne.Fixes' to be read-only by removing the property setter." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/VersionOne/Autogenerated/ResultVersionOne.cs", + "index": 121 + }, + "region": { + "startLine": 119 + } + }, + "logicalLocations": [ + { + "index": 629, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.ResultVersionOne.Fixes" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Usage", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.AddFileReferencesVisitor.VisitPhysicalLocation(Microsoft.CodeAnalysis.Sarif.PhysicalLocation)": { - "name": "VisitPhysicalLocation(Microsoft.CodeAnalysis.Sarif.PhysicalLocation)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.AddFileReferencesVisitor", - "kind": "member" + { + "ruleId": "CA2227", + "message": { + "text": "Change 'ResultVersionOne.Locations' to be read-only by removing the property setter." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/VersionOne/Autogenerated/ResultVersionOne.cs", + "index": 121 + }, + "region": { + "startLine": 69 + } + }, + "logicalLocations": [ + { + "index": 630, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.ResultVersionOne.Locations" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Usage", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.AddFileReferencesVisitor.VisitRun(Microsoft.CodeAnalysis.Sarif.Run)": { - "name": "VisitRun(Microsoft.CodeAnalysis.Sarif.Run)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.AddFileReferencesVisitor", - "kind": "member" + { + "ruleId": "CA2227", + "message": { + "text": "Change 'ResultVersionOne.RelatedLocations' to be read-only by removing the property setter." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/VersionOne/Autogenerated/ResultVersionOne.cs", + "index": 121 + }, + "region": { + "startLine": 105 + } + }, + "logicalLocations": [ + { + "index": 631, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.ResultVersionOne.RelatedLocations" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Usage", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.InsertOptionalDataVisitor": { - "name": "InsertOptionalDataVisitor", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors", - "kind": "type" + { + "ruleId": "CA2227", + "message": { + "text": "Change 'ResultVersionOne.Stacks' to be read-only by removing the property setter." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/VersionOne/Autogenerated/ResultVersionOne.cs", + "index": 121 + }, + "region": { + "startLine": 93 + } + }, + "logicalLocations": [ + { + "index": 632, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.ResultVersionOne.Stacks" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Usage", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.InsertOptionalDataVisitor.s_fileSystem": { - "name": "s_fileSystem", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.InsertOptionalDataVisitor", - "kind": "member" + { + "ruleId": "CA1502", + "message": { + "text": "'ResultVersionOneEqualityComparer.Equals(ResultVersionOne, ResultVersionOne)' has a cyclomatic complexity of 52. Rewrite or refactor the method to reduce complexity to 25." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/VersionOne/Autogenerated/ResultVersionOneEqualityComparer.cs", + "index": 122 + }, + "region": { + "startLine": 20 + } + }, + "logicalLocations": [ + { + "index": 634, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.ResultVersionOneEqualityComparer.Equals(Microsoft.CodeAnalysis.Sarif.VersionOne.ResultVersionOne,Microsoft.CodeAnalysis.Sarif.VersionOne.ResultVersionOne)" + } + ] + } + ], + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Maintainability", + "FixCategory": "NonBreaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.InsertOptionalDataVisitor.VisitMessage(Microsoft.CodeAnalysis.Sarif.Message)": { - "name": "VisitMessage(Microsoft.CodeAnalysis.Sarif.Message)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.InsertOptionalDataVisitor", - "kind": "member" + { + "ruleId": "CA1502", + "message": { + "text": "'ResultVersionOneEqualityComparer.GetHashCode(ResultVersionOne)' has a cyclomatic complexity of 33. Rewrite or refactor the method to reduce complexity to 25." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/VersionOne/Autogenerated/ResultVersionOneEqualityComparer.cs", + "index": 122 + }, + "region": { + "startLine": 212 + } + }, + "logicalLocations": [ + { + "index": 635, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.ResultVersionOneEqualityComparer.GetHashCode(Microsoft.CodeAnalysis.Sarif.VersionOne.ResultVersionOne)" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Maintainability", + "FixCategory": "NonBreaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.InsertOptionalDataVisitor.VisitPhysicalLocation(Microsoft.CodeAnalysis.Sarif.PhysicalLocation)": { - "name": "VisitPhysicalLocation(Microsoft.CodeAnalysis.Sarif.PhysicalLocation)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.InsertOptionalDataVisitor", - "kind": "member" + { + "ruleId": "CA2214", + "message": { + "text": "'RuleVersionOne.RuleVersionOne(RuleVersionOne)' contains a call chain that results in a call to a virtual method defined by the class. Review the following call stack for unintended consequences: \r\n\r\nRuleVersionOne..ctor(RuleVersionOne)\r\nRuleVersionOne.Init(String, String, String, String, IDictionary, reportingConfigurationVersionOne, ResultLevelVersionOne, Uri, IDictionary):Void\r\nPropertyBagHolderVersionOne.set_Properties(IDictionary):Void" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/VersionOne/Autogenerated/RuleVersionOne.cs", + "index": 123 + }, + "region": { + "startLine": 140 + } + }, + "logicalLocations": [ + { + "index": 637, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.RuleVersionOne..ctor(Microsoft.CodeAnalysis.Sarif.VersionOne.RuleVersionOne)" + } + ] + } + ], + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Usage", + "FixCategory": "NonBreaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.InsertOptionalDataVisitor.VisitResult(Microsoft.CodeAnalysis.Sarif.Result)": { - "name": "VisitResult(Microsoft.CodeAnalysis.Sarif.Result)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.InsertOptionalDataVisitor", - "kind": "member" + { + "ruleId": "CA2214", + "message": { + "text": "'RuleVersionOne.RuleVersionOne(string, string, string, string, IDictionary, reportingConfigurationVersionOne, ResultLevelVersionOne, Uri, IDictionary)' contains a call chain that results in a call to a virtual method defined by the class. Review the following call stack for unintended consequences: \r\n\r\nRuleVersionOne..ctor(String, String, String, String, IDictionary, reportingConfigurationVersionOne, ResultLevelVersionOne, Uri, IDictionary)\r\nRuleVersionOne.Init(String, String, String, String, IDictionary, reportingConfigurationVersionOne, ResultLevelVersionOne, Uri, IDictionary):Void\r\nPropertyBagHolderVersionOne.set_Properties(IDictionary):Void" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/VersionOne/Autogenerated/RuleVersionOne.cs", + "index": 123 + }, + "region": { + "startLine": 126 + } + }, + "logicalLocations": [ + { + "index": 638, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.RuleVersionOne..ctor(System.String,System.String,System.String,System.String,System.Collections.Generic.IDictionary`2,Microsoft.CodeAnalysis.Sarif.VersionOne.reportingConfigurationVersionOne,Microsoft.CodeAnalysis.Sarif.VersionOne.ResultLevelVersionOne,System.Uri,System.Collections.Generic.IDictionary`2)" + } + ] + } + ], + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Usage", + "FixCategory": "NonBreaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.RebaseUriVisitor": { - "name": "RebaseUriVisitor", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors", - "kind": "type" - }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.RebaseUriVisitor..ctor(System.String,System.Boolean,System.Uri)": { - "name": ".ctor(System.String,System.Boolean,System.Uri)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.RebaseUriVisitor", - "kind": "member" - }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.RebaseUriVisitor..ctor(System.String,System.Uri)": { - "name": ".ctor(System.String,System.Uri)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.RebaseUriVisitor", - "kind": "member" - }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.RebaseUriVisitor.VisitPhysicalLocation(Microsoft.CodeAnalysis.Sarif.PhysicalLocation)": { - "name": "VisitPhysicalLocation(Microsoft.CodeAnalysis.Sarif.PhysicalLocation)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.RebaseUriVisitor", - "kind": "member" - }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.RebaseUriVisitor.VisitRun(Microsoft.CodeAnalysis.Sarif.Run)": { - "name": "VisitRun(Microsoft.CodeAnalysis.Sarif.Run)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.RebaseUriVisitor", - "kind": "member" - }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifCurrentToVersionOneVisitor": { - "name": "SarifCurrentToVersionOneVisitor", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors", - "kind": "type" + { + "ruleId": "CA2227", + "message": { + "text": "Change 'RuleVersionOne.MessageFormats' to be read-only by removing the property setter." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/VersionOne/Autogenerated/RuleVersionOne.cs", + "index": 123 + }, + "region": { + "startLine": 63 + } + }, + "logicalLocations": [ + { + "index": 639, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.RuleVersionOne.MessageFormats" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Usage", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifCurrentToVersionOneVisitor.CreateFileChange(Microsoft.CodeAnalysis.Sarif.FileChange)": { - "name": "CreateFileChange(Microsoft.CodeAnalysis.Sarif.FileChange)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifCurrentToVersionOneVisitor", - "kind": "member" + { + "ruleId": "CA1502", + "message": { + "text": "'RuleVersionOneEqualityComparer.Equals(RuleVersionOne, RuleVersionOne)' has a cyclomatic complexity of 27. Rewrite or refactor the method to reduce complexity to 25." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/VersionOne/Autogenerated/RuleVersionOneEqualityComparer.cs", + "index": 124 + }, + "region": { + "startLine": 20 + } + }, + "logicalLocations": [ + { + "index": 641, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.RuleVersionOneEqualityComparer.Equals(Microsoft.CodeAnalysis.Sarif.VersionOne.RuleVersionOne,Microsoft.CodeAnalysis.Sarif.VersionOne.RuleVersionOne)" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Maintainability", + "FixCategory": "NonBreaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifCurrentToVersionOneVisitor.CreateLogicalLocation(Microsoft.CodeAnalysis.Sarif.LogicalLocation)": { - "name": "CreateLogicalLocation(Microsoft.CodeAnalysis.Sarif.LogicalLocation)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifCurrentToVersionOneVisitor", - "kind": "member" + { + "ruleId": "CA2214", + "message": { + "text": "'RunVersionOne.RunVersionOne(RunVersionOne)' contains a call chain that results in a call to a virtual method defined by the class. Review the following call stack for unintended consequences: \r\n\r\nRunVersionOne..ctor(RunVersionOne)\r\nRunVersionOne.Init(ToolVersionOne, InvocationVersionOne, IDictionary, IDictionary, IEnumerable, IEnumerable, IEnumerable, IDictionary, String, String, String, String, String, IDictionary):Void\r\nPropertyBagHolder.set_Properties(IDictionary):Void" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/VersionOne/Autogenerated/RunVersionOne.cs", + "index": 125 + }, + "region": { + "startLine": 185 + } + }, + "logicalLocations": [ + { + "index": 643, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.RunVersionOne..ctor(Microsoft.CodeAnalysis.Sarif.VersionOne.RunVersionOne)" + } + ] + } + ], + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Usage", + "FixCategory": "NonBreaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifCurrentToVersionOneVisitor.CreatePhysicalLocation(Microsoft.CodeAnalysis.Sarif.FileLocation)": { - "name": "CreatePhysicalLocation(Microsoft.CodeAnalysis.Sarif.FileLocation)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifCurrentToVersionOneVisitor", - "kind": "member" + { + "ruleId": "CA2214", + "message": { + "text": "'RunVersionOne.RunVersionOne(ToolVersionOne, InvocationVersionOne, IDictionary, IDictionary, IEnumerable, IEnumerable, IEnumerable, IDictionary, string, string, string, string, string, IDictionary)' contains a call chain that results in a call to a virtual method defined by the class. Review the following call stack for unintended consequences: \r\n\r\nRunVersionOne..ctor(ToolVersionOne, InvocationVersionOne, IDictionary, IDictionary, IEnumerable, IEnumerable, IEnumerable, IDictionary, String, String, String, String, String, IDictionary)\r\nRunVersionOne.Init(ToolVersionOne, InvocationVersionOne, IDictionary, IDictionary, IEnumerable, IEnumerable, IEnumerable, IDictionary, String, String, String, String, String, IDictionary):Void\r\nPropertyBagHolder.set_Properties(IDictionary):Void" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/VersionOne/Autogenerated/RunVersionOne.cs", + "index": 125 + }, + "region": { + "startLine": 171 + } + }, + "logicalLocations": [ + { + "index": 644, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.RunVersionOne..ctor(Microsoft.CodeAnalysis.Sarif.VersionOne.ToolVersionOne,Microsoft.CodeAnalysis.Sarif.VersionOne.InvocationVersionOne,System.Collections.Generic.IDictionary`2,System.Collections.Generic.IDictionary`2,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IDictionary`2,System.String,System.String,System.String,System.String,System.String,System.Collections.Generic.IDictionary`2)" + } + ] + } + ], + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Usage", + "FixCategory": "NonBreaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifCurrentToVersionOneVisitor.CreateReplacement(Microsoft.CodeAnalysis.Sarif.Replacement,System.Text.Encoding)": { - "name": "CreateReplacement(Microsoft.CodeAnalysis.Sarif.Replacement,System.Text.Encoding)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifCurrentToVersionOneVisitor", - "kind": "member" + { + "ruleId": "CA2227", + "message": { + "text": "Change 'RunVersionOne.ConfigurationNotifications' to be read-only by removing the property setter." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/VersionOne/Autogenerated/RunVersionOne.cs", + "index": 125 + }, + "region": { + "startLine": 75 + } + }, + "logicalLocations": [ + { + "index": 645, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.RunVersionOne.ConfigurationNotifications" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Usage", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifCurrentToVersionOneVisitor.CreateResult(Microsoft.CodeAnalysis.Sarif.Result)": { - "name": "CreateResult(Microsoft.CodeAnalysis.Sarif.Result)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifCurrentToVersionOneVisitor", - "kind": "member" + { + "ruleId": "CA2227", + "message": { + "text": "Change 'RunVersionOne.Files' to be read-only by removing the property setter." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/VersionOne/Autogenerated/RunVersionOne.cs", + "index": 125 + }, + "region": { + "startLine": 51 + } + }, + "logicalLocations": [ + { + "index": 646, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.RunVersionOne.Files" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Usage", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifCurrentToVersionOneVisitor.CreateRule(Microsoft.CodeAnalysis.Sarif.Rule)": { - "name": "CreateRule(Microsoft.CodeAnalysis.Sarif.Rule)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifCurrentToVersionOneVisitor", - "kind": "member" + { + "ruleId": "CA2227", + "message": { + "text": "Change 'RunVersionOne.LogicalLocations' to be read-only by removing the property setter." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/VersionOne/Autogenerated/RunVersionOne.cs", + "index": 125 + }, + "region": { + "startLine": 57 + } + }, + "logicalLocations": [ + { + "index": 647, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.RunVersionOne.LogicalLocations" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Usage", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifCurrentToVersionOneVisitor.CreateRun(Microsoft.CodeAnalysis.Sarif.Run)": { - "name": "CreateRun(Microsoft.CodeAnalysis.Sarif.Run)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifCurrentToVersionOneVisitor", - "kind": "member" + { + "ruleId": "CA2227", + "message": { + "text": "Change 'RunVersionOne.Results' to be read-only by removing the property setter." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/VersionOne/Autogenerated/RunVersionOne.cs", + "index": 125 + }, + "region": { + "startLine": 63 + } + }, + "logicalLocations": [ + { + "index": 648, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.RunVersionOne.Results" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Usage", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifCurrentToVersionOneVisitor.CreateTool(Microsoft.CodeAnalysis.Sarif.Tool)": { - "name": "CreateTool(Microsoft.CodeAnalysis.Sarif.Tool)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifCurrentToVersionOneVisitor", - "kind": "member" + { + "ruleId": "CA2227", + "message": { + "text": "Change 'RunVersionOne.Rules' to be read-only by removing the property setter." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/VersionOne/Autogenerated/RunVersionOne.cs", + "index": 125 + }, + "region": { + "startLine": 81 + } + }, + "logicalLocations": [ + { + "index": 649, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.RunVersionOne.Rules" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Usage", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifCurrentToVersionOneVisitor.GetContentStream(System.Uri,System.Text.Encoding&)": { - "name": "GetContentStream(System.Uri,System.Text.Encoding&)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifCurrentToVersionOneVisitor", - "kind": "member" + { + "ruleId": "CA2227", + "message": { + "text": "Change 'RunVersionOne.ToolNotifications' to be read-only by removing the property setter." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/VersionOne/Autogenerated/RunVersionOne.cs", + "index": 125 + }, + "region": { + "startLine": 69 + } + }, + "logicalLocations": [ + { + "index": 650, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.RunVersionOne.ToolNotifications" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Usage", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifCurrentToVersionOneVisitor.GetFileEncoding(System.String)": { - "name": "GetFileEncoding(System.String)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifCurrentToVersionOneVisitor", - "kind": "member" - }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifCurrentToVersionOneVisitor.SarifLogVersionOne": { - "name": "SarifLogVersionOne", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifCurrentToVersionOneVisitor", - "kind": "member" - }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifCurrentToVersionOneVisitor.VisitSarifLog(Microsoft.CodeAnalysis.Sarif.SarifLog)": { - "name": "VisitSarifLog(Microsoft.CodeAnalysis.Sarif.SarifLog)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifCurrentToVersionOneVisitor", - "kind": "member" - }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifTransformerUtilities": { - "name": "SarifTransformerUtilities", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors", - "kind": "type" + { + "ruleId": "CA1502", + "message": { + "text": "'RunVersionOneEqualityComparer.Equals(RunVersionOne, RunVersionOne)' has a cyclomatic complexity of 61. Rewrite or refactor the method to reduce complexity to 25." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/VersionOne/Autogenerated/RunVersionOneEqualityComparer.cs", + "index": 126 + }, + "region": { + "startLine": 20 + } + }, + "logicalLocations": [ + { + "index": 652, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.RunVersionOneEqualityComparer.Equals(Microsoft.CodeAnalysis.Sarif.VersionOne.RunVersionOne,Microsoft.CodeAnalysis.Sarif.VersionOne.RunVersionOne)" + } + ] + } + ], + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Maintainability", + "FixCategory": "NonBreaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifTransformerUtilities.AlgorithmKindNameMap": { - "name": "AlgorithmKindNameMap", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifTransformerUtilities", - "kind": "member" + { + "ruleId": "CA1502", + "message": { + "text": "'RunVersionOneEqualityComparer.GetHashCode(RunVersionOne)' has a cyclomatic complexity of 37. Rewrite or refactor the method to reduce complexity to 25." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/VersionOne/Autogenerated/RunVersionOneEqualityComparer.cs", + "index": 126 + }, + "region": { + "startLine": 221 + } + }, + "logicalLocations": [ + { + "index": 653, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.RunVersionOneEqualityComparer.GetHashCode(Microsoft.CodeAnalysis.Sarif.VersionOne.RunVersionOne)" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Maintainability", + "FixCategory": "NonBreaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifTransformerUtilities.AlgorithmNameKindMap": { - "name": "AlgorithmNameKindMap", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifTransformerUtilities", - "kind": "member" + { + "ruleId": "CA1704", + "message": { + "text": "Correct the spelling of 'Sarif' in type name 'SarifLogVersionOne'.", + "id": "Type" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + } + }, + "logicalLocations": [ + { + "index": 654, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.SarifLogVersionOne" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "Sarif#Type" + }, + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifTransformerUtilities.CreateAnnotatedCodeLocationImportance(Microsoft.CodeAnalysis.Sarif.ThreadFlowLocationImportance)": { - "name": "CreateAnnotatedCodeLocationImportance(Microsoft.CodeAnalysis.Sarif.ThreadFlowLocationImportance)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifTransformerUtilities", - "kind": "member" + { + "ruleId": "CA2227", + "message": { + "text": "Change 'SarifLogVersionOne.Runs' to be read-only by removing the property setter." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/VersionOne/Autogenerated/SarifLogVersionOne.cs", + "index": 127 + }, + "region": { + "startLine": 50 + } + }, + "logicalLocations": [ + { + "index": 655, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.SarifLogVersionOne.Runs" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Usage", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifTransformerUtilities.CreateBaselineState(Microsoft.CodeAnalysis.Sarif.VersionOne.BaselineStateVersionOne)": { - "name": "CreateBaselineState(Microsoft.CodeAnalysis.Sarif.VersionOne.BaselineStateVersionOne)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifTransformerUtilities", - "kind": "member" + { + "ruleId": "CA1704", + "message": { + "text": "Correct the spelling of 'Sarif' in type name 'SarifNodeKindVersionOne'.", + "id": "Type" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + } + }, + "logicalLocations": [ + { + "index": 656, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.SarifNodeKindVersionOne" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "Sarif#Type" + }, + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifTransformerUtilities.CreateBaselineStateVersionOne(Microsoft.CodeAnalysis.Sarif.BaselineState)": { - "name": "CreateBaselineStateVersionOne(Microsoft.CodeAnalysis.Sarif.BaselineState)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifTransformerUtilities", - "kind": "member" + { + "ruleId": "CA1704", + "message": { + "text": "Correct the spelling of 'Sarif' in member name 'SarifNodeKindVersionOne.SarifLogVersionOne' or remove it entirely if it represents any sort of Hungarian notation.", + "id": "Member" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + } + }, + "logicalLocations": [ + { + "index": 657, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.SarifNodeKindVersionOne.SarifLogVersionOne" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "Sarif#Member" + }, + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifTransformerUtilities.CreateDisambiguatedName(System.String,System.Int32)": { - "name": "CreateDisambiguatedName(System.String,System.Int32)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifTransformerUtilities", - "kind": "member" + { + "ruleId": "CA1704", + "message": { + "text": "Correct the spelling of 'Sarif' in type name 'SarifRewritingVisitorVersionOne'.", + "id": "Type" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + } + }, + "logicalLocations": [ + { + "index": 658, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.SarifRewritingVisitorVersionOne" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "Sarif#Type" + }, + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifTransformerUtilities.CreateNotificationLevel(Microsoft.CodeAnalysis.Sarif.VersionOne.NotificationLevelVersionOne)": { - "name": "CreateNotificationLevel(Microsoft.CodeAnalysis.Sarif.VersionOne.NotificationLevelVersionOne)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifTransformerUtilities", - "kind": "member" + { + "ruleId": "CA1704", + "message": { + "text": "Correct the spelling of 'Sarif' in member name 'SarifRewritingVisitorVersionOne.VisitSarifLogVersionOne(SarifLogVersionOne)' or remove it entirely if it represents any sort of Hungarian notation.", + "id": "Member" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/VersionOne/Autogenerated/SarifRewritingVisitorVersionOne.cs", + "index": 128 + }, + "region": { + "startLine": 442 + } + }, + "logicalLocations": [ + { + "index": 659, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.SarifRewritingVisitorVersionOne.VisitSarifLogVersionOne(Microsoft.CodeAnalysis.Sarif.VersionOne.SarifLogVersionOne)" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "Sarif#Member" + }, + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifTransformerUtilities.CreateNotificationLevelVersionOne(Microsoft.CodeAnalysis.Sarif.FailureLevel)": { - "name": "CreateNotificationLevelVersionOne(Microsoft.CodeAnalysis.Sarif.FailureLevel)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifTransformerUtilities", - "kind": "member" + { + "ruleId": "CA1704", + "message": { + "text": "Correct the spelling of 'Sarif' in type name 'SarifVersionVersionOne'.", + "id": "Type" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + } + }, + "logicalLocations": [ + { + "index": 660, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.SarifVersionVersionOne" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "Sarif#Type" + }, + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifTransformerUtilities.CreateResultLevel(Microsoft.CodeAnalysis.Sarif.VersionOne.ResultLevelVersionOne)": { - "name": "CreateResultLevel(Microsoft.CodeAnalysis.Sarif.VersionOne.ResultLevelVersionOne)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifTransformerUtilities", - "kind": "member" + { + "ruleId": "CA2214", + "message": { + "text": "'StackFrameVersionOne.StackFrameVersionOne(StackFrameVersionOne)' contains a call chain that results in a call to a virtual method defined by the class. Review the following call stack for unintended consequences: \r\n\r\nStackFrameVersionOne..ctor(StackFrameVersionOne)\r\nStackFrameVersionOne.Init(String, Uri, String, Int32, Int32, String, Int32, String, String, Int32, Int32, IEnumerable, IDictionary):Void\r\nPropertyBagHolder.set_Properties(IDictionary):Void" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/VersionOne/Autogenerated/StackFrameVersionOne.cs", + "index": 129 + }, + "region": { + "startLine": 176 + } + }, + "logicalLocations": [ + { + "index": 662, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.StackFrameVersionOne..ctor(Microsoft.CodeAnalysis.Sarif.VersionOne.StackFrameVersionOne)" + } + ] + } + ], + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Usage", + "FixCategory": "NonBreaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifTransformerUtilities.CreateResultLevelVersionOne(Microsoft.CodeAnalysis.Sarif.ResultLevel)": { - "name": "CreateResultLevelVersionOne(Microsoft.CodeAnalysis.Sarif.ResultLevel)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifTransformerUtilities", - "kind": "member" - }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifTransformerUtilities.CreateResultLevelVersionOne(Microsoft.CodeAnalysis.Sarif.reportingConfigurationDefaultLevel)": { - "name": "CreateResultLevelVersionOne(Microsoft.CodeAnalysis.Sarif.reportingConfigurationDefaultLevel)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifTransformerUtilities", - "kind": "member" - }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifTransformerUtilities.CreatereportingConfigurationDefaultLevel(Microsoft.CodeAnalysis.Sarif.VersionOne.ResultLevelVersionOne)": { - "name": "CreatereportingConfigurationDefaultLevel(Microsoft.CodeAnalysis.Sarif.VersionOne.ResultLevelVersionOne)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifTransformerUtilities", - "kind": "member" - }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifTransformerUtilities.CreateSuppressionStates(Microsoft.CodeAnalysis.Sarif.VersionOne.SuppressionStatesVersionOne)": { - "name": "CreateSuppressionStates(Microsoft.CodeAnalysis.Sarif.VersionOne.SuppressionStatesVersionOne)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifTransformerUtilities", - "kind": "member" - }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifTransformerUtilities.CreateSuppressionStatesVersionOne(Microsoft.CodeAnalysis.Sarif.SuppressionStates)": { - "name": "CreateSuppressionStatesVersionOne(Microsoft.CodeAnalysis.Sarif.SuppressionStates)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifTransformerUtilities", - "kind": "member" - }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifTransformerUtilities.CreateThreadFlowLocationImportance(Microsoft.CodeAnalysis.Sarif.VersionOne.AnnotatedCodeLocationImportanceVersionOne)": { - "name": "CreateThreadFlowLocationImportance(Microsoft.CodeAnalysis.Sarif.VersionOne.AnnotatedCodeLocationImportanceVersionOne)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifTransformerUtilities", - "kind": "member" + { + "ruleId": "CA2214", + "message": { + "text": "'StackFrameVersionOne.StackFrameVersionOne(string, Uri, string, int, int, string, int, string, string, int, int, IEnumerable, IDictionary)' contains a call chain that results in a call to a virtual method defined by the class. Review the following call stack for unintended consequences: \r\n\r\nStackFrameVersionOne..ctor(String, Uri, String, Int32, Int32, String, Int32, String, String, Int32, Int32, IEnumerable, IDictionary)\r\nStackFrameVersionOne.Init(String, Uri, String, Int32, Int32, String, Int32, String, String, Int32, Int32, IEnumerable, IDictionary):Void\r\nPropertyBagHolder.set_Properties(IDictionary):Void" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/VersionOne/Autogenerated/StackFrameVersionOne.cs", + "index": 129 + }, + "region": { + "startLine": 162 + } + }, + "logicalLocations": [ + { + "index": 663, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.StackFrameVersionOne..ctor(System.String,System.Uri,System.String,System.Int32,System.Int32,System.String,System.Int32,System.String,System.String,System.Int32,System.Int32,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IDictionary`2)" + } + ] + } + ], + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Usage", + "FixCategory": "NonBreaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifTransformerUtilities.DefaultFullyQualifiedNameDelimiters": { - "name": "DefaultFullyQualifiedNameDelimiters", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifTransformerUtilities", - "kind": "member" + { + "ruleId": "CA1054", + "level": "error", + "message": { + "text": "Change the type of parameter 'uriBaseId' of method 'StackFrameVersionOne.StackFrameVersionOne(string, Uri, string, int, int, string, int, string, string, int, int, IEnumerable, IDictionary)' from string to System.Uri, or provide an overload of 'StackFrameVersionOne.StackFrameVersionOne(string, Uri, string, int, int, string, int, string, string, int, int, IEnumerable, IDictionary)', that allows 'uriBaseId' to be passed as a System.Uri object." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/VersionOne/Autogenerated/StackFrameVersionOne.cs", + "index": 129 + }, + "region": { + "startLine": 162 + } + }, + "logicalLocations": [ + { + "index": 663, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.StackFrameVersionOne..ctor(System.String,System.Uri,System.String,System.Int32,System.Int32,System.String,System.Int32,System.String,System.String,System.Int32,System.Int32,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IDictionary`2)" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "2#" + }, + "properties": { + "Category": "Microsoft.Design", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifTransformerUtilities.JsonSettingsV1": { - "name": "JsonSettingsV1", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifTransformerUtilities", - "kind": "member" + { + "ruleId": "CA2227", + "message": { + "text": "Change 'StackFrameVersionOne.Parameters' to be read-only by removing the property setter." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/VersionOne/Autogenerated/StackFrameVersionOne.cs", + "index": 129 + }, + "region": { + "startLine": 105 + } + }, + "logicalLocations": [ + { + "index": 664, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.StackFrameVersionOne.Parameters" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Usage", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifTransformerUtilities.JsonSettingsV1Compact": { - "name": "JsonSettingsV1Compact", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifTransformerUtilities", - "kind": "member" + { + "ruleId": "CA1056", + "level": "error", + "message": { + "text": "Change the type of property 'StackFrameVersionOne.UriBaseId' from string to System.Uri." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/VersionOne/Autogenerated/StackFrameVersionOne.cs", + "index": 129 + }, + "region": { + "startLine": 51 + } + }, + "logicalLocations": [ + { + "index": 665, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.StackFrameVersionOne.UriBaseId" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Design", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifTransformerUtilities.JsonSettingsV2": { - "name": "JsonSettingsV2", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifTransformerUtilities", - "kind": "member" + { + "ruleId": "CA1502", + "message": { + "text": "'StackFrameVersionOneEqualityComparer.Equals(StackFrameVersionOne, StackFrameVersionOne)' has a cyclomatic complexity of 29. Rewrite or refactor the method to reduce complexity to 25." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/VersionOne/Autogenerated/StackFrameVersionOneEqualityComparer.cs", + "index": 130 + }, + "region": { + "startLine": 20 + } + }, + "logicalLocations": [ + { + "index": 667, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.StackFrameVersionOneEqualityComparer.Equals(Microsoft.CodeAnalysis.Sarif.VersionOne.StackFrameVersionOne,Microsoft.CodeAnalysis.Sarif.VersionOne.StackFrameVersionOne)" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Maintainability", + "FixCategory": "NonBreaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifTransformerUtilities.JsonSettingsV2Compact": { - "name": "JsonSettingsV2Compact", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifTransformerUtilities", - "kind": "member" + { + "ruleId": "CA2214", + "message": { + "text": "'StackVersionOne.StackVersionOne(StackVersionOne)' contains a call chain that results in a call to a virtual method defined by the class. Review the following call stack for unintended consequences: \r\n\r\nStackVersionOne..ctor(StackVersionOne)\r\nStackVersionOne.Init(String, IEnumerable, IDictionary):Void\r\nPropertyBagHolder.set_Properties(IDictionary):Void" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/VersionOne/Autogenerated/StackVersionOne.cs", + "index": 131 + }, + "region": { + "startLine": 86 + } + }, + "logicalLocations": [ + { + "index": 669, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.StackVersionOne..ctor(Microsoft.CodeAnalysis.Sarif.VersionOne.StackVersionOne)" + } + ] + } + ], + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Usage", + "FixCategory": "NonBreaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifTransformerUtilities.PropertyBagTransformerItemPrefixes": { - "name": "PropertyBagTransformerItemPrefixes", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifTransformerUtilities", - "kind": "member" + { + "ruleId": "CA2214", + "message": { + "text": "'StackVersionOne.StackVersionOne(string, IEnumerable, IDictionary)' contains a call chain that results in a call to a virtual method defined by the class. Review the following call stack for unintended consequences: \r\n\r\nStackVersionOne..ctor(String, IEnumerable, IDictionary)\r\nStackVersionOne.Init(String, IEnumerable, IDictionary):Void\r\nPropertyBagHolder.set_Properties(IDictionary):Void" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/VersionOne/Autogenerated/StackVersionOne.cs", + "index": 131 + }, + "region": { + "startLine": 72 + } + }, + "logicalLocations": [ + { + "index": 670, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.StackVersionOne..ctor(System.String,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IDictionary`2)" + } + ] + } + ], + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Usage", + "FixCategory": "NonBreaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifVersionOneToCurrentVisitor": { - "name": "SarifVersionOneToCurrentVisitor", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors", - "kind": "type" + { + "ruleId": "CA2227", + "message": { + "text": "Change 'StackVersionOne.Frames' to be read-only by removing the property setter." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/VersionOne/Autogenerated/StackVersionOne.cs", + "index": 131 + }, + "region": { + "startLine": 45 + } + }, + "logicalLocations": [ + { + "index": 671, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.StackVersionOne.Frames" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Usage", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifVersionOneToCurrentVisitor._currentV1Run": { - "name": "_currentV1Run", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifVersionOneToCurrentVisitor", - "kind": "member" + { + "ruleId": "CA1714", + "level": "error", + "message": { + "text": "If enumeration name 'SuppressionStatesVersionOne' is singular, change it to a plural form." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + } + }, + "logicalLocations": [ + { + "index": 672, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.SuppressionStatesVersionOne" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifVersionOneToCurrentVisitor.CreateFileLocation(System.Uri,System.String)": { - "name": "CreateFileLocation(System.Uri,System.String)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifVersionOneToCurrentVisitor", - "kind": "member" + { + "ruleId": "CA1710", + "level": "error", + "message": { + "text": "Rename 'TagsCollectionVersionOne' to end in 'Collection'." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + } + }, + "logicalLocations": [ + { + "index": 673, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.TagsCollectionVersionOne" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifVersionOneToCurrentVisitor.CreateHash(Microsoft.CodeAnalysis.Sarif.VersionOne.HashVersionOne)": { - "name": "CreateHash(Microsoft.CodeAnalysis.Sarif.VersionOne.HashVersionOne)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifVersionOneToCurrentVisitor", - "kind": "member" - }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifVersionOneToCurrentVisitor.CreateLogicalLocation(Microsoft.CodeAnalysis.Sarif.VersionOne.LogicalLocationVersionOne)": { - "name": "CreateLogicalLocation(Microsoft.CodeAnalysis.Sarif.VersionOne.LogicalLocationVersionOne)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifVersionOneToCurrentVisitor", - "kind": "member" - }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifVersionOneToCurrentVisitor.CreateMessage(System.String)": { - "name": "CreateMessage(System.String)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifVersionOneToCurrentVisitor", - "kind": "member" - }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifVersionOneToCurrentVisitor.CreateRegion(Microsoft.CodeAnalysis.Sarif.VersionOne.RegionVersionOne)": { - "name": "CreateRegion(Microsoft.CodeAnalysis.Sarif.VersionOne.RegionVersionOne)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifVersionOneToCurrentVisitor", - "kind": "member" - }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifVersionOneToCurrentVisitor.CreateRegion(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32)": { - "name": "CreateRegion(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifVersionOneToCurrentVisitor", - "kind": "member" + { + "ruleId": "CA2214", + "message": { + "text": "'ToolVersionOne.ToolVersionOne(ToolVersionOne)' contains a call chain that results in a call to a virtual method defined by the class. Review the following call stack for unintended consequences: \r\n\r\nToolVersionOne..ctor(ToolVersionOne)\r\nToolVersionOne.Init(String, String, String, String, String, String, String, IDictionary):Void\r\nPropertyBagHolder.set_Properties(IDictionary):Void" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/VersionOne/Autogenerated/ToolVersionOne.cs", + "index": 132 + }, + "region": { + "startLine": 131 + } + }, + "logicalLocations": [ + { + "index": 675, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.ToolVersionOne..ctor(Microsoft.CodeAnalysis.Sarif.VersionOne.ToolVersionOne)" + } + ] + } + ], + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Usage", + "FixCategory": "NonBreaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifVersionOneToCurrentVisitor.CreateResult(Microsoft.CodeAnalysis.Sarif.VersionOne.ResultVersionOne)": { - "name": "CreateResult(Microsoft.CodeAnalysis.Sarif.VersionOne.ResultVersionOne)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifVersionOneToCurrentVisitor", - "kind": "member" + { + "ruleId": "CA2214", + "message": { + "text": "'ToolVersionOne.ToolVersionOne(string, string, string, string, string, string, string, IDictionary)' contains a call chain that results in a call to a virtual method defined by the class. Review the following call stack for unintended consequences: \r\n\r\nToolVersionOne..ctor(String, String, String, String, String, String, String, IDictionary)\r\nToolVersionOne.Init(String, String, String, String, String, String, String, IDictionary):Void\r\nPropertyBagHolder.set_Properties(IDictionary):Void" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/VersionOne/Autogenerated/ToolVersionOne.cs", + "index": 132 + }, + "region": { + "startLine": 117 + } + }, + "logicalLocations": [ + { + "index": 676, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.ToolVersionOne..ctor(System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.Collections.Generic.IDictionary`2)" + } + ] + } + ], + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Usage", + "FixCategory": "NonBreaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifVersionOneToCurrentVisitor.CreateRun(Microsoft.CodeAnalysis.Sarif.VersionOne.RunVersionOne)": { - "name": "CreateRun(Microsoft.CodeAnalysis.Sarif.VersionOne.RunVersionOne)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifVersionOneToCurrentVisitor", - "kind": "member" + { + "ruleId": "CA1704", + "message": { + "text": "In method 'ToolVersionOne.ToolVersionOne(string, string, string, string, string, string, string, IDictionary)', correct the spelling of 'sarif' in parameter name 'sarifLoggerVersion' or remove it entirely if it represents any sort of Hungarian notation.", + "id": "MemberParameter" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/VersionOne/Autogenerated/ToolVersionOne.cs", + "index": 132 + }, + "region": { + "startLine": 117 + } + }, + "logicalLocations": [ + { + "index": 676, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.ToolVersionOne..ctor(System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.Collections.Generic.IDictionary`2)" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "sarif#MemberParameter" + }, + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifVersionOneToCurrentVisitor.CreateTool(Microsoft.CodeAnalysis.Sarif.VersionOne.ToolVersionOne)": { - "name": "CreateTool(Microsoft.CodeAnalysis.Sarif.VersionOne.ToolVersionOne)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifVersionOneToCurrentVisitor", - "kind": "member" + { + "ruleId": "CA1704", + "message": { + "text": "Correct the spelling of 'Sarif' in member name 'ToolVersionOne.SarifLoggerVersion' or remove it entirely if it represents any sort of Hungarian notation.", + "id": "Member" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/VersionOne/Autogenerated/ToolVersionOne.cs", + "index": 132 + }, + "region": { + "startLine": 69 + } + }, + "logicalLocations": [ + { + "index": 677, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.ToolVersionOne.SarifLoggerVersion" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "Sarif#Member" + }, + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifVersionOneToCurrentVisitor.GetLogicalLocationName(System.String)": { - "name": "GetLogicalLocationName(System.String)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifVersionOneToCurrentVisitor", - "kind": "member" + { + "ruleId": "CA1307", + "level": "error", + "message": { + "text": "Because the behavior of 'string.StartsWith(string)' could vary based on the current user's locale settings, replace this call in 'AbsoluteUrisVisitor.CombineUris(Uri, Uri)' with a call to 'string.StartsWith(string, StringComparison)'. If the result of 'string.StartsWith(string, StringComparison)' will be displayed to the user, such as when sorting a list of items for display in a list box, specify 'StringComparison.CurrentCulture' or 'StringComparison.CurrentCultureIgnoreCase' as the 'StringComparison' parameter. If comparing case-insensitive identifiers, such as file paths, environment variables, or registry keys and values, specify 'StringComparison.OrdinalIgnoreCase'. Otherwise, if comparing case-sensitive identifiers, specify 'StringComparison.Ordinal'." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Visitors/AbsoluteUrisVisitor.cs", + "index": 133 + }, + "region": { + "startLine": 103 + } + }, + "logicalLocations": [ + { + "index": 680, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.AbsoluteUrisVisitor.CombineUris(System.Uri,System.Uri)" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "System.String.StartsWith(System.String)" + }, + "properties": { + "Category": "Microsoft.Globalization", + "FixCategory": "NonBreaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifVersionOneToCurrentVisitor.SarifLog": { - "name": "SarifLog", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifVersionOneToCurrentVisitor", - "kind": "member" + { + "ruleId": "CA2204", + "message": { + "text": "Correct the spelling of the unrecognized token 'originalUriBaseIds' in the literal '\"originalUriBaseIds\"'." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Visitors/AbsoluteUrisVisitor.cs", + "index": 133 + }, + "region": { + "startLine": 47 + } + }, + "logicalLocations": [ + { + "index": 681, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.AbsoluteUrisVisitor.VisitRun(Microsoft.CodeAnalysis.Sarif.Run)" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "originalUriBaseIds" + }, + "properties": { + "Category": "Microsoft.Naming", + "FixCategory": "DependsOnFix" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifVersionOneToCurrentVisitor.VisitSarifLogVersionOne(Microsoft.CodeAnalysis.Sarif.VersionOne.SarifLogVersionOne)": { - "name": "VisitSarifLogVersionOne(Microsoft.CodeAnalysis.Sarif.VersionOne.SarifLogVersionOne)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifVersionOneToCurrentVisitor", - "kind": "member" + { + "ruleId": "CA1305", + "level": "error", + "message": { + "text": "Because the behavior of 'string.Format(string, object)' could vary based on the current user's locale settings, replace this call in 'AbsoluteUrisVisitor.VisitRun(Run)' with a call to 'string.Format(IFormatProvider, string, params object[])'. If the result of 'string.Format(IFormatProvider, string, params object[])' will be displayed to the user, specify 'CultureInfo.CurrentCulture' as the 'IFormatProvider' parameter. Otherwise, if the result will be stored and accessed by software, such as when it is persisted to disk or to a database, specify 'CultureInfo.InvariantCulture'.", + "id": "IFormatProviderAlternateString" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Visitors/AbsoluteUrisVisitor.cs", + "index": 133 + }, + "region": { + "startLine": 47 + } + }, + "logicalLocations": [ + { + "index": 681, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.AbsoluteUrisVisitor.VisitRun(Microsoft.CodeAnalysis.Sarif.Run)" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "System.String.Format(System.String,System.Object)#IFormatProviderAlternateString" + }, + "properties": { + "Category": "Microsoft.Globalization", + "FixCategory": "NonBreaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.UnknownEncodingException": { - "name": "UnknownEncodingException", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors", - "kind": "type" + { + "ruleId": "CA1062", + "message": { + "text": "In externally visible method 'AbsoluteUrisVisitor.VisitRun(Run)', validate parameter 'node' before using it." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Visitors/AbsoluteUrisVisitor.cs", + "index": 133 + }, + "region": { + "startLine": 42 + } + }, + "logicalLocations": [ + { + "index": 681, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.AbsoluteUrisVisitor.VisitRun(Microsoft.CodeAnalysis.Sarif.Run)" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "0" + }, + "properties": { + "Category": "Microsoft.Design", + "FixCategory": "DependsOnFix" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Writers": { - "name": "Microsoft.CodeAnalysis.Sarif.Writers", - "parentKey": "sarif.dll", - "kind": "namespace" + { + "ruleId": "CA1062", + "message": { + "text": "In externally visible method 'AddFileReferencesVisitor.VisitPhysicalLocation(PhysicalLocation)', validate parameter 'node' before using it." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Visitors/AddFileReferencesVisitor.cs", + "index": 134 + }, + "region": { + "startLine": 35 + } + }, + "logicalLocations": [ + { + "index": 683, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.AddFileReferencesVisitor.VisitPhysicalLocation(Microsoft.CodeAnalysis.Sarif.PhysicalLocation)" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "0" + }, + "properties": { + "Category": "Microsoft.Design", + "FixCategory": "DependsOnFix" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Writers.MimeType": { - "name": "MimeType", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Writers", - "kind": "type" - }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Writers.MimeType.Cpp": { - "name": "Cpp", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Writers.MimeType", - "kind": "member" - }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Writers.MimeType.DetermineFromFileExtension(System.String)": { - "name": "DetermineFromFileExtension(System.String)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Writers.MimeType", - "kind": "member" - }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Writers.MimeType.Sarif": { - "name": "Sarif", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Writers.MimeType", - "kind": "member" - }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Writers.ResultLogJsonWriter": { - "name": "ResultLogJsonWriter", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Writers", - "kind": "type" - }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Writers.ResultLogJsonWriter.Initialize(Microsoft.CodeAnalysis.Sarif.Run)": { - "name": "Initialize(Microsoft.CodeAnalysis.Sarif.Run)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Writers.ResultLogJsonWriter", - "kind": "member" - }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Writers.SarifLogger": { - "name": "SarifLogger", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Writers", - "kind": "type" + { + "ruleId": "CA1062", + "message": { + "text": "In externally visible method 'AddFileReferencesVisitor.VisitRun(Run)', validate parameter 'node' before using it." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Visitors/AddFileReferencesVisitor.cs", + "index": 134 + }, + "region": { + "startLine": 14 + } + }, + "logicalLocations": [ + { + "index": 684, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.AddFileReferencesVisitor.VisitRun(Microsoft.CodeAnalysis.Sarif.Run)" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "0" + }, + "properties": { + "Category": "Microsoft.Design", + "FixCategory": "DependsOnFix" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Writers.SarifLogger..ctor(System.IO.TextWriter,Microsoft.CodeAnalysis.Sarif.Writers.LoggingOptions,Microsoft.CodeAnalysis.Sarif.OptionallyEmittedData,Microsoft.CodeAnalysis.Sarif.Tool,Microsoft.CodeAnalysis.Sarif.Run,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,System.String)": { - "name": ".ctor(System.IO.TextWriter,Microsoft.CodeAnalysis.Sarif.Writers.LoggingOptions,Microsoft.CodeAnalysis.Sarif.OptionallyEmittedData,Microsoft.CodeAnalysis.Sarif.Tool,Microsoft.CodeAnalysis.Sarif.Run,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,System.String)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Writers.SarifLogger", - "kind": "member" + { + "ruleId": "CA1504", + "message": { + "text": "The field name 'InsertOptionalDataVisitor.s_fileSystem' suggests that it is static (Shared in Visual Basic) data but it is declared as an instance member. Review this member to verify that it should be instance, or consider changing the field name.", + "id": "Instance" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + } + }, + "logicalLocations": [ + { + "index": 686, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.InsertOptionalDataVisitor.s_fileSystem" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "Instance" + }, + "properties": { + "Category": "Microsoft.Maintainability", + "FixCategory": "NonBreaking" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Writers.SarifLogger..ctor(System.String,Microsoft.CodeAnalysis.Sarif.Writers.LoggingOptions,Microsoft.CodeAnalysis.Sarif.OptionallyEmittedData,Microsoft.CodeAnalysis.Sarif.Tool,Microsoft.CodeAnalysis.Sarif.Run,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,System.String)": { - "name": ".ctor(System.String,Microsoft.CodeAnalysis.Sarif.Writers.LoggingOptions,Microsoft.CodeAnalysis.Sarif.OptionallyEmittedData,Microsoft.CodeAnalysis.Sarif.Tool,Microsoft.CodeAnalysis.Sarif.Run,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,System.String)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Writers.SarifLogger", - "kind": "member" + { + "ruleId": "CA1062", + "message": { + "text": "In externally visible method 'InsertOptionalDataVisitor.VisitMessage(Message)', validate parameter 'node' before using it." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Visitors/InsertOptionalDataVisitor.cs", + "index": 135 + }, + "region": { + "startLine": 164 + } + }, + "logicalLocations": [ + { + "index": 687, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.InsertOptionalDataVisitor.VisitMessage(Microsoft.CodeAnalysis.Sarif.Message)" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "0" + }, + "properties": { + "Category": "Microsoft.Design", + "FixCategory": "DependsOnFix" + } }, - "sarif.dll!Microsoft.CodeAnalysis.Sarif.Writers.SarifLogger.CaptureFilesInResult(Microsoft.CodeAnalysis.Sarif.Result)": { - "name": "CaptureFilesInResult(Microsoft.CodeAnalysis.Sarif.Result)", - "parentKey": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Writers.SarifLogger", - "kind": "member" + { + "ruleId": "CA1062", + "message": { + "text": "In externally visible method 'InsertOptionalDataVisitor.VisitPhysicalLocation(PhysicalLocation)', validate parameter 'node' before using it." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Visitors/InsertOptionalDataVisitor.cs", + "index": 135 + }, + "region": { + "startLine": 64 + } + }, + "logicalLocations": [ + { + "index": 688, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.InsertOptionalDataVisitor.VisitPhysicalLocation(Microsoft.CodeAnalysis.Sarif.PhysicalLocation)" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "0" + }, + "properties": { + "Category": "Microsoft.Design", + "FixCategory": "DependsOnFix" + } }, - "sarif.driver.dll": { - "kind": "module" + { + "ruleId": "CA1062", + "message": { + "text": "In externally visible method 'InsertOptionalDataVisitor.VisitResult(Result)', validate parameter 'node' before using it." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Visitors/InsertOptionalDataVisitor.cs", + "index": 135 + }, + "region": { + "startLine": 155 + } + }, + "logicalLocations": [ + { + "index": 689, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.InsertOptionalDataVisitor.VisitResult(Microsoft.CodeAnalysis.Sarif.Result)" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "0" + }, + "properties": { + "Category": "Microsoft.Design", + "FixCategory": "DependsOnFix" + } }, - "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver": { - "name": "Microsoft.CodeAnalysis.Sarif.Driver", - "parentKey": "sarif.driver.dll", - "kind": "namespace" + { + "ruleId": "CA1062", + "message": { + "text": "In externally visible method 'RebaseUriVisitor.RebaseUriVisitor(string, bool, Uri)', validate parameter 'baseUri' before using it." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Visitors/RebaseUriVisitor.cs", + "index": 136 + }, + "region": { + "startLine": 59 + } + }, + "logicalLocations": [ + { + "index": 691, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.RebaseUriVisitor..ctor(System.String,System.Boolean,System.Uri)" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "2" + }, + "properties": { + "Category": "Microsoft.Design", + "FixCategory": "DependsOnFix" + } }, - "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.AggregatingLogger": { - "name": "AggregatingLogger", - "parentKey": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver", - "kind": "type" + { + "ruleId": "CA1062", + "message": { + "text": "In externally visible method 'RebaseUriVisitor.RebaseUriVisitor(string, Uri)', validate parameter 'baseUri' before using it." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Visitors/RebaseUriVisitor.cs", + "index": 136 + }, + "region": { + "startLine": 49 + } + }, + "logicalLocations": [ + { + "index": 692, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.RebaseUriVisitor..ctor(System.String,System.Uri)" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "1" + }, + "properties": { + "Category": "Microsoft.Design", + "FixCategory": "DependsOnFix" + } }, - "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.AggregatingLogger.Dispose()": { - "name": "Dispose()", - "parentKey": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.AggregatingLogger", - "kind": "member" + { + "ruleId": "CA1062", + "message": { + "text": "In externally visible method 'RebaseUriVisitor.VisitPhysicalLocation(PhysicalLocation)', validate parameter 'node' before using it." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Visitors/RebaseUriVisitor.cs", + "index": 136 + }, + "region": { + "startLine": 73 + } + }, + "logicalLocations": [ + { + "index": 693, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.RebaseUriVisitor.VisitPhysicalLocation(Microsoft.CodeAnalysis.Sarif.PhysicalLocation)" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "0" + }, + "properties": { + "Category": "Microsoft.Design", + "FixCategory": "DependsOnFix" + } }, - "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.AggregatingLogger.Loggers": { - "name": "Loggers", - "parentKey": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.AggregatingLogger", - "kind": "member" + { + "ruleId": "CA1062", + "message": { + "text": "In externally visible method 'RebaseUriVisitor.VisitRun(Run)', validate parameter 'node' before using it." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Visitors/RebaseUriVisitor.cs", + "index": 136 + }, + "region": { + "startLine": 88 + } + }, + "logicalLocations": [ + { + "index": 694, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.RebaseUriVisitor.VisitRun(Microsoft.CodeAnalysis.Sarif.Run)" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "0" + }, + "properties": { + "Category": "Microsoft.Design", + "FixCategory": "DependsOnFix" + } }, - "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.AnalysisContext": { - "name": "AnalysisContext", - "parentKey": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver", - "kind": "type" - }, - "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.AnalysisContext.Dispose()": { - "name": "Dispose()", - "parentKey": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.AnalysisContext", - "kind": "member" - }, - "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.AnalysisContext.Policy": { - "name": "Policy", - "parentKey": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.AnalysisContext", - "kind": "member" - }, - "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.AnalyzeCommandBase`2": { - "name": "AnalyzeCommandBase`2", - "parentKey": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver", - "kind": "type" + { + "ruleId": "CA1506", + "message": { + "text": "'SarifCurrentToVersionOneVisitor' is coupled with 86 different types from 12 different namespaces. Rewrite or refactor this class's methods to decrease its class coupling, or consider moving some of the class's methods to some of the other types it is tightly coupled with. A class coupling above 95 indicates poor maintainability, a class coupling between 95 and 80 indicates moderate maintainability, and a class coupling below 80 indicates good maintainability.", + "id": "Type" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + } + }, + "logicalLocations": [ + { + "index": 695, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifCurrentToVersionOneVisitor" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "Type" + }, + "properties": { + "Category": "Microsoft.Maintainability", + "FixCategory": "Breaking" + } }, - "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.AnalyzeCommandBase`2.AnalyzeTarget(System.Collections.Generic.IEnumerable`1>,!0,System.Collections.Generic.HashSet`1)": { - "name": "AnalyzeTarget(System.Collections.Generic.IEnumerable`1>,!0,System.Collections.Generic.HashSet`1)", - "parentKey": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.AnalyzeCommandBase`2", - "kind": "member" + { + "ruleId": "CA1704", + "message": { + "text": "Correct the spelling of 'Sarif' in type name 'SarifCurrentToVersionOneVisitor'.", + "id": "Type" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + } + }, + "logicalLocations": [ + { + "index": 695, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifCurrentToVersionOneVisitor" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "Sarif#Type" + }, + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" + } }, - "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.AnalyzeCommandBase`2.AnalyzeTargets(!1,System.Collections.Generic.IEnumerable`1>,!0,System.Collections.Generic.IEnumerable`1)": { - "name": "AnalyzeTargets(!1,System.Collections.Generic.IEnumerable`1>,!0,System.Collections.Generic.IEnumerable`1)", - "parentKey": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.AnalyzeCommandBase`2", - "kind": "member" + { + "ruleId": "CA2200", + "level": "error", + "message": { + "text": "'SarifCurrentToVersionOneVisitor.CreateFileChange(FileChange)' rethrows a caught exception and specifies it explicitly as an argument. Use 'throw' without an argument instead, in order to preserve the stack location where the exception was initially raised." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Visitors/SarifCurrentToVersionOneVisitor.cs", + "index": 137 + }, + "region": { + "startLine": 135 + } + }, + "logicalLocations": [ + { + "index": 696, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifCurrentToVersionOneVisitor.CreateFileChange(Microsoft.CodeAnalysis.Sarif.FileChange)" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Usage", + "FixCategory": "NonBreaking" + } }, - "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.AnalyzeCommandBase`2.CreateContext(!1,Microsoft.CodeAnalysis.Sarif.IAnalysisLogger,Microsoft.CodeAnalysis.Sarif.RuntimeConditions,System.String)": { - "name": "CreateContext(!1,Microsoft.CodeAnalysis.Sarif.IAnalysisLogger,Microsoft.CodeAnalysis.Sarif.RuntimeConditions,System.String)", - "parentKey": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.AnalyzeCommandBase`2", - "kind": "member" + { + "ruleId": "CA1822", + "message": { + "text": "The 'this' parameter (or 'Me' in Visual Basic) of 'SarifCurrentToVersionOneVisitor.CreateLogicalLocation(LogicalLocation)' is never used. Mark the member as static (or Shared in Visual Basic) or use 'this'/'Me' in the method body or at least one property accessor, if appropriate." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Visitors/SarifCurrentToVersionOneVisitor.cs", + "index": 137 + }, + "region": { + "startLine": 322 + } + }, + "logicalLocations": [ + { + "index": 697, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifCurrentToVersionOneVisitor.CreateLogicalLocation(Microsoft.CodeAnalysis.Sarif.LogicalLocation)" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Performance", + "FixCategory": "NonBreaking" + } }, - "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.AnalyzeCommandBase`2.CreateSkimmers(!0)": { - "name": "CreateSkimmers(!0)", - "parentKey": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.AnalyzeCommandBase`2", - "kind": "member" + { + "ruleId": "CA1822", + "message": { + "text": "The 'this' parameter (or 'Me' in Visual Basic) of 'SarifCurrentToVersionOneVisitor.CreatePhysicalLocation(FileLocation)' is never used. Mark the member as static (or Shared in Visual Basic) or use 'this'/'Me' in the method body or at least one property accessor, if appropriate." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Visitors/SarifCurrentToVersionOneVisitor.cs", + "index": 137 + }, + "region": { + "startLine": 379 + } + }, + "logicalLocations": [ + { + "index": 698, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifCurrentToVersionOneVisitor.CreatePhysicalLocation(Microsoft.CodeAnalysis.Sarif.FileLocation)" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Performance", + "FixCategory": "NonBreaking" + } }, - "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.AnalyzeCommandBase`2.DefaultPolicyName": { - "name": "DefaultPolicyName", - "parentKey": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.AnalyzeCommandBase`2", - "kind": "member" + { + "ruleId": "CA1822", + "message": { + "text": "The 'this' parameter (or 'Me' in Visual Basic) of 'SarifCurrentToVersionOneVisitor.CreateReplacement(Replacement, Encoding)' is never used. Mark the member as static (or Shared in Visual Basic) or use 'this'/'Me' in the method body or at least one property accessor, if appropriate." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Visitors/SarifCurrentToVersionOneVisitor.cs", + "index": 137 + }, + "region": { + "startLine": 680 + } + }, + "logicalLocations": [ + { + "index": 699, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifCurrentToVersionOneVisitor.CreateReplacement(Microsoft.CodeAnalysis.Sarif.Replacement,System.Text.Encoding)" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Performance", + "FixCategory": "NonBreaking" + } }, - "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.AnalyzeCommandBase`2.DetermineApplicabilityAndAnalyze(!1,System.Collections.Generic.IEnumerable`1>,!0,System.String,System.Collections.Generic.HashSet`1)": { - "name": "DetermineApplicabilityAndAnalyze(!1,System.Collections.Generic.IEnumerable`1>,!0,System.String,System.Collections.Generic.HashSet`1)", - "parentKey": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.AnalyzeCommandBase`2", - "kind": "member" + { + "ruleId": "CA1506", + "message": { + "text": "'SarifCurrentToVersionOneVisitor.CreateResult(Result)' is coupled with 31 different types from 8 different namespaces. Rewrite or refactor the method to decrease its class coupling, or consider moving the method to one of the other types it is tightly coupled with. A class coupling above 40 indicates poor maintainability, a class coupling between 40 and 30 indicates moderate maintainability, and a class coupling below 30 indicates good maintainability.", + "id": "Method" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Visitors/SarifCurrentToVersionOneVisitor.cs", + "index": 137 + }, + "region": { + "startLine": 742 + } + }, + "logicalLocations": [ + { + "index": 700, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifCurrentToVersionOneVisitor.CreateResult(Microsoft.CodeAnalysis.Sarif.Result)" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "Method" + }, + "properties": { + "Category": "Microsoft.Maintainability", + "FixCategory": "Breaking" + } }, - "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.AnalyzeCommandBase`2.DetermineApplicabilityForTarget(System.Collections.Generic.IEnumerable`1>,!0,System.Collections.Generic.HashSet`1)": { - "name": "DetermineApplicabilityForTarget(System.Collections.Generic.IEnumerable`1>,!0,System.Collections.Generic.HashSet`1)", - "parentKey": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.AnalyzeCommandBase`2", - "kind": "member" + { + "ruleId": "CA1502", + "message": { + "text": "'SarifCurrentToVersionOneVisitor.CreateResult(Result)' has a cyclomatic complexity of 26. Rewrite or refactor the method to reduce complexity to 25." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Visitors/SarifCurrentToVersionOneVisitor.cs", + "index": 137 + }, + "region": { + "startLine": 742 + } + }, + "logicalLocations": [ + { + "index": 700, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifCurrentToVersionOneVisitor.CreateResult(Microsoft.CodeAnalysis.Sarif.Result)" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Maintainability", + "FixCategory": "NonBreaking" + } }, - "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.AnalyzeCommandBase`2.GenerateSensitiveTokensList()": { - "name": "GenerateSensitiveTokensList()", - "parentKey": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.AnalyzeCommandBase`2", - "kind": "member" + { + "ruleId": "CA1822", + "message": { + "text": "The 'this' parameter (or 'Me' in Visual Basic) of 'SarifCurrentToVersionOneVisitor.CreateRule(Rule)' is never used. Mark the member as static (or Shared in Visual Basic) or use 'this'/'Me' in the method body or at least one property accessor, if appropriate." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Visitors/SarifCurrentToVersionOneVisitor.cs", + "index": 137 + }, + "region": { + "startLine": 817 + } + }, + "logicalLocations": [ + { + "index": 701, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifCurrentToVersionOneVisitor.CreateRule(Microsoft.CodeAnalysis.Sarif.Rule)" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Performance", + "FixCategory": "NonBreaking" + } }, - "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.AnalyzeCommandBase`2.GetCurrentRunningOS()": { - "name": "GetCurrentRunningOS()", - "parentKey": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.AnalyzeCommandBase`2", - "kind": "member" + { + "ruleId": "CA1305", + "level": "error", + "message": { + "text": "Because the behavior of 'string.Format(string, object)' could vary based on the current user's locale settings, replace this call in 'SarifCurrentToVersionOneVisitor.CreateRun(Run)' with a call to 'string.Format(IFormatProvider, string, params object[])'. If the result of 'string.Format(IFormatProvider, string, params object[])' will be displayed to the user, specify 'CultureInfo.CurrentCulture' as the 'IFormatProvider' parameter. Otherwise, if the result will be stored and accessed by software, such as when it is persisted to disk or to a database, specify 'CultureInfo.InvariantCulture'.", + "id": "IFormatProviderAlternateString" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Visitors/SarifCurrentToVersionOneVisitor.cs", + "index": 137 + }, + "region": { + "startLine": 883 + } + }, + "logicalLocations": [ + { + "index": 702, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifCurrentToVersionOneVisitor.CreateRun(Microsoft.CodeAnalysis.Sarif.Run)" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "System.String.Format(System.String,System.Object)#IFormatProviderAlternateString" + }, + "properties": { + "Category": "Microsoft.Globalization", + "FixCategory": "NonBreaking" + } }, - "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.AnalyzeCommandBase`2.InitializeLogger(Microsoft.CodeAnalysis.Sarif.Driver.AnalyzeOptionsBase)": { - "name": "InitializeLogger(Microsoft.CodeAnalysis.Sarif.Driver.AnalyzeOptionsBase)", - "parentKey": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.AnalyzeCommandBase`2", - "kind": "member" - }, - "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.AnalyzeCommandBase`2.InitializeOutputFile(!1,!0,System.Collections.Generic.HashSet`1)": { - "name": "InitializeOutputFile(!1,!0,System.Collections.Generic.HashSet`1)", - "parentKey": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.AnalyzeCommandBase`2", - "kind": "member" - }, - "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.AnalyzeCommandBase`2.InitializeSkimmers(System.Collections.Generic.HashSet`1>,!0)": { - "name": "InitializeSkimmers(System.Collections.Generic.HashSet`1>,!0)", - "parentKey": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.AnalyzeCommandBase`2", - "kind": "member" - }, - "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.AnalyzeCommandBase`2.InvokeCatchingRelevantIOExceptions(System.Action,System.Action`1)": { - "name": "InvokeCatchingRelevantIOExceptions(System.Action,System.Action`1)", - "parentKey": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.AnalyzeCommandBase`2", - "kind": "member" - }, - "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.AnalyzeCommandBase`2.LogToolNotification(Microsoft.CodeAnalysis.Sarif.IAnalysisLogger,System.String,Microsoft.CodeAnalysis.Sarif.FailureLevel,System.Exception)": { - "name": "LogToolNotification(Microsoft.CodeAnalysis.Sarif.IAnalysisLogger,System.String,Microsoft.CodeAnalysis.Sarif.FailureLevel,System.Exception)", - "parentKey": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.AnalyzeCommandBase`2", - "kind": "member" + { + "ruleId": "CA1822", + "message": { + "text": "The 'this' parameter (or 'Me' in Visual Basic) of 'SarifCurrentToVersionOneVisitor.CreateTool(Tool)' is never used. Mark the member as static (or Shared in Visual Basic) or use 'this'/'Me' in the method body or at least one property accessor, if appropriate." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Visitors/SarifCurrentToVersionOneVisitor.cs", + "index": 137 + }, + "region": { + "startLine": 957 + } + }, + "logicalLocations": [ + { + "index": 703, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifCurrentToVersionOneVisitor.CreateTool(Microsoft.CodeAnalysis.Sarif.Tool)" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Performance", + "FixCategory": "NonBreaking" + } }, - "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.AnalyzeCommandBase`2.RaiseUnhandledExceptionInDriverCode": { - "name": "RaiseUnhandledExceptionInDriverCode", - "parentKey": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.AnalyzeCommandBase`2", - "kind": "member" + { + "ruleId": "CA1305", + "level": "error", + "message": { + "text": "Because the behavior of 'string.Format(string, object)' could vary based on the current user's locale settings, replace this call in 'SarifCurrentToVersionOneVisitor.GetContentStream(Uri, out Encoding)' with a call to 'string.Format(IFormatProvider, string, params object[])'. If the result of 'string.Format(IFormatProvider, string, params object[])' will be displayed to the user, specify 'CultureInfo.CurrentCulture' as the 'IFormatProvider' parameter. Otherwise, if the result will be stored and accessed by software, such as when it is persisted to disk or to a database, specify 'CultureInfo.InvariantCulture'.", + "id": "IFormatProviderAlternateString" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Visitors/SarifCurrentToVersionOneVisitor.cs", + "index": 137 + }, + "region": { + "startLine": 647 + } + }, + "logicalLocations": [ + { + "index": 704, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifCurrentToVersionOneVisitor.GetContentStream(System.Uri,System.Text.Encoding&)" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "System.String.Format(System.String,System.Object)#IFormatProviderAlternateString" + }, + "properties": { + "Category": "Microsoft.Globalization", + "FixCategory": "NonBreaking" + } }, - "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.AnalyzeCommandBase`2.Run(!1)": { - "name": "Run(!1)", - "parentKey": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.AnalyzeCommandBase`2", - "kind": "member" + { + "ruleId": "CA1305", + "level": "error", + "message": { + "text": "Because the behavior of 'string.Format(string, object)' could vary based on the current user's locale settings, replace this call in 'SarifCurrentToVersionOneVisitor.GetContentStream(Uri, out Encoding)' with a call to 'string.Format(IFormatProvider, string, params object[])'. If the result of 'string.Format(IFormatProvider, string, params object[])' will be displayed to the user, specify 'CultureInfo.CurrentCulture' as the 'IFormatProvider' parameter. Otherwise, if the result will be stored and accessed by software, such as when it is persisted to disk or to a database, specify 'CultureInfo.InvariantCulture'.", + "id": "IFormatProviderAlternateString" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Visitors/SarifCurrentToVersionOneVisitor.cs", + "index": 137 + }, + "region": { + "startLine": 654 + } + }, + "logicalLocations": [ + { + "index": 704, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifCurrentToVersionOneVisitor.GetContentStream(System.Uri,System.Text.Encoding&)" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "System.String.Format(System.String,System.Object)#IFormatProviderAlternateString" + }, + "properties": { + "Category": "Microsoft.Globalization", + "FixCategory": "NonBreaking" + } }, - "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.AnalyzeCommandBase`2.ThrowExitApplicationException(!0,Microsoft.CodeAnalysis.Sarif.Driver.ExitReason,System.Exception)": { - "name": "ThrowExitApplicationException(!0,Microsoft.CodeAnalysis.Sarif.Driver.ExitReason,System.Exception)", - "parentKey": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.AnalyzeCommandBase`2", - "kind": "member" + { + "ruleId": "CA1305", + "level": "error", + "message": { + "text": "Because the behavior of 'string.Format(string, object, object)' could vary based on the current user's locale settings, replace this call in 'SarifCurrentToVersionOneVisitor.GetContentStream(Uri, out Encoding)' with a call to 'string.Format(IFormatProvider, string, params object[])'. If the result of 'string.Format(IFormatProvider, string, params object[])' will be displayed to the user, specify 'CultureInfo.CurrentCulture' as the 'IFormatProvider' parameter. Otherwise, if the result will be stored and accessed by software, such as when it is persisted to disk or to a database, specify 'CultureInfo.InvariantCulture'.", + "id": "IFormatProviderAlternateString" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Visitors/SarifCurrentToVersionOneVisitor.cs", + "index": 137 + }, + "region": { + "startLine": 633 + } + }, + "logicalLocations": [ + { + "index": 704, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifCurrentToVersionOneVisitor.GetContentStream(System.Uri,System.Text.Encoding&)" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "System.String.Format(System.String,System.Object,System.Object)#IFormatProviderAlternateString" + }, + "properties": { + "Category": "Microsoft.Globalization", + "FixCategory": "NonBreaking" + } }, - "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.AnalyzeCommandBase`2.ValidateFile(!0,System.String,System.Nullable`1)": { - "name": "ValidateFile(!0,System.String,System.Nullable`1)", - "parentKey": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.AnalyzeCommandBase`2", - "kind": "member" + { + "ruleId": "CA1305", + "level": "error", + "message": { + "text": "Because the behavior of 'string.Format(string, object, object)' could vary based on the current user's locale settings, replace this call in 'SarifCurrentToVersionOneVisitor.GetContentStream(Uri, out Encoding)' with a call to 'string.Format(IFormatProvider, string, params object[])'. If the result of 'string.Format(IFormatProvider, string, params object[])' will be displayed to the user, specify 'CultureInfo.CurrentCulture' as the 'IFormatProvider' parameter. Otherwise, if the result will be stored and accessed by software, such as when it is persisted to disk or to a database, specify 'CultureInfo.InvariantCulture'.", + "id": "IFormatProviderAlternateString" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Visitors/SarifCurrentToVersionOneVisitor.cs", + "index": 137 + }, + "region": { + "startLine": 637 + } + }, + "logicalLocations": [ + { + "index": 704, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifCurrentToVersionOneVisitor.GetContentStream(System.Uri,System.Text.Encoding&)" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "System.String.Format(System.String,System.Object,System.Object)#IFormatProviderAlternateString" + }, + "properties": { + "Category": "Microsoft.Globalization", + "FixCategory": "NonBreaking" + } }, - "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.ArgumentSplitter": { - "name": "ArgumentSplitter", - "parentKey": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver", - "kind": "type" + { + "ruleId": "CA1305", + "level": "error", + "message": { + "text": "Because the behavior of 'string.Format(string, object, object)' could vary based on the current user's locale settings, replace this call in 'SarifCurrentToVersionOneVisitor.GetContentStream(Uri, out Encoding)' with a call to 'string.Format(IFormatProvider, string, params object[])'. If the result of 'string.Format(IFormatProvider, string, params object[])' will be displayed to the user, specify 'CultureInfo.CurrentCulture' as the 'IFormatProvider' parameter. Otherwise, if the result will be stored and accessed by software, such as when it is persisted to disk or to a database, specify 'CultureInfo.InvariantCulture'.", + "id": "IFormatProviderAlternateString" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Visitors/SarifCurrentToVersionOneVisitor.cs", + "index": 137 + }, + "region": { + "startLine": 641 + } + }, + "logicalLocations": [ + { + "index": 704, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifCurrentToVersionOneVisitor.GetContentStream(System.Uri,System.Text.Encoding&)" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "System.String.Format(System.String,System.Object,System.Object)#IFormatProviderAlternateString" + }, + "properties": { + "Category": "Microsoft.Globalization", + "FixCategory": "NonBreaking" + } }, - "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.ArgumentSplitter.CommandLineToArgvW(System.String)": { - "name": "CommandLineToArgvW(System.String)", - "parentKey": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.ArgumentSplitter", - "kind": "member" + { + "ruleId": "CA1822", + "message": { + "text": "The 'this' parameter (or 'Me' in Visual Basic) of 'SarifCurrentToVersionOneVisitor.GetFileEncoding(string)' is never used. Mark the member as static (or Shared in Visual Basic) or use 'this'/'Me' in the method body or at least one property accessor, if appropriate." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Visitors/SarifCurrentToVersionOneVisitor.cs", + "index": 137 + }, + "region": { + "startLine": 163 + } + }, + "logicalLocations": [ + { + "index": 705, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifCurrentToVersionOneVisitor.GetFileEncoding(System.String)" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Performance", + "FixCategory": "NonBreaking" + } }, - "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.DefaultDriverOptions": { - "name": "DefaultDriverOptions", - "parentKey": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver", - "kind": "type" + { + "ruleId": "CA1704", + "message": { + "text": "Correct the spelling of 'Sarif' in member name 'SarifCurrentToVersionOneVisitor.SarifLogVersionOne' or remove it entirely if it represents any sort of Hungarian notation.", + "id": "Member" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Visitors/SarifCurrentToVersionOneVisitor.cs", + "index": 137 + }, + "region": { + "startLine": 25 + } + }, + "logicalLocations": [ + { + "index": 706, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifCurrentToVersionOneVisitor.SarifLogVersionOne" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "Sarif#Member" + }, + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" + } }, - "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.DefaultDriverOptions.CreateRuleSpecificOption`1(Microsoft.CodeAnalysis.Sarif.IRule,Microsoft.CodeAnalysis.Sarif.PerLanguageOption`1)": { - "name": "CreateRuleSpecificOption`1(Microsoft.CodeAnalysis.Sarif.IRule,Microsoft.CodeAnalysis.Sarif.PerLanguageOption`1)", - "parentKey": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.DefaultDriverOptions", - "kind": "member" + { + "ruleId": "CA1725", + "level": "error", + "message": { + "text": "In member 'SarifCurrentToVersionOneVisitor.VisitSarifLog(SarifLog)', change parameter name 'v2SarifLog' to 'node' in order to match the identifier as it has been declared in 'SarifRewritingVisitor.VisitSarifLog(SarifLog)'." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Visitors/SarifCurrentToVersionOneVisitor.cs", + "index": 137 + }, + "region": { + "startLine": 28 + } + }, + "logicalLocations": [ + { + "index": 707, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifCurrentToVersionOneVisitor.VisitSarifLog(Microsoft.CodeAnalysis.Sarif.SarifLog)" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "0#" + }, + "properties": { + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" + } }, - "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.DefaultDriverOptions.Instance": { - "name": "Instance", - "parentKey": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.DefaultDriverOptions", - "kind": "member" - }, - "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.DisposableEnumerable`1": { - "name": "DisposableEnumerable`1", - "parentKey": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver", - "kind": "type" - }, - "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.DriverCommand`1": { - "name": "DriverCommand`1", - "parentKey": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver", - "kind": "type" - }, - "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.DriverCommand`1.FAILURE": { - "name": "FAILURE", - "parentKey": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.DriverCommand`1", - "kind": "member" - }, - "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.DriverCommand`1.SUCCESS": { - "name": "SUCCESS", - "parentKey": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.DriverCommand`1", - "kind": "member" - }, - "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.DriverExtensionMethods": { - "name": "DriverExtensionMethods", - "parentKey": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver", - "kind": "type" - }, - "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.DriverExtensionMethods.ConvertToLoggingOptions(Microsoft.CodeAnalysis.Sarif.Driver.AnalyzeOptionsBase)": { - "name": "ConvertToLoggingOptions(Microsoft.CodeAnalysis.Sarif.Driver.AnalyzeOptionsBase)", - "parentKey": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.DriverExtensionMethods", - "kind": "member" - }, - "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.DriverResources": { - "name": "DriverResources", - "parentKey": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver", - "kind": "type" - }, - "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.DriverResources..ctor()": { - "name": ".ctor()", - "parentKey": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.DriverResources", - "kind": "member" + { + "ruleId": "CA1062", + "message": { + "text": "In externally visible method 'SarifCurrentToVersionOneVisitor.VisitSarifLog(SarifLog)', validate parameter 'v2SarifLog' before using it." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Visitors/SarifCurrentToVersionOneVisitor.cs", + "index": 137 + }, + "region": { + "startLine": 33 + } + }, + "logicalLocations": [ + { + "index": 707, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifCurrentToVersionOneVisitor.VisitSarifLog(Microsoft.CodeAnalysis.Sarif.SarifLog)" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "0" + }, + "properties": { + "Category": "Microsoft.Design", + "FixCategory": "DependsOnFix" + } }, - "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.DriverUtilities": { - "name": "DriverUtilities", - "parentKey": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver", - "kind": "type" + { + "ruleId": "CA1704", + "message": { + "text": "Correct the spelling of 'Sarif' in type name 'SarifTransformerUtilities'.", + "id": "Type" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + } + }, + "logicalLocations": [ + { + "index": 708, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifTransformerUtilities" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "Sarif#Type" + }, + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" + } }, - "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.DriverUtilities.GetExports`1(System.Collections.Generic.IEnumerable`1)": { - "name": "GetExports`1(System.Collections.Generic.IEnumerable`1)", - "parentKey": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.DriverUtilities", - "kind": "member" + { + "ruleId": "CA2104", + "level": "error", + "message": { + "text": "Remove the read-only designation from 'SarifTransformerUtilities.AlgorithmKindNameMap' or change the field to one that is an immutable reference type. If the reference type 'Dictionary' is, in fact, immutable, exclude this message." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + } + }, + "logicalLocations": [ + { + "index": 709, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifTransformerUtilities.AlgorithmKindNameMap" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Security", + "FixCategory": "NonBreaking" + } }, - "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.EntryPointUtilities": { - "name": "EntryPointUtilities", - "parentKey": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver", - "kind": "type" + { + "ruleId": "CA2104", + "level": "error", + "message": { + "text": "Remove the read-only designation from 'SarifTransformerUtilities.AlgorithmNameKindMap' or change the field to one that is an immutable reference type. If the reference type 'Dictionary' is, in fact, immutable, exclude this message." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + } + }, + "logicalLocations": [ + { + "index": 710, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifTransformerUtilities.AlgorithmNameKindMap" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Security", + "FixCategory": "NonBreaking" + } }, - "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.EntryPointUtilities.CommandLineToArgvW(System.String,System.Int32&)": { - "name": "CommandLineToArgvW(System.String,System.Int32&)", - "parentKey": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.EntryPointUtilities", - "kind": "member" + { + "ruleId": "CA1704", + "message": { + "text": "In method 'SarifTransformerUtilities.CreateAnnotatedCodeLocationImportance(ThreadFlowLocationImportance)', correct the spelling of 'v' in parameter name 'v2ThreadFlowLocationImportance' or remove it entirely if it represents any sort of Hungarian notation.", + "id": "MemberParameter" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Visitors/SarifTransformerUtilities.cs", + "index": 138 + }, + "region": { + "startLine": 235 + } + }, + "logicalLocations": [ + { + "index": 711, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifTransformerUtilities.CreateAnnotatedCodeLocationImportance(Microsoft.CodeAnalysis.Sarif.ThreadFlowLocationImportance)" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "v#MemberParameter" + }, + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" + } }, - "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.EntryPointUtilities.GenerateArguments(System.String[],Microsoft.CodeAnalysis.Sarif.IFileSystem,Microsoft.CodeAnalysis.Sarif.Driver.IEnvironmentVariables)": { - "name": "GenerateArguments(System.String[],Microsoft.CodeAnalysis.Sarif.IFileSystem,Microsoft.CodeAnalysis.Sarif.Driver.IEnvironmentVariables)", - "parentKey": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.EntryPointUtilities", - "kind": "member" + { + "ruleId": "CA1704", + "message": { + "text": "In method 'SarifTransformerUtilities.CreateBaselineState(BaselineStateVersionOne)', correct the spelling of 'v' in parameter name 'v1BaselineState' or remove it entirely if it represents any sort of Hungarian notation.", + "id": "MemberParameter" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Visitors/SarifTransformerUtilities.cs", + "index": 138 + }, + "region": { + "startLine": 191 + } + }, + "logicalLocations": [ + { + "index": 712, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifTransformerUtilities.CreateBaselineState(Microsoft.CodeAnalysis.Sarif.VersionOne.BaselineStateVersionOne)" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "v#MemberParameter" + }, + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" + } }, - "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.EntryPointUtilities.LocalFree(System.IntPtr)": { - "name": "LocalFree(System.IntPtr)", - "parentKey": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.EntryPointUtilities", - "kind": "member" + { + "ruleId": "CA1704", + "message": { + "text": "In method 'SarifTransformerUtilities.CreateBaselineStateVersionOne(BaselineState)', correct the spelling of 'v' in parameter name 'v2BaselineState' or remove it entirely if it represents any sort of Hungarian notation.", + "id": "MemberParameter" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Visitors/SarifTransformerUtilities.cs", + "index": 138 + }, + "region": { + "startLine": 205 + } + }, + "logicalLocations": [ + { + "index": 713, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifTransformerUtilities.CreateBaselineStateVersionOne(Microsoft.CodeAnalysis.Sarif.BaselineState)" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "v#MemberParameter" + }, + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" + } }, - "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.EnumerableExtensions": { - "name": "EnumerableExtensions", - "parentKey": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver", - "kind": "type" + { + "ruleId": "CA1305", + "level": "error", + "message": { + "text": "Because the behavior of 'string.Format(string, object, object)' could vary based on the current user's locale settings, replace this call in 'SarifTransformerUtilities.CreateDisambiguatedName(string, int)' with a call to 'string.Format(IFormatProvider, string, params object[])'. If the result of 'string.Format(IFormatProvider, string, params object[])' will be displayed to the user, specify 'CultureInfo.CurrentCulture' as the 'IFormatProvider' parameter. Otherwise, if the result will be stored and accessed by software, such as when it is persisted to disk or to a database, specify 'CultureInfo.InvariantCulture'.", + "id": "IFormatProviderAlternateString" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Visitors/SarifTransformerUtilities.cs", + "index": 138 + }, + "region": { + "startLine": 67 + } + }, + "logicalLocations": [ + { + "index": 714, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifTransformerUtilities.CreateDisambiguatedName(System.String,System.Int32)" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "System.String.Format(System.String,System.Object,System.Object)#IFormatProviderAlternateString" + }, + "properties": { + "Category": "Microsoft.Globalization", + "FixCategory": "NonBreaking" + } }, - "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.EnumerableExtensions.LexicographicalCompare`1(System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IComparer`1)": { - "name": "LexicographicalCompare`1(System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IComparer`1)", - "parentKey": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.EnumerableExtensions", - "kind": "member" + { + "ruleId": "CA1704", + "message": { + "text": "In method 'SarifTransformerUtilities.CreateNotificationLevel(NotificationLevelVersionOne)', correct the spelling of 'v' in parameter name 'v1NotificationLevel' or remove it entirely if it represents any sort of Hungarian notation.", + "id": "MemberParameter" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Visitors/SarifTransformerUtilities.cs", + "index": 138 + }, + "region": { + "startLine": 71 + } + }, + "logicalLocations": [ + { + "index": 715, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifTransformerUtilities.CreateNotificationLevel(Microsoft.CodeAnalysis.Sarif.VersionOne.NotificationLevelVersionOne)" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "v#MemberParameter" + }, + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" + } }, - "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.EnumerableExtensions.RemoveIf`1(!!0[]&,System.Func`2)": { - "name": "RemoveIf`1(!!0[]&,System.Func`2)", - "parentKey": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.EnumerableExtensions", - "kind": "member" - }, - "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.ExceptionStrings": { - "name": "ExceptionStrings", - "parentKey": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver", - "kind": "type" - }, - "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.ExceptionStrings..ctor()": { - "name": ".ctor()", - "parentKey": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.ExceptionStrings", - "kind": "member" - }, - "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.ExitApplicationException`1": { - "name": "ExitApplicationException`1", - "parentKey": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver", - "kind": "type" - }, - "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.ExportConfigurationCommandBase": { - "name": "ExportConfigurationCommandBase", - "parentKey": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver", - "kind": "type" + { + "ruleId": "CA1704", + "message": { + "text": "In method 'SarifTransformerUtilities.CreateNotificationLevelVersionOne(FailureLevel)', correct the spelling of 'v' in parameter name 'v2NotificationLevel' or remove it entirely if it represents any sort of Hungarian notation.", + "id": "MemberParameter" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Visitors/SarifTransformerUtilities.cs", + "index": 138 + }, + "region": { + "startLine": 84 + } + }, + "logicalLocations": [ + { + "index": 716, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifTransformerUtilities.CreateNotificationLevelVersionOne(Microsoft.CodeAnalysis.Sarif.FailureLevel)" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "v#MemberParameter" + }, + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" + } }, - "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.ExportConfigurationCommandBase.Run(Microsoft.CodeAnalysis.Sarif.Driver.ExportConfigurationOptions)": { - "name": "Run(Microsoft.CodeAnalysis.Sarif.Driver.ExportConfigurationOptions)", - "parentKey": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.ExportConfigurationCommandBase", - "kind": "member" + { + "ruleId": "CA1704", + "message": { + "text": "In method 'SarifTransformerUtilities.CreateResultLevel(ResultLevelVersionOne)', correct the spelling of 'v' in parameter name 'v1ResultLevel' or remove it entirely if it represents any sort of Hungarian notation.", + "id": "MemberParameter" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Visitors/SarifTransformerUtilities.cs", + "index": 138 + }, + "region": { + "startLine": 112 + } + }, + "logicalLocations": [ + { + "index": 717, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifTransformerUtilities.CreateResultLevel(Microsoft.CodeAnalysis.Sarif.VersionOne.ResultLevelVersionOne)" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "v#MemberParameter" + }, + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" + } }, - "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.ExportRulesMetadataCommandBase": { - "name": "ExportRulesMetadataCommandBase", - "parentKey": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver", - "kind": "type" + { + "ruleId": "CA1704", + "message": { + "text": "In method 'SarifTransformerUtilities.CreateResultLevelVersionOne(ResultLevel)', correct the spelling of 'v' in parameter name 'v2ResultLevel' or remove it entirely if it represents any sort of Hungarian notation.", + "id": "MemberParameter" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Visitors/SarifTransformerUtilities.cs", + "index": 138 + }, + "region": { + "startLine": 146 + } + }, + "logicalLocations": [ + { + "index": 718, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifTransformerUtilities.CreateResultLevelVersionOne(Microsoft.CodeAnalysis.Sarif.ResultLevel)" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "v#MemberParameter" + }, + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" + } }, - "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.ExportRulesMetadataCommandBase.GetIdIntegerSuffix(System.String)": { - "name": "GetIdIntegerSuffix(System.String)", - "parentKey": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.ExportRulesMetadataCommandBase", - "kind": "member" + { + "ruleId": "CA1704", + "message": { + "text": "In method 'SarifTransformerUtilities.CreateResultLevelVersionOne(reportingConfigurationDefaultLevel)', correct the spelling of 'v' in parameter name 'v2DefaultLevel' or remove it entirely if it represents any sort of Hungarian notation.", + "id": "MemberParameter" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Visitors/SarifTransformerUtilities.cs", + "index": 138 + }, + "region": { + "startLine": 131 + } + }, + "logicalLocations": [ + { + "index": 719, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifTransformerUtilities.CreateResultLevelVersionOne(Microsoft.CodeAnalysis.Sarif.reportingConfigurationDefaultLevel)" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "v#MemberParameter" + }, + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" + } }, - "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.ExportRulesMetadataCommandBase.OutputSarifRulesMetada(System.String,System.Collections.Immutable.ImmutableArray`1)": { - "name": "OutputSarifRulesMetada(System.String,System.Collections.Immutable.ImmutableArray`1)", - "parentKey": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.ExportRulesMetadataCommandBase", - "kind": "member" + { + "ruleId": "CA1704", + "message": { + "text": "In method 'SarifTransformerUtilities.CreatereportingConfigurationDefaultLevel(ResultLevelVersionOne)', correct the spelling of 'v' in parameter name 'v1ResultLevel' or remove it entirely if it represents any sort of Hungarian notation.", + "id": "MemberParameter" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Visitors/SarifTransformerUtilities.cs", + "index": 138 + }, + "region": { + "startLine": 97 + } + }, + "logicalLocations": [ + { + "index": 720, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifTransformerUtilities.CreatereportingConfigurationDefaultLevel(Microsoft.CodeAnalysis.Sarif.VersionOne.ResultLevelVersionOne)" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "v#MemberParameter" + }, + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" + } }, - "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.ExportRulesMetadataCommandBase.Run(Microsoft.CodeAnalysis.Sarif.Driver.ExportRulesMetadataOptions)": { - "name": "Run(Microsoft.CodeAnalysis.Sarif.Driver.ExportRulesMetadataOptions)", - "parentKey": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.ExportRulesMetadataCommandBase", - "kind": "member" + { + "ruleId": "CA1704", + "message": { + "text": "In method 'SarifTransformerUtilities.CreateSuppressionStates(SuppressionStatesVersionOne)', correct the spelling of 'v' in parameter name 'v1SuppressionStates' or remove it entirely if it represents any sort of Hungarian notation.", + "id": "MemberParameter" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Visitors/SarifTransformerUtilities.cs", + "index": 138 + }, + "region": { + "startLine": 165 + } + }, + "logicalLocations": [ + { + "index": 721, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifTransformerUtilities.CreateSuppressionStates(Microsoft.CodeAnalysis.Sarif.VersionOne.SuppressionStatesVersionOne)" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "v#MemberParameter" + }, + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" + } }, - "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.FileSpecifier": { - "name": "FileSpecifier", - "parentKey": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver", - "kind": "type" + { + "ruleId": "CA1704", + "message": { + "text": "In method 'SarifTransformerUtilities.CreateSuppressionStatesVersionOne(SuppressionStates)', correct the spelling of 'v' in parameter name 'v2SuppressionStates' or remove it entirely if it represents any sort of Hungarian notation.", + "id": "MemberParameter" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Visitors/SarifTransformerUtilities.cs", + "index": 138 + }, + "region": { + "startLine": 178 + } + }, + "logicalLocations": [ + { + "index": 722, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifTransformerUtilities.CreateSuppressionStatesVersionOne(Microsoft.CodeAnalysis.Sarif.SuppressionStates)" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "v#MemberParameter" + }, + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" + } }, - "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.FileSpecifier..ctor(System.String,System.Boolean)": { - "name": ".ctor(System.String,System.Boolean)", - "parentKey": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.FileSpecifier", - "kind": "member" + { + "ruleId": "CA1704", + "message": { + "text": "In method 'SarifTransformerUtilities.CreateThreadFlowLocationImportance(AnnotatedCodeLocationImportanceVersionOne)', correct the spelling of 'v' in parameter name 'v1AnnotatedCodeLocationImportance' or remove it entirely if it represents any sort of Hungarian notation.", + "id": "MemberParameter" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Visitors/SarifTransformerUtilities.cs", + "index": 138 + }, + "region": { + "startLine": 220 + } + }, + "logicalLocations": [ + { + "index": 723, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifTransformerUtilities.CreateThreadFlowLocationImportance(Microsoft.CodeAnalysis.Sarif.VersionOne.AnnotatedCodeLocationImportanceVersionOne)" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "v#MemberParameter" + }, + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" + } }, - "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.ISkimmer`1": { - "name": "ISkimmer`1", - "parentKey": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver", - "kind": "type" + { + "ruleId": "CA2105", + "message": { + "text": "Either replace 'SarifTransformerUtilities.DefaultFullyQualifiedNameDelimiters' with a strongly typed collection that cannot be changed, or replace the public field with a method that returns a clone of a private array." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + } + }, + "logicalLocations": [ + { + "index": 724, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifTransformerUtilities.DefaultFullyQualifiedNameDelimiters" + } + ] + } + ], + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Security", + "FixCategory": "Breaking" + } }, - "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.ISkimmer`1.CanAnalyze(!0,System.String&)": { - "name": "CanAnalyze(!0,System.String&)", - "parentKey": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.ISkimmer`1", - "kind": "member" - }, - "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.MurmurHash": { - "name": "MurmurHash", - "parentKey": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver", - "kind": "type" - }, - "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.MurmurHash.AddRange(System.Collections.Generic.IEnumerable`1)": { - "name": "AddRange(System.Collections.Generic.IEnumerable`1)", - "parentKey": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.MurmurHash", - "kind": "member" + { + "ruleId": "CA2104", + "level": "error", + "message": { + "text": "Remove the read-only designation from 'SarifTransformerUtilities.JsonSettingsV1' or change the field to one that is an immutable reference type. If the reference type 'JsonSerializerSettings' is, in fact, immutable, exclude this message." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + } + }, + "logicalLocations": [ + { + "index": 725, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifTransformerUtilities.JsonSettingsV1" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Security", + "FixCategory": "NonBreaking" + } }, - "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.MurmurHash.AddRange(System.Collections.IEnumerable)": { - "name": "AddRange(System.Collections.IEnumerable)", - "parentKey": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.MurmurHash", - "kind": "member" + { + "ruleId": "CA2104", + "level": "error", + "message": { + "text": "Remove the read-only designation from 'SarifTransformerUtilities.JsonSettingsV1Compact' or change the field to one that is an immutable reference type. If the reference type 'JsonSerializerSettings' is, in fact, immutable, exclude this message." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + } + }, + "logicalLocations": [ + { + "index": 726, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifTransformerUtilities.JsonSettingsV1Compact" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Security", + "FixCategory": "NonBreaking" + } }, - "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.MurmurHash.AddRange(System.Int32[])": { - "name": "AddRange(System.Int32[])", - "parentKey": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.MurmurHash", - "kind": "member" + { + "ruleId": "CA2104", + "level": "error", + "message": { + "text": "Remove the read-only designation from 'SarifTransformerUtilities.JsonSettingsV2' or change the field to one that is an immutable reference type. If the reference type 'JsonSerializerSettings' is, in fact, immutable, exclude this message." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + } + }, + "logicalLocations": [ + { + "index": 727, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifTransformerUtilities.JsonSettingsV2" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Security", + "FixCategory": "NonBreaking" + } }, - "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.PlugInDriverCommand`1": { - "name": "PlugInDriverCommand`1", - "parentKey": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver", - "kind": "type" + { + "ruleId": "CA2104", + "level": "error", + "message": { + "text": "Remove the read-only designation from 'SarifTransformerUtilities.JsonSettingsV2Compact' or change the field to one that is an immutable reference type. If the reference type 'JsonSerializerSettings' is, in fact, immutable, exclude this message." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + } + }, + "logicalLocations": [ + { + "index": 728, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifTransformerUtilities.JsonSettingsV2Compact" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Security", + "FixCategory": "NonBreaking" + } }, - "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.PlugInDriverCommand`1.DefaultPlugInAssemblies": { - "name": "DefaultPlugInAssemblies", - "parentKey": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.PlugInDriverCommand`1", - "kind": "member" + { + "ruleId": "CA2104", + "level": "error", + "message": { + "text": "Remove the read-only designation from 'SarifTransformerUtilities.PropertyBagTransformerItemPrefixes' or change the field to one that is an immutable reference type. If the reference type 'Dictionary' is, in fact, immutable, exclude this message." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + } + }, + "logicalLocations": [ + { + "index": 729, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifTransformerUtilities.PropertyBagTransformerItemPrefixes" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Security", + "FixCategory": "NonBreaking" + } }, - "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.ReferenceEqualityComparer`1": { - "name": "ReferenceEqualityComparer`1", - "parentKey": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver", - "kind": "type" + { + "ruleId": "CA1704", + "message": { + "text": "Correct the spelling of 'Sarif' in type name 'SarifVersionOneToCurrentVisitor'.", + "id": "Type" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + } + }, + "logicalLocations": [ + { + "index": 730, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifVersionOneToCurrentVisitor" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "Sarif#Type" + }, + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" + } }, - "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.ReferenceEqualityComparer`1.Instance": { - "name": "Instance", - "parentKey": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.ReferenceEqualityComparer`1", - "kind": "member" + { + "ruleId": "CA1823", + "message": { + "text": "It appears that field 'SarifVersionOneToCurrentVisitor._currentV1Run' is never used or is only ever assigned to. Use this field or remove it." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + } + }, + "logicalLocations": [ + { + "index": 731, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifVersionOneToCurrentVisitor._currentV1Run" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Performance", + "FixCategory": "NonBreaking" + } }, - "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.RentalStream": { - "name": "RentalStream", - "parentKey": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver", - "kind": "type" + { + "ruleId": "CA1822", + "message": { + "text": "The 'this' parameter (or 'Me' in Visual Basic) of 'SarifVersionOneToCurrentVisitor.CreateFileLocation(Uri, string)' is never used. Mark the member as static (or Shared in Visual Basic) or use 'this'/'Me' in the method body or at least one property accessor, if appropriate." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Visitors/SarifVersionOneToCurrentVisitor.cs", + "index": 139 + }, + "region": { + "startLine": 194 + } + }, + "logicalLocations": [ + { + "index": 732, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifVersionOneToCurrentVisitor.CreateFileLocation(System.Uri,System.String)" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Performance", + "FixCategory": "NonBreaking" + } }, - "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.RentalStream.Dispose(System.Boolean)": { - "name": "Dispose(System.Boolean)", - "parentKey": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.RentalStream", - "kind": "member" + { + "ruleId": "CA1308", + "level": "error", + "message": { + "text": "In method 'SarifVersionOneToCurrentVisitor.CreateHash(HashVersionOne)', replace the call to 'string.ToLowerInvariant()' with String.ToUpperInvariant().", + "id": "ToUpperInvariant" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Visitors/SarifVersionOneToCurrentVisitor.cs", + "index": 139 + }, + "region": { + "startLine": 244 + } + }, + "logicalLocations": [ + { + "index": 733, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifVersionOneToCurrentVisitor.CreateHash(Microsoft.CodeAnalysis.Sarif.VersionOne.HashVersionOne)" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "ToUpperInvariant" + }, + "properties": { + "Category": "Microsoft.Globalization", + "FixCategory": "NonBreaking" + } }, - "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.RuleEnabledState": { - "name": "RuleEnabledState", - "parentKey": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver", - "kind": "type" + { + "ruleId": "CA1822", + "message": { + "text": "The 'this' parameter (or 'Me' in Visual Basic) of 'SarifVersionOneToCurrentVisitor.CreateLogicalLocation(LogicalLocationVersionOne)' is never used. Mark the member as static (or Shared in Visual Basic) or use 'this'/'Me' in the method body or at least one property accessor, if appropriate." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Visitors/SarifVersionOneToCurrentVisitor.cs", + "index": 139 + }, + "region": { + "startLine": 429 + } + }, + "logicalLocations": [ + { + "index": 734, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifVersionOneToCurrentVisitor.CreateLogicalLocation(Microsoft.CodeAnalysis.Sarif.VersionOne.LogicalLocationVersionOne)" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Performance", + "FixCategory": "NonBreaking" + } }, - "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.SkimmerBase`1": { - "name": "SkimmerBase`1", - "parentKey": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver", - "kind": "type" + { + "ruleId": "CA1822", + "message": { + "text": "The 'this' parameter (or 'Me' in Visual Basic) of 'SarifVersionOneToCurrentVisitor.CreateMessage(string)' is never used. Mark the member as static (or Shared in Visual Basic) or use 'this'/'Me' in the method body or at least one property accessor, if appropriate." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Visitors/SarifVersionOneToCurrentVisitor.cs", + "index": 139 + }, + "region": { + "startLine": 530 + } + }, + "logicalLocations": [ + { + "index": 735, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifVersionOneToCurrentVisitor.CreateMessage(System.String)" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Performance", + "FixCategory": "NonBreaking" + } }, - "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.StatisticsLogger": { - "name": "StatisticsLogger", - "parentKey": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver", - "kind": "type" - }, - "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.StatisticsLogger.AnalysisStopped(Microsoft.CodeAnalysis.Sarif.RuntimeConditions)": { - "name": "AnalysisStopped(Microsoft.CodeAnalysis.Sarif.RuntimeConditions)", - "parentKey": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.StatisticsLogger", - "kind": "member" - }, - "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.StatisticsLogger.Dispose()": { - "name": "Dispose()", - "parentKey": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.StatisticsLogger", - "kind": "member" + { + "ruleId": "CA1822", + "message": { + "text": "The 'this' parameter (or 'Me' in Visual Basic) of 'SarifVersionOneToCurrentVisitor.CreateRegion(RegionVersionOne)' is never used. Mark the member as static (or Shared in Visual Basic) or use 'this'/'Me' in the method body or at least one property accessor, if appropriate." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Visitors/SarifVersionOneToCurrentVisitor.cs", + "index": 139 + }, + "region": { + "startLine": 653 + } + }, + "logicalLocations": [ + { + "index": 736, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifVersionOneToCurrentVisitor.CreateRegion(Microsoft.CodeAnalysis.Sarif.VersionOne.RegionVersionOne)" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Performance", + "FixCategory": "NonBreaking" + } }, - "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.StatisticsLogger.Log(Microsoft.CodeAnalysis.Sarif.IRule,Microsoft.CodeAnalysis.Sarif.Result)": { - "name": "Log(Microsoft.CodeAnalysis.Sarif.IRule,Microsoft.CodeAnalysis.Sarif.Result)", - "parentKey": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.StatisticsLogger", - "kind": "member" + { + "ruleId": "CA1822", + "message": { + "text": "The 'this' parameter (or 'Me' in Visual Basic) of 'SarifVersionOneToCurrentVisitor.CreateRegion(int, int, int, int, int, int)' is never used. Mark the member as static (or Shared in Visual Basic) or use 'this'/'Me' in the method body or at least one property accessor, if appropriate." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Visitors/SarifVersionOneToCurrentVisitor.cs", + "index": 139 + }, + "region": { + "startLine": 697 + } + }, + "logicalLocations": [ + { + "index": 737, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifVersionOneToCurrentVisitor.CreateRegion(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32)" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Performance", + "FixCategory": "NonBreaking" + } }, - "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.StatisticsLogger.Log(Microsoft.CodeAnalysis.Sarif.ResultLevel,System.String)": { - "name": "Log(Microsoft.CodeAnalysis.Sarif.ResultLevel,System.String)", - "parentKey": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.StatisticsLogger", - "kind": "member" + { + "ruleId": "CA1502", + "message": { + "text": "'SarifVersionOneToCurrentVisitor.CreateResult(ResultVersionOne)' has a cyclomatic complexity of 28. Rewrite or refactor the method to reduce complexity to 25." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Visitors/SarifVersionOneToCurrentVisitor.cs", + "index": 139 + }, + "region": { + "startLine": 717 + } + }, + "logicalLocations": [ + { + "index": 738, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifVersionOneToCurrentVisitor.CreateResult(Microsoft.CodeAnalysis.Sarif.VersionOne.ResultVersionOne)" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Maintainability", + "FixCategory": "NonBreaking" + } }, - "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.StatisticsLogger.LogConfigurationNotification(Microsoft.CodeAnalysis.Sarif.Notification)": { - "name": "LogConfigurationNotification(Microsoft.CodeAnalysis.Sarif.Notification)", - "parentKey": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.StatisticsLogger", - "kind": "member" + { + "ruleId": "CA1305", + "level": "error", + "message": { + "text": "Because the behavior of 'string.Format(string, object)' could vary based on the current user's locale settings, replace this call in 'SarifVersionOneToCurrentVisitor.CreateRun(RunVersionOne)' with a call to 'string.Format(IFormatProvider, string, params object[])'. If the result of 'string.Format(IFormatProvider, string, params object[])' will be displayed to the user, specify 'CultureInfo.CurrentCulture' as the 'IFormatProvider' parameter. Otherwise, if the result will be stored and accessed by software, such as when it is persisted to disk or to a database, specify 'CultureInfo.InvariantCulture'.", + "id": "IFormatProviderAlternateString" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Visitors/SarifVersionOneToCurrentVisitor.cs", + "index": 139 + }, + "region": { + "startLine": 953 + } + }, + "logicalLocations": [ + { + "index": 739, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifVersionOneToCurrentVisitor.CreateRun(Microsoft.CodeAnalysis.Sarif.VersionOne.RunVersionOne)" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "System.String.Format(System.String,System.Object)#IFormatProviderAlternateString" + }, + "properties": { + "Category": "Microsoft.Globalization", + "FixCategory": "NonBreaking" + } }, - "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.TempFile": { - "name": "TempFile", - "parentKey": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver", - "kind": "type" + { + "ruleId": "CA1822", + "message": { + "text": "The 'this' parameter (or 'Me' in Visual Basic) of 'SarifVersionOneToCurrentVisitor.CreateTool(ToolVersionOne)' is never used. Mark the member as static (or Shared in Visual Basic) or use 'this'/'Me' in the method body or at least one property accessor, if appropriate." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Visitors/SarifVersionOneToCurrentVisitor.cs", + "index": 139 + }, + "region": { + "startLine": 1006 + } + }, + "logicalLocations": [ + { + "index": 740, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifVersionOneToCurrentVisitor.CreateTool(Microsoft.CodeAnalysis.Sarif.VersionOne.ToolVersionOne)" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Performance", + "FixCategory": "NonBreaking" + } }, - "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.TempFile..ctor(System.String)": { - "name": ".ctor(System.String)", - "parentKey": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.TempFile", - "kind": "member" + { + "ruleId": "CA1822", + "message": { + "text": "The 'this' parameter (or 'Me' in Visual Basic) of 'SarifVersionOneToCurrentVisitor.GetLogicalLocationName(string)' is never used. Mark the member as static (or Shared in Visual Basic) or use 'this'/'Me' in the method body or at least one property accessor, if appropriate." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Visitors/SarifVersionOneToCurrentVisitor.cs", + "index": 139 + }, + "region": { + "startLine": 496 + } + }, + "logicalLocations": [ + { + "index": 741, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifVersionOneToCurrentVisitor.GetLogicalLocationName(System.String)" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Performance", + "FixCategory": "NonBreaking" + } }, - "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.XmlWriterExtensions": { - "name": "XmlWriterExtensions", - "parentKey": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver", - "kind": "type" + { + "ruleId": "CA1704", + "message": { + "text": "Correct the spelling of 'Sarif' in member name 'SarifVersionOneToCurrentVisitor.SarifLog' or remove it entirely if it represents any sort of Hungarian notation.", + "id": "Member" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Visitors/SarifVersionOneToCurrentVisitor.cs", + "index": 139 + }, + "region": { + "startLine": 24 + } + }, + "logicalLocations": [ + { + "index": 742, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifVersionOneToCurrentVisitor.SarifLog" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "Sarif#Member" + }, + "properties": { + "Level": "CriticalWarning", + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" + } }, - "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.XmlWriterExtensions.WriteElementInt(System.Xml.XmlWriter,System.String,System.Int32)": { - "name": "WriteElementInt(System.Xml.XmlWriter,System.String,System.Int32)", - "parentKey": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.XmlWriterExtensions", - "kind": "member" + { + "ruleId": "CA1725", + "level": "error", + "message": { + "text": "In member 'SarifVersionOneToCurrentVisitor.VisitSarifLogVersionOne(SarifLogVersionOne)', change parameter name 'v1SarifLog' to 'node' in order to match the identifier as it has been declared in 'SarifRewritingVisitorVersionOne.VisitSarifLogVersionOne(SarifLogVersionOne)'." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Visitors/SarifVersionOneToCurrentVisitor.cs", + "index": 139 + }, + "region": { + "startLine": 27 + } + }, + "logicalLocations": [ + { + "index": 743, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifVersionOneToCurrentVisitor.VisitSarifLogVersionOne(Microsoft.CodeAnalysis.Sarif.VersionOne.SarifLogVersionOne)" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "0#" + }, + "properties": { + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" + } }, - "sarif.driver.dll!Microsoft.CodeAnalysisDriver": { - "name": "Microsoft.CodeAnalysisDriver", - "parentKey": "sarif.driver.dll", - "kind": "namespace" + { + "ruleId": "CA1062", + "message": { + "text": "In externally visible method 'SarifVersionOneToCurrentVisitor.VisitSarifLogVersionOne(SarifLogVersionOne)', validate parameter 'v1SarifLog' before using it." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Visitors/SarifVersionOneToCurrentVisitor.cs", + "index": 139 + }, + "region": { + "startLine": 32 + } + }, + "logicalLocations": [ + { + "index": 743, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifVersionOneToCurrentVisitor.VisitSarifLogVersionOne(Microsoft.CodeAnalysis.Sarif.VersionOne.SarifLogVersionOne)" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "0" + }, + "properties": { + "Category": "Microsoft.Design", + "FixCategory": "DependsOnFix" + } }, - "sarif.driver.dll!Microsoft.CodeAnalysisDriver.FileStreamExtensionMethods": { - "name": "FileStreamExtensionMethods", - "parentKey": "sarif.driver.dll!Microsoft.CodeAnalysisDriver", - "kind": "type" + { + "ruleId": "CA1064", + "message": { + "text": "Make exception class 'UnknownEncodingException' public." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + } + }, + "logicalLocations": [ + { + "index": 744, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.UnknownEncodingException" + } + ] + } + ], + "properties": { + "Category": "Microsoft.Design", + "FixCategory": "NonBreaking" + } }, - "sarif.driver.dll!Microsoft.CodeAnalysisDriver.FileStreamExtensionMethods.ReadString(System.IO.FileStream,System.Int32)": { - "name": "ReadString(System.IO.FileStream,System.Int32)", - "parentKey": "sarif.driver.dll!Microsoft.CodeAnalysisDriver.FileStreamExtensionMethods", - "kind": "member" - }, - "sarif.driver.dll!Microsoft.CodeAnalysisDriver.FileStreamExtensionMethods.ReadToArray(System.IO.FileStream,System.Int32)": { - "name": "ReadToArray(System.IO.FileStream,System.Int32)", - "parentKey": "sarif.driver.dll!Microsoft.CodeAnalysisDriver.FileStreamExtensionMethods", - "kind": "member" - }, - "sarif.multitool.exe": { - "kind": "module" - }, - "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif": { - "name": "Microsoft.CodeAnalysis.Sarif", - "parentKey": "sarif.multitool.exe", - "kind": "namespace" - }, - "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.MultitoolResources": { - "name": "MultitoolResources", - "parentKey": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif", - "kind": "type" - }, - "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.MultitoolResources..ctor()": { - "name": ".ctor()", - "parentKey": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.MultitoolResources", - "kind": "member" - }, - "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool": { - "name": "Microsoft.CodeAnalysis.Sarif.Multitool", - "parentKey": "sarif.multitool.exe", - "kind": "namespace" - }, - "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.AbsoluteUriCommand": { - "name": "AbsoluteUriCommand", - "parentKey": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool", - "kind": "type" - }, - "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.AbsoluteUriCommand.Run(Microsoft.CodeAnalysis.Sarif.Multitool.AbsoluteUriOptions)": { - "name": "Run(Microsoft.CodeAnalysis.Sarif.Multitool.AbsoluteUriOptions)", - "parentKey": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.AbsoluteUriCommand", - "kind": "member" - }, - "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.BaselineCommand": { - "name": "BaselineCommand", - "parentKey": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool", - "kind": "type" - }, - "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.BaselineCommand.Run(Microsoft.CodeAnalysis.Sarif.Multitool.BaselineOptions)": { - "name": "Run(Microsoft.CodeAnalysis.Sarif.Multitool.BaselineOptions)", - "parentKey": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.BaselineCommand", - "kind": "member" - }, - "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.ConvertCommand": { - "name": "ConvertCommand", - "parentKey": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool", - "kind": "type" - }, - "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.ConvertCommand.Run(Microsoft.CodeAnalysis.Sarif.Multitool.ConvertOptions)": { - "name": "Run(Microsoft.CodeAnalysis.Sarif.Multitool.ConvertOptions)", - "parentKey": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.ConvertCommand", - "kind": "member" - }, - "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.JTokenExtensions": { - "name": "JTokenExtensions", - "parentKey": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool", - "kind": "type" - }, - "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.JTokenExtensions.HasProperty(Newtonsoft.Json.Linq.JToken,System.String)": { - "name": "HasProperty(Newtonsoft.Json.Linq.JToken,System.String)", - "parentKey": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.JTokenExtensions", - "kind": "member" - }, - "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.MergeCommand": { - "name": "MergeCommand", - "parentKey": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool", - "kind": "type" - }, - "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.MergeCommand.Run(Microsoft.CodeAnalysis.Sarif.Multitool.MergeOptions)": { - "name": "Run(Microsoft.CodeAnalysis.Sarif.Multitool.MergeOptions)", - "parentKey": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.MergeCommand", - "kind": "member" - }, - "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.MultitoolOptionsBase": { - "name": "MultitoolOptionsBase", - "parentKey": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool", - "kind": "type" - }, - "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.RebaseUriCommand": { - "name": "RebaseUriCommand", - "parentKey": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool", - "kind": "type" - }, - "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.RebaseUriCommand.Run(Microsoft.CodeAnalysis.Sarif.Multitool.RebaseUriOptions)": { - "name": "Run(Microsoft.CodeAnalysis.Sarif.Multitool.RebaseUriOptions)", - "parentKey": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.RebaseUriCommand", - "kind": "member" - }, - "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.RewriteCommand": { - "name": "RewriteCommand", - "parentKey": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool", - "kind": "type" - }, - "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.RewriteCommand.Run(Microsoft.CodeAnalysis.Sarif.Multitool.RewriteOptions)": { - "name": "Run(Microsoft.CodeAnalysis.Sarif.Multitool.RewriteOptions)", - "parentKey": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.RewriteCommand", - "kind": "member" - }, - "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.SarifPropertyName": { - "name": "SarifPropertyName", - "parentKey": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool", - "kind": "type" - }, - "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.SarifPropertyName.Stderr": { - "name": "Stderr", - "parentKey": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.SarifPropertyName", - "kind": "member" - }, - "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.SarifPropertyName.Stdin": { - "name": "Stdin", - "parentKey": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.SarifPropertyName", - "kind": "member" - }, - "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.SarifPropertyName.Stdout": { - "name": "Stdout", - "parentKey": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.SarifPropertyName", - "kind": "member" - }, - "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.SarifPropertyName.StdoutStderr": { - "name": "StdoutStderr", - "parentKey": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.SarifPropertyName", - "kind": "member" - }, - "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.SarifValidationContext": { - "name": "SarifValidationContext", - "parentKey": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool", - "kind": "type" - }, - "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.SarifValidationContext.Dispose()": { - "name": "Dispose()", - "parentKey": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.SarifValidationContext", - "kind": "member" - }, - "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.SarifValidationContext.Policy": { - "name": "Policy", - "parentKey": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.SarifValidationContext", - "kind": "member" - }, - "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.TransformCommand": { - "name": "TransformCommand", - "parentKey": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool", - "kind": "type" - }, - "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.TransformCommand.Run(Microsoft.CodeAnalysis.Sarif.Multitool.TransformOptions)": { - "name": "Run(Microsoft.CodeAnalysis.Sarif.Multitool.TransformOptions)", - "parentKey": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.TransformCommand", - "kind": "member" - }, - "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.ValidateCommand": { - "name": "ValidateCommand", - "parentKey": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool", - "kind": "type" - }, - "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.ValidateCommand.AnalyzeTarget(System.Collections.Generic.IEnumerable`1>,Microsoft.CodeAnalysis.Sarif.Multitool.SarifValidationContext,System.Collections.Generic.HashSet`1)": { - "name": "AnalyzeTarget(System.Collections.Generic.IEnumerable`1>,Microsoft.CodeAnalysis.Sarif.Multitool.SarifValidationContext,System.Collections.Generic.HashSet`1)", - "parentKey": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.ValidateCommand", - "kind": "member" - }, - "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.ValidateCommand.CreateContext(Microsoft.CodeAnalysis.Sarif.Multitool.ValidateOptions,Microsoft.CodeAnalysis.Sarif.IAnalysisLogger,Microsoft.CodeAnalysis.Sarif.RuntimeConditions,System.String)": { - "name": "CreateContext(Microsoft.CodeAnalysis.Sarif.Multitool.ValidateOptions,Microsoft.CodeAnalysis.Sarif.IAnalysisLogger,Microsoft.CodeAnalysis.Sarif.RuntimeConditions,System.String)", - "parentKey": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.ValidateCommand", - "kind": "member" - }, - "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.ValidateCommand.Validate(System.String,System.String,Microsoft.CodeAnalysis.Sarif.IAnalysisLogger)": { - "name": "Validate(System.String,System.String,Microsoft.CodeAnalysis.Sarif.IAnalysisLogger)", - "parentKey": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.ValidateCommand", - "kind": "member" - }, - "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.ValidatorResources": { - "name": "ValidatorResources", - "parentKey": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool", - "kind": "type" - }, - "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.ValidatorResources..ctor()": { - "name": ".ctor()", - "parentKey": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.ValidatorResources", - "kind": "member" - }, - "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.Rules": { - "name": "Microsoft.CodeAnalysis.Sarif.Multitool.Rules", - "parentKey": "sarif.multitool.exe", - "kind": "namespace" - }, - "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.Rules.DoNotUseFriendlyNameAsRuleId": { - "name": "DoNotUseFriendlyNameAsRuleId", - "parentKey": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.Rules", - "kind": "type" - }, - "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.Rules.DoNotUseFriendlyNameAsRuleId.Analyze(Microsoft.CodeAnalysis.Sarif.Rule,System.String)": { - "name": "Analyze(Microsoft.CodeAnalysis.Sarif.Rule,System.String)", - "parentKey": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.Rules.DoNotUseFriendlyNameAsRuleId", - "kind": "member" - }, - "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.Rules.EndColumnMustNotBeLessThanStartColumn": { - "name": "EndColumnMustNotBeLessThanStartColumn", - "parentKey": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.Rules", - "kind": "type" - }, - "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.Rules.EndColumnMustNotBeLessThanStartColumn.Analyze(Microsoft.CodeAnalysis.Sarif.Region,System.String)": { - "name": "Analyze(Microsoft.CodeAnalysis.Sarif.Region,System.String)", - "parentKey": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.Rules.EndColumnMustNotBeLessThanStartColumn", - "kind": "member" - }, - "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.Rules.EndLineMustNotBeLessThanStartLine": { - "name": "EndLineMustNotBeLessThanStartLine", - "parentKey": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.Rules", - "kind": "type" - }, - "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.Rules.EndLineMustNotBeLessThanStartLine.Analyze(Microsoft.CodeAnalysis.Sarif.Region,System.String)": { - "name": "Analyze(Microsoft.CodeAnalysis.Sarif.Region,System.String)", - "parentKey": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.Rules.EndLineMustNotBeLessThanStartLine", - "kind": "member" - }, - "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.Rules.EndTimeMustBeAfterStartTime": { - "name": "EndTimeMustBeAfterStartTime", - "parentKey": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.Rules", - "kind": "type" - }, - "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.Rules.EndTimeMustBeAfterStartTime.Analyze(Microsoft.CodeAnalysis.Sarif.Invocation,System.String)": { - "name": "Analyze(Microsoft.CodeAnalysis.Sarif.Invocation,System.String)", - "parentKey": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.Rules.EndTimeMustBeAfterStartTime", - "kind": "member" - }, - "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.Rules.HashAlgorithmsMustBeUnique": { - "name": "HashAlgorithmsMustBeUnique", - "parentKey": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.Rules", - "kind": "type" - }, - "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.Rules.HashAlgorithmsMustBeUnique.Analyze(Microsoft.CodeAnalysis.Sarif.FileData,System.String,System.String)": { - "name": "Analyze(Microsoft.CodeAnalysis.Sarif.FileData,System.String,System.String)", - "parentKey": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.Rules.HashAlgorithmsMustBeUnique", - "kind": "member" - }, - "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.Rules.MessagesShouldEndWithPeriod": { - "name": "MessagesShouldEndWithPeriod", - "parentKey": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.Rules", - "kind": "type" - }, - "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.Rules.MessagesShouldEndWithPeriod.Analyze(Microsoft.CodeAnalysis.Sarif.Message,System.String)": { - "name": "Analyze(Microsoft.CodeAnalysis.Sarif.Message,System.String)", - "parentKey": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.Rules.MessagesShouldEndWithPeriod", - "kind": "member" - }, - "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.Rules.MessagesShouldEndWithPeriod.Analyze(Microsoft.CodeAnalysis.Sarif.Rule,System.String)": { - "name": "Analyze(Microsoft.CodeAnalysis.Sarif.Rule,System.String)", - "parentKey": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.Rules.MessagesShouldEndWithPeriod", - "kind": "member" - }, - "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.Rules.RuleResources": { - "name": "RuleResources", - "parentKey": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.Rules", - "kind": "type" - }, - "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.Rules.RuleResources..ctor()": { - "name": ".ctor()", - "parentKey": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.Rules.RuleResources", - "kind": "member" - }, - "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.Rules.SarifValidationSkimmerBase": { - "name": "SarifValidationSkimmerBase", - "parentKey": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.Rules", - "kind": "type" - }, - "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.Rules.SarifValidationSkimmerBase.LogResult(System.String,System.String,System.String[])": { - "name": "LogResult(System.String,System.String,System.String[])", - "parentKey": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.Rules.SarifValidationSkimmerBase", - "kind": "member" - }, - "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.Rules.StepValuesMustFormOneBasedSequence": { - "name": "StepValuesMustFormOneBasedSequence", - "parentKey": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.Rules", - "kind": "type" - }, - "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.Rules.StepValuesMustFormOneBasedSequence.Analyze(Microsoft.CodeAnalysis.Sarif.ThreadFlow,System.String)": { - "name": "Analyze(Microsoft.CodeAnalysis.Sarif.ThreadFlow,System.String)", - "parentKey": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.Rules.StepValuesMustFormOneBasedSequence", - "kind": "member" - }, - "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.Rules.StepValuesMustFormOneBasedSequence.FindFirstLocationWithMissingStep(Newtonsoft.Json.Linq.JObject[])": { - "name": "FindFirstLocationWithMissingStep(Newtonsoft.Json.Linq.JObject[])", - "parentKey": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.Rules.StepValuesMustFormOneBasedSequence", - "kind": "member" - }, - "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.Rules.UriBaseIdRequiresRelativeUri": { - "name": "UriBaseIdRequiresRelativeUri", - "parentKey": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.Rules", - "kind": "type" - }, - "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.Rules.UriBaseIdRequiresRelativeUri.Analyze(Microsoft.CodeAnalysis.Sarif.FileLocation,System.String)": { - "name": "Analyze(Microsoft.CodeAnalysis.Sarif.FileLocation,System.String)", - "parentKey": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.Rules.UriBaseIdRequiresRelativeUri", - "kind": "member" - }, - "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.Rules.UrisMustBeValid": { - "name": "UrisMustBeValid", - "parentKey": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.Rules", - "kind": "type" - }, - "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.Rules.UrisMustBeValid.Analyze(Microsoft.CodeAnalysis.Sarif.FileData,System.String,System.String)": { - "name": "Analyze(Microsoft.CodeAnalysis.Sarif.FileData,System.String,System.String)", - "parentKey": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.Rules.UrisMustBeValid", - "kind": "member" - }, - "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.Rules.UrisMustBeValid.Analyze(Microsoft.CodeAnalysis.Sarif.FileLocation,System.String)": { - "name": "Analyze(Microsoft.CodeAnalysis.Sarif.FileLocation,System.String)", - "parentKey": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.Rules.UrisMustBeValid", - "kind": "member" - }, - "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.Rules.UrisMustBeValid.Analyze(Microsoft.CodeAnalysis.Sarif.Result,System.String)": { - "name": "Analyze(Microsoft.CodeAnalysis.Sarif.Result,System.String)", - "parentKey": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.Rules.UrisMustBeValid", - "kind": "member" - }, - "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.Rules.UrisMustBeValid.Analyze(Microsoft.CodeAnalysis.Sarif.Rule,System.String)": { - "name": "Analyze(Microsoft.CodeAnalysis.Sarif.Rule,System.String)", - "parentKey": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.Rules.UrisMustBeValid", - "kind": "member" - }, - "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.Rules.UrisMustBeValid.Analyze(Microsoft.CodeAnalysis.Sarif.Run,System.String)": { - "name": "Analyze(Microsoft.CodeAnalysis.Sarif.Run,System.String)", - "parentKey": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.Rules.UrisMustBeValid", - "kind": "member" - }, - "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.Rules.UrisMustBeValid.Analyze(Microsoft.CodeAnalysis.Sarif.SarifLog,System.String)": { - "name": "Analyze(Microsoft.CodeAnalysis.Sarif.SarifLog,System.String)", - "parentKey": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.Rules.UrisMustBeValid", - "kind": "member" - }, - "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.Rules.UrisMustBeValid.Analyze(Microsoft.CodeAnalysis.Sarif.Tool,System.String)": { - "name": "Analyze(Microsoft.CodeAnalysis.Sarif.Tool,System.String)", - "parentKey": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.Rules.UrisMustBeValid", - "kind": "member" - }, - "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.Rules.UrisMustBeValid.Analyze(Microsoft.CodeAnalysis.Sarif.VersionControlDetails,System.String)": { - "name": "Analyze(Microsoft.CodeAnalysis.Sarif.VersionControlDetails,System.String)", - "parentKey": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.Rules.UrisMustBeValid", - "kind": "member" - }, - "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.Rules.UseAbsolutePathsForNestedFileUriFragments": { - "name": "UseAbsolutePathsForNestedFileUriFragments", - "parentKey": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.Rules", - "kind": "type" - }, - "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.Rules.UseAbsolutePathsForNestedFileUriFragments.Analyze(Microsoft.CodeAnalysis.Sarif.FileLocation,System.String)": { - "name": "Analyze(Microsoft.CodeAnalysis.Sarif.FileLocation,System.String)", - "parentKey": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.Rules.UseAbsolutePathsForNestedFileUriFragments", - "kind": "member" - }, - "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.Rules.UseAbsolutePathsForNestedFileUriFragments.UriHasNonAbsoluteFragment(System.Uri)": { - "name": "UriHasNonAbsoluteFragment(System.Uri)", - "parentKey": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.Rules.UseAbsolutePathsForNestedFileUriFragments", - "kind": "member" - } - }, - "results": [ { - "ruleId": "CA1704", - "level": "warning", + "ruleId": "CA1032", + "level": "error", "message": { - "text": "Correct the spelling of 'Sarif' in namespace name 'Microsoft.CodeAnalysis.Sarif'.", - "messageId": "Namespace" + "text": "Add the following constructor to 'UnknownEncodingException': protected UnknownEncodingException(SerializationInfo, StreamingContext).", + "id": "MissingConstructor" }, "locations": [ { - "fullyQualifiedLogicalName": "Microsoft.CodeAnalysis.Sarif" + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + } + }, + "logicalLocations": [ + { + "index": 744, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.UnknownEncodingException" + } + ] } ], "partialFingerprints": { - "UniqueId": "Sarif#Namespace" + "UniqueId": "MissingConstructor" }, "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" + "Category": "Microsoft.Design", + "FixCategory": "NonBreaking" } }, { - "ruleId": "CA1020", - "level": "warning", + "ruleId": "CA2237", + "level": "error", "message": { - "text": "Consider merging the types defined in 'Microsoft.CodeAnalysis.Sarif.Baseline' with another namespace." + "text": "Add [Serializable] to 'UnknownEncodingException' as this type implements ISerializable." }, "locations": [ { - "fullyQualifiedLogicalName": "Microsoft.CodeAnalysis.Sarif.Baseline" + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + } + }, + "logicalLocations": [ + { + "index": 744, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.UnknownEncodingException" + } + ] } ], "properties": { - "Category": "Microsoft.Design", - "FixCategory": "Breaking" + "Category": "Microsoft.Usage", + "FixCategory": "NonBreaking" } }, { "ruleId": "CA1704", - "level": "warning", "message": { - "text": "Correct the spelling of 'Sarif' in namespace name 'Microsoft.CodeAnalysis.Sarif.Baseline'.", - "messageId": "Namespace" + "text": "Correct the spelling of 'Cpp' in member name 'MimeType.Cpp' or remove it entirely if it represents any sort of Hungarian notation.", + "id": "Member" }, "locations": [ { - "fullyQualifiedLogicalName": "Microsoft.CodeAnalysis.Sarif.Baseline" - } - ], - "partialFingerprints": { - "UniqueId": "Sarif#Namespace" + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + } + }, + "logicalLocations": [ + { + "index": 747, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Writers.MimeType.Cpp" + } + ] + } + ], + "partialFingerprints": { + "UniqueId": "Cpp#Member" }, "properties": { "Level": "CriticalWarning", @@ -8076,35 +24839,65 @@ } }, { - "ruleId": "CA1020", - "level": "warning", + "ruleId": "CA1057", + "level": "error", "message": { - "text": "Consider merging the types defined in 'Microsoft.CodeAnalysis.Sarif.Baseline.DefaultBaseline' with another namespace." + "text": "Refactor 'MimeType.DetermineFromFileExtension(string)' so that it builds a System.Uri object from 'path', and then calls 'MimeType.DetermineFromFileExtension(Uri)'." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 }, "locations": [ { - "fullyQualifiedLogicalName": "Microsoft.CodeAnalysis.Sarif.Baseline.DefaultBaseline" + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Writers/MimeType.cs", + "index": 140 + }, + "region": { + "startLine": 17 + } + }, + "logicalLocations": [ + { + "index": 748, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Writers.MimeType.DetermineFromFileExtension(System.String)" + } + ] } ], "properties": { "Category": "Microsoft.Design", - "FixCategory": "Breaking" + "FixCategory": "NonBreaking" } }, { "ruleId": "CA1704", - "level": "warning", "message": { - "text": "Correct the spelling of 'Sarif' in namespace name 'Microsoft.CodeAnalysis.Sarif.Baseline.DefaultBaseline'.", - "messageId": "Namespace" + "text": "Correct the spelling of 'Sarif' in member name 'MimeType.Sarif' or remove it entirely if it represents any sort of Hungarian notation.", + "id": "Member" }, "locations": [ { - "fullyQualifiedLogicalName": "Microsoft.CodeAnalysis.Sarif.Baseline.DefaultBaseline" + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + } + }, + "logicalLocations": [ + { + "index": 749, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Writers.MimeType.Sarif" + } + ] } ], "partialFingerprints": { - "UniqueId": "Sarif#Namespace" + "UniqueId": "Sarif#Member" }, "properties": { "Level": "CriticalWarning", @@ -8113,76 +24906,140 @@ } }, { - "ruleId": "CA1704", - "level": "warning", + "ruleId": "CA2208", + "level": "error", "message": { - "text": "Correct the spelling of 'Sarif' in namespace name 'Microsoft.CodeAnalysis.Sarif.Converters'.", - "messageId": "Namespace" + "text": "Method 'ResultLogJsonWriter.Initialize(Run)' passes 'Tool' as the 'paramName' argument to a 'ArgumentNullException' constructor. Replace this argument with one of the method's parameter names. Note that the provided parameter name should have the exact casing as declared on the method.", + "id": "IncorrectParameterName" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 }, "locations": [ { - "fullyQualifiedLogicalName": "Microsoft.CodeAnalysis.Sarif.Converters" + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Writers/ResultLogJsonWriter.cs", + "index": 141 + }, + "region": { + "startLine": 64 + } + }, + "logicalLocations": [ + { + "index": 751, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Writers.ResultLogJsonWriter.Initialize(Microsoft.CodeAnalysis.Sarif.Run)" + } + ] } ], "partialFingerprints": { - "UniqueId": "Sarif#Namespace" + "UniqueId": "IncorrectParameterName" }, "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" + "Level": "CriticalError", + "Category": "Microsoft.Usage", + "FixCategory": "NonBreaking" } }, { - "ruleId": "CA1709", - "level": "error", + "ruleId": "CA1704", "message": { - "text": "Correct the casing of 'PRE' in namespace name 'Microsoft.CodeAnalysis.Sarif.Converters.PREFastObjectModel' by changing it to 'Pre'.", - "messageId": "Namespace" + "text": "Correct the spelling of 'Sarif' in type name 'SarifLogger'.", + "id": "Type" }, "locations": [ { - "fullyQualifiedLogicalName": "Microsoft.CodeAnalysis.Sarif.Converters.PREFastObjectModel" + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + } + }, + "logicalLocations": [ + { + "index": 752, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Writers.SarifLogger" + } + ] } ], "partialFingerprints": { - "UniqueId": "PRE#Namespace" + "UniqueId": "Sarif#Type" }, "properties": { + "Level": "CriticalWarning", "Category": "Microsoft.Naming", "FixCategory": "Breaking" } }, { - "ruleId": "CA1704", - "level": "warning", + "ruleId": "CA1026", + "level": "error", "message": { - "text": "Correct the spelling of 'Sarif' in namespace name 'Microsoft.CodeAnalysis.Sarif.Converters.PREFastObjectModel'.", - "messageId": "Namespace" + "text": "Replace method 'SarifLogger.SarifLogger(TextWriter, LoggingOptions, OptionallyEmittedData, Tool, Run, IEnumerable, IEnumerable, IEnumerable, string)' with an overload that supplies all default arguments." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 }, "locations": [ { - "fullyQualifiedLogicalName": "Microsoft.CodeAnalysis.Sarif.Converters.PREFastObjectModel" + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Writers/SarifLogger.cs", + "index": 142 + }, + "region": { + "startLine": 124 + } + }, + "logicalLocations": [ + { + "index": 753, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Writers.SarifLogger..ctor(System.IO.TextWriter,Microsoft.CodeAnalysis.Sarif.Writers.LoggingOptions,Microsoft.CodeAnalysis.Sarif.OptionallyEmittedData,Microsoft.CodeAnalysis.Sarif.Tool,Microsoft.CodeAnalysis.Sarif.Run,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,System.String)" + } + ] } ], - "partialFingerprints": { - "UniqueId": "Sarif#Namespace" - }, "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Naming", + "Category": "Microsoft.Design", "FixCategory": "Breaking" } }, { - "ruleId": "CA1020", - "level": "warning", + "ruleId": "CA1026", + "level": "error", "message": { - "text": "Consider merging the types defined in 'Microsoft.CodeAnalysis.Sarif.Converters.PylintObjectModel' with another namespace." + "text": "Replace method 'SarifLogger.SarifLogger(string, LoggingOptions, OptionallyEmittedData, Tool, Run, IEnumerable, IEnumerable, IEnumerable, string)' with an overload that supplies all default arguments." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 }, "locations": [ { - "fullyQualifiedLogicalName": "Microsoft.CodeAnalysis.Sarif.Converters.PylintObjectModel" + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Writers/SarifLogger.cs", + "index": 142 + }, + "region": { + "startLine": 105 + } + }, + "logicalLocations": [ + { + "index": 754, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Writers.SarifLogger..ctor(System.String,Microsoft.CodeAnalysis.Sarif.Writers.LoggingOptions,Microsoft.CodeAnalysis.Sarif.OptionallyEmittedData,Microsoft.CodeAnalysis.Sarif.Tool,Microsoft.CodeAnalysis.Sarif.Run,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,System.String)" + } + ] } ], "properties": { @@ -8191,119 +25048,203 @@ } }, { - "ruleId": "CA1704", - "level": "warning", + "ruleId": "CA2000", "message": { - "text": "Correct the spelling of 'Pylint' in namespace name 'Microsoft.CodeAnalysis.Sarif.Converters.PylintObjectModel'.", - "messageId": "Namespace" + "text": "In method 'SarifLogger.SarifLogger(string, LoggingOptions, OptionallyEmittedData, Tool, Run, IEnumerable, IEnumerable, IEnumerable, string)', call System.IDisposable.Dispose on object 'new FileStream(outputFilePath, FileMode.Create, FileAccess.Write, FileShare.None)' before all references to it are out of scope.", + "id": "NonExceptionEdge" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 }, "locations": [ { - "fullyQualifiedLogicalName": "Microsoft.CodeAnalysis.Sarif.Converters.PylintObjectModel" + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Writers/SarifLogger.cs", + "index": 142 + }, + "region": { + "startLine": 105 + } + }, + "logicalLocations": [ + { + "index": 754, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Writers.SarifLogger..ctor(System.String,Microsoft.CodeAnalysis.Sarif.Writers.LoggingOptions,Microsoft.CodeAnalysis.Sarif.OptionallyEmittedData,Microsoft.CodeAnalysis.Sarif.Tool,Microsoft.CodeAnalysis.Sarif.Run,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,System.String)" + } + ] } ], "partialFingerprints": { - "UniqueId": "Pylint#Namespace" + "UniqueId": "NonExceptionEdge" }, "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" + "Category": "Microsoft.Reliability", + "FixCategory": "DependsOnFix" } }, { - "ruleId": "CA1704", - "level": "warning", + "ruleId": "CA1801", "message": { - "text": "Correct the spelling of 'Sarif' in namespace name 'Microsoft.CodeAnalysis.Sarif.Converters.PylintObjectModel'.", - "messageId": "Namespace" + "text": "Parameter 'analysisTargets' of 'SarifLogger.SarifLogger(string, LoggingOptions, OptionallyEmittedData, Tool, Run, IEnumerable, IEnumerable, IEnumerable, string)' is never used. Remove the parameter or use it in the method body." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 }, "locations": [ { - "fullyQualifiedLogicalName": "Microsoft.CodeAnalysis.Sarif.Converters.PylintObjectModel" + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Writers/SarifLogger.cs", + "index": 142 + }, + "region": { + "startLine": 105 + } + }, + "logicalLocations": [ + { + "index": 754, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Writers.SarifLogger..ctor(System.String,Microsoft.CodeAnalysis.Sarif.Writers.LoggingOptions,Microsoft.CodeAnalysis.Sarif.OptionallyEmittedData,Microsoft.CodeAnalysis.Sarif.Tool,Microsoft.CodeAnalysis.Sarif.Run,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,System.String)" + } + ] } ], "partialFingerprints": { - "UniqueId": "Sarif#Namespace" + "UniqueId": "analysisTargets" }, "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" + "Category": "Microsoft.Usage", + "FixCategory": "DependsOnFix" } }, { - "ruleId": "CA1020", - "level": "warning", + "ruleId": "CA1801", "message": { - "text": "Consider merging the types defined in 'Microsoft.CodeAnalysis.Sarif.Converters.TSLintObjectModel' with another namespace." + "text": "Parameter 'defaultFileEncoding' of 'SarifLogger.SarifLogger(string, LoggingOptions, OptionallyEmittedData, Tool, Run, IEnumerable, IEnumerable, IEnumerable, string)' is never used. Remove the parameter or use it in the method body." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 }, "locations": [ { - "fullyQualifiedLogicalName": "Microsoft.CodeAnalysis.Sarif.Converters.TSLintObjectModel" + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Writers/SarifLogger.cs", + "index": 142 + }, + "region": { + "startLine": 105 + } + }, + "logicalLocations": [ + { + "index": 754, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Writers.SarifLogger..ctor(System.String,Microsoft.CodeAnalysis.Sarif.Writers.LoggingOptions,Microsoft.CodeAnalysis.Sarif.OptionallyEmittedData,Microsoft.CodeAnalysis.Sarif.Tool,Microsoft.CodeAnalysis.Sarif.Run,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,System.String)" + } + ] } ], + "partialFingerprints": { + "UniqueId": "defaultFileEncoding" + }, "properties": { - "Category": "Microsoft.Design", - "FixCategory": "Breaking" + "Category": "Microsoft.Usage", + "FixCategory": "DependsOnFix" } }, { - "ruleId": "CA1704", - "level": "warning", + "ruleId": "CA1502", "message": { - "text": "Correct the spelling of 'Sarif' in namespace name 'Microsoft.CodeAnalysis.Sarif.Converters.TSLintObjectModel'.", - "messageId": "Namespace" + "text": "'SarifLogger.CaptureFilesInResult(Result)' has a cyclomatic complexity of 31. Rewrite or refactor the method to reduce complexity to 25." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 }, "locations": [ { - "fullyQualifiedLogicalName": "Microsoft.CodeAnalysis.Sarif.Converters.TSLintObjectModel" + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Writers/SarifLogger.cs", + "index": 142 + }, + "region": { + "startLine": 289 + } + }, + "logicalLocations": [ + { + "index": 755, + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Writers.SarifLogger.CaptureFilesInResult(Microsoft.CodeAnalysis.Sarif.Result)" + } + ] } ], - "partialFingerprints": { - "UniqueId": "Sarif#Namespace" - }, "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" + "Category": "Microsoft.Maintainability", + "FixCategory": "NonBreaking" } }, { - "ruleId": "CA1704", - "level": "warning", + "ruleId": "CA2243", "message": { - "text": "Correct the spelling of 'Sarif' in namespace name 'Microsoft.CodeAnalysis.Sarif.Driver'.", - "messageId": "Namespace" + "text": "In the constructor of 'AssemblyInformationalVersionAttribute', change the value of argument 'informationalVersion', which is currently \"2.0.0-csd.1.0.1\", to something that can be correctly parsed as 'Version'." }, "locations": [ { - "fullyQualifiedLogicalName": "Microsoft.CodeAnalysis.Sarif.Driver" + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", + "uriBaseId": "$(ProjectDir)", + "index": 143 + } + }, + "logicalLocations": [ + { + "index": 756, + "fullyQualifiedName": "sarif.driver.dll" + } + ] } ], - "partialFingerprints": { - "UniqueId": "Sarif#Namespace" - }, "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" + "Category": "Microsoft.Usage", + "FixCategory": "NonBreaking" } }, { "ruleId": "CA1704", - "level": "warning", "message": { - "text": "Correct the spelling of 'Multitool' in namespace name 'Microsoft.CodeAnalysis.Sarif.Multitool'.", - "messageId": "Namespace" + "text": "Correct the spelling of 'Sarif' in assembly name 'Sarif.Driver.dll'.", + "id": "Assembly" }, "locations": [ { - "fullyQualifiedLogicalName": "Microsoft.CodeAnalysis.Sarif.Multitool" + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", + "uriBaseId": "$(ProjectDir)", + "index": 143 + } + }, + "logicalLocations": [ + { + "index": 756, + "fullyQualifiedName": "sarif.driver.dll" + } + ] } ], "partialFingerprints": { - "UniqueId": "Multitool#Namespace" + "UniqueId": "Sarif#Assembly" }, "properties": { "Level": "CriticalWarning", @@ -8312,614 +25253,952 @@ } }, { - "ruleId": "CA1704", - "level": "warning", + "ruleId": "CA1014", + "level": "error", "message": { - "text": "Correct the spelling of 'Sarif' in namespace name 'Microsoft.CodeAnalysis.Sarif.Multitool'.", - "messageId": "Namespace" + "text": "Mark 'Sarif.Driver.dll' with CLSCompliant(true) because it exposes externally visible types." }, "locations": [ { - "fullyQualifiedLogicalName": "Microsoft.CodeAnalysis.Sarif.Multitool" + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", + "uriBaseId": "$(ProjectDir)", + "index": 143 + } + }, + "logicalLocations": [ + { + "index": 756, + "fullyQualifiedName": "sarif.driver.dll" + } + ] } ], - "partialFingerprints": { - "UniqueId": "Sarif#Namespace" - }, "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" + "Category": "Microsoft.Design", + "FixCategory": "NonBreaking" } }, { - "ruleId": "CA1704", - "level": "warning", + "ruleId": "CA1824", "message": { - "text": "Correct the spelling of 'Multitool' in namespace name 'Microsoft.CodeAnalysis.Sarif.Multitool.Rules'.", - "messageId": "Namespace" + "text": "Because assembly 'Sarif.Driver.dll' contains a ResX-based resource file, mark it with the NeutralResourcesLanguage attribute, specifying the language of the resources within the assembly. This could improve lookup performance the first time a resource is retrieved." }, "locations": [ { - "fullyQualifiedLogicalName": "Microsoft.CodeAnalysis.Sarif.Multitool.Rules" + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", + "uriBaseId": "$(ProjectDir)", + "index": 143 + } + }, + "logicalLocations": [ + { + "index": 756, + "fullyQualifiedName": "sarif.driver.dll" + } + ] } ], - "partialFingerprints": { - "UniqueId": "Multitool#Namespace" - }, "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" + "Category": "Microsoft.Performance", + "FixCategory": "NonBreaking" } }, { - "ruleId": "CA1704", - "level": "warning", + "ruleId": "CA1063", + "level": "error", "message": { - "text": "Correct the spelling of 'Sarif' in namespace name 'Microsoft.CodeAnalysis.Sarif.Multitool.Rules'.", - "messageId": "Namespace" + "text": "Provide an overridable implementation of Dispose(bool) on 'AggregatingLogger' or mark the type as sealed. A call to Dispose(false) should only clean up native resources. A call to Dispose(true) should clean up both managed and native resources.", + "id": "ProvideDisposeBool" }, "locations": [ { - "fullyQualifiedLogicalName": "Microsoft.CodeAnalysis.Sarif.Multitool.Rules" + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", + "uriBaseId": "$(ProjectDir)", + "index": 143 + } + }, + "logicalLocations": [ + { + "index": 758, + "fullyQualifiedName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.AggregatingLogger" + } + ] } ], "partialFingerprints": { - "UniqueId": "Sarif#Namespace" + "UniqueId": "ProvideDisposeBool" }, "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Naming", + "Category": "Microsoft.Design", "FixCategory": "Breaking" } }, { - "ruleId": "CA1704", - "level": "warning", + "ruleId": "CA1816", "message": { - "text": "Correct the spelling of 'Sarif' in namespace name 'Microsoft.CodeAnalysis.Sarif.Processors'.", - "messageId": "Namespace" - }, - "locations": [ - { - "fullyQualifiedLogicalName": "Microsoft.CodeAnalysis.Sarif.Processors" - } - ], - "partialFingerprints": { - "UniqueId": "Sarif#Namespace" + "text": "Change 'AggregatingLogger.Dispose()' to call 'GC.SuppressFinalize(object)'. This will prevent derived types that introduce a finalizer from needing to re-implement 'IDisposable' to call it.", + "id": "NotCalled" }, - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" - } - }, - { - "ruleId": "CA1704", - "level": "warning", - "message": { - "text": "Correct the spelling of 'Sarif' in namespace name 'Microsoft.CodeAnalysis.Sarif.Readers'.", - "messageId": "Namespace" + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", + "uriBaseId": "$(ProjectDir)", + "index": 143 }, "locations": [ { - "fullyQualifiedLogicalName": "Microsoft.CodeAnalysis.Sarif.Readers" + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Driver/Sdk/AggregatingLogger.cs", + "index": 144 + }, + "region": { + "startLine": 25 + } + }, + "logicalLocations": [ + { + "index": 759, + "fullyQualifiedName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.AggregatingLogger.Dispose()" + } + ] } ], "partialFingerprints": { - "UniqueId": "Sarif#Namespace" + "UniqueId": "NotCalled" }, "properties": { "Level": "CriticalWarning", - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" + "Category": "Microsoft.Usage", + "FixCategory": "NonBreaking" } }, { - "ruleId": "CA1704", - "level": "warning", + "ruleId": "CA1063", + "level": "error", "message": { - "text": "Correct the spelling of 'Sarif' in namespace name 'Microsoft.CodeAnalysis.Sarif.VersionOne'.", - "messageId": "Namespace" + "text": "Modify 'AggregatingLogger.Dispose()' so that it calls Dispose(true), then calls GC.SuppressFinalize on the current object instance ('this' or 'Me' in Visual Basic), and then returns.", + "id": "DisposeImplementation" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", + "uriBaseId": "$(ProjectDir)", + "index": 143 }, "locations": [ { - "fullyQualifiedLogicalName": "Microsoft.CodeAnalysis.Sarif.VersionOne" + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Driver/Sdk/AggregatingLogger.cs", + "index": 144 + }, + "region": { + "startLine": 25 + } + }, + "logicalLocations": [ + { + "index": 759, + "fullyQualifiedName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.AggregatingLogger.Dispose()" + } + ] } ], "partialFingerprints": { - "UniqueId": "Sarif#Namespace" + "UniqueId": "DisposeImplementation" }, "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Naming", + "Category": "Microsoft.Design", "FixCategory": "Breaking" } }, { - "ruleId": "CA1020", - "level": "warning", + "ruleId": "CA2227", "message": { - "text": "Consider merging the types defined in 'Microsoft.CodeAnalysis.Sarif.VersionOne.Readers' with another namespace." + "text": "Change 'AggregatingLogger.Loggers' to be read-only by removing the property setter." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", + "uriBaseId": "$(ProjectDir)", + "index": 143 }, "locations": [ { - "fullyQualifiedLogicalName": "Microsoft.CodeAnalysis.Sarif.VersionOne.Readers" + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Driver/Sdk/AggregatingLogger.cs", + "index": 144 + }, + "region": { + "startLine": 22 + } + }, + "logicalLocations": [ + { + "index": 760, + "fullyQualifiedName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.AggregatingLogger.Loggers" + } + ] } ], "properties": { - "Category": "Microsoft.Design", + "Category": "Microsoft.Usage", "FixCategory": "Breaking" } }, { - "ruleId": "CA1704", - "level": "warning", + "ruleId": "CA1063", + "level": "error", "message": { - "text": "Correct the spelling of 'Sarif' in namespace name 'Microsoft.CodeAnalysis.Sarif.VersionOne.Readers'.", - "messageId": "Namespace" + "text": "Provide an overridable implementation of Dispose(bool) on 'AnalysisContext' or mark the type as sealed. A call to Dispose(false) should only clean up native resources. A call to Dispose(true) should clean up both managed and native resources.", + "id": "ProvideDisposeBool" }, "locations": [ { - "fullyQualifiedLogicalName": "Microsoft.CodeAnalysis.Sarif.VersionOne.Readers" + "physicalLocation": { + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", + "uriBaseId": "$(ProjectDir)", + "index": 143 + } + }, + "logicalLocations": [ + { + "index": 761, + "fullyQualifiedName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.AnalysisContext" + } + ] } ], "partialFingerprints": { - "UniqueId": "Sarif#Namespace" + "UniqueId": "ProvideDisposeBool" }, "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Naming", + "Category": "Microsoft.Design", "FixCategory": "Breaking" } }, { - "ruleId": "CA1704", - "level": "warning", + "ruleId": "CA1816", "message": { - "text": "Correct the spelling of 'Sarif' in namespace name 'Microsoft.CodeAnalysis.Sarif.Visitors'.", - "messageId": "Namespace" + "text": "Change 'AnalysisContext.Dispose()' to call 'GC.SuppressFinalize(object)'. This will prevent derived types that introduce a finalizer from needing to re-implement 'IDisposable' to call it.", + "id": "NotCalled" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", + "uriBaseId": "$(ProjectDir)", + "index": 143 }, "locations": [ { - "fullyQualifiedLogicalName": "Microsoft.CodeAnalysis.Sarif.Visitors" + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Driver/Sdk/AnalysisContext.cs", + "index": 145 + }, + "region": { + "startLine": 27 + } + }, + "logicalLocations": [ + { + "index": 762, + "fullyQualifiedName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.AnalysisContext.Dispose()" + } + ] } ], "partialFingerprints": { - "UniqueId": "Sarif#Namespace" + "UniqueId": "NotCalled" }, "properties": { "Level": "CriticalWarning", - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" + "Category": "Microsoft.Usage", + "FixCategory": "NonBreaking" } }, { - "ruleId": "CA1020", - "level": "warning", + "ruleId": "CA1063", + "level": "error", "message": { - "text": "Consider merging the types defined in 'Microsoft.CodeAnalysis.Sarif.Writers' with another namespace." + "text": "Modify 'AnalysisContext.Dispose()' so that it calls Dispose(true), then calls GC.SuppressFinalize on the current object instance ('this' or 'Me' in Visual Basic), and then returns.", + "id": "DisposeImplementation" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", + "uriBaseId": "$(ProjectDir)", + "index": 143 }, "locations": [ { - "fullyQualifiedLogicalName": "Microsoft.CodeAnalysis.Sarif.Writers" + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Driver/Sdk/AnalysisContext.cs", + "index": 145 + }, + "region": { + "startLine": 27 + } + }, + "logicalLocations": [ + { + "index": 762, + "fullyQualifiedName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.AnalysisContext.Dispose()" + } + ] } ], + "partialFingerprints": { + "UniqueId": "DisposeImplementation" + }, "properties": { "Category": "Microsoft.Design", "FixCategory": "Breaking" } }, { - "ruleId": "CA1704", - "level": "warning", + "ruleId": "CA2227", "message": { - "text": "Correct the spelling of 'Sarif' in namespace name 'Microsoft.CodeAnalysis.Sarif.Writers'.", - "messageId": "Namespace" + "text": "Change 'AnalysisContext.Policy' to be read-only by removing the property setter." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", + "uriBaseId": "$(ProjectDir)", + "index": 143 }, "locations": [ { - "fullyQualifiedLogicalName": "Microsoft.CodeAnalysis.Sarif.Writers" + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Driver/Sdk/AnalysisContext.cs", + "index": 145 + }, + "region": { + "startLine": 19 + } + }, + "logicalLocations": [ + { + "index": 763, + "fullyQualifiedName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.AnalysisContext.Policy" + } + ] } ], - "partialFingerprints": { - "UniqueId": "Sarif#Namespace" - }, "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Naming", + "Category": "Microsoft.Usage", "FixCategory": "Breaking" } }, { - "ruleId": "CA1020", - "level": "warning", + "ruleId": "CA1031", + "level": "error", "message": { - "text": "Consider merging the types defined in 'Microsoft.CodeAnalysisDriver' with another namespace." + "text": "Modify 'AnalyzeCommandBase.AnalyzeTarget(IEnumerable>, TContext, HashSet)' to catch a more specific exception than 'Exception' or rethrow the exception." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", + "uriBaseId": "$(ProjectDir)", + "index": 143 }, "locations": [ { - "fullyQualifiedLogicalName": "Microsoft.CodeAnalysisDriver" + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Driver/Sdk/AnalyzeCommandBase.cs", + "index": 146 + }, + "region": { + "startLine": 554 + } + }, + "logicalLocations": [ + { + "index": 765, + "fullyQualifiedName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.AnalyzeCommandBase`2.AnalyzeTarget(System.Collections.Generic.IEnumerable`1>,!0,System.Collections.Generic.HashSet`1)" + } + ] } ], "properties": { + "Level": "CriticalError", "Category": "Microsoft.Design", - "FixCategory": "Breaking" + "FixCategory": "NonBreaking" } }, { - "ruleId": "CA1020", - "level": "warning", + "ruleId": "CA1006", + "level": "error", "message": { - "text": "Consider merging the types defined in 'Microsoft.Json.Pointer' with another namespace." + "text": "Consider a design where 'AnalyzeCommandBase.AnalyzeTarget(IEnumerable>, TContext, HashSet)' doesn't nest generic type 'IEnumerable>'." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", + "uriBaseId": "$(ProjectDir)", + "index": 143 }, "locations": [ { - "fullyQualifiedLogicalName": "Microsoft.Json.Pointer" + "physicalLocation": { + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Driver/Sdk/AnalyzeCommandBase.cs", + "index": 146 + }, + "region": { + "startLine": 543 + } + }, + "logicalLocations": [ + { + "index": 765, + "fullyQualifiedName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.AnalyzeCommandBase`2.AnalyzeTarget(System.Collections.Generic.IEnumerable`1>,!0,System.Collections.Generic.HashSet`1)" + } + ] } ], "properties": { + "Level": "CriticalError", "Category": "Microsoft.Design", "FixCategory": "Breaking" } }, { - "ruleId": "CA1014", - "level": "error", + "ruleId": "CA1062", "message": { - "text": "Mark 'Microsoft.Json.Pointer.dll' with CLSCompliant(true) because it exposes externally visible types." + "text": "In externally visible method 'AnalyzeCommandBase.AnalyzeTarget(IEnumerable>, TContext, HashSet)', validate parameter 'skimmers' before using it." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", + "uriBaseId": "$(ProjectDir)", + "index": 143 }, "locations": [ { "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Microsoft.Json.Pointer.dll", - "uriBaseId": "$(ProjectDir)" + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Driver/Sdk/AnalyzeCommandBase.cs", + "index": 146 + }, + "region": { + "startLine": 544 } }, - "fullyQualifiedLogicalName": "microsoft.json.pointer.dll" + "logicalLocations": [ + { + "index": 765, + "fullyQualifiedName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.AnalyzeCommandBase`2.AnalyzeTarget(System.Collections.Generic.IEnumerable`1>,!0,System.Collections.Generic.HashSet`1)" + } + ] } ], + "partialFingerprints": { + "UniqueId": "0" + }, "properties": { "Category": "Microsoft.Design", - "FixCategory": "NonBreaking" + "FixCategory": "DependsOnFix" } }, { - "ruleId": "CA1824", - "level": "warning", + "ruleId": "CA1062", "message": { - "text": "Because assembly 'Microsoft.Json.Pointer.dll' contains a ResX-based resource file, mark it with the NeutralResourcesLanguage attribute, specifying the language of the resources within the assembly. This could improve lookup performance the first time a resource is retrieved." + "text": "In externally visible method 'AnalyzeCommandBase.AnalyzeTarget(IEnumerable>, TContext, HashSet)', validate parameter 'disabledSkimmers' before using it." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", + "uriBaseId": "$(ProjectDir)", + "index": 143 }, "locations": [ { "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Microsoft.Json.Pointer.dll", - "uriBaseId": "$(ProjectDir)" + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Driver/Sdk/AnalyzeCommandBase.cs", + "index": 146 + }, + "region": { + "startLine": 546 } }, - "fullyQualifiedLogicalName": "microsoft.json.pointer.dll" + "logicalLocations": [ + { + "index": 765, + "fullyQualifiedName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.AnalyzeCommandBase`2.AnalyzeTarget(System.Collections.Generic.IEnumerable`1>,!0,System.Collections.Generic.HashSet`1)" + } + ] } ], + "partialFingerprints": { + "UniqueId": "2" + }, "properties": { - "Category": "Microsoft.Performance", - "FixCategory": "NonBreaking" + "Category": "Microsoft.Design", + "FixCategory": "DependsOnFix" } }, { - "ruleId": "CA1026", + "ruleId": "CA1006", "level": "error", "message": { - "text": "Replace method 'JsonPointer.JsonPointer(string, JsonPointerRepresentation)' with an overload that supplies all default arguments." + "text": "Consider a design where 'AnalyzeCommandBase.AnalyzeTargets(TOptions, IEnumerable>, TContext, IEnumerable)' doesn't nest generic type 'IEnumerable>'." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", + "uriBaseId": "$(ProjectDir)", + "index": 143 }, "locations": [ { "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Microsoft.Json.Pointer.dll", - "uriBaseId": "$(ProjectDir)" + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Driver/Sdk/AnalyzeCommandBase.cs", + "index": 146 + }, + "region": { + "startLine": 476 } }, - "fullyQualifiedLogicalName": "microsoft.json.pointer.dll!Microsoft.Json.Pointer.JsonPointer..ctor(System.String,Microsoft.Json.Pointer.JsonPointerRepresentation)" + "logicalLocations": [ + { + "index": 766, + "fullyQualifiedName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.AnalyzeCommandBase`2.AnalyzeTargets(!1,System.Collections.Generic.IEnumerable`1>,!0,System.Collections.Generic.IEnumerable`1)" + } + ] } ], "properties": { + "Level": "CriticalError", "Category": "Microsoft.Design", "FixCategory": "Breaking" } }, { - "ruleId": "CA1812", - "level": "warning", + "ruleId": "CA1062", "message": { - "text": "'Resources' is an internal class that is apparently never instantiated. If so, remove the code from the assembly. If this class is intended to contain only static methods, consider adding a private constructor to prevent the compiler from generating a default constructor." + "text": "In externally visible method 'AnalyzeCommandBase.AnalyzeTargets(TOptions, IEnumerable>, TContext, IEnumerable)', validate parameter 'skimmers' before using it." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", + "uriBaseId": "$(ProjectDir)", + "index": 143 }, "locations": [ { "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Microsoft.Json.Pointer.dll", - "uriBaseId": "$(ProjectDir)" + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Driver/Sdk/AnalyzeCommandBase.cs", + "index": 146 + }, + "region": { + "startLine": 479 } }, - "fullyQualifiedLogicalName": "microsoft.json.pointer.dll!Microsoft.Json.Pointer.Resources" + "logicalLocations": [ + { + "index": 766, + "fullyQualifiedName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.AnalyzeCommandBase`2.AnalyzeTargets(!1,System.Collections.Generic.IEnumerable`1>,!0,System.Collections.Generic.IEnumerable`1)" + } + ] } ], + "partialFingerprints": { + "UniqueId": "1" + }, "properties": { - "Category": "Microsoft.Performance", - "FixCategory": "NonBreaking" + "Category": "Microsoft.Design", + "FixCategory": "DependsOnFix" } }, { - "ruleId": "CA1704", - "level": "warning", + "ruleId": "CA1062", "message": { - "text": "In method 'StringExtensions.AtIndex(this string, int)', correct the spelling of 'j' in parameter name 'jPointer' or remove it entirely if it represents any sort of Hungarian notation.", - "messageId": "MemberParameter" + "text": "In externally visible method 'AnalyzeCommandBase.AnalyzeTargets(TOptions, IEnumerable>, TContext, IEnumerable)', validate parameter 'targets' before using it." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", + "uriBaseId": "$(ProjectDir)", + "index": 143 }, "locations": [ { "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Microsoft.Json.Pointer.dll", - "uriBaseId": "$(ProjectDir)" + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Driver/Sdk/AnalyzeCommandBase.cs", + "index": 146 + }, + "region": { + "startLine": 500 } }, - "fullyQualifiedLogicalName": "microsoft.json.pointer.dll!Microsoft.Json.Pointer.StringExtensions.AtIndex(System.String,System.Int32)" + "logicalLocations": [ + { + "index": 766, + "fullyQualifiedName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.AnalyzeCommandBase`2.AnalyzeTargets(!1,System.Collections.Generic.IEnumerable`1>,!0,System.Collections.Generic.IEnumerable`1)" + } + ] } ], "partialFingerprints": { - "UniqueId": "j#MemberParameter" + "UniqueId": "3" }, "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" + "Category": "Microsoft.Design", + "FixCategory": "DependsOnFix" } }, { - "ruleId": "CA1305", + "ruleId": "CA1500", "level": "error", "message": { - "text": "Because the behavior of 'string.Format(string, object, object)' could vary based on the current user's locale settings, replace this call in 'StringExtensions.AtIndex(this string, int)' with a call to 'string.Format(IFormatProvider, string, params object[])'. If the result of 'string.Format(IFormatProvider, string, params object[])' will be displayed to the user, specify 'CultureInfo.CurrentCulture' as the 'IFormatProvider' parameter. Otherwise, if the result will be stored and accessed by software, such as when it is persisted to disk or to a database, specify 'CultureInfo.InvariantCulture'.", - "messageId": "IFormatProviderAlternateString" + "text": "'rootContext', a parameter declared in 'AnalyzeCommandBase.AnalyzeTargets(TOptions, IEnumerable>, TContext, IEnumerable)', has the same name as an instance field on the type. Change the name of one of these items.", + "id": "Parameter" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", + "uriBaseId": "$(ProjectDir)", + "index": 143 }, "locations": [ { "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Microsoft.Json.Pointer.dll", - "uriBaseId": "$(ProjectDir)" + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Driver/Sdk/AnalyzeCommandBase.cs", + "index": 146 + }, + "region": { + "startLine": 476 } }, - "fullyQualifiedLogicalName": "microsoft.json.pointer.dll!Microsoft.Json.Pointer.StringExtensions.AtIndex(System.String,System.Int32)" + "logicalLocations": [ + { + "index": 766, + "fullyQualifiedName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.AnalyzeCommandBase`2.AnalyzeTargets(!1,System.Collections.Generic.IEnumerable`1>,!0,System.Collections.Generic.IEnumerable`1)" + } + ] } ], "partialFingerprints": { - "UniqueId": "System.String.Format(System.String,System.Object,System.Object)#IFormatProviderAlternateString" + "UniqueId": "rootContext#Parameter" }, "properties": { - "Category": "Microsoft.Globalization", + "Category": "Microsoft.Maintainability", "FixCategory": "NonBreaking" } }, { - "ruleId": "CA1704", - "level": "warning", + "ruleId": "CA1026", + "level": "error", "message": { - "text": "In method 'StringExtensions.AtProperty(this string, string)', correct the spelling of 'j' in parameter name 'jPointer' or remove it entirely if it represents any sort of Hungarian notation.", - "messageId": "MemberParameter" + "text": "Replace method 'AnalyzeCommandBase.CreateContext(TOptions, IAnalysisLogger, RuntimeConditions, string)' with an overload that supplies all default arguments." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", + "uriBaseId": "$(ProjectDir)", + "index": 143 }, "locations": [ { "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Microsoft.Json.Pointer.dll", - "uriBaseId": "$(ProjectDir)" + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Driver/Sdk/AnalyzeCommandBase.cs", + "index": 146 + }, + "region": { + "startLine": 267 } }, - "fullyQualifiedLogicalName": "microsoft.json.pointer.dll!Microsoft.Json.Pointer.StringExtensions.AtProperty(System.String,System.String)" + "logicalLocations": [ + { + "index": 767, + "fullyQualifiedName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.AnalyzeCommandBase`2.CreateContext(!1,Microsoft.CodeAnalysis.Sarif.IAnalysisLogger,Microsoft.CodeAnalysis.Sarif.RuntimeConditions,System.String)" + } + ] } ], - "partialFingerprints": { - "UniqueId": "j#MemberParameter" - }, "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Naming", + "Category": "Microsoft.Design", "FixCategory": "Breaking" } }, { - "ruleId": "CA1305", + "ruleId": "CA1031", "level": "error", "message": { - "text": "Because the behavior of 'string.Format(string, object, object)' could vary based on the current user's locale settings, replace this call in 'StringExtensions.AtProperty(this string, string)' with a call to 'string.Format(IFormatProvider, string, params object[])'. If the result of 'string.Format(IFormatProvider, string, params object[])' will be displayed to the user, specify 'CultureInfo.CurrentCulture' as the 'IFormatProvider' parameter. Otherwise, if the result will be stored and accessed by software, such as when it is persisted to disk or to a database, specify 'CultureInfo.InvariantCulture'.", - "messageId": "IFormatProviderAlternateString" + "text": "Modify 'AnalyzeCommandBase.CreateSkimmers(TContext)' to catch a more specific exception than 'Exception' or rethrow the exception." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", + "uriBaseId": "$(ProjectDir)", + "index": 143 }, "locations": [ { "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Microsoft.Json.Pointer.dll", - "uriBaseId": "$(ProjectDir)" + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Driver/Sdk/AnalyzeCommandBase.cs", + "index": 146 + }, + "region": { + "startLine": 432 } }, - "fullyQualifiedLogicalName": "microsoft.json.pointer.dll!Microsoft.Json.Pointer.StringExtensions.AtProperty(System.String,System.String)" + "logicalLocations": [ + { + "index": 768, + "fullyQualifiedName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.AnalyzeCommandBase`2.CreateSkimmers(!0)" + } + ] } ], - "partialFingerprints": { - "UniqueId": "System.String.Format(System.String,System.Object,System.Object)#IFormatProviderAlternateString" - }, "properties": { - "Category": "Microsoft.Globalization", + "Level": "CriticalError", + "Category": "Microsoft.Design", "FixCategory": "NonBreaking" } }, { - "ruleId": "CA1704", - "level": "warning", + "ruleId": "CA1000", + "level": "error", "message": { - "text": "In method 'StringExtensions.UnescapeJsonPointer(this string)', correct the spelling of 'j' in parameter name 'jPointer' or remove it entirely if it represents any sort of Hungarian notation.", - "messageId": "MemberParameter" + "text": "Remove 'AnalyzeCommandBase.DefaultPolicyName' from 'AnalyzeCommandBase' or make it an instance member." }, "locations": [ { "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Microsoft.Json.Pointer.dll", - "uriBaseId": "$(ProjectDir)" + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", + "uriBaseId": "$(ProjectDir)", + "index": 143 } }, - "fullyQualifiedLogicalName": "microsoft.json.pointer.dll!Microsoft.Json.Pointer.StringExtensions.UnescapeJsonPointer(System.String)" + "logicalLocations": [ + { + "index": 769, + "fullyQualifiedName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.AnalyzeCommandBase`2.DefaultPolicyName" + } + ] } ], - "partialFingerprints": { - "UniqueId": "j#MemberParameter" - }, "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Naming", + "Category": "Microsoft.Design", "FixCategory": "Breaking" } }, { - "ruleId": "CA1702", + "ruleId": "CA1006", "level": "error", "message": { - "text": "The compound word 'PreRelease' in member name 'VersionConstants.PreRelease' exists as a discrete term. If your usage is intended to be single word, case it as 'Prerelease' or strip the first token entirely if it represents any sort of Hungarian notation.", - "messageId": "MemberShouldBeDiscreteTerm" + "text": "Consider a design where 'AnalyzeCommandBase.DetermineApplicabilityAndAnalyze(TOptions, IEnumerable>, TContext, string, HashSet)' doesn't nest generic type 'IEnumerable>'." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", + "uriBaseId": "$(ProjectDir)", + "index": 143 }, "locations": [ { "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Microsoft.Json.Pointer.dll", - "uriBaseId": "$(ProjectDir)" + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Driver/Sdk/AnalyzeCommandBase.cs", + "index": 146 + }, + "region": { + "startLine": 515 } }, - "fullyQualifiedLogicalName": "microsoft.json.pointer.dll!Microsoft.Json.Pointer.VersionConstants.PreRelease" + "logicalLocations": [ + { + "index": 770, + "fullyQualifiedName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.AnalyzeCommandBase`2.DetermineApplicabilityAndAnalyze(!1,System.Collections.Generic.IEnumerable`1>,!0,System.String,System.Collections.Generic.HashSet`1)" + } + ] } ], - "partialFingerprints": { - "UniqueId": "PreRelease#MemberShouldBeDiscreteTerm" - }, "properties": { - "Category": "Microsoft.Naming", + "Level": "CriticalError", + "Category": "Microsoft.Design", "FixCategory": "Breaking" } }, { - "ruleId": "CA1014", + "ruleId": "CA1500", "level": "error", "message": { - "text": "Mark 'Microsoft.Json.Schema.dll' with CLSCompliant(true) because it exposes externally visible types." + "text": "'rootContext', a parameter declared in 'AnalyzeCommandBase.DetermineApplicabilityAndAnalyze(TOptions, IEnumerable>, TContext, string, HashSet)', has the same name as an instance field on the type. Change the name of one of these items.", + "id": "Parameter" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", + "uriBaseId": "$(ProjectDir)", + "index": 143 }, "locations": [ { "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Microsoft.Json.Schema.dll", - "uriBaseId": "$(ProjectDir)" + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Driver/Sdk/AnalyzeCommandBase.cs", + "index": 146 + }, + "region": { + "startLine": 515 } }, - "fullyQualifiedLogicalName": "microsoft.json.schema.dll" + "logicalLocations": [ + { + "index": 770, + "fullyQualifiedName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.AnalyzeCommandBase`2.DetermineApplicabilityAndAnalyze(!1,System.Collections.Generic.IEnumerable`1>,!0,System.String,System.Collections.Generic.HashSet`1)" + } + ] } ], + "partialFingerprints": { + "UniqueId": "rootContext#Parameter" + }, "properties": { - "Category": "Microsoft.Design", + "Category": "Microsoft.Maintainability", "FixCategory": "NonBreaking" } }, { - "ruleId": "CA1824", - "level": "warning", + "ruleId": "CA1031", + "level": "error", "message": { - "text": "Because assembly 'Microsoft.Json.Schema.dll' contains a ResX-based resource file, mark it with the NeutralResourcesLanguage attribute, specifying the language of the resources within the assembly. This could improve lookup performance the first time a resource is retrieved." + "text": "Modify 'AnalyzeCommandBase.DetermineApplicabilityForTarget(IEnumerable>, TContext, HashSet)' to catch a more specific exception than 'Exception' or rethrow the exception." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", + "uriBaseId": "$(ProjectDir)", + "index": 143 }, "locations": [ { "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Microsoft.Json.Schema.dll", - "uriBaseId": "$(ProjectDir)" + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Driver/Sdk/AnalyzeCommandBase.cs", + "index": 146 + }, + "region": { + "startLine": 581 } }, - "fullyQualifiedLogicalName": "microsoft.json.schema.dll" + "logicalLocations": [ + { + "index": 771, + "fullyQualifiedName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.AnalyzeCommandBase`2.DetermineApplicabilityForTarget(System.Collections.Generic.IEnumerable`1>,!0,System.Collections.Generic.HashSet`1)" + } + ] } ], "properties": { - "Category": "Microsoft.Performance", + "Level": "CriticalError", + "Category": "Microsoft.Design", "FixCategory": "NonBreaking" } }, { - "ruleId": "CA1062", - "level": "warning", + "ruleId": "CA1006", + "level": "error", "message": { - "text": "In externally visible method 'AdditionalItems.AdditionalItems(AdditionalItems)', validate parameter 'other' before using it." + "text": "Consider a design where 'AnalyzeCommandBase.DetermineApplicabilityForTarget(IEnumerable>, TContext, HashSet)' doesn't nest generic type 'IEnumerable>'." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", + "uriBaseId": "$(ProjectDir)", + "index": 143 }, "locations": [ { "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Microsoft.Json.Schema.dll", - "uriBaseId": "$(ProjectDir)" + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Driver/Sdk/AnalyzeCommandBase.cs", + "index": 146 + }, + "region": { + "startLine": 565 } }, - "fullyQualifiedLogicalName": "microsoft.json.schema.dll!Microsoft.Json.Schema.AdditionalItems..ctor(Microsoft.Json.Schema.AdditionalItems)" + "logicalLocations": [ + { + "index": 771, + "fullyQualifiedName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.AnalyzeCommandBase`2.DetermineApplicabilityForTarget(System.Collections.Generic.IEnumerable`1>,!0,System.Collections.Generic.HashSet`1)" + } + ] } ], - "partialFingerprints": { - "UniqueId": "0" - }, "properties": { + "Level": "CriticalError", "Category": "Microsoft.Design", - "FixCategory": "DependsOnFix" + "FixCategory": "Breaking" } }, { - "ruleId": "CA1062", - "level": "warning", + "ruleId": "CA1006", + "level": "error", "message": { - "text": "In externally visible method 'AdditionalProperties.AdditionalProperties(AdditionalProperties)', validate parameter 'other' before using it." + "text": "Consider a design where 'AnalyzeCommandBase.DetermineApplicabilityForTarget(IEnumerable>, TContext, HashSet)' doesn't nest generic type 'IEnumerable>'." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", + "uriBaseId": "$(ProjectDir)", + "index": 143 }, "locations": [ { "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Microsoft.Json.Schema.dll", - "uriBaseId": "$(ProjectDir)" + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Driver/Sdk/AnalyzeCommandBase.cs", + "index": 146 + }, + "region": { + "startLine": 565 } }, - "fullyQualifiedLogicalName": "microsoft.json.schema.dll!Microsoft.Json.Schema.AdditionalProperties..ctor(Microsoft.Json.Schema.AdditionalProperties)" + "logicalLocations": [ + { + "index": 771, + "fullyQualifiedName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.AnalyzeCommandBase`2.DetermineApplicabilityForTarget(System.Collections.Generic.IEnumerable`1>,!0,System.Collections.Generic.HashSet`1)" + } + ] } ], - "partialFingerprints": { - "UniqueId": "0" - }, "properties": { + "Level": "CriticalError", "Category": "Microsoft.Design", - "FixCategory": "DependsOnFix" + "FixCategory": "Breaking" } }, { "ruleId": "CA1062", - "level": "warning", "message": { - "text": "In externally visible method 'Dependency.Dependency(Dependency)', validate parameter 'other' before using it." + "text": "In externally visible method 'AnalyzeCommandBase.DetermineApplicabilityForTarget(IEnumerable>, TContext, HashSet)', validate parameter 'skimmers' before using it." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", + "uriBaseId": "$(ProjectDir)", + "index": 143 }, "locations": [ { "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Microsoft.Json.Schema.dll", - "uriBaseId": "$(ProjectDir)" + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Driver/Sdk/AnalyzeCommandBase.cs", + "index": 146 + }, + "region": { + "startLine": 568 } }, - "fullyQualifiedLogicalName": "microsoft.json.schema.dll!Microsoft.Json.Schema.Dependency..ctor(Microsoft.Json.Schema.Dependency)" + "logicalLocations": [ + { + "index": 771, + "fullyQualifiedName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.AnalyzeCommandBase`2.DetermineApplicabilityForTarget(System.Collections.Generic.IEnumerable`1>,!0,System.Collections.Generic.HashSet`1)" + } + ] } ], "partialFingerprints": { @@ -8930,47 +26209,37 @@ "FixCategory": "DependsOnFix" } }, - { - "ruleId": "CA1002", - "level": "error", - "message": { - "text": "Change 'List' in 'Dependency.PropertyDependencies' to use Collection, ReadOnlyCollection or KeyedCollection" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Microsoft.Json.Schema.dll", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "microsoft.json.schema.dll!Microsoft.Json.Schema.Dependency.PropertyDependencies" - } - ], - "properties": { - "Category": "Microsoft.Design", - "FixCategory": "Breaking" - } - }, { "ruleId": "CA1062", - "level": "warning", "message": { - "text": "In externally visible method 'DependencyConverter.WriteJson(JsonWriter, object, JsonSerializer)', validate parameter 'writer' before using it." + "text": "In externally visible method 'AnalyzeCommandBase.DetermineApplicabilityForTarget(IEnumerable>, TContext, HashSet)', validate parameter 'disabledSkimmers' before using it." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", + "uriBaseId": "$(ProjectDir)", + "index": 143 }, "locations": [ { "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Microsoft.Json.Schema.dll", - "uriBaseId": "$(ProjectDir)" + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Driver/Sdk/AnalyzeCommandBase.cs", + "index": 146 + }, + "region": { + "startLine": 570 } }, - "fullyQualifiedLogicalName": "microsoft.json.schema.dll!Microsoft.Json.Schema.DependencyConverter.WriteJson(Newtonsoft.Json.JsonWriter,System.Object,Newtonsoft.Json.JsonSerializer)" + "logicalLocations": [ + { + "index": 771, + "fullyQualifiedName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.AnalyzeCommandBase`2.DetermineApplicabilityForTarget(System.Collections.Generic.IEnumerable`1>,!0,System.Collections.Generic.HashSet`1)" + } + ] } ], "partialFingerprints": { - "UniqueId": "0" + "UniqueId": "2" }, "properties": { "Category": "Microsoft.Design", @@ -8978,510 +26247,794 @@ } }, { - "ruleId": "CA1716", - "level": "error", + "ruleId": "CA1822", "message": { - "text": "Rename type 'Error' so that it no longer conflicts with the reserved language keyword 'Error'. Using a reserved keyword as the name of a type makes it harder for consumers in other languages to use the type.", - "messageId": "Type" + "text": "The 'this' parameter (or 'Me' in Visual Basic) of 'AnalyzeCommandBase.GenerateSensitiveTokensList()' is never used. Mark the member as static (or Shared in Visual Basic) or use 'this'/'Me' in the method body or at least one property accessor, if appropriate." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", + "uriBaseId": "$(ProjectDir)", + "index": 143 }, "locations": [ { "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Microsoft.Json.Schema.dll", - "uriBaseId": "$(ProjectDir)" + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Driver/Sdk/AnalyzeCommandBase.cs", + "index": 146 + }, + "region": { + "startLine": 378 } }, - "fullyQualifiedLogicalName": "microsoft.json.schema.dll!Microsoft.Json.Schema.Error" + "logicalLocations": [ + { + "index": 772, + "fullyQualifiedName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.AnalyzeCommandBase`2.GenerateSensitiveTokensList()" + } + ] } ], - "partialFingerprints": { - "UniqueId": "Error#Type" - }, "properties": { - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" + "Category": "Microsoft.Performance", + "FixCategory": "NonBreaking" } }, { - "ruleId": "CA2201", - "level": "error", + "ruleId": "CA1822", "message": { - "text": "'Error.CreateException(string, params object[])' creates an exception of type 'ApplicationException', an exception type that is not sufficiently specific and should never be raised by user code. If this exception instance might be thrown, use a different exception type.", - "messageId": "TooGeneric" + "text": "The 'this' parameter (or 'Me' in Visual Basic) of 'AnalyzeCommandBase.GetCurrentRunningOS()' is never used. Mark the member as static (or Shared in Visual Basic) or use 'this'/'Me' in the method body or at least one property accessor, if appropriate." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", + "uriBaseId": "$(ProjectDir)", + "index": 143 }, "locations": [ { "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Microsoft.Json.Schema.dll", - "uriBaseId": "$(ProjectDir)" + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Driver/Sdk/AnalyzeCommandBase.cs", + "index": 146 + }, + "region": { + "startLine": 447 } }, - "fullyQualifiedLogicalName": "microsoft.json.schema.dll!Microsoft.Json.Schema.Error.CreateException(System.String,System.Object[])" + "logicalLocations": [ + { + "index": 773, + "fullyQualifiedName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.AnalyzeCommandBase`2.GetCurrentRunningOS()" + } + ] } ], - "partialFingerprints": { - "UniqueId": "TooGeneric" - }, "properties": { - "Category": "Microsoft.Usage", - "FixCategory": "Breaking" + "Category": "Microsoft.Performance", + "FixCategory": "NonBreaking" } }, { - "ruleId": "CA1062", - "level": "warning", + "ruleId": "CA2000", "message": { - "text": "In externally visible method 'Items.Items(Items)', validate parameter 'other' before using it." + "text": "In method 'AnalyzeCommandBase.InitializeLogger(AnalyzeOptionsBase)', object 'logger' is not disposed along all exception paths. Call System.IDisposable.Dispose on object 'logger' before all references to it are out of scope.", + "id": "ExceptionEdge" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", + "uriBaseId": "$(ProjectDir)", + "index": 143 }, "locations": [ { "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Microsoft.Json.Schema.dll", - "uriBaseId": "$(ProjectDir)" + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Driver/Sdk/AnalyzeCommandBase.cs", + "index": 146 + }, + "region": { + "startLine": 213 } }, - "fullyQualifiedLogicalName": "microsoft.json.schema.dll!Microsoft.Json.Schema.Items..ctor(Microsoft.Json.Schema.Items)" + "logicalLocations": [ + { + "index": 774, + "fullyQualifiedName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.AnalyzeCommandBase`2.InitializeLogger(Microsoft.CodeAnalysis.Sarif.Driver.AnalyzeOptionsBase)" + } + ] } ], "partialFingerprints": { - "UniqueId": "0" + "UniqueId": "ExceptionEdge" }, "properties": { - "Category": "Microsoft.Design", + "Category": "Microsoft.Reliability", "FixCategory": "DependsOnFix" } }, { - "ruleId": "CA2227", - "level": "warning", + "ruleId": "CA1822", "message": { - "text": "Change 'Items.Schemas' to be read-only by removing the property setter." + "text": "The 'this' parameter (or 'Me' in Visual Basic) of 'AnalyzeCommandBase.InitializeLogger(AnalyzeOptionsBase)' is never used. Mark the member as static (or Shared in Visual Basic) or use 'this'/'Me' in the method body or at least one property accessor, if appropriate." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", + "uriBaseId": "$(ProjectDir)", + "index": 143 }, "locations": [ { "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Microsoft.Json.Schema.dll", - "uriBaseId": "$(ProjectDir)" + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Driver/Sdk/AnalyzeCommandBase.cs", + "index": 146 + }, + "region": { + "startLine": 212 } }, - "fullyQualifiedLogicalName": "microsoft.json.schema.dll!Microsoft.Json.Schema.Items.Schemas" + "logicalLocations": [ + { + "index": 774, + "fullyQualifiedName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.AnalyzeCommandBase`2.InitializeLogger(Microsoft.CodeAnalysis.Sarif.Driver.AnalyzeOptionsBase)" + } + ] } ], "properties": { - "Category": "Microsoft.Usage", - "FixCategory": "Breaking" + "Category": "Microsoft.Performance", + "FixCategory": "NonBreaking" } }, { - "ruleId": "CA2104", - "level": "error", + "ruleId": "CA2000", "message": { - "text": "Remove the read-only designation from 'ItemsConverter.Instance' or change the field to one that is an immutable reference type. If the reference type 'ItemsConverter' is, in fact, immutable, exclude this message." + "text": "In method 'AnalyzeCommandBase.InitializeOutputFile(TOptions, TContext, HashSet)', object 'sarifLogger' is not disposed along all exception paths. Call System.IDisposable.Dispose on object 'sarifLogger' before all references to it are out of scope.", + "id": "ExceptionEdge" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", + "uriBaseId": "$(ProjectDir)", + "index": 143 }, "locations": [ { "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Microsoft.Json.Schema.dll", - "uriBaseId": "$(ProjectDir)" + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Driver/Sdk/AnalyzeCommandBase.cs", + "index": 146 + }, + "region": { + "startLine": 356 } }, - "fullyQualifiedLogicalName": "microsoft.json.schema.dll!Microsoft.Json.Schema.ItemsConverter.Instance" + "logicalLocations": [ + { + "index": 775, + "fullyQualifiedName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.AnalyzeCommandBase`2.InitializeOutputFile(!1,!0,System.Collections.Generic.HashSet`1)" + } + ] } ], + "partialFingerprints": { + "UniqueId": "ExceptionEdge" + }, "properties": { - "Category": "Microsoft.Security", - "FixCategory": "NonBreaking" + "Category": "Microsoft.Reliability", + "FixCategory": "DependsOnFix" } }, { - "ruleId": "CA1062", - "level": "warning", + "ruleId": "CA1031", + "level": "error", "message": { - "text": "In externally visible method 'ItemsConverter.WriteJson(JsonWriter, object, JsonSerializer)', validate parameter 'writer' before using it." + "text": "Modify 'AnalyzeCommandBase.InitializeSkimmers(HashSet>, TContext)' to catch a more specific exception than 'Exception' or rethrow the exception." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", + "uriBaseId": "$(ProjectDir)", + "index": 143 }, "locations": [ { "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Microsoft.Json.Schema.dll", - "uriBaseId": "$(ProjectDir)" + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Driver/Sdk/AnalyzeCommandBase.cs", + "index": 146 + }, + "region": { + "startLine": 632 } }, - "fullyQualifiedLogicalName": "microsoft.json.schema.dll!Microsoft.Json.Schema.ItemsConverter.WriteJson(Newtonsoft.Json.JsonWriter,System.Object,Newtonsoft.Json.JsonSerializer)" + "logicalLocations": [ + { + "index": 776, + "fullyQualifiedName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.AnalyzeCommandBase`2.InitializeSkimmers(System.Collections.Generic.HashSet`1>,!0)" + } + ] } ], - "partialFingerprints": { - "UniqueId": "0" - }, "properties": { + "Level": "CriticalError", "Category": "Microsoft.Design", - "FixCategory": "DependsOnFix" + "FixCategory": "NonBreaking" } }, { - "ruleId": "CA1062", - "level": "warning", + "ruleId": "CA1006", + "level": "error", "message": { - "text": "In externally visible method 'JsonSchema.JsonSchema(JsonSchema)', validate parameter 'other' before using it." + "text": "Consider a design where 'AnalyzeCommandBase.InitializeSkimmers(HashSet>, TContext)' doesn't nest generic type 'HashSet>'." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", + "uriBaseId": "$(ProjectDir)", + "index": 143 }, "locations": [ { "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Microsoft.Json.Schema.dll", - "uriBaseId": "$(ProjectDir)" + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Driver/Sdk/AnalyzeCommandBase.cs", + "index": 146 + }, + "region": { + "startLine": 620 } }, - "fullyQualifiedLogicalName": "microsoft.json.schema.dll!Microsoft.Json.Schema.JsonSchema..ctor(Microsoft.Json.Schema.JsonSchema)" + "logicalLocations": [ + { + "index": 776, + "fullyQualifiedName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.AnalyzeCommandBase`2.InitializeSkimmers(System.Collections.Generic.HashSet`1>,!0)" + } + ] } ], - "partialFingerprints": { - "UniqueId": "0" - }, "properties": { + "Level": "CriticalError", "Category": "Microsoft.Design", - "FixCategory": "DependsOnFix" + "FixCategory": "Breaking" } }, { - "ruleId": "CA2227", - "level": "warning", + "ruleId": "CA1006", + "level": "error", "message": { - "text": "Change 'JsonSchema.AllOf' to be read-only by removing the property setter." + "text": "Consider a design where 'AnalyzeCommandBase.InitializeSkimmers(HashSet>, TContext)' doesn't nest generic type 'HashSet>'." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", + "uriBaseId": "$(ProjectDir)", + "index": 143 }, "locations": [ { "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Microsoft.Json.Schema.dll", - "uriBaseId": "$(ProjectDir)" + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Driver/Sdk/AnalyzeCommandBase.cs", + "index": 146 + }, + "region": { + "startLine": 620 } }, - "fullyQualifiedLogicalName": "microsoft.json.schema.dll!Microsoft.Json.Schema.JsonSchema.AllOf" + "logicalLocations": [ + { + "index": 776, + "fullyQualifiedName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.AnalyzeCommandBase`2.InitializeSkimmers(System.Collections.Generic.HashSet`1>,!0)" + } + ] } ], "properties": { - "Category": "Microsoft.Usage", + "Level": "CriticalError", + "Category": "Microsoft.Design", "FixCategory": "Breaking" } }, { - "ruleId": "CA2227", - "level": "warning", + "ruleId": "CA1062", "message": { - "text": "Change 'JsonSchema.AnyOf' to be read-only by removing the property setter." + "text": "In externally visible method 'AnalyzeCommandBase.InitializeSkimmers(HashSet>, TContext)', validate parameter 'skimmers' before using it." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", + "uriBaseId": "$(ProjectDir)", + "index": 143 }, "locations": [ { "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Microsoft.Json.Schema.dll", - "uriBaseId": "$(ProjectDir)" + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Driver/Sdk/AnalyzeCommandBase.cs", + "index": 146 + }, + "region": { + "startLine": 625 } }, - "fullyQualifiedLogicalName": "microsoft.json.schema.dll!Microsoft.Json.Schema.JsonSchema.AnyOf" + "logicalLocations": [ + { + "index": 776, + "fullyQualifiedName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.AnalyzeCommandBase`2.InitializeSkimmers(System.Collections.Generic.HashSet`1>,!0)" + } + ] } ], + "partialFingerprints": { + "UniqueId": "0" + }, "properties": { - "Category": "Microsoft.Usage", - "FixCategory": "Breaking" + "Category": "Microsoft.Design", + "FixCategory": "DependsOnFix" } }, { - "ruleId": "CA1502", - "level": "warning", + "ruleId": "CA1062", "message": { - "text": "'JsonSchema.Collapse(JsonSchema, JsonSchema)' has a cyclomatic complexity of 34. Rewrite or refactor the method to reduce complexity to 25." + "text": "In externally visible method 'AnalyzeCommandBase.InvokeCatchingRelevantIOExceptions(Action, Action)', validate parameter 'action' before using it." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", + "uriBaseId": "$(ProjectDir)", + "index": 143 }, "locations": [ { "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Microsoft.Json.Schema.dll", - "uriBaseId": "$(ProjectDir)" + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Driver/Sdk/AnalyzeCommandBase.cs", + "index": 146 + }, + "region": { + "startLine": 398 } }, - "fullyQualifiedLogicalName": "microsoft.json.schema.dll!Microsoft.Json.Schema.JsonSchema.Collapse(Microsoft.Json.Schema.JsonSchema,Microsoft.Json.Schema.JsonSchema)" + "logicalLocations": [ + { + "index": 777, + "fullyQualifiedName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.AnalyzeCommandBase`2.InvokeCatchingRelevantIOExceptions(System.Action,System.Action`1)" + } + ] } ], + "partialFingerprints": { + "UniqueId": "0" + }, "properties": { - "Category": "Microsoft.Maintainability", - "FixCategory": "NonBreaking" + "Category": "Microsoft.Design", + "FixCategory": "DependsOnFix" } }, { - "ruleId": "CA2227", - "level": "warning", + "ruleId": "CA1062", "message": { - "text": "Change 'JsonSchema.Definitions' to be read-only by removing the property setter." + "text": "In externally visible method 'AnalyzeCommandBase.InvokeCatchingRelevantIOExceptions(Action, Action)', validate parameter 'exceptionHandler' before using it." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", + "uriBaseId": "$(ProjectDir)", + "index": 143 }, "locations": [ { "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Microsoft.Json.Schema.dll", - "uriBaseId": "$(ProjectDir)" + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Driver/Sdk/AnalyzeCommandBase.cs", + "index": 146 + }, + "region": { + "startLine": 402 } }, - "fullyQualifiedLogicalName": "microsoft.json.schema.dll!Microsoft.Json.Schema.JsonSchema.Definitions" + "logicalLocations": [ + { + "index": 777, + "fullyQualifiedName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.AnalyzeCommandBase`2.InvokeCatchingRelevantIOExceptions(System.Action,System.Action`1)" + } + ] } ], + "partialFingerprints": { + "UniqueId": "1" + }, "properties": { - "Category": "Microsoft.Usage", - "FixCategory": "Breaking" + "Category": "Microsoft.Design", + "FixCategory": "DependsOnFix" } }, { - "ruleId": "CA2227", - "level": "warning", + "ruleId": "CA1026", + "level": "error", "message": { - "text": "Change 'JsonSchema.Dependencies' to be read-only by removing the property setter." + "text": "Replace method 'AnalyzeCommandBase.LogToolNotification(IAnalysisLogger, string, FailureLevel, Exception)' with an overload that supplies all default arguments." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", + "uriBaseId": "$(ProjectDir)", + "index": 143 }, "locations": [ { "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Microsoft.Json.Schema.dll", - "uriBaseId": "$(ProjectDir)" + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Driver/Sdk/AnalyzeCommandBase.cs", + "index": 146 + }, + "region": { + "startLine": 653 } }, - "fullyQualifiedLogicalName": "microsoft.json.schema.dll!Microsoft.Json.Schema.JsonSchema.Dependencies" + "logicalLocations": [ + { + "index": 778, + "fullyQualifiedName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.AnalyzeCommandBase`2.LogToolNotification(Microsoft.CodeAnalysis.Sarif.IAnalysisLogger,System.String,Microsoft.CodeAnalysis.Sarif.FailureLevel,System.Exception)" + } + ] } ], "properties": { - "Category": "Microsoft.Usage", + "Category": "Microsoft.Design", "FixCategory": "Breaking" } }, { - "ruleId": "CA2227", - "level": "warning", + "ruleId": "CA1062", "message": { - "text": "Change 'JsonSchema.Enum' to be read-only by removing the property setter." + "text": "In externally visible method 'AnalyzeCommandBase.LogToolNotification(IAnalysisLogger, string, FailureLevel, Exception)', validate parameter 'logger' before using it." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", + "uriBaseId": "$(ProjectDir)", + "index": 143 }, "locations": [ { "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Microsoft.Json.Schema.dll", - "uriBaseId": "$(ProjectDir)" + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Driver/Sdk/AnalyzeCommandBase.cs", + "index": 146 + }, + "region": { + "startLine": 668 } }, - "fullyQualifiedLogicalName": "microsoft.json.schema.dll!Microsoft.Json.Schema.JsonSchema.Enum" + "logicalLocations": [ + { + "index": 778, + "fullyQualifiedName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.AnalyzeCommandBase`2.LogToolNotification(Microsoft.CodeAnalysis.Sarif.IAnalysisLogger,System.String,Microsoft.CodeAnalysis.Sarif.FailureLevel,System.Exception)" + } + ] } ], + "partialFingerprints": { + "UniqueId": "0" + }, "properties": { - "Category": "Microsoft.Usage", - "FixCategory": "Breaking" + "Category": "Microsoft.Design", + "FixCategory": "DependsOnFix" } }, { - "ruleId": "CA1502", - "level": "warning", + "ruleId": "CA1000", + "level": "error", "message": { - "text": "'JsonSchema.Equals(JsonSchema)' has a cyclomatic complexity of 50. Rewrite or refactor the method to reduce complexity to 25." + "text": "Remove 'AnalyzeCommandBase.RaiseUnhandledExceptionInDriverCode' from 'AnalyzeCommandBase' or make it an instance member." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", + "uriBaseId": "$(ProjectDir)", + "index": 143 }, "locations": [ { "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Microsoft.Json.Schema.dll", - "uriBaseId": "$(ProjectDir)" + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Driver/Sdk/AnalyzeCommandBase.cs", + "index": 146 + }, + "region": { + "startLine": 29 } }, - "fullyQualifiedLogicalName": "microsoft.json.schema.dll!Microsoft.Json.Schema.JsonSchema.Equals(Microsoft.Json.Schema.JsonSchema)" + "logicalLocations": [ + { + "index": 779, + "fullyQualifiedName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.AnalyzeCommandBase`2.RaiseUnhandledExceptionInDriverCode" + } + ] } ], "properties": { - "Category": "Microsoft.Maintainability", - "FixCategory": "NonBreaking" + "Category": "Microsoft.Design", + "FixCategory": "Breaking" } }, { - "ruleId": "CA2227", - "level": "warning", + "ruleId": "CA1031", + "level": "error", "message": { - "text": "Change 'JsonSchema.OneOf' to be read-only by removing the property setter." + "text": "Modify 'AnalyzeCommandBase.Run(TOptions)' to catch a more specific exception than 'Exception' or rethrow the exception." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", + "uriBaseId": "$(ProjectDir)", + "index": 143 }, "locations": [ { "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Microsoft.Json.Schema.dll", - "uriBaseId": "$(ProjectDir)" + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Driver/Sdk/AnalyzeCommandBase.cs", + "index": 146 + }, + "region": { + "startLine": 58 } }, - "fullyQualifiedLogicalName": "microsoft.json.schema.dll!Microsoft.Json.Schema.JsonSchema.OneOf" + "logicalLocations": [ + { + "index": 780, + "fullyQualifiedName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.AnalyzeCommandBase`2.Run(!1)" + } + ] } ], "properties": { - "Category": "Microsoft.Usage", - "FixCategory": "Breaking" + "Level": "CriticalError", + "Category": "Microsoft.Design", + "FixCategory": "NonBreaking" } }, { - "ruleId": "CA2227", - "level": "warning", + "ruleId": "CA1725", + "level": "error", "message": { - "text": "Change 'JsonSchema.PatternProperties' to be read-only by removing the property setter." + "text": "In member 'AnalyzeCommandBase.Run(TOptions)', change parameter name 'analyzeOptions' to 'options' in order to match the identifier as it has been declared in 'DriverCommand.Run(TOptions)'." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", + "uriBaseId": "$(ProjectDir)", + "index": 143 }, "locations": [ { "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Microsoft.Json.Schema.dll", - "uriBaseId": "$(ProjectDir)" + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Driver/Sdk/AnalyzeCommandBase.cs", + "index": 146 + }, + "region": { + "startLine": 43 } }, - "fullyQualifiedLogicalName": "microsoft.json.schema.dll!Microsoft.Json.Schema.JsonSchema.PatternProperties" + "logicalLocations": [ + { + "index": 780, + "fullyQualifiedName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.AnalyzeCommandBase`2.Run(!1)" + } + ] } ], + "partialFingerprints": { + "UniqueId": "0#" + }, "properties": { - "Category": "Microsoft.Usage", + "Category": "Microsoft.Naming", "FixCategory": "Breaking" } }, { - "ruleId": "CA2227", - "level": "warning", + "ruleId": "CA1026", + "level": "error", "message": { - "text": "Change 'JsonSchema.Properties' to be read-only by removing the property setter." + "text": "Replace method 'AnalyzeCommandBase.ThrowExitApplicationException(TContext, ExitReason, Exception)' with an overload that supplies all default arguments." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", + "uriBaseId": "$(ProjectDir)", + "index": 143 }, "locations": [ { "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Microsoft.Json.Schema.dll", - "uriBaseId": "$(ProjectDir)" + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Driver/Sdk/AnalyzeCommandBase.cs", + "index": 146 + }, + "region": { + "startLine": 610 } }, - "fullyQualifiedLogicalName": "microsoft.json.schema.dll!Microsoft.Json.Schema.JsonSchema.Properties" + "logicalLocations": [ + { + "index": 781, + "fullyQualifiedName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.AnalyzeCommandBase`2.ThrowExitApplicationException(!0,Microsoft.CodeAnalysis.Sarif.Driver.ExitReason,System.Exception)" + } + ] } ], "properties": { - "Category": "Microsoft.Usage", + "Category": "Microsoft.Design", "FixCategory": "Breaking" } }, { - "ruleId": "CA2227", - "level": "warning", + "ruleId": "CA1822", "message": { - "text": "Change 'JsonSchema.Required' to be read-only by removing the property setter." + "text": "The 'this' parameter (or 'Me' in Visual Basic) of 'AnalyzeCommandBase.ValidateFile(TContext, string, bool?)' is never used. Mark the member as static (or Shared in Visual Basic) or use 'this'/'Me' in the method body or at least one property accessor, if appropriate." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", + "uriBaseId": "$(ProjectDir)", + "index": 143 }, "locations": [ { "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Microsoft.Json.Schema.dll", - "uriBaseId": "$(ProjectDir)" + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Driver/Sdk/AnalyzeCommandBase.cs", + "index": 146 + }, + "region": { + "startLine": 160 } }, - "fullyQualifiedLogicalName": "microsoft.json.schema.dll!Microsoft.Json.Schema.JsonSchema.Required" + "logicalLocations": [ + { + "index": 782, + "fullyQualifiedName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.AnalyzeCommandBase`2.ValidateFile(!0,System.String,System.Nullable`1)" + } + ] } ], "properties": { - "Category": "Microsoft.Usage", - "FixCategory": "Breaking" + "Category": "Microsoft.Performance", + "FixCategory": "NonBreaking" } }, { - "ruleId": "CA2227", - "level": "warning", + "ruleId": "CA1002", + "level": "error", "message": { - "text": "Change 'JsonSchema.Type' to be read-only by removing the property setter." + "text": "Change 'List' in 'ArgumentSplitter.CommandLineToArgvW(string)' to use Collection, ReadOnlyCollection or KeyedCollection" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", + "uriBaseId": "$(ProjectDir)", + "index": 143 }, "locations": [ { "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Microsoft.Json.Schema.dll", - "uriBaseId": "$(ProjectDir)" + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Driver/ArgumentSplitter.cs", + "index": 147 + }, + "region": { + "startLine": 26 } }, - "fullyQualifiedLogicalName": "microsoft.json.schema.dll!Microsoft.Json.Schema.JsonSchema.Type" + "logicalLocations": [ + { + "index": 784, + "fullyQualifiedName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.ArgumentSplitter.CommandLineToArgvW(System.String)" + } + ] } ], "properties": { - "Category": "Microsoft.Usage", + "Category": "Microsoft.Design", "FixCategory": "Breaking" } }, { - "ruleId": "CA1721", - "level": "error", + "ruleId": "CA1704", "message": { - "text": "The property name 'JsonSchema.Type' is confusing given the existence of inherited method 'object.GetType()'. Rename or remove this property.", - "messageId": "BaseType" + "text": "Correct the spelling of 'Argv' in member name 'ArgumentSplitter.CommandLineToArgvW(string)' or remove it entirely if it represents any sort of Hungarian notation.", + "id": "Member" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", + "uriBaseId": "$(ProjectDir)", + "index": 143 }, "locations": [ { "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Microsoft.Json.Schema.dll", - "uriBaseId": "$(ProjectDir)" + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Driver/ArgumentSplitter.cs", + "index": 147 + }, + "region": { + "startLine": 26 } }, - "fullyQualifiedLogicalName": "microsoft.json.schema.dll!Microsoft.Json.Schema.JsonSchema.Type" + "logicalLocations": [ + { + "index": 784, + "fullyQualifiedName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.ArgumentSplitter.CommandLineToArgvW(System.String)" + } + ] } ], "partialFingerprints": { - "UniqueId": "BaseType" + "UniqueId": "Argv#Member" }, "properties": { + "Level": "CriticalWarning", "Category": "Microsoft.Naming", "FixCategory": "Breaking" } }, { - "ruleId": "CA1725", - "level": "error", + "ruleId": "CA1062", "message": { - "text": "In member 'JsonSchemaContractResolver.ResolveContract(Type)', change parameter name 'objectType' to 'type' in order to match the identifier as it has been declared in 'CamelCasePropertyNamesContractResolver.ResolveContract(Type)'." + "text": "In externally visible method 'DefaultDriverOptions.CreateRuleSpecificOption(IRule, PerLanguageOption)', validate parameter 'rule' before using it." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", + "uriBaseId": "$(ProjectDir)", + "index": 143 }, "locations": [ { "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Microsoft.Json.Schema.dll", - "uriBaseId": "$(ProjectDir)" + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Driver/Sdk/DefaultDriverOptions.cs", + "index": 148 + }, + "region": { + "startLine": 39 } }, - "fullyQualifiedLogicalName": "microsoft.json.schema.dll!Microsoft.Json.Schema.JsonSchemaContractResolver.ResolveContract(System.Type)" + "logicalLocations": [ + { + "index": 786, + "fullyQualifiedName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.DefaultDriverOptions.CreateRuleSpecificOption`1(Microsoft.CodeAnalysis.Sarif.IRule,Microsoft.CodeAnalysis.Sarif.PerLanguageOption`1)" + } + ] } ], "partialFingerprints": { - "UniqueId": "0#" + "UniqueId": "0" }, "properties": { - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" + "Category": "Microsoft.Design", + "FixCategory": "DependsOnFix" } }, { "ruleId": "CA1062", - "level": "warning", "message": { - "text": "In externally visible method 'JsonSchemaExtensions.SafeGetType(this JsonSchema)', validate parameter 'schema' before using it." + "text": "In externally visible method 'DefaultDriverOptions.CreateRuleSpecificOption(IRule, PerLanguageOption)', validate parameter 'option' before using it." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", + "uriBaseId": "$(ProjectDir)", + "index": 143 }, "locations": [ { "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Microsoft.Json.Schema.dll", - "uriBaseId": "$(ProjectDir)" + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Driver/Sdk/DefaultDriverOptions.cs", + "index": 148 + }, + "region": { + "startLine": 39 } }, - "fullyQualifiedLogicalName": "microsoft.json.schema.dll!Microsoft.Json.Schema.JsonSchemaExtensions.SafeGetType(Microsoft.Json.Schema.JsonSchema)" + "logicalLocations": [ + { + "index": 786, + "fullyQualifiedName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.DefaultDriverOptions.CreateRuleSpecificOption`1(Microsoft.CodeAnalysis.Sarif.IRule,Microsoft.CodeAnalysis.Sarif.PerLanguageOption`1)" + } + ] } ], "partialFingerprints": { - "UniqueId": "0" + "UniqueId": "1" }, "properties": { "Category": "Microsoft.Design", @@ -9489,172 +27042,211 @@ } }, { - "ruleId": "CA1704", - "level": "warning", + "ruleId": "CA2211", "message": { - "text": "In method 'JsonSerializerExtensions.CaptureError(this JsonSerializer, JToken, ErrorNumber, params object[])', correct the spelling of 'j' in parameter name 'jToken' or remove it entirely if it represents any sort of Hungarian notation.", - "messageId": "MemberParameter" + "text": "Consider making 'DefaultDriverOptions.Instance' non-public or a constant." }, "locations": [ { "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Microsoft.Json.Schema.dll", - "uriBaseId": "$(ProjectDir)" + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", + "uriBaseId": "$(ProjectDir)", + "index": 143 } }, - "fullyQualifiedLogicalName": "microsoft.json.schema.dll!Microsoft.Json.Schema.JsonSerializerExtensions.CaptureError(Newtonsoft.Json.JsonSerializer,Newtonsoft.Json.Linq.JToken,Microsoft.Json.Schema.ErrorNumber,System.Object[])" + "logicalLocations": [ + { + "index": 787, + "fullyQualifiedName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.DefaultDriverOptions.Instance" + } + ] } ], - "partialFingerprints": { - "UniqueId": "j#MemberParameter" - }, "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Naming", + "Category": "Microsoft.Usage", "FixCategory": "Breaking" } }, { - "ruleId": "CA1062", - "level": "warning", + "ruleId": "CA1710", "message": { - "text": "In externally visible method 'JsonSerializerExtensions.CaptureError(this JsonSerializer, JToken, ErrorNumber, params object[])', validate parameter 'serializer' before using it." + "text": "FxCop results that have been suppressed do not contain a message string." }, "locations": [ { "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Microsoft.Json.Schema.dll", - "uriBaseId": "$(ProjectDir)" + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", + "uriBaseId": "$(ProjectDir)", + "index": 143 } }, - "fullyQualifiedLogicalName": "microsoft.json.schema.dll!Microsoft.Json.Schema.JsonSerializerExtensions.CaptureError(Newtonsoft.Json.JsonSerializer,Newtonsoft.Json.Linq.JToken,Microsoft.Json.Schema.ErrorNumber,System.Object[])" + "logicalLocations": [ + { + "index": 788, + "fullyQualifiedName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.DisposableEnumerable`1" + } + ] + } + ], + "suppressions": [ + { + "kind": "inSource" } ], - "partialFingerprints": { - "UniqueId": "0" - }, "properties": { - "Category": "Microsoft.Design", - "FixCategory": "DependsOnFix" + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" } }, { - "ruleId": "CA2237", + "ruleId": "CA1000", "level": "error", "message": { - "text": "Add [Serializable] to 'JsonSyntaxException' as this type implements ISerializable." + "text": "Remove 'DriverCommand.FAILURE' from 'DriverCommand' or make it an instance member." }, "locations": [ { "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Microsoft.Json.Schema.dll", - "uriBaseId": "$(ProjectDir)" + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", + "uriBaseId": "$(ProjectDir)", + "index": 143 } }, - "fullyQualifiedLogicalName": "microsoft.json.schema.dll!Microsoft.Json.Schema.JsonSyntaxException" + "logicalLocations": [ + { + "index": 790, + "fullyQualifiedName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.DriverCommand`1.FAILURE" + } + ] } ], "properties": { - "Category": "Microsoft.Usage", - "FixCategory": "NonBreaking" + "Category": "Microsoft.Design", + "FixCategory": "Breaking" } }, { - "ruleId": "CA1032", + "ruleId": "CA1709", "level": "error", "message": { - "text": "Change the accessibility of 'JsonSyntaxException.JsonSyntaxException(SerializationInfo, StreamingContext)' to protected.", - "messageId": "Accessibility" + "text": "Correct the casing of 'FAILURE' in member name 'DriverCommand.FAILURE' by changing it to 'Failure'.", + "id": "Member" }, "locations": [ { "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Microsoft.Json.Schema.dll", - "uriBaseId": "$(ProjectDir)" + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", + "uriBaseId": "$(ProjectDir)", + "index": 143 } }, - "fullyQualifiedLogicalName": "microsoft.json.schema.dll!Microsoft.Json.Schema.JsonSyntaxException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)" + "logicalLocations": [ + { + "index": 790, + "fullyQualifiedName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.DriverCommand`1.FAILURE" + } + ] } ], "partialFingerprints": { - "UniqueId": "Accessibility" + "UniqueId": "FAILURE#Member" }, "properties": { - "Category": "Microsoft.Design", - "FixCategory": "NonBreaking" + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" } }, { - "ruleId": "CA1704", - "level": "warning", + "ruleId": "CA1000", + "level": "error", "message": { - "text": "In method 'JTokenTypeExtensions.ToSchemaType(this JTokenType)', correct the spelling of 'j' in parameter name 'jTokenType' or remove it entirely if it represents any sort of Hungarian notation.", - "messageId": "MemberParameter" + "text": "Remove 'DriverCommand.SUCCESS' from 'DriverCommand' or make it an instance member." }, "locations": [ { "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Microsoft.Json.Schema.dll", - "uriBaseId": "$(ProjectDir)" + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", + "uriBaseId": "$(ProjectDir)", + "index": 143 } }, - "fullyQualifiedLogicalName": "microsoft.json.schema.dll!Microsoft.Json.Schema.JTokenTypeExtensions.ToSchemaType(Newtonsoft.Json.Linq.JTokenType)" + "logicalLocations": [ + { + "index": 791, + "fullyQualifiedName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.DriverCommand`1.SUCCESS" + } + ] } ], - "partialFingerprints": { - "UniqueId": "j#MemberParameter" - }, "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Naming", + "Category": "Microsoft.Design", "FixCategory": "Breaking" } }, { - "ruleId": "CA1062", - "level": "warning", + "ruleId": "CA1709", + "level": "error", "message": { - "text": "In externally visible method 'MustBeStringConverter.CanConvert(Type)', validate parameter 'objectType' before using it." + "text": "Correct the casing of 'SUCCESS' in member name 'DriverCommand.SUCCESS' by changing it to 'Success'.", + "id": "Member" }, "locations": [ { "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Microsoft.Json.Schema.dll", - "uriBaseId": "$(ProjectDir)" + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", + "uriBaseId": "$(ProjectDir)", + "index": 143 } }, - "fullyQualifiedLogicalName": "microsoft.json.schema.dll!Microsoft.Json.Schema.MustBeStringConverter.CanConvert(System.Type)" + "logicalLocations": [ + { + "index": 791, + "fullyQualifiedName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.DriverCommand`1.SUCCESS" + } + ] } ], "partialFingerprints": { - "UniqueId": "0" + "UniqueId": "SUCCESS#Member" }, "properties": { - "Category": "Microsoft.Design", - "FixCategory": "DependsOnFix" + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" } }, { "ruleId": "CA1062", - "level": "warning", "message": { - "text": "In externally visible method 'MustBeStringConverter.ReadJson(JsonReader, Type, object, JsonSerializer)', validate parameter 'reader' before using it." + "text": "In externally visible method 'DriverExtensionMethods.ConvertToLoggingOptions(this AnalyzeOptionsBase)', validate parameter 'analyzeOptions' before using it." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", + "uriBaseId": "$(ProjectDir)", + "index": 143 }, "locations": [ { "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Microsoft.Json.Schema.dll", - "uriBaseId": "$(ProjectDir)" + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Driver/DriverExtensionMethods.cs", + "index": 149 + }, + "region": { + "startLine": 14 } }, - "fullyQualifiedLogicalName": "microsoft.json.schema.dll!Microsoft.Json.Schema.MustBeStringConverter.ReadJson(Newtonsoft.Json.JsonReader,System.Type,System.Object,Newtonsoft.Json.JsonSerializer)" + "logicalLocations": [ + { + "index": 793, + "fullyQualifiedName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.DriverExtensionMethods.ConvertToLoggingOptions(Microsoft.CodeAnalysis.Sarif.Driver.AnalyzeOptionsBase)" + } + ] } ], "partialFingerprints": { @@ -9666,20 +27258,30 @@ } }, { - "ruleId": "CA1802", - "level": "warning", + "ruleId": "CA1811", "message": { - "text": "Field 'RefProperty.s_inputPattern' is declared as 'static readonly' but is initialized with a constant value '(?[^\"]\")\\$ref(?\"\\s*:)'. Mark this field as 'const' instead." + "text": "FxCop results that have been suppressed do not contain a message string." }, "locations": [ { "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Microsoft.Json.Schema.dll", - "uriBaseId": "$(ProjectDir)" + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", + "uriBaseId": "$(ProjectDir)", + "index": 143 } }, - "fullyQualifiedLogicalName": "microsoft.json.schema.dll!Microsoft.Json.Schema.RefProperty.s_inputPattern" + "logicalLocations": [ + { + "index": 795, + "fullyQualifiedName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.DriverResources..ctor()" + } + ] + } + ], + "suppressions": [ + { + "kind": "inSource" } ], "properties": { @@ -9688,414 +27290,581 @@ } }, { - "ruleId": "CA1802", - "level": "warning", + "ruleId": "CA2000", "message": { - "text": "Field 'RefProperty.s_outputPattern' is declared as 'static readonly' but is initialized with a constant value '(?[^\"]\")\\$\\$ref(?\"\\s*:)'. Mark this field as 'const' instead." + "text": "In method 'DriverUtilities.GetExports(IEnumerable)', call System.IDisposable.Dispose on object 'container' before all references to it are out of scope.", + "id": "NonExceptionEdge" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", + "uriBaseId": "$(ProjectDir)", + "index": 143 }, "locations": [ { "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Microsoft.Json.Schema.dll", - "uriBaseId": "$(ProjectDir)" + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Driver/Sdk/CompositionUtilities.cs", + "index": 150 + }, + "region": { + "startLine": 16 } }, - "fullyQualifiedLogicalName": "microsoft.json.schema.dll!Microsoft.Json.Schema.RefProperty.s_outputPattern" + "logicalLocations": [ + { + "index": 797, + "fullyQualifiedName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.DriverUtilities.GetExports`1(System.Collections.Generic.IEnumerable`1)" + } + ] } ], + "partialFingerprints": { + "UniqueId": "NonExceptionEdge" + }, "properties": { - "Category": "Microsoft.Performance", - "FixCategory": "NonBreaking" + "Category": "Microsoft.Reliability", + "FixCategory": "DependsOnFix" } }, { - "ruleId": "CA1062", - "level": "warning", + "ruleId": "CA1060", "message": { - "text": "In externally visible method 'SchemaReader.ReadSchema(TextReader, string)', validate parameter 'reader' before using it." + "text": "Because it is a P/Invoke method, 'EntryPointUtilities.CommandLineToArgvW(string, out int)' should be defined in a class named NativeMethods, SafeNativeMethods, or UnsafeNativeMethods." }, "locations": [ { "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Microsoft.Json.Schema.dll", - "uriBaseId": "$(ProjectDir)" + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", + "uriBaseId": "$(ProjectDir)", + "index": 143 } }, - "fullyQualifiedLogicalName": "microsoft.json.schema.dll!Microsoft.Json.Schema.SchemaReader.ReadSchema(System.IO.TextReader,System.String)" + "logicalLocations": [ + { + "index": 799, + "fullyQualifiedName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.EntryPointUtilities.CommandLineToArgvW(System.String,System.Int32&)" + } + ] } ], - "partialFingerprints": { - "UniqueId": "0" - }, "properties": { + "Level": "CriticalWarning", "Category": "Microsoft.Design", - "FixCategory": "DependsOnFix" + "FixCategory": "Breaking" } }, { - "ruleId": "CA2000", - "level": "warning", + "ruleId": "CA1062", "message": { - "text": "In method 'SchemaReader.ReadSchema(string, string)', object 'new StringReader(jsonText)' is not disposed along all exception paths. Call System.IDisposable.Dispose on object 'new StringReader(jsonText)' before all references to it are out of scope.", - "messageId": "ExceptionEdge" + "text": "In externally visible method 'EntryPointUtilities.GenerateArguments(string[], IFileSystem, IEnvironmentVariables)', validate parameter 'args' before using it." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", + "uriBaseId": "$(ProjectDir)", + "index": 143 }, "locations": [ { "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Microsoft.Json.Schema.dll", - "uriBaseId": "$(ProjectDir)" + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Driver/Sdk/EntryPointUtilities.cs", + "index": 151 + }, + "region": { + "startLine": 19 } }, - "fullyQualifiedLogicalName": "microsoft.json.schema.dll!Microsoft.Json.Schema.SchemaReader.ReadSchema(System.String,System.String)" + "logicalLocations": [ + { + "index": 800, + "fullyQualifiedName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.EntryPointUtilities.GenerateArguments(System.String[],Microsoft.CodeAnalysis.Sarif.IFileSystem,Microsoft.CodeAnalysis.Sarif.Driver.IEnvironmentVariables)" + } + ] } ], "partialFingerprints": { - "UniqueId": "ExceptionEdge" + "UniqueId": "0" }, "properties": { - "Category": "Microsoft.Reliability", + "Category": "Microsoft.Design", "FixCategory": "DependsOnFix" } }, { - "ruleId": "CA1806", - "level": "warning", + "ruleId": "CA1062", "message": { - "text": "'SchemaTypeConverter.SchemaTypeFromString(string)' calls 'Enum.TryParse(string, out SchemaType)' but does not explicitly check whether the conversion succeeded. Either use the return value in a conditional statement or verify that the call site expects that the out argument will be set to the default value when the conversion fails.", - "messageId": "TryParse" + "text": "In externally visible method 'EntryPointUtilities.GenerateArguments(string[], IFileSystem, IEnvironmentVariables)', validate parameter 'fileSystem' before using it." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", + "uriBaseId": "$(ProjectDir)", + "index": 143 }, "locations": [ { "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Microsoft.Json.Schema.dll", - "uriBaseId": "$(ProjectDir)" + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Driver/Sdk/EntryPointUtilities.cs", + "index": 151 + }, + "region": { + "startLine": 31 } }, - "fullyQualifiedLogicalName": "microsoft.json.schema.dll!Microsoft.Json.Schema.SchemaTypeConverter.SchemaTypeFromString(System.String)" + "logicalLocations": [ + { + "index": 800, + "fullyQualifiedName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.EntryPointUtilities.GenerateArguments(System.String[],Microsoft.CodeAnalysis.Sarif.IFileSystem,Microsoft.CodeAnalysis.Sarif.Driver.IEnvironmentVariables)" + } + ] } ], "partialFingerprints": { - "UniqueId": "System.Enum.TryParse(System.String,Microsoft.Json.Schema.SchemaType@)#TryParse" + "UniqueId": "1" }, "properties": { - "Category": "Microsoft.Usage", - "FixCategory": "NonBreaking" + "Category": "Microsoft.Design", + "FixCategory": "DependsOnFix" } }, { - "ruleId": "CA1308", - "level": "error", + "ruleId": "CA1062", "message": { - "text": "In method 'SchemaTypeConverter.WriteJson(JsonWriter, object, JsonSerializer)', replace the call to 'string.ToLowerInvariant()' with String.ToUpperInvariant().", - "messageId": "ToUpperInvariant" + "text": "In externally visible method 'EntryPointUtilities.GenerateArguments(string[], IFileSystem, IEnvironmentVariables)', validate parameter 'environmentVariables' before using it." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", + "uriBaseId": "$(ProjectDir)", + "index": 143 }, "locations": [ { "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Microsoft.Json.Schema.dll", - "uriBaseId": "$(ProjectDir)" + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Driver/Sdk/EntryPointUtilities.cs", + "index": 151 + }, + "region": { + "startLine": 30 } }, - "fullyQualifiedLogicalName": "microsoft.json.schema.dll!Microsoft.Json.Schema.SchemaTypeConverter.WriteJson(Newtonsoft.Json.JsonWriter,System.Object,Newtonsoft.Json.JsonSerializer)" + "logicalLocations": [ + { + "index": 800, + "fullyQualifiedName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.EntryPointUtilities.GenerateArguments(System.String[],Microsoft.CodeAnalysis.Sarif.IFileSystem,Microsoft.CodeAnalysis.Sarif.Driver.IEnvironmentVariables)" + } + ] } ], "partialFingerprints": { - "UniqueId": "ToUpperInvariant" + "UniqueId": "2" }, "properties": { - "Category": "Microsoft.Globalization", - "FixCategory": "NonBreaking" + "Category": "Microsoft.Design", + "FixCategory": "DependsOnFix" } }, { - "ruleId": "CA1062", - "level": "warning", + "ruleId": "CA1060", "message": { - "text": "In externally visible method 'SchemaTypeConverter.WriteJson(JsonWriter, object, JsonSerializer)', validate parameter 'writer' before using it." + "text": "Because it is a P/Invoke method, 'EntryPointUtilities.LocalFree(IntPtr)' should be defined in a class named NativeMethods, SafeNativeMethods, or UnsafeNativeMethods." }, "locations": [ { "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Microsoft.Json.Schema.dll", - "uriBaseId": "$(ProjectDir)" + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", + "uriBaseId": "$(ProjectDir)", + "index": 143 } }, - "fullyQualifiedLogicalName": "microsoft.json.schema.dll!Microsoft.Json.Schema.SchemaTypeConverter.WriteJson(Newtonsoft.Json.JsonWriter,System.Object,Newtonsoft.Json.JsonSerializer)" + "logicalLocations": [ + { + "index": 801, + "fullyQualifiedName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.EntryPointUtilities.LocalFree(System.IntPtr)" + } + ] } ], - "partialFingerprints": { - "UniqueId": "0" - }, "properties": { + "Level": "CriticalWarning", "Category": "Microsoft.Design", - "FixCategory": "DependsOnFix" + "FixCategory": "Breaking" } }, { - "ruleId": "CA1308", - "level": "error", + "ruleId": "CA1062", "message": { - "text": "In method 'SchemaTypeConverter.WriteJson(JsonWriter, object, JsonSerializer)', replace the call to 'string.ToLowerInvariant()' with String.ToUpperInvariant().", - "messageId": "ToUpperInvariant" + "text": "FxCop results that have been suppressed do not contain a message string." }, "locations": [ { "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Microsoft.Json.Schema.dll", - "uriBaseId": "$(ProjectDir)" + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", + "uriBaseId": "$(ProjectDir)", + "index": 143 } }, - "fullyQualifiedLogicalName": "microsoft.json.schema.dll!Microsoft.Json.Schema.SchemaTypeConverter+<>c.b__3_0(Microsoft.Json.Schema.SchemaType)" + "logicalLocations": [ + { + "index": 803, + "fullyQualifiedName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.EnumerableExtensions.LexicographicalCompare`1(System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IComparer`1)" + } + ] } ], "partialFingerprints": { - "UniqueId": "ToUpperInvariant" + "UniqueId": "0" }, + "suppressions": [ + { + "kind": "inSource" + } + ], "properties": { - "Category": "Microsoft.Globalization", - "FixCategory": "NonBreaking" + "Category": "Microsoft.Design", + "FixCategory": "DependsOnFix" } }, { - "ruleId": "CA2237", - "level": "error", + "ruleId": "CA1062", "message": { - "text": "Add [Serializable] to 'SchemaValidationException' as this type implements ISerializable." + "text": "FxCop results that have been suppressed do not contain a message string." }, "locations": [ { "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Microsoft.Json.Schema.dll", - "uriBaseId": "$(ProjectDir)" + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", + "uriBaseId": "$(ProjectDir)", + "index": 143 } }, - "fullyQualifiedLogicalName": "microsoft.json.schema.dll!Microsoft.Json.Schema.SchemaValidationException" + "logicalLocations": [ + { + "index": 803, + "fullyQualifiedName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.EnumerableExtensions.LexicographicalCompare`1(System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IComparer`1)" + } + ] } ], - "properties": { - "Category": "Microsoft.Usage", - "FixCategory": "NonBreaking" + "partialFingerprints": { + "UniqueId": "1" + }, + "suppressions": [ + { + "kind": "inSource" + } + ], + "properties": { + "Category": "Microsoft.Design", + "FixCategory": "DependsOnFix" } }, { - "ruleId": "CA1704", - "level": "warning", + "ruleId": "CA1045", "message": { - "text": "In method 'SchemaValidationException.SchemaValidationException(JToken, ErrorNumber, params object[])', correct the spelling of 'j' in parameter name 'jToken' or remove it entirely if it represents any sort of Hungarian notation.", - "messageId": "MemberParameter" + "text": "FxCop results that have been suppressed do not contain a message string." }, "locations": [ { "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Microsoft.Json.Schema.dll", - "uriBaseId": "$(ProjectDir)" + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", + "uriBaseId": "$(ProjectDir)", + "index": 143 } }, - "fullyQualifiedLogicalName": "microsoft.json.schema.dll!Microsoft.Json.Schema.SchemaValidationException..ctor(Newtonsoft.Json.Linq.JToken,Microsoft.Json.Schema.ErrorNumber,System.Object[])" + "logicalLocations": [ + { + "index": 804, + "fullyQualifiedName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.EnumerableExtensions.RemoveIf`1(!!0[]&,System.Func`2)" + } + ] } ], "partialFingerprints": { - "UniqueId": "j#MemberParameter" + "UniqueId": "0#" }, + "suppressions": [ + { + "kind": "inSource" + } + ], "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Naming", + "Category": "Microsoft.Design", "FixCategory": "Breaking" } }, { - "ruleId": "CA1032", - "level": "error", + "ruleId": "CA1062", "message": { - "text": "Change the accessibility of 'SchemaValidationException.SchemaValidationException(SerializationInfo, StreamingContext)' to protected.", - "messageId": "Accessibility" + "text": "FxCop results that have been suppressed do not contain a message string." }, "locations": [ { "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Microsoft.Json.Schema.dll", - "uriBaseId": "$(ProjectDir)" + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", + "uriBaseId": "$(ProjectDir)", + "index": 143 } }, - "fullyQualifiedLogicalName": "microsoft.json.schema.dll!Microsoft.Json.Schema.SchemaValidationException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)" + "logicalLocations": [ + { + "index": 804, + "fullyQualifiedName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.EnumerableExtensions.RemoveIf`1(!!0[]&,System.Func`2)" + } + ] } ], "partialFingerprints": { - "UniqueId": "Accessibility" + "UniqueId": "0" }, + "suppressions": [ + { + "kind": "inSource" + } + ], "properties": { "Category": "Microsoft.Design", - "FixCategory": "NonBreaking" + "FixCategory": "DependsOnFix" } }, { - "ruleId": "CA1819", - "level": "warning", + "ruleId": "CA1811", "message": { - "text": "Change 'SchemaValidationException.Args' to return a collection or make it a method." + "text": "FxCop results that have been suppressed do not contain a message string." }, "locations": [ { "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Microsoft.Json.Schema.dll", - "uriBaseId": "$(ProjectDir)" + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", + "uriBaseId": "$(ProjectDir)", + "index": 143 } }, - "fullyQualifiedLogicalName": "microsoft.json.schema.dll!Microsoft.Json.Schema.SchemaValidationException.Args" + "logicalLocations": [ + { + "index": 806, + "fullyQualifiedName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.ExceptionStrings..ctor()" + } + ] + } + ], + "suppressions": [ + { + "kind": "inSource" } ], "properties": { "Category": "Microsoft.Performance", - "FixCategory": "Breaking" + "FixCategory": "NonBreaking" } }, { - "ruleId": "CA1026", + "ruleId": "CA1032", "level": "error", "message": { - "text": "Replace method 'SchemaWriter.WriteSchema(JsonWriter, JsonSchema, Formatting)' with an overload that supplies all default arguments." + "text": "Add the following constructor to 'ExitApplicationException': protected ExitApplicationException`1(SerializationInfo, StreamingContext).", + "id": "MissingConstructor" }, "locations": [ { "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Microsoft.Json.Schema.dll", - "uriBaseId": "$(ProjectDir)" + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", + "uriBaseId": "$(ProjectDir)", + "index": 143 } }, - "fullyQualifiedLogicalName": "microsoft.json.schema.dll!Microsoft.Json.Schema.SchemaWriter.WriteSchema(Newtonsoft.Json.JsonWriter,Microsoft.Json.Schema.JsonSchema,Newtonsoft.Json.Formatting)" + "logicalLocations": [ + { + "index": 807, + "fullyQualifiedName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.ExitApplicationException`1" + } + ] } ], + "partialFingerprints": { + "UniqueId": "MissingConstructor" + }, "properties": { "Category": "Microsoft.Design", - "FixCategory": "Breaking" + "FixCategory": "NonBreaking" } }, { - "ruleId": "CA1026", + "ruleId": "CA2237", "level": "error", "message": { - "text": "Replace method 'SchemaWriter.WriteSchema(TextWriter, JsonSchema, Formatting)' with an overload that supplies all default arguments." + "text": "Add [Serializable] to 'ExitApplicationException' as this type implements ISerializable." }, "locations": [ { "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Microsoft.Json.Schema.dll", - "uriBaseId": "$(ProjectDir)" + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", + "uriBaseId": "$(ProjectDir)", + "index": 143 } }, - "fullyQualifiedLogicalName": "microsoft.json.schema.dll!Microsoft.Json.Schema.SchemaWriter.WriteSchema(System.IO.TextWriter,Microsoft.Json.Schema.JsonSchema,Newtonsoft.Json.Formatting)" + "logicalLocations": [ + { + "index": 807, + "fullyQualifiedName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.ExitApplicationException`1" + } + ] } ], "properties": { - "Category": "Microsoft.Design", - "FixCategory": "Breaking" + "Category": "Microsoft.Usage", + "FixCategory": "NonBreaking" } }, { - "ruleId": "CA2000", - "level": "warning", + "ruleId": "CA1303", "message": { - "text": "In method 'SchemaWriter.WriteSchema(TextWriter, JsonSchema, Formatting)', call System.IDisposable.Dispose on object 'new StringWriter()' before all references to it are out of scope.", - "messageId": "NonExceptionEdge" + "text": "Method 'ExportConfigurationCommandBase.Run(ExportConfigurationOptions)' passes a literal string as parameter 'value' of a call to 'Console.WriteLine(string)'. Retrieve the following string(s) from a resource table instead: \"Configuration file saved to: \".", + "id": "KnownValue" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", + "uriBaseId": "$(ProjectDir)", + "index": 143 }, "locations": [ { "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Microsoft.Json.Schema.dll", - "uriBaseId": "$(ProjectDir)" + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Driver/Sdk/ExportConfigurationCommandBase.cs", + "index": 152 + }, + "region": { + "startLine": 78 } }, - "fullyQualifiedLogicalName": "microsoft.json.schema.dll!Microsoft.Json.Schema.SchemaWriter.WriteSchema(System.IO.TextWriter,Microsoft.Json.Schema.JsonSchema,Newtonsoft.Json.Formatting)" + "logicalLocations": [ + { + "index": 809, + "fullyQualifiedName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.ExportConfigurationCommandBase.Run(Microsoft.CodeAnalysis.Sarif.Driver.ExportConfigurationOptions)" + } + ] } ], "partialFingerprints": { - "UniqueId": "NonExceptionEdge" + "UniqueId": "System.Console.WriteLine(System.String)#KnownValue" }, "properties": { - "Category": "Microsoft.Reliability", + "Category": "Microsoft.Globalization", "FixCategory": "DependsOnFix" } }, { - "ruleId": "CA1305", + "ruleId": "CA1031", "level": "error", "message": { - "text": "Because the behavior of 'StringWriter.StringWriter()' could vary based on the current user's locale settings, replace this call in 'SchemaWriter.WriteSchema(TextWriter, JsonSchema, Formatting)' with a call to 'StringWriter.StringWriter(IFormatProvider)'. If the result of 'StringWriter.StringWriter(IFormatProvider)' will be based on input from the user, specify 'CultureInfo.CurrentCulture' as the 'IFormatProvider' parameter. Otherwise, if the result will based on input stored and accessed by software, such as when it is loaded from disk or from a database, specify 'CultureInfo.InvariantCulture'.", - "messageId": "IFormatProviderAlternate" + "text": "Modify 'ExportConfigurationCommandBase.Run(ExportConfigurationOptions)' to catch a more specific exception than 'Exception' or rethrow the exception." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", + "uriBaseId": "$(ProjectDir)", + "index": 143 }, "locations": [ { "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Microsoft.Json.Schema.dll", - "uriBaseId": "$(ProjectDir)" + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Driver/Sdk/ExportConfigurationCommandBase.cs", + "index": 152 + }, + "region": { + "startLine": 82 } }, - "fullyQualifiedLogicalName": "microsoft.json.schema.dll!Microsoft.Json.Schema.SchemaWriter.WriteSchema(System.IO.TextWriter,Microsoft.Json.Schema.JsonSchema,Newtonsoft.Json.Formatting)" + "logicalLocations": [ + { + "index": 809, + "fullyQualifiedName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.ExportConfigurationCommandBase.Run(Microsoft.CodeAnalysis.Sarif.Driver.ExportConfigurationOptions)" + } + ] } ], - "partialFingerprints": { - "UniqueId": "System.IO.StringWriter.#ctor#IFormatProviderAlternate" - }, "properties": { - "Category": "Microsoft.Globalization", + "Level": "CriticalError", + "Category": "Microsoft.Design", "FixCategory": "NonBreaking" } }, { - "ruleId": "CA1062", - "level": "warning", + "ruleId": "CA1725", + "level": "error", "message": { - "text": "In externally visible method 'SchemaWriter.WriteSchema(TextWriter, JsonSchema, Formatting)', validate parameter 'writer' before using it." + "text": "In member 'ExportConfigurationCommandBase.Run(ExportConfigurationOptions)', change parameter name 'exportOptions' to 'options' in order to match the identifier as it has been declared in 'DriverCommand.Run(ExportConfigurationOptions)'." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", + "uriBaseId": "$(ProjectDir)", + "index": 143 }, "locations": [ { "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Microsoft.Json.Schema.dll", - "uriBaseId": "$(ProjectDir)" + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Driver/Sdk/ExportConfigurationCommandBase.cs", + "index": 152 + }, + "region": { + "startLine": 14 } }, - "fullyQualifiedLogicalName": "microsoft.json.schema.dll!Microsoft.Json.Schema.SchemaWriter.WriteSchema(System.IO.TextWriter,Microsoft.Json.Schema.JsonSchema,Newtonsoft.Json.Formatting)" + "logicalLocations": [ + { + "index": 809, + "fullyQualifiedName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.ExportConfigurationCommandBase.Run(Microsoft.CodeAnalysis.Sarif.Driver.ExportConfigurationOptions)" + } + ] } ], "partialFingerprints": { - "UniqueId": "0" + "UniqueId": "0#" }, "properties": { - "Category": "Microsoft.Design", - "FixCategory": "DependsOnFix" + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" } }, { "ruleId": "CA1062", - "level": "warning", "message": { - "text": "In externally visible method 'UriOrFragment.UriOrFragment(UriOrFragment)', validate parameter 'other' before using it." + "text": "In externally visible method 'ExportConfigurationCommandBase.Run(ExportConfigurationOptions)', validate parameter 'exportOptions' before using it." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", + "uriBaseId": "$(ProjectDir)", + "index": 143 }, "locations": [ { "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Microsoft.Json.Schema.dll", - "uriBaseId": "$(ProjectDir)" + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Driver/Sdk/ExportConfigurationCommandBase.cs", + "index": 152 + }, + "region": { + "startLine": 59 } }, - "fullyQualifiedLogicalName": "microsoft.json.schema.dll!Microsoft.Json.Schema.UriOrFragment..ctor(Microsoft.Json.Schema.UriOrFragment)" + "logicalLocations": [ + { + "index": 809, + "fullyQualifiedName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.ExportConfigurationCommandBase.Run(Microsoft.CodeAnalysis.Sarif.Driver.ExportConfigurationOptions)" + } + ] } ], "partialFingerprints": { @@ -10107,50 +27876,72 @@ } }, { - "ruleId": "CA1720", - "level": "error", + "ruleId": "CA1822", "message": { - "text": "In member 'UriOrFragment.UriOrFragment(string)', consider replacing the data type identifier 'String' in parameter name 'uriString' with a more generic term, such as 'value'.", - "messageId": "LanguageIndependentMemberParameter" + "text": "The 'this' parameter (or 'Me' in Visual Basic) of 'ExportRulesMetadataCommandBase.GetIdIntegerSuffix(string)' is never used. Mark the member as static (or Shared in Visual Basic) or use 'this'/'Me' in the method body or at least one property accessor, if appropriate." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", + "uriBaseId": "$(ProjectDir)", + "index": 143 }, "locations": [ { "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Microsoft.Json.Schema.dll", - "uriBaseId": "$(ProjectDir)" + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Driver/Sdk/ExportRulesMetadataCommandBase.cs", + "index": 153 + }, + "region": { + "startLine": 166 } }, - "fullyQualifiedLogicalName": "microsoft.json.schema.dll!Microsoft.Json.Schema.UriOrFragment..ctor(System.String)" + "logicalLocations": [ + { + "index": 811, + "fullyQualifiedName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.ExportRulesMetadataCommandBase.GetIdIntegerSuffix(System.String)" + } + ] } ], - "partialFingerprints": { - "UniqueId": "string#LanguageIndependentMemberParameter" - }, "properties": { - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" + "Category": "Microsoft.Performance", + "FixCategory": "NonBreaking" } }, { - "ruleId": "CA1307", + "ruleId": "CA1305", "level": "error", "message": { - "text": "Because the behavior of 'string.StartsWith(string)' could vary based on the current user's locale settings, replace this call in 'UriOrFragment.UriOrFragment(string)' with a call to 'string.StartsWith(string, StringComparison)'. If the result of 'string.StartsWith(string, StringComparison)' will be displayed to the user, such as when sorting a list of items for display in a list box, specify 'StringComparison.CurrentCulture' or 'StringComparison.CurrentCultureIgnoreCase' as the 'StringComparison' parameter. If comparing case-insensitive identifiers, such as file paths, environment variables, or registry keys and values, specify 'StringComparison.OrdinalIgnoreCase'. Otherwise, if comparing case-sensitive identifiers, specify 'StringComparison.Ordinal'." + "text": "Because the behavior of 'int.Parse(string)' could vary based on the current user's locale settings, replace this call in 'ExportRulesMetadataCommandBase.GetIdIntegerSuffix(string)' with a call to 'int.Parse(string, IFormatProvider)'. If the result of 'int.Parse(string, IFormatProvider)' will be based on input from the user, specify 'CultureInfo.CurrentCulture' as the 'IFormatProvider' parameter. Otherwise, if the result will based on input stored and accessed by software, such as when it is loaded from disk or from a database, specify 'CultureInfo.InvariantCulture'.", + "id": "IFormatProviderAlternate" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", + "uriBaseId": "$(ProjectDir)", + "index": 143 }, "locations": [ { "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Microsoft.Json.Schema.dll", - "uriBaseId": "$(ProjectDir)" + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Driver/Sdk/ExportRulesMetadataCommandBase.cs", + "index": 153 + }, + "region": { + "startLine": 178 } }, - "fullyQualifiedLogicalName": "microsoft.json.schema.dll!Microsoft.Json.Schema.UriOrFragment..ctor(System.String)" + "logicalLocations": [ + { + "index": 811, + "fullyQualifiedName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.ExportRulesMetadataCommandBase.GetIdIntegerSuffix(System.String)" + } + ] } ], "partialFingerprints": { - "UniqueId": "System.String.StartsWith(System.String)" + "UniqueId": "System.Int32.Parse(System.String)#IFormatProviderAlternate" }, "properties": { "Category": "Microsoft.Globalization", @@ -10158,145 +27949,219 @@ } }, { - "ruleId": "CA1054", - "level": "error", + "ruleId": "CA1506", "message": { - "text": "Change the type of parameter 'uriString' of method 'UriOrFragment.UriOrFragment(string)' from string to System.Uri, or provide an overload of 'UriOrFragment.UriOrFragment(string)', that allows 'uriString' to be passed as a System.Uri object." + "text": "'ExportRulesMetadataCommandBase.OutputSarifRulesMetada(string, ImmutableArray)' is coupled with 31 different types from 10 different namespaces. Rewrite or refactor the method to decrease its class coupling, or consider moving the method to one of the other types it is tightly coupled with. A class coupling above 40 indicates poor maintainability, a class coupling between 40 and 30 indicates moderate maintainability, and a class coupling below 30 indicates good maintainability.", + "id": "Method" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", + "uriBaseId": "$(ProjectDir)", + "index": 143 }, "locations": [ { "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Microsoft.Json.Schema.dll", - "uriBaseId": "$(ProjectDir)" + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Driver/Sdk/ExportRulesMetadataCommandBase.cs", + "index": 153 + }, + "region": { + "startLine": 103 } }, - "fullyQualifiedLogicalName": "microsoft.json.schema.dll!Microsoft.Json.Schema.UriOrFragment..ctor(System.String)" + "logicalLocations": [ + { + "index": 812, + "fullyQualifiedName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.ExportRulesMetadataCommandBase.OutputSarifRulesMetada(System.String,System.Collections.Immutable.ImmutableArray`1)" + } + ] } ], "partialFingerprints": { - "UniqueId": "0#" + "UniqueId": "Method" }, "properties": { - "Category": "Microsoft.Design", + "Category": "Microsoft.Maintainability", "FixCategory": "Breaking" } }, { - "ruleId": "CA1062", - "level": "warning", + "ruleId": "CA1303", "message": { - "text": "In externally visible method 'UriOrFragment.UriOrFragment(string)', validate parameter 'uriString' before using it." + "text": "Method 'ExportRulesMetadataCommandBase.Run(ExportRulesMetadataOptions)' passes a literal string as parameter 'value' of a call to 'Console.WriteLine(string)'. Retrieve the following string(s) from a resource table instead: \"SARIF, SonarQube, rules metadata exported to: \".", + "id": "KnownValue" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", + "uriBaseId": "$(ProjectDir)", + "index": 143 }, "locations": [ { "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Microsoft.Json.Schema.dll", - "uriBaseId": "$(ProjectDir)" + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Driver/Sdk/ExportRulesMetadataCommandBase.cs", + "index": 153 + }, + "region": { + "startLine": 54 } }, - "fullyQualifiedLogicalName": "microsoft.json.schema.dll!Microsoft.Json.Schema.UriOrFragment..ctor(System.String)" + "logicalLocations": [ + { + "index": 813, + "fullyQualifiedName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.ExportRulesMetadataCommandBase.Run(Microsoft.CodeAnalysis.Sarif.Driver.ExportRulesMetadataOptions)" + } + ] } ], "partialFingerprints": { - "UniqueId": "0" + "UniqueId": "System.Console.WriteLine(System.String)#KnownValue" }, "properties": { - "Category": "Microsoft.Design", + "Category": "Microsoft.Globalization", "FixCategory": "DependsOnFix" } }, { - "ruleId": "CA1725", + "ruleId": "CA1031", "level": "error", "message": { - "text": "In member 'UriOrFragment.Equals(object)', change parameter name 'comparand' to 'obj' in order to match the identifier as it has been declared in 'object.Equals(object)'." + "text": "Modify 'ExportRulesMetadataCommandBase.Run(ExportRulesMetadataOptions)' to catch a more specific exception than 'Exception' or rethrow the exception." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", + "uriBaseId": "$(ProjectDir)", + "index": 143 }, "locations": [ { "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Microsoft.Json.Schema.dll", - "uriBaseId": "$(ProjectDir)" + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Driver/Sdk/ExportRulesMetadataCommandBase.cs", + "index": 153 + }, + "region": { + "startLine": 56 } }, - "fullyQualifiedLogicalName": "microsoft.json.schema.dll!Microsoft.Json.Schema.UriOrFragment.Equals(System.Object)" + "logicalLocations": [ + { + "index": 813, + "fullyQualifiedName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.ExportRulesMetadataCommandBase.Run(Microsoft.CodeAnalysis.Sarif.Driver.ExportRulesMetadataOptions)" + } + ] } ], - "partialFingerprints": { - "UniqueId": "0#" - }, "properties": { - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" + "Level": "CriticalError", + "Category": "Microsoft.Design", + "FixCategory": "NonBreaking" } }, { - "ruleId": "CA1062", - "level": "warning", + "ruleId": "CA2204", "message": { - "text": "In externally visible method 'UriOrFragmentConverter.ReadJson(JsonReader, Type, object, JsonSerializer)', validate parameter 'reader' before using it." + "text": "Correct the spelling of the unrecognized token 'SonarQube' in the literal '\"SonarQube\"'." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", + "uriBaseId": "$(ProjectDir)", + "index": 143 }, "locations": [ { "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Microsoft.Json.Schema.dll", - "uriBaseId": "$(ProjectDir)" + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Driver/Sdk/ExportRulesMetadataCommandBase.cs", + "index": 153 + }, + "region": { + "startLine": 54 } }, - "fullyQualifiedLogicalName": "microsoft.json.schema.dll!Microsoft.Json.Schema.UriOrFragmentConverter.ReadJson(Newtonsoft.Json.JsonReader,System.Type,System.Object,Newtonsoft.Json.JsonSerializer)" + "logicalLocations": [ + { + "index": 813, + "fullyQualifiedName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.ExportRulesMetadataCommandBase.Run(Microsoft.CodeAnalysis.Sarif.Driver.ExportRulesMetadataOptions)" + } + ] } ], "partialFingerprints": { - "UniqueId": "0" + "UniqueId": "SonarQube" }, "properties": { - "Category": "Microsoft.Design", + "Category": "Microsoft.Naming", "FixCategory": "DependsOnFix" } }, { - "ruleId": "CA1062", - "level": "warning", + "ruleId": "CA1725", + "level": "error", "message": { - "text": "In externally visible method 'UriOrFragmentConverter.WriteJson(JsonWriter, object, JsonSerializer)', validate parameter 'writer' before using it." + "text": "In member 'ExportRulesMetadataCommandBase.Run(ExportRulesMetadataOptions)', change parameter name 'exportOptions' to 'options' in order to match the identifier as it has been declared in 'DriverCommand.Run(ExportRulesMetadataOptions)'." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", + "uriBaseId": "$(ProjectDir)", + "index": 143 }, "locations": [ { "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Microsoft.Json.Schema.dll", - "uriBaseId": "$(ProjectDir)" + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Driver/Sdk/ExportRulesMetadataCommandBase.cs", + "index": 153 + }, + "region": { + "startLine": 19 } }, - "fullyQualifiedLogicalName": "microsoft.json.schema.dll!Microsoft.Json.Schema.UriOrFragmentConverter.WriteJson(Newtonsoft.Json.JsonWriter,System.Object,Newtonsoft.Json.JsonSerializer)" + "logicalLocations": [ + { + "index": 813, + "fullyQualifiedName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.ExportRulesMetadataCommandBase.Run(Microsoft.CodeAnalysis.Sarif.Driver.ExportRulesMetadataOptions)" + } + ] } ], "partialFingerprints": { - "UniqueId": "0" + "UniqueId": "0#" }, "properties": { - "Category": "Microsoft.Design", - "FixCategory": "DependsOnFix" + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" } }, { "ruleId": "CA1062", - "level": "warning", "message": { - "text": "In externally visible method 'UriOrFragmentExtensions.GetDefinitionName(this UriOrFragment)', validate parameter 'reference' before using it." + "text": "In externally visible method 'ExportRulesMetadataCommandBase.Run(ExportRulesMetadataOptions)', validate parameter 'exportOptions' before using it." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", + "uriBaseId": "$(ProjectDir)", + "index": 143 }, "locations": [ { "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Microsoft.Json.Schema.dll", - "uriBaseId": "$(ProjectDir)" + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Driver/Sdk/ExportRulesMetadataCommandBase.cs", + "index": 153 + }, + "region": { + "startLine": 27 } }, - "fullyQualifiedLogicalName": "microsoft.json.schema.dll!Microsoft.Json.Schema.UriOrFragmentExtensions.GetDefinitionName(Microsoft.Json.Schema.UriOrFragment)" + "logicalLocations": [ + { + "index": 813, + "fullyQualifiedName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.ExportRulesMetadataCommandBase.Run(Microsoft.CodeAnalysis.Sarif.Driver.ExportRulesMetadataOptions)" + } + ] } ], "partialFingerprints": { @@ -10308,876 +28173,1008 @@ } }, { - "ruleId": "CA1702", + "ruleId": "CA1026", "level": "error", "message": { - "text": "The compound word 'PreRelease' in member name 'VersionConstants.PreRelease' exists as a discrete term. If your usage is intended to be single word, case it as 'Prerelease' or strip the first token entirely if it represents any sort of Hungarian notation.", - "messageId": "MemberShouldBeDiscreteTerm" + "text": "Replace method 'FileSpecifier.FileSpecifier(string, bool)' with an overload that supplies all default arguments." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", + "uriBaseId": "$(ProjectDir)", + "index": 143 }, "locations": [ { "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Microsoft.Json.Schema.dll", - "uriBaseId": "$(ProjectDir)" + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Driver/FileSpecifier.cs", + "index": 154 + }, + "region": { + "startLine": 12 } }, - "fullyQualifiedLogicalName": "microsoft.json.schema.dll!Microsoft.Json.Schema.VersionConstants.PreRelease" + "logicalLocations": [ + { + "index": 815, + "fullyQualifiedName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.FileSpecifier..ctor(System.String,System.Boolean)" + } + ] } ], - "partialFingerprints": { - "UniqueId": "PreRelease#MemberShouldBeDiscreteTerm" - }, "properties": { - "Category": "Microsoft.Naming", + "Category": "Microsoft.Design", "FixCategory": "Breaking" } }, { - "ruleId": "CA1014", - "level": "error", + "ruleId": "CA1021", "message": { - "text": "Mark 'Microsoft.Json.Schema.Validation.dll' with CLSCompliant(true) because it exposes externally visible types." + "text": "Consider a design that does not require that 'reasonIfNotApplicable' be an out parameter." }, "locations": [ { "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Microsoft.Json.Schema.Validation.dll", - "uriBaseId": "$(ProjectDir)" + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", + "uriBaseId": "$(ProjectDir)", + "index": 143 } }, - "fullyQualifiedLogicalName": "microsoft.json.schema.validation.dll" + "logicalLocations": [ + { + "index": 817, + "fullyQualifiedName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.ISkimmer`1.CanAnalyze(!0,System.String&)" + } + ] } ], + "partialFingerprints": { + "UniqueId": "1#" + }, "properties": { "Category": "Microsoft.Design", - "FixCategory": "NonBreaking" + "FixCategory": "Breaking" } }, { - "ruleId": "CA1824", - "level": "warning", + "ruleId": "CA1062", "message": { - "text": "Because assembly 'Microsoft.Json.Schema.Validation.dll' contains a ResX-based resource file, mark it with the NeutralResourcesLanguage attribute, specifying the language of the resources within the assembly. This could improve lookup performance the first time a resource is retrieved." + "text": "FxCop results that have been suppressed do not contain a message string." }, "locations": [ { "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Microsoft.Json.Schema.Validation.dll", - "uriBaseId": "$(ProjectDir)" + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", + "uriBaseId": "$(ProjectDir)", + "index": 143 } }, - "fullyQualifiedLogicalName": "microsoft.json.schema.validation.dll" + "logicalLocations": [ + { + "index": 819, + "fullyQualifiedName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.MurmurHash.AddRange(System.Collections.Generic.IEnumerable`1)" + } + ] } ], - "properties": { - "Category": "Microsoft.Performance", - "FixCategory": "NonBreaking" - } - }, - { - "ruleId": "CA1704", - "level": "warning", - "message": { - "text": "Correct the spelling of 'Sarif' in member name 'JsonSyntaxErrorExceptionExtensions.ToSarifResult(this JsonSyntaxException)' or remove it entirely if it represents any sort of Hungarian notation.", - "messageId": "Member" + "partialFingerprints": { + "UniqueId": "0" }, - "locations": [ + "suppressions": [ { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Microsoft.Json.Schema.Validation.dll", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "microsoft.json.schema.validation.dll!Microsoft.Json.Schema.Validation.JsonSyntaxErrorExceptionExtensions.ToSarifResult(Microsoft.Json.Schema.JsonSyntaxException)" + "kind": "inSource" } ], - "partialFingerprints": { - "UniqueId": "Sarif#Member" - }, "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" + "Category": "Microsoft.Design", + "FixCategory": "DependsOnFix" } }, { "ruleId": "CA1062", - "level": "warning", "message": { - "text": "In externally visible method 'JsonSyntaxErrorExceptionExtensions.ToSarifResult(this JsonSyntaxException)', validate parameter 'ex' before using it." + "text": "FxCop results that have been suppressed do not contain a message string." }, "locations": [ { "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Microsoft.Json.Schema.Validation.dll", - "uriBaseId": "$(ProjectDir)" + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", + "uriBaseId": "$(ProjectDir)", + "index": 143 } }, - "fullyQualifiedLogicalName": "microsoft.json.schema.validation.dll!Microsoft.Json.Schema.Validation.JsonSyntaxErrorExceptionExtensions.ToSarifResult(Microsoft.Json.Schema.JsonSyntaxException)" + "logicalLocations": [ + { + "index": 820, + "fullyQualifiedName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.MurmurHash.AddRange(System.Collections.IEnumerable)" + } + ] } ], "partialFingerprints": { "UniqueId": "0" }, + "suppressions": [ + { + "kind": "inSource" + } + ], "properties": { "Category": "Microsoft.Design", "FixCategory": "DependsOnFix" } }, { - "ruleId": "CA1800", - "level": "warning", + "ruleId": "CA1062", "message": { - "text": "'obj', a parameter, is cast to type 'JToken' multiple times in method 'JTokenEqualityComparer.NullEquals(object)'. Cache the result of the 'as' operator or direct cast in order to eliminate the redundant isint instruction.", - "messageId": "Parameter" + "text": "FxCop results that have been suppressed do not contain a message string." }, "locations": [ { "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Microsoft.Json.Schema.Validation.dll", - "uriBaseId": "$(ProjectDir)" + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", + "uriBaseId": "$(ProjectDir)", + "index": 143 } }, - "fullyQualifiedLogicalName": "microsoft.json.schema.validation.dll!Microsoft.Json.Schema.Validation.JTokenEqualityComparer.NullEquals(System.Object)" + "logicalLocations": [ + { + "index": 821, + "fullyQualifiedName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.MurmurHash.AddRange(System.Int32[])" + } + ] } ], "partialFingerprints": { - "UniqueId": "Parameter" + "UniqueId": "0" }, + "suppressions": [ + { + "kind": "inSource" + } + ], "properties": { - "Category": "Microsoft.Performance", - "FixCategory": "NonBreaking" + "Category": "Microsoft.Design", + "FixCategory": "DependsOnFix" } }, { - "ruleId": "CA1053", + "ruleId": "CA1702", "level": "error", "message": { - "text": "Because type 'ResultFactory' contains only 'static' ('Shared' in Visual Basic) members, add a default private constructor to prevent the compiler from adding a default public constructor." + "text": "The compound word 'PlugIn' in type name 'PlugInDriverCommand' exists as a discrete term. If your usage is intended to be single word, case it as 'Plugin'.", + "id": "TypeShouldBeDiscreteTerm" }, "locations": [ { "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Microsoft.Json.Schema.Validation.dll", - "uriBaseId": "$(ProjectDir)" + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", + "uriBaseId": "$(ProjectDir)", + "index": 143 } }, - "fullyQualifiedLogicalName": "microsoft.json.schema.validation.dll!Microsoft.Json.Schema.Validation.ResultFactory" + "logicalLocations": [ + { + "index": 822, + "fullyQualifiedName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.PlugInDriverCommand`1" + } + ] } ], + "partialFingerprints": { + "UniqueId": "PlugIn#TypeShouldBeDiscreteTerm" + }, "properties": { - "Category": "Microsoft.Design", + "Category": "Microsoft.Naming", "FixCategory": "Breaking" } }, { - "ruleId": "CA1704", - "level": "warning", + "ruleId": "CA1702", + "level": "error", "message": { - "text": "In method 'ResultFactory.CreateResult(JToken, ErrorNumber, object[])', correct the spelling of 'j' in parameter name 'jToken' or remove it entirely if it represents any sort of Hungarian notation.", - "messageId": "MemberParameter" + "text": "The compound word 'PlugIn' in member name 'PlugInDriverCommand.DefaultPlugInAssemblies' exists as a discrete term. If your usage is intended to be single word, case it as 'Plugin' or strip the first token entirely if it represents any sort of Hungarian notation.", + "id": "MemberShouldBeDiscreteTerm" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", + "uriBaseId": "$(ProjectDir)", + "index": 143 }, "locations": [ { "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Microsoft.Json.Schema.Validation.dll", - "uriBaseId": "$(ProjectDir)" + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Driver/Sdk/PlugInDriverCommand.cs", + "index": 155 + }, + "region": { + "startLine": 14 } }, - "fullyQualifiedLogicalName": "microsoft.json.schema.validation.dll!Microsoft.Json.Schema.Validation.ResultFactory.CreateResult(Newtonsoft.Json.Linq.JToken,Microsoft.Json.Schema.ErrorNumber,System.Object[])" + "logicalLocations": [ + { + "index": 823, + "fullyQualifiedName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.PlugInDriverCommand`1.DefaultPlugInAssemblies" + } + ] } ], "partialFingerprints": { - "UniqueId": "j#MemberParameter" + "UniqueId": "PlugIn#MemberShouldBeDiscreteTerm" }, "properties": { - "Level": "CriticalWarning", "Category": "Microsoft.Naming", "FixCategory": "Breaking" } }, { - "ruleId": "CA1062", - "level": "warning", + "ruleId": "CA2104", "message": { - "text": "In externally visible method 'ResultFactory.CreateResult(JToken, ErrorNumber, object[])', validate parameter 'jToken' before using it." + "text": "FxCop results that have been suppressed do not contain a message string." }, "locations": [ { "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Microsoft.Json.Schema.Validation.dll", - "uriBaseId": "$(ProjectDir)" + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", + "uriBaseId": "$(ProjectDir)", + "index": 143 } }, - "fullyQualifiedLogicalName": "microsoft.json.schema.validation.dll!Microsoft.Json.Schema.Validation.ResultFactory.CreateResult(Newtonsoft.Json.Linq.JToken,Microsoft.Json.Schema.ErrorNumber,System.Object[])" + "logicalLocations": [ + { + "index": 825, + "fullyQualifiedName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.ReferenceEqualityComparer`1.Instance" + } + ] + } + ], + "suppressions": [ + { + "kind": "inSource" } ], - "partialFingerprints": { - "UniqueId": "0" - }, "properties": { - "Category": "Microsoft.Design", - "FixCategory": "DependsOnFix" + "Category": "Microsoft.Security", + "FixCategory": "NonBreaking" } }, { - "ruleId": "CA1062", - "level": "warning", + "ruleId": "CA1000", "message": { - "text": "In externally visible method 'RuleExtensions.SetResultFile(this Result, string)', validate parameter 'result' before using it." + "text": "FxCop results that have been suppressed do not contain a message string." }, "locations": [ { "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Microsoft.Json.Schema.Validation.dll", - "uriBaseId": "$(ProjectDir)" + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", + "uriBaseId": "$(ProjectDir)", + "index": 143 } }, - "fullyQualifiedLogicalName": "microsoft.json.schema.validation.dll!Microsoft.Json.Schema.Validation.RuleExtensions.SetResultFile(Microsoft.CodeAnalysis.Sarif.Result,System.String)" + "logicalLocations": [ + { + "index": 825, + "fullyQualifiedName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.ReferenceEqualityComparer`1.Instance" + } + ] + } + ], + "suppressions": [ + { + "kind": "inSource" } ], - "partialFingerprints": { - "UniqueId": "0" - }, "properties": { "Category": "Microsoft.Design", - "FixCategory": "DependsOnFix" + "FixCategory": "Breaking" } }, { - "ruleId": "CA1802", - "level": "warning", + "ruleId": "CA2215", "message": { - "text": "Field 'RuleFactory.ErrorCodeFormat' is declared as 'static readonly' but is initialized with a constant value 'JSON{0:D4}'. Mark this field as 'const' instead." + "text": "FxCop results that have been suppressed do not contain a message string." }, "locations": [ { "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Microsoft.Json.Schema.Validation.dll", - "uriBaseId": "$(ProjectDir)" + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", + "uriBaseId": "$(ProjectDir)", + "index": 143 } }, - "fullyQualifiedLogicalName": "microsoft.json.schema.validation.dll!Microsoft.Json.Schema.Validation.RuleFactory.ErrorCodeFormat" + "logicalLocations": [ + { + "index": 827, + "fullyQualifiedName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.RentalStream.Dispose(System.Boolean)" + } + ] + } + ], + "suppressions": [ + { + "kind": "inSource" } ], "properties": { - "Category": "Microsoft.Performance", - "FixCategory": "NonBreaking" + "Category": "Microsoft.Usage", + "FixCategory": "DependsOnFix" } }, { - "ruleId": "CA1305", + "ruleId": "CA1008", "level": "error", "message": { - "text": "Because the behavior of 'int.Parse(string)' could vary based on the current user's locale settings, replace this call in 'RuleFactory.GetRuleFromRuleId(string)' with a call to 'int.Parse(string, IFormatProvider)'. If the result of 'int.Parse(string, IFormatProvider)' will be based on input from the user, specify 'CultureInfo.CurrentCulture' as the 'IFormatProvider' parameter. Otherwise, if the result will based on input stored and accessed by software, such as when it is loaded from disk or from a database, specify 'CultureInfo.InvariantCulture'.", - "messageId": "IFormatProviderAlternate" + "text": "In enum 'RuleEnabledState', change the name of 'RuleEnabledState.Default' to 'None'.", + "id": "FlagsRename" }, "locations": [ { "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Microsoft.Json.Schema.Validation.dll", - "uriBaseId": "$(ProjectDir)" + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", + "uriBaseId": "$(ProjectDir)", + "index": 143 } }, - "fullyQualifiedLogicalName": "microsoft.json.schema.validation.dll!Microsoft.Json.Schema.Validation.RuleFactory.GetRuleFromRuleId(System.String)" + "logicalLocations": [ + { + "index": 828, + "fullyQualifiedName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.RuleEnabledState" + } + ] } ], "partialFingerprints": { - "UniqueId": "System.Int32.Parse(System.String)#IFormatProviderAlternate" + "UniqueId": "FlagsRename" }, "properties": { - "Category": "Microsoft.Globalization", - "FixCategory": "NonBreaking" + "Level": "CriticalError", + "Category": "Microsoft.Design", + "FixCategory": "Breaking" } }, { - "ruleId": "CA1062", - "level": "warning", + "ruleId": "CA1714", + "level": "error", "message": { - "text": "In externally visible method 'RuleFactory.GetRuleFromRuleId(string)', validate parameter 'ruleId' before using it." + "text": "If enumeration name 'RuleEnabledState' is singular, change it to a plural form." }, "locations": [ { "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Microsoft.Json.Schema.Validation.dll", - "uriBaseId": "$(ProjectDir)" + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", + "uriBaseId": "$(ProjectDir)", + "index": 143 } }, - "fullyQualifiedLogicalName": "microsoft.json.schema.validation.dll!Microsoft.Json.Schema.Validation.RuleFactory.GetRuleFromRuleId(System.String)" + "logicalLocations": [ + { + "index": 828, + "fullyQualifiedName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.RuleEnabledState" + } + ] } ], - "partialFingerprints": { - "UniqueId": "0" - }, "properties": { - "Category": "Microsoft.Design", - "FixCategory": "DependsOnFix" + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" } }, { - "ruleId": "CA1812", - "level": "warning", + "ruleId": "CA1012", "message": { - "text": "'RuleResources' is an internal class that is apparently never instantiated. If so, remove the code from the assembly. If this class is intended to contain only static methods, consider adding a private constructor to prevent the compiler from generating a default constructor." + "text": "Change the accessibility of all public constructors in 'SkimmerBase' to protected." }, "locations": [ { "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Microsoft.Json.Schema.Validation.dll", - "uriBaseId": "$(ProjectDir)" + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", + "uriBaseId": "$(ProjectDir)", + "index": 143 } }, - "fullyQualifiedLogicalName": "microsoft.json.schema.validation.dll!Microsoft.Json.Schema.Validation.RuleResources" + "logicalLocations": [ + { + "index": 829, + "fullyQualifiedName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.SkimmerBase`1" + } + ] } ], "properties": { - "Category": "Microsoft.Performance", + "Level": "CriticalWarning", + "Category": "Microsoft.Design", "FixCategory": "NonBreaking" } }, { - "ruleId": "CA1308", - "level": "error", + "ruleId": "CA1303", "message": { - "text": "In method 'Validator.FormatBoolean(string)', replace the call to 'string.ToLowerInvariant()' with String.ToUpperInvariant().", - "messageId": "ToUpperInvariant" + "text": "Method 'StatisticsLogger.AnalysisStopped(RuntimeConditions)' passes a literal string as parameter 'value' of a call to 'Console.WriteLine(string)'. Retrieve the following string(s) from a resource table instead: \"# invalid targets: \".", + "id": "KnownValue" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", + "uriBaseId": "$(ProjectDir)", + "index": 143 }, "locations": [ { "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Microsoft.Json.Schema.Validation.dll", - "uriBaseId": "$(ProjectDir)" + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Driver/Sdk/StatisticsLogger.cs", + "index": 156 + }, + "region": { + "startLine": 28 } }, - "fullyQualifiedLogicalName": "microsoft.json.schema.validation.dll!Microsoft.Json.Schema.Validation.Validator.FormatBoolean(System.String)" + "logicalLocations": [ + { + "index": 831, + "fullyQualifiedName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.StatisticsLogger.AnalysisStopped(Microsoft.CodeAnalysis.Sarif.RuntimeConditions)" + } + ] } ], "partialFingerprints": { - "UniqueId": "ToUpperInvariant" + "UniqueId": "System.Console.WriteLine(System.String)#KnownValue" }, "properties": { "Category": "Microsoft.Globalization", - "FixCategory": "NonBreaking" + "FixCategory": "DependsOnFix" } }, { - "ruleId": "CA1800", - "level": "warning", + "ruleId": "CA1303", "message": { - "text": "'obj', a parameter, is cast to type 'JToken' multiple times in method 'Validator.FormatObject(object)'. Cache the result of the 'as' operator or direct cast in order to eliminate the redundant isint instruction.", - "messageId": "Parameter" + "text": "Method 'StatisticsLogger.AnalysisStopped(RuntimeConditions)' passes a literal string as parameter 'value' of a call to 'Console.WriteLine(string)'. Retrieve the following string(s) from a resource table instead: \"# valid targets: \".", + "id": "KnownValue" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", + "uriBaseId": "$(ProjectDir)", + "index": 143 }, "locations": [ { "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Microsoft.Json.Schema.Validation.dll", - "uriBaseId": "$(ProjectDir)" + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Driver/Sdk/StatisticsLogger.cs", + "index": 156 + }, + "region": { + "startLine": 27 } }, - "fullyQualifiedLogicalName": "microsoft.json.schema.validation.dll!Microsoft.Json.Schema.Validation.Validator.FormatObject(System.Object)" + "logicalLocations": [ + { + "index": 831, + "fullyQualifiedName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.StatisticsLogger.AnalysisStopped(Microsoft.CodeAnalysis.Sarif.RuntimeConditions)" + } + ] } ], "partialFingerprints": { - "UniqueId": "Parameter" + "UniqueId": "System.Console.WriteLine(System.String)#KnownValue" }, "properties": { - "Category": "Microsoft.Performance", - "FixCategory": "NonBreaking" + "Category": "Microsoft.Globalization", + "FixCategory": "DependsOnFix" } }, { - "ruleId": "CA1822", - "level": "warning", + "ruleId": "CA1303", "message": { - "text": "The 'this' parameter (or 'Me' in Visual Basic) of 'Validator.GetPropertyNames(JObject)' is never used. Mark the member as static (or Shared in Visual Basic) or use 'this'/'Me' in the method body or at least one property accessor, if appropriate." + "text": "Method 'StatisticsLogger.AnalysisStopped(RuntimeConditions)' passes a literal string as parameter 'value' of a call to 'Console.WriteLine(string)'. Retrieve the following string(s) from a resource table instead: \"Time elapsed: \".", + "id": "KnownValue" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", + "uriBaseId": "$(ProjectDir)", + "index": 143 }, "locations": [ { "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Microsoft.Json.Schema.Validation.dll", - "uriBaseId": "$(ProjectDir)" + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Driver/Sdk/StatisticsLogger.cs", + "index": 156 + }, + "region": { + "startLine": 29 } }, - "fullyQualifiedLogicalName": "microsoft.json.schema.validation.dll!Microsoft.Json.Schema.Validation.Validator.GetPropertyNames(Newtonsoft.Json.Linq.JObject)" + "logicalLocations": [ + { + "index": 831, + "fullyQualifiedName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.StatisticsLogger.AnalysisStopped(Microsoft.CodeAnalysis.Sarif.RuntimeConditions)" + } + ] } ], + "partialFingerprints": { + "UniqueId": "System.Console.WriteLine(System.String)#KnownValue" + }, "properties": { - "Category": "Microsoft.Performance", - "FixCategory": "NonBreaking" + "Category": "Microsoft.Globalization", + "FixCategory": "DependsOnFix" } }, { - "ruleId": "CA1822", - "level": "warning", + "ruleId": "CA1305", + "level": "error", "message": { - "text": "The 'this' parameter (or 'Me' in Visual Basic) of 'Validator.TokenMatchesEnum(JToken, IList)' is never used. Mark the member as static (or Shared in Visual Basic) or use 'this'/'Me' in the method body or at least one property accessor, if appropriate." + "text": "Because the behavior of 'long.ToString()' could vary based on the current user's locale settings, replace this call in 'StatisticsLogger.AnalysisStopped(RuntimeConditions)' with a call to 'long.ToString(IFormatProvider)'. If the result of 'long.ToString(IFormatProvider)' will be displayed to the user, specify 'CultureInfo.CurrentCulture' as the 'IFormatProvider' parameter. Otherwise, if the result will be stored and accessed by software, such as when it is persisted to disk or to a database, specify 'CultureInfo.InvariantCulture'.", + "id": "IFormatProviderAlternateString" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", + "uriBaseId": "$(ProjectDir)", + "index": 143 }, "locations": [ { "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Microsoft.Json.Schema.Validation.dll", - "uriBaseId": "$(ProjectDir)" + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Driver/Sdk/StatisticsLogger.cs", + "index": 156 + }, + "region": { + "startLine": 27 } }, - "fullyQualifiedLogicalName": "microsoft.json.schema.validation.dll!Microsoft.Json.Schema.Validation.Validator.TokenMatchesEnum(Newtonsoft.Json.Linq.JToken,System.Collections.Generic.IList`1)" + "logicalLocations": [ + { + "index": 831, + "fullyQualifiedName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.StatisticsLogger.AnalysisStopped(Microsoft.CodeAnalysis.Sarif.RuntimeConditions)" + } + ] } ], + "partialFingerprints": { + "UniqueId": "System.Int64.ToString#IFormatProviderAlternateString" + }, "properties": { - "Category": "Microsoft.Performance", + "Category": "Microsoft.Globalization", "FixCategory": "NonBreaking" } }, { - "ruleId": "CA1822", - "level": "warning", + "ruleId": "CA1305", + "level": "error", "message": { - "text": "The 'this' parameter (or 'Me' in Visual Basic) of 'Validator.UnicodeLength(string)' is never used. Mark the member as static (or Shared in Visual Basic) or use 'this'/'Me' in the method body or at least one property accessor, if appropriate." + "text": "Because the behavior of 'long.ToString()' could vary based on the current user's locale settings, replace this call in 'StatisticsLogger.AnalysisStopped(RuntimeConditions)' with a call to 'long.ToString(IFormatProvider)'. If the result of 'long.ToString(IFormatProvider)' will be displayed to the user, specify 'CultureInfo.CurrentCulture' as the 'IFormatProvider' parameter. Otherwise, if the result will be stored and accessed by software, such as when it is persisted to disk or to a database, specify 'CultureInfo.InvariantCulture'.", + "id": "IFormatProviderAlternateString" }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Microsoft.Json.Schema.Validation.dll", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "microsoft.json.schema.validation.dll!Microsoft.Json.Schema.Validation.Validator.UnicodeLength(System.String)" - } - ], - "properties": { - "Category": "Microsoft.Performance", - "FixCategory": "NonBreaking" - } - }, - { - "ruleId": "CA1811", - "level": "warning", - "message": { - "text": "'Validator.ValidateAdditionalProperties(JObject, List, AdditionalProperties)' appears to have no upstream public or protected callers." + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", + "uriBaseId": "$(ProjectDir)", + "index": 143 }, "locations": [ { "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Microsoft.Json.Schema.Validation.dll", - "uriBaseId": "$(ProjectDir)" + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Driver/Sdk/StatisticsLogger.cs", + "index": 156 + }, + "region": { + "startLine": 28 } }, - "fullyQualifiedLogicalName": "microsoft.json.schema.validation.dll!Microsoft.Json.Schema.Validation.Validator.ValidateAdditionalProperties(Newtonsoft.Json.Linq.JObject,System.Collections.Generic.List`1,Microsoft.Json.Schema.AdditionalProperties)" + "logicalLocations": [ + { + "index": 831, + "fullyQualifiedName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.StatisticsLogger.AnalysisStopped(Microsoft.CodeAnalysis.Sarif.RuntimeConditions)" + } + ] } ], + "partialFingerprints": { + "UniqueId": "System.Int64.ToString#IFormatProviderAlternateString" + }, "properties": { - "Category": "Microsoft.Performance", + "Category": "Microsoft.Globalization", "FixCategory": "NonBreaking" } }, { - "ruleId": "CA1800", - "level": "warning", + "ruleId": "CA1822", "message": { - "text": "'jToken', a parameter, is cast to type 'JValue' multiple times in method 'Validator.ValidateToken(JToken, JsonSchema)'. Cache the result of the 'as' operator or direct cast in order to eliminate the redundant castclass instruction.", - "messageId": "Parameter" + "text": "The 'this' parameter (or 'Me' in Visual Basic) of 'StatisticsLogger.Dispose()' is never used. Mark the member as static (or Shared in Visual Basic) or use 'this'/'Me' in the method body or at least one property accessor, if appropriate." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", + "uriBaseId": "$(ProjectDir)", + "index": 143 }, "locations": [ { "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Microsoft.Json.Schema.Validation.dll", - "uriBaseId": "$(ProjectDir)" + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Driver/Sdk/StatisticsLogger.cs", + "index": 156 + }, + "region": { + "startLine": 80 } }, - "fullyQualifiedLogicalName": "microsoft.json.schema.validation.dll!Microsoft.Json.Schema.Validation.Validator.ValidateToken(Newtonsoft.Json.Linq.JToken,Microsoft.Json.Schema.JsonSchema)" + "logicalLocations": [ + { + "index": 832, + "fullyQualifiedName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.StatisticsLogger.Dispose()" + } + ] } ], - "partialFingerprints": { - "UniqueId": "Parameter" - }, "properties": { "Category": "Microsoft.Performance", - "FixCategory": "NonBreaking" + "FixCategory": "DependsOnFix" } }, { - "ruleId": "CA1702", - "level": "error", + "ruleId": "CA1062", "message": { - "text": "The compound word 'PreRelease' in member name 'VersionConstants.PreRelease' exists as a discrete term. If your usage is intended to be single word, case it as 'Prerelease' or strip the first token entirely if it represents any sort of Hungarian notation.", - "messageId": "MemberShouldBeDiscreteTerm" + "text": "In externally visible method 'StatisticsLogger.Log(IRule, Result)', validate parameter 'result' before using it." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", + "uriBaseId": "$(ProjectDir)", + "index": 143 }, "locations": [ { "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Microsoft.Json.Schema.Validation.dll", - "uriBaseId": "$(ProjectDir)" + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Driver/Sdk/StatisticsLogger.cs", + "index": 156 + }, + "region": { + "startLine": 39 } }, - "fullyQualifiedLogicalName": "microsoft.json.schema.validation.dll!Microsoft.Json.Schema.Validation.VersionConstants.PreRelease" + "logicalLocations": [ + { + "index": 833, + "fullyQualifiedName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.StatisticsLogger.Log(Microsoft.CodeAnalysis.Sarif.IRule,Microsoft.CodeAnalysis.Sarif.Result)" + } + ] } ], "partialFingerprints": { - "UniqueId": "PreRelease#MemberShouldBeDiscreteTerm" + "UniqueId": "1" }, "properties": { - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" + "Category": "Microsoft.Design", + "FixCategory": "DependsOnFix" } }, { - "ruleId": "CA2243", - "level": "warning", + "ruleId": "CA1822", "message": { - "text": "In the constructor of 'AssemblyInformationalVersionAttribute', change the value of argument 'informationalVersion', which is currently \"2.0.0-csd.1.0.1\", to something that can be correctly parsed as 'Version'." + "text": "The 'this' parameter (or 'Me' in Visual Basic) of 'StatisticsLogger.Log(ResultLevel, string)' is never used. Mark the member as static (or Shared in Visual Basic) or use 'this'/'Me' in the method body or at least one property accessor, if appropriate." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", + "uriBaseId": "$(ProjectDir)", + "index": 143 }, "locations": [ { "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", - "uriBaseId": "$(ProjectDir)" + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Driver/Sdk/StatisticsLogger.cs", + "index": 156 + }, + "region": { + "startLine": 59 } }, - "fullyQualifiedLogicalName": "sarif.converters.dll" + "logicalLocations": [ + { + "index": 834, + "fullyQualifiedName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.StatisticsLogger.Log(Microsoft.CodeAnalysis.Sarif.ResultLevel,System.String)" + } + ] } ], "properties": { - "Category": "Microsoft.Usage", - "FixCategory": "NonBreaking" + "Category": "Microsoft.Performance", + "FixCategory": "DependsOnFix" } }, { - "ruleId": "CA1704", - "level": "warning", + "ruleId": "CA1801", "message": { - "text": "Correct the spelling of 'Sarif' in assembly name 'Sarif.Converters.dll'.", - "messageId": "Assembly" + "text": "Parameter 'ruleId' of 'StatisticsLogger.Log(ResultLevel, string)' is never used. Remove the parameter or use it in the method body." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", + "uriBaseId": "$(ProjectDir)", + "index": 143 }, "locations": [ { "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", - "uriBaseId": "$(ProjectDir)" + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Driver/Sdk/StatisticsLogger.cs", + "index": 156 + }, + "region": { + "startLine": 59 } }, - "fullyQualifiedLogicalName": "sarif.converters.dll" + "logicalLocations": [ + { + "index": 834, + "fullyQualifiedName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.StatisticsLogger.Log(Microsoft.CodeAnalysis.Sarif.ResultLevel,System.String)" + } + ] } ], "partialFingerprints": { - "UniqueId": "Sarif#Assembly" + "UniqueId": "ruleId" }, "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" + "Category": "Microsoft.Usage", + "FixCategory": "DependsOnFix" } }, { - "ruleId": "CA3053", - "level": "warning", + "ruleId": "CA1062", "message": { - "text": "'AndroidStudioConverter.Convert(Stream, IResultLogWriter, OptionallyEmittedData)' instantiates an XmlReader instance by calling System.Xml.XmlReader.Create(System.IO.Stream,System.Xml.XmlReaderSettings) and provided an XmlReaderSettings instance with an insecure XmlResolver property value. This usage is potentially unsafe as untrusted external resources may be resolved during read operations. Provide a XmlReaderSettings instance and set the XmlResolver property to null or an instance of XmlSecureResolver.", - "messageId": "XmlReaderCreateInsecureXmlResolver" + "text": "In externally visible method 'StatisticsLogger.LogConfigurationNotification(Notification)', validate parameter 'notification' before using it." }, "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", - "uriBaseId": "$(ProjectDir)" + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", + "uriBaseId": "$(ProjectDir)", + "index": 143 }, "locations": [ { "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/AndroidStudioConverter.cs" + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Driver/Sdk/StatisticsLogger.cs", + "index": 156 }, "region": { - "startLine": 63, - "snippet": { - "text": " using (XmlReader xmlReader = XmlReader.Create(input, settings))" - } - }, - "contextRegion": { - "startLine": 62, - "startColumn": 1, - "endLine": 64, - "endColumn": 14, - "charOffset": 2230, - "charLength": 125, - "snippet": { - "text": " ISet results;\r\n using (XmlReader xmlReader = XmlReader.Create(input, settings))\r\n {" - } + "startLine": 48 } }, - "fullyQualifiedLogicalName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.AndroidStudioConverter.Convert(System.IO.Stream,Microsoft.CodeAnalysis.Sarif.IResultLogWriter,Microsoft.CodeAnalysis.Sarif.OptionallyEmittedData)" + "logicalLocations": [ + { + "index": 835, + "fullyQualifiedName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.StatisticsLogger.LogConfigurationNotification(Microsoft.CodeAnalysis.Sarif.Notification)" + } + ] } ], "partialFingerprints": { - "UniqueId": "XmlReaderCreateInsecureXmlResolver" + "UniqueId": "0" }, "properties": { - "Category": "Microsoft.Security.Xml", - "FixCategory": "NonBreaking" + "Category": "Microsoft.Design", + "FixCategory": "DependsOnFix" } }, { - "ruleId": "CA1711", - "level": "error", + "ruleId": "CA1062", "message": { - "text": "Rename type name 'AssemblyLoadFileDelegate' so that it does not end in 'Delegate'.", - "messageId": "TypeNoAlternate" + "text": "FxCop results that have been suppressed do not contain a message string." }, "locations": [ { "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", - "uriBaseId": "$(ProjectDir)" + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", + "uriBaseId": "$(ProjectDir)", + "index": 143 } }, - "fullyQualifiedLogicalName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.AssemblyLoadFileDelegate" + "logicalLocations": [ + { + "index": 837, + "fullyQualifiedName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.TempFile..ctor(System.String)" + } + ] } ], "partialFingerprints": { - "UniqueId": "TypeNoAlternate" + "UniqueId": "0" }, + "suppressions": [ + { + "kind": "inSource" + } + ], "properties": { - "Level": "CriticalError", - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" + "Category": "Microsoft.Design", + "FixCategory": "DependsOnFix" } }, { - "ruleId": "CA3053", - "level": "warning", + "ruleId": "CA1062", "message": { - "text": "'ClangAnalyzerConverter.Convert(Stream, IResultLogWriter, OptionallyEmittedData)' instantiates an XmlReader instance by calling System.Xml.XmlReader.Create(System.IO.Stream,System.Xml.XmlReaderSettings) and provided an XmlReaderSettings instance with an insecure XmlResolver property value. This usage is potentially unsafe as untrusted external resources may be resolved during read operations. Provide a XmlReaderSettings instance and set the XmlResolver property to null or an instance of XmlSecureResolver.", - "messageId": "XmlReaderCreateInsecureXmlResolver" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", - "uriBaseId": "$(ProjectDir)" + "text": "FxCop results that have been suppressed do not contain a message string." }, "locations": [ { "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/ClangAnalyzerConverter.cs" - }, - "region": { - "startLine": 48, - "snippet": { - "text": " using (XmlReader xmlReader = XmlReader.Create(input, settings))" - } - }, - "contextRegion": { - "startLine": 47, - "startColumn": 1, - "endLine": 49, - "endColumn": 18, - "charOffset": 1963, - "charLength": 100, - "snippet": { - "text": "\r\n using (XmlReader xmlReader = XmlReader.Create(input, settings))\r\n {" - } + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", + "uriBaseId": "$(ProjectDir)", + "index": 143 } }, - "fullyQualifiedLogicalName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.ClangAnalyzerConverter.Convert(System.IO.Stream,Microsoft.CodeAnalysis.Sarif.IResultLogWriter,Microsoft.CodeAnalysis.Sarif.OptionallyEmittedData)" + "logicalLocations": [ + { + "index": 839, + "fullyQualifiedName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.XmlWriterExtensions.WriteElementInt(System.Xml.XmlWriter,System.String,System.Int32)" + } + ] } ], "partialFingerprints": { - "UniqueId": "XmlReaderCreateInsecureXmlResolver" + "UniqueId": "0" }, + "suppressions": [ + { + "kind": "inSource" + } + ], "properties": { - "Category": "Microsoft.Security.Xml", - "FixCategory": "NonBreaking" + "Category": "Microsoft.Design", + "FixCategory": "DependsOnFix" } }, { - "ruleId": "CA1502", - "level": "warning", + "ruleId": "CA1804", "message": { - "text": "'ClangAnalyzerConverter.ReadDictionary(XmlReader)' has a cyclomatic complexity of 30. Rewrite or refactor the method to reduce complexity to 25." + "text": "'FileStreamExtensionMethods.ReadString(this FileStream, int)' declares a variable, 'byteRead', of type 'int', which is never used or is only assigned to. Use this variable or remove it." }, "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", - "uriBaseId": "$(ProjectDir)" + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", + "uriBaseId": "$(ProjectDir)", + "index": 143 }, "locations": [ { "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/ClangAnalyzerConverter.cs" + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Driver/FileStreamExtensionMethods.cs", + "index": 157 }, "region": { - "startLine": 258, - "snippet": { - "text": " {" - } - }, - "contextRegion": { - "startLine": 257, - "startColumn": 1, - "endLine": 259, - "endColumn": 87, - "charOffset": 9911, - "charLength": 185, - "snippet": { - "text": " private static IDictionary ReadDictionary(XmlReader xmlReader)\r\n {\r\n IDictionary dictionary = new Dictionary();" - } + "startLine": 18 } }, - "fullyQualifiedLogicalName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.ClangAnalyzerConverter.ReadDictionary(System.Xml.XmlReader)" - } - ], - "properties": { - "Category": "Microsoft.Maintainability", - "FixCategory": "NonBreaking" - } - }, - { - "ruleId": "CA1811", - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", - "uriBaseId": "$(ProjectDir)" + "logicalLocations": [ + { + "index": 842, + "fullyQualifiedName": "sarif.driver.dll!Microsoft.CodeAnalysisDriver.FileStreamExtensionMethods.ReadString(System.IO.FileStream,System.Int32)" } - }, - "fullyQualifiedLogicalName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.ConverterResources..ctor()" + ] } ], - "suppressionStates": ["suppressedInSource"], + "partialFingerprints": { + "UniqueId": "byteRead" + }, "properties": { "Category": "Microsoft.Performance", "FixCategory": "NonBreaking" } }, { - "ruleId": "CA1704", - "level": "warning", + "ruleId": "CA1062", "message": { - "text": "Correct the spelling of 'Cpp' in type name 'CppCheckConverter'.", - "messageId": "Type" + "text": "In externally visible method 'FileStreamExtensionMethods.ReadString(this FileStream, int)', validate parameter 'stream' before using it." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", + "uriBaseId": "$(ProjectDir)", + "index": 143 }, "locations": [ { "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", - "uriBaseId": "$(ProjectDir)" + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Driver/FileStreamExtensionMethods.cs", + "index": 157 + }, + "region": { + "startLine": 13 } }, - "fullyQualifiedLogicalName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.CppCheckConverter" + "logicalLocations": [ + { + "index": 842, + "fullyQualifiedName": "sarif.driver.dll!Microsoft.CodeAnalysisDriver.FileStreamExtensionMethods.ReadString(System.IO.FileStream,System.Int32)" + } + ] } ], "partialFingerprints": { - "UniqueId": "Cpp#Type" + "UniqueId": "0" }, "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" + "Category": "Microsoft.Design", + "FixCategory": "DependsOnFix" } }, { - "ruleId": "CA3053", - "level": "warning", + "ruleId": "CA1011", + "level": "error", "message": { - "text": "'CppCheckConverter.Convert(Stream, IResultLogWriter, OptionallyEmittedData)' instantiates an XmlReader instance by calling System.Xml.XmlReader.Create(System.IO.Stream,System.Xml.XmlReaderSettings) and provided an XmlReaderSettings instance with an insecure XmlResolver property value. This usage is potentially unsafe as untrusted external resources may be resolved during read operations. Provide a XmlReaderSettings instance and set the XmlResolver property to null or an instance of XmlSecureResolver.", - "messageId": "XmlReaderCreateInsecureXmlResolver" + "text": "Consider changing the type of parameter 'stream' in 'FileStreamExtensionMethods.ReadToArray(this FileStream, int)' from 'FileStream' to its base type 'Stream'. This method appears to only require base class members in its implementation. Suppress this violation if there is a compelling reason to require the more derived type in the method signature." }, "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", - "uriBaseId": "$(ProjectDir)" + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", + "uriBaseId": "$(ProjectDir)", + "index": 143 }, "locations": [ { "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/CppCheckConverter.cs" + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Driver/FileStreamExtensionMethods.cs", + "index": 157 }, "region": { - "startLine": 52, - "snippet": { - "text": " using (XmlReader xmlReader = XmlReader.Create(input, settings))" - } - }, - "contextRegion": { - "startLine": 51, - "startColumn": 1, - "endLine": 53, - "endColumn": 14, - "charOffset": 1951, - "charLength": 92, - "snippet": { - "text": "\r\n using (XmlReader xmlReader = XmlReader.Create(input, settings))\r\n {" - } + "startLine": 51 } }, - "fullyQualifiedLogicalName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.CppCheckConverter.Convert(System.IO.Stream,Microsoft.CodeAnalysis.Sarif.IResultLogWriter,Microsoft.CodeAnalysis.Sarif.OptionallyEmittedData)" + "logicalLocations": [ + { + "index": 843, + "fullyQualifiedName": "sarif.driver.dll!Microsoft.CodeAnalysisDriver.FileStreamExtensionMethods.ReadToArray(System.IO.FileStream,System.Int32)" + } + ] } ], - "partialFingerprints": { - "UniqueId": "XmlReaderCreateInsecureXmlResolver" - }, "properties": { - "Category": "Microsoft.Security.Xml", - "FixCategory": "NonBreaking" + "Category": "Microsoft.Design", + "FixCategory": "Breaking" } }, { "ruleId": "CA1062", - "level": "warning", "message": { - "text": "In externally visible method 'Extensions.HasDefaultConstructor(this Type)', validate parameter 'type' before using it." + "text": "In externally visible method 'FileStreamExtensionMethods.ReadToArray(this FileStream, int)', validate parameter 'stream' before using it." }, "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", - "uriBaseId": "$(ProjectDir)" + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", + "uriBaseId": "$(ProjectDir)", + "index": 143 }, "locations": [ { "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/Extensions.cs" + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Driver/FileStreamExtensionMethods.cs", + "index": 157 }, "region": { - "startLine": 22, - "snippet": { - "text": " return type.GetConstructor(" - } - }, - "contextRegion": { - "startLine": 21, - "startColumn": 1, - "endLine": 23, - "endColumn": 73, - "charOffset": 753, - "charLength": 124, - "snippet": { - "text": " {\r\n return type.GetConstructor(\r\n BindingFlags.Instance | BindingFlags.Public," - } + "startLine": 53 } }, - "fullyQualifiedLogicalName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.Extensions.HasDefaultConstructor(System.Type)" + "logicalLocations": [ + { + "index": 843, + "fullyQualifiedName": "sarif.driver.dll!Microsoft.CodeAnalysisDriver.FileStreamExtensionMethods.ReadToArray(System.IO.FileStream,System.Int32)" + } + ] } ], "partialFingerprints": { @@ -11189,1372 +29186,1049 @@ } }, { - "ruleId": "CA1062", - "level": "warning", + "ruleId": "CA2243", "message": { - "text": "In externally visible method 'Extensions.MatchesToolFormat(this string, string)', validate parameter 'toolFormat' before using it." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", - "uriBaseId": "$(ProjectDir)" + "text": "In the constructor of 'AssemblyInformationalVersionAttribute', change the value of argument 'informationalVersion', which is currently \"2.0.0-csd.1.0.1\", to something that can be correctly parsed as 'Version'." }, "locations": [ { "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/Extensions.cs" - }, - "region": { - "startLine": 16, - "snippet": { - "text": " return toolFormat.Equals(other, StringComparison.OrdinalIgnoreCase);" - } - }, - "contextRegion": { - "startLine": 15, - "startColumn": 1, - "endLine": 17, - "endColumn": 10, - "charOffset": 501, - "charLength": 102, - "snippet": { - "text": " {\r\n return toolFormat.Equals(other, StringComparison.OrdinalIgnoreCase);\r\n }" - } + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Multitool.exe", + "uriBaseId": "$(ProjectDir)", + "index": 158 } }, - "fullyQualifiedLogicalName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.Extensions.MatchesToolFormat(System.String,System.String)" + "logicalLocations": [ + { + "index": 844, + "fullyQualifiedName": "sarif.multitool.exe" + } + ] } ], - "partialFingerprints": { - "UniqueId": "0" - }, "properties": { - "Category": "Microsoft.Design", - "FixCategory": "DependsOnFix" + "Category": "Microsoft.Usage", + "FixCategory": "NonBreaking" } }, { - "ruleId": "CA3053", - "level": "warning", + "ruleId": "CA1704", "message": { - "text": "'FortifyConverter.Convert(Stream, IResultLogWriter, OptionallyEmittedData)' instantiates an XmlReader instance by calling System.Xml.XmlReader.Create(System.IO.Stream,System.Xml.XmlReaderSettings) and provided an XmlReaderSettings instance with an insecure XmlResolver property value. This usage is potentially unsafe as untrusted external resources may be resolved during read operations. Provide a XmlReaderSettings instance and set the XmlResolver property to null or an instance of XmlSecureResolver.", - "messageId": "XmlReaderCreateInsecureXmlResolver" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", - "uriBaseId": "$(ProjectDir)" + "text": "Correct the spelling of 'Multitool' in assembly name 'Sarif.Multitool.exe'.", + "id": "Assembly" }, "locations": [ { "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/FortifyConverter.cs" - }, - "region": { - "startLine": 57, - "snippet": { - "text": " using (XmlReader reader = XmlReader.Create(input, settings))" - } - }, - "contextRegion": { - "startLine": 56, - "startColumn": 1, - "endLine": 58, - "endColumn": 14, - "charOffset": 2101, - "charLength": 89, - "snippet": { - "text": "\r\n using (XmlReader reader = XmlReader.Create(input, settings))\r\n {" - } + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Multitool.exe", + "uriBaseId": "$(ProjectDir)", + "index": 158 } }, - "fullyQualifiedLogicalName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.FortifyConverter.Convert(System.IO.Stream,Microsoft.CodeAnalysis.Sarif.IResultLogWriter,Microsoft.CodeAnalysis.Sarif.OptionallyEmittedData)" + "logicalLocations": [ + { + "index": 844, + "fullyQualifiedName": "sarif.multitool.exe" + } + ] } ], "partialFingerprints": { - "UniqueId": "XmlReaderCreateInsecureXmlResolver" + "UniqueId": "Multitool#Assembly" }, "properties": { - "Category": "Microsoft.Security.Xml", - "FixCategory": "NonBreaking" + "Level": "CriticalWarning", + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" } }, { - "ruleId": "CA1303", - "level": "warning", + "ruleId": "CA1704", "message": { - "text": "Method 'FortifyFprConverter.AddMessagesToResults()' passes a literal string as parameter 'value' of a call to 'Message.Text.set(string)'. Retrieve the following string(s) from a resource table instead: \"[, ](1)\".", - "messageId": "KnownValue" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", - "uriBaseId": "$(ProjectDir)" + "text": "Correct the spelling of 'Sarif' in assembly name 'Sarif.Multitool.exe'.", + "id": "Assembly" }, "locations": [ { "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/FortifyFprConverter.cs" - }, - "region": { - "startLine": 854, - "snippet": { - "text": " message.Text = messageText;" - } - }, - "contextRegion": { - "startLine": 853, - "startColumn": 1, - "endLine": 855, - "endColumn": 22, - "charOffset": 30889, - "charLength": 130, - "snippet": { - "text": " message = message.DeepClone();\r\n message.Text = messageText;\r\n }" - } + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Multitool.exe", + "uriBaseId": "$(ProjectDir)", + "index": 158 } }, - "fullyQualifiedLogicalName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.FortifyFprConverter.AddMessagesToResults()" + "logicalLocations": [ + { + "index": 844, + "fullyQualifiedName": "sarif.multitool.exe" + } + ] } ], "partialFingerprints": { - "UniqueId": "Microsoft.CodeAnalysis.Sarif.Message.set_Text(System.String)#KnownValue" + "UniqueId": "Sarif#Assembly" }, "properties": { - "Category": "Microsoft.Globalization", - "FixCategory": "DependsOnFix" + "Level": "CriticalWarning", + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" } }, { - "ruleId": "CA1305", + "ruleId": "CA1014", "level": "error", "message": { - "text": "Because the behavior of 'string.Format(string, object)' could vary based on the current user's locale settings, replace this call in 'FortifyFprConverter.AddMessagesToResults()' with a call to 'string.Format(IFormatProvider, string, params object[])'. If the result of 'string.Format(IFormatProvider, string, params object[])' will be displayed to the user, specify 'CultureInfo.CurrentCulture' as the 'IFormatProvider' parameter. Otherwise, if the result will be stored and accessed by software, such as when it is persisted to disk or to a database, specify 'CultureInfo.InvariantCulture'.", - "messageId": "IFormatProviderAlternateString" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", - "uriBaseId": "$(ProjectDir)" + "text": "Mark 'Sarif.Multitool.exe' with CLSCompliant(true) because it exposes externally visible types." }, "locations": [ { "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/FortifyFprConverter.cs" - }, - "region": { - "startLine": 843, - "snippet": { - "text": " messageText = messageText.Replace(string.Format(ReplacementTokenFormat, key)," - } - }, - "contextRegion": { - "startLine": 842, - "startColumn": 1, - "endLine": 844, - "endColumn": 109, - "charOffset": 30242, - "charLength": 300, - "snippet": { - "text": " // Replace the token with an embedded hyperlink\r\n messageText = messageText.Replace(string.Format(ReplacementTokenFormat, key),\r\n string.Format(EmbeddedLinkFormat, value));" - } + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Multitool.exe", + "uriBaseId": "$(ProjectDir)", + "index": 158 } }, - "fullyQualifiedLogicalName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.FortifyFprConverter.AddMessagesToResults()" + "logicalLocations": [ + { + "index": 844, + "fullyQualifiedName": "sarif.multitool.exe" + } + ] } ], - "partialFingerprints": { - "UniqueId": "System.String.Format(System.String,System.Object)#IFormatProviderAlternateString" - }, "properties": { - "Category": "Microsoft.Globalization", + "Category": "Microsoft.Design", "FixCategory": "NonBreaking" } }, { - "ruleId": "CA1305", - "level": "error", + "ruleId": "CA1824", "message": { - "text": "Because the behavior of 'string.Format(string, object)' could vary based on the current user's locale settings, replace this call in 'FortifyFprConverter.AddMessagesToResults()' with a call to 'string.Format(IFormatProvider, string, params object[])'. If the result of 'string.Format(IFormatProvider, string, params object[])' will be displayed to the user, specify 'CultureInfo.CurrentCulture' as the 'IFormatProvider' parameter. Otherwise, if the result will be stored and accessed by software, such as when it is persisted to disk or to a database, specify 'CultureInfo.InvariantCulture'.", - "messageId": "IFormatProviderAlternateString" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", - "uriBaseId": "$(ProjectDir)" + "text": "Because assembly 'Sarif.Multitool.exe' contains a ResX-based resource file, mark it with the NeutralResourcesLanguage attribute, specifying the language of the resources within the assembly. This could improve lookup performance the first time a resource is retrieved." }, "locations": [ { "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/FortifyFprConverter.cs" - }, - "region": { - "startLine": 843, - "snippet": { - "text": " messageText = messageText.Replace(string.Format(ReplacementTokenFormat, key)," - } - }, - "contextRegion": { - "startLine": 842, - "startColumn": 1, - "endLine": 844, - "endColumn": 109, - "charOffset": 30242, - "charLength": 300, - "snippet": { - "text": " // Replace the token with an embedded hyperlink\r\n messageText = messageText.Replace(string.Format(ReplacementTokenFormat, key),\r\n string.Format(EmbeddedLinkFormat, value));" - } + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Multitool.exe", + "uriBaseId": "$(ProjectDir)", + "index": 158 } }, - "fullyQualifiedLogicalName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.FortifyFprConverter.AddMessagesToResults()" + "logicalLocations": [ + { + "index": 844, + "fullyQualifiedName": "sarif.multitool.exe" + } + ] } ], - "partialFingerprints": { - "UniqueId": "System.String.Format(System.String,System.Object)#IFormatProviderAlternateString" - }, "properties": { - "Category": "Microsoft.Globalization", + "Category": "Microsoft.Performance", "FixCategory": "NonBreaking" } }, { - "ruleId": "CA1305", - "level": "error", + "ruleId": "CA1811", "message": { - "text": "Because the behavior of 'string.Format(string, object)' could vary based on the current user's locale settings, replace this call in 'FortifyFprConverter.AddMessagesToResults()' with a call to 'string.Format(IFormatProvider, string, params object[])'. If the result of 'string.Format(IFormatProvider, string, params object[])' will be displayed to the user, specify 'CultureInfo.CurrentCulture' as the 'IFormatProvider' parameter. Otherwise, if the result will be stored and accessed by software, such as when it is persisted to disk or to a database, specify 'CultureInfo.InvariantCulture'.", - "messageId": "IFormatProviderAlternateString" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", - "uriBaseId": "$(ProjectDir)" + "text": "FxCop results that have been suppressed do not contain a message string." }, "locations": [ { "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/FortifyFprConverter.cs" - }, - "region": { - "startLine": 849, - "snippet": { - "text": " messageText = messageText.Replace(string.Format(ReplacementTokenFormat, key), value);" - } - }, - "contextRegion": { - "startLine": 848, - "startColumn": 1, - "endLine": 850, - "endColumn": 30, - "charOffset": 30640, - "charLength": 218, - "snippet": { - "text": " // Replace the token with plain text\r\n messageText = messageText.Replace(string.Format(ReplacementTokenFormat, key), value);\r\n }" - } + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Multitool.exe", + "uriBaseId": "$(ProjectDir)", + "index": 158 } }, - "fullyQualifiedLogicalName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.FortifyFprConverter.AddMessagesToResults()" + "logicalLocations": [ + { + "index": 847, + "fullyQualifiedName": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.MultitoolResources..ctor()" + } + ] } ], - "partialFingerprints": { - "UniqueId": "System.String.Format(System.String,System.Object)#IFormatProviderAlternateString" - }, - "properties": { - "Category": "Microsoft.Globalization", - "FixCategory": "NonBreaking" - } - }, - { - "ruleId": "CA3053", - "locations": [ + "suppressions": [ { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.FortifyFprConverter.ParseAuditStream(System.IO.Stream)" + "kind": "inSource" } ], - "suppressionStates": ["suppressedInSource"], "properties": { - "Category": "Microsoft.Security.Xml", + "Category": "Microsoft.Performance", "FixCategory": "NonBreaking" } }, { - "ruleId": "CA1806", - "level": "warning", + "ruleId": "CA1031", + "level": "error", "message": { - "text": "'FortifyFprConverter.ParseFile()' calls 'int.TryParse(string, out int)' but does not explicitly check whether the conversion succeeded. Either use the return value in a conditional statement or verify that the call site expects that the out argument will be set to the default value when the conversion fails.", - "messageId": "TryParse" + "text": "Modify 'AbsoluteUriCommand.Run(AbsoluteUriOptions)' to catch a more specific exception than 'Exception' or rethrow the exception." }, "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", - "uriBaseId": "$(ProjectDir)" + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Multitool.exe", + "uriBaseId": "$(ProjectDir)", + "index": 158 }, "locations": [ { "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/FortifyFprConverter.cs" + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Multitool/AbsoluteUriCommand.cs", + "index": 159 }, "region": { - "startLine": 276, - "snippet": { - "text": " int.TryParse(sizeAttribute, out length);" - } - }, - "contextRegion": { - "startLine": 275, - "startColumn": 1, - "endLine": 277, - "endColumn": 14, - "charOffset": 10480, - "charLength": 86, - "snippet": { - "text": " {\r\n int.TryParse(sizeAttribute, out length);\r\n }" - } + "startLine": 34 } }, - "fullyQualifiedLogicalName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.FortifyFprConverter.ParseFile()" + "logicalLocations": [ + { + "index": 850, + "fullyQualifiedName": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.AbsoluteUriCommand.Run(Microsoft.CodeAnalysis.Sarif.Multitool.AbsoluteUriOptions)" + } + ] } ], - "partialFingerprints": { - "UniqueId": "System.Int32.TryParse(System.String,System.Int32@)#TryParse" - }, "properties": { - "Category": "Microsoft.Usage", + "Level": "CriticalError", + "Category": "Microsoft.Design", "FixCategory": "NonBreaking" } }, { - "ruleId": "CA1806", - "level": "warning", + "ruleId": "CA1031", + "level": "error", "message": { - "text": "'FortifyFprConverter.ParseRegion()' calls 'int.TryParse(string, out int)' but does not explicitly check whether the conversion succeeded. Either use the return value in a conditional statement or verify that the call site expects that the out argument will be set to the default value when the conversion fails.", - "messageId": "TryParse" + "text": "Modify 'BaselineCommand.Run(BaselineOptions)' to catch a more specific exception than 'Exception' or rethrow the exception." }, "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", - "uriBaseId": "$(ProjectDir)" + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Multitool.exe", + "uriBaseId": "$(ProjectDir)", + "index": 158 }, "locations": [ { "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/FortifyFprConverter.cs" + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Multitool/BaselineCommand.cs", + "index": 160 }, "region": { - "startLine": 508, - "snippet": { - "text": " int.TryParse(lineAttr, out startLine);" - } - }, - "contextRegion": { - "startLine": 507, - "startColumn": 1, - "endLine": 509, - "endColumn": 14, - "charOffset": 18718, - "charLength": 84, - "snippet": { - "text": " {\r\n int.TryParse(lineAttr, out startLine);\r\n }" - } + "startLine": 39 } }, - "fullyQualifiedLogicalName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.FortifyFprConverter.ParseRegion()" + "logicalLocations": [ + { + "index": 852, + "fullyQualifiedName": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.BaselineCommand.Run(Microsoft.CodeAnalysis.Sarif.Multitool.BaselineOptions)" + } + ] } ], - "partialFingerprints": { - "UniqueId": "System.Int32.TryParse(System.String,System.Int32@)#TryParse" - }, "properties": { - "Category": "Microsoft.Usage", + "Level": "CriticalError", + "Category": "Microsoft.Design", "FixCategory": "NonBreaking" } }, { - "ruleId": "CA1806", - "level": "warning", + "ruleId": "CA1031", + "level": "error", "message": { - "text": "'FortifyFprConverter.ParseRegion()' calls 'int.TryParse(string, out int)' but does not explicitly check whether the conversion succeeded. Either use the return value in a conditional statement or verify that the call site expects that the out argument will be set to the default value when the conversion fails.", - "messageId": "TryParse" + "text": "Modify 'ConvertCommand.Run(ConvertOptions)' to catch a more specific exception than 'Exception' or rethrow the exception." }, "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", - "uriBaseId": "$(ProjectDir)" + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Multitool.exe", + "uriBaseId": "$(ProjectDir)", + "index": 158 }, "locations": [ { "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/FortifyFprConverter.cs" + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Multitool/ConvertCommand.cs", + "index": 161 }, "region": { - "startLine": 515, - "snippet": { - "text": " int.TryParse(linelEndAttr, out endLine);" - } - }, - "contextRegion": { - "startLine": 514, - "startColumn": 1, - "endLine": 516, - "endColumn": 14, - "charOffset": 18959, - "charLength": 86, - "snippet": { - "text": " {\r\n int.TryParse(linelEndAttr, out endLine);\r\n }" - } + "startLine": 43 } }, - "fullyQualifiedLogicalName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.FortifyFprConverter.ParseRegion()" + "logicalLocations": [ + { + "index": 854, + "fullyQualifiedName": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.ConvertCommand.Run(Microsoft.CodeAnalysis.Sarif.Multitool.ConvertOptions)" + } + ] } ], - "partialFingerprints": { - "UniqueId": "System.Int32.TryParse(System.String,System.Int32@)#TryParse" - }, "properties": { - "Category": "Microsoft.Usage", + "Level": "CriticalError", + "Category": "Microsoft.Design", "FixCategory": "NonBreaking" } }, { - "ruleId": "CA1806", - "level": "warning", + "ruleId": "CA1062", "message": { - "text": "'FortifyFprConverter.ParseRegion()' calls 'int.TryParse(string, out int)' but does not explicitly check whether the conversion succeeded. Either use the return value in a conditional statement or verify that the call site expects that the out argument will be set to the default value when the conversion fails.", - "messageId": "TryParse" + "text": "In externally visible method 'JTokenExtensions.HasProperty(this JToken, string)', validate parameter 'token' before using it." }, "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", - "uriBaseId": "$(ProjectDir)" + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Multitool.exe", + "uriBaseId": "$(ProjectDir)", + "index": 158 }, "locations": [ { "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/FortifyFprConverter.cs" + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Multitool/JTokenExtensions.cs", + "index": 162 }, "region": { - "startLine": 522, - "snippet": { - "text": " int.TryParse(colStartAttr, out startColumn);" - } - }, - "contextRegion": { - "startLine": 521, - "startColumn": 1, - "endLine": 523, - "endColumn": 14, - "charOffset": 19207, - "charLength": 90, - "snippet": { - "text": " {\r\n int.TryParse(colStartAttr, out startColumn);\r\n }" - } + "startLine": 14 } }, - "fullyQualifiedLogicalName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.FortifyFprConverter.ParseRegion()" + "logicalLocations": [ + { + "index": 856, + "fullyQualifiedName": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.JTokenExtensions.HasProperty(Newtonsoft.Json.Linq.JToken,System.String)" + } + ] } ], "partialFingerprints": { - "UniqueId": "System.Int32.TryParse(System.String,System.Int32@)#TryParse" + "UniqueId": "0" }, "properties": { - "Category": "Microsoft.Usage", - "FixCategory": "NonBreaking" + "Category": "Microsoft.Design", + "FixCategory": "DependsOnFix" } }, { - "ruleId": "CA1806", - "level": "warning", + "ruleId": "CA1031", + "level": "error", "message": { - "text": "'FortifyFprConverter.ParseRegion()' calls 'int.TryParse(string, out int)' but does not explicitly check whether the conversion succeeded. Either use the return value in a conditional statement or verify that the call site expects that the out argument will be set to the default value when the conversion fails.", - "messageId": "TryParse" + "text": "Modify 'MergeCommand.Run(MergeOptions)' to catch a more specific exception than 'Exception' or rethrow the exception." }, "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", - "uriBaseId": "$(ProjectDir)" + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Multitool.exe", + "uriBaseId": "$(ProjectDir)", + "index": 158 }, "locations": [ { "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/FortifyFprConverter.cs" + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Multitool/MergeCommand.cs", + "index": 163 }, "region": { - "startLine": 529, - "snippet": { - "text": " int.TryParse(colEndAttr, out endColumn);" - } - }, - "contextRegion": { - "startLine": 528, - "startColumn": 1, - "endLine": 530, - "endColumn": 14, - "charOffset": 19451, - "charLength": 86, - "snippet": { - "text": " {\r\n int.TryParse(colEndAttr, out endColumn);\r\n }" - } + "startLine": 45 } }, - "fullyQualifiedLogicalName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.FortifyFprConverter.ParseRegion()" + "logicalLocations": [ + { + "index": 858, + "fullyQualifiedName": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.MergeCommand.Run(Microsoft.CodeAnalysis.Sarif.Multitool.MergeOptions)" + } + ] } ], - "partialFingerprints": { - "UniqueId": "System.Int32.TryParse(System.String,System.Int32@)#TryParse" - }, "properties": { - "Category": "Microsoft.Usage", + "Level": "CriticalError", + "Category": "Microsoft.Design", "FixCategory": "NonBreaking" } }, { - "ruleId": "CA1806", - "level": "warning", + "ruleId": "CA1704", "message": { - "text": "'FortifyFprConverter.ParseSnippet()' calls 'int.TryParse(string, out int)' but does not explicitly check whether the conversion succeeded. Either use the return value in a conditional statement or verify that the call site expects that the out argument will be set to the default value when the conversion fails.", - "messageId": "TryParse" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", - "uriBaseId": "$(ProjectDir)" + "text": "Correct the spelling of 'Multitool' in type name 'MultitoolOptionsBase'.", + "id": "Type" }, "locations": [ { "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/FortifyFprConverter.cs" - }, - "region": { - "startLine": 659, - "snippet": { - "text": " int.TryParse(parts[parts.Length - 2], out regionStartLine);" - } - }, - "contextRegion": { - "startLine": 658, - "startColumn": 1, - "endLine": 660, - "endColumn": 70, - "charOffset": 23723, - "charLength": 144, - "snippet": { - "text": "\r\n int.TryParse(parts[parts.Length - 2], out regionStartLine);\r\n int.TryParse(parts[parts.Length - 1], out regionEndLine);" - } + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Multitool.exe", + "uriBaseId": "$(ProjectDir)", + "index": 158 } }, - "fullyQualifiedLogicalName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.FortifyFprConverter.ParseSnippet()" + "logicalLocations": [ + { + "index": 859, + "fullyQualifiedName": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.MultitoolOptionsBase" + } + ] } ], "partialFingerprints": { - "UniqueId": "System.Int32.TryParse(System.String,System.Int32@)#TryParse" + "UniqueId": "Multitool#Type" }, "properties": { - "Category": "Microsoft.Usage", - "FixCategory": "NonBreaking" + "Level": "CriticalWarning", + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" } }, { - "ruleId": "CA1806", - "level": "warning", + "ruleId": "CA1031", + "level": "error", "message": { - "text": "'FortifyFprConverter.ParseSnippet()' calls 'int.TryParse(string, out int)' but does not explicitly check whether the conversion succeeded. Either use the return value in a conditional statement or verify that the call site expects that the out argument will be set to the default value when the conversion fails.", - "messageId": "TryParse" + "text": "Modify 'RebaseUriCommand.Run(RebaseUriOptions)' to catch a more specific exception than 'Exception' or rethrow the exception." }, "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", - "uriBaseId": "$(ProjectDir)" + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Multitool.exe", + "uriBaseId": "$(ProjectDir)", + "index": 158 }, "locations": [ { "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/FortifyFprConverter.cs" + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Multitool/RebaseUriCommand.cs", + "index": 164 }, "region": { - "startLine": 660, - "snippet": { - "text": " int.TryParse(parts[parts.Length - 1], out regionEndLine);" - } - }, - "contextRegion": { - "startLine": 659, - "startColumn": 1, - "endLine": 661, - "endColumn": 32, - "charOffset": 23725, - "charLength": 175, - "snippet": { - "text": " int.TryParse(parts[parts.Length - 2], out regionStartLine);\r\n int.TryParse(parts[parts.Length - 1], out regionEndLine);\r\n string text = null;" - } + "startLine": 46 } }, - "fullyQualifiedLogicalName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.FortifyFprConverter.ParseSnippet()" + "logicalLocations": [ + { + "index": 861, + "fullyQualifiedName": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.RebaseUriCommand.Run(Microsoft.CodeAnalysis.Sarif.Multitool.RebaseUriOptions)" + } + ] } ], - "partialFingerprints": { - "UniqueId": "System.Int32.TryParse(System.String,System.Int32@)#TryParse" - }, "properties": { - "Category": "Microsoft.Usage", + "Level": "CriticalError", + "Category": "Microsoft.Design", "FixCategory": "NonBreaking" } }, { - "ruleId": "CA1806", - "level": "warning", + "ruleId": "CA1305", + "level": "error", "message": { - "text": "'FortifyFprConverter.ParseSnippet()' calls 'int.TryParse(string, out int)' but does not explicitly check whether the conversion succeeded. Either use the return value in a conditional statement or verify that the call site expects that the out argument will be set to the default value when the conversion fails.", - "messageId": "TryParse" + "text": "Because the behavior of 'string.Format(string, object)' could vary based on the current user's locale settings, replace this call in 'RebaseUriCommand.Run(RebaseUriOptions)' with a call to 'string.Format(IFormatProvider, string, params object[])'. If the result of 'string.Format(IFormatProvider, string, params object[])' will be displayed to the user, specify 'CultureInfo.CurrentCulture' as the 'IFormatProvider' parameter. Otherwise, if the result will be stored and accessed by software, such as when it is persisted to disk or to a database, specify 'CultureInfo.InvariantCulture'.", + "id": "IFormatProviderAlternateString" }, "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", - "uriBaseId": "$(ProjectDir)" + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Multitool.exe", + "uriBaseId": "$(ProjectDir)", + "index": 158 }, "locations": [ { "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/FortifyFprConverter.cs" + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Multitool/RebaseUriCommand.cs", + "index": 164 }, "region": { - "startLine": 670, - "snippet": { - "text": " int.TryParse(value, out snippetStartLine);" - } - }, - "contextRegion": { - "startLine": 669, - "startColumn": 1, - "endLine": 671, - "endColumn": 18, - "charOffset": 24077, - "charLength": 155, - "snippet": { - "text": " string value = _reader.ReadElementContentAsString();\r\n int.TryParse(value, out snippetStartLine);\r\n }" - } + "startLine": 21 } }, - "fullyQualifiedLogicalName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.FortifyFprConverter.ParseSnippet()" + "logicalLocations": [ + { + "index": 861, + "fullyQualifiedName": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.RebaseUriCommand.Run(Microsoft.CodeAnalysis.Sarif.Multitool.RebaseUriOptions)" + } + ] } ], "partialFingerprints": { - "UniqueId": "System.Int32.TryParse(System.String,System.Int32@)#TryParse" + "UniqueId": "System.String.Format(System.String,System.Object)#IFormatProviderAlternateString" }, "properties": { - "Category": "Microsoft.Usage", + "Category": "Microsoft.Globalization", "FixCategory": "NonBreaking" } }, { - "ruleId": "CA1806", - "level": "warning", + "ruleId": "CA1031", + "level": "error", "message": { - "text": "'FortifyFprConverter.ParseSnippet()' calls 'int.TryParse(string, out int)' but does not explicitly check whether the conversion succeeded. Either use the return value in a conditional statement or verify that the call site expects that the out argument will be set to the default value when the conversion fails.", - "messageId": "TryParse" + "text": "Modify 'RewriteCommand.Run(RewriteOptions)' to catch a more specific exception than 'Exception' or rethrow the exception." }, "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", - "uriBaseId": "$(ProjectDir)" + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Multitool.exe", + "uriBaseId": "$(ProjectDir)", + "index": 158 }, "locations": [ { "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/FortifyFprConverter.cs" + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Multitool/RewriteCommand.cs", + "index": 165 }, "region": { - "startLine": 675, - "snippet": { - "text": " int.TryParse(value, out snippetEndLine);" - } - }, - "contextRegion": { - "startLine": 674, - "startColumn": 1, - "endLine": 676, - "endColumn": 18, - "charOffset": 24316, - "charLength": 153, - "snippet": { - "text": " string value = _reader.ReadElementContentAsString();\r\n int.TryParse(value, out snippetEndLine);\r\n }" - } + "startLine": 33 } }, - "fullyQualifiedLogicalName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.FortifyFprConverter.ParseSnippet()" + "logicalLocations": [ + { + "index": 863, + "fullyQualifiedName": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.RewriteCommand.Run(Microsoft.CodeAnalysis.Sarif.Multitool.RewriteOptions)" + } + ] } ], - "partialFingerprints": { - "UniqueId": "System.Int32.TryParse(System.String,System.Int32@)#TryParse" - }, "properties": { - "Category": "Microsoft.Usage", + "Level": "CriticalError", + "Category": "Microsoft.Design", "FixCategory": "NonBreaking" } }, { - "ruleId": "CA1822", - "level": "warning", + "ruleId": "CA1704", "message": { - "text": "The 'this' parameter (or 'Me' in Visual Basic) of 'FxCopConverter.BuildFileLocationFromFxCopReference(string)' is never used. Mark the member as static (or Shared in Visual Basic) or use 'this'/'Me' in the method body or at least one property accessor, if appropriate." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", - "uriBaseId": "$(ProjectDir)" + "text": "Correct the spelling of 'Sarif' in type name 'SarifPropertyName'.", + "id": "Type" }, "locations": [ { "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/FxCopConverter.cs" - }, - "region": { - "startLine": 193, - "snippet": { - "text": " {" - } - }, - "contextRegion": { - "startLine": 192, - "startColumn": 1, - "endLine": 194, - "endColumn": 37, - "charOffset": 6949, - "charLength": 135, - "snippet": { - "text": " private FileLocation BuildFileLocationFromFxCopReference(string fileReference)\r\n {\r\n string uriBaseId = null;" - } + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Multitool.exe", + "uriBaseId": "$(ProjectDir)", + "index": 158 } }, - "fullyQualifiedLogicalName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.FxCopConverter.BuildFileLocationFromFxCopReference(System.String)" + "logicalLocations": [ + { + "index": 864, + "fullyQualifiedName": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.SarifPropertyName" + } + ] } ], + "partialFingerprints": { + "UniqueId": "Sarif#Type" + }, "properties": { - "Category": "Microsoft.Performance", - "FixCategory": "NonBreaking" + "Level": "CriticalWarning", + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" } }, { - "ruleId": "CA1307", - "level": "error", + "ruleId": "CA1704", "message": { - "text": "Because the behavior of 'string.StartsWith(string)' could vary based on the current user's locale settings, replace this call in 'FxCopConverter.BuildFileLocationFromFxCopReference(string)' with a call to 'string.StartsWith(string, StringComparison)'. If the result of 'string.StartsWith(string, StringComparison)' will be displayed to the user, such as when sorting a list of items for display in a list box, specify 'StringComparison.CurrentCulture' or 'StringComparison.CurrentCultureIgnoreCase' as the 'StringComparison' parameter. If comparing case-insensitive identifiers, such as file paths, environment variables, or registry keys and values, specify 'StringComparison.OrdinalIgnoreCase'. Otherwise, if comparing case-sensitive identifiers, specify 'StringComparison.Ordinal'." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", - "uriBaseId": "$(ProjectDir)" + "text": "Correct the spelling of 'Stderr' in member name 'SarifPropertyName.Stderr' or remove it entirely if it represents any sort of Hungarian notation.", + "id": "Member" }, "locations": [ { "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/FxCopConverter.cs" - }, - "region": { - "startLine": 196, - "snippet": { - "text": " if (fileReference.StartsWith(ProjectDirectoryVariable + \"/\"))" - } - }, - "contextRegion": { - "startLine": 195, - "startColumn": 1, - "endLine": 197, - "endColumn": 14, - "charOffset": 7086, - "charLength": 90, - "snippet": { - "text": "\r\n if (fileReference.StartsWith(ProjectDirectoryVariable + \"/\"))\r\n {" - } + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Multitool.exe", + "uriBaseId": "$(ProjectDir)", + "index": 158 } }, - "fullyQualifiedLogicalName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.FxCopConverter.BuildFileLocationFromFxCopReference(System.String)" + "logicalLocations": [ + { + "index": 865, + "fullyQualifiedName": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.SarifPropertyName.Stderr" + } + ] } ], "partialFingerprints": { - "UniqueId": "System.String.StartsWith(System.String)" + "UniqueId": "Stderr#Member" }, "properties": { - "Category": "Microsoft.Globalization", - "FixCategory": "NonBreaking" - } + "Level": "CriticalWarning", + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" + } }, { - "ruleId": "CA1822", - "level": "warning", + "ruleId": "CA1704", "message": { - "text": "The 'this' parameter (or 'Me' in Visual Basic) of 'FxCopConverter.CreateRule(FxCopLogReader.Context)' is never used. Mark the member as static (or Shared in Visual Basic) or use 'this'/'Me' in the method body or at least one property accessor, if appropriate." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", - "uriBaseId": "$(ProjectDir)" + "text": "Correct the spelling of 'Stdin' in member name 'SarifPropertyName.Stdin' or remove it entirely if it represents any sort of Hungarian notation.", + "id": "Member" }, "locations": [ { "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/FxCopConverter.cs" - }, - "region": { - "startLine": 99, - "snippet": { - "text": " {" - } - }, - "contextRegion": { - "startLine": 98, - "startColumn": 1, - "endLine": 100, - "endColumn": 32, - "charOffset": 3306, - "charLength": 108, - "snippet": { - "text": " internal Rule CreateRule(FxCopLogReader.Context context)\r\n {\r\n var rule = new Rule" - } + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Multitool.exe", + "uriBaseId": "$(ProjectDir)", + "index": 158 } }, - "fullyQualifiedLogicalName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.FxCopConverter.CreateRule(Microsoft.CodeAnalysis.Sarif.Converters.FxCopLogReader+Context)" + "logicalLocations": [ + { + "index": 866, + "fullyQualifiedName": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.SarifPropertyName.Stdin" + } + ] } ], + "partialFingerprints": { + "UniqueId": "Stdin#Member" + }, "properties": { - "Category": "Microsoft.Performance", - "FixCategory": "NonBreaking" + "Level": "CriticalWarning", + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" } }, { - "ruleId": "CA2202", - "level": "warning", + "ruleId": "CA1704", "message": { - "text": "Object 'stream' can be disposed more than once in method 'FxCopLogReader.Read(FxCopLogReader.Context, Stream)'. To avoid generating a System.ObjectDisposedException you should not call Dispose more than one time on an object.: Lines: 734" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", - "uriBaseId": "$(ProjectDir)" + "text": "Correct the spelling of 'Stdout' in member name 'SarifPropertyName.Stdout' or remove it entirely if it represents any sort of Hungarian notation.", + "id": "Member" }, "locations": [ { "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/FxCopConverter.cs" - }, - "region": { - "startLine": 734, - "snippet": { - "text": " }" - } - }, - "contextRegion": { - "startLine": 733, - "startColumn": 1, - "endLine": 735, - "endColumn": 1, - "charOffset": 27288, - "charLength": 55, - "snippet": { - "text": " schemaSet.Add(schema);\r\n }\r\n" - } + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Multitool.exe", + "uriBaseId": "$(ProjectDir)", + "index": 158 } }, - "fullyQualifiedLogicalName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.FxCopLogReader.Read(Microsoft.CodeAnalysis.Sarif.Converters.FxCopLogReader+Context,System.IO.Stream)" + "logicalLocations": [ + { + "index": 867, + "fullyQualifiedName": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.SarifPropertyName.Stdout" + } + ] } ], + "partialFingerprints": { + "UniqueId": "Stdout#Member" + }, "properties": { - "Category": "Microsoft.Usage", - "FixCategory": "DependsOnFix" + "Level": "CriticalWarning", + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" } }, { - "ruleId": "CA3053", + "ruleId": "CA1704", + "message": { + "text": "Correct the spelling of 'Stderr' in member name 'SarifPropertyName.StdoutStderr' or remove it entirely if it represents any sort of Hungarian notation.", + "id": "Member" + }, "locations": [ { "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", - "uriBaseId": "$(ProjectDir)" + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Multitool.exe", + "uriBaseId": "$(ProjectDir)", + "index": 158 } }, - "fullyQualifiedLogicalName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.FxCopLogReader.Read(Microsoft.CodeAnalysis.Sarif.Converters.FxCopLogReader+Context,System.IO.Stream)" + "logicalLocations": [ + { + "index": 868, + "fullyQualifiedName": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.SarifPropertyName.StdoutStderr" + } + ] } ], - "suppressionStates": ["suppressedInSource"], + "partialFingerprints": { + "UniqueId": "Stderr#Member" + }, "properties": { - "Category": "Microsoft.Security.Xml", - "FixCategory": "NonBreaking" + "Level": "CriticalWarning", + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" } }, { - "ruleId": "CA2000", - "level": "warning", + "ruleId": "CA1704", "message": { - "text": "In method 'LogReader.ReadLog(string, Encoding)', call System.IDisposable.Dispose on object 'new MemoryStream(encoding.GetBytes(input))' before all references to it are out of scope.", - "messageId": "NonExceptionEdge" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", - "uriBaseId": "$(ProjectDir)" + "text": "Correct the spelling of 'Stdout' in member name 'SarifPropertyName.StdoutStderr' or remove it entirely if it represents any sort of Hungarian notation.", + "id": "Member" }, "locations": [ { "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/LogReader.cs" - }, - "region": { - "startLine": 18, - "snippet": { - "text": " return ReadLog(new MemoryStream(encoding.GetBytes(input)));" - } - }, - "contextRegion": { - "startLine": 17, - "startColumn": 1, - "endLine": 19, - "endColumn": 10, - "charOffset": 498, - "charLength": 93, - "snippet": { - "text": " {\r\n return ReadLog(new MemoryStream(encoding.GetBytes(input)));\r\n }" - } + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Multitool.exe", + "uriBaseId": "$(ProjectDir)", + "index": 158 } }, - "fullyQualifiedLogicalName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.LogReader`1.ReadLog(System.String,System.Text.Encoding)" + "logicalLocations": [ + { + "index": 868, + "fullyQualifiedName": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.SarifPropertyName.StdoutStderr" + } + ] } ], "partialFingerprints": { - "UniqueId": "NonExceptionEdge" + "UniqueId": "Stdout#Member" }, "properties": { - "Category": "Microsoft.Reliability", - "FixCategory": "DependsOnFix" + "Level": "CriticalWarning", + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" } }, { - "ruleId": "CA1062", - "level": "warning", + "ruleId": "CA1704", "message": { - "text": "In externally visible method 'LogReader.ReadLog(string, Encoding)', validate parameter 'encoding' before using it." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", - "uriBaseId": "$(ProjectDir)" + "text": "Correct the spelling of 'Sarif' in type name 'SarifValidationContext'.", + "id": "Type" }, "locations": [ { "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/LogReader.cs" - }, - "region": { - "startLine": 18, - "snippet": { - "text": " return ReadLog(new MemoryStream(encoding.GetBytes(input)));" - } - }, - "contextRegion": { - "startLine": 17, - "startColumn": 1, - "endLine": 19, - "endColumn": 10, - "charOffset": 498, - "charLength": 93, - "snippet": { - "text": " {\r\n return ReadLog(new MemoryStream(encoding.GetBytes(input)));\r\n }" - } + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Multitool.exe", + "uriBaseId": "$(ProjectDir)", + "index": 158 } }, - "fullyQualifiedLogicalName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.LogReader`1.ReadLog(System.String,System.Text.Encoding)" + "logicalLocations": [ + { + "index": 869, + "fullyQualifiedName": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.SarifValidationContext" + } + ] } ], "partialFingerprints": { - "UniqueId": "1" + "UniqueId": "Sarif#Type" }, "properties": { - "Category": "Microsoft.Design", - "FixCategory": "DependsOnFix" + "Level": "CriticalWarning", + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" } }, { - "ruleId": "CA2208", + "ruleId": "CA1063", "level": "error", "message": { - "text": "Method 'PluginConverterFactory.CreateConverterCore(string)' passes 'pluginAssemblyPath' as the 'paramName' argument to a 'ArgumentException' constructor. Replace this argument with one of the method's parameter names. Note that the provided parameter name should have the exact casing as declared on the method.", - "messageId": "IncorrectParameterName" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", - "uriBaseId": "$(ProjectDir)" + "text": "Provide an overridable implementation of Dispose(bool) on 'SarifValidationContext' or mark the type as sealed. A call to Dispose(false) should only clean up native resources. A call to Dispose(true) should clean up both managed and native resources.", + "id": "ProvideDisposeBool" }, "locations": [ { "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/PluginConverterFactory.cs" - }, - "region": { - "startLine": 39, - "snippet": { - "text": " throw new ArgumentException(message, nameof(this.pluginAssemblyPath));" - } - }, - "contextRegion": { - "startLine": 38, - "startColumn": 1, - "endLine": 40, - "endColumn": 14, - "charOffset": 1461, - "charLength": 103, - "snippet": { - "text": "\r\n throw new ArgumentException(message, nameof(this.pluginAssemblyPath));\r\n }" - } + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Multitool.exe", + "uriBaseId": "$(ProjectDir)", + "index": 158 } }, - "fullyQualifiedLogicalName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.PluginConverterFactory.CreateConverterCore(System.String)" + "logicalLocations": [ + { + "index": 869, + "fullyQualifiedName": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.SarifValidationContext" + } + ] } ], "partialFingerprints": { - "UniqueId": "IncorrectParameterName" + "UniqueId": "ProvideDisposeBool" }, "properties": { - "Level": "CriticalError", - "Category": "Microsoft.Usage", - "FixCategory": "NonBreaking" + "Category": "Microsoft.Design", + "FixCategory": "Breaking" } }, { - "ruleId": "CA2208", - "level": "error", + "ruleId": "CA1816", "message": { - "text": "Method 'PluginConverterFactory.CreateConverterCore(string)' passes 'pluginAssemblyPath' as the 'paramName' argument to a 'ArgumentException' constructor. Replace this argument with one of the method's parameter names. Note that the provided parameter name should have the exact casing as declared on the method.", - "messageId": "IncorrectParameterName" + "text": "Change 'SarifValidationContext.Dispose()' to call 'GC.SuppressFinalize(object)'. This will prevent derived types that introduce a finalizer from needing to re-implement 'IDisposable' to call it.", + "id": "NotCalled" }, "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", - "uriBaseId": "$(ProjectDir)" + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Multitool.exe", + "uriBaseId": "$(ProjectDir)", + "index": 158 }, "locations": [ { "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/PluginConverterFactory.cs" + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Multitool/SarifValidationContext.cs", + "index": 166 }, "region": { - "startLine": 58, - "snippet": { - "text": " throw new ArgumentException(message, nameof(this.pluginAssemblyPath));" - } - }, - "contextRegion": { - "startLine": 57, - "startColumn": 1, - "endLine": 59, - "endColumn": 14, - "charOffset": 2297, - "charLength": 103, - "snippet": { - "text": "\r\n throw new ArgumentException(message, nameof(this.pluginAssemblyPath));\r\n }" - } + "startLine": 65 } }, - "fullyQualifiedLogicalName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.PluginConverterFactory.CreateConverterCore(System.String)" + "logicalLocations": [ + { + "index": 870, + "fullyQualifiedName": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.SarifValidationContext.Dispose()" + } + ] } ], "partialFingerprints": { - "UniqueId": "IncorrectParameterName" + "UniqueId": "NotCalled" }, "properties": { - "Level": "CriticalError", + "Level": "CriticalWarning", "Category": "Microsoft.Usage", "FixCategory": "NonBreaking" } }, { - "ruleId": "CA1704", - "level": "warning", + "ruleId": "CA1063", + "level": "error", "message": { - "text": "Correct the spelling of 'Efast' in type name 'PREfastConverter'.", - "messageId": "Type" + "text": "Modify 'SarifValidationContext.Dispose()' so that it calls Dispose(true), then calls GC.SuppressFinalize on the current object instance ('this' or 'Me' in Visual Basic), and then returns.", + "id": "DisposeImplementation" + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Multitool.exe", + "uriBaseId": "$(ProjectDir)", + "index": 158 }, "locations": [ { "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", - "uriBaseId": "$(ProjectDir)" + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Multitool/SarifValidationContext.cs", + "index": 166 + }, + "region": { + "startLine": 65 } }, - "fullyQualifiedLogicalName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.PREfastConverter" + "logicalLocations": [ + { + "index": 870, + "fullyQualifiedName": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.SarifValidationContext.Dispose()" + } + ] } ], "partialFingerprints": { - "UniqueId": "Efast#Type" + "UniqueId": "DisposeImplementation" }, "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Naming", + "Category": "Microsoft.Design", "FixCategory": "Breaking" } }, { - "ruleId": "CA3053", - "level": "warning", + "ruleId": "CA2227", "message": { - "text": "'PREfastConverter.Convert(Stream, IResultLogWriter, OptionallyEmittedData)' instantiates an XmlReader instance by calling System.Xml.XmlReader.Create(System.IO.Stream,System.Xml.XmlReaderSettings) and provided an XmlReaderSettings instance with an insecure XmlResolver property value. This usage is potentially unsafe as untrusted external resources may be resolved during read operations. Provide a XmlReaderSettings instance and set the XmlResolver property to null or an instance of XmlSecureResolver.", - "messageId": "XmlReaderCreateInsecureXmlResolver" + "text": "Change 'SarifValidationContext.Policy' to be read-only by removing the property setter." }, "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", - "uriBaseId": "$(ProjectDir)" + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Multitool.exe", + "uriBaseId": "$(ProjectDir)", + "index": 158 }, "locations": [ { "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/PREFastConverter.cs" + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Multitool/SarifValidationContext.cs", + "index": 166 }, "region": { - "startLine": 50, - "snippet": { - "text": " using (var reader = XmlReader.Create(input, settings))" - } - }, - "contextRegion": { - "startLine": 49, - "startColumn": 1, - "endLine": 51, - "endColumn": 14, - "charOffset": 1584, - "charLength": 83, - "snippet": { - "text": "\r\n using (var reader = XmlReader.Create(input, settings))\r\n {" - } + "startLine": 28 } }, - "fullyQualifiedLogicalName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.PREfastConverter.Convert(System.IO.Stream,Microsoft.CodeAnalysis.Sarif.IResultLogWriter,Microsoft.CodeAnalysis.Sarif.OptionallyEmittedData)" + "logicalLocations": [ + { + "index": 871, + "fullyQualifiedName": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.SarifValidationContext.Policy" + } + ] } ], - "partialFingerprints": { - "UniqueId": "XmlReaderCreateInsecureXmlResolver" - }, "properties": { - "Category": "Microsoft.Security.Xml", - "FixCategory": "NonBreaking" + "Category": "Microsoft.Usage", + "FixCategory": "Breaking" } }, { - "ruleId": "CA1305", + "ruleId": "CA1031", "level": "error", "message": { - "text": "Because the behavior of 'string.Format(string, object, object)' could vary based on the current user's locale settings, replace this call in 'PREfastConverter.CreateResult(Defect)' with a call to 'string.Format(IFormatProvider, string, params object[])'. If the result of 'string.Format(IFormatProvider, string, params object[])' will be displayed to the user, specify 'CultureInfo.CurrentCulture' as the 'IFormatProvider' parameter. Otherwise, if the result will be stored and accessed by software, such as when it is persisted to disk or to a database, specify 'CultureInfo.InvariantCulture'.", - "messageId": "IFormatProviderAlternateString" + "text": "Modify 'TransformCommand.Run(TransformOptions)' to catch a more specific exception than 'Exception' or rethrow the exception." }, "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", - "uriBaseId": "$(ProjectDir)" + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Multitool.exe", + "uriBaseId": "$(ProjectDir)", + "index": 158 }, "locations": [ { "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/PREFastConverter.cs" + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Multitool/TransformCommand.cs", + "index": 167 }, "region": { - "startLine": 86, - "snippet": { - "text": " var resultsFileUri = new Uri($\"{defect.SFA.FilePath}{defect.SFA.FileName}\", UriKind.Relative);" - } - }, - "contextRegion": { - "startLine": 85, - "startColumn": 1, - "endLine": 87, - "endColumn": 171, - "charOffset": 2908, - "charLength": 280, - "snippet": { - "text": "\r\n var resultsFileUri = new Uri($\"{defect.SFA.FilePath}{defect.SFA.FileName}\", UriKind.Relative);\r\n var physicalLocation = new PhysicalLocation(id: 0, fileLocation: new FileLocation(uri: resultsFileUri, uriBaseId: null), region: region, contextRegion: null);" - } + "startLine": 52 } }, - "fullyQualifiedLogicalName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.PREfastConverter.CreateResult(Microsoft.CodeAnalysis.Sarif.Converters.PREFastObjectModel.Defect)" + "logicalLocations": [ + { + "index": 873, + "fullyQualifiedName": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.TransformCommand.Run(Microsoft.CodeAnalysis.Sarif.Multitool.TransformOptions)" + } + ] } ], - "partialFingerprints": { - "UniqueId": "System.String.Format(System.String,System.Object,System.Object)#IFormatProviderAlternateString" - }, "properties": { - "Category": "Microsoft.Globalization", + "Level": "CriticalError", + "Category": "Microsoft.Design", "FixCategory": "NonBreaking" } }, { - "ruleId": "CA1822", - "level": "warning", + "ruleId": "CA1804", "message": { - "text": "The 'this' parameter (or 'Me' in Visual Basic) of 'PREfastConverter.GenerateCodeFlows(Defect, Result)' is never used. Mark the member as static (or Shared in Visual Basic) or use 'this'/'Me' in the method body or at least one property accessor, if appropriate." + "text": "'TransformCommand.Run(TransformOptions)' declares a variable, 'dataToInsert', of type 'OptionallyEmittedData', which is never used or is only assigned to. Use this variable or remove it." }, "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", - "uriBaseId": "$(ProjectDir)" + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Multitool.exe", + "uriBaseId": "$(ProjectDir)", + "index": 158 }, "locations": [ { "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/PREFastConverter.cs" + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Multitool/TransformCommand.cs", + "index": 167 }, "region": { - "startLine": 144, - "snippet": { - "text": " {" - } - }, - "contextRegion": { - "startLine": 143, - "startColumn": 1, - "endLine": 145, - "endColumn": 49, - "charOffset": 4926, - "charLength": 129, - "snippet": { - "text": " private void GenerateCodeFlows(Defect defect, Result result)\r\n {\r\n List sfas = defect?.Path?.SFAs;" - } + "startLine": 24 } }, - "fullyQualifiedLogicalName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.PREfastConverter.GenerateCodeFlows(Microsoft.CodeAnalysis.Sarif.Converters.PREFastObjectModel.Defect,Microsoft.CodeAnalysis.Sarif.Result)" + "logicalLocations": [ + { + "index": 873, + "fullyQualifiedName": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.TransformCommand.Run(Microsoft.CodeAnalysis.Sarif.Multitool.TransformOptions)" + } + ] } ], + "partialFingerprints": { + "UniqueId": "dataToInsert" + }, "properties": { "Category": "Microsoft.Performance", "FixCategory": "NonBreaking" } }, { - "ruleId": "CA1305", - "level": "error", + "ruleId": "CA1062", "message": { - "text": "Because the behavior of 'string.Format(string, object, object)' could vary based on the current user's locale settings, replace this call in 'PREfastConverter.GenerateCodeFlows(Defect, Result)' with a call to 'string.Format(IFormatProvider, string, params object[])'. If the result of 'string.Format(IFormatProvider, string, params object[])' will be displayed to the user, specify 'CultureInfo.CurrentCulture' as the 'IFormatProvider' parameter. Otherwise, if the result will be stored and accessed by software, such as when it is persisted to disk or to a database, specify 'CultureInfo.InvariantCulture'.", - "messageId": "IFormatProviderAlternateString" + "text": "In externally visible method 'ValidateCommand.AnalyzeTarget(IEnumerable>, SarifValidationContext, HashSet)', validate parameter 'context' before using it." }, "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", - "uriBaseId": "$(ProjectDir)" + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Multitool.exe", + "uriBaseId": "$(ProjectDir)", + "index": 158 }, "locations": [ { "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/PREFastConverter.cs" + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Multitool/ValidateCommand.cs", + "index": 168 }, "region": { - "startLine": 163, - "snippet": { - "text": " var uri = new Uri($\"{sfa.FilePath}{sfa.FileName}\", UriKind.Relative);" - } - }, - "contextRegion": { - "startLine": 162, - "startColumn": 1, - "endLine": 164, - "endColumn": 160, - "charOffset": 5605, - "charLength": 248, - "snippet": { - "text": "\r\n var uri = new Uri($\"{sfa.FilePath}{sfa.FileName}\", UriKind.Relative);\r\n var fileLocation = new PhysicalLocation(id: 0, fileLocation: new FileLocation(uri: uri, uriBaseId: null), region: region, contextRegion: null);" - } + "startLine": 55 } }, - "fullyQualifiedLogicalName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.PREfastConverter.GenerateCodeFlows(Microsoft.CodeAnalysis.Sarif.Converters.PREFastObjectModel.Defect,Microsoft.CodeAnalysis.Sarif.Result)" + "logicalLocations": [ + { + "index": 875, + "fullyQualifiedName": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.ValidateCommand.AnalyzeTarget(System.Collections.Generic.IEnumerable`1>,Microsoft.CodeAnalysis.Sarif.Multitool.SarifValidationContext,System.Collections.Generic.HashSet`1)" + } + ] } ], "partialFingerprints": { - "UniqueId": "System.String.Format(System.String,System.Object,System.Object)#IFormatProviderAlternateString" + "UniqueId": "1" }, "properties": { - "Category": "Microsoft.Globalization", - "FixCategory": "NonBreaking" + "Category": "Microsoft.Design", + "FixCategory": "DependsOnFix" } }, { - "ruleId": "CA1822", - "level": "warning", + "ruleId": "CA1062", "message": { - "text": "The 'this' parameter (or 'Me' in Visual Basic) of 'PREfastConverter.RemovePREfastNewLine(string)' is never used. Mark the member as static (or Shared in Visual Basic) or use 'this'/'Me' in the method body or at least one property accessor, if appropriate." + "text": "In externally visible method 'ValidateCommand.CreateContext(ValidateOptions, IAnalysisLogger, RuntimeConditions, string)', validate parameter 'options' before using it." }, "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", - "uriBaseId": "$(ProjectDir)" + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Multitool.exe", + "uriBaseId": "$(ProjectDir)", + "index": 158 }, "locations": [ { "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/PREFastConverter.cs" + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Multitool/ValidateCommand.cs", + "index": 168 }, "region": { - "startLine": 224, - "snippet": { - "text": " {" - } - }, - "contextRegion": { - "startLine": 223, - "startColumn": 1, - "endLine": 225, - "endColumn": 71, - "charOffset": 7959, - "charLength": 142, - "snippet": { - "text": " private string RemovePREfastNewLine(string content)\r\n {\r\n return content.Replace(\"PREFAST_NEWLINE\\n\", string.Empty);" - } + "startLine": 40 } }, - "fullyQualifiedLogicalName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.PREfastConverter.RemovePREfastNewLine(System.String)" + "logicalLocations": [ + { + "index": 876, + "fullyQualifiedName": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.ValidateCommand.CreateContext(Microsoft.CodeAnalysis.Sarif.Multitool.ValidateOptions,Microsoft.CodeAnalysis.Sarif.IAnalysisLogger,Microsoft.CodeAnalysis.Sarif.RuntimeConditions,System.String)" + } + ] } ], + "partialFingerprints": { + "UniqueId": "0" + }, "properties": { - "Category": "Microsoft.Performance", - "FixCategory": "NonBreaking" + "Category": "Microsoft.Design", + "FixCategory": "DependsOnFix" } }, { "ruleId": "CA1822", - "level": "warning", "message": { - "text": "The 'this' parameter (or 'Me' in Visual Basic) of 'PREfastConverter.SetProbability(Defect, Result)' is never used. Mark the member as static (or Shared in Visual Basic) or use 'this'/'Me' in the method body or at least one property accessor, if appropriate." + "text": "The 'this' parameter (or 'Me' in Visual Basic) of 'ValidateCommand.Validate(string, string, IAnalysisLogger)' is never used. Mark the member as static (or Shared in Visual Basic) or use 'this'/'Me' in the method body or at least one property accessor, if appropriate." }, "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", - "uriBaseId": "$(ProjectDir)" + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Multitool.exe", + "uriBaseId": "$(ProjectDir)", + "index": 158 }, "locations": [ { "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/PREFastConverter.cs" + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Multitool/ValidateCommand.cs", + "index": 168 }, "region": { - "startLine": 136, - "snippet": { - "text": " {" - } - }, - "contextRegion": { - "startLine": 135, - "startColumn": 1, - "endLine": 137, - "endColumn": 63, - "charOffset": 4676, - "charLength": 140, - "snippet": { - "text": " private void SetProbability(Defect defect, Result result)\r\n {\r\n if (string.IsNullOrWhiteSpace(defect.Probability))" - } + "startLine": 95 } }, - "fullyQualifiedLogicalName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.PREfastConverter.SetProbability(Microsoft.CodeAnalysis.Sarif.Converters.PREFastObjectModel.Defect,Microsoft.CodeAnalysis.Sarif.Result)" + "logicalLocations": [ + { + "index": 877, + "fullyQualifiedName": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.ValidateCommand.Validate(System.String,System.String,Microsoft.CodeAnalysis.Sarif.IAnalysisLogger)" + } + ] } ], "properties": { @@ -12563,40 +30237,30 @@ } }, { - "ruleId": "CA1822", - "level": "warning", + "ruleId": "CA1811", "message": { - "text": "The 'this' parameter (or 'Me' in Visual Basic) of 'PREfastConverter.SetRank(Defect, Result)' is never used. Mark the member as static (or Shared in Visual Basic) or use 'this'/'Me' in the method body or at least one property accessor, if appropriate." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", - "uriBaseId": "$(ProjectDir)" + "text": "FxCop results that have been suppressed do not contain a message string." }, "locations": [ { "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/PREFastConverter.cs" - }, - "region": { - "startLine": 128, - "snippet": { - "text": " {" - } - }, - "contextRegion": { - "startLine": 127, - "startColumn": 1, - "endLine": 129, - "endColumn": 56, - "charOffset": 4454, - "charLength": 126, - "snippet": { - "text": " private void SetRank(Defect defect, Result result)\r\n {\r\n if (string.IsNullOrWhiteSpace(defect.Rank))" - } + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Multitool.exe", + "uriBaseId": "$(ProjectDir)", + "index": 158 } }, - "fullyQualifiedLogicalName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.PREfastConverter.SetRank(Microsoft.CodeAnalysis.Sarif.Converters.PREFastObjectModel.Defect,Microsoft.CodeAnalysis.Sarif.Result)" + "logicalLocations": [ + { + "index": 879, + "fullyQualifiedName": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.ValidatorResources..ctor()" + } + ] + } + ], + "suppressions": [ + { + "kind": "inSource" } ], "properties": { @@ -12605,29929 +30269,8559 @@ } }, { - "ruleId": "CA1704", - "level": "warning", + "ruleId": "CA1062", "message": { - "text": "Correct the spelling of 'Pylint' in type name 'PylintConverter'.", - "messageId": "Type" + "text": "In externally visible method 'DoNotUseFriendlyNameAsRuleId.Analyze(Rule, string)', validate parameter 'rule' before using it." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Multitool.exe", + "uriBaseId": "$(ProjectDir)", + "index": 158 }, "locations": [ { "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", - "uriBaseId": "$(ProjectDir)" + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Multitool/Rules/DoNotUseFriendlyNameAsRuleId.cs", + "index": 169 + }, + "region": { + "startLine": 38 } }, - "fullyQualifiedLogicalName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.PylintConverter" + "logicalLocations": [ + { + "index": 882, + "fullyQualifiedName": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.Rules.DoNotUseFriendlyNameAsRuleId.Analyze(Microsoft.CodeAnalysis.Sarif.Rule,System.String)" + } + ] } ], "partialFingerprints": { - "UniqueId": "Pylint#Type" + "UniqueId": "0" }, "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" + "Category": "Microsoft.Design", + "FixCategory": "DependsOnFix" } }, { - "ruleId": "CA1822", - "level": "warning", + "ruleId": "CA1062", "message": { - "text": "The 'this' parameter (or 'Me' in Visual Basic) of 'PylintConverter.CreateResult(PylintLogEntry)' is never used. Mark the member as static (or Shared in Visual Basic) or use 'this'/'Me' in the method body or at least one property accessor, if appropriate." + "text": "In externally visible method 'EndColumnMustNotBeLessThanStartColumn.Analyze(Region, string)', validate parameter 'region' before using it." }, "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", - "uriBaseId": "$(ProjectDir)" + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Multitool.exe", + "uriBaseId": "$(ProjectDir)", + "index": 158 }, "locations": [ { "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/PylintConverter.cs" + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Multitool/Rules/EndColumnMustNotBeLessThanStartColumn.cs", + "index": 170 }, "region": { - "startLine": 62, - "snippet": { - "text": " {" - } - }, - "contextRegion": { - "startLine": 61, - "startColumn": 1, - "endLine": 63, - "endColumn": 80, - "charOffset": 1860, - "charLength": 151, - "snippet": { - "text": " internal Result CreateResult(PylintLogEntry defect)\r\n {\r\n defect = defect ?? throw new ArgumentNullException(nameof(defect));" - } + "startLine": 42 } }, - "fullyQualifiedLogicalName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.PylintConverter.CreateResult(Microsoft.CodeAnalysis.Sarif.Converters.PylintObjectModel.PylintLogEntry)" + "logicalLocations": [ + { + "index": 884, + "fullyQualifiedName": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.Rules.EndColumnMustNotBeLessThanStartColumn.Analyze(Microsoft.CodeAnalysis.Sarif.Region,System.String)" + } + ] } ], + "partialFingerprints": { + "UniqueId": "0" + }, "properties": { - "Category": "Microsoft.Performance", - "FixCategory": "NonBreaking" + "Category": "Microsoft.Design", + "FixCategory": "DependsOnFix" } }, { - "ruleId": "CA1305", - "level": "error", + "ruleId": "CA1062", "message": { - "text": "Because the behavior of 'int.Parse(string)' could vary based on the current user's locale settings, replace this call in 'PylintConverter.CreateResult(PylintLogEntry)' with a call to 'int.Parse(string, IFormatProvider)'. If the result of 'int.Parse(string, IFormatProvider)' will be based on input from the user, specify 'CultureInfo.CurrentCulture' as the 'IFormatProvider' parameter. Otherwise, if the result will based on input stored and accessed by software, such as when it is loaded from disk or from a database, specify 'CultureInfo.InvariantCulture'.", - "messageId": "IFormatProviderAlternate" + "text": "In externally visible method 'EndLineMustNotBeLessThanStartLine.Analyze(Region, string)', validate parameter 'region' before using it." }, "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", - "uriBaseId": "$(ProjectDir)" + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Multitool.exe", + "uriBaseId": "$(ProjectDir)", + "index": 158 }, "locations": [ { "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/PylintConverter.cs" + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Multitool/Rules/EndLineMustNotBeLessThanStartLine.cs", + "index": 171 }, "region": { - "startLine": 87, - "snippet": { - "text": " var region = new Region" - } - }, - "contextRegion": { - "startLine": 86, - "startColumn": 1, - "endLine": 88, - "endColumn": 14, - "charOffset": 2725, - "charLength": 52, - "snippet": { - "text": "\r\n var region = new Region\r\n {" - } + "startLine": 41 } }, - "fullyQualifiedLogicalName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.PylintConverter.CreateResult(Microsoft.CodeAnalysis.Sarif.Converters.PylintObjectModel.PylintLogEntry)" + "logicalLocations": [ + { + "index": 886, + "fullyQualifiedName": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.Rules.EndLineMustNotBeLessThanStartLine.Analyze(Microsoft.CodeAnalysis.Sarif.Region,System.String)" + } + ] } ], "partialFingerprints": { - "UniqueId": "System.Int32.Parse(System.String)#IFormatProviderAlternate" + "UniqueId": "0" }, "properties": { - "Category": "Microsoft.Globalization", - "FixCategory": "NonBreaking" + "Category": "Microsoft.Design", + "FixCategory": "DependsOnFix" } }, { - "ruleId": "CA1305", - "level": "error", + "ruleId": "CA1062", "message": { - "text": "Because the behavior of 'int.Parse(string)' could vary based on the current user's locale settings, replace this call in 'PylintConverter.CreateResult(PylintLogEntry)' with a call to 'int.Parse(string, IFormatProvider)'. If the result of 'int.Parse(string, IFormatProvider)' will be based on input from the user, specify 'CultureInfo.CurrentCulture' as the 'IFormatProvider' parameter. Otherwise, if the result will based on input stored and accessed by software, such as when it is loaded from disk or from a database, specify 'CultureInfo.InvariantCulture'.", - "messageId": "IFormatProviderAlternate" + "text": "In externally visible method 'EndTimeMustBeAfterStartTime.Analyze(Invocation, string)', validate parameter 'invocation' before using it." }, "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", - "uriBaseId": "$(ProjectDir)" + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Multitool.exe", + "uriBaseId": "$(ProjectDir)", + "index": 158 }, "locations": [ { "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/PylintConverter.cs" + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Multitool/Rules/EndTimeMustBeAfterStartTime.cs", + "index": 172 }, "region": { - "startLine": 87, - "snippet": { - "text": " var region = new Region" - } - }, - "contextRegion": { - "startLine": 86, - "startColumn": 1, - "endLine": 88, - "endColumn": 14, - "charOffset": 2725, - "charLength": 52, - "snippet": { - "text": "\r\n var region = new Region\r\n {" - } + "startLine": 40 } }, - "fullyQualifiedLogicalName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.PylintConverter.CreateResult(Microsoft.CodeAnalysis.Sarif.Converters.PylintObjectModel.PylintLogEntry)" + "logicalLocations": [ + { + "index": 888, + "fullyQualifiedName": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.Rules.EndTimeMustBeAfterStartTime.Analyze(Microsoft.CodeAnalysis.Sarif.Invocation,System.String)" + } + ] } ], "partialFingerprints": { - "UniqueId": "System.Int32.Parse(System.String)#IFormatProviderAlternate" + "UniqueId": "0" }, "properties": { - "Category": "Microsoft.Globalization", - "FixCategory": "NonBreaking" + "Category": "Microsoft.Design", + "FixCategory": "DependsOnFix" } }, { - "ruleId": "CA1305", - "level": "error", + "ruleId": "CA1062", "message": { - "text": "Because the behavior of 'string.Format(string, object)' could vary based on the current user's locale settings, replace this call in 'PylintConverter.CreateResult(PylintLogEntry)' with a call to 'string.Format(IFormatProvider, string, params object[])'. If the result of 'string.Format(IFormatProvider, string, params object[])' will be displayed to the user, specify 'CultureInfo.CurrentCulture' as the 'IFormatProvider' parameter. Otherwise, if the result will be stored and accessed by software, such as when it is persisted to disk or to a database, specify 'CultureInfo.InvariantCulture'.", - "messageId": "IFormatProviderAlternateString" + "text": "In externally visible method 'HashAlgorithmsMustBeUnique.Analyze(FileData, string, string)', validate parameter 'fileData' before using it." }, "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", - "uriBaseId": "$(ProjectDir)" + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Multitool.exe", + "uriBaseId": "$(ProjectDir)", + "index": 158 }, "locations": [ { "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/PylintConverter.cs" + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Multitool/Rules/HashAlgorithmsMustBeUnique.cs", + "index": 173 }, "region": { - "startLine": 93, - "snippet": { - "text": " var fileUri = new Uri($\"{defect.FilePath}\", UriKind.RelativeOrAbsolute);" - } - }, - "contextRegion": { - "startLine": 92, - "startColumn": 1, - "endLine": 94, - "endColumn": 164, - "charOffset": 2904, - "charLength": 251, - "snippet": { - "text": "\r\n var fileUri = new Uri($\"{defect.FilePath}\", UriKind.RelativeOrAbsolute);\r\n var physicalLocation = new PhysicalLocation(id: 0, fileLocation: new FileLocation(uri: fileUri, uriBaseId: null), region: region, contextRegion: null);" - } + "startLine": 39 } }, - "fullyQualifiedLogicalName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.PylintConverter.CreateResult(Microsoft.CodeAnalysis.Sarif.Converters.PylintObjectModel.PylintLogEntry)" + "logicalLocations": [ + { + "index": 890, + "fullyQualifiedName": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.Rules.HashAlgorithmsMustBeUnique.Analyze(Microsoft.CodeAnalysis.Sarif.FileData,System.String,System.String)" + } + ] } ], "partialFingerprints": { - "UniqueId": "System.String.Format(System.String,System.Object)#IFormatProviderAlternateString" + "UniqueId": "0" }, "properties": { - "Category": "Microsoft.Globalization", - "FixCategory": "NonBreaking" + "Category": "Microsoft.Design", + "FixCategory": "DependsOnFix" } }, { - "ruleId": "CA1305", - "level": "error", + "ruleId": "CA1062", "message": { - "text": "Because the behavior of 'string.Format(string, object, object)' could vary based on the current user's locale settings, replace this call in 'PylintConverter.CreateResult(PylintLogEntry)' with a call to 'string.Format(IFormatProvider, string, params object[])'. If the result of 'string.Format(IFormatProvider, string, params object[])' will be displayed to the user, specify 'CultureInfo.CurrentCulture' as the 'IFormatProvider' parameter. Otherwise, if the result will be stored and accessed by software, such as when it is persisted to disk or to a database, specify 'CultureInfo.InvariantCulture'.", - "messageId": "IFormatProviderAlternateString" + "text": "In externally visible method 'MessagesShouldEndWithPeriod.Analyze(Message, string)', validate parameter 'message' before using it." }, "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", - "uriBaseId": "$(ProjectDir)" + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Multitool.exe", + "uriBaseId": "$(ProjectDir)", + "index": 158 }, "locations": [ { "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/PylintConverter.cs" + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Multitool/Rules/MessagesShouldEndWithPeriod.cs", + "index": 174 }, "region": { - "startLine": 65, - "snippet": { - "text": " Result result = new Result" - } - }, - "contextRegion": { - "startLine": 64, - "startColumn": 1, - "endLine": 66, - "endColumn": 14, - "charOffset": 2013, - "charLength": 55, - "snippet": { - "text": "\r\n Result result = new Result\r\n {" - } + "startLine": 70 } }, - "fullyQualifiedLogicalName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.PylintConverter.CreateResult(Microsoft.CodeAnalysis.Sarif.Converters.PylintObjectModel.PylintLogEntry)" + "logicalLocations": [ + { + "index": 892, + "fullyQualifiedName": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.Rules.MessagesShouldEndWithPeriod.Analyze(Microsoft.CodeAnalysis.Sarif.Message,System.String)" + } + ] } ], "partialFingerprints": { - "UniqueId": "System.String.Format(System.String,System.Object,System.Object)#IFormatProviderAlternateString" + "UniqueId": "0" }, "properties": { - "Category": "Microsoft.Globalization", - "FixCategory": "NonBreaking" + "Category": "Microsoft.Design", + "FixCategory": "DependsOnFix" } }, { - "ruleId": "CA1704", - "level": "warning", + "ruleId": "CA1062", "message": { - "text": "Correct the spelling of 'Semmle' in type name 'SemmleQLConverter'.", - "messageId": "Type" + "text": "In externally visible method 'MessagesShouldEndWithPeriod.Analyze(Rule, string)', validate parameter 'rule' before using it." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Multitool.exe", + "uriBaseId": "$(ProjectDir)", + "index": 158 }, "locations": [ { "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", - "uriBaseId": "$(ProjectDir)" + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Multitool/Rules/MessagesShouldEndWithPeriod.cs", + "index": 174 + }, + "region": { + "startLine": 39 } }, - "fullyQualifiedLogicalName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.SemmleQLConverter" + "logicalLocations": [ + { + "index": 893, + "fullyQualifiedName": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.Rules.MessagesShouldEndWithPeriod.Analyze(Microsoft.CodeAnalysis.Sarif.Rule,System.String)" + } + ] } ], "partialFingerprints": { - "UniqueId": "Semmle#Type" + "UniqueId": "0" }, "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" + "Category": "Microsoft.Design", + "FixCategory": "DependsOnFix" } }, { - "ruleId": "CA2202", - "level": "warning", + "ruleId": "CA1811", "message": { - "text": "Object 'reader' can be disposed more than once in method 'SemmleQLConverter.GetResultsFromStream(Stream)'. To avoid generating a System.ObjectDisposedException you should not call Dispose more than one time on an object.: Lines: 110" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", - "uriBaseId": "$(ProjectDir)" + "text": "FxCop results that have been suppressed do not contain a message string." }, "locations": [ { "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/SemmleQlConverter.cs" - }, - "region": { - "startLine": 110, - "snippet": { - "text": " }" - } - }, - "contextRegion": { - "startLine": 109, - "startColumn": 1, - "endLine": 111, - "endColumn": 1, - "charOffset": 3450, - "charLength": 34, - "snippet": { - "text": " }\r\n }\r\n" - } + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Multitool.exe", + "uriBaseId": "$(ProjectDir)", + "index": 158 } }, - "fullyQualifiedLogicalName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.SemmleQLConverter.GetResultsFromStream(System.IO.Stream)" + "logicalLocations": [ + { + "index": 895, + "fullyQualifiedName": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.Rules.RuleResources..ctor()" + } + ] + } + ], + "suppressions": [ + { + "kind": "inSource" } ], "properties": { - "Category": "Microsoft.Usage", - "FixCategory": "DependsOnFix" + "Category": "Microsoft.Performance", + "FixCategory": "NonBreaking" } }, { - "ruleId": "CA2202", - "level": "warning", + "ruleId": "CA1704", "message": { - "text": "Object 'this' can be disposed more than once in method 'SemmleQLConverter.GetResultsFromStream(Stream)'. To avoid generating a System.ObjectDisposedException you should not call Dispose more than one time on an object.: Lines: 110" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", - "uriBaseId": "$(ProjectDir)" + "text": "Correct the spelling of 'Sarif' in type name 'SarifValidationSkimmerBase'.", + "id": "Type" }, "locations": [ { "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/SemmleQlConverter.cs" - }, - "region": { - "startLine": 110, - "snippet": { - "text": " }" - } - }, - "contextRegion": { - "startLine": 109, - "startColumn": 1, - "endLine": 111, - "endColumn": 1, - "charOffset": 3450, - "charLength": 34, - "snippet": { - "text": " }\r\n }\r\n" - } + "artifactLocation": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Multitool.exe", + "uriBaseId": "$(ProjectDir)", + "index": 158 } }, - "fullyQualifiedLogicalName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.SemmleQLConverter.GetResultsFromStream(System.IO.Stream)" + "logicalLocations": [ + { + "index": 896, + "fullyQualifiedName": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.Rules.SarifValidationSkimmerBase" + } + ] } ], + "partialFingerprints": { + "UniqueId": "Sarif#Type" + }, "properties": { - "Category": "Microsoft.Usage", - "FixCategory": "DependsOnFix" + "Level": "CriticalWarning", + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" } }, { - "ruleId": "CA1822", - "level": "warning", + "ruleId": "CA1704", "message": { - "text": "The 'this' parameter (or 'Me' in Visual Basic) of 'SemmleQLConverter.NormalizeRawMessage(string, out string)' is never used. Mark the member as static (or Shared in Visual Basic) or use 'this'/'Me' in the method body or at least one property accessor, if appropriate." + "text": "In method 'SarifValidationSkimmerBase.LogResult(string, string, params string[])', correct the spelling of 'j' in parameter name 'jPointer' or remove it entirely if it represents any sort of Hungarian notation.", + "id": "MemberParameter" }, "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", - "uriBaseId": "$(ProjectDir)" + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Multitool.exe", + "uriBaseId": "$(ProjectDir)", + "index": 158 }, "locations": [ { "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/SemmleQlConverter.cs" + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Multitool/Rules/SarifValidationSkimmerBase.cs", + "index": 175 }, "region": { - "startLine": 153, - "snippet": { - "text": " {" - } - }, - "contextRegion": { - "startLine": 152, - "startColumn": 1, - "endLine": 154, - "endColumn": 174, - "charOffset": 4934, - "charLength": 286, - "snippet": { - "text": " private IList NormalizeRawMessage(string rawMessage, out string normalizedMessage)\r\n {\r\n // The rawMessage contains embedded related locations. We need to extract the related locations and reformat the rawMessage embedded links wrapped in [brackets]." - } + "startLine": 48 } }, - "fullyQualifiedLogicalName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.SemmleQLConverter.NormalizeRawMessage(System.String,System.String&)" + "logicalLocations": [ + { + "index": 897, + "fullyQualifiedName": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.Rules.SarifValidationSkimmerBase.LogResult(System.String,System.String,System.String[])" + } + ] } ], + "partialFingerprints": { + "UniqueId": "j#MemberParameter" + }, "properties": { - "Category": "Microsoft.Performance", - "FixCategory": "NonBreaking" + "Level": "CriticalWarning", + "Category": "Microsoft.Naming", + "FixCategory": "Breaking" } }, { - "ruleId": "CA1305", - "level": "error", + "ruleId": "CA1062", "message": { - "text": "Because the behavior of 'int.Parse(string)' could vary based on the current user's locale settings, replace this call in 'SemmleQLConverter.NormalizeRawMessage(string, out string)' with a call to 'int.Parse(string, IFormatProvider)'. If the result of 'int.Parse(string, IFormatProvider)' will be based on input from the user, specify 'CultureInfo.CurrentCulture' as the 'IFormatProvider' parameter. Otherwise, if the result will based on input stored and accessed by software, such as when it is loaded from disk or from a database, specify 'CultureInfo.InvariantCulture'.", - "messageId": "IFormatProviderAlternate" + "text": "In externally visible method 'SarifValidationSkimmerBase.LogResult(string, string, params string[])', validate parameter 'args' before using it." }, "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", - "uriBaseId": "$(ProjectDir)" + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Multitool.exe", + "uriBaseId": "$(ProjectDir)", + "index": 158 }, "locations": [ { "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/SemmleQlConverter.cs" + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Multitool/Rules/SarifValidationSkimmerBase.cs", + "index": 175 }, "region": { - "startLine": 207, - "snippet": { - "text": " physicalLocation = new PhysicalLocation" - } - }, - "contextRegion": { - "startLine": 206, - "startColumn": 1, - "endLine": 208, - "endColumn": 26, - "charOffset": 8084, - "charLength": 208, - "snippet": { - "text": " // \"IComparable\"|\"file://C:/Windows/Microsoft.NET/Framework/v2.0.50727/mscorlib.dll:0:0:0:0\"\r\n physicalLocation = new PhysicalLocation\r\n {" - } + "startLine": 52 } }, - "fullyQualifiedLogicalName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.SemmleQLConverter.NormalizeRawMessage(System.String,System.String&)" + "logicalLocations": [ + { + "index": 897, + "fullyQualifiedName": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.Rules.SarifValidationSkimmerBase.LogResult(System.String,System.String,System.String[])" + } + ] } ], "partialFingerprints": { - "UniqueId": "System.Int32.Parse(System.String)#IFormatProviderAlternate" + "UniqueId": "2" }, "properties": { - "Category": "Microsoft.Globalization", - "FixCategory": "NonBreaking" + "Category": "Microsoft.Design", + "FixCategory": "DependsOnFix" } }, { - "ruleId": "CA1305", - "level": "error", + "ruleId": "CA1062", "message": { - "text": "Because the behavior of 'int.Parse(string)' could vary based on the current user's locale settings, replace this call in 'SemmleQLConverter.NormalizeRawMessage(string, out string)' with a call to 'int.Parse(string, IFormatProvider)'. If the result of 'int.Parse(string, IFormatProvider)' will be based on input from the user, specify 'CultureInfo.CurrentCulture' as the 'IFormatProvider' parameter. Otherwise, if the result will based on input stored and accessed by software, such as when it is loaded from disk or from a database, specify 'CultureInfo.InvariantCulture'.", - "messageId": "IFormatProviderAlternate" + "text": "In externally visible method 'StepValuesMustFormOneBasedSequence.Analyze(ThreadFlow, string)', validate parameter 'threadFlow' before using it." }, "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", - "uriBaseId": "$(ProjectDir)" + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Multitool.exe", + "uriBaseId": "$(ProjectDir)", + "index": 158 }, "locations": [ { "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/SemmleQlConverter.cs" + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Multitool/Rules/StepValuesMustFormOneBasedSequence.cs", + "index": 176 }, "region": { - "startLine": 207, - "snippet": { - "text": " physicalLocation = new PhysicalLocation" - } - }, - "contextRegion": { - "startLine": 206, - "startColumn": 1, - "endLine": 208, - "endColumn": 26, - "charOffset": 8084, - "charLength": 208, - "snippet": { - "text": " // \"IComparable\"|\"file://C:/Windows/Microsoft.NET/Framework/v2.0.50727/mscorlib.dll:0:0:0:0\"\r\n physicalLocation = new PhysicalLocation\r\n {" - } + "startLine": 57 } }, - "fullyQualifiedLogicalName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.SemmleQLConverter.NormalizeRawMessage(System.String,System.String&)" + "logicalLocations": [ + { + "index": 899, + "fullyQualifiedName": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.Rules.StepValuesMustFormOneBasedSequence.Analyze(Microsoft.CodeAnalysis.Sarif.ThreadFlow,System.String)" + } + ] } ], "partialFingerprints": { - "UniqueId": "System.Int32.Parse(System.String)#IFormatProviderAlternate" + "UniqueId": "0" }, "properties": { - "Category": "Microsoft.Globalization", - "FixCategory": "NonBreaking" + "Category": "Microsoft.Design", + "FixCategory": "DependsOnFix" } }, { - "ruleId": "CA1305", - "level": "error", + "ruleId": "CA1822", "message": { - "text": "Because the behavior of 'int.Parse(string)' could vary based on the current user's locale settings, replace this call in 'SemmleQLConverter.NormalizeRawMessage(string, out string)' with a call to 'int.Parse(string, IFormatProvider)'. If the result of 'int.Parse(string, IFormatProvider)' will be based on input from the user, specify 'CultureInfo.CurrentCulture' as the 'IFormatProvider' parameter. Otherwise, if the result will based on input stored and accessed by software, such as when it is loaded from disk or from a database, specify 'CultureInfo.InvariantCulture'.", - "messageId": "IFormatProviderAlternate" + "text": "The 'this' parameter (or 'Me' in Visual Basic) of 'StepValuesMustFormOneBasedSequence.FindFirstLocationWithMissingStep(JObject[])' is never used. Mark the member as static (or Shared in Visual Basic) or use 'this'/'Me' in the method body or at least one property accessor, if appropriate." }, "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", - "uriBaseId": "$(ProjectDir)" + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Multitool.exe", + "uriBaseId": "$(ProjectDir)", + "index": 158 }, "locations": [ { "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/SemmleQlConverter.cs" + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Multitool/Rules/StepValuesMustFormOneBasedSequence.cs", + "index": 176 }, "region": { - "startLine": 207, - "snippet": { - "text": " physicalLocation = new PhysicalLocation" - } - }, - "contextRegion": { - "startLine": 206, - "startColumn": 1, - "endLine": 208, - "endColumn": 26, - "charOffset": 8084, - "charLength": 208, - "snippet": { - "text": " // \"IComparable\"|\"file://C:/Windows/Microsoft.NET/Framework/v2.0.50727/mscorlib.dll:0:0:0:0\"\r\n physicalLocation = new PhysicalLocation\r\n {" - } + "startLine": 117 } }, - "fullyQualifiedLogicalName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.SemmleQLConverter.NormalizeRawMessage(System.String,System.String&)" + "logicalLocations": [ + { + "index": 900, + "fullyQualifiedName": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.Rules.StepValuesMustFormOneBasedSequence.FindFirstLocationWithMissingStep(Newtonsoft.Json.Linq.JObject[])" + } + ] } ], - "partialFingerprints": { - "UniqueId": "System.Int32.Parse(System.String)#IFormatProviderAlternate" - }, "properties": { - "Category": "Microsoft.Globalization", + "Category": "Microsoft.Performance", "FixCategory": "NonBreaking" } }, { - "ruleId": "CA1305", - "level": "error", + "ruleId": "CA1062", "message": { - "text": "Because the behavior of 'int.Parse(string)' could vary based on the current user's locale settings, replace this call in 'SemmleQLConverter.NormalizeRawMessage(string, out string)' with a call to 'int.Parse(string, IFormatProvider)'. If the result of 'int.Parse(string, IFormatProvider)' will be based on input from the user, specify 'CultureInfo.CurrentCulture' as the 'IFormatProvider' parameter. Otherwise, if the result will based on input stored and accessed by software, such as when it is loaded from disk or from a database, specify 'CultureInfo.InvariantCulture'.", - "messageId": "IFormatProviderAlternate" + "text": "In externally visible method 'UriBaseIdRequiresRelativeUri.Analyze(FileLocation, string)', validate parameter 'fileLocation' before using it." }, "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", - "uriBaseId": "$(ProjectDir)" + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Multitool.exe", + "uriBaseId": "$(ProjectDir)", + "index": 158 }, "locations": [ { "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/SemmleQlConverter.cs" + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Multitool/Rules/UriBaseIdRequiresRelativeUri.cs", + "index": 177 }, "region": { - "startLine": 224, - "snippet": { - "text": " physicalLocation = new PhysicalLocation" - } - }, - "contextRegion": { - "startLine": 223, - "startColumn": 1, - "endLine": 225, - "endColumn": 26, - "charOffset": 9010, - "charLength": 113, - "snippet": { - "text": " {\r\n physicalLocation = new PhysicalLocation\r\n {" - } + "startLine": 38 } }, - "fullyQualifiedLogicalName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.SemmleQLConverter.NormalizeRawMessage(System.String,System.String&)" + "logicalLocations": [ + { + "index": 902, + "fullyQualifiedName": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.Rules.UriBaseIdRequiresRelativeUri.Analyze(Microsoft.CodeAnalysis.Sarif.FileLocation,System.String)" + } + ] } ], "partialFingerprints": { - "UniqueId": "System.Int32.Parse(System.String)#IFormatProviderAlternate" + "UniqueId": "0" }, "properties": { - "Category": "Microsoft.Globalization", - "FixCategory": "NonBreaking" + "Category": "Microsoft.Design", + "FixCategory": "DependsOnFix" } }, { - "ruleId": "CA1305", - "level": "error", + "ruleId": "CA2234", "message": { - "text": "Because the behavior of 'int.Parse(string)' could vary based on the current user's locale settings, replace this call in 'SemmleQLConverter.NormalizeRawMessage(string, out string)' with a call to 'int.Parse(string, IFormatProvider)'. If the result of 'int.Parse(string, IFormatProvider)' will be based on input from the user, specify 'CultureInfo.CurrentCulture' as the 'IFormatProvider' parameter. Otherwise, if the result will based on input stored and accessed by software, such as when it is loaded from disk or from a database, specify 'CultureInfo.InvariantCulture'.", - "messageId": "IFormatProviderAlternate" + "text": "Modify 'UrisMustBeValid.Analyze(FileData, string, string)' to call 'UrisMustBeValid.AnalyzeUri(Uri, string)' instead of 'UrisMustBeValid.AnalyzeUri(string, string)'." }, "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", - "uriBaseId": "$(ProjectDir)" + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Multitool.exe", + "uriBaseId": "$(ProjectDir)", + "index": 158 }, "locations": [ { "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/SemmleQlConverter.cs" + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Multitool/Rules/UrisMustBeValid.cs", + "index": 178 }, "region": { - "startLine": 224, - "snippet": { - "text": " physicalLocation = new PhysicalLocation" - } - }, - "contextRegion": { - "startLine": 223, - "startColumn": 1, - "endLine": 225, - "endColumn": 26, - "charOffset": 9010, - "charLength": 113, - "snippet": { - "text": " {\r\n physicalLocation = new PhysicalLocation\r\n {" - } + "startLine": 44 } }, - "fullyQualifiedLogicalName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.SemmleQLConverter.NormalizeRawMessage(System.String,System.String&)" + "logicalLocations": [ + { + "index": 904, + "fullyQualifiedName": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.Rules.UrisMustBeValid.Analyze(Microsoft.CodeAnalysis.Sarif.FileData,System.String,System.String)" + } + ] } ], - "partialFingerprints": { - "UniqueId": "System.Int32.Parse(System.String)#IFormatProviderAlternate" - }, "properties": { - "Category": "Microsoft.Globalization", + "Category": "Microsoft.Usage", "FixCategory": "NonBreaking" } }, { - "ruleId": "CA1305", - "level": "error", + "ruleId": "CA1062", "message": { - "text": "Because the behavior of 'int.Parse(string)' could vary based on the current user's locale settings, replace this call in 'SemmleQLConverter.NormalizeRawMessage(string, out string)' with a call to 'int.Parse(string, IFormatProvider)'. If the result of 'int.Parse(string, IFormatProvider)' will be based on input from the user, specify 'CultureInfo.CurrentCulture' as the 'IFormatProvider' parameter. Otherwise, if the result will based on input stored and accessed by software, such as when it is loaded from disk or from a database, specify 'CultureInfo.InvariantCulture'.", - "messageId": "IFormatProviderAlternate" + "text": "In externally visible method 'UrisMustBeValid.Analyze(FileLocation, string)', validate parameter 'fileLocation' before using it." }, "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", - "uriBaseId": "$(ProjectDir)" + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Multitool.exe", + "uriBaseId": "$(ProjectDir)", + "index": 158 }, "locations": [ { "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/SemmleQlConverter.cs" + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Multitool/Rules/UrisMustBeValid.cs", + "index": 178 }, "region": { - "startLine": 224, - "snippet": { - "text": " physicalLocation = new PhysicalLocation" - } - }, - "contextRegion": { - "startLine": 223, - "startColumn": 1, - "endLine": 225, - "endColumn": 26, - "charOffset": 9010, - "charLength": 113, - "snippet": { - "text": " {\r\n physicalLocation = new PhysicalLocation\r\n {" - } + "startLine": 51 } }, - "fullyQualifiedLogicalName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.SemmleQLConverter.NormalizeRawMessage(System.String,System.String&)" + "logicalLocations": [ + { + "index": 905, + "fullyQualifiedName": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.Rules.UrisMustBeValid.Analyze(Microsoft.CodeAnalysis.Sarif.FileLocation,System.String)" + } + ] } ], "partialFingerprints": { - "UniqueId": "System.Int32.Parse(System.String)#IFormatProviderAlternate" + "UniqueId": "0" }, "properties": { - "Category": "Microsoft.Globalization", - "FixCategory": "NonBreaking" + "Category": "Microsoft.Design", + "FixCategory": "DependsOnFix" } }, { - "ruleId": "CA1305", - "level": "error", + "ruleId": "CA1062", "message": { - "text": "Because the behavior of 'string.Format(string, object, object)' could vary based on the current user's locale settings, replace this call in 'SemmleQLConverter.NormalizeRawMessage(string, out string)' with a call to 'string.Format(IFormatProvider, string, params object[])'. If the result of 'string.Format(IFormatProvider, string, params object[])' will be displayed to the user, specify 'CultureInfo.CurrentCulture' as the 'IFormatProvider' parameter. Otherwise, if the result will be stored and accessed by software, such as when it is persisted to disk or to a database, specify 'CultureInfo.InvariantCulture'.", - "messageId": "IFormatProviderAlternateString" + "text": "In externally visible method 'UrisMustBeValid.Analyze(Result, string)', validate parameter 'result' before using it." }, "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", - "uriBaseId": "$(ProjectDir)" + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Multitool.exe", + "uriBaseId": "$(ProjectDir)", + "index": 158 }, "locations": [ { "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/SemmleQlConverter.cs" + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Multitool/Rules/UrisMustBeValid.cs", + "index": 178 }, "region": { - "startLine": 250, - "snippet": { - "text": " sb.Append($\"[{embeddedLinksText}]({relatedLocations[linkIndex++].PhysicalLocation.Id})\");" - } - }, - "contextRegion": { - "startLine": 249, - "startColumn": 1, - "endLine": 251, - "endColumn": 1, - "charOffset": 10089, - "charLength": 228, - "snippet": { - "text": " // Re-add the text portion of the link in brackets with the location id in parens, e.g. [link text](id)\r\n sb.Append($\"[{embeddedLinksText}]({relatedLocations[linkIndex++].PhysicalLocation.Id})\");\r\n" - } + "startLine": 56 } }, - "fullyQualifiedLogicalName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.SemmleQLConverter.NormalizeRawMessage(System.String,System.String&)" + "logicalLocations": [ + { + "index": 906, + "fullyQualifiedName": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.Rules.UrisMustBeValid.Analyze(Microsoft.CodeAnalysis.Sarif.Result,System.String)" + } + ] } ], "partialFingerprints": { - "UniqueId": "System.String.Format(System.String,System.Object,System.Object)#IFormatProviderAlternateString" + "UniqueId": "0" }, "properties": { - "Category": "Microsoft.Globalization", - "FixCategory": "NonBreaking" + "Category": "Microsoft.Design", + "FixCategory": "DependsOnFix" } }, { - "ruleId": "CA1305", - "level": "error", + "ruleId": "CA1062", "message": { - "text": "Because the behavior of 'string.Format(string, object, object, object)' could vary based on the current user's locale settings, replace this call in 'SemmleQLConverter.NormalizeRawMessage(string, out string)' with a call to 'string.Format(IFormatProvider, string, params object[])'. If the result of 'string.Format(IFormatProvider, string, params object[])' will be displayed to the user, specify 'CultureInfo.CurrentCulture' as the 'IFormatProvider' parameter. Otherwise, if the result will be stored and accessed by software, such as when it is persisted to disk or to a database, specify 'CultureInfo.InvariantCulture'.", - "messageId": "IFormatProviderAlternateString" + "text": "In externally visible method 'UrisMustBeValid.Analyze(Rule, string)', validate parameter 'rule' before using it." }, "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", - "uriBaseId": "$(ProjectDir)" + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Multitool.exe", + "uriBaseId": "$(ProjectDir)", + "index": 158 }, "locations": [ { "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/SemmleQlConverter.cs" + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Multitool/Rules/UrisMustBeValid.cs", + "index": 178 }, "region": { - "startLine": 207, - "snippet": { - "text": " physicalLocation = new PhysicalLocation" - } - }, - "contextRegion": { - "startLine": 206, - "startColumn": 1, - "endLine": 208, - "endColumn": 26, - "charOffset": 8084, - "charLength": 208, - "snippet": { - "text": " // \"IComparable\"|\"file://C:/Windows/Microsoft.NET/Framework/v2.0.50727/mscorlib.dll:0:0:0:0\"\r\n physicalLocation = new PhysicalLocation\r\n {" - } + "startLine": 70 } }, - "fullyQualifiedLogicalName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.SemmleQLConverter.NormalizeRawMessage(System.String,System.String&)" + "logicalLocations": [ + { + "index": 907, + "fullyQualifiedName": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.Rules.UrisMustBeValid.Analyze(Microsoft.CodeAnalysis.Sarif.Rule,System.String)" + } + ] } ], "partialFingerprints": { - "UniqueId": "System.String.Format(System.String,System.Object,System.Object,System.Object)#IFormatProviderAlternateString" + "UniqueId": "0" }, "properties": { - "Category": "Microsoft.Globalization", - "FixCategory": "NonBreaking" + "Category": "Microsoft.Design", + "FixCategory": "DependsOnFix" } }, { - "ruleId": "CA1307", - "level": "error", + "ruleId": "CA1062", "message": { - "text": "Because the behavior of 'string.IndexOf(string)' could vary based on the current user's locale settings, replace this call in 'SemmleQLConverter.NormalizeRawMessage(string, out string)' with a call to 'string.IndexOf(string, StringComparison)'. If the result of 'string.IndexOf(string, StringComparison)' will be displayed to the user, such as when sorting a list of items for display in a list box, specify 'StringComparison.CurrentCulture' or 'StringComparison.CurrentCultureIgnoreCase' as the 'StringComparison' parameter. If comparing case-insensitive identifiers, such as file paths, environment variables, or registry keys and values, specify 'StringComparison.OrdinalIgnoreCase'. Otherwise, if comparing case-sensitive identifiers, specify 'StringComparison.Ordinal'." + "text": "In externally visible method 'UrisMustBeValid.Analyze(Run, string)', validate parameter 'run' before using it." }, "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", - "uriBaseId": "$(ProjectDir)" + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Multitool.exe", + "uriBaseId": "$(ProjectDir)", + "index": 158 }, "locations": [ { "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/SemmleQlConverter.cs" + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Multitool/Rules/UrisMustBeValid.cs", + "index": 178 }, "region": { - "startLine": 170, - "snippet": { - "text": " int index = rawMessage.IndexOf(\"[[\");" - } - }, - "contextRegion": { - "startLine": 169, - "startColumn": 1, - "endLine": 171, - "endColumn": 31, - "charOffset": 6203, - "charLength": 113, - "snippet": { - "text": " int linkIndex = 0;\r\n int index = rawMessage.IndexOf(\"[[\");\r\n while (index > -1)" - } + "startLine": 75 } }, - "fullyQualifiedLogicalName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.SemmleQLConverter.NormalizeRawMessage(System.String,System.String&)" + "logicalLocations": [ + { + "index": 908, + "fullyQualifiedName": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.Rules.UrisMustBeValid.Analyze(Microsoft.CodeAnalysis.Sarif.Run,System.String)" + } + ] } ], "partialFingerprints": { - "UniqueId": "System.String.IndexOf(System.String)" + "UniqueId": "0" }, "properties": { - "Category": "Microsoft.Globalization", - "FixCategory": "NonBreaking" + "Category": "Microsoft.Design", + "FixCategory": "DependsOnFix" } }, { - "ruleId": "CA1307", - "level": "error", + "ruleId": "CA1062", "message": { - "text": "Because the behavior of 'string.IndexOf(string)' could vary based on the current user's locale settings, replace this call in 'SemmleQLConverter.NormalizeRawMessage(string, out string)' with a call to 'string.IndexOf(string, StringComparison)'. If the result of 'string.IndexOf(string, StringComparison)' will be displayed to the user, such as when sorting a list of items for display in a list box, specify 'StringComparison.CurrentCulture' or 'StringComparison.CurrentCultureIgnoreCase' as the 'StringComparison' parameter. If comparing case-insensitive identifiers, such as file paths, environment variables, or registry keys and values, specify 'StringComparison.OrdinalIgnoreCase'. Otherwise, if comparing case-sensitive identifiers, specify 'StringComparison.Ordinal'." + "text": "In externally visible method 'UrisMustBeValid.Analyze(SarifLog, string)', validate parameter 'log' before using it." }, "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", - "uriBaseId": "$(ProjectDir)" + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Multitool.exe", + "uriBaseId": "$(ProjectDir)", + "index": 158 }, "locations": [ { "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/SemmleQlConverter.cs" + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Multitool/Rules/UrisMustBeValid.cs", + "index": 178 }, "region": { - "startLine": 177, - "snippet": { - "text": " index = rawMessage.IndexOf(\"]]\");" - } - }, - "contextRegion": { - "startLine": 176, - "startColumn": 1, - "endLine": 178, - "endColumn": 1, - "charOffset": 6458, - "charLength": 53, - "snippet": { - "text": "\r\n index = rawMessage.IndexOf(\"]]\");\r\n" - } + "startLine": 40 } }, - "fullyQualifiedLogicalName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.SemmleQLConverter.NormalizeRawMessage(System.String,System.String&)" + "logicalLocations": [ + { + "index": 909, + "fullyQualifiedName": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.Rules.UrisMustBeValid.Analyze(Microsoft.CodeAnalysis.Sarif.SarifLog,System.String)" + } + ] } ], "partialFingerprints": { - "UniqueId": "System.String.IndexOf(System.String)" + "UniqueId": "0" }, "properties": { - "Category": "Microsoft.Globalization", - "FixCategory": "NonBreaking" + "Category": "Microsoft.Design", + "FixCategory": "DependsOnFix" } }, { - "ruleId": "CA1307", - "level": "error", + "ruleId": "CA1062", "message": { - "text": "Because the behavior of 'string.IndexOf(string)' could vary based on the current user's locale settings, replace this call in 'SemmleQLConverter.NormalizeRawMessage(string, out string)' with a call to 'string.IndexOf(string, StringComparison)'. If the result of 'string.IndexOf(string, StringComparison)' will be displayed to the user, such as when sorting a list of items for display in a list box, specify 'StringComparison.CurrentCulture' or 'StringComparison.CurrentCultureIgnoreCase' as the 'StringComparison' parameter. If comparing case-insensitive identifiers, such as file paths, environment variables, or registry keys and values, specify 'StringComparison.OrdinalIgnoreCase'. Otherwise, if comparing case-sensitive identifiers, specify 'StringComparison.Ordinal'." + "text": "In externally visible method 'UrisMustBeValid.Analyze(Tool, string)', validate parameter 'tool' before using it." }, "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", - "uriBaseId": "$(ProjectDir)" + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Multitool.exe", + "uriBaseId": "$(ProjectDir)", + "index": 158 }, "locations": [ { "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/SemmleQlConverter.cs" + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Multitool/Rules/UrisMustBeValid.cs", + "index": 178 }, "region": { - "startLine": 253, - "snippet": { - "text": " index = rawMessage.IndexOf(\"[[\");" - } - }, - "contextRegion": { - "startLine": 252, - "startColumn": 1, - "endLine": 254, - "endColumn": 14, - "charOffset": 10319, - "charLength": 137, - "snippet": { - "text": " rawMessage = rawMessage.Substring(index + \"]]\".Length);\r\n index = rawMessage.IndexOf(\"[[\");\r\n }" - } + "startLine": 88 } }, - "fullyQualifiedLogicalName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.SemmleQLConverter.NormalizeRawMessage(System.String,System.String&)" + "logicalLocations": [ + { + "index": 910, + "fullyQualifiedName": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.Rules.UrisMustBeValid.Analyze(Microsoft.CodeAnalysis.Sarif.Tool,System.String)" + } + ] } ], "partialFingerprints": { - "UniqueId": "System.String.IndexOf(System.String)" + "UniqueId": "0" }, "properties": { - "Category": "Microsoft.Globalization", - "FixCategory": "NonBreaking" + "Category": "Microsoft.Design", + "FixCategory": "DependsOnFix" } }, { - "ruleId": "CA1823", - "level": "warning", + "ruleId": "CA1062", "message": { - "text": "It appears that field 'SemmleQLConverter.s_delimiters' is never used or is only ever assigned to. Use this field or remove it." + "text": "In externally visible method 'UrisMustBeValid.Analyze(VersionControlDetails, string)', validate parameter 'versionControlDetails' before using it." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Multitool.exe", + "uriBaseId": "$(ProjectDir)", + "index": 158 }, "locations": [ { "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", - "uriBaseId": "$(ProjectDir)" + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Multitool/Rules/UrisMustBeValid.cs", + "index": 178 + }, + "region": { + "startLine": 93 } }, - "fullyQualifiedLogicalName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.SemmleQLConverter.s_delimiters" + "logicalLocations": [ + { + "index": 911, + "fullyQualifiedName": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.Rules.UrisMustBeValid.Analyze(Microsoft.CodeAnalysis.Sarif.VersionControlDetails,System.String)" + } + ] } ], + "partialFingerprints": { + "UniqueId": "0" + }, "properties": { - "Category": "Microsoft.Performance", - "FixCategory": "NonBreaking" + "Category": "Microsoft.Design", + "FixCategory": "DependsOnFix" } }, { - "ruleId": "CA1704", - "level": "warning", + "ruleId": "CA1062", "message": { - "text": "Correct the spelling of 'Semmle' in member name 'SemmleQLConverter.SemmleError' or remove it entirely if it represents any sort of Hungarian notation.", - "messageId": "Member" + "text": "In externally visible method 'UseAbsolutePathsForNestedFileUriFragments.Analyze(FileLocation, string)', validate parameter 'fileLocation' before using it." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Multitool.exe", + "uriBaseId": "$(ProjectDir)", + "index": 158 }, "locations": [ { "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", - "uriBaseId": "$(ProjectDir)" + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Multitool/Rules/UseAbsolutePathsForNestedFileUriFragments.cs", + "index": 179 + }, + "region": { + "startLine": 39 } }, - "fullyQualifiedLogicalName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.SemmleQLConverter.SemmleError" + "logicalLocations": [ + { + "index": 913, + "fullyQualifiedName": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.Rules.UseAbsolutePathsForNestedFileUriFragments.Analyze(Microsoft.CodeAnalysis.Sarif.FileLocation,System.String)" + } + ] } ], "partialFingerprints": { - "UniqueId": "Semmle#Member" + "UniqueId": "0" }, "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" + "Category": "Microsoft.Design", + "FixCategory": "DependsOnFix" } }, { - "ruleId": "CA1704", - "level": "warning", + "ruleId": "CA1822", "message": { - "text": "Correct the spelling of 'Semmle' in member name 'SemmleQLConverter.SemmleRecommendation' or remove it entirely if it represents any sort of Hungarian notation.", - "messageId": "Member" + "text": "The 'this' parameter (or 'Me' in Visual Basic) of 'UseAbsolutePathsForNestedFileUriFragments.UriHasNonAbsoluteFragment(Uri)' is never used. Mark the member as static (or Shared in Visual Basic) or use 'this'/'Me' in the method body or at least one property accessor, if appropriate." + }, + "analysisTarget": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Multitool.exe", + "uriBaseId": "$(ProjectDir)", + "index": 158 }, "locations": [ { "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", - "uriBaseId": "$(ProjectDir)" + "artifactLocation": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Multitool/Rules/UseAbsolutePathsForNestedFileUriFragments.cs", + "index": 179 + }, + "region": { + "startLine": 65 } }, - "fullyQualifiedLogicalName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.SemmleQLConverter.SemmleRecommendation" + "logicalLocations": [ + { + "index": 914, + "fullyQualifiedName": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.Rules.UseAbsolutePathsForNestedFileUriFragments.UriHasNonAbsoluteFragment(System.Uri)" + } + ] } ], - "partialFingerprints": { - "UniqueId": "Semmle#Member" - }, "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" + "Category": "Microsoft.Performance", + "FixCategory": "NonBreaking" } }, { - "ruleId": "CA1704", - "level": "warning", + "ruleId": "CA0053", "message": { - "text": "Correct the spelling of 'Semmle' in member name 'SemmleQLConverter.SemmleWarning' or remove it entirely if it represents any sort of Hungarian notation.", - "messageId": "Member" + "text": "AssemblyLoad exception: Microsoft.FxCop.Common.AssemblyLoadException: Unable to load rule assembly 'c:\\program files (x86)\\microsoft\\fxcop 14.0 for sdl\\Rules\\DataflowRules.dll': The assembly contains no FxCop rules. ." }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.SemmleQLConverter.SemmleWarning" - } - ], "partialFingerprints": { - "UniqueId": "Semmle#Member" - }, - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" + "UniqueId": "Microsoft.FxCop.Common.AssemblyLoadException" } }, { - "ruleId": "CA3053", - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.SparseReader.CreateFromStream(Microsoft.CodeAnalysis.Sarif.Converters.SparseReaderDispatchTable,System.IO.Stream,System.Xml.Schema.XmlSchemaSet)" - } - ], - "suppressionStates": ["suppressedInSource"], - "properties": { - "Category": "Microsoft.Security.Xml", - "FixCategory": "NonBreaking" + "ruleId": "CA0053", + "message": { + "text": "AssemblyLoad exception: Microsoft.FxCop.Common.AssemblyLoadException: Unable to load rule assembly 'c:\\program files (x86)\\microsoft\\fxcop 14.0 for sdl\\Rules\\SecurityWebConfigurationRules.dll': The assembly contains no FxCop rules. ." + }, + "partialFingerprints": { + "UniqueId": "Microsoft.FxCop.Common.AssemblyLoadException" } }, { - "ruleId": "CA1021", - "level": "warning", + "ruleId": "CA0053", "message": { - "text": "Consider a design that does not require that 'innerText' be an out parameter." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", - "uriBaseId": "$(ProjectDir)" + "text": "AssemblyLoad exception: Microsoft.FxCop.Common.AssemblyLoadException: Unable to load rule assembly 'c:\\program files (x86)\\microsoft\\fxcop 14.0 for sdl\\Rules\\SecurityWebDataflowRules.dll': The assembly contains no FxCop rules. ." }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/SparseReader.cs" - }, - "region": { - "startLine": 103, - "snippet": { - "text": " {" - } - }, - "contextRegion": { - "startLine": 102, - "startColumn": 1, - "endLine": 104, - "endColumn": 30, - "charOffset": 4682, - "charLength": 127, - "snippet": { - "text": " public void ReadChildren(string tagName, object parent, out string innerText)\r\n {\r\n innerText = null;" - } - } - }, - "fullyQualifiedLogicalName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.SparseReader.ReadChildren(System.String,System.Object,System.String&)" - } - ], "partialFingerprints": { - "UniqueId": "2#" - }, - "properties": { - "Category": "Microsoft.Design", - "FixCategory": "Breaking" + "UniqueId": "Microsoft.FxCop.Common.AssemblyLoadException" } }, { - "ruleId": "CA1710", - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.SparseReaderDispatchTable" - } - ], - "suppressionStates": ["suppressedInSource"], - "properties": { - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" + "ruleId": "CA0001", + "message": { + "text": "ProjectLoad exception: Microsoft.FxCop.Sdk.FxCopException: Failed to add rule assembly: c:\\program files (x86)\\microsoft\\fxcop 14.0 for sdl\\Rules\\DataflowRules.dll. . Inner Exception: Microsoft.FxCop.Common.AssemblyLoadException: Unable to load rule assembly 'c:\\program files (x86)\\microsoft\\fxcop 14.0 for sdl\\Rules\\DataflowRules.dll': The assembly contains no FxCop rules. " + }, + "partialFingerprints": { + "UniqueId": "Microsoft.FxCop.Sdk.FxCopException" } }, { - "ruleId": "CA1823", - "level": "warning", + "ruleId": "CA0001", "message": { - "text": "It appears that field 'StaticDriverVerifierConverter._sb' is never used or is only ever assigned to. Use this field or remove it." + "text": "ProjectLoad exception: Microsoft.FxCop.Sdk.FxCopException: Failed to add rule assembly: c:\\program files (x86)\\microsoft\\fxcop 14.0 for sdl\\Rules\\SecurityWebConfigurationRules.dll. . Inner Exception: Microsoft.FxCop.Common.AssemblyLoadException: Unable to load rule assembly 'c:\\program files (x86)\\microsoft\\fxcop 14.0 for sdl\\Rules\\SecurityWebConfigurationRules.dll': The assembly contains no FxCop rules. " }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.StaticDriverVerifierConverter._sb" - } - ], - "properties": { - "Category": "Microsoft.Performance", - "FixCategory": "NonBreaking" + "partialFingerprints": { + "UniqueId": "Microsoft.FxCop.Sdk.FxCopException" } }, { - "ruleId": "CA1822", - "level": "warning", + "ruleId": "CA0001", "message": { - "text": "The 'this' parameter (or 'Me' in Visual Basic) of 'StaticDriverVerifierConverter.IsHarnessOrRulesFiles(string)' is never used. Mark the member as static (or Shared in Visual Basic) or use 'this'/'Me' in the method body or at least one property accessor, if appropriate." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", - "uriBaseId": "$(ProjectDir)" + "text": "ProjectLoad exception: Microsoft.FxCop.Sdk.FxCopException: Failed to add rule assembly: c:\\program files (x86)\\microsoft\\fxcop 14.0 for sdl\\Rules\\SecurityWebDataflowRules.dll. . Inner Exception: Microsoft.FxCop.Common.AssemblyLoadException: Unable to load rule assembly 'c:\\program files (x86)\\microsoft\\fxcop 14.0 for sdl\\Rules\\SecurityWebDataflowRules.dll': The assembly contains no FxCop rules. " }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/StaticDriverVerifierConverter.cs" - }, - "region": { - "startLine": 288, - "snippet": { - "text": " {" - } - }, - "contextRegion": { - "startLine": 287, - "startColumn": 1, - "endLine": 289, - "endColumn": 82, - "charOffset": 10742, - "charLength": 153, - "snippet": { - "text": " private bool IsHarnessOrRulesFiles(string fileName)\r\n {\r\n return fileName.EndsWith(\".slic\", StringComparison.OrdinalIgnoreCase)" - } - } - }, - "fullyQualifiedLogicalName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.StaticDriverVerifierConverter.IsHarnessOrRulesFiles(System.String)" - } - ], - "properties": { - "Category": "Microsoft.Performance", - "FixCategory": "NonBreaking" + "partialFingerprints": { + "UniqueId": "Microsoft.FxCop.Sdk.FxCopException" } }, { - "ruleId": "CA1303", - "level": "warning", + "ruleId": "CA0068", "message": { - "text": "Method 'StaticDriverVerifierConverter.ProcessLine(string, ref int, Result)' passes a literal string as parameter 'text' of a call to 'StaticDriverVerifierConverter.ExtractCallerAndCallee(string, out string, out string)'. Retrieve the following string(s) from a resource table instead: \" \".", - "messageId": "KnownValue" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", - "uriBaseId": "$(ProjectDir)" + "text": "Engine exception: Microsoft.FxCop.Sdk.FxCopException: Debug information could not be found for target assembly 'Microsoft.Json.Schema.Validation.dll'. For best analysis results, include the .pdb file with debug information for 'Microsoft.Json.Schema.Validation.dll' in the same directory as the target assembly. ." }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/StaticDriverVerifierConverter.cs" - }, - "region": { - "startLine": 181, - "snippet": { - "text": " if (ExtractCallerAndCallee(extraMsg.Trim(), out caller, out callee))" - } - }, - "contextRegion": { - "startLine": 180, - "startColumn": 1, - "endLine": 182, - "endColumn": 22, - "charOffset": 6278, - "charLength": 113, - "snippet": { - "text": "\r\n if (ExtractCallerAndCallee(extraMsg.Trim(), out caller, out callee))\r\n {" - } - } - }, - "fullyQualifiedLogicalName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.StaticDriverVerifierConverter.ProcessLine(System.String,System.Int32&,Microsoft.CodeAnalysis.Sarif.Result)" - } - ], "partialFingerprints": { - "UniqueId": "Microsoft.CodeAnalysis.Sarif.Converters.StaticDriverVerifierConverter.ExtractCallerAndCallee(System.String,System.String@,System.String@)#KnownValue" - }, - "properties": { - "Category": "Microsoft.Globalization", - "FixCategory": "DependsOnFix" + "UniqueId": "Microsoft.FxCop.Sdk.FxCopException" } }, { - "ruleId": "CA1305", - "level": "error", + "ruleId": "CA0068", "message": { - "text": "Because the behavior of 'int.Parse(string)' could vary based on the current user's locale settings, replace this call in 'StaticDriverVerifierConverter.ProcessLine(string, ref int, Result)' with a call to 'int.Parse(string, IFormatProvider)'. If the result of 'int.Parse(string, IFormatProvider)' will be based on input from the user, specify 'CultureInfo.CurrentCulture' as the 'IFormatProvider' parameter. Otherwise, if the result will based on input stored and accessed by software, such as when it is loaded from disk or from a database, specify 'CultureInfo.InvariantCulture'.", - "messageId": "IFormatProviderAlternate" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", - "uriBaseId": "$(ProjectDir)" + "text": "Engine exception: Microsoft.FxCop.Sdk.FxCopException: Debug information could not be found for target assembly 'Microsoft.Json.Pointer.dll'. For best analysis results, include the .pdb file with debug information for 'Microsoft.Json.Pointer.dll' in the same directory as the target assembly. ." }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/StaticDriverVerifierConverter.cs" - }, - "region": { - "startLine": 136, - "snippet": { - "text": " int line = int.Parse(tokens[LINE]);" - } - }, - "contextRegion": { - "startLine": 135, - "startColumn": 1, - "endLine": 137, - "endColumn": 1, - "charOffset": 4643, - "charLength": 131, - "snippet": { - "text": " // We assume a valid line here. This code will throw if not.\r\n int line = int.Parse(tokens[LINE]);\r\n" - } - } - }, - "fullyQualifiedLogicalName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.StaticDriverVerifierConverter.ProcessLine(System.String,System.Int32&,Microsoft.CodeAnalysis.Sarif.Result)" - } - ], "partialFingerprints": { - "UniqueId": "System.Int32.Parse(System.String)#IFormatProviderAlternate" - }, - "properties": { - "Category": "Microsoft.Globalization", - "FixCategory": "NonBreaking" + "UniqueId": "Microsoft.FxCop.Sdk.FxCopException" } }, { - "ruleId": "CA1305", - "level": "error", + "ruleId": "CA0068", "message": { - "text": "Because the behavior of 'string.Format(string, object, object, object)' could vary based on the current user's locale settings, replace this call in 'StaticDriverVerifierConverter.ProcessLine(string, ref int, Result)' with a call to 'string.Format(IFormatProvider, string, params object[])'. If the result of 'string.Format(IFormatProvider, string, params object[])' will be displayed to the user, specify 'CultureInfo.CurrentCulture' as the 'IFormatProvider' parameter. Otherwise, if the result will be stored and accessed by software, such as when it is persisted to disk or to a database, specify 'CultureInfo.InvariantCulture'.", - "messageId": "IFormatProviderAlternateString" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", - "uriBaseId": "$(ProjectDir)" + "text": "Engine exception: Microsoft.FxCop.Sdk.FxCopException: Debug information could not be found for target assembly 'Microsoft.Json.Schema.dll'. For best analysis results, include the .pdb file with debug information for 'Microsoft.Json.Schema.dll' in the same directory as the target assembly. ." }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/StaticDriverVerifierConverter.cs" - }, - "region": { - "startLine": 177, - "snippet": { - "text": " string extraMsg = $\"{tokens[KIND1]} {tokens[CALLER]} {tokens[CALLEE]}\";" - } - }, - "contextRegion": { - "startLine": 176, - "startColumn": 1, - "endLine": 178, - "endColumn": 1, - "charOffset": 6120, - "charLength": 112, - "snippet": { - "text": " {\r\n string extraMsg = $\"{tokens[KIND1]} {tokens[CALLER]} {tokens[CALLEE]}\";\r\n" - } - } - }, - "fullyQualifiedLogicalName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.StaticDriverVerifierConverter.ProcessLine(System.String,System.Int32&,Microsoft.CodeAnalysis.Sarif.Result)" - } - ], "partialFingerprints": { - "UniqueId": "System.String.Format(System.String,System.Object,System.Object,System.Object)#IFormatProviderAlternateString" - }, - "properties": { - "Category": "Microsoft.Globalization", - "FixCategory": "NonBreaking" + "UniqueId": "Microsoft.FxCop.Sdk.FxCopException" } + } + ], + "logicalLocations": [ + { + "name": "Microsoft.CodeAnalysis.Sarif", + "kind": "namespace" }, { - "ruleId": "CA1307", - "level": "error", - "message": { - "text": "Because the behavior of 'string.StartsWith(string)' could vary based on the current user's locale settings, replace this call in 'StaticDriverVerifierConverter.ProcessLine(string, ref int, Result)' with a call to 'string.StartsWith(string, StringComparison)'. If the result of 'string.StartsWith(string, StringComparison)' will be displayed to the user, such as when sorting a list of items for display in a list box, specify 'StringComparison.CurrentCulture' or 'StringComparison.CurrentCultureIgnoreCase' as the 'StringComparison' parameter. If comparing case-insensitive identifiers, such as file paths, environment variables, or registry keys and values, specify 'StringComparison.OrdinalIgnoreCase'. Otherwise, if comparing case-sensitive identifiers, specify 'StringComparison.Ordinal'." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/StaticDriverVerifierConverter.cs" - }, - "region": { - "startLine": 235, - "snippet": { - "text": " if (stateTokens[0].StartsWith(separatorText))" - } - }, - "contextRegion": { - "startLine": 234, - "startColumn": 1, - "endLine": 236, - "endColumn": 26, - "charOffset": 8613, - "charLength": 160, - "snippet": { - "text": " Debug.Assert(stateTokens.Length == 1);\r\n if (stateTokens[0].StartsWith(separatorText))\r\n {" - } - } - }, - "fullyQualifiedLogicalName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.StaticDriverVerifierConverter.ProcessLine(System.String,System.Int32&,Microsoft.CodeAnalysis.Sarif.Result)" - } - ], - "partialFingerprints": { - "UniqueId": "System.String.StartsWith(System.String)" - }, - "properties": { - "Category": "Microsoft.Globalization", - "FixCategory": "NonBreaking" - } + "name": "Microsoft.CodeAnalysis.Sarif.Baseline", + "kind": "namespace" }, { - "ruleId": "CA1801", - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.StringReference.Equals(System.Object,System.Object)" - } - ], - "partialFingerprints": { - "UniqueId": "unusedA" - }, - "suppressionStates": ["suppressedInSource"], - "properties": { - "Category": "Microsoft.Usage", - "FixCategory": "NonBreaking" - } + "name": "Microsoft.CodeAnalysis.Sarif.Baseline.DefaultBaseline", + "kind": "namespace" }, { - "ruleId": "CA1801", - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.StringReference.Equals(System.Object,System.Object)" - } - ], - "partialFingerprints": { - "UniqueId": "unusedB" - }, - "suppressionStates": ["suppressedInSource"], - "properties": { - "Category": "Microsoft.Usage", - "FixCategory": "NonBreaking" - } + "name": "Microsoft.CodeAnalysis.Sarif.Converters", + "kind": "namespace" }, { - "ruleId": "CA1307", - "level": "error", - "message": { - "text": "Because the behavior of 'string.LastIndexOf(string)' could vary based on the current user's locale settings, replace this call in 'ToolFileConverterBase.GetLogicalLocationName(string, string, string)' with a call to 'string.LastIndexOf(string, StringComparison)'. If the result of 'string.LastIndexOf(string, StringComparison)' will be displayed to the user, such as when sorting a list of items for display in a list box, specify 'StringComparison.CurrentCulture' or 'StringComparison.CurrentCultureIgnoreCase' as the 'StringComparison' parameter. If comparing case-insensitive identifiers, such as file paths, environment variables, or registry keys and values, specify 'StringComparison.OrdinalIgnoreCase'. Otherwise, if comparing case-sensitive identifiers, specify 'StringComparison.Ordinal'." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/ToolFileConverterBase.cs" - }, - "region": { - "startLine": 90, - "snippet": { - "text": " index = !string.IsNullOrWhiteSpace(delimiter) ? fullyQualifiedLogicalName.LastIndexOf(delimiter) : -1;" - } - }, - "contextRegion": { - "startLine": 89, - "startColumn": 1, - "endLine": 91, - "endColumn": 14, - "charOffset": 3432, - "charLength": 148, - "snippet": { - "text": " {\r\n index = !string.IsNullOrWhiteSpace(delimiter) ? fullyQualifiedLogicalName.LastIndexOf(delimiter) : -1;\r\n }" - } - } - }, - "fullyQualifiedLogicalName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.ToolFileConverterBase.GetLogicalLocationName(System.String,System.String,System.String)" - } - ], - "partialFingerprints": { - "UniqueId": "System.String.LastIndexOf(System.String)" - }, - "properties": { - "Category": "Microsoft.Globalization", - "FixCategory": "NonBreaking" - } + "name": "Microsoft.CodeAnalysis.Sarif.Converters.PREFastObjectModel", + "kind": "namespace" }, { - "ruleId": "CA1704", - "level": "warning", - "message": { - "text": "Correct the spelling of 'Cpp' in member name 'ToolFormat.CppCheck' or remove it entirely if it represents any sort of Hungarian notation.", - "messageId": "Member" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.ToolFormat.CppCheck" - } - ], - "partialFingerprints": { - "UniqueId": "Cpp#Member" - }, - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" - } + "name": "Microsoft.CodeAnalysis.Sarif.Converters.PylintObjectModel", + "kind": "namespace" }, { - "ruleId": "CA1704", - "level": "warning", - "message": { - "text": "Correct the spelling of 'Fpr' in member name 'ToolFormat.FortifyFpr' or remove it entirely if it represents any sort of Hungarian notation.", - "messageId": "Member" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.ToolFormat.FortifyFpr" - } - ], - "partialFingerprints": { - "UniqueId": "Fpr#Member" - }, - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" - } + "name": "Microsoft.CodeAnalysis.Sarif.Converters.TSLintObjectModel", + "kind": "namespace" }, { - "ruleId": "CA1704", - "level": "warning", - "message": { - "text": "Correct the spelling of 'Efast' in member name 'ToolFormat.PREfast' or remove it entirely if it represents any sort of Hungarian notation.", - "messageId": "Member" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.ToolFormat.PREfast" - } - ], - "partialFingerprints": { - "UniqueId": "Efast#Member" - }, - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" - } + "name": "Microsoft.CodeAnalysis.Sarif.Driver", + "kind": "namespace" }, { - "ruleId": "CA1704", - "level": "warning", - "message": { - "text": "Correct the spelling of 'Pylint' in member name 'ToolFormat.Pylint' or remove it entirely if it represents any sort of Hungarian notation.", - "messageId": "Member" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.ToolFormat.Pylint" - } - ], - "partialFingerprints": { - "UniqueId": "Pylint#Member" - }, - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" - } + "name": "Microsoft.CodeAnalysis.Sarif.Multitool", + "kind": "namespace" }, { - "ruleId": "CA1704", - "level": "warning", - "message": { - "text": "Correct the spelling of 'Semmle' in member name 'ToolFormat.SemmleQL' or remove it entirely if it represents any sort of Hungarian notation.", - "messageId": "Member" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.ToolFormat.SemmleQL" - } - ], - "partialFingerprints": { - "UniqueId": "Semmle#Member" - }, - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" - } + "name": "Microsoft.CodeAnalysis.Sarif.Multitool.Rules", + "kind": "namespace" }, { - "ruleId": "CA1026", - "level": "error", - "message": { - "text": "Replace method 'ToolFormatConverter.ToolFormatConverter(AssemblyLoadFileDelegate)' with an overload that supplies all default arguments." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/ToolFormatConverter.cs" - }, - "region": { - "startLine": 19, - "snippet": { - "text": " public ToolFormatConverter(AssemblyLoadFileDelegate assemblyLoadFileDelegate = null)" - } - }, - "contextRegion": { - "startLine": 18, - "startColumn": 1, - "endLine": 20, - "endColumn": 10, - "charOffset": 615, - "charLength": 105, - "snippet": { - "text": "\r\n public ToolFormatConverter(AssemblyLoadFileDelegate assemblyLoadFileDelegate = null)\r\n {" - } - } - }, - "fullyQualifiedLogicalName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.ToolFormatConverter..ctor(Microsoft.CodeAnalysis.Sarif.Converters.AssemblyLoadFileDelegate)" - } - ], - "properties": { - "Category": "Microsoft.Design", - "FixCategory": "Breaking" - } + "name": "Microsoft.CodeAnalysis.Sarif.Processors", + "kind": "namespace" }, { - "ruleId": "CA1026", - "level": "error", - "message": { - "text": "Replace method 'ToolFormatConverter.ConvertToStandardFormat(string, Stream, IResultLogWriter, OptionallyEmittedData, string)' with an overload that supplies all default arguments." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/ToolFormatConverter.cs" - }, - "region": { - "startLine": 90, - "snippet": { - "text": " {" - } - }, - "contextRegion": { - "startLine": 89, - "startColumn": 1, - "endLine": 91, - "endColumn": 95, - "charOffset": 4722, - "charLength": 152, - "snippet": { - "text": " string pluginAssemblyPath = null)\r\n {\r\n if (inputStream == null) { throw new ArgumentNullException(nameof(inputStream)); }" - } - } - }, - "fullyQualifiedLogicalName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.ToolFormatConverter.ConvertToStandardFormat(System.String,System.IO.Stream,Microsoft.CodeAnalysis.Sarif.IResultLogWriter,Microsoft.CodeAnalysis.Sarif.OptionallyEmittedData,System.String)" - } - ], - "properties": { - "Category": "Microsoft.Design", - "FixCategory": "Breaking" - } + "name": "Microsoft.CodeAnalysis.Sarif.Readers", + "kind": "namespace" }, { - "ruleId": "CA1026", - "level": "error", - "message": { - "text": "Replace method 'ToolFormatConverter.ConvertToStandardFormat(string, string, string, LoggingOptions, OptionallyEmittedData, string)' with an overload that supplies all default arguments." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/ToolFormatConverter.cs" - }, - "region": { - "startLine": 42, - "snippet": { - "text": " {" - } - }, - "contextRegion": { - "startLine": 41, - "startColumn": 1, - "endLine": 43, - "endColumn": 99, - "charOffset": 2075, - "charLength": 156, - "snippet": { - "text": " string pluginAssemblyPath = null)\r\n {\r\n if (inputFileName == null) { throw new ArgumentNullException(nameof(inputFileName)); }" - } - } - }, - "fullyQualifiedLogicalName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.ToolFormatConverter.ConvertToStandardFormat(System.String,System.String,System.String,Microsoft.CodeAnalysis.Sarif.Writers.LoggingOptions,Microsoft.CodeAnalysis.Sarif.OptionallyEmittedData,System.String)" - } - ], - "properties": { - "Category": "Microsoft.Design", - "FixCategory": "Breaking" - } + "name": "Microsoft.CodeAnalysis.Sarif.VersionOne", + "kind": "namespace" }, { - "ruleId": "CA2202", - "level": "warning", - "message": { - "text": "Object 'outputTextStream' can be disposed more than once in method 'ToolFormatConverter.ConvertToStandardFormat(string, string, string, LoggingOptions, OptionallyEmittedData, string)'. To avoid generating a System.ObjectDisposedException you should not call Dispose more than one time on an object.: Lines: 72" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/ToolFormatConverter.cs" - }, - "region": { - "startLine": 72, - "snippet": { - "text": " }" - } - }, - "contextRegion": { - "startLine": 71, - "startColumn": 1, - "endLine": 73, - "endColumn": 10, - "charOffset": 3692, - "charLength": 43, - "snippet": { - "text": " }\r\n }\r\n }" - } - } - }, - "fullyQualifiedLogicalName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.ToolFormatConverter.ConvertToStandardFormat(System.String,System.String,System.String,Microsoft.CodeAnalysis.Sarif.Writers.LoggingOptions,Microsoft.CodeAnalysis.Sarif.OptionallyEmittedData,System.String)" - } - ], - "properties": { - "Category": "Microsoft.Usage", - "FixCategory": "DependsOnFix" - } + "name": "Microsoft.CodeAnalysis.Sarif.VersionOne.Readers", + "kind": "namespace" }, { - "ruleId": "CA2202", - "level": "warning", - "message": { - "text": "Object 'outputTextWriter' can be disposed more than once in method 'ToolFormatConverter.ConvertToStandardFormat(string, string, string, LoggingOptions, OptionallyEmittedData, string)'. To avoid generating a System.ObjectDisposedException you should not call Dispose more than one time on an object.: Lines: 72" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/ToolFormatConverter.cs" - }, - "region": { - "startLine": 72, - "snippet": { - "text": " }" - } - }, - "contextRegion": { - "startLine": 71, - "startColumn": 1, - "endLine": 73, - "endColumn": 10, - "charOffset": 3692, - "charLength": 43, - "snippet": { - "text": " }\r\n }\r\n }" - } - } - }, - "fullyQualifiedLogicalName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.ToolFormatConverter.ConvertToStandardFormat(System.String,System.String,System.String,Microsoft.CodeAnalysis.Sarif.Writers.LoggingOptions,Microsoft.CodeAnalysis.Sarif.OptionallyEmittedData,System.String)" - } - ], - "properties": { - "Category": "Microsoft.Usage", - "FixCategory": "DependsOnFix" - } + "name": "Microsoft.CodeAnalysis.Sarif.Visitors", + "kind": "namespace" }, { - "ruleId": "CA1822", - "level": "warning", - "message": { - "text": "The 'this' parameter (or 'Me' in Visual Basic) of 'TSLintConverter.CreateResult(TSLintLogEntry)' is never used. Mark the member as static (or Shared in Visual Basic) or use 'this'/'Me' in the method body or at least one property accessor, if appropriate." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/TSLintConverter.cs" - }, - "region": { - "startLine": 62, - "snippet": { - "text": " {" - } - }, - "contextRegion": { - "startLine": 61, - "startColumn": 1, - "endLine": 63, - "endColumn": 77, - "charOffset": 1899, - "charLength": 147, - "snippet": { - "text": " internal Result CreateResult(TSLintLogEntry entry)\r\n {\r\n entry = entry ?? throw new ArgumentNullException(nameof(entry));" - } - } - }, - "fullyQualifiedLogicalName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.TSLintConverter.CreateResult(Microsoft.CodeAnalysis.Sarif.Converters.TSLintObjectModel.TSLintLogEntry)" - } - ], - "properties": { - "Category": "Microsoft.Performance", - "FixCategory": "NonBreaking" - } + "name": "Microsoft.CodeAnalysis.Sarif.Writers", + "kind": "namespace" }, { - "ruleId": "CA2201", - "level": "error", - "message": { - "text": "'TSLintLogReader.NormalizeEntries(JArray)' creates an exception of type 'Exception', an exception type that is not sufficiently specific and should never be raised by user code. If this exception instance might be thrown, use a different exception type.", - "messageId": "TooGeneric" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/TSLintLogReader.cs" - }, - "region": { - "startLine": 105, - "snippet": { - "text": " throw new Exception(" - } - }, - "contextRegion": { - "startLine": 104, - "startColumn": 1, - "endLine": 106, - "endColumn": 39, - "charOffset": 3976, - "charLength": 145, - "snippet": { - "text": " var lineInfo = entryToken as IJsonLineInfo;\r\n throw new Exception(\r\n string.Format(" - } - } - }, - "fullyQualifiedLogicalName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.TSLintLogReader.NormalizeEntries(Newtonsoft.Json.Linq.JArray)" - } - ], - "partialFingerprints": { - "UniqueId": "TooGeneric" - }, - "properties": { - "Category": "Microsoft.Usage", - "FixCategory": "Breaking" - } + "name": "Microsoft.CodeAnalysisDriver", + "kind": "namespace" }, { - "ruleId": "CA1822", - "level": "warning", - "message": { - "text": "The 'this' parameter (or 'Me' in Visual Basic) of 'TSLintLogReader.NormalizeEntries(JArray)' is never used. Mark the member as static (or Shared in Visual Basic) or use 'this'/'Me' in the method body or at least one property accessor, if appropriate." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/TSLintLogReader.cs" - }, - "region": { - "startLine": 95, - "snippet": { - "text": " {" - } - }, - "contextRegion": { - "startLine": 94, - "startColumn": 1, - "endLine": 96, - "endColumn": 51, - "charOffset": 3670, - "charLength": 116, - "snippet": { - "text": " private void NormalizeEntries(JArray entries)\r\n {\r\n foreach (JToken entryToken in entries)" - } - } - }, - "fullyQualifiedLogicalName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.TSLintLogReader.NormalizeEntries(Newtonsoft.Json.Linq.JArray)" - } - ], - "properties": { - "Category": "Microsoft.Performance", - "FixCategory": "NonBreaking" - } + "name": "Microsoft.Json.Pointer", + "kind": "namespace" }, { - "ruleId": "CA2201", - "level": "error", - "message": { - "text": "'TSLintLogReader.NormalizeFixProperty(JProperty)' creates an exception of type 'Exception', an exception type that is not sufficiently specific and should never be raised by user code. If this exception instance might be thrown, use a different exception type.", - "messageId": "TooGeneric" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/TSLintLogReader.cs" - }, - "region": { - "startLine": 143, - "snippet": { - "text": " throw new Exception(" - } - }, - "contextRegion": { - "startLine": 142, - "startColumn": 1, - "endLine": 144, - "endColumn": 35, - "charOffset": 5495, - "charLength": 136, - "snippet": { - "text": " var lineInfo = fixValueToken as IJsonLineInfo;\r\n throw new Exception(\r\n string.Format(" - } - } - }, - "fullyQualifiedLogicalName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.TSLintLogReader.NormalizeFixProperty(Newtonsoft.Json.Linq.JProperty)" - } - ], - "partialFingerprints": { - "UniqueId": "TooGeneric" - }, - "properties": { - "Category": "Microsoft.Usage", - "FixCategory": "Breaking" - } + "name": "microsoft.json.pointer.dll", + "kind": "module" }, { - "ruleId": "CA2201", - "level": "error", - "message": { - "text": "'TSLintLogReader.NormalizeLog(JToken)' creates an exception of type 'Exception', an exception type that is not sufficiently specific and should never be raised by user code. If this exception instance might be thrown, use a different exception type.", - "messageId": "TooGeneric" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/TSLintLogReader.cs" - }, - "region": { - "startLine": 84, - "snippet": { - "text": " throw new Exception(" - } - }, - "contextRegion": { - "startLine": 83, - "startColumn": 1, - "endLine": 85, - "endColumn": 35, - "charOffset": 3330, - "charLength": 87, - "snippet": { - "text": " {\r\n throw new Exception(\r\n string.Format(" - } - } - }, - "fullyQualifiedLogicalName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.TSLintLogReader.NormalizeLog(Newtonsoft.Json.Linq.JToken)" - } - ], - "partialFingerprints": { - "UniqueId": "TooGeneric" - }, - "properties": { - "Category": "Microsoft.Usage", - "FixCategory": "Breaking" - } + "name": "Microsoft.Json.Pointer", + "fullyQualifiedName": "microsoft.json.pointer.dll!Microsoft.Json.Pointer", + "parentIndex": 18, + "kind": "namespace" }, { - "ruleId": "CA2202", - "level": "warning", - "message": { - "text": "Object 'streamReader' can be disposed more than once in method 'TSLintLogReader.ReadLog(Stream)'. To avoid generating a System.ObjectDisposedException you should not call Dispose more than one time on an object.: Lines: 38" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/TSLintLogReader.cs" - }, - "region": { - "startLine": 38, - "snippet": { - "text": " return (TSLintLog)Serializer.ReadObject(normalizedLogStream);" - } - }, - "contextRegion": { - "startLine": 37, - "startColumn": 1, - "endLine": 39, - "endColumn": 18, - "charOffset": 1381, - "charLength": 119, - "snippet": { - "text": " {\r\n return (TSLintLog)Serializer.ReadObject(normalizedLogStream);\r\n }" - } - } - }, - "fullyQualifiedLogicalName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.TSLintLogReader.ReadLog(System.IO.Stream)" - } - ], - "properties": { - "Category": "Microsoft.Usage", - "FixCategory": "DependsOnFix" - } + "name": "JsonPointer", + "fullyQualifiedName": "microsoft.json.pointer.dll!Microsoft.Json.Pointer.JsonPointer", + "parentIndex": 19, + "kind": "type" }, { - "ruleId": "CA2202", - "level": "warning", - "message": { - "text": "Object 'this' can be disposed more than once in method 'TSLintLogReader.ReadLog(Stream)'. To avoid generating a System.ObjectDisposedException you should not call Dispose more than one time on an object.: Lines: 38" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/TSLintLogReader.cs" - }, - "region": { - "startLine": 38, - "snippet": { - "text": " return (TSLintLog)Serializer.ReadObject(normalizedLogStream);" - } - }, - "contextRegion": { - "startLine": 37, - "startColumn": 1, - "endLine": 39, - "endColumn": 18, - "charOffset": 1381, - "charLength": 119, - "snippet": { - "text": " {\r\n return (TSLintLog)Serializer.ReadObject(normalizedLogStream);\r\n }" - } - } - }, - "fullyQualifiedLogicalName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.TSLintLogReader.ReadLog(System.IO.Stream)" - } - ], - "properties": { - "Category": "Microsoft.Usage", - "FixCategory": "DependsOnFix" - } + "name": ".ctor(System.String,Microsoft.Json.Pointer.JsonPointerRepresentation)", + "fullyQualifiedName": "microsoft.json.pointer.dll!Microsoft.Json.Pointer.JsonPointer..ctor(System.String,Microsoft.Json.Pointer.JsonPointerRepresentation)", + "parentIndex": 20, + "kind": "member" }, { - "ruleId": "CA1002", - "level": "error", - "message": { - "text": "Change 'TSLintLog' in 'TSLintLogReader.ReadLog(Stream)' to use Collection, ReadOnlyCollection or KeyedCollection" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/TSLintLogReader.cs" - }, - "region": { - "startLine": 27, - "snippet": { - "text": " {" - } - }, - "contextRegion": { - "startLine": 26, - "startColumn": 1, - "endLine": 28, - "endColumn": 77, - "charOffset": 770, - "charLength": 144, - "snippet": { - "text": " public override TSLintLog ReadLog(Stream input)\r\n {\r\n input = input ?? throw new ArgumentNullException(nameof(input));" - } - } - }, - "fullyQualifiedLogicalName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.TSLintLogReader.ReadLog(System.IO.Stream)" - } - ], - "properties": { - "Category": "Microsoft.Design", - "FixCategory": "Breaking" - } + "name": "Resources", + "fullyQualifiedName": "microsoft.json.pointer.dll!Microsoft.Json.Pointer.Resources", + "parentIndex": 19, + "kind": "type" }, { - "ruleId": "CA1710", - "level": "error", - "message": { - "text": "Rename 'Category' to end in 'Dictionary'." - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.PREFastObjectModel.Category" - } - ], - "properties": { - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" - } + "name": "StringExtensions", + "fullyQualifiedName": "microsoft.json.pointer.dll!Microsoft.Json.Pointer.StringExtensions", + "parentIndex": 19, + "kind": "type" }, { - "ruleId": "CA2237", - "level": "warning", - "message": { - "text": "Add [Serializable] to 'Category' as this type implements ISerializable." - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.PREFastObjectModel.Category" - } - ], - "properties": { - "Category": "Microsoft.Usage", - "FixCategory": "NonBreaking" - } + "name": "AtIndex(System.String,System.Int32)", + "fullyQualifiedName": "microsoft.json.pointer.dll!Microsoft.Json.Pointer.StringExtensions.AtIndex(System.String,System.Int32)", + "parentIndex": 23, + "kind": "member" }, { - "ruleId": "CA1062", - "level": "warning", - "message": { - "text": "In externally visible method 'Category.ReadXml(XmlReader)', validate parameter 'reader' before using it." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/PREFastObjectModel/Category.cs" - }, - "region": { - "startLine": 19, - "snippet": { - "text": " bool wasEmpty = reader.IsEmptyElement;" - } - }, - "contextRegion": { - "startLine": 18, - "startColumn": 1, - "endLine": 20, - "endColumn": 27, - "charOffset": 505, - "charLength": 89, - "snippet": { - "text": " {\r\n bool wasEmpty = reader.IsEmptyElement;\r\n reader.Read();" - } - } - }, - "fullyQualifiedLogicalName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.PREFastObjectModel.Category.ReadXml(System.Xml.XmlReader)" - } - ], - "partialFingerprints": { - "UniqueId": "0" - }, - "properties": { - "Category": "Microsoft.Design", - "FixCategory": "DependsOnFix" - } + "name": "AtProperty(System.String,System.String)", + "fullyQualifiedName": "microsoft.json.pointer.dll!Microsoft.Json.Pointer.StringExtensions.AtProperty(System.String,System.String)", + "parentIndex": 23, + "kind": "member" }, { - "ruleId": "CA2227", - "level": "warning", - "message": { - "text": "Change 'Defect.Category' to be read-only by removing the property setter." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/PREFastObjectModel/Defect.cs" - }, - "region": { - "startLine": 35, - "snippet": { - "text": " public Category Category { get; set; }" - } - }, - "contextRegion": { - "startLine": 34, - "startColumn": 1, - "endLine": 36, - "endColumn": 6, - "charOffset": 872, - "charLength": 87, - "snippet": { - "text": " [XmlElement(\"CATEGORY\")]\r\n public Category Category { get; set; }\r\n }" - } - } - }, - "fullyQualifiedLogicalName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.PREFastObjectModel.Defect.Category" - } - ], - "properties": { - "Category": "Microsoft.Usage", - "FixCategory": "Breaking" - } + "name": "UnescapeJsonPointer(System.String)", + "fullyQualifiedName": "microsoft.json.pointer.dll!Microsoft.Json.Pointer.StringExtensions.UnescapeJsonPointer(System.String)", + "parentIndex": 23, + "kind": "member" }, { - "ruleId": "CA1704", - "level": "warning", - "message": { - "text": "Correct the spelling of 'Funcline' in member name 'Defect.Funcline' or remove it entirely if it represents any sort of Hungarian notation.", - "messageId": "Member" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/PREFastObjectModel/Defect.cs" - }, - "region": { - "startLine": 23, - "snippet": { - "text": " public string Funcline { get; set; }" - } - }, - "contextRegion": { - "startLine": 22, - "startColumn": 1, - "endLine": 24, - "endColumn": 1, - "charOffset": 549, - "charLength": 80, - "snippet": { - "text": " [XmlElement(\"FUNCLINE\")]\r\n public string Funcline { get; set; }\r\n" - } - } - }, - "fullyQualifiedLogicalName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.PREFastObjectModel.Defect.Funcline" - } - ], - "partialFingerprints": { - "UniqueId": "Funcline#Member" - }, - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" - } + "name": "VersionConstants", + "fullyQualifiedName": "microsoft.json.pointer.dll!Microsoft.Json.Pointer.VersionConstants", + "parentIndex": 19, + "kind": "type" }, { - "ruleId": "CA1709", - "level": "error", - "message": { - "text": "Correct the casing of 'SFA' in member name 'Defect.SFA' by changing it to 'Sfa'.", - "messageId": "Member" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/PREFastObjectModel/Defect.cs" - }, - "region": { - "startLine": 8, - "snippet": { - "text": " public SFA SFA { get; set; }" - } - }, - "contextRegion": { - "startLine": 7, - "startColumn": 1, - "endLine": 9, - "endColumn": 1, - "charOffset": 140, - "charLength": 67, - "snippet": { - "text": " [XmlElement(\"SFA\")]\r\n public SFA SFA { get; set; }\r\n" - } - } - }, - "fullyQualifiedLogicalName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.PREFastObjectModel.Defect.SFA" - } - ], - "partialFingerprints": { - "UniqueId": "SFA#Member" - }, - "properties": { - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" - } + "name": "PreRelease", + "fullyQualifiedName": "microsoft.json.pointer.dll!Microsoft.Json.Pointer.VersionConstants.PreRelease", + "parentIndex": 27, + "kind": "member" }, { - "ruleId": "CA2227", - "level": "warning", - "message": { - "text": "Change 'DefectList.Defects' to be read-only by removing the property setter." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/PREFastObjectModel/DefectList.cs" - }, - "region": { - "startLine": 10, - "snippet": { - "text": " public List Defects { get; set; } = new List();" - } - }, - "contextRegion": { - "startLine": 9, - "startColumn": 1, - "endLine": 11, - "endColumn": 6, - "charOffset": 205, - "charLength": 110, - "snippet": { - "text": " [XmlElement(\"DEFECT\")]\r\n public List Defects { get; set; } = new List();\r\n }" - } - } - }, - "fullyQualifiedLogicalName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.PREFastObjectModel.DefectList.Defects" - } - ], - "properties": { - "Category": "Microsoft.Usage", - "FixCategory": "Breaking" - } + "name": "microsoft.json.schema.dll", + "kind": "module" }, { - "ruleId": "CA1002", - "level": "error", - "message": { - "text": "Change 'List' in 'DefectList.Defects' to use Collection, ReadOnlyCollection or KeyedCollection" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/PREFastObjectModel/DefectList.cs" - }, - "region": { - "startLine": 10, - "snippet": { - "text": " public List Defects { get; set; } = new List();" - } - }, - "contextRegion": { - "startLine": 9, - "startColumn": 1, - "endLine": 11, - "endColumn": 6, - "charOffset": 205, - "charLength": 110, - "snippet": { - "text": " [XmlElement(\"DEFECT\")]\r\n public List Defects { get; set; } = new List();\r\n }" - } - } - }, - "fullyQualifiedLogicalName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.PREFastObjectModel.DefectList.Defects" - } - ], - "properties": { - "Category": "Microsoft.Design", - "FixCategory": "Breaking" - } + "name": "Microsoft.Json.Schema", + "fullyQualifiedName": "microsoft.json.schema.dll!Microsoft.Json.Schema", + "parentIndex": 29, + "kind": "namespace" }, { - "ruleId": "CA1709", - "level": "error", - "message": { - "text": "Correct the casing of 'PRE' in type name 'PREFastPath' by changing it to 'Pre'.", - "messageId": "Type" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.PREFastObjectModel.PREFastPath" - } - ], - "partialFingerprints": { - "UniqueId": "PRE#Type" - }, - "properties": { - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" - } + "name": "AdditionalItems", + "fullyQualifiedName": "microsoft.json.schema.dll!Microsoft.Json.Schema.AdditionalItems", + "parentIndex": 30, + "kind": "type" }, { - "ruleId": "CA2227", - "level": "warning", - "message": { - "text": "Change 'PREFastPath.SFAs' to be read-only by removing the property setter." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/PREFastObjectModel/PREFastPath.cs" - }, - "region": { - "startLine": 9, - "snippet": { - "text": " public List SFAs { get; set; }" - } - }, - "contextRegion": { - "startLine": 8, - "startColumn": 1, - "endLine": 10, - "endColumn": 6, - "charOffset": 180, - "charLength": 79, - "snippet": { - "text": " [XmlElement(\"SFA\")]\r\n public List SFAs { get; set; }\r\n }" - } - } - }, - "fullyQualifiedLogicalName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.PREFastObjectModel.PREFastPath.SFAs" - } - ], - "properties": { - "Category": "Microsoft.Usage", - "FixCategory": "Breaking" - } + "name": ".ctor(Microsoft.Json.Schema.AdditionalItems)", + "fullyQualifiedName": "microsoft.json.schema.dll!Microsoft.Json.Schema.AdditionalItems..ctor(Microsoft.Json.Schema.AdditionalItems)", + "parentIndex": 31, + "kind": "member" }, { - "ruleId": "CA1002", - "level": "error", - "message": { - "text": "Change 'List' in 'PREFastPath.SFAs' to use Collection, ReadOnlyCollection or KeyedCollection" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/PREFastObjectModel/PREFastPath.cs" - }, - "region": { - "startLine": 9, - "snippet": { - "text": " public List SFAs { get; set; }" - } - }, - "contextRegion": { - "startLine": 8, - "startColumn": 1, - "endLine": 10, - "endColumn": 6, - "charOffset": 180, - "charLength": 79, - "snippet": { - "text": " [XmlElement(\"SFA\")]\r\n public List SFAs { get; set; }\r\n }" - } - } - }, - "fullyQualifiedLogicalName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.PREFastObjectModel.PREFastPath.SFAs" - } - ], - "properties": { - "Category": "Microsoft.Design", - "FixCategory": "Breaking" - } + "name": "AdditionalProperties", + "fullyQualifiedName": "microsoft.json.schema.dll!Microsoft.Json.Schema.AdditionalProperties", + "parentIndex": 30, + "kind": "type" }, { - "ruleId": "CA1709", - "level": "error", - "message": { - "text": "Correct the casing of 'SFAs' in member name 'PREFastPath.SFAs' by changing it to 'Sfas'.", - "messageId": "Member" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/PREFastObjectModel/PREFastPath.cs" - }, - "region": { - "startLine": 9, - "snippet": { - "text": " public List SFAs { get; set; }" - } - }, - "contextRegion": { - "startLine": 8, - "startColumn": 1, - "endLine": 10, - "endColumn": 6, - "charOffset": 180, - "charLength": 79, - "snippet": { - "text": " [XmlElement(\"SFA\")]\r\n public List SFAs { get; set; }\r\n }" - } - } - }, - "fullyQualifiedLogicalName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.PREFastObjectModel.PREFastPath.SFAs" - } - ], - "partialFingerprints": { - "UniqueId": "SFAs#Member" - }, - "properties": { - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" - } + "name": ".ctor(Microsoft.Json.Schema.AdditionalProperties)", + "fullyQualifiedName": "microsoft.json.schema.dll!Microsoft.Json.Schema.AdditionalProperties..ctor(Microsoft.Json.Schema.AdditionalProperties)", + "parentIndex": 33, + "kind": "member" }, { - "ruleId": "CA1709", - "level": "error", - "message": { - "text": "Correct the casing of 'SFA' in type name 'SFA' by changing it to 'Sfa'.", - "messageId": "Type" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.PREFastObjectModel.SFA" - } - ], - "partialFingerprints": { - "UniqueId": "SFA#Type" - }, - "properties": { - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" - } + "name": "Dependency", + "fullyQualifiedName": "microsoft.json.schema.dll!Microsoft.Json.Schema.Dependency", + "parentIndex": 30, + "kind": "type" }, { - "ruleId": "CA1704", - "level": "warning", - "message": { - "text": "Correct the spelling of 'Pylint' in type name 'PylintLog'.", - "messageId": "Type" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.PylintObjectModel.PylintLog" - } - ], - "partialFingerprints": { - "UniqueId": "Pylint#Type" - }, - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" - } + "name": ".ctor(Microsoft.Json.Schema.Dependency)", + "fullyQualifiedName": "microsoft.json.schema.dll!Microsoft.Json.Schema.Dependency..ctor(Microsoft.Json.Schema.Dependency)", + "parentIndex": 35, + "kind": "member" }, { - "ruleId": "CA1710", - "level": "error", - "message": { - "text": "Rename 'PylintLog' to end in 'Collection'." - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.PylintObjectModel.PylintLog" - } - ], - "properties": { - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" - } + "name": "PropertyDependencies", + "fullyQualifiedName": "microsoft.json.schema.dll!Microsoft.Json.Schema.Dependency.PropertyDependencies", + "parentIndex": 35, + "kind": "member" }, { - "ruleId": "CA1704", - "level": "warning", - "message": { - "text": "Correct the spelling of 'Pylint' in type name 'PylintLogEntry'.", - "messageId": "Type" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.PylintObjectModel.PylintLogEntry" - } - ], - "partialFingerprints": { - "UniqueId": "Pylint#Type" - }, - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" - } + "name": "DependencyConverter", + "fullyQualifiedName": "microsoft.json.schema.dll!Microsoft.Json.Schema.DependencyConverter", + "parentIndex": 30, + "kind": "type" }, { - "ruleId": "CA1721", - "level": "error", - "message": { - "text": "The property name 'PylintLogEntry.Type' is confusing given the existence of inherited method 'object.GetType()'. Rename or remove this property.", - "messageId": "BaseType" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/PylintObjectModel/PylintLogEntry.cs" - }, - "region": { - "startLine": 11, - "snippet": { - "text": " public string Type { get; set; }" - } - }, - "contextRegion": { - "startLine": 10, - "startColumn": 1, - "endLine": 12, - "endColumn": 1, - "charOffset": 293, - "charLength": 74, - "snippet": { - "text": " [JsonProperty(\"type\")]\r\n public string Type { get; set; }\r\n" - } - } - }, - "fullyQualifiedLogicalName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.PylintObjectModel.PylintLogEntry.Type" - } - ], - "partialFingerprints": { - "UniqueId": "BaseType" - }, - "properties": { - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" - } + "name": "WriteJson(Newtonsoft.Json.JsonWriter,System.Object,Newtonsoft.Json.JsonSerializer)", + "fullyQualifiedName": "microsoft.json.schema.dll!Microsoft.Json.Schema.DependencyConverter.WriteJson(Newtonsoft.Json.JsonWriter,System.Object,Newtonsoft.Json.JsonSerializer)", + "parentIndex": 38, + "kind": "member" }, { - "ruleId": "CA1704", - "level": "warning", - "message": { - "text": "Correct the spelling of 'Pylint' in type name 'PylintLogReader'.", - "messageId": "Type" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.PylintObjectModel.PylintLogReader" - } - ], - "partialFingerprints": { - "UniqueId": "Pylint#Type" - }, - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" - } + "name": "Error", + "fullyQualifiedName": "microsoft.json.schema.dll!Microsoft.Json.Schema.Error", + "parentIndex": 30, + "kind": "type" }, { - "ruleId": "CA1002", - "level": "error", - "message": { - "text": "Change 'PylintLog' in 'PylintLogReader.ReadLog(Stream)' to use Collection, ReadOnlyCollection or KeyedCollection" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/PylintObjectModel/PylintLogReader.cs" - }, - "region": { - "startLine": 12, - "snippet": { - "text": " {" - } - }, - "contextRegion": { - "startLine": 11, - "startColumn": 1, - "endLine": 13, - "endColumn": 31, - "charOffset": 335, - "charLength": 98, - "snippet": { - "text": " public override PylintLog ReadLog(Stream input)\r\n {\r\n string pylintText;" - } - } - }, - "fullyQualifiedLogicalName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.PylintObjectModel.PylintLogReader.ReadLog(System.IO.Stream)" - } - ], - "properties": { - "Category": "Microsoft.Design", - "FixCategory": "Breaking" - } + "name": "CreateException(System.String,System.Object[])", + "fullyQualifiedName": "microsoft.json.schema.dll!Microsoft.Json.Schema.Error.CreateException(System.String,System.Object[])", + "parentIndex": 40, + "kind": "member" }, { - "ruleId": "CA1710", - "level": "error", - "message": { - "text": "Rename 'TSLintLog' to end in 'Collection'." - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.TSLintObjectModel.TSLintLog" - } - ], - "properties": { - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" - } + "name": "Items", + "fullyQualifiedName": "microsoft.json.schema.dll!Microsoft.Json.Schema.Items", + "parentIndex": 30, + "kind": "type" }, { - "ruleId": "CA2227", - "level": "warning", - "message": { - "text": "Change 'TSLintLogEntry.Fixes' to be read-only by removing the property setter." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/TSLintObjectModel/TSLintLogEntry.cs" - }, - "region": { - "startLine": 31, - "snippet": { - "text": " public IList Fixes { get; set; }" - } - }, - "contextRegion": { - "startLine": 30, - "startColumn": 1, - "endLine": 32, - "endColumn": 6, - "charOffset": 1198, - "charLength": 142, - "snippet": { - "text": " [DataMember(Name = \"fix\", IsRequired = false, EmitDefaultValue = true)]\r\n public IList Fixes { get; set; }\r\n }" - } - } - }, - "fullyQualifiedLogicalName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.TSLintObjectModel.TSLintLogEntry.Fixes" - } - ], - "properties": { - "Category": "Microsoft.Usage", - "FixCategory": "Breaking" - } + "name": ".ctor(Microsoft.Json.Schema.Items)", + "fullyQualifiedName": "microsoft.json.schema.dll!Microsoft.Json.Schema.Items..ctor(Microsoft.Json.Schema.Items)", + "parentIndex": 42, + "kind": "member" }, { - "ruleId": "CA1703", - "level": "warning", - "message": { - "text": "In resource 'Microsoft.CodeAnalysis.Sarif.Converters.ConverterResources.resx', referenced by name 'CppCheckCppCheckElementMissing', correct the spelling of 'Cpp' in string value 'CppCheck file did not start with \"results/cppcheck\" element with version information.'.", - "messageId": "StringResource" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.ConverterResources.resources" - } - ], - "partialFingerprints": { - "UniqueId": "Cpp#StringResource" - }, - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Naming", - "FixCategory": "NonBreaking" - } + "name": "Schemas", + "fullyQualifiedName": "microsoft.json.schema.dll!Microsoft.Json.Schema.Items.Schemas", + "parentIndex": 42, + "kind": "member" }, { - "ruleId": "CA1703", - "level": "warning", - "message": { - "text": "In resource 'Microsoft.CodeAnalysis.Sarif.Converters.ConverterResources.resx', referenced by name 'CppCheckElementNotError', correct the spelling of 'Cpp' in string value 'Could not parse CppCheck error node; element name was not error.'.", - "messageId": "StringResource" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.ConverterResources.resources" - } - ], - "partialFingerprints": { - "UniqueId": "Cpp#StringResource" - }, - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Naming", - "FixCategory": "NonBreaking" - } + "name": "ItemsConverter", + "fullyQualifiedName": "microsoft.json.schema.dll!Microsoft.Json.Schema.ItemsConverter", + "parentIndex": 30, + "kind": "type" }, { - "ruleId": "CA1703", - "level": "warning", - "message": { - "text": "In resource 'Microsoft.CodeAnalysis.Sarif.Converters.ConverterResources.resx', referenced by name 'CppCheckErrorsElementMissing', correct the spelling of 'Cpp' in string value 'CppCheck file did not contain the errors element in the expected location.'.", - "messageId": "StringResource" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.ConverterResources.resources" - } - ], - "partialFingerprints": { - "UniqueId": "Cpp#StringResource" - }, - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Naming", - "FixCategory": "NonBreaking" - } + "name": "Instance", + "fullyQualifiedName": "microsoft.json.schema.dll!Microsoft.Json.Schema.ItemsConverter.Instance", + "parentIndex": 45, + "kind": "member" }, { - "ruleId": "CA1703", - "level": "warning", - "message": { - "text": "In resource 'Microsoft.CodeAnalysis.Sarif.Converters.ConverterResources.resx', referenced by name 'CppCheckLocationElementNameIncorrect', correct the spelling of 'Cpp' in string value 'Could not parse CppCheck location node; element name was not 'location'.'.", - "messageId": "StringResource" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.ConverterResources.resources" - } - ], - "partialFingerprints": { - "UniqueId": "Cpp#StringResource" - }, - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Naming", - "FixCategory": "NonBreaking" - } + "name": "WriteJson(Newtonsoft.Json.JsonWriter,System.Object,Newtonsoft.Json.JsonSerializer)", + "fullyQualifiedName": "microsoft.json.schema.dll!Microsoft.Json.Schema.ItemsConverter.WriteJson(Newtonsoft.Json.JsonWriter,System.Object,Newtonsoft.Json.JsonSerializer)", + "parentIndex": 45, + "kind": "member" }, { - "ruleId": "CA1703", - "level": "warning", - "message": { - "text": "In resource 'Microsoft.CodeAnalysis.Sarif.Converters.ConverterResources.resx', referenced by name 'CppCheckLocationMissingLine', correct the spelling of 'Cpp' in string value 'The `line` attribute for a CppCheck was not set.'.", - "messageId": "StringResource" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.ConverterResources.resources" - } - ], - "partialFingerprints": { - "UniqueId": "Cpp#StringResource" - }, - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Naming", - "FixCategory": "NonBreaking" - } + "name": "JsonSchema", + "fullyQualifiedName": "microsoft.json.schema.dll!Microsoft.Json.Schema.JsonSchema", + "parentIndex": 30, + "kind": "type" }, { - "ruleId": "CA1703", - "level": "warning", - "message": { - "text": "In resource 'Microsoft.CodeAnalysis.Sarif.Converters.ConverterResources.resx', referenced by name 'CppCheckLocationMissingName', correct the spelling of 'Cpp' in string value 'The `file` attribute for a CppCheck was not set.'.", - "messageId": "StringResource" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.ConverterResources.resources" - } - ], - "partialFingerprints": { - "UniqueId": "Cpp#StringResource" - }, - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Naming", - "FixCategory": "NonBreaking" - } + "name": ".ctor(Microsoft.Json.Schema.JsonSchema)", + "fullyQualifiedName": "microsoft.json.schema.dll!Microsoft.Json.Schema.JsonSchema..ctor(Microsoft.Json.Schema.JsonSchema)", + "parentIndex": 48, + "kind": "member" }, { - "ruleId": "CA1703", - "level": "warning", - "message": { - "text": "In resource 'Microsoft.CodeAnalysis.Sarif.Converters.ConverterResources.resx', referenced by name 'CppCheckLocationNameEmpty', correct the spelling of 'Cpp' in string value 'The `file` value for a CppCheckLocation was empty.'.", - "messageId": "StringResource" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.ConverterResources.resources" - } - ], - "partialFingerprints": { - "UniqueId": "Cpp#StringResource" - }, - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Naming", - "FixCategory": "NonBreaking" - } + "name": "AllOf", + "fullyQualifiedName": "microsoft.json.schema.dll!Microsoft.Json.Schema.JsonSchema.AllOf", + "parentIndex": 48, + "kind": "member" }, { - "ruleId": "CA1703", - "level": "warning", - "message": { - "text": "In resource 'Microsoft.CodeAnalysis.Sarif.Converters.ConverterResources.resx', referenced by name 'CppCheckLocationNegativeLine', correct the spelling of 'Cpp' in string value 'The `line` value for a CppCheckLocation must be positive.'.", - "messageId": "StringResource" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.ConverterResources.resources" - } - ], - "partialFingerprints": { - "UniqueId": "Cpp#StringResource" - }, - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Naming", - "FixCategory": "NonBreaking" - } + "name": "AnyOf", + "fullyQualifiedName": "microsoft.json.schema.dll!Microsoft.Json.Schema.JsonSchema.AnyOf", + "parentIndex": 48, + "kind": "member" }, { - "ruleId": "CA1703", - "level": "warning", - "message": { - "text": "In resource 'Microsoft.CodeAnalysis.Sarif.Converters.ConverterResources.resx', referenced by name 'CppCheckMissingLocation', correct the spelling of 'Cpp' in string value 'A CppCheck entry must have a nonzero number of locations.'.", - "messageId": "StringResource" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.ConverterResources.resources" - } - ], - "partialFingerprints": { - "UniqueId": "Cpp#StringResource" - }, - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Naming", - "FixCategory": "NonBreaking" - } + "name": "Collapse(Microsoft.Json.Schema.JsonSchema,Microsoft.Json.Schema.JsonSchema)", + "fullyQualifiedName": "microsoft.json.schema.dll!Microsoft.Json.Schema.JsonSchema.Collapse(Microsoft.Json.Schema.JsonSchema,Microsoft.Json.Schema.JsonSchema)", + "parentIndex": 48, + "kind": "member" }, { - "ruleId": "CA1703", - "level": "warning", - "message": { - "text": "In resource 'Microsoft.CodeAnalysis.Sarif.Converters.ConverterResources.resx', referenced by name 'CppCheckCppCheckElementMissing', correct the spelling of 'cppcheck' in string value 'CppCheck file did not start with \"results/cppcheck\" element with version information.'.", - "messageId": "StringResource" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.ConverterResources.resources" - } - ], - "partialFingerprints": { - "UniqueId": "cppcheck#StringResource" - }, - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Naming", - "FixCategory": "NonBreaking" - } + "name": "Definitions", + "fullyQualifiedName": "microsoft.json.schema.dll!Microsoft.Json.Schema.JsonSchema.Definitions", + "parentIndex": 48, + "kind": "member" }, { - "ruleId": "CA2243", - "level": "warning", - "message": { - "text": "In the constructor of 'AssemblyInformationalVersionAttribute', change the value of argument 'informationalVersion', which is currently \"2.0.0-csd.1.0.1\", to something that can be correctly parsed as 'Version'." - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.dll" - } - ], - "properties": { - "Category": "Microsoft.Usage", - "FixCategory": "NonBreaking" - } + "name": "Dependencies", + "fullyQualifiedName": "microsoft.json.schema.dll!Microsoft.Json.Schema.JsonSchema.Dependencies", + "parentIndex": 48, + "kind": "member" }, { - "ruleId": "CA1704", - "level": "warning", - "message": { - "text": "Correct the spelling of 'Sarif' in assembly name 'Sarif.dll'.", - "messageId": "Assembly" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.dll" - } - ], - "partialFingerprints": { - "UniqueId": "Sarif#Assembly" - }, - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" - } + "name": "Enum", + "fullyQualifiedName": "microsoft.json.schema.dll!Microsoft.Json.Schema.JsonSchema.Enum", + "parentIndex": 48, + "kind": "member" }, { - "ruleId": "CA2227", - "level": "warning", - "message": { - "text": "Change 'Attachment.Rectangles' to be read-only by removing the property setter." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/Attachment.cs" - }, - "region": { - "startLine": 56, - "snippet": { - "text": " public IList Rectangles { get; set; }" - } - }, - "contextRegion": { - "startLine": 55, - "startColumn": 1, - "endLine": 57, - "endColumn": 1, - "charOffset": 2005, - "charLength": 147, - "snippet": { - "text": " [DataMember(Name = \"rectangles\", IsRequired = false, EmitDefaultValue = false)]\r\n public IList Rectangles { get; set; }\r\n" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Attachment.Rectangles" - } - ], - "properties": { - "Category": "Microsoft.Usage", - "FixCategory": "Breaking" - } + "name": "Equals(Microsoft.Json.Schema.JsonSchema)", + "fullyQualifiedName": "microsoft.json.schema.dll!Microsoft.Json.Schema.JsonSchema.Equals(Microsoft.Json.Schema.JsonSchema)", + "parentIndex": 48, + "kind": "member" }, { - "ruleId": "CA2227", - "level": "warning", - "message": { - "text": "Change 'Attachment.Regions' to be read-only by removing the property setter." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/Attachment.cs" - }, - "region": { - "startLine": 50, - "snippet": { - "text": " public IList Regions { get; set; }" - } - }, - "contextRegion": { - "startLine": 49, - "startColumn": 1, - "endLine": 51, - "endColumn": 1, - "charOffset": 1735, - "charLength": 138, - "snippet": { - "text": " [DataMember(Name = \"regions\", IsRequired = false, EmitDefaultValue = false)]\r\n public IList Regions { get; set; }\r\n" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Attachment.Regions" - } - ], - "properties": { - "Category": "Microsoft.Usage", - "FixCategory": "Breaking" - } + "name": "OneOf", + "fullyQualifiedName": "microsoft.json.schema.dll!Microsoft.Json.Schema.JsonSchema.OneOf", + "parentIndex": 48, + "kind": "member" }, { - "ruleId": "CA2214", - "level": "warning", - "message": { - "text": "'CodeFlow.CodeFlow(CodeFlow)' contains a call chain that results in a call to a virtual method defined by the class. Review the following call stack for unintended consequences: \r\n\r\nCodeFlow..ctor(CodeFlow)\r\nCodeFlow.Init(Message, IEnumerable, IDictionary):Void\r\nPropertyBagHolder.set_Properties(IDictionary):Void" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/CodeFlow.cs" - }, - "region": { - "startLine": 86, - "snippet": { - "text": " public CodeFlow(CodeFlow other)" - } - }, - "contextRegion": { - "startLine": 85, - "startColumn": 1, - "endLine": 87, - "endColumn": 10, - "charOffset": 3488, - "charLength": 76, - "snippet": { - "text": " /// \r\n public CodeFlow(CodeFlow other)\r\n {" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.CodeFlow..ctor(Microsoft.CodeAnalysis.Sarif.CodeFlow)" - } - ], - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Usage", - "FixCategory": "NonBreaking" - } + "name": "PatternProperties", + "fullyQualifiedName": "microsoft.json.schema.dll!Microsoft.Json.Schema.JsonSchema.PatternProperties", + "parentIndex": 48, + "kind": "member" }, { - "ruleId": "CA2214", - "level": "warning", - "message": { - "text": "'CodeFlow.CodeFlow(Message, IEnumerable, IDictionary)' contains a call chain that results in a call to a virtual method defined by the class. Review the following call stack for unintended consequences: \r\n\r\nCodeFlow..ctor(Message, IEnumerable, IDictionary)\r\nCodeFlow.Init(Message, IEnumerable, IDictionary):Void\r\nPropertyBagHolder.set_Properties(IDictionary):Void" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/CodeFlow.cs" - }, - "region": { - "startLine": 72, - "snippet": { - "text": " public CodeFlow(Message message, IEnumerable threadFlows, IDictionary properties)" - } - }, - "contextRegion": { - "startLine": 71, - "startColumn": 1, - "endLine": 73, - "endColumn": 10, - "charOffset": 2857, - "charLength": 166, - "snippet": { - "text": " /// \r\n public CodeFlow(Message message, IEnumerable threadFlows, IDictionary properties)\r\n {" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.CodeFlow..ctor(Microsoft.CodeAnalysis.Sarif.Message,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IDictionary`2)" - } - ], - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Usage", - "FixCategory": "NonBreaking" - } + "name": "Properties", + "fullyQualifiedName": "microsoft.json.schema.dll!Microsoft.Json.Schema.JsonSchema.Properties", + "parentIndex": 48, + "kind": "member" }, { - "ruleId": "CA2227", - "level": "warning", - "message": { - "text": "Change 'CodeFlow.ThreadFlows' to be read-only by removing the property setter." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/CodeFlow.cs" - }, - "region": { - "startLine": 45, - "snippet": { - "text": " public IList ThreadFlows { get; set; }" - } - }, - "contextRegion": { - "startLine": 44, - "startColumn": 1, - "endLine": 46, - "endColumn": 1, - "charOffset": 1677, - "charLength": 123, - "snippet": { - "text": " [DataMember(Name = \"threadFlows\", IsRequired = true)]\r\n public IList ThreadFlows { get; set; }\r\n" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.CodeFlow.ThreadFlows" - } - ], - "properties": { - "Category": "Microsoft.Usage", - "FixCategory": "Breaking" - } + "name": "Required", + "fullyQualifiedName": "microsoft.json.schema.dll!Microsoft.Json.Schema.JsonSchema.Required", + "parentIndex": 48, + "kind": "member" }, { - "ruleId": "CA1822", - "level": "warning", - "message": { - "text": "The 'this' parameter (or 'Me' in Visual Basic) of 'ConsoleLogger.FormatNotificationMessage(Notification)' is never used. Mark the member as static (or Shared in Visual Basic) or use 'this'/'Me' in the method body or at least one property accessor, if appropriate." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/ConsoleLogger.cs" - }, - "region": { - "startLine": 257, - "snippet": { - "text": " {" - } - }, - "contextRegion": { - "startLine": 256, - "startColumn": 1, - "endLine": 258, - "endColumn": 37, - "charOffset": 8264, - "charLength": 124, - "snippet": { - "text": " private string FormatNotificationMessage(Notification notification)\r\n {\r\n string issueType = null;" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.ConsoleLogger.FormatNotificationMessage(Microsoft.CodeAnalysis.Sarif.Notification)" - } - ], - "properties": { - "Category": "Microsoft.Performance", - "FixCategory": "NonBreaking" - } + "name": "Type", + "fullyQualifiedName": "microsoft.json.schema.dll!Microsoft.Json.Schema.JsonSchema.Type", + "parentIndex": 48, + "kind": "member" }, { - "ruleId": "CA1704", - "level": "warning", - "message": { - "text": "In method 'ConsoleLogger.NormalizeMessage(string, bool)', correct the spelling of 'enquote' in parameter name 'enquote' or remove it entirely if it represents any sort of Hungarian notation.", - "messageId": "MemberParameter" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/ConsoleLogger.cs" - }, - "region": { - "startLine": 212, - "snippet": { - "text": " {" - } - }, - "contextRegion": { - "startLine": 211, - "startColumn": 1, - "endLine": 213, - "endColumn": 33, - "charOffset": 6816, - "charLength": 120, - "snippet": { - "text": " public static string NormalizeMessage(string message, bool enquote)\r\n {\r\n if (message == null)" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.ConsoleLogger.NormalizeMessage(System.String,System.Boolean)" - } - ], - "partialFingerprints": { - "UniqueId": "enquote#MemberParameter" - }, - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" - } + "name": "JsonSchemaContractResolver", + "fullyQualifiedName": "microsoft.json.schema.dll!Microsoft.Json.Schema.JsonSchemaContractResolver", + "parentIndex": 30, + "kind": "type" }, { - "ruleId": "CA2227", - "level": "warning", - "message": { - "text": "Change 'Conversion.AnalysisToolLogFiles' to be read-only by removing the property setter." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/Conversion.cs" - }, - "region": { - "startLine": 50, - "snippet": { - "text": " public IList AnalysisToolLogFiles { get; set; }" - } - }, - "contextRegion": { - "startLine": 49, - "startColumn": 1, - "endLine": 51, - "endColumn": 1, - "charOffset": 1829, - "charLength": 170, - "snippet": { - "text": " [DataMember(Name = \"analysisToolLogFiles\", IsRequired = false, EmitDefaultValue = false)]\r\n public IList AnalysisToolLogFiles { get; set; }\r\n" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Conversion.AnalysisToolLogFiles" - } - ], - "properties": { - "Category": "Microsoft.Usage", - "FixCategory": "Breaking" - } + "name": "ResolveContract(System.Type)", + "fullyQualifiedName": "microsoft.json.schema.dll!Microsoft.Json.Schema.JsonSchemaContractResolver.ResolveContract(System.Type)", + "parentIndex": 62, + "kind": "member" }, { - "ruleId": "CA2214", - "level": "warning", - "message": { - "text": "'Edge.Edge(Edge)' contains a call chain that results in a call to a virtual method defined by the class. Review the following call stack for unintended consequences: \r\n\r\nEdge..ctor(Edge)\r\nEdge.Init(String, Message, String, String, IDictionary):Void\r\nPropertyBagHolder.set_Properties(IDictionary):Void" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/Edge.cs" - }, - "region": { - "startLine": 104, - "snippet": { - "text": " public Edge(Edge other)" - } - }, - "contextRegion": { - "startLine": 103, - "startColumn": 1, - "endLine": 105, - "endColumn": 10, - "charOffset": 4054, - "charLength": 68, - "snippet": { - "text": " /// \r\n public Edge(Edge other)\r\n {" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Edge..ctor(Microsoft.CodeAnalysis.Sarif.Edge)" - } - ], - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Usage", - "FixCategory": "NonBreaking" - } + "name": "JsonSchemaExtensions", + "fullyQualifiedName": "microsoft.json.schema.dll!Microsoft.Json.Schema.JsonSchemaExtensions", + "parentIndex": 30, + "kind": "type" }, { - "ruleId": "CA2214", - "level": "warning", - "message": { - "text": "'Edge.Edge(string, Message, string, string, IDictionary)' contains a call chain that results in a call to a virtual method defined by the class. Review the following call stack for unintended consequences: \r\n\r\nEdge..ctor(String, Message, String, String, IDictionary)\r\nEdge.Init(String, Message, String, String, IDictionary):Void\r\nPropertyBagHolder.set_Properties(IDictionary):Void" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/Edge.cs" - }, - "region": { - "startLine": 90, - "snippet": { - "text": " public Edge(string id, Message label, string sourceNodeId, string targetNodeId, IDictionary properties)" - } - }, - "contextRegion": { - "startLine": 89, - "startColumn": 1, - "endLine": 91, - "endColumn": 10, - "charOffset": 3400, - "charLength": 176, - "snippet": { - "text": " /// \r\n public Edge(string id, Message label, string sourceNodeId, string targetNodeId, IDictionary properties)\r\n {" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Edge..ctor(System.String,Microsoft.CodeAnalysis.Sarif.Message,System.String,System.String,System.Collections.Generic.IDictionary`2)" - } - ], - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Usage", - "FixCategory": "NonBreaking" - } + "name": "SafeGetType(Microsoft.Json.Schema.JsonSchema)", + "fullyQualifiedName": "microsoft.json.schema.dll!Microsoft.Json.Schema.JsonSchemaExtensions.SafeGetType(Microsoft.Json.Schema.JsonSchema)", + "parentIndex": 64, + "kind": "member" }, { - "ruleId": "CA2214", - "level": "warning", - "message": { - "text": "'EdgeTraversal.EdgeTraversal(EdgeTraversal)' contains a call chain that results in a call to a virtual method defined by the class. Review the following call stack for unintended consequences: \r\n\r\nEdgeTraversal..ctor(EdgeTraversal)\r\nEdgeTraversal.Init(String, Message, IDictionary, Int32, IDictionary):Void\r\nPropertyBagHolder.set_Properties(IDictionary):Void" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/EdgeTraversal.cs" - }, - "region": { - "startLine": 104, - "snippet": { - "text": " public EdgeTraversal(EdgeTraversal other)" - } - }, - "contextRegion": { - "startLine": 103, - "startColumn": 1, - "endLine": 105, - "endColumn": 10, - "charOffset": 4354, - "charLength": 86, - "snippet": { - "text": " /// \r\n public EdgeTraversal(EdgeTraversal other)\r\n {" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.EdgeTraversal..ctor(Microsoft.CodeAnalysis.Sarif.EdgeTraversal)" - } - ], - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Usage", - "FixCategory": "NonBreaking" - } + "name": "JsonSerializerExtensions", + "fullyQualifiedName": "microsoft.json.schema.dll!Microsoft.Json.Schema.JsonSerializerExtensions", + "parentIndex": 30, + "kind": "type" }, { - "ruleId": "CA2214", - "level": "warning", - "message": { - "text": "'EdgeTraversal.EdgeTraversal(string, Message, IDictionary, int, IDictionary)' contains a call chain that results in a call to a virtual method defined by the class. Review the following call stack for unintended consequences: \r\n\r\nEdgeTraversal..ctor(String, Message, IDictionary, Int32, IDictionary)\r\nEdgeTraversal.Init(String, Message, IDictionary, Int32, IDictionary):Void\r\nPropertyBagHolder.set_Properties(IDictionary):Void" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/EdgeTraversal.cs" - }, - "region": { - "startLine": 90, - "snippet": { - "text": " public EdgeTraversal(string edgeId, Message message, IDictionary finalState, int stepOverEdgeCount, IDictionary properties)" - } - }, - "contextRegion": { - "startLine": 89, - "startColumn": 1, - "endLine": 91, - "endColumn": 10, - "charOffset": 3646, - "charLength": 212, - "snippet": { - "text": " /// \r\n public EdgeTraversal(string edgeId, Message message, IDictionary finalState, int stepOverEdgeCount, IDictionary properties)\r\n {" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.EdgeTraversal..ctor(System.String,Microsoft.CodeAnalysis.Sarif.Message,System.Collections.Generic.IDictionary`2,System.Int32,System.Collections.Generic.IDictionary`2)" - } - ], - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Usage", - "FixCategory": "NonBreaking" - } + "name": "CaptureError(Newtonsoft.Json.JsonSerializer,Newtonsoft.Json.Linq.JToken,Microsoft.Json.Schema.ErrorNumber,System.Object[])", + "fullyQualifiedName": "microsoft.json.schema.dll!Microsoft.Json.Schema.JsonSerializerExtensions.CaptureError(Newtonsoft.Json.JsonSerializer,Newtonsoft.Json.Linq.JToken,Microsoft.Json.Schema.ErrorNumber,System.Object[])", + "parentIndex": 66, + "kind": "member" }, { - "ruleId": "CA2227", - "level": "warning", - "message": { - "text": "Change 'EdgeTraversal.FinalState' to be read-only by removing the property setter." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/EdgeTraversal.cs" - }, - "region": { - "startLine": 51, - "snippet": { - "text": " public IDictionary FinalState { get; set; }" - } - }, - "contextRegion": { - "startLine": 50, - "startColumn": 1, - "endLine": 52, - "endColumn": 1, - "charOffset": 1836, - "charLength": 158, - "snippet": { - "text": " [DataMember(Name = \"finalState\", IsRequired = false, EmitDefaultValue = false)]\r\n public IDictionary FinalState { get; set; }\r\n" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.EdgeTraversal.FinalState" - } - ], - "properties": { - "Category": "Microsoft.Usage", - "FixCategory": "Breaking" - } + "name": "JsonSyntaxException", + "fullyQualifiedName": "microsoft.json.schema.dll!Microsoft.Json.Schema.JsonSyntaxException", + "parentIndex": 30, + "kind": "type" }, { - "ruleId": "CA1062", - "level": "warning", - "message": { - "text": "In externally visible method 'ExceptionData.Create(Exception)', validate parameter 'exception' before using it." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Core/ExceptionData.cs" - }, - "region": { - "startLine": 16, - "snippet": { - "text": " return new ExceptionData" - } - }, - "contextRegion": { - "startLine": 15, - "startColumn": 1, - "endLine": 17, - "endColumn": 14, - "charOffset": 529, - "charLength": 62, - "snippet": { - "text": " {\r\n return new ExceptionData\r\n {" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.ExceptionData.Create(System.Exception)" - } - ], - "partialFingerprints": { - "UniqueId": "0" - }, - "properties": { - "Category": "Microsoft.Design", - "FixCategory": "DependsOnFix" - } + "name": ".ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)", + "fullyQualifiedName": "microsoft.json.schema.dll!Microsoft.Json.Schema.JsonSyntaxException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)", + "parentIndex": 68, + "kind": "member" }, { - "ruleId": "CA2227", - "level": "warning", - "message": { - "text": "Change 'ExceptionData.InnerExceptions' to be read-only by removing the property setter." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/ExceptionData.cs" - }, - "region": { - "startLine": 53, - "snippet": { - "text": " public IList InnerExceptions { get; set; }" - } - }, - "contextRegion": { - "startLine": 52, - "startColumn": 1, - "endLine": 54, - "endColumn": 1, - "charOffset": 2038, - "charLength": 161, - "snippet": { - "text": " [DataMember(Name = \"innerExceptions\", IsRequired = false, EmitDefaultValue = false)]\r\n public IList InnerExceptions { get; set; }\r\n" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.ExceptionData.InnerExceptions" - } - ], - "properties": { - "Category": "Microsoft.Usage", - "FixCategory": "Breaking" - } + "name": "JTokenTypeExtensions", + "fullyQualifiedName": "microsoft.json.schema.dll!Microsoft.Json.Schema.JTokenTypeExtensions", + "parentIndex": 30, + "kind": "type" }, { - "ruleId": "CA1062", - "level": "warning", - "message": { - "text": "In externally visible method 'ExtensionMethods.GetFileName(this Uri)', validate parameter 'uri' before using it." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/ExtensionMethods.cs" - }, - "region": { - "startLine": 46, - "snippet": { - "text": " if (!uri.IsAbsoluteUri)" - } - }, - "contextRegion": { - "startLine": 45, - "startColumn": 1, - "endLine": 47, - "endColumn": 14, - "charOffset": 1580, - "charLength": 61, - "snippet": { - "text": " {\r\n if (!uri.IsAbsoluteUri)\r\n {" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.ExtensionMethods.GetFileName(System.Uri)" - } - ], - "partialFingerprints": { - "UniqueId": "0" - }, - "properties": { - "Category": "Microsoft.Design", - "FixCategory": "DependsOnFix" - } + "name": "ToSchemaType(Newtonsoft.Json.Linq.JTokenType)", + "fullyQualifiedName": "microsoft.json.schema.dll!Microsoft.Json.Schema.JTokenTypeExtensions.ToSchemaType(Newtonsoft.Json.Linq.JTokenType)", + "parentIndex": 70, + "kind": "member" }, { - "ruleId": "CA1726", - "level": "error", - "message": { - "text": "Replace the term 'Flags' in member name 'ExtensionMethods.ToFlags(this IEnumerable)' with an appropriate alternate or remove it entirely.", - "messageId": "MemberNoAlternate" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/ExtensionMethods.cs" - }, - "region": { - "startLine": 24, - "snippet": { - "text": " {" - } - }, - "contextRegion": { - "startLine": 23, - "startColumn": 1, - "endLine": 25, - "endColumn": 81, - "charOffset": 604, - "charLength": 207, - "snippet": { - "text": " public static OptionallyEmittedData ToFlags(this IEnumerable optionallyEmittedData)\r\n {\r\n OptionallyEmittedData convertedToFlags = OptionallyEmittedData.None;" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.ExtensionMethods.ToFlags(System.Collections.Generic.IEnumerable`1)" - } - ], - "partialFingerprints": { - "UniqueId": "Flags#MemberNoAlternate" - }, - "properties": { - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" - } + "name": "MustBeStringConverter", + "fullyQualifiedName": "microsoft.json.schema.dll!Microsoft.Json.Schema.MustBeStringConverter", + "parentIndex": 30, + "kind": "type" }, { - "ruleId": "CA2227", - "level": "warning", - "message": { - "text": "Change 'FileChange.Replacements' to be read-only by removing the property setter." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/FileChange.cs" - }, - "region": { - "startLine": 44, - "snippet": { - "text": " public IList Replacements { get; set; }" - } - }, - "contextRegion": { - "startLine": 43, - "startColumn": 1, - "endLine": 45, - "endColumn": 1, - "charOffset": 1574, - "charLength": 126, - "snippet": { - "text": " [DataMember(Name = \"replacements\", IsRequired = true)]\r\n public IList Replacements { get; set; }\r\n" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.FileChange.Replacements" - } - ], - "properties": { - "Category": "Microsoft.Usage", - "FixCategory": "Breaking" - } + "name": "CanConvert(System.Type)", + "fullyQualifiedName": "microsoft.json.schema.dll!Microsoft.Json.Schema.MustBeStringConverter.CanConvert(System.Type)", + "parentIndex": 72, + "kind": "member" }, { - "ruleId": "CA2214", - "level": "warning", - "message": { - "text": "'FileData.FileData(FileData)' contains a call chain that results in a call to a virtual method defined by the class. Review the following call stack for unintended consequences: \r\n\r\nFileData..ctor(FileData)\r\nFileData.Init(FileLocation, String, Int32, Int32, FileRoles, String, FileContent, String, IEnumerable, DateTime, IDictionary):Void\r\nPropertyBagHolder.set_Properties(IDictionary):Void" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/FileData.cs" - }, - "region": { - "startLine": 158, - "snippet": { - "text": " public FileData(FileData other)" - } - }, - "contextRegion": { - "startLine": 157, - "startColumn": 1, - "endLine": 159, - "endColumn": 10, - "charOffset": 6951, - "charLength": 76, - "snippet": { - "text": " /// \r\n public FileData(FileData other)\r\n {" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.FileData..ctor(Microsoft.CodeAnalysis.Sarif.FileData)" - } - ], - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Usage", - "FixCategory": "NonBreaking" - } + "name": "ReadJson(Newtonsoft.Json.JsonReader,System.Type,System.Object,Newtonsoft.Json.JsonSerializer)", + "fullyQualifiedName": "microsoft.json.schema.dll!Microsoft.Json.Schema.MustBeStringConverter.ReadJson(Newtonsoft.Json.JsonReader,System.Type,System.Object,Newtonsoft.Json.JsonSerializer)", + "parentIndex": 72, + "kind": "member" }, { - "ruleId": "CA2214", - "level": "warning", - "message": { - "text": "'FileData.FileData(FileLocation, string, int, int, FileRoles, string, FileContent, string, IEnumerable, DateTime, IDictionary)' contains a call chain that results in a call to a virtual method defined by the class. Review the following call stack for unintended consequences: \r\n\r\nFileData..ctor(FileLocation, String, Int32, Int32, FileRoles, String, FileContent, String, IEnumerable, DateTime, IDictionary)\r\nFileData.Init(FileLocation, String, Int32, Int32, FileRoles, String, FileContent, String, IEnumerable, DateTime, IDictionary):Void\r\nPropertyBagHolder.set_Properties(IDictionary):Void" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/FileData.cs" - }, - "region": { - "startLine": 144, - "snippet": { - "text": " public FileData(FileLocation fileLocation, string parentKey, int offset, int length, FileRoles roles, string mimeType, FileContent contents, string encoding, IEnumerable hashes, DateTime lastModifiedTime, IDictionary properties)" - } - }, - "contextRegion": { - "startLine": 143, - "startColumn": 1, - "endLine": 145, - "endColumn": 10, - "charOffset": 6097, - "charLength": 307, - "snippet": { - "text": " /// \r\n public FileData(FileLocation fileLocation, string parentKey, int offset, int length, FileRoles roles, string mimeType, FileContent contents, string encoding, IEnumerable hashes, DateTime lastModifiedTime, IDictionary properties)\r\n {" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.FileData..ctor(Microsoft.CodeAnalysis.Sarif.FileLocation,System.String,System.Int32,System.Int32,Microsoft.CodeAnalysis.Sarif.FileRoles,System.String,Microsoft.CodeAnalysis.Sarif.FileContent,System.String,System.Collections.Generic.IEnumerable`1,System.DateTime,System.Collections.Generic.IDictionary`2)" - } - ], - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Usage", - "FixCategory": "NonBreaking" - } + "name": "RefProperty", + "fullyQualifiedName": "microsoft.json.schema.dll!Microsoft.Json.Schema.RefProperty", + "parentIndex": 30, + "kind": "type" }, { - "ruleId": "CA1026", - "level": "error", - "message": { - "text": "Replace method 'FileData.Create(Uri, OptionallyEmittedData, string, Encoding, IFileSystem)' with an overload that supplies all default arguments." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Core/FileData.cs" - }, - "region": { - "startLine": 23, - "snippet": { - "text": " {" - } - }, - "contextRegion": { - "startLine": 22, - "startColumn": 1, - "endLine": 24, - "endColumn": 79, - "charOffset": 759, - "charLength": 133, - "snippet": { - "text": " IFileSystem fileSystem = null)\r\n {\r\n if (uri == null) { throw new ArgumentNullException(nameof(uri)); }" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.FileData.Create(System.Uri,Microsoft.CodeAnalysis.Sarif.OptionallyEmittedData,System.String,System.Text.Encoding,Microsoft.CodeAnalysis.Sarif.IFileSystem)" - } - ], - "properties": { - "Category": "Microsoft.Design", - "FixCategory": "Breaking" - } + "name": "s_inputPattern", + "fullyQualifiedName": "microsoft.json.schema.dll!Microsoft.Json.Schema.RefProperty.s_inputPattern", + "parentIndex": 75, + "kind": "member" }, { - "ruleId": "CA2227", - "level": "warning", - "message": { - "text": "Change 'FileData.Hashes' to be read-only by removing the property setter." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/FileData.cs" - }, - "region": { - "startLine": 87, - "snippet": { - "text": " public IList Hashes { get; set; }" - } - }, - "contextRegion": { - "startLine": 86, - "startColumn": 1, - "endLine": 88, - "endColumn": 1, - "charOffset": 3432, - "charLength": 134, - "snippet": { - "text": " [DataMember(Name = \"hashes\", IsRequired = false, EmitDefaultValue = false)]\r\n public IList Hashes { get; set; }\r\n" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.FileData.Hashes" - } - ], - "properties": { - "Category": "Microsoft.Usage", - "FixCategory": "Breaking" - } + "name": "s_outputPattern", + "fullyQualifiedName": "microsoft.json.schema.dll!Microsoft.Json.Schema.RefProperty.s_outputPattern", + "parentIndex": 75, + "kind": "member" }, { - "ruleId": "CA1502", - "level": "warning", - "message": { - "text": "'FileDataEqualityComparer.Equals(FileData, FileData)' has a cyclomatic complexity of 27. Rewrite or refactor the method to reduce complexity to 25." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/FileDataEqualityComparer.cs" - }, - "region": { - "startLine": 20, - "snippet": { - "text": " {" - } - }, - "contextRegion": { - "startLine": 19, - "startColumn": 1, - "endLine": 21, - "endColumn": 46, - "charOffset": 720, - "charLength": 115, - "snippet": { - "text": " public bool Equals(FileData left, FileData right)\r\n {\r\n if (ReferenceEquals(left, right))" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.FileDataEqualityComparer.Equals(Microsoft.CodeAnalysis.Sarif.FileData,Microsoft.CodeAnalysis.Sarif.FileData)" - } - ], - "properties": { - "Category": "Microsoft.Maintainability", - "FixCategory": "NonBreaking" - } + "name": "SchemaReader", + "fullyQualifiedName": "microsoft.json.schema.dll!Microsoft.Json.Schema.SchemaReader", + "parentIndex": 30, + "kind": "type" }, { - "ruleId": "CA1054", - "level": "error", - "message": { - "text": "Change the type of parameter 'uriBaseId' of method 'FileLocation.FileLocation(Uri, string)' from string to System.Uri, or provide an overload of 'FileLocation.FileLocation(Uri, string)', that allows 'uriBaseId' to be passed as a System.Uri object." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/FileLocation.cs" - }, - "region": { - "startLine": 62, - "snippet": { - "text": " public FileLocation(Uri uri, string uriBaseId)" - } - }, - "contextRegion": { - "startLine": 61, - "startColumn": 1, - "endLine": 63, - "endColumn": 10, - "charOffset": 2263, - "charLength": 87, - "snippet": { - "text": " /// \r\n public FileLocation(Uri uri, string uriBaseId)\r\n {" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.FileLocation..ctor(System.Uri,System.String)" - } - ], - "partialFingerprints": { - "UniqueId": "1#" - }, - "properties": { - "Category": "Microsoft.Design", - "FixCategory": "Breaking" - } + "name": "ReadSchema(System.IO.TextReader,System.String)", + "fullyQualifiedName": "microsoft.json.schema.dll!Microsoft.Json.Schema.SchemaReader.ReadSchema(System.IO.TextReader,System.String)", + "parentIndex": 78, + "kind": "member" }, { - "ruleId": "CA1307", - "level": "error", - "message": { - "text": "Because the behavior of 'string.StartsWith(string)' could vary based on the current user's locale settings, replace this call in 'FileLocation.CreateFromFilesDictionaryKey(string)' with a call to 'string.StartsWith(string, StringComparison)'. If the result of 'string.StartsWith(string, StringComparison)' will be displayed to the user, such as when sorting a list of items for display in a list box, specify 'StringComparison.CurrentCulture' or 'StringComparison.CurrentCultureIgnoreCase' as the 'StringComparison' parameter. If comparing case-insensitive identifiers, such as file paths, environment variables, or registry keys and values, specify 'StringComparison.OrdinalIgnoreCase'. Otherwise, if comparing case-sensitive identifiers, specify 'StringComparison.Ordinal'." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Core/FileLocation.cs" - }, - "region": { - "startLine": 53, - "snippet": { - "text": " if (key.StartsWith(\"#\"))" - } - }, - "contextRegion": { - "startLine": 52, - "startColumn": 1, - "endLine": 54, - "endColumn": 14, - "charOffset": 2317, - "charLength": 53, - "snippet": { - "text": "\r\n if (key.StartsWith(\"#\"))\r\n {" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.FileLocation.CreateFromFilesDictionaryKey(System.String)" - } - ], - "partialFingerprints": { - "UniqueId": "System.String.StartsWith(System.String)" - }, - "properties": { - "Category": "Microsoft.Globalization", - "FixCategory": "NonBreaking" - } + "name": "ReadSchema(System.String,System.String)", + "fullyQualifiedName": "microsoft.json.schema.dll!Microsoft.Json.Schema.SchemaReader.ReadSchema(System.String,System.String)", + "parentIndex": 78, + "kind": "member" }, { - "ruleId": "CA1062", - "level": "warning", - "message": { - "text": "In externally visible method 'FileLocation.CreateFromFilesDictionaryKey(string)', validate parameter 'key' before using it." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Core/FileLocation.cs" - }, - "region": { - "startLine": 53, - "snippet": { - "text": " if (key.StartsWith(\"#\"))" - } - }, - "contextRegion": { - "startLine": 52, - "startColumn": 1, - "endLine": 54, - "endColumn": 14, - "charOffset": 2317, - "charLength": 53, - "snippet": { - "text": "\r\n if (key.StartsWith(\"#\"))\r\n {" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.FileLocation.CreateFromFilesDictionaryKey(System.String)" - } - ], - "partialFingerprints": { - "UniqueId": "0" - }, - "properties": { - "Category": "Microsoft.Design", - "FixCategory": "DependsOnFix" - } + "name": "SchemaTypeConverter", + "fullyQualifiedName": "microsoft.json.schema.dll!Microsoft.Json.Schema.SchemaTypeConverter", + "parentIndex": 30, + "kind": "type" }, { - "ruleId": "CA2234", - "level": "warning", - "message": { - "text": "Modify 'FileLocation.TryReconstructAbsoluteUri(IDictionary, out Uri)' to call 'Uri.Uri(Uri, Uri)' instead of 'Uri.Uri(Uri, string)'." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Core/FileLocation.cs" - }, - "region": { - "startLine": 22, - "snippet": { - "text": " {" - } - }, - "contextRegion": { - "startLine": 21, - "startColumn": 1, - "endLine": 23, - "endColumn": 68, - "charOffset": 1049, - "charLength": 191, - "snippet": { - "text": " public bool TryReconstructAbsoluteUri(IDictionary originalUriBaseIds, out Uri resolvedUri)\r\n {\r\n resolvedUri = this.Uri.IsAbsoluteUri ? this.Uri : null;" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.FileLocation.TryReconstructAbsoluteUri(System.Collections.Generic.IDictionary`2,System.Uri&)" - } - ], - "properties": { - "Category": "Microsoft.Usage", - "FixCategory": "NonBreaking" - } + "name": "SchemaTypeFromString(System.String)", + "fullyQualifiedName": "microsoft.json.schema.dll!Microsoft.Json.Schema.SchemaTypeConverter.SchemaTypeFromString(System.String)", + "parentIndex": 81, + "kind": "member" }, { - "ruleId": "CA1056", - "level": "error", - "message": { - "text": "Change the type of property 'FileLocation.UriBaseId' from string to System.Uri." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/FileLocation.cs" - }, - "region": { - "startLine": 44, - "snippet": { - "text": " public string UriBaseId { get; set; }" - } - }, - "contextRegion": { - "startLine": 43, - "startColumn": 1, - "endLine": 45, - "endColumn": 1, - "charOffset": 1536, - "charLength": 135, - "snippet": { - "text": " [DataMember(Name = \"uriBaseId\", IsRequired = false, EmitDefaultValue = false)]\r\n public string UriBaseId { get; set; }\r\n" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.FileLocation.UriBaseId" - } - ], - "properties": { - "Category": "Microsoft.Design", - "FixCategory": "Breaking" - } + "name": "WriteJson(Newtonsoft.Json.JsonWriter,System.Object,Newtonsoft.Json.JsonSerializer)", + "fullyQualifiedName": "microsoft.json.schema.dll!Microsoft.Json.Schema.SchemaTypeConverter.WriteJson(Newtonsoft.Json.JsonWriter,System.Object,Newtonsoft.Json.JsonSerializer)", + "parentIndex": 81, + "kind": "member" }, { - "ruleId": "CA1823", - "level": "warning", - "message": { - "text": "It appears that field 'FileRegionsCache._filePathToNewLineIndexMap' is never used or is only ever assigned to. Use this field or remove it." - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.FileRegionsCache._filePathToNewLineIndexMap" - } - ], - "properties": { - "Category": "Microsoft.Performance", - "FixCategory": "NonBreaking" - } + "name": "SchemaTypeConverter+<>c", + "fullyQualifiedName": "microsoft.json.schema.dll!Microsoft.Json.Schema.SchemaTypeConverter+<>c", + "parentIndex": 30, + "kind": "type" }, { - "ruleId": "CA1823", - "level": "warning", - "message": { - "text": "It appears that field 'FileRegionsCache._run' is never used or is only ever assigned to. Use this field or remove it." - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.FileRegionsCache._run" - } - ], - "properties": { - "Category": "Microsoft.Performance", - "FixCategory": "NonBreaking" - } + "name": "b__3_0(Microsoft.Json.Schema.SchemaType)", + "fullyQualifiedName": "microsoft.json.schema.dll!Microsoft.Json.Schema.SchemaTypeConverter+<>c.b__3_0(Microsoft.Json.Schema.SchemaType)", + "parentIndex": 84, + "kind": "member" }, { - "ruleId": "CA1822", - "level": "warning", - "message": { - "text": "The 'this' parameter (or 'Me' in Visual Basic) of 'FileRegionsCache.PopulateCharLength(NewLineIndex, Region)' is never used. Mark the member as static (or Shared in Visual Basic) or use 'this'/'Me' in the method body or at least one property accessor, if appropriate." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/FileRegionsCache.cs" - }, - "region": { - "startLine": 259, - "snippet": { - "text": " {" - } - }, - "contextRegion": { - "startLine": 258, - "startColumn": 1, - "endLine": 260, - "endColumn": 95, - "charOffset": 11630, - "charLength": 185, - "snippet": { - "text": " private void PopulateCharLength(NewLineIndex lineIndex, Region region)\r\n {\r\n // Populated at this point: StartLine, EndLine, StartColumn, EndColumn, CharOffset" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.FileRegionsCache.PopulateCharLength(Microsoft.CodeAnalysis.Sarif.NewLineIndex,Microsoft.CodeAnalysis.Sarif.Region)" - } - ], - "properties": { - "Category": "Microsoft.Performance", - "FixCategory": "NonBreaking" - } + "name": "SchemaValidationException", + "fullyQualifiedName": "microsoft.json.schema.dll!Microsoft.Json.Schema.SchemaValidationException", + "parentIndex": 30, + "kind": "type" }, { - "ruleId": "CA1822", - "level": "warning", - "message": { - "text": "The 'this' parameter (or 'Me' in Visual Basic) of 'FileRegionsCache.PopulateEndColumn(NewLineIndex, Region, string)' is never used. Mark the member as static (or Shared in Visual Basic) or use 'this'/'Me' in the method body or at least one property accessor, if appropriate." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/FileRegionsCache.cs" - }, - "region": { - "startLine": 213, - "snippet": { - "text": " {" - } - }, - "contextRegion": { - "startLine": 212, - "startColumn": 1, - "endLine": 214, - "endColumn": 72, - "charOffset": 9732, - "charLength": 178, - "snippet": { - "text": " private void PopulateEndColumn(NewLineIndex lineIndex, Region region, string fileText)\r\n {\r\n // Populated at this point: StartLine, EndLine, StartColumn" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.FileRegionsCache.PopulateEndColumn(Microsoft.CodeAnalysis.Sarif.NewLineIndex,Microsoft.CodeAnalysis.Sarif.Region,System.String)" - } - ], - "properties": { - "Category": "Microsoft.Performance", - "FixCategory": "NonBreaking" - } + "name": ".ctor(Newtonsoft.Json.Linq.JToken,Microsoft.Json.Schema.ErrorNumber,System.Object[])", + "fullyQualifiedName": "microsoft.json.schema.dll!Microsoft.Json.Schema.SchemaValidationException..ctor(Newtonsoft.Json.Linq.JToken,Microsoft.Json.Schema.ErrorNumber,System.Object[])", + "parentIndex": 86, + "kind": "member" }, { - "ruleId": "CA1822", - "level": "warning", - "message": { - "text": "The 'this' parameter (or 'Me' in Visual Basic) of 'FileRegionsCache.PopulatePropertiesFromCharOffsetAndLength(NewLineIndex, Region)' is never used. Mark the member as static (or Shared in Visual Basic) or use 'this'/'Me' in the method body or at least one property accessor, if appropriate." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/FileRegionsCache.cs" - }, - "region": { - "startLine": 129, - "snippet": { - "text": " {" - } - }, - "contextRegion": { - "startLine": 128, - "startColumn": 1, - "endLine": 130, - "endColumn": 50, - "charOffset": 5767, - "charLength": 166, - "snippet": { - "text": " private void PopulatePropertiesFromCharOffsetAndLength(NewLineIndex newLineIndex, Region region)\r\n {\r\n Debug.Assert(!region.IsBinaryRegion);" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.FileRegionsCache.PopulatePropertiesFromCharOffsetAndLength(Microsoft.CodeAnalysis.Sarif.NewLineIndex,Microsoft.CodeAnalysis.Sarif.Region)" - } - ], - "properties": { - "Category": "Microsoft.Performance", - "FixCategory": "NonBreaking" - } + "name": ".ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)", + "fullyQualifiedName": "microsoft.json.schema.dll!Microsoft.Json.Schema.SchemaValidationException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)", + "parentIndex": 86, + "kind": "member" }, { - "ruleId": "CA2227", - "level": "warning", - "message": { - "text": "Change 'Fix.FileChanges' to be read-only by removing the property setter." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/Fix.cs" - }, - "region": { - "startLine": 44, - "snippet": { - "text": " public IList FileChanges { get; set; }" - } - }, - "contextRegion": { - "startLine": 43, - "startColumn": 1, - "endLine": 45, - "endColumn": 1, - "charOffset": 1695, - "charLength": 123, - "snippet": { - "text": " [DataMember(Name = \"fileChanges\", IsRequired = true)]\r\n public IList FileChanges { get; set; }\r\n" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Fix.FileChanges" - } - ], - "properties": { - "Category": "Microsoft.Usage", - "FixCategory": "Breaking" - } + "name": "Args", + "fullyQualifiedName": "microsoft.json.schema.dll!Microsoft.Json.Schema.SchemaValidationException.Args", + "parentIndex": 86, + "kind": "member" }, { - "ruleId": "CA2214", - "level": "warning", - "message": { - "text": "'Graph.Graph(Graph)' contains a call chain that results in a call to a virtual method defined by the class. Review the following call stack for unintended consequences: \r\n\r\nGraph..ctor(Graph)\r\nGraph.Init(String, Message, IEnumerable, IEnumerable, IDictionary):Void\r\nPropertyBagHolder.set_Properties(IDictionary):Void" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/Graph.cs" - }, - "region": { - "startLine": 104, - "snippet": { - "text": " public Graph(Graph other)" - } - }, - "contextRegion": { - "startLine": 103, - "startColumn": 1, - "endLine": 105, - "endColumn": 10, - "charOffset": 4153, - "charLength": 70, - "snippet": { - "text": " /// \r\n public Graph(Graph other)\r\n {" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Graph..ctor(Microsoft.CodeAnalysis.Sarif.Graph)" - } - ], - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Usage", - "FixCategory": "NonBreaking" - } + "name": "SchemaWriter", + "fullyQualifiedName": "microsoft.json.schema.dll!Microsoft.Json.Schema.SchemaWriter", + "parentIndex": 30, + "kind": "type" }, { - "ruleId": "CA2214", - "level": "warning", - "message": { - "text": "'Graph.Graph(string, Message, IEnumerable, IEnumerable, IDictionary)' contains a call chain that results in a call to a virtual method defined by the class. Review the following call stack for unintended consequences: \r\n\r\nGraph..ctor(String, Message, IEnumerable, IEnumerable, IDictionary)\r\nGraph.Init(String, Message, IEnumerable, IEnumerable, IDictionary):Void\r\nPropertyBagHolder.set_Properties(IDictionary):Void" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/Graph.cs" - }, - "region": { - "startLine": 90, - "snippet": { - "text": " public Graph(string id, Message description, IEnumerable nodes, IEnumerable edges, IDictionary properties)" - } - }, - "contextRegion": { - "startLine": 89, - "startColumn": 1, - "endLine": 91, - "endColumn": 10, - "charOffset": 3491, - "charLength": 191, - "snippet": { - "text": " /// \r\n public Graph(string id, Message description, IEnumerable nodes, IEnumerable edges, IDictionary properties)\r\n {" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Graph..ctor(System.String,Microsoft.CodeAnalysis.Sarif.Message,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IDictionary`2)" - } - ], - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Usage", - "FixCategory": "NonBreaking" - } + "name": "WriteSchema(Newtonsoft.Json.JsonWriter,Microsoft.Json.Schema.JsonSchema,Newtonsoft.Json.Formatting)", + "fullyQualifiedName": "microsoft.json.schema.dll!Microsoft.Json.Schema.SchemaWriter.WriteSchema(Newtonsoft.Json.JsonWriter,Microsoft.Json.Schema.JsonSchema,Newtonsoft.Json.Formatting)", + "parentIndex": 90, + "kind": "member" }, { - "ruleId": "CA2227", - "level": "warning", - "message": { - "text": "Change 'Graph.Edges' to be read-only by removing the property setter." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/Graph.cs" - }, - "region": { - "startLine": 57, - "snippet": { - "text": " public IList Edges { get; set; }" - } - }, - "contextRegion": { - "startLine": 56, - "startColumn": 1, - "endLine": 58, - "endColumn": 1, - "charOffset": 2082, - "charLength": 105, - "snippet": { - "text": " [DataMember(Name = \"edges\", IsRequired = true)]\r\n public IList Edges { get; set; }\r\n" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Graph.Edges" - } - ], - "properties": { - "Category": "Microsoft.Usage", - "FixCategory": "Breaking" - } + "name": "WriteSchema(System.IO.TextWriter,Microsoft.Json.Schema.JsonSchema,Newtonsoft.Json.Formatting)", + "fullyQualifiedName": "microsoft.json.schema.dll!Microsoft.Json.Schema.SchemaWriter.WriteSchema(System.IO.TextWriter,Microsoft.Json.Schema.JsonSchema,Newtonsoft.Json.Formatting)", + "parentIndex": 90, + "kind": "member" }, { - "ruleId": "CA2227", - "level": "warning", - "message": { - "text": "Change 'Graph.Nodes' to be read-only by removing the property setter." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/Graph.cs" - }, - "region": { - "startLine": 51, - "snippet": { - "text": " public IList Nodes { get; set; }" - } - }, - "contextRegion": { - "startLine": 50, - "startColumn": 1, - "endLine": 52, - "endColumn": 1, - "charOffset": 1853, - "charLength": 105, - "snippet": { - "text": " [DataMember(Name = \"nodes\", IsRequired = true)]\r\n public IList Nodes { get; set; }\r\n" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Graph.Nodes" - } - ], - "properties": { - "Category": "Microsoft.Usage", - "FixCategory": "Breaking" - } + "name": "UriOrFragment", + "fullyQualifiedName": "microsoft.json.schema.dll!Microsoft.Json.Schema.UriOrFragment", + "parentIndex": 30, + "kind": "type" }, { - "ruleId": "CA1502", - "level": "warning", - "message": { - "text": "'GraphEqualityComparer.Equals(Graph, Graph)' has a cyclomatic complexity of 26. Rewrite or refactor the method to reduce complexity to 25." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/GraphEqualityComparer.cs" - }, - "region": { - "startLine": 20, - "snippet": { - "text": " {" - } - }, - "contextRegion": { - "startLine": 19, - "startColumn": 1, - "endLine": 21, - "endColumn": 46, - "charOffset": 705, - "charLength": 109, - "snippet": { - "text": " public bool Equals(Graph left, Graph right)\r\n {\r\n if (ReferenceEquals(left, right))" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.GraphEqualityComparer.Equals(Microsoft.CodeAnalysis.Sarif.Graph,Microsoft.CodeAnalysis.Sarif.Graph)" - } - ], - "properties": { - "Category": "Microsoft.Maintainability", - "FixCategory": "NonBreaking" - } + "name": ".ctor(Microsoft.Json.Schema.UriOrFragment)", + "fullyQualifiedName": "microsoft.json.schema.dll!Microsoft.Json.Schema.UriOrFragment..ctor(Microsoft.Json.Schema.UriOrFragment)", + "parentIndex": 93, + "kind": "member" }, { - "ruleId": "CA2214", - "level": "warning", - "message": { - "text": "'GraphTraversal.GraphTraversal(GraphTraversal)' contains a call chain that results in a call to a virtual method defined by the class. Review the following call stack for unintended consequences: \r\n\r\nGraphTraversal..ctor(GraphTraversal)\r\nGraphTraversal.Init(String, Message, IDictionary, IEnumerable, IDictionary):Void\r\nPropertyBagHolder.set_Properties(IDictionary):Void" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/GraphTraversal.cs" - }, - "region": { - "startLine": 104, - "snippet": { - "text": " public GraphTraversal(GraphTraversal other)" - } - }, - "contextRegion": { - "startLine": 103, - "startColumn": 1, - "endLine": 105, - "endColumn": 10, - "charOffset": 4349, - "charLength": 88, - "snippet": { - "text": " /// \r\n public GraphTraversal(GraphTraversal other)\r\n {" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.GraphTraversal..ctor(Microsoft.CodeAnalysis.Sarif.GraphTraversal)" - } - ], - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Usage", - "FixCategory": "NonBreaking" - } + "name": ".ctor(System.String)", + "fullyQualifiedName": "microsoft.json.schema.dll!Microsoft.Json.Schema.UriOrFragment..ctor(System.String)", + "parentIndex": 93, + "kind": "member" }, { - "ruleId": "CA2214", - "level": "warning", - "message": { - "text": "'GraphTraversal.GraphTraversal(string, Message, IDictionary, IEnumerable, IDictionary)' contains a call chain that results in a call to a virtual method defined by the class. Review the following call stack for unintended consequences: \r\n\r\nGraphTraversal..ctor(String, Message, IDictionary, IEnumerable, IDictionary)\r\nGraphTraversal.Init(String, Message, IDictionary, IEnumerable, IDictionary):Void\r\nPropertyBagHolder.set_Properties(IDictionary):Void" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/GraphTraversal.cs" - }, - "region": { - "startLine": 90, - "snippet": { - "text": " public GraphTraversal(string graphId, Message description, IDictionary initialState, IEnumerable edgeTraversals, IDictionary properties)" - } - }, - "contextRegion": { - "startLine": 89, - "startColumn": 1, - "endLine": 91, - "endColumn": 10, - "charOffset": 3608, - "charLength": 240, - "snippet": { - "text": " /// \r\n public GraphTraversal(string graphId, Message description, IDictionary initialState, IEnumerable edgeTraversals, IDictionary properties)\r\n {" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.GraphTraversal..ctor(System.String,Microsoft.CodeAnalysis.Sarif.Message,System.Collections.Generic.IDictionary`2,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IDictionary`2)" - } - ], - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Usage", - "FixCategory": "NonBreaking" - } + "name": "Equals(System.Object)", + "fullyQualifiedName": "microsoft.json.schema.dll!Microsoft.Json.Schema.UriOrFragment.Equals(System.Object)", + "parentIndex": 93, + "kind": "member" }, { - "ruleId": "CA2227", - "level": "warning", - "message": { - "text": "Change 'GraphTraversal.EdgeTraversals' to be read-only by removing the property setter." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/GraphTraversal.cs" - }, - "region": { - "startLine": 57, - "snippet": { - "text": " public IList EdgeTraversals { get; set; }" - } - }, - "contextRegion": { - "startLine": 56, - "startColumn": 1, - "endLine": 58, - "endColumn": 1, - "charOffset": 2093, - "charLength": 132, - "snippet": { - "text": " [DataMember(Name = \"edgeTraversals\", IsRequired = true)]\r\n public IList EdgeTraversals { get; set; }\r\n" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.GraphTraversal.EdgeTraversals" - } - ], - "properties": { - "Category": "Microsoft.Usage", - "FixCategory": "Breaking" - } + "name": "UriOrFragmentConverter", + "fullyQualifiedName": "microsoft.json.schema.dll!Microsoft.Json.Schema.UriOrFragmentConverter", + "parentIndex": 30, + "kind": "type" }, { - "ruleId": "CA2227", - "level": "warning", - "message": { - "text": "Change 'GraphTraversal.InitialState' to be read-only by removing the property setter." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/GraphTraversal.cs" - }, - "region": { - "startLine": 51, - "snippet": { - "text": " public IDictionary InitialState { get; set; }" - } - }, - "contextRegion": { - "startLine": 50, - "startColumn": 1, - "endLine": 52, - "endColumn": 1, - "charOffset": 1811, - "charLength": 162, - "snippet": { - "text": " [DataMember(Name = \"initialState\", IsRequired = false, EmitDefaultValue = false)]\r\n public IDictionary InitialState { get; set; }\r\n" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.GraphTraversal.InitialState" - } - ], - "properties": { - "Category": "Microsoft.Usage", - "FixCategory": "Breaking" - } + "name": "ReadJson(Newtonsoft.Json.JsonReader,System.Type,System.Object,Newtonsoft.Json.JsonSerializer)", + "fullyQualifiedName": "microsoft.json.schema.dll!Microsoft.Json.Schema.UriOrFragmentConverter.ReadJson(Newtonsoft.Json.JsonReader,System.Type,System.Object,Newtonsoft.Json.JsonSerializer)", + "parentIndex": 97, + "kind": "member" }, { - "ruleId": "CA1502", - "level": "warning", - "message": { - "text": "'GraphTraversalEqualityComparer.Equals(GraphTraversal, GraphTraversal)' has a cyclomatic complexity of 28. Rewrite or refactor the method to reduce complexity to 25." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/GraphTraversalEqualityComparer.cs" - }, - "region": { - "startLine": 20, - "snippet": { - "text": " {" - } - }, - "contextRegion": { - "startLine": 19, - "startColumn": 1, - "endLine": 21, - "endColumn": 46, - "charOffset": 750, - "charLength": 127, - "snippet": { - "text": " public bool Equals(GraphTraversal left, GraphTraversal right)\r\n {\r\n if (ReferenceEquals(left, right))" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.GraphTraversalEqualityComparer.Equals(Microsoft.CodeAnalysis.Sarif.GraphTraversal,Microsoft.CodeAnalysis.Sarif.GraphTraversal)" - } - ], - "properties": { - "Category": "Microsoft.Maintainability", - "FixCategory": "NonBreaking" - } + "name": "WriteJson(Newtonsoft.Json.JsonWriter,System.Object,Newtonsoft.Json.JsonSerializer)", + "fullyQualifiedName": "microsoft.json.schema.dll!Microsoft.Json.Schema.UriOrFragmentConverter.WriteJson(Newtonsoft.Json.JsonWriter,System.Object,Newtonsoft.Json.JsonSerializer)", + "parentIndex": 97, + "kind": "member" }, { - "ruleId": "CA1704", - "level": "warning", - "message": { - "text": "In method 'HashData.HashData(string, string, string)', correct the spelling of 'sha' in parameter name 'sha1' or remove it entirely if it represents any sort of Hungarian notation.", - "messageId": "MemberParameter" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/HashData.cs" - }, - "region": { - "startLine": 8, - "snippet": { - "text": " public HashData(string md5, string sha1, string sha256)" - } - }, - "contextRegion": { - "startLine": 7, - "startColumn": 1, - "endLine": 9, - "endColumn": 10, - "charOffset": 225, - "charLength": 81, - "snippet": { - "text": " {\r\n public HashData(string md5, string sha1, string sha256)\r\n {" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.HashData..ctor(System.String,System.String,System.String)" - } - ], - "partialFingerprints": { - "UniqueId": "sha#MemberParameter" - }, - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" - } + "name": "UriOrFragmentExtensions", + "fullyQualifiedName": "microsoft.json.schema.dll!Microsoft.Json.Schema.UriOrFragmentExtensions", + "parentIndex": 30, + "kind": "type" }, { - "ruleId": "CA1704", - "level": "warning", - "message": { - "text": "In method 'HashData.HashData(string, string, string)', correct the spelling of 'sha' in parameter name 'sha256' or remove it entirely if it represents any sort of Hungarian notation.", - "messageId": "MemberParameter" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/HashData.cs" - }, - "region": { - "startLine": 8, - "snippet": { - "text": " public HashData(string md5, string sha1, string sha256)" - } - }, - "contextRegion": { - "startLine": 7, - "startColumn": 1, - "endLine": 9, - "endColumn": 10, - "charOffset": 225, - "charLength": 81, - "snippet": { - "text": " {\r\n public HashData(string md5, string sha1, string sha256)\r\n {" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.HashData..ctor(System.String,System.String,System.String)" - } - ], - "partialFingerprints": { - "UniqueId": "sha#MemberParameter" - }, - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" - } + "name": "GetDefinitionName(Microsoft.Json.Schema.UriOrFragment)", + "fullyQualifiedName": "microsoft.json.schema.dll!Microsoft.Json.Schema.UriOrFragmentExtensions.GetDefinitionName(Microsoft.Json.Schema.UriOrFragment)", + "parentIndex": 100, + "kind": "member" }, { - "ruleId": "CA1704", - "level": "warning", - "message": { - "text": "Correct the spelling of 'Sha' in member name 'HashData.Sha1' or remove it entirely if it represents any sort of Hungarian notation.", - "messageId": "Member" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/HashData.cs" - }, - "region": { - "startLine": 17, - "snippet": { - "text": " public string Sha1 { get; }" - } - }, - "contextRegion": { - "startLine": 16, - "startColumn": 1, - "endLine": 18, - "endColumn": 1, - "charOffset": 437, - "charLength": 39, - "snippet": { - "text": "\r\n public string Sha1 { get; }\r\n" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.HashData.Sha1" - } - ], - "partialFingerprints": { - "UniqueId": "Sha#Member" - }, - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" - } + "name": "VersionConstants", + "fullyQualifiedName": "microsoft.json.schema.dll!Microsoft.Json.Schema.VersionConstants", + "parentIndex": 30, + "kind": "type" }, { - "ruleId": "CA1704", - "level": "warning", - "message": { - "text": "Correct the spelling of 'Sha' in member name 'HashData.Sha256' or remove it entirely if it represents any sort of Hungarian notation.", - "messageId": "Member" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/HashData.cs" - }, - "region": { - "startLine": 19, - "snippet": { - "text": " public string Sha256 { get; }" - } - }, - "contextRegion": { - "startLine": 18, - "startColumn": 1, - "endLine": 20, - "endColumn": 1, - "charOffset": 476, - "charLength": 41, - "snippet": { - "text": "\r\n public string Sha256 { get; }\r\n" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.HashData.Sha256" - } - ], - "partialFingerprints": { - "UniqueId": "Sha#Member" - }, - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" - } + "name": "PreRelease", + "fullyQualifiedName": "microsoft.json.schema.dll!Microsoft.Json.Schema.VersionConstants.PreRelease", + "parentIndex": 102, + "kind": "member" }, { - "ruleId": "CA2202", - "level": "warning", - "message": { - "text": "Object 'stream' can be disposed more than once in method 'HashUtilities.ComputeHashes(string)'. To avoid generating a System.ObjectDisposedException you should not call Dispose more than one time on an object.: Lines: 50" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/HashUtilities.cs" - }, - "region": { - "startLine": 50, - "snippet": { - "text": " return new HashData(md5, sha1, sha256);" - } - }, - "contextRegion": { - "startLine": 49, - "startColumn": 1, - "endLine": 51, - "endColumn": 22, - "charOffset": 2061, - "charLength": 88, - "snippet": { - "text": "\r\n return new HashData(md5, sha1, sha256);\r\n }" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.HashUtilities.ComputeHashes(System.String)" - } - ], - "properties": { - "Category": "Microsoft.Usage", - "FixCategory": "DependsOnFix" - } + "name": "microsoft.json.schema.validation.dll", + "kind": "module" }, { - "ruleId": "CA5350", - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.HashUtilities.ComputeHashes(System.String)" - } - ], - "suppressionStates": ["suppressedInSource"], - "properties": { - "Category": "Microsoft.Security.Cryptography", - "FixCategory": "NonBreaking" - } + "name": "Microsoft.Json.Schema.Validation", + "fullyQualifiedName": "microsoft.json.schema.validation.dll!Microsoft.Json.Schema.Validation", + "parentIndex": 104, + "kind": "namespace" }, { - "ruleId": "CA5354", - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.HashUtilities.ComputeHashes(System.String)" - } - ], - "suppressionStates": ["suppressedInSource"], - "properties": { - "Category": "Microsoft.Security.Cryptography", - "FixCategory": "NonBreaking" - } + "name": "JsonSyntaxErrorExceptionExtensions", + "fullyQualifiedName": "microsoft.json.schema.validation.dll!Microsoft.Json.Schema.Validation.JsonSyntaxErrorExceptionExtensions", + "parentIndex": 105, + "kind": "type" }, { - "ruleId": "CA2202", - "level": "warning", - "message": { - "text": "Object 'stream' can be disposed more than once in method 'HashUtilities.ComputeMD5Hash(string)'. To avoid generating a System.ObjectDisposedException you should not call Dispose more than one time on an object.: Lines: 124" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/HashUtilities.cs" - }, - "region": { - "startLine": 124, - "snippet": { - "text": " }" - } - }, - "contextRegion": { - "startLine": 123, - "startColumn": 1, - "endLine": 125, - "endColumn": 14, - "charOffset": 4764, - "charLength": 55, - "snippet": { - "text": " }\r\n }\r\n }" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.HashUtilities.ComputeMD5Hash(System.String)" - } - ], - "properties": { - "Category": "Microsoft.Usage", - "FixCategory": "DependsOnFix" - } + "name": "ToSarifResult(Microsoft.Json.Schema.JsonSyntaxException)", + "fullyQualifiedName": "microsoft.json.schema.validation.dll!Microsoft.Json.Schema.Validation.JsonSyntaxErrorExceptionExtensions.ToSarifResult(Microsoft.Json.Schema.JsonSyntaxException)", + "parentIndex": 106, + "kind": "member" }, { - "ruleId": "CA5350", - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.HashUtilities.ComputeMD5Hash(System.String)" - } - ], - "suppressionStates": ["suppressedInSource"], - "properties": { - "Category": "Microsoft.Security.Cryptography", - "FixCategory": "NonBreaking" - } + "name": "JTokenEqualityComparer", + "fullyQualifiedName": "microsoft.json.schema.validation.dll!Microsoft.Json.Schema.Validation.JTokenEqualityComparer", + "parentIndex": 105, + "kind": "type" }, { - "ruleId": "CA2202", - "level": "warning", - "message": { - "text": "Object 'stream' can be disposed more than once in method 'HashUtilities.ComputeSha1Hash(string)'. To avoid generating a System.ObjectDisposedException you should not call Dispose more than one time on an object.: Lines: 100" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/HashUtilities.cs" - }, - "region": { - "startLine": 100, - "snippet": { - "text": " }" - } - }, - "contextRegion": { - "startLine": 99, - "startColumn": 1, - "endLine": 101, - "endColumn": 14, - "charOffset": 3867, - "charLength": 55, - "snippet": { - "text": " }\r\n }\r\n }" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.HashUtilities.ComputeSha1Hash(System.String)" - } - ], - "properties": { - "Category": "Microsoft.Usage", - "FixCategory": "DependsOnFix" - } + "name": "NullEquals(System.Object)", + "fullyQualifiedName": "microsoft.json.schema.validation.dll!Microsoft.Json.Schema.Validation.JTokenEqualityComparer.NullEquals(System.Object)", + "parentIndex": 108, + "kind": "member" }, { - "ruleId": "CA1704", - "level": "warning", - "message": { - "text": "Correct the spelling of 'Sha' in member name 'HashUtilities.ComputeSha1Hash(string)' or remove it entirely if it represents any sort of Hungarian notation.", - "messageId": "Member" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/HashUtilities.cs" - }, - "region": { - "startLine": 85, - "snippet": { - "text": " {" - } - }, - "contextRegion": { - "startLine": 84, - "startColumn": 1, - "endLine": 86, - "endColumn": 32, - "charOffset": 3240, - "charLength": 105, - "snippet": { - "text": " public static string ComputeSha1Hash(string fileName)\r\n {\r\n string sha1 = null;" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.HashUtilities.ComputeSha1Hash(System.String)" - } - ], - "partialFingerprints": { - "UniqueId": "Sha#Member" - }, - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" - } + "name": "ResultFactory", + "fullyQualifiedName": "microsoft.json.schema.validation.dll!Microsoft.Json.Schema.Validation.ResultFactory", + "parentIndex": 105, + "kind": "type" }, { - "ruleId": "CA5354", - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.HashUtilities.ComputeSha1Hash(System.String)" - } - ], - "suppressionStates": ["suppressedInSource"], - "properties": { - "Category": "Microsoft.Security.Cryptography", - "FixCategory": "NonBreaking" - } + "name": "CreateResult(Newtonsoft.Json.Linq.JToken,Microsoft.Json.Schema.ErrorNumber,System.Object[])", + "fullyQualifiedName": "microsoft.json.schema.validation.dll!Microsoft.Json.Schema.Validation.ResultFactory.CreateResult(Newtonsoft.Json.Linq.JToken,Microsoft.Json.Schema.ErrorNumber,System.Object[])", + "parentIndex": 110, + "kind": "member" }, { - "ruleId": "CA2202", - "level": "warning", - "message": { - "text": "Object 'stream' can be disposed more than once in method 'HashUtilities.ComputeSha256Hash(string)'. To avoid generating a System.ObjectDisposedException you should not call Dispose more than one time on an object.: Lines: 76" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/HashUtilities.cs" - }, - "region": { - "startLine": 76, - "snippet": { - "text": " }" - } - }, - "contextRegion": { - "startLine": 75, - "startColumn": 1, - "endLine": 77, - "endColumn": 14, - "charOffset": 2959, - "charLength": 55, - "snippet": { - "text": " }\r\n }\r\n }" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.HashUtilities.ComputeSha256Hash(System.String)" - } - ], - "properties": { - "Category": "Microsoft.Usage", - "FixCategory": "DependsOnFix" - } + "name": "RuleExtensions", + "fullyQualifiedName": "microsoft.json.schema.validation.dll!Microsoft.Json.Schema.Validation.RuleExtensions", + "parentIndex": 105, + "kind": "type" }, { - "ruleId": "CA1704", - "level": "warning", - "message": { - "text": "Correct the spelling of 'Sha' in member name 'HashUtilities.ComputeSha256Hash(string)' or remove it entirely if it represents any sort of Hungarian notation.", - "messageId": "Member" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/HashUtilities.cs" - }, - "region": { - "startLine": 60, - "snippet": { - "text": " {" - } - }, - "contextRegion": { - "startLine": 59, - "startColumn": 1, - "endLine": 61, - "endColumn": 38, - "charOffset": 2314, - "charLength": 113, - "snippet": { - "text": " public static string ComputeSha256Hash(string fileName)\r\n {\r\n string sha256Hash = null;" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.HashUtilities.ComputeSha256Hash(System.String)" - } - ], - "partialFingerprints": { - "UniqueId": "Sha#Member" - }, - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" - } + "name": "SetResultFile(Microsoft.CodeAnalysis.Sarif.Result,System.String)", + "fullyQualifiedName": "microsoft.json.schema.validation.dll!Microsoft.Json.Schema.Validation.RuleExtensions.SetResultFile(Microsoft.CodeAnalysis.Sarif.Result,System.String)", + "parentIndex": 112, + "kind": "member" }, { - "ruleId": "CA2227", - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.IAnalysisContext.Policy" - } - ], - "suppressionStates": ["suppressedInSource"], - "properties": { - "Category": "Microsoft.Usage", - "FixCategory": "Breaking" - } + "name": "RuleFactory", + "fullyQualifiedName": "microsoft.json.schema.validation.dll!Microsoft.Json.Schema.Validation.RuleFactory", + "parentIndex": 105, + "kind": "type" }, { - "ruleId": "CA1720", - "level": "error", - "message": { - "text": "In member 'IFileSystem.WriteAllBytes(string, byte[])', consider replacing the data type identifier 'bytes' in parameter name 'bytes' with a more generic term, such as 'value'.", - "messageId": "LanguageIndependentMemberParameter" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.IFileSystem.WriteAllBytes(System.String,System.Byte[])" - } - ], - "partialFingerprints": { - "UniqueId": "bytes#LanguageIndependentMemberParameter" - }, - "properties": { - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" - } + "name": "ErrorCodeFormat", + "fullyQualifiedName": "microsoft.json.schema.validation.dll!Microsoft.Json.Schema.Validation.RuleFactory.ErrorCodeFormat", + "parentIndex": 114, + "kind": "member" }, { - "ruleId": "CA1040", - "level": "warning", - "message": { - "text": "Define a custom attribute to replace 'IMarker'." - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.IMarker" - } - ], - "properties": { - "Category": "Microsoft.Design", - "FixCategory": "Breaking" - } + "name": "GetRuleFromRuleId(System.String)", + "fullyQualifiedName": "microsoft.json.schema.validation.dll!Microsoft.Json.Schema.Validation.RuleFactory.GetRuleFromRuleId(System.String)", + "parentIndex": 114, + "kind": "member" }, { - "ruleId": "CA1710", - "level": "error", - "message": { - "text": "Rename 'IntegerSet' to end in 'Collection'." - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.IntegerSet" - } - ], - "properties": { - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" - } + "name": "RuleResources", + "fullyQualifiedName": "microsoft.json.schema.validation.dll!Microsoft.Json.Schema.Validation.RuleResources", + "parentIndex": 105, + "kind": "type" }, { - "ruleId": "CA2214", - "level": "warning", - "message": { - "text": "'Invocation.Invocation(Invocation)' contains a call chain that results in a call to a virtual method defined by the class. Review the following call stack for unintended consequences: \r\n\r\nInvocation..ctor(Invocation)\r\nInvocation.Init(IEnumerable, String, IEnumerable, IEnumerable, DateTime, DateTime, Int32, IEnumerable, IEnumerable, String, String, Int32, String, Boolean, String, String, Int32, FileLocation, String, IDictionary, FileLocation, FileLocation, FileLocation, FileLocation, IDictionary):Void\r\nPropertyBagHolder.set_Properties(IDictionary):Void" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/Invocation.cs" - }, - "region": { - "startLine": 284, - "snippet": { - "text": " public Invocation(Invocation other)" - } - }, - "contextRegion": { - "startLine": 283, - "startColumn": 1, - "endLine": 285, - "endColumn": 10, - "charOffset": 13924, - "charLength": 80, - "snippet": { - "text": " /// \r\n public Invocation(Invocation other)\r\n {" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Invocation..ctor(Microsoft.CodeAnalysis.Sarif.Invocation)" - } - ], - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Usage", - "FixCategory": "NonBreaking" - } + "name": "Validator", + "fullyQualifiedName": "microsoft.json.schema.validation.dll!Microsoft.Json.Schema.Validation.Validator", + "parentIndex": 105, + "kind": "type" }, { - "ruleId": "CA2214", - "level": "warning", - "message": { - "text": "'Invocation.Invocation(IEnumerable, string, IEnumerable, IEnumerable, DateTime, DateTime, int, IEnumerable, IEnumerable, string, string, int, string, bool, string, string, int, FileLocation, string, IDictionary, FileLocation, FileLocation, FileLocation, FileLocation, IDictionary)' contains a call chain that results in a call to a virtual method defined by the class. Review the following call stack for unintended consequences: \r\n\r\nInvocation..ctor(IEnumerable, String, IEnumerable, IEnumerable, DateTime, DateTime, Int32, IEnumerable, IEnumerable, String, String, Int32, String, Boolean, String, String, Int32, FileLocation, String, IDictionary, FileLocation, FileLocation, FileLocation, FileLocation, IDictionary)\r\nInvocation.Init(IEnumerable, String, IEnumerable, IEnumerable, DateTime, DateTime, Int32, IEnumerable, IEnumerable, String, String, Int32, String, Boolean, String, String, Int32, FileLocation, String, IDictionary, FileLocation, FileLocation, FileLocation, FileLocation, IDictionary):Void\r\nPropertyBagHolder.set_Properties(IDictionary):Void" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/Invocation.cs" - }, - "region": { - "startLine": 270, - "snippet": { - "text": " public Invocation(IEnumerable attachments, string commandLine, IEnumerable arguments, IEnumerable responseFiles, DateTime startTime, DateTime endTime, int exitCode, IEnumerable toolNotifications, IEnumerable configurationNotifications, string exitCodeDescription, string exitSignalName, int exitSignalNumber, string processStartFailureMessage, bool toolExecutionSuccessful, string machine, string account, int processId, FileLocation executableLocation, string workingDirectory, IDictionary environmentVariables, FileLocation stdin, FileLocation stdout, FileLocation stderr, FileLocation stdoutStderr, IDictionary properties)" - } - }, - "contextRegion": { - "startLine": 269, - "startColumn": 1, - "endLine": 271, - "endColumn": 10, - "charOffset": 12340, - "charLength": 776, - "snippet": { - "text": " /// \r\n public Invocation(IEnumerable attachments, string commandLine, IEnumerable arguments, IEnumerable responseFiles, DateTime startTime, DateTime endTime, int exitCode, IEnumerable toolNotifications, IEnumerable configurationNotifications, string exitCodeDescription, string exitSignalName, int exitSignalNumber, string processStartFailureMessage, bool toolExecutionSuccessful, string machine, string account, int processId, FileLocation executableLocation, string workingDirectory, IDictionary environmentVariables, FileLocation stdin, FileLocation stdout, FileLocation stderr, FileLocation stdoutStderr, IDictionary properties)\r\n {" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Invocation..ctor(System.Collections.Generic.IEnumerable`1,System.String,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,System.DateTime,System.DateTime,System.Int32,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,System.String,System.String,System.Int32,System.String,System.Boolean,System.String,System.String,System.Int32,Microsoft.CodeAnalysis.Sarif.FileLocation,System.String,System.Collections.Generic.IDictionary`2,Microsoft.CodeAnalysis.Sarif.FileLocation,Microsoft.CodeAnalysis.Sarif.FileLocation,Microsoft.CodeAnalysis.Sarif.FileLocation,Microsoft.CodeAnalysis.Sarif.FileLocation,System.Collections.Generic.IDictionary`2)" - } - ], - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Usage", - "FixCategory": "NonBreaking" - } + "name": "FormatBoolean(System.String)", + "fullyQualifiedName": "microsoft.json.schema.validation.dll!Microsoft.Json.Schema.Validation.Validator.FormatBoolean(System.String)", + "parentIndex": 118, + "kind": "member" }, { - "ruleId": "CA1704", - "level": "warning", - "message": { - "text": "In method 'Invocation.Invocation(IEnumerable, string, IEnumerable, IEnumerable, DateTime, DateTime, int, IEnumerable, IEnumerable, string, string, int, string, bool, string, string, int, FileLocation, string, IDictionary, FileLocation, FileLocation, FileLocation, FileLocation, IDictionary)', correct the spelling of 'Stderr' in parameter name 'stdoutStderr' or remove it entirely if it represents any sort of Hungarian notation.", - "messageId": "MemberParameter" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/Invocation.cs" - }, - "region": { - "startLine": 270, - "snippet": { - "text": " public Invocation(IEnumerable attachments, string commandLine, IEnumerable arguments, IEnumerable responseFiles, DateTime startTime, DateTime endTime, int exitCode, IEnumerable toolNotifications, IEnumerable configurationNotifications, string exitCodeDescription, string exitSignalName, int exitSignalNumber, string processStartFailureMessage, bool toolExecutionSuccessful, string machine, string account, int processId, FileLocation executableLocation, string workingDirectory, IDictionary environmentVariables, FileLocation stdin, FileLocation stdout, FileLocation stderr, FileLocation stdoutStderr, IDictionary properties)" - } - }, - "contextRegion": { - "startLine": 269, - "startColumn": 1, - "endLine": 271, - "endColumn": 10, - "charOffset": 12340, - "charLength": 776, - "snippet": { - "text": " /// \r\n public Invocation(IEnumerable attachments, string commandLine, IEnumerable arguments, IEnumerable responseFiles, DateTime startTime, DateTime endTime, int exitCode, IEnumerable toolNotifications, IEnumerable configurationNotifications, string exitCodeDescription, string exitSignalName, int exitSignalNumber, string processStartFailureMessage, bool toolExecutionSuccessful, string machine, string account, int processId, FileLocation executableLocation, string workingDirectory, IDictionary environmentVariables, FileLocation stdin, FileLocation stdout, FileLocation stderr, FileLocation stdoutStderr, IDictionary properties)\r\n {" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Invocation..ctor(System.Collections.Generic.IEnumerable`1,System.String,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,System.DateTime,System.DateTime,System.Int32,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,System.String,System.String,System.Int32,System.String,System.Boolean,System.String,System.String,System.Int32,Microsoft.CodeAnalysis.Sarif.FileLocation,System.String,System.Collections.Generic.IDictionary`2,Microsoft.CodeAnalysis.Sarif.FileLocation,Microsoft.CodeAnalysis.Sarif.FileLocation,Microsoft.CodeAnalysis.Sarif.FileLocation,Microsoft.CodeAnalysis.Sarif.FileLocation,System.Collections.Generic.IDictionary`2)" - } - ], - "partialFingerprints": { - "UniqueId": "Stderr#MemberParameter" - }, - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" - } + "name": "FormatObject(System.Object)", + "fullyQualifiedName": "microsoft.json.schema.validation.dll!Microsoft.Json.Schema.Validation.Validator.FormatObject(System.Object)", + "parentIndex": 118, + "kind": "member" }, { - "ruleId": "CA1704", - "level": "warning", - "message": { - "text": "In method 'Invocation.Invocation(IEnumerable, string, IEnumerable, IEnumerable, DateTime, DateTime, int, IEnumerable, IEnumerable, string, string, int, string, bool, string, string, int, FileLocation, string, IDictionary, FileLocation, FileLocation, FileLocation, FileLocation, IDictionary)', correct the spelling of 'stderr' in parameter name 'stderr' or remove it entirely if it represents any sort of Hungarian notation.", - "messageId": "MemberParameter" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/Invocation.cs" - }, - "region": { - "startLine": 270, - "snippet": { - "text": " public Invocation(IEnumerable attachments, string commandLine, IEnumerable arguments, IEnumerable responseFiles, DateTime startTime, DateTime endTime, int exitCode, IEnumerable toolNotifications, IEnumerable configurationNotifications, string exitCodeDescription, string exitSignalName, int exitSignalNumber, string processStartFailureMessage, bool toolExecutionSuccessful, string machine, string account, int processId, FileLocation executableLocation, string workingDirectory, IDictionary environmentVariables, FileLocation stdin, FileLocation stdout, FileLocation stderr, FileLocation stdoutStderr, IDictionary properties)" - } - }, - "contextRegion": { - "startLine": 269, - "startColumn": 1, - "endLine": 271, - "endColumn": 10, - "charOffset": 12340, - "charLength": 776, - "snippet": { - "text": " /// \r\n public Invocation(IEnumerable attachments, string commandLine, IEnumerable arguments, IEnumerable responseFiles, DateTime startTime, DateTime endTime, int exitCode, IEnumerable toolNotifications, IEnumerable configurationNotifications, string exitCodeDescription, string exitSignalName, int exitSignalNumber, string processStartFailureMessage, bool toolExecutionSuccessful, string machine, string account, int processId, FileLocation executableLocation, string workingDirectory, IDictionary environmentVariables, FileLocation stdin, FileLocation stdout, FileLocation stderr, FileLocation stdoutStderr, IDictionary properties)\r\n {" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Invocation..ctor(System.Collections.Generic.IEnumerable`1,System.String,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,System.DateTime,System.DateTime,System.Int32,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,System.String,System.String,System.Int32,System.String,System.Boolean,System.String,System.String,System.Int32,Microsoft.CodeAnalysis.Sarif.FileLocation,System.String,System.Collections.Generic.IDictionary`2,Microsoft.CodeAnalysis.Sarif.FileLocation,Microsoft.CodeAnalysis.Sarif.FileLocation,Microsoft.CodeAnalysis.Sarif.FileLocation,Microsoft.CodeAnalysis.Sarif.FileLocation,System.Collections.Generic.IDictionary`2)" - } - ], - "partialFingerprints": { - "UniqueId": "stderr#MemberParameter" - }, - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" - } + "name": "GetPropertyNames(Newtonsoft.Json.Linq.JObject)", + "fullyQualifiedName": "microsoft.json.schema.validation.dll!Microsoft.Json.Schema.Validation.Validator.GetPropertyNames(Newtonsoft.Json.Linq.JObject)", + "parentIndex": 118, + "kind": "member" }, { - "ruleId": "CA1704", - "level": "warning", - "message": { - "text": "In method 'Invocation.Invocation(IEnumerable, string, IEnumerable, IEnumerable, DateTime, DateTime, int, IEnumerable, IEnumerable, string, string, int, string, bool, string, string, int, FileLocation, string, IDictionary, FileLocation, FileLocation, FileLocation, FileLocation, IDictionary)', correct the spelling of 'stdin' in parameter name 'stdin' or remove it entirely if it represents any sort of Hungarian notation.", - "messageId": "MemberParameter" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/Invocation.cs" - }, - "region": { - "startLine": 270, - "snippet": { - "text": " public Invocation(IEnumerable attachments, string commandLine, IEnumerable arguments, IEnumerable responseFiles, DateTime startTime, DateTime endTime, int exitCode, IEnumerable toolNotifications, IEnumerable configurationNotifications, string exitCodeDescription, string exitSignalName, int exitSignalNumber, string processStartFailureMessage, bool toolExecutionSuccessful, string machine, string account, int processId, FileLocation executableLocation, string workingDirectory, IDictionary environmentVariables, FileLocation stdin, FileLocation stdout, FileLocation stderr, FileLocation stdoutStderr, IDictionary properties)" - } - }, - "contextRegion": { - "startLine": 269, - "startColumn": 1, - "endLine": 271, - "endColumn": 10, - "charOffset": 12340, - "charLength": 776, - "snippet": { - "text": " /// \r\n public Invocation(IEnumerable attachments, string commandLine, IEnumerable arguments, IEnumerable responseFiles, DateTime startTime, DateTime endTime, int exitCode, IEnumerable toolNotifications, IEnumerable configurationNotifications, string exitCodeDescription, string exitSignalName, int exitSignalNumber, string processStartFailureMessage, bool toolExecutionSuccessful, string machine, string account, int processId, FileLocation executableLocation, string workingDirectory, IDictionary environmentVariables, FileLocation stdin, FileLocation stdout, FileLocation stderr, FileLocation stdoutStderr, IDictionary properties)\r\n {" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Invocation..ctor(System.Collections.Generic.IEnumerable`1,System.String,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,System.DateTime,System.DateTime,System.Int32,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,System.String,System.String,System.Int32,System.String,System.Boolean,System.String,System.String,System.Int32,Microsoft.CodeAnalysis.Sarif.FileLocation,System.String,System.Collections.Generic.IDictionary`2,Microsoft.CodeAnalysis.Sarif.FileLocation,Microsoft.CodeAnalysis.Sarif.FileLocation,Microsoft.CodeAnalysis.Sarif.FileLocation,Microsoft.CodeAnalysis.Sarif.FileLocation,System.Collections.Generic.IDictionary`2)" - } - ], - "partialFingerprints": { - "UniqueId": "stdin#MemberParameter" - }, - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" - } + "name": "TokenMatchesEnum(Newtonsoft.Json.Linq.JToken,System.Collections.Generic.IList`1)", + "fullyQualifiedName": "microsoft.json.schema.validation.dll!Microsoft.Json.Schema.Validation.Validator.TokenMatchesEnum(Newtonsoft.Json.Linq.JToken,System.Collections.Generic.IList`1)", + "parentIndex": 118, + "kind": "member" }, { - "ruleId": "CA1704", - "level": "warning", - "message": { - "text": "In method 'Invocation.Invocation(IEnumerable, string, IEnumerable, IEnumerable, DateTime, DateTime, int, IEnumerable, IEnumerable, string, string, int, string, bool, string, string, int, FileLocation, string, IDictionary, FileLocation, FileLocation, FileLocation, FileLocation, IDictionary)', correct the spelling of 'stdout' in parameter name 'stdout' or remove it entirely if it represents any sort of Hungarian notation.", - "messageId": "MemberParameter" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/Invocation.cs" - }, - "region": { - "startLine": 270, - "snippet": { - "text": " public Invocation(IEnumerable attachments, string commandLine, IEnumerable arguments, IEnumerable responseFiles, DateTime startTime, DateTime endTime, int exitCode, IEnumerable toolNotifications, IEnumerable configurationNotifications, string exitCodeDescription, string exitSignalName, int exitSignalNumber, string processStartFailureMessage, bool toolExecutionSuccessful, string machine, string account, int processId, FileLocation executableLocation, string workingDirectory, IDictionary environmentVariables, FileLocation stdin, FileLocation stdout, FileLocation stderr, FileLocation stdoutStderr, IDictionary properties)" - } - }, - "contextRegion": { - "startLine": 269, - "startColumn": 1, - "endLine": 271, - "endColumn": 10, - "charOffset": 12340, - "charLength": 776, - "snippet": { - "text": " /// \r\n public Invocation(IEnumerable attachments, string commandLine, IEnumerable arguments, IEnumerable responseFiles, DateTime startTime, DateTime endTime, int exitCode, IEnumerable toolNotifications, IEnumerable configurationNotifications, string exitCodeDescription, string exitSignalName, int exitSignalNumber, string processStartFailureMessage, bool toolExecutionSuccessful, string machine, string account, int processId, FileLocation executableLocation, string workingDirectory, IDictionary environmentVariables, FileLocation stdin, FileLocation stdout, FileLocation stderr, FileLocation stdoutStderr, IDictionary properties)\r\n {" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Invocation..ctor(System.Collections.Generic.IEnumerable`1,System.String,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,System.DateTime,System.DateTime,System.Int32,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,System.String,System.String,System.Int32,System.String,System.Boolean,System.String,System.String,System.Int32,Microsoft.CodeAnalysis.Sarif.FileLocation,System.String,System.Collections.Generic.IDictionary`2,Microsoft.CodeAnalysis.Sarif.FileLocation,Microsoft.CodeAnalysis.Sarif.FileLocation,Microsoft.CodeAnalysis.Sarif.FileLocation,Microsoft.CodeAnalysis.Sarif.FileLocation,System.Collections.Generic.IDictionary`2)" - } - ], - "partialFingerprints": { - "UniqueId": "stdout#MemberParameter" - }, - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" - } + "name": "UnicodeLength(System.String)", + "fullyQualifiedName": "microsoft.json.schema.validation.dll!Microsoft.Json.Schema.Validation.Validator.UnicodeLength(System.String)", + "parentIndex": 118, + "kind": "member" }, { - "ruleId": "CA1704", - "level": "warning", - "message": { - "text": "In method 'Invocation.Invocation(IEnumerable, string, IEnumerable, IEnumerable, DateTime, DateTime, int, IEnumerable, IEnumerable, string, string, int, string, bool, string, string, int, FileLocation, string, IDictionary, FileLocation, FileLocation, FileLocation, FileLocation, IDictionary)', correct the spelling of 'stdout' in parameter name 'stdoutStderr' or remove it entirely if it represents any sort of Hungarian notation.", - "messageId": "MemberParameter" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/Invocation.cs" - }, - "region": { - "startLine": 270, - "snippet": { - "text": " public Invocation(IEnumerable attachments, string commandLine, IEnumerable arguments, IEnumerable responseFiles, DateTime startTime, DateTime endTime, int exitCode, IEnumerable toolNotifications, IEnumerable configurationNotifications, string exitCodeDescription, string exitSignalName, int exitSignalNumber, string processStartFailureMessage, bool toolExecutionSuccessful, string machine, string account, int processId, FileLocation executableLocation, string workingDirectory, IDictionary environmentVariables, FileLocation stdin, FileLocation stdout, FileLocation stderr, FileLocation stdoutStderr, IDictionary properties)" - } - }, - "contextRegion": { - "startLine": 269, - "startColumn": 1, - "endLine": 271, - "endColumn": 10, - "charOffset": 12340, - "charLength": 776, - "snippet": { - "text": " /// \r\n public Invocation(IEnumerable attachments, string commandLine, IEnumerable arguments, IEnumerable responseFiles, DateTime startTime, DateTime endTime, int exitCode, IEnumerable toolNotifications, IEnumerable configurationNotifications, string exitCodeDescription, string exitSignalName, int exitSignalNumber, string processStartFailureMessage, bool toolExecutionSuccessful, string machine, string account, int processId, FileLocation executableLocation, string workingDirectory, IDictionary environmentVariables, FileLocation stdin, FileLocation stdout, FileLocation stderr, FileLocation stdoutStderr, IDictionary properties)\r\n {" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Invocation..ctor(System.Collections.Generic.IEnumerable`1,System.String,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,System.DateTime,System.DateTime,System.Int32,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,System.String,System.String,System.Int32,System.String,System.Boolean,System.String,System.String,System.Int32,Microsoft.CodeAnalysis.Sarif.FileLocation,System.String,System.Collections.Generic.IDictionary`2,Microsoft.CodeAnalysis.Sarif.FileLocation,Microsoft.CodeAnalysis.Sarif.FileLocation,Microsoft.CodeAnalysis.Sarif.FileLocation,Microsoft.CodeAnalysis.Sarif.FileLocation,System.Collections.Generic.IDictionary`2)" - } - ], - "partialFingerprints": { - "UniqueId": "stdout#MemberParameter" - }, - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" - } + "name": "ValidateAdditionalProperties(Newtonsoft.Json.Linq.JObject,System.Collections.Generic.List`1,Microsoft.Json.Schema.AdditionalProperties)", + "fullyQualifiedName": "microsoft.json.schema.validation.dll!Microsoft.Json.Schema.Validation.Validator.ValidateAdditionalProperties(Newtonsoft.Json.Linq.JObject,System.Collections.Generic.List`1,Microsoft.Json.Schema.AdditionalProperties)", + "parentIndex": 118, + "kind": "member" }, { - "ruleId": "CA2227", - "level": "warning", - "message": { - "text": "Change 'Invocation.Arguments' to be read-only by removing the property setter." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/Invocation.cs" - }, - "region": { - "startLine": 51, - "snippet": { - "text": " public IList Arguments { get; set; }" - } - }, - "contextRegion": { - "startLine": 50, - "startColumn": 1, - "endLine": 52, - "endColumn": 1, - "charOffset": 1893, - "charLength": 142, - "snippet": { - "text": " [DataMember(Name = \"arguments\", IsRequired = false, EmitDefaultValue = false)]\r\n public IList Arguments { get; set; }\r\n" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Invocation.Arguments" - } - ], - "properties": { - "Category": "Microsoft.Usage", - "FixCategory": "Breaking" - } + "name": "ValidateToken(Newtonsoft.Json.Linq.JToken,Microsoft.Json.Schema.JsonSchema)", + "fullyQualifiedName": "microsoft.json.schema.validation.dll!Microsoft.Json.Schema.Validation.Validator.ValidateToken(Newtonsoft.Json.Linq.JToken,Microsoft.Json.Schema.JsonSchema)", + "parentIndex": 118, + "kind": "member" }, { - "ruleId": "CA2227", - "level": "warning", - "message": { - "text": "Change 'Invocation.Attachments' to be read-only by removing the property setter." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/Invocation.cs" - }, - "region": { - "startLine": 39, - "snippet": { - "text": " public IList Attachments { get; set; }" - } - }, - "contextRegion": { - "startLine": 38, - "startColumn": 1, - "endLine": 40, - "endColumn": 1, - "charOffset": 1324, - "charLength": 150, - "snippet": { - "text": " [DataMember(Name = \"attachments\", IsRequired = false, EmitDefaultValue = false)]\r\n public IList Attachments { get; set; }\r\n" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Invocation.Attachments" - } - ], - "properties": { - "Category": "Microsoft.Usage", - "FixCategory": "Breaking" - } + "name": "VersionConstants", + "fullyQualifiedName": "microsoft.json.schema.validation.dll!Microsoft.Json.Schema.Validation.VersionConstants", + "parentIndex": 105, + "kind": "type" }, { - "ruleId": "CA2227", - "level": "warning", - "message": { - "text": "Change 'Invocation.ConfigurationNotifications' to be read-only by removing the property setter." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/Invocation.cs" - }, - "region": { - "startLine": 87, - "snippet": { - "text": " public IList ConfigurationNotifications { get; set; }" - } - }, - "contextRegion": { - "startLine": 86, - "startColumn": 1, - "endLine": 88, - "endColumn": 1, - "charOffset": 3621, - "charLength": 182, - "snippet": { - "text": " [DataMember(Name = \"configurationNotifications\", IsRequired = false, EmitDefaultValue = false)]\r\n public IList ConfigurationNotifications { get; set; }\r\n" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Invocation.ConfigurationNotifications" - } - ], - "properties": { - "Category": "Microsoft.Usage", - "FixCategory": "Breaking" - } + "name": "PreRelease", + "fullyQualifiedName": "microsoft.json.schema.validation.dll!Microsoft.Json.Schema.Validation.VersionConstants.PreRelease", + "parentIndex": 126, + "kind": "member" }, { - "ruleId": "CA1026", - "level": "error", - "message": { - "text": "Replace method 'Invocation.Create(bool, IEnumerable)' with an overload that supplies all default arguments." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Core/Invocation.cs" - }, - "region": { - "startLine": 19, - "snippet": { - "text": " {" - } - }, - "contextRegion": { - "startLine": 18, - "startColumn": 1, - "endLine": 20, - "endColumn": 44, - "charOffset": 528, - "charLength": 111, - "snippet": { - "text": " IEnumerable propertiesToLog = null)\r\n {\r\n var invocation = new Invocation" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Invocation.Create(System.Boolean,System.Collections.Generic.IEnumerable`1)" - } - ], - "properties": { - "Category": "Microsoft.Design", - "FixCategory": "Breaking" - } + "name": "sarif.converters.dll", + "kind": "module" }, { - "ruleId": "CA2227", - "level": "warning", - "message": { - "text": "Change 'Invocation.EnvironmentVariables' to be read-only by removing the property setter." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/Invocation.cs" - }, - "region": { - "startLine": 153, - "snippet": { - "text": " public IDictionary EnvironmentVariables { get; set; }" - } - }, - "contextRegion": { - "startLine": 152, - "startColumn": 1, - "endLine": 154, - "endColumn": 1, - "charOffset": 6616, - "charLength": 178, - "snippet": { - "text": " [DataMember(Name = \"environmentVariables\", IsRequired = false, EmitDefaultValue = false)]\r\n public IDictionary EnvironmentVariables { get; set; }\r\n" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Invocation.EnvironmentVariables" - } - ], - "properties": { - "Category": "Microsoft.Usage", - "FixCategory": "Breaking" - } + "name": "Microsoft.CodeAnalysis.Sarif.Converters", + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters", + "parentIndex": 128, + "kind": "namespace" }, { - "ruleId": "CA1502", - "level": "warning", - "message": { - "text": "'Invocation.Init(IEnumerable, string, IEnumerable, IEnumerable, DateTime, DateTime, int, IEnumerable, IEnumerable, string, string, int, string, bool, string, string, int, FileLocation, string, IDictionary, FileLocation, FileLocation, FileLocation, FileLocation, IDictionary)' has a cyclomatic complexity of 27. Rewrite or refactor the method to reduce complexity to 25." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/Invocation.cs" - }, - "region": { - "startLine": 313, - "snippet": { - "text": " {" - } - }, - "contextRegion": { - "startLine": 312, - "startColumn": 1, - "endLine": 314, - "endColumn": 37, - "charOffset": 15116, - "charLength": 792, - "snippet": { - "text": " private void Init(IEnumerable attachments, string commandLine, IEnumerable arguments, IEnumerable responseFiles, DateTime startTime, DateTime endTime, int exitCode, IEnumerable toolNotifications, IEnumerable configurationNotifications, string exitCodeDescription, string exitSignalName, int exitSignalNumber, string processStartFailureMessage, bool toolExecutionSuccessful, string machine, string account, int processId, FileLocation executableLocation, string workingDirectory, IDictionary environmentVariables, FileLocation stdin, FileLocation stdout, FileLocation stderr, FileLocation stdoutStderr, IDictionary properties)\r\n {\r\n if (attachments != null)" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Invocation.Init(System.Collections.Generic.IEnumerable`1,System.String,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,System.DateTime,System.DateTime,System.Int32,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,System.String,System.String,System.Int32,System.String,System.Boolean,System.String,System.String,System.Int32,Microsoft.CodeAnalysis.Sarif.FileLocation,System.String,System.Collections.Generic.IDictionary`2,Microsoft.CodeAnalysis.Sarif.FileLocation,Microsoft.CodeAnalysis.Sarif.FileLocation,Microsoft.CodeAnalysis.Sarif.FileLocation,Microsoft.CodeAnalysis.Sarif.FileLocation,System.Collections.Generic.IDictionary`2)" - } - ], - "properties": { - "Category": "Microsoft.Maintainability", - "FixCategory": "NonBreaking" - } + "name": "AndroidStudioConverter", + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.AndroidStudioConverter", + "parentIndex": 129, + "kind": "type" }, { - "ruleId": "CA2227", - "level": "warning", - "message": { - "text": "Change 'Invocation.ResponseFiles' to be read-only by removing the property setter." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/Invocation.cs" - }, - "region": { - "startLine": 57, - "snippet": { - "text": " public IList ResponseFiles { get; set; }" - } - }, - "contextRegion": { - "startLine": 56, - "startColumn": 1, - "endLine": 58, - "endColumn": 1, - "charOffset": 2171, - "charLength": 156, - "snippet": { - "text": " [DataMember(Name = \"responseFiles\", IsRequired = false, EmitDefaultValue = false)]\r\n public IList ResponseFiles { get; set; }\r\n" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Invocation.ResponseFiles" - } - ], - "properties": { - "Category": "Microsoft.Usage", - "FixCategory": "Breaking" - } + "name": "Convert(System.IO.Stream,Microsoft.CodeAnalysis.Sarif.IResultLogWriter,Microsoft.CodeAnalysis.Sarif.OptionallyEmittedData)", + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.AndroidStudioConverter.Convert(System.IO.Stream,Microsoft.CodeAnalysis.Sarif.IResultLogWriter,Microsoft.CodeAnalysis.Sarif.OptionallyEmittedData)", + "parentIndex": 130, + "kind": "member" }, { - "ruleId": "CA1704", - "level": "warning", - "message": { - "text": "Correct the spelling of 'Stderr' in member name 'Invocation.Stderr' or remove it entirely if it represents any sort of Hungarian notation.", - "messageId": "Member" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/Invocation.cs" - }, - "region": { - "startLine": 171, - "snippet": { - "text": " public FileLocation Stderr { get; set; }" - } - }, - "contextRegion": { - "startLine": 170, - "startColumn": 1, - "endLine": 172, - "endColumn": 1, - "charOffset": 7484, - "charLength": 135, - "snippet": { - "text": " [DataMember(Name = \"stderr\", IsRequired = false, EmitDefaultValue = false)]\r\n public FileLocation Stderr { get; set; }\r\n" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Invocation.Stderr" - } - ], - "partialFingerprints": { - "UniqueId": "Stderr#Member" - }, - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" - } + "name": "AssemblyLoadFileDelegate", + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.AssemblyLoadFileDelegate", + "parentIndex": 129, + "kind": "type" }, { - "ruleId": "CA1704", - "level": "warning", - "message": { - "text": "Correct the spelling of 'Stdin' in member name 'Invocation.Stdin' or remove it entirely if it represents any sort of Hungarian notation.", - "messageId": "Member" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/Invocation.cs" - }, - "region": { - "startLine": 159, - "snippet": { - "text": " public FileLocation Stdin { get; set; }" - } - }, - "contextRegion": { - "startLine": 158, - "startColumn": 1, - "endLine": 160, - "endColumn": 1, - "charOffset": 6933, - "charLength": 133, - "snippet": { - "text": " [DataMember(Name = \"stdin\", IsRequired = false, EmitDefaultValue = false)]\r\n public FileLocation Stdin { get; set; }\r\n" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Invocation.Stdin" - } - ], - "partialFingerprints": { - "UniqueId": "Stdin#Member" - }, - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" - } + "name": "ClangAnalyzerConverter", + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.ClangAnalyzerConverter", + "parentIndex": 129, + "kind": "type" }, { - "ruleId": "CA1704", - "level": "warning", - "message": { - "text": "Correct the spelling of 'Stdout' in member name 'Invocation.Stdout' or remove it entirely if it represents any sort of Hungarian notation.", - "messageId": "Member" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/Invocation.cs" - }, - "region": { - "startLine": 165, - "snippet": { - "text": " public FileLocation Stdout { get; set; }" - } - }, - "contextRegion": { - "startLine": 164, - "startColumn": 1, - "endLine": 166, - "endColumn": 1, - "charOffset": 7208, - "charLength": 135, - "snippet": { - "text": " [DataMember(Name = \"stdout\", IsRequired = false, EmitDefaultValue = false)]\r\n public FileLocation Stdout { get; set; }\r\n" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Invocation.Stdout" - } - ], - "partialFingerprints": { - "UniqueId": "Stdout#Member" - }, - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" - } + "name": "Convert(System.IO.Stream,Microsoft.CodeAnalysis.Sarif.IResultLogWriter,Microsoft.CodeAnalysis.Sarif.OptionallyEmittedData)", + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.ClangAnalyzerConverter.Convert(System.IO.Stream,Microsoft.CodeAnalysis.Sarif.IResultLogWriter,Microsoft.CodeAnalysis.Sarif.OptionallyEmittedData)", + "parentIndex": 133, + "kind": "member" }, { - "ruleId": "CA1704", - "level": "warning", - "message": { - "text": "Correct the spelling of 'Stderr' in member name 'Invocation.StdoutStderr' or remove it entirely if it represents any sort of Hungarian notation.", - "messageId": "Member" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/Invocation.cs" - }, - "region": { - "startLine": 177, - "snippet": { - "text": " public FileLocation StdoutStderr { get; set; }" - } - }, - "contextRegion": { - "startLine": 176, - "startColumn": 1, - "endLine": 178, - "endColumn": 1, - "charOffset": 7792, - "charLength": 147, - "snippet": { - "text": " [DataMember(Name = \"stdoutStderr\", IsRequired = false, EmitDefaultValue = false)]\r\n public FileLocation StdoutStderr { get; set; }\r\n" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Invocation.StdoutStderr" - } - ], - "partialFingerprints": { - "UniqueId": "Stderr#Member" - }, - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" - } + "name": "ReadDictionary(System.Xml.XmlReader)", + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.ClangAnalyzerConverter.ReadDictionary(System.Xml.XmlReader)", + "parentIndex": 133, + "kind": "member" }, { - "ruleId": "CA1704", - "level": "warning", - "message": { - "text": "Correct the spelling of 'Stdout' in member name 'Invocation.StdoutStderr' or remove it entirely if it represents any sort of Hungarian notation.", - "messageId": "Member" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/Invocation.cs" - }, - "region": { - "startLine": 177, - "snippet": { - "text": " public FileLocation StdoutStderr { get; set; }" - } - }, - "contextRegion": { - "startLine": 176, - "startColumn": 1, - "endLine": 178, - "endColumn": 1, - "charOffset": 7792, - "charLength": 147, - "snippet": { - "text": " [DataMember(Name = \"stdoutStderr\", IsRequired = false, EmitDefaultValue = false)]\r\n public FileLocation StdoutStderr { get; set; }\r\n" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Invocation.StdoutStderr" - } - ], - "partialFingerprints": { - "UniqueId": "Stdout#Member" - }, - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" - } + "name": "ConverterResources", + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.ConverterResources", + "parentIndex": 129, + "kind": "type" }, { - "ruleId": "CA2227", - "level": "warning", - "message": { - "text": "Change 'Invocation.ToolNotifications' to be read-only by removing the property setter." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/Invocation.cs" - }, - "region": { - "startLine": 81, - "snippet": { - "text": " public IList ToolNotifications { get; set; }" - } - }, - "contextRegion": { - "startLine": 80, - "startColumn": 1, - "endLine": 82, - "endColumn": 1, - "charOffset": 3306, - "charLength": 164, - "snippet": { - "text": " [DataMember(Name = \"toolNotifications\", IsRequired = false, EmitDefaultValue = false)]\r\n public IList ToolNotifications { get; set; }\r\n" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Invocation.ToolNotifications" - } - ], - "properties": { - "Category": "Microsoft.Usage", - "FixCategory": "Breaking" - } + "name": ".ctor()", + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.ConverterResources..ctor()", + "parentIndex": 136, + "kind": "member" }, { - "ruleId": "CA1502", - "level": "warning", - "message": { - "text": "'InvocationEqualityComparer.Equals(Invocation, Invocation)' has a cyclomatic complexity of 68. Rewrite or refactor the method to reduce complexity to 25." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/InvocationEqualityComparer.cs" - }, - "region": { - "startLine": 20, - "snippet": { - "text": " {" - } - }, - "contextRegion": { - "startLine": 19, - "startColumn": 1, - "endLine": 21, - "endColumn": 46, - "charOffset": 730, - "charLength": 119, - "snippet": { - "text": " public bool Equals(Invocation left, Invocation right)\r\n {\r\n if (ReferenceEquals(left, right))" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.InvocationEqualityComparer.Equals(Microsoft.CodeAnalysis.Sarif.Invocation,Microsoft.CodeAnalysis.Sarif.Invocation)" - } - ], - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Maintainability", - "FixCategory": "NonBreaking" - } + "name": "CppCheckConverter", + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.CppCheckConverter", + "parentIndex": 129, + "kind": "type" }, { - "ruleId": "CA1809", - "level": "warning", - "message": { - "text": "'InvocationEqualityComparer.Equals(Invocation, Invocation)' has 65 local variables, 56 of which were generated by the compiler. Refactor 'InvocationEqualityComparer.Equals(Invocation, Invocation)' so that it uses fewer than 64 local variables.", - "messageId": "Compiler" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/InvocationEqualityComparer.cs" - }, - "region": { - "startLine": 20, - "snippet": { - "text": " {" - } - }, - "contextRegion": { - "startLine": 19, - "startColumn": 1, - "endLine": 21, - "endColumn": 46, - "charOffset": 730, - "charLength": 119, - "snippet": { - "text": " public bool Equals(Invocation left, Invocation right)\r\n {\r\n if (ReferenceEquals(left, right))" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.InvocationEqualityComparer.Equals(Microsoft.CodeAnalysis.Sarif.Invocation,Microsoft.CodeAnalysis.Sarif.Invocation)" - } - ], - "partialFingerprints": { - "UniqueId": "Compiler" - }, - "properties": { - "Category": "Microsoft.Performance", - "FixCategory": "NonBreaking" - } + "name": "Convert(System.IO.Stream,Microsoft.CodeAnalysis.Sarif.IResultLogWriter,Microsoft.CodeAnalysis.Sarif.OptionallyEmittedData)", + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.CppCheckConverter.Convert(System.IO.Stream,Microsoft.CodeAnalysis.Sarif.IResultLogWriter,Microsoft.CodeAnalysis.Sarif.OptionallyEmittedData)", + "parentIndex": 138, + "kind": "member" }, { - "ruleId": "CA1502", - "level": "warning", - "message": { - "text": "'InvocationEqualityComparer.GetHashCode(Invocation)' has a cyclomatic complexity of 42. Rewrite or refactor the method to reduce complexity to 25." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/InvocationEqualityComparer.cs" - }, - "region": { - "startLine": 274, - "snippet": { - "text": " {" - } - }, - "contextRegion": { - "startLine": 273, - "startColumn": 1, - "endLine": 275, - "endColumn": 44, - "charOffset": 8864, - "charLength": 102, - "snippet": { - "text": " public int GetHashCode(Invocation obj)\r\n {\r\n if (ReferenceEquals(obj, null))" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.InvocationEqualityComparer.GetHashCode(Microsoft.CodeAnalysis.Sarif.Invocation)" - } - ], - "properties": { - "Category": "Microsoft.Maintainability", - "FixCategory": "NonBreaking" - } + "name": "Extensions", + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.Extensions", + "parentIndex": 129, + "kind": "type" }, { - "ruleId": "CA1024", - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.IOptionsProvider.GetOptions()" - } - ], - "suppressionStates": ["suppressedInSource"], - "properties": { - "Category": "Microsoft.Design", - "FixCategory": "Breaking" - } + "name": "HasDefaultConstructor(System.Type)", + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.Extensions.HasDefaultConstructor(System.Type)", + "parentIndex": 140, + "kind": "member" }, { - "ruleId": "CA1704", - "level": "warning", - "message": { - "text": "Correct the spelling of 'Sarif' in type name 'ISarifNode'.", - "messageId": "Type" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.ISarifNode" - } - ], - "partialFingerprints": { - "UniqueId": "Sarif#Type" - }, - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" - } + "name": "MatchesToolFormat(System.String,System.String)", + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.Extensions.MatchesToolFormat(System.String,System.String)", + "parentIndex": 140, + "kind": "member" }, { - "ruleId": "CA1704", - "level": "warning", - "message": { - "text": "Correct the spelling of 'Sarif' in member name 'ISarifNode.SarifNodeKind' or remove it entirely if it represents any sort of Hungarian notation.", - "messageId": "Member" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.ISarifNode.SarifNodeKind" - } - ], - "partialFingerprints": { - "UniqueId": "Sarif#Member" - }, - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" - } + "name": "FortifyConverter", + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.FortifyConverter", + "parentIndex": 129, + "kind": "type" }, { - "ruleId": "CA2214", - "level": "warning", - "message": { - "text": "'Location.Location(Location)' contains a call chain that results in a call to a virtual method defined by the class. Review the following call stack for unintended consequences: \r\n\r\nLocation..ctor(Location)\r\nLocation.Init(PhysicalLocation, String, Message, IEnumerable, IDictionary):Void\r\nPropertyBagHolder.set_Properties(IDictionary):Void" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/Location.cs" - }, - "region": { - "startLine": 104, - "snippet": { - "text": " public Location(Location other)" - } - }, - "contextRegion": { - "startLine": 103, - "startColumn": 1, - "endLine": 105, - "endColumn": 10, - "charOffset": 4436, - "charLength": 76, - "snippet": { - "text": " /// \r\n public Location(Location other)\r\n {" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Location..ctor(Microsoft.CodeAnalysis.Sarif.Location)" - } - ], - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Usage", - "FixCategory": "NonBreaking" - } + "name": "Convert(System.IO.Stream,Microsoft.CodeAnalysis.Sarif.IResultLogWriter,Microsoft.CodeAnalysis.Sarif.OptionallyEmittedData)", + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.FortifyConverter.Convert(System.IO.Stream,Microsoft.CodeAnalysis.Sarif.IResultLogWriter,Microsoft.CodeAnalysis.Sarif.OptionallyEmittedData)", + "parentIndex": 143, + "kind": "member" }, { - "ruleId": "CA2214", - "level": "warning", - "message": { - "text": "'Location.Location(PhysicalLocation, string, Message, IEnumerable, IDictionary)' contains a call chain that results in a call to a virtual method defined by the class. Review the following call stack for unintended consequences: \r\n\r\nLocation..ctor(PhysicalLocation, String, Message, IEnumerable, IDictionary)\r\nLocation.Init(PhysicalLocation, String, Message, IEnumerable, IDictionary):Void\r\nPropertyBagHolder.set_Properties(IDictionary):Void" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/Location.cs" - }, - "region": { - "startLine": 90, - "snippet": { - "text": " public Location(PhysicalLocation physicalLocation, string fullyQualifiedLogicalName, Message message, IEnumerable annotations, IDictionary properties)" - } - }, - "contextRegion": { - "startLine": 89, - "startColumn": 1, - "endLine": 91, - "endColumn": 10, - "charOffset": 3695, - "charLength": 231, - "snippet": { - "text": " /// \r\n public Location(PhysicalLocation physicalLocation, string fullyQualifiedLogicalName, Message message, IEnumerable annotations, IDictionary properties)\r\n {" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Location..ctor(Microsoft.CodeAnalysis.Sarif.PhysicalLocation,System.String,Microsoft.CodeAnalysis.Sarif.Message,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IDictionary`2)" - } - ], - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Usage", - "FixCategory": "NonBreaking" - } + "name": "FortifyFprConverter", + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.FortifyFprConverter", + "parentIndex": 129, + "kind": "type" }, { - "ruleId": "CA2227", - "level": "warning", - "message": { - "text": "Change 'Location.Annotations' to be read-only by removing the property setter." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/Location.cs" - }, - "region": { - "startLine": 57, - "snippet": { - "text": " public IList Annotations { get; set; }" - } - }, - "contextRegion": { - "startLine": 56, - "startColumn": 1, - "endLine": 58, - "endColumn": 1, - "charOffset": 2161, - "charLength": 146, - "snippet": { - "text": " [DataMember(Name = \"annotations\", IsRequired = false, EmitDefaultValue = false)]\r\n public IList Annotations { get; set; }\r\n" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Location.Annotations" - } - ], - "properties": { - "Category": "Microsoft.Usage", - "FixCategory": "Breaking" - } + "name": "AddMessagesToResults()", + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.FortifyFprConverter.AddMessagesToResults()", + "parentIndex": 145, + "kind": "member" }, { - "ruleId": "CA2227", - "level": "warning", - "message": { - "text": "Change 'Message.Arguments' to be read-only by removing the property setter." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/Message.cs" - }, - "region": { - "startLine": 62, - "snippet": { - "text": " public IList Arguments { get; set; }" - } - }, - "contextRegion": { - "startLine": 61, - "startColumn": 1, - "endLine": 63, - "endColumn": 1, - "charOffset": 2197, - "charLength": 142, - "snippet": { - "text": " [DataMember(Name = \"arguments\", IsRequired = false, EmitDefaultValue = false)]\r\n public IList Arguments { get; set; }\r\n" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Message.Arguments" - } - ], - "properties": { - "Category": "Microsoft.Usage", - "FixCategory": "Breaking" - } + "name": "ParseAuditStream(System.IO.Stream)", + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.FortifyFprConverter.ParseAuditStream(System.IO.Stream)", + "parentIndex": 145, + "kind": "member" }, { - "ruleId": "CA1062", - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.MultiplyByPrimesHash.AddRange(System.Collections.Generic.IEnumerable`1)" - } - ], - "partialFingerprints": { - "UniqueId": "0" - }, - "suppressionStates": ["suppressedInSource"], - "properties": { - "Category": "Microsoft.Design", - "FixCategory": "DependsOnFix" - } + "name": "ParseFile()", + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.FortifyFprConverter.ParseFile()", + "parentIndex": 145, + "kind": "member" }, { - "ruleId": "CA1062", - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.MultiplyByPrimesHash.AddRange(System.Collections.IEnumerable)" - } - ], - "partialFingerprints": { - "UniqueId": "0" - }, - "suppressionStates": ["suppressedInSource"], - "properties": { - "Category": "Microsoft.Design", - "FixCategory": "DependsOnFix" - } + "name": "ParseRegion()", + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.FortifyFprConverter.ParseRegion()", + "parentIndex": 145, + "kind": "member" }, { - "ruleId": "CA1062", - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.MultiplyByPrimesHash.AddRange(System.Int32[])" - } - ], - "partialFingerprints": { - "UniqueId": "0" - }, - "suppressionStates": ["suppressedInSource"], - "properties": { - "Category": "Microsoft.Design", - "FixCategory": "DependsOnFix" - } + "name": "ParseSnippet()", + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.FortifyFprConverter.ParseSnippet()", + "parentIndex": 145, + "kind": "member" }, { - "ruleId": "CA1062", - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.NewLineIndex..ctor(System.String)" - } - ], - "partialFingerprints": { - "UniqueId": "0" - }, - "suppressionStates": ["suppressedInSource"], - "properties": { - "Category": "Microsoft.Design", - "FixCategory": "DependsOnFix" - } + "name": "FxCopConverter", + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.FxCopConverter", + "parentIndex": 129, + "kind": "type" }, { - "ruleId": "CA2214", - "level": "warning", - "message": { - "text": "'Node.Node(Node)' contains a call chain that results in a call to a virtual method defined by the class. Review the following call stack for unintended consequences: \r\n\r\nNode..ctor(Node)\r\nNode.Init(String, Message, Location, IEnumerable, IDictionary):Void\r\nPropertyBagHolder.set_Properties(IDictionary):Void" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/Node.cs" - }, - "region": { - "startLine": 104, - "snippet": { - "text": " public Node(Node other)" - } - }, - "contextRegion": { - "startLine": 103, - "startColumn": 1, - "endLine": 105, - "endColumn": 10, - "charOffset": 4009, - "charLength": 68, - "snippet": { - "text": " /// \r\n public Node(Node other)\r\n {" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Node..ctor(Microsoft.CodeAnalysis.Sarif.Node)" - } - ], - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Usage", - "FixCategory": "NonBreaking" - } + "name": "BuildFileLocationFromFxCopReference(System.String)", + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.FxCopConverter.BuildFileLocationFromFxCopReference(System.String)", + "parentIndex": 151, + "kind": "member" }, { - "ruleId": "CA2214", - "level": "warning", - "message": { - "text": "'Node.Node(string, Message, Location, IEnumerable, IDictionary)' contains a call chain that results in a call to a virtual method defined by the class. Review the following call stack for unintended consequences: \r\n\r\nNode..ctor(String, Message, Location, IEnumerable, IDictionary)\r\nNode.Init(String, Message, Location, IEnumerable, IDictionary):Void\r\nPropertyBagHolder.set_Properties(IDictionary):Void" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/Node.cs" - }, - "region": { - "startLine": 90, - "snippet": { - "text": " public Node(string id, Message label, Location location, IEnumerable children, IDictionary properties)" - } - }, - "contextRegion": { - "startLine": 89, - "startColumn": 1, - "endLine": 91, - "endColumn": 10, - "charOffset": 3358, - "charLength": 181, - "snippet": { - "text": " /// \r\n public Node(string id, Message label, Location location, IEnumerable children, IDictionary properties)\r\n {" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Node..ctor(System.String,Microsoft.CodeAnalysis.Sarif.Message,Microsoft.CodeAnalysis.Sarif.Location,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IDictionary`2)" - } - ], - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Usage", - "FixCategory": "NonBreaking" - } + "name": "CreateRule(Microsoft.CodeAnalysis.Sarif.Converters.FxCopLogReader+Context)", + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.FxCopConverter.CreateRule(Microsoft.CodeAnalysis.Sarif.Converters.FxCopLogReader+Context)", + "parentIndex": 151, + "kind": "member" }, { - "ruleId": "CA2227", - "level": "warning", - "message": { - "text": "Change 'Node.Children' to be read-only by removing the property setter." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/Node.cs" - }, - "region": { - "startLine": 57, - "snippet": { - "text": " public IList Children { get; set; }" - } - }, - "contextRegion": { - "startLine": 56, - "startColumn": 1, - "endLine": 58, - "endColumn": 1, - "charOffset": 1920, - "charLength": 138, - "snippet": { - "text": " [DataMember(Name = \"children\", IsRequired = false, EmitDefaultValue = false)]\r\n public IList Children { get; set; }\r\n" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Node.Children" - } - ], - "properties": { - "Category": "Microsoft.Usage", - "FixCategory": "Breaking" - } + "name": "FxCopLogReader", + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.FxCopLogReader", + "parentIndex": 129, + "kind": "type" }, { - "ruleId": "CA1704", - "level": "warning", - "message": { - "text": "Correct the spelling of 'Msg' in member name 'Notes.Msg001AnalyzingTarget' or remove it entirely if it represents any sort of Hungarian notation.", - "messageId": "Member" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Notes.Msg001AnalyzingTarget" - } - ], - "partialFingerprints": { - "UniqueId": "Msg#Member" - }, - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" - } + "name": "Read(Microsoft.CodeAnalysis.Sarif.Converters.FxCopLogReader+Context,System.IO.Stream)", + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.FxCopLogReader.Read(Microsoft.CodeAnalysis.Sarif.Converters.FxCopLogReader+Context,System.IO.Stream)", + "parentIndex": 154, + "kind": "member" }, { - "ruleId": "CA2214", - "level": "warning", - "message": { - "text": "'Notification.Notification(Notification)' contains a call chain that results in a call to a virtual method defined by the class. Review the following call stack for unintended consequences: \r\n\r\nNotification..ctor(Notification)\r\nNotification.Init(String, String, PhysicalLocation, Message, FailureLevel, Int32, DateTime, ExceptionData, IDictionary):Void\r\nPropertyBagHolder.set_Properties(IDictionary):Void" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/Notification.cs" - }, - "region": { - "startLine": 140, - "snippet": { - "text": " public Notification(Notification other)" - } - }, - "contextRegion": { - "startLine": 139, - "startColumn": 1, - "endLine": 141, - "endColumn": 10, - "charOffset": 6167, - "charLength": 84, - "snippet": { - "text": " /// \r\n public Notification(Notification other)\r\n {" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Notification..ctor(Microsoft.CodeAnalysis.Sarif.Notification)" - } - ], - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Usage", - "FixCategory": "NonBreaking" - } + "name": "LogReader`1", + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.LogReader`1", + "parentIndex": 129, + "kind": "type" }, { - "ruleId": "CA2214", - "level": "warning", - "message": { - "text": "'Notification.Notification(string, string, PhysicalLocation, Message, FailureLevel, int, DateTime, ExceptionData, IDictionary)' contains a call chain that results in a call to a virtual method defined by the class. Review the following call stack for unintended consequences: \r\n\r\nNotification..ctor(String, String, PhysicalLocation, Message, FailureLevel, Int32, DateTime, ExceptionData, IDictionary)\r\nNotification.Init(String, String, PhysicalLocation, Message, FailureLevel, Int32, DateTime, ExceptionData, IDictionary):Void\r\nPropertyBagHolder.set_Properties(IDictionary):Void" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/Notification.cs" - }, - "region": { - "startLine": 126, - "snippet": { - "text": " public Notification(string id, string ruleId, PhysicalLocation physicalLocation, Message message, FailureLevel level, int threadId, DateTime time, ExceptionData exception, IDictionary properties)" - } - }, - "contextRegion": { - "startLine": 125, - "startColumn": 1, - "endLine": 127, - "endColumn": 10, - "charOffset": 5374, - "charLength": 273, - "snippet": { - "text": " /// \r\n public Notification(string id, string ruleId, PhysicalLocation physicalLocation, Message message, FailureLevel level, int threadId, DateTime time, ExceptionData exception, IDictionary properties)\r\n {" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Notification..ctor(System.String,System.String,Microsoft.CodeAnalysis.Sarif.PhysicalLocation,Microsoft.CodeAnalysis.Sarif.Message,Microsoft.CodeAnalysis.Sarif.FailureLevel,System.Int32,System.DateTime,Microsoft.CodeAnalysis.Sarif.ExceptionData,System.Collections.Generic.IDictionary`2)" - } - ], - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Usage", - "FixCategory": "NonBreaking" - } + "name": "ReadLog(System.String,System.Text.Encoding)", + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.LogReader`1.ReadLog(System.String,System.Text.Encoding)", + "parentIndex": 156, + "kind": "member" }, { - "ruleId": "CA1028", - "level": "warning", - "message": { - "text": "If possible, make the underlying type of 'OptionallyEmittedData' Int32 instead of 'uint'. Otherwise consider Byte, Int16, or Int64.", - "messageId": "NotIntegral" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.OptionallyEmittedData" - } - ], - "partialFingerprints": { - "UniqueId": "NotIntegral" - }, - "properties": { - "Category": "Microsoft.Design", - "FixCategory": "Breaking" - } + "name": "PluginConverterFactory", + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.PluginConverterFactory", + "parentIndex": 129, + "kind": "type" }, { - "ruleId": "CA1714", - "level": "error", - "message": { - "text": "If enumeration name 'OptionallyEmittedData' is singular, change it to a plural form." - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.OptionallyEmittedData" - } - ], - "properties": { - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" - } + "name": "CreateConverterCore(System.String)", + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.PluginConverterFactory.CreateConverterCore(System.String)", + "parentIndex": 158, + "kind": "member" }, { - "ruleId": "CA2240", - "level": "error", - "message": { - "text": "Add an implementation of GetObjectData to type 'PropertiesDictionary'." - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.PropertiesDictionary" - } - ], - "properties": { - "Category": "Microsoft.Usage", - "FixCategory": "NonBreaking" - } + "name": "PREfastConverter", + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.PREfastConverter", + "parentIndex": 129, + "kind": "type" }, { - "ruleId": "CA3053", - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.PropertiesDictionary.LoadFromXml(System.IO.Stream)" - } - ], - "suppressionStates": ["suppressedInSource"], - "properties": { - "Category": "Microsoft.Security.Xml", - "FixCategory": "NonBreaking" - } + "name": "Convert(System.IO.Stream,Microsoft.CodeAnalysis.Sarif.IResultLogWriter,Microsoft.CodeAnalysis.Sarif.OptionallyEmittedData)", + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.PREfastConverter.Convert(System.IO.Stream,Microsoft.CodeAnalysis.Sarif.IResultLogWriter,Microsoft.CodeAnalysis.Sarif.OptionallyEmittedData)", + "parentIndex": 160, + "kind": "member" }, { - "ruleId": "CA1026", - "level": "error", - "message": { - "text": "Replace method 'PropertiesDictionary.SaveToJson(string, bool)' with an overload that supplies all default arguments." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/PropertiesDictionary.cs" - }, - "region": { - "startLine": 152, - "snippet": { - "text": " {" - } - }, - "contextRegion": { - "startLine": 151, - "startColumn": 1, - "endLine": 153, - "endColumn": 1, - "charOffset": 5111, - "charLength": 85, - "snippet": { - "text": " public void SaveToJson(string filePath, bool prettyPrint = true)\r\n {\r\n" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.PropertiesDictionary.SaveToJson(System.String,System.Boolean)" - } - ], - "properties": { - "Category": "Microsoft.Design", - "FixCategory": "Breaking" - } + "name": "CreateResult(Microsoft.CodeAnalysis.Sarif.Converters.PREFastObjectModel.Defect)", + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.PREfastConverter.CreateResult(Microsoft.CodeAnalysis.Sarif.Converters.PREFastObjectModel.Defect)", + "parentIndex": 160, + "kind": "member" }, { - "ruleId": "CA1800", - "level": "warning", - "message": { - "text": "'result', a variable, is cast to type 'JToken' multiple times in method 'PropertiesDictionary.TryGetProperty(string, out T)'. Cache the result of the 'as' operator or direct cast in order to eliminate the redundant castclass instruction.", - "messageId": "Local" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/PropertiesDictionary.cs" - }, - "region": { - "startLine": 111, - "snippet": { - "text": " value = ((JToken)result).ToObject();" - } - }, - "contextRegion": { - "startLine": 110, - "startColumn": 1, - "endLine": 112, - "endColumn": 33, - "charOffset": 3620, - "charLength": 112, - "snippet": { - "text": " {\r\n value = ((JToken)result).ToObject();\r\n return true;" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.PropertiesDictionary.TryGetProperty`1(System.String,!!0&)" - } - ], - "partialFingerprints": { - "UniqueId": "Local" - }, - "properties": { - "Category": "Microsoft.Performance", - "FixCategory": "NonBreaking" - } + "name": "GenerateCodeFlows(Microsoft.CodeAnalysis.Sarif.Converters.PREFastObjectModel.Defect,Microsoft.CodeAnalysis.Sarif.Result)", + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.PREfastConverter.GenerateCodeFlows(Microsoft.CodeAnalysis.Sarif.Converters.PREFastObjectModel.Defect,Microsoft.CodeAnalysis.Sarif.Result)", + "parentIndex": 160, + "kind": "member" }, { - "ruleId": "CA1307", - "level": "error", - "message": { - "text": "Because the behavior of 'string.StartsWith(string)' could vary based on the current user's locale settings, replace this call in 'PropertyBagHolder.SetProperty(string, T)' with a call to 'string.StartsWith(string, StringComparison)'. If the result of 'string.StartsWith(string, StringComparison)' will be displayed to the user, such as when sorting a list of items for display in a list box, specify 'StringComparison.CurrentCulture' or 'StringComparison.CurrentCultureIgnoreCase' as the 'StringComparison' parameter. If comparing case-insensitive identifiers, such as file paths, environment variables, or registry keys and values, specify 'StringComparison.OrdinalIgnoreCase'. Otherwise, if comparing case-sensitive identifiers, specify 'StringComparison.Ordinal'." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Core/PropertyBagHolder.cs" - }, - "region": { - "startLine": 130, - "snippet": { - "text": " if (propertyName.StartsWith(\"sarifv2/\"))" - } - }, - "contextRegion": { - "startLine": 129, - "startColumn": 1, - "endLine": 131, - "endColumn": 22, - "charOffset": 4267, - "charLength": 85, - "snippet": { - "text": "\r\n if (propertyName.StartsWith(\"sarifv2/\"))\r\n {" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.PropertyBagHolder.SetProperty`1(System.String,!!0)" - } - ], - "partialFingerprints": { - "UniqueId": "System.String.StartsWith(System.String)" - }, - "properties": { - "Category": "Microsoft.Globalization", - "FixCategory": "NonBreaking" - } + "name": "RemovePREfastNewLine(System.String)", + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.PREfastConverter.RemovePREfastNewLine(System.String)", + "parentIndex": 160, + "kind": "member" }, { - "ruleId": "CA1307", - "level": "error", - "message": { - "text": "Because the behavior of 'string.StartsWith(string)' could vary based on the current user's locale settings, replace this call in 'PropertyBagHolder.SetProperty(string, T)' with a call to 'string.StartsWith(string, StringComparison)'. If the result of 'string.StartsWith(string, StringComparison)' will be displayed to the user, such as when sorting a list of items for display in a list box, specify 'StringComparison.CurrentCulture' or 'StringComparison.CurrentCultureIgnoreCase' as the 'StringComparison' parameter. If comparing case-insensitive identifiers, such as file paths, environment variables, or registry keys and values, specify 'StringComparison.OrdinalIgnoreCase'. Otherwise, if comparing case-sensitive identifiers, specify 'StringComparison.Ordinal'." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Core/PropertyBagHolder.cs" - }, - "region": { - "startLine": 134, - "snippet": { - "text": " else if (propertyName.StartsWith(\"sarifv1/\"))" - } - }, - "contextRegion": { - "startLine": 133, - "startColumn": 1, - "endLine": 135, - "endColumn": 22, - "charOffset": 4439, - "charLength": 111, - "snippet": { - "text": " }\r\n else if (propertyName.StartsWith(\"sarifv1/\"))\r\n {" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.PropertyBagHolder.SetProperty`1(System.String,!!0)" - } - ], - "partialFingerprints": { - "UniqueId": "System.String.StartsWith(System.String)" - }, - "properties": { - "Category": "Microsoft.Globalization", - "FixCategory": "NonBreaking" - } + "name": "SetProbability(Microsoft.CodeAnalysis.Sarif.Converters.PREFastObjectModel.Defect,Microsoft.CodeAnalysis.Sarif.Result)", + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.PREfastConverter.SetProbability(Microsoft.CodeAnalysis.Sarif.Converters.PREFastObjectModel.Defect,Microsoft.CodeAnalysis.Sarif.Result)", + "parentIndex": 160, + "kind": "member" }, { - "ruleId": "CA1062", - "level": "warning", - "message": { - "text": "In externally visible method 'PropertyBagHolder.SetProperty(string, T)', validate parameter 'propertyName' before using it." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Core/PropertyBagHolder.cs" - }, - "region": { - "startLine": 130, - "snippet": { - "text": " if (propertyName.StartsWith(\"sarifv2/\"))" - } - }, - "contextRegion": { - "startLine": 129, - "startColumn": 1, - "endLine": 131, - "endColumn": 22, - "charOffset": 4267, - "charLength": 85, - "snippet": { - "text": "\r\n if (propertyName.StartsWith(\"sarifv2/\"))\r\n {" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.PropertyBagHolder.SetProperty`1(System.String,!!0)" - } - ], - "partialFingerprints": { - "UniqueId": "0" - }, - "properties": { - "Category": "Microsoft.Design", - "FixCategory": "DependsOnFix" - } + "name": "SetRank(Microsoft.CodeAnalysis.Sarif.Converters.PREFastObjectModel.Defect,Microsoft.CodeAnalysis.Sarif.Result)", + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.PREfastConverter.SetRank(Microsoft.CodeAnalysis.Sarif.Converters.PREFastObjectModel.Defect,Microsoft.CodeAnalysis.Sarif.Result)", + "parentIndex": 160, + "kind": "member" }, { - "ruleId": "CA1720", - "level": "error", - "message": { - "text": "In member 'Region.Region(int, int, int, int, int, int, int, int, FileContent, Message)', consider replacing the data type identifier 'byte' in parameter name 'byteLength' with a more generic term, such as 'value'.", - "messageId": "LanguageIndependentMemberParameter" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/Region.cs" - }, - "region": { - "startLine": 134, - "snippet": { - "text": " public Region(int startLine, int startColumn, int endLine, int endColumn, int charOffset, int charLength, int byteOffset, int byteLength, FileContent snippet, Message message)" - } - }, - "contextRegion": { - "startLine": 133, - "startColumn": 1, - "endLine": 135, - "endColumn": 10, - "charOffset": 5386, - "charLength": 216, - "snippet": { - "text": " /// \r\n public Region(int startLine, int startColumn, int endLine, int endColumn, int charOffset, int charLength, int byteOffset, int byteLength, FileContent snippet, Message message)\r\n {" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Region..ctor(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,Microsoft.CodeAnalysis.Sarif.FileContent,Microsoft.CodeAnalysis.Sarif.Message)" - } - ], - "partialFingerprints": { - "UniqueId": "byte#LanguageIndependentMemberParameter" - }, - "properties": { - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" - } + "name": "PylintConverter", + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.PylintConverter", + "parentIndex": 129, + "kind": "type" }, { - "ruleId": "CA1720", - "level": "error", - "message": { - "text": "In member 'Region.Region(int, int, int, int, int, int, int, int, FileContent, Message)', consider replacing the data type identifier 'byte' in parameter name 'byteOffset' with a more generic term, such as 'value'.", - "messageId": "LanguageIndependentMemberParameter" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/Region.cs" - }, - "region": { - "startLine": 134, - "snippet": { - "text": " public Region(int startLine, int startColumn, int endLine, int endColumn, int charOffset, int charLength, int byteOffset, int byteLength, FileContent snippet, Message message)" - } - }, - "contextRegion": { - "startLine": 133, - "startColumn": 1, - "endLine": 135, - "endColumn": 10, - "charOffset": 5386, - "charLength": 216, - "snippet": { - "text": " /// \r\n public Region(int startLine, int startColumn, int endLine, int endColumn, int charOffset, int charLength, int byteOffset, int byteLength, FileContent snippet, Message message)\r\n {" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Region..ctor(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,Microsoft.CodeAnalysis.Sarif.FileContent,Microsoft.CodeAnalysis.Sarif.Message)" - } - ], - "partialFingerprints": { - "UniqueId": "byte#LanguageIndependentMemberParameter" - }, - "properties": { - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" - } + "name": "CreateResult(Microsoft.CodeAnalysis.Sarif.Converters.PylintObjectModel.PylintLogEntry)", + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.PylintConverter.CreateResult(Microsoft.CodeAnalysis.Sarif.Converters.PylintObjectModel.PylintLogEntry)", + "parentIndex": 167, + "kind": "member" }, { - "ruleId": "CA1724", - "level": "error", - "message": { - "text": "The type name 'Resources' conflicts in whole or in part with the namespace name 'System.Resources' defined in the .NET Framework. Rename the type to eliminate the conflict.", - "messageId": "System" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Resources" - } - ], - "partialFingerprints": { - "UniqueId": "System" - }, - "properties": { - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" - } + "name": "SemmleQLConverter", + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.SemmleQLConverter", + "parentIndex": 129, + "kind": "type" }, { - "ruleId": "CA2227", - "level": "warning", - "message": { - "text": "Change 'Resources.MessageStrings' to be read-only by removing the property setter." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/Resources.cs" - }, - "region": { - "startLine": 39, - "snippet": { - "text": " public IDictionary MessageStrings { get; set; }" - } - }, - "contextRegion": { - "startLine": 38, - "startColumn": 1, - "endLine": 40, - "endColumn": 1, - "charOffset": 1359, - "charLength": 166, - "snippet": { - "text": " [DataMember(Name = \"messageStrings\", IsRequired = false, EmitDefaultValue = false)]\r\n public IDictionary MessageStrings { get; set; }\r\n" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Resources.MessageStrings" - } - ], - "properties": { - "Category": "Microsoft.Usage", - "FixCategory": "Breaking" - } + "name": "GetResultsFromStream(System.IO.Stream)", + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.SemmleQLConverter.GetResultsFromStream(System.IO.Stream)", + "parentIndex": 169, + "kind": "member" }, { - "ruleId": "CA2227", - "level": "warning", - "message": { - "text": "Change 'Resources.Rules' to be read-only by removing the property setter." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/Resources.cs" - }, - "region": { - "startLine": 45, - "snippet": { - "text": " public IDictionary Rules { get; set; }" - } - }, - "contextRegion": { - "startLine": 44, - "startColumn": 1, - "endLine": 46, - "endColumn": 1, - "charOffset": 1773, - "charLength": 146, - "snippet": { - "text": " [DataMember(Name = \"rules\", IsRequired = false, EmitDefaultValue = false)]\r\n public IDictionary Rules { get; set; }\r\n" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Resources.Rules" - } - ], - "properties": { - "Category": "Microsoft.Usage", - "FixCategory": "Breaking" - } + "name": "NormalizeRawMessage(System.String,System.String&)", + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.SemmleQLConverter.NormalizeRawMessage(System.String,System.String&)", + "parentIndex": 169, + "kind": "member" }, { - "ruleId": "CA2214", - "level": "warning", - "message": { - "text": "'Result.Result(Result)' contains a call chain that results in a call to a virtual method defined by the class. Review the following call stack for unintended consequences: \r\n\r\nResult..ctor(Result)\r\nResult.Init(String, ResultLevel, Message, String, FileLocation, IEnumerable, String, String, IDictionary, IDictionary, IEnumerable, IEnumerable, IEnumerable, IEnumerable, IEnumerable, SuppressionStates, BaselineState, IEnumerable, IEnumerable, IEnumerable, IEnumerable, IDictionary):Void\r\nPropertyBagHolder.set_Properties(IDictionary):Void" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/Result.cs" - }, - "region": { - "startLine": 253, - "snippet": { - "text": " public Result(Result other)" - } - }, - "contextRegion": { - "startLine": 252, - "startColumn": 1, - "endLine": 254, - "endColumn": 10, - "charOffset": 12743, - "charLength": 72, - "snippet": { - "text": " /// \r\n public Result(Result other)\r\n {" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Result..ctor(Microsoft.CodeAnalysis.Sarif.Result)" - } - ], - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Usage", - "FixCategory": "NonBreaking" - } + "name": "s_delimiters", + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.SemmleQLConverter.s_delimiters", + "parentIndex": 169, + "kind": "member" }, { - "ruleId": "CA2214", - "level": "warning", - "message": { - "text": "'Result.Result(string, ResultLevel, Message, string, FileLocation, IEnumerable, string, string, IDictionary, IDictionary, IEnumerable, IEnumerable, IEnumerable, IEnumerable, IEnumerable, SuppressionStates, BaselineState, IEnumerable, IEnumerable, IEnumerable, IEnumerable, IDictionary)' contains a call chain that results in a call to a virtual method defined by the class. Review the following call stack for unintended consequences: \r\n\r\nResult..ctor(String, ResultLevel, Message, String, FileLocation, IEnumerable, String, String, IDictionary, IDictionary, IEnumerable, IEnumerable, IEnumerable, IEnumerable, IEnumerable, SuppressionStates, BaselineState, IEnumerable, IEnumerable, IEnumerable, IEnumerable, IDictionary)\r\nResult.Init(String, ResultLevel, Message, String, FileLocation, IEnumerable, String, String, IDictionary, IDictionary, IEnumerable, IEnumerable, IEnumerable, IEnumerable, IEnumerable, SuppressionStates, BaselineState, IEnumerable, IEnumerable, IEnumerable, IEnumerable, IDictionary):Void\r\nPropertyBagHolder.set_Properties(IDictionary):Void" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/Result.cs" - }, - "region": { - "startLine": 239, - "snippet": { - "text": " public Result(string ruleId, ResultLevel level, Message message, string ruleMessageId, FileLocation analysisTarget, IEnumerable locations, string instanceGuid, string correlationGuid, IDictionary partialFingerprints, IDictionary fingerprints, IEnumerable stacks, IEnumerable codeFlows, IEnumerable graphs, IEnumerable graphTraversals, IEnumerable relatedLocations, SuppressionStates suppressionStates, BaselineState baselineState, IEnumerable attachments, IEnumerable workItemUris, IEnumerable conversionProvenance, IEnumerable fixes, IDictionary properties)" - } - }, - "contextRegion": { - "startLine": 238, - "startColumn": 1, - "endLine": 240, - "endColumn": 10, - "charOffset": 11255, - "charLength": 763, - "snippet": { - "text": " /// \r\n public Result(string ruleId, ResultLevel level, Message message, string ruleMessageId, FileLocation analysisTarget, IEnumerable locations, string instanceGuid, string correlationGuid, IDictionary partialFingerprints, IDictionary fingerprints, IEnumerable stacks, IEnumerable codeFlows, IEnumerable graphs, IEnumerable graphTraversals, IEnumerable relatedLocations, SuppressionStates suppressionStates, BaselineState baselineState, IEnumerable attachments, IEnumerable workItemUris, IEnumerable conversionProvenance, IEnumerable fixes, IDictionary properties)\r\n {" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Result..ctor(System.String,Microsoft.CodeAnalysis.Sarif.ResultLevel,Microsoft.CodeAnalysis.Sarif.Message,System.String,Microsoft.CodeAnalysis.Sarif.FileLocation,System.Collections.Generic.IEnumerable`1,System.String,System.String,System.Collections.Generic.IDictionary`2,System.Collections.Generic.IDictionary`2,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,Microsoft.CodeAnalysis.Sarif.SuppressionStates,Microsoft.CodeAnalysis.Sarif.BaselineState,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IDictionary`2)" - } - ], - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Usage", - "FixCategory": "NonBreaking" - } + "name": "SemmleError", + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.SemmleQLConverter.SemmleError", + "parentIndex": 169, + "kind": "member" }, { - "ruleId": "CA2227", - "level": "warning", - "message": { - "text": "Change 'Result.Attachments' to be read-only by removing the property setter." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/Result.cs" - }, - "region": { - "startLine": 137, - "snippet": { - "text": " public IList Attachments { get; set; }" - } - }, - "contextRegion": { - "startLine": 136, - "startColumn": 1, - "endLine": 138, - "endColumn": 1, - "charOffset": 6279, - "charLength": 150, - "snippet": { - "text": " [DataMember(Name = \"attachments\", IsRequired = false, EmitDefaultValue = false)]\r\n public IList Attachments { get; set; }\r\n" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Result.Attachments" - } - ], - "properties": { - "Category": "Microsoft.Usage", - "FixCategory": "Breaking" - } + "name": "SemmleRecommendation", + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.SemmleQLConverter.SemmleRecommendation", + "parentIndex": 169, + "kind": "member" }, { - "ruleId": "CA2227", - "level": "warning", - "message": { - "text": "Change 'Result.CodeFlows' to be read-only by removing the property setter." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/Result.cs" - }, - "region": { - "startLine": 105, - "snippet": { - "text": " public IList CodeFlows { get; set; }" - } - }, - "contextRegion": { - "startLine": 104, - "startColumn": 1, - "endLine": 106, - "endColumn": 1, - "charOffset": 4806, - "charLength": 144, - "snippet": { - "text": " [DataMember(Name = \"codeFlows\", IsRequired = false, EmitDefaultValue = false)]\r\n public IList CodeFlows { get; set; }\r\n" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Result.CodeFlows" - } - ], - "properties": { - "Category": "Microsoft.Usage", - "FixCategory": "Breaking" - } + "name": "SemmleWarning", + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.SemmleQLConverter.SemmleWarning", + "parentIndex": 169, + "kind": "member" }, { - "ruleId": "CA2227", - "level": "warning", - "message": { - "text": "Change 'Result.ConversionProvenance' to be read-only by removing the property setter." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/Result.cs" - }, - "region": { - "startLine": 149, - "snippet": { - "text": " public IList ConversionProvenance { get; set; }" - } - }, - "contextRegion": { - "startLine": 148, - "startColumn": 1, - "endLine": 150, - "endColumn": 1, - "charOffset": 6910, - "charLength": 174, - "snippet": { - "text": " [DataMember(Name = \"conversionProvenance\", IsRequired = false, EmitDefaultValue = false)]\r\n public IList ConversionProvenance { get; set; }\r\n" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Result.ConversionProvenance" - } - ], - "properties": { - "Category": "Microsoft.Usage", - "FixCategory": "Breaking" - } + "name": "SparseReader", + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.SparseReader", + "parentIndex": 129, + "kind": "type" }, { - "ruleId": "CA2227", - "level": "warning", - "message": { - "text": "Change 'Result.Fingerprints' to be read-only by removing the property setter." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/Result.cs" - }, - "region": { - "startLine": 93, - "snippet": { - "text": " public IDictionary Fingerprints { get; set; }" - } - }, - "contextRegion": { - "startLine": 92, - "startColumn": 1, - "endLine": 94, - "endColumn": 1, - "charOffset": 4278, - "charLength": 162, - "snippet": { - "text": " [DataMember(Name = \"fingerprints\", IsRequired = false, EmitDefaultValue = false)]\r\n public IDictionary Fingerprints { get; set; }\r\n" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Result.Fingerprints" - } - ], - "properties": { - "Category": "Microsoft.Usage", - "FixCategory": "Breaking" - } + "name": "CreateFromStream(Microsoft.CodeAnalysis.Sarif.Converters.SparseReaderDispatchTable,System.IO.Stream,System.Xml.Schema.XmlSchemaSet)", + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.SparseReader.CreateFromStream(Microsoft.CodeAnalysis.Sarif.Converters.SparseReaderDispatchTable,System.IO.Stream,System.Xml.Schema.XmlSchemaSet)", + "parentIndex": 176, + "kind": "member" }, { - "ruleId": "CA2227", - "level": "warning", - "message": { - "text": "Change 'Result.Fixes' to be read-only by removing the property setter." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/Result.cs" - }, - "region": { - "startLine": 155, - "snippet": { - "text": " public IList Fixes { get; set; }" - } - }, - "contextRegion": { - "startLine": 154, - "startColumn": 1, - "endLine": 156, - "endColumn": 1, - "charOffset": 7253, - "charLength": 131, - "snippet": { - "text": " [DataMember(Name = \"fixes\", IsRequired = false, EmitDefaultValue = false)]\r\n public IList Fixes { get; set; }\r\n" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Result.Fixes" - } - ], - "properties": { - "Category": "Microsoft.Usage", - "FixCategory": "Breaking" - } + "name": "ReadChildren(System.String,System.Object,System.String&)", + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.SparseReader.ReadChildren(System.String,System.Object,System.String&)", + "parentIndex": 176, + "kind": "member" }, { - "ruleId": "CA2227", - "level": "warning", - "message": { - "text": "Change 'Result.Graphs' to be read-only by removing the property setter." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/Result.cs" - }, - "region": { - "startLine": 111, - "snippet": { - "text": " public IList Graphs { get; set; }" - } - }, - "contextRegion": { - "startLine": 110, - "startColumn": 1, - "endLine": 112, - "endColumn": 1, - "charOffset": 5060, - "charLength": 135, - "snippet": { - "text": " [DataMember(Name = \"graphs\", IsRequired = false, EmitDefaultValue = false)]\r\n public IList Graphs { get; set; }\r\n" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Result.Graphs" - } - ], - "properties": { - "Category": "Microsoft.Usage", - "FixCategory": "Breaking" - } + "name": "SparseReaderDispatchTable", + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.SparseReaderDispatchTable", + "parentIndex": 129, + "kind": "type" }, { - "ruleId": "CA2227", - "level": "warning", - "message": { - "text": "Change 'Result.GraphTraversals' to be read-only by removing the property setter." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/Result.cs" - }, - "region": { - "startLine": 117, - "snippet": { - "text": " public IList GraphTraversals { get; set; }" - } - }, - "contextRegion": { - "startLine": 116, - "startColumn": 1, - "endLine": 118, - "endColumn": 1, - "charOffset": 5314, - "charLength": 162, - "snippet": { - "text": " [DataMember(Name = \"graphTraversals\", IsRequired = false, EmitDefaultValue = false)]\r\n public IList GraphTraversals { get; set; }\r\n" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Result.GraphTraversals" - } - ], - "properties": { - "Category": "Microsoft.Usage", - "FixCategory": "Breaking" - } + "name": "StaticDriverVerifierConverter", + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.StaticDriverVerifierConverter", + "parentIndex": 129, + "kind": "type" }, { - "ruleId": "CA1502", - "level": "warning", - "message": { - "text": "'Result.Init(string, ResultLevel, Message, string, FileLocation, IEnumerable, string, string, IDictionary, IDictionary, IEnumerable, IEnumerable, IEnumerable, IEnumerable, IEnumerable, SuppressionStates, BaselineState, IEnumerable, IEnumerable, IEnumerable, IEnumerable, IDictionary)' has a cyclomatic complexity of 45. Rewrite or refactor the method to reduce complexity to 25." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/Result.cs" - }, - "region": { - "startLine": 282, - "snippet": { - "text": " {" - } - }, - "contextRegion": { - "startLine": 281, - "startColumn": 1, - "endLine": 283, - "endColumn": 29, - "charOffset": 13818, - "charLength": 775, - "snippet": { - "text": " private void Init(string ruleId, ResultLevel level, Message message, string ruleMessageId, FileLocation analysisTarget, IEnumerable locations, string instanceGuid, string correlationGuid, IDictionary partialFingerprints, IDictionary fingerprints, IEnumerable stacks, IEnumerable codeFlows, IEnumerable graphs, IEnumerable graphTraversals, IEnumerable relatedLocations, SuppressionStates suppressionStates, BaselineState baselineState, IEnumerable attachments, IEnumerable workItemUris, IEnumerable conversionProvenance, IEnumerable fixes, IDictionary properties)\r\n {\r\n RuleId = ruleId;" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Result.Init(System.String,Microsoft.CodeAnalysis.Sarif.ResultLevel,Microsoft.CodeAnalysis.Sarif.Message,System.String,Microsoft.CodeAnalysis.Sarif.FileLocation,System.Collections.Generic.IEnumerable`1,System.String,System.String,System.Collections.Generic.IDictionary`2,System.Collections.Generic.IDictionary`2,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,Microsoft.CodeAnalysis.Sarif.SuppressionStates,Microsoft.CodeAnalysis.Sarif.BaselineState,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IDictionary`2)" - } - ], - "properties": { - "Category": "Microsoft.Maintainability", - "FixCategory": "NonBreaking" - } + "name": "_sb", + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.StaticDriverVerifierConverter._sb", + "parentIndex": 180, + "kind": "member" }, { - "ruleId": "CA2227", - "level": "warning", - "message": { - "text": "Change 'Result.Locations' to be read-only by removing the property setter." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/Result.cs" - }, - "region": { - "startLine": 69, - "snippet": { - "text": " public IList Locations { get; set; }" - } - }, - "contextRegion": { - "startLine": 68, - "startColumn": 1, - "endLine": 70, - "endColumn": 1, - "charOffset": 3046, - "charLength": 144, - "snippet": { - "text": " [DataMember(Name = \"locations\", IsRequired = false, EmitDefaultValue = false)]\r\n public IList Locations { get; set; }\r\n" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Result.Locations" - } - ], - "properties": { - "Category": "Microsoft.Usage", - "FixCategory": "Breaking" - } + "name": "IsHarnessOrRulesFiles(System.String)", + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.StaticDriverVerifierConverter.IsHarnessOrRulesFiles(System.String)", + "parentIndex": 180, + "kind": "member" }, { - "ruleId": "CA2227", - "level": "warning", - "message": { - "text": "Change 'Result.PartialFingerprints' to be read-only by removing the property setter." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/Result.cs" - }, - "region": { - "startLine": 87, - "snippet": { - "text": " public IDictionary PartialFingerprints { get; set; }" - } - }, - "contextRegion": { - "startLine": 86, - "startColumn": 1, - "endLine": 88, - "endColumn": 1, - "charOffset": 3946, - "charLength": 176, - "snippet": { - "text": " [DataMember(Name = \"partialFingerprints\", IsRequired = false, EmitDefaultValue = false)]\r\n public IDictionary PartialFingerprints { get; set; }\r\n" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Result.PartialFingerprints" - } - ], - "properties": { - "Category": "Microsoft.Usage", - "FixCategory": "Breaking" - } + "name": "ProcessLine(System.String,System.Int32&,Microsoft.CodeAnalysis.Sarif.Result)", + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.StaticDriverVerifierConverter.ProcessLine(System.String,System.Int32&,Microsoft.CodeAnalysis.Sarif.Result)", + "parentIndex": 180, + "kind": "member" }, { - "ruleId": "CA2227", - "level": "warning", - "message": { - "text": "Change 'Result.RelatedLocations' to be read-only by removing the property setter." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/Result.cs" - }, - "region": { - "startLine": 123, - "snippet": { - "text": " public IList RelatedLocations { get; set; }" - } - }, - "contextRegion": { - "startLine": 122, - "startColumn": 1, - "endLine": 124, - "endColumn": 95, - "charOffset": 5582, - "charLength": 252, - "snippet": { - "text": " [DataMember(Name = \"relatedLocations\", IsRequired = false, EmitDefaultValue = false)]\r\n public IList RelatedLocations { get; set; }\r\n [DataMember(Name = \"suppressionStates\", IsRequired = false, EmitDefaultValue = false)]" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Result.RelatedLocations" - } - ], - "properties": { - "Category": "Microsoft.Usage", - "FixCategory": "Breaking" - } + "name": "StringReference", + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.StringReference", + "parentIndex": 129, + "kind": "type" }, { - "ruleId": "CA2227", - "level": "warning", - "message": { - "text": "Change 'Result.Stacks' to be read-only by removing the property setter." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/Result.cs" - }, - "region": { - "startLine": 99, - "snippet": { - "text": " public IList Stacks { get; set; }" - } - }, - "contextRegion": { - "startLine": 98, - "startColumn": 1, - "endLine": 100, - "endColumn": 1, - "charOffset": 4554, - "charLength": 135, - "snippet": { - "text": " [DataMember(Name = \"stacks\", IsRequired = false, EmitDefaultValue = false)]\r\n public IList Stacks { get; set; }\r\n" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Result.Stacks" - } - ], - "properties": { - "Category": "Microsoft.Usage", - "FixCategory": "Breaking" - } + "name": "Equals(System.Object,System.Object)", + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.StringReference.Equals(System.Object,System.Object)", + "parentIndex": 184, + "kind": "member" }, { - "ruleId": "CA2227", - "level": "warning", - "message": { - "text": "Change 'Result.WorkItemUris' to be read-only by removing the property setter." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/Result.cs" - }, - "region": { - "startLine": 143, - "snippet": { - "text": " public IList WorkItemUris { get; set; }" - } - }, - "contextRegion": { - "startLine": 142, - "startColumn": 1, - "endLine": 144, - "endColumn": 1, - "charOffset": 6546, - "charLength": 145, - "snippet": { - "text": " [DataMember(Name = \"workItemUris\", IsRequired = false, EmitDefaultValue = false)]\r\n public IList WorkItemUris { get; set; }\r\n" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Result.WorkItemUris" - } - ], - "properties": { - "Category": "Microsoft.Usage", - "FixCategory": "Breaking" - } + "name": "ToolFileConverterBase", + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.ToolFileConverterBase", + "parentIndex": 129, + "kind": "type" }, { - "ruleId": "CA1502", - "level": "error", - "message": { - "text": "'ResultEqualityComparer.Equals(Result, Result)' has a cyclomatic complexity of 97. Rewrite or refactor the method to reduce complexity to 25." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/ResultEqualityComparer.cs" - }, - "region": { - "startLine": 20, - "snippet": { - "text": " {" - } - }, - "contextRegion": { - "startLine": 19, - "startColumn": 1, - "endLine": 21, - "endColumn": 46, - "charOffset": 710, - "charLength": 111, - "snippet": { - "text": " public bool Equals(Result left, Result right)\r\n {\r\n if (ReferenceEquals(left, right))" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.ResultEqualityComparer.Equals(Microsoft.CodeAnalysis.Sarif.Result,Microsoft.CodeAnalysis.Sarif.Result)" - } - ], - "properties": { - "Category": "Microsoft.Maintainability", - "FixCategory": "NonBreaking" - } + "name": "GetLogicalLocationName(System.String,System.String,System.String)", + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.ToolFileConverterBase.GetLogicalLocationName(System.String,System.String,System.String)", + "parentIndex": 186, + "kind": "member" }, { - "ruleId": "CA1809", - "level": "warning", - "message": { - "text": "'ResultEqualityComparer.Equals(Result, Result)' has 93 local variables, 77 of which were generated by the compiler. Refactor 'ResultEqualityComparer.Equals(Result, Result)' so that it uses fewer than 64 local variables.", - "messageId": "Compiler" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/ResultEqualityComparer.cs" - }, - "region": { - "startLine": 20, - "snippet": { - "text": " {" - } - }, - "contextRegion": { - "startLine": 19, - "startColumn": 1, - "endLine": 21, - "endColumn": 46, - "charOffset": 710, - "charLength": 111, - "snippet": { - "text": " public bool Equals(Result left, Result right)\r\n {\r\n if (ReferenceEquals(left, right))" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.ResultEqualityComparer.Equals(Microsoft.CodeAnalysis.Sarif.Result,Microsoft.CodeAnalysis.Sarif.Result)" - } - ], - "partialFingerprints": { - "UniqueId": "Compiler" - }, - "properties": { - "Category": "Microsoft.Performance", - "FixCategory": "NonBreaking" - } + "name": "ToolFormat", + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.ToolFormat", + "parentIndex": 129, + "kind": "type" }, { - "ruleId": "CA1505", - "level": "warning", - "message": { - "text": "'ResultEqualityComparer.Equals(Result, Result)' has a maintainability index of 14. Rewrite or refactor the method to increase its maintainability index (MI). An MI below 10 indicates poor maintainability, an MI between 10 and 20 indicates moderate maintainability, and an MI above 20 indicates good maintainability.", - "messageId": "Method" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/ResultEqualityComparer.cs" - }, - "region": { - "startLine": 20, - "snippet": { - "text": " {" - } - }, - "contextRegion": { - "startLine": 19, - "startColumn": 1, - "endLine": 21, - "endColumn": 46, - "charOffset": 710, - "charLength": 111, - "snippet": { - "text": " public bool Equals(Result left, Result right)\r\n {\r\n if (ReferenceEquals(left, right))" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.ResultEqualityComparer.Equals(Microsoft.CodeAnalysis.Sarif.Result,Microsoft.CodeAnalysis.Sarif.Result)" - } - ], - "partialFingerprints": { - "UniqueId": "Method" - }, - "properties": { - "Category": "Microsoft.Maintainability", - "FixCategory": "NonBreaking" - } + "name": "CppCheck", + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.ToolFormat.CppCheck", + "parentIndex": 188, + "kind": "member" }, { - "ruleId": "CA1502", - "level": "warning", - "message": { - "text": "'ResultEqualityComparer.GetHashCode(Result)' has a cyclomatic complexity of 60. Rewrite or refactor the method to reduce complexity to 25." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/ResultEqualityComparer.cs" - }, - "region": { - "startLine": 356, - "snippet": { - "text": " {" - } - }, - "contextRegion": { - "startLine": 355, - "startColumn": 1, - "endLine": 357, - "endColumn": 44, - "charOffset": 11810, - "charLength": 98, - "snippet": { - "text": " public int GetHashCode(Result obj)\r\n {\r\n if (ReferenceEquals(obj, null))" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.ResultEqualityComparer.GetHashCode(Microsoft.CodeAnalysis.Sarif.Result)" - } - ], - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Maintainability", - "FixCategory": "NonBreaking" - } + "name": "FortifyFpr", + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.ToolFormat.FortifyFpr", + "parentIndex": 188, + "kind": "member" }, { - "ruleId": "CA1809", - "level": "warning", - "message": { - "text": "'ResultEqualityComparer.GetHashCode(Result)' has 67 local variables, 50 of which were generated by the compiler. Refactor 'ResultEqualityComparer.GetHashCode(Result)' so that it uses fewer than 64 local variables.", - "messageId": "Compiler" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/ResultEqualityComparer.cs" - }, - "region": { - "startLine": 356, - "snippet": { - "text": " {" - } - }, - "contextRegion": { - "startLine": 355, - "startColumn": 1, - "endLine": 357, - "endColumn": 44, - "charOffset": 11810, - "charLength": 98, - "snippet": { - "text": " public int GetHashCode(Result obj)\r\n {\r\n if (ReferenceEquals(obj, null))" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.ResultEqualityComparer.GetHashCode(Microsoft.CodeAnalysis.Sarif.Result)" - } - ], - "partialFingerprints": { - "UniqueId": "Compiler" - }, - "properties": { - "Category": "Microsoft.Performance", - "FixCategory": "NonBreaking" - } + "name": "PREfast", + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.ToolFormat.PREfast", + "parentIndex": 188, + "kind": "member" }, { - "ruleId": "CA2214", - "level": "warning", - "message": { - "text": "'Rule.Rule(Rule)' contains a call chain that results in a call to a virtual method defined by the class. Review the following call stack for unintended consequences: \r\n\r\nRule..ctor(Rule)\r\nRule.Init(String, Message, Message, Message, IDictionary, IDictionary, ReportingConfiguration, Uri, Message, IDictionary):Void\r\nPropertyBagHolder.set_Properties(IDictionary):Void" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/Rule.cs" - }, - "region": { - "startLine": 149, - "snippet": { - "text": " public Rule(Rule other)" - } - }, - "contextRegion": { - "startLine": 148, - "startColumn": 1, - "endLine": 150, - "endColumn": 10, - "charOffset": 7050, - "charLength": 68, - "snippet": { - "text": " /// \r\n public Rule(Rule other)\r\n {" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Rule..ctor(Microsoft.CodeAnalysis.Sarif.Rule)" - } - ], - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Usage", - "FixCategory": "NonBreaking" - } + "name": "Pylint", + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.ToolFormat.Pylint", + "parentIndex": 188, + "kind": "member" }, { - "ruleId": "CA2214", - "level": "warning", - "message": { - "text": "'Rule.Rule(string, Message, Message, Message, IDictionary, IDictionary, ReportingConfiguration, Uri, Message, IDictionary)' contains a call chain that results in a call to a virtual method defined by the class. Review the following call stack for unintended consequences: \r\n\r\nRule..ctor(String, Message, Message, Message, IDictionary, IDictionary, ReportingConfiguration, Uri, Message, IDictionary)\r\nRule.Init(String, Message, Message, Message, IDictionary, IDictionary, ReportingConfiguration, Uri, Message, IDictionary):Void\r\nPropertyBagHolder.set_Properties(IDictionary):Void" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/Rule.cs" - }, - "region": { - "startLine": 135, - "snippet": { - "text": " public Rule(string id, Message name, Message shortDescription, Message fullDescription, IDictionary messageStrings, IDictionary richMessageStrings, ReportingConfiguration configuration, Uri helpUri, Message help, IDictionary properties)" - } - }, - "contextRegion": { - "startLine": 134, - "startColumn": 1, - "endLine": 136, - "endColumn": 10, - "charOffset": 6164, - "charLength": 336, - "snippet": { - "text": " /// \r\n public Rule(string id, Message name, Message shortDescription, Message fullDescription, IDictionary messageStrings, IDictionary richMessageStrings, ReportingConfiguration configuration, Uri helpUri, Message help, IDictionary properties)\r\n {" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Rule..ctor(System.String,Microsoft.CodeAnalysis.Sarif.Message,Microsoft.CodeAnalysis.Sarif.Message,Microsoft.CodeAnalysis.Sarif.Message,System.Collections.Generic.IDictionary`2,System.Collections.Generic.IDictionary`2,Microsoft.CodeAnalysis.Sarif.ReportingConfiguration,System.Uri,Microsoft.CodeAnalysis.Sarif.Message,System.Collections.Generic.IDictionary`2)" - } - ], - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Usage", - "FixCategory": "NonBreaking" - } + "name": "SemmleQL", + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.ToolFormat.SemmleQL", + "parentIndex": 188, + "kind": "member" }, { - "ruleId": "CA2227", - "level": "warning", - "message": { - "text": "Change 'Rule.MessageStrings' to be read-only by removing the property setter." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/Rule.cs" - }, - "region": { - "startLine": 63, - "snippet": { - "text": " public IDictionary MessageStrings { get; set; }" - } - }, - "contextRegion": { - "startLine": 62, - "startColumn": 1, - "endLine": 64, - "endColumn": 1, - "charOffset": 2628, - "charLength": 166, - "snippet": { - "text": " [DataMember(Name = \"messageStrings\", IsRequired = false, EmitDefaultValue = false)]\r\n public IDictionary MessageStrings { get; set; }\r\n" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Rule.MessageStrings" - } - ], - "properties": { - "Category": "Microsoft.Usage", - "FixCategory": "Breaking" - } + "name": "ToolFormatConverter", + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.ToolFormatConverter", + "parentIndex": 129, + "kind": "type" }, { - "ruleId": "CA2227", - "level": "warning", - "message": { - "text": "Change 'Rule.RichMessageStrings' to be read-only by removing the property setter." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/Rule.cs" - }, - "region": { - "startLine": 69, - "snippet": { - "text": " public IDictionary RichMessageStrings { get; set; }" - } - }, - "contextRegion": { - "startLine": 68, - "startColumn": 1, - "endLine": 70, - "endColumn": 1, - "charOffset": 3109, - "charLength": 174, - "snippet": { - "text": " [DataMember(Name = \"richMessageStrings\", IsRequired = false, EmitDefaultValue = false)]\r\n public IDictionary RichMessageStrings { get; set; }\r\n" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Rule.RichMessageStrings" - } - ], - "properties": { - "Category": "Microsoft.Usage", - "FixCategory": "Breaking" - } + "name": ".ctor(Microsoft.CodeAnalysis.Sarif.Converters.AssemblyLoadFileDelegate)", + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.ToolFormatConverter..ctor(Microsoft.CodeAnalysis.Sarif.Converters.AssemblyLoadFileDelegate)", + "parentIndex": 194, + "kind": "member" }, { - "ruleId": "CA2227", - "level": "warning", - "message": { - "text": "Change 'ReportingConfiguration.Parameters' to be read-only by removing the property setter." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/ReportingConfiguration.cs" - }, - "region": { - "startLine": 51, - "snippet": { - "text": " public IDictionary Parameters { get; set; }" - } - }, - "contextRegion": { - "startLine": 50, - "startColumn": 1, - "endLine": 52, - "endColumn": 1, - "charOffset": 1884, - "charLength": 174, - "snippet": { - "text": " [DataMember(Name = \"parameters\", IsRequired = false, EmitDefaultValue = false)]\r\n public IDictionary Parameters { get; set; }\r\n" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.ReportingConfiguration.Parameters" - } - ], - "properties": { - "Category": "Microsoft.Usage", - "FixCategory": "Breaking" - } + "name": "ConvertToStandardFormat(System.String,System.IO.Stream,Microsoft.CodeAnalysis.Sarif.IResultLogWriter,Microsoft.CodeAnalysis.Sarif.OptionallyEmittedData,System.String)", + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.ToolFormatConverter.ConvertToStandardFormat(System.String,System.IO.Stream,Microsoft.CodeAnalysis.Sarif.IResultLogWriter,Microsoft.CodeAnalysis.Sarif.OptionallyEmittedData,System.String)", + "parentIndex": 194, + "kind": "member" }, { - "ruleId": "CA1502", - "level": "warning", - "message": { - "text": "'RuleEqualityComparer.Equals(Rule, Rule)' has a cyclomatic complexity of 35. Rewrite or refactor the method to reduce complexity to 25." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/RuleEqualityComparer.cs" - }, - "region": { - "startLine": 20, - "snippet": { - "text": " {" - } - }, - "contextRegion": { - "startLine": 19, - "startColumn": 1, - "endLine": 21, - "endColumn": 46, - "charOffset": 700, - "charLength": 107, - "snippet": { - "text": " public bool Equals(Rule left, Rule right)\r\n {\r\n if (ReferenceEquals(left, right))" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.RuleEqualityComparer.Equals(Microsoft.CodeAnalysis.Sarif.Rule,Microsoft.CodeAnalysis.Sarif.Rule)" - } - ], - "properties": { - "Category": "Microsoft.Maintainability", - "FixCategory": "NonBreaking" - } + "name": "ConvertToStandardFormat(System.String,System.String,System.String,Microsoft.CodeAnalysis.Sarif.Writers.LoggingOptions,Microsoft.CodeAnalysis.Sarif.OptionallyEmittedData,System.String)", + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.ToolFormatConverter.ConvertToStandardFormat(System.String,System.String,System.String,Microsoft.CodeAnalysis.Sarif.Writers.LoggingOptions,Microsoft.CodeAnalysis.Sarif.OptionallyEmittedData,System.String)", + "parentIndex": 194, + "kind": "member" }, { - "ruleId": "CA1026", - "level": "error", - "message": { - "text": "Replace method 'RuleUtilities.BuildDictionary(ResourceManager, IEnumerable, string, string)' with an overload that supplies all default arguments." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/RuleUtilities.cs" - }, - "region": { - "startLine": 74, - "snippet": { - "text": " {" - } - }, - "contextRegion": { - "startLine": 73, - "startColumn": 1, - "endLine": 75, - "endColumn": 25, - "charOffset": 2335, - "charLength": 70, - "snippet": { - "text": " string prefix = null)\r\n {\r\n //validation" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.RuleUtilities.BuildDictionary(System.Resources.ResourceManager,System.Collections.Generic.IEnumerable`1,System.String,System.String)" - } - ], - "properties": { - "Category": "Microsoft.Design", - "FixCategory": "Breaking" - } + "name": "TSLintConverter", + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.TSLintConverter", + "parentIndex": 129, + "kind": "type" }, { - "ruleId": "CA1026", - "level": "error", - "message": { - "text": "Replace method 'RuleUtilities.NormalizeRuleMessageId(string, string, string)' with an overload that supplies all default arguments." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/RuleUtilities.cs" - }, - "region": { - "startLine": 104, - "snippet": { - "text": " {" - } - }, - "contextRegion": { - "startLine": 103, - "startColumn": 1, - "endLine": 105, - "endColumn": 39, - "charOffset": 3504, - "charLength": 161, - "snippet": { - "text": " public static string NormalizeRuleMessageId(string ruleMessageId, string ruleId, string prefix = null)\r\n {\r\n if (ruleMessageId == null)" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.RuleUtilities.NormalizeRuleMessageId(System.String,System.String,System.String)" - } - ], - "properties": { - "Category": "Microsoft.Design", - "FixCategory": "Breaking" - } + "name": "CreateResult(Microsoft.CodeAnalysis.Sarif.Converters.TSLintObjectModel.TSLintLogEntry)", + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.TSLintConverter.CreateResult(Microsoft.CodeAnalysis.Sarif.Converters.TSLintObjectModel.TSLintLogEntry)", + "parentIndex": 198, + "kind": "member" }, { - "ruleId": "CA2214", - "level": "warning", - "message": { - "text": "'Run.Run(Run)' contains a call chain that results in a call to a virtual method defined by the class. Review the following call stack for unintended consequences: \r\n\r\nRun..ctor(Run)\r\nRun.Init(Tool, IEnumerable, Conversion, IEnumerable, IDictionary, IDictionary, IDictionary, IEnumerable, IEnumerable, Resources, String, String, Message, String, String, String, String, String, String, ColumnKind, IDictionary):Void\r\nPropertyBagHolder.set_Properties(IDictionary):Void" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/Run.cs" - }, - "region": { - "startLine": 248, - "snippet": { - "text": " public Run(Run other)" - } - }, - "contextRegion": { - "startLine": 247, - "startColumn": 1, - "endLine": 249, - "endColumn": 10, - "charOffset": 12650, - "charLength": 66, - "snippet": { - "text": " /// \r\n public Run(Run other)\r\n {" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Run..ctor(Microsoft.CodeAnalysis.Sarif.Run)" - } - ], - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Usage", - "FixCategory": "NonBreaking" - } + "name": "TSLintLogReader", + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.TSLintLogReader", + "parentIndex": 129, + "kind": "type" }, { - "ruleId": "CA2214", - "level": "warning", - "message": { - "text": "'Run.Run(Tool, IEnumerable, Conversion, IEnumerable, IDictionary, IDictionary, IDictionary, IEnumerable, IEnumerable, Resources, string, string, Message, string, string, string, string, string, string, ColumnKind, IDictionary)' contains a call chain that results in a call to a virtual method defined by the class. Review the following call stack for unintended consequences: \r\n\r\nRun..ctor(Tool, IEnumerable, Conversion, IEnumerable, IDictionary, IDictionary, IDictionary, IEnumerable, IEnumerable, Resources, String, String, Message, String, String, String, String, String, String, ColumnKind, IDictionary)\r\nRun.Init(Tool, IEnumerable, Conversion, IEnumerable, IDictionary, IDictionary, IDictionary, IEnumerable, IEnumerable, Resources, String, String, Message, String, String, String, String, String, String, ColumnKind, IDictionary):Void\r\nPropertyBagHolder.set_Properties(IDictionary):Void" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/Run.cs" - }, - "region": { - "startLine": 234, - "snippet": { - "text": " public Run(Tool tool, IEnumerable invocations, Conversion conversion, IEnumerable versionControlProvenance, IDictionary originalUriBaseIds, IDictionary files, IDictionary logicalLocations, IEnumerable graphs, IEnumerable results, Resources resources, string instanceGuid, string logicalId, Message description, string automationLogicalId, string baselineInstanceGuid, string architecture, string markdownMessageMimeType, string redactionToken, string defaultFileEncoding, ColumnKind columnKind, IDictionary properties)" - } - }, - "contextRegion": { - "startLine": 233, - "startColumn": 1, - "endLine": 235, - "endColumn": 10, - "charOffset": 11224, - "charLength": 693, - "snippet": { - "text": " /// \r\n public Run(Tool tool, IEnumerable invocations, Conversion conversion, IEnumerable versionControlProvenance, IDictionary originalUriBaseIds, IDictionary files, IDictionary logicalLocations, IEnumerable graphs, IEnumerable results, Resources resources, string instanceGuid, string logicalId, Message description, string automationLogicalId, string baselineInstanceGuid, string architecture, string markdownMessageMimeType, string redactionToken, string defaultFileEncoding, ColumnKind columnKind, IDictionary properties)\r\n {" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Run..ctor(Microsoft.CodeAnalysis.Sarif.Tool,System.Collections.Generic.IEnumerable`1,Microsoft.CodeAnalysis.Sarif.Conversion,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IDictionary`2,System.Collections.Generic.IDictionary`2,System.Collections.Generic.IDictionary`2,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,Microsoft.CodeAnalysis.Sarif.Resources,System.String,System.String,Microsoft.CodeAnalysis.Sarif.Message,System.String,System.String,System.String,System.String,System.String,System.String,Microsoft.CodeAnalysis.Sarif.ColumnKind,System.Collections.Generic.IDictionary`2)" - } - ], - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Usage", - "FixCategory": "NonBreaking" - } + "name": "NormalizeEntries(Newtonsoft.Json.Linq.JArray)", + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.TSLintLogReader.NormalizeEntries(Newtonsoft.Json.Linq.JArray)", + "parentIndex": 200, + "kind": "member" }, { - "ruleId": "CA2227", - "level": "warning", - "message": { - "text": "Change 'Run.Files' to be read-only by removing the property setter." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/Run.cs" - }, - "region": { - "startLine": 69, - "snippet": { - "text": " public IDictionary Files { get; set; }" - } - }, - "contextRegion": { - "startLine": 68, - "startColumn": 1, - "endLine": 70, - "endColumn": 1, - "charOffset": 3082, - "charLength": 150, - "snippet": { - "text": " [DataMember(Name = \"files\", IsRequired = false, EmitDefaultValue = false)]\r\n public IDictionary Files { get; set; }\r\n" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Run.Files" - } - ], - "properties": { - "Category": "Microsoft.Usage", - "FixCategory": "Breaking" - } + "name": "NormalizeFixProperty(Newtonsoft.Json.Linq.JProperty)", + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.TSLintLogReader.NormalizeFixProperty(Newtonsoft.Json.Linq.JProperty)", + "parentIndex": 200, + "kind": "member" }, { - "ruleId": "CA2227", - "level": "warning", - "message": { - "text": "Change 'Run.Graphs' to be read-only by removing the property setter." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/Run.cs" - }, - "region": { - "startLine": 81, - "snippet": { - "text": " public IList Graphs { get; set; }" - } - }, - "contextRegion": { - "startLine": 80, - "startColumn": 1, - "endLine": 82, - "endColumn": 1, - "charOffset": 3684, - "charLength": 135, - "snippet": { - "text": " [DataMember(Name = \"graphs\", IsRequired = false, EmitDefaultValue = false)]\r\n public IList Graphs { get; set; }\r\n" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Run.Graphs" - } - ], - "properties": { - "Category": "Microsoft.Usage", - "FixCategory": "Breaking" - } + "name": "NormalizeLog(Newtonsoft.Json.Linq.JToken)", + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.TSLintLogReader.NormalizeLog(Newtonsoft.Json.Linq.JToken)", + "parentIndex": 200, + "kind": "member" }, { - "ruleId": "CA1502", - "level": "warning", - "message": { - "text": "'Run.Init(Tool, IEnumerable, Conversion, IEnumerable, IDictionary, IDictionary, IDictionary, IEnumerable, IEnumerable, Resources, string, string, Message, string, string, string, string, string, string, ColumnKind, IDictionary)' has a cyclomatic complexity of 28. Rewrite or refactor the method to reduce complexity to 25." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/Run.cs" - }, - "region": { - "startLine": 277, - "snippet": { - "text": " {" - } - }, - "contextRegion": { - "startLine": 276, - "startColumn": 1, - "endLine": 278, - "endColumn": 30, - "charOffset": 13715, - "charLength": 709, - "snippet": { - "text": " private void Init(Tool tool, IEnumerable invocations, Conversion conversion, IEnumerable versionControlProvenance, IDictionary originalUriBaseIds, IDictionary files, IDictionary logicalLocations, IEnumerable graphs, IEnumerable results, Resources resources, string instanceGuid, string logicalId, Message description, string automationLogicalId, string baselineInstanceGuid, string architecture, string markdownMessageMimeType, string redactionToken, string defaultFileEncoding, ColumnKind columnKind, IDictionary properties)\r\n {\r\n if (tool != null)" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Run.Init(Microsoft.CodeAnalysis.Sarif.Tool,System.Collections.Generic.IEnumerable`1,Microsoft.CodeAnalysis.Sarif.Conversion,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IDictionary`2,System.Collections.Generic.IDictionary`2,System.Collections.Generic.IDictionary`2,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,Microsoft.CodeAnalysis.Sarif.Resources,System.String,System.String,Microsoft.CodeAnalysis.Sarif.Message,System.String,System.String,System.String,System.String,System.String,System.String,Microsoft.CodeAnalysis.Sarif.ColumnKind,System.Collections.Generic.IDictionary`2)" - } - ], - "properties": { - "Category": "Microsoft.Maintainability", - "FixCategory": "NonBreaking" - } + "name": "ReadLog(System.IO.Stream)", + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.TSLintLogReader.ReadLog(System.IO.Stream)", + "parentIndex": 200, + "kind": "member" }, { - "ruleId": "CA1801", - "level": "warning", - "message": { - "text": "Parameter 'originalUriBaseIds' of 'Run.Init(Tool, IEnumerable, Conversion, IEnumerable, IDictionary, IDictionary, IDictionary, IEnumerable, IEnumerable, Resources, string, string, Message, string, string, string, string, string, string, ColumnKind, IDictionary)' is never used. Remove the parameter or use it in the method body." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/Run.cs" - }, - "region": { - "startLine": 277, - "snippet": { - "text": " {" - } - }, - "contextRegion": { - "startLine": 276, - "startColumn": 1, - "endLine": 278, - "endColumn": 30, - "charOffset": 13715, - "charLength": 709, - "snippet": { - "text": " private void Init(Tool tool, IEnumerable invocations, Conversion conversion, IEnumerable versionControlProvenance, IDictionary originalUriBaseIds, IDictionary files, IDictionary logicalLocations, IEnumerable graphs, IEnumerable results, Resources resources, string instanceGuid, string logicalId, Message description, string automationLogicalId, string baselineInstanceGuid, string architecture, string markdownMessageMimeType, string redactionToken, string defaultFileEncoding, ColumnKind columnKind, IDictionary properties)\r\n {\r\n if (tool != null)" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Run.Init(Microsoft.CodeAnalysis.Sarif.Tool,System.Collections.Generic.IEnumerable`1,Microsoft.CodeAnalysis.Sarif.Conversion,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IDictionary`2,System.Collections.Generic.IDictionary`2,System.Collections.Generic.IDictionary`2,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,Microsoft.CodeAnalysis.Sarif.Resources,System.String,System.String,Microsoft.CodeAnalysis.Sarif.Message,System.String,System.String,System.String,System.String,System.String,System.String,Microsoft.CodeAnalysis.Sarif.ColumnKind,System.Collections.Generic.IDictionary`2)" - } - ], - "partialFingerprints": { - "UniqueId": "originalUriBaseIds" - }, - "properties": { - "Category": "Microsoft.Usage", - "FixCategory": "NonBreaking" - } + "name": "Microsoft.CodeAnalysis.Sarif.Converters.PREFastObjectModel", + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.PREFastObjectModel", + "parentIndex": 128, + "kind": "namespace" }, { - "ruleId": "CA2227", - "level": "warning", - "message": { - "text": "Change 'Run.Invocations' to be read-only by removing the property setter." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/Run.cs" - }, - "region": { - "startLine": 45, - "snippet": { - "text": " public IList Invocations { get; set; }" - } - }, - "contextRegion": { - "startLine": 44, - "startColumn": 1, - "endLine": 46, - "endColumn": 1, - "charOffset": 1803, - "charLength": 150, - "snippet": { - "text": " [DataMember(Name = \"invocations\", IsRequired = false, EmitDefaultValue = false)]\r\n public IList Invocations { get; set; }\r\n" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Run.Invocations" - } - ], - "properties": { - "Category": "Microsoft.Usage", - "FixCategory": "Breaking" - } + "name": "Category", + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.PREFastObjectModel.Category", + "parentIndex": 205, + "kind": "type" }, { - "ruleId": "CA2227", - "level": "warning", - "message": { - "text": "Change 'Run.LogicalLocations' to be read-only by removing the property setter." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/Run.cs" - }, - "region": { - "startLine": 75, - "snippet": { - "text": " public IDictionary LogicalLocations { get; set; }" - } - }, - "contextRegion": { - "startLine": 74, - "startColumn": 1, - "endLine": 76, - "endColumn": 1, - "charOffset": 3395, - "charLength": 179, - "snippet": { - "text": " [DataMember(Name = \"logicalLocations\", IsRequired = false, EmitDefaultValue = false)]\r\n public IDictionary LogicalLocations { get; set; }\r\n" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Run.LogicalLocations" - } - ], - "properties": { - "Category": "Microsoft.Usage", - "FixCategory": "Breaking" - } + "name": "ReadXml(System.Xml.XmlReader)", + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.PREFastObjectModel.Category.ReadXml(System.Xml.XmlReader)", + "parentIndex": 206, + "kind": "member" }, { - "ruleId": "CA2227", - "level": "warning", - "message": { - "text": "Change 'Run.OriginalUriBaseIds' to be read-only by removing the property setter." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/Run.cs" - }, - "region": { - "startLine": 63, - "snippet": { - "text": " public IDictionary OriginalUriBaseIds { get; set; }" - } - }, - "contextRegion": { - "startLine": 62, - "startColumn": 1, - "endLine": 64, - "endColumn": 1, - "charOffset": 2765, - "charLength": 171, - "snippet": { - "text": " [DataMember(Name = \"originalUriBaseIds\", IsRequired = false, EmitDefaultValue = false)]\r\n public IDictionary OriginalUriBaseIds { get; set; }\r\n" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Run.OriginalUriBaseIds" - } - ], - "properties": { - "Category": "Microsoft.Usage", - "FixCategory": "Breaking" - } + "name": "Defect", + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.PREFastObjectModel.Defect", + "parentIndex": 205, + "kind": "type" }, { - "ruleId": "CA2227", - "level": "warning", - "message": { - "text": "Change 'Run.Results' to be read-only by removing the property setter." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/Run.cs" - }, - "region": { - "startLine": 87, - "snippet": { - "text": " public IList Results { get; set; }" - } - }, - "contextRegion": { - "startLine": 86, - "startColumn": 1, - "endLine": 88, - "endColumn": 1, - "charOffset": 4101, - "charLength": 138, - "snippet": { - "text": " [DataMember(Name = \"results\", IsRequired = false, EmitDefaultValue = false)]\r\n public IList Results { get; set; }\r\n" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Run.Results" - } - ], - "properties": { - "Category": "Microsoft.Usage", - "FixCategory": "Breaking" - } + "name": "Category", + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.PREFastObjectModel.Defect.Category", + "parentIndex": 208, + "kind": "member" }, { - "ruleId": "CA2227", - "level": "warning", - "message": { - "text": "Change 'Run.VersionControlProvenance' to be read-only by removing the property setter." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/Run.cs" - }, - "region": { - "startLine": 57, - "snippet": { - "text": " public IList VersionControlProvenance { get; set; }" - } - }, - "contextRegion": { - "startLine": 56, - "startColumn": 1, - "endLine": 58, - "endColumn": 1, - "charOffset": 2418, - "charLength": 187, - "snippet": { - "text": " [DataMember(Name = \"versionControlProvenance\", IsRequired = false, EmitDefaultValue = false)]\r\n public IList VersionControlProvenance { get; set; }\r\n" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Run.VersionControlProvenance" - } - ], - "properties": { - "Category": "Microsoft.Usage", - "FixCategory": "Breaking" - } + "name": "Funcline", + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.PREFastObjectModel.Defect.Funcline", + "parentIndex": 208, + "kind": "member" }, { - "ruleId": "CA1502", - "level": "warning", - "message": { - "text": "'RunEqualityComparer.Equals(Run, Run)' has a cyclomatic complexity of 73. Rewrite or refactor the method to reduce complexity to 25." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/RunEqualityComparer.cs" - }, - "region": { - "startLine": 20, - "snippet": { - "text": " {" - } - }, - "contextRegion": { - "startLine": 19, - "startColumn": 1, - "endLine": 21, - "endColumn": 46, - "charOffset": 695, - "charLength": 105, - "snippet": { - "text": " public bool Equals(Run left, Run right)\r\n {\r\n if (ReferenceEquals(left, right))" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.RunEqualityComparer.Equals(Microsoft.CodeAnalysis.Sarif.Run,Microsoft.CodeAnalysis.Sarif.Run)" - } - ], - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Maintainability", - "FixCategory": "NonBreaking" - } + "name": "SFA", + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.PREFastObjectModel.Defect.SFA", + "parentIndex": 208, + "kind": "member" }, { - "ruleId": "CA1809", - "level": "warning", - "message": { - "text": "'RunEqualityComparer.Equals(Run, Run)' has 68 local variables, 56 of which were generated by the compiler. Refactor 'RunEqualityComparer.Equals(Run, Run)' so that it uses fewer than 64 local variables.", - "messageId": "Compiler" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/RunEqualityComparer.cs" - }, - "region": { - "startLine": 20, - "snippet": { - "text": " {" - } - }, - "contextRegion": { - "startLine": 19, - "startColumn": 1, - "endLine": 21, - "endColumn": 46, - "charOffset": 695, - "charLength": 105, - "snippet": { - "text": " public bool Equals(Run left, Run right)\r\n {\r\n if (ReferenceEquals(left, right))" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.RunEqualityComparer.Equals(Microsoft.CodeAnalysis.Sarif.Run,Microsoft.CodeAnalysis.Sarif.Run)" - } - ], - "partialFingerprints": { - "UniqueId": "Compiler" - }, - "properties": { - "Category": "Microsoft.Performance", - "FixCategory": "NonBreaking" - } + "name": "DefectList", + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.PREFastObjectModel.DefectList", + "parentIndex": 205, + "kind": "type" }, { - "ruleId": "CA1502", - "level": "warning", - "message": { - "text": "'RunEqualityComparer.GetHashCode(Run)' has a cyclomatic complexity of 46. Rewrite or refactor the method to reduce complexity to 25." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/RunEqualityComparer.cs" - }, - "region": { - "startLine": 272, - "snippet": { - "text": " {" - } - }, - "contextRegion": { - "startLine": 271, - "startColumn": 1, - "endLine": 273, - "endColumn": 44, - "charOffset": 8882, - "charLength": 95, - "snippet": { - "text": " public int GetHashCode(Run obj)\r\n {\r\n if (ReferenceEquals(obj, null))" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.RunEqualityComparer.GetHashCode(Microsoft.CodeAnalysis.Sarif.Run)" - } - ], - "properties": { - "Category": "Microsoft.Maintainability", - "FixCategory": "NonBreaking" - } + "name": "Defects", + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.PREFastObjectModel.DefectList.Defects", + "parentIndex": 212, + "kind": "member" }, { - "ruleId": "CA2217", - "level": "error", - "message": { - "text": "'RuntimeConditions' is marked with FlagsAttribute but a discrete member cannot be found for every settable bit that is used across the range of enum values. Remove FlagsAttribute from the type or define new members for the following (currently missing) values: 0x100000, 0x200000, 0x400000, 0x800000, 0x1000000, 0x2000000" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.RuntimeConditions" - } - ], - "properties": { - "Category": "Microsoft.Usage", - "FixCategory": "NonBreaking" - } + "name": "PREFastPath", + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.PREFastObjectModel.PREFastPath", + "parentIndex": 205, + "kind": "type" }, { - "ruleId": "CA1028", - "level": "warning", - "message": { - "text": "If possible, make the underlying type of 'RuntimeConditions' Int32 instead of 'uint'. Otherwise consider Byte, Int16, or Int64.", - "messageId": "NotIntegral" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.RuntimeConditions" - } - ], - "partialFingerprints": { - "UniqueId": "NotIntegral" - }, - "properties": { - "Category": "Microsoft.Design", - "FixCategory": "Breaking" - } + "name": "SFAs", + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.PREFastObjectModel.PREFastPath.SFAs", + "parentIndex": 214, + "kind": "member" }, { - "ruleId": "CA1704", - "level": "warning", - "message": { - "text": "Correct the spelling of 'Sarif' in type name 'SarifConstants'.", - "messageId": "Type" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.SarifConstants" - } - ], - "partialFingerprints": { - "UniqueId": "Sarif#Type" - }, - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" - } + "name": "SFA", + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.PREFastObjectModel.SFA", + "parentIndex": 205, + "kind": "type" }, { - "ruleId": "CA1704", - "level": "warning", - "message": { - "text": "Correct the spelling of 'Sarif' in type name 'SarifLog'.", - "messageId": "Type" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.SarifLog" - } - ], - "partialFingerprints": { - "UniqueId": "Sarif#Type" - }, - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" - } + "name": "Microsoft.CodeAnalysis.Sarif.Converters.PylintObjectModel", + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.PylintObjectModel", + "parentIndex": 128, + "kind": "namespace" }, { - "ruleId": "CA2227", - "level": "warning", - "message": { - "text": "Change 'SarifLog.Runs' to be read-only by removing the property setter." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/SarifLog.cs" - }, - "region": { - "startLine": 50, - "snippet": { - "text": " public IList Runs { get; set; }" - } - }, - "contextRegion": { - "startLine": 49, - "startColumn": 1, - "endLine": 51, - "endColumn": 1, - "charOffset": 1788, - "charLength": 102, - "snippet": { - "text": " [DataMember(Name = \"runs\", IsRequired = true)]\r\n public IList Runs { get; set; }\r\n" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.SarifLog.Runs" - } - ], - "properties": { - "Category": "Microsoft.Usage", - "FixCategory": "Breaking" - } + "name": "PylintLog", + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.PylintObjectModel.PylintLog", + "parentIndex": 217, + "kind": "type" }, { - "ruleId": "CA1704", - "level": "warning", - "message": { - "text": "Correct the spelling of 'Sarif' in type name 'SarifNodeKind'.", - "messageId": "Type" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.SarifNodeKind" - } - ], - "partialFingerprints": { - "UniqueId": "Sarif#Type" - }, - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" - } + "name": "PylintLogEntry", + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.PylintObjectModel.PylintLogEntry", + "parentIndex": 217, + "kind": "type" }, { - "ruleId": "CA1704", - "level": "warning", - "message": { - "text": "Correct the spelling of 'Sarif' in member name 'SarifNodeKind.SarifLog' or remove it entirely if it represents any sort of Hungarian notation.", - "messageId": "Member" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.SarifNodeKind.SarifLog" - } - ], - "partialFingerprints": { - "UniqueId": "Sarif#Member" - }, - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" - } + "name": "Type", + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.PylintObjectModel.PylintLogEntry.Type", + "parentIndex": 219, + "kind": "member" }, { - "ruleId": "CA1704", - "level": "warning", - "message": { - "text": "Correct the spelling of 'Sarif' in type name 'SarifRewritingVisitor'.", - "messageId": "Type" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.SarifRewritingVisitor" - } - ], - "partialFingerprints": { - "UniqueId": "Sarif#Type" - }, - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" - } + "name": "PylintLogReader", + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.PylintObjectModel.PylintLogReader", + "parentIndex": 217, + "kind": "type" }, { - "ruleId": "CA1506", - "level": "warning", - "message": { - "text": "'SarifRewritingVisitor.VisitActual(ISarifNode)' is coupled with 39 different types from 2 different namespaces. Rewrite or refactor the method to decrease its class coupling, or consider moving the method to one of the other types it is tightly coupled with. A class coupling above 40 indicates poor maintainability, a class coupling between 40 and 30 indicates moderate maintainability, and a class coupling below 30 indicates good maintainability.", - "messageId": "Method" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/SarifRewritingVisitor.cs" - }, - "region": { - "startLine": 41, - "snippet": { - "text": " {" - } - }, - "contextRegion": { - "startLine": 40, - "startColumn": 1, - "endLine": 42, - "endColumn": 30, - "charOffset": 1244, - "charLength": 100, - "snippet": { - "text": " public virtual object VisitActual(ISarifNode node)\r\n {\r\n if (node == null)" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.SarifRewritingVisitor.VisitActual(Microsoft.CodeAnalysis.Sarif.ISarifNode)" - } - ], - "partialFingerprints": { - "UniqueId": "Method" - }, - "properties": { - "Category": "Microsoft.Maintainability", - "FixCategory": "Breaking" - } + "name": "ReadLog(System.IO.Stream)", + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.PylintObjectModel.PylintLogReader.ReadLog(System.IO.Stream)", + "parentIndex": 221, + "kind": "member" }, { - "ruleId": "CA1502", - "level": "warning", - "message": { - "text": "'SarifRewritingVisitor.VisitActual(ISarifNode)' has a cyclomatic complexity of 38. Rewrite or refactor the method to reduce complexity to 25." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/SarifRewritingVisitor.cs" - }, - "region": { - "startLine": 41, - "snippet": { - "text": " {" - } - }, - "contextRegion": { - "startLine": 40, - "startColumn": 1, - "endLine": 42, - "endColumn": 30, - "charOffset": 1244, - "charLength": 100, - "snippet": { - "text": " public virtual object VisitActual(ISarifNode node)\r\n {\r\n if (node == null)" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.SarifRewritingVisitor.VisitActual(Microsoft.CodeAnalysis.Sarif.ISarifNode)" - } - ], - "properties": { - "Category": "Microsoft.Maintainability", - "FixCategory": "NonBreaking" - } + "name": "Microsoft.CodeAnalysis.Sarif.Converters.TSLintObjectModel", + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.TSLintObjectModel", + "parentIndex": 128, + "kind": "namespace" }, { - "ruleId": "CA1704", - "level": "warning", - "message": { - "text": "Correct the spelling of 'Sarif' in member name 'SarifRewritingVisitor.VisitSarifLog(SarifLog)' or remove it entirely if it represents any sort of Hungarian notation.", - "messageId": "Member" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/SarifRewritingVisitor.cs" - }, - "region": { - "startLine": 697, - "snippet": { - "text": " {" - } - }, - "contextRegion": { - "startLine": 696, - "startColumn": 1, - "endLine": 698, - "endColumn": 30, - "charOffset": 24581, - "charLength": 102, - "snippet": { - "text": " public virtual SarifLog VisitSarifLog(SarifLog node)\r\n {\r\n if (node != null)" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.SarifRewritingVisitor.VisitSarifLog(Microsoft.CodeAnalysis.Sarif.SarifLog)" - } - ], - "partialFingerprints": { - "UniqueId": "Sarif#Member" - }, - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" - } + "name": "TSLintLog", + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.TSLintObjectModel.TSLintLog", + "parentIndex": 223, + "kind": "type" }, { - "ruleId": "CA1704", - "level": "warning", - "message": { - "text": "Correct the spelling of 'Sarif' in type name 'SarifUtilities'.", - "messageId": "Type" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.SarifUtilities" - } - ], - "partialFingerprints": { - "UniqueId": "Sarif#Type" - }, - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" - } + "name": "TSLintLogEntry", + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.TSLintObjectModel.TSLintLogEntry", + "parentIndex": 223, + "kind": "type" }, { - "ruleId": "CA1704", - "level": "warning", - "message": { - "text": "In method 'SarifUtilities.AddOrUpdateDictionaryEntry(IDictionary, TKey, TValue)', correct the spelling of 'val' in parameter name 'val' or remove it entirely if it represents any sort of Hungarian notation.", - "messageId": "MemberParameter" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/SarifUtilities.cs" - }, - "region": { - "startLine": 130, - "snippet": { - "text": " {" - } - }, - "contextRegion": { - "startLine": 129, - "startColumn": 1, - "endLine": 131, - "endColumn": 45, - "charOffset": 5161, - "charLength": 184, - "snippet": { - "text": " public static void AddOrUpdateDictionaryEntry(IDictionary dictionary, TKey key, TValue val)\r\n {\r\n if (dictionary.ContainsKey(key))" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.SarifUtilities.AddOrUpdateDictionaryEntry`2(System.Collections.Generic.IDictionary`2,!!0,!!1)" - } - ], - "partialFingerprints": { - "UniqueId": "val#MemberParameter" - }, - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" - } + "name": "Fixes", + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.TSLintObjectModel.TSLintLogEntry.Fixes", + "parentIndex": 225, + "kind": "member" }, { - "ruleId": "CA1062", - "level": "warning", - "message": { - "text": "In externally visible method 'SarifUtilities.AddOrUpdateDictionaryEntry(IDictionary, TKey, TValue)', validate parameter 'dictionary' before using it." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/SarifUtilities.cs" - }, - "region": { - "startLine": 131, - "snippet": { - "text": " if (dictionary.ContainsKey(key))" - } - }, - "contextRegion": { - "startLine": 130, - "startColumn": 1, - "endLine": 132, - "endColumn": 14, - "charOffset": 5290, - "charLength": 70, - "snippet": { - "text": " {\r\n if (dictionary.ContainsKey(key))\r\n {" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.SarifUtilities.AddOrUpdateDictionaryEntry`2(System.Collections.Generic.IDictionary`2,!!0,!!1)" - } - ], - "partialFingerprints": { - "UniqueId": "0" - }, - "properties": { - "Category": "Microsoft.Design", - "FixCategory": "DependsOnFix" - } + "name": "Microsoft.CodeAnalysis.Sarif.Converters.ConverterResources.resources", + "fullyQualifiedName": "sarif.converters.dll!Microsoft.CodeAnalysis.Sarif.Converters.ConverterResources.resources", + "parentIndex": 128, + "kind": "resource" }, { - "ruleId": "CA1704", - "level": "warning", - "message": { - "text": "Correct the spelling of 'Sarif' in member name 'SarifUtilities.ConvertToSarifVersion(this string)' or remove it entirely if it represents any sort of Hungarian notation.", - "messageId": "Member" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/SarifUtilities.cs" - }, - "region": { - "startLine": 40, - "snippet": { - "text": " {" - } - }, - "contextRegion": { - "startLine": 39, - "startColumn": 1, - "endLine": 41, - "endColumn": 38, - "charOffset": 1626, - "charLength": 136, - "snippet": { - "text": " public static SarifVersion ConvertToSarifVersion(this string sarifVersionText)\r\n {\r\n switch (sarifVersionText)" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.SarifUtilities.ConvertToSarifVersion(System.String)" - } - ], - "partialFingerprints": { - "UniqueId": "Sarif#Member" - }, - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" - } + "name": "sarif.dll", + "kind": "module" }, { - "ruleId": "CA1704", - "level": "warning", - "message": { - "text": "In method 'SarifUtilities.ConvertToSarifVersion(this string)', correct the spelling of 'sarif' in parameter name 'sarifVersionText' or remove it entirely if it represents any sort of Hungarian notation.", - "messageId": "MemberParameter" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/SarifUtilities.cs" - }, - "region": { - "startLine": 40, - "snippet": { - "text": " {" - } - }, - "contextRegion": { - "startLine": 39, - "startColumn": 1, - "endLine": 41, - "endColumn": 38, - "charOffset": 1626, - "charLength": 136, - "snippet": { - "text": " public static SarifVersion ConvertToSarifVersion(this string sarifVersionText)\r\n {\r\n switch (sarifVersionText)" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.SarifUtilities.ConvertToSarifVersion(System.String)" - } - ], - "partialFingerprints": { - "UniqueId": "sarif#MemberParameter" - }, - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" - } + "name": "Microsoft.CodeAnalysis.Sarif", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif", + "parentIndex": 228, + "kind": "namespace" }, { - "ruleId": "CA1704", - "level": "warning", - "message": { - "text": "In method 'SarifUtilities.ConvertToSchemaUri(this SarifVersion)', correct the spelling of 'sarif' in parameter name 'sarifVersion' or remove it entirely if it represents any sort of Hungarian notation.", - "messageId": "MemberParameter" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/SarifUtilities.cs" - }, - "region": { - "startLine": 63, - "snippet": { - "text": " {" - } - }, - "contextRegion": { - "startLine": 62, - "startColumn": 1, - "endLine": 64, - "endColumn": 115, - "charOffset": 2467, - "charLength": 203, - "snippet": { - "text": " public static Uri ConvertToSchemaUri(this SarifVersion sarifVersion)\r\n {\r\n return new Uri(\"http://json.schemastore.org/sarif-\" + sarifVersion.ConvertToText(), UriKind.Absolute);" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.SarifUtilities.ConvertToSchemaUri(Microsoft.CodeAnalysis.Sarif.SarifVersion)" - } - ], - "partialFingerprints": { - "UniqueId": "sarif#MemberParameter" - }, - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" - } + "name": "Attachment", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Attachment", + "parentIndex": 229, + "kind": "type" }, { - "ruleId": "CA1704", - "level": "warning", - "message": { - "text": "In method 'SarifUtilities.ConvertToText(this SarifVersion)', correct the spelling of 'sarif' in parameter name 'sarifVersion' or remove it entirely if it represents any sort of Hungarian notation.", - "messageId": "MemberParameter" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/SarifUtilities.cs" - }, - "region": { - "startLine": 52, - "snippet": { - "text": " {" - } - }, - "contextRegion": { - "startLine": 51, - "startColumn": 1, - "endLine": 53, - "endColumn": 34, - "charOffset": 2055, - "charLength": 120, - "snippet": { - "text": " public static string ConvertToText(this SarifVersion sarifVersion)\r\n {\r\n switch (sarifVersion)" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.SarifUtilities.ConvertToText(Microsoft.CodeAnalysis.Sarif.SarifVersion)" - } - ], - "partialFingerprints": { - "UniqueId": "sarif#MemberParameter" - }, - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" - } + "name": "Rectangles", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Attachment.Rectangles", + "parentIndex": 230, + "kind": "member" }, { - "ruleId": "CA1026", - "level": "error", - "message": { - "text": "Replace method 'SarifUtilities.CreateSingleThreadedCodeFlow(IEnumerable)' with an overload that supplies all default arguments." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/SarifUtilities.cs" - }, - "region": { - "startLine": 142, - "snippet": { - "text": " {" - } - }, - "contextRegion": { - "startLine": 141, - "startColumn": 1, - "endLine": 143, - "endColumn": 32, - "charOffset": 5521, - "charLength": 153, - "snippet": { - "text": " public static CodeFlow CreateSingleThreadedCodeFlow(IEnumerable locations = null)\r\n {\r\n return new CodeFlow" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.SarifUtilities.CreateSingleThreadedCodeFlow(System.Collections.Generic.IEnumerable`1)" - } - ], - "properties": { - "Category": "Microsoft.Design", - "FixCategory": "Breaking" - } + "name": "Regions", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Attachment.Regions", + "parentIndex": 230, + "kind": "member" }, { - "ruleId": "CA1026", - "level": "error", - "message": { - "text": "Replace method 'SarifUtilities.DecodeBase64String(string, Encoding)' with an overload that supplies all default arguments." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/SarifUtilities.cs" - }, - "region": { - "startLine": 167, - "snippet": { - "text": " {" - } - }, - "contextRegion": { - "startLine": 166, - "startColumn": 1, - "endLine": 168, - "endColumn": 50, - "charOffset": 6341, - "charLength": 145, - "snippet": { - "text": " public static string DecodeBase64String(string s, Encoding encoding = null)\r\n {\r\n encoding = encoding ?? Encoding.UTF8;" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.SarifUtilities.DecodeBase64String(System.String,System.Text.Encoding)" - } - ], - "properties": { - "Category": "Microsoft.Design", - "FixCategory": "Breaking" - } + "name": "CodeFlow", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.CodeFlow", + "parentIndex": 229, + "kind": "type" }, { - "ruleId": "CA1704", - "level": "warning", - "message": { - "text": "In method 'SarifUtilities.DecodeBase64String(string, Encoding)', consider providing a more meaningful name than parameter name 's'.", - "messageId": "MemberParameterMoreMeaningfulName" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/SarifUtilities.cs" - }, - "region": { - "startLine": 167, - "snippet": { - "text": " {" - } - }, - "contextRegion": { - "startLine": 166, - "startColumn": 1, - "endLine": 168, - "endColumn": 50, - "charOffset": 6341, - "charLength": 145, - "snippet": { - "text": " public static string DecodeBase64String(string s, Encoding encoding = null)\r\n {\r\n encoding = encoding ?? Encoding.UTF8;" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.SarifUtilities.DecodeBase64String(System.String,System.Text.Encoding)" - } - ], - "partialFingerprints": { - "UniqueId": "s#MemberParameterMoreMeaningfulName" - }, - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" - } + "name": ".ctor(Microsoft.CodeAnalysis.Sarif.CodeFlow)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.CodeFlow..ctor(Microsoft.CodeAnalysis.Sarif.CodeFlow)", + "parentIndex": 233, + "kind": "member" }, { - "ruleId": "CA1704", - "level": "warning", - "message": { - "text": "In method 'SarifUtilities.GetBase64String(string, Encoding)', consider providing a more meaningful name than parameter name 's'.", - "messageId": "MemberParameterMoreMeaningfulName" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/SarifUtilities.cs" - }, - "region": { - "startLine": 161, - "snippet": { - "text": " {" - } - }, - "contextRegion": { - "startLine": 160, - "startColumn": 1, - "endLine": 162, - "endColumn": 49, - "charOffset": 6141, - "charLength": 134, - "snippet": { - "text": " public static string GetBase64String(string s, Encoding encoding)\r\n {\r\n byte[] bytes = encoding.GetBytes(s);" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.SarifUtilities.GetBase64String(System.String,System.Text.Encoding)" - } - ], - "partialFingerprints": { - "UniqueId": "s#MemberParameterMoreMeaningfulName" - }, - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" - } + "name": ".ctor(Microsoft.CodeAnalysis.Sarif.Message,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IDictionary`2)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.CodeFlow..ctor(Microsoft.CodeAnalysis.Sarif.Message,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IDictionary`2)", + "parentIndex": 233, + "kind": "member" }, { - "ruleId": "CA1062", - "level": "warning", - "message": { - "text": "In externally visible method 'SarifUtilities.GetBase64String(string, Encoding)', validate parameter 'encoding' before using it." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/SarifUtilities.cs" - }, - "region": { - "startLine": 162, - "snippet": { - "text": " byte[] bytes = encoding.GetBytes(s);" - } - }, - "contextRegion": { - "startLine": 161, - "startColumn": 1, - "endLine": 163, - "endColumn": 50, - "charOffset": 6216, - "charLength": 110, - "snippet": { - "text": " {\r\n byte[] bytes = encoding.GetBytes(s);\r\n return Convert.ToBase64String(bytes);" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.SarifUtilities.GetBase64String(System.String,System.Text.Encoding)" - } - ], - "partialFingerprints": { - "UniqueId": "1" - }, - "properties": { - "Category": "Microsoft.Design", - "FixCategory": "DependsOnFix" - } + "name": "ThreadFlows", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.CodeFlow.ThreadFlows", + "parentIndex": 233, + "kind": "member" }, { - "ruleId": "CA1720", - "level": "error", - "message": { - "text": "In member 'SarifUtilities.GetByteLength(char[], Encoding)', consider replacing the data type identifier 'chars' in parameter name 'chars' with a more generic term, such as 'value'.", - "messageId": "LanguageIndependentMemberParameter" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/SarifUtilities.cs" - }, - "region": { - "startLine": 174, - "snippet": { - "text": " {" - } - }, - "contextRegion": { - "startLine": 173, - "startColumn": 1, - "endLine": 175, - "endColumn": 77, - "charOffset": 6605, - "charLength": 161, - "snippet": { - "text": " public static int GetByteLength(char[] chars, Encoding encoding)\r\n {\r\n chars = chars ?? throw new ArgumentNullException(nameof(chars));" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.SarifUtilities.GetByteLength(System.Char[],System.Text.Encoding)" - } - ], - "partialFingerprints": { - "UniqueId": "chars#LanguageIndependentMemberParameter" - }, - "properties": { - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" - } + "name": "ConsoleLogger", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.ConsoleLogger", + "parentIndex": 229, + "kind": "type" }, { - "ruleId": "CA1704", - "level": "warning", - "message": { - "text": "In method 'SarifUtilities.GetByteLength(string, Encoding)', consider providing a more meaningful name than parameter name 's'.", - "messageId": "MemberParameterMoreMeaningfulName" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/SarifUtilities.cs" - }, - "region": { - "startLine": 183, - "snippet": { - "text": " {" - } - }, - "contextRegion": { - "startLine": 182, - "startColumn": 1, - "endLine": 184, - "endColumn": 65, - "charOffset": 6961, - "charLength": 145, - "snippet": { - "text": " public static int GetByteLength(string s, Encoding encoding)\r\n {\r\n s = s ?? throw new ArgumentNullException(nameof(s));" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.SarifUtilities.GetByteLength(System.String,System.Text.Encoding)" - } - ], - "partialFingerprints": { - "UniqueId": "s#MemberParameterMoreMeaningfulName" - }, - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" - } + "name": "FormatNotificationMessage(Microsoft.CodeAnalysis.Sarif.Notification)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.ConsoleLogger.FormatNotificationMessage(Microsoft.CodeAnalysis.Sarif.Notification)", + "parentIndex": 237, + "kind": "member" }, { - "ruleId": "CA1704", - "level": "warning", - "message": { - "text": "In method 'SarifUtilities.GetUtf8Base64String(string)', consider providing a more meaningful name than parameter name 's'.", - "messageId": "MemberParameterMoreMeaningfulName" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/SarifUtilities.cs" - }, - "region": { - "startLine": 156, - "snippet": { - "text": " {" - } - }, - "contextRegion": { - "startLine": 155, - "startColumn": 1, - "endLine": 157, - "endColumn": 54, - "charOffset": 6002, - "charLength": 124, - "snippet": { - "text": " public static string GetUtf8Base64String(string s)\r\n {\r\n return GetBase64String(s, Encoding.UTF8);" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.SarifUtilities.GetUtf8Base64String(System.String)" - } - ], - "partialFingerprints": { - "UniqueId": "s#MemberParameterMoreMeaningfulName" - }, - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" - } + "name": "NormalizeMessage(System.String,System.Boolean)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.ConsoleLogger.NormalizeMessage(System.String,System.Boolean)", + "parentIndex": 237, + "kind": "member" }, { - "ruleId": "CA1704", - "level": "warning", - "message": { - "text": "Correct the spelling of 'Sarif' in member name 'SarifUtilities.SarifDateTimeFormatMillisecondsPrecision' or remove it entirely if it represents any sort of Hungarian notation.", - "messageId": "Member" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.SarifUtilities.SarifDateTimeFormatMillisecondsPrecision" - } - ], - "partialFingerprints": { - "UniqueId": "Sarif#Member" - }, - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" - } + "name": "Conversion", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Conversion", + "parentIndex": 229, + "kind": "type" }, { - "ruleId": "CA1704", - "level": "warning", - "message": { - "text": "Correct the spelling of 'Sarif' in member name 'SarifUtilities.SarifDateTimeFormatSecondsPrecision' or remove it entirely if it represents any sort of Hungarian notation.", - "messageId": "Member" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.SarifUtilities.SarifDateTimeFormatSecondsPrecision" - } - ], - "partialFingerprints": { - "UniqueId": "Sarif#Member" - }, - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" - } + "name": "AnalysisToolLogFiles", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Conversion.AnalysisToolLogFiles", + "parentIndex": 240, + "kind": "member" }, { - "ruleId": "CA1704", - "level": "warning", - "message": { - "text": "Correct the spelling of 'Sarif' in type name 'SarifUtilitiesVersionOne'.", - "messageId": "Type" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.SarifUtilitiesVersionOne" - } - ], - "partialFingerprints": { - "UniqueId": "Sarif#Type" - }, - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" - } + "name": "Edge", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Edge", + "parentIndex": 229, + "kind": "type" }, { - "ruleId": "CA1704", - "level": "warning", - "message": { - "text": "In method 'SarifUtilitiesVersionOne.ConvertToSchemaUri(this SarifVersionVersionOne)', correct the spelling of 'sarif' in parameter name 'sarifVersion' or remove it entirely if it represents any sort of Hungarian notation.", - "messageId": "MemberParameter" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/VersionOne/SarifUtilitiesVersionOne.cs" - }, - "region": { - "startLine": 25, - "snippet": { - "text": " {" - } - }, - "contextRegion": { - "startLine": 24, - "startColumn": 1, - "endLine": 26, - "endColumn": 115, - "charOffset": 766, - "charLength": 213, - "snippet": { - "text": " public static Uri ConvertToSchemaUri(this SarifVersionVersionOne sarifVersion)\r\n {\r\n return new Uri(\"http://json.schemastore.org/sarif-\" + sarifVersion.ConvertToText(), UriKind.Absolute);" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.SarifUtilitiesVersionOne.ConvertToSchemaUri(Microsoft.CodeAnalysis.Sarif.VersionOne.SarifVersionVersionOne)" - } - ], - "partialFingerprints": { - "UniqueId": "sarif#MemberParameter" - }, - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" - } + "name": ".ctor(Microsoft.CodeAnalysis.Sarif.Edge)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Edge..ctor(Microsoft.CodeAnalysis.Sarif.Edge)", + "parentIndex": 242, + "kind": "member" }, { - "ruleId": "CA1704", - "level": "warning", - "message": { - "text": "In method 'SarifUtilitiesVersionOne.ConvertToText(this SarifVersionVersionOne)', correct the spelling of 'sarif' in parameter name 'sarifVersion' or remove it entirely if it represents any sort of Hungarian notation.", - "messageId": "MemberParameter" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/VersionOne/SarifUtilitiesVersionOne.cs" - }, - "region": { - "startLine": 14, - "snippet": { - "text": " {" - } - }, - "contextRegion": { - "startLine": 13, - "startColumn": 1, - "endLine": 15, - "endColumn": 34, - "charOffset": 370, - "charLength": 130, - "snippet": { - "text": " public static string ConvertToText(this SarifVersionVersionOne sarifVersion)\r\n {\r\n switch (sarifVersion)" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.SarifUtilitiesVersionOne.ConvertToText(Microsoft.CodeAnalysis.Sarif.VersionOne.SarifVersionVersionOne)" - } - ], - "partialFingerprints": { - "UniqueId": "sarif#MemberParameter" - }, - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" - } + "name": ".ctor(System.String,Microsoft.CodeAnalysis.Sarif.Message,System.String,System.String,System.Collections.Generic.IDictionary`2)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Edge..ctor(System.String,Microsoft.CodeAnalysis.Sarif.Message,System.String,System.String,System.Collections.Generic.IDictionary`2)", + "parentIndex": 242, + "kind": "member" }, { - "ruleId": "CA1704", - "level": "warning", - "message": { - "text": "Correct the spelling of 'Sarif' in type name 'SarifVersion'.", - "messageId": "Type" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.SarifVersion" - } - ], - "partialFingerprints": { - "UniqueId": "Sarif#Type" - }, - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" - } + "name": "EdgeTraversal", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.EdgeTraversal", + "parentIndex": 229, + "kind": "type" }, { - "ruleId": "CA1811", - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.SdkResources..ctor()" - } - ], - "suppressionStates": ["suppressedInSource"], - "properties": { - "Category": "Microsoft.Performance", - "FixCategory": "NonBreaking" - } + "name": ".ctor(Microsoft.CodeAnalysis.Sarif.EdgeTraversal)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.EdgeTraversal..ctor(Microsoft.CodeAnalysis.Sarif.EdgeTraversal)", + "parentIndex": 245, + "kind": "member" }, { - "ruleId": "CA1711", - "level": "error", - "message": { - "text": "Rename type name 'Stack' so that it does not end in 'Stack'.", - "messageId": "TypeNoAlternate" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Stack" - } - ], - "partialFingerprints": { - "UniqueId": "TypeNoAlternate" - }, - "properties": { - "Level": "CriticalError", - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" - } + "name": ".ctor(System.String,Microsoft.CodeAnalysis.Sarif.Message,System.Collections.Generic.IDictionary`2,System.Int32,System.Collections.Generic.IDictionary`2)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.EdgeTraversal..ctor(System.String,Microsoft.CodeAnalysis.Sarif.Message,System.Collections.Generic.IDictionary`2,System.Int32,System.Collections.Generic.IDictionary`2)", + "parentIndex": 245, + "kind": "member" }, { - "ruleId": "CA2214", - "level": "warning", - "message": { - "text": "'Stack.Stack(Message, IEnumerable, IDictionary)' contains a call chain that results in a call to a virtual method defined by the class. Review the following call stack for unintended consequences: \r\n\r\nStack..ctor(Message, IEnumerable, IDictionary)\r\nStack.Init(Message, IEnumerable, IDictionary):Void\r\nPropertyBagHolder.set_Properties(IDictionary):Void" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/Stack.cs" - }, - "region": { - "startLine": 72, - "snippet": { - "text": " public Stack(Message message, IEnumerable frames, IDictionary properties)" - } - }, - "contextRegion": { - "startLine": 71, - "startColumn": 1, - "endLine": 73, - "endColumn": 10, - "charOffset": 2749, - "charLength": 158, - "snippet": { - "text": " /// \r\n public Stack(Message message, IEnumerable frames, IDictionary properties)\r\n {" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Stack..ctor(Microsoft.CodeAnalysis.Sarif.Message,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IDictionary`2)" - } - ], - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Usage", - "FixCategory": "NonBreaking" - } + "name": "FinalState", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.EdgeTraversal.FinalState", + "parentIndex": 245, + "kind": "member" }, { - "ruleId": "CA2214", - "level": "warning", - "message": { - "text": "'Stack.Stack(Stack)' contains a call chain that results in a call to a virtual method defined by the class. Review the following call stack for unintended consequences: \r\n\r\nStack..ctor(Stack)\r\nStack.Init(Message, IEnumerable, IDictionary):Void\r\nPropertyBagHolder.set_Properties(IDictionary):Void" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/Stack.cs" - }, - "region": { - "startLine": 86, - "snippet": { - "text": " public Stack(Stack other)" - } - }, - "contextRegion": { - "startLine": 85, - "startColumn": 1, - "endLine": 87, - "endColumn": 10, - "charOffset": 3364, - "charLength": 70, - "snippet": { - "text": " /// \r\n public Stack(Stack other)\r\n {" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Stack..ctor(Microsoft.CodeAnalysis.Sarif.Stack)" - } - ], - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Usage", - "FixCategory": "NonBreaking" - } + "name": "ExceptionData", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.ExceptionData", + "parentIndex": 229, + "kind": "type" }, { - "ruleId": "CA1062", - "level": "warning", - "message": { - "text": "In externally visible method 'Stack.Stack(StackTrace)', validate parameter 'stackTrace' before using it." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Core/Stack.cs" - }, - "region": { - "startLine": 79, - "snippet": { - "text": " if (stackTrace.FrameCount == 0)" - } - }, - "contextRegion": { - "startLine": 78, - "startColumn": 1, - "endLine": 80, - "endColumn": 14, - "charOffset": 2548, - "charLength": 69, - "snippet": { - "text": " {\r\n if (stackTrace.FrameCount == 0)\r\n {" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Stack..ctor(System.Diagnostics.StackTrace)" - } - ], - "partialFingerprints": { - "UniqueId": "0" - }, - "properties": { - "Category": "Microsoft.Design", - "FixCategory": "DependsOnFix" - } + "name": "Create(System.Exception)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.ExceptionData.Create(System.Exception)", + "parentIndex": 249, + "kind": "member" }, { - "ruleId": "CA1804", - "level": "warning", - "message": { - "text": "'Stack.Create(string)' declares a variable, 'current', of type 'string', which is never used or is only assigned to. Use this variable or remove it." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Core/Stack.cs" - }, - "region": { - "startLine": 113, - "snippet": { - "text": " string current = line;" - } - }, - "contextRegion": { - "startLine": 112, - "startColumn": 1, - "endLine": 114, - "endColumn": 1, - "charOffset": 3738, - "charLength": 97, - "snippet": { - "text": " // at Type.Method() in File.cs : line X\r\n string current = line;\r\n" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Stack.Create(System.String)" - } - ], - "partialFingerprints": { - "UniqueId": "current" - }, - "properties": { - "Category": "Microsoft.Performance", - "FixCategory": "NonBreaking" - } + "name": "InnerExceptions", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.ExceptionData.InnerExceptions", + "parentIndex": 249, + "kind": "member" }, { - "ruleId": "CA1305", - "level": "error", - "message": { - "text": "Because the behavior of 'int.Parse(string)' could vary based on the current user's locale settings, replace this call in 'Stack.Create(string)' with a call to 'int.Parse(string, IFormatProvider)'. If the result of 'int.Parse(string, IFormatProvider)' will be based on input from the user, specify 'CultureInfo.CurrentCulture' as the 'IFormatProvider' parameter. Otherwise, if the result will based on input stored and accessed by software, such as when it is loaded from disk or from a database, specify 'CultureInfo.InvariantCulture'.", - "messageId": "IFormatProviderAlternate" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Core/Stack.cs" - }, - "region": { - "startLine": 129, - "snippet": { - "text": " int lineNumber = int.Parse(match.Groups[4].Value);" - } - }, - "contextRegion": { - "startLine": 128, - "startColumn": 1, - "endLine": 130, - "endColumn": 1, - "charOffset": 4272, - "charLength": 142, - "snippet": { - "text": " string fileName = match.Groups[3].Value;\r\n int lineNumber = int.Parse(match.Groups[4].Value);\r\n" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Stack.Create(System.String)" - } - ], - "partialFingerprints": { - "UniqueId": "System.Int32.Parse(System.String)#IFormatProviderAlternate" - }, - "properties": { - "Category": "Microsoft.Globalization", - "FixCategory": "NonBreaking" - } + "name": "ExtensionMethods", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.ExtensionMethods", + "parentIndex": 229, + "kind": "type" }, { - "ruleId": "CA2227", - "level": "warning", - "message": { - "text": "Change 'Stack.Frames' to be read-only by removing the property setter." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/Stack.cs" - }, - "region": { - "startLine": 45, - "snippet": { - "text": " public IList Frames { get; set; }" - } - }, - "contextRegion": { - "startLine": 44, - "startColumn": 1, - "endLine": 46, - "endColumn": 1, - "charOffset": 1602, - "charLength": 113, - "snippet": { - "text": " [DataMember(Name = \"frames\", IsRequired = true)]\r\n public IList Frames { get; set; }\r\n" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Stack.Frames" - } - ], - "properties": { - "Category": "Microsoft.Usage", - "FixCategory": "Breaking" - } + "name": "GetFileName(System.Uri)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.ExtensionMethods.GetFileName(System.Uri)", + "parentIndex": 252, + "kind": "member" }, { - "ruleId": "CA2214", - "level": "warning", - "message": { - "text": "'StackFrame.StackFrame(Location, string, int, int, int, IEnumerable, IDictionary)' contains a call chain that results in a call to a virtual method defined by the class. Review the following call stack for unintended consequences: \r\n\r\nStackFrame..ctor(Location, String, Int32, Int32, Int32, IEnumerable, IDictionary)\r\nStackFrame.Init(Location, String, Int32, Int32, Int32, IEnumerable, IDictionary):Void\r\nPropertyBagHolder.set_Properties(IDictionary):Void" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/StackFrame.cs" - }, - "region": { - "startLine": 108, - "snippet": { - "text": " public StackFrame(Location location, string module, int threadId, int address, int offset, IEnumerable parameters, IDictionary properties)" - } - }, - "contextRegion": { - "startLine": 107, - "startColumn": 1, - "endLine": 109, - "endColumn": 10, - "charOffset": 4295, - "charLength": 219, - "snippet": { - "text": " /// \r\n public StackFrame(Location location, string module, int threadId, int address, int offset, IEnumerable parameters, IDictionary properties)\r\n {" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.StackFrame..ctor(Microsoft.CodeAnalysis.Sarif.Location,System.String,System.Int32,System.Int32,System.Int32,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IDictionary`2)" - } - ], - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Usage", - "FixCategory": "NonBreaking" - } + "name": "ToFlags(System.Collections.Generic.IEnumerable`1)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.ExtensionMethods.ToFlags(System.Collections.Generic.IEnumerable`1)", + "parentIndex": 252, + "kind": "member" }, { - "ruleId": "CA2214", - "level": "warning", - "message": { - "text": "'StackFrame.StackFrame(StackFrame)' contains a call chain that results in a call to a virtual method defined by the class. Review the following call stack for unintended consequences: \r\n\r\nStackFrame..ctor(StackFrame)\r\nStackFrame.Init(Location, String, Int32, Int32, Int32, IEnumerable, IDictionary):Void\r\nPropertyBagHolder.set_Properties(IDictionary):Void" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/StackFrame.cs" - }, - "region": { - "startLine": 122, - "snippet": { - "text": " public StackFrame(StackFrame other)" - } - }, - "contextRegion": { - "startLine": 121, - "startColumn": 1, - "endLine": 123, - "endColumn": 10, - "charOffset": 5016, - "charLength": 80, - "snippet": { - "text": " /// \r\n public StackFrame(StackFrame other)\r\n {" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.StackFrame..ctor(Microsoft.CodeAnalysis.Sarif.StackFrame)" - } - ], - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Usage", - "FixCategory": "NonBreaking" - } + "name": "FileChange", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.FileChange", + "parentIndex": 229, + "kind": "type" }, { - "ruleId": "CA1062", - "level": "warning", - "message": { - "text": "In externally visible method 'StackFrame.Create(StackFrame)', validate parameter 'dotNetStackFrame' before using it." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Core/StackFrame.cs" - }, - "region": { - "startLine": 28, - "snippet": { - "text": " int ilOffset = dotNetStackFrame.GetILOffset();" - } - }, - "contextRegion": { - "startLine": 27, - "startColumn": 1, - "endLine": 29, - "endColumn": 62, - "charOffset": 862, - "charLength": 169, - "snippet": { - "text": " // This value is -1 if not present\r\n int ilOffset = dotNetStackFrame.GetILOffset();\r\n string fileName = dotNetStackFrame.GetFileName();" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.StackFrame.Create(System.Diagnostics.StackFrame)" - } - ], - "partialFingerprints": { - "UniqueId": "0" - }, - "properties": { - "Category": "Microsoft.Design", - "FixCategory": "DependsOnFix" - } + "name": "Replacements", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.FileChange.Replacements", + "parentIndex": 255, + "kind": "member" }, { - "ruleId": "CA1800", - "level": "warning", - "message": { - "text": "'methodBase', a parameter, is cast to type 'MethodInfo' multiple times in method 'StackFrame.CreateFullyQualifiedName(MethodBase)'. Cache the result of the 'as' operator or direct cast in order to eliminate the redundant castclass instruction.", - "messageId": "Parameter" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Core/StackFrame.cs" - }, - "region": { - "startLine": 111, - "snippet": { - "text": " if (methodBase is MethodInfo && ((MethodInfo)methodBase).IsGenericMethod)" - } - }, - "contextRegion": { - "startLine": 110, - "startColumn": 1, - "endLine": 112, - "endColumn": 14, - "charOffset": 3846, - "charLength": 160, - "snippet": { - "text": " // deal with the generic portion of the method\r\n if (methodBase is MethodInfo && ((MethodInfo)methodBase).IsGenericMethod)\r\n {" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.StackFrame.CreateFullyQualifiedName(System.Reflection.MethodBase)" - } - ], - "partialFingerprints": { - "UniqueId": "Parameter" - }, - "properties": { - "Category": "Microsoft.Performance", - "FixCategory": "NonBreaking" - } + "name": "FileData", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.FileData", + "parentIndex": 229, + "kind": "type" }, { - "ruleId": "CA1800", - "level": "warning", - "message": { - "text": "'methodBase', a parameter, is cast to type 'MethodInfo' multiple times in method 'StackFrame.CreateFullyQualifiedName(MethodBase)'. Cache the result of the 'as' operator or direct cast in order to eliminate the redundant castclass instruction.", - "messageId": "Parameter" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Core/StackFrame.cs" - }, - "region": { - "startLine": 113, - "snippet": { - "text": " Type[] typeArguments = ((MethodInfo)methodBase).GetGenericArguments();" - } - }, - "contextRegion": { - "startLine": 112, - "startColumn": 1, - "endLine": 114, - "endColumn": 32, - "charOffset": 3993, - "charLength": 134, - "snippet": { - "text": " {\r\n Type[] typeArguments = ((MethodInfo)methodBase).GetGenericArguments();\r\n sb.Append(\"[\");" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.StackFrame.CreateFullyQualifiedName(System.Reflection.MethodBase)" - } - ], - "partialFingerprints": { - "UniqueId": "Parameter" - }, - "properties": { - "Category": "Microsoft.Performance", - "FixCategory": "NonBreaking" - } + "name": ".ctor(Microsoft.CodeAnalysis.Sarif.FileData)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.FileData..ctor(Microsoft.CodeAnalysis.Sarif.FileData)", + "parentIndex": 257, + "kind": "member" }, { - "ruleId": "CA2227", - "level": "warning", - "message": { - "text": "Change 'StackFrame.Parameters' to be read-only by removing the property setter." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/StackFrame.cs" - }, - "region": { - "startLine": 69, - "snippet": { - "text": " public IList Parameters { get; set; }" - } - }, - "contextRegion": { - "startLine": 68, - "startColumn": 1, - "endLine": 70, - "endColumn": 1, - "charOffset": 2532, - "charLength": 144, - "snippet": { - "text": " [DataMember(Name = \"parameters\", IsRequired = false, EmitDefaultValue = false)]\r\n public IList Parameters { get; set; }\r\n" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.StackFrame.Parameters" - } - ], - "properties": { - "Category": "Microsoft.Usage", - "FixCategory": "Breaking" - } + "name": ".ctor(Microsoft.CodeAnalysis.Sarif.FileLocation,System.String,System.Int32,System.Int32,Microsoft.CodeAnalysis.Sarif.FileRoles,System.String,Microsoft.CodeAnalysis.Sarif.FileContent,System.String,System.Collections.Generic.IEnumerable`1,System.DateTime,System.Collections.Generic.IDictionary`2)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.FileData..ctor(Microsoft.CodeAnalysis.Sarif.FileLocation,System.String,System.Int32,System.Int32,Microsoft.CodeAnalysis.Sarif.FileRoles,System.String,Microsoft.CodeAnalysis.Sarif.FileContent,System.String,System.Collections.Generic.IEnumerable`1,System.DateTime,System.Collections.Generic.IDictionary`2)", + "parentIndex": 257, + "kind": "member" }, { - "ruleId": "CA1710", - "level": "error", - "message": { - "text": "Rename 'StringSet' to end in 'Collection'." - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.StringSet" - } - ], - "properties": { - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" - } + "name": "Create(System.Uri,Microsoft.CodeAnalysis.Sarif.OptionallyEmittedData,System.String,System.Text.Encoding,Microsoft.CodeAnalysis.Sarif.IFileSystem)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.FileData.Create(System.Uri,Microsoft.CodeAnalysis.Sarif.OptionallyEmittedData,System.String,System.Text.Encoding,Microsoft.CodeAnalysis.Sarif.IFileSystem)", + "parentIndex": 257, + "kind": "member" }, { - "ruleId": "CA1710", - "level": "error", - "message": { - "text": "Rename 'StringToVersionMap' to end in 'Dictionary'." - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.StringToVersionMap" - } - ], - "properties": { - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" - } + "name": "Hashes", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.FileData.Hashes", + "parentIndex": 257, + "kind": "member" }, { - "ruleId": "CA2237", - "level": "warning", - "message": { - "text": "Add [Serializable] to 'StringToVersionMap' as this type implements ISerializable." - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.StringToVersionMap" - } - ], - "properties": { - "Category": "Microsoft.Usage", - "FixCategory": "NonBreaking" - } + "name": "FileDataEqualityComparer", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.FileDataEqualityComparer", + "parentIndex": 229, + "kind": "type" }, { - "ruleId": "CA1008", - "level": "error", - "message": { - "text": "In enum 'SupportedPlatform', change the name of 'SupportedPlatform.Unknown' to 'None'.", - "messageId": "FlagsRename" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.SupportedPlatform" - } - ], - "partialFingerprints": { - "UniqueId": "FlagsRename" - }, - "properties": { - "Level": "CriticalError", - "Category": "Microsoft.Design", - "FixCategory": "Breaking" - } + "name": "Equals(Microsoft.CodeAnalysis.Sarif.FileData,Microsoft.CodeAnalysis.Sarif.FileData)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.FileDataEqualityComparer.Equals(Microsoft.CodeAnalysis.Sarif.FileData,Microsoft.CodeAnalysis.Sarif.FileData)", + "parentIndex": 262, + "kind": "member" }, { - "ruleId": "CA1714", - "level": "error", - "message": { - "text": "If enumeration name 'SupportedPlatform' is singular, change it to a plural form." - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.SupportedPlatform" - } - ], - "properties": { - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" - } + "name": "FileLocation", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.FileLocation", + "parentIndex": 229, + "kind": "type" }, { - "ruleId": "CA1709", - "level": "error", - "message": { - "text": "Correct the casing of 'OSX' in member name 'SupportedPlatform.OSX' by changing it to 'Osx'.", - "messageId": "Member" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.SupportedPlatform.OSX" - } - ], - "partialFingerprints": { - "UniqueId": "OSX#Member" - }, - "properties": { - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" - } + "name": ".ctor(System.Uri,System.String)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.FileLocation..ctor(System.Uri,System.String)", + "parentIndex": 264, + "kind": "member" }, { - "ruleId": "CA2214", - "level": "warning", - "message": { - "text": "'ThreadFlow.ThreadFlow(ThreadFlow)' contains a call chain that results in a call to a virtual method defined by the class. Review the following call stack for unintended consequences: \r\n\r\nThreadFlow..ctor(ThreadFlow)\r\nThreadFlow.Init(String, Message, IEnumerable, IDictionary):Void\r\nPropertyBagHolder.set_Properties(IDictionary):Void" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/ThreadFlow.cs" - }, - "region": { - "startLine": 92, - "snippet": { - "text": " public ThreadFlow(ThreadFlow other)" - } - }, - "contextRegion": { - "startLine": 91, - "startColumn": 1, - "endLine": 93, - "endColumn": 10, - "charOffset": 3787, - "charLength": 80, - "snippet": { - "text": " /// \r\n public ThreadFlow(ThreadFlow other)\r\n {" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.ThreadFlow..ctor(Microsoft.CodeAnalysis.Sarif.ThreadFlow)" - } - ], - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Usage", - "FixCategory": "NonBreaking" - } + "name": "CreateFromFilesDictionaryKey(System.String)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.FileLocation.CreateFromFilesDictionaryKey(System.String)", + "parentIndex": 264, + "kind": "member" }, { - "ruleId": "CA2214", - "level": "warning", - "message": { - "text": "'ThreadFlow.ThreadFlow(string, Message, IEnumerable, IDictionary)' contains a call chain that results in a call to a virtual method defined by the class. Review the following call stack for unintended consequences: \r\n\r\nThreadFlow..ctor(String, Message, IEnumerable, IDictionary)\r\nThreadFlow.Init(String, Message, IEnumerable, IDictionary):Void\r\nPropertyBagHolder.set_Properties(IDictionary):Void" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/ThreadFlow.cs" - }, - "region": { - "startLine": 78, - "snippet": { - "text": " public ThreadFlow(string id, Message message, IEnumerable locations, IDictionary properties)" - } - }, - "contextRegion": { - "startLine": 77, - "startColumn": 1, - "endLine": 79, - "endColumn": 10, - "charOffset": 3133, - "charLength": 185, - "snippet": { - "text": " /// \r\n public ThreadFlow(string id, Message message, IEnumerable locations, IDictionary properties)\r\n {" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.ThreadFlow..ctor(System.String,Microsoft.CodeAnalysis.Sarif.Message,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IDictionary`2)" - } - ], - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Usage", - "FixCategory": "NonBreaking" - } + "name": "TryReconstructAbsoluteUri(System.Collections.Generic.IDictionary`2,System.Uri&)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.FileLocation.TryReconstructAbsoluteUri(System.Collections.Generic.IDictionary`2,System.Uri&)", + "parentIndex": 264, + "kind": "member" }, { - "ruleId": "CA2227", - "level": "warning", - "message": { - "text": "Change 'ThreadFlow.Locations' to be read-only by removing the property setter." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/ThreadFlow.cs" - }, - "region": { - "startLine": 48, - "snippet": { - "text": " public IList Locations { get; set; }" - } - }, - "contextRegion": { - "startLine": 47, - "startColumn": 1, - "endLine": 49, - "endColumn": 1, - "charOffset": 1818, - "charLength": 127, - "snippet": { - "text": " [DataMember(Name = \"locations\", IsRequired = true)]\r\n public IList Locations { get; set; }\r\n" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.ThreadFlow.Locations" - } - ], - "properties": { - "Category": "Microsoft.Usage", - "FixCategory": "Breaking" - } + "name": "UriBaseId", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.FileLocation.UriBaseId", + "parentIndex": 264, + "kind": "member" }, { - "ruleId": "CA2214", - "level": "warning", - "message": { - "text": "'ThreadFlowLocation.ThreadFlowLocation(ThreadFlowLocation)' contains a call chain that results in a call to a virtual method defined by the class. Review the following call stack for unintended consequences: \r\n\r\nThreadFlowLocation..ctor(ThreadFlowLocation)\r\nThreadFlowLocation.Init(Int32, Location, Stack, String, String, IDictionary, Int32, Int32, DateTime, ThreadFlowLocationImportance, IDictionary):Void\r\nPropertyBagHolder.set_Properties(IDictionary):Void" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/ThreadFlowLocation.cs" - }, - "region": { - "startLine": 158, - "snippet": { - "text": " public ThreadFlowLocation(ThreadFlowLocation other)" - } - }, - "contextRegion": { - "startLine": 157, - "startColumn": 1, - "endLine": 159, - "endColumn": 10, - "charOffset": 7312, - "charLength": 96, - "snippet": { - "text": " /// \r\n public ThreadFlowLocation(ThreadFlowLocation other)\r\n {" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.ThreadFlowLocation..ctor(Microsoft.CodeAnalysis.Sarif.ThreadFlowLocation)" - } - ], - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Usage", - "FixCategory": "NonBreaking" - } + "name": "FileRegionsCache", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.FileRegionsCache", + "parentIndex": 229, + "kind": "type" }, { - "ruleId": "CA2214", - "level": "warning", - "message": { - "text": "'ThreadFlowLocation.ThreadFlowLocation(int, Location, Stack, string, string, IDictionary, int, int, DateTime, ThreadFlowLocationImportance, IDictionary)' contains a call chain that results in a call to a virtual method defined by the class. Review the following call stack for unintended consequences: \r\n\r\nThreadFlowLocation..ctor(Int32, Location, Stack, String, String, IDictionary, Int32, Int32, DateTime, ThreadFlowLocationImportance, IDictionary)\r\nThreadFlowLocation.Init(Int32, Location, Stack, String, String, IDictionary, Int32, Int32, DateTime, ThreadFlowLocationImportance, IDictionary):Void\r\nPropertyBagHolder.set_Properties(IDictionary):Void" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/ThreadFlowLocation.cs" - }, - "region": { - "startLine": 144, - "snippet": { - "text": " public ThreadFlowLocation(int step, Location location, Stack stack, string kind, string module, IDictionary state, int nestingLevel, int executionOrder, DateTime timestamp, ThreadFlowLocationImportance importance, IDictionary properties)" - } - }, - "contextRegion": { - "startLine": 143, - "startColumn": 1, - "endLine": 145, - "endColumn": 10, - "charOffset": 6436, - "charLength": 326, - "snippet": { - "text": " /// \r\n public ThreadFlowLocation(int step, Location location, Stack stack, string kind, string module, IDictionary state, int nestingLevel, int executionOrder, DateTime timestamp, ThreadFlowLocationImportance importance, IDictionary properties)\r\n {" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.ThreadFlowLocation..ctor(System.Int32,Microsoft.CodeAnalysis.Sarif.Location,Microsoft.CodeAnalysis.Sarif.Stack,System.String,System.String,System.Collections.Generic.IDictionary`2,System.Int32,System.Int32,System.DateTime,Microsoft.CodeAnalysis.Sarif.ThreadFlowLocationImportance,System.Collections.Generic.IDictionary`2)" - } - ], - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Usage", - "FixCategory": "NonBreaking" - } + "name": "_filePathToNewLineIndexMap", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.FileRegionsCache._filePathToNewLineIndexMap", + "parentIndex": 269, + "kind": "member" }, { - "ruleId": "CA2227", - "level": "warning", - "message": { - "text": "Change 'ThreadFlowLocation.State' to be read-only by removing the property setter." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/ThreadFlowLocation.cs" - }, - "region": { - "startLine": 69, - "snippet": { - "text": " public IDictionary State { get; set; }" - } - }, - "contextRegion": { - "startLine": 68, - "startColumn": 1, - "endLine": 70, - "endColumn": 1, - "charOffset": 2855, - "charLength": 148, - "snippet": { - "text": " [DataMember(Name = \"state\", IsRequired = false, EmitDefaultValue = false)]\r\n public IDictionary State { get; set; }\r\n" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.ThreadFlowLocation.State" - } - ], - "properties": { - "Category": "Microsoft.Usage", - "FixCategory": "Breaking" - } + "name": "_run", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.FileRegionsCache._run", + "parentIndex": 269, + "kind": "member" }, { - "ruleId": "CA1502", - "level": "warning", - "message": { - "text": "'ThreadFlowLocationEqualityComparer.Equals(ThreadFlowLocation, ThreadFlowLocation)' has a cyclomatic complexity of 29. Rewrite or refactor the method to reduce complexity to 25." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/ThreadFlowLocationEqualityComparer.cs" - }, - "region": { - "startLine": 20, - "snippet": { - "text": " {" - } - }, - "contextRegion": { - "startLine": 19, - "startColumn": 1, - "endLine": 21, - "endColumn": 46, - "charOffset": 770, - "charLength": 135, - "snippet": { - "text": " public bool Equals(ThreadFlowLocation left, ThreadFlowLocation right)\r\n {\r\n if (ReferenceEquals(left, right))" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.ThreadFlowLocationEqualityComparer.Equals(Microsoft.CodeAnalysis.Sarif.ThreadFlowLocation,Microsoft.CodeAnalysis.Sarif.ThreadFlowLocation)" - } - ], - "properties": { - "Category": "Microsoft.Maintainability", - "FixCategory": "NonBreaking" - } + "name": "PopulateCharLength(Microsoft.CodeAnalysis.Sarif.NewLineIndex,Microsoft.CodeAnalysis.Sarif.Region)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.FileRegionsCache.PopulateCharLength(Microsoft.CodeAnalysis.Sarif.NewLineIndex,Microsoft.CodeAnalysis.Sarif.Region)", + "parentIndex": 269, + "kind": "member" }, { - "ruleId": "CA2214", - "level": "warning", - "message": { - "text": "'Tool.Tool(Tool)' contains a call chain that results in a call to a virtual method defined by the class. Review the following call stack for unintended consequences: \r\n\r\nTool..ctor(Tool)\r\nTool.Init(String, String, String, String, String, Uri, String, String, IDictionary):Void\r\nPropertyBagHolder.set_Properties(IDictionary):Void" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/Tool.cs" - }, - "region": { - "startLine": 140, - "snippet": { - "text": " public Tool(Tool other)" - } - }, - "contextRegion": { - "startLine": 139, - "startColumn": 1, - "endLine": 141, - "endColumn": 10, - "charOffset": 6213, - "charLength": 68, - "snippet": { - "text": " /// \r\n public Tool(Tool other)\r\n {" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Tool..ctor(Microsoft.CodeAnalysis.Sarif.Tool)" - } - ], - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Usage", - "FixCategory": "NonBreaking" - } + "name": "PopulateEndColumn(Microsoft.CodeAnalysis.Sarif.NewLineIndex,Microsoft.CodeAnalysis.Sarif.Region,System.String)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.FileRegionsCache.PopulateEndColumn(Microsoft.CodeAnalysis.Sarif.NewLineIndex,Microsoft.CodeAnalysis.Sarif.Region,System.String)", + "parentIndex": 269, + "kind": "member" }, { - "ruleId": "CA2214", - "level": "warning", - "message": { - "text": "'Tool.Tool(string, string, string, string, string, Uri, string, string, IDictionary)' contains a call chain that results in a call to a virtual method defined by the class. Review the following call stack for unintended consequences: \r\n\r\nTool..ctor(String, String, String, String, String, Uri, String, String, IDictionary)\r\nTool.Init(String, String, String, String, String, Uri, String, String, IDictionary):Void\r\nPropertyBagHolder.set_Properties(IDictionary):Void" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/Tool.cs" - }, - "region": { - "startLine": 126, - "snippet": { - "text": " public Tool(string name, string fullName, string version, string semanticVersion, string fileVersion, Uri downloadUri, string sarifLoggerVersion, string language, IDictionary properties)" - } - }, - "contextRegion": { - "startLine": 125, - "startColumn": 1, - "endLine": 127, - "endColumn": 10, - "charOffset": 5417, - "charLength": 259, - "snippet": { - "text": " /// \r\n public Tool(string name, string fullName, string version, string semanticVersion, string fileVersion, Uri downloadUri, string sarifLoggerVersion, string language, IDictionary properties)\r\n {" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Tool..ctor(System.String,System.String,System.String,System.String,System.String,System.Uri,System.String,System.String,System.Collections.Generic.IDictionary`2)" - } - ], - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Usage", - "FixCategory": "NonBreaking" - } + "name": "PopulatePropertiesFromCharOffsetAndLength(Microsoft.CodeAnalysis.Sarif.NewLineIndex,Microsoft.CodeAnalysis.Sarif.Region)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.FileRegionsCache.PopulatePropertiesFromCharOffsetAndLength(Microsoft.CodeAnalysis.Sarif.NewLineIndex,Microsoft.CodeAnalysis.Sarif.Region)", + "parentIndex": 269, + "kind": "member" }, { - "ruleId": "CA1704", - "level": "warning", - "message": { - "text": "In method 'Tool.Tool(string, string, string, string, string, Uri, string, string, IDictionary)', correct the spelling of 'sarif' in parameter name 'sarifLoggerVersion' or remove it entirely if it represents any sort of Hungarian notation.", - "messageId": "MemberParameter" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/Tool.cs" - }, - "region": { - "startLine": 126, - "snippet": { - "text": " public Tool(string name, string fullName, string version, string semanticVersion, string fileVersion, Uri downloadUri, string sarifLoggerVersion, string language, IDictionary properties)" - } - }, - "contextRegion": { - "startLine": 125, - "startColumn": 1, - "endLine": 127, - "endColumn": 10, - "charOffset": 5417, - "charLength": 259, - "snippet": { - "text": " /// \r\n public Tool(string name, string fullName, string version, string semanticVersion, string fileVersion, Uri downloadUri, string sarifLoggerVersion, string language, IDictionary properties)\r\n {" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Tool..ctor(System.String,System.String,System.String,System.String,System.String,System.Uri,System.String,System.String,System.Collections.Generic.IDictionary`2)" - } - ], - "partialFingerprints": { - "UniqueId": "sarif#MemberParameter" - }, - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" - } + "name": "Fix", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Fix", + "parentIndex": 229, + "kind": "type" }, { - "ruleId": "CA1026", - "level": "error", - "message": { - "text": "Replace method 'Tool.CreateFromAssemblyData(string)' with an overload that supplies all default arguments." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Core/Tool.cs" - }, - "region": { - "startLine": 18, - "snippet": { - "text": " {" - } - }, - "contextRegion": { - "startLine": 17, - "startColumn": 1, - "endLine": 19, - "endColumn": 96, - "charOffset": 435, - "charLength": 187, - "snippet": { - "text": " public static Tool CreateFromAssemblyData(string prereleaseInfo = null)\r\n {\r\n Assembly assembly = Assembly.GetEntryAssembly() ?? Assembly.GetExecutingAssembly();" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Tool.CreateFromAssemblyData(System.String)" - } - ], - "properties": { - "Category": "Microsoft.Design", - "FixCategory": "Breaking" - } + "name": "FileChanges", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Fix.FileChanges", + "parentIndex": 275, + "kind": "member" }, { - "ruleId": "CA1305", - "level": "error", - "message": { - "text": "Because the behavior of 'int.ToString()' could vary based on the current user's locale settings, replace this call in 'Tool.CreateFromAssemblyData(string)' with a call to 'int.ToString(IFormatProvider)'. If the result of 'int.ToString(IFormatProvider)' will be displayed to the user, specify 'CultureInfo.CurrentCulture' as the 'IFormatProvider' parameter. Otherwise, if the result will be stored and accessed by software, such as when it is persisted to disk or to a database, specify 'CultureInfo.InvariantCulture'.", - "messageId": "IFormatProviderAlternateString" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Core/Tool.cs" - }, - "region": { - "startLine": 32, - "snippet": { - "text": " tool.SemanticVersion = version.Major.ToString() + \".\" + version.Minor.ToString() + \".\" + version.Build.ToString();" - } - }, - "contextRegion": { - "startLine": 31, - "startColumn": 1, - "endLine": 33, - "endColumn": 1, - "charOffset": 960, - "charLength": 192, - "snippet": { - "text": " // Synthesized semver 2.0 version required by spec\r\n tool.SemanticVersion = version.Major.ToString() + \".\" + version.Minor.ToString() + \".\" + version.Build.ToString();\r\n" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Tool.CreateFromAssemblyData(System.String)" - } - ], - "partialFingerprints": { - "UniqueId": "System.Int32.ToString#IFormatProviderAlternateString" - }, - "properties": { - "Category": "Microsoft.Globalization", - "FixCategory": "NonBreaking" - } + "name": "Graph", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Graph", + "parentIndex": 229, + "kind": "type" }, { - "ruleId": "CA1305", - "level": "error", - "message": { - "text": "Because the behavior of 'int.ToString()' could vary based on the current user's locale settings, replace this call in 'Tool.CreateFromAssemblyData(string)' with a call to 'int.ToString(IFormatProvider)'. If the result of 'int.ToString(IFormatProvider)' will be displayed to the user, specify 'CultureInfo.CurrentCulture' as the 'IFormatProvider' parameter. Otherwise, if the result will be stored and accessed by software, such as when it is persisted to disk or to a database, specify 'CultureInfo.InvariantCulture'.", - "messageId": "IFormatProviderAlternateString" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Core/Tool.cs" - }, - "region": { - "startLine": 32, - "snippet": { - "text": " tool.SemanticVersion = version.Major.ToString() + \".\" + version.Minor.ToString() + \".\" + version.Build.ToString();" - } - }, - "contextRegion": { - "startLine": 31, - "startColumn": 1, - "endLine": 33, - "endColumn": 1, - "charOffset": 960, - "charLength": 192, - "snippet": { - "text": " // Synthesized semver 2.0 version required by spec\r\n tool.SemanticVersion = version.Major.ToString() + \".\" + version.Minor.ToString() + \".\" + version.Build.ToString();\r\n" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Tool.CreateFromAssemblyData(System.String)" - } - ], - "partialFingerprints": { - "UniqueId": "System.Int32.ToString#IFormatProviderAlternateString" - }, - "properties": { - "Category": "Microsoft.Globalization", - "FixCategory": "NonBreaking" - } + "name": ".ctor(Microsoft.CodeAnalysis.Sarif.Graph)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Graph..ctor(Microsoft.CodeAnalysis.Sarif.Graph)", + "parentIndex": 277, + "kind": "member" }, { - "ruleId": "CA1305", - "level": "error", - "message": { - "text": "Because the behavior of 'int.ToString()' could vary based on the current user's locale settings, replace this call in 'Tool.CreateFromAssemblyData(string)' with a call to 'int.ToString(IFormatProvider)'. If the result of 'int.ToString(IFormatProvider)' will be displayed to the user, specify 'CultureInfo.CurrentCulture' as the 'IFormatProvider' parameter. Otherwise, if the result will be stored and accessed by software, such as when it is persisted to disk or to a database, specify 'CultureInfo.InvariantCulture'.", - "messageId": "IFormatProviderAlternateString" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Core/Tool.cs" - }, - "region": { - "startLine": 32, - "snippet": { - "text": " tool.SemanticVersion = version.Major.ToString() + \".\" + version.Minor.ToString() + \".\" + version.Build.ToString();" - } - }, - "contextRegion": { - "startLine": 31, - "startColumn": 1, - "endLine": 33, - "endColumn": 1, - "charOffset": 960, - "charLength": 192, - "snippet": { - "text": " // Synthesized semver 2.0 version required by spec\r\n tool.SemanticVersion = version.Major.ToString() + \".\" + version.Minor.ToString() + \".\" + version.Build.ToString();\r\n" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Tool.CreateFromAssemblyData(System.String)" - } - ], - "partialFingerprints": { - "UniqueId": "System.Int32.ToString#IFormatProviderAlternateString" - }, - "properties": { - "Category": "Microsoft.Globalization", - "FixCategory": "NonBreaking" - } + "name": ".ctor(System.String,Microsoft.CodeAnalysis.Sarif.Message,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IDictionary`2)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Graph..ctor(System.String,Microsoft.CodeAnalysis.Sarif.Message,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IDictionary`2)", + "parentIndex": 277, + "kind": "member" }, { - "ruleId": "CA1704", - "level": "warning", - "message": { - "text": "Correct the spelling of 'Sarif' in member name 'Tool.SarifLoggerVersion' or remove it entirely if it represents any sort of Hungarian notation.", - "messageId": "Member" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/Tool.cs" - }, - "region": { - "startLine": 75, - "snippet": { - "text": " public string SarifLoggerVersion { get; set; }" - } - }, - "contextRegion": { - "startLine": 74, - "startColumn": 1, - "endLine": 76, - "endColumn": 1, - "charOffset": 2961, - "charLength": 153, - "snippet": { - "text": " [DataMember(Name = \"sarifLoggerVersion\", IsRequired = false, EmitDefaultValue = false)]\r\n public string SarifLoggerVersion { get; set; }\r\n" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Tool.SarifLoggerVersion" - } - ], - "partialFingerprints": { - "UniqueId": "Sarif#Member" - }, - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" - } + "name": "Edges", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Graph.Edges", + "parentIndex": 277, + "kind": "member" }, { - "ruleId": "CA2240", - "level": "error", - "message": { - "text": "Add an implementation of GetObjectData to type 'TypedPropertiesDictionary'." - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.TypedPropertiesDictionary`1" - } - ], - "properties": { - "Category": "Microsoft.Usage", - "FixCategory": "NonBreaking" - } + "name": "Nodes", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Graph.Nodes", + "parentIndex": 277, + "kind": "member" }, { - "ruleId": "CA2227", - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.TypedPropertiesDictionary`1.SettingNameToDescriptionsMap" - } - ], - "suppressionStates": ["suppressedInSource"], - "properties": { - "Category": "Microsoft.Usage", - "FixCategory": "Breaking" - } + "name": "GraphEqualityComparer", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.GraphEqualityComparer", + "parentIndex": 229, + "kind": "type" }, { - "ruleId": "CA1305", - "level": "error", - "message": { - "text": "Because the behavior of 'int.Parse(string)' could vary based on the current user's locale settings, replace this call in 'TypedPropertiesDictionaryConverter.ReadJson(JsonReader, Type, object, JsonSerializer)' with a call to 'int.Parse(string, IFormatProvider)'. If the result of 'int.Parse(string, IFormatProvider)' will be based on input from the user, specify 'CultureInfo.CurrentCulture' as the 'IFormatProvider' parameter. Otherwise, if the result will based on input stored and accessed by software, such as when it is loaded from disk or from a database, specify 'CultureInfo.InvariantCulture'.", - "messageId": "IFormatProviderAlternate" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/TypedPropertiesDictionaryConverter.cs" - }, - "region": { - "startLine": 43, - "snippet": { - "text": " return new IntegerSet(ja.Values().Select(token => Int32.Parse(token.ToString())));" - } - }, - "contextRegion": { - "startLine": 42, - "startColumn": 1, - "endLine": 44, - "endColumn": 14, - "charOffset": 1399, - "charLength": 156, - "snippet": { - "text": " ja = JArray.Load(reader);\r\n return new IntegerSet(ja.Values().Select(token => Int32.Parse(token.ToString())));\r\n }" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.TypedPropertiesDictionaryConverter.ReadJson(Newtonsoft.Json.JsonReader,System.Type,System.Object,Newtonsoft.Json.JsonSerializer)" - } - ], - "partialFingerprints": { - "UniqueId": "System.Int32.Parse(System.String)#IFormatProviderAlternate" - }, - "properties": { - "Category": "Microsoft.Globalization", - "FixCategory": "NonBreaking" - } + "name": "Equals(Microsoft.CodeAnalysis.Sarif.Graph,Microsoft.CodeAnalysis.Sarif.Graph)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.GraphEqualityComparer.Equals(Microsoft.CodeAnalysis.Sarif.Graph,Microsoft.CodeAnalysis.Sarif.Graph)", + "parentIndex": 282, + "kind": "member" }, { - "ruleId": "CA1062", - "level": "warning", - "message": { - "text": "In externally visible method 'TypedPropertiesDictionaryConverter.ReadJson(JsonReader, Type, object, JsonSerializer)', validate parameter 'reader' before using it." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/TypedPropertiesDictionaryConverter.cs" - }, - "region": { - "startLine": 47, - "snippet": { - "text": " return JsonConvert.DeserializeObject(reader.ReadAsString(), _versionConverter);" - } - }, - "contextRegion": { - "startLine": 46, - "startColumn": 1, - "endLine": 48, - "endColumn": 14, - "charOffset": 1610, - "charLength": 134, - "snippet": { - "text": " {\r\n return JsonConvert.DeserializeObject(reader.ReadAsString(), _versionConverter);\r\n }" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.TypedPropertiesDictionaryConverter.ReadJson(Newtonsoft.Json.JsonReader,System.Type,System.Object,Newtonsoft.Json.JsonSerializer)" - } - ], - "partialFingerprints": { - "UniqueId": "0" - }, - "properties": { - "Category": "Microsoft.Design", - "FixCategory": "DependsOnFix" - } + "name": "GraphTraversal", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.GraphTraversal", + "parentIndex": 229, + "kind": "type" }, { - "ruleId": "CA1800", - "level": "warning", - "message": { - "text": "'value', a parameter, is cast to type 'IntegerSet' multiple times in method 'TypedPropertiesDictionaryConverter.WriteJson(JsonWriter, object, JsonSerializer)'. Cache the result of the 'as' operator or direct cast in order to eliminate the redundant castclass instruction.", - "messageId": "Parameter" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/TypedPropertiesDictionaryConverter.cs" - }, - "region": { - "startLine": 112, - "snippet": { - "text": " IntegerSet hashSet = (IntegerSet)value;" - } - }, - "contextRegion": { - "startLine": 111, - "startColumn": 1, - "endLine": 113, - "endColumn": 69, - "charOffset": 4027, - "charLength": 140, - "snippet": { - "text": " {\r\n IntegerSet hashSet = (IntegerSet)value;\r\n ja = new JArray(hashSet.Select(i => new JValue(i)));" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.TypedPropertiesDictionaryConverter.WriteJson(Newtonsoft.Json.JsonWriter,System.Object,Newtonsoft.Json.JsonSerializer)" - } - ], - "partialFingerprints": { - "UniqueId": "Parameter" - }, - "properties": { - "Category": "Microsoft.Performance", - "FixCategory": "NonBreaking" - } + "name": ".ctor(Microsoft.CodeAnalysis.Sarif.GraphTraversal)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.GraphTraversal..ctor(Microsoft.CodeAnalysis.Sarif.GraphTraversal)", + "parentIndex": 284, + "kind": "member" }, { - "ruleId": "CA1800", - "level": "warning", - "message": { - "text": "'value', a parameter, is cast to type 'StringSet' multiple times in method 'TypedPropertiesDictionaryConverter.WriteJson(JsonWriter, object, JsonSerializer)'. Cache the result of the 'as' operator or direct cast in order to eliminate the redundant castclass instruction.", - "messageId": "Parameter" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/TypedPropertiesDictionaryConverter.cs" - }, - "region": { - "startLine": 106, - "snippet": { - "text": " StringSet hashSet = (StringSet)value;" - } - }, - "contextRegion": { - "startLine": 105, - "startColumn": 1, - "endLine": 107, - "endColumn": 69, - "charOffset": 3792, - "charLength": 138, - "snippet": { - "text": " {\r\n StringSet hashSet = (StringSet)value;\r\n ja = new JArray(hashSet.Select(i => new JValue(i)));" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.TypedPropertiesDictionaryConverter.WriteJson(Newtonsoft.Json.JsonWriter,System.Object,Newtonsoft.Json.JsonSerializer)" - } - ], - "partialFingerprints": { - "UniqueId": "Parameter" - }, - "properties": { - "Category": "Microsoft.Performance", - "FixCategory": "NonBreaking" - } + "name": ".ctor(System.String,Microsoft.CodeAnalysis.Sarif.Message,System.Collections.Generic.IDictionary`2,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IDictionary`2)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.GraphTraversal..ctor(System.String,Microsoft.CodeAnalysis.Sarif.Message,System.Collections.Generic.IDictionary`2,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IDictionary`2)", + "parentIndex": 284, + "kind": "member" }, { - "ruleId": "CA1804", - "level": "warning", - "message": { - "text": "'TypedPropertiesDictionaryConverter.WriteJson(JsonWriter, object, JsonSerializer)' declares a variable, 't', of type 'Type', which is never used or is only assigned to. Use this variable or remove it." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/TypedPropertiesDictionaryConverter.cs" - }, - "region": { - "startLine": 127, - "snippet": { - "text": " Type t = typeof(object);" - } - }, - "contextRegion": { - "startLine": 126, - "startColumn": 1, - "endLine": 128, - "endColumn": 58, - "charOffset": 4547, - "charLength": 105, - "snippet": { - "text": "\r\n Type t = typeof(object);\r\n if (dictionaryValue is IDictionary ||" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.TypedPropertiesDictionaryConverter.WriteJson(Newtonsoft.Json.JsonWriter,System.Object,Newtonsoft.Json.JsonSerializer)" - } - ], - "partialFingerprints": { - "UniqueId": "t" - }, - "properties": { - "Category": "Microsoft.Performance", - "FixCategory": "NonBreaking" - } + "name": "EdgeTraversals", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.GraphTraversal.EdgeTraversals", + "parentIndex": 284, + "kind": "member" }, { - "ruleId": "CA1062", - "level": "warning", - "message": { - "text": "In externally visible method 'TypedPropertiesDictionaryConverter.WriteJson(JsonWriter, object, JsonSerializer)', validate parameter 'writer' before using it." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/TypedPropertiesDictionaryConverter.cs" - }, - "region": { - "startLine": 119, - "snippet": { - "text": " writer.WriteStartObject();" - } - }, - "contextRegion": { - "startLine": 118, - "startColumn": 1, - "endLine": 120, - "endColumn": 1, - "charOffset": 4254, - "charLength": 98, - "snippet": { - "text": " var dictionary = (IDictionary)value;\r\n writer.WriteStartObject();\r\n" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.TypedPropertiesDictionaryConverter.WriteJson(Newtonsoft.Json.JsonWriter,System.Object,Newtonsoft.Json.JsonSerializer)" - } - ], - "partialFingerprints": { - "UniqueId": "0" - }, - "properties": { - "Category": "Microsoft.Design", - "FixCategory": "DependsOnFix" - } + "name": "InitialState", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.GraphTraversal.InitialState", + "parentIndex": 284, + "kind": "member" }, { - "ruleId": "CA1062", - "level": "warning", - "message": { - "text": "In externally visible method 'TypedPropertiesDictionaryConverter.WriteJson(JsonWriter, object, JsonSerializer)', validate parameter 'serializer' before using it." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/TypedPropertiesDictionaryConverter.cs" - }, - "region": { - "startLine": 136, - "snippet": { - "text": " serializer.Serialize(writer, dictionaryValue.ToString());" - } - }, - "contextRegion": { - "startLine": 135, - "startColumn": 1, - "endLine": 137, - "endColumn": 22, - "charOffset": 4945, - "charLength": 127, - "snippet": { - "text": " {\r\n serializer.Serialize(writer, dictionaryValue.ToString());\r\n }" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.TypedPropertiesDictionaryConverter.WriteJson(Newtonsoft.Json.JsonWriter,System.Object,Newtonsoft.Json.JsonSerializer)" - } - ], - "partialFingerprints": { - "UniqueId": "2" - }, - "properties": { - "Category": "Microsoft.Design", - "FixCategory": "DependsOnFix" - } + "name": "GraphTraversalEqualityComparer", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.GraphTraversalEqualityComparer", + "parentIndex": 229, + "kind": "type" }, { - "ruleId": "CA1305", - "level": "error", - "message": { - "text": "Because the behavior of 'int.Parse(string)' could vary based on the current user's locale settings, replace this call in 'TypedPropertiesDictionaryConverter.ReadJson(JsonReader, Type, object, JsonSerializer)' with a call to 'int.Parse(string, IFormatProvider)'. If the result of 'int.Parse(string, IFormatProvider)' will be based on input from the user, specify 'CultureInfo.CurrentCulture' as the 'IFormatProvider' parameter. Otherwise, if the result will based on input stored and accessed by software, such as when it is loaded from disk or from a database, specify 'CultureInfo.InvariantCulture'.", - "messageId": "IFormatProviderAlternate" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/TypedPropertiesDictionaryConverter.cs" - }, - "region": { - "startLine": 43, - "snippet": { - "text": " return new IntegerSet(ja.Values().Select(token => Int32.Parse(token.ToString())));" - } - }, - "contextRegion": { - "startLine": 42, - "startColumn": 1, - "endLine": 44, - "endColumn": 14, - "charOffset": 1399, - "charLength": 156, - "snippet": { - "text": " ja = JArray.Load(reader);\r\n return new IntegerSet(ja.Values().Select(token => Int32.Parse(token.ToString())));\r\n }" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.TypedPropertiesDictionaryConverter+<>c.b__3_1(Newtonsoft.Json.Linq.JToken)" - } - ], - "partialFingerprints": { - "UniqueId": "System.Int32.Parse(System.String)#IFormatProviderAlternate" - }, - "properties": { - "Category": "Microsoft.Globalization", - "FixCategory": "NonBreaking" - } + "name": "Equals(Microsoft.CodeAnalysis.Sarif.GraphTraversal,Microsoft.CodeAnalysis.Sarif.GraphTraversal)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.GraphTraversalEqualityComparer.Equals(Microsoft.CodeAnalysis.Sarif.GraphTraversal,Microsoft.CodeAnalysis.Sarif.GraphTraversal)", + "parentIndex": 289, + "kind": "member" }, { - "ruleId": "CA1055", - "level": "error", - "message": { - "text": "Change the return type of 'UriHelper.MakeValidUri(string)' from string to System.Uri." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/UriHelper.cs" - }, - "region": { - "startLine": 51, - "snippet": { - "text": " {" - } - }, - "contextRegion": { - "startLine": 50, - "startColumn": 1, - "endLine": 52, - "endColumn": 44, - "charOffset": 2229, - "charLength": 110, - "snippet": { - "text": " public static string MakeValidUri(string path)\r\n {\r\n if (string.IsNullOrEmpty(path))" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.UriHelper.MakeValidUri(System.String)" - } - ], - "properties": { - "Category": "Microsoft.Design", - "FixCategory": "Breaking" - } + "name": "HashData", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.HashData", + "parentIndex": 229, + "kind": "type" }, { - "ruleId": "CA2214", - "level": "warning", - "message": { - "text": "'VersionControlDetails.VersionControlDetails(VersionControlDetails)' contains a call chain that results in a call to a virtual method defined by the class. Review the following call stack for unintended consequences: \r\n\r\nVersionControlDetails..ctor(VersionControlDetails)\r\nVersionControlDetails.Init(Uri, String, String, String, DateTime, IDictionary):Void\r\nPropertyBagHolder.set_Properties(IDictionary):Void" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/VersionControlDetails.cs" - }, - "region": { - "startLine": 110, - "snippet": { - "text": " public VersionControlDetails(VersionControlDetails other)" - } - }, - "contextRegion": { - "startLine": 109, - "startColumn": 1, - "endLine": 111, - "endColumn": 10, - "charOffset": 4552, - "charLength": 102, - "snippet": { - "text": " /// \r\n public VersionControlDetails(VersionControlDetails other)\r\n {" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionControlDetails..ctor(Microsoft.CodeAnalysis.Sarif.VersionControlDetails)" - } - ], - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Usage", - "FixCategory": "NonBreaking" - } + "name": ".ctor(System.String,System.String,System.String)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.HashData..ctor(System.String,System.String,System.String)", + "parentIndex": 291, + "kind": "member" }, { - "ruleId": "CA2214", - "level": "warning", - "message": { - "text": "'VersionControlDetails.VersionControlDetails(Uri, string, string, string, DateTime, IDictionary)' contains a call chain that results in a call to a virtual method defined by the class. Review the following call stack for unintended consequences: \r\n\r\nVersionControlDetails..ctor(Uri, String, String, String, DateTime, IDictionary)\r\nVersionControlDetails.Init(Uri, String, String, String, DateTime, IDictionary):Void\r\nPropertyBagHolder.set_Properties(IDictionary):Void" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/VersionControlDetails.cs" - }, - "region": { - "startLine": 96, - "snippet": { - "text": " public VersionControlDetails(Uri uri, string revisionId, string branch, string tag, DateTime timestamp, IDictionary properties)" - } - }, - "contextRegion": { - "startLine": 95, - "startColumn": 1, - "endLine": 97, - "endColumn": 10, - "charOffset": 3855, - "charLength": 200, - "snippet": { - "text": " /// \r\n public VersionControlDetails(Uri uri, string revisionId, string branch, string tag, DateTime timestamp, IDictionary properties)\r\n {" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionControlDetails..ctor(System.Uri,System.String,System.String,System.String,System.DateTime,System.Collections.Generic.IDictionary`2)" - } - ], - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Usage", - "FixCategory": "NonBreaking" - } + "name": "Sha1", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.HashData.Sha1", + "parentIndex": 291, + "kind": "member" }, { - "ruleId": "CA1704", - "level": "warning", - "message": { - "text": "Correct the spelling of 'Wrn' in member name 'Warnings.Wrn997_InvalidTarget' or remove it entirely if it represents any sort of Hungarian notation.", - "messageId": "Member" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Warnings.Wrn997_InvalidTarget" - } - ], - "partialFingerprints": { - "UniqueId": "Wrn#Member" - }, - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" - } + "name": "Sha256", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.HashData.Sha256", + "parentIndex": 291, + "kind": "member" }, { - "ruleId": "CA1707", - "level": "error", - "message": { - "text": "Remove the underscores from member name 'Warnings.Wrn997_InvalidTarget'.", - "messageId": "Member" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Warnings.Wrn997_InvalidTarget" - } - ], - "partialFingerprints": { - "UniqueId": "Member" - }, - "properties": { - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" - } + "name": "HashUtilities", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.HashUtilities", + "parentIndex": 229, + "kind": "type" }, { - "ruleId": "CA1704", - "level": "warning", - "message": { - "text": "Correct the spelling of 'Wrn' in member name 'Warnings.Wrn998_UnsupportedPlatform' or remove it entirely if it represents any sort of Hungarian notation.", - "messageId": "Member" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Warnings.Wrn998_UnsupportedPlatform" - } - ], - "partialFingerprints": { - "UniqueId": "Wrn#Member" - }, - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" - } + "name": "ComputeHashes(System.String)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.HashUtilities.ComputeHashes(System.String)", + "parentIndex": 295, + "kind": "member" }, { - "ruleId": "CA1707", - "level": "error", - "message": { - "text": "Remove the underscores from member name 'Warnings.Wrn998_UnsupportedPlatform'.", - "messageId": "Member" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Warnings.Wrn998_UnsupportedPlatform" - } - ], - "partialFingerprints": { - "UniqueId": "Member" - }, - "properties": { - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" - } + "name": "ComputeMD5Hash(System.String)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.HashUtilities.ComputeMD5Hash(System.String)", + "parentIndex": 295, + "kind": "member" }, { - "ruleId": "CA1704", - "level": "warning", - "message": { - "text": "Correct the spelling of 'Wrn' in member name 'Warnings.Wrn999_RuleExplicitlyDisabled' or remove it entirely if it represents any sort of Hungarian notation.", - "messageId": "Member" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Warnings.Wrn999_RuleExplicitlyDisabled" - } - ], - "partialFingerprints": { - "UniqueId": "Wrn#Member" - }, - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" - } + "name": "ComputeSha1Hash(System.String)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.HashUtilities.ComputeSha1Hash(System.String)", + "parentIndex": 295, + "kind": "member" }, { - "ruleId": "CA1707", - "level": "error", - "message": { - "text": "Remove the underscores from member name 'Warnings.Wrn999_RuleExplicitlyDisabled'.", - "messageId": "Member" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Warnings.Wrn999_RuleExplicitlyDisabled" - } - ], - "partialFingerprints": { - "UniqueId": "Member" - }, - "properties": { - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" - } + "name": "ComputeSha256Hash(System.String)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.HashUtilities.ComputeSha256Hash(System.String)", + "parentIndex": 295, + "kind": "member" }, { - "ruleId": "CA1704", - "level": "warning", - "message": { - "text": "Correct the spelling of 'Sarif' in type name 'ISarifLogBaseliner'.", - "messageId": "Type" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Baseline.ISarifLogBaseliner" - } - ], - "partialFingerprints": { - "UniqueId": "Sarif#Type" - }, - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" - } + "name": "IAnalysisContext", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.IAnalysisContext", + "parentIndex": 229, + "kind": "type" }, { - "ruleId": "CA1702", - "level": "error", - "message": { - "text": "In member 'ISarifLogBaseliner.CreateBaselinedRun(Run, Run)', the compound word 'baseLine' in parameter name 'baseLine' exists as a discrete term. If your usage is intended to be single word, case it as 'baseline' or strip the first token entirely if it represents any sort of Hungarian notation.", - "messageId": "MemberParameterShouldBeDiscreteTerm" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Baseline.ISarifLogBaseliner.CreateBaselinedRun(Microsoft.CodeAnalysis.Sarif.Run,Microsoft.CodeAnalysis.Sarif.Run)" - } - ], - "partialFingerprints": { - "UniqueId": "baseLine#MemberParameterShouldBeDiscreteTerm" - }, - "properties": { - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" - } + "name": "Policy", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.IAnalysisContext.Policy", + "parentIndex": 300, + "kind": "member" }, { - "ruleId": "CA1704", - "level": "warning", - "message": { - "text": "Correct the spelling of 'Baselined' in member name 'ISarifLogBaseliner.CreateBaselinedRun(Run, Run)' or remove it entirely if it represents any sort of Hungarian notation.", - "messageId": "Member" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Baseline.ISarifLogBaseliner.CreateBaselinedRun(Microsoft.CodeAnalysis.Sarif.Run,Microsoft.CodeAnalysis.Sarif.Run)" - } - ], - "partialFingerprints": { - "UniqueId": "Baselined#Member" - }, - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" - } + "name": "IFileSystem", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.IFileSystem", + "parentIndex": 229, + "kind": "type" }, { - "ruleId": "CA1704", - "level": "warning", - "message": { - "text": "Correct the spelling of 'Sarif' in type name 'SarifBaselineType'.", - "messageId": "Type" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Baseline.SarifBaselineType" - } - ], - "partialFingerprints": { - "UniqueId": "Sarif#Type" - }, - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" - } + "name": "WriteAllBytes(System.String,System.Byte[])", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.IFileSystem.WriteAllBytes(System.String,System.Byte[])", + "parentIndex": 302, + "kind": "member" }, { - "ruleId": "CA1062", - "level": "warning", - "message": { - "text": "In externally visible method 'SarifLogBaseliner.CreateBaselinedRun(Run, Run)', validate parameter 'baseLine' before using it." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Baseline/SarifLogBaseliner.cs" - }, - "region": { - "startLine": 27, - "snippet": { - "text": " newResult.BaselineState = " - } - }, - "contextRegion": { - "startLine": 26, - "startColumn": 1, - "endLine": 28, - "endColumn": 118, - "charOffset": 853, - "charLength": 163, - "snippet": { - "text": "\r\n newResult.BaselineState = \r\n baseLine.Results.Contains(result, ResultComparator) ? BaselineState.Existing : BaselineState.New;" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Baseline.SarifLogBaseliner.CreateBaselinedRun(Microsoft.CodeAnalysis.Sarif.Run,Microsoft.CodeAnalysis.Sarif.Run)" - } - ], - "partialFingerprints": { - "UniqueId": "0" - }, - "properties": { - "Category": "Microsoft.Design", - "FixCategory": "DependsOnFix" - } + "name": "IMarker", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.IMarker", + "parentIndex": 229, + "kind": "type" }, { - "ruleId": "CA1062", - "level": "warning", - "message": { - "text": "In externally visible method 'SarifLogBaseliner.CreateBaselinedRun(Run, Run)', validate parameter 'nextLog' before using it." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Baseline/SarifLogBaseliner.cs" - }, - "region": { - "startLine": 20, - "snippet": { - "text": " Run differencedRun = nextLog.DeepClone();" - } - }, - "contextRegion": { - "startLine": 19, - "startColumn": 1, - "endLine": 21, - "endColumn": 57, - "charOffset": 591, - "charLength": 122, - "snippet": { - "text": " {\r\n Run differencedRun = nextLog.DeepClone();\r\n differencedRun.Results = new List();" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Baseline.SarifLogBaseliner.CreateBaselinedRun(Microsoft.CodeAnalysis.Sarif.Run,Microsoft.CodeAnalysis.Sarif.Run)" - } - ], - "partialFingerprints": { - "UniqueId": "1" - }, - "properties": { - "Category": "Microsoft.Design", - "FixCategory": "DependsOnFix" - } + "name": "IntegerSet", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.IntegerSet", + "parentIndex": 229, + "kind": "type" }, { - "ruleId": "CA1704", - "level": "warning", - "message": { - "text": "Correct the spelling of 'Sarif' in type name 'SarifLogBaselinerFactory'.", - "messageId": "Type" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Baseline.SarifLogBaselinerFactory" - } - ], - "partialFingerprints": { - "UniqueId": "Sarif#Type" - }, - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" - } + "name": "Invocation", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Invocation", + "parentIndex": 229, + "kind": "type" }, { - "ruleId": "CA1053", - "level": "error", - "message": { - "text": "Because type 'SarifLogBaselinerFactory' contains only 'static' members, mark it as 'static' to prevent the compiler from adding a default public constructor.", - "messageId": "CSharp2_0" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Baseline.SarifLogBaselinerFactory" - } - ], - "partialFingerprints": { - "UniqueId": "CSharp2_0" - }, - "properties": { - "Category": "Microsoft.Design", - "FixCategory": "Breaking" - } + "name": ".ctor(Microsoft.CodeAnalysis.Sarif.Invocation)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Invocation..ctor(Microsoft.CodeAnalysis.Sarif.Invocation)", + "parentIndex": 306, + "kind": "member" }, { - "ruleId": "CA1704", - "level": "warning", - "message": { - "text": "Correct the spelling of 'Sarif' in member name 'SarifLogBaselinerFactory.CreateSarifLogBaseliner(SarifBaselineType)' or remove it entirely if it represents any sort of Hungarian notation.", - "messageId": "Member" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Baseline/SarifLogBaselinerFactory.cs" - }, - "region": { - "startLine": 9, - "snippet": { - "text": " {" - } - }, - "contextRegion": { - "startLine": 8, - "startColumn": 1, - "endLine": 10, - "endColumn": 38, - "charOffset": 257, - "charLength": 150, - "snippet": { - "text": " public static ISarifLogBaseliner CreateSarifLogBaseliner(SarifBaselineType logBaselinerType)\r\n {\r\n switch (logBaselinerType)" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Baseline.SarifLogBaselinerFactory.CreateSarifLogBaseliner(Microsoft.CodeAnalysis.Sarif.Baseline.SarifBaselineType)" - } - ], - "partialFingerprints": { - "UniqueId": "Sarif#Member" - }, - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" - } + "name": ".ctor(System.Collections.Generic.IEnumerable`1,System.String,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,System.DateTime,System.DateTime,System.Int32,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,System.String,System.String,System.Int32,System.String,System.Boolean,System.String,System.String,System.Int32,Microsoft.CodeAnalysis.Sarif.FileLocation,System.String,System.Collections.Generic.IDictionary`2,Microsoft.CodeAnalysis.Sarif.FileLocation,Microsoft.CodeAnalysis.Sarif.FileLocation,Microsoft.CodeAnalysis.Sarif.FileLocation,Microsoft.CodeAnalysis.Sarif.FileLocation,System.Collections.Generic.IDictionary`2)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Invocation..ctor(System.Collections.Generic.IEnumerable`1,System.String,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,System.DateTime,System.DateTime,System.Int32,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,System.String,System.String,System.Int32,System.String,System.Boolean,System.String,System.String,System.Int32,Microsoft.CodeAnalysis.Sarif.FileLocation,System.String,System.Collections.Generic.IDictionary`2,Microsoft.CodeAnalysis.Sarif.FileLocation,Microsoft.CodeAnalysis.Sarif.FileLocation,Microsoft.CodeAnalysis.Sarif.FileLocation,Microsoft.CodeAnalysis.Sarif.FileLocation,System.Collections.Generic.IDictionary`2)", + "parentIndex": 306, + "kind": "member" }, { - "ruleId": "CA1062", - "level": "warning", - "message": { - "text": "In externally visible method 'CodeFlowBaselineEqualityComparator.Equals(CodeFlow, CodeFlow)', validate parameter 'x' before using it." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Baseline/DefaultBaseline/CodeFlowBaselineEquals.cs" - }, - "region": { - "startLine": 16, - "snippet": { - "text": " if (!ListComparisonHelpers.CompareListsOrdered(x.ThreadFlows, y.ThreadFlows, ThreadFlowBaselineEqualityComparator.Instance))" - } - }, - "contextRegion": { - "startLine": 15, - "startColumn": 1, - "endLine": 17, - "endColumn": 18, - "charOffset": 587, - "charLength": 174, - "snippet": { - "text": " {\r\n if (!ListComparisonHelpers.CompareListsOrdered(x.ThreadFlows, y.ThreadFlows, ThreadFlowBaselineEqualityComparator.Instance))\r\n {" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Baseline.DefaultBaseline.CodeFlowBaselineEqualityComparator.Equals(Microsoft.CodeAnalysis.Sarif.CodeFlow,Microsoft.CodeAnalysis.Sarif.CodeFlow)" - } - ], - "partialFingerprints": { - "UniqueId": "0" - }, - "properties": { - "Category": "Microsoft.Design", - "FixCategory": "DependsOnFix" - } + "name": "Arguments", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Invocation.Arguments", + "parentIndex": 306, + "kind": "member" }, { - "ruleId": "CA1062", - "level": "warning", - "message": { - "text": "In externally visible method 'CodeFlowBaselineEqualityComparator.Equals(CodeFlow, CodeFlow)', validate parameter 'y' before using it." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Baseline/DefaultBaseline/CodeFlowBaselineEquals.cs" - }, - "region": { - "startLine": 16, - "snippet": { - "text": " if (!ListComparisonHelpers.CompareListsOrdered(x.ThreadFlows, y.ThreadFlows, ThreadFlowBaselineEqualityComparator.Instance))" - } - }, - "contextRegion": { - "startLine": 15, - "startColumn": 1, - "endLine": 17, - "endColumn": 18, - "charOffset": 587, - "charLength": 174, - "snippet": { - "text": " {\r\n if (!ListComparisonHelpers.CompareListsOrdered(x.ThreadFlows, y.ThreadFlows, ThreadFlowBaselineEqualityComparator.Instance))\r\n {" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Baseline.DefaultBaseline.CodeFlowBaselineEqualityComparator.Equals(Microsoft.CodeAnalysis.Sarif.CodeFlow,Microsoft.CodeAnalysis.Sarif.CodeFlow)" - } - ], - "partialFingerprints": { - "UniqueId": "1" - }, - "properties": { - "Category": "Microsoft.Design", - "FixCategory": "DependsOnFix" - } + "name": "Attachments", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Invocation.Attachments", + "parentIndex": 306, + "kind": "member" }, { - "ruleId": "CA1720", - "level": "error", - "message": { - "text": "In member 'DefaultBaselineExtensions.GetNullCheckedHashCode(this object)', consider replacing the data type identifier 'obj' in parameter name 'obj' with a more generic term, such as 'value'.", - "messageId": "LanguageIndependentMemberParameter" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Baseline/DefaultBaseline/DefaultBaselineExtensions.cs" - }, - "region": { - "startLine": 9, - "snippet": { - "text": " {" - } - }, - "contextRegion": { - "startLine": 8, - "startColumn": 1, - "endLine": 10, - "endColumn": 29, - "charOffset": 281, - "charLength": 106, - "snippet": { - "text": " public static int GetNullCheckedHashCode(this object obj)\r\n {\r\n if (obj == null)" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Baseline.DefaultBaseline.DefaultBaselineExtensions.GetNullCheckedHashCode(System.Object)" - } - ], - "partialFingerprints": { - "UniqueId": "obj#LanguageIndependentMemberParameter" - }, - "properties": { - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" - } + "name": "ConfigurationNotifications", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Invocation.ConfigurationNotifications", + "parentIndex": 306, + "kind": "member" }, { - "ruleId": "CA1062", - "level": "warning", - "message": { - "text": "In externally visible method 'LocationBaselineEquals.Equals(Location, Location)', validate parameter 'x' before using it." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Baseline/DefaultBaseline/LocationBaselineEquals.cs" - }, - "region": { - "startLine": 17, - "snippet": { - "text": " if (!PhysicalLocationBaselineEquals.Instance.Equals(x.PhysicalLocation, y.PhysicalLocation))" - } - }, - "contextRegion": { - "startLine": 16, - "startColumn": 1, - "endLine": 18, - "endColumn": 18, - "charOffset": 564, - "charLength": 174, - "snippet": { - "text": " // Result files should match.\r\n if (!PhysicalLocationBaselineEquals.Instance.Equals(x.PhysicalLocation, y.PhysicalLocation))\r\n {" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Baseline.DefaultBaseline.LocationBaselineEquals.Equals(Microsoft.CodeAnalysis.Sarif.Location,Microsoft.CodeAnalysis.Sarif.Location)" - } - ], - "partialFingerprints": { - "UniqueId": "0" - }, - "properties": { - "Category": "Microsoft.Design", - "FixCategory": "DependsOnFix" - } + "name": "Create(System.Boolean,System.Collections.Generic.IEnumerable`1)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Invocation.Create(System.Boolean,System.Collections.Generic.IEnumerable`1)", + "parentIndex": 306, + "kind": "member" }, { - "ruleId": "CA1062", - "level": "warning", - "message": { - "text": "In externally visible method 'LocationBaselineEquals.Equals(Location, Location)', validate parameter 'y' before using it." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Baseline/DefaultBaseline/LocationBaselineEquals.cs" - }, - "region": { - "startLine": 17, - "snippet": { - "text": " if (!PhysicalLocationBaselineEquals.Instance.Equals(x.PhysicalLocation, y.PhysicalLocation))" - } - }, - "contextRegion": { - "startLine": 16, - "startColumn": 1, - "endLine": 18, - "endColumn": 18, - "charOffset": 564, - "charLength": 174, - "snippet": { - "text": " // Result files should match.\r\n if (!PhysicalLocationBaselineEquals.Instance.Equals(x.PhysicalLocation, y.PhysicalLocation))\r\n {" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Baseline.DefaultBaseline.LocationBaselineEquals.Equals(Microsoft.CodeAnalysis.Sarif.Location,Microsoft.CodeAnalysis.Sarif.Location)" - } - ], - "partialFingerprints": { - "UniqueId": "1" - }, - "properties": { - "Category": "Microsoft.Design", - "FixCategory": "DependsOnFix" - } + "name": "EnvironmentVariables", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Invocation.EnvironmentVariables", + "parentIndex": 306, + "kind": "member" }, { - "ruleId": "CA1062", - "level": "warning", - "message": { - "text": "In externally visible method 'ResultBaselineEquals.Equals(Result, Result)', validate parameter 'x' before using it." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Baseline/DefaultBaseline/ResultBaselineEquals.cs" - }, - "region": { - "startLine": 19, - "snippet": { - "text": " if (x.RuleId != y.RuleId)" - } - }, - "contextRegion": { - "startLine": 18, - "startColumn": 1, - "endLine": 20, - "endColumn": 18, - "charOffset": 604, - "charLength": 101, - "snippet": { - "text": " // Rule ID should match\r\n if (x.RuleId != y.RuleId)\r\n {" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Baseline.DefaultBaseline.ResultBaselineEquals.Equals(Microsoft.CodeAnalysis.Sarif.Result,Microsoft.CodeAnalysis.Sarif.Result)" - } - ], - "partialFingerprints": { - "UniqueId": "0" - }, - "properties": { - "Category": "Microsoft.Design", - "FixCategory": "DependsOnFix" - } + "name": "Init(System.Collections.Generic.IEnumerable`1,System.String,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,System.DateTime,System.DateTime,System.Int32,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,System.String,System.String,System.Int32,System.String,System.Boolean,System.String,System.String,System.Int32,Microsoft.CodeAnalysis.Sarif.FileLocation,System.String,System.Collections.Generic.IDictionary`2,Microsoft.CodeAnalysis.Sarif.FileLocation,Microsoft.CodeAnalysis.Sarif.FileLocation,Microsoft.CodeAnalysis.Sarif.FileLocation,Microsoft.CodeAnalysis.Sarif.FileLocation,System.Collections.Generic.IDictionary`2)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Invocation.Init(System.Collections.Generic.IEnumerable`1,System.String,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,System.DateTime,System.DateTime,System.Int32,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,System.String,System.String,System.Int32,System.String,System.Boolean,System.String,System.String,System.Int32,Microsoft.CodeAnalysis.Sarif.FileLocation,System.String,System.Collections.Generic.IDictionary`2,Microsoft.CodeAnalysis.Sarif.FileLocation,Microsoft.CodeAnalysis.Sarif.FileLocation,Microsoft.CodeAnalysis.Sarif.FileLocation,Microsoft.CodeAnalysis.Sarif.FileLocation,System.Collections.Generic.IDictionary`2)", + "parentIndex": 306, + "kind": "member" }, { - "ruleId": "CA1062", - "level": "warning", - "message": { - "text": "In externally visible method 'ResultBaselineEquals.Equals(Result, Result)', validate parameter 'y' before using it." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Baseline/DefaultBaseline/ResultBaselineEquals.cs" - }, - "region": { - "startLine": 19, - "snippet": { - "text": " if (x.RuleId != y.RuleId)" - } - }, - "contextRegion": { - "startLine": 18, - "startColumn": 1, - "endLine": 20, - "endColumn": 18, - "charOffset": 604, - "charLength": 101, - "snippet": { - "text": " // Rule ID should match\r\n if (x.RuleId != y.RuleId)\r\n {" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Baseline.DefaultBaseline.ResultBaselineEquals.Equals(Microsoft.CodeAnalysis.Sarif.Result,Microsoft.CodeAnalysis.Sarif.Result)" - } - ], - "partialFingerprints": { - "UniqueId": "1" - }, - "properties": { - "Category": "Microsoft.Design", - "FixCategory": "DependsOnFix" - } + "name": "ResponseFiles", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Invocation.ResponseFiles", + "parentIndex": 306, + "kind": "member" }, { - "ruleId": "CA1062", - "level": "warning", - "message": { - "text": "In externally visible method 'StackBaselineEquals.Equals(Stack, Stack)', validate parameter 'x' before using it." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Baseline/DefaultBaseline/StackBaselineEquals.cs" - }, - "region": { - "startLine": 16, - "snippet": { - "text": " if (!ListComparisonHelpers.CompareListsOrdered(x.Frames, y.Frames))" - } - }, - "contextRegion": { - "startLine": 15, - "startColumn": 1, - "endLine": 17, - "endColumn": 18, - "charOffset": 531, - "charLength": 117, - "snippet": { - "text": " {\r\n if (!ListComparisonHelpers.CompareListsOrdered(x.Frames, y.Frames))\r\n {" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Baseline.DefaultBaseline.StackBaselineEquals.Equals(Microsoft.CodeAnalysis.Sarif.Stack,Microsoft.CodeAnalysis.Sarif.Stack)" - } - ], - "partialFingerprints": { - "UniqueId": "0" - }, - "properties": { - "Category": "Microsoft.Design", - "FixCategory": "DependsOnFix" - } + "name": "Stderr", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Invocation.Stderr", + "parentIndex": 306, + "kind": "member" }, { - "ruleId": "CA1062", - "level": "warning", - "message": { - "text": "In externally visible method 'StackBaselineEquals.Equals(Stack, Stack)', validate parameter 'y' before using it." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Baseline/DefaultBaseline/StackBaselineEquals.cs" - }, - "region": { - "startLine": 16, - "snippet": { - "text": " if (!ListComparisonHelpers.CompareListsOrdered(x.Frames, y.Frames))" - } - }, - "contextRegion": { - "startLine": 15, - "startColumn": 1, - "endLine": 17, - "endColumn": 18, - "charOffset": 531, - "charLength": 117, - "snippet": { - "text": " {\r\n if (!ListComparisonHelpers.CompareListsOrdered(x.Frames, y.Frames))\r\n {" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Baseline.DefaultBaseline.StackBaselineEquals.Equals(Microsoft.CodeAnalysis.Sarif.Stack,Microsoft.CodeAnalysis.Sarif.Stack)" - } - ], - "partialFingerprints": { - "UniqueId": "1" - }, - "properties": { - "Category": "Microsoft.Design", - "FixCategory": "DependsOnFix" - } + "name": "Stdin", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Invocation.Stdin", + "parentIndex": 306, + "kind": "member" }, { - "ruleId": "CA1062", - "level": "warning", - "message": { - "text": "In externally visible method 'StackFrameBaselineEquals.Equals(StackFrame, StackFrame)', validate parameter 'x' before using it." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Baseline/DefaultBaseline/StackFrameBaselineEquals.cs" - }, - "region": { - "startLine": 16, - "snippet": { - "text": " if (x.Location?.PhysicalLocation?.FileLocation?.Uri != y.Location?.PhysicalLocation?.FileLocation?.Uri)" - } - }, - "contextRegion": { - "startLine": 15, - "startColumn": 1, - "endLine": 17, - "endColumn": 18, - "charOffset": 561, - "charLength": 153, - "snippet": { - "text": " {\r\n if (x.Location?.PhysicalLocation?.FileLocation?.Uri != y.Location?.PhysicalLocation?.FileLocation?.Uri)\r\n {" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Baseline.DefaultBaseline.StackFrameBaselineEquals.Equals(Microsoft.CodeAnalysis.Sarif.StackFrame,Microsoft.CodeAnalysis.Sarif.StackFrame)" - } - ], - "partialFingerprints": { - "UniqueId": "0" - }, - "properties": { - "Category": "Microsoft.Design", - "FixCategory": "DependsOnFix" - } + "name": "Stdout", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Invocation.Stdout", + "parentIndex": 306, + "kind": "member" }, { - "ruleId": "CA1062", - "level": "warning", - "message": { - "text": "In externally visible method 'StackFrameBaselineEquals.Equals(StackFrame, StackFrame)', validate parameter 'y' before using it." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Baseline/DefaultBaseline/StackFrameBaselineEquals.cs" - }, - "region": { - "startLine": 16, - "snippet": { - "text": " if (x.Location?.PhysicalLocation?.FileLocation?.Uri != y.Location?.PhysicalLocation?.FileLocation?.Uri)" - } - }, - "contextRegion": { - "startLine": 15, - "startColumn": 1, - "endLine": 17, - "endColumn": 18, - "charOffset": 561, - "charLength": 153, - "snippet": { - "text": " {\r\n if (x.Location?.PhysicalLocation?.FileLocation?.Uri != y.Location?.PhysicalLocation?.FileLocation?.Uri)\r\n {" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Baseline.DefaultBaseline.StackFrameBaselineEquals.Equals(Microsoft.CodeAnalysis.Sarif.StackFrame,Microsoft.CodeAnalysis.Sarif.StackFrame)" - } - ], - "partialFingerprints": { - "UniqueId": "1" - }, - "properties": { - "Category": "Microsoft.Design", - "FixCategory": "DependsOnFix" - } + "name": "StdoutStderr", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Invocation.StdoutStderr", + "parentIndex": 306, + "kind": "member" }, { - "ruleId": "CA1062", - "level": "warning", - "message": { - "text": "In externally visible method 'ThreadFlowBaselineEqualityComparator.Equals(ThreadFlow, ThreadFlow)', validate parameter 'x' before using it." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Baseline/DefaultBaseline/ThreadFlowBaselineEquals.cs" - }, - "region": { - "startLine": 16, - "snippet": { - "text": " if (!ListComparisonHelpers.CompareListsOrdered(x.Locations, y.Locations, ThreadFlowLocationBaselineEquals.DefaultInstance))" - } - }, - "contextRegion": { - "startLine": 15, - "startColumn": 1, - "endLine": 17, - "endColumn": 18, - "charOffset": 599, - "charLength": 173, - "snippet": { - "text": " {\r\n if (!ListComparisonHelpers.CompareListsOrdered(x.Locations, y.Locations, ThreadFlowLocationBaselineEquals.DefaultInstance))\r\n {" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Baseline.DefaultBaseline.ThreadFlowBaselineEqualityComparator.Equals(Microsoft.CodeAnalysis.Sarif.ThreadFlow,Microsoft.CodeAnalysis.Sarif.ThreadFlow)" - } - ], - "partialFingerprints": { - "UniqueId": "0" - }, - "properties": { - "Category": "Microsoft.Design", - "FixCategory": "DependsOnFix" - } + "name": "ToolNotifications", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Invocation.ToolNotifications", + "parentIndex": 306, + "kind": "member" }, { - "ruleId": "CA1062", - "level": "warning", - "message": { - "text": "In externally visible method 'ThreadFlowBaselineEqualityComparator.Equals(ThreadFlow, ThreadFlow)', validate parameter 'y' before using it." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Baseline/DefaultBaseline/ThreadFlowBaselineEquals.cs" - }, - "region": { - "startLine": 16, - "snippet": { - "text": " if (!ListComparisonHelpers.CompareListsOrdered(x.Locations, y.Locations, ThreadFlowLocationBaselineEquals.DefaultInstance))" - } - }, - "contextRegion": { - "startLine": 15, - "startColumn": 1, - "endLine": 17, - "endColumn": 18, - "charOffset": 599, - "charLength": 173, - "snippet": { - "text": " {\r\n if (!ListComparisonHelpers.CompareListsOrdered(x.Locations, y.Locations, ThreadFlowLocationBaselineEquals.DefaultInstance))\r\n {" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Baseline.DefaultBaseline.ThreadFlowBaselineEqualityComparator.Equals(Microsoft.CodeAnalysis.Sarif.ThreadFlow,Microsoft.CodeAnalysis.Sarif.ThreadFlow)" - } - ], - "partialFingerprints": { - "UniqueId": "1" - }, - "properties": { - "Category": "Microsoft.Design", - "FixCategory": "DependsOnFix" - } + "name": "InvocationEqualityComparer", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.InvocationEqualityComparer", + "parentIndex": 229, + "kind": "type" }, { - "ruleId": "CA1062", - "level": "warning", - "message": { - "text": "In externally visible method 'ThreadFlowLocationBaselineEquals.Equals(ThreadFlowLocation, ThreadFlowLocation)', validate parameter 'x' before using it." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Baseline/DefaultBaseline/ThreadFlowLocationBaselineEquals.cs" - }, - "region": { - "startLine": 16, - "snippet": { - "text": " if (x.Importance != y.Importance)" - } - }, - "contextRegion": { - "startLine": 15, - "startColumn": 1, - "endLine": 17, - "endColumn": 18, - "charOffset": 626, - "charLength": 83, - "snippet": { - "text": " {\r\n if (x.Importance != y.Importance)\r\n {" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Baseline.DefaultBaseline.ThreadFlowLocationBaselineEquals.Equals(Microsoft.CodeAnalysis.Sarif.ThreadFlowLocation,Microsoft.CodeAnalysis.Sarif.ThreadFlowLocation)" - } - ], - "partialFingerprints": { - "UniqueId": "0" - }, - "properties": { - "Category": "Microsoft.Design", - "FixCategory": "DependsOnFix" - } + "name": "Equals(Microsoft.CodeAnalysis.Sarif.Invocation,Microsoft.CodeAnalysis.Sarif.Invocation)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.InvocationEqualityComparer.Equals(Microsoft.CodeAnalysis.Sarif.Invocation,Microsoft.CodeAnalysis.Sarif.Invocation)", + "parentIndex": 321, + "kind": "member" }, { - "ruleId": "CA1062", - "level": "warning", - "message": { - "text": "In externally visible method 'ThreadFlowLocationBaselineEquals.Equals(ThreadFlowLocation, ThreadFlowLocation)', validate parameter 'y' before using it." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Baseline/DefaultBaseline/ThreadFlowLocationBaselineEquals.cs" - }, - "region": { - "startLine": 16, - "snippet": { - "text": " if (x.Importance != y.Importance)" - } - }, - "contextRegion": { - "startLine": 15, - "startColumn": 1, - "endLine": 17, - "endColumn": 18, - "charOffset": 626, - "charLength": 83, - "snippet": { - "text": " {\r\n if (x.Importance != y.Importance)\r\n {" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Baseline.DefaultBaseline.ThreadFlowLocationBaselineEquals.Equals(Microsoft.CodeAnalysis.Sarif.ThreadFlowLocation,Microsoft.CodeAnalysis.Sarif.ThreadFlowLocation)" - } - ], - "partialFingerprints": { - "UniqueId": "1" - }, - "properties": { - "Category": "Microsoft.Design", - "FixCategory": "DependsOnFix" - } + "name": "GetHashCode(Microsoft.CodeAnalysis.Sarif.Invocation)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.InvocationEqualityComparer.GetHashCode(Microsoft.CodeAnalysis.Sarif.Invocation)", + "parentIndex": 321, + "kind": "member" }, { - "ruleId": "CA1006", - "level": "error", - "message": { - "text": "Consider a design where 'GenericActionPipeline.GenericActionPipeline(IEnumerable>)' doesn't nest generic type 'IEnumerable>'." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Processors/Generic/GenericActionPipeline.cs" - }, - "region": { - "startLine": 12, - "snippet": { - "text": " public GenericActionPipeline(IEnumerable> stages)" - } - }, - "contextRegion": { - "startLine": 11, - "startColumn": 1, - "endLine": 13, - "endColumn": 10, - "charOffset": 365, - "charLength": 88, - "snippet": { - "text": "\r\n public GenericActionPipeline(IEnumerable> stages)\r\n {" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Processors.GenericActionPipeline`1..ctor(System.Collections.Generic.IEnumerable`1>)" - } - ], - "properties": { - "Level": "CriticalError", - "Category": "Microsoft.Design", - "FixCategory": "Breaking" - } + "name": "IOptionsProvider", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.IOptionsProvider", + "parentIndex": 229, + "kind": "type" }, { - "ruleId": "CA1725", - "level": "error", - "message": { - "text": "In member 'GenericMappingAction.Act(IEnumerable)', change parameter name 'list' to 'collection' in order to match the identifier as it has been declared in 'IActionWrapper.Act(IEnumerable)'." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Processors/Generic/GenericMappingAction.cs" - }, - "region": { - "startLine": 29, - "snippet": { - "text": " {" - } - }, - "contextRegion": { - "startLine": 28, - "startColumn": 1, - "endLine": 30, - "endColumn": 30, - "charOffset": 759, - "charLength": 96, - "snippet": { - "text": " public IEnumerable Act(IEnumerable list)\r\n {\r\n return Map(list);" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Processors.GenericMappingAction`1.Act(System.Collections.Generic.IEnumerable`1)" - } - ], - "partialFingerprints": { - "UniqueId": "0#" - }, - "properties": { - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" - } + "name": "GetOptions()", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.IOptionsProvider.GetOptions()", + "parentIndex": 324, + "kind": "member" }, { - "ruleId": "CA1051", - "level": "error", - "message": { - "text": "Because field 'GenericMappingAction.Action' is visible outside of its declaring type, change its accessibility to private and add a property, with the same accessibility as the field has currently, to provide access to it." - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Processors.GenericMappingAction`1.Action" - } - ], - "properties": { - "Category": "Microsoft.Design", - "FixCategory": "Breaking" - } + "name": "ISarifNode", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.ISarifNode", + "parentIndex": 229, + "kind": "type" }, { - "ruleId": "CA1062", - "level": "warning", - "message": { - "text": "In externally visible method 'GenericMappingAction.Map(IEnumerable)', validate parameter 'collection' before using it." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Processors/Generic/GenericMappingAction.cs" - }, - "region": { - "startLine": 21, - "snippet": { - "text": " foreach(var value in collection)" - } - }, - "contextRegion": { - "startLine": 20, - "startColumn": 1, - "endLine": 22, - "endColumn": 14, - "charOffset": 546, - "charLength": 104, - "snippet": { - "text": " List output = new List();\r\n foreach(var value in collection)\r\n {" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Processors.GenericMappingAction`1.Map(System.Collections.Generic.IEnumerable`1)" - } - ], - "partialFingerprints": { - "UniqueId": "0" - }, - "properties": { - "Category": "Microsoft.Design", - "FixCategory": "DependsOnFix" - } + "name": "SarifNodeKind", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.ISarifNode.SarifNodeKind", + "parentIndex": 326, + "kind": "member" }, { - "ruleId": "CA1704", - "level": "warning", - "message": { - "text": "Correct the spelling of 'Sarif' in type name 'SarifLogAction'.", - "messageId": "Type" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Processors.SarifLogAction" - } - ], - "partialFingerprints": { - "UniqueId": "Sarif#Type" - }, - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" - } + "name": "Location", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Location", + "parentIndex": 229, + "kind": "type" }, { - "ruleId": "CA1704", - "level": "warning", - "message": { - "text": "Correct the spelling of 'Sarif' in type name 'SarifLogActionTuple'.", - "messageId": "Type" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Processors.SarifLogActionTuple" - } - ], - "partialFingerprints": { - "UniqueId": "Sarif#Type" - }, - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" - } + "name": ".ctor(Microsoft.CodeAnalysis.Sarif.Location)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Location..ctor(Microsoft.CodeAnalysis.Sarif.Location)", + "parentIndex": 328, + "kind": "member" }, { - "ruleId": "CA1051", - "level": "error", - "message": { - "text": "Because field 'SarifLogActionTuple.Action' is visible outside of its declaring type, change its accessibility to private and add a property, with the same accessibility as the field has currently, to provide access to it." - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Processors.SarifLogActionTuple.Action" - } - ], - "properties": { - "Category": "Microsoft.Design", - "FixCategory": "Breaking" - } + "name": ".ctor(Microsoft.CodeAnalysis.Sarif.PhysicalLocation,System.String,Microsoft.CodeAnalysis.Sarif.Message,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IDictionary`2)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Location..ctor(Microsoft.CodeAnalysis.Sarif.PhysicalLocation,System.String,Microsoft.CodeAnalysis.Sarif.Message,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IDictionary`2)", + "parentIndex": 328, + "kind": "member" }, { - "ruleId": "CA1051", - "level": "error", - "message": { - "text": "Because field 'SarifLogActionTuple.Parameters' is visible outside of its declaring type, change its accessibility to private and add a property, with the same accessibility as the field has currently, to provide access to it." - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Processors.SarifLogActionTuple.Parameters" - } - ], - "properties": { - "Category": "Microsoft.Design", - "FixCategory": "Breaking" - } + "name": "Annotations", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Location.Annotations", + "parentIndex": 328, + "kind": "member" }, { - "ruleId": "CA1704", - "level": "warning", - "message": { - "text": "Correct the spelling of 'Sarif' in type name 'SarifLogExtensionMethods'.", - "messageId": "Type" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Processors.SarifLogExtensionMethods" - } - ], - "partialFingerprints": { - "UniqueId": "Sarif#Type" - }, - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" - } + "name": "Message", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Message", + "parentIndex": 229, + "kind": "type" }, { - "ruleId": "CA1704", - "level": "warning", - "message": { - "text": "In method 'SarifLogExtensionMethods.MakeUrisAbsolute(this SarifLog)', correct the spelling of 'sarif' in parameter name 'sarifLog' or remove it entirely if it represents any sort of Hungarian notation.", - "messageId": "MemberParameter" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Processors/Log/SarifLogExtensionMethods.cs" - }, - "region": { - "startLine": 36, - "snippet": { - "text": " {" - } - }, - "contextRegion": { - "startLine": 35, - "startColumn": 1, - "endLine": 37, - "endColumn": 84, - "charOffset": 1527, - "charLength": 167, - "snippet": { - "text": " public static SarifLog MakeUrisAbsolute(this SarifLog sarifLog)\r\n {\r\n return (new List() { sarifLog }).MakeUrisAbsolute().Single();" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Processors.SarifLogExtensionMethods.MakeUrisAbsolute(Microsoft.CodeAnalysis.Sarif.SarifLog)" - } - ], - "partialFingerprints": { - "UniqueId": "sarif#MemberParameter" - }, - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" - } + "name": "Arguments", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Message.Arguments", + "parentIndex": 332, + "kind": "member" }, { - "ruleId": "CA1704", - "level": "warning", - "message": { - "text": "In method 'SarifLogExtensionMethods.MakeUrisAbsolute(this IEnumerable)', correct the spelling of 'sarif' in parameter name 'sarifLogs' or remove it entirely if it represents any sort of Hungarian notation.", - "messageId": "MemberParameter" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Processors/Log/SarifLogExtensionMethods.cs" - }, - "region": { - "startLine": 31, - "snippet": { - "text": " {" - } - }, - "contextRegion": { - "startLine": 30, - "startColumn": 1, - "endLine": 32, - "endColumn": 108, - "charOffset": 1294, - "charLength": 218, - "snippet": { - "text": " public static IEnumerable MakeUrisAbsolute(this IEnumerable sarifLogs)\r\n {\r\n return SarifLogProcessorFactory.GetActionStage(SarifLogAction.MakeUrisAbsolute).Act(sarifLogs);" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Processors.SarifLogExtensionMethods.MakeUrisAbsolute(System.Collections.Generic.IEnumerable`1)" - } - ], - "partialFingerprints": { - "UniqueId": "sarif#MemberParameter" - }, - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" - } + "name": "MultiplyByPrimesHash", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.MultiplyByPrimesHash", + "parentIndex": 229, + "kind": "type" }, { - "ruleId": "CA1704", - "level": "warning", - "message": { - "text": "In method 'SarifLogExtensionMethods.Merge(this IEnumerable)', correct the spelling of 'sarif' in parameter name 'sarifLog' or remove it entirely if it represents any sort of Hungarian notation.", - "messageId": "MemberParameter" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Processors/Log/SarifLogExtensionMethods.cs" - }, - "region": { - "startLine": 16, - "snippet": { - "text": " {" - } - }, - "contextRegion": { - "startLine": 15, - "startColumn": 1, - "endLine": 17, - "endColumn": 128, - "charOffset": 468, - "charLength": 213, - "snippet": { - "text": " public static SarifLog Merge(this IEnumerable sarifLog)\r\n {\r\n return ((GenericFoldAction)SarifLogProcessorFactory.GetActionStage(SarifLogAction.Merge)).Fold(sarifLog);" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Processors.SarifLogExtensionMethods.Merge(System.Collections.Generic.IEnumerable`1)" - } - ], - "partialFingerprints": { - "UniqueId": "sarif#MemberParameter" - }, - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" - } + "name": "AddRange(System.Collections.Generic.IEnumerable`1)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.MultiplyByPrimesHash.AddRange(System.Collections.Generic.IEnumerable`1)", + "parentIndex": 334, + "kind": "member" }, { - "ruleId": "CA1704", - "level": "warning", - "message": { - "text": "In method 'SarifLogExtensionMethods.RebaseUri(this SarifLog, string, bool, Uri)', correct the spelling of 'sarif' in parameter name 'sarifLog' or remove it entirely if it represents any sort of Hungarian notation.", - "messageId": "MemberParameter" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Processors/Log/SarifLogExtensionMethods.cs" - }, - "region": { - "startLine": 26, - "snippet": { - "text": " {" - } - }, - "contextRegion": { - "startLine": 25, - "startColumn": 1, - "endLine": 27, - "endColumn": 115, - "charOffset": 1032, - "charLength": 247, - "snippet": { - "text": " public static SarifLog RebaseUri(this SarifLog sarifLog, string basePathToken, bool rebaseRelativeUris, Uri uri)\r\n {\r\n return (new List() { sarifLog }).RebaseUri(basePathToken, rebaseRelativeUris, uri).Single();" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Processors.SarifLogExtensionMethods.RebaseUri(Microsoft.CodeAnalysis.Sarif.SarifLog,System.String,System.Boolean,System.Uri)" - } - ], - "partialFingerprints": { - "UniqueId": "sarif#MemberParameter" - }, - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" - } + "name": "AddRange(System.Collections.IEnumerable)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.MultiplyByPrimesHash.AddRange(System.Collections.IEnumerable)", + "parentIndex": 334, + "kind": "member" }, { - "ruleId": "CA1704", - "level": "warning", - "message": { - "text": "In method 'SarifLogExtensionMethods.RebaseUri(this IEnumerable, string, bool, Uri)', correct the spelling of 'sarif' in parameter name 'sarifLog' or remove it entirely if it represents any sort of Hungarian notation.", - "messageId": "MemberParameter" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Processors/Log/SarifLogExtensionMethods.cs" - }, - "region": { - "startLine": 21, - "snippet": { - "text": " {" - } - }, - "contextRegion": { - "startLine": 20, - "startColumn": 1, - "endLine": 22, - "endColumn": 163, - "charOffset": 696, - "charLength": 321, - "snippet": { - "text": " public static IEnumerable RebaseUri(this IEnumerable sarifLog, string basePathToken, bool rebaseRelativeUris, Uri uri)\r\n {\r\n return SarifLogProcessorFactory.GetActionStage(SarifLogAction.RebaseUri, basePathToken, rebaseRelativeUris.ToString(), uri.AbsoluteUri).Act(sarifLog);" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Processors.SarifLogExtensionMethods.RebaseUri(System.Collections.Generic.IEnumerable`1,System.String,System.Boolean,System.Uri)" - } - ], - "partialFingerprints": { - "UniqueId": "sarif#MemberParameter" - }, - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" - } + "name": "AddRange(System.Int32[])", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.MultiplyByPrimesHash.AddRange(System.Int32[])", + "parentIndex": 334, + "kind": "member" }, { - "ruleId": "CA1062", - "level": "warning", - "message": { - "text": "In externally visible method 'SarifLogExtensionMethods.RebaseUri(this IEnumerable, string, bool, Uri)', validate parameter 'uri' before using it." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Processors/Log/SarifLogExtensionMethods.cs" - }, - "region": { - "startLine": 22, - "snippet": { - "text": " return SarifLogProcessorFactory.GetActionStage(SarifLogAction.RebaseUri, basePathToken, rebaseRelativeUris.ToString(), uri.AbsoluteUri).Act(sarifLog);" - } - }, - "contextRegion": { - "startLine": 21, - "startColumn": 1, - "endLine": 23, - "endColumn": 10, - "charOffset": 844, - "charLength": 184, - "snippet": { - "text": " {\r\n return SarifLogProcessorFactory.GetActionStage(SarifLogAction.RebaseUri, basePathToken, rebaseRelativeUris.ToString(), uri.AbsoluteUri).Act(sarifLog);\r\n }" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Processors.SarifLogExtensionMethods.RebaseUri(System.Collections.Generic.IEnumerable`1,System.String,System.Boolean,System.Uri)" - } - ], - "partialFingerprints": { - "UniqueId": "3" - }, - "properties": { - "Category": "Microsoft.Design", - "FixCategory": "DependsOnFix" - } + "name": "NewLineIndex", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.NewLineIndex", + "parentIndex": 229, + "kind": "type" }, { - "ruleId": "CA1704", - "level": "warning", - "message": { - "text": "Correct the spelling of 'Sarif' in type name 'SarifLogPipeline'.", - "messageId": "Type" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Processors.SarifLogPipeline" - } - ], - "partialFingerprints": { - "UniqueId": "Sarif#Type" - }, - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" - } + "name": ".ctor(System.String)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.NewLineIndex..ctor(System.String)", + "parentIndex": 338, + "kind": "member" }, { - "ruleId": "CA1002", - "level": "error", - "message": { - "text": "Change 'List' in 'SarifLogPipeline.SarifLogPipeline(List)' to use Collection, ReadOnlyCollection or KeyedCollection" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Processors/Log/SarifLogPipeline.cs" - }, - "region": { - "startLine": 27, - "snippet": { - "text": " public SarifLogPipeline(List actions)" - } - }, - "contextRegion": { - "startLine": 26, - "startColumn": 1, - "endLine": 28, - "endColumn": 10, - "charOffset": 753, - "charLength": 104, - "snippet": { - "text": " [JsonConstructor]\r\n public SarifLogPipeline(List actions)\r\n {" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Processors.SarifLogPipeline..ctor(System.Collections.Generic.List`1)" - } - ], - "properties": { - "Category": "Microsoft.Design", - "FixCategory": "Breaking" - } + "name": "Node", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Node", + "parentIndex": 229, + "kind": "type" }, { - "ruleId": "CA2235", - "level": "error", - "message": { - "text": "Field 'SarifLogPipeline._pipeline' is a member of type 'SarifLogPipeline', which is serializable, but is of type 'GenericActionPipeline', which is not serializable. Add the NonSerializedAttribute to 'SarifLogPipeline._pipeline'." - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Processors.SarifLogPipeline._pipeline" - } - ], - "properties": { - "Category": "Microsoft.Usage", - "FixCategory": "NonBreaking" - } + "name": ".ctor(Microsoft.CodeAnalysis.Sarif.Node)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Node..ctor(Microsoft.CodeAnalysis.Sarif.Node)", + "parentIndex": 340, + "kind": "member" }, { - "ruleId": "CA1002", - "level": "error", - "message": { - "text": "Change 'List' in 'SarifLogPipeline.Actions' to use Collection, ReadOnlyCollection or KeyedCollection" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Processors/Log/SarifLogPipeline.cs" - }, - "region": { - "startLine": 20, - "snippet": { - "text": " get;" - } - }, - "contextRegion": { - "startLine": 19, - "startColumn": 1, - "endLine": 21, - "endColumn": 25, - "charOffset": 615, - "charLength": 53, - "snippet": { - "text": " {\r\n get;\r\n private set;" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Processors.SarifLogPipeline.Actions" - } - ], - "properties": { - "Category": "Microsoft.Design", - "FixCategory": "Breaking" - } + "name": ".ctor(System.String,Microsoft.CodeAnalysis.Sarif.Message,Microsoft.CodeAnalysis.Sarif.Location,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IDictionary`2)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Node..ctor(System.String,Microsoft.CodeAnalysis.Sarif.Message,Microsoft.CodeAnalysis.Sarif.Location,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IDictionary`2)", + "parentIndex": 340, + "kind": "member" }, { - "ruleId": "CA1704", - "level": "warning", - "message": { - "text": "Correct the spelling of 'Sarif' in type name 'SarifLogProcessorFactory'.", - "messageId": "Type" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Processors.SarifLogProcessorFactory" - } - ], - "partialFingerprints": { - "UniqueId": "Sarif#Type" - }, - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" - } + "name": "Children", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Node.Children", + "parentIndex": 340, + "kind": "member" }, { - "ruleId": "CA1053", - "level": "error", - "message": { - "text": "Because type 'SarifLogProcessorFactory' contains only 'static' members, mark it as 'static' to prevent the compiler from adding a default public constructor.", - "messageId": "CSharp2_0" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Processors.SarifLogProcessorFactory" - } - ], - "partialFingerprints": { - "UniqueId": "CSharp2_0" - }, - "properties": { - "Category": "Microsoft.Design", - "FixCategory": "Breaking" - } + "name": "Notes", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Notes", + "parentIndex": 229, + "kind": "type" }, { - "ruleId": "CA1305", - "level": "error", - "message": { - "text": "Because the behavior of 'string.Format(string, object)' could vary based on the current user's locale settings, replace this call in 'SarifLogProcessorFactory.GetActionStage(SarifLogAction, params string[])' with a call to 'string.Format(IFormatProvider, string, params object[])'. If the result of 'string.Format(IFormatProvider, string, params object[])' will be displayed to the user, specify 'CultureInfo.CurrentCulture' as the 'IFormatProvider' parameter. Otherwise, if the result will be stored and accessed by software, such as when it is persisted to disk or to a database, specify 'CultureInfo.InvariantCulture'.", - "messageId": "IFormatProviderAlternateString" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Processors/Log/SarifLogStageFactory.cs" - }, - "region": { - "startLine": 55, - "snippet": { - "text": " throw new ArgumentException($\"Unknown/Not Supported Action {action}.\", nameof(action));" - } - }, - "contextRegion": { - "startLine": 54, - "startColumn": 1, - "endLine": 56, - "endColumn": 14, - "charOffset": 2118, - "charLength": 148, - "snippet": { - "text": " default:\r\n throw new ArgumentException($\"Unknown/Not Supported Action {action}.\", nameof(action));\r\n }" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Processors.SarifLogProcessorFactory.GetActionStage(Microsoft.CodeAnalysis.Sarif.Processors.SarifLogAction,System.String[])" - } - ], - "partialFingerprints": { - "UniqueId": "System.String.Format(System.String,System.Object)#IFormatProviderAlternateString" - }, - "properties": { - "Category": "Microsoft.Globalization", - "FixCategory": "NonBreaking" - } + "name": "Msg001AnalyzingTarget", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Notes.Msg001AnalyzingTarget", + "parentIndex": 344, + "kind": "member" }, { - "ruleId": "CA2104", - "level": "error", - "message": { - "text": "Remove the read-only designation from 'DateTimeConverter.Instance' or change the field to one that is an immutable reference type. If the reference type 'DateTimeConverter' is, in fact, immutable, exclude this message." - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Readers.DateTimeConverter.Instance" - } - ], - "properties": { - "Category": "Microsoft.Security", - "FixCategory": "NonBreaking" - } + "name": "Notification", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Notification", + "parentIndex": 229, + "kind": "type" }, { - "ruleId": "CA1308", - "level": "error", - "message": { - "text": "In method 'EnumConverter.ConvertToCamelCase(string)', replace the call to 'string.ToLowerInvariant()' with String.ToUpperInvariant().", - "messageId": "ToUpperInvariant" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Readers/EnumConverter.cs" - }, - "region": { - "startLine": 52, - "snippet": { - "text": " return upperCaseName.ToLowerInvariant();" - } - }, - "contextRegion": { - "startLine": 51, - "startColumn": 1, - "endLine": 53, - "endColumn": 14, - "charOffset": 1631, - "charLength": 86, - "snippet": { - "text": " {\r\n return upperCaseName.ToLowerInvariant();\r\n }" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Readers.EnumConverter.ConvertToCamelCase(System.String)" - } - ], - "partialFingerprints": { - "UniqueId": "ToUpperInvariant" - }, - "properties": { - "Category": "Microsoft.Globalization", - "FixCategory": "NonBreaking" - } + "name": ".ctor(Microsoft.CodeAnalysis.Sarif.Notification)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Notification..ctor(Microsoft.CodeAnalysis.Sarif.Notification)", + "parentIndex": 346, + "kind": "member" }, { - "ruleId": "CA1308", - "level": "error", - "message": { - "text": "In method 'EnumConverter.ConvertToCamelCase(string)', replace the call to 'string.ToLowerInvariant()' with String.ToUpperInvariant().", - "messageId": "ToUpperInvariant" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Readers/EnumConverter.cs" - }, - "region": { - "startLine": 57, - "snippet": { - "text": " return upperCaseName.Substring(0, prefixCount).ToLowerInvariant() + upperCaseName.Substring(prefixCount);" - } - }, - "contextRegion": { - "startLine": 56, - "startColumn": 1, - "endLine": 58, - "endColumn": 10, - "charOffset": 1804, - "charLength": 130, - "snippet": { - "text": "\r\n return upperCaseName.Substring(0, prefixCount).ToLowerInvariant() + upperCaseName.Substring(prefixCount);\r\n }" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Readers.EnumConverter.ConvertToCamelCase(System.String)" - } - ], - "partialFingerprints": { - "UniqueId": "ToUpperInvariant" - }, - "properties": { - "Category": "Microsoft.Globalization", - "FixCategory": "NonBreaking" - } + "name": ".ctor(System.String,System.String,Microsoft.CodeAnalysis.Sarif.PhysicalLocation,Microsoft.CodeAnalysis.Sarif.Message,Microsoft.CodeAnalysis.Sarif.FailureLevel,System.Int32,System.DateTime,Microsoft.CodeAnalysis.Sarif.ExceptionData,System.Collections.Generic.IDictionary`2)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Notification..ctor(System.String,System.String,Microsoft.CodeAnalysis.Sarif.PhysicalLocation,Microsoft.CodeAnalysis.Sarif.Message,Microsoft.CodeAnalysis.Sarif.FailureLevel,System.Int32,System.DateTime,Microsoft.CodeAnalysis.Sarif.ExceptionData,System.Collections.Generic.IDictionary`2)", + "parentIndex": 346, + "kind": "member" }, { - "ruleId": "CA2104", - "level": "error", - "message": { - "text": "Remove the read-only designation from 'EnumConverter.Instance' or change the field to one that is an immutable reference type. If the reference type 'EnumConverter' is, in fact, immutable, exclude this message." - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Readers.EnumConverter.Instance" - } - ], - "properties": { - "Category": "Microsoft.Security", - "FixCategory": "NonBreaking" - } + "name": "OptionallyEmittedData", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.OptionallyEmittedData", + "parentIndex": 229, + "kind": "type" }, { - "ruleId": "CA1726", - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Readers.FlagsEnumConverter" - } - ], - "partialFingerprints": { - "UniqueId": "Flags" - }, - "suppressionStates": ["suppressedInSource"], - "properties": { - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" - } + "name": "PropertiesDictionary", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.PropertiesDictionary", + "parentIndex": 229, + "kind": "type" }, { - "ruleId": "CA2104", - "level": "error", - "message": { - "text": "Remove the read-only designation from 'FlagsEnumConverter.Instance' or change the field to one that is an immutable reference type. If the reference type 'FlagsEnumConverter' is, in fact, immutable, exclude this message." - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Readers.FlagsEnumConverter.Instance" - } - ], - "properties": { - "Category": "Microsoft.Security", - "FixCategory": "NonBreaking" - } + "name": "LoadFromXml(System.IO.Stream)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.PropertiesDictionary.LoadFromXml(System.IO.Stream)", + "parentIndex": 350, + "kind": "member" }, { - "ruleId": "CA1062", - "level": "warning", - "message": { - "text": "In externally visible method 'FlagsEnumConverter.WriteJson(JsonWriter, object, JsonSerializer)', validate parameter 'value' before using it." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Readers/FlagsEnumConverter.cs" - }, - "region": { - "startLine": 62, - "snippet": { - "text": " string flagsEnumValue = value.ToString();" - } - }, - "contextRegion": { - "startLine": 61, - "startColumn": 1, - "endLine": 63, - "endColumn": 1, - "charOffset": 2248, - "charLength": 57, - "snippet": { - "text": "\r\n string flagsEnumValue = value.ToString();\r\n" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Readers.FlagsEnumConverter.WriteJson(Newtonsoft.Json.JsonWriter,System.Object,Newtonsoft.Json.JsonSerializer)" - } - ], - "partialFingerprints": { - "UniqueId": "1" - }, - "properties": { - "Category": "Microsoft.Design", - "FixCategory": "DependsOnFix" - } + "name": "SaveToJson(System.String,System.Boolean)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.PropertiesDictionary.SaveToJson(System.String,System.Boolean)", + "parentIndex": 350, + "kind": "member" }, { - "ruleId": "CA1308", - "level": "error", - "message": { - "text": "In method 'PropertyBagConverter.ReadJson(JsonReader, Type, object, JsonSerializer)', replace the call to 'string.ToLowerInvariant()' with String.ToUpperInvariant().", - "messageId": "ToUpperInvariant" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Readers/PropertyBagConverter.cs" - }, - "region": { - "startLine": 44, - "snippet": { - "text": " serializedValue = serializedValue.ToLowerInvariant();" - } - }, - "contextRegion": { - "startLine": 43, - "startColumn": 1, - "endLine": 45, - "endColumn": 18, - "charOffset": 1743, - "charLength": 111, - "snippet": { - "text": " {\r\n serializedValue = serializedValue.ToLowerInvariant();\r\n }" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Readers.PropertyBagConverter.ReadJson(Newtonsoft.Json.JsonReader,System.Type,System.Object,Newtonsoft.Json.JsonSerializer)" - } - ], - "partialFingerprints": { - "UniqueId": "ToUpperInvariant" - }, - "properties": { - "Category": "Microsoft.Globalization", - "FixCategory": "NonBreaking" - } + "name": "TryGetProperty`1(System.String,!!0&)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.PropertiesDictionary.TryGetProperty`1(System.String,!!0&)", + "parentIndex": 350, + "kind": "member" }, { - "ruleId": "CA2214", - "level": "warning", - "message": { - "text": "'ResultDiffingVisitor.ResultDiffingVisitor(SarifLog)' contains a call chain that results in a call to a virtual method defined by the class. Review the following call stack for unintended consequences: \r\n\r\nResultDiffingVisitor..ctor(SarifLog)\r\nSarifRewritingVisitor.VisitSarifLog(SarifLog):SarifLog" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Readers/ResultDiffingVisitor.cs" - }, - "region": { - "startLine": 10, - "snippet": { - "text": " public ResultDiffingVisitor(SarifLog sarifLog)" - } - }, - "contextRegion": { - "startLine": 9, - "startColumn": 1, - "endLine": 11, - "endColumn": 10, - "charOffset": 306, - "charLength": 72, - "snippet": { - "text": " {\r\n public ResultDiffingVisitor(SarifLog sarifLog)\r\n {" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Readers.ResultDiffingVisitor..ctor(Microsoft.CodeAnalysis.Sarif.SarifLog)" - } - ], - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Usage", - "FixCategory": "NonBreaking" - } + "name": "PropertyBagHolder", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.PropertyBagHolder", + "parentIndex": 229, + "kind": "type" }, { - "ruleId": "CA1704", - "level": "warning", - "message": { - "text": "In method 'ResultDiffingVisitor.ResultDiffingVisitor(SarifLog)', correct the spelling of 'sarif' in parameter name 'sarifLog' or remove it entirely if it represents any sort of Hungarian notation.", - "messageId": "MemberParameter" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Readers/ResultDiffingVisitor.cs" - }, - "region": { - "startLine": 10, - "snippet": { - "text": " public ResultDiffingVisitor(SarifLog sarifLog)" - } - }, - "contextRegion": { - "startLine": 9, - "startColumn": 1, - "endLine": 11, - "endColumn": 10, - "charOffset": 306, - "charLength": 72, - "snippet": { - "text": " {\r\n public ResultDiffingVisitor(SarifLog sarifLog)\r\n {" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Readers.ResultDiffingVisitor..ctor(Microsoft.CodeAnalysis.Sarif.SarifLog)" - } - ], - "partialFingerprints": { - "UniqueId": "sarif#MemberParameter" - }, - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" - } + "name": "SetProperty`1(System.String,!!0)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.PropertyBagHolder.SetProperty`1(System.String,!!0)", + "parentIndex": 354, + "kind": "member" }, { - "ruleId": "CA2227", - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Readers.ResultDiffingVisitor.AbsentResults" - } - ], - "suppressionStates": ["suppressedInSource"], - "properties": { - "Category": "Microsoft.Usage", - "FixCategory": "Breaking" - } + "name": "Region", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Region", + "parentIndex": 229, + "kind": "type" }, { - "ruleId": "CA2227", - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Readers.ResultDiffingVisitor.NewResults" - } - ], - "suppressionStates": ["suppressedInSource"], - "properties": { - "Category": "Microsoft.Usage", - "FixCategory": "Breaking" - } + "name": ".ctor(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,Microsoft.CodeAnalysis.Sarif.FileContent,Microsoft.CodeAnalysis.Sarif.Message)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Region..ctor(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,Microsoft.CodeAnalysis.Sarif.FileContent,Microsoft.CodeAnalysis.Sarif.Message)", + "parentIndex": 356, + "kind": "member" }, { - "ruleId": "CA2227", - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Readers.ResultDiffingVisitor.SharedResults" - } - ], - "suppressionStates": ["suppressedInSource"], - "properties": { - "Category": "Microsoft.Usage", - "FixCategory": "Breaking" - } + "name": "Resources", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Resources", + "parentIndex": 229, + "kind": "type" }, { - "ruleId": "CA2104", - "level": "error", - "message": { - "text": "Remove the read-only designation from 'RuleDictionaryConverter.Instance' or change the field to one that is an immutable reference type. If the reference type 'RuleDictionaryConverter' is, in fact, immutable, exclude this message." - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Readers.RuleDictionaryConverter.Instance" - } - ], - "properties": { - "Category": "Microsoft.Security", - "FixCategory": "NonBreaking" - } + "name": "MessageStrings", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Resources.MessageStrings", + "parentIndex": 358, + "kind": "member" }, { - "ruleId": "CA1704", - "level": "warning", - "message": { - "text": "Correct the spelling of 'Sarif' in type name 'SarifContractResolver'.", - "messageId": "Type" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Readers.SarifContractResolver" - } - ], - "partialFingerprints": { - "UniqueId": "Sarif#Type" - }, - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" - } + "name": "Rules", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Resources.Rules", + "parentIndex": 358, + "kind": "member" }, { - "ruleId": "CA2104", - "level": "error", - "message": { - "text": "Remove the read-only designation from 'SarifContractResolver.Instance' or change the field to one that is an immutable reference type. If the reference type 'SarifContractResolver' is, in fact, immutable, exclude this message." - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Readers.SarifContractResolver.Instance" - } - ], - "properties": { - "Category": "Microsoft.Security", - "FixCategory": "NonBreaking" - } + "name": "Result", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Result", + "parentIndex": 229, + "kind": "type" }, { - "ruleId": "CA1704", - "level": "warning", - "message": { - "text": "Correct the spelling of 'Sarif' in type name 'SarifContractResolverVersionOne'.", - "messageId": "Type" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Readers.SarifContractResolverVersionOne" - } - ], - "partialFingerprints": { - "UniqueId": "Sarif#Type" - }, - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" - } + "name": ".ctor(Microsoft.CodeAnalysis.Sarif.Result)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Result..ctor(Microsoft.CodeAnalysis.Sarif.Result)", + "parentIndex": 361, + "kind": "member" }, { - "ruleId": "CA2104", - "level": "error", - "message": { - "text": "Remove the read-only designation from 'SarifContractResolverVersionOne.Instance' or change the field to one that is an immutable reference type. If the reference type 'SarifContractResolverVersionOne' is, in fact, immutable, exclude this message." - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Readers.SarifContractResolverVersionOne.Instance" - } - ], - "properties": { - "Category": "Microsoft.Security", - "FixCategory": "NonBreaking" - } + "name": ".ctor(System.String,Microsoft.CodeAnalysis.Sarif.ResultLevel,Microsoft.CodeAnalysis.Sarif.Message,System.String,Microsoft.CodeAnalysis.Sarif.FileLocation,System.Collections.Generic.IEnumerable`1,System.String,System.String,System.Collections.Generic.IDictionary`2,System.Collections.Generic.IDictionary`2,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,Microsoft.CodeAnalysis.Sarif.SuppressionStates,Microsoft.CodeAnalysis.Sarif.BaselineState,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IDictionary`2)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Result..ctor(System.String,Microsoft.CodeAnalysis.Sarif.ResultLevel,Microsoft.CodeAnalysis.Sarif.Message,System.String,Microsoft.CodeAnalysis.Sarif.FileLocation,System.Collections.Generic.IEnumerable`1,System.String,System.String,System.Collections.Generic.IDictionary`2,System.Collections.Generic.IDictionary`2,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,Microsoft.CodeAnalysis.Sarif.SuppressionStates,Microsoft.CodeAnalysis.Sarif.BaselineState,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IDictionary`2)", + "parentIndex": 361, + "kind": "member" }, { - "ruleId": "CA1704", - "level": "warning", - "message": { - "text": "Correct the spelling of 'Sarif' in type name 'SarifVersionConverter'.", - "messageId": "Type" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Readers.SarifVersionConverter" - } - ], - "partialFingerprints": { - "UniqueId": "Sarif#Type" - }, - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" - } + "name": "Attachments", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Result.Attachments", + "parentIndex": 361, + "kind": "member" }, { - "ruleId": "CA2104", - "level": "error", - "message": { - "text": "Remove the read-only designation from 'SarifVersionConverter.Instance' or change the field to one that is an immutable reference type. If the reference type 'SarifVersionConverter' is, in fact, immutable, exclude this message." - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Readers.SarifVersionConverter.Instance" - } - ], - "properties": { - "Category": "Microsoft.Security", - "FixCategory": "NonBreaking" - } + "name": "CodeFlows", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Result.CodeFlows", + "parentIndex": 361, + "kind": "member" }, { - "ruleId": "CA2104", - "level": "error", - "message": { - "text": "Remove the read-only designation from 'UriConverter.Instance' or change the field to one that is an immutable reference type. If the reference type 'UriConverter' is, in fact, immutable, exclude this message." - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Readers.UriConverter.Instance" - } - ], - "properties": { - "Category": "Microsoft.Security", - "FixCategory": "NonBreaking" - } + "name": "ConversionProvenance", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Result.ConversionProvenance", + "parentIndex": 361, + "kind": "member" }, { - "ruleId": "CA2104", - "level": "error", - "message": { - "text": "Remove the read-only designation from 'VersionConverter.Instance' or change the field to one that is an immutable reference type. If the reference type 'VersionConverter' is, in fact, immutable, exclude this message." - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Readers.VersionConverter.Instance" - } - ], - "properties": { - "Category": "Microsoft.Security", - "FixCategory": "NonBreaking" - } + "name": "Fingerprints", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Result.Fingerprints", + "parentIndex": 361, + "kind": "member" }, { - "ruleId": "CA1704", - "level": "warning", - "message": { - "text": "Correct the spelling of 'Authentihash' in member name 'AlgorithmKindVersionOne.Authentihash' or remove it entirely if it represents any sort of Hungarian notation.", - "messageId": "Member" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.AlgorithmKindVersionOne.Authentihash" - } - ], - "partialFingerprints": { - "UniqueId": "Authentihash#Member" - }, - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" - } + "name": "Fixes", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Result.Fixes", + "parentIndex": 361, + "kind": "member" }, { - "ruleId": "CA1704", - "level": "warning", - "message": { - "text": "Correct the spelling of 'Ecoh' in member name 'AlgorithmKindVersionOne.Ecoh' or remove it entirely if it represents any sort of Hungarian notation.", - "messageId": "Member" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.AlgorithmKindVersionOne.Ecoh" - } - ], - "partialFingerprints": { - "UniqueId": "Ecoh#Member" - }, - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" - } + "name": "Graphs", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Result.Graphs", + "parentIndex": 361, + "kind": "member" }, { - "ruleId": "CA1704", - "level": "warning", - "message": { - "text": "Correct the spelling of 'Fsb' in member name 'AlgorithmKindVersionOne.Fsb' or remove it entirely if it represents any sort of Hungarian notation.", - "messageId": "Member" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.AlgorithmKindVersionOne.Fsb" - } - ], - "partialFingerprints": { - "UniqueId": "Fsb#Member" - }, - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" - } + "name": "GraphTraversals", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Result.GraphTraversals", + "parentIndex": 361, + "kind": "member" }, { - "ruleId": "CA1704", - "level": "warning", - "message": { - "text": "Correct the spelling of 'Gost' in member name 'AlgorithmKindVersionOne.Gost' or remove it entirely if it represents any sort of Hungarian notation.", - "messageId": "Member" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.AlgorithmKindVersionOne.Gost" - } - ], - "partialFingerprints": { - "UniqueId": "Gost#Member" - }, - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" - } + "name": "Init(System.String,Microsoft.CodeAnalysis.Sarif.ResultLevel,Microsoft.CodeAnalysis.Sarif.Message,System.String,Microsoft.CodeAnalysis.Sarif.FileLocation,System.Collections.Generic.IEnumerable`1,System.String,System.String,System.Collections.Generic.IDictionary`2,System.Collections.Generic.IDictionary`2,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,Microsoft.CodeAnalysis.Sarif.SuppressionStates,Microsoft.CodeAnalysis.Sarif.BaselineState,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IDictionary`2)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Result.Init(System.String,Microsoft.CodeAnalysis.Sarif.ResultLevel,Microsoft.CodeAnalysis.Sarif.Message,System.String,Microsoft.CodeAnalysis.Sarif.FileLocation,System.Collections.Generic.IEnumerable`1,System.String,System.String,System.Collections.Generic.IDictionary`2,System.Collections.Generic.IDictionary`2,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,Microsoft.CodeAnalysis.Sarif.SuppressionStates,Microsoft.CodeAnalysis.Sarif.BaselineState,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IDictionary`2)", + "parentIndex": 361, + "kind": "member" }, { - "ruleId": "CA1704", - "level": "warning", - "message": { - "text": "Correct the spelling of 'Groestl' in member name 'AlgorithmKindVersionOne.Groestl' or remove it entirely if it represents any sort of Hungarian notation.", - "messageId": "Member" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.AlgorithmKindVersionOne.Groestl" - } - ], - "partialFingerprints": { - "UniqueId": "Groestl#Member" - }, - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" - } + "name": "Locations", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Result.Locations", + "parentIndex": 361, + "kind": "member" }, { - "ruleId": "CA1704", - "level": "warning", - "message": { - "text": "Correct the spelling of 'Haval' in member name 'AlgorithmKindVersionOne.Haval' or remove it entirely if it represents any sort of Hungarian notation.", - "messageId": "Member" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.AlgorithmKindVersionOne.Haval" - } - ], - "partialFingerprints": { - "UniqueId": "Haval#Member" - }, - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" - } + "name": "PartialFingerprints", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Result.PartialFingerprints", + "parentIndex": 361, + "kind": "member" }, { - "ruleId": "CA1704", - "level": "warning", - "message": { - "text": "Correct the spelling of 'Sdhash' in member name 'AlgorithmKindVersionOne.Sdhash' or remove it entirely if it represents any sort of Hungarian notation.", - "messageId": "Member" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.AlgorithmKindVersionOne.Sdhash" - } - ], - "partialFingerprints": { - "UniqueId": "Sdhash#Member" - }, - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" - } + "name": "RelatedLocations", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Result.RelatedLocations", + "parentIndex": 361, + "kind": "member" }, { - "ruleId": "CA1704", - "level": "warning", - "message": { - "text": "Correct the spelling of 'Sha' in member name 'AlgorithmKindVersionOne.Sha1' or remove it entirely if it represents any sort of Hungarian notation.", - "messageId": "Member" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.AlgorithmKindVersionOne.Sha1" - } - ], - "partialFingerprints": { - "UniqueId": "Sha#Member" - }, - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" - } + "name": "Stacks", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Result.Stacks", + "parentIndex": 361, + "kind": "member" }, { - "ruleId": "CA1704", - "level": "warning", - "message": { - "text": "Correct the spelling of 'Sha' in member name 'AlgorithmKindVersionOne.Sha224' or remove it entirely if it represents any sort of Hungarian notation.", - "messageId": "Member" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.AlgorithmKindVersionOne.Sha224" - } - ], - "partialFingerprints": { - "UniqueId": "Sha#Member" - }, - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" - } + "name": "WorkItemUris", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Result.WorkItemUris", + "parentIndex": 361, + "kind": "member" }, { - "ruleId": "CA1704", - "level": "warning", - "message": { - "text": "Correct the spelling of 'Sha' in member name 'AlgorithmKindVersionOne.Sha256' or remove it entirely if it represents any sort of Hungarian notation.", - "messageId": "Member" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.AlgorithmKindVersionOne.Sha256" - } - ], - "partialFingerprints": { - "UniqueId": "Sha#Member" - }, - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" - } + "name": "ResultEqualityComparer", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.ResultEqualityComparer", + "parentIndex": 229, + "kind": "type" }, { - "ruleId": "CA1704", - "level": "warning", - "message": { - "text": "Correct the spelling of 'Sha' in member name 'AlgorithmKindVersionOne.Sha3' or remove it entirely if it represents any sort of Hungarian notation.", - "messageId": "Member" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.AlgorithmKindVersionOne.Sha3" - } - ], - "partialFingerprints": { - "UniqueId": "Sha#Member" - }, - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" - } + "name": "Equals(Microsoft.CodeAnalysis.Sarif.Result,Microsoft.CodeAnalysis.Sarif.Result)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.ResultEqualityComparer.Equals(Microsoft.CodeAnalysis.Sarif.Result,Microsoft.CodeAnalysis.Sarif.Result)", + "parentIndex": 377, + "kind": "member" }, { - "ruleId": "CA1704", - "level": "warning", - "message": { - "text": "Correct the spelling of 'Sha' in member name 'AlgorithmKindVersionOne.Sha384' or remove it entirely if it represents any sort of Hungarian notation.", - "messageId": "Member" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.AlgorithmKindVersionOne.Sha384" - } - ], - "partialFingerprints": { - "UniqueId": "Sha#Member" - }, - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" - } + "name": "GetHashCode(Microsoft.CodeAnalysis.Sarif.Result)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.ResultEqualityComparer.GetHashCode(Microsoft.CodeAnalysis.Sarif.Result)", + "parentIndex": 377, + "kind": "member" }, { - "ruleId": "CA1704", - "level": "warning", - "message": { - "text": "Correct the spelling of 'Sha' in member name 'AlgorithmKindVersionOne.Sha512' or remove it entirely if it represents any sort of Hungarian notation.", - "messageId": "Member" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.AlgorithmKindVersionOne.Sha512" - } - ], - "partialFingerprints": { - "UniqueId": "Sha#Member" - }, - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" - } + "name": "Rule", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Rule", + "parentIndex": 229, + "kind": "type" }, { - "ruleId": "CA1704", - "level": "warning", - "message": { - "text": "Correct the spelling of 'Snefru' in member name 'AlgorithmKindVersionOne.Snefru' or remove it entirely if it represents any sort of Hungarian notation.", - "messageId": "Member" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.AlgorithmKindVersionOne.Snefru" - } - ], - "partialFingerprints": { - "UniqueId": "Snefru#Member" - }, - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" - } + "name": ".ctor(Microsoft.CodeAnalysis.Sarif.Rule)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Rule..ctor(Microsoft.CodeAnalysis.Sarif.Rule)", + "parentIndex": 380, + "kind": "member" }, { - "ruleId": "CA1704", - "level": "warning", - "message": { - "text": "Correct the spelling of 'Ssdeep' in member name 'AlgorithmKindVersionOne.Ssdeep' or remove it entirely if it represents any sort of Hungarian notation.", - "messageId": "Member" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.AlgorithmKindVersionOne.Ssdeep" - } - ], - "partialFingerprints": { - "UniqueId": "Ssdeep#Member" - }, - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" - } + "name": ".ctor(System.String,Microsoft.CodeAnalysis.Sarif.Message,Microsoft.CodeAnalysis.Sarif.Message,Microsoft.CodeAnalysis.Sarif.Message,System.Collections.Generic.IDictionary`2,System.Collections.Generic.IDictionary`2,Microsoft.CodeAnalysis.Sarif.ReportingConfiguration,System.Uri,Microsoft.CodeAnalysis.Sarif.Message,System.Collections.Generic.IDictionary`2)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Rule..ctor(System.String,Microsoft.CodeAnalysis.Sarif.Message,Microsoft.CodeAnalysis.Sarif.Message,Microsoft.CodeAnalysis.Sarif.Message,System.Collections.Generic.IDictionary`2,System.Collections.Generic.IDictionary`2,Microsoft.CodeAnalysis.Sarif.ReportingConfiguration,System.Uri,Microsoft.CodeAnalysis.Sarif.Message,System.Collections.Generic.IDictionary`2)", + "parentIndex": 380, + "kind": "member" }, { - "ruleId": "CA1704", - "level": "warning", - "message": { - "text": "Correct the spelling of 'Swifft' in member name 'AlgorithmKindVersionOne.Swifft' or remove it entirely if it represents any sort of Hungarian notation.", - "messageId": "Member" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.AlgorithmKindVersionOne.Swifft" - } - ], - "partialFingerprints": { - "UniqueId": "Swifft#Member" - }, - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" - } + "name": "MessageStrings", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Rule.MessageStrings", + "parentIndex": 380, + "kind": "member" }, { - "ruleId": "CA1704", - "level": "warning", - "message": { - "text": "Correct the spelling of 'Tlsh' in member name 'AlgorithmKindVersionOne.Tlsh' or remove it entirely if it represents any sort of Hungarian notation.", - "messageId": "Member" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.AlgorithmKindVersionOne.Tlsh" - } - ], - "partialFingerprints": { - "UniqueId": "Tlsh#Member" - }, - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" - } + "name": "RichMessageStrings", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Rule.RichMessageStrings", + "parentIndex": 380, + "kind": "member" }, { - "ruleId": "CA2214", - "level": "warning", - "message": { - "text": "'AnnotatedCodeLocationVersionOne.AnnotatedCodeLocationVersionOne(AnnotatedCodeLocationVersionOne)' contains a call chain that results in a call to a virtual method defined by the class. Review the following call stack for unintended consequences: \r\n\r\nAnnotatedCodeLocationVersionOne..ctor(AnnotatedCodeLocationVersionOne)\r\nAnnotatedCodeLocationVersionOne.Init(Int32, Int32, PhysicalLocationVersionOne, String, String, String, Int32, String, AnnotatedCodeLocationKindVersionOne, TaintKindVersionOne, String, IEnumerable, IDictionary, String, Boolean, AnnotatedCodeLocationImportanceVersionOne, String, IEnumerable, IDictionary):Void\r\nPropertyBagHolder.set_Properties(IDictionary):Void" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/VersionOne/Autogenerated/AnnotatedCodeLocationVersionOne.cs" - }, - "region": { - "startLine": 234, - "snippet": { - "text": " public AnnotatedCodeLocationVersionOne(AnnotatedCodeLocationVersionOne other)" - } - }, - "contextRegion": { - "startLine": 233, - "startColumn": 1, - "endLine": 235, - "endColumn": 10, - "charOffset": 12048, - "charLength": 122, - "snippet": { - "text": " /// \r\n public AnnotatedCodeLocationVersionOne(AnnotatedCodeLocationVersionOne other)\r\n {" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.AnnotatedCodeLocationVersionOne..ctor(Microsoft.CodeAnalysis.Sarif.VersionOne.AnnotatedCodeLocationVersionOne)" - } - ], - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Usage", - "FixCategory": "NonBreaking" - } + "name": "ReportingConfiguration", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.ReportingConfiguration", + "parentIndex": 229, + "kind": "type" }, { - "ruleId": "CA2214", - "level": "warning", - "message": { - "text": "'AnnotatedCodeLocationVersionOne.AnnotatedCodeLocationVersionOne(int, int, PhysicalLocationVersionOne, string, string, string, int, string, AnnotatedCodeLocationKindVersionOne, TaintKindVersionOne, string, IEnumerable, IDictionary, string, bool, AnnotatedCodeLocationImportanceVersionOne, string, IEnumerable, IDictionary)' contains a call chain that results in a call to a virtual method defined by the class. Review the following call stack for unintended consequences: \r\n\r\nAnnotatedCodeLocationVersionOne..ctor(Int32, Int32, PhysicalLocationVersionOne, String, String, String, Int32, String, AnnotatedCodeLocationKindVersionOne, TaintKindVersionOne, String, IEnumerable, IDictionary, String, Boolean, AnnotatedCodeLocationImportanceVersionOne, String, IEnumerable, IDictionary)\r\nAnnotatedCodeLocationVersionOne.Init(Int32, Int32, PhysicalLocationVersionOne, String, String, String, Int32, String, AnnotatedCodeLocationKindVersionOne, TaintKindVersionOne, String, IEnumerable, IDictionary, String, Boolean, AnnotatedCodeLocationImportanceVersionOne, String, IEnumerable, IDictionary):Void\r\nPropertyBagHolder.set_Properties(IDictionary):Void" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/VersionOne/Autogenerated/AnnotatedCodeLocationVersionOne.cs" - }, - "region": { - "startLine": 220, - "snippet": { - "text": " public AnnotatedCodeLocationVersionOne(int id, int step, PhysicalLocationVersionOne physicalLocation, string fullyQualifiedLogicalName, string logicalLocationKey, string module, int threadId, string message, AnnotatedCodeLocationKindVersionOne kind, TaintKindVersionOne taintKind, string target, IEnumerable values, IDictionary state, string targetKey, bool essential, AnnotatedCodeLocationImportanceVersionOne importance, string snippet, IEnumerable annotations, IDictionary properties)" - } - }, - "contextRegion": { - "startLine": 219, - "startColumn": 1, - "endLine": 221, - "endColumn": 10, - "charOffset": 10778, - "charLength": 606, - "snippet": { - "text": " /// \r\n public AnnotatedCodeLocationVersionOne(int id, int step, PhysicalLocationVersionOne physicalLocation, string fullyQualifiedLogicalName, string logicalLocationKey, string module, int threadId, string message, AnnotatedCodeLocationKindVersionOne kind, TaintKindVersionOne taintKind, string target, IEnumerable values, IDictionary state, string targetKey, bool essential, AnnotatedCodeLocationImportanceVersionOne importance, string snippet, IEnumerable annotations, IDictionary properties)\r\n {" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.AnnotatedCodeLocationVersionOne..ctor(System.Int32,System.Int32,Microsoft.CodeAnalysis.Sarif.VersionOne.PhysicalLocationVersionOne,System.String,System.String,System.String,System.Int32,System.String,Microsoft.CodeAnalysis.Sarif.VersionOne.AnnotatedCodeLocationKindVersionOne,Microsoft.CodeAnalysis.Sarif.VersionOne.TaintKindVersionOne,System.String,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IDictionary`2,System.String,System.Boolean,Microsoft.CodeAnalysis.Sarif.VersionOne.AnnotatedCodeLocationImportanceVersionOne,System.String,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IDictionary`2)" - } - ], - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Usage", - "FixCategory": "NonBreaking" - } + "name": "Parameters", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.ReportingConfiguration.Parameters", + "parentIndex": 385, + "kind": "member" }, { - "ruleId": "CA2227", - "level": "warning", - "message": { - "text": "Change 'AnnotatedCodeLocationVersionOne.Annotations' to be read-only by removing the property setter." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/VersionOne/Autogenerated/AnnotatedCodeLocationVersionOne.cs" - }, - "region": { - "startLine": 145, - "snippet": { - "text": " public IList Annotations { get; set; }" - } - }, - "contextRegion": { - "startLine": 144, - "startColumn": 1, - "endLine": 146, - "endColumn": 1, - "charOffset": 7200, - "charLength": 160, - "snippet": { - "text": " [DataMember(Name = \"annotations\", IsRequired = false, EmitDefaultValue = false)]\r\n public IList Annotations { get; set; }\r\n" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.AnnotatedCodeLocationVersionOne.Annotations" - } - ], - "properties": { - "Category": "Microsoft.Usage", - "FixCategory": "Breaking" - } + "name": "RuleEqualityComparer", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.RuleEqualityComparer", + "parentIndex": 229, + "kind": "type" }, { - "ruleId": "CA2227", - "level": "warning", - "message": { - "text": "Change 'AnnotatedCodeLocationVersionOne.State' to be read-only by removing the property setter." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/VersionOne/Autogenerated/AnnotatedCodeLocationVersionOne.cs" - }, - "region": { - "startLine": 114, - "snippet": { - "text": " public IDictionary State { get; set; }" - } - }, - "contextRegion": { - "startLine": 113, - "startColumn": 1, - "endLine": 115, - "endColumn": 1, - "charOffset": 5561, - "charLength": 148, - "snippet": { - "text": " [DataMember(Name = \"state\", IsRequired = false, EmitDefaultValue = false)]\r\n public IDictionary State { get; set; }\r\n" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.AnnotatedCodeLocationVersionOne.State" - } - ], - "properties": { - "Category": "Microsoft.Usage", - "FixCategory": "Breaking" - } + "name": "Equals(Microsoft.CodeAnalysis.Sarif.Rule,Microsoft.CodeAnalysis.Sarif.Rule)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.RuleEqualityComparer.Equals(Microsoft.CodeAnalysis.Sarif.Rule,Microsoft.CodeAnalysis.Sarif.Rule)", + "parentIndex": 387, + "kind": "member" }, { - "ruleId": "CA2227", - "level": "warning", - "message": { - "text": "Change 'AnnotatedCodeLocationVersionOne.Values' to be read-only by removing the property setter." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/VersionOne/Autogenerated/AnnotatedCodeLocationVersionOne.cs" - }, - "region": { - "startLine": 108, - "snippet": { - "text": " public IList Values { get; set; }" - } - }, - "contextRegion": { - "startLine": 107, - "startColumn": 1, - "endLine": 109, - "endColumn": 1, - "charOffset": 5080, - "charLength": 136, - "snippet": { - "text": " [DataMember(Name = \"values\", IsRequired = false, EmitDefaultValue = false)]\r\n public IList Values { get; set; }\r\n" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.AnnotatedCodeLocationVersionOne.Values" - } - ], - "properties": { - "Category": "Microsoft.Usage", - "FixCategory": "Breaking" - } + "name": "RuleUtilities", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.RuleUtilities", + "parentIndex": 229, + "kind": "type" }, { - "ruleId": "CA1502", - "level": "warning", - "message": { - "text": "'AnnotatedCodeLocationVersionOneEqualityComparer.Equals(AnnotatedCodeLocationVersionOne, AnnotatedCodeLocationVersionOne)' has a cyclomatic complexity of 47. Rewrite or refactor the method to reduce complexity to 25." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/VersionOne/Autogenerated/AnnotatedCodeLocationVersionOneEqualityComparer.cs" - }, - "region": { - "startLine": 20, - "snippet": { - "text": " {" - } - }, - "contextRegion": { - "startLine": 19, - "startColumn": 1, - "endLine": 21, - "endColumn": 46, - "charOffset": 846, - "charLength": 161, - "snippet": { - "text": " public bool Equals(AnnotatedCodeLocationVersionOne left, AnnotatedCodeLocationVersionOne right)\r\n {\r\n if (ReferenceEquals(left, right))" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.AnnotatedCodeLocationVersionOneEqualityComparer.Equals(Microsoft.CodeAnalysis.Sarif.VersionOne.AnnotatedCodeLocationVersionOne,Microsoft.CodeAnalysis.Sarif.VersionOne.AnnotatedCodeLocationVersionOne)" - } - ], - "properties": { - "Category": "Microsoft.Maintainability", - "FixCategory": "NonBreaking" - } + "name": "BuildDictionary(System.Resources.ResourceManager,System.Collections.Generic.IEnumerable`1,System.String,System.String)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.RuleUtilities.BuildDictionary(System.Resources.ResourceManager,System.Collections.Generic.IEnumerable`1,System.String,System.String)", + "parentIndex": 389, + "kind": "member" }, { - "ruleId": "CA1502", - "level": "warning", - "message": { - "text": "'AnnotatedCodeLocationVersionOneEqualityComparer.GetHashCode(AnnotatedCodeLocationVersionOne)' has a cyclomatic complexity of 26. Rewrite or refactor the method to reduce complexity to 25." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/VersionOne/Autogenerated/AnnotatedCodeLocationVersionOneEqualityComparer.cs" - }, - "region": { - "startLine": 196, - "snippet": { - "text": " {" - } - }, - "contextRegion": { - "startLine": 195, - "startColumn": 1, - "endLine": 197, - "endColumn": 44, - "charOffset": 5911, - "charLength": 123, - "snippet": { - "text": " public int GetHashCode(AnnotatedCodeLocationVersionOne obj)\r\n {\r\n if (ReferenceEquals(obj, null))" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.AnnotatedCodeLocationVersionOneEqualityComparer.GetHashCode(Microsoft.CodeAnalysis.Sarif.VersionOne.AnnotatedCodeLocationVersionOne)" - } - ], - "properties": { - "Category": "Microsoft.Maintainability", - "FixCategory": "NonBreaking" - } + "name": "NormalizeRuleMessageId(System.String,System.String,System.String)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.RuleUtilities.NormalizeRuleMessageId(System.String,System.String,System.String)", + "parentIndex": 389, + "kind": "member" }, { - "ruleId": "CA2227", - "level": "warning", - "message": { - "text": "Change 'AnnotationVersionOne.Locations' to be read-only by removing the property setter." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/VersionOne/Autogenerated/AnnotationVersionOne.cs" - }, - "region": { - "startLine": 41, - "snippet": { - "text": " public IList Locations { get; set; }" - } - }, - "contextRegion": { - "startLine": 40, - "startColumn": 1, - "endLine": 42, - "endColumn": 1, - "charOffset": 1493, - "charLength": 135, - "snippet": { - "text": " [DataMember(Name = \"locations\", IsRequired = true)]\r\n public IList Locations { get; set; }\r\n" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.AnnotationVersionOne.Locations" - } - ], - "properties": { - "Category": "Microsoft.Usage", - "FixCategory": "Breaking" - } + "name": "Run", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Run", + "parentIndex": 229, + "kind": "type" }, { - "ruleId": "CA2214", - "level": "warning", - "message": { - "text": "'CodeFlowVersionOne.CodeFlowVersionOne(CodeFlowVersionOne)' contains a call chain that results in a call to a virtual method defined by the class. Review the following call stack for unintended consequences: \r\n\r\nCodeFlowVersionOne..ctor(CodeFlowVersionOne)\r\nCodeFlowVersionOne.Init(String, IEnumerable, IDictionary):Void\r\nPropertyBagHolder.set_Properties(IDictionary):Void" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/VersionOne/Autogenerated/CodeFlowVersionOne.cs" - }, - "region": { - "startLine": 83, - "snippet": { - "text": " public CodeFlowVersionOne(CodeFlowVersionOne other)" - } - }, - "contextRegion": { - "startLine": 82, - "startColumn": 1, - "endLine": 84, - "endColumn": 10, - "charOffset": 3537, - "charLength": 96, - "snippet": { - "text": " /// \r\n public CodeFlowVersionOne(CodeFlowVersionOne other)\r\n {" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.CodeFlowVersionOne..ctor(Microsoft.CodeAnalysis.Sarif.VersionOne.CodeFlowVersionOne)" - } - ], - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Usage", - "FixCategory": "NonBreaking" - } + "name": ".ctor(Microsoft.CodeAnalysis.Sarif.Run)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Run..ctor(Microsoft.CodeAnalysis.Sarif.Run)", + "parentIndex": 392, + "kind": "member" }, { - "ruleId": "CA2214", - "level": "warning", - "message": { - "text": "'CodeFlowVersionOne.CodeFlowVersionOne(string, IEnumerable, IDictionary)' contains a call chain that results in a call to a virtual method defined by the class. Review the following call stack for unintended consequences: \r\n\r\nCodeFlowVersionOne..ctor(String, IEnumerable, IDictionary)\r\nCodeFlowVersionOne.Init(String, IEnumerable, IDictionary):Void\r\nPropertyBagHolder.set_Properties(IDictionary):Void" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/VersionOne/Autogenerated/CodeFlowVersionOne.cs" - }, - "region": { - "startLine": 69, - "snippet": { - "text": " public CodeFlowVersionOne(string message, IEnumerable locations, IDictionary properties)" - } - }, - "contextRegion": { - "startLine": 68, - "startColumn": 1, - "endLine": 70, - "endColumn": 10, - "charOffset": 2870, - "charLength": 194, - "snippet": { - "text": " /// \r\n public CodeFlowVersionOne(string message, IEnumerable locations, IDictionary properties)\r\n {" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.CodeFlowVersionOne..ctor(System.String,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IDictionary`2)" - } - ], - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Usage", - "FixCategory": "NonBreaking" - } + "name": ".ctor(Microsoft.CodeAnalysis.Sarif.Tool,System.Collections.Generic.IEnumerable`1,Microsoft.CodeAnalysis.Sarif.Conversion,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IDictionary`2,System.Collections.Generic.IDictionary`2,System.Collections.Generic.IDictionary`2,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,Microsoft.CodeAnalysis.Sarif.Resources,System.String,System.String,Microsoft.CodeAnalysis.Sarif.Message,System.String,System.String,System.String,System.String,System.String,System.String,Microsoft.CodeAnalysis.Sarif.ColumnKind,System.Collections.Generic.IDictionary`2)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Run..ctor(Microsoft.CodeAnalysis.Sarif.Tool,System.Collections.Generic.IEnumerable`1,Microsoft.CodeAnalysis.Sarif.Conversion,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IDictionary`2,System.Collections.Generic.IDictionary`2,System.Collections.Generic.IDictionary`2,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,Microsoft.CodeAnalysis.Sarif.Resources,System.String,System.String,Microsoft.CodeAnalysis.Sarif.Message,System.String,System.String,System.String,System.String,System.String,System.String,Microsoft.CodeAnalysis.Sarif.ColumnKind,System.Collections.Generic.IDictionary`2)", + "parentIndex": 392, + "kind": "member" }, { - "ruleId": "CA2227", - "level": "warning", - "message": { - "text": "Change 'CodeFlowVersionOne.Locations' to be read-only by removing the property setter." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/VersionOne/Autogenerated/CodeFlowVersionOne.cs" - }, - "region": { - "startLine": 42, - "snippet": { - "text": " public IList Locations { get; set; }" - } - }, - "contextRegion": { - "startLine": 41, - "startColumn": 1, - "endLine": 43, - "endColumn": 1, - "charOffset": 1647, - "charLength": 140, - "snippet": { - "text": " [DataMember(Name = \"locations\", IsRequired = true)]\r\n public IList Locations { get; set; }\r\n" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.CodeFlowVersionOne.Locations" - } - ], - "properties": { - "Category": "Microsoft.Usage", - "FixCategory": "Breaking" - } + "name": "Files", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Run.Files", + "parentIndex": 392, + "kind": "member" }, { - "ruleId": "CA2227", - "level": "warning", - "message": { - "text": "Change 'ExceptionDataVersionOne.InnerExceptions' to be read-only by removing the property setter." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/VersionOne/Autogenerated/ExceptionDataVersionOne.cs" - }, - "region": { - "startLine": 53, - "snippet": { - "text": " public IList InnerExceptions { get; set; }" - } - }, - "contextRegion": { - "startLine": 52, - "startColumn": 1, - "endLine": 54, - "endColumn": 1, - "charOffset": 2147, - "charLength": 171, - "snippet": { - "text": " [DataMember(Name = \"innerExceptions\", IsRequired = false, EmitDefaultValue = false)]\r\n public IList InnerExceptions { get; set; }\r\n" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.ExceptionDataVersionOne.InnerExceptions" - } - ], - "properties": { - "Category": "Microsoft.Usage", - "FixCategory": "Breaking" - } + "name": "Graphs", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Run.Graphs", + "parentIndex": 392, + "kind": "member" }, { - "ruleId": "CA1054", - "level": "error", - "message": { - "text": "Change the type of parameter 'uriBaseId' of method 'FileChangeVersionOne.FileChangeVersionOne(Uri, string, IEnumerable)' from string to System.Uri, or provide an overload of 'FileChangeVersionOne.FileChangeVersionOne(Uri, string, IEnumerable)', that allows 'uriBaseId' to be passed as a System.Uri object." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/VersionOne/Autogenerated/FileChangeVersionOne.cs" - }, - "region": { - "startLine": 71, - "snippet": { - "text": " public FileChangeVersionOne(Uri uri, string uriBaseId, IEnumerable replacements)" - } - }, - "contextRegion": { - "startLine": 70, - "startColumn": 1, - "endLine": 72, - "endColumn": 10, - "charOffset": 2887, - "charLength": 144, - "snippet": { - "text": " /// \r\n public FileChangeVersionOne(Uri uri, string uriBaseId, IEnumerable replacements)\r\n {" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.FileChangeVersionOne..ctor(System.Uri,System.String,System.Collections.Generic.IEnumerable`1)" - } - ], - "partialFingerprints": { - "UniqueId": "1#" - }, - "properties": { - "Category": "Microsoft.Design", - "FixCategory": "Breaking" - } + "name": "Init(Microsoft.CodeAnalysis.Sarif.Tool,System.Collections.Generic.IEnumerable`1,Microsoft.CodeAnalysis.Sarif.Conversion,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IDictionary`2,System.Collections.Generic.IDictionary`2,System.Collections.Generic.IDictionary`2,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,Microsoft.CodeAnalysis.Sarif.Resources,System.String,System.String,Microsoft.CodeAnalysis.Sarif.Message,System.String,System.String,System.String,System.String,System.String,System.String,Microsoft.CodeAnalysis.Sarif.ColumnKind,System.Collections.Generic.IDictionary`2)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Run.Init(Microsoft.CodeAnalysis.Sarif.Tool,System.Collections.Generic.IEnumerable`1,Microsoft.CodeAnalysis.Sarif.Conversion,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IDictionary`2,System.Collections.Generic.IDictionary`2,System.Collections.Generic.IDictionary`2,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,Microsoft.CodeAnalysis.Sarif.Resources,System.String,System.String,Microsoft.CodeAnalysis.Sarif.Message,System.String,System.String,System.String,System.String,System.String,System.String,Microsoft.CodeAnalysis.Sarif.ColumnKind,System.Collections.Generic.IDictionary`2)", + "parentIndex": 392, + "kind": "member" }, { - "ruleId": "CA2227", - "level": "warning", - "message": { - "text": "Change 'FileChangeVersionOne.Replacements' to be read-only by removing the property setter." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/VersionOne/Autogenerated/FileChangeVersionOne.cs" - }, - "region": { - "startLine": 50, - "snippet": { - "text": " public IList Replacements { get; set; }" - } - }, - "contextRegion": { - "startLine": 49, - "startColumn": 1, - "endLine": 51, - "endColumn": 1, - "charOffset": 1986, - "charLength": 136, - "snippet": { - "text": " [DataMember(Name = \"replacements\", IsRequired = true)]\r\n public IList Replacements { get; set; }\r\n" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.FileChangeVersionOne.Replacements" - } - ], - "properties": { - "Category": "Microsoft.Usage", - "FixCategory": "Breaking" - } + "name": "Invocations", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Run.Invocations", + "parentIndex": 392, + "kind": "member" }, { - "ruleId": "CA1056", - "level": "error", - "message": { - "text": "Change the type of property 'FileChangeVersionOne.UriBaseId' from string to System.Uri." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/VersionOne/Autogenerated/FileChangeVersionOne.cs" - }, - "region": { - "startLine": 44, - "snippet": { - "text": " public string UriBaseId { get; set; }" - } - }, - "contextRegion": { - "startLine": 43, - "startColumn": 1, - "endLine": 45, - "endColumn": 1, - "charOffset": 1651, - "charLength": 135, - "snippet": { - "text": " [DataMember(Name = \"uriBaseId\", IsRequired = false, EmitDefaultValue = false)]\r\n public string UriBaseId { get; set; }\r\n" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.FileChangeVersionOne.UriBaseId" - } - ], - "properties": { - "Category": "Microsoft.Design", - "FixCategory": "Breaking" - } + "name": "LogicalLocations", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Run.LogicalLocations", + "parentIndex": 392, + "kind": "member" }, { - "ruleId": "CA2214", - "level": "warning", - "message": { - "text": "'FileDataVersionOne.FileDataVersionOne(FileDataVersionOne)' contains a call chain that results in a call to a virtual method defined by the class. Review the following call stack for unintended consequences: \r\n\r\nFileDataVersionOne..ctor(FileDataVersionOne)\r\nFileDataVersionOne.Init(Uri, String, String, Int32, Int32, String, String, IEnumerable, IDictionary):Void\r\nPropertyBagHolder.set_Properties(IDictionary):Void" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/VersionOne/Autogenerated/FileDataVersionOne.cs" - }, - "region": { - "startLine": 140, - "snippet": { - "text": " public FileDataVersionOne(FileDataVersionOne other)" - } - }, - "contextRegion": { - "startLine": 139, - "startColumn": 1, - "endLine": 141, - "endColumn": 10, - "charOffset": 6179, - "charLength": 96, - "snippet": { - "text": " /// \r\n public FileDataVersionOne(FileDataVersionOne other)\r\n {" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.FileDataVersionOne..ctor(Microsoft.CodeAnalysis.Sarif.VersionOne.FileDataVersionOne)" - } - ], - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Usage", - "FixCategory": "NonBreaking" - } + "name": "OriginalUriBaseIds", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Run.OriginalUriBaseIds", + "parentIndex": 392, + "kind": "member" }, { - "ruleId": "CA2214", - "level": "warning", - "message": { - "text": "'FileDataVersionOne.FileDataVersionOne(Uri, string, string, int, int, string, string, IEnumerable, IDictionary)' contains a call chain that results in a call to a virtual method defined by the class. Review the following call stack for unintended consequences: \r\n\r\nFileDataVersionOne..ctor(Uri, String, String, Int32, Int32, String, String, IEnumerable, IDictionary)\r\nFileDataVersionOne.Init(Uri, String, String, Int32, Int32, String, String, IEnumerable, IDictionary):Void\r\nPropertyBagHolder.set_Properties(IDictionary):Void" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/VersionOne/Autogenerated/FileDataVersionOne.cs" - }, - "region": { - "startLine": 126, - "snippet": { - "text": " public FileDataVersionOne(Uri uri, string uriBaseId, string parentKey, int offset, int length, string mimeType, string contents, IEnumerable hashes, IDictionary properties)" - } - }, - "contextRegion": { - "startLine": 125, - "startColumn": 1, - "endLine": 127, - "endColumn": 10, - "charOffset": 5394, - "charLength": 261, - "snippet": { - "text": " /// \r\n public FileDataVersionOne(Uri uri, string uriBaseId, string parentKey, int offset, int length, string mimeType, string contents, IEnumerable hashes, IDictionary properties)\r\n {" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.FileDataVersionOne..ctor(System.Uri,System.String,System.String,System.Int32,System.Int32,System.String,System.String,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IDictionary`2)" - } - ], - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Usage", - "FixCategory": "NonBreaking" - } + "name": "Results", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Run.Results", + "parentIndex": 392, + "kind": "member" }, { - "ruleId": "CA1054", - "level": "error", - "message": { - "text": "Change the type of parameter 'uriBaseId' of method 'FileDataVersionOne.FileDataVersionOne(Uri, string, string, int, int, string, string, IEnumerable, IDictionary)' from string to System.Uri, or provide an overload of 'FileDataVersionOne.FileDataVersionOne(Uri, string, string, int, int, string, string, IEnumerable, IDictionary)', that allows 'uriBaseId' to be passed as a System.Uri object." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/VersionOne/Autogenerated/FileDataVersionOne.cs" - }, - "region": { - "startLine": 126, - "snippet": { - "text": " public FileDataVersionOne(Uri uri, string uriBaseId, string parentKey, int offset, int length, string mimeType, string contents, IEnumerable hashes, IDictionary properties)" - } - }, - "contextRegion": { - "startLine": 125, - "startColumn": 1, - "endLine": 127, - "endColumn": 10, - "charOffset": 5394, - "charLength": 261, - "snippet": { - "text": " /// \r\n public FileDataVersionOne(Uri uri, string uriBaseId, string parentKey, int offset, int length, string mimeType, string contents, IEnumerable hashes, IDictionary properties)\r\n {" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.FileDataVersionOne..ctor(System.Uri,System.String,System.String,System.Int32,System.Int32,System.String,System.String,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IDictionary`2)" - } - ], - "partialFingerprints": { - "UniqueId": "1#" - }, - "properties": { - "Category": "Microsoft.Design", - "FixCategory": "Breaking" - } + "name": "VersionControlProvenance", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Run.VersionControlProvenance", + "parentIndex": 392, + "kind": "member" }, { - "ruleId": "CA2227", - "level": "warning", - "message": { - "text": "Change 'FileDataVersionOne.Hashes' to be read-only by removing the property setter." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/VersionOne/Autogenerated/FileDataVersionOne.cs" - }, - "region": { - "startLine": 81, - "snippet": { - "text": " public IList Hashes { get; set; }" - } - }, - "contextRegion": { - "startLine": 80, - "startColumn": 1, - "endLine": 82, - "endColumn": 1, - "charOffset": 3344, - "charLength": 144, - "snippet": { - "text": " [DataMember(Name = \"hashes\", IsRequired = false, EmitDefaultValue = false)]\r\n public IList Hashes { get; set; }\r\n" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.FileDataVersionOne.Hashes" - } - ], - "properties": { - "Category": "Microsoft.Usage", - "FixCategory": "Breaking" - } + "name": "RunEqualityComparer", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.RunEqualityComparer", + "parentIndex": 229, + "kind": "type" }, { - "ruleId": "CA1056", - "level": "error", - "message": { - "text": "Change the type of property 'FileDataVersionOne.UriBaseId' from string to System.Uri." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/VersionOne/Autogenerated/FileDataVersionOne.cs" - }, - "region": { - "startLine": 45, - "snippet": { - "text": " public string UriBaseId { get; set; }" - } - }, - "contextRegion": { - "startLine": 44, - "startColumn": 1, - "endLine": 46, - "endColumn": 1, - "charOffset": 1755, - "charLength": 135, - "snippet": { - "text": " [DataMember(Name = \"uriBaseId\", IsRequired = false, EmitDefaultValue = false)]\r\n public string UriBaseId { get; set; }\r\n" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.FileDataVersionOne.UriBaseId" - } - ], - "properties": { - "Category": "Microsoft.Design", - "FixCategory": "Breaking" - } + "name": "Equals(Microsoft.CodeAnalysis.Sarif.Run,Microsoft.CodeAnalysis.Sarif.Run)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.RunEqualityComparer.Equals(Microsoft.CodeAnalysis.Sarif.Run,Microsoft.CodeAnalysis.Sarif.Run)", + "parentIndex": 403, + "kind": "member" }, { - "ruleId": "CA2227", - "level": "warning", - "message": { - "text": "Change 'FixVersionOne.FileChanges' to be read-only by removing the property setter." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/VersionOne/Autogenerated/FixVersionOne.cs" - }, - "region": { - "startLine": 44, - "snippet": { - "text": " public IList FileChanges { get; set; }" - } - }, - "contextRegion": { - "startLine": 43, - "startColumn": 1, - "endLine": 45, - "endColumn": 1, - "charOffset": 1802, - "charLength": 133, - "snippet": { - "text": " [DataMember(Name = \"fileChanges\", IsRequired = true)]\r\n public IList FileChanges { get; set; }\r\n" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.FixVersionOne.FileChanges" - } - ], - "properties": { - "Category": "Microsoft.Usage", - "FixCategory": "Breaking" - } + "name": "GetHashCode(Microsoft.CodeAnalysis.Sarif.Run)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.RunEqualityComparer.GetHashCode(Microsoft.CodeAnalysis.Sarif.Run)", + "parentIndex": 403, + "kind": "member" }, { - "ruleId": "CA2227", - "level": "warning", - "message": { - "text": "Change 'FormattedRuleMessageVersionOne.Arguments' to be read-only by removing the property setter." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/VersionOne/Autogenerated/FormattedRuleMessageVersionOne.cs" - }, - "region": { - "startLine": 44, - "snippet": { - "text": " public IList Arguments { get; set; }" - } - }, - "contextRegion": { - "startLine": 43, - "startColumn": 1, - "endLine": 45, - "endColumn": 1, - "charOffset": 2004, - "charLength": 142, - "snippet": { - "text": " [DataMember(Name = \"arguments\", IsRequired = false, EmitDefaultValue = false)]\r\n public IList Arguments { get; set; }\r\n" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.FormattedRuleMessageVersionOne.Arguments" - } - ], - "properties": { - "Category": "Microsoft.Usage", - "FixCategory": "Breaking" - } + "name": "RuntimeConditions", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.RuntimeConditions", + "parentIndex": 229, + "kind": "type" }, { - "ruleId": "CA2214", - "level": "warning", - "message": { - "text": "'InvocationVersionOne.InvocationVersionOne(InvocationVersionOne)' contains a call chain that results in a call to a virtual method defined by the class. Review the following call stack for unintended consequences: \r\n\r\nInvocationVersionOne..ctor(InvocationVersionOne)\r\nInvocationVersionOne.Init(String, IDictionary, DateTime, DateTime, String, String, Int32, String, String, IDictionary, IDictionary):Void\r\nPropertyBagHolder.set_Properties(IDictionary):Void" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/VersionOne/Autogenerated/InvocationVersionOne.cs" - }, - "region": { - "startLine": 158, - "snippet": { - "text": " public InvocationVersionOne(InvocationVersionOne other)" - } - }, - "contextRegion": { - "startLine": 157, - "startColumn": 1, - "endLine": 159, - "endColumn": 10, - "charOffset": 7242, - "charLength": 100, - "snippet": { - "text": " /// \r\n public InvocationVersionOne(InvocationVersionOne other)\r\n {" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.InvocationVersionOne..ctor(Microsoft.CodeAnalysis.Sarif.VersionOne.InvocationVersionOne)" - } - ], - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Usage", - "FixCategory": "NonBreaking" - } + "name": "SarifConstants", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.SarifConstants", + "parentIndex": 229, + "kind": "type" }, { - "ruleId": "CA2214", - "level": "warning", - "message": { - "text": "'InvocationVersionOne.InvocationVersionOne(string, IDictionary, DateTime, DateTime, string, string, int, string, string, IDictionary, IDictionary)' contains a call chain that results in a call to a virtual method defined by the class. Review the following call stack for unintended consequences: \r\n\r\nInvocationVersionOne..ctor(String, IDictionary, DateTime, DateTime, String, String, Int32, String, String, IDictionary, IDictionary)\r\nInvocationVersionOne.Init(String, IDictionary, DateTime, DateTime, String, String, Int32, String, String, IDictionary, IDictionary):Void\r\nPropertyBagHolder.set_Properties(IDictionary):Void" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/VersionOne/Autogenerated/InvocationVersionOne.cs" - }, - "region": { - "startLine": 144, - "snippet": { - "text": " public InvocationVersionOne(string commandLine, IDictionary responseFiles, DateTime startTime, DateTime endTime, string machine, string account, int processId, string fileName, string workingDirectory, IDictionary environmentVariables, IDictionary properties)" - } - }, - "contextRegion": { - "startLine": 143, - "startColumn": 1, - "endLine": 145, - "endColumn": 10, - "charOffset": 6296, - "charLength": 364, - "snippet": { - "text": " /// \r\n public InvocationVersionOne(string commandLine, IDictionary responseFiles, DateTime startTime, DateTime endTime, string machine, string account, int processId, string fileName, string workingDirectory, IDictionary environmentVariables, IDictionary properties)\r\n {" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.InvocationVersionOne..ctor(System.String,System.Collections.Generic.IDictionary`2,System.DateTime,System.DateTime,System.String,System.String,System.Int32,System.String,System.String,System.Collections.Generic.IDictionary`2,System.Collections.Generic.IDictionary`2)" - } - ], - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Usage", - "FixCategory": "NonBreaking" - } + "name": "SarifLog", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.SarifLog", + "parentIndex": 229, + "kind": "type" }, { - "ruleId": "CA2227", - "level": "warning", - "message": { - "text": "Change 'InvocationVersionOne.EnvironmentVariables' to be read-only by removing the property setter." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/VersionOne/Autogenerated/InvocationVersionOne.cs" - }, - "region": { - "startLine": 93, - "snippet": { - "text": " public IDictionary EnvironmentVariables { get; set; }" - } - }, - "contextRegion": { - "startLine": 92, - "startColumn": 1, - "endLine": 94, - "endColumn": 1, - "charOffset": 3853, - "charLength": 178, - "snippet": { - "text": " [DataMember(Name = \"environmentVariables\", IsRequired = false, EmitDefaultValue = false)]\r\n public IDictionary EnvironmentVariables { get; set; }\r\n" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.InvocationVersionOne.EnvironmentVariables" - } - ], - "properties": { - "Category": "Microsoft.Usage", - "FixCategory": "Breaking" - } + "name": "Runs", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.SarifLog.Runs", + "parentIndex": 408, + "kind": "member" }, { - "ruleId": "CA2227", - "level": "warning", - "message": { - "text": "Change 'InvocationVersionOne.ResponseFiles' to be read-only by removing the property setter." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/VersionOne/Autogenerated/InvocationVersionOne.cs" - }, - "region": { - "startLine": 45, - "snippet": { - "text": " public IDictionary ResponseFiles { get; set; }" - } - }, - "contextRegion": { - "startLine": 44, - "startColumn": 1, - "endLine": 46, - "endColumn": 1, - "charOffset": 1696, - "charLength": 164, - "snippet": { - "text": " [DataMember(Name = \"responseFiles\", IsRequired = false, EmitDefaultValue = false)]\r\n public IDictionary ResponseFiles { get; set; }\r\n" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.InvocationVersionOne.ResponseFiles" - } - ], - "properties": { - "Category": "Microsoft.Usage", - "FixCategory": "Breaking" - } + "name": "SarifNodeKind", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.SarifNodeKind", + "parentIndex": 229, + "kind": "type" }, { - "ruleId": "CA1502", - "level": "warning", - "message": { - "text": "'InvocationVersionOneEqualityComparer.Equals(InvocationVersionOne, InvocationVersionOne)' has a cyclomatic complexity of 36. Rewrite or refactor the method to reduce complexity to 25." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/VersionOne/Autogenerated/InvocationVersionOneEqualityComparer.cs" - }, - "region": { - "startLine": 20, - "snippet": { - "text": " {" - } - }, - "contextRegion": { - "startLine": 19, - "startColumn": 1, - "endLine": 21, - "endColumn": 46, - "charOffset": 791, - "charLength": 139, - "snippet": { - "text": " public bool Equals(InvocationVersionOne left, InvocationVersionOne right)\r\n {\r\n if (ReferenceEquals(left, right))" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.InvocationVersionOneEqualityComparer.Equals(Microsoft.CodeAnalysis.Sarif.VersionOne.InvocationVersionOne,Microsoft.CodeAnalysis.Sarif.VersionOne.InvocationVersionOne)" - } - ], - "properties": { - "Category": "Microsoft.Maintainability", - "FixCategory": "NonBreaking" - } + "name": "SarifLog", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.SarifNodeKind.SarifLog", + "parentIndex": 410, + "kind": "member" }, { - "ruleId": "CA1040", - "level": "warning", - "message": { - "text": "Define a custom attribute to replace 'IRuleVersionOne'." - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.IRuleVersionOne" - } - ], - "properties": { - "Category": "Microsoft.Design", - "FixCategory": "Breaking" - } + "name": "SarifRewritingVisitor", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.SarifRewritingVisitor", + "parentIndex": 229, + "kind": "type" }, { - "ruleId": "CA1704", - "level": "warning", - "message": { - "text": "Correct the spelling of 'Sarif' in type name 'ISarifNodeVersionOne'.", - "messageId": "Type" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.ISarifNodeVersionOne" - } - ], - "partialFingerprints": { - "UniqueId": "Sarif#Type" - }, - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" - } + "name": "VisitActual(Microsoft.CodeAnalysis.Sarif.ISarifNode)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.SarifRewritingVisitor.VisitActual(Microsoft.CodeAnalysis.Sarif.ISarifNode)", + "parentIndex": 412, + "kind": "member" }, { - "ruleId": "CA1704", - "level": "warning", - "message": { - "text": "Correct the spelling of 'Sarif' in member name 'ISarifNodeVersionOne.SarifNodeKindVersionOne' or remove it entirely if it represents any sort of Hungarian notation.", - "messageId": "Member" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.ISarifNodeVersionOne.SarifNodeKindVersionOne" - } - ], - "partialFingerprints": { - "UniqueId": "Sarif#Member" - }, - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" - } + "name": "VisitSarifLog(Microsoft.CodeAnalysis.Sarif.SarifLog)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.SarifRewritingVisitor.VisitSarifLog(Microsoft.CodeAnalysis.Sarif.SarifLog)", + "parentIndex": 412, + "kind": "member" }, { - "ruleId": "CA2214", - "level": "warning", - "message": { - "text": "'LocationVersionOne.LocationVersionOne(LocationVersionOne)' contains a call chain that results in a call to a virtual method defined by the class. Review the following call stack for unintended consequences: \r\n\r\nLocationVersionOne..ctor(LocationVersionOne)\r\nLocationVersionOne.Init(PhysicalLocationVersionOne, PhysicalLocationVersionOne, String, String, String, IDictionary):Void\r\nPropertyBagHolder.set_Properties(IDictionary):Void" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/VersionOne/Autogenerated/LocationVersionOne.cs" - }, - "region": { - "startLine": 113, - "snippet": { - "text": " public LocationVersionOne(LocationVersionOne other)" - } - }, - "contextRegion": { - "startLine": 112, - "startColumn": 1, - "endLine": 114, - "endColumn": 10, - "charOffset": 5726, - "charLength": 96, - "snippet": { - "text": " /// \r\n public LocationVersionOne(LocationVersionOne other)\r\n {" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.LocationVersionOne..ctor(Microsoft.CodeAnalysis.Sarif.VersionOne.LocationVersionOne)" - } - ], - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Usage", - "FixCategory": "NonBreaking" - } + "name": "SarifUtilities", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.SarifUtilities", + "parentIndex": 229, + "kind": "type" }, { - "ruleId": "CA2214", - "level": "warning", - "message": { - "text": "'LocationVersionOne.LocationVersionOne(PhysicalLocationVersionOne, PhysicalLocationVersionOne, string, string, string, IDictionary)' contains a call chain that results in a call to a virtual method defined by the class. Review the following call stack for unintended consequences: \r\n\r\nLocationVersionOne..ctor(PhysicalLocationVersionOne, PhysicalLocationVersionOne, String, String, String, IDictionary)\r\nLocationVersionOne.Init(PhysicalLocationVersionOne, PhysicalLocationVersionOne, String, String, String, IDictionary):Void\r\nPropertyBagHolder.set_Properties(IDictionary):Void" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/VersionOne/Autogenerated/LocationVersionOne.cs" - }, - "region": { - "startLine": 99, - "snippet": { - "text": " public LocationVersionOne(PhysicalLocationVersionOne analysisTarget, PhysicalLocationVersionOne resultFile, string fullyQualifiedLogicalName, string logicalLocationKey, string decoratedName, IDictionary properties)" - } - }, - "contextRegion": { - "startLine": 98, - "startColumn": 1, - "endLine": 100, - "endColumn": 10, - "charOffset": 4896, - "charLength": 287, - "snippet": { - "text": " /// \r\n public LocationVersionOne(PhysicalLocationVersionOne analysisTarget, PhysicalLocationVersionOne resultFile, string fullyQualifiedLogicalName, string logicalLocationKey, string decoratedName, IDictionary properties)\r\n {" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.LocationVersionOne..ctor(Microsoft.CodeAnalysis.Sarif.VersionOne.PhysicalLocationVersionOne,Microsoft.CodeAnalysis.Sarif.VersionOne.PhysicalLocationVersionOne,System.String,System.String,System.String,System.Collections.Generic.IDictionary`2)" - } - ], - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Usage", - "FixCategory": "NonBreaking" - } + "name": "AddOrUpdateDictionaryEntry`2(System.Collections.Generic.IDictionary`2,!!0,!!1)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.SarifUtilities.AddOrUpdateDictionaryEntry`2(System.Collections.Generic.IDictionary`2,!!0,!!1)", + "parentIndex": 415, + "kind": "member" }, { - "ruleId": "CA2214", - "level": "warning", - "message": { - "text": "'NotificationVersionOne.NotificationVersionOne(NotificationVersionOne)' contains a call chain that results in a call to a virtual method defined by the class. Review the following call stack for unintended consequences: \r\n\r\nNotificationVersionOne..ctor(NotificationVersionOne)\r\nNotificationVersionOne.Init(String, String, String, PhysicalLocationVersionOne, String, NotificationLevelVersionOne, Int32, DateTime, ExceptionDataVersionOne, IDictionary):Void\r\nPropertyBagHolder.set_Properties(IDictionary):Void" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/VersionOne/Autogenerated/NotificationVersionOne.cs" - }, - "region": { - "startLine": 149, - "snippet": { - "text": " public NotificationVersionOne(NotificationVersionOne other)" - } - }, - "contextRegion": { - "startLine": 148, - "startColumn": 1, - "endLine": 150, - "endColumn": 10, - "charOffset": 6848, - "charLength": 104, - "snippet": { - "text": " /// \r\n public NotificationVersionOne(NotificationVersionOne other)\r\n {" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.NotificationVersionOne..ctor(Microsoft.CodeAnalysis.Sarif.VersionOne.NotificationVersionOne)" - } - ], - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Usage", - "FixCategory": "NonBreaking" - } + "name": "ConvertToSarifVersion(System.String)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.SarifUtilities.ConvertToSarifVersion(System.String)", + "parentIndex": 415, + "kind": "member" }, { - "ruleId": "CA2214", - "level": "warning", - "message": { - "text": "'NotificationVersionOne.NotificationVersionOne(string, string, string, PhysicalLocationVersionOne, string, NotificationLevelVersionOne, int, DateTime, ExceptionDataVersionOne, IDictionary)' contains a call chain that results in a call to a virtual method defined by the class. Review the following call stack for unintended consequences: \r\n\r\nNotificationVersionOne..ctor(String, String, String, PhysicalLocationVersionOne, String, NotificationLevelVersionOne, Int32, DateTime, ExceptionDataVersionOne, IDictionary)\r\nNotificationVersionOne.Init(String, String, String, PhysicalLocationVersionOne, String, NotificationLevelVersionOne, Int32, DateTime, ExceptionDataVersionOne, IDictionary):Void\r\nPropertyBagHolder.set_Properties(IDictionary):Void" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/VersionOne/Autogenerated/NotificationVersionOne.cs" - }, - "region": { - "startLine": 135, - "snippet": { - "text": " public NotificationVersionOne(string id, string ruleId, string ruleKey, PhysicalLocationVersionOne physicalLocation, string message, NotificationLevelVersionOne level, int threadId, DateTime time, ExceptionDataVersionOne exception, IDictionary properties)" - } - }, - "contextRegion": { - "startLine": 134, - "startColumn": 1, - "endLine": 136, - "endColumn": 10, - "charOffset": 5981, - "charLength": 328, - "snippet": { - "text": " /// \r\n public NotificationVersionOne(string id, string ruleId, string ruleKey, PhysicalLocationVersionOne physicalLocation, string message, NotificationLevelVersionOne level, int threadId, DateTime time, ExceptionDataVersionOne exception, IDictionary properties)\r\n {" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.NotificationVersionOne..ctor(System.String,System.String,System.String,Microsoft.CodeAnalysis.Sarif.VersionOne.PhysicalLocationVersionOne,System.String,Microsoft.CodeAnalysis.Sarif.VersionOne.NotificationLevelVersionOne,System.Int32,System.DateTime,Microsoft.CodeAnalysis.Sarif.VersionOne.ExceptionDataVersionOne,System.Collections.Generic.IDictionary`2)" - } - ], - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Usage", - "FixCategory": "NonBreaking" - } + "name": "ConvertToSchemaUri(Microsoft.CodeAnalysis.Sarif.SarifVersion)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.SarifUtilities.ConvertToSchemaUri(Microsoft.CodeAnalysis.Sarif.SarifVersion)", + "parentIndex": 415, + "kind": "member" }, { - "ruleId": "CA1054", - "level": "error", - "message": { - "text": "Change the type of parameter 'uriBaseId' of method 'PhysicalLocationVersionOne.PhysicalLocationVersionOne(Uri, string, RegionVersionOne)' from string to System.Uri, or provide an overload of 'PhysicalLocationVersionOne.PhysicalLocationVersionOne(Uri, string, RegionVersionOne)', that allows 'uriBaseId' to be passed as a System.Uri object." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/VersionOne/Autogenerated/PhysicalLocationVersionOne.cs" - }, - "region": { - "startLine": 71, - "snippet": { - "text": " public PhysicalLocationVersionOne(Uri uri, string uriBaseId, RegionVersionOne region)" - } - }, - "contextRegion": { - "startLine": 70, - "startColumn": 1, - "endLine": 72, - "endColumn": 10, - "charOffset": 2968, - "charLength": 126, - "snippet": { - "text": " /// \r\n public PhysicalLocationVersionOne(Uri uri, string uriBaseId, RegionVersionOne region)\r\n {" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.PhysicalLocationVersionOne..ctor(System.Uri,System.String,Microsoft.CodeAnalysis.Sarif.VersionOne.RegionVersionOne)" - } - ], - "partialFingerprints": { - "UniqueId": "1#" - }, - "properties": { - "Category": "Microsoft.Design", - "FixCategory": "Breaking" - } + "name": "ConvertToText(Microsoft.CodeAnalysis.Sarif.SarifVersion)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.SarifUtilities.ConvertToText(Microsoft.CodeAnalysis.Sarif.SarifVersion)", + "parentIndex": 415, + "kind": "member" }, { - "ruleId": "CA1056", - "level": "error", - "message": { - "text": "Change the type of property 'PhysicalLocationVersionOne.UriBaseId' from string to System.Uri." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/VersionOne/Autogenerated/PhysicalLocationVersionOne.cs" - }, - "region": { - "startLine": 44, - "snippet": { - "text": " public string UriBaseId { get; set; }" - } - }, - "contextRegion": { - "startLine": 43, - "startColumn": 1, - "endLine": 45, - "endColumn": 1, - "charOffset": 1803, - "charLength": 135, - "snippet": { - "text": " [DataMember(Name = \"uriBaseId\", IsRequired = false, EmitDefaultValue = false)]\r\n public string UriBaseId { get; set; }\r\n" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.PhysicalLocationVersionOne.UriBaseId" - } - ], - "properties": { - "Category": "Microsoft.Design", - "FixCategory": "Breaking" - } + "name": "CreateSingleThreadedCodeFlow(System.Collections.Generic.IEnumerable`1)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.SarifUtilities.CreateSingleThreadedCodeFlow(System.Collections.Generic.IEnumerable`1)", + "parentIndex": 415, + "kind": "member" }, { - "ruleId": "CA2214", - "level": "warning", - "message": { - "text": "'ResultVersionOne.ResultVersionOne(ResultVersionOne)' contains a call chain that results in a call to a virtual method defined by the class. Review the following call stack for unintended consequences: \r\n\r\nResultVersionOne..ctor(ResultVersionOne)\r\nResultVersionOne.Init(String, String, ResultLevelVersionOne, String, FormattedRuleMessageVersionOne, IEnumerable, String, String, String, IEnumerable, IEnumerable, IEnumerable, SuppressionStatesVersionOne, BaselineStateVersionOne, IEnumerable, IDictionary):Void\r\nPropertyBagHolder.set_Properties(IDictionary):Void" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/VersionOne/Autogenerated/ResultVersionOne.cs" - }, - "region": { - "startLine": 199, - "snippet": { - "text": " public ResultVersionOne(ResultVersionOne other)" - } - }, - "contextRegion": { - "startLine": 198, - "startColumn": 1, - "endLine": 200, - "endColumn": 10, - "charOffset": 10264, - "charLength": 92, - "snippet": { - "text": " /// \r\n public ResultVersionOne(ResultVersionOne other)\r\n {" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.ResultVersionOne..ctor(Microsoft.CodeAnalysis.Sarif.VersionOne.ResultVersionOne)" - } - ], - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Usage", - "FixCategory": "NonBreaking" - } + "name": "DecodeBase64String(System.String,System.Text.Encoding)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.SarifUtilities.DecodeBase64String(System.String,System.Text.Encoding)", + "parentIndex": 415, + "kind": "member" }, { - "ruleId": "CA2214", - "level": "warning", - "message": { - "text": "'ResultVersionOne.ResultVersionOne(string, string, ResultLevelVersionOne, string, FormattedRuleMessageVersionOne, IEnumerable, string, string, string, IEnumerable, IEnumerable, IEnumerable, SuppressionStatesVersionOne, BaselineStateVersionOne, IEnumerable, IDictionary)' contains a call chain that results in a call to a virtual method defined by the class. Review the following call stack for unintended consequences: \r\n\r\nResultVersionOne..ctor(String, String, ResultLevelVersionOne, String, FormattedRuleMessageVersionOne, IEnumerable, String, String, String, IEnumerable, IEnumerable, IEnumerable, SuppressionStatesVersionOne, BaselineStateVersionOne, IEnumerable, IDictionary)\r\nResultVersionOne.Init(String, String, ResultLevelVersionOne, String, FormattedRuleMessageVersionOne, IEnumerable, String, String, String, IEnumerable, IEnumerable, IEnumerable, SuppressionStatesVersionOne, BaselineStateVersionOne, IEnumerable, IDictionary):Void\r\nPropertyBagHolder.set_Properties(IDictionary):Void" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/VersionOne/Autogenerated/ResultVersionOne.cs" - }, - "region": { - "startLine": 185, - "snippet": { - "text": " public ResultVersionOne(string ruleId, string ruleKey, ResultLevelVersionOne level, string message, FormattedRuleMessageVersionOne formattedRuleMessage, IEnumerable locations, string snippet, string id, string toolFingerprintContribution, IEnumerable stacks, IEnumerable codeFlows, IEnumerable relatedLocations, SuppressionStatesVersionOne suppressionStates, BaselineStateVersionOne baselineState, IEnumerable fixes, IDictionary properties)" - } - }, - "contextRegion": { - "startLine": 184, - "startColumn": 1, - "endLine": 186, - "endColumn": 10, - "charOffset": 9009, - "charLength": 618, - "snippet": { - "text": " /// \r\n public ResultVersionOne(string ruleId, string ruleKey, ResultLevelVersionOne level, string message, FormattedRuleMessageVersionOne formattedRuleMessage, IEnumerable locations, string snippet, string id, string toolFingerprintContribution, IEnumerable stacks, IEnumerable codeFlows, IEnumerable relatedLocations, SuppressionStatesVersionOne suppressionStates, BaselineStateVersionOne baselineState, IEnumerable fixes, IDictionary properties)\r\n {" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.ResultVersionOne..ctor(System.String,System.String,Microsoft.CodeAnalysis.Sarif.VersionOne.ResultLevelVersionOne,System.String,Microsoft.CodeAnalysis.Sarif.VersionOne.FormattedRuleMessageVersionOne,System.Collections.Generic.IEnumerable`1,System.String,System.String,System.String,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,Microsoft.CodeAnalysis.Sarif.VersionOne.SuppressionStatesVersionOne,Microsoft.CodeAnalysis.Sarif.VersionOne.BaselineStateVersionOne,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IDictionary`2)" - } - ], - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Usage", - "FixCategory": "NonBreaking" - } + "name": "GetBase64String(System.String,System.Text.Encoding)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.SarifUtilities.GetBase64String(System.String,System.Text.Encoding)", + "parentIndex": 415, + "kind": "member" }, { - "ruleId": "CA2227", - "level": "warning", - "message": { - "text": "Change 'ResultVersionOne.CodeFlows' to be read-only by removing the property setter." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/VersionOne/Autogenerated/ResultVersionOne.cs" - }, - "region": { - "startLine": 99, - "snippet": { - "text": " public IList CodeFlows { get; set; }" - } - }, - "contextRegion": { - "startLine": 98, - "startColumn": 1, - "endLine": 100, - "endColumn": 1, - "charOffset": 4751, - "charLength": 154, - "snippet": { - "text": " [DataMember(Name = \"codeFlows\", IsRequired = false, EmitDefaultValue = false)]\r\n public IList CodeFlows { get; set; }\r\n" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.ResultVersionOne.CodeFlows" - } - ], - "properties": { - "Category": "Microsoft.Usage", - "FixCategory": "Breaking" - } + "name": "GetByteLength(System.Char[],System.Text.Encoding)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.SarifUtilities.GetByteLength(System.Char[],System.Text.Encoding)", + "parentIndex": 415, + "kind": "member" }, { - "ruleId": "CA2227", - "level": "warning", - "message": { - "text": "Change 'ResultVersionOne.Fixes' to be read-only by removing the property setter." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/VersionOne/Autogenerated/ResultVersionOne.cs" - }, - "region": { - "startLine": 119, - "snippet": { - "text": " public IList Fixes { get; set; }" - } - }, - "contextRegion": { - "startLine": 118, - "startColumn": 1, - "endLine": 120, - "endColumn": 1, - "charOffset": 5889, - "charLength": 141, - "snippet": { - "text": " [DataMember(Name = \"fixes\", IsRequired = false, EmitDefaultValue = false)]\r\n public IList Fixes { get; set; }\r\n" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.ResultVersionOne.Fixes" - } - ], - "properties": { - "Category": "Microsoft.Usage", - "FixCategory": "Breaking" - } + "name": "GetByteLength(System.String,System.Text.Encoding)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.SarifUtilities.GetByteLength(System.String,System.Text.Encoding)", + "parentIndex": 415, + "kind": "member" }, { - "ruleId": "CA2227", - "level": "warning", - "message": { - "text": "Change 'ResultVersionOne.Locations' to be read-only by removing the property setter." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/VersionOne/Autogenerated/ResultVersionOne.cs" - }, - "region": { - "startLine": 69, - "snippet": { - "text": " public IList Locations { get; set; }" - } - }, - "contextRegion": { - "startLine": 68, - "startColumn": 1, - "endLine": 70, - "endColumn": 1, - "charOffset": 3447, - "charLength": 154, - "snippet": { - "text": " [DataMember(Name = \"locations\", IsRequired = false, EmitDefaultValue = false)]\r\n public IList Locations { get; set; }\r\n" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.ResultVersionOne.Locations" - } - ], - "properties": { - "Category": "Microsoft.Usage", - "FixCategory": "Breaking" - } + "name": "GetUtf8Base64String(System.String)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.SarifUtilities.GetUtf8Base64String(System.String)", + "parentIndex": 415, + "kind": "member" }, { - "ruleId": "CA2227", - "level": "warning", - "message": { - "text": "Change 'ResultVersionOne.RelatedLocations' to be read-only by removing the property setter." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/VersionOne/Autogenerated/ResultVersionOne.cs" - }, - "region": { - "startLine": 105, - "snippet": { - "text": " public IList RelatedLocations { get; set; }" - } - }, - "contextRegion": { - "startLine": 104, - "startColumn": 1, - "endLine": 106, - "endColumn": 95, - "charOffset": 5081, - "charLength": 275, - "snippet": { - "text": " [DataMember(Name = \"relatedLocations\", IsRequired = false, EmitDefaultValue = false)]\r\n public IList RelatedLocations { get; set; }\r\n [DataMember(Name = \"suppressionStates\", IsRequired = false, EmitDefaultValue = false)]" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.ResultVersionOne.RelatedLocations" - } - ], - "properties": { - "Category": "Microsoft.Usage", - "FixCategory": "Breaking" - } + "name": "SarifDateTimeFormatMillisecondsPrecision", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.SarifUtilities.SarifDateTimeFormatMillisecondsPrecision", + "parentIndex": 415, + "kind": "member" }, { - "ruleId": "CA2227", - "level": "warning", - "message": { - "text": "Change 'ResultVersionOne.Stacks' to be read-only by removing the property setter." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/VersionOne/Autogenerated/ResultVersionOne.cs" - }, - "region": { - "startLine": 93, - "snippet": { - "text": " public IList Stacks { get; set; }" - } - }, - "contextRegion": { - "startLine": 92, - "startColumn": 1, - "endLine": 94, - "endColumn": 1, - "charOffset": 4489, - "charLength": 145, - "snippet": { - "text": " [DataMember(Name = \"stacks\", IsRequired = false, EmitDefaultValue = false)]\r\n public IList Stacks { get; set; }\r\n" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.ResultVersionOne.Stacks" - } - ], - "properties": { - "Category": "Microsoft.Usage", - "FixCategory": "Breaking" - } + "name": "SarifDateTimeFormatSecondsPrecision", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.SarifUtilities.SarifDateTimeFormatSecondsPrecision", + "parentIndex": 415, + "kind": "member" }, { - "ruleId": "CA1502", - "level": "warning", - "message": { - "text": "'ResultVersionOneEqualityComparer.Equals(ResultVersionOne, ResultVersionOne)' has a cyclomatic complexity of 52. Rewrite or refactor the method to reduce complexity to 25." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/VersionOne/Autogenerated/ResultVersionOneEqualityComparer.cs" - }, - "region": { - "startLine": 20, - "snippet": { - "text": " {" - } - }, - "contextRegion": { - "startLine": 19, - "startColumn": 1, - "endLine": 21, - "endColumn": 46, - "charOffset": 771, - "charLength": 131, - "snippet": { - "text": " public bool Equals(ResultVersionOne left, ResultVersionOne right)\r\n {\r\n if (ReferenceEquals(left, right))" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.ResultVersionOneEqualityComparer.Equals(Microsoft.CodeAnalysis.Sarif.VersionOne.ResultVersionOne,Microsoft.CodeAnalysis.Sarif.VersionOne.ResultVersionOne)" - } - ], - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Maintainability", - "FixCategory": "NonBreaking" - } + "name": "SarifUtilitiesVersionOne", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.SarifUtilitiesVersionOne", + "parentIndex": 229, + "kind": "type" }, { - "ruleId": "CA1502", - "level": "warning", - "message": { - "text": "'ResultVersionOneEqualityComparer.GetHashCode(ResultVersionOne)' has a cyclomatic complexity of 33. Rewrite or refactor the method to reduce complexity to 25." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/VersionOne/Autogenerated/ResultVersionOneEqualityComparer.cs" - }, - "region": { - "startLine": 212, - "snippet": { - "text": " {" - } - }, - "contextRegion": { - "startLine": 211, - "startColumn": 1, - "endLine": 213, - "endColumn": 44, - "charOffset": 6772, - "charLength": 108, - "snippet": { - "text": " public int GetHashCode(ResultVersionOne obj)\r\n {\r\n if (ReferenceEquals(obj, null))" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.ResultVersionOneEqualityComparer.GetHashCode(Microsoft.CodeAnalysis.Sarif.VersionOne.ResultVersionOne)" - } - ], - "properties": { - "Category": "Microsoft.Maintainability", - "FixCategory": "NonBreaking" - } + "name": "ConvertToSchemaUri(Microsoft.CodeAnalysis.Sarif.VersionOne.SarifVersionVersionOne)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.SarifUtilitiesVersionOne.ConvertToSchemaUri(Microsoft.CodeAnalysis.Sarif.VersionOne.SarifVersionVersionOne)", + "parentIndex": 428, + "kind": "member" }, { - "ruleId": "CA2214", - "level": "warning", - "message": { - "text": "'RuleVersionOne.RuleVersionOne(RuleVersionOne)' contains a call chain that results in a call to a virtual method defined by the class. Review the following call stack for unintended consequences: \r\n\r\nRuleVersionOne..ctor(RuleVersionOne)\r\nRuleVersionOne.Init(String, String, String, String, IDictionary, reportingConfigurationVersionOne, ResultLevelVersionOne, Uri, IDictionary):Void\r\nPropertyBagHolderVersionOne.set_Properties(IDictionary):Void" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/VersionOne/Autogenerated/RuleVersionOne.cs" - }, - "region": { - "startLine": 140, - "snippet": { - "text": " public RuleVersionOne(RuleVersionOne other)" - } - }, - "contextRegion": { - "startLine": 139, - "startColumn": 1, - "endLine": 141, - "endColumn": 10, - "charOffset": 6562, - "charLength": 88, - "snippet": { - "text": " /// \r\n public RuleVersionOne(RuleVersionOne other)\r\n {" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.RuleVersionOne..ctor(Microsoft.CodeAnalysis.Sarif.VersionOne.RuleVersionOne)" - } - ], - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Usage", - "FixCategory": "NonBreaking" - } + "name": "ConvertToText(Microsoft.CodeAnalysis.Sarif.VersionOne.SarifVersionVersionOne)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.SarifUtilitiesVersionOne.ConvertToText(Microsoft.CodeAnalysis.Sarif.VersionOne.SarifVersionVersionOne)", + "parentIndex": 428, + "kind": "member" }, { - "ruleId": "CA2214", - "level": "warning", - "message": { - "text": "'RuleVersionOne.RuleVersionOne(string, string, string, string, IDictionary, reportingConfigurationVersionOne, ResultLevelVersionOne, Uri, IDictionary)' contains a call chain that results in a call to a virtual method defined by the class. Review the following call stack for unintended consequences: \r\n\r\nRuleVersionOne..ctor(String, String, String, String, IDictionary, reportingConfigurationVersionOne, ResultLevelVersionOne, Uri, IDictionary)\r\nRuleVersionOne.Init(String, String, String, String, IDictionary, reportingConfigurationVersionOne, ResultLevelVersionOne, Uri, IDictionary):Void\r\nPropertyBagHolderVersionOne.set_Properties(IDictionary):Void" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/VersionOne/Autogenerated/RuleVersionOne.cs" - }, - "region": { - "startLine": 126, - "snippet": { - "text": " public RuleVersionOne(string id, string name, string shortDescription, string fullDescription, IDictionary messageFormats, reportingConfigurationVersionOne configuration, ResultLevelVersionOne defaultLevel, Uri helpUri, IDictionary properties)" - } - }, - "contextRegion": { - "startLine": 125, - "startColumn": 1, - "endLine": 127, - "endColumn": 10, - "charOffset": 5687, - "charLength": 327, - "snippet": { - "text": " /// \r\n public RuleVersionOne(string id, string name, string shortDescription, string fullDescription, IDictionary messageFormats, reportingConfigurationVersionOne configuration, ResultLevelVersionOne defaultLevel, Uri helpUri, IDictionary properties)\r\n {" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.RuleVersionOne..ctor(System.String,System.String,System.String,System.String,System.Collections.Generic.IDictionary`2,Microsoft.CodeAnalysis.Sarif.VersionOne.reportingConfigurationVersionOne,Microsoft.CodeAnalysis.Sarif.VersionOne.ResultLevelVersionOne,System.Uri,System.Collections.Generic.IDictionary`2)" - } - ], - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Usage", - "FixCategory": "NonBreaking" - } + "name": "SarifVersion", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.SarifVersion", + "parentIndex": 229, + "kind": "type" }, { - "ruleId": "CA2227", - "level": "warning", - "message": { - "text": "Change 'RuleVersionOne.MessageFormats' to be read-only by removing the property setter." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/VersionOne/Autogenerated/RuleVersionOne.cs" - }, - "region": { - "startLine": 63, - "snippet": { - "text": " public IDictionary MessageFormats { get; set; }" - } - }, - "contextRegion": { - "startLine": 62, - "startColumn": 1, - "endLine": 64, - "endColumn": 1, - "charOffset": 2765, - "charLength": 166, - "snippet": { - "text": " [DataMember(Name = \"messageFormats\", IsRequired = false, EmitDefaultValue = false)]\r\n public IDictionary MessageFormats { get; set; }\r\n" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.RuleVersionOne.MessageFormats" - } - ], - "properties": { - "Category": "Microsoft.Usage", - "FixCategory": "Breaking" - } + "name": "SdkResources", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.SdkResources", + "parentIndex": 229, + "kind": "type" }, { - "ruleId": "CA1502", - "level": "warning", - "message": { - "text": "'RuleVersionOneEqualityComparer.Equals(RuleVersionOne, RuleVersionOne)' has a cyclomatic complexity of 27. Rewrite or refactor the method to reduce complexity to 25." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/VersionOne/Autogenerated/RuleVersionOneEqualityComparer.cs" - }, - "region": { - "startLine": 20, - "snippet": { - "text": " {" - } - }, - "contextRegion": { - "startLine": 19, - "startColumn": 1, - "endLine": 21, - "endColumn": 46, - "charOffset": 761, - "charLength": 127, - "snippet": { - "text": " public bool Equals(RuleVersionOne left, RuleVersionOne right)\r\n {\r\n if (ReferenceEquals(left, right))" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.RuleVersionOneEqualityComparer.Equals(Microsoft.CodeAnalysis.Sarif.VersionOne.RuleVersionOne,Microsoft.CodeAnalysis.Sarif.VersionOne.RuleVersionOne)" - } - ], - "properties": { - "Category": "Microsoft.Maintainability", - "FixCategory": "NonBreaking" - } + "name": ".ctor()", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.SdkResources..ctor()", + "parentIndex": 432, + "kind": "member" }, { - "ruleId": "CA2214", - "level": "warning", - "message": { - "text": "'RunVersionOne.RunVersionOne(RunVersionOne)' contains a call chain that results in a call to a virtual method defined by the class. Review the following call stack for unintended consequences: \r\n\r\nRunVersionOne..ctor(RunVersionOne)\r\nRunVersionOne.Init(ToolVersionOne, InvocationVersionOne, IDictionary, IDictionary, IEnumerable, IEnumerable, IEnumerable, IDictionary, String, String, String, String, String, IDictionary):Void\r\nPropertyBagHolder.set_Properties(IDictionary):Void" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/VersionOne/Autogenerated/RunVersionOne.cs" - }, - "region": { - "startLine": 185, - "snippet": { - "text": " public RunVersionOne(RunVersionOne other)" - } - }, - "contextRegion": { - "startLine": 184, - "startColumn": 1, - "endLine": 186, - "endColumn": 10, - "charOffset": 9697, - "charLength": 86, - "snippet": { - "text": " /// \r\n public RunVersionOne(RunVersionOne other)\r\n {" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.RunVersionOne..ctor(Microsoft.CodeAnalysis.Sarif.VersionOne.RunVersionOne)" - } - ], - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Usage", - "FixCategory": "NonBreaking" - } + "name": "Stack", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Stack", + "parentIndex": 229, + "kind": "type" }, { - "ruleId": "CA2214", - "level": "warning", - "message": { - "text": "'RunVersionOne.RunVersionOne(ToolVersionOne, InvocationVersionOne, IDictionary, IDictionary, IEnumerable, IEnumerable, IEnumerable, IDictionary, string, string, string, string, string, IDictionary)' contains a call chain that results in a call to a virtual method defined by the class. Review the following call stack for unintended consequences: \r\n\r\nRunVersionOne..ctor(ToolVersionOne, InvocationVersionOne, IDictionary, IDictionary, IEnumerable, IEnumerable, IEnumerable, IDictionary, String, String, String, String, String, IDictionary)\r\nRunVersionOne.Init(ToolVersionOne, InvocationVersionOne, IDictionary, IDictionary, IEnumerable, IEnumerable, IEnumerable, IDictionary, String, String, String, String, String, IDictionary):Void\r\nPropertyBagHolder.set_Properties(IDictionary):Void" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/VersionOne/Autogenerated/RunVersionOne.cs" - }, - "region": { - "startLine": 171, - "snippet": { - "text": " public RunVersionOne(ToolVersionOne tool, InvocationVersionOne invocation, IDictionary files, IDictionary logicalLocations, IEnumerable results, IEnumerable toolNotifications, IEnumerable configurationNotifications, IDictionary rules, string id, string stableId, string automationId, string baselineId, string architecture, IDictionary properties)" - } - }, - "contextRegion": { - "startLine": 170, - "startColumn": 1, - "endLine": 172, - "endColumn": 10, - "charOffset": 8516, - "charLength": 573, - "snippet": { - "text": " /// \r\n public RunVersionOne(ToolVersionOne tool, InvocationVersionOne invocation, IDictionary files, IDictionary logicalLocations, IEnumerable results, IEnumerable toolNotifications, IEnumerable configurationNotifications, IDictionary rules, string id, string stableId, string automationId, string baselineId, string architecture, IDictionary properties)\r\n {" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.RunVersionOne..ctor(Microsoft.CodeAnalysis.Sarif.VersionOne.ToolVersionOne,Microsoft.CodeAnalysis.Sarif.VersionOne.InvocationVersionOne,System.Collections.Generic.IDictionary`2,System.Collections.Generic.IDictionary`2,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IDictionary`2,System.String,System.String,System.String,System.String,System.String,System.Collections.Generic.IDictionary`2)" - } - ], - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Usage", - "FixCategory": "NonBreaking" - } + "name": ".ctor(Microsoft.CodeAnalysis.Sarif.Message,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IDictionary`2)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Stack..ctor(Microsoft.CodeAnalysis.Sarif.Message,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IDictionary`2)", + "parentIndex": 434, + "kind": "member" }, { - "ruleId": "CA2227", - "level": "warning", - "message": { - "text": "Change 'RunVersionOne.ConfigurationNotifications' to be read-only by removing the property setter." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/VersionOne/Autogenerated/RunVersionOne.cs" - }, - "region": { - "startLine": 75, - "snippet": { - "text": " public IList ConfigurationNotifications { get; set; }" - } - }, - "contextRegion": { - "startLine": 74, - "startColumn": 1, - "endLine": 76, - "endColumn": 1, - "charOffset": 3751, - "charLength": 192, - "snippet": { - "text": " [DataMember(Name = \"configurationNotifications\", IsRequired = false, EmitDefaultValue = false)]\r\n public IList ConfigurationNotifications { get; set; }\r\n" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.RunVersionOne.ConfigurationNotifications" - } - ], - "properties": { - "Category": "Microsoft.Usage", - "FixCategory": "Breaking" - } + "name": ".ctor(Microsoft.CodeAnalysis.Sarif.Stack)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Stack..ctor(Microsoft.CodeAnalysis.Sarif.Stack)", + "parentIndex": 434, + "kind": "member" }, { - "ruleId": "CA2227", - "level": "warning", - "message": { - "text": "Change 'RunVersionOne.Files' to be read-only by removing the property setter." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/VersionOne/Autogenerated/RunVersionOne.cs" - }, - "region": { - "startLine": 51, - "snippet": { - "text": " public IDictionary Files { get; set; }" - } - }, - "contextRegion": { - "startLine": 50, - "startColumn": 1, - "endLine": 52, - "endColumn": 1, - "charOffset": 2341, - "charLength": 160, - "snippet": { - "text": " [DataMember(Name = \"files\", IsRequired = false, EmitDefaultValue = false)]\r\n public IDictionary Files { get; set; }\r\n" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.RunVersionOne.Files" - } - ], - "properties": { - "Category": "Microsoft.Usage", - "FixCategory": "Breaking" - } + "name": ".ctor(System.Diagnostics.StackTrace)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Stack..ctor(System.Diagnostics.StackTrace)", + "parentIndex": 434, + "kind": "member" }, { - "ruleId": "CA2227", - "level": "warning", - "message": { - "text": "Change 'RunVersionOne.LogicalLocations' to be read-only by removing the property setter." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/VersionOne/Autogenerated/RunVersionOne.cs" - }, - "region": { - "startLine": 57, - "snippet": { - "text": " public IDictionary LogicalLocations { get; set; }" - } - }, - "contextRegion": { - "startLine": 56, - "startColumn": 1, - "endLine": 58, - "endColumn": 1, - "charOffset": 2664, - "charLength": 189, - "snippet": { - "text": " [DataMember(Name = \"logicalLocations\", IsRequired = false, EmitDefaultValue = false)]\r\n public IDictionary LogicalLocations { get; set; }\r\n" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.RunVersionOne.LogicalLocations" - } - ], - "properties": { - "Category": "Microsoft.Usage", - "FixCategory": "Breaking" - } + "name": "Create(System.String)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Stack.Create(System.String)", + "parentIndex": 434, + "kind": "member" }, { - "ruleId": "CA2227", - "level": "warning", - "message": { - "text": "Change 'RunVersionOne.Results' to be read-only by removing the property setter." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/VersionOne/Autogenerated/RunVersionOne.cs" - }, - "region": { - "startLine": 63, - "snippet": { - "text": " public IList Results { get; set; }" - } - }, - "contextRegion": { - "startLine": 62, - "startColumn": 1, - "endLine": 64, - "endColumn": 1, - "charOffset": 3135, - "charLength": 148, - "snippet": { - "text": " [DataMember(Name = \"results\", IsRequired = false, EmitDefaultValue = false)]\r\n public IList Results { get; set; }\r\n" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.RunVersionOne.Results" - } - ], - "properties": { - "Category": "Microsoft.Usage", - "FixCategory": "Breaking" - } + "name": "Frames", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Stack.Frames", + "parentIndex": 434, + "kind": "member" }, { - "ruleId": "CA2227", - "level": "warning", - "message": { - "text": "Change 'RunVersionOne.Rules' to be read-only by removing the property setter." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/VersionOne/Autogenerated/RunVersionOne.cs" - }, - "region": { - "startLine": 81, - "snippet": { - "text": " public IDictionary Rules { get; set; }" - } - }, - "contextRegion": { - "startLine": 80, - "startColumn": 1, - "endLine": 82, - "endColumn": 1, - "charOffset": 4191, - "charLength": 156, - "snippet": { - "text": " [DataMember(Name = \"rules\", IsRequired = false, EmitDefaultValue = false)]\r\n public IDictionary Rules { get; set; }\r\n" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.RunVersionOne.Rules" - } - ], - "properties": { - "Category": "Microsoft.Usage", - "FixCategory": "Breaking" - } + "name": "StackFrame", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.StackFrame", + "parentIndex": 229, + "kind": "type" }, { - "ruleId": "CA2227", - "level": "warning", - "message": { - "text": "Change 'RunVersionOne.ToolNotifications' to be read-only by removing the property setter." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/VersionOne/Autogenerated/RunVersionOne.cs" - }, - "region": { - "startLine": 69, - "snippet": { - "text": " public IList ToolNotifications { get; set; }" - } - }, - "contextRegion": { - "startLine": 68, - "startColumn": 1, - "endLine": 70, - "endColumn": 1, - "charOffset": 3426, - "charLength": 174, - "snippet": { - "text": " [DataMember(Name = \"toolNotifications\", IsRequired = false, EmitDefaultValue = false)]\r\n public IList ToolNotifications { get; set; }\r\n" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.RunVersionOne.ToolNotifications" - } - ], - "properties": { - "Category": "Microsoft.Usage", - "FixCategory": "Breaking" - } + "name": ".ctor(Microsoft.CodeAnalysis.Sarif.Location,System.String,System.Int32,System.Int32,System.Int32,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IDictionary`2)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.StackFrame..ctor(Microsoft.CodeAnalysis.Sarif.Location,System.String,System.Int32,System.Int32,System.Int32,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IDictionary`2)", + "parentIndex": 440, + "kind": "member" }, { - "ruleId": "CA1502", - "level": "warning", - "message": { - "text": "'RunVersionOneEqualityComparer.Equals(RunVersionOne, RunVersionOne)' has a cyclomatic complexity of 61. Rewrite or refactor the method to reduce complexity to 25." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/VersionOne/Autogenerated/RunVersionOneEqualityComparer.cs" - }, - "region": { - "startLine": 20, - "snippet": { - "text": " {" - } - }, - "contextRegion": { - "startLine": 19, - "startColumn": 1, - "endLine": 21, - "endColumn": 46, - "charOffset": 756, - "charLength": 125, - "snippet": { - "text": " public bool Equals(RunVersionOne left, RunVersionOne right)\r\n {\r\n if (ReferenceEquals(left, right))" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.RunVersionOneEqualityComparer.Equals(Microsoft.CodeAnalysis.Sarif.VersionOne.RunVersionOne,Microsoft.CodeAnalysis.Sarif.VersionOne.RunVersionOne)" - } - ], - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Maintainability", - "FixCategory": "NonBreaking" - } + "name": ".ctor(Microsoft.CodeAnalysis.Sarif.StackFrame)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.StackFrame..ctor(Microsoft.CodeAnalysis.Sarif.StackFrame)", + "parentIndex": 440, + "kind": "member" }, { - "ruleId": "CA1502", - "level": "warning", - "message": { - "text": "'RunVersionOneEqualityComparer.GetHashCode(RunVersionOne)' has a cyclomatic complexity of 37. Rewrite or refactor the method to reduce complexity to 25." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/VersionOne/Autogenerated/RunVersionOneEqualityComparer.cs" - }, - "region": { - "startLine": 221, - "snippet": { - "text": " {" - } - }, - "contextRegion": { - "startLine": 220, - "startColumn": 1, - "endLine": 222, - "endColumn": 44, - "charOffset": 7519, - "charLength": 105, - "snippet": { - "text": " public int GetHashCode(RunVersionOne obj)\r\n {\r\n if (ReferenceEquals(obj, null))" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.RunVersionOneEqualityComparer.GetHashCode(Microsoft.CodeAnalysis.Sarif.VersionOne.RunVersionOne)" - } - ], - "properties": { - "Category": "Microsoft.Maintainability", - "FixCategory": "NonBreaking" - } + "name": "Create(System.Diagnostics.StackFrame)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.StackFrame.Create(System.Diagnostics.StackFrame)", + "parentIndex": 440, + "kind": "member" }, { - "ruleId": "CA1704", - "level": "warning", - "message": { - "text": "Correct the spelling of 'Sarif' in type name 'SarifLogVersionOne'.", - "messageId": "Type" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.SarifLogVersionOne" - } - ], - "partialFingerprints": { - "UniqueId": "Sarif#Type" - }, - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" - } + "name": "CreateFullyQualifiedName(System.Reflection.MethodBase)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.StackFrame.CreateFullyQualifiedName(System.Reflection.MethodBase)", + "parentIndex": 440, + "kind": "member" }, { - "ruleId": "CA2227", - "level": "warning", - "message": { - "text": "Change 'SarifLogVersionOne.Runs' to be read-only by removing the property setter." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/VersionOne/Autogenerated/SarifLogVersionOne.cs" - }, - "region": { - "startLine": 50, - "snippet": { - "text": " public IList Runs { get; set; }" - } - }, - "contextRegion": { - "startLine": 49, - "startColumn": 1, - "endLine": 51, - "endColumn": 1, - "charOffset": 1909, - "charLength": 112, - "snippet": { - "text": " [DataMember(Name = \"runs\", IsRequired = true)]\r\n public IList Runs { get; set; }\r\n" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.SarifLogVersionOne.Runs" - } - ], - "properties": { - "Category": "Microsoft.Usage", - "FixCategory": "Breaking" - } + "name": "Parameters", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.StackFrame.Parameters", + "parentIndex": 440, + "kind": "member" }, { - "ruleId": "CA1704", - "level": "warning", - "message": { - "text": "Correct the spelling of 'Sarif' in type name 'SarifNodeKindVersionOne'.", - "messageId": "Type" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.SarifNodeKindVersionOne" - } - ], - "partialFingerprints": { - "UniqueId": "Sarif#Type" - }, - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" - } + "name": "StringSet", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.StringSet", + "parentIndex": 229, + "kind": "type" }, { - "ruleId": "CA1704", - "level": "warning", - "message": { - "text": "Correct the spelling of 'Sarif' in member name 'SarifNodeKindVersionOne.SarifLogVersionOne' or remove it entirely if it represents any sort of Hungarian notation.", - "messageId": "Member" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.SarifNodeKindVersionOne.SarifLogVersionOne" - } - ], - "partialFingerprints": { - "UniqueId": "Sarif#Member" - }, - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" - } + "name": "StringToVersionMap", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.StringToVersionMap", + "parentIndex": 229, + "kind": "type" }, { - "ruleId": "CA1704", - "level": "warning", - "message": { - "text": "Correct the spelling of 'Sarif' in type name 'SarifRewritingVisitorVersionOne'.", - "messageId": "Type" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.SarifRewritingVisitorVersionOne" - } - ], - "partialFingerprints": { - "UniqueId": "Sarif#Type" - }, - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" - } + "name": "SupportedPlatform", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.SupportedPlatform", + "parentIndex": 229, + "kind": "type" }, { - "ruleId": "CA1704", - "level": "warning", - "message": { - "text": "Correct the spelling of 'Sarif' in member name 'SarifRewritingVisitorVersionOne.VisitSarifLogVersionOne(SarifLogVersionOne)' or remove it entirely if it represents any sort of Hungarian notation.", - "messageId": "Member" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/VersionOne/Autogenerated/SarifRewritingVisitorVersionOne.cs" - }, - "region": { - "startLine": 442, - "snippet": { - "text": " {" - } - }, - "contextRegion": { - "startLine": 441, - "startColumn": 1, - "endLine": 443, - "endColumn": 30, - "charOffset": 16214, - "charLength": 132, - "snippet": { - "text": " public virtual SarifLogVersionOne VisitSarifLogVersionOne(SarifLogVersionOne node)\r\n {\r\n if (node != null)" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.SarifRewritingVisitorVersionOne.VisitSarifLogVersionOne(Microsoft.CodeAnalysis.Sarif.VersionOne.SarifLogVersionOne)" - } - ], - "partialFingerprints": { - "UniqueId": "Sarif#Member" - }, - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" - } + "name": "OSX", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.SupportedPlatform.OSX", + "parentIndex": 448, + "kind": "member" }, { - "ruleId": "CA1704", - "level": "warning", - "message": { - "text": "Correct the spelling of 'Sarif' in type name 'SarifVersionVersionOne'.", - "messageId": "Type" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.SarifVersionVersionOne" - } - ], - "partialFingerprints": { - "UniqueId": "Sarif#Type" - }, - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" - } + "name": "ThreadFlow", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.ThreadFlow", + "parentIndex": 229, + "kind": "type" }, { - "ruleId": "CA2214", - "level": "warning", - "message": { - "text": "'StackFrameVersionOne.StackFrameVersionOne(StackFrameVersionOne)' contains a call chain that results in a call to a virtual method defined by the class. Review the following call stack for unintended consequences: \r\n\r\nStackFrameVersionOne..ctor(StackFrameVersionOne)\r\nStackFrameVersionOne.Init(String, Uri, String, Int32, Int32, String, Int32, String, String, Int32, Int32, IEnumerable, IDictionary):Void\r\nPropertyBagHolder.set_Properties(IDictionary):Void" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/VersionOne/Autogenerated/StackFrameVersionOne.cs" - }, - "region": { - "startLine": 176, - "snippet": { - "text": " public StackFrameVersionOne(StackFrameVersionOne other)" - } - }, - "contextRegion": { - "startLine": 175, - "startColumn": 1, - "endLine": 177, - "endColumn": 10, - "charOffset": 7921, - "charLength": 100, - "snippet": { - "text": " /// \r\n public StackFrameVersionOne(StackFrameVersionOne other)\r\n {" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.StackFrameVersionOne..ctor(Microsoft.CodeAnalysis.Sarif.VersionOne.StackFrameVersionOne)" - } - ], - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Usage", - "FixCategory": "NonBreaking" - } + "name": ".ctor(Microsoft.CodeAnalysis.Sarif.ThreadFlow)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.ThreadFlow..ctor(Microsoft.CodeAnalysis.Sarif.ThreadFlow)", + "parentIndex": 450, + "kind": "member" }, { - "ruleId": "CA2214", - "level": "warning", - "message": { - "text": "'StackFrameVersionOne.StackFrameVersionOne(string, Uri, string, int, int, string, int, string, string, int, int, IEnumerable, IDictionary)' contains a call chain that results in a call to a virtual method defined by the class. Review the following call stack for unintended consequences: \r\n\r\nStackFrameVersionOne..ctor(String, Uri, String, Int32, Int32, String, Int32, String, String, Int32, Int32, IEnumerable, IDictionary)\r\nStackFrameVersionOne.Init(String, Uri, String, Int32, Int32, String, Int32, String, String, Int32, Int32, IEnumerable, IDictionary):Void\r\nPropertyBagHolder.set_Properties(IDictionary):Void" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/VersionOne/Autogenerated/StackFrameVersionOne.cs" - }, - "region": { - "startLine": 162, - "snippet": { - "text": " public StackFrameVersionOne(string message, Uri uri, string uriBaseId, int line, int column, string module, int threadId, string fullyQualifiedLogicalName, string logicalLocationKey, int address, int offset, IEnumerable parameters, IDictionary properties)" - } - }, - "contextRegion": { - "startLine": 161, - "startColumn": 1, - "endLine": 163, - "endColumn": 10, - "charOffset": 6997, - "charLength": 336, - "snippet": { - "text": " /// \r\n public StackFrameVersionOne(string message, Uri uri, string uriBaseId, int line, int column, string module, int threadId, string fullyQualifiedLogicalName, string logicalLocationKey, int address, int offset, IEnumerable parameters, IDictionary properties)\r\n {" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.StackFrameVersionOne..ctor(System.String,System.Uri,System.String,System.Int32,System.Int32,System.String,System.Int32,System.String,System.String,System.Int32,System.Int32,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IDictionary`2)" - } - ], - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Usage", - "FixCategory": "NonBreaking" - } + "name": ".ctor(System.String,Microsoft.CodeAnalysis.Sarif.Message,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IDictionary`2)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.ThreadFlow..ctor(System.String,Microsoft.CodeAnalysis.Sarif.Message,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IDictionary`2)", + "parentIndex": 450, + "kind": "member" }, { - "ruleId": "CA1054", - "level": "error", - "message": { - "text": "Change the type of parameter 'uriBaseId' of method 'StackFrameVersionOne.StackFrameVersionOne(string, Uri, string, int, int, string, int, string, string, int, int, IEnumerable, IDictionary)' from string to System.Uri, or provide an overload of 'StackFrameVersionOne.StackFrameVersionOne(string, Uri, string, int, int, string, int, string, string, int, int, IEnumerable, IDictionary)', that allows 'uriBaseId' to be passed as a System.Uri object." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/VersionOne/Autogenerated/StackFrameVersionOne.cs" - }, - "region": { - "startLine": 162, - "snippet": { - "text": " public StackFrameVersionOne(string message, Uri uri, string uriBaseId, int line, int column, string module, int threadId, string fullyQualifiedLogicalName, string logicalLocationKey, int address, int offset, IEnumerable parameters, IDictionary properties)" - } - }, - "contextRegion": { - "startLine": 161, - "startColumn": 1, - "endLine": 163, - "endColumn": 10, - "charOffset": 6997, - "charLength": 336, - "snippet": { - "text": " /// \r\n public StackFrameVersionOne(string message, Uri uri, string uriBaseId, int line, int column, string module, int threadId, string fullyQualifiedLogicalName, string logicalLocationKey, int address, int offset, IEnumerable parameters, IDictionary properties)\r\n {" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.StackFrameVersionOne..ctor(System.String,System.Uri,System.String,System.Int32,System.Int32,System.String,System.Int32,System.String,System.String,System.Int32,System.Int32,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IDictionary`2)" - } - ], - "partialFingerprints": { - "UniqueId": "2#" - }, - "properties": { - "Category": "Microsoft.Design", - "FixCategory": "Breaking" - } + "name": "Locations", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.ThreadFlow.Locations", + "parentIndex": 450, + "kind": "member" }, { - "ruleId": "CA2227", - "level": "warning", - "message": { - "text": "Change 'StackFrameVersionOne.Parameters' to be read-only by removing the property setter." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/VersionOne/Autogenerated/StackFrameVersionOne.cs" - }, - "region": { - "startLine": 105, - "snippet": { - "text": " public IList Parameters { get; set; }" - } - }, - "contextRegion": { - "startLine": 104, - "startColumn": 1, - "endLine": 106, - "endColumn": 1, - "charOffset": 4326, - "charLength": 144, - "snippet": { - "text": " [DataMember(Name = \"parameters\", IsRequired = false, EmitDefaultValue = false)]\r\n public IList Parameters { get; set; }\r\n" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.StackFrameVersionOne.Parameters" - } - ], - "properties": { - "Category": "Microsoft.Usage", - "FixCategory": "Breaking" - } + "name": "ThreadFlowLocation", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.ThreadFlowLocation", + "parentIndex": 229, + "kind": "type" }, { - "ruleId": "CA1056", - "level": "error", - "message": { - "text": "Change the type of property 'StackFrameVersionOne.UriBaseId' from string to System.Uri." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/VersionOne/Autogenerated/StackFrameVersionOne.cs" - }, - "region": { - "startLine": 51, - "snippet": { - "text": " public string UriBaseId { get; set; }" - } - }, - "contextRegion": { - "startLine": 50, - "startColumn": 1, - "endLine": 52, - "endColumn": 1, - "charOffset": 1976, - "charLength": 135, - "snippet": { - "text": " [DataMember(Name = \"uriBaseId\", IsRequired = false, EmitDefaultValue = false)]\r\n public string UriBaseId { get; set; }\r\n" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.StackFrameVersionOne.UriBaseId" - } - ], - "properties": { - "Category": "Microsoft.Design", - "FixCategory": "Breaking" - } + "name": ".ctor(Microsoft.CodeAnalysis.Sarif.ThreadFlowLocation)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.ThreadFlowLocation..ctor(Microsoft.CodeAnalysis.Sarif.ThreadFlowLocation)", + "parentIndex": 454, + "kind": "member" }, { - "ruleId": "CA1502", - "level": "warning", - "message": { - "text": "'StackFrameVersionOneEqualityComparer.Equals(StackFrameVersionOne, StackFrameVersionOne)' has a cyclomatic complexity of 29. Rewrite or refactor the method to reduce complexity to 25." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/VersionOne/Autogenerated/StackFrameVersionOneEqualityComparer.cs" - }, - "region": { - "startLine": 20, - "snippet": { - "text": " {" - } - }, - "contextRegion": { - "startLine": 19, - "startColumn": 1, - "endLine": 21, - "endColumn": 46, - "charOffset": 791, - "charLength": 139, - "snippet": { - "text": " public bool Equals(StackFrameVersionOne left, StackFrameVersionOne right)\r\n {\r\n if (ReferenceEquals(left, right))" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.StackFrameVersionOneEqualityComparer.Equals(Microsoft.CodeAnalysis.Sarif.VersionOne.StackFrameVersionOne,Microsoft.CodeAnalysis.Sarif.VersionOne.StackFrameVersionOne)" - } - ], - "properties": { - "Category": "Microsoft.Maintainability", - "FixCategory": "NonBreaking" - } + "name": ".ctor(System.Int32,Microsoft.CodeAnalysis.Sarif.Location,Microsoft.CodeAnalysis.Sarif.Stack,System.String,System.String,System.Collections.Generic.IDictionary`2,System.Int32,System.Int32,System.DateTime,Microsoft.CodeAnalysis.Sarif.ThreadFlowLocationImportance,System.Collections.Generic.IDictionary`2)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.ThreadFlowLocation..ctor(System.Int32,Microsoft.CodeAnalysis.Sarif.Location,Microsoft.CodeAnalysis.Sarif.Stack,System.String,System.String,System.Collections.Generic.IDictionary`2,System.Int32,System.Int32,System.DateTime,Microsoft.CodeAnalysis.Sarif.ThreadFlowLocationImportance,System.Collections.Generic.IDictionary`2)", + "parentIndex": 454, + "kind": "member" }, { - "ruleId": "CA2214", - "level": "warning", - "message": { - "text": "'StackVersionOne.StackVersionOne(StackVersionOne)' contains a call chain that results in a call to a virtual method defined by the class. Review the following call stack for unintended consequences: \r\n\r\nStackVersionOne..ctor(StackVersionOne)\r\nStackVersionOne.Init(String, IEnumerable, IDictionary):Void\r\nPropertyBagHolder.set_Properties(IDictionary):Void" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/VersionOne/Autogenerated/StackVersionOne.cs" - }, - "region": { - "startLine": 86, - "snippet": { - "text": " public StackVersionOne(StackVersionOne other)" - } - }, - "contextRegion": { - "startLine": 85, - "startColumn": 1, - "endLine": 87, - "endColumn": 10, - "charOffset": 3543, - "charLength": 90, - "snippet": { - "text": " /// \r\n public StackVersionOne(StackVersionOne other)\r\n {" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.StackVersionOne..ctor(Microsoft.CodeAnalysis.Sarif.VersionOne.StackVersionOne)" - } - ], - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Usage", - "FixCategory": "NonBreaking" - } + "name": "State", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.ThreadFlowLocation.State", + "parentIndex": 454, + "kind": "member" }, { - "ruleId": "CA2214", - "level": "warning", - "message": { - "text": "'StackVersionOne.StackVersionOne(string, IEnumerable, IDictionary)' contains a call chain that results in a call to a virtual method defined by the class. Review the following call stack for unintended consequences: \r\n\r\nStackVersionOne..ctor(String, IEnumerable, IDictionary)\r\nStackVersionOne.Init(String, IEnumerable, IDictionary):Void\r\nPropertyBagHolder.set_Properties(IDictionary):Void" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/VersionOne/Autogenerated/StackVersionOne.cs" - }, - "region": { - "startLine": 72, - "snippet": { - "text": " public StackVersionOne(string message, IEnumerable frames, IDictionary properties)" - } - }, - "contextRegion": { - "startLine": 71, - "startColumn": 1, - "endLine": 73, - "endColumn": 10, - "charOffset": 2899, - "charLength": 177, - "snippet": { - "text": " /// \r\n public StackVersionOne(string message, IEnumerable frames, IDictionary properties)\r\n {" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.StackVersionOne..ctor(System.String,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IDictionary`2)" - } - ], - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Usage", - "FixCategory": "NonBreaking" - } + "name": "ThreadFlowLocationEqualityComparer", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.ThreadFlowLocationEqualityComparer", + "parentIndex": 229, + "kind": "type" }, { - "ruleId": "CA2227", - "level": "warning", - "message": { - "text": "Change 'StackVersionOne.Frames' to be read-only by removing the property setter." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/VersionOne/Autogenerated/StackVersionOne.cs" - }, - "region": { - "startLine": 45, - "snippet": { - "text": " public IList Frames { get; set; }" - } - }, - "contextRegion": { - "startLine": 44, - "startColumn": 1, - "endLine": 46, - "endColumn": 1, - "charOffset": 1712, - "charLength": 123, - "snippet": { - "text": " [DataMember(Name = \"frames\", IsRequired = true)]\r\n public IList Frames { get; set; }\r\n" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.StackVersionOne.Frames" - } - ], - "properties": { - "Category": "Microsoft.Usage", - "FixCategory": "Breaking" - } + "name": "Equals(Microsoft.CodeAnalysis.Sarif.ThreadFlowLocation,Microsoft.CodeAnalysis.Sarif.ThreadFlowLocation)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.ThreadFlowLocationEqualityComparer.Equals(Microsoft.CodeAnalysis.Sarif.ThreadFlowLocation,Microsoft.CodeAnalysis.Sarif.ThreadFlowLocation)", + "parentIndex": 458, + "kind": "member" }, { - "ruleId": "CA1714", - "level": "error", - "message": { - "text": "If enumeration name 'SuppressionStatesVersionOne' is singular, change it to a plural form." - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.SuppressionStatesVersionOne" - } - ], - "properties": { - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" - } + "name": "Tool", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Tool", + "parentIndex": 229, + "kind": "type" }, { - "ruleId": "CA1710", - "level": "error", - "message": { - "text": "Rename 'TagsCollectionVersionOne' to end in 'Collection'." - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.TagsCollectionVersionOne" - } - ], - "properties": { - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" - } + "name": ".ctor(Microsoft.CodeAnalysis.Sarif.Tool)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Tool..ctor(Microsoft.CodeAnalysis.Sarif.Tool)", + "parentIndex": 460, + "kind": "member" }, { - "ruleId": "CA2214", - "level": "warning", - "message": { - "text": "'ToolVersionOne.ToolVersionOne(ToolVersionOne)' contains a call chain that results in a call to a virtual method defined by the class. Review the following call stack for unintended consequences: \r\n\r\nToolVersionOne..ctor(ToolVersionOne)\r\nToolVersionOne.Init(String, String, String, String, String, String, String, IDictionary):Void\r\nPropertyBagHolder.set_Properties(IDictionary):Void" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/VersionOne/Autogenerated/ToolVersionOne.cs" - }, - "region": { - "startLine": 131, - "snippet": { - "text": " public ToolVersionOne(ToolVersionOne other)" - } - }, - "contextRegion": { - "startLine": 130, - "startColumn": 1, - "endLine": 132, - "endColumn": 10, - "charOffset": 5943, - "charLength": 88, - "snippet": { - "text": " /// \r\n public ToolVersionOne(ToolVersionOne other)\r\n {" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.ToolVersionOne..ctor(Microsoft.CodeAnalysis.Sarif.VersionOne.ToolVersionOne)" - } - ], - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Usage", - "FixCategory": "NonBreaking" - } + "name": ".ctor(System.String,System.String,System.String,System.String,System.String,System.Uri,System.String,System.String,System.Collections.Generic.IDictionary`2)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Tool..ctor(System.String,System.String,System.String,System.String,System.String,System.Uri,System.String,System.String,System.Collections.Generic.IDictionary`2)", + "parentIndex": 460, + "kind": "member" }, { - "ruleId": "CA2214", - "level": "warning", - "message": { - "text": "'ToolVersionOne.ToolVersionOne(string, string, string, string, string, string, string, IDictionary)' contains a call chain that results in a call to a virtual method defined by the class. Review the following call stack for unintended consequences: \r\n\r\nToolVersionOne..ctor(String, String, String, String, String, String, String, IDictionary)\r\nToolVersionOne.Init(String, String, String, String, String, String, String, IDictionary):Void\r\nPropertyBagHolder.set_Properties(IDictionary):Void" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/VersionOne/Autogenerated/ToolVersionOne.cs" - }, - "region": { - "startLine": 117, - "snippet": { - "text": " public ToolVersionOne(string name, string fullName, string version, string semanticVersion, string fileVersion, string sarifLoggerVersion, string language, IDictionary properties)" - } - }, - "contextRegion": { - "startLine": 116, - "startColumn": 1, - "endLine": 118, - "endColumn": 10, - "charOffset": 5157, - "charLength": 252, - "snippet": { - "text": " /// \r\n public ToolVersionOne(string name, string fullName, string version, string semanticVersion, string fileVersion, string sarifLoggerVersion, string language, IDictionary properties)\r\n {" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.ToolVersionOne..ctor(System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.Collections.Generic.IDictionary`2)" - } - ], - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Usage", - "FixCategory": "NonBreaking" - } + "name": "CreateFromAssemblyData(System.String)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Tool.CreateFromAssemblyData(System.String)", + "parentIndex": 460, + "kind": "member" }, { - "ruleId": "CA1704", - "level": "warning", - "message": { - "text": "In method 'ToolVersionOne.ToolVersionOne(string, string, string, string, string, string, string, IDictionary)', correct the spelling of 'sarif' in parameter name 'sarifLoggerVersion' or remove it entirely if it represents any sort of Hungarian notation.", - "messageId": "MemberParameter" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/VersionOne/Autogenerated/ToolVersionOne.cs" - }, - "region": { - "startLine": 117, - "snippet": { - "text": " public ToolVersionOne(string name, string fullName, string version, string semanticVersion, string fileVersion, string sarifLoggerVersion, string language, IDictionary properties)" - } - }, - "contextRegion": { - "startLine": 116, - "startColumn": 1, - "endLine": 118, - "endColumn": 10, - "charOffset": 5157, - "charLength": 252, - "snippet": { - "text": " /// \r\n public ToolVersionOne(string name, string fullName, string version, string semanticVersion, string fileVersion, string sarifLoggerVersion, string language, IDictionary properties)\r\n {" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.ToolVersionOne..ctor(System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.Collections.Generic.IDictionary`2)" - } - ], - "partialFingerprints": { - "UniqueId": "sarif#MemberParameter" - }, - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" - } + "name": "SarifLoggerVersion", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Tool.SarifLoggerVersion", + "parentIndex": 460, + "kind": "member" }, { - "ruleId": "CA1704", - "level": "warning", - "message": { - "text": "Correct the spelling of 'Sarif' in member name 'ToolVersionOne.SarifLoggerVersion' or remove it entirely if it represents any sort of Hungarian notation.", - "messageId": "Member" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/VersionOne/Autogenerated/ToolVersionOne.cs" - }, - "region": { - "startLine": 69, - "snippet": { - "text": " public string SarifLoggerVersion { get; set; }" - } - }, - "contextRegion": { - "startLine": 68, - "startColumn": 1, - "endLine": 70, - "endColumn": 1, - "charOffset": 2818, - "charLength": 153, - "snippet": { - "text": " [DataMember(Name = \"sarifLoggerVersion\", IsRequired = false, EmitDefaultValue = false)]\r\n public string SarifLoggerVersion { get; set; }\r\n" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.ToolVersionOne.SarifLoggerVersion" - } - ], - "partialFingerprints": { - "UniqueId": "Sarif#Member" - }, - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" - } + "name": "TypedPropertiesDictionary`1", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.TypedPropertiesDictionary`1", + "parentIndex": 229, + "kind": "type" }, { - "ruleId": "CA1307", - "level": "error", - "message": { - "text": "Because the behavior of 'string.StartsWith(string)' could vary based on the current user's locale settings, replace this call in 'AbsoluteUrisVisitor.CombineUris(Uri, Uri)' with a call to 'string.StartsWith(string, StringComparison)'. If the result of 'string.StartsWith(string, StringComparison)' will be displayed to the user, such as when sorting a list of items for display in a list box, specify 'StringComparison.CurrentCulture' or 'StringComparison.CurrentCultureIgnoreCase' as the 'StringComparison' parameter. If comparing case-insensitive identifiers, such as file paths, environment variables, or registry keys and values, specify 'StringComparison.OrdinalIgnoreCase'. Otherwise, if comparing case-sensitive identifiers, specify 'StringComparison.Ordinal'." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Visitors/AbsoluteUrisVisitor.cs" - }, - "region": { - "startLine": 103, - "snippet": { - "text": " if(relativeUri.OriginalString.StartsWith(\"/\"))" - } - }, - "contextRegion": { - "startLine": 102, - "startColumn": 1, - "endLine": 104, - "endColumn": 14, - "charOffset": 4251, - "charLength": 118, - "snippet": { - "text": " Uri relativePart = relativeUri;\r\n if(relativeUri.OriginalString.StartsWith(\"/\"))\r\n {" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.AbsoluteUrisVisitor.CombineUris(System.Uri,System.Uri)" - } - ], - "partialFingerprints": { - "UniqueId": "System.String.StartsWith(System.String)" - }, - "properties": { - "Category": "Microsoft.Globalization", - "FixCategory": "NonBreaking" - } + "name": "SettingNameToDescriptionsMap", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.TypedPropertiesDictionary`1.SettingNameToDescriptionsMap", + "parentIndex": 465, + "kind": "member" }, { - "ruleId": "CA2204", - "level": "warning", - "message": { - "text": "Correct the spelling of the unrecognized token 'originalUriBaseIds' in the literal '\"originalUriBaseIds\"'." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Visitors/AbsoluteUrisVisitor.cs" - }, - "region": { - "startLine": 47, - "snippet": { - "text": " throw new InvalidOperationException($\"Base URI Dictionary incorrectly formatted, we expect a string->uri dictionary in the Run Properties with name {RebaseUriVisitor.BaseUriDictionaryName}\");" - } - }, - "contextRegion": { - "startLine": 46, - "startColumn": 1, - "endLine": 48, - "endColumn": 18, - "charOffset": 1910, - "charLength": 249, - "snippet": { - "text": " {\r\n throw new InvalidOperationException($\"Base URI Dictionary incorrectly formatted, we expect a string->uri dictionary in the Run Properties with name {RebaseUriVisitor.BaseUriDictionaryName}\");\r\n }" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.AbsoluteUrisVisitor.VisitRun(Microsoft.CodeAnalysis.Sarif.Run)" - } - ], - "partialFingerprints": { - "UniqueId": "originalUriBaseIds" - }, - "properties": { - "Category": "Microsoft.Naming", - "FixCategory": "DependsOnFix" - } + "name": "TypedPropertiesDictionaryConverter", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.TypedPropertiesDictionaryConverter", + "parentIndex": 229, + "kind": "type" }, { - "ruleId": "CA1305", - "level": "error", - "message": { - "text": "Because the behavior of 'string.Format(string, object)' could vary based on the current user's locale settings, replace this call in 'AbsoluteUrisVisitor.VisitRun(Run)' with a call to 'string.Format(IFormatProvider, string, params object[])'. If the result of 'string.Format(IFormatProvider, string, params object[])' will be displayed to the user, specify 'CultureInfo.CurrentCulture' as the 'IFormatProvider' parameter. Otherwise, if the result will be stored and accessed by software, such as when it is persisted to disk or to a database, specify 'CultureInfo.InvariantCulture'.", - "messageId": "IFormatProviderAlternateString" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Visitors/AbsoluteUrisVisitor.cs" - }, - "region": { - "startLine": 47, - "snippet": { - "text": " throw new InvalidOperationException($\"Base URI Dictionary incorrectly formatted, we expect a string->uri dictionary in the Run Properties with name {RebaseUriVisitor.BaseUriDictionaryName}\");" - } - }, - "contextRegion": { - "startLine": 46, - "startColumn": 1, - "endLine": 48, - "endColumn": 18, - "charOffset": 1910, - "charLength": 249, - "snippet": { - "text": " {\r\n throw new InvalidOperationException($\"Base URI Dictionary incorrectly formatted, we expect a string->uri dictionary in the Run Properties with name {RebaseUriVisitor.BaseUriDictionaryName}\");\r\n }" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.AbsoluteUrisVisitor.VisitRun(Microsoft.CodeAnalysis.Sarif.Run)" - } - ], - "partialFingerprints": { - "UniqueId": "System.String.Format(System.String,System.Object)#IFormatProviderAlternateString" - }, - "properties": { - "Category": "Microsoft.Globalization", - "FixCategory": "NonBreaking" - } + "name": "ReadJson(Newtonsoft.Json.JsonReader,System.Type,System.Object,Newtonsoft.Json.JsonSerializer)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.TypedPropertiesDictionaryConverter.ReadJson(Newtonsoft.Json.JsonReader,System.Type,System.Object,Newtonsoft.Json.JsonSerializer)", + "parentIndex": 467, + "kind": "member" }, { - "ruleId": "CA1062", - "level": "warning", - "message": { - "text": "In externally visible method 'AbsoluteUrisVisitor.VisitRun(Run)', validate parameter 'node' before using it." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Visitors/AbsoluteUrisVisitor.cs" - }, - "region": { - "startLine": 42, - "snippet": { - "text": " if (node.Properties != null && node.Properties.ContainsKey(RebaseUriVisitor.BaseUriDictionaryName))" - } - }, - "contextRegion": { - "startLine": 41, - "startColumn": 1, - "endLine": 43, - "endColumn": 14, - "charOffset": 1473, - "charLength": 193, - "snippet": { - "text": " // Try to get the uri mappings dictionary out of the \r\n if (node.Properties != null && node.Properties.ContainsKey(RebaseUriVisitor.BaseUriDictionaryName))\r\n {" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.AbsoluteUrisVisitor.VisitRun(Microsoft.CodeAnalysis.Sarif.Run)" - } - ], - "partialFingerprints": { - "UniqueId": "0" - }, - "properties": { - "Category": "Microsoft.Design", - "FixCategory": "DependsOnFix" - } - }, - { - "ruleId": "CA1062", - "level": "warning", - "message": { - "text": "In externally visible method 'AddFileReferencesVisitor.VisitPhysicalLocation(PhysicalLocation)', validate parameter 'node' before using it." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Visitors/AddFileReferencesVisitor.cs" - }, - "region": { - "startLine": 35, - "snippet": { - "text": " FileLocation fileLocation = node.FileLocation;" - } - }, - "contextRegion": { - "startLine": 34, - "startColumn": 1, - "endLine": 36, - "endColumn": 1, - "charOffset": 1389, - "charLength": 62, - "snippet": { - "text": "\r\n FileLocation fileLocation = node.FileLocation;\r\n" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.AddFileReferencesVisitor.VisitPhysicalLocation(Microsoft.CodeAnalysis.Sarif.PhysicalLocation)" - } - ], - "partialFingerprints": { - "UniqueId": "0" - }, - "properties": { - "Category": "Microsoft.Design", - "FixCategory": "DependsOnFix" - } + "name": "WriteJson(Newtonsoft.Json.JsonWriter,System.Object,Newtonsoft.Json.JsonSerializer)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.TypedPropertiesDictionaryConverter.WriteJson(Newtonsoft.Json.JsonWriter,System.Object,Newtonsoft.Json.JsonSerializer)", + "parentIndex": 467, + "kind": "member" }, { - "ruleId": "CA1062", - "level": "warning", - "message": { - "text": "In externally visible method 'AddFileReferencesVisitor.VisitRun(Run)', validate parameter 'node' before using it." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Visitors/AddFileReferencesVisitor.cs" - }, - "region": { - "startLine": 14, - "snippet": { - "text": " _files = node.Files;" - } - }, - "contextRegion": { - "startLine": 13, - "startColumn": 1, - "endLine": 15, - "endColumn": 1, - "charOffset": 441, - "charLength": 45, - "snippet": { - "text": " {\r\n _files = node.Files;\r\n" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.AddFileReferencesVisitor.VisitRun(Microsoft.CodeAnalysis.Sarif.Run)" - } - ], - "partialFingerprints": { - "UniqueId": "0" - }, - "properties": { - "Category": "Microsoft.Design", - "FixCategory": "DependsOnFix" - } + "name": "TypedPropertiesDictionaryConverter+<>c", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.TypedPropertiesDictionaryConverter+<>c", + "parentIndex": 229, + "kind": "type" }, { - "ruleId": "CA1504", - "level": "warning", - "message": { - "text": "The field name 'InsertOptionalDataVisitor.s_fileSystem' suggests that it is static (Shared in Visual Basic) data but it is declared as an instance member. Review this member to verify that it should be instance, or consider changing the field name.", - "messageId": "Instance" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.InsertOptionalDataVisitor.s_fileSystem" - } - ], - "partialFingerprints": { - "UniqueId": "Instance" - }, - "properties": { - "Category": "Microsoft.Maintainability", - "FixCategory": "NonBreaking" - } + "name": "b__3_1(Newtonsoft.Json.Linq.JToken)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.TypedPropertiesDictionaryConverter+<>c.b__3_1(Newtonsoft.Json.Linq.JToken)", + "parentIndex": 470, + "kind": "member" }, { - "ruleId": "CA1062", - "level": "warning", - "message": { - "text": "In externally visible method 'InsertOptionalDataVisitor.VisitMessage(Message)', validate parameter 'node' before using it." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Visitors/InsertOptionalDataVisitor.cs" - }, - "region": { - "startLine": 164, - "snippet": { - "text": " if ((node.Text == null || _dataToInsert.Includes(OptionallyEmittedData.OverwriteExistingData)) &&" - } - }, - "contextRegion": { - "startLine": 163, - "startColumn": 1, - "endLine": 165, - "endColumn": 81, - "charOffset": 6397, - "charLength": 202, - "snippet": { - "text": " {\r\n if ((node.Text == null || _dataToInsert.Includes(OptionallyEmittedData.OverwriteExistingData)) &&\r\n _dataToInsert.Includes(OptionallyEmittedData.FlattenedMessages))" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.InsertOptionalDataVisitor.VisitMessage(Microsoft.CodeAnalysis.Sarif.Message)" - } - ], - "partialFingerprints": { - "UniqueId": "0" - }, - "properties": { - "Category": "Microsoft.Design", - "FixCategory": "DependsOnFix" - } + "name": "UriHelper", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.UriHelper", + "parentIndex": 229, + "kind": "type" }, { - "ruleId": "CA1062", - "level": "warning", - "message": { - "text": "In externally visible method 'InsertOptionalDataVisitor.VisitPhysicalLocation(PhysicalLocation)', validate parameter 'node' before using it." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Visitors/InsertOptionalDataVisitor.cs" - }, - "region": { - "startLine": 64, - "snippet": { - "text": " if (node.Region == null || node.Region.IsBinaryRegion)" - } - }, - "contextRegion": { - "startLine": 63, - "startColumn": 1, - "endLine": 65, - "endColumn": 14, - "charOffset": 2277, - "charLength": 92, - "snippet": { - "text": " {\r\n if (node.Region == null || node.Region.IsBinaryRegion)\r\n {" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.InsertOptionalDataVisitor.VisitPhysicalLocation(Microsoft.CodeAnalysis.Sarif.PhysicalLocation)" - } - ], - "partialFingerprints": { - "UniqueId": "0" - }, - "properties": { - "Category": "Microsoft.Design", - "FixCategory": "DependsOnFix" - } + "name": "MakeValidUri(System.String)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.UriHelper.MakeValidUri(System.String)", + "parentIndex": 472, + "kind": "member" }, { - "ruleId": "CA1062", - "level": "warning", - "message": { - "text": "In externally visible method 'InsertOptionalDataVisitor.VisitResult(Result)', validate parameter 'node' before using it." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Visitors/InsertOptionalDataVisitor.cs" - }, - "region": { - "startLine": 155, - "snippet": { - "text": " _ruleId = node.RuleId;" - } - }, - "contextRegion": { - "startLine": 154, - "startColumn": 1, - "endLine": 156, - "endColumn": 43, - "charOffset": 6176, - "charLength": 89, - "snippet": { - "text": " {\r\n _ruleId = node.RuleId;\r\n node = base.VisitResult(node);" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.InsertOptionalDataVisitor.VisitResult(Microsoft.CodeAnalysis.Sarif.Result)" - } - ], - "partialFingerprints": { - "UniqueId": "0" - }, - "properties": { - "Category": "Microsoft.Design", - "FixCategory": "DependsOnFix" - } + "name": "VersionControlDetails", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionControlDetails", + "parentIndex": 229, + "kind": "type" }, { - "ruleId": "CA1062", - "level": "warning", - "message": { - "text": "In externally visible method 'RebaseUriVisitor.RebaseUriVisitor(string, bool, Uri)', validate parameter 'baseUri' before using it." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Visitors/RebaseUriVisitor.cs" - }, - "region": { - "startLine": 59, - "snippet": { - "text": " Debug.Assert(_baseUri.IsAbsoluteUri);" - } - }, - "contextRegion": { - "startLine": 58, - "startColumn": 1, - "endLine": 60, - "endColumn": 1, - "charOffset": 2159, - "charLength": 86, - "snippet": { - "text": " _baseName = baseName;\r\n Debug.Assert(_baseUri.IsAbsoluteUri);\r\n" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.RebaseUriVisitor..ctor(System.String,System.Boolean,System.Uri)" - } - ], - "partialFingerprints": { - "UniqueId": "2" - }, - "properties": { - "Category": "Microsoft.Design", - "FixCategory": "DependsOnFix" - } + "name": ".ctor(Microsoft.CodeAnalysis.Sarif.VersionControlDetails)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionControlDetails..ctor(Microsoft.CodeAnalysis.Sarif.VersionControlDetails)", + "parentIndex": 474, + "kind": "member" }, { - "ruleId": "CA1062", - "level": "warning", - "message": { - "text": "In externally visible method 'RebaseUriVisitor.RebaseUriVisitor(string, Uri)', validate parameter 'baseUri' before using it." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Visitors/RebaseUriVisitor.cs" - }, - "region": { - "startLine": 49, - "snippet": { - "text": " Debug.Assert(_baseUri.IsAbsoluteUri);" - } - }, - "contextRegion": { - "startLine": 48, - "startColumn": 1, - "endLine": 50, - "endColumn": 10, - "charOffset": 1769, - "charLength": 102, - "snippet": { - "text": " _rebaseRelativeUris = false;\r\n Debug.Assert(_baseUri.IsAbsoluteUri);\r\n }" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.RebaseUriVisitor..ctor(System.String,System.Uri)" - } - ], - "partialFingerprints": { - "UniqueId": "1" - }, - "properties": { - "Category": "Microsoft.Design", - "FixCategory": "DependsOnFix" - } + "name": ".ctor(System.Uri,System.String,System.String,System.String,System.DateTime,System.Collections.Generic.IDictionary`2)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionControlDetails..ctor(System.Uri,System.String,System.String,System.String,System.DateTime,System.Collections.Generic.IDictionary`2)", + "parentIndex": 474, + "kind": "member" }, { - "ruleId": "CA1062", - "level": "warning", - "message": { - "text": "In externally visible method 'RebaseUriVisitor.VisitPhysicalLocation(PhysicalLocation)', validate parameter 'node' before using it." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Visitors/RebaseUriVisitor.cs" - }, - "region": { - "startLine": 73, - "snippet": { - "text": " newNode.FileLocation.Uri = _baseUri.MakeRelativeUri(node.FileLocation.Uri);" - } - }, - "contextRegion": { - "startLine": 72, - "startColumn": 1, - "endLine": 74, - "endColumn": 52, - "charOffset": 2715, - "charLength": 213, - "snippet": { - "text": " newNode.FileLocation.UriBaseId = _baseName;\r\n newNode.FileLocation.Uri = _baseUri.MakeRelativeUri(node.FileLocation.Uri);\r\n RebaseFilesDictionary(newNode);" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.RebaseUriVisitor.VisitPhysicalLocation(Microsoft.CodeAnalysis.Sarif.PhysicalLocation)" - } - ], - "partialFingerprints": { - "UniqueId": "0" - }, - "properties": { - "Category": "Microsoft.Design", - "FixCategory": "DependsOnFix" - } + "name": "Warnings", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Warnings", + "parentIndex": 229, + "kind": "type" }, { - "ruleId": "CA1062", - "level": "warning", - "message": { - "text": "In externally visible method 'RebaseUriVisitor.VisitRun(Run)', validate parameter 'node' before using it." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Visitors/RebaseUriVisitor.cs" - }, - "region": { - "startLine": 88, - "snippet": { - "text": " _files = node.Files;" - } - }, - "contextRegion": { - "startLine": 87, - "startColumn": 1, - "endLine": 89, - "endColumn": 1, - "charOffset": 3302, - "charLength": 45, - "snippet": { - "text": " {\r\n _files = node.Files;\r\n" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.RebaseUriVisitor.VisitRun(Microsoft.CodeAnalysis.Sarif.Run)" - } - ], - "partialFingerprints": { - "UniqueId": "0" - }, - "properties": { - "Category": "Microsoft.Design", - "FixCategory": "DependsOnFix" - } + "name": "Wrn997_InvalidTarget", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Warnings.Wrn997_InvalidTarget", + "parentIndex": 477, + "kind": "member" }, { - "ruleId": "CA1506", - "level": "warning", - "message": { - "text": "'SarifCurrentToVersionOneVisitor' is coupled with 86 different types from 12 different namespaces. Rewrite or refactor this class's methods to decrease its class coupling, or consider moving some of the class's methods to some of the other types it is tightly coupled with. A class coupling above 95 indicates poor maintainability, a class coupling between 95 and 80 indicates moderate maintainability, and a class coupling below 80 indicates good maintainability.", - "messageId": "Type" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifCurrentToVersionOneVisitor" - } - ], - "partialFingerprints": { - "UniqueId": "Type" - }, - "properties": { - "Category": "Microsoft.Maintainability", - "FixCategory": "Breaking" - } + "name": "Wrn998_UnsupportedPlatform", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Warnings.Wrn998_UnsupportedPlatform", + "parentIndex": 477, + "kind": "member" }, { - "ruleId": "CA1704", - "level": "warning", - "message": { - "text": "Correct the spelling of 'Sarif' in type name 'SarifCurrentToVersionOneVisitor'.", - "messageId": "Type" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifCurrentToVersionOneVisitor" - } - ], - "partialFingerprints": { - "UniqueId": "Sarif#Type" - }, - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" - } + "name": "Wrn999_RuleExplicitlyDisabled", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Warnings.Wrn999_RuleExplicitlyDisabled", + "parentIndex": 477, + "kind": "member" }, { - "ruleId": "CA2200", - "level": "error", - "message": { - "text": "'SarifCurrentToVersionOneVisitor.CreateFileChange(FileChange)' rethrows a caught exception and specifies it explicitly as an argument. Use 'throw' without an argument instead, in order to preserve the stack location where the exception was initially raised." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Visitors/SarifCurrentToVersionOneVisitor.cs" - }, - "region": { - "startLine": 135, - "snippet": { - "text": " catch (UnknownEncodingException ex)" - } - }, - "contextRegion": { - "startLine": 134, - "startColumn": 1, - "endLine": 136, - "endColumn": 18, - "charOffset": 5501, - "charLength": 89, - "snippet": { - "text": " }\r\n catch (UnknownEncodingException ex)\r\n {" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifCurrentToVersionOneVisitor.CreateFileChange(Microsoft.CodeAnalysis.Sarif.FileChange)" - } - ], - "properties": { - "Category": "Microsoft.Usage", - "FixCategory": "NonBreaking" - } + "name": "Microsoft.CodeAnalysis.Sarif.Baseline", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Baseline", + "parentIndex": 228, + "kind": "namespace" }, { - "ruleId": "CA1822", - "level": "warning", - "message": { - "text": "The 'this' parameter (or 'Me' in Visual Basic) of 'SarifCurrentToVersionOneVisitor.CreateLogicalLocation(LogicalLocation)' is never used. Mark the member as static (or Shared in Visual Basic) or use 'this'/'Me' in the method body or at least one property accessor, if appropriate." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Visitors/SarifCurrentToVersionOneVisitor.cs" - }, - "region": { - "startLine": 322, - "snippet": { - "text": " {" - } - }, - "contextRegion": { - "startLine": 321, - "startColumn": 1, - "endLine": 323, - "endColumn": 62, - "charOffset": 12439, - "charLength": 173, - "snippet": { - "text": " internal LogicalLocationVersionOne CreateLogicalLocation(LogicalLocation v2LogicalLocation)\r\n {\r\n LogicalLocationVersionOne logicalLocation = null;" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifCurrentToVersionOneVisitor.CreateLogicalLocation(Microsoft.CodeAnalysis.Sarif.LogicalLocation)" - } - ], - "properties": { - "Category": "Microsoft.Performance", - "FixCategory": "NonBreaking" - } + "name": "ISarifLogBaseliner", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Baseline.ISarifLogBaseliner", + "parentIndex": 481, + "kind": "type" }, { - "ruleId": "CA1822", - "level": "warning", - "message": { - "text": "The 'this' parameter (or 'Me' in Visual Basic) of 'SarifCurrentToVersionOneVisitor.CreatePhysicalLocation(FileLocation)' is never used. Mark the member as static (or Shared in Visual Basic) or use 'this'/'Me' in the method body or at least one property accessor, if appropriate." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Visitors/SarifCurrentToVersionOneVisitor.cs" - }, - "region": { - "startLine": 379, - "snippet": { - "text": " {" - } - }, - "contextRegion": { - "startLine": 378, - "startColumn": 1, - "endLine": 380, - "endColumn": 64, - "charOffset": 14653, - "charLength": 171, - "snippet": { - "text": " internal PhysicalLocationVersionOne CreatePhysicalLocation(FileLocation v2FileLocation)\r\n {\r\n PhysicalLocationVersionOne physicalLocation = null;" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifCurrentToVersionOneVisitor.CreatePhysicalLocation(Microsoft.CodeAnalysis.Sarif.FileLocation)" - } - ], - "properties": { - "Category": "Microsoft.Performance", - "FixCategory": "NonBreaking" - } + "name": "CreateBaselinedRun(Microsoft.CodeAnalysis.Sarif.Run,Microsoft.CodeAnalysis.Sarif.Run)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Baseline.ISarifLogBaseliner.CreateBaselinedRun(Microsoft.CodeAnalysis.Sarif.Run,Microsoft.CodeAnalysis.Sarif.Run)", + "parentIndex": 482, + "kind": "member" }, { - "ruleId": "CA1822", - "level": "warning", - "message": { - "text": "The 'this' parameter (or 'Me' in Visual Basic) of 'SarifCurrentToVersionOneVisitor.CreateReplacement(Replacement, Encoding)' is never used. Mark the member as static (or Shared in Visual Basic) or use 'this'/'Me' in the method body or at least one property accessor, if appropriate." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Visitors/SarifCurrentToVersionOneVisitor.cs" - }, - "region": { - "startLine": 680, - "snippet": { - "text": " {" - } - }, - "contextRegion": { - "startLine": 679, - "startColumn": 1, - "endLine": 681, - "endColumn": 54, - "charOffset": 26899, - "charLength": 168, - "snippet": { - "text": " internal ReplacementVersionOne CreateReplacement(Replacement v2Replacement, Encoding encoding)\r\n {\r\n ReplacementVersionOne replacement = null;" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifCurrentToVersionOneVisitor.CreateReplacement(Microsoft.CodeAnalysis.Sarif.Replacement,System.Text.Encoding)" - } - ], - "properties": { - "Category": "Microsoft.Performance", - "FixCategory": "NonBreaking" - } + "name": "SarifBaselineType", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Baseline.SarifBaselineType", + "parentIndex": 481, + "kind": "type" }, { - "ruleId": "CA1506", - "level": "warning", - "message": { - "text": "'SarifCurrentToVersionOneVisitor.CreateResult(Result)' is coupled with 31 different types from 8 different namespaces. Rewrite or refactor the method to decrease its class coupling, or consider moving the method to one of the other types it is tightly coupled with. A class coupling above 40 indicates poor maintainability, a class coupling between 40 and 30 indicates moderate maintainability, and a class coupling below 30 indicates good maintainability.", - "messageId": "Method" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Visitors/SarifCurrentToVersionOneVisitor.cs" - }, - "region": { - "startLine": 742, - "snippet": { - "text": " {" - } - }, - "contextRegion": { - "startLine": 741, - "startColumn": 1, - "endLine": 743, - "endColumn": 44, - "charOffset": 29278, - "charLength": 119, - "snippet": { - "text": " internal ResultVersionOne CreateResult(Result v2Result)\r\n {\r\n ResultVersionOne result = null;" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifCurrentToVersionOneVisitor.CreateResult(Microsoft.CodeAnalysis.Sarif.Result)" - } - ], - "partialFingerprints": { - "UniqueId": "Method" - }, - "properties": { - "Category": "Microsoft.Maintainability", - "FixCategory": "Breaking" - } + "name": "SarifLogBaseliner", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Baseline.SarifLogBaseliner", + "parentIndex": 481, + "kind": "type" }, { - "ruleId": "CA1502", - "level": "warning", - "message": { - "text": "'SarifCurrentToVersionOneVisitor.CreateResult(Result)' has a cyclomatic complexity of 26. Rewrite or refactor the method to reduce complexity to 25." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Visitors/SarifCurrentToVersionOneVisitor.cs" - }, - "region": { - "startLine": 742, - "snippet": { - "text": " {" - } - }, - "contextRegion": { - "startLine": 741, - "startColumn": 1, - "endLine": 743, - "endColumn": 44, - "charOffset": 29278, - "charLength": 119, - "snippet": { - "text": " internal ResultVersionOne CreateResult(Result v2Result)\r\n {\r\n ResultVersionOne result = null;" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifCurrentToVersionOneVisitor.CreateResult(Microsoft.CodeAnalysis.Sarif.Result)" - } - ], - "properties": { - "Category": "Microsoft.Maintainability", - "FixCategory": "NonBreaking" - } + "name": "CreateBaselinedRun(Microsoft.CodeAnalysis.Sarif.Run,Microsoft.CodeAnalysis.Sarif.Run)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Baseline.SarifLogBaseliner.CreateBaselinedRun(Microsoft.CodeAnalysis.Sarif.Run,Microsoft.CodeAnalysis.Sarif.Run)", + "parentIndex": 485, + "kind": "member" }, { - "ruleId": "CA1822", - "level": "warning", - "message": { - "text": "The 'this' parameter (or 'Me' in Visual Basic) of 'SarifCurrentToVersionOneVisitor.CreateRule(Rule)' is never used. Mark the member as static (or Shared in Visual Basic) or use 'this'/'Me' in the method body or at least one property accessor, if appropriate." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Visitors/SarifCurrentToVersionOneVisitor.cs" - }, - "region": { - "startLine": 817, - "snippet": { - "text": " {" - } - }, - "contextRegion": { - "startLine": 816, - "startColumn": 1, - "endLine": 818, - "endColumn": 40, - "charOffset": 32394, - "charLength": 107, - "snippet": { - "text": " internal RuleVersionOne CreateRule(Rule v2Rule)\r\n {\r\n RuleVersionOne rule = null;" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifCurrentToVersionOneVisitor.CreateRule(Microsoft.CodeAnalysis.Sarif.Rule)" - } - ], - "properties": { - "Category": "Microsoft.Performance", - "FixCategory": "NonBreaking" - } + "name": "SarifLogBaselinerFactory", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Baseline.SarifLogBaselinerFactory", + "parentIndex": 481, + "kind": "type" }, { - "ruleId": "CA1305", - "level": "error", - "message": { - "text": "Because the behavior of 'string.Format(string, object)' could vary based on the current user's locale settings, replace this call in 'SarifCurrentToVersionOneVisitor.CreateRun(Run)' with a call to 'string.Format(IFormatProvider, string, params object[])'. If the result of 'string.Format(IFormatProvider, string, params object[])' will be displayed to the user, specify 'CultureInfo.CurrentCulture' as the 'IFormatProvider' parameter. Otherwise, if the result will be stored and accessed by software, such as when it is persisted to disk or to a database, specify 'CultureInfo.InvariantCulture'.", - "messageId": "IFormatProviderAlternateString" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Visitors/SarifCurrentToVersionOneVisitor.cs" - }, - "region": { - "startLine": 883, - "snippet": { - "text": " run.SetProperty($\"{FromPropertyBagPrefix}/run\", v2Run);" - } - }, - "contextRegion": { - "startLine": 882, - "startColumn": 1, - "endLine": 884, - "endColumn": 18, - "charOffset": 35194, - "charLength": 172, - "snippet": { - "text": " // Stash the entire v2 run in this v1 run's property bag\r\n run.SetProperty($\"{FromPropertyBagPrefix}/run\", v2Run);\r\n }" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifCurrentToVersionOneVisitor.CreateRun(Microsoft.CodeAnalysis.Sarif.Run)" - } - ], - "partialFingerprints": { - "UniqueId": "System.String.Format(System.String,System.Object)#IFormatProviderAlternateString" - }, - "properties": { - "Category": "Microsoft.Globalization", - "FixCategory": "NonBreaking" - } + "name": "CreateSarifLogBaseliner(Microsoft.CodeAnalysis.Sarif.Baseline.SarifBaselineType)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Baseline.SarifLogBaselinerFactory.CreateSarifLogBaseliner(Microsoft.CodeAnalysis.Sarif.Baseline.SarifBaselineType)", + "parentIndex": 487, + "kind": "member" }, { - "ruleId": "CA1822", - "level": "warning", - "message": { - "text": "The 'this' parameter (or 'Me' in Visual Basic) of 'SarifCurrentToVersionOneVisitor.CreateTool(Tool)' is never used. Mark the member as static (or Shared in Visual Basic) or use 'this'/'Me' in the method body or at least one property accessor, if appropriate." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Visitors/SarifCurrentToVersionOneVisitor.cs" - }, - "region": { - "startLine": 957, - "snippet": { - "text": " {" - } - }, - "contextRegion": { - "startLine": 956, - "startColumn": 1, - "endLine": 958, - "endColumn": 40, - "charOffset": 38031, - "charLength": 107, - "snippet": { - "text": " internal ToolVersionOne CreateTool(Tool v2Tool)\r\n {\r\n ToolVersionOne tool = null;" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifCurrentToVersionOneVisitor.CreateTool(Microsoft.CodeAnalysis.Sarif.Tool)" - } - ], - "properties": { - "Category": "Microsoft.Performance", - "FixCategory": "NonBreaking" - } + "name": "Microsoft.CodeAnalysis.Sarif.Baseline.DefaultBaseline", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Baseline.DefaultBaseline", + "parentIndex": 228, + "kind": "namespace" }, { - "ruleId": "CA1305", - "level": "error", - "message": { - "text": "Because the behavior of 'string.Format(string, object)' could vary based on the current user's locale settings, replace this call in 'SarifCurrentToVersionOneVisitor.GetContentStream(Uri, out Encoding)' with a call to 'string.Format(IFormatProvider, string, params object[])'. If the result of 'string.Format(IFormatProvider, string, params object[])' will be displayed to the user, specify 'CultureInfo.CurrentCulture' as the 'IFormatProvider' parameter. Otherwise, if the result will be stored and accessed by software, such as when it is persisted to disk or to a database, specify 'CultureInfo.InvariantCulture'.", - "messageId": "IFormatProviderAlternateString" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Visitors/SarifCurrentToVersionOneVisitor.cs" - }, - "region": { - "startLine": 647, - "snippet": { - "text": " failureReason = $\"Encoding for file '{uri.OriginalString}' could not be determined\";" - } - }, - "contextRegion": { - "startLine": 646, - "startColumn": 1, - "endLine": 648, - "endColumn": 22, - "charOffset": 25801, - "charLength": 154, - "snippet": { - "text": " {\r\n failureReason = $\"Encoding for file '{uri.OriginalString}' could not be determined\";\r\n }" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifCurrentToVersionOneVisitor.GetContentStream(System.Uri,System.Text.Encoding&)" - } - ], - "partialFingerprints": { - "UniqueId": "System.String.Format(System.String,System.Object)#IFormatProviderAlternateString" - }, - "properties": { - "Category": "Microsoft.Globalization", - "FixCategory": "NonBreaking" - } + "name": "CodeFlowBaselineEqualityComparator", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Baseline.DefaultBaseline.CodeFlowBaselineEqualityComparator", + "parentIndex": 489, + "kind": "type" }, { - "ruleId": "CA1305", - "level": "error", - "message": { - "text": "Because the behavior of 'string.Format(string, object)' could vary based on the current user's locale settings, replace this call in 'SarifCurrentToVersionOneVisitor.GetContentStream(Uri, out Encoding)' with a call to 'string.Format(IFormatProvider, string, params object[])'. If the result of 'string.Format(IFormatProvider, string, params object[])' will be displayed to the user, specify 'CultureInfo.CurrentCulture' as the 'IFormatProvider' parameter. Otherwise, if the result will be stored and accessed by software, such as when it is persisted to disk or to a database, specify 'CultureInfo.InvariantCulture'.", - "messageId": "IFormatProviderAlternateString" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Visitors/SarifCurrentToVersionOneVisitor.cs" - }, - "region": { - "startLine": 654, - "snippet": { - "text": " failureReason = $\"File '{uri.LocalPath}' could not be opened\";" - } - }, - "contextRegion": { - "startLine": 653, - "startColumn": 1, - "endLine": 655, - "endColumn": 14, - "charOffset": 26051, - "charLength": 108, - "snippet": { - "text": " {\r\n failureReason = $\"File '{uri.LocalPath}' could not be opened\";\r\n }" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifCurrentToVersionOneVisitor.GetContentStream(System.Uri,System.Text.Encoding&)" - } - ], - "partialFingerprints": { - "UniqueId": "System.String.Format(System.String,System.Object)#IFormatProviderAlternateString" - }, - "properties": { - "Category": "Microsoft.Globalization", - "FixCategory": "NonBreaking" - } + "name": "Equals(Microsoft.CodeAnalysis.Sarif.CodeFlow,Microsoft.CodeAnalysis.Sarif.CodeFlow)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Baseline.DefaultBaseline.CodeFlowBaselineEqualityComparator.Equals(Microsoft.CodeAnalysis.Sarif.CodeFlow,Microsoft.CodeAnalysis.Sarif.CodeFlow)", + "parentIndex": 490, + "kind": "member" }, { - "ruleId": "CA1305", - "level": "error", - "message": { - "text": "Because the behavior of 'string.Format(string, object, object)' could vary based on the current user's locale settings, replace this call in 'SarifCurrentToVersionOneVisitor.GetContentStream(Uri, out Encoding)' with a call to 'string.Format(IFormatProvider, string, params object[])'. If the result of 'string.Format(IFormatProvider, string, params object[])' will be displayed to the user, specify 'CultureInfo.CurrentCulture' as the 'IFormatProvider' parameter. Otherwise, if the result will be stored and accessed by software, such as when it is persisted to disk or to a database, specify 'CultureInfo.InvariantCulture'.", - "messageId": "IFormatProviderAlternateString" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Visitors/SarifCurrentToVersionOneVisitor.cs" - }, - "region": { - "startLine": 633, - "snippet": { - "text": " failureReason = $\"File '{uri.LocalPath}' could not be found: {ex.ToString()}\";" - } - }, - "contextRegion": { - "startLine": 632, - "startColumn": 1, - "endLine": 634, - "endColumn": 30, - "charOffset": 25091, - "charLength": 172, - "snippet": { - "text": " {\r\n failureReason = $\"File '{uri.LocalPath}' could not be found: {ex.ToString()}\";\r\n }" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifCurrentToVersionOneVisitor.GetContentStream(System.Uri,System.Text.Encoding&)" - } - ], - "partialFingerprints": { - "UniqueId": "System.String.Format(System.String,System.Object,System.Object)#IFormatProviderAlternateString" - }, - "properties": { - "Category": "Microsoft.Globalization", - "FixCategory": "NonBreaking" - } + "name": "DefaultBaselineExtensions", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Baseline.DefaultBaseline.DefaultBaselineExtensions", + "parentIndex": 489, + "kind": "type" }, { - "ruleId": "CA1305", - "level": "error", - "message": { - "text": "Because the behavior of 'string.Format(string, object, object)' could vary based on the current user's locale settings, replace this call in 'SarifCurrentToVersionOneVisitor.GetContentStream(Uri, out Encoding)' with a call to 'string.Format(IFormatProvider, string, params object[])'. If the result of 'string.Format(IFormatProvider, string, params object[])' will be displayed to the user, specify 'CultureInfo.CurrentCulture' as the 'IFormatProvider' parameter. Otherwise, if the result will be stored and accessed by software, such as when it is persisted to disk or to a database, specify 'CultureInfo.InvariantCulture'.", - "messageId": "IFormatProviderAlternateString" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Visitors/SarifCurrentToVersionOneVisitor.cs" - }, - "region": { - "startLine": 637, - "snippet": { - "text": " failureReason = $\"File '{uri.LocalPath}' could not be read: {ex.ToString()}\";" - } - }, - "contextRegion": { - "startLine": 636, - "startColumn": 1, - "endLine": 638, - "endColumn": 30, - "charOffset": 25317, - "charLength": 171, - "snippet": { - "text": " {\r\n failureReason = $\"File '{uri.LocalPath}' could not be read: {ex.ToString()}\";\r\n }" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifCurrentToVersionOneVisitor.GetContentStream(System.Uri,System.Text.Encoding&)" - } - ], - "partialFingerprints": { - "UniqueId": "System.String.Format(System.String,System.Object,System.Object)#IFormatProviderAlternateString" - }, - "properties": { - "Category": "Microsoft.Globalization", - "FixCategory": "NonBreaking" - } + "name": "GetNullCheckedHashCode(System.Object)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Baseline.DefaultBaseline.DefaultBaselineExtensions.GetNullCheckedHashCode(System.Object)", + "parentIndex": 492, + "kind": "member" }, { - "ruleId": "CA1305", - "level": "error", - "message": { - "text": "Because the behavior of 'string.Format(string, object, object)' could vary based on the current user's locale settings, replace this call in 'SarifCurrentToVersionOneVisitor.GetContentStream(Uri, out Encoding)' with a call to 'string.Format(IFormatProvider, string, params object[])'. If the result of 'string.Format(IFormatProvider, string, params object[])' will be displayed to the user, specify 'CultureInfo.CurrentCulture' as the 'IFormatProvider' parameter. Otherwise, if the result will be stored and accessed by software, such as when it is persisted to disk or to a database, specify 'CultureInfo.InvariantCulture'.", - "messageId": "IFormatProviderAlternateString" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Visitors/SarifCurrentToVersionOneVisitor.cs" - }, - "region": { - "startLine": 641, - "snippet": { - "text": " failureReason = $\"File '{uri.LocalPath}' could not be accessed: {ex.ToString()}\";" - } - }, - "contextRegion": { - "startLine": 640, - "startColumn": 1, - "endLine": 642, - "endColumn": 30, - "charOffset": 25548, - "charLength": 175, - "snippet": { - "text": " {\r\n failureReason = $\"File '{uri.LocalPath}' could not be accessed: {ex.ToString()}\";\r\n }" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifCurrentToVersionOneVisitor.GetContentStream(System.Uri,System.Text.Encoding&)" - } - ], - "partialFingerprints": { - "UniqueId": "System.String.Format(System.String,System.Object,System.Object)#IFormatProviderAlternateString" - }, - "properties": { - "Category": "Microsoft.Globalization", - "FixCategory": "NonBreaking" - } + "name": "LocationBaselineEquals", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Baseline.DefaultBaseline.LocationBaselineEquals", + "parentIndex": 489, + "kind": "type" }, { - "ruleId": "CA1822", - "level": "warning", - "message": { - "text": "The 'this' parameter (or 'Me' in Visual Basic) of 'SarifCurrentToVersionOneVisitor.GetFileEncoding(string)' is never used. Mark the member as static (or Shared in Visual Basic) or use 'this'/'Me' in the method body or at least one property accessor, if appropriate." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Visitors/SarifCurrentToVersionOneVisitor.cs" - }, - "region": { - "startLine": 163, - "snippet": { - "text": " {" - } - }, - "contextRegion": { - "startLine": 162, - "startColumn": 1, - "endLine": 164, - "endColumn": 38, - "charOffset": 6361, - "charLength": 111, - "snippet": { - "text": " private Encoding GetFileEncoding(string encodingName)\r\n {\r\n Encoding encoding = null;" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifCurrentToVersionOneVisitor.GetFileEncoding(System.String)" - } - ], - "properties": { - "Category": "Microsoft.Performance", - "FixCategory": "NonBreaking" - } + "name": "Equals(Microsoft.CodeAnalysis.Sarif.Location,Microsoft.CodeAnalysis.Sarif.Location)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Baseline.DefaultBaseline.LocationBaselineEquals.Equals(Microsoft.CodeAnalysis.Sarif.Location,Microsoft.CodeAnalysis.Sarif.Location)", + "parentIndex": 494, + "kind": "member" }, { - "ruleId": "CA1704", - "level": "warning", - "message": { - "text": "Correct the spelling of 'Sarif' in member name 'SarifCurrentToVersionOneVisitor.SarifLogVersionOne' or remove it entirely if it represents any sort of Hungarian notation.", - "messageId": "Member" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Visitors/SarifCurrentToVersionOneVisitor.cs" - }, - "region": { - "startLine": 25, - "snippet": { - "text": " public SarifLogVersionOne SarifLogVersionOne { get; private set; }" - } - }, - "contextRegion": { - "startLine": 24, - "startColumn": 1, - "endLine": 26, - "endColumn": 1, - "charOffset": 927, - "charLength": 78, - "snippet": { - "text": "\r\n public SarifLogVersionOne SarifLogVersionOne { get; private set; }\r\n" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifCurrentToVersionOneVisitor.SarifLogVersionOne" - } - ], - "partialFingerprints": { - "UniqueId": "Sarif#Member" - }, - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" - } + "name": "ResultBaselineEquals", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Baseline.DefaultBaseline.ResultBaselineEquals", + "parentIndex": 489, + "kind": "type" }, { - "ruleId": "CA1725", - "level": "error", - "message": { - "text": "In member 'SarifCurrentToVersionOneVisitor.VisitSarifLog(SarifLog)', change parameter name 'v2SarifLog' to 'node' in order to match the identifier as it has been declared in 'SarifRewritingVisitor.VisitSarifLog(SarifLog)'." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Visitors/SarifCurrentToVersionOneVisitor.cs" - }, - "region": { - "startLine": 28, - "snippet": { - "text": " {" - } - }, - "contextRegion": { - "startLine": 27, - "startColumn": 1, - "endLine": 29, - "endColumn": 113, - "charOffset": 1007, - "charLength": 192, - "snippet": { - "text": " public override SarifLog VisitSarifLog(SarifLog v2SarifLog)\r\n {\r\n SarifLogVersionOne = new SarifLogVersionOne(SarifVersionVersionOne.OneZeroZero.ConvertToSchemaUri()," - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifCurrentToVersionOneVisitor.VisitSarifLog(Microsoft.CodeAnalysis.Sarif.SarifLog)" - } - ], - "partialFingerprints": { - "UniqueId": "0#" - }, - "properties": { - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" - } + "name": "Equals(Microsoft.CodeAnalysis.Sarif.Result,Microsoft.CodeAnalysis.Sarif.Result)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Baseline.DefaultBaseline.ResultBaselineEquals.Equals(Microsoft.CodeAnalysis.Sarif.Result,Microsoft.CodeAnalysis.Sarif.Result)", + "parentIndex": 496, + "kind": "member" }, { - "ruleId": "CA1062", - "level": "warning", - "message": { - "text": "In externally visible method 'SarifCurrentToVersionOneVisitor.VisitSarifLog(SarifLog)', validate parameter 'v2SarifLog' before using it." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Visitors/SarifCurrentToVersionOneVisitor.cs" - }, - "region": { - "startLine": 33, - "snippet": { - "text": " foreach (Run v2Run in v2SarifLog.Runs)" - } - }, - "contextRegion": { - "startLine": 32, - "startColumn": 1, - "endLine": 34, - "endColumn": 14, - "charOffset": 1379, - "charLength": 67, - "snippet": { - "text": "\r\n foreach (Run v2Run in v2SarifLog.Runs)\r\n {" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifCurrentToVersionOneVisitor.VisitSarifLog(Microsoft.CodeAnalysis.Sarif.SarifLog)" - } - ], - "partialFingerprints": { - "UniqueId": "0" - }, - "properties": { - "Category": "Microsoft.Design", - "FixCategory": "DependsOnFix" - } + "name": "StackBaselineEquals", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Baseline.DefaultBaseline.StackBaselineEquals", + "parentIndex": 489, + "kind": "type" }, { - "ruleId": "CA1704", - "level": "warning", - "message": { - "text": "Correct the spelling of 'Sarif' in type name 'SarifTransformerUtilities'.", - "messageId": "Type" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifTransformerUtilities" - } - ], - "partialFingerprints": { - "UniqueId": "Sarif#Type" - }, - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" - } + "name": "Equals(Microsoft.CodeAnalysis.Sarif.Stack,Microsoft.CodeAnalysis.Sarif.Stack)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Baseline.DefaultBaseline.StackBaselineEquals.Equals(Microsoft.CodeAnalysis.Sarif.Stack,Microsoft.CodeAnalysis.Sarif.Stack)", + "parentIndex": 498, + "kind": "member" }, { - "ruleId": "CA2104", - "level": "error", - "message": { - "text": "Remove the read-only designation from 'SarifTransformerUtilities.AlgorithmKindNameMap' or change the field to one that is an immutable reference type. If the reference type 'Dictionary' is, in fact, immutable, exclude this message." - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifTransformerUtilities.AlgorithmKindNameMap" - } - ], - "properties": { - "Category": "Microsoft.Security", - "FixCategory": "NonBreaking" - } + "name": "StackFrameBaselineEquals", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Baseline.DefaultBaseline.StackFrameBaselineEquals", + "parentIndex": 489, + "kind": "type" }, { - "ruleId": "CA2104", - "level": "error", - "message": { - "text": "Remove the read-only designation from 'SarifTransformerUtilities.AlgorithmNameKindMap' or change the field to one that is an immutable reference type. If the reference type 'Dictionary' is, in fact, immutable, exclude this message." - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifTransformerUtilities.AlgorithmNameKindMap" - } - ], - "properties": { - "Category": "Microsoft.Security", - "FixCategory": "NonBreaking" - } + "name": "Equals(Microsoft.CodeAnalysis.Sarif.StackFrame,Microsoft.CodeAnalysis.Sarif.StackFrame)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Baseline.DefaultBaseline.StackFrameBaselineEquals.Equals(Microsoft.CodeAnalysis.Sarif.StackFrame,Microsoft.CodeAnalysis.Sarif.StackFrame)", + "parentIndex": 500, + "kind": "member" }, { - "ruleId": "CA1704", - "level": "warning", - "message": { - "text": "In method 'SarifTransformerUtilities.CreateAnnotatedCodeLocationImportance(ThreadFlowLocationImportance)', correct the spelling of 'v' in parameter name 'v2ThreadFlowLocationImportance' or remove it entirely if it represents any sort of Hungarian notation.", - "messageId": "MemberParameter" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Visitors/SarifTransformerUtilities.cs" - }, - "region": { - "startLine": 235, - "snippet": { - "text": " {" - } - }, - "contextRegion": { - "startLine": 234, - "startColumn": 1, - "endLine": 236, - "endColumn": 52, - "charOffset": 9950, - "charLength": 226, - "snippet": { - "text": " public static AnnotatedCodeLocationImportanceVersionOne CreateAnnotatedCodeLocationImportance(ThreadFlowLocationImportance v2ThreadFlowLocationImportance)\r\n {\r\n switch (v2ThreadFlowLocationImportance)" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifTransformerUtilities.CreateAnnotatedCodeLocationImportance(Microsoft.CodeAnalysis.Sarif.ThreadFlowLocationImportance)" - } - ], - "partialFingerprints": { - "UniqueId": "v#MemberParameter" - }, - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" - } + "name": "ThreadFlowBaselineEqualityComparator", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Baseline.DefaultBaseline.ThreadFlowBaselineEqualityComparator", + "parentIndex": 489, + "kind": "type" }, { - "ruleId": "CA1704", - "level": "warning", - "message": { - "text": "In method 'SarifTransformerUtilities.CreateBaselineState(BaselineStateVersionOne)', correct the spelling of 'v' in parameter name 'v1BaselineState' or remove it entirely if it represents any sort of Hungarian notation.", - "messageId": "MemberParameter" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Visitors/SarifTransformerUtilities.cs" - }, - "region": { - "startLine": 191, - "snippet": { - "text": " {" - } - }, - "contextRegion": { - "startLine": 190, - "startColumn": 1, - "endLine": 192, - "endColumn": 37, - "charOffset": 7983, - "charLength": 145, - "snippet": { - "text": " public static BaselineState CreateBaselineState(BaselineStateVersionOne v1BaselineState)\r\n {\r\n switch (v1BaselineState)" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifTransformerUtilities.CreateBaselineState(Microsoft.CodeAnalysis.Sarif.VersionOne.BaselineStateVersionOne)" - } - ], - "partialFingerprints": { - "UniqueId": "v#MemberParameter" - }, - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" - } + "name": "Equals(Microsoft.CodeAnalysis.Sarif.ThreadFlow,Microsoft.CodeAnalysis.Sarif.ThreadFlow)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Baseline.DefaultBaseline.ThreadFlowBaselineEqualityComparator.Equals(Microsoft.CodeAnalysis.Sarif.ThreadFlow,Microsoft.CodeAnalysis.Sarif.ThreadFlow)", + "parentIndex": 502, + "kind": "member" }, { - "ruleId": "CA1704", - "level": "warning", - "message": { - "text": "In method 'SarifTransformerUtilities.CreateBaselineStateVersionOne(BaselineState)', correct the spelling of 'v' in parameter name 'v2BaselineState' or remove it entirely if it represents any sort of Hungarian notation.", - "messageId": "MemberParameter" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Visitors/SarifTransformerUtilities.cs" - }, - "region": { - "startLine": 205, - "snippet": { - "text": " {" - } - }, - "contextRegion": { - "startLine": 204, - "startColumn": 1, - "endLine": 206, - "endColumn": 37, - "charOffset": 8555, - "charLength": 155, - "snippet": { - "text": " public static BaselineStateVersionOne CreateBaselineStateVersionOne(BaselineState v2BaselineState)\r\n {\r\n switch (v2BaselineState)" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifTransformerUtilities.CreateBaselineStateVersionOne(Microsoft.CodeAnalysis.Sarif.BaselineState)" - } - ], - "partialFingerprints": { - "UniqueId": "v#MemberParameter" - }, - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" - } + "name": "ThreadFlowLocationBaselineEquals", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Baseline.DefaultBaseline.ThreadFlowLocationBaselineEquals", + "parentIndex": 489, + "kind": "type" }, { - "ruleId": "CA1305", - "level": "error", - "message": { - "text": "Because the behavior of 'string.Format(string, object, object)' could vary based on the current user's locale settings, replace this call in 'SarifTransformerUtilities.CreateDisambiguatedName(string, int)' with a call to 'string.Format(IFormatProvider, string, params object[])'. If the result of 'string.Format(IFormatProvider, string, params object[])' will be displayed to the user, specify 'CultureInfo.CurrentCulture' as the 'IFormatProvider' parameter. Otherwise, if the result will be stored and accessed by software, such as when it is persisted to disk or to a database, specify 'CultureInfo.InvariantCulture'.", - "messageId": "IFormatProviderAlternateString" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Visitors/SarifTransformerUtilities.cs" - }, - "region": { - "startLine": 67, - "snippet": { - "text": " return $\"{baseName}-{index.ToString(CultureInfo.InvariantCulture)}\";" - } - }, - "contextRegion": { - "startLine": 66, - "startColumn": 1, - "endLine": 68, - "endColumn": 10, - "charOffset": 2845, - "charLength": 102, - "snippet": { - "text": " {\r\n return $\"{baseName}-{index.ToString(CultureInfo.InvariantCulture)}\";\r\n }" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifTransformerUtilities.CreateDisambiguatedName(System.String,System.Int32)" - } - ], - "partialFingerprints": { - "UniqueId": "System.String.Format(System.String,System.Object,System.Object)#IFormatProviderAlternateString" - }, - "properties": { - "Category": "Microsoft.Globalization", - "FixCategory": "NonBreaking" - } + "name": "Equals(Microsoft.CodeAnalysis.Sarif.ThreadFlowLocation,Microsoft.CodeAnalysis.Sarif.ThreadFlowLocation)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Baseline.DefaultBaseline.ThreadFlowLocationBaselineEquals.Equals(Microsoft.CodeAnalysis.Sarif.ThreadFlowLocation,Microsoft.CodeAnalysis.Sarif.ThreadFlowLocation)", + "parentIndex": 504, + "kind": "member" }, { - "ruleId": "CA1704", - "level": "warning", - "message": { - "text": "In method 'SarifTransformerUtilities.CreateNotificationLevel(NotificationLevelVersionOne)', correct the spelling of 'v' in parameter name 'v1NotificationLevel' or remove it entirely if it represents any sort of Hungarian notation.", - "messageId": "MemberParameter" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Visitors/SarifTransformerUtilities.cs" - }, - "region": { - "startLine": 71, - "snippet": { - "text": " {" - } - }, - "contextRegion": { - "startLine": 70, - "startColumn": 1, - "endLine": 72, - "endColumn": 41, - "charOffset": 2951, - "charLength": 165, - "snippet": { - "text": " public static FailureLevel CreateNotificationLevel(NotificationLevelVersionOne v1NotificationLevel)\r\n {\r\n switch (v1NotificationLevel)" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifTransformerUtilities.CreateNotificationLevel(Microsoft.CodeAnalysis.Sarif.VersionOne.NotificationLevelVersionOne)" - } - ], - "partialFingerprints": { - "UniqueId": "v#MemberParameter" - }, - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" - } + "name": "Microsoft.CodeAnalysis.Sarif.Processors", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Processors", + "parentIndex": 228, + "kind": "namespace" }, { - "ruleId": "CA1704", - "level": "warning", - "message": { - "text": "In method 'SarifTransformerUtilities.CreateNotificationLevelVersionOne(FailureLevel)', correct the spelling of 'v' in parameter name 'v2NotificationLevel' or remove it entirely if it represents any sort of Hungarian notation.", - "messageId": "MemberParameter" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Visitors/SarifTransformerUtilities.cs" - }, - "region": { - "startLine": 84, - "snippet": { - "text": " {" - } - }, - "contextRegion": { - "startLine": 83, - "startColumn": 1, - "endLine": 85, - "endColumn": 41, - "charOffset": 3460, - "charLength": 175, - "snippet": { - "text": " public static NotificationLevelVersionOne CreateNotificationLevelVersionOne(FailureLevel v2NotificationLevel)\r\n {\r\n switch (v2NotificationLevel)" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifTransformerUtilities.CreateNotificationLevelVersionOne(Microsoft.CodeAnalysis.Sarif.FailureLevel)" - } - ], - "partialFingerprints": { - "UniqueId": "v#MemberParameter" - }, - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" - } + "name": "GenericActionPipeline`1", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Processors.GenericActionPipeline`1", + "parentIndex": 506, + "kind": "type" }, { - "ruleId": "CA1704", - "level": "warning", - "message": { - "text": "In method 'SarifTransformerUtilities.CreateResultLevel(ResultLevelVersionOne)', correct the spelling of 'v' in parameter name 'v1ResultLevel' or remove it entirely if it represents any sort of Hungarian notation.", - "messageId": "MemberParameter" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Visitors/SarifTransformerUtilities.cs" - }, - "region": { - "startLine": 112, - "snippet": { - "text": " {" - } - }, - "contextRegion": { - "startLine": 111, - "startColumn": 1, - "endLine": 113, - "endColumn": 35, - "charOffset": 4648, - "charLength": 135, - "snippet": { - "text": " public static ResultLevel CreateResultLevel(ResultLevelVersionOne v1ResultLevel)\r\n {\r\n switch (v1ResultLevel)" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifTransformerUtilities.CreateResultLevel(Microsoft.CodeAnalysis.Sarif.VersionOne.ResultLevelVersionOne)" - } - ], - "partialFingerprints": { - "UniqueId": "v#MemberParameter" - }, - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" - } + "name": ".ctor(System.Collections.Generic.IEnumerable`1>)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Processors.GenericActionPipeline`1..ctor(System.Collections.Generic.IEnumerable`1>)", + "parentIndex": 507, + "kind": "member" }, { - "ruleId": "CA1704", - "level": "warning", - "message": { - "text": "In method 'SarifTransformerUtilities.CreateResultLevelVersionOne(ResultLevel)', correct the spelling of 'v' in parameter name 'v2ResultLevel' or remove it entirely if it represents any sort of Hungarian notation.", - "messageId": "MemberParameter" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Visitors/SarifTransformerUtilities.cs" - }, - "region": { - "startLine": 146, - "snippet": { - "text": " {" - } - }, - "contextRegion": { - "startLine": 145, - "startColumn": 1, - "endLine": 147, - "endColumn": 35, - "charOffset": 6054, - "charLength": 145, - "snippet": { - "text": " public static ResultLevelVersionOne CreateResultLevelVersionOne(ResultLevel v2ResultLevel)\r\n {\r\n switch (v2ResultLevel)" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifTransformerUtilities.CreateResultLevelVersionOne(Microsoft.CodeAnalysis.Sarif.ResultLevel)" - } - ], - "partialFingerprints": { - "UniqueId": "v#MemberParameter" - }, - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" - } + "name": "GenericMappingAction`1", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Processors.GenericMappingAction`1", + "parentIndex": 506, + "kind": "type" }, { - "ruleId": "CA1704", - "level": "warning", - "message": { - "text": "In method 'SarifTransformerUtilities.CreateResultLevelVersionOne(reportingConfigurationDefaultLevel)', correct the spelling of 'v' in parameter name 'v2DefaultLevel' or remove it entirely if it represents any sort of Hungarian notation.", - "messageId": "MemberParameter" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Visitors/SarifTransformerUtilities.cs" - }, - "region": { - "startLine": 131, - "snippet": { - "text": " {" - } - }, - "contextRegion": { - "startLine": 130, - "startColumn": 1, - "endLine": 132, - "endColumn": 36, - "charOffset": 5409, - "charLength": 165, - "snippet": { - "text": " public static ResultLevelVersionOne CreateResultLevelVersionOne(reportingConfigurationDefaultLevel v2DefaultLevel)\r\n {\r\n switch (v2DefaultLevel)" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifTransformerUtilities.CreateResultLevelVersionOne(Microsoft.CodeAnalysis.Sarif.reportingConfigurationDefaultLevel)" - } - ], - "partialFingerprints": { - "UniqueId": "v#MemberParameter" - }, - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" - } + "name": "Act(System.Collections.Generic.IEnumerable`1)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Processors.GenericMappingAction`1.Act(System.Collections.Generic.IEnumerable`1)", + "parentIndex": 509, + "kind": "member" }, { - "ruleId": "CA1704", - "level": "warning", - "message": { - "text": "In method 'SarifTransformerUtilities.CreatereportingConfigurationDefaultLevel(ResultLevelVersionOne)', correct the spelling of 'v' in parameter name 'v1ResultLevel' or remove it entirely if it represents any sort of Hungarian notation.", - "messageId": "MemberParameter" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Visitors/SarifTransformerUtilities.cs" - }, - "region": { - "startLine": 97, - "snippet": { - "text": " {" - } - }, - "contextRegion": { - "startLine": 96, - "startColumn": 1, - "endLine": 98, - "endColumn": 35, - "charOffset": 3989, - "charLength": 171, - "snippet": { - "text": " public static reportingConfigurationDefaultLevel CreatereportingConfigurationDefaultLevel(ResultLevelVersionOne v1ResultLevel)\r\n {\r\n switch (v1ResultLevel)" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifTransformerUtilities.CreatereportingConfigurationDefaultLevel(Microsoft.CodeAnalysis.Sarif.VersionOne.ResultLevelVersionOne)" - } - ], - "partialFingerprints": { - "UniqueId": "v#MemberParameter" - }, - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" - } + "name": "Action", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Processors.GenericMappingAction`1.Action", + "parentIndex": 509, + "kind": "member" }, { - "ruleId": "CA1704", - "level": "warning", - "message": { - "text": "In method 'SarifTransformerUtilities.CreateSuppressionStates(SuppressionStatesVersionOne)', correct the spelling of 'v' in parameter name 'v1SuppressionStates' or remove it entirely if it represents any sort of Hungarian notation.", - "messageId": "MemberParameter" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Visitors/SarifTransformerUtilities.cs" - }, - "region": { - "startLine": 165, - "snippet": { - "text": " {" - } - }, - "contextRegion": { - "startLine": 164, - "startColumn": 1, - "endLine": 166, - "endColumn": 41, - "charOffset": 6835, - "charLength": 165, - "snippet": { - "text": " public static SuppressionStates CreateSuppressionStates(SuppressionStatesVersionOne v1SuppressionStates)\r\n {\r\n switch (v1SuppressionStates)" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifTransformerUtilities.CreateSuppressionStates(Microsoft.CodeAnalysis.Sarif.VersionOne.SuppressionStatesVersionOne)" - } - ], - "partialFingerprints": { - "UniqueId": "v#MemberParameter" - }, - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" - } + "name": "Map(System.Collections.Generic.IEnumerable`1)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Processors.GenericMappingAction`1.Map(System.Collections.Generic.IEnumerable`1)", + "parentIndex": 509, + "kind": "member" }, { - "ruleId": "CA1704", - "level": "warning", - "message": { - "text": "In method 'SarifTransformerUtilities.CreateSuppressionStatesVersionOne(SuppressionStates)', correct the spelling of 'v' in parameter name 'v2SuppressionStates' or remove it entirely if it represents any sort of Hungarian notation.", - "messageId": "MemberParameter" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Visitors/SarifTransformerUtilities.cs" - }, - "region": { - "startLine": 178, - "snippet": { - "text": " {" - } - }, - "contextRegion": { - "startLine": 177, - "startColumn": 1, - "endLine": 179, - "endColumn": 41, - "charOffset": 7399, - "charLength": 175, - "snippet": { - "text": " public static SuppressionStatesVersionOne CreateSuppressionStatesVersionOne(SuppressionStates v2SuppressionStates)\r\n {\r\n switch (v2SuppressionStates)" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifTransformerUtilities.CreateSuppressionStatesVersionOne(Microsoft.CodeAnalysis.Sarif.SuppressionStates)" - } - ], - "partialFingerprints": { - "UniqueId": "v#MemberParameter" - }, - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" - } + "name": "SarifLogAction", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Processors.SarifLogAction", + "parentIndex": 506, + "kind": "type" }, { - "ruleId": "CA1704", - "level": "warning", - "message": { - "text": "In method 'SarifTransformerUtilities.CreateThreadFlowLocationImportance(AnnotatedCodeLocationImportanceVersionOne)', correct the spelling of 'v' in parameter name 'v1AnnotatedCodeLocationImportance' or remove it entirely if it represents any sort of Hungarian notation.", - "messageId": "MemberParameter" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Visitors/SarifTransformerUtilities.cs" - }, - "region": { - "startLine": 220, - "snippet": { - "text": " {" - } - }, - "contextRegion": { - "startLine": 219, - "startColumn": 1, - "endLine": 221, - "endColumn": 55, - "charOffset": 9149, - "charLength": 229, - "snippet": { - "text": " public static ThreadFlowLocationImportance CreateThreadFlowLocationImportance(AnnotatedCodeLocationImportanceVersionOne v1AnnotatedCodeLocationImportance)\r\n {\r\n switch (v1AnnotatedCodeLocationImportance)" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifTransformerUtilities.CreateThreadFlowLocationImportance(Microsoft.CodeAnalysis.Sarif.VersionOne.AnnotatedCodeLocationImportanceVersionOne)" - } - ], - "partialFingerprints": { - "UniqueId": "v#MemberParameter" - }, - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" - } + "name": "SarifLogActionTuple", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Processors.SarifLogActionTuple", + "parentIndex": 506, + "kind": "type" }, { - "ruleId": "CA2105", - "level": "warning", - "message": { - "text": "Either replace 'SarifTransformerUtilities.DefaultFullyQualifiedNameDelimiters' with a strongly typed collection that cannot be changed, or replace the public field with a method that returns a clone of a private array." - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifTransformerUtilities.DefaultFullyQualifiedNameDelimiters" - } - ], - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Security", - "FixCategory": "Breaking" - } + "name": "Action", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Processors.SarifLogActionTuple.Action", + "parentIndex": 514, + "kind": "member" }, { - "ruleId": "CA2104", - "level": "error", - "message": { - "text": "Remove the read-only designation from 'SarifTransformerUtilities.JsonSettingsV1' or change the field to one that is an immutable reference type. If the reference type 'JsonSerializerSettings' is, in fact, immutable, exclude this message." - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifTransformerUtilities.JsonSettingsV1" - } - ], - "properties": { - "Category": "Microsoft.Security", - "FixCategory": "NonBreaking" - } + "name": "Parameters", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Processors.SarifLogActionTuple.Parameters", + "parentIndex": 514, + "kind": "member" }, { - "ruleId": "CA2104", - "level": "error", - "message": { - "text": "Remove the read-only designation from 'SarifTransformerUtilities.JsonSettingsV1Compact' or change the field to one that is an immutable reference type. If the reference type 'JsonSerializerSettings' is, in fact, immutable, exclude this message." - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifTransformerUtilities.JsonSettingsV1Compact" - } - ], - "properties": { - "Category": "Microsoft.Security", - "FixCategory": "NonBreaking" - } + "name": "SarifLogExtensionMethods", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Processors.SarifLogExtensionMethods", + "parentIndex": 506, + "kind": "type" }, { - "ruleId": "CA2104", - "level": "error", - "message": { - "text": "Remove the read-only designation from 'SarifTransformerUtilities.JsonSettingsV2' or change the field to one that is an immutable reference type. If the reference type 'JsonSerializerSettings' is, in fact, immutable, exclude this message." - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifTransformerUtilities.JsonSettingsV2" - } - ], - "properties": { - "Category": "Microsoft.Security", - "FixCategory": "NonBreaking" - } + "name": "MakeUrisAbsolute(Microsoft.CodeAnalysis.Sarif.SarifLog)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Processors.SarifLogExtensionMethods.MakeUrisAbsolute(Microsoft.CodeAnalysis.Sarif.SarifLog)", + "parentIndex": 517, + "kind": "member" }, { - "ruleId": "CA2104", - "level": "error", - "message": { - "text": "Remove the read-only designation from 'SarifTransformerUtilities.JsonSettingsV2Compact' or change the field to one that is an immutable reference type. If the reference type 'JsonSerializerSettings' is, in fact, immutable, exclude this message." - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifTransformerUtilities.JsonSettingsV2Compact" - } - ], - "properties": { - "Category": "Microsoft.Security", - "FixCategory": "NonBreaking" - } + "name": "MakeUrisAbsolute(System.Collections.Generic.IEnumerable`1)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Processors.SarifLogExtensionMethods.MakeUrisAbsolute(System.Collections.Generic.IEnumerable`1)", + "parentIndex": 517, + "kind": "member" }, { - "ruleId": "CA2104", - "level": "error", - "message": { - "text": "Remove the read-only designation from 'SarifTransformerUtilities.PropertyBagTransformerItemPrefixes' or change the field to one that is an immutable reference type. If the reference type 'Dictionary' is, in fact, immutable, exclude this message." - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifTransformerUtilities.PropertyBagTransformerItemPrefixes" - } - ], - "properties": { - "Category": "Microsoft.Security", - "FixCategory": "NonBreaking" - } + "name": "Merge(System.Collections.Generic.IEnumerable`1)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Processors.SarifLogExtensionMethods.Merge(System.Collections.Generic.IEnumerable`1)", + "parentIndex": 517, + "kind": "member" }, { - "ruleId": "CA1704", - "level": "warning", - "message": { - "text": "Correct the spelling of 'Sarif' in type name 'SarifVersionOneToCurrentVisitor'.", - "messageId": "Type" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifVersionOneToCurrentVisitor" - } - ], - "partialFingerprints": { - "UniqueId": "Sarif#Type" - }, - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" - } + "name": "RebaseUri(Microsoft.CodeAnalysis.Sarif.SarifLog,System.String,System.Boolean,System.Uri)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Processors.SarifLogExtensionMethods.RebaseUri(Microsoft.CodeAnalysis.Sarif.SarifLog,System.String,System.Boolean,System.Uri)", + "parentIndex": 517, + "kind": "member" }, { - "ruleId": "CA1823", - "level": "warning", - "message": { - "text": "It appears that field 'SarifVersionOneToCurrentVisitor._currentV1Run' is never used or is only ever assigned to. Use this field or remove it." - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifVersionOneToCurrentVisitor._currentV1Run" - } - ], - "properties": { - "Category": "Microsoft.Performance", - "FixCategory": "NonBreaking" - } + "name": "RebaseUri(System.Collections.Generic.IEnumerable`1,System.String,System.Boolean,System.Uri)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Processors.SarifLogExtensionMethods.RebaseUri(System.Collections.Generic.IEnumerable`1,System.String,System.Boolean,System.Uri)", + "parentIndex": 517, + "kind": "member" }, { - "ruleId": "CA1822", - "level": "warning", - "message": { - "text": "The 'this' parameter (or 'Me' in Visual Basic) of 'SarifVersionOneToCurrentVisitor.CreateFileLocation(Uri, string)' is never used. Mark the member as static (or Shared in Visual Basic) or use 'this'/'Me' in the method body or at least one property accessor, if appropriate." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Visitors/SarifVersionOneToCurrentVisitor.cs" - }, - "region": { - "startLine": 194, - "snippet": { - "text": " {" - } - }, - "contextRegion": { - "startLine": 193, - "startColumn": 1, - "endLine": 195, - "endColumn": 46, - "charOffset": 7359, - "charLength": 133, - "snippet": { - "text": " internal FileLocation CreateFileLocation(Uri uri, string uriBaseId)\r\n {\r\n FileLocation fileLocation = null;" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifVersionOneToCurrentVisitor.CreateFileLocation(System.Uri,System.String)" - } - ], - "properties": { - "Category": "Microsoft.Performance", - "FixCategory": "NonBreaking" - } + "name": "SarifLogPipeline", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Processors.SarifLogPipeline", + "parentIndex": 506, + "kind": "type" }, { - "ruleId": "CA1308", - "level": "error", - "message": { - "text": "In method 'SarifVersionOneToCurrentVisitor.CreateHash(HashVersionOne)', replace the call to 'string.ToLowerInvariant()' with String.ToUpperInvariant().", - "messageId": "ToUpperInvariant" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Visitors/SarifVersionOneToCurrentVisitor.cs" - }, - "region": { - "startLine": 244, - "snippet": { - "text": " algorithm = v1Hash.Algorithm.ToString().ToLowerInvariant();" - } - }, - "contextRegion": { - "startLine": 243, - "startColumn": 1, - "endLine": 245, - "endColumn": 18, - "charOffset": 8887, - "charLength": 117, - "snippet": { - "text": " {\r\n algorithm = v1Hash.Algorithm.ToString().ToLowerInvariant();\r\n }" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifVersionOneToCurrentVisitor.CreateHash(Microsoft.CodeAnalysis.Sarif.VersionOne.HashVersionOne)" - } - ], - "partialFingerprints": { - "UniqueId": "ToUpperInvariant" - }, - "properties": { - "Category": "Microsoft.Globalization", - "FixCategory": "NonBreaking" - } + "name": ".ctor(System.Collections.Generic.List`1)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Processors.SarifLogPipeline..ctor(System.Collections.Generic.List`1)", + "parentIndex": 523, + "kind": "member" }, { - "ruleId": "CA1822", - "level": "warning", - "message": { - "text": "The 'this' parameter (or 'Me' in Visual Basic) of 'SarifVersionOneToCurrentVisitor.CreateLogicalLocation(LogicalLocationVersionOne)' is never used. Mark the member as static (or Shared in Visual Basic) or use 'this'/'Me' in the method body or at least one property accessor, if appropriate." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Visitors/SarifVersionOneToCurrentVisitor.cs" - }, - "region": { - "startLine": 429, - "snippet": { - "text": " {" - } - }, - "contextRegion": { - "startLine": 428, - "startColumn": 1, - "endLine": 430, - "endColumn": 52, - "charOffset": 16942, - "charLength": 163, - "snippet": { - "text": " internal LogicalLocation CreateLogicalLocation(LogicalLocationVersionOne v1LogicalLocation)\r\n {\r\n LogicalLocation logicalLocation = null;" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifVersionOneToCurrentVisitor.CreateLogicalLocation(Microsoft.CodeAnalysis.Sarif.VersionOne.LogicalLocationVersionOne)" - } - ], - "properties": { - "Category": "Microsoft.Performance", - "FixCategory": "NonBreaking" - } + "name": "_pipeline", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Processors.SarifLogPipeline._pipeline", + "parentIndex": 523, + "kind": "member" }, { - "ruleId": "CA1822", - "level": "warning", - "message": { - "text": "The 'this' parameter (or 'Me' in Visual Basic) of 'SarifVersionOneToCurrentVisitor.CreateMessage(string)' is never used. Mark the member as static (or Shared in Visual Basic) or use 'this'/'Me' in the method body or at least one property accessor, if appropriate." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Visitors/SarifVersionOneToCurrentVisitor.cs" - }, - "region": { - "startLine": 530, - "snippet": { - "text": " {" - } - }, - "contextRegion": { - "startLine": 529, - "startColumn": 1, - "endLine": 531, - "endColumn": 36, - "charOffset": 20901, - "charLength": 99, - "snippet": { - "text": " internal Message CreateMessage(string text)\r\n {\r\n Message message = null;" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifVersionOneToCurrentVisitor.CreateMessage(System.String)" - } - ], - "properties": { - "Category": "Microsoft.Performance", - "FixCategory": "NonBreaking" - } + "name": "Actions", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Processors.SarifLogPipeline.Actions", + "parentIndex": 523, + "kind": "member" }, { - "ruleId": "CA1822", - "level": "warning", - "message": { - "text": "The 'this' parameter (or 'Me' in Visual Basic) of 'SarifVersionOneToCurrentVisitor.CreateRegion(RegionVersionOne)' is never used. Mark the member as static (or Shared in Visual Basic) or use 'this'/'Me' in the method body or at least one property accessor, if appropriate." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Visitors/SarifVersionOneToCurrentVisitor.cs" - }, - "region": { - "startLine": 653, - "snippet": { - "text": " {" - } - }, - "contextRegion": { - "startLine": 652, - "startColumn": 1, - "endLine": 654, - "endColumn": 34, - "charOffset": 25250, - "charLength": 109, - "snippet": { - "text": " internal Region CreateRegion(RegionVersionOne v1Region)\r\n {\r\n Region region = null;" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifVersionOneToCurrentVisitor.CreateRegion(Microsoft.CodeAnalysis.Sarif.VersionOne.RegionVersionOne)" - } - ], - "properties": { - "Category": "Microsoft.Performance", - "FixCategory": "NonBreaking" - } + "name": "SarifLogProcessorFactory", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Processors.SarifLogProcessorFactory", + "parentIndex": 506, + "kind": "type" }, { - "ruleId": "CA1822", - "level": "warning", - "message": { - "text": "The 'this' parameter (or 'Me' in Visual Basic) of 'SarifVersionOneToCurrentVisitor.CreateRegion(int, int, int, int, int, int)' is never used. Mark the member as static (or Shared in Visual Basic) or use 'this'/'Me' in the method body or at least one property accessor, if appropriate." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Visitors/SarifVersionOneToCurrentVisitor.cs" - }, - "region": { - "startLine": 697, - "snippet": { - "text": " {" - } - }, - "contextRegion": { - "startLine": 696, - "startColumn": 1, - "endLine": 698, - "endColumn": 34, - "charOffset": 27023, - "charLength": 182, - "snippet": { - "text": " internal Region CreateRegion(int startColumn, int startLine, int endColumn = 0, int endLine = 0, int length = 0, int offset = 0)\r\n {\r\n Region region = null;" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifVersionOneToCurrentVisitor.CreateRegion(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32)" - } - ], - "properties": { - "Category": "Microsoft.Performance", - "FixCategory": "NonBreaking" - } + "name": "GetActionStage(Microsoft.CodeAnalysis.Sarif.Processors.SarifLogAction,System.String[])", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Processors.SarifLogProcessorFactory.GetActionStage(Microsoft.CodeAnalysis.Sarif.Processors.SarifLogAction,System.String[])", + "parentIndex": 527, + "kind": "member" }, { - "ruleId": "CA1502", - "level": "warning", - "message": { - "text": "'SarifVersionOneToCurrentVisitor.CreateResult(ResultVersionOne)' has a cyclomatic complexity of 28. Rewrite or refactor the method to reduce complexity to 25." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Visitors/SarifVersionOneToCurrentVisitor.cs" - }, - "region": { - "startLine": 717, - "snippet": { - "text": " {" - } - }, - "contextRegion": { - "startLine": 716, - "startColumn": 1, - "endLine": 718, - "endColumn": 34, - "charOffset": 27758, - "charLength": 109, - "snippet": { - "text": " internal Result CreateResult(ResultVersionOne v1Result)\r\n {\r\n Result result = null;" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifVersionOneToCurrentVisitor.CreateResult(Microsoft.CodeAnalysis.Sarif.VersionOne.ResultVersionOne)" - } - ], - "properties": { - "Category": "Microsoft.Maintainability", - "FixCategory": "NonBreaking" - } + "name": "Microsoft.CodeAnalysis.Sarif.Readers", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Readers", + "parentIndex": 228, + "kind": "namespace" }, { - "ruleId": "CA1305", - "level": "error", - "message": { - "text": "Because the behavior of 'string.Format(string, object)' could vary based on the current user's locale settings, replace this call in 'SarifVersionOneToCurrentVisitor.CreateRun(RunVersionOne)' with a call to 'string.Format(IFormatProvider, string, params object[])'. If the result of 'string.Format(IFormatProvider, string, params object[])' will be displayed to the user, specify 'CultureInfo.CurrentCulture' as the 'IFormatProvider' parameter. Otherwise, if the result will be stored and accessed by software, such as when it is persisted to disk or to a database, specify 'CultureInfo.InvariantCulture'.", - "messageId": "IFormatProviderAlternateString" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Visitors/SarifVersionOneToCurrentVisitor.cs" - }, - "region": { - "startLine": 953, - "snippet": { - "text": " run.SetProperty($\"{FromPropertyBagPrefix}/run\", v1Run);" - } - }, - "contextRegion": { - "startLine": 952, - "startColumn": 1, - "endLine": 954, - "endColumn": 18, - "charOffset": 37089, - "charLength": 172, - "snippet": { - "text": " // Stash the entire v1 run in this v2 run's property bag\r\n run.SetProperty($\"{FromPropertyBagPrefix}/run\", v1Run);\r\n }" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifVersionOneToCurrentVisitor.CreateRun(Microsoft.CodeAnalysis.Sarif.VersionOne.RunVersionOne)" - } - ], - "partialFingerprints": { - "UniqueId": "System.String.Format(System.String,System.Object)#IFormatProviderAlternateString" - }, - "properties": { - "Category": "Microsoft.Globalization", - "FixCategory": "NonBreaking" - } + "name": "DateTimeConverter", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Readers.DateTimeConverter", + "parentIndex": 529, + "kind": "type" }, { - "ruleId": "CA1822", - "level": "warning", - "message": { - "text": "The 'this' parameter (or 'Me' in Visual Basic) of 'SarifVersionOneToCurrentVisitor.CreateTool(ToolVersionOne)' is never used. Mark the member as static (or Shared in Visual Basic) or use 'this'/'Me' in the method body or at least one property accessor, if appropriate." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Visitors/SarifVersionOneToCurrentVisitor.cs" - }, - "region": { - "startLine": 1006, - "snippet": { - "text": " {" - } - }, - "contextRegion": { - "startLine": 1005, - "startColumn": 1, - "endLine": 1007, - "endColumn": 30, - "charOffset": 38996, - "charLength": 97, - "snippet": { - "text": " internal Tool CreateTool(ToolVersionOne v1Tool)\r\n {\r\n Tool tool = null;" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifVersionOneToCurrentVisitor.CreateTool(Microsoft.CodeAnalysis.Sarif.VersionOne.ToolVersionOne)" - } - ], - "properties": { - "Category": "Microsoft.Performance", - "FixCategory": "NonBreaking" - } + "name": "Instance", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Readers.DateTimeConverter.Instance", + "parentIndex": 530, + "kind": "member" }, { - "ruleId": "CA1822", - "level": "warning", - "message": { - "text": "The 'this' parameter (or 'Me' in Visual Basic) of 'SarifVersionOneToCurrentVisitor.GetLogicalLocationName(string)' is never used. Mark the member as static (or Shared in Visual Basic) or use 'this'/'Me' in the method body or at least one property accessor, if appropriate." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Visitors/SarifVersionOneToCurrentVisitor.cs" - }, - "region": { - "startLine": 496, - "snippet": { - "text": " {" - } - }, - "contextRegion": { - "startLine": 495, - "startColumn": 1, - "endLine": 497, - "endColumn": 70, - "charOffset": 19726, - "charLength": 162, - "snippet": { - "text": " internal string GetLogicalLocationName(string fullyQualifiedLogicalName)\r\n {\r\n if (string.IsNullOrWhiteSpace(fullyQualifiedLogicalName))" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifVersionOneToCurrentVisitor.GetLogicalLocationName(System.String)" - } - ], - "properties": { - "Category": "Microsoft.Performance", - "FixCategory": "NonBreaking" - } + "name": "EnumConverter", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Readers.EnumConverter", + "parentIndex": 529, + "kind": "type" }, { - "ruleId": "CA1704", - "level": "warning", - "message": { - "text": "Correct the spelling of 'Sarif' in member name 'SarifVersionOneToCurrentVisitor.SarifLog' or remove it entirely if it represents any sort of Hungarian notation.", - "messageId": "Member" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Visitors/SarifVersionOneToCurrentVisitor.cs" - }, - "region": { - "startLine": 24, - "snippet": { - "text": " public SarifLog SarifLog { get; private set; }" - } - }, - "contextRegion": { - "startLine": 23, - "startColumn": 1, - "endLine": 25, - "endColumn": 1, - "charOffset": 958, - "charLength": 58, - "snippet": { - "text": "\r\n public SarifLog SarifLog { get; private set; }\r\n" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifVersionOneToCurrentVisitor.SarifLog" - } - ], - "partialFingerprints": { - "UniqueId": "Sarif#Member" - }, - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" - } + "name": "ConvertToCamelCase(System.String)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Readers.EnumConverter.ConvertToCamelCase(System.String)", + "parentIndex": 532, + "kind": "member" }, { - "ruleId": "CA1725", - "level": "error", - "message": { - "text": "In member 'SarifVersionOneToCurrentVisitor.VisitSarifLogVersionOne(SarifLogVersionOne)', change parameter name 'v1SarifLog' to 'node' in order to match the identifier as it has been declared in 'SarifRewritingVisitorVersionOne.VisitSarifLogVersionOne(SarifLogVersionOne)'." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Visitors/SarifVersionOneToCurrentVisitor.cs" - }, - "region": { - "startLine": 27, - "snippet": { - "text": " {" - } - }, - "contextRegion": { - "startLine": 26, - "startColumn": 1, - "endLine": 28, - "endColumn": 83, - "charOffset": 1018, - "charLength": 192, - "snippet": { - "text": " public override SarifLogVersionOne VisitSarifLogVersionOne(SarifLogVersionOne v1SarifLog)\r\n {\r\n SarifLog = new SarifLog(SarifVersion.TwoZeroZero.ConvertToSchemaUri()," - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifVersionOneToCurrentVisitor.VisitSarifLogVersionOne(Microsoft.CodeAnalysis.Sarif.VersionOne.SarifLogVersionOne)" - } - ], - "partialFingerprints": { - "UniqueId": "0#" - }, - "properties": { - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" - } + "name": "Instance", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Readers.EnumConverter.Instance", + "parentIndex": 532, + "kind": "member" }, { - "ruleId": "CA1062", - "level": "warning", - "message": { - "text": "In externally visible method 'SarifVersionOneToCurrentVisitor.VisitSarifLogVersionOne(SarifLogVersionOne)', validate parameter 'v1SarifLog' before using it." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Visitors/SarifVersionOneToCurrentVisitor.cs" - }, - "region": { - "startLine": 32, - "snippet": { - "text": " foreach (RunVersionOne v1Run in v1SarifLog.Runs)" - } - }, - "contextRegion": { - "startLine": 31, - "startColumn": 1, - "endLine": 33, - "endColumn": 14, - "charOffset": 1330, - "charLength": 77, - "snippet": { - "text": "\r\n foreach (RunVersionOne v1Run in v1SarifLog.Runs)\r\n {" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifVersionOneToCurrentVisitor.VisitSarifLogVersionOne(Microsoft.CodeAnalysis.Sarif.VersionOne.SarifLogVersionOne)" - } - ], - "partialFingerprints": { - "UniqueId": "0" - }, - "properties": { - "Category": "Microsoft.Design", - "FixCategory": "DependsOnFix" - } + "name": "FlagsEnumConverter", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Readers.FlagsEnumConverter", + "parentIndex": 529, + "kind": "type" }, { - "ruleId": "CA1064", - "level": "warning", - "message": { - "text": "Make exception class 'UnknownEncodingException' public." - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.UnknownEncodingException" - } - ], - "properties": { - "Category": "Microsoft.Design", - "FixCategory": "NonBreaking" - } + "name": "Instance", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Readers.FlagsEnumConverter.Instance", + "parentIndex": 535, + "kind": "member" }, { - "ruleId": "CA1032", - "level": "error", - "message": { - "text": "Add the following constructor to 'UnknownEncodingException': protected UnknownEncodingException(SerializationInfo, StreamingContext).", - "messageId": "MissingConstructor" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.UnknownEncodingException" - } - ], - "partialFingerprints": { - "UniqueId": "MissingConstructor" - }, - "properties": { - "Category": "Microsoft.Design", - "FixCategory": "NonBreaking" - } + "name": "WriteJson(Newtonsoft.Json.JsonWriter,System.Object,Newtonsoft.Json.JsonSerializer)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Readers.FlagsEnumConverter.WriteJson(Newtonsoft.Json.JsonWriter,System.Object,Newtonsoft.Json.JsonSerializer)", + "parentIndex": 535, + "kind": "member" }, { - "ruleId": "CA2237", - "level": "error", - "message": { - "text": "Add [Serializable] to 'UnknownEncodingException' as this type implements ISerializable." - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.UnknownEncodingException" - } - ], - "properties": { - "Category": "Microsoft.Usage", - "FixCategory": "NonBreaking" - } + "name": "PropertyBagConverter", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Readers.PropertyBagConverter", + "parentIndex": 529, + "kind": "type" }, { - "ruleId": "CA1704", - "level": "warning", - "message": { - "text": "Correct the spelling of 'Cpp' in member name 'MimeType.Cpp' or remove it entirely if it represents any sort of Hungarian notation.", - "messageId": "Member" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Writers.MimeType.Cpp" - } - ], - "partialFingerprints": { - "UniqueId": "Cpp#Member" - }, - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" - } + "name": "ReadJson(Newtonsoft.Json.JsonReader,System.Type,System.Object,Newtonsoft.Json.JsonSerializer)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Readers.PropertyBagConverter.ReadJson(Newtonsoft.Json.JsonReader,System.Type,System.Object,Newtonsoft.Json.JsonSerializer)", + "parentIndex": 538, + "kind": "member" }, { - "ruleId": "CA1057", - "level": "error", - "message": { - "text": "Refactor 'MimeType.DetermineFromFileExtension(string)' so that it builds a System.Uri object from 'path', and then calls 'MimeType.DetermineFromFileExtension(Uri)'." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Writers/MimeType.cs" - }, - "region": { - "startLine": 17, - "snippet": { - "text": " {" - } - }, - "contextRegion": { - "startLine": 16, - "startColumn": 1, - "endLine": 18, - "endColumn": 30, - "charOffset": 724, - "charLength": 110, - "snippet": { - "text": " public static string DetermineFromFileExtension(string path)\r\n {\r\n if (path == null)" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Writers.MimeType.DetermineFromFileExtension(System.String)" - } - ], - "properties": { - "Category": "Microsoft.Design", - "FixCategory": "NonBreaking" - } + "name": "ResultDiffingVisitor", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Readers.ResultDiffingVisitor", + "parentIndex": 529, + "kind": "type" }, { - "ruleId": "CA1704", - "level": "warning", - "message": { - "text": "Correct the spelling of 'Sarif' in member name 'MimeType.Sarif' or remove it entirely if it represents any sort of Hungarian notation.", - "messageId": "Member" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Writers.MimeType.Sarif" - } - ], - "partialFingerprints": { - "UniqueId": "Sarif#Member" - }, - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" - } + "name": ".ctor(Microsoft.CodeAnalysis.Sarif.SarifLog)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Readers.ResultDiffingVisitor..ctor(Microsoft.CodeAnalysis.Sarif.SarifLog)", + "parentIndex": 540, + "kind": "member" }, { - "ruleId": "CA2208", - "level": "error", - "message": { - "text": "Method 'ResultLogJsonWriter.Initialize(Run)' passes 'Tool' as the 'paramName' argument to a 'ArgumentNullException' constructor. Replace this argument with one of the method's parameter names. Note that the provided parameter name should have the exact casing as declared on the method.", - "messageId": "IncorrectParameterName" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Writers/ResultLogJsonWriter.cs" - }, - "region": { - "startLine": 64, - "snippet": { - "text": " throw new ArgumentNullException(nameof(run.Tool));" - } - }, - "contextRegion": { - "startLine": 63, - "startColumn": 1, - "endLine": 65, - "endColumn": 14, - "charOffset": 2484, - "charLength": 96, - "snippet": { - "text": " {\r\n throw new ArgumentNullException(nameof(run.Tool));\r\n }" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Writers.ResultLogJsonWriter.Initialize(Microsoft.CodeAnalysis.Sarif.Run)" - } - ], - "partialFingerprints": { - "UniqueId": "IncorrectParameterName" - }, - "properties": { - "Level": "CriticalError", - "Category": "Microsoft.Usage", - "FixCategory": "NonBreaking" - } + "name": "AbsentResults", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Readers.ResultDiffingVisitor.AbsentResults", + "parentIndex": 540, + "kind": "member" }, { - "ruleId": "CA1704", - "level": "warning", - "message": { - "text": "Correct the spelling of 'Sarif' in type name 'SarifLogger'.", - "messageId": "Type" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Writers.SarifLogger" - } - ], - "partialFingerprints": { - "UniqueId": "Sarif#Type" - }, - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" - } + "name": "NewResults", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Readers.ResultDiffingVisitor.NewResults", + "parentIndex": 540, + "kind": "member" }, { - "ruleId": "CA1026", - "level": "error", - "message": { - "text": "Replace method 'SarifLogger.SarifLogger(TextWriter, LoggingOptions, OptionallyEmittedData, Tool, Run, IEnumerable, IEnumerable, IEnumerable, string)' with an overload that supplies all default arguments." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Writers/SarifLogger.cs" - }, - "region": { - "startLine": 124, - "snippet": { - "text": " string defaultFileEncoding = null) : this(textWriter, loggingOptions)" - } - }, - "contextRegion": { - "startLine": 123, - "startColumn": 1, - "endLine": 125, - "endColumn": 10, - "charOffset": 4927, - "charLength": 159, - "snippet": { - "text": " IEnumerable invocationPropertiesToLog = null,\r\n string defaultFileEncoding = null) : this(textWriter, loggingOptions)\r\n {" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Writers.SarifLogger..ctor(System.IO.TextWriter,Microsoft.CodeAnalysis.Sarif.Writers.LoggingOptions,Microsoft.CodeAnalysis.Sarif.OptionallyEmittedData,Microsoft.CodeAnalysis.Sarif.Tool,Microsoft.CodeAnalysis.Sarif.Run,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,System.String)" - } - ], - "properties": { - "Category": "Microsoft.Design", - "FixCategory": "Breaking" - } + "name": "SharedResults", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Readers.ResultDiffingVisitor.SharedResults", + "parentIndex": 540, + "kind": "member" }, { - "ruleId": "CA1026", - "level": "error", - "message": { - "text": "Replace method 'SarifLogger.SarifLogger(string, LoggingOptions, OptionallyEmittedData, Tool, Run, IEnumerable, IEnumerable, IEnumerable, string)' with an overload that supplies all default arguments." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Writers/SarifLogger.cs" - }, - "region": { - "startLine": 105, - "snippet": { - "text": " : this(new StreamWriter(new FileStream(outputFilePath, FileMode.Create, FileAccess.Write, FileShare.None))," - } - }, - "contextRegion": { - "startLine": 104, - "startColumn": 1, - "endLine": 106, - "endColumn": 34, - "charOffset": 4127, - "charLength": 202, - "snippet": { - "text": " string defaultFileEncoding = null)\r\n : this(new StreamWriter(new FileStream(outputFilePath, FileMode.Create, FileAccess.Write, FileShare.None)),\r\n loggingOptions," - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Writers.SarifLogger..ctor(System.String,Microsoft.CodeAnalysis.Sarif.Writers.LoggingOptions,Microsoft.CodeAnalysis.Sarif.OptionallyEmittedData,Microsoft.CodeAnalysis.Sarif.Tool,Microsoft.CodeAnalysis.Sarif.Run,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,System.String)" - } - ], - "properties": { - "Category": "Microsoft.Design", - "FixCategory": "Breaking" - } + "name": "RuleDictionaryConverter", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Readers.RuleDictionaryConverter", + "parentIndex": 529, + "kind": "type" }, { - "ruleId": "CA2000", - "level": "warning", - "message": { - "text": "In method 'SarifLogger.SarifLogger(string, LoggingOptions, OptionallyEmittedData, Tool, Run, IEnumerable, IEnumerable, IEnumerable, string)', call System.IDisposable.Dispose on object 'new FileStream(outputFilePath, FileMode.Create, FileAccess.Write, FileShare.None)' before all references to it are out of scope.", - "messageId": "NonExceptionEdge" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Writers/SarifLogger.cs" - }, - "region": { - "startLine": 105, - "snippet": { - "text": " : this(new StreamWriter(new FileStream(outputFilePath, FileMode.Create, FileAccess.Write, FileShare.None))," - } - }, - "contextRegion": { - "startLine": 104, - "startColumn": 1, - "endLine": 106, - "endColumn": 34, - "charOffset": 4127, - "charLength": 202, - "snippet": { - "text": " string defaultFileEncoding = null)\r\n : this(new StreamWriter(new FileStream(outputFilePath, FileMode.Create, FileAccess.Write, FileShare.None)),\r\n loggingOptions," - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Writers.SarifLogger..ctor(System.String,Microsoft.CodeAnalysis.Sarif.Writers.LoggingOptions,Microsoft.CodeAnalysis.Sarif.OptionallyEmittedData,Microsoft.CodeAnalysis.Sarif.Tool,Microsoft.CodeAnalysis.Sarif.Run,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,System.String)" - } - ], - "partialFingerprints": { - "UniqueId": "NonExceptionEdge" - }, - "properties": { - "Category": "Microsoft.Reliability", - "FixCategory": "DependsOnFix" - } + "name": "Instance", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Readers.RuleDictionaryConverter.Instance", + "parentIndex": 545, + "kind": "member" }, { - "ruleId": "CA1801", - "level": "warning", - "message": { - "text": "Parameter 'analysisTargets' of 'SarifLogger.SarifLogger(string, LoggingOptions, OptionallyEmittedData, Tool, Run, IEnumerable, IEnumerable, IEnumerable, string)' is never used. Remove the parameter or use it in the method body." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Writers/SarifLogger.cs" - }, - "region": { - "startLine": 105, - "snippet": { - "text": " : this(new StreamWriter(new FileStream(outputFilePath, FileMode.Create, FileAccess.Write, FileShare.None))," - } - }, - "contextRegion": { - "startLine": 104, - "startColumn": 1, - "endLine": 106, - "endColumn": 34, - "charOffset": 4127, - "charLength": 202, - "snippet": { - "text": " string defaultFileEncoding = null)\r\n : this(new StreamWriter(new FileStream(outputFilePath, FileMode.Create, FileAccess.Write, FileShare.None)),\r\n loggingOptions," - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Writers.SarifLogger..ctor(System.String,Microsoft.CodeAnalysis.Sarif.Writers.LoggingOptions,Microsoft.CodeAnalysis.Sarif.OptionallyEmittedData,Microsoft.CodeAnalysis.Sarif.Tool,Microsoft.CodeAnalysis.Sarif.Run,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,System.String)" - } - ], - "partialFingerprints": { - "UniqueId": "analysisTargets" - }, - "properties": { - "Category": "Microsoft.Usage", - "FixCategory": "DependsOnFix" - } + "name": "SarifContractResolver", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Readers.SarifContractResolver", + "parentIndex": 529, + "kind": "type" }, { - "ruleId": "CA1801", - "level": "warning", - "message": { - "text": "Parameter 'defaultFileEncoding' of 'SarifLogger.SarifLogger(string, LoggingOptions, OptionallyEmittedData, Tool, Run, IEnumerable, IEnumerable, IEnumerable, string)' is never used. Remove the parameter or use it in the method body." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Writers/SarifLogger.cs" - }, - "region": { - "startLine": 105, - "snippet": { - "text": " : this(new StreamWriter(new FileStream(outputFilePath, FileMode.Create, FileAccess.Write, FileShare.None))," - } - }, - "contextRegion": { - "startLine": 104, - "startColumn": 1, - "endLine": 106, - "endColumn": 34, - "charOffset": 4127, - "charLength": 202, - "snippet": { - "text": " string defaultFileEncoding = null)\r\n : this(new StreamWriter(new FileStream(outputFilePath, FileMode.Create, FileAccess.Write, FileShare.None)),\r\n loggingOptions," - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Writers.SarifLogger..ctor(System.String,Microsoft.CodeAnalysis.Sarif.Writers.LoggingOptions,Microsoft.CodeAnalysis.Sarif.OptionallyEmittedData,Microsoft.CodeAnalysis.Sarif.Tool,Microsoft.CodeAnalysis.Sarif.Run,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,System.String)" - } - ], - "partialFingerprints": { - "UniqueId": "defaultFileEncoding" - }, - "properties": { - "Category": "Microsoft.Usage", - "FixCategory": "DependsOnFix" - } + "name": "Instance", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Readers.SarifContractResolver.Instance", + "parentIndex": 547, + "kind": "member" }, { - "ruleId": "CA1502", - "level": "warning", - "message": { - "text": "'SarifLogger.CaptureFilesInResult(Result)' has a cyclomatic complexity of 31. Rewrite or refactor the method to reduce complexity to 25." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Writers/SarifLogger.cs" - }, - "region": { - "startLine": 289, - "snippet": { - "text": " {" - } - }, - "contextRegion": { - "startLine": 288, - "startColumn": 1, - "endLine": 290, - "endColumn": 47, - "charOffset": 10722, - "charLength": 115, - "snippet": { - "text": " private void CaptureFilesInResult(Result result)\r\n {\r\n if (result.AnalysisTarget != null)" - } - } - }, - "fullyQualifiedLogicalName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Writers.SarifLogger.CaptureFilesInResult(Microsoft.CodeAnalysis.Sarif.Result)" - } - ], - "properties": { - "Category": "Microsoft.Maintainability", - "FixCategory": "NonBreaking" - } + "name": "SarifContractResolverVersionOne", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Readers.SarifContractResolverVersionOne", + "parentIndex": 529, + "kind": "type" }, { - "ruleId": "CA2243", - "level": "warning", - "message": { - "text": "In the constructor of 'AssemblyInformationalVersionAttribute', change the value of argument 'informationalVersion', which is currently \"2.0.0-csd.1.0.1\", to something that can be correctly parsed as 'Version'." - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.driver.dll" - } - ], - "properties": { - "Category": "Microsoft.Usage", - "FixCategory": "NonBreaking" - } + "name": "Instance", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Readers.SarifContractResolverVersionOne.Instance", + "parentIndex": 549, + "kind": "member" }, { - "ruleId": "CA1704", - "level": "warning", - "message": { - "text": "Correct the spelling of 'Sarif' in assembly name 'Sarif.Driver.dll'.", - "messageId": "Assembly" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.driver.dll" - } - ], - "partialFingerprints": { - "UniqueId": "Sarif#Assembly" - }, - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" - } + "name": "SarifVersionConverter", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Readers.SarifVersionConverter", + "parentIndex": 529, + "kind": "type" }, { - "ruleId": "CA1014", - "level": "error", - "message": { - "text": "Mark 'Sarif.Driver.dll' with CLSCompliant(true) because it exposes externally visible types." - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.driver.dll" - } - ], - "properties": { - "Category": "Microsoft.Design", - "FixCategory": "NonBreaking" - } + "name": "Instance", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Readers.SarifVersionConverter.Instance", + "parentIndex": 551, + "kind": "member" }, { - "ruleId": "CA1824", - "level": "warning", - "message": { - "text": "Because assembly 'Sarif.Driver.dll' contains a ResX-based resource file, mark it with the NeutralResourcesLanguage attribute, specifying the language of the resources within the assembly. This could improve lookup performance the first time a resource is retrieved." - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.driver.dll" - } - ], - "properties": { - "Category": "Microsoft.Performance", - "FixCategory": "NonBreaking" - } + "name": "UriConverter", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Readers.UriConverter", + "parentIndex": 529, + "kind": "type" }, { - "ruleId": "CA1063", - "level": "error", - "message": { - "text": "Provide an overridable implementation of Dispose(bool) on 'AggregatingLogger' or mark the type as sealed. A call to Dispose(false) should only clean up native resources. A call to Dispose(true) should clean up both managed and native resources.", - "messageId": "ProvideDisposeBool" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.AggregatingLogger" - } - ], - "partialFingerprints": { - "UniqueId": "ProvideDisposeBool" - }, - "properties": { - "Category": "Microsoft.Design", - "FixCategory": "Breaking" - } + "name": "Instance", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Readers.UriConverter.Instance", + "parentIndex": 553, + "kind": "member" }, { - "ruleId": "CA1816", - "level": "warning", - "message": { - "text": "Change 'AggregatingLogger.Dispose()' to call 'GC.SuppressFinalize(object)'. This will prevent derived types that introduce a finalizer from needing to re-implement 'IDisposable' to call it.", - "messageId": "NotCalled" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Driver/Sdk/AggregatingLogger.cs" - }, - "region": { - "startLine": 25, - "snippet": { - "text": " {" - } - }, - "contextRegion": { - "startLine": 24, - "startColumn": 1, - "endLine": 26, - "endColumn": 56, - "charOffset": 709, - "charLength": 97, - "snippet": { - "text": " public void Dispose()\r\n {\r\n foreach (IAnalysisLogger logger in Loggers)" - } - } - }, - "fullyQualifiedLogicalName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.AggregatingLogger.Dispose()" - } - ], - "partialFingerprints": { - "UniqueId": "NotCalled" - }, - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Usage", - "FixCategory": "NonBreaking" - } + "name": "VersionConverter", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Readers.VersionConverter", + "parentIndex": 529, + "kind": "type" }, { - "ruleId": "CA1063", - "level": "error", - "message": { - "text": "Modify 'AggregatingLogger.Dispose()' so that it calls Dispose(true), then calls GC.SuppressFinalize on the current object instance ('this' or 'Me' in Visual Basic), and then returns.", - "messageId": "DisposeImplementation" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Driver/Sdk/AggregatingLogger.cs" - }, - "region": { - "startLine": 25, - "snippet": { - "text": " {" - } - }, - "contextRegion": { - "startLine": 24, - "startColumn": 1, - "endLine": 26, - "endColumn": 56, - "charOffset": 709, - "charLength": 97, - "snippet": { - "text": " public void Dispose()\r\n {\r\n foreach (IAnalysisLogger logger in Loggers)" - } - } - }, - "fullyQualifiedLogicalName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.AggregatingLogger.Dispose()" - } - ], - "partialFingerprints": { - "UniqueId": "DisposeImplementation" - }, - "properties": { - "Category": "Microsoft.Design", - "FixCategory": "Breaking" - } + "name": "Instance", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Readers.VersionConverter.Instance", + "parentIndex": 555, + "kind": "member" }, { - "ruleId": "CA2227", - "level": "warning", - "message": { - "text": "Change 'AggregatingLogger.Loggers' to be read-only by removing the property setter." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Driver/Sdk/AggregatingLogger.cs" - }, - "region": { - "startLine": 22, - "snippet": { - "text": " public IList Loggers { get; set; }" - } - }, - "contextRegion": { - "startLine": 21, - "startColumn": 1, - "endLine": 23, - "endColumn": 1, - "charOffset": 644, - "charLength": 63, - "snippet": { - "text": "\r\n public IList Loggers { get; set; }\r\n" - } - } - }, - "fullyQualifiedLogicalName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.AggregatingLogger.Loggers" - } - ], - "properties": { - "Category": "Microsoft.Usage", - "FixCategory": "Breaking" - } + "name": "Microsoft.CodeAnalysis.Sarif.VersionOne", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne", + "parentIndex": 228, + "kind": "namespace" }, { - "ruleId": "CA1063", - "level": "error", - "message": { - "text": "Provide an overridable implementation of Dispose(bool) on 'AnalysisContext' or mark the type as sealed. A call to Dispose(false) should only clean up native resources. A call to Dispose(true) should clean up both managed and native resources.", - "messageId": "ProvideDisposeBool" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.AnalysisContext" - } - ], - "partialFingerprints": { - "UniqueId": "ProvideDisposeBool" - }, - "properties": { - "Category": "Microsoft.Design", - "FixCategory": "Breaking" - } + "name": "AlgorithmKindVersionOne", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.AlgorithmKindVersionOne", + "parentIndex": 557, + "kind": "type" }, { - "ruleId": "CA1816", - "level": "warning", - "message": { - "text": "Change 'AnalysisContext.Dispose()' to call 'GC.SuppressFinalize(object)'. This will prevent derived types that introduce a finalizer from needing to re-implement 'IDisposable' to call it.", - "messageId": "NotCalled" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Driver/Sdk/AnalysisContext.cs" - }, - "region": { - "startLine": 27, - "snippet": { - "text": " public void Dispose() { }" - } - }, - "contextRegion": { - "startLine": 26, - "startColumn": 1, - "endLine": 28, - "endColumn": 6, - "charOffset": 719, - "charLength": 42, - "snippet": { - "text": "\r\n public void Dispose() { }\r\n }" - } - } - }, - "fullyQualifiedLogicalName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.AnalysisContext.Dispose()" - } - ], - "partialFingerprints": { - "UniqueId": "NotCalled" - }, - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Usage", - "FixCategory": "NonBreaking" - } + "name": "Authentihash", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.AlgorithmKindVersionOne.Authentihash", + "parentIndex": 558, + "kind": "member" }, { - "ruleId": "CA1063", - "level": "error", - "message": { - "text": "Modify 'AnalysisContext.Dispose()' so that it calls Dispose(true), then calls GC.SuppressFinalize on the current object instance ('this' or 'Me' in Visual Basic), and then returns.", - "messageId": "DisposeImplementation" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Driver/Sdk/AnalysisContext.cs" - }, - "region": { - "startLine": 27, - "snippet": { - "text": " public void Dispose() { }" - } - }, - "contextRegion": { - "startLine": 26, - "startColumn": 1, - "endLine": 28, - "endColumn": 6, - "charOffset": 719, - "charLength": 42, - "snippet": { - "text": "\r\n public void Dispose() { }\r\n }" - } - } - }, - "fullyQualifiedLogicalName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.AnalysisContext.Dispose()" - } - ], - "partialFingerprints": { - "UniqueId": "DisposeImplementation" - }, - "properties": { - "Category": "Microsoft.Design", - "FixCategory": "Breaking" - } + "name": "Ecoh", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.AlgorithmKindVersionOne.Ecoh", + "parentIndex": 558, + "kind": "member" }, { - "ruleId": "CA2227", - "level": "warning", - "message": { - "text": "Change 'AnalysisContext.Policy' to be read-only by removing the property setter." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Driver/Sdk/AnalysisContext.cs" - }, - "region": { - "startLine": 19, - "snippet": { - "text": " public PropertiesDictionary Policy { get; set; }" - } - }, - "contextRegion": { - "startLine": 18, - "startColumn": 1, - "endLine": 20, - "endColumn": 1, - "charOffset": 501, - "charLength": 60, - "snippet": { - "text": "\r\n public PropertiesDictionary Policy { get; set; }\r\n" - } - } - }, - "fullyQualifiedLogicalName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.AnalysisContext.Policy" - } - ], - "properties": { - "Category": "Microsoft.Usage", - "FixCategory": "Breaking" - } + "name": "Fsb", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.AlgorithmKindVersionOne.Fsb", + "parentIndex": 558, + "kind": "member" }, { - "ruleId": "CA1031", - "level": "error", - "message": { - "text": "Modify 'AnalyzeCommandBase.AnalyzeTarget(IEnumerable>, TContext, HashSet)' to catch a more specific exception than 'Exception' or rethrow the exception." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Driver/Sdk/AnalyzeCommandBase.cs" - }, - "region": { - "startLine": 554, - "snippet": { - "text": " catch (Exception ex)" - } - }, - "contextRegion": { - "startLine": 553, - "startColumn": 1, - "endLine": 555, - "endColumn": 18, - "charOffset": 21419, - "charLength": 74, - "snippet": { - "text": " }\r\n catch (Exception ex)\r\n {" - } - } - }, - "fullyQualifiedLogicalName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.AnalyzeCommandBase`2.AnalyzeTarget(System.Collections.Generic.IEnumerable`1>,!0,System.Collections.Generic.HashSet`1)" - } - ], - "properties": { - "Level": "CriticalError", - "Category": "Microsoft.Design", - "FixCategory": "NonBreaking" - } + "name": "Gost", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.AlgorithmKindVersionOne.Gost", + "parentIndex": 558, + "kind": "member" }, { - "ruleId": "CA1006", - "level": "error", - "message": { - "text": "Consider a design where 'AnalyzeCommandBase.AnalyzeTarget(IEnumerable>, TContext, HashSet)' doesn't nest generic type 'IEnumerable>'." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Driver/Sdk/AnalyzeCommandBase.cs" - }, - "region": { - "startLine": 543, - "snippet": { - "text": " {" - } - }, - "contextRegion": { - "startLine": 542, - "startColumn": 1, - "endLine": 544, - "endColumn": 61, - "charOffset": 20985, - "charLength": 211, - "snippet": { - "text": " protected virtual void AnalyzeTarget(IEnumerable> skimmers, TContext context, HashSet disabledSkimmers)\r\n {\r\n foreach (ISkimmer skimmer in skimmers)" - } - } - }, - "fullyQualifiedLogicalName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.AnalyzeCommandBase`2.AnalyzeTarget(System.Collections.Generic.IEnumerable`1>,!0,System.Collections.Generic.HashSet`1)" - } - ], - "properties": { - "Level": "CriticalError", - "Category": "Microsoft.Design", - "FixCategory": "Breaking" - } + "name": "Groestl", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.AlgorithmKindVersionOne.Groestl", + "parentIndex": 558, + "kind": "member" }, { - "ruleId": "CA1062", - "level": "warning", - "message": { - "text": "In externally visible method 'AnalyzeCommandBase.AnalyzeTarget(IEnumerable>, TContext, HashSet)', validate parameter 'skimmers' before using it." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Driver/Sdk/AnalyzeCommandBase.cs" - }, - "region": { - "startLine": 544, - "snippet": { - "text": " foreach (ISkimmer skimmer in skimmers)" - } - }, - "contextRegion": { - "startLine": 543, - "startColumn": 1, - "endLine": 545, - "endColumn": 14, - "charOffset": 21125, - "charLength": 86, - "snippet": { - "text": " {\r\n foreach (ISkimmer skimmer in skimmers)\r\n {" - } - } - }, - "fullyQualifiedLogicalName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.AnalyzeCommandBase`2.AnalyzeTarget(System.Collections.Generic.IEnumerable`1>,!0,System.Collections.Generic.HashSet`1)" - } - ], - "partialFingerprints": { - "UniqueId": "0" - }, - "properties": { - "Category": "Microsoft.Design", - "FixCategory": "DependsOnFix" - } + "name": "Haval", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.AlgorithmKindVersionOne.Haval", + "parentIndex": 558, + "kind": "member" }, { - "ruleId": "CA1062", - "level": "warning", - "message": { - "text": "In externally visible method 'AnalyzeCommandBase.AnalyzeTarget(IEnumerable>, TContext, HashSet)', validate parameter 'disabledSkimmers' before using it." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Driver/Sdk/AnalyzeCommandBase.cs" - }, - "region": { - "startLine": 546, - "snippet": { - "text": " if (disabledSkimmers.Contains(skimmer.Id)) { continue; }" - } - }, - "contextRegion": { - "startLine": 545, - "startColumn": 1, - "endLine": 547, - "endColumn": 1, - "charOffset": 21198, - "charLength": 89, - "snippet": { - "text": " {\r\n if (disabledSkimmers.Contains(skimmer.Id)) { continue; }\r\n" - } - } - }, - "fullyQualifiedLogicalName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.AnalyzeCommandBase`2.AnalyzeTarget(System.Collections.Generic.IEnumerable`1>,!0,System.Collections.Generic.HashSet`1)" - } - ], - "partialFingerprints": { - "UniqueId": "2" - }, - "properties": { - "Category": "Microsoft.Design", - "FixCategory": "DependsOnFix" - } + "name": "Sdhash", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.AlgorithmKindVersionOne.Sdhash", + "parentIndex": 558, + "kind": "member" }, { - "ruleId": "CA1006", - "level": "error", - "message": { - "text": "Consider a design where 'AnalyzeCommandBase.AnalyzeTargets(TOptions, IEnumerable>, TContext, IEnumerable)' doesn't nest generic type 'IEnumerable>'." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Driver/Sdk/AnalyzeCommandBase.cs" - }, - "region": { - "startLine": 476, - "snippet": { - "text": " {" - } - }, - "contextRegion": { - "startLine": 475, - "startColumn": 1, - "endLine": 477, - "endColumn": 70, - "charOffset": 18350, - "charLength": 122, - "snippet": { - "text": " IEnumerable targets)\r\n {\r\n HashSet disabledSkimmers = new HashSet();" - } - } - }, - "fullyQualifiedLogicalName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.AnalyzeCommandBase`2.AnalyzeTargets(!1,System.Collections.Generic.IEnumerable`1>,!0,System.Collections.Generic.IEnumerable`1)" - } - ], - "properties": { - "Level": "CriticalError", - "Category": "Microsoft.Design", - "FixCategory": "Breaking" - } + "name": "Sha1", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.AlgorithmKindVersionOne.Sha1", + "parentIndex": 558, + "kind": "member" }, { - "ruleId": "CA1062", - "level": "warning", - "message": { - "text": "In externally visible method 'AnalyzeCommandBase.AnalyzeTargets(TOptions, IEnumerable>, TContext, IEnumerable)', validate parameter 'skimmers' before using it." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Driver/Sdk/AnalyzeCommandBase.cs" - }, - "region": { - "startLine": 479, - "snippet": { - "text": " foreach (ISkimmer skimmer in skimmers)" - } - }, - "contextRegion": { - "startLine": 478, - "startColumn": 1, - "endLine": 480, - "endColumn": 14, - "charOffset": 18474, - "charLength": 77, - "snippet": { - "text": "\r\n foreach (ISkimmer skimmer in skimmers)\r\n {" - } - } - }, - "fullyQualifiedLogicalName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.AnalyzeCommandBase`2.AnalyzeTargets(!1,System.Collections.Generic.IEnumerable`1>,!0,System.Collections.Generic.IEnumerable`1)" - } - ], - "partialFingerprints": { - "UniqueId": "1" - }, - "properties": { - "Category": "Microsoft.Design", - "FixCategory": "DependsOnFix" - } + "name": "Sha224", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.AlgorithmKindVersionOne.Sha224", + "parentIndex": 558, + "kind": "member" }, { - "ruleId": "CA1062", - "level": "warning", - "message": { - "text": "In externally visible method 'AnalyzeCommandBase.AnalyzeTargets(TOptions, IEnumerable>, TContext, IEnumerable)', validate parameter 'targets' before using it." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Driver/Sdk/AnalyzeCommandBase.cs" - }, - "region": { - "startLine": 500, - "snippet": { - "text": " foreach (string target in targets)" - } - }, - "contextRegion": { - "startLine": 499, - "startColumn": 1, - "endLine": 501, - "endColumn": 14, - "charOffset": 19445, - "charLength": 63, - "snippet": { - "text": "\r\n foreach (string target in targets)\r\n {" - } - } - }, - "fullyQualifiedLogicalName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.AnalyzeCommandBase`2.AnalyzeTargets(!1,System.Collections.Generic.IEnumerable`1>,!0,System.Collections.Generic.IEnumerable`1)" - } - ], - "partialFingerprints": { - "UniqueId": "3" - }, - "properties": { - "Category": "Microsoft.Design", - "FixCategory": "DependsOnFix" - } + "name": "Sha256", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.AlgorithmKindVersionOne.Sha256", + "parentIndex": 558, + "kind": "member" }, { - "ruleId": "CA1500", - "level": "error", - "message": { - "text": "'rootContext', a parameter declared in 'AnalyzeCommandBase.AnalyzeTargets(TOptions, IEnumerable>, TContext, IEnumerable)', has the same name as an instance field on the type. Change the name of one of these items.", - "messageId": "Parameter" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Driver/Sdk/AnalyzeCommandBase.cs" - }, - "region": { - "startLine": 476, - "snippet": { - "text": " {" - } - }, - "contextRegion": { - "startLine": 475, - "startColumn": 1, - "endLine": 477, - "endColumn": 70, - "charOffset": 18350, - "charLength": 122, - "snippet": { - "text": " IEnumerable targets)\r\n {\r\n HashSet disabledSkimmers = new HashSet();" - } - } - }, - "fullyQualifiedLogicalName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.AnalyzeCommandBase`2.AnalyzeTargets(!1,System.Collections.Generic.IEnumerable`1>,!0,System.Collections.Generic.IEnumerable`1)" - } - ], - "partialFingerprints": { - "UniqueId": "rootContext#Parameter" - }, - "properties": { - "Category": "Microsoft.Maintainability", - "FixCategory": "NonBreaking" - } + "name": "Sha3", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.AlgorithmKindVersionOne.Sha3", + "parentIndex": 558, + "kind": "member" }, { - "ruleId": "CA1026", - "level": "error", - "message": { - "text": "Replace method 'AnalyzeCommandBase.CreateContext(TOptions, IAnalysisLogger, RuntimeConditions, string)' with an overload that supplies all default arguments." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Driver/Sdk/AnalyzeCommandBase.cs" - }, - "region": { - "startLine": 267, - "snippet": { - "text": " {" - } - }, - "contextRegion": { - "startLine": 266, - "startColumn": 1, - "endLine": 268, - "endColumn": 42, - "charOffset": 10260, - "charLength": 89, - "snippet": { - "text": " string filePath = null)\r\n {\r\n var context = new TContext();" - } - } - }, - "fullyQualifiedLogicalName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.AnalyzeCommandBase`2.CreateContext(!1,Microsoft.CodeAnalysis.Sarif.IAnalysisLogger,Microsoft.CodeAnalysis.Sarif.RuntimeConditions,System.String)" - } - ], - "properties": { - "Category": "Microsoft.Design", - "FixCategory": "Breaking" - } + "name": "Sha384", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.AlgorithmKindVersionOne.Sha384", + "parentIndex": 558, + "kind": "member" }, { - "ruleId": "CA1031", - "level": "error", - "message": { - "text": "Modify 'AnalyzeCommandBase.CreateSkimmers(TContext)' to catch a more specific exception than 'Exception' or rethrow the exception." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Driver/Sdk/AnalyzeCommandBase.cs" - }, - "region": { - "startLine": 432, - "snippet": { - "text": " catch (Exception ex)" - } - }, - "contextRegion": { - "startLine": 431, - "startColumn": 1, - "endLine": 433, - "endColumn": 14, - "charOffset": 16883, - "charLength": 62, - "snippet": { - "text": " }\r\n catch (Exception ex)\r\n {" - } - } - }, - "fullyQualifiedLogicalName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.AnalyzeCommandBase`2.CreateSkimmers(!0)" - } - ], - "properties": { - "Level": "CriticalError", - "Category": "Microsoft.Design", - "FixCategory": "NonBreaking" - } + "name": "Sha512", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.AlgorithmKindVersionOne.Sha512", + "parentIndex": 558, + "kind": "member" }, { - "ruleId": "CA1000", - "level": "error", - "message": { - "text": "Remove 'AnalyzeCommandBase.DefaultPolicyName' from 'AnalyzeCommandBase' or make it an instance member." - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.AnalyzeCommandBase`2.DefaultPolicyName" - } - ], - "properties": { - "Category": "Microsoft.Design", - "FixCategory": "Breaking" - } + "name": "Snefru", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.AlgorithmKindVersionOne.Snefru", + "parentIndex": 558, + "kind": "member" }, { - "ruleId": "CA1006", - "level": "error", - "message": { - "text": "Consider a design where 'AnalyzeCommandBase.DetermineApplicabilityAndAnalyze(TOptions, IEnumerable>, TContext, string, HashSet)' doesn't nest generic type 'IEnumerable>'." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Driver/Sdk/AnalyzeCommandBase.cs" - }, - "region": { - "startLine": 515, - "snippet": { - "text": " {" - } - }, - "contextRegion": { - "startLine": 514, - "startColumn": 1, - "endLine": 516, - "endColumn": 105, - "charOffset": 19991, - "charLength": 162, - "snippet": { - "text": " HashSet disabledSkimmers)\r\n {\r\n var context = CreateContext(options, rootContext.Logger, rootContext.RuntimeErrors, target);" - } - } - }, - "fullyQualifiedLogicalName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.AnalyzeCommandBase`2.DetermineApplicabilityAndAnalyze(!1,System.Collections.Generic.IEnumerable`1>,!0,System.String,System.Collections.Generic.HashSet`1)" - } - ], - "properties": { - "Level": "CriticalError", - "Category": "Microsoft.Design", - "FixCategory": "Breaking" - } + "name": "Ssdeep", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.AlgorithmKindVersionOne.Ssdeep", + "parentIndex": 558, + "kind": "member" }, { - "ruleId": "CA1500", - "level": "error", - "message": { - "text": "'rootContext', a parameter declared in 'AnalyzeCommandBase.DetermineApplicabilityAndAnalyze(TOptions, IEnumerable>, TContext, string, HashSet)', has the same name as an instance field on the type. Change the name of one of these items.", - "messageId": "Parameter" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Driver/Sdk/AnalyzeCommandBase.cs" - }, - "region": { - "startLine": 515, - "snippet": { - "text": " {" - } - }, - "contextRegion": { - "startLine": 514, - "startColumn": 1, - "endLine": 516, - "endColumn": 105, - "charOffset": 19991, - "charLength": 162, - "snippet": { - "text": " HashSet disabledSkimmers)\r\n {\r\n var context = CreateContext(options, rootContext.Logger, rootContext.RuntimeErrors, target);" - } - } - }, - "fullyQualifiedLogicalName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.AnalyzeCommandBase`2.DetermineApplicabilityAndAnalyze(!1,System.Collections.Generic.IEnumerable`1>,!0,System.String,System.Collections.Generic.HashSet`1)" - } - ], - "partialFingerprints": { - "UniqueId": "rootContext#Parameter" - }, - "properties": { - "Category": "Microsoft.Maintainability", - "FixCategory": "NonBreaking" - } + "name": "Swifft", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.AlgorithmKindVersionOne.Swifft", + "parentIndex": 558, + "kind": "member" }, { - "ruleId": "CA1031", - "level": "error", - "message": { - "text": "Modify 'AnalyzeCommandBase.DetermineApplicabilityForTarget(IEnumerable>, TContext, HashSet)' to catch a more specific exception than 'Exception' or rethrow the exception." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Driver/Sdk/AnalyzeCommandBase.cs" - }, - "region": { - "startLine": 581, - "snippet": { - "text": " catch (Exception ex)" - } - }, - "contextRegion": { - "startLine": 580, - "startColumn": 1, - "endLine": 582, - "endColumn": 18, - "charOffset": 22438, - "charLength": 74, - "snippet": { - "text": " }\r\n catch (Exception ex)\r\n {" - } - } - }, - "fullyQualifiedLogicalName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.AnalyzeCommandBase`2.DetermineApplicabilityForTarget(System.Collections.Generic.IEnumerable`1>,!0,System.Collections.Generic.HashSet`1)" - } - ], - "properties": { - "Level": "CriticalError", - "Category": "Microsoft.Design", - "FixCategory": "NonBreaking" - } + "name": "Tlsh", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.AlgorithmKindVersionOne.Tlsh", + "parentIndex": 558, + "kind": "member" }, { - "ruleId": "CA1006", - "level": "error", - "message": { - "text": "Consider a design where 'AnalyzeCommandBase.DetermineApplicabilityForTarget(IEnumerable>, TContext, HashSet)' doesn't nest generic type 'IEnumerable>'." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Driver/Sdk/AnalyzeCommandBase.cs" - }, - "region": { - "startLine": 565, - "snippet": { - "text": " {" - } - }, - "contextRegion": { - "startLine": 564, - "startColumn": 1, - "endLine": 566, - "endColumn": 68, - "charOffset": 21838, - "charLength": 125, - "snippet": { - "text": " HashSet disabledSkimmers)\r\n {\r\n var candidateSkimmers = new List>();" - } - } - }, - "fullyQualifiedLogicalName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.AnalyzeCommandBase`2.DetermineApplicabilityForTarget(System.Collections.Generic.IEnumerable`1>,!0,System.Collections.Generic.HashSet`1)" - } - ], - "properties": { - "Level": "CriticalError", - "Category": "Microsoft.Design", - "FixCategory": "Breaking" - } + "name": "AnnotatedCodeLocationVersionOne", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.AnnotatedCodeLocationVersionOne", + "parentIndex": 557, + "kind": "type" }, { - "ruleId": "CA1006", - "level": "error", - "message": { - "text": "Consider a design where 'AnalyzeCommandBase.DetermineApplicabilityForTarget(IEnumerable>, TContext, HashSet)' doesn't nest generic type 'IEnumerable>'." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Driver/Sdk/AnalyzeCommandBase.cs" - }, - "region": { - "startLine": 565, - "snippet": { - "text": " {" - } - }, - "contextRegion": { - "startLine": 564, - "startColumn": 1, - "endLine": 566, - "endColumn": 68, - "charOffset": 21838, - "charLength": 125, - "snippet": { - "text": " HashSet disabledSkimmers)\r\n {\r\n var candidateSkimmers = new List>();" - } - } - }, - "fullyQualifiedLogicalName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.AnalyzeCommandBase`2.DetermineApplicabilityForTarget(System.Collections.Generic.IEnumerable`1>,!0,System.Collections.Generic.HashSet`1)" - } - ], - "properties": { - "Level": "CriticalError", - "Category": "Microsoft.Design", - "FixCategory": "Breaking" - } + "name": ".ctor(Microsoft.CodeAnalysis.Sarif.VersionOne.AnnotatedCodeLocationVersionOne)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.AnnotatedCodeLocationVersionOne..ctor(Microsoft.CodeAnalysis.Sarif.VersionOne.AnnotatedCodeLocationVersionOne)", + "parentIndex": 576, + "kind": "member" }, { - "ruleId": "CA1062", - "level": "warning", - "message": { - "text": "In externally visible method 'AnalyzeCommandBase.DetermineApplicabilityForTarget(IEnumerable>, TContext, HashSet)', validate parameter 'skimmers' before using it." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Driver/Sdk/AnalyzeCommandBase.cs" - }, - "region": { - "startLine": 568, - "snippet": { - "text": " foreach (ISkimmer skimmer in skimmers)" - } - }, - "contextRegion": { - "startLine": 567, - "startColumn": 1, - "endLine": 569, - "endColumn": 14, - "charOffset": 21965, - "charLength": 77, - "snippet": { - "text": "\r\n foreach (ISkimmer skimmer in skimmers)\r\n {" - } - } - }, - "fullyQualifiedLogicalName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.AnalyzeCommandBase`2.DetermineApplicabilityForTarget(System.Collections.Generic.IEnumerable`1>,!0,System.Collections.Generic.HashSet`1)" - } - ], - "partialFingerprints": { - "UniqueId": "0" - }, - "properties": { - "Category": "Microsoft.Design", - "FixCategory": "DependsOnFix" - } + "name": ".ctor(System.Int32,System.Int32,Microsoft.CodeAnalysis.Sarif.VersionOne.PhysicalLocationVersionOne,System.String,System.String,System.String,System.Int32,System.String,Microsoft.CodeAnalysis.Sarif.VersionOne.AnnotatedCodeLocationKindVersionOne,Microsoft.CodeAnalysis.Sarif.VersionOne.TaintKindVersionOne,System.String,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IDictionary`2,System.String,System.Boolean,Microsoft.CodeAnalysis.Sarif.VersionOne.AnnotatedCodeLocationImportanceVersionOne,System.String,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IDictionary`2)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.AnnotatedCodeLocationVersionOne..ctor(System.Int32,System.Int32,Microsoft.CodeAnalysis.Sarif.VersionOne.PhysicalLocationVersionOne,System.String,System.String,System.String,System.Int32,System.String,Microsoft.CodeAnalysis.Sarif.VersionOne.AnnotatedCodeLocationKindVersionOne,Microsoft.CodeAnalysis.Sarif.VersionOne.TaintKindVersionOne,System.String,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IDictionary`2,System.String,System.Boolean,Microsoft.CodeAnalysis.Sarif.VersionOne.AnnotatedCodeLocationImportanceVersionOne,System.String,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IDictionary`2)", + "parentIndex": 576, + "kind": "member" }, { - "ruleId": "CA1062", - "level": "warning", - "message": { - "text": "In externally visible method 'AnalyzeCommandBase.DetermineApplicabilityForTarget(IEnumerable>, TContext, HashSet)', validate parameter 'disabledSkimmers' before using it." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Driver/Sdk/AnalyzeCommandBase.cs" - }, - "region": { - "startLine": 570, - "snippet": { - "text": " if (disabledSkimmers.Contains(skimmer.Id)) { continue; }" - } - }, - "contextRegion": { - "startLine": 569, - "startColumn": 1, - "endLine": 571, - "endColumn": 1, - "charOffset": 22029, - "charLength": 89, - "snippet": { - "text": " {\r\n if (disabledSkimmers.Contains(skimmer.Id)) { continue; }\r\n" - } - } - }, - "fullyQualifiedLogicalName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.AnalyzeCommandBase`2.DetermineApplicabilityForTarget(System.Collections.Generic.IEnumerable`1>,!0,System.Collections.Generic.HashSet`1)" - } - ], - "partialFingerprints": { - "UniqueId": "2" - }, - "properties": { - "Category": "Microsoft.Design", - "FixCategory": "DependsOnFix" - } + "name": "Annotations", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.AnnotatedCodeLocationVersionOne.Annotations", + "parentIndex": 576, + "kind": "member" }, { - "ruleId": "CA1822", - "level": "warning", - "message": { - "text": "The 'this' parameter (or 'Me' in Visual Basic) of 'AnalyzeCommandBase.GenerateSensitiveTokensList()' is never used. Mark the member as static (or Shared in Visual Basic) or use 'this'/'Me' in the method body or at least one property accessor, if appropriate." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Driver/Sdk/AnalyzeCommandBase.cs" - }, - "region": { - "startLine": 378, - "snippet": { - "text": " {" - } - }, - "contextRegion": { - "startLine": 377, - "startColumn": 1, - "endLine": 379, - "endColumn": 45, - "charOffset": 14880, - "charLength": 122, - "snippet": { - "text": " private IEnumerable GenerateSensitiveTokensList()\r\n {\r\n var result = new List();" - } - } - }, - "fullyQualifiedLogicalName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.AnalyzeCommandBase`2.GenerateSensitiveTokensList()" - } - ], - "properties": { - "Category": "Microsoft.Performance", - "FixCategory": "NonBreaking" - } + "name": "State", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.AnnotatedCodeLocationVersionOne.State", + "parentIndex": 576, + "kind": "member" }, { - "ruleId": "CA1822", - "level": "warning", - "message": { - "text": "The 'this' parameter (or 'Me' in Visual Basic) of 'AnalyzeCommandBase.GetCurrentRunningOS()' is never used. Mark the member as static (or Shared in Visual Basic) or use 'this'/'Me' in the method body or at least one property accessor, if appropriate." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Driver/Sdk/AnalyzeCommandBase.cs" - }, - "region": { - "startLine": 447, - "snippet": { - "text": " {" - } - }, - "contextRegion": { - "startLine": 446, - "startColumn": 1, - "endLine": 448, - "endColumn": 60, - "charOffset": 17415, - "charLength": 127, - "snippet": { - "text": " private SupportedPlatform GetCurrentRunningOS()\r\n {\r\n // RuntimeInformation is not present in NET452." - } - } - }, - "fullyQualifiedLogicalName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.AnalyzeCommandBase`2.GetCurrentRunningOS()" - } - ], - "properties": { - "Category": "Microsoft.Performance", - "FixCategory": "NonBreaking" - } + "name": "Values", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.AnnotatedCodeLocationVersionOne.Values", + "parentIndex": 576, + "kind": "member" }, { - "ruleId": "CA2000", - "level": "warning", - "message": { - "text": "In method 'AnalyzeCommandBase.InitializeLogger(AnalyzeOptionsBase)', object 'logger' is not disposed along all exception paths. Call System.IDisposable.Dispose on object 'logger' before all references to it are out of scope.", - "messageId": "ExceptionEdge" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Driver/Sdk/AnalyzeCommandBase.cs" - }, - "region": { - "startLine": 213, - "snippet": { - "text": " var logger = new AggregatingLogger();" - } - }, - "contextRegion": { - "startLine": 212, - "startColumn": 1, - "endLine": 214, - "endColumn": 1, - "charOffset": 8296, - "charLength": 62, - "snippet": { - "text": " {\r\n var logger = new AggregatingLogger();\r\n" - } - } - }, - "fullyQualifiedLogicalName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.AnalyzeCommandBase`2.InitializeLogger(Microsoft.CodeAnalysis.Sarif.Driver.AnalyzeOptionsBase)" - } - ], - "partialFingerprints": { - "UniqueId": "ExceptionEdge" - }, - "properties": { - "Category": "Microsoft.Reliability", - "FixCategory": "DependsOnFix" - } + "name": "AnnotatedCodeLocationVersionOneEqualityComparer", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.AnnotatedCodeLocationVersionOneEqualityComparer", + "parentIndex": 557, + "kind": "type" }, { - "ruleId": "CA1822", - "level": "warning", - "message": { - "text": "The 'this' parameter (or 'Me' in Visual Basic) of 'AnalyzeCommandBase.InitializeLogger(AnalyzeOptionsBase)' is never used. Mark the member as static (or Shared in Visual Basic) or use 'this'/'Me' in the method body or at least one property accessor, if appropriate." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Driver/Sdk/AnalyzeCommandBase.cs" - }, - "region": { - "startLine": 212, - "snippet": { - "text": " {" - } - }, - "contextRegion": { - "startLine": 211, - "startColumn": 1, - "endLine": 213, - "endColumn": 50, - "charOffset": 8208, - "charLength": 148, - "snippet": { - "text": " internal AggregatingLogger InitializeLogger(AnalyzeOptionsBase analyzeOptions)\r\n {\r\n var logger = new AggregatingLogger();" - } - } - }, - "fullyQualifiedLogicalName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.AnalyzeCommandBase`2.InitializeLogger(Microsoft.CodeAnalysis.Sarif.Driver.AnalyzeOptionsBase)" - } - ], - "properties": { - "Category": "Microsoft.Performance", - "FixCategory": "NonBreaking" - } + "name": "Equals(Microsoft.CodeAnalysis.Sarif.VersionOne.AnnotatedCodeLocationVersionOne,Microsoft.CodeAnalysis.Sarif.VersionOne.AnnotatedCodeLocationVersionOne)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.AnnotatedCodeLocationVersionOneEqualityComparer.Equals(Microsoft.CodeAnalysis.Sarif.VersionOne.AnnotatedCodeLocationVersionOne,Microsoft.CodeAnalysis.Sarif.VersionOne.AnnotatedCodeLocationVersionOne)", + "parentIndex": 582, + "kind": "member" }, { - "ruleId": "CA2000", - "level": "warning", - "message": { - "text": "In method 'AnalyzeCommandBase.InitializeOutputFile(TOptions, TContext, HashSet)', object 'sarifLogger' is not disposed along all exception paths. Call System.IDisposable.Dispose on object 'sarifLogger' before all references to it are out of scope.", - "messageId": "ExceptionEdge" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Driver/Sdk/AnalyzeCommandBase.cs" - }, - "region": { - "startLine": 356, - "snippet": { - "text": " var sarifLogger = new SarifLogger(" - } - }, - "contextRegion": { - "startLine": 355, - "startColumn": 1, - "endLine": 357, - "endColumn": 67, - "charOffset": 13822, - "charLength": 128, - "snippet": { - "text": "\r\n var sarifLogger = new SarifLogger(\r\n analyzeOptions.OutputFilePath," - } - } - }, - "fullyQualifiedLogicalName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.AnalyzeCommandBase`2.InitializeOutputFile(!1,!0,System.Collections.Generic.HashSet`1)" - } - ], - "partialFingerprints": { - "UniqueId": "ExceptionEdge" - }, - "properties": { - "Category": "Microsoft.Reliability", - "FixCategory": "DependsOnFix" - } + "name": "GetHashCode(Microsoft.CodeAnalysis.Sarif.VersionOne.AnnotatedCodeLocationVersionOne)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.AnnotatedCodeLocationVersionOneEqualityComparer.GetHashCode(Microsoft.CodeAnalysis.Sarif.VersionOne.AnnotatedCodeLocationVersionOne)", + "parentIndex": 582, + "kind": "member" }, { - "ruleId": "CA1031", - "level": "error", - "message": { - "text": "Modify 'AnalyzeCommandBase.InitializeSkimmers(HashSet>, TContext)' to catch a more specific exception than 'Exception' or rethrow the exception." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Driver/Sdk/AnalyzeCommandBase.cs" - }, - "region": { - "startLine": 632, - "snippet": { - "text": " catch (Exception ex)" - } - }, - "contextRegion": { - "startLine": 631, - "startColumn": 1, - "endLine": 633, - "endColumn": 18, - "charOffset": 24437, - "charLength": 74, - "snippet": { - "text": " }\r\n catch (Exception ex)\r\n {" - } - } - }, - "fullyQualifiedLogicalName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.AnalyzeCommandBase`2.InitializeSkimmers(System.Collections.Generic.HashSet`1>,!0)" - } - ], - "properties": { - "Level": "CriticalError", - "Category": "Microsoft.Design", - "FixCategory": "NonBreaking" - } + "name": "AnnotationVersionOne", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.AnnotationVersionOne", + "parentIndex": 557, + "kind": "type" }, { - "ruleId": "CA1006", - "level": "error", - "message": { - "text": "Consider a design where 'AnalyzeCommandBase.InitializeSkimmers(HashSet>, TContext)' doesn't nest generic type 'HashSet>'." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Driver/Sdk/AnalyzeCommandBase.cs" - }, - "region": { - "startLine": 620, - "snippet": { - "text": " {" - } - }, - "contextRegion": { - "startLine": 619, - "startColumn": 1, - "endLine": 621, - "endColumn": 94, - "charOffset": 23853, - "charLength": 234, - "snippet": { - "text": " protected virtual HashSet> InitializeSkimmers(HashSet> skimmers, TContext context)\r\n {\r\n HashSet> disabledSkimmers = new HashSet>();" - } - } - }, - "fullyQualifiedLogicalName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.AnalyzeCommandBase`2.InitializeSkimmers(System.Collections.Generic.HashSet`1>,!0)" - } - ], - "properties": { - "Level": "CriticalError", - "Category": "Microsoft.Design", - "FixCategory": "Breaking" - } + "name": "Locations", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.AnnotationVersionOne.Locations", + "parentIndex": 585, + "kind": "member" }, { - "ruleId": "CA1006", - "level": "error", - "message": { - "text": "Consider a design where 'AnalyzeCommandBase.InitializeSkimmers(HashSet>, TContext)' doesn't nest generic type 'HashSet>'." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Driver/Sdk/AnalyzeCommandBase.cs" - }, - "region": { - "startLine": 620, - "snippet": { - "text": " {" - } - }, - "contextRegion": { - "startLine": 619, - "startColumn": 1, - "endLine": 621, - "endColumn": 94, - "charOffset": 23853, - "charLength": 234, - "snippet": { - "text": " protected virtual HashSet> InitializeSkimmers(HashSet> skimmers, TContext context)\r\n {\r\n HashSet> disabledSkimmers = new HashSet>();" - } - } - }, - "fullyQualifiedLogicalName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.AnalyzeCommandBase`2.InitializeSkimmers(System.Collections.Generic.HashSet`1>,!0)" - } - ], - "properties": { - "Level": "CriticalError", - "Category": "Microsoft.Design", - "FixCategory": "Breaking" - } + "name": "CodeFlowVersionOne", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.CodeFlowVersionOne", + "parentIndex": 557, + "kind": "type" }, { - "ruleId": "CA1062", - "level": "warning", - "message": { - "text": "In externally visible method 'AnalyzeCommandBase.InitializeSkimmers(HashSet>, TContext)', validate parameter 'skimmers' before using it." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Driver/Sdk/AnalyzeCommandBase.cs" - }, - "region": { - "startLine": 625, - "snippet": { - "text": " foreach (ISkimmer skimmer in skimmers)" - } - }, - "contextRegion": { - "startLine": 624, - "startColumn": 1, - "endLine": 626, - "endColumn": 14, - "charOffset": 24157, - "charLength": 143, - "snippet": { - "text": " // Initialize more than once per skimmer instantiation\r\n foreach (ISkimmer skimmer in skimmers)\r\n {" - } - } - }, - "fullyQualifiedLogicalName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.AnalyzeCommandBase`2.InitializeSkimmers(System.Collections.Generic.HashSet`1>,!0)" - } - ], - "partialFingerprints": { - "UniqueId": "0" - }, - "properties": { - "Category": "Microsoft.Design", - "FixCategory": "DependsOnFix" - } + "name": ".ctor(Microsoft.CodeAnalysis.Sarif.VersionOne.CodeFlowVersionOne)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.CodeFlowVersionOne..ctor(Microsoft.CodeAnalysis.Sarif.VersionOne.CodeFlowVersionOne)", + "parentIndex": 587, + "kind": "member" }, { - "ruleId": "CA1062", - "level": "warning", - "message": { - "text": "In externally visible method 'AnalyzeCommandBase.InvokeCatchingRelevantIOExceptions(Action, Action)', validate parameter 'action' before using it." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Driver/Sdk/AnalyzeCommandBase.cs" - }, - "region": { - "startLine": 398, - "snippet": { - "text": " action();" - } - }, - "contextRegion": { - "startLine": 397, - "startColumn": 1, - "endLine": 399, - "endColumn": 14, - "charOffset": 15680, - "charLength": 55, - "snippet": { - "text": " {\r\n action();\r\n }" - } - } - }, - "fullyQualifiedLogicalName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.AnalyzeCommandBase`2.InvokeCatchingRelevantIOExceptions(System.Action,System.Action`1)" - } - ], - "partialFingerprints": { - "UniqueId": "0" - }, - "properties": { - "Category": "Microsoft.Design", - "FixCategory": "DependsOnFix" - } + "name": ".ctor(System.String,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IDictionary`2)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.CodeFlowVersionOne..ctor(System.String,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IDictionary`2)", + "parentIndex": 587, + "kind": "member" }, { - "ruleId": "CA1062", - "level": "warning", - "message": { - "text": "In externally visible method 'AnalyzeCommandBase.InvokeCatchingRelevantIOExceptions(Action, Action)', validate parameter 'exceptionHandler' before using it." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Driver/Sdk/AnalyzeCommandBase.cs" - }, - "region": { - "startLine": 402, - "snippet": { - "text": " exceptionHandler(ex);" - } - }, - "contextRegion": { - "startLine": 401, - "startColumn": 1, - "endLine": 403, - "endColumn": 14, - "charOffset": 15789, - "charLength": 67, - "snippet": { - "text": " {\r\n exceptionHandler(ex);\r\n }" - } - } - }, - "fullyQualifiedLogicalName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.AnalyzeCommandBase`2.InvokeCatchingRelevantIOExceptions(System.Action,System.Action`1)" - } - ], - "partialFingerprints": { - "UniqueId": "1" - }, - "properties": { - "Category": "Microsoft.Design", - "FixCategory": "DependsOnFix" - } + "name": "Locations", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.CodeFlowVersionOne.Locations", + "parentIndex": 587, + "kind": "member" }, { - "ruleId": "CA1026", - "level": "error", - "message": { - "text": "Replace method 'AnalyzeCommandBase.LogToolNotification(IAnalysisLogger, string, FailureLevel, Exception)' with an overload that supplies all default arguments." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Driver/Sdk/AnalyzeCommandBase.cs" - }, - "region": { - "startLine": 653, - "snippet": { - "text": " {" - } - }, - "contextRegion": { - "startLine": 652, - "startColumn": 1, - "endLine": 654, - "endColumn": 48, - "charOffset": 25152, - "charLength": 92, - "snippet": { - "text": " Exception ex = null)\r\n {\r\n ExceptionData exceptionData = null;" - } - } - }, - "fullyQualifiedLogicalName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.AnalyzeCommandBase`2.LogToolNotification(Microsoft.CodeAnalysis.Sarif.IAnalysisLogger,System.String,Microsoft.CodeAnalysis.Sarif.FailureLevel,System.Exception)" - } - ], - "properties": { - "Category": "Microsoft.Design", - "FixCategory": "Breaking" - } + "name": "ExceptionDataVersionOne", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.ExceptionDataVersionOne", + "parentIndex": 557, + "kind": "type" }, { - "ruleId": "CA1062", - "level": "warning", - "message": { - "text": "In externally visible method 'AnalyzeCommandBase.LogToolNotification(IAnalysisLogger, string, FailureLevel, Exception)', validate parameter 'logger' before using it." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Driver/Sdk/AnalyzeCommandBase.cs" - }, - "region": { - "startLine": 668, - "snippet": { - "text": " logger.LogToolNotification(new Notification" - } - }, - "contextRegion": { - "startLine": 667, - "startColumn": 1, - "endLine": 669, - "endColumn": 14, - "charOffset": 25697, - "charLength": 72, - "snippet": { - "text": "\r\n logger.LogToolNotification(new Notification\r\n {" - } - } - }, - "fullyQualifiedLogicalName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.AnalyzeCommandBase`2.LogToolNotification(Microsoft.CodeAnalysis.Sarif.IAnalysisLogger,System.String,Microsoft.CodeAnalysis.Sarif.FailureLevel,System.Exception)" - } - ], - "partialFingerprints": { - "UniqueId": "0" - }, - "properties": { - "Category": "Microsoft.Design", - "FixCategory": "DependsOnFix" - } + "name": "InnerExceptions", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.ExceptionDataVersionOne.InnerExceptions", + "parentIndex": 591, + "kind": "member" }, { - "ruleId": "CA1000", - "level": "error", - "message": { - "text": "Remove 'AnalyzeCommandBase.RaiseUnhandledExceptionInDriverCode' from 'AnalyzeCommandBase' or make it an instance member." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Driver/Sdk/AnalyzeCommandBase.cs" - }, - "region": { - "startLine": 29, - "snippet": { - "text": " public static bool RaiseUnhandledExceptionInDriverCode { get; set; }" - } - }, - "contextRegion": { - "startLine": 28, - "startColumn": 1, - "endLine": 30, - "endColumn": 1, - "charOffset": 884, - "charLength": 80, - "snippet": { - "text": "\r\n public static bool RaiseUnhandledExceptionInDriverCode { get; set; }\r\n" - } - } - }, - "fullyQualifiedLogicalName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.AnalyzeCommandBase`2.RaiseUnhandledExceptionInDriverCode" - } - ], - "properties": { - "Category": "Microsoft.Design", - "FixCategory": "Breaking" - } + "name": "FileChangeVersionOne", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.FileChangeVersionOne", + "parentIndex": 557, + "kind": "type" }, { - "ruleId": "CA1031", - "level": "error", - "message": { - "text": "Modify 'AnalyzeCommandBase.Run(TOptions)' to catch a more specific exception than 'Exception' or rethrow the exception." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Driver/Sdk/AnalyzeCommandBase.cs" - }, - "region": { - "startLine": 58, - "snippet": { - "text": " catch (Exception ex)" - } - }, - "contextRegion": { - "startLine": 57, - "startColumn": 1, - "endLine": 59, - "endColumn": 18, - "charOffset": 2030, - "charLength": 74, - "snippet": { - "text": " }\r\n catch (Exception ex)\r\n {" - } - } - }, - "fullyQualifiedLogicalName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.AnalyzeCommandBase`2.Run(!1)" - } - ], - "properties": { - "Level": "CriticalError", - "Category": "Microsoft.Design", - "FixCategory": "NonBreaking" - } + "name": ".ctor(System.Uri,System.String,System.Collections.Generic.IEnumerable`1)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.FileChangeVersionOne..ctor(System.Uri,System.String,System.Collections.Generic.IEnumerable`1)", + "parentIndex": 593, + "kind": "member" }, { - "ruleId": "CA1725", - "level": "error", - "message": { - "text": "In member 'AnalyzeCommandBase.Run(TOptions)', change parameter name 'analyzeOptions' to 'options' in order to match the identifier as it has been declared in 'DriverCommand.Run(TOptions)'." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Driver/Sdk/AnalyzeCommandBase.cs" - }, - "region": { - "startLine": 43, - "snippet": { - "text": " {" - } - }, - "contextRegion": { - "startLine": 42, - "startColumn": 1, - "endLine": 44, - "endColumn": 76, - "charOffset": 1371, - "charLength": 144, - "snippet": { - "text": " public override int Run(TOptions analyzeOptions)\r\n {\r\n // 0. Initialize an common logger that drives all outputs. This" - } - } - }, - "fullyQualifiedLogicalName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.AnalyzeCommandBase`2.Run(!1)" - } - ], - "partialFingerprints": { - "UniqueId": "0#" - }, - "properties": { - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" - } + "name": "Replacements", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.FileChangeVersionOne.Replacements", + "parentIndex": 593, + "kind": "member" }, { - "ruleId": "CA1026", - "level": "error", - "message": { - "text": "Replace method 'AnalyzeCommandBase.ThrowExitApplicationException(TContext, ExitReason, Exception)' with an overload that supplies all default arguments." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Driver/Sdk/AnalyzeCommandBase.cs" - }, - "region": { - "startLine": 610, - "snippet": { - "text": " {" - } - }, - "contextRegion": { - "startLine": 609, - "startColumn": 1, - "endLine": 611, - "endColumn": 52, - "charOffset": 23451, - "charLength": 190, - "snippet": { - "text": " protected void ThrowExitApplicationException(TContext context, ExitReason exitReason, Exception innerException = null)\r\n {\r\n RuntimeErrors |= context.RuntimeErrors;" - } - } - }, - "fullyQualifiedLogicalName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.AnalyzeCommandBase`2.ThrowExitApplicationException(!0,Microsoft.CodeAnalysis.Sarif.Driver.ExitReason,System.Exception)" - } - ], - "properties": { - "Category": "Microsoft.Design", - "FixCategory": "Breaking" - } + "name": "UriBaseId", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.FileChangeVersionOne.UriBaseId", + "parentIndex": 593, + "kind": "member" }, { - "ruleId": "CA1822", - "level": "warning", - "message": { - "text": "The 'this' parameter (or 'Me' in Visual Basic) of 'AnalyzeCommandBase.ValidateFile(TContext, string, bool?)' is never used. Mark the member as static (or Shared in Visual Basic) or use 'this'/'Me' in the method body or at least one property accessor, if appropriate." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Driver/Sdk/AnalyzeCommandBase.cs" - }, - "region": { - "startLine": 160, - "snippet": { - "text": " {" - } - }, - "contextRegion": { - "startLine": 159, - "startColumn": 1, - "endLine": 161, - "endColumn": 84, - "charOffset": 6385, - "charLength": 183, - "snippet": { - "text": " private bool ValidateFile(TContext context, string filePath, bool? shouldExist)\r\n {\r\n if (filePath == null || filePath == DefaultPolicyName) { return true; }" - } - } - }, - "fullyQualifiedLogicalName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.AnalyzeCommandBase`2.ValidateFile(!0,System.String,System.Nullable`1)" - } - ], - "properties": { - "Category": "Microsoft.Performance", - "FixCategory": "NonBreaking" - } + "name": "FileDataVersionOne", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.FileDataVersionOne", + "parentIndex": 557, + "kind": "type" }, { - "ruleId": "CA1002", - "level": "error", - "message": { - "text": "Change 'List' in 'ArgumentSplitter.CommandLineToArgvW(string)' to use Collection, ReadOnlyCollection or KeyedCollection" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Driver/ArgumentSplitter.cs" - }, - "region": { - "startLine": 26, - "snippet": { - "text": " {" - } - }, - "contextRegion": { - "startLine": 25, - "startColumn": 1, - "endLine": 27, - "endColumn": 93, - "charOffset": 843, - "charLength": 172, - "snippet": { - "text": " public static List CommandLineToArgvW(string input)\r\n {\r\n // This function mimics CommandLineToArgvW's escaping behavior, documented here:" - } - } - }, - "fullyQualifiedLogicalName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.ArgumentSplitter.CommandLineToArgvW(System.String)" - } - ], - "properties": { - "Category": "Microsoft.Design", - "FixCategory": "Breaking" - } + "name": ".ctor(Microsoft.CodeAnalysis.Sarif.VersionOne.FileDataVersionOne)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.FileDataVersionOne..ctor(Microsoft.CodeAnalysis.Sarif.VersionOne.FileDataVersionOne)", + "parentIndex": 597, + "kind": "member" }, { - "ruleId": "CA1704", - "level": "warning", - "message": { - "text": "Correct the spelling of 'Argv' in member name 'ArgumentSplitter.CommandLineToArgvW(string)' or remove it entirely if it represents any sort of Hungarian notation.", - "messageId": "Member" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Driver/ArgumentSplitter.cs" - }, - "region": { - "startLine": 26, - "snippet": { - "text": " {" - } - }, - "contextRegion": { - "startLine": 25, - "startColumn": 1, - "endLine": 27, - "endColumn": 93, - "charOffset": 843, - "charLength": 172, - "snippet": { - "text": " public static List CommandLineToArgvW(string input)\r\n {\r\n // This function mimics CommandLineToArgvW's escaping behavior, documented here:" - } - } - }, - "fullyQualifiedLogicalName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.ArgumentSplitter.CommandLineToArgvW(System.String)" - } - ], - "partialFingerprints": { - "UniqueId": "Argv#Member" - }, - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" - } + "name": ".ctor(System.Uri,System.String,System.String,System.Int32,System.Int32,System.String,System.String,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IDictionary`2)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.FileDataVersionOne..ctor(System.Uri,System.String,System.String,System.Int32,System.Int32,System.String,System.String,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IDictionary`2)", + "parentIndex": 597, + "kind": "member" }, { - "ruleId": "CA1062", - "level": "warning", - "message": { - "text": "In externally visible method 'DefaultDriverOptions.CreateRuleSpecificOption(IRule, PerLanguageOption)', validate parameter 'rule' before using it." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Driver/Sdk/DefaultDriverOptions.cs" - }, - "region": { - "startLine": 39, - "snippet": { - "text": " return new PerLanguageOption(" - } - }, - "contextRegion": { - "startLine": 38, - "startColumn": 1, - "endLine": 40, - "endColumn": 57, - "charOffset": 1815, - "charLength": 203, - "snippet": { - "text": " // that is further qualified (by feature name) to be associated with a different check.\r\n return new PerLanguageOption(\r\n feature: rule.Id + \".\" + rule.Name.Text," - } - } - }, - "fullyQualifiedLogicalName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.DefaultDriverOptions.CreateRuleSpecificOption`1(Microsoft.CodeAnalysis.Sarif.IRule,Microsoft.CodeAnalysis.Sarif.PerLanguageOption`1)" - } - ], - "partialFingerprints": { - "UniqueId": "0" - }, - "properties": { - "Category": "Microsoft.Design", - "FixCategory": "DependsOnFix" - } + "name": "Hashes", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.FileDataVersionOne.Hashes", + "parentIndex": 597, + "kind": "member" }, { - "ruleId": "CA1062", - "level": "warning", - "message": { - "text": "In externally visible method 'DefaultDriverOptions.CreateRuleSpecificOption(IRule, PerLanguageOption)', validate parameter 'option' before using it." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Driver/Sdk/DefaultDriverOptions.cs" - }, - "region": { - "startLine": 39, - "snippet": { - "text": " return new PerLanguageOption(" - } - }, - "contextRegion": { - "startLine": 38, - "startColumn": 1, - "endLine": 40, - "endColumn": 57, - "charOffset": 1815, - "charLength": 203, - "snippet": { - "text": " // that is further qualified (by feature name) to be associated with a different check.\r\n return new PerLanguageOption(\r\n feature: rule.Id + \".\" + rule.Name.Text," - } - } - }, - "fullyQualifiedLogicalName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.DefaultDriverOptions.CreateRuleSpecificOption`1(Microsoft.CodeAnalysis.Sarif.IRule,Microsoft.CodeAnalysis.Sarif.PerLanguageOption`1)" - } - ], - "partialFingerprints": { - "UniqueId": "1" - }, - "properties": { - "Category": "Microsoft.Design", - "FixCategory": "DependsOnFix" - } + "name": "UriBaseId", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.FileDataVersionOne.UriBaseId", + "parentIndex": 597, + "kind": "member" }, { - "ruleId": "CA2211", - "level": "warning", - "message": { - "text": "Consider making 'DefaultDriverOptions.Instance' non-public or a constant." - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.DefaultDriverOptions.Instance" - } - ], - "properties": { - "Category": "Microsoft.Usage", - "FixCategory": "Breaking" - } + "name": "FixVersionOne", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.FixVersionOne", + "parentIndex": 557, + "kind": "type" }, { - "ruleId": "CA1710", - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.DisposableEnumerable`1" - } - ], - "suppressionStates": ["suppressedInSource"], - "properties": { - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" - } + "name": "FileChanges", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.FixVersionOne.FileChanges", + "parentIndex": 602, + "kind": "member" }, { - "ruleId": "CA1000", - "level": "error", - "message": { - "text": "Remove 'DriverCommand.FAILURE' from 'DriverCommand' or make it an instance member." - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.DriverCommand`1.FAILURE" - } - ], - "properties": { - "Category": "Microsoft.Design", - "FixCategory": "Breaking" - } + "name": "FormattedRuleMessageVersionOne", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.FormattedRuleMessageVersionOne", + "parentIndex": 557, + "kind": "type" }, { - "ruleId": "CA1709", - "level": "error", - "message": { - "text": "Correct the casing of 'FAILURE' in member name 'DriverCommand.FAILURE' by changing it to 'Failure'.", - "messageId": "Member" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.DriverCommand`1.FAILURE" - } - ], - "partialFingerprints": { - "UniqueId": "FAILURE#Member" - }, - "properties": { - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" - } + "name": "Arguments", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.FormattedRuleMessageVersionOne.Arguments", + "parentIndex": 604, + "kind": "member" }, { - "ruleId": "CA1000", - "level": "error", - "message": { - "text": "Remove 'DriverCommand.SUCCESS' from 'DriverCommand' or make it an instance member." - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.DriverCommand`1.SUCCESS" - } - ], - "properties": { - "Category": "Microsoft.Design", - "FixCategory": "Breaking" - } + "name": "InvocationVersionOne", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.InvocationVersionOne", + "parentIndex": 557, + "kind": "type" }, { - "ruleId": "CA1709", - "level": "error", - "message": { - "text": "Correct the casing of 'SUCCESS' in member name 'DriverCommand.SUCCESS' by changing it to 'Success'.", - "messageId": "Member" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.DriverCommand`1.SUCCESS" - } - ], - "partialFingerprints": { - "UniqueId": "SUCCESS#Member" - }, - "properties": { - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" - } + "name": ".ctor(Microsoft.CodeAnalysis.Sarif.VersionOne.InvocationVersionOne)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.InvocationVersionOne..ctor(Microsoft.CodeAnalysis.Sarif.VersionOne.InvocationVersionOne)", + "parentIndex": 606, + "kind": "member" }, { - "ruleId": "CA1062", - "level": "warning", - "message": { - "text": "In externally visible method 'DriverExtensionMethods.ConvertToLoggingOptions(this AnalyzeOptionsBase)', validate parameter 'analyzeOptions' before using it." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Driver/DriverExtensionMethods.cs" - }, - "region": { - "startLine": 14, - "snippet": { - "text": " if (analyzeOptions.Verbose) { loggingOptions |= LoggingOptions.Verbose; }" - } - }, - "contextRegion": { - "startLine": 13, - "startColumn": 1, - "endLine": 15, - "endColumn": 94, - "charOffset": 499, - "charLength": 182, - "snippet": { - "text": "\r\n if (analyzeOptions.Verbose) { loggingOptions |= LoggingOptions.Verbose; }\r\n if (analyzeOptions.PrettyPrint) { loggingOptions |= LoggingOptions.PrettyPrint; }" - } - } - }, - "fullyQualifiedLogicalName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.DriverExtensionMethods.ConvertToLoggingOptions(Microsoft.CodeAnalysis.Sarif.Driver.AnalyzeOptionsBase)" - } - ], - "partialFingerprints": { - "UniqueId": "0" - }, - "properties": { - "Category": "Microsoft.Design", - "FixCategory": "DependsOnFix" - } + "name": ".ctor(System.String,System.Collections.Generic.IDictionary`2,System.DateTime,System.DateTime,System.String,System.String,System.Int32,System.String,System.String,System.Collections.Generic.IDictionary`2,System.Collections.Generic.IDictionary`2)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.InvocationVersionOne..ctor(System.String,System.Collections.Generic.IDictionary`2,System.DateTime,System.DateTime,System.String,System.String,System.Int32,System.String,System.String,System.Collections.Generic.IDictionary`2,System.Collections.Generic.IDictionary`2)", + "parentIndex": 606, + "kind": "member" }, { - "ruleId": "CA1811", - - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.DriverResources..ctor()" - } - ], - "suppressionStates": ["suppressedInSource"], - "properties": { - "Category": "Microsoft.Performance", - "FixCategory": "NonBreaking" - } + "name": "EnvironmentVariables", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.InvocationVersionOne.EnvironmentVariables", + "parentIndex": 606, + "kind": "member" }, { - "ruleId": "CA2000", - "level": "warning", - "message": { - "text": "In method 'DriverUtilities.GetExports(IEnumerable)', call System.IDisposable.Dispose on object 'container' before all references to it are out of scope.", - "messageId": "NonExceptionEdge" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Driver/Sdk/CompositionUtilities.cs" - }, - "region": { - "startLine": 16, - "snippet": { - "text": " var container = CreateCompositionContainer(assemblies);" - } - }, - "contextRegion": { - "startLine": 15, - "startColumn": 1, - "endLine": 17, - "endColumn": 65, - "charOffset": 517, - "charLength": 147, - "snippet": { - "text": " {\r\n var container = CreateCompositionContainer(assemblies);\r\n return container.GetExports().ToImmutableArray();" - } - } - }, - "fullyQualifiedLogicalName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.DriverUtilities.GetExports`1(System.Collections.Generic.IEnumerable`1)" - } - ], - "partialFingerprints": { - "UniqueId": "NonExceptionEdge" - }, - "properties": { - "Category": "Microsoft.Reliability", - "FixCategory": "DependsOnFix" - } + "name": "ResponseFiles", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.InvocationVersionOne.ResponseFiles", + "parentIndex": 606, + "kind": "member" }, { - "ruleId": "CA1060", - "level": "warning", - "message": { - "text": "Because it is a P/Invoke method, 'EntryPointUtilities.CommandLineToArgvW(string, out int)' should be defined in a class named NativeMethods, SafeNativeMethods, or UnsafeNativeMethods." - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.EntryPointUtilities.CommandLineToArgvW(System.String,System.Int32&)" - } - ], - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Design", - "FixCategory": "Breaking" - } + "name": "InvocationVersionOneEqualityComparer", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.InvocationVersionOneEqualityComparer", + "parentIndex": 557, + "kind": "type" }, { - "ruleId": "CA1062", - "level": "warning", - "message": { - "text": "In externally visible method 'EntryPointUtilities.GenerateArguments(string[], IFileSystem, IEnvironmentVariables)', validate parameter 'args' before using it." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Driver/Sdk/EntryPointUtilities.cs" - }, - "region": { - "startLine": 19, - "snippet": { - "text": " foreach (string argument in args)" - } - }, - "contextRegion": { - "startLine": 18, - "startColumn": 1, - "endLine": 20, - "endColumn": 14, - "charOffset": 598, - "charLength": 62, - "snippet": { - "text": "\r\n foreach (string argument in args)\r\n {" - } - } - }, - "fullyQualifiedLogicalName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.EntryPointUtilities.GenerateArguments(System.String[],Microsoft.CodeAnalysis.Sarif.IFileSystem,Microsoft.CodeAnalysis.Sarif.Driver.IEnvironmentVariables)" - } - ], - "partialFingerprints": { - "UniqueId": "0" - }, - "properties": { - "Category": "Microsoft.Design", - "FixCategory": "DependsOnFix" - } + "name": "Equals(Microsoft.CodeAnalysis.Sarif.VersionOne.InvocationVersionOne,Microsoft.CodeAnalysis.Sarif.VersionOne.InvocationVersionOne)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.InvocationVersionOneEqualityComparer.Equals(Microsoft.CodeAnalysis.Sarif.VersionOne.InvocationVersionOne,Microsoft.CodeAnalysis.Sarif.VersionOne.InvocationVersionOne)", + "parentIndex": 611, + "kind": "member" }, { - "ruleId": "CA1062", - "level": "warning", - "message": { - "text": "In externally visible method 'EntryPointUtilities.GenerateArguments(string[], IFileSystem, IEnvironmentVariables)', validate parameter 'fileSystem' before using it." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Driver/Sdk/EntryPointUtilities.cs" - }, - "region": { - "startLine": 31, - "snippet": { - "text": " responseFile = fileSystem.GetFullPath(responseFile);" - } - }, - "contextRegion": { - "startLine": 30, - "startColumn": 1, - "endLine": 32, - "endColumn": 1, - "charOffset": 919, - "charLength": 165, - "snippet": { - "text": " responseFile = environmentVariables.ExpandEnvironmentVariables(responseFile);\r\n responseFile = fileSystem.GetFullPath(responseFile);\r\n" - } - } - }, - "fullyQualifiedLogicalName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.EntryPointUtilities.GenerateArguments(System.String[],Microsoft.CodeAnalysis.Sarif.IFileSystem,Microsoft.CodeAnalysis.Sarif.Driver.IEnvironmentVariables)" - } - ], - "partialFingerprints": { - "UniqueId": "1" - }, - "properties": { - "Category": "Microsoft.Design", - "FixCategory": "DependsOnFix" - } + "name": "IRuleVersionOne", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.IRuleVersionOne", + "parentIndex": 557, + "kind": "type" }, { - "ruleId": "CA1062", - "level": "warning", - "message": { - "text": "In externally visible method 'EntryPointUtilities.GenerateArguments(string[], IFileSystem, IEnvironmentVariables)', validate parameter 'environmentVariables' before using it." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Driver/Sdk/EntryPointUtilities.cs" - }, - "region": { - "startLine": 30, - "snippet": { - "text": " responseFile = environmentVariables.ExpandEnvironmentVariables(responseFile);" - } - }, - "contextRegion": { - "startLine": 29, - "startColumn": 1, - "endLine": 31, - "endColumn": 69, - "charOffset": 917, - "charLength": 165, - "snippet": { - "text": "\r\n responseFile = environmentVariables.ExpandEnvironmentVariables(responseFile);\r\n responseFile = fileSystem.GetFullPath(responseFile);" - } - } - }, - "fullyQualifiedLogicalName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.EntryPointUtilities.GenerateArguments(System.String[],Microsoft.CodeAnalysis.Sarif.IFileSystem,Microsoft.CodeAnalysis.Sarif.Driver.IEnvironmentVariables)" - } - ], - "partialFingerprints": { - "UniqueId": "2" - }, - "properties": { - "Category": "Microsoft.Design", - "FixCategory": "DependsOnFix" - } + "name": "ISarifNodeVersionOne", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.ISarifNodeVersionOne", + "parentIndex": 557, + "kind": "type" }, { - "ruleId": "CA1060", - "level": "warning", - "message": { - "text": "Because it is a P/Invoke method, 'EntryPointUtilities.LocalFree(IntPtr)' should be defined in a class named NativeMethods, SafeNativeMethods, or UnsafeNativeMethods." - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.EntryPointUtilities.LocalFree(System.IntPtr)" - } - ], - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Design", - "FixCategory": "Breaking" - } + "name": "SarifNodeKindVersionOne", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.ISarifNodeVersionOne.SarifNodeKindVersionOne", + "parentIndex": 614, + "kind": "member" }, { - "ruleId": "CA1062", - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.EnumerableExtensions.LexicographicalCompare`1(System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IComparer`1)" - } - ], - "partialFingerprints": { - "UniqueId": "0" - }, - "suppressionStates": ["suppressedInSource"], - "properties": { - "Category": "Microsoft.Design", - "FixCategory": "DependsOnFix" - } + "name": "LocationVersionOne", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.LocationVersionOne", + "parentIndex": 557, + "kind": "type" }, { - "ruleId": "CA1062", - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.EnumerableExtensions.LexicographicalCompare`1(System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IComparer`1)" - } - ], - "partialFingerprints": { - "UniqueId": "1" - }, - "suppressionStates": ["suppressedInSource"], - "properties": { - "Category": "Microsoft.Design", - "FixCategory": "DependsOnFix" - } + "name": ".ctor(Microsoft.CodeAnalysis.Sarif.VersionOne.LocationVersionOne)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.LocationVersionOne..ctor(Microsoft.CodeAnalysis.Sarif.VersionOne.LocationVersionOne)", + "parentIndex": 616, + "kind": "member" }, { - "ruleId": "CA1045", - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.EnumerableExtensions.RemoveIf`1(!!0[]&,System.Func`2)" - } - ], - "partialFingerprints": { - "UniqueId": "0#" - }, - "suppressionStates": ["suppressedInSource"], - "properties": { - "Category": "Microsoft.Design", - "FixCategory": "Breaking" - } + "name": ".ctor(Microsoft.CodeAnalysis.Sarif.VersionOne.PhysicalLocationVersionOne,Microsoft.CodeAnalysis.Sarif.VersionOne.PhysicalLocationVersionOne,System.String,System.String,System.String,System.Collections.Generic.IDictionary`2)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.LocationVersionOne..ctor(Microsoft.CodeAnalysis.Sarif.VersionOne.PhysicalLocationVersionOne,Microsoft.CodeAnalysis.Sarif.VersionOne.PhysicalLocationVersionOne,System.String,System.String,System.String,System.Collections.Generic.IDictionary`2)", + "parentIndex": 616, + "kind": "member" }, { - "ruleId": "CA1062", - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.EnumerableExtensions.RemoveIf`1(!!0[]&,System.Func`2)" - } - ], - "partialFingerprints": { - "UniqueId": "0" - }, - "suppressionStates": ["suppressedInSource"], - "properties": { - "Category": "Microsoft.Design", - "FixCategory": "DependsOnFix" - } + "name": "NotificationVersionOne", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.NotificationVersionOne", + "parentIndex": 557, + "kind": "type" }, { - "ruleId": "CA1811", - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.ExceptionStrings..ctor()" - } - ], - "suppressionStates": ["suppressedInSource"], - "properties": { - "Category": "Microsoft.Performance", - "FixCategory": "NonBreaking" - } + "name": ".ctor(Microsoft.CodeAnalysis.Sarif.VersionOne.NotificationVersionOne)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.NotificationVersionOne..ctor(Microsoft.CodeAnalysis.Sarif.VersionOne.NotificationVersionOne)", + "parentIndex": 619, + "kind": "member" }, { - "ruleId": "CA1032", - "level": "error", - "message": { - "text": "Add the following constructor to 'ExitApplicationException': protected ExitApplicationException`1(SerializationInfo, StreamingContext).", - "messageId": "MissingConstructor" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.ExitApplicationException`1" - } - ], - "partialFingerprints": { - "UniqueId": "MissingConstructor" - }, - "properties": { - "Category": "Microsoft.Design", - "FixCategory": "NonBreaking" - } + "name": ".ctor(System.String,System.String,System.String,Microsoft.CodeAnalysis.Sarif.VersionOne.PhysicalLocationVersionOne,System.String,Microsoft.CodeAnalysis.Sarif.VersionOne.NotificationLevelVersionOne,System.Int32,System.DateTime,Microsoft.CodeAnalysis.Sarif.VersionOne.ExceptionDataVersionOne,System.Collections.Generic.IDictionary`2)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.NotificationVersionOne..ctor(System.String,System.String,System.String,Microsoft.CodeAnalysis.Sarif.VersionOne.PhysicalLocationVersionOne,System.String,Microsoft.CodeAnalysis.Sarif.VersionOne.NotificationLevelVersionOne,System.Int32,System.DateTime,Microsoft.CodeAnalysis.Sarif.VersionOne.ExceptionDataVersionOne,System.Collections.Generic.IDictionary`2)", + "parentIndex": 619, + "kind": "member" }, { - "ruleId": "CA2237", - "level": "error", - "message": { - "text": "Add [Serializable] to 'ExitApplicationException' as this type implements ISerializable." - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.ExitApplicationException`1" - } - ], - "properties": { - "Category": "Microsoft.Usage", - "FixCategory": "NonBreaking" - } + "name": "PhysicalLocationVersionOne", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.PhysicalLocationVersionOne", + "parentIndex": 557, + "kind": "type" }, { - "ruleId": "CA1303", - "level": "warning", - "message": { - "text": "Method 'ExportConfigurationCommandBase.Run(ExportConfigurationOptions)' passes a literal string as parameter 'value' of a call to 'Console.WriteLine(string)'. Retrieve the following string(s) from a resource table instead: \"Configuration file saved to: \".", - "messageId": "KnownValue" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Driver/Sdk/ExportConfigurationCommandBase.cs" - }, - "region": { - "startLine": 78, - "snippet": { - "text": " Console.WriteLine(\"Configuration file saved to: \" + Path.GetFullPath(exportOptions.OutputFilePath));" - } - }, - "contextRegion": { - "startLine": 77, - "startColumn": 1, - "endLine": 79, - "endColumn": 1, - "charOffset": 3420, - "charLength": 120, - "snippet": { - "text": "\r\n Console.WriteLine(\"Configuration file saved to: \" + Path.GetFullPath(exportOptions.OutputFilePath));\r\n" - } - } - }, - "fullyQualifiedLogicalName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.ExportConfigurationCommandBase.Run(Microsoft.CodeAnalysis.Sarif.Driver.ExportConfigurationOptions)" - } - ], - "partialFingerprints": { - "UniqueId": "System.Console.WriteLine(System.String)#KnownValue" - }, - "properties": { - "Category": "Microsoft.Globalization", - "FixCategory": "DependsOnFix" - } + "name": ".ctor(System.Uri,System.String,Microsoft.CodeAnalysis.Sarif.VersionOne.RegionVersionOne)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.PhysicalLocationVersionOne..ctor(System.Uri,System.String,Microsoft.CodeAnalysis.Sarif.VersionOne.RegionVersionOne)", + "parentIndex": 622, + "kind": "member" }, { - "ruleId": "CA1031", - "level": "error", - "message": { - "text": "Modify 'ExportConfigurationCommandBase.Run(ExportConfigurationOptions)' to catch a more specific exception than 'Exception' or rethrow the exception." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Driver/Sdk/ExportConfigurationCommandBase.cs" - }, - "region": { - "startLine": 82, - "snippet": { - "text": " catch (Exception ex)" - } - }, - "contextRegion": { - "startLine": 81, - "startColumn": 1, - "endLine": 83, - "endColumn": 14, - "charOffset": 3577, - "charLength": 62, - "snippet": { - "text": " }\r\n catch (Exception ex)\r\n {" - } - } - }, - "fullyQualifiedLogicalName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.ExportConfigurationCommandBase.Run(Microsoft.CodeAnalysis.Sarif.Driver.ExportConfigurationOptions)" - } - ], - "properties": { - "Level": "CriticalError", - "Category": "Microsoft.Design", - "FixCategory": "NonBreaking" - } + "name": "UriBaseId", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.PhysicalLocationVersionOne.UriBaseId", + "parentIndex": 622, + "kind": "member" }, { - "ruleId": "CA1725", - "level": "error", - "message": { - "text": "In member 'ExportConfigurationCommandBase.Run(ExportConfigurationOptions)', change parameter name 'exportOptions' to 'options' in order to match the identifier as it has been declared in 'DriverCommand.Run(ExportConfigurationOptions)'." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Driver/Sdk/ExportConfigurationCommandBase.cs" - }, - "region": { - "startLine": 14, - "snippet": { - "text": " {" - } - }, - "contextRegion": { - "startLine": 13, - "startColumn": 1, - "endLine": 15, - "endColumn": 34, - "charOffset": 427, - "charLength": 119, - "snippet": { - "text": " public override int Run(ExportConfigurationOptions exportOptions)\r\n {\r\n int result = FAILURE;" - } - } - }, - "fullyQualifiedLogicalName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.ExportConfigurationCommandBase.Run(Microsoft.CodeAnalysis.Sarif.Driver.ExportConfigurationOptions)" - } - ], - "partialFingerprints": { - "UniqueId": "0#" - }, - "properties": { - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" - } + "name": "ResultVersionOne", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.ResultVersionOne", + "parentIndex": 557, + "kind": "type" }, { - "ruleId": "CA1062", - "level": "warning", - "message": { - "text": "In externally visible method 'ExportConfigurationCommandBase.Run(ExportConfigurationOptions)', validate parameter 'exportOptions' before using it." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Driver/Sdk/ExportConfigurationCommandBase.cs" - }, - "region": { - "startLine": 59, - "snippet": { - "text": " string extension = Path.GetExtension(exportOptions.OutputFilePath);" - } - }, - "contextRegion": { - "startLine": 58, - "startColumn": 1, - "endLine": 60, - "endColumn": 1, - "charOffset": 2621, - "charLength": 87, - "snippet": { - "text": "\r\n string extension = Path.GetExtension(exportOptions.OutputFilePath);\r\n" - } - } - }, - "fullyQualifiedLogicalName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.ExportConfigurationCommandBase.Run(Microsoft.CodeAnalysis.Sarif.Driver.ExportConfigurationOptions)" - } - ], - "partialFingerprints": { - "UniqueId": "0" - }, - "properties": { - "Category": "Microsoft.Design", - "FixCategory": "DependsOnFix" - } + "name": ".ctor(Microsoft.CodeAnalysis.Sarif.VersionOne.ResultVersionOne)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.ResultVersionOne..ctor(Microsoft.CodeAnalysis.Sarif.VersionOne.ResultVersionOne)", + "parentIndex": 625, + "kind": "member" }, { - "ruleId": "CA1822", - "level": "warning", - "message": { - "text": "The 'this' parameter (or 'Me' in Visual Basic) of 'ExportRulesMetadataCommandBase.GetIdIntegerSuffix(string)' is never used. Mark the member as static (or Shared in Visual Basic) or use 'this'/'Me' in the method body or at least one property accessor, if appropriate." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Driver/Sdk/ExportRulesMetadataCommandBase.cs" - }, - "region": { - "startLine": 166, - "snippet": { - "text": " {" - } - }, - "contextRegion": { - "startLine": 165, - "startColumn": 1, - "endLine": 167, - "endColumn": 32, - "charOffset": 6053, - "charLength": 93, - "snippet": { - "text": " private int GetIdIntegerSuffix(string id)\r\n {\r\n int alphaCount = 0;" - } - } - }, - "fullyQualifiedLogicalName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.ExportRulesMetadataCommandBase.GetIdIntegerSuffix(System.String)" - } - ], - "properties": { - "Category": "Microsoft.Performance", - "FixCategory": "NonBreaking" - } + "name": ".ctor(System.String,System.String,Microsoft.CodeAnalysis.Sarif.VersionOne.ResultLevelVersionOne,System.String,Microsoft.CodeAnalysis.Sarif.VersionOne.FormattedRuleMessageVersionOne,System.Collections.Generic.IEnumerable`1,System.String,System.String,System.String,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,Microsoft.CodeAnalysis.Sarif.VersionOne.SuppressionStatesVersionOne,Microsoft.CodeAnalysis.Sarif.VersionOne.BaselineStateVersionOne,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IDictionary`2)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.ResultVersionOne..ctor(System.String,System.String,Microsoft.CodeAnalysis.Sarif.VersionOne.ResultLevelVersionOne,System.String,Microsoft.CodeAnalysis.Sarif.VersionOne.FormattedRuleMessageVersionOne,System.Collections.Generic.IEnumerable`1,System.String,System.String,System.String,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,Microsoft.CodeAnalysis.Sarif.VersionOne.SuppressionStatesVersionOne,Microsoft.CodeAnalysis.Sarif.VersionOne.BaselineStateVersionOne,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IDictionary`2)", + "parentIndex": 625, + "kind": "member" }, { - "ruleId": "CA1305", - "level": "error", - "message": { - "text": "Because the behavior of 'int.Parse(string)' could vary based on the current user's locale settings, replace this call in 'ExportRulesMetadataCommandBase.GetIdIntegerSuffix(string)' with a call to 'int.Parse(string, IFormatProvider)'. If the result of 'int.Parse(string, IFormatProvider)' will be based on input from the user, specify 'CultureInfo.CurrentCulture' as the 'IFormatProvider' parameter. Otherwise, if the result will based on input stored and accessed by software, such as when it is loaded from disk or from a database, specify 'CultureInfo.InvariantCulture'.", - "messageId": "IFormatProviderAlternate" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Driver/Sdk/ExportRulesMetadataCommandBase.cs" - }, - "region": { - "startLine": 178, - "snippet": { - "text": " return Int32.Parse(id.Substring(alphaCount));" - } - }, - "contextRegion": { - "startLine": 177, - "startColumn": 1, - "endLine": 179, - "endColumn": 10, - "charOffset": 6370, - "charLength": 83, - "snippet": { - "text": " }\r\n return Int32.Parse(id.Substring(alphaCount));\r\n }" - } - } - }, - "fullyQualifiedLogicalName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.ExportRulesMetadataCommandBase.GetIdIntegerSuffix(System.String)" - } - ], - "partialFingerprints": { - "UniqueId": "System.Int32.Parse(System.String)#IFormatProviderAlternate" - }, - "properties": { - "Category": "Microsoft.Globalization", - "FixCategory": "NonBreaking" - } + "name": "CodeFlows", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.ResultVersionOne.CodeFlows", + "parentIndex": 625, + "kind": "member" }, { - "ruleId": "CA1506", - "level": "warning", - "message": { - "text": "'ExportRulesMetadataCommandBase.OutputSarifRulesMetada(string, ImmutableArray)' is coupled with 31 different types from 10 different namespaces. Rewrite or refactor the method to decrease its class coupling, or consider moving the method to one of the other types it is tightly coupled with. A class coupling above 40 indicates poor maintainability, a class coupling between 40 and 30 indicates moderate maintainability, and a class coupling below 30 indicates good maintainability.", - "messageId": "Method" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Driver/Sdk/ExportRulesMetadataCommandBase.cs" - }, - "region": { - "startLine": 103, - "snippet": { - "text": " {" - } - }, - "contextRegion": { - "startLine": 102, - "startColumn": 1, - "endLine": 104, - "endColumn": 38, - "charOffset": 3802, - "charLength": 148, - "snippet": { - "text": " private void OutputSarifRulesMetada(string outputFilePath, ImmutableArray skimmers)\r\n {\r\n var log = new SarifLog();" - } - } - }, - "fullyQualifiedLogicalName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.ExportRulesMetadataCommandBase.OutputSarifRulesMetada(System.String,System.Collections.Immutable.ImmutableArray`1)" - } - ], - "partialFingerprints": { - "UniqueId": "Method" - }, - "properties": { - "Category": "Microsoft.Maintainability", - "FixCategory": "Breaking" - } + "name": "Fixes", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.ResultVersionOne.Fixes", + "parentIndex": 625, + "kind": "member" }, { - "ruleId": "CA1303", - "level": "warning", - "message": { - "text": "Method 'ExportRulesMetadataCommandBase.Run(ExportRulesMetadataOptions)' passes a literal string as parameter 'value' of a call to 'Console.WriteLine(string)'. Retrieve the following string(s) from a resource table instead: \"SARIF, SonarQube, rules metadata exported to: \".", - "messageId": "KnownValue" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Driver/Sdk/ExportRulesMetadataCommandBase.cs" - }, - "region": { - "startLine": 54, - "snippet": { - "text": " Console.WriteLine(format + \" rules metadata exported to: \" + Path.GetFullPath(outputFilePath));" - } - }, - "contextRegion": { - "startLine": 53, - "startColumn": 1, - "endLine": 55, - "endColumn": 14, - "charOffset": 1765, - "charLength": 161, - "snippet": { - "text": " result = SUCCESS;\r\n Console.WriteLine(format + \" rules metadata exported to: \" + Path.GetFullPath(outputFilePath));\r\n }" - } - } - }, - "fullyQualifiedLogicalName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.ExportRulesMetadataCommandBase.Run(Microsoft.CodeAnalysis.Sarif.Driver.ExportRulesMetadataOptions)" - } - ], - "partialFingerprints": { - "UniqueId": "System.Console.WriteLine(System.String)#KnownValue" - }, - "properties": { - "Category": "Microsoft.Globalization", - "FixCategory": "DependsOnFix" - } + "name": "Locations", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.ResultVersionOne.Locations", + "parentIndex": 625, + "kind": "member" }, { - "ruleId": "CA1031", - "level": "error", - "message": { - "text": "Modify 'ExportRulesMetadataCommandBase.Run(ExportRulesMetadataOptions)' to catch a more specific exception than 'Exception' or rethrow the exception." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Driver/Sdk/ExportRulesMetadataCommandBase.cs" - }, - "region": { - "startLine": 56, - "snippet": { - "text": " catch (Exception ex)" - } - }, - "contextRegion": { - "startLine": 55, - "startColumn": 1, - "endLine": 57, - "endColumn": 14, - "charOffset": 1913, - "charLength": 62, - "snippet": { - "text": " }\r\n catch (Exception ex)\r\n {" - } - } - }, - "fullyQualifiedLogicalName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.ExportRulesMetadataCommandBase.Run(Microsoft.CodeAnalysis.Sarif.Driver.ExportRulesMetadataOptions)" - } - ], - "properties": { - "Level": "CriticalError", - "Category": "Microsoft.Design", - "FixCategory": "NonBreaking" - } + "name": "RelatedLocations", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.ResultVersionOne.RelatedLocations", + "parentIndex": 625, + "kind": "member" }, { - "ruleId": "CA2204", - "level": "warning", - "message": { - "text": "Correct the spelling of the unrecognized token 'SonarQube' in the literal '\"SonarQube\"'." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Driver/Sdk/ExportRulesMetadataCommandBase.cs" - }, - "region": { - "startLine": 54, - "snippet": { - "text": " Console.WriteLine(format + \" rules metadata exported to: \" + Path.GetFullPath(outputFilePath));" - } - }, - "contextRegion": { - "startLine": 53, - "startColumn": 1, - "endLine": 55, - "endColumn": 14, - "charOffset": 1765, - "charLength": 161, - "snippet": { - "text": " result = SUCCESS;\r\n Console.WriteLine(format + \" rules metadata exported to: \" + Path.GetFullPath(outputFilePath));\r\n }" - } - } - }, - "fullyQualifiedLogicalName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.ExportRulesMetadataCommandBase.Run(Microsoft.CodeAnalysis.Sarif.Driver.ExportRulesMetadataOptions)" - } - ], - "partialFingerprints": { - "UniqueId": "SonarQube" - }, - "properties": { - "Category": "Microsoft.Naming", - "FixCategory": "DependsOnFix" - } + "name": "Stacks", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.ResultVersionOne.Stacks", + "parentIndex": 625, + "kind": "member" }, { - "ruleId": "CA1725", - "level": "error", - "message": { - "text": "In member 'ExportRulesMetadataCommandBase.Run(ExportRulesMetadataOptions)', change parameter name 'exportOptions' to 'options' in order to match the identifier as it has been declared in 'DriverCommand.Run(ExportRulesMetadataOptions)'." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Driver/Sdk/ExportRulesMetadataCommandBase.cs" - }, - "region": { - "startLine": 19, - "snippet": { - "text": " {" - } - }, - "contextRegion": { - "startLine": 18, - "startColumn": 1, - "endLine": 20, - "endColumn": 34, - "charOffset": 520, - "charLength": 119, - "snippet": { - "text": " public override int Run(ExportRulesMetadataOptions exportOptions)\r\n {\r\n int result = FAILURE;" - } - } - }, - "fullyQualifiedLogicalName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.ExportRulesMetadataCommandBase.Run(Microsoft.CodeAnalysis.Sarif.Driver.ExportRulesMetadataOptions)" - } - ], - "partialFingerprints": { - "UniqueId": "0#" - }, - "properties": { - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" - } + "name": "ResultVersionOneEqualityComparer", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.ResultVersionOneEqualityComparer", + "parentIndex": 557, + "kind": "type" }, { - "ruleId": "CA1062", - "level": "warning", - "message": { - "text": "In externally visible method 'ExportRulesMetadataCommandBase.Run(ExportRulesMetadataOptions)', validate parameter 'exportOptions' before using it." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Driver/Sdk/ExportRulesMetadataCommandBase.cs" - }, - "region": { - "startLine": 27, - "snippet": { - "text": " string outputFilePath = exportOptions.OutputFilePath;" - } - }, - "contextRegion": { - "startLine": 26, - "startColumn": 1, - "endLine": 28, - "endColumn": 70, - "charOffset": 787, - "charLength": 177, - "snippet": { - "text": " string format = \"\";\r\n string outputFilePath = exportOptions.OutputFilePath;\r\n string extension = Path.GetExtension(outputFilePath);" - } - } - }, - "fullyQualifiedLogicalName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.ExportRulesMetadataCommandBase.Run(Microsoft.CodeAnalysis.Sarif.Driver.ExportRulesMetadataOptions)" - } - ], - "partialFingerprints": { - "UniqueId": "0" - }, - "properties": { - "Category": "Microsoft.Design", - "FixCategory": "DependsOnFix" - } + "name": "Equals(Microsoft.CodeAnalysis.Sarif.VersionOne.ResultVersionOne,Microsoft.CodeAnalysis.Sarif.VersionOne.ResultVersionOne)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.ResultVersionOneEqualityComparer.Equals(Microsoft.CodeAnalysis.Sarif.VersionOne.ResultVersionOne,Microsoft.CodeAnalysis.Sarif.VersionOne.ResultVersionOne)", + "parentIndex": 633, + "kind": "member" }, { - "ruleId": "CA1026", - "level": "error", - "message": { - "text": "Replace method 'FileSpecifier.FileSpecifier(string, bool)' with an overload that supplies all default arguments." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Driver/FileSpecifier.cs" - }, - "region": { - "startLine": 12, - "snippet": { - "text": " public FileSpecifier(string specifier, bool recurse = false)" - } - }, - "contextRegion": { - "startLine": 11, - "startColumn": 1, - "endLine": 13, - "endColumn": 10, - "charOffset": 307, - "charLength": 86, - "snippet": { - "text": " {\r\n public FileSpecifier(string specifier, bool recurse = false)\r\n {" - } - } - }, - "fullyQualifiedLogicalName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.FileSpecifier..ctor(System.String,System.Boolean)" - } - ], - "properties": { - "Category": "Microsoft.Design", - "FixCategory": "Breaking" - } + "name": "GetHashCode(Microsoft.CodeAnalysis.Sarif.VersionOne.ResultVersionOne)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.ResultVersionOneEqualityComparer.GetHashCode(Microsoft.CodeAnalysis.Sarif.VersionOne.ResultVersionOne)", + "parentIndex": 633, + "kind": "member" }, { - "ruleId": "CA1021", - "level": "warning", - "message": { - "text": "Consider a design that does not require that 'reasonIfNotApplicable' be an out parameter." - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.ISkimmer`1.CanAnalyze(!0,System.String&)" - } - ], - "partialFingerprints": { - "UniqueId": "1#" - }, - "properties": { - "Category": "Microsoft.Design", - "FixCategory": "Breaking" - } + "name": "RuleVersionOne", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.RuleVersionOne", + "parentIndex": 557, + "kind": "type" }, { - "ruleId": "CA1062", - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.MurmurHash.AddRange(System.Collections.Generic.IEnumerable`1)" - } - ], - "partialFingerprints": { - "UniqueId": "0" - }, - "suppressionStates": ["suppressedInSource"], - "properties": { - "Category": "Microsoft.Design", - "FixCategory": "DependsOnFix" - } + "name": ".ctor(Microsoft.CodeAnalysis.Sarif.VersionOne.RuleVersionOne)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.RuleVersionOne..ctor(Microsoft.CodeAnalysis.Sarif.VersionOne.RuleVersionOne)", + "parentIndex": 636, + "kind": "member" }, { - "ruleId": "CA1062", - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.MurmurHash.AddRange(System.Collections.IEnumerable)" - } - ], - "partialFingerprints": { - "UniqueId": "0" - }, - "suppressionStates": ["suppressedInSource"], - "properties": { - "Category": "Microsoft.Design", - "FixCategory": "DependsOnFix" - } + "name": ".ctor(System.String,System.String,System.String,System.String,System.Collections.Generic.IDictionary`2,Microsoft.CodeAnalysis.Sarif.VersionOne.reportingConfigurationVersionOne,Microsoft.CodeAnalysis.Sarif.VersionOne.ResultLevelVersionOne,System.Uri,System.Collections.Generic.IDictionary`2)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.RuleVersionOne..ctor(System.String,System.String,System.String,System.String,System.Collections.Generic.IDictionary`2,Microsoft.CodeAnalysis.Sarif.VersionOne.reportingConfigurationVersionOne,Microsoft.CodeAnalysis.Sarif.VersionOne.ResultLevelVersionOne,System.Uri,System.Collections.Generic.IDictionary`2)", + "parentIndex": 636, + "kind": "member" }, { - "ruleId": "CA1062", - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.MurmurHash.AddRange(System.Int32[])" - } - ], - "partialFingerprints": { - "UniqueId": "0" - }, - "suppressionStates": ["suppressedInSource"], - "properties": { - "Category": "Microsoft.Design", - "FixCategory": "DependsOnFix" - } + "name": "MessageFormats", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.RuleVersionOne.MessageFormats", + "parentIndex": 636, + "kind": "member" }, { - "ruleId": "CA1702", - "level": "error", - "message": { - "text": "The compound word 'PlugIn' in type name 'PlugInDriverCommand' exists as a discrete term. If your usage is intended to be single word, case it as 'Plugin'.", - "messageId": "TypeShouldBeDiscreteTerm" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.PlugInDriverCommand`1" - } - ], - "partialFingerprints": { - "UniqueId": "PlugIn#TypeShouldBeDiscreteTerm" - }, - "properties": { - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" - } + "name": "RuleVersionOneEqualityComparer", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.RuleVersionOneEqualityComparer", + "parentIndex": 557, + "kind": "type" }, { - "ruleId": "CA1702", - "level": "error", - "message": { - "text": "The compound word 'PlugIn' in member name 'PlugInDriverCommand.DefaultPlugInAssemblies' exists as a discrete term. If your usage is intended to be single word, case it as 'Plugin' or strip the first token entirely if it represents any sort of Hungarian notation.", - "messageId": "MemberShouldBeDiscreteTerm" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Driver/Sdk/PlugInDriverCommand.cs" - }, - "region": { - "startLine": 14, - "snippet": { - "text": " get { return null; }" - } - }, - "contextRegion": { - "startLine": 13, - "startColumn": 1, - "endLine": 15, - "endColumn": 59, - "charOffset": 429, - "charLength": 103, - "snippet": { - "text": " {\r\n get { return null; }\r\n set { throw new InvalidOperationException(); }" - } - } - }, - "fullyQualifiedLogicalName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.PlugInDriverCommand`1.DefaultPlugInAssemblies" - } - ], - "partialFingerprints": { - "UniqueId": "PlugIn#MemberShouldBeDiscreteTerm" - }, - "properties": { - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" - } + "name": "Equals(Microsoft.CodeAnalysis.Sarif.VersionOne.RuleVersionOne,Microsoft.CodeAnalysis.Sarif.VersionOne.RuleVersionOne)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.RuleVersionOneEqualityComparer.Equals(Microsoft.CodeAnalysis.Sarif.VersionOne.RuleVersionOne,Microsoft.CodeAnalysis.Sarif.VersionOne.RuleVersionOne)", + "parentIndex": 640, + "kind": "member" }, { - "ruleId": "CA2104", - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.ReferenceEqualityComparer`1.Instance" - } - ], - "suppressionStates": ["suppressedInSource"], - "properties": { - "Category": "Microsoft.Security", - "FixCategory": "NonBreaking" - } + "name": "RunVersionOne", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.RunVersionOne", + "parentIndex": 557, + "kind": "type" }, { - "ruleId": "CA1000", - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.ReferenceEqualityComparer`1.Instance" - } - ], - "suppressionStates": ["suppressedInSource"], - "properties": { - "Category": "Microsoft.Design", - "FixCategory": "Breaking" - } + "name": ".ctor(Microsoft.CodeAnalysis.Sarif.VersionOne.RunVersionOne)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.RunVersionOne..ctor(Microsoft.CodeAnalysis.Sarif.VersionOne.RunVersionOne)", + "parentIndex": 642, + "kind": "member" }, { - "ruleId": "CA2215", - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.RentalStream.Dispose(System.Boolean)" - } - ], - "suppressionStates": ["suppressedInSource"], - "properties": { - "Category": "Microsoft.Usage", - "FixCategory": "DependsOnFix" - } + "name": ".ctor(Microsoft.CodeAnalysis.Sarif.VersionOne.ToolVersionOne,Microsoft.CodeAnalysis.Sarif.VersionOne.InvocationVersionOne,System.Collections.Generic.IDictionary`2,System.Collections.Generic.IDictionary`2,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IDictionary`2,System.String,System.String,System.String,System.String,System.String,System.Collections.Generic.IDictionary`2)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.RunVersionOne..ctor(Microsoft.CodeAnalysis.Sarif.VersionOne.ToolVersionOne,Microsoft.CodeAnalysis.Sarif.VersionOne.InvocationVersionOne,System.Collections.Generic.IDictionary`2,System.Collections.Generic.IDictionary`2,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IDictionary`2,System.String,System.String,System.String,System.String,System.String,System.Collections.Generic.IDictionary`2)", + "parentIndex": 642, + "kind": "member" }, { - "ruleId": "CA1008", - "level": "error", - "message": { - "text": "In enum 'RuleEnabledState', change the name of 'RuleEnabledState.Default' to 'None'.", - "messageId": "FlagsRename" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.RuleEnabledState" - } - ], - "partialFingerprints": { - "UniqueId": "FlagsRename" - }, - "properties": { - "Level": "CriticalError", - "Category": "Microsoft.Design", - "FixCategory": "Breaking" - } + "name": "ConfigurationNotifications", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.RunVersionOne.ConfigurationNotifications", + "parentIndex": 642, + "kind": "member" }, { - "ruleId": "CA1714", - "level": "error", - "message": { - "text": "If enumeration name 'RuleEnabledState' is singular, change it to a plural form." - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.RuleEnabledState" - } - ], - "properties": { - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" - } + "name": "Files", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.RunVersionOne.Files", + "parentIndex": 642, + "kind": "member" }, { - "ruleId": "CA1012", - "level": "warning", - "message": { - "text": "Change the accessibility of all public constructors in 'SkimmerBase' to protected." - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.SkimmerBase`1" - } - ], - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Design", - "FixCategory": "NonBreaking" - } + "name": "LogicalLocations", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.RunVersionOne.LogicalLocations", + "parentIndex": 642, + "kind": "member" }, { - "ruleId": "CA1303", - "level": "warning", - "message": { - "text": "Method 'StatisticsLogger.AnalysisStopped(RuntimeConditions)' passes a literal string as parameter 'value' of a call to 'Console.WriteLine(string)'. Retrieve the following string(s) from a resource table instead: \"# invalid targets: \".", - "messageId": "KnownValue" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Driver/Sdk/StatisticsLogger.cs" - }, - "region": { - "startLine": 28, - "snippet": { - "text": " Console.WriteLine(\"# invalid targets: \" + _invalidTargetsCount.ToString());" - } - }, - "contextRegion": { - "startLine": 27, - "startColumn": 1, - "endLine": 29, - "endColumn": 81, - "charOffset": 720, - "charLength": 249, - "snippet": { - "text": " Console.WriteLine(\"# valid targets: \" + _targetsCount.ToString());\r\n Console.WriteLine(\"# invalid targets: \" + _invalidTargetsCount.ToString());\r\n Console.WriteLine(\"Time elapsed: \" + _stopwatch.Elapsed.ToString());" - } - } - }, - "fullyQualifiedLogicalName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.StatisticsLogger.AnalysisStopped(Microsoft.CodeAnalysis.Sarif.RuntimeConditions)" - } - ], - "partialFingerprints": { - "UniqueId": "System.Console.WriteLine(System.String)#KnownValue" - }, - "properties": { - "Category": "Microsoft.Globalization", - "FixCategory": "DependsOnFix" - } + "name": "Results", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.RunVersionOne.Results", + "parentIndex": 642, + "kind": "member" }, { - "ruleId": "CA1303", - "level": "warning", - "message": { - "text": "Method 'StatisticsLogger.AnalysisStopped(RuntimeConditions)' passes a literal string as parameter 'value' of a call to 'Console.WriteLine(string)'. Retrieve the following string(s) from a resource table instead: \"# valid targets: \".", - "messageId": "KnownValue" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Driver/Sdk/StatisticsLogger.cs" - }, - "region": { - "startLine": 27, - "snippet": { - "text": " Console.WriteLine(\"# valid targets: \" + _targetsCount.ToString());" - } - }, - "contextRegion": { - "startLine": 26, - "startColumn": 1, - "endLine": 28, - "endColumn": 88, - "charOffset": 686, - "charLength": 201, - "snippet": { - "text": " Console.WriteLine();\r\n Console.WriteLine(\"# valid targets: \" + _targetsCount.ToString());\r\n Console.WriteLine(\"# invalid targets: \" + _invalidTargetsCount.ToString());" - } - } - }, - "fullyQualifiedLogicalName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.StatisticsLogger.AnalysisStopped(Microsoft.CodeAnalysis.Sarif.RuntimeConditions)" - } - ], - "partialFingerprints": { - "UniqueId": "System.Console.WriteLine(System.String)#KnownValue" - }, - "properties": { - "Category": "Microsoft.Globalization", - "FixCategory": "DependsOnFix" - } + "name": "Rules", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.RunVersionOne.Rules", + "parentIndex": 642, + "kind": "member" }, { - "ruleId": "CA1303", - "level": "warning", - "message": { - "text": "Method 'StatisticsLogger.AnalysisStopped(RuntimeConditions)' passes a literal string as parameter 'value' of a call to 'Console.WriteLine(string)'. Retrieve the following string(s) from a resource table instead: \"Time elapsed: \".", - "messageId": "KnownValue" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Driver/Sdk/StatisticsLogger.cs" - }, - "region": { - "startLine": 29, - "snippet": { - "text": " Console.WriteLine(\"Time elapsed: \" + _stopwatch.Elapsed.ToString());" - } - }, - "contextRegion": { - "startLine": 28, - "startColumn": 1, - "endLine": 30, - "endColumn": 10, - "charOffset": 800, - "charLength": 180, - "snippet": { - "text": " Console.WriteLine(\"# invalid targets: \" + _invalidTargetsCount.ToString());\r\n Console.WriteLine(\"Time elapsed: \" + _stopwatch.Elapsed.ToString());\r\n }" - } - } - }, - "fullyQualifiedLogicalName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.StatisticsLogger.AnalysisStopped(Microsoft.CodeAnalysis.Sarif.RuntimeConditions)" - } - ], - "partialFingerprints": { - "UniqueId": "System.Console.WriteLine(System.String)#KnownValue" - }, - "properties": { - "Category": "Microsoft.Globalization", - "FixCategory": "DependsOnFix" - } + "name": "ToolNotifications", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.RunVersionOne.ToolNotifications", + "parentIndex": 642, + "kind": "member" }, { - "ruleId": "CA1305", - "level": "error", - "message": { - "text": "Because the behavior of 'long.ToString()' could vary based on the current user's locale settings, replace this call in 'StatisticsLogger.AnalysisStopped(RuntimeConditions)' with a call to 'long.ToString(IFormatProvider)'. If the result of 'long.ToString(IFormatProvider)' will be displayed to the user, specify 'CultureInfo.CurrentCulture' as the 'IFormatProvider' parameter. Otherwise, if the result will be stored and accessed by software, such as when it is persisted to disk or to a database, specify 'CultureInfo.InvariantCulture'.", - "messageId": "IFormatProviderAlternateString" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Driver/Sdk/StatisticsLogger.cs" - }, - "region": { - "startLine": 27, - "snippet": { - "text": " Console.WriteLine(\"# valid targets: \" + _targetsCount.ToString());" - } - }, - "contextRegion": { - "startLine": 26, - "startColumn": 1, - "endLine": 28, - "endColumn": 88, - "charOffset": 686, - "charLength": 201, - "snippet": { - "text": " Console.WriteLine();\r\n Console.WriteLine(\"# valid targets: \" + _targetsCount.ToString());\r\n Console.WriteLine(\"# invalid targets: \" + _invalidTargetsCount.ToString());" - } - } - }, - "fullyQualifiedLogicalName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.StatisticsLogger.AnalysisStopped(Microsoft.CodeAnalysis.Sarif.RuntimeConditions)" - } - ], - "partialFingerprints": { - "UniqueId": "System.Int64.ToString#IFormatProviderAlternateString" - }, - "properties": { - "Category": "Microsoft.Globalization", - "FixCategory": "NonBreaking" - } + "name": "RunVersionOneEqualityComparer", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.RunVersionOneEqualityComparer", + "parentIndex": 557, + "kind": "type" }, { - "ruleId": "CA1305", - "level": "error", - "message": { - "text": "Because the behavior of 'long.ToString()' could vary based on the current user's locale settings, replace this call in 'StatisticsLogger.AnalysisStopped(RuntimeConditions)' with a call to 'long.ToString(IFormatProvider)'. If the result of 'long.ToString(IFormatProvider)' will be displayed to the user, specify 'CultureInfo.CurrentCulture' as the 'IFormatProvider' parameter. Otherwise, if the result will be stored and accessed by software, such as when it is persisted to disk or to a database, specify 'CultureInfo.InvariantCulture'.", - "messageId": "IFormatProviderAlternateString" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Driver/Sdk/StatisticsLogger.cs" - }, - "region": { - "startLine": 28, - "snippet": { - "text": " Console.WriteLine(\"# invalid targets: \" + _invalidTargetsCount.ToString());" - } - }, - "contextRegion": { - "startLine": 27, - "startColumn": 1, - "endLine": 29, - "endColumn": 81, - "charOffset": 720, - "charLength": 249, - "snippet": { - "text": " Console.WriteLine(\"# valid targets: \" + _targetsCount.ToString());\r\n Console.WriteLine(\"# invalid targets: \" + _invalidTargetsCount.ToString());\r\n Console.WriteLine(\"Time elapsed: \" + _stopwatch.Elapsed.ToString());" - } - } - }, - "fullyQualifiedLogicalName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.StatisticsLogger.AnalysisStopped(Microsoft.CodeAnalysis.Sarif.RuntimeConditions)" - } - ], - "partialFingerprints": { - "UniqueId": "System.Int64.ToString#IFormatProviderAlternateString" - }, - "properties": { - "Category": "Microsoft.Globalization", - "FixCategory": "NonBreaking" - } + "name": "Equals(Microsoft.CodeAnalysis.Sarif.VersionOne.RunVersionOne,Microsoft.CodeAnalysis.Sarif.VersionOne.RunVersionOne)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.RunVersionOneEqualityComparer.Equals(Microsoft.CodeAnalysis.Sarif.VersionOne.RunVersionOne,Microsoft.CodeAnalysis.Sarif.VersionOne.RunVersionOne)", + "parentIndex": 651, + "kind": "member" }, { - "ruleId": "CA1822", - "level": "warning", - "message": { - "text": "The 'this' parameter (or 'Me' in Visual Basic) of 'StatisticsLogger.Dispose()' is never used. Mark the member as static (or Shared in Visual Basic) or use 'this'/'Me' in the method body or at least one property accessor, if appropriate." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Driver/Sdk/StatisticsLogger.cs" - }, - "region": { - "startLine": 80, - "snippet": { - "text": " {" - } - }, - "contextRegion": { - "startLine": 79, - "startColumn": 1, - "endLine": 81, - "endColumn": 10, - "charOffset": 2161, - "charLength": 51, - "snippet": { - "text": " public void Dispose()\r\n {\r\n }" - } - } - }, - "fullyQualifiedLogicalName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.StatisticsLogger.Dispose()" - } - ], - "properties": { - "Category": "Microsoft.Performance", - "FixCategory": "DependsOnFix" - } + "name": "GetHashCode(Microsoft.CodeAnalysis.Sarif.VersionOne.RunVersionOne)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.RunVersionOneEqualityComparer.GetHashCode(Microsoft.CodeAnalysis.Sarif.VersionOne.RunVersionOne)", + "parentIndex": 651, + "kind": "member" }, { - "ruleId": "CA1062", - "level": "warning", - "message": { - "text": "In externally visible method 'StatisticsLogger.Log(IRule, Result)', validate parameter 'result' before using it." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Driver/Sdk/StatisticsLogger.cs" - }, - "region": { - "startLine": 39, - "snippet": { - "text": " Log(result.Level, result.RuleId);" - } - }, - "contextRegion": { - "startLine": 38, - "startColumn": 1, - "endLine": 40, - "endColumn": 10, - "charOffset": 1153, - "charLength": 67, - "snippet": { - "text": " {\r\n Log(result.Level, result.RuleId);\r\n }" - } - } - }, - "fullyQualifiedLogicalName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.StatisticsLogger.Log(Microsoft.CodeAnalysis.Sarif.IRule,Microsoft.CodeAnalysis.Sarif.Result)" - } - ], - "partialFingerprints": { - "UniqueId": "1" - }, - "properties": { - "Category": "Microsoft.Design", - "FixCategory": "DependsOnFix" - } + "name": "SarifLogVersionOne", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.SarifLogVersionOne", + "parentIndex": 557, + "kind": "type" }, { - "ruleId": "CA1822", - "level": "warning", - "message": { - "text": "The 'this' parameter (or 'Me' in Visual Basic) of 'StatisticsLogger.Log(ResultLevel, string)' is never used. Mark the member as static (or Shared in Visual Basic) or use 'this'/'Me' in the method body or at least one property accessor, if appropriate." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Driver/Sdk/StatisticsLogger.cs" - }, - "region": { - "startLine": 59, - "snippet": { - "text": " {" - } - }, - "contextRegion": { - "startLine": 58, - "startColumn": 1, - "endLine": 60, - "endColumn": 27, - "charOffset": 1641, - "charLength": 96, - "snippet": { - "text": " public void Log(ResultLevel level, string ruleId)\r\n {\r\n switch (level)" - } - } - }, - "fullyQualifiedLogicalName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.StatisticsLogger.Log(Microsoft.CodeAnalysis.Sarif.ResultLevel,System.String)" - } - ], - "properties": { - "Category": "Microsoft.Performance", - "FixCategory": "DependsOnFix" - } + "name": "Runs", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.SarifLogVersionOne.Runs", + "parentIndex": 654, + "kind": "member" }, { - "ruleId": "CA1801", - "level": "warning", - "message": { - "text": "Parameter 'ruleId' of 'StatisticsLogger.Log(ResultLevel, string)' is never used. Remove the parameter or use it in the method body." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Driver/Sdk/StatisticsLogger.cs" - }, - "region": { - "startLine": 59, - "snippet": { - "text": " {" - } - }, - "contextRegion": { - "startLine": 58, - "startColumn": 1, - "endLine": 60, - "endColumn": 27, - "charOffset": 1641, - "charLength": 96, - "snippet": { - "text": " public void Log(ResultLevel level, string ruleId)\r\n {\r\n switch (level)" - } - } - }, - "fullyQualifiedLogicalName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.StatisticsLogger.Log(Microsoft.CodeAnalysis.Sarif.ResultLevel,System.String)" - } - ], - "partialFingerprints": { - "UniqueId": "ruleId" - }, - "properties": { - "Category": "Microsoft.Usage", - "FixCategory": "DependsOnFix" - } + "name": "SarifNodeKindVersionOne", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.SarifNodeKindVersionOne", + "parentIndex": 557, + "kind": "type" }, { - "ruleId": "CA1062", - "level": "warning", - "message": { - "text": "In externally visible method 'StatisticsLogger.LogConfigurationNotification(Notification)', validate parameter 'notification' before using it." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Driver/Sdk/StatisticsLogger.cs" - }, - "region": { - "startLine": 48, - "snippet": { - "text": " if (notification.Id == Warnings.Wrn997_InvalidTarget)" - } - }, - "contextRegion": { - "startLine": 47, - "startColumn": 1, - "endLine": 49, - "endColumn": 14, - "charOffset": 1393, - "charLength": 91, - "snippet": { - "text": " {\r\n if (notification.Id == Warnings.Wrn997_InvalidTarget)\r\n {" - } - } - }, - "fullyQualifiedLogicalName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.StatisticsLogger.LogConfigurationNotification(Microsoft.CodeAnalysis.Sarif.Notification)" - } - ], - "partialFingerprints": { - "UniqueId": "0" - }, - "properties": { - "Category": "Microsoft.Design", - "FixCategory": "DependsOnFix" - } + "name": "SarifLogVersionOne", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.SarifNodeKindVersionOne.SarifLogVersionOne", + "parentIndex": 656, + "kind": "member" }, { - "ruleId": "CA1062", - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.TempFile..ctor(System.String)" - } - ], - "partialFingerprints": { - "UniqueId": "0" - }, - "suppressionStates": ["suppressedInSource"], - "properties": { - "Category": "Microsoft.Design", - "FixCategory": "DependsOnFix" - } + "name": "SarifRewritingVisitorVersionOne", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.SarifRewritingVisitorVersionOne", + "parentIndex": 557, + "kind": "type" }, { - "ruleId": "CA1062", - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.XmlWriterExtensions.WriteElementInt(System.Xml.XmlWriter,System.String,System.Int32)" - } - ], - "partialFingerprints": { - "UniqueId": "0" - }, - "suppressionStates": ["suppressedInSource"], - "properties": { - "Category": "Microsoft.Design", - "FixCategory": "DependsOnFix" - } + "name": "VisitSarifLogVersionOne(Microsoft.CodeAnalysis.Sarif.VersionOne.SarifLogVersionOne)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.SarifRewritingVisitorVersionOne.VisitSarifLogVersionOne(Microsoft.CodeAnalysis.Sarif.VersionOne.SarifLogVersionOne)", + "parentIndex": 658, + "kind": "member" }, { - "ruleId": "CA1804", - "level": "warning", - "message": { - "text": "'FileStreamExtensionMethods.ReadString(this FileStream, int)' declares a variable, 'byteRead', of type 'int', which is never used or is only assigned to. Use this variable or remove it." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Driver/FileStreamExtensionMethods.cs" - }, - "region": { - "startLine": 18, - "snippet": { - "text": " while ((byteRead = stream.ReadByte()) > 0)" - } - }, - "contextRegion": { - "startLine": 17, - "startColumn": 1, - "endLine": 19, - "endColumn": 14, - "charOffset": 491, - "charLength": 71, - "snippet": { - "text": "\r\n while ((byteRead = stream.ReadByte()) > 0)\r\n {" - } - } - }, - "fullyQualifiedLogicalName": "sarif.driver.dll!Microsoft.CodeAnalysisDriver.FileStreamExtensionMethods.ReadString(System.IO.FileStream,System.Int32)" - } - ], - "partialFingerprints": { - "UniqueId": "byteRead" - }, - "properties": { - "Category": "Microsoft.Performance", - "FixCategory": "NonBreaking" - } + "name": "SarifVersionVersionOne", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.SarifVersionVersionOne", + "parentIndex": 557, + "kind": "type" }, { - "ruleId": "CA1062", - "level": "warning", - "message": { - "text": "In externally visible method 'FileStreamExtensionMethods.ReadString(this FileStream, int)', validate parameter 'stream' before using it." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Driver/FileStreamExtensionMethods.cs" - }, - "region": { - "startLine": 13, - "snippet": { - "text": " long startPosition = stream.Position;" - } - }, - "contextRegion": { - "startLine": 12, - "startColumn": 1, - "endLine": 14, - "endColumn": 1, - "charOffset": 368, - "charLength": 62, - "snippet": { - "text": " {\r\n long startPosition = stream.Position;\r\n" - } - } - }, - "fullyQualifiedLogicalName": "sarif.driver.dll!Microsoft.CodeAnalysisDriver.FileStreamExtensionMethods.ReadString(System.IO.FileStream,System.Int32)" - } - ], - "partialFingerprints": { - "UniqueId": "0" - }, - "properties": { - "Category": "Microsoft.Design", - "FixCategory": "DependsOnFix" - } + "name": "StackFrameVersionOne", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.StackFrameVersionOne", + "parentIndex": 557, + "kind": "type" }, { - "ruleId": "CA1011", - "level": "error", - "message": { - "text": "Consider changing the type of parameter 'stream' in 'FileStreamExtensionMethods.ReadToArray(this FileStream, int)' from 'FileStream' to its base type 'Stream'. This method appears to only require base class members in its implementation. Suppress this violation if there is a compelling reason to require the more derived type in the method signature." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Driver/FileStreamExtensionMethods.cs" - }, - "region": { - "startLine": 51, - "snippet": { - "text": " {" - } - }, - "contextRegion": { - "startLine": 50, - "startColumn": 1, - "endLine": 52, - "endColumn": 45, - "charOffset": 1468, - "charLength": 133, - "snippet": { - "text": " public static byte[] ReadToArray(this FileStream stream, int length)\r\n {\r\n byte[] bytes = new byte[length];" - } - } - }, - "fullyQualifiedLogicalName": "sarif.driver.dll!Microsoft.CodeAnalysisDriver.FileStreamExtensionMethods.ReadToArray(System.IO.FileStream,System.Int32)" - } - ], - "properties": { - "Category": "Microsoft.Design", - "FixCategory": "Breaking" - } + "name": ".ctor(Microsoft.CodeAnalysis.Sarif.VersionOne.StackFrameVersionOne)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.StackFrameVersionOne..ctor(Microsoft.CodeAnalysis.Sarif.VersionOne.StackFrameVersionOne)", + "parentIndex": 661, + "kind": "member" }, { - "ruleId": "CA1062", - "level": "warning", - "message": { - "text": "In externally visible method 'FileStreamExtensionMethods.ReadToArray(this FileStream, int)', validate parameter 'stream' before using it." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Driver/FileStreamExtensionMethods.cs" - }, - "region": { - "startLine": 53, - "snippet": { - "text": " int dataRead = stream.Read(bytes, 0, length);" - } - }, - "contextRegion": { - "startLine": 52, - "startColumn": 1, - "endLine": 54, - "endColumn": 36, - "charOffset": 1557, - "charLength": 140, - "snippet": { - "text": " byte[] bytes = new byte[length];\r\n int dataRead = stream.Read(bytes, 0, length);\r\n if (dataRead != length)" - } - } - }, - "fullyQualifiedLogicalName": "sarif.driver.dll!Microsoft.CodeAnalysisDriver.FileStreamExtensionMethods.ReadToArray(System.IO.FileStream,System.Int32)" - } - ], - "partialFingerprints": { - "UniqueId": "0" - }, - "properties": { - "Category": "Microsoft.Design", - "FixCategory": "DependsOnFix" - } + "name": ".ctor(System.String,System.Uri,System.String,System.Int32,System.Int32,System.String,System.Int32,System.String,System.String,System.Int32,System.Int32,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IDictionary`2)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.StackFrameVersionOne..ctor(System.String,System.Uri,System.String,System.Int32,System.Int32,System.String,System.Int32,System.String,System.String,System.Int32,System.Int32,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IDictionary`2)", + "parentIndex": 661, + "kind": "member" }, { - "ruleId": "CA2243", - "level": "warning", - "message": { - "text": "In the constructor of 'AssemblyInformationalVersionAttribute', change the value of argument 'informationalVersion', which is currently \"2.0.0-csd.1.0.1\", to something that can be correctly parsed as 'Version'." - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Multitool.exe", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.multitool.exe" - } - ], - "properties": { - "Category": "Microsoft.Usage", - "FixCategory": "NonBreaking" - } + "name": "Parameters", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.StackFrameVersionOne.Parameters", + "parentIndex": 661, + "kind": "member" }, { - "ruleId": "CA1704", - "level": "warning", - "message": { - "text": "Correct the spelling of 'Multitool' in assembly name 'Sarif.Multitool.exe'.", - "messageId": "Assembly" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Multitool.exe", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.multitool.exe" - } - ], - "partialFingerprints": { - "UniqueId": "Multitool#Assembly" - }, - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" - } + "name": "UriBaseId", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.StackFrameVersionOne.UriBaseId", + "parentIndex": 661, + "kind": "member" }, { - "ruleId": "CA1704", - "level": "warning", - "message": { - "text": "Correct the spelling of 'Sarif' in assembly name 'Sarif.Multitool.exe'.", - "messageId": "Assembly" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Multitool.exe", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.multitool.exe" - } - ], - "partialFingerprints": { - "UniqueId": "Sarif#Assembly" - }, - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" - } + "name": "StackFrameVersionOneEqualityComparer", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.StackFrameVersionOneEqualityComparer", + "parentIndex": 557, + "kind": "type" }, { - "ruleId": "CA1014", - "level": "error", - "message": { - "text": "Mark 'Sarif.Multitool.exe' with CLSCompliant(true) because it exposes externally visible types." - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Multitool.exe", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.multitool.exe" - } - ], - "properties": { - "Category": "Microsoft.Design", - "FixCategory": "NonBreaking" - } + "name": "Equals(Microsoft.CodeAnalysis.Sarif.VersionOne.StackFrameVersionOne,Microsoft.CodeAnalysis.Sarif.VersionOne.StackFrameVersionOne)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.StackFrameVersionOneEqualityComparer.Equals(Microsoft.CodeAnalysis.Sarif.VersionOne.StackFrameVersionOne,Microsoft.CodeAnalysis.Sarif.VersionOne.StackFrameVersionOne)", + "parentIndex": 666, + "kind": "member" }, { - "ruleId": "CA1824", - "level": "warning", - "message": { - "text": "Because assembly 'Sarif.Multitool.exe' contains a ResX-based resource file, mark it with the NeutralResourcesLanguage attribute, specifying the language of the resources within the assembly. This could improve lookup performance the first time a resource is retrieved." - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Multitool.exe", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.multitool.exe" - } - ], - "properties": { - "Category": "Microsoft.Performance", - "FixCategory": "NonBreaking" - } + "name": "StackVersionOne", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.StackVersionOne", + "parentIndex": 557, + "kind": "type" }, { - "ruleId": "CA1811", - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Multitool.exe", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.MultitoolResources..ctor()" - } - ], - "suppressionStates": ["suppressedInSource"], - "properties": { - "Category": "Microsoft.Performance", - "FixCategory": "NonBreaking" - } + "name": ".ctor(Microsoft.CodeAnalysis.Sarif.VersionOne.StackVersionOne)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.StackVersionOne..ctor(Microsoft.CodeAnalysis.Sarif.VersionOne.StackVersionOne)", + "parentIndex": 668, + "kind": "member" }, { - "ruleId": "CA1031", - "level": "error", - "message": { - "text": "Modify 'AbsoluteUriCommand.Run(AbsoluteUriOptions)' to catch a more specific exception than 'Exception' or rethrow the exception." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Multitool.exe", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Multitool/AbsoluteUriCommand.cs" - }, - "region": { - "startLine": 34, - "snippet": { - "text": " catch (Exception ex)" - } - }, - "contextRegion": { - "startLine": 33, - "startColumn": 1, - "endLine": 35, - "endColumn": 14, - "charOffset": 1224, - "charLength": 62, - "snippet": { - "text": " }\r\n catch (Exception ex)\r\n {" - } - } - }, - "fullyQualifiedLogicalName": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.AbsoluteUriCommand.Run(Microsoft.CodeAnalysis.Sarif.Multitool.AbsoluteUriOptions)" - } - ], - "properties": { - "Level": "CriticalError", - "Category": "Microsoft.Design", - "FixCategory": "NonBreaking" - } + "name": ".ctor(System.String,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IDictionary`2)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.StackVersionOne..ctor(System.String,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IDictionary`2)", + "parentIndex": 668, + "kind": "member" }, { - "ruleId": "CA1031", - "level": "error", - "message": { - "text": "Modify 'BaselineCommand.Run(BaselineOptions)' to catch a more specific exception than 'Exception' or rethrow the exception." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Multitool.exe", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Multitool/BaselineCommand.cs" - }, - "region": { - "startLine": 39, - "snippet": { - "text": " catch (Exception ex)" - } - }, - "contextRegion": { - "startLine": 38, - "startColumn": 1, - "endLine": 40, - "endColumn": 14, - "charOffset": 1675, - "charLength": 62, - "snippet": { - "text": " }\r\n catch (Exception ex)\r\n {" - } - } - }, - "fullyQualifiedLogicalName": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.BaselineCommand.Run(Microsoft.CodeAnalysis.Sarif.Multitool.BaselineOptions)" - } - ], - "properties": { - "Level": "CriticalError", - "Category": "Microsoft.Design", - "FixCategory": "NonBreaking" - } + "name": "Frames", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.StackVersionOne.Frames", + "parentIndex": 668, + "kind": "member" }, { - "ruleId": "CA1031", - "level": "error", - "message": { - "text": "Modify 'ConvertCommand.Run(ConvertOptions)' to catch a more specific exception than 'Exception' or rethrow the exception." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Multitool.exe", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Multitool/ConvertCommand.cs" - }, - "region": { - "startLine": 43, - "snippet": { - "text": " catch (Exception ex)" - } - }, - "contextRegion": { - "startLine": 42, - "startColumn": 1, - "endLine": 44, - "endColumn": 14, - "charOffset": 1687, - "charLength": 62, - "snippet": { - "text": " }\r\n catch (Exception ex)\r\n {" - } - } - }, - "fullyQualifiedLogicalName": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.ConvertCommand.Run(Microsoft.CodeAnalysis.Sarif.Multitool.ConvertOptions)" - } - ], - "properties": { - "Level": "CriticalError", - "Category": "Microsoft.Design", - "FixCategory": "NonBreaking" - } + "name": "SuppressionStatesVersionOne", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.SuppressionStatesVersionOne", + "parentIndex": 557, + "kind": "type" }, { - "ruleId": "CA1062", - "level": "warning", - "message": { - "text": "In externally visible method 'JTokenExtensions.HasProperty(this JToken, string)', validate parameter 'token' before using it." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Multitool.exe", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Multitool/JTokenExtensions.cs" - }, - "region": { - "startLine": 14, - "snippet": { - "text": " return token.Children()" - } - }, - "contextRegion": { - "startLine": 13, - "startColumn": 1, - "endLine": 15, - "endColumn": 84, - "charOffset": 403, - "charLength": 142, - "snippet": { - "text": " {\r\n return token.Children()\r\n .Any(jp => jp.Name.Equals(propertyName, StringComparison.Ordinal));" - } - } - }, - "fullyQualifiedLogicalName": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.JTokenExtensions.HasProperty(Newtonsoft.Json.Linq.JToken,System.String)" - } - ], - "partialFingerprints": { - "UniqueId": "0" - }, - "properties": { - "Category": "Microsoft.Design", - "FixCategory": "DependsOnFix" - } + "name": "TagsCollectionVersionOne", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.TagsCollectionVersionOne", + "parentIndex": 557, + "kind": "type" }, { - "ruleId": "CA1031", - "level": "error", - "message": { - "text": "Modify 'MergeCommand.Run(MergeOptions)' to catch a more specific exception than 'Exception' or rethrow the exception." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Multitool.exe", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Multitool/MergeCommand.cs" - }, - "region": { - "startLine": 45, - "snippet": { - "text": " catch (Exception ex)" - } - }, - "contextRegion": { - "startLine": 44, - "startColumn": 1, - "endLine": 46, - "endColumn": 14, - "charOffset": 1788, - "charLength": 62, - "snippet": { - "text": " }\r\n catch (Exception ex)\r\n {" - } - } - }, - "fullyQualifiedLogicalName": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.MergeCommand.Run(Microsoft.CodeAnalysis.Sarif.Multitool.MergeOptions)" - } - ], - "properties": { - "Level": "CriticalError", - "Category": "Microsoft.Design", - "FixCategory": "NonBreaking" - } + "name": "ToolVersionOne", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.ToolVersionOne", + "parentIndex": 557, + "kind": "type" }, { - "ruleId": "CA1704", - "level": "warning", - "message": { - "text": "Correct the spelling of 'Multitool' in type name 'MultitoolOptionsBase'.", - "messageId": "Type" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Multitool.exe", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.MultitoolOptionsBase" - } - ], - "partialFingerprints": { - "UniqueId": "Multitool#Type" - }, - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" - } + "name": ".ctor(Microsoft.CodeAnalysis.Sarif.VersionOne.ToolVersionOne)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.ToolVersionOne..ctor(Microsoft.CodeAnalysis.Sarif.VersionOne.ToolVersionOne)", + "parentIndex": 674, + "kind": "member" }, { - "ruleId": "CA1031", - "level": "error", - "message": { - "text": "Modify 'RebaseUriCommand.Run(RebaseUriOptions)' to catch a more specific exception than 'Exception' or rethrow the exception." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Multitool.exe", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Multitool/RebaseUriCommand.cs" - }, - "region": { - "startLine": 46, - "snippet": { - "text": " catch (Exception ex)" - } - }, - "contextRegion": { - "startLine": 45, - "startColumn": 1, - "endLine": 47, - "endColumn": 14, - "charOffset": 1907, - "charLength": 62, - "snippet": { - "text": " }\r\n catch (Exception ex)\r\n {" - } - } - }, - "fullyQualifiedLogicalName": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.RebaseUriCommand.Run(Microsoft.CodeAnalysis.Sarif.Multitool.RebaseUriOptions)" - } - ], - "properties": { - "Level": "CriticalError", - "Category": "Microsoft.Design", - "FixCategory": "NonBreaking" - } + "name": ".ctor(System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.Collections.Generic.IDictionary`2)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.ToolVersionOne..ctor(System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.Collections.Generic.IDictionary`2)", + "parentIndex": 674, + "kind": "member" }, { - "ruleId": "CA1305", - "level": "error", - "message": { - "text": "Because the behavior of 'string.Format(string, object)' could vary based on the current user's locale settings, replace this call in 'RebaseUriCommand.Run(RebaseUriOptions)' with a call to 'string.Format(IFormatProvider, string, params object[])'. If the result of 'string.Format(IFormatProvider, string, params object[])' will be displayed to the user, specify 'CultureInfo.CurrentCulture' as the 'IFormatProvider' parameter. Otherwise, if the result will be stored and accessed by software, such as when it is persisted to disk or to a database, specify 'CultureInfo.InvariantCulture'.", - "messageId": "IFormatProviderAlternateString" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Multitool.exe", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Multitool/RebaseUriCommand.cs" - }, - "region": { - "startLine": 21, - "snippet": { - "text": " throw new ArgumentException($\"BasePath {rebaseOptions.BasePath} was not an absolute URI. It must be.\");" - } - }, - "contextRegion": { - "startLine": 20, - "startColumn": 1, - "endLine": 22, - "endColumn": 18, - "charOffset": 629, - "charLength": 162, - "snippet": { - "text": " {\r\n throw new ArgumentException($\"BasePath {rebaseOptions.BasePath} was not an absolute URI. It must be.\");\r\n }" - } - } - }, - "fullyQualifiedLogicalName": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.RebaseUriCommand.Run(Microsoft.CodeAnalysis.Sarif.Multitool.RebaseUriOptions)" - } - ], - "partialFingerprints": { - "UniqueId": "System.String.Format(System.String,System.Object)#IFormatProviderAlternateString" - }, - "properties": { - "Category": "Microsoft.Globalization", - "FixCategory": "NonBreaking" - } + "name": "SarifLoggerVersion", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.VersionOne.ToolVersionOne.SarifLoggerVersion", + "parentIndex": 674, + "kind": "member" }, { - "ruleId": "CA1031", - "level": "error", - "message": { - "text": "Modify 'RewriteCommand.Run(RewriteOptions)' to catch a more specific exception than 'Exception' or rethrow the exception." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Multitool.exe", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Multitool/RewriteCommand.cs" - }, - "region": { - "startLine": 33, - "snippet": { - "text": " catch(Exception ex)" - } - }, - "contextRegion": { - "startLine": 32, - "startColumn": 1, - "endLine": 34, - "endColumn": 14, - "charOffset": 1234, - "charLength": 61, - "snippet": { - "text": " }\r\n catch(Exception ex)\r\n {" - } - } - }, - "fullyQualifiedLogicalName": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.RewriteCommand.Run(Microsoft.CodeAnalysis.Sarif.Multitool.RewriteOptions)" - } - ], - "properties": { - "Level": "CriticalError", - "Category": "Microsoft.Design", - "FixCategory": "NonBreaking" - } + "name": "Microsoft.CodeAnalysis.Sarif.Visitors", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors", + "parentIndex": 228, + "kind": "namespace" }, { - "ruleId": "CA1704", - "level": "warning", - "message": { - "text": "Correct the spelling of 'Sarif' in type name 'SarifPropertyName'.", - "messageId": "Type" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Multitool.exe", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.SarifPropertyName" - } - ], - "partialFingerprints": { - "UniqueId": "Sarif#Type" - }, - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" - } + "name": "AbsoluteUrisVisitor", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.AbsoluteUrisVisitor", + "parentIndex": 678, + "kind": "type" }, { - "ruleId": "CA1704", - "level": "warning", - "message": { - "text": "Correct the spelling of 'Stderr' in member name 'SarifPropertyName.Stderr' or remove it entirely if it represents any sort of Hungarian notation.", - "messageId": "Member" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Multitool.exe", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.SarifPropertyName.Stderr" - } - ], - "partialFingerprints": { - "UniqueId": "Stderr#Member" - }, - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" - } + "name": "CombineUris(System.Uri,System.Uri)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.AbsoluteUrisVisitor.CombineUris(System.Uri,System.Uri)", + "parentIndex": 679, + "kind": "member" }, { - "ruleId": "CA1704", - "level": "warning", - "message": { - "text": "Correct the spelling of 'Stdin' in member name 'SarifPropertyName.Stdin' or remove it entirely if it represents any sort of Hungarian notation.", - "messageId": "Member" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Multitool.exe", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.SarifPropertyName.Stdin" - } - ], - "partialFingerprints": { - "UniqueId": "Stdin#Member" - }, - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" - } + "name": "VisitRun(Microsoft.CodeAnalysis.Sarif.Run)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.AbsoluteUrisVisitor.VisitRun(Microsoft.CodeAnalysis.Sarif.Run)", + "parentIndex": 679, + "kind": "member" }, { - "ruleId": "CA1704", - "level": "warning", - "message": { - "text": "Correct the spelling of 'Stdout' in member name 'SarifPropertyName.Stdout' or remove it entirely if it represents any sort of Hungarian notation.", - "messageId": "Member" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Multitool.exe", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.SarifPropertyName.Stdout" - } - ], - "partialFingerprints": { - "UniqueId": "Stdout#Member" - }, - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" - } + "name": "AddFileReferencesVisitor", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.AddFileReferencesVisitor", + "parentIndex": 678, + "kind": "type" }, { - "ruleId": "CA1704", - "level": "warning", - "message": { - "text": "Correct the spelling of 'Stderr' in member name 'SarifPropertyName.StdoutStderr' or remove it entirely if it represents any sort of Hungarian notation.", - "messageId": "Member" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Multitool.exe", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.SarifPropertyName.StdoutStderr" - } - ], - "partialFingerprints": { - "UniqueId": "Stderr#Member" - }, - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" - } + "name": "VisitPhysicalLocation(Microsoft.CodeAnalysis.Sarif.PhysicalLocation)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.AddFileReferencesVisitor.VisitPhysicalLocation(Microsoft.CodeAnalysis.Sarif.PhysicalLocation)", + "parentIndex": 682, + "kind": "member" }, { - "ruleId": "CA1704", - "level": "warning", - "message": { - "text": "Correct the spelling of 'Stdout' in member name 'SarifPropertyName.StdoutStderr' or remove it entirely if it represents any sort of Hungarian notation.", - "messageId": "Member" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Multitool.exe", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.SarifPropertyName.StdoutStderr" - } - ], - "partialFingerprints": { - "UniqueId": "Stdout#Member" - }, - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" - } + "name": "VisitRun(Microsoft.CodeAnalysis.Sarif.Run)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.AddFileReferencesVisitor.VisitRun(Microsoft.CodeAnalysis.Sarif.Run)", + "parentIndex": 682, + "kind": "member" }, { - "ruleId": "CA1704", - "level": "warning", - "message": { - "text": "Correct the spelling of 'Sarif' in type name 'SarifValidationContext'.", - "messageId": "Type" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Multitool.exe", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.SarifValidationContext" - } - ], - "partialFingerprints": { - "UniqueId": "Sarif#Type" - }, - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" - } + "name": "InsertOptionalDataVisitor", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.InsertOptionalDataVisitor", + "parentIndex": 678, + "kind": "type" }, { - "ruleId": "CA1063", - "level": "error", - "message": { - "text": "Provide an overridable implementation of Dispose(bool) on 'SarifValidationContext' or mark the type as sealed. A call to Dispose(false) should only clean up native resources. A call to Dispose(true) should clean up both managed and native resources.", - "messageId": "ProvideDisposeBool" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Multitool.exe", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.SarifValidationContext" - } - ], - "partialFingerprints": { - "UniqueId": "ProvideDisposeBool" - }, - "properties": { - "Category": "Microsoft.Design", - "FixCategory": "Breaking" - } + "name": "s_fileSystem", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.InsertOptionalDataVisitor.s_fileSystem", + "parentIndex": 685, + "kind": "member" }, { - "ruleId": "CA1816", - "level": "warning", - "message": { - "text": "Change 'SarifValidationContext.Dispose()' to call 'GC.SuppressFinalize(object)'. This will prevent derived types that introduce a finalizer from needing to re-implement 'IDisposable' to call it.", - "messageId": "NotCalled" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Multitool.exe", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Multitool/SarifValidationContext.cs" - }, - "region": { - "startLine": 65, - "snippet": { - "text": " {" - } - }, - "contextRegion": { - "startLine": 64, - "startColumn": 1, - "endLine": 66, - "endColumn": 35, - "charOffset": 1691, - "charLength": 76, - "snippet": { - "text": " public void Dispose()\r\n {\r\n // Nothing to dispose." - } - } - }, - "fullyQualifiedLogicalName": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.SarifValidationContext.Dispose()" - } - ], - "partialFingerprints": { - "UniqueId": "NotCalled" - }, - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Usage", - "FixCategory": "NonBreaking" - } + "name": "VisitMessage(Microsoft.CodeAnalysis.Sarif.Message)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.InsertOptionalDataVisitor.VisitMessage(Microsoft.CodeAnalysis.Sarif.Message)", + "parentIndex": 685, + "kind": "member" }, { - "ruleId": "CA1063", - "level": "error", - "message": { - "text": "Modify 'SarifValidationContext.Dispose()' so that it calls Dispose(true), then calls GC.SuppressFinalize on the current object instance ('this' or 'Me' in Visual Basic), and then returns.", - "messageId": "DisposeImplementation" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Multitool.exe", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Multitool/SarifValidationContext.cs" - }, - "region": { - "startLine": 65, - "snippet": { - "text": " {" - } - }, - "contextRegion": { - "startLine": 64, - "startColumn": 1, - "endLine": 66, - "endColumn": 35, - "charOffset": 1691, - "charLength": 76, - "snippet": { - "text": " public void Dispose()\r\n {\r\n // Nothing to dispose." - } - } - }, - "fullyQualifiedLogicalName": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.SarifValidationContext.Dispose()" - } - ], - "partialFingerprints": { - "UniqueId": "DisposeImplementation" - }, - "properties": { - "Category": "Microsoft.Design", - "FixCategory": "Breaking" - } + "name": "VisitPhysicalLocation(Microsoft.CodeAnalysis.Sarif.PhysicalLocation)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.InsertOptionalDataVisitor.VisitPhysicalLocation(Microsoft.CodeAnalysis.Sarif.PhysicalLocation)", + "parentIndex": 685, + "kind": "member" }, { - "ruleId": "CA2227", - "level": "warning", - "message": { - "text": "Change 'SarifValidationContext.Policy' to be read-only by removing the property setter." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Multitool.exe", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Multitool/SarifValidationContext.cs" - }, - "region": { - "startLine": 28, - "snippet": { - "text": " public PropertiesDictionary Policy { get; set; }" - } - }, - "contextRegion": { - "startLine": 27, - "startColumn": 1, - "endLine": 29, - "endColumn": 1, - "charOffset": 793, - "charLength": 60, - "snippet": { - "text": "\r\n public PropertiesDictionary Policy { get; set; }\r\n" - } - } - }, - "fullyQualifiedLogicalName": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.SarifValidationContext.Policy" - } - ], - "properties": { - "Category": "Microsoft.Usage", - "FixCategory": "Breaking" - } + "name": "VisitResult(Microsoft.CodeAnalysis.Sarif.Result)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.InsertOptionalDataVisitor.VisitResult(Microsoft.CodeAnalysis.Sarif.Result)", + "parentIndex": 685, + "kind": "member" }, { - "ruleId": "CA1031", - "level": "error", - "message": { - "text": "Modify 'TransformCommand.Run(TransformOptions)' to catch a more specific exception than 'Exception' or rethrow the exception." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Multitool.exe", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Multitool/TransformCommand.cs" - }, - "region": { - "startLine": 52, - "snippet": { - "text": " catch (Exception ex)" - } - }, - "contextRegion": { - "startLine": 51, - "startColumn": 1, - "endLine": 53, - "endColumn": 14, - "charOffset": 2234, - "charLength": 62, - "snippet": { - "text": " }\r\n catch (Exception ex)\r\n {" - } - } - }, - "fullyQualifiedLogicalName": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.TransformCommand.Run(Microsoft.CodeAnalysis.Sarif.Multitool.TransformOptions)" - } - ], - "properties": { - "Level": "CriticalError", - "Category": "Microsoft.Design", - "FixCategory": "NonBreaking" - } + "name": "RebaseUriVisitor", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.RebaseUriVisitor", + "parentIndex": 678, + "kind": "type" }, { - "ruleId": "CA1804", - "level": "warning", - "message": { - "text": "'TransformCommand.Run(TransformOptions)' declares a variable, 'dataToInsert', of type 'OptionallyEmittedData', which is never used or is only assigned to. Use this variable or remove it." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Multitool.exe", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Multitool/TransformCommand.cs" - }, - "region": { - "startLine": 24, - "snippet": { - "text": " OptionallyEmittedData dataToInsert = transformOptions.DataToInsert.ToFlags();" - } - }, - "contextRegion": { - "startLine": 23, - "startColumn": 1, - "endLine": 25, - "endColumn": 1, - "charOffset": 795, - "charLength": 97, - "snippet": { - "text": "\r\n OptionallyEmittedData dataToInsert = transformOptions.DataToInsert.ToFlags();\r\n" - } - } - }, - "fullyQualifiedLogicalName": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.TransformCommand.Run(Microsoft.CodeAnalysis.Sarif.Multitool.TransformOptions)" - } - ], - "partialFingerprints": { - "UniqueId": "dataToInsert" - }, - "properties": { - "Category": "Microsoft.Performance", - "FixCategory": "NonBreaking" - } + "name": ".ctor(System.String,System.Boolean,System.Uri)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.RebaseUriVisitor..ctor(System.String,System.Boolean,System.Uri)", + "parentIndex": 690, + "kind": "member" }, { - "ruleId": "CA1062", - "level": "warning", - "message": { - "text": "In externally visible method 'ValidateCommand.AnalyzeTarget(IEnumerable>, SarifValidationContext, HashSet)', validate parameter 'context' before using it." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Multitool.exe", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Multitool/ValidateCommand.cs" - }, - "region": { - "startLine": 55, - "snippet": { - "text": " bool ok = Validate(context.TargetUri.LocalPath, context.SchemaFilePath, context.Logger);" - } - }, - "contextRegion": { - "startLine": 54, - "startColumn": 1, - "endLine": 56, - "endColumn": 1, - "charOffset": 2127, - "charLength": 148, - "snippet": { - "text": " // there's no point in going on.\r\n bool ok = Validate(context.TargetUri.LocalPath, context.SchemaFilePath, context.Logger);\r\n" - } - } - }, - "fullyQualifiedLogicalName": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.ValidateCommand.AnalyzeTarget(System.Collections.Generic.IEnumerable`1>,Microsoft.CodeAnalysis.Sarif.Multitool.SarifValidationContext,System.Collections.Generic.HashSet`1)" - } - ], - "partialFingerprints": { - "UniqueId": "1" - }, - "properties": { - "Category": "Microsoft.Design", - "FixCategory": "DependsOnFix" - } + "name": ".ctor(System.String,System.Uri)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.RebaseUriVisitor..ctor(System.String,System.Uri)", + "parentIndex": 690, + "kind": "member" }, { - "ruleId": "CA1062", - "level": "warning", - "message": { - "text": "In externally visible method 'ValidateCommand.CreateContext(ValidateOptions, IAnalysisLogger, RuntimeConditions, string)', validate parameter 'options' before using it." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Multitool.exe", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Multitool/ValidateCommand.cs" - }, - "region": { - "startLine": 40, - "snippet": { - "text": " context.SchemaFilePath = options.SchemaFilePath;" - } - }, - "contextRegion": { - "startLine": 39, - "startColumn": 1, - "endLine": 41, - "endColumn": 28, - "charOffset": 1347, - "charLength": 197, - "snippet": { - "text": " SarifValidationContext context = base.CreateContext(options, logger, runtimeErrors, filePath);\r\n context.SchemaFilePath = options.SchemaFilePath;\r\n return context;" - } - } - }, - "fullyQualifiedLogicalName": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.ValidateCommand.CreateContext(Microsoft.CodeAnalysis.Sarif.Multitool.ValidateOptions,Microsoft.CodeAnalysis.Sarif.IAnalysisLogger,Microsoft.CodeAnalysis.Sarif.RuntimeConditions,System.String)" - } - ], - "partialFingerprints": { - "UniqueId": "0" - }, - "properties": { - "Category": "Microsoft.Design", - "FixCategory": "DependsOnFix" - } + "name": "VisitPhysicalLocation(Microsoft.CodeAnalysis.Sarif.PhysicalLocation)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.RebaseUriVisitor.VisitPhysicalLocation(Microsoft.CodeAnalysis.Sarif.PhysicalLocation)", + "parentIndex": 690, + "kind": "member" }, { - "ruleId": "CA1822", - "level": "warning", - "message": { - "text": "The 'this' parameter (or 'Me' in Visual Basic) of 'ValidateCommand.Validate(string, string, IAnalysisLogger)' is never used. Mark the member as static (or Shared in Visual Basic) or use 'this'/'Me' in the method body or at least one property accessor, if appropriate." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Multitool.exe", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Multitool/ValidateCommand.cs" - }, - "region": { - "startLine": 95, - "snippet": { - "text": " {" - } - }, - "contextRegion": { - "startLine": 94, - "startColumn": 1, - "endLine": 96, - "endColumn": 28, - "charOffset": 3676, - "charLength": 141, - "snippet": { - "text": " private bool Validate(string instanceFilePath, string schemaFilePath, IAnalysisLogger logger)\r\n {\r\n bool ok = true;" - } - } - }, - "fullyQualifiedLogicalName": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.ValidateCommand.Validate(System.String,System.String,Microsoft.CodeAnalysis.Sarif.IAnalysisLogger)" - } - ], - "properties": { - "Category": "Microsoft.Performance", - "FixCategory": "NonBreaking" - } + "name": "VisitRun(Microsoft.CodeAnalysis.Sarif.Run)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.RebaseUriVisitor.VisitRun(Microsoft.CodeAnalysis.Sarif.Run)", + "parentIndex": 690, + "kind": "member" }, { - "ruleId": "CA1811", - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Multitool.exe", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.ValidatorResources..ctor()" - } - ], - "suppressionStates": ["suppressedInSource"], - "properties": { - "Category": "Microsoft.Performance", - "FixCategory": "NonBreaking" - } + "name": "SarifCurrentToVersionOneVisitor", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifCurrentToVersionOneVisitor", + "parentIndex": 678, + "kind": "type" }, { - "ruleId": "CA1062", - "level": "warning", - "message": { - "text": "In externally visible method 'DoNotUseFriendlyNameAsRuleId.Analyze(Rule, string)', validate parameter 'rule' before using it." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Multitool.exe", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Multitool/Rules/DoNotUseFriendlyNameAsRuleId.cs" - }, - "region": { - "startLine": 38, - "snippet": { - "text": " if (rule.Id != null &&" - } - }, - "contextRegion": { - "startLine": 37, - "startColumn": 1, - "endLine": 39, - "endColumn": 37, - "charOffset": 1158, - "charLength": 83, - "snippet": { - "text": " {\r\n if (rule.Id != null &&\r\n rule.Name != null &&" - } - } - }, - "fullyQualifiedLogicalName": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.Rules.DoNotUseFriendlyNameAsRuleId.Analyze(Microsoft.CodeAnalysis.Sarif.Rule,System.String)" - } - ], - "partialFingerprints": { - "UniqueId": "0" - }, - "properties": { - "Category": "Microsoft.Design", - "FixCategory": "DependsOnFix" - } + "name": "CreateFileChange(Microsoft.CodeAnalysis.Sarif.FileChange)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifCurrentToVersionOneVisitor.CreateFileChange(Microsoft.CodeAnalysis.Sarif.FileChange)", + "parentIndex": 695, + "kind": "member" }, { - "ruleId": "CA1062", - "level": "warning", - "message": { - "text": "In externally visible method 'EndColumnMustNotBeLessThanStartColumn.Analyze(Region, string)', validate parameter 'region' before using it." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Multitool.exe", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Multitool/Rules/EndColumnMustNotBeLessThanStartColumn.cs" - }, - "region": { - "startLine": 42, - "snippet": { - "text": " if (RegionIsOnOneLine(region, regionToken) &&" - } - }, - "contextRegion": { - "startLine": 41, - "startColumn": 1, - "endLine": 43, - "endColumn": 72, - "charOffset": 1382, - "charLength": 132, - "snippet": { - "text": "\r\n if (RegionIsOnOneLine(region, regionToken) &&\r\n regionToken.HasProperty(SarifPropertyName.EndColumn) &&" - } - } - }, - "fullyQualifiedLogicalName": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.Rules.EndColumnMustNotBeLessThanStartColumn.Analyze(Microsoft.CodeAnalysis.Sarif.Region,System.String)" - } - ], - "partialFingerprints": { - "UniqueId": "0" - }, - "properties": { - "Category": "Microsoft.Design", - "FixCategory": "DependsOnFix" - } + "name": "CreateLogicalLocation(Microsoft.CodeAnalysis.Sarif.LogicalLocation)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifCurrentToVersionOneVisitor.CreateLogicalLocation(Microsoft.CodeAnalysis.Sarif.LogicalLocation)", + "parentIndex": 695, + "kind": "member" }, { - "ruleId": "CA1062", - "level": "warning", - "message": { - "text": "In externally visible method 'EndLineMustNotBeLessThanStartLine.Analyze(Region, string)', validate parameter 'region' before using it." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Multitool.exe", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Multitool/Rules/EndLineMustNotBeLessThanStartLine.cs" - }, - "region": { - "startLine": 41, - "snippet": { - "text": " if (regionToken.HasProperty(SarifPropertyName.EndLine) &&" - } - }, - "contextRegion": { - "startLine": 40, - "startColumn": 1, - "endLine": 42, - "endColumn": 51, - "charOffset": 1341, - "charLength": 123, - "snippet": { - "text": "\r\n if (regionToken.HasProperty(SarifPropertyName.EndLine) &&\r\n region.EndLine < region.StartLine)" - } - } - }, - "fullyQualifiedLogicalName": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.Rules.EndLineMustNotBeLessThanStartLine.Analyze(Microsoft.CodeAnalysis.Sarif.Region,System.String)" - } - ], - "partialFingerprints": { - "UniqueId": "0" - }, - "properties": { - "Category": "Microsoft.Design", - "FixCategory": "DependsOnFix" - } + "name": "CreatePhysicalLocation(Microsoft.CodeAnalysis.Sarif.FileLocation)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifCurrentToVersionOneVisitor.CreatePhysicalLocation(Microsoft.CodeAnalysis.Sarif.FileLocation)", + "parentIndex": 695, + "kind": "member" }, { - "ruleId": "CA1062", - "level": "warning", - "message": { - "text": "In externally visible method 'EndTimeMustBeAfterStartTime.Analyze(Invocation, string)', validate parameter 'invocation' before using it." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Multitool.exe", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Multitool/Rules/EndTimeMustBeAfterStartTime.cs" - }, - "region": { - "startLine": 40, - "snippet": { - "text": " if (invocation.StartTime > invocation.EndTime)" - } - }, - "contextRegion": { - "startLine": 39, - "startColumn": 1, - "endLine": 41, - "endColumn": 14, - "charOffset": 1220, - "charLength": 84, - "snippet": { - "text": " {\r\n if (invocation.StartTime > invocation.EndTime)\r\n {" - } - } - }, - "fullyQualifiedLogicalName": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.Rules.EndTimeMustBeAfterStartTime.Analyze(Microsoft.CodeAnalysis.Sarif.Invocation,System.String)" - } - ], - "partialFingerprints": { - "UniqueId": "0" - }, - "properties": { - "Category": "Microsoft.Design", - "FixCategory": "DependsOnFix" - } + "name": "CreateReplacement(Microsoft.CodeAnalysis.Sarif.Replacement,System.Text.Encoding)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifCurrentToVersionOneVisitor.CreateReplacement(Microsoft.CodeAnalysis.Sarif.Replacement,System.Text.Encoding)", + "parentIndex": 695, + "kind": "member" }, { - "ruleId": "CA1062", - "level": "warning", - "message": { - "text": "In externally visible method 'HashAlgorithmsMustBeUnique.Analyze(FileData, string, string)', validate parameter 'fileData' before using it." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Multitool.exe", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Multitool/Rules/HashAlgorithmsMustBeUnique.cs" - }, - "region": { - "startLine": 39, - "snippet": { - "text": " if (fileData.Hashes != null)" - } - }, - "contextRegion": { - "startLine": 38, - "startColumn": 1, - "endLine": 40, - "endColumn": 14, - "charOffset": 1199, - "charLength": 66, - "snippet": { - "text": " {\r\n if (fileData.Hashes != null)\r\n {" - } - } - }, - "fullyQualifiedLogicalName": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.Rules.HashAlgorithmsMustBeUnique.Analyze(Microsoft.CodeAnalysis.Sarif.FileData,System.String,System.String)" - } - ], - "partialFingerprints": { - "UniqueId": "0" - }, - "properties": { - "Category": "Microsoft.Design", - "FixCategory": "DependsOnFix" - } + "name": "CreateResult(Microsoft.CodeAnalysis.Sarif.Result)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifCurrentToVersionOneVisitor.CreateResult(Microsoft.CodeAnalysis.Sarif.Result)", + "parentIndex": 695, + "kind": "member" }, { - "ruleId": "CA1062", - "level": "warning", - "message": { - "text": "In externally visible method 'MessagesShouldEndWithPeriod.Analyze(Message, string)', validate parameter 'message' before using it." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Multitool.exe", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Multitool/Rules/MessagesShouldEndWithPeriod.cs" - }, - "region": { - "startLine": 70, - "snippet": { - "text": " AnalyzeMessageString(message.Text, messagePointer, SarifPropertyName.Text);" - } - }, - "contextRegion": { - "startLine": 69, - "startColumn": 1, - "endLine": 71, - "endColumn": 96, - "charOffset": 2442, - "charLength": 195, - "snippet": { - "text": " {\r\n AnalyzeMessageString(message.Text, messagePointer, SarifPropertyName.Text);\r\n AnalyzeMessageString(message.RichText, messagePointer, SarifPropertyName.RichText);" - } - } - }, - "fullyQualifiedLogicalName": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.Rules.MessagesShouldEndWithPeriod.Analyze(Microsoft.CodeAnalysis.Sarif.Message,System.String)" - } - ], - "partialFingerprints": { - "UniqueId": "0" - }, - "properties": { - "Category": "Microsoft.Design", - "FixCategory": "DependsOnFix" - } + "name": "CreateRule(Microsoft.CodeAnalysis.Sarif.Rule)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifCurrentToVersionOneVisitor.CreateRule(Microsoft.CodeAnalysis.Sarif.Rule)", + "parentIndex": 695, + "kind": "member" }, { - "ruleId": "CA1062", - "level": "warning", - "message": { - "text": "In externally visible method 'MessagesShouldEndWithPeriod.Analyze(Rule, string)', validate parameter 'rule' before using it." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Multitool.exe", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Multitool/Rules/MessagesShouldEndWithPeriod.cs" - }, - "region": { - "startLine": 39, - "snippet": { - "text": " AnalyzeMessageStrings(rule.MessageStrings, rulePointer, SarifPropertyName.MessageStrings);" - } - }, - "contextRegion": { - "startLine": 38, - "startColumn": 1, - "endLine": 40, - "endColumn": 111, - "charOffset": 1184, - "charLength": 225, - "snippet": { - "text": " {\r\n AnalyzeMessageStrings(rule.MessageStrings, rulePointer, SarifPropertyName.MessageStrings);\r\n AnalyzeMessageStrings(rule.RichMessageStrings, rulePointer, SarifPropertyName.RichMessageStrings);" - } - } - }, - "fullyQualifiedLogicalName": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.Rules.MessagesShouldEndWithPeriod.Analyze(Microsoft.CodeAnalysis.Sarif.Rule,System.String)" - } - ], - "partialFingerprints": { - "UniqueId": "0" - }, - "properties": { - "Category": "Microsoft.Design", - "FixCategory": "DependsOnFix" - } + "name": "CreateRun(Microsoft.CodeAnalysis.Sarif.Run)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifCurrentToVersionOneVisitor.CreateRun(Microsoft.CodeAnalysis.Sarif.Run)", + "parentIndex": 695, + "kind": "member" }, { - "ruleId": "CA1811", - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Multitool.exe", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.Rules.RuleResources..ctor()" - } - ], - "suppressionStates": ["suppressedInSource"], - "properties": { - "Category": "Microsoft.Performance", - "FixCategory": "NonBreaking" - } + "name": "CreateTool(Microsoft.CodeAnalysis.Sarif.Tool)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifCurrentToVersionOneVisitor.CreateTool(Microsoft.CodeAnalysis.Sarif.Tool)", + "parentIndex": 695, + "kind": "member" }, { - "ruleId": "CA1704", - "level": "warning", - "message": { - "text": "Correct the spelling of 'Sarif' in type name 'SarifValidationSkimmerBase'.", - "messageId": "Type" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Multitool.exe", - "uriBaseId": "$(ProjectDir)" - } - }, - "fullyQualifiedLogicalName": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.Rules.SarifValidationSkimmerBase" - } - ], - "partialFingerprints": { - "UniqueId": "Sarif#Type" - }, - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" - } + "name": "GetContentStream(System.Uri,System.Text.Encoding&)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifCurrentToVersionOneVisitor.GetContentStream(System.Uri,System.Text.Encoding&)", + "parentIndex": 695, + "kind": "member" }, { - "ruleId": "CA1704", - "level": "warning", - "message": { - "text": "In method 'SarifValidationSkimmerBase.LogResult(string, string, params string[])', correct the spelling of 'j' in parameter name 'jPointer' or remove it entirely if it represents any sort of Hungarian notation.", - "messageId": "MemberParameter" - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Multitool.exe", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Multitool/Rules/SarifValidationSkimmerBase.cs" - }, - "region": { - "startLine": 48, - "snippet": { - "text": " {" - } - }, - "contextRegion": { - "startLine": 47, - "startColumn": 1, - "endLine": 49, - "endColumn": 61, - "charOffset": 1631, - "charLength": 161, - "snippet": { - "text": " protected void LogResult(string jPointer, string formatId, params string[] args)\r\n {\r\n Region region = GetRegionFromJPointer(jPointer);" - } - } - }, - "fullyQualifiedLogicalName": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.Rules.SarifValidationSkimmerBase.LogResult(System.String,System.String,System.String[])" - } - ], - "partialFingerprints": { - "UniqueId": "j#MemberParameter" - }, - "properties": { - "Level": "CriticalWarning", - "Category": "Microsoft.Naming", - "FixCategory": "Breaking" - } + "name": "GetFileEncoding(System.String)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifCurrentToVersionOneVisitor.GetFileEncoding(System.String)", + "parentIndex": 695, + "kind": "member" }, { - "ruleId": "CA1062", - "level": "warning", - "message": { - "text": "In externally visible method 'SarifValidationSkimmerBase.LogResult(string, string, params string[])', validate parameter 'args' before using it." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Multitool.exe", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Multitool/Rules/SarifValidationSkimmerBase.cs" - }, - "region": { - "startLine": 52, - "snippet": { - "text": " string[] argsWithPointer = new string[args.Length + 1];" - } - }, - "contextRegion": { - "startLine": 51, - "startColumn": 1, - "endLine": 53, - "endColumn": 66, - "charOffset": 1796, - "charLength": 241, - "snippet": { - "text": " // All messages start with \"In {file}, at {jPointer}, ...\". Prepend the jPointer to the args.\r\n string[] argsWithPointer = new string[args.Length + 1];\r\n Array.Copy(args, 0, argsWithPointer, 1, args.Length);" - } - } - }, - "fullyQualifiedLogicalName": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.Rules.SarifValidationSkimmerBase.LogResult(System.String,System.String,System.String[])" - } - ], - "partialFingerprints": { - "UniqueId": "2" - }, - "properties": { - "Category": "Microsoft.Design", - "FixCategory": "DependsOnFix" - } + "name": "SarifLogVersionOne", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifCurrentToVersionOneVisitor.SarifLogVersionOne", + "parentIndex": 695, + "kind": "member" }, { - "ruleId": "CA1062", - "level": "warning", - "message": { - "text": "In externally visible method 'StepValuesMustFormOneBasedSequence.Analyze(ThreadFlow, string)', validate parameter 'threadFlow' before using it." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Multitool.exe", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Multitool/Rules/StepValuesMustFormOneBasedSequence.cs" - }, - "region": { - "startLine": 57, - "snippet": { - "text": " ReportInvalidStepValues(" - } - }, - "contextRegion": { - "startLine": 56, - "startColumn": 1, - "endLine": 58, - "endColumn": 52, - "charOffset": 2140, - "charLength": 95, - "snippet": { - "text": "\r\n ReportInvalidStepValues(\r\n threadFlow.Locations.ToArray()," - } - } - }, - "fullyQualifiedLogicalName": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.Rules.StepValuesMustFormOneBasedSequence.Analyze(Microsoft.CodeAnalysis.Sarif.ThreadFlow,System.String)" - } - ], - "partialFingerprints": { - "UniqueId": "0" - }, - "properties": { - "Category": "Microsoft.Design", - "FixCategory": "DependsOnFix" - } + "name": "VisitSarifLog(Microsoft.CodeAnalysis.Sarif.SarifLog)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifCurrentToVersionOneVisitor.VisitSarifLog(Microsoft.CodeAnalysis.Sarif.SarifLog)", + "parentIndex": 695, + "kind": "member" }, { - "ruleId": "CA1822", - "level": "warning", - "message": { - "text": "The 'this' parameter (or 'Me' in Visual Basic) of 'StepValuesMustFormOneBasedSequence.FindFirstLocationWithMissingStep(JObject[])' is never used. Mark the member as static (or Shared in Visual Basic) or use 'this'/'Me' in the method body or at least one property accessor, if appropriate." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Multitool.exe", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Multitool/Rules/StepValuesMustFormOneBasedSequence.cs" - }, - "region": { - "startLine": 117, - "snippet": { - "text": " {" - } - }, - "contextRegion": { - "startLine": 116, - "startColumn": 1, - "endLine": 118, - "endColumn": 28, - "charOffset": 4875, - "charLength": 129, - "snippet": { - "text": " private int FindFirstLocationWithMissingStep(JObject[] threadFlowLocationObjects)\r\n {\r\n int index = -1;" - } - } - }, - "fullyQualifiedLogicalName": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.Rules.StepValuesMustFormOneBasedSequence.FindFirstLocationWithMissingStep(Newtonsoft.Json.Linq.JObject[])" - } - ], - "properties": { - "Category": "Microsoft.Performance", - "FixCategory": "NonBreaking" - } + "name": "SarifTransformerUtilities", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifTransformerUtilities", + "parentIndex": 678, + "kind": "type" }, { - "ruleId": "CA1062", - "level": "warning", - "message": { - "text": "In externally visible method 'UriBaseIdRequiresRelativeUri.Analyze(FileLocation, string)', validate parameter 'fileLocation' before using it." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Multitool.exe", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Multitool/Rules/UriBaseIdRequiresRelativeUri.cs" - }, - "region": { - "startLine": 38, - "snippet": { - "text": " if (fileLocation.UriBaseId != null && fileLocation.Uri.IsAbsoluteUri)" - } - }, - "contextRegion": { - "startLine": 37, - "startColumn": 1, - "endLine": 39, - "endColumn": 14, - "charOffset": 1185, - "charLength": 107, - "snippet": { - "text": " {\r\n if (fileLocation.UriBaseId != null && fileLocation.Uri.IsAbsoluteUri)\r\n {" - } - } - }, - "fullyQualifiedLogicalName": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.Rules.UriBaseIdRequiresRelativeUri.Analyze(Microsoft.CodeAnalysis.Sarif.FileLocation,System.String)" - } - ], - "partialFingerprints": { - "UniqueId": "0" - }, - "properties": { - "Category": "Microsoft.Design", - "FixCategory": "DependsOnFix" - } + "name": "AlgorithmKindNameMap", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifTransformerUtilities.AlgorithmKindNameMap", + "parentIndex": 708, + "kind": "member" }, { - "ruleId": "CA2234", - "level": "warning", - "message": { - "text": "Modify 'UrisMustBeValid.Analyze(FileData, string, string)' to call 'UrisMustBeValid.AnalyzeUri(Uri, string)' instead of 'UrisMustBeValid.AnalyzeUri(string, string)'." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Multitool.exe", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Multitool/Rules/UrisMustBeValid.cs" - }, - "region": { - "startLine": 44, - "snippet": { - "text": " {" - } - }, - "contextRegion": { - "startLine": 43, - "startColumn": 1, - "endLine": 45, - "endColumn": 69, - "charOffset": 1272, - "charLength": 175, - "snippet": { - "text": " protected override void Analyze(FileData fileData, string fileKey, string filePointer)\r\n {\r\n string fileUriReference = fileKey.UnescapeJsonPointer();" - } - } - }, - "fullyQualifiedLogicalName": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.Rules.UrisMustBeValid.Analyze(Microsoft.CodeAnalysis.Sarif.FileData,System.String,System.String)" - } - ], - "properties": { - "Category": "Microsoft.Usage", - "FixCategory": "NonBreaking" - } + "name": "AlgorithmNameKindMap", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifTransformerUtilities.AlgorithmNameKindMap", + "parentIndex": 708, + "kind": "member" }, { - "ruleId": "CA1062", - "level": "warning", - "message": { - "text": "In externally visible method 'UrisMustBeValid.Analyze(FileLocation, string)', validate parameter 'fileLocation' before using it." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Multitool.exe", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Multitool/Rules/UrisMustBeValid.cs" - }, - "region": { - "startLine": 51, - "snippet": { - "text": " AnalyzeUri(fileLocation.Uri, fileLocationPointer.AtProperty(SarifPropertyName.Uri));" - } - }, - "contextRegion": { - "startLine": 50, - "startColumn": 1, - "endLine": 52, - "endColumn": 10, - "charOffset": 1614, - "charLength": 118, - "snippet": { - "text": " {\r\n AnalyzeUri(fileLocation.Uri, fileLocationPointer.AtProperty(SarifPropertyName.Uri));\r\n }" - } - } - }, - "fullyQualifiedLogicalName": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.Rules.UrisMustBeValid.Analyze(Microsoft.CodeAnalysis.Sarif.FileLocation,System.String)" - } - ], - "partialFingerprints": { - "UniqueId": "0" - }, - "properties": { - "Category": "Microsoft.Design", - "FixCategory": "DependsOnFix" - } + "name": "CreateAnnotatedCodeLocationImportance(Microsoft.CodeAnalysis.Sarif.ThreadFlowLocationImportance)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifTransformerUtilities.CreateAnnotatedCodeLocationImportance(Microsoft.CodeAnalysis.Sarif.ThreadFlowLocationImportance)", + "parentIndex": 708, + "kind": "member" }, { - "ruleId": "CA1062", - "level": "warning", - "message": { - "text": "In externally visible method 'UrisMustBeValid.Analyze(Result, string)', validate parameter 'result' before using it." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Multitool.exe", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Multitool/Rules/UrisMustBeValid.cs" - }, - "region": { - "startLine": 56, - "snippet": { - "text": " if (result.WorkItemUris != null)" - } - }, - "contextRegion": { - "startLine": 55, - "startColumn": 1, - "endLine": 57, - "endColumn": 14, - "charOffset": 1814, - "charLength": 70, - "snippet": { - "text": " {\r\n if (result.WorkItemUris != null)\r\n {" - } - } - }, - "fullyQualifiedLogicalName": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.Rules.UrisMustBeValid.Analyze(Microsoft.CodeAnalysis.Sarif.Result,System.String)" - } - ], - "partialFingerprints": { - "UniqueId": "0" - }, - "properties": { - "Category": "Microsoft.Design", - "FixCategory": "DependsOnFix" - } + "name": "CreateBaselineState(Microsoft.CodeAnalysis.Sarif.VersionOne.BaselineStateVersionOne)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifTransformerUtilities.CreateBaselineState(Microsoft.CodeAnalysis.Sarif.VersionOne.BaselineStateVersionOne)", + "parentIndex": 708, + "kind": "member" }, { - "ruleId": "CA1062", - "level": "warning", - "message": { - "text": "In externally visible method 'UrisMustBeValid.Analyze(Rule, string)', validate parameter 'rule' before using it." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Multitool.exe", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Multitool/Rules/UrisMustBeValid.cs" - }, - "region": { - "startLine": 70, - "snippet": { - "text": " AnalyzeUri(rule.HelpUri, rulePointer.AtProperty(SarifPropertyName.HelpUri));" - } - }, - "contextRegion": { - "startLine": 69, - "startColumn": 1, - "endLine": 71, - "endColumn": 10, - "charOffset": 2344, - "charLength": 110, - "snippet": { - "text": " {\r\n AnalyzeUri(rule.HelpUri, rulePointer.AtProperty(SarifPropertyName.HelpUri));\r\n }" - } - } - }, - "fullyQualifiedLogicalName": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.Rules.UrisMustBeValid.Analyze(Microsoft.CodeAnalysis.Sarif.Rule,System.String)" - } - ], - "partialFingerprints": { - "UniqueId": "0" - }, - "properties": { - "Category": "Microsoft.Design", - "FixCategory": "DependsOnFix" - } + "name": "CreateBaselineStateVersionOne(Microsoft.CodeAnalysis.Sarif.BaselineState)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifTransformerUtilities.CreateBaselineStateVersionOne(Microsoft.CodeAnalysis.Sarif.BaselineState)", + "parentIndex": 708, + "kind": "member" }, { - "ruleId": "CA1062", - "level": "warning", - "message": { - "text": "In externally visible method 'UrisMustBeValid.Analyze(Run, string)', validate parameter 'run' before using it." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Multitool.exe", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Multitool/Rules/UrisMustBeValid.cs" - }, - "region": { - "startLine": 75, - "snippet": { - "text": " if (run.OriginalUriBaseIds != null)" - } - }, - "contextRegion": { - "startLine": 74, - "startColumn": 1, - "endLine": 76, - "endColumn": 14, - "charOffset": 2527, - "charLength": 73, - "snippet": { - "text": " {\r\n if (run.OriginalUriBaseIds != null)\r\n {" - } - } - }, - "fullyQualifiedLogicalName": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.Rules.UrisMustBeValid.Analyze(Microsoft.CodeAnalysis.Sarif.Run,System.String)" - } - ], - "partialFingerprints": { - "UniqueId": "0" - }, - "properties": { - "Category": "Microsoft.Design", - "FixCategory": "DependsOnFix" - } + "name": "CreateDisambiguatedName(System.String,System.Int32)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifTransformerUtilities.CreateDisambiguatedName(System.String,System.Int32)", + "parentIndex": 708, + "kind": "member" }, { - "ruleId": "CA1062", - "level": "warning", - "message": { - "text": "In externally visible method 'UrisMustBeValid.Analyze(SarifLog, string)', validate parameter 'log' before using it." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Multitool.exe", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Multitool/Rules/UrisMustBeValid.cs" - }, - "region": { - "startLine": 40, - "snippet": { - "text": " AnalyzeUri(log.SchemaUri, logPointer.AtProperty(SarifPropertyName.Schema));" - } - }, - "contextRegion": { - "startLine": 39, - "startColumn": 1, - "endLine": 41, - "endColumn": 10, - "charOffset": 1159, - "charLength": 109, - "snippet": { - "text": " {\r\n AnalyzeUri(log.SchemaUri, logPointer.AtProperty(SarifPropertyName.Schema));\r\n }" - } - } - }, - "fullyQualifiedLogicalName": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.Rules.UrisMustBeValid.Analyze(Microsoft.CodeAnalysis.Sarif.SarifLog,System.String)" - } - ], - "partialFingerprints": { - "UniqueId": "0" - }, - "properties": { - "Category": "Microsoft.Design", - "FixCategory": "DependsOnFix" - } + "name": "CreateNotificationLevel(Microsoft.CodeAnalysis.Sarif.VersionOne.NotificationLevelVersionOne)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifTransformerUtilities.CreateNotificationLevel(Microsoft.CodeAnalysis.Sarif.VersionOne.NotificationLevelVersionOne)", + "parentIndex": 708, + "kind": "member" }, { - "ruleId": "CA1062", - "level": "warning", - "message": { - "text": "In externally visible method 'UrisMustBeValid.Analyze(Tool, string)', validate parameter 'tool' before using it." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Multitool.exe", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Multitool/Rules/UrisMustBeValid.cs" - }, - "region": { - "startLine": 88, - "snippet": { - "text": " AnalyzeUri(tool.DownloadUri, toolPointer.AtProperty(SarifPropertyName.DownloadUri));" - } - }, - "contextRegion": { - "startLine": 87, - "startColumn": 1, - "endLine": 89, - "endColumn": 10, - "charOffset": 3029, - "charLength": 118, - "snippet": { - "text": " {\r\n AnalyzeUri(tool.DownloadUri, toolPointer.AtProperty(SarifPropertyName.DownloadUri));\r\n }" - } - } - }, - "fullyQualifiedLogicalName": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.Rules.UrisMustBeValid.Analyze(Microsoft.CodeAnalysis.Sarif.Tool,System.String)" - } - ], - "partialFingerprints": { - "UniqueId": "0" - }, - "properties": { - "Category": "Microsoft.Design", - "FixCategory": "DependsOnFix" - } + "name": "CreateNotificationLevelVersionOne(Microsoft.CodeAnalysis.Sarif.FailureLevel)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifTransformerUtilities.CreateNotificationLevelVersionOne(Microsoft.CodeAnalysis.Sarif.FailureLevel)", + "parentIndex": 708, + "kind": "member" }, { - "ruleId": "CA1062", - "level": "warning", - "message": { - "text": "In externally visible method 'UrisMustBeValid.Analyze(VersionControlDetails, string)', validate parameter 'versionControlDetails' before using it." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Multitool.exe", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Multitool/Rules/UrisMustBeValid.cs" - }, - "region": { - "startLine": 93, - "snippet": { - "text": " AnalyzeUri(versionControlDetails.Uri, versionControlDetailsPointer.AtProperty(SarifPropertyName.Uri));" - } - }, - "contextRegion": { - "startLine": 92, - "startColumn": 1, - "endLine": 94, - "endColumn": 10, - "charOffset": 3274, - "charLength": 136, - "snippet": { - "text": " {\r\n AnalyzeUri(versionControlDetails.Uri, versionControlDetailsPointer.AtProperty(SarifPropertyName.Uri));\r\n }" - } - } - }, - "fullyQualifiedLogicalName": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.Rules.UrisMustBeValid.Analyze(Microsoft.CodeAnalysis.Sarif.VersionControlDetails,System.String)" - } - ], - "partialFingerprints": { - "UniqueId": "0" - }, - "properties": { - "Category": "Microsoft.Design", - "FixCategory": "DependsOnFix" - } + "name": "CreateResultLevel(Microsoft.CodeAnalysis.Sarif.VersionOne.ResultLevelVersionOne)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifTransformerUtilities.CreateResultLevel(Microsoft.CodeAnalysis.Sarif.VersionOne.ResultLevelVersionOne)", + "parentIndex": 708, + "kind": "member" }, { - "ruleId": "CA1062", - "level": "warning", - "message": { - "text": "In externally visible method 'UseAbsolutePathsForNestedFileUriFragments.Analyze(FileLocation, string)', validate parameter 'fileLocation' before using it." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Multitool.exe", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Multitool/Rules/UseAbsolutePathsForNestedFileUriFragments.cs" - }, - "region": { - "startLine": 39, - "snippet": { - "text": " AnalyzeUri(fileLocation.Uri, fileLocationPointer.AtProperty(SarifPropertyName.Uri));" - } - }, - "contextRegion": { - "startLine": 38, - "startColumn": 1, - "endLine": 40, - "endColumn": 10, - "charOffset": 1250, - "charLength": 118, - "snippet": { - "text": " {\r\n AnalyzeUri(fileLocation.Uri, fileLocationPointer.AtProperty(SarifPropertyName.Uri));\r\n }" - } - } - }, - "fullyQualifiedLogicalName": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.Rules.UseAbsolutePathsForNestedFileUriFragments.Analyze(Microsoft.CodeAnalysis.Sarif.FileLocation,System.String)" - } - ], - "partialFingerprints": { - "UniqueId": "0" - }, - "properties": { - "Category": "Microsoft.Design", - "FixCategory": "DependsOnFix" - } + "name": "CreateResultLevelVersionOne(Microsoft.CodeAnalysis.Sarif.ResultLevel)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifTransformerUtilities.CreateResultLevelVersionOne(Microsoft.CodeAnalysis.Sarif.ResultLevel)", + "parentIndex": 708, + "kind": "member" }, { - "ruleId": "CA1822", - "level": "warning", - "message": { - "text": "The 'this' parameter (or 'Me' in Visual Basic) of 'UseAbsolutePathsForNestedFileUriFragments.UriHasNonAbsoluteFragment(Uri)' is never used. Mark the member as static (or Shared in Visual Basic) or use 'this'/'Me' in the method body or at least one property accessor, if appropriate." - }, - "analysisTarget": { - "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Multitool.exe", - "uriBaseId": "$(ProjectDir)" - }, - "locations": [ - { - "physicalLocation": { - "fileLocation": { - "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Multitool/Rules/UseAbsolutePathsForNestedFileUriFragments.cs" - }, - "region": { - "startLine": 65, - "snippet": { - "text": " {" - } - }, - "contextRegion": { - "startLine": 64, - "startColumn": 1, - "endLine": 66, - "endColumn": 29, - "charOffset": 2271, - "charLength": 96, - "snippet": { - "text": " private bool UriHasNonAbsoluteFragment(Uri uri)\r\n {\r\n if (uri == null)" - } - } - }, - "fullyQualifiedLogicalName": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.Rules.UseAbsolutePathsForNestedFileUriFragments.UriHasNonAbsoluteFragment(System.Uri)" - } - ], - "properties": { - "Category": "Microsoft.Performance", - "FixCategory": "NonBreaking" - } + "name": "CreateResultLevelVersionOne(Microsoft.CodeAnalysis.Sarif.reportingConfigurationDefaultLevel)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifTransformerUtilities.CreateResultLevelVersionOne(Microsoft.CodeAnalysis.Sarif.reportingConfigurationDefaultLevel)", + "parentIndex": 708, + "kind": "member" }, { - "ruleId": "CA0053", - "message": { - "text": "AssemblyLoad exception: Microsoft.FxCop.Common.AssemblyLoadException: Unable to load rule assembly 'c:\\program files (x86)\\microsoft\\fxcop 14.0 for sdl\\Rules\\DataflowRules.dll': The assembly contains no FxCop rules. ." - }, - "locations": [ - {} - ], - "partialFingerprints": { - "UniqueId": "Microsoft.FxCop.Common.AssemblyLoadException" - } + "name": "CreatereportingConfigurationDefaultLevel(Microsoft.CodeAnalysis.Sarif.VersionOne.ResultLevelVersionOne)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifTransformerUtilities.CreatereportingConfigurationDefaultLevel(Microsoft.CodeAnalysis.Sarif.VersionOne.ResultLevelVersionOne)", + "parentIndex": 708, + "kind": "member" }, { - "ruleId": "CA0053", - "message": { - "text": "AssemblyLoad exception: Microsoft.FxCop.Common.AssemblyLoadException: Unable to load rule assembly 'c:\\program files (x86)\\microsoft\\fxcop 14.0 for sdl\\Rules\\SecurityWebConfigurationRules.dll': The assembly contains no FxCop rules. ." - }, - "locations": [ - {} - ], - "partialFingerprints": { - "UniqueId": "Microsoft.FxCop.Common.AssemblyLoadException" - } + "name": "CreateSuppressionStates(Microsoft.CodeAnalysis.Sarif.VersionOne.SuppressionStatesVersionOne)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifTransformerUtilities.CreateSuppressionStates(Microsoft.CodeAnalysis.Sarif.VersionOne.SuppressionStatesVersionOne)", + "parentIndex": 708, + "kind": "member" }, { - "ruleId": "CA0053", - "message": { - "text": "AssemblyLoad exception: Microsoft.FxCop.Common.AssemblyLoadException: Unable to load rule assembly 'c:\\program files (x86)\\microsoft\\fxcop 14.0 for sdl\\Rules\\SecurityWebDataflowRules.dll': The assembly contains no FxCop rules. ." - }, - "locations": [ - {} - ], - "partialFingerprints": { - "UniqueId": "Microsoft.FxCop.Common.AssemblyLoadException" - } + "name": "CreateSuppressionStatesVersionOne(Microsoft.CodeAnalysis.Sarif.SuppressionStates)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifTransformerUtilities.CreateSuppressionStatesVersionOne(Microsoft.CodeAnalysis.Sarif.SuppressionStates)", + "parentIndex": 708, + "kind": "member" }, { - "ruleId": "CA0001", - "message": { - "text": "ProjectLoad exception: Microsoft.FxCop.Sdk.FxCopException: Failed to add rule assembly: c:\\program files (x86)\\microsoft\\fxcop 14.0 for sdl\\Rules\\DataflowRules.dll. . Inner Exception: Microsoft.FxCop.Common.AssemblyLoadException: Unable to load rule assembly 'c:\\program files (x86)\\microsoft\\fxcop 14.0 for sdl\\Rules\\DataflowRules.dll': The assembly contains no FxCop rules. " - }, - "locations": [ - {} - ], - "partialFingerprints": { - "UniqueId": "Microsoft.FxCop.Sdk.FxCopException" - } + "name": "CreateThreadFlowLocationImportance(Microsoft.CodeAnalysis.Sarif.VersionOne.AnnotatedCodeLocationImportanceVersionOne)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifTransformerUtilities.CreateThreadFlowLocationImportance(Microsoft.CodeAnalysis.Sarif.VersionOne.AnnotatedCodeLocationImportanceVersionOne)", + "parentIndex": 708, + "kind": "member" }, { - "ruleId": "CA0001", - "message": { - "text": "ProjectLoad exception: Microsoft.FxCop.Sdk.FxCopException: Failed to add rule assembly: c:\\program files (x86)\\microsoft\\fxcop 14.0 for sdl\\Rules\\SecurityWebConfigurationRules.dll. . Inner Exception: Microsoft.FxCop.Common.AssemblyLoadException: Unable to load rule assembly 'c:\\program files (x86)\\microsoft\\fxcop 14.0 for sdl\\Rules\\SecurityWebConfigurationRules.dll': The assembly contains no FxCop rules. " - }, - "locations": [ - {} - ], - "partialFingerprints": { - "UniqueId": "Microsoft.FxCop.Sdk.FxCopException" - } + "name": "DefaultFullyQualifiedNameDelimiters", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifTransformerUtilities.DefaultFullyQualifiedNameDelimiters", + "parentIndex": 708, + "kind": "member" }, { - "ruleId": "CA0001", - "message": { - "text": "ProjectLoad exception: Microsoft.FxCop.Sdk.FxCopException: Failed to add rule assembly: c:\\program files (x86)\\microsoft\\fxcop 14.0 for sdl\\Rules\\SecurityWebDataflowRules.dll. . Inner Exception: Microsoft.FxCop.Common.AssemblyLoadException: Unable to load rule assembly 'c:\\program files (x86)\\microsoft\\fxcop 14.0 for sdl\\Rules\\SecurityWebDataflowRules.dll': The assembly contains no FxCop rules. " - }, - "locations": [ - {} - ], - "partialFingerprints": { - "UniqueId": "Microsoft.FxCop.Sdk.FxCopException" - } + "name": "JsonSettingsV1", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifTransformerUtilities.JsonSettingsV1", + "parentIndex": 708, + "kind": "member" }, { - "ruleId": "CA0068", - "message": { - "text": "Engine exception: Microsoft.FxCop.Sdk.FxCopException: Debug information could not be found for target assembly 'Microsoft.Json.Schema.Validation.dll'. For best analysis results, include the .pdb file with debug information for 'Microsoft.Json.Schema.Validation.dll' in the same directory as the target assembly. ." - }, - "locations": [ - {} - ], - "partialFingerprints": { - "UniqueId": "Microsoft.FxCop.Sdk.FxCopException" - } + "name": "JsonSettingsV1Compact", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifTransformerUtilities.JsonSettingsV1Compact", + "parentIndex": 708, + "kind": "member" }, { - "ruleId": "CA0068", - "message": { - "text": "Engine exception: Microsoft.FxCop.Sdk.FxCopException: Debug information could not be found for target assembly 'Microsoft.Json.Pointer.dll'. For best analysis results, include the .pdb file with debug information for 'Microsoft.Json.Pointer.dll' in the same directory as the target assembly. ." - }, - "locations": [ - {} - ], - "partialFingerprints": { - "UniqueId": "Microsoft.FxCop.Sdk.FxCopException" - } + "name": "JsonSettingsV2", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifTransformerUtilities.JsonSettingsV2", + "parentIndex": 708, + "kind": "member" }, { - "ruleId": "CA0068", - "message": { - "text": "Engine exception: Microsoft.FxCop.Sdk.FxCopException: Debug information could not be found for target assembly 'Microsoft.Json.Schema.dll'. For best analysis results, include the .pdb file with debug information for 'Microsoft.Json.Schema.dll' in the same directory as the target assembly. ." - }, - "locations": [ - {} - ], - "partialFingerprints": { - "UniqueId": "Microsoft.FxCop.Sdk.FxCopException" - } - } - ], - "resources": { - "rules": { - "CA1012": { - "id": "CA1012", - "name": { - "text": "AbstractTypesShouldNotHaveConstructors" - }, - "messageStrings": { - "Default": "Change the accessibility of all public constructors in {0} to protected." - }, - "properties": { - "Category": "Microsoft.Design" - } - }, - "CA2105": { - "id": "CA2105", - "name": { - "text": "ArrayFieldsShouldNotBeReadOnly" - }, - "messageStrings": { - "Default": "Either replace {0} with a strongly typed collection that cannot be changed, or replace the public field with a method that returns a clone of a private array." - }, - "properties": { - "Category": "Microsoft.Security" - } - }, - "CA2243": { - "id": "CA2243", - "name": { - "text": "AttributeStringLiteralsShouldParseCorrectly" - }, - "messageStrings": { - "Default": "In the constructor of {0}, change the value of argument {1}, which is currently \"{2}\", to something that can be correctly parsed as {3}." - }, - "properties": { - "Category": "Microsoft.Usage" - } - }, - "CA1040": { - "id": "CA1040", - "name": { - "text": "AvoidEmptyInterfaces" - }, - "messageStrings": { - "Default": "Define a custom attribute to replace {0}." - }, - "properties": { - "Category": "Microsoft.Design" - } - }, - "CA1506": { - "id": "CA1506", - "name": { - "text": "AvoidExcessiveClassCoupling" - }, - "messageStrings": { - "Method": "{0} is coupled with {1} different types from {2} different namespaces. Rewrite or refactor the method to decrease its class coupling, or consider moving the method to one of the other types it is tightly coupled with. A class coupling above {3} indicates poor maintainability, a class coupling between {3} and {4} indicates moderate maintainability, and a class coupling below {4} indicates good maintainability.", - "Type": "{0} is coupled with {1} different types from {2} different namespaces. Rewrite or refactor this class's methods to decrease its class coupling, or consider moving some of the class's methods to some of the other types it is tightly coupled with. A class coupling above {3} indicates poor maintainability, a class coupling between {3} and {4} indicates moderate maintainability, and a class coupling below {4} indicates good maintainability." - }, - "properties": { - "Category": "Microsoft.Maintainability" - } - }, - "CA1502": { - "id": "CA1502", - "name": { - "text": "AvoidExcessiveComplexity" - }, - "messageStrings": { - "Default": "{0} has a cyclomatic complexity of {1}. Rewrite or refactor the method to reduce complexity to {2}." - }, - "properties": { - "Category": "Microsoft.Maintainability" - } - }, - "CA1809": { - "id": "CA1809", - "name": { - "text": "AvoidExcessiveLocals" - }, - "messageStrings": { - "Compiler": "{0} has {1} local variables, {2} of which were generated by the compiler. Refactor {0} so that it uses fewer than 64 local variables." - }, - "properties": { - "Category": "Microsoft.Performance" - } - }, - "CA1020": { - "id": "CA1020", - "name": { - "text": "AvoidNamespacesWithFewTypes" - }, - "messageStrings": { - "Default": "Consider merging the types defined in '{0}' with another namespace." - }, - "properties": { - "Category": "Microsoft.Design" - } - }, - "CA1021": { - "id": "CA1021", - "name": { - "text": "AvoidOutParameters" - }, - "messageStrings": { - "Default": "Consider a design that does not require that {0} be an out parameter." - }, - "properties": { - "Category": "Microsoft.Design" - } - }, - "CA1811": { - "id": "CA1811", - "name": { - "text": "AvoidUncalledPrivateCode" - }, - "messageStrings": { - "Default": "{0} appears to have no upstream public or protected callers." - }, - "properties": { - "Category": "Microsoft.Performance" - } - }, - "CA1812": { - "id": "CA1812", - "name": { - "text": "AvoidUninstantiatedInternalClasses" - }, - "messageStrings": { - "Default": "{0} is an internal class that is apparently never instantiated. If so, remove the code from the assembly. If this class is intended to contain only static methods, consider adding a private constructor to prevent the compiler from generating a default constructor." - }, - "properties": { - "Category": "Microsoft.Performance" - } - }, - "CA1505": { - "id": "CA1505", - "name": { - "text": "AvoidUnmaintainableCode" - }, - "messageStrings": { - "Method": "{0} has a maintainability index of {1}. Rewrite or refactor the method to increase its maintainability index (MI). An MI below {2} indicates poor maintainability, an MI between {2} and {3} indicates moderate maintainability, and an MI above {3} indicates good maintainability." - }, - "properties": { - "Category": "Microsoft.Maintainability" - } - }, - "CA1823": { - "id": "CA1823", - "name": { - "text": "AvoidUnusedPrivateFields" - }, - "messageStrings": { - "Default": "It appears that field {0} is never used or is only ever assigned to. Use this field or remove it." - }, - "properties": { - "Category": "Microsoft.Performance" - } - }, - "CA1816": { - "id": "CA1816", - "name": { - "text": "CallGCSuppressFinalizeCorrectly" - }, - "messageStrings": { - "NotCalled": "Change {0} to call {1}. This will prevent derived types that introduce a finalizer from needing to re-implement 'IDisposable' to call it." - }, - "properties": { - "Category": "Microsoft.Usage" - } - }, - "CA2227": { - "id": "CA2227", - "name": { - "text": "CollectionPropertiesShouldBeReadOnly" - }, - "messageStrings": { - "Default": "Change {0} to be read-only by removing the property setter." - }, - "properties": { - "Category": "Microsoft.Usage" - } - }, - "CA1702": { - "id": "CA1702", - "name": { - "text": "CompoundWordsShouldBeCasedCorrectly" - }, - "messageStrings": { - "MemberParameterShouldBeDiscreteTerm": "In member {0}, the compound word '{1}' in parameter name {2} exists as a discrete term. If your usage is intended to be single word, case it as '{3}' or strip the first token entirely if it represents any sort of Hungarian notation.", - "MemberShouldBeDiscreteTerm": "The compound word '{0}' in member name {1} exists as a discrete term. If your usage is intended to be single word, case it as '{2}' or strip the first token entirely if it represents any sort of Hungarian notation.", - "TypeShouldBeDiscreteTerm": "The compound word '{0}' in type name {1} exists as a discrete term. If your usage is intended to be single word, case it as '{2}'." - }, - "properties": { - "Category": "Microsoft.Naming" - } - }, - "CA1011": { - "id": "CA1011", - "name": { - "text": "ConsiderPassingBaseTypesAsParameters" - }, - "messageStrings": { - "Default": "Consider changing the type of parameter {0} in {1} from {2} to its base type {3}. This method appears to only require base class members in its implementation. Suppress this violation if there is a compelling reason to require the more derived type in the method signature." - }, - "properties": { - "Category": "Microsoft.Design" - } - }, - "CA1026": { - "id": "CA1026", - "name": { - "text": "DefaultParametersShouldNotBeUsed" - }, - "messageStrings": { - "Default": "Replace method {0} with an overload that supplies all default arguments." - }, - "properties": { - "Category": "Microsoft.Design" - } - }, - "CA2215": { - "id": "CA2215", - "name": { - "text": "Dispose methods should call base class dispose" - }, - "messageStrings": { - "Default": "Ensure that method {0} calls base.{0} in all possible control flow paths." - }, - "properties": { - "Category": "Microsoft.Usage" - } - }, - "CA2000": { - "id": "CA2000", - "name": { - "text": "Dispose objects before losing scope" - }, - "messageStrings": { - "ExceptionEdge": "In method {0}, object {1} is not disposed along all exception paths. Call System.IDisposable.Dispose on object {1} before all references to it are out of scope.", - "NonExceptionEdge": "In method {0}, call System.IDisposable.Dispose on object {1} before all references to it are out of scope." - }, - "properties": { - "Category": "Microsoft.Reliability" - } - }, - "CA2202": { - "id": "CA2202", - "name": { - "text": "Do not dispose objects multiple times" - }, - "messageStrings": { - "Default": "Object {0} can be disposed more than once in method {1}. To avoid generating a System.ObjectDisposedException you should not call Dispose more than one time on an object.: Lines: 38" - }, - "properties": { - "Category": "Microsoft.Usage" - } - }, - "CA1303": { - "id": "CA1303", - "name": { - "text": "Do not pass literals as localized parameters" - }, - "messageStrings": { - "KnownValue": "Method {0} passes a literal string as parameter '{1}' of a call to {2}. Retrieve the following string(s) from a resource table instead: {3}." - }, - "properties": { - "Category": "Microsoft.Globalization" - } - }, - "CA2214": { - "id": "CA2214", - "name": { - "text": "DoNotCallOverridableMethodsInConstructors" - }, - "messageStrings": { - "Default": "{0} contains a call chain that results in a call to a virtual method defined by the class. Review the following call stack for unintended consequences: {1}" - }, - "properties": { - "Category": "Microsoft.Usage" - } - }, - "CA1800": { - "id": "CA1800", - "name": { - "text": "DoNotCastUnnecessarily" - }, - "messageStrings": { - "Local": "{0}, a variable, is cast to type {1} multiple times in method {2}. Cache the result of the 'as' operator or direct cast in order to eliminate the redundant {3} instruction.", - "Parameter": "{0}, a parameter, is cast to type {1} multiple times in method {2}. Cache the result of the 'as' operator or direct cast in order to eliminate the redundant {3} instruction." - }, - "properties": { - "Category": "Microsoft.Performance" - } - }, - "CA1031": { - "id": "CA1031", - "name": { - "text": "DoNotCatchGeneralExceptionTypes" - }, - "messageStrings": { - "Default": "Modify {0} to catch a more specific exception than {1} or rethrow the exception." - }, - "properties": { - "Category": "Microsoft.Design" - } - }, - "CA2104": { - "id": "CA2104", - "name": { - "text": "DoNotDeclareReadOnlyMutableReferenceTypes" - }, - "messageStrings": { - "Default": "Remove the read-only designation from {0} or change the field to one that is an immutable reference type. If the reference type {1} is, in fact, immutable, exclude this message." - }, - "properties": { - "Category": "Microsoft.Security" - } - }, - "CA1000": { - "id": "CA1000", - "name": { - "text": "DoNotDeclareStaticMembersOnGenericTypes" - }, - "messageStrings": { - "Default": "Remove {0} from {1} or make it an instance member." - }, - "properties": { - "Category": "Microsoft.Design" - } - }, - "CA1051": { - "id": "CA1051", - "name": { - "text": "DoNotDeclareVisibleInstanceFields" - }, - "messageStrings": { - "Default": "Because field {0} is visible outside of its declaring type, change its accessibility to private and add a property, with the same accessibility as the field has currently, to provide access to it." - }, - "properties": { - "Category": "Microsoft.Design" - } - }, - "CA1002": { - "id": "CA1002", - "name": { - "text": "DoNotExposeGenericLists" - }, - "messageStrings": { - "Default": "Change {0} in {1} to use Collection, ReadOnlyCollection or KeyedCollection" - }, - "properties": { - "Category": "Microsoft.Design" - } - }, - "CA1806": { - "id": "CA1806", - "name": { - "text": "DoNotIgnoreMethodResults" - }, - "messageStrings": { - "TryParse": "{0} calls {1} but does not explicitly check whether the conversion succeeded. Either use the return value in a conditional statement or verify that the call site expects that the out argument will be set to the default value when the conversion fails." - }, - "properties": { - "Category": "Microsoft.Usage" - } - }, - "CA2217": { - "id": "CA2217", - "name": { - "text": "DoNotMarkEnumsWithFlags" - }, - "messageStrings": { - "Default": "{0} is marked with FlagsAttribute but a discrete member cannot be found for every settable bit that is used across the range of enum values. Remove FlagsAttribute from the type or define new members for the following (currently missing) values: {1}" - }, - "properties": { - "Category": "Microsoft.Usage" - } - }, - "CA1006": { - "id": "CA1006", - "name": { - "text": "DoNotNestGenericTypesInMemberSignatures" - }, - "messageStrings": { - "Default": "Consider a design where {0} doesn't nest generic type {1}." - }, - "properties": { - "Category": "Microsoft.Design" - } - }, - "CA1045": { - "id": "CA1045", - "name": { - "text": "DoNotPassTypesByReference" - }, - "messageStrings": { - "Default": "Consider a design that does not require that {0} be a reference parameter." - }, - "properties": { - "Category": "Microsoft.Design" - } - }, - "CA2201": { - "id": "CA2201", - "name": { - "text": "DoNotRaiseReservedExceptionTypes" - }, - "messageStrings": { - "TooGeneric": "{0} creates an exception of type {1}, an exception type that is not sufficiently specific and should never be raised by user code. If this exception instance might be thrown, use a different exception type." - }, - "properties": { - "Category": "Microsoft.Usage" - } - }, - "CA1028": { - "id": "CA1028", - "name": { - "text": "EnumStorageShouldBeInt32" - }, - "messageStrings": { - "NotIntegral": "If possible, make the underlying type of {0} Int32 instead of {1}. Otherwise consider Byte, Int16, or Int64." - }, - "properties": { - "Category": "Microsoft.Design" - } - }, - "CA1008": { - "id": "CA1008", - "name": { - "text": "EnumsShouldHaveZeroValue" - }, - "messageStrings": { - "FlagsRename": "In enum {0}, change the name of {1} to 'None'." - }, - "properties": { - "Category": "Microsoft.Design" - } - }, - "CA1064": { - "id": "CA1064", - "name": { - "text": "ExceptionsShouldBePublic" - }, - "messageStrings": { - "Default": "Make exception class {0} public." - }, - "properties": { - "Category": "Microsoft.Design" - } - }, - "CA1714": { - "id": "CA1714", - "name": { - "text": "FlagsEnumsShouldHavePluralNames" - }, - "messageStrings": { - "Default": "If enumeration name {0} is singular, change it to a plural form." - }, - "properties": { - "Category": "Microsoft.Naming" - } - }, - "CA1709": { - "id": "CA1709", - "name": { - "text": "IdentifiersShouldBeCasedCorrectly" - }, - "messageStrings": { - "Member": "Correct the casing of '{0}' in member name {1} by changing it to '{2}'.", - "Namespace": "Correct the casing of '{0}' in namespace name '{1}' by changing it to '{2}'.", - "Type": "Correct the casing of '{0}' in type name {1} by changing it to '{2}'." - }, - "properties": { - "Category": "Microsoft.Naming" - } - }, - "CA1704": { - "id": "CA1704", - "name": { - "text": "IdentifiersShouldBeSpelledCorrectly" - }, - "messageStrings": { - "Assembly": "Correct the spelling of '{0}' in assembly name {1}.", - "Member": "Correct the spelling of '{0}' in member name {1} or remove it entirely if it represents any sort of Hungarian notation.", - "MemberParameter": "In method {0}, correct the spelling of '{1}' in parameter name {2} or remove it entirely if it represents any sort of Hungarian notation.", - "MemberParameterMoreMeaningfulName": "In method {0}, consider providing a more meaningful name than parameter name {1}.", - "Namespace": "Correct the spelling of '{0}' in namespace name '{1}'.", - "Type": "Correct the spelling of '{0}' in type name {1}." - }, - "properties": { - "Category": "Microsoft.Naming" - } - }, - "CA1710": { - "id": "CA1710", - "name": { - "text": "IdentifiersShouldHaveCorrectSuffix" - }, - "messageStrings": { - "Default": "Rename {0} to end in '{1}'." - }, - "properties": { - "Category": "Microsoft.Naming" - } - }, - "CA1720": { - "id": "CA1720", - "name": { - "text": "IdentifiersShouldNotContainTypeNames" - }, - "messageStrings": { - "LanguageIndependentMemberParameter": "In member {0}, consider replacing the data type identifier '{1}' in parameter name {2} with a more generic term, such as 'value'." - }, - "properties": { - "Category": "Microsoft.Naming" - } - }, - "CA1707": { - "id": "CA1707", - "name": { - "text": "IdentifiersShouldNotContainUnderscores" - }, - "messageStrings": { - "Member": "Remove the underscores from member name {0}." + "name": "JsonSettingsV2Compact", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifTransformerUtilities.JsonSettingsV2Compact", + "parentIndex": 708, + "kind": "member" + }, + { + "name": "PropertyBagTransformerItemPrefixes", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifTransformerUtilities.PropertyBagTransformerItemPrefixes", + "parentIndex": 708, + "kind": "member" + }, + { + "name": "SarifVersionOneToCurrentVisitor", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifVersionOneToCurrentVisitor", + "parentIndex": 678, + "kind": "type" + }, + { + "name": "_currentV1Run", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifVersionOneToCurrentVisitor._currentV1Run", + "parentIndex": 730, + "kind": "member" + }, + { + "name": "CreateFileLocation(System.Uri,System.String)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifVersionOneToCurrentVisitor.CreateFileLocation(System.Uri,System.String)", + "parentIndex": 730, + "kind": "member" + }, + { + "name": "CreateHash(Microsoft.CodeAnalysis.Sarif.VersionOne.HashVersionOne)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifVersionOneToCurrentVisitor.CreateHash(Microsoft.CodeAnalysis.Sarif.VersionOne.HashVersionOne)", + "parentIndex": 730, + "kind": "member" + }, + { + "name": "CreateLogicalLocation(Microsoft.CodeAnalysis.Sarif.VersionOne.LogicalLocationVersionOne)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifVersionOneToCurrentVisitor.CreateLogicalLocation(Microsoft.CodeAnalysis.Sarif.VersionOne.LogicalLocationVersionOne)", + "parentIndex": 730, + "kind": "member" + }, + { + "name": "CreateMessage(System.String)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifVersionOneToCurrentVisitor.CreateMessage(System.String)", + "parentIndex": 730, + "kind": "member" + }, + { + "name": "CreateRegion(Microsoft.CodeAnalysis.Sarif.VersionOne.RegionVersionOne)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifVersionOneToCurrentVisitor.CreateRegion(Microsoft.CodeAnalysis.Sarif.VersionOne.RegionVersionOne)", + "parentIndex": 730, + "kind": "member" + }, + { + "name": "CreateRegion(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifVersionOneToCurrentVisitor.CreateRegion(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32)", + "parentIndex": 730, + "kind": "member" + }, + { + "name": "CreateResult(Microsoft.CodeAnalysis.Sarif.VersionOne.ResultVersionOne)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifVersionOneToCurrentVisitor.CreateResult(Microsoft.CodeAnalysis.Sarif.VersionOne.ResultVersionOne)", + "parentIndex": 730, + "kind": "member" + }, + { + "name": "CreateRun(Microsoft.CodeAnalysis.Sarif.VersionOne.RunVersionOne)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifVersionOneToCurrentVisitor.CreateRun(Microsoft.CodeAnalysis.Sarif.VersionOne.RunVersionOne)", + "parentIndex": 730, + "kind": "member" + }, + { + "name": "CreateTool(Microsoft.CodeAnalysis.Sarif.VersionOne.ToolVersionOne)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifVersionOneToCurrentVisitor.CreateTool(Microsoft.CodeAnalysis.Sarif.VersionOne.ToolVersionOne)", + "parentIndex": 730, + "kind": "member" + }, + { + "name": "GetLogicalLocationName(System.String)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifVersionOneToCurrentVisitor.GetLogicalLocationName(System.String)", + "parentIndex": 730, + "kind": "member" + }, + { + "name": "SarifLog", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifVersionOneToCurrentVisitor.SarifLog", + "parentIndex": 730, + "kind": "member" + }, + { + "name": "VisitSarifLogVersionOne(Microsoft.CodeAnalysis.Sarif.VersionOne.SarifLogVersionOne)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.SarifVersionOneToCurrentVisitor.VisitSarifLogVersionOne(Microsoft.CodeAnalysis.Sarif.VersionOne.SarifLogVersionOne)", + "parentIndex": 730, + "kind": "member" + }, + { + "name": "UnknownEncodingException", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Visitors.UnknownEncodingException", + "parentIndex": 678, + "kind": "type" + }, + { + "name": "Microsoft.CodeAnalysis.Sarif.Writers", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Writers", + "parentIndex": 228, + "kind": "namespace" + }, + { + "name": "MimeType", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Writers.MimeType", + "parentIndex": 745, + "kind": "type" + }, + { + "name": "Cpp", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Writers.MimeType.Cpp", + "parentIndex": 746, + "kind": "member" + }, + { + "name": "DetermineFromFileExtension(System.String)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Writers.MimeType.DetermineFromFileExtension(System.String)", + "parentIndex": 746, + "kind": "member" + }, + { + "name": "Sarif", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Writers.MimeType.Sarif", + "parentIndex": 746, + "kind": "member" + }, + { + "name": "ResultLogJsonWriter", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Writers.ResultLogJsonWriter", + "parentIndex": 745, + "kind": "type" + }, + { + "name": "Initialize(Microsoft.CodeAnalysis.Sarif.Run)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Writers.ResultLogJsonWriter.Initialize(Microsoft.CodeAnalysis.Sarif.Run)", + "parentIndex": 750, + "kind": "member" + }, + { + "name": "SarifLogger", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Writers.SarifLogger", + "parentIndex": 745, + "kind": "type" + }, + { + "name": ".ctor(System.IO.TextWriter,Microsoft.CodeAnalysis.Sarif.Writers.LoggingOptions,Microsoft.CodeAnalysis.Sarif.OptionallyEmittedData,Microsoft.CodeAnalysis.Sarif.Tool,Microsoft.CodeAnalysis.Sarif.Run,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,System.String)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Writers.SarifLogger..ctor(System.IO.TextWriter,Microsoft.CodeAnalysis.Sarif.Writers.LoggingOptions,Microsoft.CodeAnalysis.Sarif.OptionallyEmittedData,Microsoft.CodeAnalysis.Sarif.Tool,Microsoft.CodeAnalysis.Sarif.Run,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,System.String)", + "parentIndex": 752, + "kind": "member" + }, + { + "name": ".ctor(System.String,Microsoft.CodeAnalysis.Sarif.Writers.LoggingOptions,Microsoft.CodeAnalysis.Sarif.OptionallyEmittedData,Microsoft.CodeAnalysis.Sarif.Tool,Microsoft.CodeAnalysis.Sarif.Run,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,System.String)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Writers.SarifLogger..ctor(System.String,Microsoft.CodeAnalysis.Sarif.Writers.LoggingOptions,Microsoft.CodeAnalysis.Sarif.OptionallyEmittedData,Microsoft.CodeAnalysis.Sarif.Tool,Microsoft.CodeAnalysis.Sarif.Run,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,System.String)", + "parentIndex": 752, + "kind": "member" + }, + { + "name": "CaptureFilesInResult(Microsoft.CodeAnalysis.Sarif.Result)", + "fullyQualifiedName": "sarif.dll!Microsoft.CodeAnalysis.Sarif.Writers.SarifLogger.CaptureFilesInResult(Microsoft.CodeAnalysis.Sarif.Result)", + "parentIndex": 752, + "kind": "member" + }, + { + "name": "sarif.driver.dll", + "kind": "module" + }, + { + "name": "Microsoft.CodeAnalysis.Sarif.Driver", + "fullyQualifiedName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver", + "parentIndex": 756, + "kind": "namespace" + }, + { + "name": "AggregatingLogger", + "fullyQualifiedName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.AggregatingLogger", + "parentIndex": 757, + "kind": "type" + }, + { + "name": "Dispose()", + "fullyQualifiedName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.AggregatingLogger.Dispose()", + "parentIndex": 758, + "kind": "member" + }, + { + "name": "Loggers", + "fullyQualifiedName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.AggregatingLogger.Loggers", + "parentIndex": 758, + "kind": "member" + }, + { + "name": "AnalysisContext", + "fullyQualifiedName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.AnalysisContext", + "parentIndex": 757, + "kind": "type" + }, + { + "name": "Dispose()", + "fullyQualifiedName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.AnalysisContext.Dispose()", + "parentIndex": 761, + "kind": "member" + }, + { + "name": "Policy", + "fullyQualifiedName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.AnalysisContext.Policy", + "parentIndex": 761, + "kind": "member" + }, + { + "name": "AnalyzeCommandBase`2", + "fullyQualifiedName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.AnalyzeCommandBase`2", + "parentIndex": 757, + "kind": "type" + }, + { + "name": "AnalyzeTarget(System.Collections.Generic.IEnumerable`1>,!0,System.Collections.Generic.HashSet`1)", + "fullyQualifiedName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.AnalyzeCommandBase`2.AnalyzeTarget(System.Collections.Generic.IEnumerable`1>,!0,System.Collections.Generic.HashSet`1)", + "parentIndex": 764, + "kind": "member" + }, + { + "name": "AnalyzeTargets(!1,System.Collections.Generic.IEnumerable`1>,!0,System.Collections.Generic.IEnumerable`1)", + "fullyQualifiedName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.AnalyzeCommandBase`2.AnalyzeTargets(!1,System.Collections.Generic.IEnumerable`1>,!0,System.Collections.Generic.IEnumerable`1)", + "parentIndex": 764, + "kind": "member" + }, + { + "name": "CreateContext(!1,Microsoft.CodeAnalysis.Sarif.IAnalysisLogger,Microsoft.CodeAnalysis.Sarif.RuntimeConditions,System.String)", + "fullyQualifiedName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.AnalyzeCommandBase`2.CreateContext(!1,Microsoft.CodeAnalysis.Sarif.IAnalysisLogger,Microsoft.CodeAnalysis.Sarif.RuntimeConditions,System.String)", + "parentIndex": 764, + "kind": "member" + }, + { + "name": "CreateSkimmers(!0)", + "fullyQualifiedName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.AnalyzeCommandBase`2.CreateSkimmers(!0)", + "parentIndex": 764, + "kind": "member" + }, + { + "name": "DefaultPolicyName", + "fullyQualifiedName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.AnalyzeCommandBase`2.DefaultPolicyName", + "parentIndex": 764, + "kind": "member" + }, + { + "name": "DetermineApplicabilityAndAnalyze(!1,System.Collections.Generic.IEnumerable`1>,!0,System.String,System.Collections.Generic.HashSet`1)", + "fullyQualifiedName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.AnalyzeCommandBase`2.DetermineApplicabilityAndAnalyze(!1,System.Collections.Generic.IEnumerable`1>,!0,System.String,System.Collections.Generic.HashSet`1)", + "parentIndex": 764, + "kind": "member" + }, + { + "name": "DetermineApplicabilityForTarget(System.Collections.Generic.IEnumerable`1>,!0,System.Collections.Generic.HashSet`1)", + "fullyQualifiedName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.AnalyzeCommandBase`2.DetermineApplicabilityForTarget(System.Collections.Generic.IEnumerable`1>,!0,System.Collections.Generic.HashSet`1)", + "parentIndex": 764, + "kind": "member" + }, + { + "name": "GenerateSensitiveTokensList()", + "fullyQualifiedName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.AnalyzeCommandBase`2.GenerateSensitiveTokensList()", + "parentIndex": 764, + "kind": "member" + }, + { + "name": "GetCurrentRunningOS()", + "fullyQualifiedName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.AnalyzeCommandBase`2.GetCurrentRunningOS()", + "parentIndex": 764, + "kind": "member" + }, + { + "name": "InitializeLogger(Microsoft.CodeAnalysis.Sarif.Driver.AnalyzeOptionsBase)", + "fullyQualifiedName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.AnalyzeCommandBase`2.InitializeLogger(Microsoft.CodeAnalysis.Sarif.Driver.AnalyzeOptionsBase)", + "parentIndex": 764, + "kind": "member" + }, + { + "name": "InitializeOutputFile(!1,!0,System.Collections.Generic.HashSet`1)", + "fullyQualifiedName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.AnalyzeCommandBase`2.InitializeOutputFile(!1,!0,System.Collections.Generic.HashSet`1)", + "parentIndex": 764, + "kind": "member" + }, + { + "name": "InitializeSkimmers(System.Collections.Generic.HashSet`1>,!0)", + "fullyQualifiedName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.AnalyzeCommandBase`2.InitializeSkimmers(System.Collections.Generic.HashSet`1>,!0)", + "parentIndex": 764, + "kind": "member" + }, + { + "name": "InvokeCatchingRelevantIOExceptions(System.Action,System.Action`1)", + "fullyQualifiedName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.AnalyzeCommandBase`2.InvokeCatchingRelevantIOExceptions(System.Action,System.Action`1)", + "parentIndex": 764, + "kind": "member" + }, + { + "name": "LogToolNotification(Microsoft.CodeAnalysis.Sarif.IAnalysisLogger,System.String,Microsoft.CodeAnalysis.Sarif.FailureLevel,System.Exception)", + "fullyQualifiedName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.AnalyzeCommandBase`2.LogToolNotification(Microsoft.CodeAnalysis.Sarif.IAnalysisLogger,System.String,Microsoft.CodeAnalysis.Sarif.FailureLevel,System.Exception)", + "parentIndex": 764, + "kind": "member" + }, + { + "name": "RaiseUnhandledExceptionInDriverCode", + "fullyQualifiedName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.AnalyzeCommandBase`2.RaiseUnhandledExceptionInDriverCode", + "parentIndex": 764, + "kind": "member" + }, + { + "name": "Run(!1)", + "fullyQualifiedName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.AnalyzeCommandBase`2.Run(!1)", + "parentIndex": 764, + "kind": "member" + }, + { + "name": "ThrowExitApplicationException(!0,Microsoft.CodeAnalysis.Sarif.Driver.ExitReason,System.Exception)", + "fullyQualifiedName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.AnalyzeCommandBase`2.ThrowExitApplicationException(!0,Microsoft.CodeAnalysis.Sarif.Driver.ExitReason,System.Exception)", + "parentIndex": 764, + "kind": "member" + }, + { + "name": "ValidateFile(!0,System.String,System.Nullable`1)", + "fullyQualifiedName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.AnalyzeCommandBase`2.ValidateFile(!0,System.String,System.Nullable`1)", + "parentIndex": 764, + "kind": "member" + }, + { + "name": "ArgumentSplitter", + "fullyQualifiedName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.ArgumentSplitter", + "parentIndex": 757, + "kind": "type" + }, + { + "name": "CommandLineToArgvW(System.String)", + "fullyQualifiedName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.ArgumentSplitter.CommandLineToArgvW(System.String)", + "parentIndex": 783, + "kind": "member" + }, + { + "name": "DefaultDriverOptions", + "fullyQualifiedName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.DefaultDriverOptions", + "parentIndex": 757, + "kind": "type" + }, + { + "name": "CreateRuleSpecificOption`1(Microsoft.CodeAnalysis.Sarif.IRule,Microsoft.CodeAnalysis.Sarif.PerLanguageOption`1)", + "fullyQualifiedName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.DefaultDriverOptions.CreateRuleSpecificOption`1(Microsoft.CodeAnalysis.Sarif.IRule,Microsoft.CodeAnalysis.Sarif.PerLanguageOption`1)", + "parentIndex": 785, + "kind": "member" + }, + { + "name": "Instance", + "fullyQualifiedName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.DefaultDriverOptions.Instance", + "parentIndex": 785, + "kind": "member" + }, + { + "name": "DisposableEnumerable`1", + "fullyQualifiedName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.DisposableEnumerable`1", + "parentIndex": 757, + "kind": "type" + }, + { + "name": "DriverCommand`1", + "fullyQualifiedName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.DriverCommand`1", + "parentIndex": 757, + "kind": "type" + }, + { + "name": "FAILURE", + "fullyQualifiedName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.DriverCommand`1.FAILURE", + "parentIndex": 789, + "kind": "member" + }, + { + "name": "SUCCESS", + "fullyQualifiedName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.DriverCommand`1.SUCCESS", + "parentIndex": 789, + "kind": "member" + }, + { + "name": "DriverExtensionMethods", + "fullyQualifiedName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.DriverExtensionMethods", + "parentIndex": 757, + "kind": "type" + }, + { + "name": "ConvertToLoggingOptions(Microsoft.CodeAnalysis.Sarif.Driver.AnalyzeOptionsBase)", + "fullyQualifiedName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.DriverExtensionMethods.ConvertToLoggingOptions(Microsoft.CodeAnalysis.Sarif.Driver.AnalyzeOptionsBase)", + "parentIndex": 792, + "kind": "member" + }, + { + "name": "DriverResources", + "fullyQualifiedName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.DriverResources", + "parentIndex": 757, + "kind": "type" + }, + { + "name": ".ctor()", + "fullyQualifiedName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.DriverResources..ctor()", + "parentIndex": 794, + "kind": "member" + }, + { + "name": "DriverUtilities", + "fullyQualifiedName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.DriverUtilities", + "parentIndex": 757, + "kind": "type" + }, + { + "name": "GetExports`1(System.Collections.Generic.IEnumerable`1)", + "fullyQualifiedName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.DriverUtilities.GetExports`1(System.Collections.Generic.IEnumerable`1)", + "parentIndex": 796, + "kind": "member" + }, + { + "name": "EntryPointUtilities", + "fullyQualifiedName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.EntryPointUtilities", + "parentIndex": 757, + "kind": "type" + }, + { + "name": "CommandLineToArgvW(System.String,System.Int32&)", + "fullyQualifiedName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.EntryPointUtilities.CommandLineToArgvW(System.String,System.Int32&)", + "parentIndex": 798, + "kind": "member" + }, + { + "name": "GenerateArguments(System.String[],Microsoft.CodeAnalysis.Sarif.IFileSystem,Microsoft.CodeAnalysis.Sarif.Driver.IEnvironmentVariables)", + "fullyQualifiedName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.EntryPointUtilities.GenerateArguments(System.String[],Microsoft.CodeAnalysis.Sarif.IFileSystem,Microsoft.CodeAnalysis.Sarif.Driver.IEnvironmentVariables)", + "parentIndex": 798, + "kind": "member" + }, + { + "name": "LocalFree(System.IntPtr)", + "fullyQualifiedName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.EntryPointUtilities.LocalFree(System.IntPtr)", + "parentIndex": 798, + "kind": "member" + }, + { + "name": "EnumerableExtensions", + "fullyQualifiedName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.EnumerableExtensions", + "parentIndex": 757, + "kind": "type" + }, + { + "name": "LexicographicalCompare`1(System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IComparer`1)", + "fullyQualifiedName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.EnumerableExtensions.LexicographicalCompare`1(System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IComparer`1)", + "parentIndex": 802, + "kind": "member" + }, + { + "name": "RemoveIf`1(!!0[]&,System.Func`2)", + "fullyQualifiedName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.EnumerableExtensions.RemoveIf`1(!!0[]&,System.Func`2)", + "parentIndex": 802, + "kind": "member" + }, + { + "name": "ExceptionStrings", + "fullyQualifiedName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.ExceptionStrings", + "parentIndex": 757, + "kind": "type" + }, + { + "name": ".ctor()", + "fullyQualifiedName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.ExceptionStrings..ctor()", + "parentIndex": 805, + "kind": "member" + }, + { + "name": "ExitApplicationException`1", + "fullyQualifiedName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.ExitApplicationException`1", + "parentIndex": 757, + "kind": "type" + }, + { + "name": "ExportConfigurationCommandBase", + "fullyQualifiedName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.ExportConfigurationCommandBase", + "parentIndex": 757, + "kind": "type" + }, + { + "name": "Run(Microsoft.CodeAnalysis.Sarif.Driver.ExportConfigurationOptions)", + "fullyQualifiedName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.ExportConfigurationCommandBase.Run(Microsoft.CodeAnalysis.Sarif.Driver.ExportConfigurationOptions)", + "parentIndex": 808, + "kind": "member" + }, + { + "name": "ExportRulesMetadataCommandBase", + "fullyQualifiedName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.ExportRulesMetadataCommandBase", + "parentIndex": 757, + "kind": "type" + }, + { + "name": "GetIdIntegerSuffix(System.String)", + "fullyQualifiedName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.ExportRulesMetadataCommandBase.GetIdIntegerSuffix(System.String)", + "parentIndex": 810, + "kind": "member" + }, + { + "name": "OutputSarifRulesMetada(System.String,System.Collections.Immutable.ImmutableArray`1)", + "fullyQualifiedName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.ExportRulesMetadataCommandBase.OutputSarifRulesMetada(System.String,System.Collections.Immutable.ImmutableArray`1)", + "parentIndex": 810, + "kind": "member" + }, + { + "name": "Run(Microsoft.CodeAnalysis.Sarif.Driver.ExportRulesMetadataOptions)", + "fullyQualifiedName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.ExportRulesMetadataCommandBase.Run(Microsoft.CodeAnalysis.Sarif.Driver.ExportRulesMetadataOptions)", + "parentIndex": 810, + "kind": "member" + }, + { + "name": "FileSpecifier", + "fullyQualifiedName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.FileSpecifier", + "parentIndex": 757, + "kind": "type" + }, + { + "name": ".ctor(System.String,System.Boolean)", + "fullyQualifiedName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.FileSpecifier..ctor(System.String,System.Boolean)", + "parentIndex": 814, + "kind": "member" + }, + { + "name": "ISkimmer`1", + "fullyQualifiedName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.ISkimmer`1", + "parentIndex": 757, + "kind": "type" + }, + { + "name": "CanAnalyze(!0,System.String&)", + "fullyQualifiedName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.ISkimmer`1.CanAnalyze(!0,System.String&)", + "parentIndex": 816, + "kind": "member" + }, + { + "name": "MurmurHash", + "fullyQualifiedName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.MurmurHash", + "parentIndex": 757, + "kind": "type" + }, + { + "name": "AddRange(System.Collections.Generic.IEnumerable`1)", + "fullyQualifiedName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.MurmurHash.AddRange(System.Collections.Generic.IEnumerable`1)", + "parentIndex": 818, + "kind": "member" + }, + { + "name": "AddRange(System.Collections.IEnumerable)", + "fullyQualifiedName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.MurmurHash.AddRange(System.Collections.IEnumerable)", + "parentIndex": 818, + "kind": "member" + }, + { + "name": "AddRange(System.Int32[])", + "fullyQualifiedName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.MurmurHash.AddRange(System.Int32[])", + "parentIndex": 818, + "kind": "member" + }, + { + "name": "PlugInDriverCommand`1", + "fullyQualifiedName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.PlugInDriverCommand`1", + "parentIndex": 757, + "kind": "type" + }, + { + "name": "DefaultPlugInAssemblies", + "fullyQualifiedName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.PlugInDriverCommand`1.DefaultPlugInAssemblies", + "parentIndex": 822, + "kind": "member" + }, + { + "name": "ReferenceEqualityComparer`1", + "fullyQualifiedName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.ReferenceEqualityComparer`1", + "parentIndex": 757, + "kind": "type" + }, + { + "name": "Instance", + "fullyQualifiedName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.ReferenceEqualityComparer`1.Instance", + "parentIndex": 824, + "kind": "member" + }, + { + "name": "RentalStream", + "fullyQualifiedName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.RentalStream", + "parentIndex": 757, + "kind": "type" + }, + { + "name": "Dispose(System.Boolean)", + "fullyQualifiedName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.RentalStream.Dispose(System.Boolean)", + "parentIndex": 826, + "kind": "member" + }, + { + "name": "RuleEnabledState", + "fullyQualifiedName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.RuleEnabledState", + "parentIndex": 757, + "kind": "type" + }, + { + "name": "SkimmerBase`1", + "fullyQualifiedName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.SkimmerBase`1", + "parentIndex": 757, + "kind": "type" + }, + { + "name": "StatisticsLogger", + "fullyQualifiedName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.StatisticsLogger", + "parentIndex": 757, + "kind": "type" + }, + { + "name": "AnalysisStopped(Microsoft.CodeAnalysis.Sarif.RuntimeConditions)", + "fullyQualifiedName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.StatisticsLogger.AnalysisStopped(Microsoft.CodeAnalysis.Sarif.RuntimeConditions)", + "parentIndex": 830, + "kind": "member" + }, + { + "name": "Dispose()", + "fullyQualifiedName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.StatisticsLogger.Dispose()", + "parentIndex": 830, + "kind": "member" + }, + { + "name": "Log(Microsoft.CodeAnalysis.Sarif.IRule,Microsoft.CodeAnalysis.Sarif.Result)", + "fullyQualifiedName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.StatisticsLogger.Log(Microsoft.CodeAnalysis.Sarif.IRule,Microsoft.CodeAnalysis.Sarif.Result)", + "parentIndex": 830, + "kind": "member" + }, + { + "name": "Log(Microsoft.CodeAnalysis.Sarif.ResultLevel,System.String)", + "fullyQualifiedName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.StatisticsLogger.Log(Microsoft.CodeAnalysis.Sarif.ResultLevel,System.String)", + "parentIndex": 830, + "kind": "member" + }, + { + "name": "LogConfigurationNotification(Microsoft.CodeAnalysis.Sarif.Notification)", + "fullyQualifiedName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.StatisticsLogger.LogConfigurationNotification(Microsoft.CodeAnalysis.Sarif.Notification)", + "parentIndex": 830, + "kind": "member" + }, + { + "name": "TempFile", + "fullyQualifiedName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.TempFile", + "parentIndex": 757, + "kind": "type" + }, + { + "name": ".ctor(System.String)", + "fullyQualifiedName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.TempFile..ctor(System.String)", + "parentIndex": 836, + "kind": "member" + }, + { + "name": "XmlWriterExtensions", + "fullyQualifiedName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.XmlWriterExtensions", + "parentIndex": 757, + "kind": "type" + }, + { + "name": "WriteElementInt(System.Xml.XmlWriter,System.String,System.Int32)", + "fullyQualifiedName": "sarif.driver.dll!Microsoft.CodeAnalysis.Sarif.Driver.XmlWriterExtensions.WriteElementInt(System.Xml.XmlWriter,System.String,System.Int32)", + "parentIndex": 838, + "kind": "member" + }, + { + "name": "Microsoft.CodeAnalysisDriver", + "fullyQualifiedName": "sarif.driver.dll!Microsoft.CodeAnalysisDriver", + "parentIndex": 756, + "kind": "namespace" + }, + { + "name": "FileStreamExtensionMethods", + "fullyQualifiedName": "sarif.driver.dll!Microsoft.CodeAnalysisDriver.FileStreamExtensionMethods", + "parentIndex": 840, + "kind": "type" + }, + { + "name": "ReadString(System.IO.FileStream,System.Int32)", + "fullyQualifiedName": "sarif.driver.dll!Microsoft.CodeAnalysisDriver.FileStreamExtensionMethods.ReadString(System.IO.FileStream,System.Int32)", + "parentIndex": 841, + "kind": "member" + }, + { + "name": "ReadToArray(System.IO.FileStream,System.Int32)", + "fullyQualifiedName": "sarif.driver.dll!Microsoft.CodeAnalysisDriver.FileStreamExtensionMethods.ReadToArray(System.IO.FileStream,System.Int32)", + "parentIndex": 841, + "kind": "member" + }, + { + "name": "sarif.multitool.exe", + "kind": "module" + }, + { + "name": "Microsoft.CodeAnalysis.Sarif", + "fullyQualifiedName": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif", + "parentIndex": 844, + "kind": "namespace" + }, + { + "name": "MultitoolResources", + "fullyQualifiedName": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.MultitoolResources", + "parentIndex": 845, + "kind": "type" + }, + { + "name": ".ctor()", + "fullyQualifiedName": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.MultitoolResources..ctor()", + "parentIndex": 846, + "kind": "member" + }, + { + "name": "Microsoft.CodeAnalysis.Sarif.Multitool", + "fullyQualifiedName": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool", + "parentIndex": 844, + "kind": "namespace" + }, + { + "name": "AbsoluteUriCommand", + "fullyQualifiedName": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.AbsoluteUriCommand", + "parentIndex": 848, + "kind": "type" + }, + { + "name": "Run(Microsoft.CodeAnalysis.Sarif.Multitool.AbsoluteUriOptions)", + "fullyQualifiedName": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.AbsoluteUriCommand.Run(Microsoft.CodeAnalysis.Sarif.Multitool.AbsoluteUriOptions)", + "parentIndex": 849, + "kind": "member" + }, + { + "name": "BaselineCommand", + "fullyQualifiedName": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.BaselineCommand", + "parentIndex": 848, + "kind": "type" + }, + { + "name": "Run(Microsoft.CodeAnalysis.Sarif.Multitool.BaselineOptions)", + "fullyQualifiedName": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.BaselineCommand.Run(Microsoft.CodeAnalysis.Sarif.Multitool.BaselineOptions)", + "parentIndex": 851, + "kind": "member" + }, + { + "name": "ConvertCommand", + "fullyQualifiedName": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.ConvertCommand", + "parentIndex": 848, + "kind": "type" + }, + { + "name": "Run(Microsoft.CodeAnalysis.Sarif.Multitool.ConvertOptions)", + "fullyQualifiedName": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.ConvertCommand.Run(Microsoft.CodeAnalysis.Sarif.Multitool.ConvertOptions)", + "parentIndex": 853, + "kind": "member" + }, + { + "name": "JTokenExtensions", + "fullyQualifiedName": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.JTokenExtensions", + "parentIndex": 848, + "kind": "type" + }, + { + "name": "HasProperty(Newtonsoft.Json.Linq.JToken,System.String)", + "fullyQualifiedName": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.JTokenExtensions.HasProperty(Newtonsoft.Json.Linq.JToken,System.String)", + "parentIndex": 855, + "kind": "member" + }, + { + "name": "MergeCommand", + "fullyQualifiedName": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.MergeCommand", + "parentIndex": 848, + "kind": "type" + }, + { + "name": "Run(Microsoft.CodeAnalysis.Sarif.Multitool.MergeOptions)", + "fullyQualifiedName": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.MergeCommand.Run(Microsoft.CodeAnalysis.Sarif.Multitool.MergeOptions)", + "parentIndex": 857, + "kind": "member" + }, + { + "name": "MultitoolOptionsBase", + "fullyQualifiedName": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.MultitoolOptionsBase", + "parentIndex": 848, + "kind": "type" + }, + { + "name": "RebaseUriCommand", + "fullyQualifiedName": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.RebaseUriCommand", + "parentIndex": 848, + "kind": "type" + }, + { + "name": "Run(Microsoft.CodeAnalysis.Sarif.Multitool.RebaseUriOptions)", + "fullyQualifiedName": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.RebaseUriCommand.Run(Microsoft.CodeAnalysis.Sarif.Multitool.RebaseUriOptions)", + "parentIndex": 860, + "kind": "member" + }, + { + "name": "RewriteCommand", + "fullyQualifiedName": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.RewriteCommand", + "parentIndex": 848, + "kind": "type" + }, + { + "name": "Run(Microsoft.CodeAnalysis.Sarif.Multitool.RewriteOptions)", + "fullyQualifiedName": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.RewriteCommand.Run(Microsoft.CodeAnalysis.Sarif.Multitool.RewriteOptions)", + "parentIndex": 862, + "kind": "member" + }, + { + "name": "SarifPropertyName", + "fullyQualifiedName": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.SarifPropertyName", + "parentIndex": 848, + "kind": "type" + }, + { + "name": "Stderr", + "fullyQualifiedName": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.SarifPropertyName.Stderr", + "parentIndex": 864, + "kind": "member" + }, + { + "name": "Stdin", + "fullyQualifiedName": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.SarifPropertyName.Stdin", + "parentIndex": 864, + "kind": "member" + }, + { + "name": "Stdout", + "fullyQualifiedName": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.SarifPropertyName.Stdout", + "parentIndex": 864, + "kind": "member" + }, + { + "name": "StdoutStderr", + "fullyQualifiedName": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.SarifPropertyName.StdoutStderr", + "parentIndex": 864, + "kind": "member" + }, + { + "name": "SarifValidationContext", + "fullyQualifiedName": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.SarifValidationContext", + "parentIndex": 848, + "kind": "type" + }, + { + "name": "Dispose()", + "fullyQualifiedName": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.SarifValidationContext.Dispose()", + "parentIndex": 869, + "kind": "member" + }, + { + "name": "Policy", + "fullyQualifiedName": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.SarifValidationContext.Policy", + "parentIndex": 869, + "kind": "member" + }, + { + "name": "TransformCommand", + "fullyQualifiedName": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.TransformCommand", + "parentIndex": 848, + "kind": "type" + }, + { + "name": "Run(Microsoft.CodeAnalysis.Sarif.Multitool.TransformOptions)", + "fullyQualifiedName": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.TransformCommand.Run(Microsoft.CodeAnalysis.Sarif.Multitool.TransformOptions)", + "parentIndex": 872, + "kind": "member" + }, + { + "name": "ValidateCommand", + "fullyQualifiedName": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.ValidateCommand", + "parentIndex": 848, + "kind": "type" + }, + { + "name": "AnalyzeTarget(System.Collections.Generic.IEnumerable`1>,Microsoft.CodeAnalysis.Sarif.Multitool.SarifValidationContext,System.Collections.Generic.HashSet`1)", + "fullyQualifiedName": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.ValidateCommand.AnalyzeTarget(System.Collections.Generic.IEnumerable`1>,Microsoft.CodeAnalysis.Sarif.Multitool.SarifValidationContext,System.Collections.Generic.HashSet`1)", + "parentIndex": 874, + "kind": "member" + }, + { + "name": "CreateContext(Microsoft.CodeAnalysis.Sarif.Multitool.ValidateOptions,Microsoft.CodeAnalysis.Sarif.IAnalysisLogger,Microsoft.CodeAnalysis.Sarif.RuntimeConditions,System.String)", + "fullyQualifiedName": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.ValidateCommand.CreateContext(Microsoft.CodeAnalysis.Sarif.Multitool.ValidateOptions,Microsoft.CodeAnalysis.Sarif.IAnalysisLogger,Microsoft.CodeAnalysis.Sarif.RuntimeConditions,System.String)", + "parentIndex": 874, + "kind": "member" + }, + { + "name": "Validate(System.String,System.String,Microsoft.CodeAnalysis.Sarif.IAnalysisLogger)", + "fullyQualifiedName": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.ValidateCommand.Validate(System.String,System.String,Microsoft.CodeAnalysis.Sarif.IAnalysisLogger)", + "parentIndex": 874, + "kind": "member" + }, + { + "name": "ValidatorResources", + "fullyQualifiedName": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.ValidatorResources", + "parentIndex": 848, + "kind": "type" + }, + { + "name": ".ctor()", + "fullyQualifiedName": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.ValidatorResources..ctor()", + "parentIndex": 878, + "kind": "member" + }, + { + "name": "Microsoft.CodeAnalysis.Sarif.Multitool.Rules", + "fullyQualifiedName": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.Rules", + "parentIndex": 844, + "kind": "namespace" + }, + { + "name": "DoNotUseFriendlyNameAsRuleId", + "fullyQualifiedName": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.Rules.DoNotUseFriendlyNameAsRuleId", + "parentIndex": 880, + "kind": "type" + }, + { + "name": "Analyze(Microsoft.CodeAnalysis.Sarif.Rule,System.String)", + "fullyQualifiedName": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.Rules.DoNotUseFriendlyNameAsRuleId.Analyze(Microsoft.CodeAnalysis.Sarif.Rule,System.String)", + "parentIndex": 881, + "kind": "member" + }, + { + "name": "EndColumnMustNotBeLessThanStartColumn", + "fullyQualifiedName": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.Rules.EndColumnMustNotBeLessThanStartColumn", + "parentIndex": 880, + "kind": "type" + }, + { + "name": "Analyze(Microsoft.CodeAnalysis.Sarif.Region,System.String)", + "fullyQualifiedName": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.Rules.EndColumnMustNotBeLessThanStartColumn.Analyze(Microsoft.CodeAnalysis.Sarif.Region,System.String)", + "parentIndex": 883, + "kind": "member" + }, + { + "name": "EndLineMustNotBeLessThanStartLine", + "fullyQualifiedName": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.Rules.EndLineMustNotBeLessThanStartLine", + "parentIndex": 880, + "kind": "type" + }, + { + "name": "Analyze(Microsoft.CodeAnalysis.Sarif.Region,System.String)", + "fullyQualifiedName": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.Rules.EndLineMustNotBeLessThanStartLine.Analyze(Microsoft.CodeAnalysis.Sarif.Region,System.String)", + "parentIndex": 885, + "kind": "member" + }, + { + "name": "EndTimeMustBeAfterStartTime", + "fullyQualifiedName": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.Rules.EndTimeMustBeAfterStartTime", + "parentIndex": 880, + "kind": "type" + }, + { + "name": "Analyze(Microsoft.CodeAnalysis.Sarif.Invocation,System.String)", + "fullyQualifiedName": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.Rules.EndTimeMustBeAfterStartTime.Analyze(Microsoft.CodeAnalysis.Sarif.Invocation,System.String)", + "parentIndex": 887, + "kind": "member" + }, + { + "name": "HashAlgorithmsMustBeUnique", + "fullyQualifiedName": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.Rules.HashAlgorithmsMustBeUnique", + "parentIndex": 880, + "kind": "type" + }, + { + "name": "Analyze(Microsoft.CodeAnalysis.Sarif.FileData,System.String,System.String)", + "fullyQualifiedName": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.Rules.HashAlgorithmsMustBeUnique.Analyze(Microsoft.CodeAnalysis.Sarif.FileData,System.String,System.String)", + "parentIndex": 889, + "kind": "member" + }, + { + "name": "MessagesShouldEndWithPeriod", + "fullyQualifiedName": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.Rules.MessagesShouldEndWithPeriod", + "parentIndex": 880, + "kind": "type" + }, + { + "name": "Analyze(Microsoft.CodeAnalysis.Sarif.Message,System.String)", + "fullyQualifiedName": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.Rules.MessagesShouldEndWithPeriod.Analyze(Microsoft.CodeAnalysis.Sarif.Message,System.String)", + "parentIndex": 891, + "kind": "member" + }, + { + "name": "Analyze(Microsoft.CodeAnalysis.Sarif.Rule,System.String)", + "fullyQualifiedName": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.Rules.MessagesShouldEndWithPeriod.Analyze(Microsoft.CodeAnalysis.Sarif.Rule,System.String)", + "parentIndex": 891, + "kind": "member" + }, + { + "name": "RuleResources", + "fullyQualifiedName": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.Rules.RuleResources", + "parentIndex": 880, + "kind": "type" + }, + { + "name": ".ctor()", + "fullyQualifiedName": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.Rules.RuleResources..ctor()", + "parentIndex": 894, + "kind": "member" + }, + { + "name": "SarifValidationSkimmerBase", + "fullyQualifiedName": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.Rules.SarifValidationSkimmerBase", + "parentIndex": 880, + "kind": "type" + }, + { + "name": "LogResult(System.String,System.String,System.String[])", + "fullyQualifiedName": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.Rules.SarifValidationSkimmerBase.LogResult(System.String,System.String,System.String[])", + "parentIndex": 896, + "kind": "member" + }, + { + "name": "StepValuesMustFormOneBasedSequence", + "fullyQualifiedName": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.Rules.StepValuesMustFormOneBasedSequence", + "parentIndex": 880, + "kind": "type" + }, + { + "name": "Analyze(Microsoft.CodeAnalysis.Sarif.ThreadFlow,System.String)", + "fullyQualifiedName": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.Rules.StepValuesMustFormOneBasedSequence.Analyze(Microsoft.CodeAnalysis.Sarif.ThreadFlow,System.String)", + "parentIndex": 898, + "kind": "member" + }, + { + "name": "FindFirstLocationWithMissingStep(Newtonsoft.Json.Linq.JObject[])", + "fullyQualifiedName": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.Rules.StepValuesMustFormOneBasedSequence.FindFirstLocationWithMissingStep(Newtonsoft.Json.Linq.JObject[])", + "parentIndex": 898, + "kind": "member" + }, + { + "name": "UriBaseIdRequiresRelativeUri", + "fullyQualifiedName": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.Rules.UriBaseIdRequiresRelativeUri", + "parentIndex": 880, + "kind": "type" + }, + { + "name": "Analyze(Microsoft.CodeAnalysis.Sarif.FileLocation,System.String)", + "fullyQualifiedName": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.Rules.UriBaseIdRequiresRelativeUri.Analyze(Microsoft.CodeAnalysis.Sarif.FileLocation,System.String)", + "parentIndex": 901, + "kind": "member" + }, + { + "name": "UrisMustBeValid", + "fullyQualifiedName": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.Rules.UrisMustBeValid", + "parentIndex": 880, + "kind": "type" + }, + { + "name": "Analyze(Microsoft.CodeAnalysis.Sarif.FileData,System.String,System.String)", + "fullyQualifiedName": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.Rules.UrisMustBeValid.Analyze(Microsoft.CodeAnalysis.Sarif.FileData,System.String,System.String)", + "parentIndex": 903, + "kind": "member" + }, + { + "name": "Analyze(Microsoft.CodeAnalysis.Sarif.FileLocation,System.String)", + "fullyQualifiedName": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.Rules.UrisMustBeValid.Analyze(Microsoft.CodeAnalysis.Sarif.FileLocation,System.String)", + "parentIndex": 903, + "kind": "member" + }, + { + "name": "Analyze(Microsoft.CodeAnalysis.Sarif.Result,System.String)", + "fullyQualifiedName": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.Rules.UrisMustBeValid.Analyze(Microsoft.CodeAnalysis.Sarif.Result,System.String)", + "parentIndex": 903, + "kind": "member" + }, + { + "name": "Analyze(Microsoft.CodeAnalysis.Sarif.Rule,System.String)", + "fullyQualifiedName": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.Rules.UrisMustBeValid.Analyze(Microsoft.CodeAnalysis.Sarif.Rule,System.String)", + "parentIndex": 903, + "kind": "member" + }, + { + "name": "Analyze(Microsoft.CodeAnalysis.Sarif.Run,System.String)", + "fullyQualifiedName": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.Rules.UrisMustBeValid.Analyze(Microsoft.CodeAnalysis.Sarif.Run,System.String)", + "parentIndex": 903, + "kind": "member" + }, + { + "name": "Analyze(Microsoft.CodeAnalysis.Sarif.SarifLog,System.String)", + "fullyQualifiedName": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.Rules.UrisMustBeValid.Analyze(Microsoft.CodeAnalysis.Sarif.SarifLog,System.String)", + "parentIndex": 903, + "kind": "member" + }, + { + "name": "Analyze(Microsoft.CodeAnalysis.Sarif.Tool,System.String)", + "fullyQualifiedName": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.Rules.UrisMustBeValid.Analyze(Microsoft.CodeAnalysis.Sarif.Tool,System.String)", + "parentIndex": 903, + "kind": "member" + }, + { + "name": "Analyze(Microsoft.CodeAnalysis.Sarif.VersionControlDetails,System.String)", + "fullyQualifiedName": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.Rules.UrisMustBeValid.Analyze(Microsoft.CodeAnalysis.Sarif.VersionControlDetails,System.String)", + "parentIndex": 903, + "kind": "member" + }, + { + "name": "UseAbsolutePathsForNestedFileUriFragments", + "fullyQualifiedName": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.Rules.UseAbsolutePathsForNestedFileUriFragments", + "parentIndex": 880, + "kind": "type" + }, + { + "name": "Analyze(Microsoft.CodeAnalysis.Sarif.FileLocation,System.String)", + "fullyQualifiedName": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.Rules.UseAbsolutePathsForNestedFileUriFragments.Analyze(Microsoft.CodeAnalysis.Sarif.FileLocation,System.String)", + "parentIndex": 912, + "kind": "member" + }, + { + "name": "UriHasNonAbsoluteFragment(System.Uri)", + "fullyQualifiedName": "sarif.multitool.exe!Microsoft.CodeAnalysis.Sarif.Multitool.Rules.UseAbsolutePathsForNestedFileUriFragments.UriHasNonAbsoluteFragment(System.Uri)", + "parentIndex": 912, + "kind": "member" + } + ], + "tool": { + "driver": { + "name": "FxCop", + "rules": [ + { + "id": "CA1012", + "name": "AbstractTypesShouldNotHaveConstructors", + "messageStrings": { + "Default": { + "text": "Change the accessibility of all public constructors in {0} to protected." + } + }, + "properties": { + "Category": "Microsoft.Design" + } }, - "properties": { - "Category": "Microsoft.Naming" - } - }, - "CA1711": { - "id": "CA1711", - "name": { - "text": "IdentifiersShouldNotHaveIncorrectSuffix" + { + "id": "CA2105", + "name": "ArrayFieldsShouldNotBeReadOnly", + "messageStrings": { + "Default": { + "text": "Either replace {0} with a strongly typed collection that cannot be changed, or replace the public field with a method that returns a clone of a private array." + } + }, + "properties": { + "Category": "Microsoft.Security" + } }, - "messageStrings": { - "TypeNoAlternate": "Rename type name {0} so that it does not end in '{1}'." + { + "id": "CA2243", + "name": "AttributeStringLiteralsShouldParseCorrectly", + "messageStrings": { + "Default": { + "text": "In the constructor of {0}, change the value of argument {1}, which is currently \"{2}\", to something that can be correctly parsed as {3}." + } + }, + "properties": { + "Category": "Microsoft.Usage" + } }, - "properties": { - "Category": "Microsoft.Naming" - } - }, - "CA1716": { - "id": "CA1716", - "name": { - "text": "IdentifiersShouldNotMatchKeywords" + { + "id": "CA1040", + "name": "AvoidEmptyInterfaces", + "messageStrings": { + "Default": { + "text": "Define a custom attribute to replace {0}." + } + }, + "properties": { + "Category": "Microsoft.Design" + } }, - "messageStrings": { - "Type": "Rename type {0} so that it no longer conflicts with the reserved language keyword '{1}'. Using a reserved keyword as the name of a type makes it harder for consumers in other languages to use the type." + { + "id": "CA1506", + "name": "AvoidExcessiveClassCoupling", + "messageStrings": { + "Method": { + "text": "{0} is coupled with {1} different types from {2} different namespaces. Rewrite or refactor the method to decrease its class coupling, or consider moving the method to one of the other types it is tightly coupled with. A class coupling above {3} indicates poor maintainability, a class coupling between {3} and {4} indicates moderate maintainability, and a class coupling below {4} indicates good maintainability." + }, + "Type": { + "text": "{0} is coupled with {1} different types from {2} different namespaces. Rewrite or refactor this class's methods to decrease its class coupling, or consider moving some of the class's methods to some of the other types it is tightly coupled with. A class coupling above {3} indicates poor maintainability, a class coupling between {3} and {4} indicates moderate maintainability, and a class coupling below {4} indicates good maintainability." + } + }, + "properties": { + "Category": "Microsoft.Maintainability" + } }, - "properties": { - "Category": "Microsoft.Naming" - } - }, - "CA1063": { - "id": "CA1063", - "name": { - "text": "ImplementIDisposableCorrectly" + { + "id": "CA1502", + "name": "AvoidExcessiveComplexity", + "messageStrings": { + "Default": { + "text": "{0} has a cyclomatic complexity of {1}. Rewrite or refactor the method to reduce complexity to {2}." + } + }, + "properties": { + "Category": "Microsoft.Maintainability" + } }, - "messageStrings": { - "DisposeImplementation": "Modify {0} so that it calls Dispose(true), then calls GC.SuppressFinalize on the current object instance ('this' or 'Me' in Visual Basic), and then returns.", - "ProvideDisposeBool": "Provide an overridable implementation of Dispose(bool) on {0} or mark the type as sealed. A call to Dispose(false) should only clean up native resources. A call to Dispose(true) should clean up both managed and native resources." + { + "id": "CA1809", + "name": "AvoidExcessiveLocals", + "messageStrings": { + "Compiler": { + "text": "{0} has {1} local variables, {2} of which were generated by the compiler. Refactor {0} so that it uses fewer than 64 local variables." + } + }, + "properties": { + "Category": "Microsoft.Performance" + } }, - "properties": { - "Category": "Microsoft.Design" - } - }, - "CA2240": { - "id": "CA2240", - "name": { - "text": "ImplementISerializableCorrectly" + { + "id": "CA1020", + "name": "AvoidNamespacesWithFewTypes", + "messageStrings": { + "Default": { + "text": "Consider merging the types defined in '{0}' with another namespace." + } + }, + "properties": { + "Category": "Microsoft.Design" + } }, - "messageStrings": { - "Default": "Add an implementation of GetObjectData to type {0}." + { + "id": "CA1021", + "name": "AvoidOutParameters", + "messageStrings": { + "Default": { + "text": "Consider a design that does not require that {0} be an out parameter." + } + }, + "properties": { + "Category": "Microsoft.Design" + } }, - "properties": { - "Category": "Microsoft.Usage" - } - }, - "CA1032": { - "id": "CA1032", - "name": { - "text": "ImplementStandardExceptionConstructors" + { + "id": "CA1811", + "name": "AvoidUncalledPrivateCode", + "messageStrings": { + "Default": { + "text": "{0} appears to have no upstream public or protected callers." + } + }, + "properties": { + "Category": "Microsoft.Performance" + } }, - "messageStrings": { - "Accessibility": "Change the accessibility of {0} to {1}.", - "MissingConstructor": "Add the following constructor to {0}: {1}." + { + "id": "CA1812", + "name": "AvoidUninstantiatedInternalClasses", + "messageStrings": { + "Default": { + "text": "{0} is an internal class that is apparently never instantiated. If so, remove the code from the assembly. If this class is intended to contain only static methods, consider adding a private constructor to prevent the compiler from generating a default constructor." + } + }, + "properties": { + "Category": "Microsoft.Performance" + } }, - "properties": { - "Category": "Microsoft.Design" - } - }, - "CA2208": { - "id": "CA2208", - "name": { - "text": "InstantiateArgumentExceptionsCorrectly" + { + "id": "CA1505", + "name": "AvoidUnmaintainableCode", + "messageStrings": { + "Method": { + "text": "{0} has a maintainability index of {1}. Rewrite or refactor the method to increase its maintainability index (MI). An MI below {2} indicates poor maintainability, an MI between {2} and {3} indicates moderate maintainability, and an MI above {3} indicates good maintainability." + } + }, + "properties": { + "Category": "Microsoft.Maintainability" + } }, - "messageStrings": { - "IncorrectParameterName": "Method {0} passes '{1}' as the {2} argument to a {3} constructor. Replace this argument with one of the method's parameter names. Note that the provided parameter name should have the exact casing as declared on the method." + { + "id": "CA1823", + "name": "AvoidUnusedPrivateFields", + "messageStrings": { + "Default": { + "text": "It appears that field {0} is never used or is only ever assigned to. Use this field or remove it." + } + }, + "properties": { + "Category": "Microsoft.Performance" + } }, - "properties": { - "Category": "Microsoft.Usage" - } - }, - "CA1033": { - "id": "CA1033", - "name": { - "text": "InterfaceMethodsShouldBeCallableByChildTypes" + { + "id": "CA1816", + "name": "CallGCSuppressFinalizeCorrectly", + "messageStrings": { + "NotCalled": { + "text": "Change {0} to call {1}. This will prevent derived types that introduce a finalizer from needing to re-implement 'IDisposable' to call it." + } + }, + "properties": { + "Category": "Microsoft.Usage" + } }, - "messageStrings": { - "Default": "Make {0} sealed (a breaking change if this class has previously shipped), implement the method non-explicitly, or implement a new method that exposes the functionality of {1} and is visible to derived classes." + { + "id": "CA2227", + "name": "CollectionPropertiesShouldBeReadOnly", + "messageStrings": { + "Default": { + "text": "Change {0} to be read-only by removing the property setter." + } + }, + "properties": { + "Category": "Microsoft.Usage" + } }, - "properties": { - "Category": "Microsoft.Design" - } - }, - "CA2204": { - "id": "CA2204", - "name": { - "text": "Literals should be spelled correctly" + { + "id": "CA1702", + "name": "CompoundWordsShouldBeCasedCorrectly", + "messageStrings": { + "MemberParameterShouldBeDiscreteTerm": { + "text": "In member {0}, the compound word '{1}' in parameter name {2} exists as a discrete term. If your usage is intended to be single word, case it as '{3}' or strip the first token entirely if it represents any sort of Hungarian notation." + }, + "MemberShouldBeDiscreteTerm": { + "text": "The compound word '{0}' in member name {1} exists as a discrete term. If your usage is intended to be single word, case it as '{2}' or strip the first token entirely if it represents any sort of Hungarian notation." + }, + "TypeShouldBeDiscreteTerm": { + "text": "The compound word '{0}' in type name {1} exists as a discrete term. If your usage is intended to be single word, case it as '{2}'." + } + }, + "properties": { + "Category": "Microsoft.Naming" + } }, - "messageStrings": { - "Default": "Correct the spelling of the unrecognized token '{0}' in the literal '{1}'." + { + "id": "CA1011", + "name": "ConsiderPassingBaseTypesAsParameters", + "messageStrings": { + "Default": { + "text": "Consider changing the type of parameter {0} in {1} from {2} to its base type {3}. This method appears to only require base class members in its implementation. Suppress this violation if there is a compelling reason to require the more derived type in the method signature." + } + }, + "properties": { + "Category": "Microsoft.Design" + } }, - "properties": { - "Category": "Microsoft.Naming" - } - }, - "CA5350": { - "id": "CA5350", - "name": { - "text": "MD5CannotBeUsed" + { + "id": "CA1026", + "name": "DefaultParametersShouldNotBeUsed", + "messageStrings": { + "Default": { + "text": "Replace method {0} with an overload that supplies all default arguments." + } + }, + "properties": { + "Category": "Microsoft.Design" + } }, - "messageStrings": { - "Default": "{0} calls into an instance of the {1} type, which implements a cryptographically insecure hashing function. Hash collisions are computationally feasible for the MD5 and HMACMD5 algorithms and are banned by the SDL. Replace this usage with a SHA-2 family hash algorithm (SHA512, SHA384, SHA256)." + { + "id": "CA2215", + "name": "Dispose methods should call base class dispose", + "messageStrings": { + "Default": { + "text": "Ensure that method {0} calls base.{0} in all possible control flow paths." + } + }, + "properties": { + "Category": "Microsoft.Usage" + } }, - "properties": { - "Category": "Microsoft.Security.Cryptography" - } - }, - "CA2235": { - "id": "CA2235", - "name": { - "text": "MarkAllNonSerializableFields" + { + "id": "CA2000", + "name": "Dispose objects before losing scope", + "messageStrings": { + "ExceptionEdge": { + "text": "In method {0}, object {1} is not disposed along all exception paths. Call System.IDisposable.Dispose on object {1} before all references to it are out of scope." + }, + "NonExceptionEdge": { + "text": "In method {0}, call System.IDisposable.Dispose on object {1} before all references to it are out of scope." + } + }, + "properties": { + "Category": "Microsoft.Reliability" + } }, - "messageStrings": { - "Default": "Field {0} is a member of type {1}, which is serializable, but is of type {2}, which is not serializable. Add the NonSerializedAttribute to {0}." + { + "id": "CA2202", + "name": "Do not dispose objects multiple times", + "messageStrings": { + "Default": { + "text": "Object {0} can be disposed more than once in method {1}. To avoid generating a System.ObjectDisposedException you should not call Dispose more than one time on an object.: Lines: 38" + } + }, + "properties": { + "Category": "Microsoft.Usage" + } }, - "properties": { - "Category": "Microsoft.Usage" - } - }, - "CA1014": { - "id": "CA1014", - "name": { - "text": "MarkAssembliesWithClsCompliant" + { + "id": "CA1303", + "name": "Do not pass literals as localized parameters", + "messageStrings": { + "KnownValue": { + "text": "Method {0} passes a literal string as parameter '{1}' of a call to {2}. Retrieve the following string(s) from a resource table instead: {3}." + } + }, + "properties": { + "Category": "Microsoft.Globalization" + } }, - "messageStrings": { - "Default": "Mark {0} with CLSCompliant(true) because it exposes externally visible types." + { + "id": "CA2214", + "name": "DoNotCallOverridableMethodsInConstructors", + "messageStrings": { + "Default": { + "text": "{0} contains a call chain that results in a call to a virtual method defined by the class. Review the following call stack for unintended consequences: {1}" + } + }, + "properties": { + "Category": "Microsoft.Usage" + } }, - "properties": { - "Category": "Microsoft.Design" - } - }, - "CA1824": { - "id": "CA1824", - "name": { - "text": "MarkAssembliesWithNeutralResourcesLanguage" + { + "id": "CA1800", + "name": "DoNotCastUnnecessarily", + "messageStrings": { + "Local": { + "text": "{0}, a variable, is cast to type {1} multiple times in method {2}. Cache the result of the 'as' operator or direct cast in order to eliminate the redundant {3} instruction." + }, + "Parameter": { + "text": "{0}, a parameter, is cast to type {1} multiple times in method {2}. Cache the result of the 'as' operator or direct cast in order to eliminate the redundant {3} instruction." + } + }, + "properties": { + "Category": "Microsoft.Performance" + } }, - "messageStrings": { - "Default": "Because assembly {0} contains a ResX-based resource file, mark it with the NeutralResourcesLanguage attribute, specifying the language of the resources within the assembly. This could improve lookup performance the first time a resource is retrieved." + { + "id": "CA1031", + "name": "DoNotCatchGeneralExceptionTypes", + "messageStrings": { + "Default": { + "text": "Modify {0} to catch a more specific exception than {1} or rethrow the exception." + } + }, + "properties": { + "Category": "Microsoft.Design" + } }, - "properties": { - "Category": "Microsoft.Performance" - } - }, - "CA2237": { - "id": "CA2237", - "name": { - "text": "MarkISerializableTypesWithSerializable" + { + "id": "CA2104", + "name": "DoNotDeclareReadOnlyMutableReferenceTypes", + "messageStrings": { + "Default": { + "text": "Remove the read-only designation from {0} or change the field to one that is an immutable reference type. If the reference type {1} is, in fact, immutable, exclude this message." + } + }, + "properties": { + "Category": "Microsoft.Security" + } }, - "messageStrings": { - "Default": "Add [Serializable] to {0} as this type implements ISerializable." + { + "id": "CA1000", + "name": "DoNotDeclareStaticMembersOnGenericTypes", + "messageStrings": { + "Default": { + "text": "Remove {0} from {1} or make it an instance member." + } + }, + "properties": { + "Category": "Microsoft.Design" + } }, - "properties": { - "Category": "Microsoft.Usage" - } - }, - "CA1822": { - "id": "CA1822", - "name": { - "text": "MarkMembersAsStatic" + { + "id": "CA1051", + "name": "DoNotDeclareVisibleInstanceFields", + "messageStrings": { + "Default": { + "text": "Because field {0} is visible outside of its declaring type, change its accessibility to private and add a property, with the same accessibility as the field has currently, to provide access to it." + } + }, + "properties": { + "Category": "Microsoft.Design" + } }, - "messageStrings": { - "Default": "The 'this' parameter (or 'Me' in Visual Basic) of {0} is never used. Mark the member as static (or Shared in Visual Basic) or use 'this'/'Me' in the method body or at least one property accessor, if appropriate." + { + "id": "CA1002", + "name": "DoNotExposeGenericLists", + "messageStrings": { + "Default": { + "text": "Change {0} in {1} to use Collection, ReadOnlyCollection or KeyedCollection" + } + }, + "properties": { + "Category": "Microsoft.Design" + } }, - "properties": { - "Category": "Microsoft.Performance" - } - }, - "CA1060": { - "id": "CA1060", - "name": { - "text": "MovePInvokesToNativeMethodsClass" + { + "id": "CA1806", + "name": "DoNotIgnoreMethodResults", + "messageStrings": { + "TryParse": { + "text": "{0} calls {1} but does not explicitly check whether the conversion succeeded. Either use the return value in a conditional statement or verify that the call site expects that the out argument will be set to the default value when the conversion fails." + } + }, + "properties": { + "Category": "Microsoft.Usage" + } }, - "messageStrings": { - "Default": "Because it is a P/Invoke method, {0} should be defined in a class named NativeMethods, SafeNativeMethods, or UnsafeNativeMethods." + { + "id": "CA2217", + "name": "DoNotMarkEnumsWithFlags", + "messageStrings": { + "Default": { + "text": "{0} is marked with FlagsAttribute but a discrete member cannot be found for every settable bit that is used across the range of enum values. Remove FlagsAttribute from the type or define new members for the following (currently missing) values: {1}" + } + }, + "properties": { + "Category": "Microsoft.Usage" + } }, - "properties": { - "Category": "Microsoft.Design" - } - }, - "CA2211": { - "id": "CA2211", - "name": { - "text": "NonConstantFieldsShouldNotBeVisible" + { + "id": "CA1006", + "name": "DoNotNestGenericTypesInMemberSignatures", + "messageStrings": { + "Default": { + "text": "Consider a design where {0} doesn't nest generic type {1}." + } + }, + "properties": { + "Category": "Microsoft.Design" + } }, - "messageStrings": { - "Default": "Consider making {0} non-public or a constant." + { + "id": "CA1045", + "name": "DoNotPassTypesByReference", + "messageStrings": { + "Default": { + "text": "Consider a design that does not require that {0} be a reference parameter." + } + }, + "properties": { + "Category": "Microsoft.Design" + } }, - "properties": { - "Category": "Microsoft.Usage" - } - }, - "CA1308": { - "id": "CA1308", - "name": { - "text": "NormalizeStringsToUppercase" + { + "id": "CA2201", + "name": "DoNotRaiseReservedExceptionTypes", + "messageStrings": { + "TooGeneric": { + "text": "{0} creates an exception of type {1}, an exception type that is not sufficiently specific and should never be raised by user code. If this exception instance might be thrown, use a different exception type." + } + }, + "properties": { + "Category": "Microsoft.Usage" + } }, - "messageStrings": { - "ToUpperInvariant": "In method {0}, replace the call to {1} with String.ToUpperInvariant()." + { + "id": "CA1028", + "name": "EnumStorageShouldBeInt32", + "messageStrings": { + "NotIntegral": { + "text": "If possible, make the underlying type of {0} Int32 instead of {1}. Otherwise consider Byte, Int16, or Int64." + } + }, + "properties": { + "Category": "Microsoft.Design" + } }, - "properties": { - "Category": "Microsoft.Globalization" - } - }, - "CA1725": { - "id": "CA1725", - "name": { - "text": "ParameterNamesShouldMatchBaseDeclaration" + { + "id": "CA1008", + "name": "EnumsShouldHaveZeroValue", + "messageStrings": { + "FlagsRename": { + "text": "In enum {0}, change the name of {1} to 'None'." + } + }, + "properties": { + "Category": "Microsoft.Design" + } }, - "messageStrings": { - "Default": "In member {0}, change parameter name {1} to {2} in order to match the identifier as it has been declared in {3}." + { + "id": "CA1064", + "name": "ExceptionsShouldBePublic", + "messageStrings": { + "Default": { + "text": "Make exception class {0} public." + } + }, + "properties": { + "Category": "Microsoft.Design" + } }, - "properties": { - "Category": "Microsoft.Naming" - } - }, - "CA2234": { - "id": "CA2234", - "name": { - "text": "PassSystemUriObjectsInsteadOfStrings" + { + "id": "CA1714", + "name": "FlagsEnumsShouldHavePluralNames", + "messageStrings": { + "Default": { + "text": "If enumeration name {0} is singular, change it to a plural form." + } + }, + "properties": { + "Category": "Microsoft.Naming" + } }, - "messageStrings": { - "Default": "Modify {0} to call {1} instead of {2}." + { + "id": "CA1709", + "name": "IdentifiersShouldBeCasedCorrectly", + "messageStrings": { + "Member": { + "text": "Correct the casing of '{0}' in member name {1} by changing it to '{2}'." + }, + "Namespace": { + "text": "Correct the casing of '{0}' in namespace name '{1}' by changing it to '{2}'." + }, + "Type": { + "text": "Correct the casing of '{0}' in type name {1} by changing it to '{2}'." + } + }, + "properties": { + "Category": "Microsoft.Naming" + } }, - "properties": { - "Category": "Microsoft.Usage" - } - }, - "CA1819": { - "id": "CA1819", - "name": { - "text": "PropertiesShouldNotReturnArrays" + { + "id": "CA1704", + "name": "IdentifiersShouldBeSpelledCorrectly", + "messageStrings": { + "Assembly": { + "text": "Correct the spelling of '{0}' in assembly name {1}." + }, + "Member": { + "text": "Correct the spelling of '{0}' in member name {1} or remove it entirely if it represents any sort of Hungarian notation." + }, + "MemberParameter": { + "text": "In method {0}, correct the spelling of '{1}' in parameter name {2} or remove it entirely if it represents any sort of Hungarian notation." + }, + "MemberParameterMoreMeaningfulName": { + "text": "In method {0}, consider providing a more meaningful name than parameter name {1}." + }, + "Namespace": { + "text": "Correct the spelling of '{0}' in namespace name '{1}'." + }, + "Type": { + "text": "Correct the spelling of '{0}' in type name {1}." + } + }, + "properties": { + "Category": "Microsoft.Naming" + } }, - "messageStrings": { - "Default": "Change {0} to return a collection or make it a method." + { + "id": "CA1710", + "name": "IdentifiersShouldHaveCorrectSuffix", + "messageStrings": { + "Default": { + "text": "Rename {0} to end in '{1}'." + } + }, + "properties": { + "Category": "Microsoft.Naming" + } }, - "properties": { - "Category": "Microsoft.Performance" - } - }, - "CA1721": { - "id": "CA1721", - "name": { - "text": "PropertyNamesShouldNotMatchGetMethods" + { + "id": "CA1720", + "name": "IdentifiersShouldNotContainTypeNames", + "messageStrings": { + "LanguageIndependentMemberParameter": { + "text": "In member {0}, consider replacing the data type identifier '{1}' in parameter name {2} with a more generic term, such as 'value'." + } + }, + "properties": { + "Category": "Microsoft.Naming" + } }, - "messageStrings": { - "BaseType": "The property name {0} is confusing given the existence of inherited method {1}. Rename or remove this property." + { + "id": "CA1707", + "name": "IdentifiersShouldNotContainUnderscores", + "messageStrings": { + "Member": { + "text": "Remove the underscores from member name {0}." + } + }, + "properties": { + "Category": "Microsoft.Naming" + } }, - "properties": { - "Category": "Microsoft.Naming" - } - }, - "CA1804": { - "id": "CA1804", - "name": { - "text": "RemoveUnusedLocals" + { + "id": "CA1711", + "name": "IdentifiersShouldNotHaveIncorrectSuffix", + "messageStrings": { + "TypeNoAlternate": { + "text": "Rename type name {0} so that it does not end in '{1}'." + } + }, + "properties": { + "Category": "Microsoft.Naming" + } }, - "messageStrings": { - "Default": "{0} declares a variable, {1}, of type {2}, which is never used or is only assigned to. Use this variable or remove it." + { + "id": "CA1716", + "name": "IdentifiersShouldNotMatchKeywords", + "messageStrings": { + "Type": { + "text": "Rename type {0} so that it no longer conflicts with the reserved language keyword '{1}'. Using a reserved keyword as the name of a type makes it harder for consumers in other languages to use the type." + } + }, + "properties": { + "Category": "Microsoft.Naming" + } }, - "properties": { - "Category": "Microsoft.Performance" - } - }, - "CA1703": { - "id": "CA1703", - "name": { - "text": "ResourceStringsShouldBeSpelledCorrectly" + { + "id": "CA1063", + "name": "ImplementIDisposableCorrectly", + "messageStrings": { + "DisposeImplementation": { + "text": "Modify {0} so that it calls Dispose(true), then calls GC.SuppressFinalize on the current object instance ('this' or 'Me' in Visual Basic), and then returns." + }, + "ProvideDisposeBool": { + "text": "Provide an overridable implementation of Dispose(bool) on {0} or mark the type as sealed. A call to Dispose(false) should only clean up native resources. A call to Dispose(true) should clean up both managed and native resources." + } + }, + "properties": { + "Category": "Microsoft.Design" + } }, - "messageStrings": { - "StringResource": "In resource {0}, referenced by name '{1}', correct the spelling of '{2}' in string value '{3}'." + { + "id": "CA2240", + "name": "ImplementISerializableCorrectly", + "messageStrings": { + "Default": { + "text": "Add an implementation of GetObjectData to type {0}." + } + }, + "properties": { + "Category": "Microsoft.Usage" + } }, - "properties": { - "Category": "Microsoft.Naming" - } - }, - "CA2200": { - "id": "CA2200", - "name": { - "text": "RethrowToPreserveStackDetails" + { + "id": "CA1032", + "name": "ImplementStandardExceptionConstructors", + "messageStrings": { + "Accessibility": { + "text": "Change the accessibility of {0} to {1}." + }, + "MissingConstructor": { + "text": "Add the following constructor to {0}: {1}." + } + }, + "properties": { + "Category": "Microsoft.Design" + } }, - "messageStrings": { - "Default": "{0} rethrows a caught exception and specifies it explicitly as an argument. Use 'throw' without an argument instead, in order to preserve the stack location where the exception was initially raised." + { + "id": "CA2208", + "name": "InstantiateArgumentExceptionsCorrectly", + "messageStrings": { + "IncorrectParameterName": { + "text": "Method {0} passes '{1}' as the {2} argument to a {3} constructor. Replace this argument with one of the method's parameter names. Note that the provided parameter name should have the exact casing as declared on the method." + } + }, + "properties": { + "Category": "Microsoft.Usage" + } }, - "properties": { - "Category": "Microsoft.Usage" - } - }, - "CA1504": { - "id": "CA1504", - "name": { - "text": "ReviewMisleadingFieldNames" + { + "id": "CA1033", + "name": "InterfaceMethodsShouldBeCallableByChildTypes", + "messageStrings": { + "Default": { + "text": "Make {0} sealed (a breaking change if this class has previously shipped), implement the method non-explicitly, or implement a new method that exposes the functionality of {1} and is visible to derived classes." + } + }, + "properties": { + "Category": "Microsoft.Design" + } }, - "messageStrings": { - "Instance": "The field name {0} suggests that it is static (Shared in Visual Basic) data but it is declared as an instance member. Review this member to verify that it should be instance, or consider changing the field name." + { + "id": "CA2204", + "name": "Literals should be spelled correctly", + "messageStrings": { + "Default": { + "text": "Correct the spelling of the unrecognized token '{0}' in the literal '{1}'." + } + }, + "properties": { + "Category": "Microsoft.Naming" + } }, - "properties": { - "Category": "Microsoft.Maintainability" - } - }, - "CA1801": { - "id": "CA1801", - "name": { - "text": "ReviewUnusedParameters" + { + "id": "CA5350", + "name": "MD5CannotBeUsed", + "messageStrings": { + "Default": { + "text": "{0} calls into an instance of the {1} type, which implements a cryptographically insecure hashing function. Hash collisions are computationally feasible for the MD5 and HMACMD5 algorithms and are banned by the SDL. Replace this usage with a SHA-2 family hash algorithm (SHA512, SHA384, SHA256)." + } + }, + "properties": { + "Category": "Microsoft.Security.Cryptography" + } }, - "messageStrings": { - "Default": "Parameter {0} of {1} is never used. Remove the parameter or use it in the method body." + { + "id": "CA2235", + "name": "MarkAllNonSerializableFields", + "messageStrings": { + "Default": { + "text": "Field {0} is a member of type {1}, which is serializable, but is of type {2}, which is not serializable. Add the NonSerializedAttribute to {0}." + } + }, + "properties": { + "Category": "Microsoft.Usage" + } }, - "properties": { - "Category": "Microsoft.Usage" - } - }, - "CA5354": { - "id": "CA5354", - "name": { - "text": "SHA1CannotBeUsed" + { + "id": "CA1014", + "name": "MarkAssembliesWithClsCompliant", + "messageStrings": { + "Default": { + "text": "Mark {0} with CLSCompliant(true) because it exposes externally visible types." + } + }, + "properties": { + "Category": "Microsoft.Design" + } }, - "messageStrings": { - "Default": "{0} calls into an instance of the {1} type, which implements a cryptographically insecure hashing function. Hash collisions are computationally feasible for the SHA-1 and SHA-0 algorithms and are banned by the SDL. Replace this usage with a SHA-2 family hash algorithm (SHA512, SHA384, SHA256)." + { + "id": "CA1824", + "name": "MarkAssembliesWithNeutralResourcesLanguage", + "messageStrings": { + "Default": { + "text": "Because assembly {0} contains a ResX-based resource file, mark it with the NeutralResourcesLanguage attribute, specifying the language of the resources within the assembly. This could improve lookup performance the first time a resource is retrieved." + } + }, + "properties": { + "Category": "Microsoft.Performance" + } }, - "properties": { - "Category": "Microsoft.Security.Cryptography" - } - }, - "CA1305": { - "id": "CA1305", - "name": { - "text": "SpecifyIFormatProvider" + { + "id": "CA2237", + "name": "MarkISerializableTypesWithSerializable", + "messageStrings": { + "Default": { + "text": "Add [Serializable] to {0} as this type implements ISerializable." + } + }, + "properties": { + "Category": "Microsoft.Usage" + } }, - "messageStrings": { - "IFormatProviderAlternate": "Because the behavior of {0} could vary based on the current user's locale settings, replace this call in {1} with a call to {2}. If the result of {2} will be based on input from the user, specify {3} as the 'IFormatProvider' parameter. Otherwise, if the result will based on input stored and accessed by software, such as when it is loaded from disk or from a database, specify {4}.", - "IFormatProviderAlternateString": "Because the behavior of {0} could vary based on the current user's locale settings, replace this call in {1} with a call to {2}. If the result of {2} will be displayed to the user, specify {3} as the 'IFormatProvider' parameter. Otherwise, if the result will be stored and accessed by software, such as when it is persisted to disk or to a database, specify {4}." + { + "id": "CA1822", + "name": "MarkMembersAsStatic", + "messageStrings": { + "Default": { + "text": "The 'this' parameter (or 'Me' in Visual Basic) of {0} is never used. Mark the member as static (or Shared in Visual Basic) or use 'this'/'Me' in the method body or at least one property accessor, if appropriate." + } + }, + "properties": { + "Category": "Microsoft.Performance" + } }, - "properties": { - "Category": "Microsoft.Globalization" - } - }, - "CA1307": { - "id": "CA1307", - "name": { - "text": "SpecifyStringComparison" + { + "id": "CA1060", + "name": "MovePInvokesToNativeMethodsClass", + "messageStrings": { + "Default": { + "text": "Because it is a P/Invoke method, {0} should be defined in a class named NativeMethods, SafeNativeMethods, or UnsafeNativeMethods." + } + }, + "properties": { + "Category": "Microsoft.Design" + } }, - "messageStrings": { - "Default": "Because the behavior of {0} could vary based on the current user's locale settings, replace this call in {1} with a call to {2}. If the result of {2} will be displayed to the user, such as when sorting a list of items for display in a list box, specify 'StringComparison.CurrentCulture' or 'StringComparison.CurrentCultureIgnoreCase' as the 'StringComparison' parameter. If comparing case-insensitive identifiers, such as file paths, environment variables, or registry keys and values, specify 'StringComparison.OrdinalIgnoreCase'. Otherwise, if comparing case-sensitive identifiers, specify 'StringComparison.Ordinal'." + { + "id": "CA2211", + "name": "NonConstantFieldsShouldNotBeVisible", + "messageStrings": { + "Default": { + "text": "Consider making {0} non-public or a constant." + } + }, + "properties": { + "Category": "Microsoft.Usage" + } }, - "properties": { - "Category": "Microsoft.Globalization" - } - }, - "CA1053": { - "id": "CA1053", - "name": { - "text": "StaticHolderTypesShouldNotHaveConstructors" + { + "id": "CA1308", + "name": "NormalizeStringsToUppercase", + "messageStrings": { + "ToUpperInvariant": { + "text": "In method {0}, replace the call to {1} with String.ToUpperInvariant()." + } + }, + "properties": { + "Category": "Microsoft.Globalization" + } }, - "messageStrings": { - "CSharp2_0": "Because type {0} contains only 'static' members, mark it as 'static' to prevent the compiler from adding a default public constructor.", - "Default": "Because type {0} contains only 'static' ('Shared' in Visual Basic) members, add a default private constructor to prevent the compiler from adding a default public constructor." + { + "id": "CA1725", + "name": "ParameterNamesShouldMatchBaseDeclaration", + "messageStrings": { + "Default": { + "text": "In member {0}, change parameter name {1} to {2} in order to match the identifier as it has been declared in {3}." + } + }, + "properties": { + "Category": "Microsoft.Naming" + } }, - "properties": { - "Category": "Microsoft.Design" - } - }, - "CA1057": { - "id": "CA1057", - "name": { - "text": "StringUriOverloadsCallSystemUriOverloads" + { + "id": "CA2234", + "name": "PassSystemUriObjectsInsteadOfStrings", + "messageStrings": { + "Default": { + "text": "Modify {0} to call {1} instead of {2}." + } + }, + "properties": { + "Category": "Microsoft.Usage" + } }, - "messageStrings": { - "Default": "Refactor {0} so that it builds a System.Uri object from {1}, and then calls {2}." + { + "id": "CA1819", + "name": "PropertiesShouldNotReturnArrays", + "messageStrings": { + "Default": { + "text": "Change {0} to return a collection or make it a method." + } + }, + "properties": { + "Category": "Microsoft.Performance" + } }, - "properties": { - "Category": "Microsoft.Design" - } - }, - "CA1724": { - "id": "CA1724", - "name": { - "text": "TypeNamesShouldNotMatchNamespaces" + { + "id": "CA1721", + "name": "PropertyNamesShouldNotMatchGetMethods", + "messageStrings": { + "BaseType": { + "text": "The property name {0} is confusing given the existence of inherited method {1}. Rename or remove this property." + } + }, + "properties": { + "Category": "Microsoft.Naming" + } }, - "messageStrings": { - "System": "The type name {0} conflicts in whole or in part with the namespace name '{1}' defined in the .NET Framework. Rename the type to eliminate the conflict." + { + "id": "CA1804", + "name": "RemoveUnusedLocals", + "messageStrings": { + "Default": { + "text": "{0} declares a variable, {1}, of type {2}, which is never used or is only assigned to. Use this variable or remove it." + } + }, + "properties": { + "Category": "Microsoft.Performance" + } }, - "properties": { - "Category": "Microsoft.Naming" - } - }, - "CA1054": { - "id": "CA1054", - "name": { - "text": "UriParametersShouldNotBeStrings" + { + "id": "CA1703", + "name": "ResourceStringsShouldBeSpelledCorrectly", + "messageStrings": { + "StringResource": { + "text": "In resource {0}, referenced by name '{1}', correct the spelling of '{2}' in string value '{3}'." + } + }, + "properties": { + "Category": "Microsoft.Naming" + } }, - "messageStrings": { - "Default": "Change the type of parameter {0} of method {1} from string to System.Uri, or provide an overload of {1}, that allows {0} to be passed as a System.Uri object." + { + "id": "CA2200", + "name": "RethrowToPreserveStackDetails", + "messageStrings": { + "Default": { + "text": "{0} rethrows a caught exception and specifies it explicitly as an argument. Use 'throw' without an argument instead, in order to preserve the stack location where the exception was initially raised." + } + }, + "properties": { + "Category": "Microsoft.Usage" + } }, - "properties": { - "Category": "Microsoft.Design" - } - }, - "CA1056": { - "id": "CA1056", - "name": { - "text": "UriPropertiesShouldNotBeStrings" + { + "id": "CA1504", + "name": "ReviewMisleadingFieldNames", + "messageStrings": { + "Instance": { + "text": "The field name {0} suggests that it is static (Shared in Visual Basic) data but it is declared as an instance member. Review this member to verify that it should be instance, or consider changing the field name." + } + }, + "properties": { + "Category": "Microsoft.Maintainability" + } }, - "messageStrings": { - "Default": "Change the type of property {0} from string to System.Uri." + { + "id": "CA1801", + "name": "ReviewUnusedParameters", + "messageStrings": { + "Default": { + "text": "Parameter {0} of {1} is never used. Remove the parameter or use it in the method body." + } + }, + "properties": { + "Category": "Microsoft.Usage" + } }, - "properties": { - "Category": "Microsoft.Design" - } - }, - "CA1055": { - "id": "CA1055", - "name": { - "text": "UriReturnValuesShouldNotBeStrings" + { + "id": "CA5354", + "name": "SHA1CannotBeUsed", + "messageStrings": { + "Default": { + "text": "{0} calls into an instance of the {1} type, which implements a cryptographically insecure hashing function. Hash collisions are computationally feasible for the SHA-1 and SHA-0 algorithms and are banned by the SDL. Replace this usage with a SHA-2 family hash algorithm (SHA512, SHA384, SHA256)." + } + }, + "properties": { + "Category": "Microsoft.Security.Cryptography" + } }, - "messageStrings": { - "Default": "Change the return type of {0} from string to System.Uri." + { + "id": "CA1305", + "name": "SpecifyIFormatProvider", + "messageStrings": { + "IFormatProviderAlternate": { + "text": "Because the behavior of {0} could vary based on the current user's locale settings, replace this call in {1} with a call to {2}. If the result of {2} will be based on input from the user, specify {3} as the 'IFormatProvider' parameter. Otherwise, if the result will based on input stored and accessed by software, such as when it is loaded from disk or from a database, specify {4}." + }, + "IFormatProviderAlternateString": { + "text": "Because the behavior of {0} could vary based on the current user's locale settings, replace this call in {1} with a call to {2}. If the result of {2} will be displayed to the user, specify {3} as the 'IFormatProvider' parameter. Otherwise, if the result will be stored and accessed by software, such as when it is persisted to disk or to a database, specify {4}." + } + }, + "properties": { + "Category": "Microsoft.Globalization" + } }, - "properties": { - "Category": "Microsoft.Design" - } - }, - "CA1802": { - "id": "CA1802", - "name": { - "text": "UseLiteralsWhereAppropriate" + { + "id": "CA1307", + "name": "SpecifyStringComparison", + "messageStrings": { + "Default": { + "text": "Because the behavior of {0} could vary based on the current user's locale settings, replace this call in {1} with a call to {2}. If the result of {2} will be displayed to the user, such as when sorting a list of items for display in a list box, specify 'StringComparison.CurrentCulture' or 'StringComparison.CurrentCultureIgnoreCase' as the 'StringComparison' parameter. If comparing case-insensitive identifiers, such as file paths, environment variables, or registry keys and values, specify 'StringComparison.OrdinalIgnoreCase'. Otherwise, if comparing case-sensitive identifiers, specify 'StringComparison.Ordinal'." + } + }, + "properties": { + "Category": "Microsoft.Globalization" + } }, - "messageStrings": { - "Default": "Field {0} is declared as 'static readonly' but is initialized with a constant value '{1}'. Mark this field as 'const' instead." + { + "id": "CA1053", + "name": "StaticHolderTypesShouldNotHaveConstructors", + "messageStrings": { + "CSharp2_0": { + "text": "Because type {0} contains only 'static' members, mark it as 'static' to prevent the compiler from adding a default public constructor." + }, + "Default": { + "text": "Because type {0} contains only 'static' ('Shared' in Visual Basic) members, add a default private constructor to prevent the compiler from adding a default public constructor." + } + }, + "properties": { + "Category": "Microsoft.Design" + } }, - "properties": { - "Category": "Microsoft.Performance" - } - }, - "CA1726": { - "id": "CA1726", - "name": { - "text": "UsePreferredTerms" + { + "id": "CA1057", + "name": "StringUriOverloadsCallSystemUriOverloads", + "messageStrings": { + "Default": { + "text": "Refactor {0} so that it builds a System.Uri object from {1}, and then calls {2}." + } + }, + "properties": { + "Category": "Microsoft.Design" + } }, - "messageStrings": { - "MemberNoAlternate": "Replace the term '{0}' in member name {1} with an appropriate alternate or remove it entirely.", - "TypeNoAlternate": "Replace the term '{0}' in type name {1} with an appropriate alternate or remove it entirely." + { + "id": "CA1724", + "name": "TypeNamesShouldNotMatchNamespaces", + "messageStrings": { + "System": { + "text": "The type name {0} conflicts in whole or in part with the namespace name '{1}' defined in the .NET Framework. Rename the type to eliminate the conflict." + } + }, + "properties": { + "Category": "Microsoft.Naming" + } }, - "properties": { - "Category": "Microsoft.Naming" - } - }, - "CA1024": { - "id": "CA1024", - "name": { - "text": "UsePropertiesWhereAppropriate" + { + "id": "CA1054", + "name": "UriParametersShouldNotBeStrings", + "messageStrings": { + "Default": { + "text": "Change the type of parameter {0} of method {1} from string to System.Uri, or provide an overload of {1}, that allows {0} to be passed as a System.Uri object." + } + }, + "properties": { + "Category": "Microsoft.Design" + } }, - "messageStrings": { - "Default": "Change {0} to a property if appropriate." + { + "id": "CA1056", + "name": "UriPropertiesShouldNotBeStrings", + "messageStrings": { + "Default": { + "text": "Change the type of property {0} from string to System.Uri." + } + }, + "properties": { + "Category": "Microsoft.Design" + } }, - "properties": { - "Category": "Microsoft.Design" - } - }, - "CA3053": { - "id": "CA3053", - "name": { - "text": "UseXmlSecureResolver" + { + "id": "CA1055", + "name": "UriReturnValuesShouldNotBeStrings", + "messageStrings": { + "Default": { + "text": "Change the return type of {0} from string to System.Uri." + } + }, + "properties": { + "Category": "Microsoft.Design" + } }, - "messageStrings": { - "XmlReaderCreateInsecureXmlResolver": "{0} instantiates an XmlReader instance by calling {1} and provided an XmlReaderSettings instance with an insecure XmlResolver property value. This usage is potentially unsafe as untrusted external resources may be resolved during read operations. Provide a XmlReaderSettings instance and set the XmlResolver property to null or an instance of XmlSecureResolver." + { + "id": "CA1802", + "name": "UseLiteralsWhereAppropriate", + "messageStrings": { + "Default": { + "text": "Field {0} is declared as 'static readonly' but is initialized with a constant value '{1}'. Mark this field as 'const' instead." + } + }, + "properties": { + "Category": "Microsoft.Performance" + } }, - "properties": { - "Category": "Microsoft.Security.Xml" - } - }, - "CA1062": { - "id": "CA1062", - "name": { - "text": "Validate arguments of public methods" + { + "id": "CA1726", + "name": "UsePreferredTerms", + "messageStrings": { + "MemberNoAlternate": { + "text": "Replace the term '{0}' in member name {1} with an appropriate alternate or remove it entirely." + }, + "TypeNoAlternate": { + "text": "Replace the term '{0}' in type name {1} with an appropriate alternate or remove it entirely." + } + }, + "properties": { + "Category": "Microsoft.Naming" + } }, - "messageStrings": { - "Default": "In externally visible method {0}, validate parameter '{1}' before using it.", - "Reassigned": "In externally visible method {0}, validate local variable '{1}', which was reassigned from parameter '{2}', before using it." + { + "id": "CA1024", + "name": "UsePropertiesWhereAppropriate", + "messageStrings": { + "Default": { + "text": "Change {0} to a property if appropriate." + } + }, + "properties": { + "Category": "Microsoft.Design" + } }, - "properties": { - "Category": "Microsoft.Design" - } - }, - "CA1500": { - "id": "CA1500", - "name": { - "text": "VariableNamesShouldNotMatchFieldNames" + { + "id": "CA3053", + "name": "UseXmlSecureResolver", + "messageStrings": { + "XmlReaderCreateInsecureXmlResolver": { + "text": "{0} instantiates an XmlReader instance by calling {1} and provided an XmlReaderSettings instance with an insecure XmlResolver property value. This usage is potentially unsafe as untrusted external resources may be resolved during read operations. Provide a XmlReaderSettings instance and set the XmlResolver property to null or an instance of XmlSecureResolver." + } + }, + "properties": { + "Category": "Microsoft.Security.Xml" + } }, - "messageStrings": { - "Parameter": "{0}, a parameter declared in {1}, has the same name as an instance field on the type. Change the name of one of these items." + { + "id": "CA1062", + "name": "Validate arguments of public methods", + "messageStrings": { + "Default": { + "text": "In externally visible method {0}, validate parameter '{1}' before using it." + }, + "Reassigned": { + "text": "In externally visible method {0}, validate local variable '{1}', which was reassigned from parameter '{2}', before using it." + } + }, + "properties": { + "Category": "Microsoft.Design" + } }, - "properties": { - "Category": "Microsoft.Maintainability" + { + "id": "CA1500", + "name": "VariableNamesShouldNotMatchFieldNames", + "messageStrings": { + "Parameter": { + "text": "{0}, a parameter declared in {1}, has the same name as an instance field on the type. Change the name of one of these items." + } + }, + "properties": { + "Category": "Microsoft.Maintainability" + } } + ] + } + }, + "artifacts": [ + { + "location": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Microsoft.Json.Pointer.dll", + "uriBaseId": "$(ProjectDir)", + "index": 0 + } + }, + { + "location": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Microsoft.Json.Schema.dll", + "uriBaseId": "$(ProjectDir)", + "index": 1 + } + }, + { + "location": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Microsoft.Json.Schema.Validation.dll", + "uriBaseId": "$(ProjectDir)", + "index": 2 + } + }, + { + "location": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Converters.dll", + "uriBaseId": "$(ProjectDir)", + "index": 3 + } + }, + { + "location": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/AndroidStudioConverter.cs", + "index": 4 + } + }, + { + "location": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/ClangAnalyzerConverter.cs", + "index": 5 + } + }, + { + "location": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/CppCheckConverter.cs", + "index": 6 + } + }, + { + "location": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/Extensions.cs", + "index": 7 + } + }, + { + "location": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/FortifyConverter.cs", + "index": 8 + } + }, + { + "location": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/FortifyFprConverter.cs", + "index": 9 + } + }, + { + "location": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/FxCopConverter.cs", + "index": 10 + } + }, + { + "location": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/LogReader.cs", + "index": 11 + } + }, + { + "location": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/PluginConverterFactory.cs", + "index": 12 + } + }, + { + "location": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/PREFastConverter.cs", + "index": 13 + } + }, + { + "location": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/PylintConverter.cs", + "index": 14 + } + }, + { + "location": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/SemmleQlConverter.cs", + "index": 15 + } + }, + { + "location": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/SparseReader.cs", + "index": 16 + } + }, + { + "location": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/StaticDriverVerifierConverter.cs", + "index": 17 + } + }, + { + "location": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/ToolFileConverterBase.cs", + "index": 18 + } + }, + { + "location": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/ToolFormatConverter.cs", + "index": 19 + } + }, + { + "location": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/TSLintConverter.cs", + "index": 20 + } + }, + { + "location": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/TSLintLogReader.cs", + "index": 21 + } + }, + { + "location": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/PREFastObjectModel/Category.cs", + "index": 22 + } + }, + { + "location": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/PREFastObjectModel/Defect.cs", + "index": 23 + } + }, + { + "location": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/PREFastObjectModel/DefectList.cs", + "index": 24 + } + }, + { + "location": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/PREFastObjectModel/PREFastPath.cs", + "index": 25 + } + }, + { + "location": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/PylintObjectModel/PylintLogEntry.cs", + "index": 26 + } + }, + { + "location": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/PylintObjectModel/PylintLogReader.cs", + "index": 27 + } + }, + { + "location": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Converters/TSLintObjectModel/TSLintLogEntry.cs", + "index": 28 + } + }, + { + "location": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.dll", + "uriBaseId": "$(ProjectDir)", + "index": 29 + } + }, + { + "location": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/Attachment.cs", + "index": 30 + } + }, + { + "location": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/CodeFlow.cs", + "index": 31 + } + }, + { + "location": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/ConsoleLogger.cs", + "index": 32 + } + }, + { + "location": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/Conversion.cs", + "index": 33 + } + }, + { + "location": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/Edge.cs", + "index": 34 + } + }, + { + "location": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/EdgeTraversal.cs", + "index": 35 + } + }, + { + "location": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Core/ExceptionData.cs", + "index": 36 + } + }, + { + "location": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/ExceptionData.cs", + "index": 37 + } + }, + { + "location": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/ExtensionMethods.cs", + "index": 38 + } + }, + { + "location": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/FileChange.cs", + "index": 39 + } + }, + { + "location": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/FileData.cs", + "index": 40 + } + }, + { + "location": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Core/FileData.cs", + "index": 41 + } + }, + { + "location": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/FileDataEqualityComparer.cs", + "index": 42 + } + }, + { + "location": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/FileLocation.cs", + "index": 43 + } + }, + { + "location": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Core/FileLocation.cs", + "index": 44 + } + }, + { + "location": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/FileRegionsCache.cs", + "index": 45 + } + }, + { + "location": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/Fix.cs", + "index": 46 + } + }, + { + "location": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/Graph.cs", + "index": 47 + } + }, + { + "location": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/GraphEqualityComparer.cs", + "index": 48 + } + }, + { + "location": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/GraphTraversal.cs", + "index": 49 + } + }, + { + "location": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/GraphTraversalEqualityComparer.cs", + "index": 50 + } + }, + { + "location": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/HashData.cs", + "index": 51 + } + }, + { + "location": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/HashUtilities.cs", + "index": 52 + } + }, + { + "location": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/Invocation.cs", + "index": 53 + } + }, + { + "location": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Core/Invocation.cs", + "index": 54 + } + }, + { + "location": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/InvocationEqualityComparer.cs", + "index": 55 + } + }, + { + "location": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/Location.cs", + "index": 56 + } + }, + { + "location": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/Message.cs", + "index": 57 + } + }, + { + "location": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/Node.cs", + "index": 58 + } + }, + { + "location": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/Notification.cs", + "index": 59 + } + }, + { + "location": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/PropertiesDictionary.cs", + "index": 60 + } + }, + { + "location": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Core/PropertyBagHolder.cs", + "index": 61 + } + }, + { + "location": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/Region.cs", + "index": 62 + } + }, + { + "location": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/Resources.cs", + "index": 63 + } + }, + { + "location": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/Result.cs", + "index": 64 + } + }, + { + "location": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/ResultEqualityComparer.cs", + "index": 65 + } + }, + { + "location": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/Rule.cs", + "index": 66 + } + }, + { + "location": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/ReportingConfiguration.cs", + "index": 67 + } + }, + { + "location": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/RuleEqualityComparer.cs", + "index": 68 + } + }, + { + "location": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/RuleUtilities.cs", + "index": 69 + } + }, + { + "location": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/Run.cs", + "index": 70 + } + }, + { + "location": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/RunEqualityComparer.cs", + "index": 71 + } + }, + { + "location": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/SarifLog.cs", + "index": 72 + } + }, + { + "location": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/SarifRewritingVisitor.cs", + "index": 73 + } + }, + { + "location": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/SarifUtilities.cs", + "index": 74 + } + }, + { + "location": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/VersionOne/SarifUtilitiesVersionOne.cs", + "index": 75 + } + }, + { + "location": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/Stack.cs", + "index": 76 + } + }, + { + "location": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Core/Stack.cs", + "index": 77 + } + }, + { + "location": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/StackFrame.cs", + "index": 78 + } + }, + { + "location": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Core/StackFrame.cs", + "index": 79 + } + }, + { + "location": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/ThreadFlow.cs", + "index": 80 + } + }, + { + "location": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/ThreadFlowLocation.cs", + "index": 81 + } + }, + { + "location": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/ThreadFlowLocationEqualityComparer.cs", + "index": 82 + } + }, + { + "location": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/Tool.cs", + "index": 83 + } + }, + { + "location": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Core/Tool.cs", + "index": 84 + } + }, + { + "location": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/TypedPropertiesDictionaryConverter.cs", + "index": 85 + } + }, + { + "location": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/UriHelper.cs", + "index": 86 + } + }, + { + "location": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Autogenerated/VersionControlDetails.cs", + "index": 87 + } + }, + { + "location": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Baseline/SarifLogBaseliner.cs", + "index": 88 + } + }, + { + "location": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Baseline/SarifLogBaselinerFactory.cs", + "index": 89 + } + }, + { + "location": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Baseline/DefaultBaseline/CodeFlowBaselineEquals.cs", + "index": 90 + } + }, + { + "location": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Baseline/DefaultBaseline/DefaultBaselineExtensions.cs", + "index": 91 + } + }, + { + "location": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Baseline/DefaultBaseline/LocationBaselineEquals.cs", + "index": 92 + } + }, + { + "location": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Baseline/DefaultBaseline/ResultBaselineEquals.cs", + "index": 93 + } + }, + { + "location": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Baseline/DefaultBaseline/StackBaselineEquals.cs", + "index": 94 + } + }, + { + "location": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Baseline/DefaultBaseline/StackFrameBaselineEquals.cs", + "index": 95 + } + }, + { + "location": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Baseline/DefaultBaseline/ThreadFlowBaselineEquals.cs", + "index": 96 + } + }, + { + "location": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Baseline/DefaultBaseline/ThreadFlowLocationBaselineEquals.cs", + "index": 97 + } + }, + { + "location": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Processors/Generic/GenericActionPipeline.cs", + "index": 98 + } + }, + { + "location": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Processors/Generic/GenericMappingAction.cs", + "index": 99 + } + }, + { + "location": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Processors/Log/SarifLogExtensionMethods.cs", + "index": 100 + } + }, + { + "location": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Processors/Log/SarifLogPipeline.cs", + "index": 101 + } + }, + { + "location": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Processors/Log/SarifLogStageFactory.cs", + "index": 102 + } + }, + { + "location": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Readers/EnumConverter.cs", + "index": 103 + } + }, + { + "location": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Readers/FlagsEnumConverter.cs", + "index": 104 + } + }, + { + "location": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Readers/PropertyBagConverter.cs", + "index": 105 + } + }, + { + "location": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Readers/ResultDiffingVisitor.cs", + "index": 106 + } + }, + { + "location": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/VersionOne/Autogenerated/AnnotatedCodeLocationVersionOne.cs", + "index": 107 + } + }, + { + "location": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/VersionOne/Autogenerated/AnnotatedCodeLocationVersionOneEqualityComparer.cs", + "index": 108 + } + }, + { + "location": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/VersionOne/Autogenerated/AnnotationVersionOne.cs", + "index": 109 + } + }, + { + "location": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/VersionOne/Autogenerated/CodeFlowVersionOne.cs", + "index": 110 + } + }, + { + "location": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/VersionOne/Autogenerated/ExceptionDataVersionOne.cs", + "index": 111 + } + }, + { + "location": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/VersionOne/Autogenerated/FileChangeVersionOne.cs", + "index": 112 + } + }, + { + "location": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/VersionOne/Autogenerated/FileDataVersionOne.cs", + "index": 113 + } + }, + { + "location": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/VersionOne/Autogenerated/FixVersionOne.cs", + "index": 114 + } + }, + { + "location": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/VersionOne/Autogenerated/FormattedRuleMessageVersionOne.cs", + "index": 115 + } + }, + { + "location": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/VersionOne/Autogenerated/InvocationVersionOne.cs", + "index": 116 + } + }, + { + "location": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/VersionOne/Autogenerated/InvocationVersionOneEqualityComparer.cs", + "index": 117 + } + }, + { + "location": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/VersionOne/Autogenerated/LocationVersionOne.cs", + "index": 118 + } + }, + { + "location": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/VersionOne/Autogenerated/NotificationVersionOne.cs", + "index": 119 + } + }, + { + "location": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/VersionOne/Autogenerated/PhysicalLocationVersionOne.cs", + "index": 120 + } + }, + { + "location": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/VersionOne/Autogenerated/ResultVersionOne.cs", + "index": 121 + } + }, + { + "location": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/VersionOne/Autogenerated/ResultVersionOneEqualityComparer.cs", + "index": 122 + } + }, + { + "location": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/VersionOne/Autogenerated/RuleVersionOne.cs", + "index": 123 + } + }, + { + "location": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/VersionOne/Autogenerated/RuleVersionOneEqualityComparer.cs", + "index": 124 + } + }, + { + "location": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/VersionOne/Autogenerated/RunVersionOne.cs", + "index": 125 + } + }, + { + "location": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/VersionOne/Autogenerated/RunVersionOneEqualityComparer.cs", + "index": 126 + } + }, + { + "location": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/VersionOne/Autogenerated/SarifLogVersionOne.cs", + "index": 127 + } + }, + { + "location": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/VersionOne/Autogenerated/SarifRewritingVisitorVersionOne.cs", + "index": 128 + } + }, + { + "location": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/VersionOne/Autogenerated/StackFrameVersionOne.cs", + "index": 129 + } + }, + { + "location": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/VersionOne/Autogenerated/StackFrameVersionOneEqualityComparer.cs", + "index": 130 + } + }, + { + "location": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/VersionOne/Autogenerated/StackVersionOne.cs", + "index": 131 + } + }, + { + "location": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/VersionOne/Autogenerated/ToolVersionOne.cs", + "index": 132 + } + }, + { + "location": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Visitors/AbsoluteUrisVisitor.cs", + "index": 133 + } + }, + { + "location": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Visitors/AddFileReferencesVisitor.cs", + "index": 134 + } + }, + { + "location": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Visitors/InsertOptionalDataVisitor.cs", + "index": 135 + } + }, + { + "location": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Visitors/RebaseUriVisitor.cs", + "index": 136 + } + }, + { + "location": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Visitors/SarifCurrentToVersionOneVisitor.cs", + "index": 137 + } + }, + { + "location": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Visitors/SarifTransformerUtilities.cs", + "index": 138 + } + }, + { + "location": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Visitors/SarifVersionOneToCurrentVisitor.cs", + "index": 139 + } + }, + { + "location": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Writers/MimeType.cs", + "index": 140 + } + }, + { + "location": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Writers/ResultLogJsonWriter.cs", + "index": 141 + } + }, + { + "location": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif/Writers/SarifLogger.cs", + "index": 142 + } + }, + { + "location": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Driver.dll", + "uriBaseId": "$(ProjectDir)", + "index": 143 + } + }, + { + "location": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Driver/Sdk/AggregatingLogger.cs", + "index": 144 + } + }, + { + "location": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Driver/Sdk/AnalysisContext.cs", + "index": 145 + } + }, + { + "location": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Driver/Sdk/AnalyzeCommandBase.cs", + "index": 146 + } + }, + { + "location": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Driver/ArgumentSplitter.cs", + "index": 147 + } + }, + { + "location": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Driver/Sdk/DefaultDriverOptions.cs", + "index": 148 + } + }, + { + "location": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Driver/DriverExtensionMethods.cs", + "index": 149 + } + }, + { + "location": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Driver/Sdk/CompositionUtilities.cs", + "index": 150 + } + }, + { + "location": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Driver/Sdk/EntryPointUtilities.cs", + "index": 151 + } + }, + { + "location": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Driver/Sdk/ExportConfigurationCommandBase.cs", + "index": 152 + } + }, + { + "location": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Driver/Sdk/ExportRulesMetadataCommandBase.cs", + "index": 153 + } + }, + { + "location": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Driver/FileSpecifier.cs", + "index": 154 + } + }, + { + "location": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Driver/Sdk/PlugInDriverCommand.cs", + "index": 155 + } + }, + { + "location": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Driver/Sdk/StatisticsLogger.cs", + "index": 156 + } + }, + { + "location": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Driver/FileStreamExtensionMethods.cs", + "index": 157 + } + }, + { + "location": { + "uri": "../../../../../../sarif-sdk-test/bld/bin/AnyCPU_Debug/Sarif.Multitool/net461/Sarif.Multitool.exe", + "uriBaseId": "$(ProjectDir)", + "index": 158 + } + }, + { + "location": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Multitool/AbsoluteUriCommand.cs", + "index": 159 + } + }, + { + "location": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Multitool/BaselineCommand.cs", + "index": 160 + } + }, + { + "location": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Multitool/ConvertCommand.cs", + "index": 161 + } + }, + { + "location": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Multitool/JTokenExtensions.cs", + "index": 162 + } + }, + { + "location": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Multitool/MergeCommand.cs", + "index": 163 + } + }, + { + "location": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Multitool/RebaseUriCommand.cs", + "index": 164 + } + }, + { + "location": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Multitool/RewriteCommand.cs", + "index": 165 + } + }, + { + "location": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Multitool/SarifValidationContext.cs", + "index": 166 + } + }, + { + "location": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Multitool/TransformCommand.cs", + "index": 167 + } + }, + { + "location": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Multitool/ValidateCommand.cs", + "index": 168 + } + }, + { + "location": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Multitool/Rules/DoNotUseFriendlyNameAsRuleId.cs", + "index": 169 + } + }, + { + "location": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Multitool/Rules/EndColumnMustNotBeLessThanStartColumn.cs", + "index": 170 + } + }, + { + "location": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Multitool/Rules/EndLineMustNotBeLessThanStartLine.cs", + "index": 171 + } + }, + { + "location": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Multitool/Rules/EndTimeMustBeAfterStartTime.cs", + "index": 172 + } + }, + { + "location": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Multitool/Rules/HashAlgorithmsMustBeUnique.cs", + "index": 173 + } + }, + { + "location": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Multitool/Rules/MessagesShouldEndWithPeriod.cs", + "index": 174 + } + }, + { + "location": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Multitool/Rules/SarifValidationSkimmerBase.cs", + "index": 175 + } + }, + { + "location": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Multitool/Rules/StepValuesMustFormOneBasedSequence.cs", + "index": 176 + } + }, + { + "location": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Multitool/Rules/UriBaseIdRequiresRelativeUri.cs", + "index": 177 + } + }, + { + "location": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Multitool/Rules/UrisMustBeValid.cs", + "index": 178 + } + }, + { + "location": { + "uri": "file:///E:/src/sarif-sdk-test/src/Sarif.Multitool/Rules/UseAbsolutePathsForNestedFileUriFragments.cs", + "index": 179 } } - } + ], + "columnKind": "utf16CodeUnits" } ] } \ No newline at end of file