{"$schema":"https://json.schemastore.org/sarif-2.1.0.json","version":"2.1.0","runs":[{"tool":{"driver":{"name":"codehealth","informationUri":"https://codehealth.canine.dev","rules":[{"id":"D1","name":"Cyclomatic Complexity","shortDescription":{"text":"Cyclomatic Complexity"},"helpUri":"https://codehealth.canine.dev/dimensions/D1"},{"id":"D2","name":"Cognitive Complexity","shortDescription":{"text":"Cognitive Complexity"},"helpUri":"https://codehealth.canine.dev/dimensions/D2"},{"id":"D3","name":"God Classes","shortDescription":{"text":"God Classes"},"helpUri":"https://codehealth.canine.dev/dimensions/D3"},{"id":"D4","name":"Code Duplication","shortDescription":{"text":"Code Duplication"},"helpUri":"https://codehealth.canine.dev/dimensions/D4"},{"id":"D5","name":"Coupling","shortDescription":{"text":"Coupling"},"helpUri":"https://codehealth.canine.dev/dimensions/D5"},{"id":"D6","name":"Cohesion (LCOM4)","shortDescription":{"text":"Cohesion (LCOM4)"},"helpUri":"https://codehealth.canine.dev/dimensions/D6"},{"id":"D8","name":"Code Coverage","shortDescription":{"text":"Code Coverage"},"helpUri":"https://codehealth.canine.dev/dimensions/D8"},{"id":"D9","name":"Test Distribution","shortDescription":{"text":"Test Distribution"},"helpUri":"https://codehealth.canine.dev/dimensions/D9"},{"id":"D12","name":"Dependency Hygiene","shortDescription":{"text":"Dependency Hygiene"},"helpUri":"https://codehealth.canine.dev/dimensions/D12"},{"id":"D13","name":"Secret Scanning","shortDescription":{"text":"Secret Scanning"},"helpUri":"https://codehealth.canine.dev/dimensions/D13","relationships":[{"target":{"id":"CWE-798","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},"kinds":["relevant"]},{"target":{"id":"CWE-259","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},"kinds":["relevant"]}],"properties":{"cwe":["CWE-798","CWE-259"]}},{"id":"D15","name":"Churn \u00D7 Complexity Hotspots","shortDescription":{"text":"Churn \u00D7 Complexity Hotspots"},"helpUri":"https://codehealth.canine.dev/dimensions/D15"},{"id":"D16","name":"Bus Factor","shortDescription":{"text":"Bus Factor"},"helpUri":"https://codehealth.canine.dev/dimensions/D16"},{"id":"D17","name":"Explicit Debt","shortDescription":{"text":"Explicit Debt"},"helpUri":"https://codehealth.canine.dev/dimensions/D17"},{"id":"D18","name":"Solution Shape","shortDescription":{"text":"Solution Shape"},"helpUri":"https://codehealth.canine.dev/dimensions/D18"},{"id":"D19","name":"Documentation Quality","shortDescription":{"text":"Documentation Quality"},"helpUri":"https://codehealth.canine.dev/dimensions/D19"},{"id":"D21","name":"Naming Consistency","shortDescription":{"text":"Naming Consistency"},"helpUri":"https://codehealth.canine.dev/dimensions/D21"},{"id":"D26","name":"Project Cohesion","shortDescription":{"text":"Project Cohesion"},"helpUri":"https://codehealth.canine.dev/dimensions/D26"},{"id":"D28","name":"Secrets (history)","shortDescription":{"text":"Secrets (history)"},"helpUri":"https://codehealth.canine.dev/dimensions/D28","relationships":[{"target":{"id":"CWE-798","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},"kinds":["relevant"]},{"target":{"id":"CWE-259","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},"kinds":["relevant"]}],"properties":{"cwe":["CWE-798","CWE-259"]}},{"id":"D29","name":"Static Analysis (SAST)","shortDescription":{"text":"Static Analysis (SAST)"},"helpUri":"https://codehealth.canine.dev/dimensions/D29","relationships":[{"target":{"id":"CWE-79","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},"kinds":["relevant"]},{"target":{"id":"CWE-89","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},"kinds":["relevant"]},{"target":{"id":"CWE-78","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},"kinds":["relevant"]},{"target":{"id":"CWE-94","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},"kinds":["relevant"]},{"target":{"id":"CWE-77","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},"kinds":["relevant"]}],"properties":{"cwe":["CWE-79","CWE-89","CWE-78","CWE-94","CWE-77"]}},{"id":"D30","name":"Dependency Vulnerabilities","shortDescription":{"text":"Dependency Vulnerabilities"},"helpUri":"https://codehealth.canine.dev/dimensions/D30","relationships":[{"target":{"id":"CWE-1395","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},"kinds":["relevant"]},{"target":{"id":"CWE-937","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},"kinds":["relevant"]}],"properties":{"cwe":["CWE-1395","CWE-937"]}},{"id":"D34","name":"Knowledge Freshness","shortDescription":{"text":"Knowledge Freshness"},"helpUri":"https://codehealth.canine.dev/dimensions/D34"},{"id":"D35","name":"Change Coupling","shortDescription":{"text":"Change Coupling"},"helpUri":"https://codehealth.canine.dev/dimensions/D35"}]}},"results":[{"ruleId":"D1","level":"warning","message":{"text":"Main.SetupCureCoin (cyclomatic 65): Main.SetupCureCoin has cyclomatic complexity 65 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Browser/Main.vb"},"region":{"startLine":2184}}}],"partialFingerprints":{"codehealthFindingId/v1":"f212c65628d47016da04a1aee6a0eb73a48da69f17799a0bae34af3f14b856b5"}},{"ruleId":"D1","level":"warning","message":{"text":"FAHSetupDialog.CreateFAHUserName (cyclomatic 64): FAHSetupDialog.CreateFAHUserName has cyclomatic complexity 64 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Browser/FAHSetupDialog.vb"},"region":{"startLine":249}}}],"partialFingerprints":{"codehealthFindingId/v1":"d9fd74936889e65f37cd4600a57fd68e529dc1357c1db5152d747dd2a861cb04"}},{"ruleId":"D1","level":"warning","message":{"text":"Main.LoginToDiscord (cyclomatic 43): Main.LoginToDiscord has cyclomatic complexity 43 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Browser/Main.vb"},"region":{"startLine":1609}}}],"partialFingerprints":{"codehealthFindingId/v1":"6ee522005e30341b461d03dd965a7d92a0a53647170283b422b66d42c66b1fa1"}},{"ruleId":"D1","level":"warning","message":{"text":"Main.GetWallet (cyclomatic 43): Main.GetWallet has cyclomatic complexity 43 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Browser/Main.vb"},"region":{"startLine":1860}}}],"partialFingerprints":{"codehealthFindingId/v1":"9bac52ccda1ae0d9fcbb2475bb6334654ba7fc368a5de14b6c098f0dfecf42b1"}},{"ruleId":"D1","level":"warning","message":{"text":"Main.LoadINISettings (cyclomatic 37): Main.LoadINISettings has cyclomatic complexity 37 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Browser/Main.vb"},"region":{"startLine":171}}}],"partialFingerprints":{"codehealthFindingId/v1":"c4cda03640a7c18c83d013912e8dad2d97aa55ea6d3e2cb122242ac536d6382d"}},{"ruleId":"D1","level":"warning","message":{"text":"FAHSetupDialog.FAHSetupDialog_Load (cyclomatic 33): FAHSetupDialog.FAHSetupDialog_Load has cyclomatic complexity 33 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Browser/FAHSetupDialog.vb"},"region":{"startLine":23}}}],"partialFingerprints":{"codehealthFindingId/v1":"146acbc90da1c16fe33ef8d0006d0487088bfecc357e298b994639c9c89e648d"}},{"ruleId":"D1","level":"warning","message":{"text":"Main.LoginToCounterwallet (cyclomatic 28): Main.LoginToCounterwallet has cyclomatic complexity 28 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Browser/Main.vb"},"region":{"startLine":1469}}}],"partialFingerprints":{"codehealthFindingId/v1":"e04a17c058a67150665a88880a685855f1a7c6539ca88a5eec9419fde7a2b4cb"}},{"ruleId":"D1","level":"warning","message":{"text":"FAHSetupDialog.btnTelnetSave_Click (cyclomatic 24): FAHSetupDialog.btnTelnetSave_Click has cyclomatic complexity 24 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Browser/FAHSetupDialog.vb"},"region":{"startLine":574}}}],"partialFingerprints":{"codehealthFindingId/v1":"1405ff4f573745b0c24716363dd7fe2358fcbb6c478eeb29155e92ce83323208"}},{"ruleId":"D1","level":"warning","message":{"text":"Main.RunSetup (cyclomatic 24): Main.RunSetup has cyclomatic complexity 24 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Browser/Main.vb"},"region":{"startLine":435}}}],"partialFingerprints":{"codehealthFindingId/v1":"87e28c9f10dc729e99a656b4c90c41dadd3cadaee3889a61a04b50820bec8f8d"}},{"ruleId":"D1","level":"warning","message":{"text":"Main.btnEOC_UserStats_Click (cyclomatic 20): Main.btnEOC_UserStats_Click has cyclomatic complexity 20 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Browser/Main.vb"},"region":{"startLine":913}}}],"partialFingerprints":{"codehealthFindingId/v1":"0370bb9166f603d8285af9938d64bdff705cd2d9a10cff9be4ac5bc04a6b27dd"}},{"ruleId":"D1","level":"warning","message":{"text":"Main.IsCounterwalletUp (cyclomatic 20): Main.IsCounterwalletUp has cyclomatic complexity 20 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Browser/Main.vb"},"region":{"startLine":1405}}}],"partialFingerprints":{"codehealthFindingId/v1":"66fedd774810a13b8d20cdd090d81c860af169fde547d61d405c4fe98c193982"}},{"ruleId":"D1","level":"warning","message":{"text":"Main.btnCurePool_Click (cyclomatic 20): Main.btnCurePool_Click has cyclomatic complexity 20 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Browser/Main.vb"},"region":{"startLine":2570}}}],"partialFingerprints":{"codehealthFindingId/v1":"3faf7fd1133410212a11f8576ab67eb17a85f38136530d3cdacf99d17a7afb77"}},{"ruleId":"D1","level":"warning","message":{"text":"DisplayTextDialog.btnSaveChanges_Click (cyclomatic 19): DisplayTextDialog.btnSaveChanges_Click has cyclomatic complexity 19 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Browser/DisplayTextDialog.vb"},"region":{"startLine":89}}}],"partialFingerprints":{"codehealthFindingId/v1":"161d0f54c23cf9d73e0c57f12985b3da1ded681aaca8285c16475a7be742dcc6"}},{"ruleId":"D1","level":"warning","message":{"text":"Main.FindTextInDoc (cyclomatic 19): Main.FindTextInDoc has cyclomatic complexity 19 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Browser/Main.vb"},"region":{"startLine":3473}}}],"partialFingerprints":{"codehealthFindingId/v1":"c6f683bf065f66e78116665473f0fec4f547d97d36132a5568ab3b60d52d92f3"}},{"ruleId":"D1","level":"warning","message":{"text":"Main.GetFAH (cyclomatic 18): Main.GetFAH has cyclomatic complexity 18 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Browser/Main.vb"},"region":{"startLine":2048}}}],"partialFingerprints":{"codehealthFindingId/v1":"ee445c2981bb0ac48e7892e5ab2ad09ffb251dc75794cd59090c7c4537831203"}},{"ruleId":"D1","level":"warning","message":{"text":"DisplayTextDialog.cbxWalletId_SelectedIndexChanged (cyclomatic 17): DisplayTextDialog.cbxWalletId_SelectedIndexChanged has cyclomatic complexity 17 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Browser/DisplayTextDialog.vb"},"region":{"startLine":313}}}],"partialFingerprints":{"codehealthFindingId/v1":"c80d4b4390122283301b57c98e7197776e355d578bf948ee56064264bc22976d"}},{"ruleId":"D1","level":"warning","message":{"text":"Main.New.ctor (cyclomatic 16): Main.New.ctor has cyclomatic complexity 16 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Browser/Main.vb"},"region":{"startLine":38}}}],"partialFingerprints":{"codehealthFindingId/v1":"3220b79571e22bb14120bc72459695a351780bcabb428326d6e2f40c70b20a21"}},{"ruleId":"D1","level":"warning","message":{"text":"Main.Main_FormClosing (cyclomatic 16): Main.Main_FormClosing has cyclomatic complexity 16 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Browser/Main.vb"},"region":{"startLine":576}}}],"partialFingerprints":{"codehealthFindingId/v1":"94a4fb6409cf90cf7e532fea25f6d18e363da171c51e624797f689b7f0324967"}},{"ruleId":"D2","level":"warning","message":{"text":"Main.SetupCureCoin (cognitive 140): Main.SetupCureCoin has cognitive complexity 140 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Browser/Main.vb"},"region":{"startLine":2184}}}],"partialFingerprints":{"codehealthFindingId/v1":"41a652b8de33c2baae1b7ffd8a8e06e93cbed9ed121e9432cbcb2f8d114128a7"}},{"ruleId":"D2","level":"warning","message":{"text":"Main.LoginToDiscord (cognitive 132): Main.LoginToDiscord has cognitive complexity 132 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Browser/Main.vb"},"region":{"startLine":1609}}}],"partialFingerprints":{"codehealthFindingId/v1":"7a6909179fbc056163836e3bbc46f6ca25c1826ba364a4da2214206caeb06599"}},{"ruleId":"D2","level":"warning","message":{"text":"FAHSetupDialog.CreateFAHUserName (cognitive 106): FAHSetupDialog.CreateFAHUserName has cognitive complexity 106 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Browser/FAHSetupDialog.vb"},"region":{"startLine":249}}}],"partialFingerprints":{"codehealthFindingId/v1":"58f0f32523e3882a72b3b706567d00917278d308ad4b4157b8f6695f1319f753"}},{"ruleId":"D2","level":"warning","message":{"text":"Main.GetWallet (cognitive 100): Main.GetWallet has cognitive complexity 100 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Browser/Main.vb"},"region":{"startLine":1860}}}],"partialFingerprints":{"codehealthFindingId/v1":"9cf21964b916d7fe5eb73bf652424fa983494152483def1a4739ea2ff4eaacb2"}},{"ruleId":"D2","level":"warning","message":{"text":"Main.LoadINISettings (cognitive 98): Main.LoadINISettings has cognitive complexity 98 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Browser/Main.vb"},"region":{"startLine":171}}}],"partialFingerprints":{"codehealthFindingId/v1":"058d3cad769922492f936747dd0c59cede8816843d6a94e80b6c16a25ffb365a"}},{"ruleId":"D2","level":"warning","message":{"text":"Main.FindTextInDoc (cognitive 98): Main.FindTextInDoc has cognitive complexity 98 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Browser/Main.vb"},"region":{"startLine":3473}}}],"partialFingerprints":{"codehealthFindingId/v1":"085ec1a444ca346757cc63e12291dd0b5564d5e9d27f3de13c2f973b66e9e8f9"}},{"ruleId":"D2","level":"warning","message":{"text":"FAHSetupDialog.btnTelnetSave_Click (cognitive 76): FAHSetupDialog.btnTelnetSave_Click has cognitive complexity 76 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Browser/FAHSetupDialog.vb"},"region":{"startLine":574}}}],"partialFingerprints":{"codehealthFindingId/v1":"61502cc0fc532c4ba5e9c635e752d2515ccea35626e454b9567f6a53d9fb6832"}},{"ruleId":"D2","level":"warning","message":{"text":"FAHSetupDialog.FAHSetupDialog_Load (cognitive 73): FAHSetupDialog.FAHSetupDialog_Load has cognitive complexity 73 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Browser/FAHSetupDialog.vb"},"region":{"startLine":23}}}],"partialFingerprints":{"codehealthFindingId/v1":"e93b7f5e33239efa767a46d8308b390cb7ef6ca2d58c95029d057443bea9c3f9"}},{"ruleId":"D2","level":"warning","message":{"text":"Main.LoginToCounterwallet (cognitive 58): Main.LoginToCounterwallet has cognitive complexity 58 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Browser/Main.vb"},"region":{"startLine":1469}}}],"partialFingerprints":{"codehealthFindingId/v1":"0c37a2c7903fdfb2de76c5ff10d2d81581475816d34c19de2f6ebd3ae1e93617"}},{"ruleId":"D2","level":"warning","message":{"text":"Main.RunSetup (cognitive 54): Main.RunSetup has cognitive complexity 54 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Browser/Main.vb"},"region":{"startLine":435}}}],"partialFingerprints":{"codehealthFindingId/v1":"685d43908d7e2f81b78bce3ddec68d1ca7695e6dab97767277ce274ff094ea8c"}},{"ruleId":"D2","level":"warning","message":{"text":"DisplayTextDialog.cbxWalletId_SelectedIndexChanged (cognitive 45): DisplayTextDialog.cbxWalletId_SelectedIndexChanged has cognitive complexity 45 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Browser/DisplayTextDialog.vb"},"region":{"startLine":313}}}],"partialFingerprints":{"codehealthFindingId/v1":"19e9f283728ed82e35e2812397384c21dab0f4b9a783baceb55a21298e0d43a8"}},{"ruleId":"D2","level":"warning","message":{"text":"Main.IsCounterwalletUp (cognitive 44): Main.IsCounterwalletUp has cognitive complexity 44 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Browser/Main.vb"},"region":{"startLine":1405}}}],"partialFingerprints":{"codehealthFindingId/v1":"6749699e92463886b24e71bcd21eccd31d699f216eeeca8c7b13c400d8eefcd9"}},{"ruleId":"D2","level":"warning","message":{"text":"DisplayTextDialog.btnSaveChanges_Click (cognitive 36): DisplayTextDialog.btnSaveChanges_Click has cognitive complexity 36 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Browser/DisplayTextDialog.vb"},"region":{"startLine":89}}}],"partialFingerprints":{"codehealthFindingId/v1":"289314ef1934704c62ac09545db9e835512a8915f8fcfd429ad7966ebacdf696"}},{"ruleId":"D2","level":"warning","message":{"text":"Main.btnEOC_UserStats_Click (cognitive 33): Main.btnEOC_UserStats_Click has cognitive complexity 33 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Browser/Main.vb"},"region":{"startLine":913}}}],"partialFingerprints":{"codehealthFindingId/v1":"1b15970db76d1dfc32370717063793339eadade5b91c0866cf63ccb010e92c10"}},{"ruleId":"D2","level":"warning","message":{"text":"Main.btnCurePool_Click (cognitive 29): Main.btnCurePool_Click has cognitive complexity 29 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Browser/Main.vb"},"region":{"startLine":2570}}}],"partialFingerprints":{"codehealthFindingId/v1":"46757e98ed7075c22135272c06bdfddac6d75ef26ea71c2596b6ec141612cf02"}},{"ruleId":"D2","level":"warning","message":{"text":"Main.GetFAH (cognitive 28): Main.GetFAH has cognitive complexity 28 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Browser/Main.vb"},"region":{"startLine":2048}}}],"partialFingerprints":{"codehealthFindingId/v1":"7be4a1ff66a40eda33a589018a8b5ed42a113338467a5da0dfee68f518bf0973"}},{"ruleId":"D2","level":"warning","message":{"text":"FAHSetupDialog.NewData (cognitive 24): FAHSetupDialog.NewData has cognitive complexity 24 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Browser/FAHSetupDialog.vb"},"region":{"startLine":756}}}],"partialFingerprints":{"codehealthFindingId/v1":"a66a21f71b19e21c6668f927d461c392c26bf09619b6245778d55642907b94ac"}},{"ruleId":"D2","level":"warning","message":{"text":"DisplayTextDialog.btnMakeBackup_Click (cognitive 23): DisplayTextDialog.btnMakeBackup_Click has cognitive complexity 23 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Browser/DisplayTextDialog.vb"},"region":{"startLine":201}}}],"partialFingerprints":{"codehealthFindingId/v1":"acb72e3262dd8acf9d9427e62288355dfbeaa3de7d99096500d9311ba3888527"}},{"ruleId":"D2","level":"warning","message":{"text":"Main.New.ctor (cognitive 23): Main.New.ctor has cognitive complexity 23 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Browser/Main.vb"},"region":{"startLine":38}}}],"partialFingerprints":{"codehealthFindingId/v1":"1101afdc6a93a4895f5a5747e18b05ab87608952e219487ffdac086295e25902"}},{"ruleId":"D2","level":"warning","message":{"text":"Main.Main_FormClosing (cognitive 21): Main.Main_FormClosing has cognitive complexity 21 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Browser/Main.vb"},"region":{"startLine":576}}}],"partialFingerprints":{"codehealthFindingId/v1":"cc47a2e52b5463ddafd36f48b6f16e2fdf4daafbbd599c09c8359b7b4af58027"}},{"ruleId":"D2","level":"warning","message":{"text":"Main.btnFAHWebControl_Click (cognitive 19): Main.btnFAHWebControl_Click has cognitive complexity 19 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Browser/Main.vb"},"region":{"startLine":858}}}],"partialFingerprints":{"codehealthFindingId/v1":"63df433a63c61cb02ea4b81e7c1435cdb0def06266f35c4b16ac8b90e8a87ae3"}},{"ruleId":"D2","level":"warning","message":{"text":"FAHSetupDialog.btnReload_Click (cognitive 17): FAHSetupDialog.btnReload_Click has cognitive complexity 17 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Browser/FAHSetupDialog.vb"},"region":{"startLine":813}}}],"partialFingerprints":{"codehealthFindingId/v1":"ae38190a3711161abc8024990c58134cd1893ee869865879fb3fa24e272afeb3"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: Browser/FAHSetupDialog.vb: FileTooLong \u2014 630 lines."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Browser/FAHSetupDialog.vb"},"region":{"startLine":0}}}],"partialFingerprints":{"codehealthFindingId/v1":"3fc682b9814a8dccd1143952255394dce206e961c34deff2eb09b8c06b06cfc6"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: Browser/Main.vb: FileTooLong \u2014 2401 lines."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Browser/Main.vb"},"region":{"startLine":0}}}],"partialFingerprints":{"codehealthFindingId/v1":"5592dca0f9570a82b33306ac3733adeb6bfbc1101a0e5938e0807f88a0fc329e"}},{"ruleId":"D3","level":"warning","message":{"text":"ClassTooLong: FAHSetupDialog: ClassTooLong \u2014 630 lines, 19 methods."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Browser/FAHSetupDialog.vb"},"region":{"startLine":0}}}],"partialFingerprints":{"codehealthFindingId/v1":"db6b411c9523678bbeb19f6571015fd2183ae26bcb45847ca9069751b04dfe12"}},{"ruleId":"D3","level":"warning","message":{"text":"TooManyMethods: Main: TooManyMethods \u2014 2401 lines, 97 methods."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Browser/Main.vb"},"region":{"startLine":0}}}],"partialFingerprints":{"codehealthFindingId/v1":"c3274baba5bd1ba7bdcb77c3c26f3e5be5e7ac1647bfabdcfb73c54ef003808f"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (14 lines \u00D7 3): Browser/Main.vb:3412-3425 | Browser/Main.vb:3433-3445 | Browser/Main.vb:3453-3465"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Browser/Main.vb"},"region":{"startLine":3412}}}],"partialFingerprints":{"codehealthFindingId/v1":"99431691f6b5c397daf24eca1224c2d722b751ac61aa754fac7fea440368fed2"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (13 lines \u00D7 3): Browser/Main.vb:1097-1109 | Browser/Main.vb:1135-1147 | Browser/Main.vb:1210-1222"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Browser/Main.vb"},"region":{"startLine":1097}}}],"partialFingerprints":{"codehealthFindingId/v1":"6f1a357a0e55d436abed08b178bd4913cf84ed3429304bcf0d6b2ef0b0a4e60f"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (11 lines \u00D7 2): Browser/IniDat.vb:47-57 | Browser/IniDat.vb:95-105"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Browser/IniDat.vb"},"region":{"startLine":47}}}],"partialFingerprints":{"codehealthFindingId/v1":"f2228e05a30fa59ee61d5c8639cfb5e6e57f9ac7a0de1d3d0d163ea080405afc"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (11 lines \u00D7 2): Browser/Main.vb:2083-2093 | Browser/Main.vb:2104-2114"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Browser/Main.vb"},"region":{"startLine":2083}}}],"partialFingerprints":{"codehealthFindingId/v1":"718bf627fb405d844eed5826445ef82acf81f7a0d39cdf46dbc330c416ef5d9f"}},{"ruleId":"D6","level":"warning","message":{"text":"Low cohesion: Main (LCOM4 4): Main\u0027s methods form 4 groups that share no state and don\u0027t call each other \u2014 a sign it may have several responsibilities. Review whether it splits into focused classes."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Browser/Main.vb"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"d127d93b6421f67a4f5aad0720fdd6bbde963247fdf4f004d3db205920b2ad94"}},{"ruleId":"D8","level":"error","message":{"text":"No automated tests: No automated tests \u2014 the solution has no test code. Untested code is the largest single risk to changing it safely."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"3132564c6310e5d01a231f252a02d5d2f5a542c0a8fa29a14c89693f1e3df871"}},{"ruleId":"D9","level":"note","message":{"text":"No tests found: No test projects found in the repository."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"c9bf64cbb5a4ae13d6bcd01fa3bc8d2879d860c73bc67f176ee3c2cecb8adce3"}},{"ruleId":"D16","level":"note","message":{"text":"Small-team knowledge concentration: 0 file(s) are concentrated to one author \u2014 the ambient state with 2 active author(s), not 0 separate risks. The signal becomes meaningful as ownership spreads; no per-file action implied now."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"8aa75b6daa18f1b578387fa04036c50b3163d47f957c8f5601bf083ed4489b0c"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: \u0027TODO: Ask for existing 12-word PW CounterParty wallet info? (probably too confusing / too many options) \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Browser/Main.vb"},"region":{"startLine":487}}}],"partialFingerprints":{"codehealthFindingId/v1":"e7a0eeba751513b6903847036e5cfd86eb2543d14fe21b02acefa486b5416c2e"}},{"ruleId":"D18","level":"note","message":{"text":"Shell project: FoldingBrowser: \u0060FoldingBrowser\u0060 contributes only 0 significant line(s) \u2014 an empty/placeholder project is structural noise. Remove it or fold its contents into a real project."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Browser/FoldingBrowser.vbproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"8ab70fdad93404240d567102c0923dc2ddf3b5dd32ee6bd532d45d5badd70844"}},{"ruleId":"D35","level":"warning","message":{"text":"Change coupling: DisplayTextDialog.vb \u2194 GlobalRefs.vb: \u0060Browser/DisplayTextDialog.vb\u0060 and \u0060Browser/GlobalRefs.vb\u0060 change together 83% of the time (15 shared commits) with no explicit dependency \u2014 a hidden/logical coupling. If they belong together, co-locate them; if not, break the coupling."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Browser/DisplayTextDialog.vb"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"c699d8f22546b63bca49dff56480b368725c35d2499b739640d33ba53721ed31"}},{"ruleId":"D35","level":"warning","message":{"text":"Change coupling: FAHSetupDialog.vb \u2194 GlobalRefs.vb: \u0060Browser/FAHSetupDialog.vb\u0060 and \u0060Browser/GlobalRefs.vb\u0060 change together 76% of the time (19 shared commits) with no explicit dependency \u2014 a hidden/logical coupling. If they belong together, co-locate them; if not, break the coupling."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Browser/FAHSetupDialog.vb"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"8464bfdb0665309471c5a7f9d6c630aced606556bbf46b126cb0a3049c1e2264"}},{"ruleId":"D35","level":"warning","message":{"text":"Change coupling: GlobalRefs.vb \u2194 AssemblyInfo.vb: \u0060Browser/GlobalRefs.vb\u0060 and \u0060Browser/My Project/AssemblyInfo.vb\u0060 change together 62% of the time (16 shared commits) with no explicit dependency \u2014 a hidden/logical coupling. If they belong together, co-locate them; if not, break the coupling."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Browser/GlobalRefs.vb"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"43dcc2487d872429a89d5fbb8ab962b6e397b737b2db40fae645bb69f9306980"}},{"ruleId":"D35","level":"warning","message":{"text":"Change coupling: DisplayTextDialog.vb \u2194 AssemblyInfo.vb: \u0060Browser/DisplayTextDialog.vb\u0060 and \u0060Browser/My Project/AssemblyInfo.vb\u0060 change together 50% of the time (9 shared commits) with no explicit dependency \u2014 a hidden/logical coupling. If they belong together, co-locate them; if not, break the coupling."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Browser/DisplayTextDialog.vb"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"50c59ee458b087ba369a69b98f258d78524713506d5ac64a889ac11ef67fd80b"}}],"taxonomies":[{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d","organization":"MITRE","informationUri":"https://cwe.mitre.org/","isComprehensive":false,"shortDescription":{"text":"The MITRE Common Weakness Enumeration (CWE)."},"taxa":[{"id":"CWE-1395","guid":"800e09e7-c11a-8654-9fa6-86f398995fed","name":"Dependency on Vulnerable Third-Party Component","shortDescription":{"text":"Dependency on Vulnerable Third-Party Component"},"helpUri":"https://cwe.mitre.org/data/definitions/1395.html"},{"id":"CWE-259","guid":"ae9ad959-fbb6-9d5e-892d-3dca66da0b69","name":"Use of Hard-coded Password","shortDescription":{"text":"Use of Hard-coded Password"},"helpUri":"https://cwe.mitre.org/data/definitions/259.html"},{"id":"CWE-77","guid":"332c8ade-6612-9f56-a06b-d8d90b1a8750","name":"Command Injection","shortDescription":{"text":"Command Injection"},"helpUri":"https://cwe.mitre.org/data/definitions/77.html"},{"id":"CWE-78","guid":"2e31ceaf-c7ae-2e5e-9661-cfb1362789cf","name":"OS Command Injection","shortDescription":{"text":"OS Command Injection"},"helpUri":"https://cwe.mitre.org/data/definitions/78.html"},{"id":"CWE-79","guid":"fd45580b-e8c4-fc5e-8c2f-aa8fab0b4dbf","name":"Cross-site Scripting (XSS)","shortDescription":{"text":"Cross-site Scripting (XSS)"},"helpUri":"https://cwe.mitre.org/data/definitions/79.html"},{"id":"CWE-798","guid":"5e8f057d-fee3-995a-a0cb-9fc5b0d174d1","name":"Use of Hard-coded Credentials","shortDescription":{"text":"Use of Hard-coded Credentials"},"helpUri":"https://cwe.mitre.org/data/definitions/798.html"},{"id":"CWE-89","guid":"6d08fdad-37eb-c150-bbf0-d7d946863407","name":"SQL Injection","shortDescription":{"text":"SQL Injection"},"helpUri":"https://cwe.mitre.org/data/definitions/89.html"},{"id":"CWE-937","guid":"16f316ae-415c-b354-a59b-1f7905f756e9","name":"Using Components with Known Vulnerabilities","shortDescription":{"text":"Using Components with Known Vulnerabilities"},"helpUri":"https://cwe.mitre.org/data/definitions/937.html"},{"id":"CWE-94","guid":"75e7f50c-6c2f-dd52-bf40-bf6c52b861fd","name":"Code Injection","shortDescription":{"text":"Code Injection"},"helpUri":"https://cwe.mitre.org/data/definitions/94.html"}]}],"properties":{"codehealthPublication":{"public":true,"notice":"This is the PUBLIC form of this artifact. Findings are listed in full, but the details of SECURITY findings \u2014 which rule fired, in which file, on which line, and how to fix it \u2014 are deliberately withheld, and any secret-scanner results are excluded entirely. Where detail is absent here it was REMOVED FOR PUBLICATION; it is not missing from the analysis. The complete artifact is available from the repository owner.","securityFindingsRedacted":0,"secretScannerRunsExcluded":0}}}]}