{
  "title" : "Duplication",
  "timestamp" : "2026-01-18 17:22:34",
  "duplicates" : [ {
    "blockSize" : 39,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/StructuredLogViewer.Avalonia/Controls/BuildControl.xaml.cs",
        "extension" : "cs",
        "linesOfCode" : 874,
        "components" : [ "primary::src" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 592,
      "startLine" : 928,
      "endLine" : 1006,
      "cleanedStartLine" : 543,
      "cleanedEndLine" : 581
    }, {
      "file" : {
        "relativePath" : "src/StructuredLogViewer/Controls/BuildControl.xaml.cs",
        "extension" : "cs",
        "linesOfCode" : 1721,
        "components" : [ "primary::src" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 1125,
      "startLine" : 1719,
      "endLine" : 1797,
      "cleanedStartLine" : 969,
      "cleanedEndLine" : 1007
    } ]
  }, {
    "blockSize" : 29,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/StructuredLogViewer.Avalonia/Controls/SplitterPanel.cs",
        "extension" : "cs",
        "linesOfCode" : 205,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 122,
      "startLine" : 127,
      "endLine" : 173,
      "cleanedStartLine" : 69,
      "cleanedEndLine" : 97
    }, {
      "file" : {
        "relativePath" : "src/StructuredLogViewer/Controls/SplitterPanel.cs",
        "extension" : "cs",
        "linesOfCode" : 221,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 134,
      "startLine" : 145,
      "endLine" : 191,
      "cleanedStartLine" : 81,
      "cleanedEndLine" : 109
    } ]
  }, {
    "blockSize" : 24,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/StructuredLogViewer.Avalonia/Controls/BuildControl.xaml.cs",
        "extension" : "cs",
        "linesOfCode" : 874,
        "components" : [ "primary::src" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 592,
      "startLine" : 749,
      "endLine" : 792,
      "cleanedStartLine" : 440,
      "cleanedEndLine" : 463
    }, {
      "file" : {
        "relativePath" : "src/StructuredLogViewer/Controls/BuildControl.xaml.cs",
        "extension" : "cs",
        "linesOfCode" : 1721,
        "components" : [ "primary::src" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 1125,
      "startLine" : 1457,
      "endLine" : 1500,
      "cleanedStartLine" : 833,
      "cleanedEndLine" : 856
    } ]
  }, {
    "blockSize" : 24,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/StructuredLogViewer.Avalonia/Controls/SplitterPanel.cs",
        "extension" : "cs",
        "linesOfCode" : 205,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 122,
      "startLine" : 176,
      "endLine" : 230,
      "cleanedStartLine" : 99,
      "cleanedEndLine" : 122
    }, {
      "file" : {
        "relativePath" : "src/StructuredLogViewer/Controls/SplitterPanel.cs",
        "extension" : "cs",
        "linesOfCode" : 221,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 134,
      "startLine" : 194,
      "endLine" : 248,
      "cleanedStartLine" : 111,
      "cleanedEndLine" : 134
    } ]
  }, {
    "blockSize" : 22,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/StructuredLogViewer.Avalonia/MainWindow.xaml.cs",
        "extension" : "cs",
        "linesOfCode" : 542,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 340,
      "startLine" : 187,
      "endLine" : 229,
      "cleanedStartLine" : 104,
      "cleanedEndLine" : 125
    }, {
      "file" : {
        "relativePath" : "src/StructuredLogViewer/MainWindow.xaml.cs",
        "extension" : "cs",
        "linesOfCode" : 664,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 396,
      "startLine" : 263,
      "endLine" : 305,
      "cleanedStartLine" : 128,
      "cleanedEndLine" : 149
    } ]
  }, {
    "blockSize" : 21,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/StructuredLogViewer.Avalonia/Controls/ImportLinkHighlighter.cs",
        "extension" : "cs",
        "linesOfCode" : 202,
        "components" : [ "primary::src" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 128,
      "startLine" : 1,
      "endLine" : 53,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 21
    }, {
      "file" : {
        "relativePath" : "src/StructuredLogViewer/Controls/ImportLinkHighlighter.cs",
        "extension" : "cs",
        "linesOfCode" : 180,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 109,
      "startLine" : 1,
      "endLine" : 51,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 21
    } ]
  }, {
    "blockSize" : 17,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/StructuredLogViewer.Avalonia/Controls/BuildControl.xaml.cs",
        "extension" : "cs",
        "linesOfCode" : 874,
        "components" : [ "primary::src" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 592,
      "startLine" : 269,
      "endLine" : 287,
      "cleanedStartLine" : 173,
      "cleanedEndLine" : 189
    }, {
      "file" : {
        "relativePath" : "src/StructuredLogViewer/Controls/BuildControl.xaml.cs",
        "extension" : "cs",
        "linesOfCode" : 1721,
        "components" : [ "primary::src" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 1125,
      "startLine" : 457,
      "endLine" : 475,
      "cleanedStartLine" : 304,
      "cleanedEndLine" : 320
    } ]
  }, {
    "blockSize" : 16,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/StructuredLogViewer.Avalonia/Controls/SplitterPanel.cs",
        "extension" : "cs",
        "linesOfCode" : 205,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 122,
      "startLine" : 87,
      "endLine" : 114,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 58
    }, {
      "file" : {
        "relativePath" : "src/StructuredLogViewer/Controls/SplitterPanel.cs",
        "extension" : "cs",
        "linesOfCode" : 221,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 134,
      "startLine" : 104,
      "endLine" : 130,
      "cleanedStartLine" : 53,
      "cleanedEndLine" : 68
    } ]
  }, {
    "blockSize" : 16,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/StructuredLogViewer.Avalonia/BuildParametersScreen.cs",
        "extension" : "cs",
        "linesOfCode" : 58,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 37,
      "startLine" : 49,
      "endLine" : 71,
      "cleanedStartLine" : 22,
      "cleanedEndLine" : 37
    }, {
      "file" : {
        "relativePath" : "src/StructuredLogViewer/BuildParametersScreen.cs",
        "extension" : "cs",
        "linesOfCode" : 53,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 32,
      "startLine" : 43,
      "endLine" : 65,
      "cleanedStartLine" : 17,
      "cleanedEndLine" : 32
    } ]
  }, {
    "blockSize" : 16,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/StructuredLogViewer.Avalonia/Controls/BuildControl.xaml.cs",
        "extension" : "cs",
        "linesOfCode" : 874,
        "components" : [ "primary::src" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 592,
      "startLine" : 542,
      "endLine" : 562,
      "cleanedStartLine" : 336,
      "cleanedEndLine" : 351
    }, {
      "file" : {
        "relativePath" : "src/StructuredLogViewer/Controls/BuildControl.xaml.cs",
        "extension" : "cs",
        "linesOfCode" : 1721,
        "components" : [ "primary::src" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 1125,
      "startLine" : 963,
      "endLine" : 983,
      "cleanedStartLine" : 587,
      "cleanedEndLine" : 602
    } ]
  }, {
    "blockSize" : 16,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/StructuredLogViewer.Avalonia/Controls/TextViewerControl.xaml.cs",
        "extension" : "cs",
        "linesOfCode" : 187,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 115,
      "startLine" : 110,
      "endLine" : 145,
      "cleanedStartLine" : 59,
      "cleanedEndLine" : 74
    }, {
      "file" : {
        "relativePath" : "src/StructuredLogViewer/Controls/TextViewerControl.xaml.cs",
        "extension" : "cs",
        "linesOfCode" : 245,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 158,
      "startLine" : 130,
      "endLine" : 165,
      "cleanedStartLine" : 68,
      "cleanedEndLine" : 83
    } ]
  }, {
    "blockSize" : 16,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/StructuredLogViewer/Controls/TimelineControl.xaml",
        "extension" : "xaml",
        "linesOfCode" : 34,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 29,
      "startLine" : 16,
      "endLine" : 31,
      "cleanedStartLine" : 14,
      "cleanedEndLine" : 29
    }, {
      "file" : {
        "relativePath" : "src/StructuredLogViewer/Controls/TracingControl.xaml",
        "extension" : "xaml",
        "linesOfCode" : 54,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 46,
      "startLine" : 37,
      "endLine" : 52,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 46
    } ]
  }, {
    "blockSize" : 15,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/StructuredLogger/BinaryLogger/BuildEventArgsReader.cs",
        "extension" : "cs",
        "linesOfCode" : 1152,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 836,
      "startLine" : 650,
      "endLine" : 664,
      "cleanedStartLine" : 408,
      "cleanedEndLine" : 422
    }, {
      "file" : {
        "relativePath" : "src/StructuredLogger/BinaryLogger/BuildEventArgsReader.cs",
        "extension" : "cs",
        "linesOfCode" : 1152,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 836,
      "startLine" : 732,
      "endLine" : 746,
      "cleanedStartLine" : 473,
      "cleanedEndLine" : 487
    } ]
  }, {
    "blockSize" : 15,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/StructuredLogViewer.Avalonia/Controls/ImportLinkHighlighter.cs",
        "extension" : "cs",
        "linesOfCode" : 202,
        "components" : [ "primary::src" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 128,
      "startLine" : 86,
      "endLine" : 109,
      "cleanedStartLine" : 39,
      "cleanedEndLine" : 53
    }, {
      "file" : {
        "relativePath" : "src/StructuredLogViewer/Controls/ImportLinkHighlighter.cs",
        "extension" : "cs",
        "linesOfCode" : 180,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 109,
      "startLine" : 67,
      "endLine" : 90,
      "cleanedStartLine" : 29,
      "cleanedEndLine" : 43
    } ]
  }, {
    "blockSize" : 15,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/StructuredLogger/BinaryLogger/BuildEventArgsReader.cs",
        "extension" : "cs",
        "linesOfCode" : 1152,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 836,
      "startLine" : 627,
      "endLine" : 641,
      "cleanedStartLine" : 389,
      "cleanedEndLine" : 403
    }, {
      "file" : {
        "relativePath" : "src/StructuredLogger/BinaryLogger/BuildEventArgsReader.cs",
        "extension" : "cs",
        "linesOfCode" : 1152,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 836,
      "startLine" : 650,
      "endLine" : 664,
      "cleanedStartLine" : 408,
      "cleanedEndLine" : 422
    } ]
  }, {
    "blockSize" : 15,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/StructuredLogger/BinaryLogger/BuildEventArgsReader.cs",
        "extension" : "cs",
        "linesOfCode" : 1152,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 836,
      "startLine" : 627,
      "endLine" : 641,
      "cleanedStartLine" : 389,
      "cleanedEndLine" : 403
    }, {
      "file" : {
        "relativePath" : "src/StructuredLogger/BinaryLogger/BuildEventArgsReader.cs",
        "extension" : "cs",
        "linesOfCode" : 1152,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 836,
      "startLine" : 732,
      "endLine" : 746,
      "cleanedStartLine" : 473,
      "cleanedEndLine" : 487
    } ]
  }, {
    "blockSize" : 15,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/StructuredLogViewer.Avalonia/MainWindow.xaml.cs",
        "extension" : "cs",
        "linesOfCode" : 542,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 340,
      "startLine" : 343,
      "endLine" : 365,
      "cleanedStartLine" : 189,
      "cleanedEndLine" : 203
    }, {
      "file" : {
        "relativePath" : "src/StructuredLogViewer/MainWindow.xaml.cs",
        "extension" : "cs",
        "linesOfCode" : 664,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 396,
      "startLine" : 467,
      "endLine" : 489,
      "cleanedStartLine" : 238,
      "cleanedEndLine" : 252
    } ]
  }, {
    "blockSize" : 14,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/StructuredLogViewer.Avalonia/Controls/ImportLinkHighlighter.cs",
        "extension" : "cs",
        "linesOfCode" : 202,
        "components" : [ "primary::src" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 128,
      "startLine" : 228,
      "endLine" : 252,
      "cleanedStartLine" : 115,
      "cleanedEndLine" : 128
    }, {
      "file" : {
        "relativePath" : "src/StructuredLogViewer/Controls/ImportLinkHighlighter.cs",
        "extension" : "cs",
        "linesOfCode" : 180,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 109,
      "startLine" : 196,
      "endLine" : 220,
      "cleanedStartLine" : 96,
      "cleanedEndLine" : 109
    } ]
  }, {
    "blockSize" : 14,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/StructuredLogViewer/Controls/TimelineControl.xaml.cs",
        "extension" : "cs",
        "linesOfCode" : 349,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 220,
      "startLine" : 156,
      "endLine" : 175,
      "cleanedStartLine" : 76,
      "cleanedEndLine" : 89
    }, {
      "file" : {
        "relativePath" : "src/StructuredLogViewer/Controls/TracingControl.xaml.cs",
        "extension" : "cs",
        "linesOfCode" : 1006,
        "components" : [ "primary::src" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 656,
      "startLine" : 808,
      "endLine" : 827,
      "cleanedStartLine" : 423,
      "cleanedEndLine" : 436
    } ]
  }, {
    "blockSize" : 14,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/StructuredLogger/BinaryLogger/Utilities.cs",
        "extension" : "cs",
        "linesOfCode" : 288,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 366,
      "endLine" : 391,
      "cleanedStartLine" : 150,
      "cleanedEndLine" : 163
    }, {
      "file" : {
        "relativePath" : "src/StructuredLogger/Serialization/Serialization.cs",
        "extension" : "cs",
        "linesOfCode" : 240,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 128,
      "startLine" : 213,
      "endLine" : 238,
      "cleanedStartLine" : 99,
      "cleanedEndLine" : 112
    } ]
  }, {
    "blockSize" : 14,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/StructuredLogViewer.Avalonia/MainWindow.xaml.cs",
        "extension" : "cs",
        "linesOfCode" : 542,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 340,
      "startLine" : 280,
      "endLine" : 303,
      "cleanedStartLine" : 154,
      "cleanedEndLine" : 167
    }, {
      "file" : {
        "relativePath" : "src/StructuredLogViewer/MainWindow.xaml.cs",
        "extension" : "cs",
        "linesOfCode" : 664,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 396,
      "startLine" : 369,
      "endLine" : 392,
      "cleanedStartLine" : 182,
      "cleanedEndLine" : 195
    } ]
  }, {
    "blockSize" : 13,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/StructuredLogViewer/Controls/TimelineControl.xaml.cs",
        "extension" : "cs",
        "linesOfCode" : 349,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 220,
      "startLine" : 27,
      "endLine" : 51,
      "cleanedStartLine" : 11,
      "cleanedEndLine" : 23
    }, {
      "file" : {
        "relativePath" : "src/StructuredLogViewer/Controls/TracingControl.xaml.cs",
        "extension" : "cs",
        "linesOfCode" : 1006,
        "components" : [ "primary::src" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 656,
      "startLine" : 238,
      "endLine" : 262,
      "cleanedStartLine" : 122,
      "cleanedEndLine" : 134
    } ]
  }, {
    "blockSize" : 13,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/StructuredLogViewer.Avalonia/MainWindow.xaml.cs",
        "extension" : "cs",
        "linesOfCode" : 542,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 340,
      "startLine" : 367,
      "endLine" : 381,
      "cleanedStartLine" : 205,
      "cleanedEndLine" : 217
    }, {
      "file" : {
        "relativePath" : "src/StructuredLogViewer/MainWindow.xaml.cs",
        "extension" : "cs",
        "linesOfCode" : 664,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 396,
      "startLine" : 490,
      "endLine" : 504,
      "cleanedStartLine" : 253,
      "cleanedEndLine" : 265
    } ]
  }, {
    "blockSize" : 12,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/StructuredLogger/Serialization/Binary/BuildLogWriter.cs",
        "extension" : "cs",
        "linesOfCode" : 176,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 112,
      "startLine" : 85,
      "endLine" : 107,
      "cleanedStartLine" : 45,
      "cleanedEndLine" : 56
    }, {
      "file" : {
        "relativePath" : "src/StructuredLogger/Serialization/XmlLogWriter.cs",
        "extension" : "cs",
        "linesOfCode" : 171,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 101,
      "startLine" : 109,
      "endLine" : 131,
      "cleanedStartLine" : 52,
      "cleanedEndLine" : 63
    } ]
  }, {
    "blockSize" : 12,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/StructuredLogViewer.Avalonia/MainWindow.xaml.cs",
        "extension" : "cs",
        "linesOfCode" : 542,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 340,
      "startLine" : 535,
      "endLine" : 562,
      "cleanedStartLine" : 299,
      "cleanedEndLine" : 310
    }, {
      "file" : {
        "relativePath" : "src/StructuredLogViewer/MainWindow.xaml.cs",
        "extension" : "cs",
        "linesOfCode" : 664,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 396,
      "startLine" : 698,
      "endLine" : 725,
      "cleanedStartLine" : 366,
      "cleanedEndLine" : 377
    } ]
  }, {
    "blockSize" : 12,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/StructuredLogViewer.Avalonia/Controls/BuildControl.xaml.cs",
        "extension" : "cs",
        "linesOfCode" : 874,
        "components" : [ "primary::src" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 592,
      "startLine" : 459,
      "endLine" : 478,
      "cleanedStartLine" : 292,
      "cleanedEndLine" : 303
    }, {
      "file" : {
        "relativePath" : "src/StructuredLogViewer/Controls/BuildControl.xaml.cs",
        "extension" : "cs",
        "linesOfCode" : 1721,
        "components" : [ "primary::src" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 1125,
      "startLine" : 791,
      "endLine" : 810,
      "cleanedStartLine" : 501,
      "cleanedEndLine" : 512
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/StructuredLogger/ObjectModel/TreeNode.cs",
        "extension" : "cs",
        "linesOfCode" : 522,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 261,
      "startLine" : 491,
      "endLine" : 510,
      "cleanedStartLine" : 207,
      "cleanedEndLine" : 217
    }, {
      "file" : {
        "relativePath" : "src/StructuredLogger/ObjectModel/TreeNode.cs",
        "extension" : "cs",
        "linesOfCode" : 522,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 261,
      "startLine" : 548,
      "endLine" : 567,
      "cleanedStartLine" : 232,
      "cleanedEndLine" : 242
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/StructuredLogViewer.Avalonia/Controls/BuildControl.xaml.cs",
        "extension" : "cs",
        "linesOfCode" : 874,
        "components" : [ "primary::src" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 592,
      "startLine" : 816,
      "endLine" : 832,
      "cleanedStartLine" : 476,
      "cleanedEndLine" : 486
    }, {
      "file" : {
        "relativePath" : "src/StructuredLogViewer/Controls/BuildControl.xaml.cs",
        "extension" : "cs",
        "linesOfCode" : 1721,
        "components" : [ "primary::src" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 1125,
      "startLine" : 1586,
      "endLine" : 1602,
      "cleanedStartLine" : 896,
      "cleanedEndLine" : 906
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/StructuredLogViewer.Avalonia/Controls/DocumentWell.xaml.cs",
        "extension" : "cs",
        "linesOfCode" : 103,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 62,
      "startLine" : 57,
      "endLine" : 67,
      "cleanedStartLine" : 23,
      "cleanedEndLine" : 32
    }, {
      "file" : {
        "relativePath" : "src/StructuredLogViewer/Controls/DocumentWell.xaml.cs",
        "extension" : "cs",
        "linesOfCode" : 108,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 66,
      "startLine" : 61,
      "endLine" : 71,
      "cleanedStartLine" : 25,
      "cleanedEndLine" : 34
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/StructuredLogViewer.Avalonia/Controls/BuildControl.xaml.cs",
        "extension" : "cs",
        "linesOfCode" : 874,
        "components" : [ "primary::src" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 592,
      "startLine" : 396,
      "endLine" : 415,
      "cleanedStartLine" : 261,
      "cleanedEndLine" : 270
    }, {
      "file" : {
        "relativePath" : "src/StructuredLogViewer/Controls/BuildControl.xaml.cs",
        "extension" : "cs",
        "linesOfCode" : 1721,
        "components" : [ "primary::src" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 1125,
      "startLine" : 720,
      "endLine" : 739,
      "cleanedStartLine" : 465,
      "cleanedEndLine" : 474
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/StructuredLogger/Analyzers/CppAnalyzer.cs",
        "extension" : "cs",
        "linesOfCode" : 338,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 226,
      "startLine" : 312,
      "endLine" : 324,
      "cleanedStartLine" : 189,
      "cleanedEndLine" : 198
    }, {
      "file" : {
        "relativePath" : "src/StructuredLogger/Analyzers/CppAnalyzer.cs",
        "extension" : "cs",
        "linesOfCode" : 338,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 226,
      "startLine" : 359,
      "endLine" : 371,
      "cleanedStartLine" : 215,
      "cleanedEndLine" : 224
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/StructuredLogViewer.Avalonia/Controls/NavigationHelper.cs",
        "extension" : "cs",
        "linesOfCode" : 20,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 10,
      "startLine" : 1,
      "endLine" : 21,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 10
    }, {
      "file" : {
        "relativePath" : "src/StructuredLogViewer/Controls/NavigationHelper.cs",
        "extension" : "cs",
        "linesOfCode" : 20,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 10,
      "startLine" : 1,
      "endLine" : 21,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 10
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/StructuredLogger/BinaryLogger/BuildEventArgsReader.cs",
        "extension" : "cs",
        "linesOfCode" : 1152,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 836,
      "startLine" : 627,
      "endLine" : 636,
      "cleanedStartLine" : 389,
      "cleanedEndLine" : 398
    }, {
      "file" : {
        "relativePath" : "src/StructuredLogger/BinaryLogger/BuildEventArgsReader.cs",
        "extension" : "cs",
        "linesOfCode" : 1152,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 836,
      "startLine" : 672,
      "endLine" : 681,
      "cleanedStartLine" : 426,
      "cleanedEndLine" : 435
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/StructuredLogViewer.Avalonia/Controls/SplitterPanel.cs",
        "extension" : "cs",
        "linesOfCode" : 205,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 122,
      "startLine" : 115,
      "endLine" : 126,
      "cleanedStartLine" : 59,
      "cleanedEndLine" : 68
    }, {
      "file" : {
        "relativePath" : "src/StructuredLogViewer/Controls/SplitterPanel.cs",
        "extension" : "cs",
        "linesOfCode" : 221,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 134,
      "startLine" : 132,
      "endLine" : 143,
      "cleanedStartLine" : 70,
      "cleanedEndLine" : 79
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/StructuredLogViewer.Avalonia/MainWindow.xaml.cs",
        "extension" : "cs",
        "linesOfCode" : 542,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 340,
      "startLine" : 167,
      "endLine" : 184,
      "cleanedStartLine" : 94,
      "cleanedEndLine" : 103
    }, {
      "file" : {
        "relativePath" : "src/StructuredLogViewer/MainWindow.xaml.cs",
        "extension" : "cs",
        "linesOfCode" : 664,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 396,
      "startLine" : 241,
      "endLine" : 258,
      "cleanedStartLine" : 117,
      "cleanedEndLine" : 126
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/StructuredLogViewer.Avalonia/Controls/ImportLinkHighlighter.cs",
        "extension" : "cs",
        "linesOfCode" : 202,
        "components" : [ "primary::src" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 128,
      "startLine" : 193,
      "endLine" : 210,
      "cleanedStartLine" : 95,
      "cleanedEndLine" : 104
    }, {
      "file" : {
        "relativePath" : "src/StructuredLogViewer/Controls/ImportLinkHighlighter.cs",
        "extension" : "cs",
        "linesOfCode" : 180,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 109,
      "startLine" : 164,
      "endLine" : 181,
      "cleanedStartLine" : 79,
      "cleanedEndLine" : 88
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/StructuredLogger/BinaryLogger/BuildEventArgsWriter.cs",
        "extension" : "cs",
        "linesOfCode" : 926,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 582,
      "startLine" : 394,
      "endLine" : 403,
      "cleanedStartLine" : 153,
      "cleanedEndLine" : 162
    }, {
      "file" : {
        "relativePath" : "src/StructuredLogger/BinaryLogger/BuildEventArgsWriter.cs",
        "extension" : "cs",
        "linesOfCode" : 926,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 582,
      "startLine" : 409,
      "endLine" : 418,
      "cleanedStartLine" : 165,
      "cleanedEndLine" : 174
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/StructuredLogger/BinaryLogger/BuildEventArgsReader.cs",
        "extension" : "cs",
        "linesOfCode" : 1152,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 836,
      "startLine" : 672,
      "endLine" : 681,
      "cleanedStartLine" : 426,
      "cleanedEndLine" : 435
    }, {
      "file" : {
        "relativePath" : "src/StructuredLogger/BinaryLogger/BuildEventArgsReader.cs",
        "extension" : "cs",
        "linesOfCode" : 1152,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 836,
      "startLine" : 732,
      "endLine" : 741,
      "cleanedStartLine" : 473,
      "cleanedEndLine" : 482
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/StructuredLogViewer.Avalonia/Controls/BuildControl.xaml.cs",
        "extension" : "cs",
        "linesOfCode" : 874,
        "components" : [ "primary::src" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 592,
      "startLine" : 611,
      "endLine" : 632,
      "cleanedStartLine" : 376,
      "cleanedEndLine" : 385
    }, {
      "file" : {
        "relativePath" : "src/StructuredLogViewer/Controls/BuildControl.xaml.cs",
        "extension" : "cs",
        "linesOfCode" : 1721,
        "components" : [ "primary::src" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 1125,
      "startLine" : 1094,
      "endLine" : 1115,
      "cleanedStartLine" : 663,
      "cleanedEndLine" : 672
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/StructuredLogger/BinaryLogger/BufferedReadStream.cs",
        "extension" : "cs",
        "linesOfCode" : 449,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 307,
      "startLine" : 377,
      "endLine" : 387,
      "cleanedStartLine" : 169,
      "cleanedEndLine" : 178
    }, {
      "file" : {
        "relativePath" : "src/StructuredLogger/BinaryLogger/BufferedReadStream.cs",
        "extension" : "cs",
        "linesOfCode" : 449,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 307,
      "startLine" : 498,
      "endLine" : 508,
      "cleanedStartLine" : 224,
      "cleanedEndLine" : 233
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/StructuredLogger/BinaryLogger/BuildEventArgsReader.cs",
        "extension" : "cs",
        "linesOfCode" : 1152,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 836,
      "startLine" : 650,
      "endLine" : 659,
      "cleanedStartLine" : 408,
      "cleanedEndLine" : 417
    }, {
      "file" : {
        "relativePath" : "src/StructuredLogger/BinaryLogger/BuildEventArgsReader.cs",
        "extension" : "cs",
        "linesOfCode" : 1152,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 836,
      "startLine" : 672,
      "endLine" : 681,
      "cleanedStartLine" : 426,
      "cleanedEndLine" : 435
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/StructuredLogViewer.Avalonia/App.xaml",
        "extension" : "xaml",
        "linesOfCode" : 662,
        "components" : [ "primary::src" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 564,
      "startLine" : 53,
      "endLine" : 62,
      "cleanedStartLine" : 37,
      "cleanedEndLine" : 46
    }, {
      "file" : {
        "relativePath" : "src/StructuredLogViewer.Avalonia/App.xaml",
        "extension" : "xaml",
        "linesOfCode" : 662,
        "components" : [ "primary::src" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 564,
      "startLine" : 333,
      "endLine" : 342,
      "cleanedStartLine" : 255,
      "cleanedEndLine" : 264
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/StructuredLogViewer.Avalonia/Controls/BuildControl.xaml.cs",
        "extension" : "cs",
        "linesOfCode" : 874,
        "components" : [ "primary::src" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 592,
      "startLine" : 437,
      "endLine" : 451,
      "cleanedStartLine" : 281,
      "cleanedEndLine" : 289
    }, {
      "file" : {
        "relativePath" : "src/StructuredLogViewer/Controls/BuildControl.xaml.cs",
        "extension" : "cs",
        "linesOfCode" : 1721,
        "components" : [ "primary::src" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 1125,
      "startLine" : 764,
      "endLine" : 778,
      "cleanedStartLine" : 487,
      "cleanedEndLine" : 495
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/StructuredLogViewer.Avalonia/Controls/ImportLinkHighlighter.cs",
        "extension" : "cs",
        "linesOfCode" : 202,
        "components" : [ "primary::src" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 128,
      "startLine" : 170,
      "endLine" : 188,
      "cleanedStartLine" : 83,
      "cleanedEndLine" : 91
    }, {
      "file" : {
        "relativePath" : "src/StructuredLogViewer/Controls/ImportLinkHighlighter.cs",
        "extension" : "cs",
        "linesOfCode" : 180,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 109,
      "startLine" : 143,
      "endLine" : 161,
      "cleanedStartLine" : 69,
      "cleanedEndLine" : 77
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/StructuredLogger/Construction/Construction.cs",
        "extension" : "cs",
        "linesOfCode" : 988,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 619,
      "startLine" : 745,
      "endLine" : 753,
      "cleanedStartLine" : 394,
      "cleanedEndLine" : 402
    }, {
      "file" : {
        "relativePath" : "src/StructuredLogger/Construction/Construction.cs",
        "extension" : "cs",
        "linesOfCode" : 988,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 619,
      "startLine" : 759,
      "endLine" : 767,
      "cleanedStartLine" : 405,
      "cleanedEndLine" : 413
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/StructuredLogViewer.Avalonia/MainWindow.xaml.cs",
        "extension" : "cs",
        "linesOfCode" : 542,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 340,
      "startLine" : 89,
      "endLine" : 106,
      "cleanedStartLine" : 54,
      "cleanedEndLine" : 62
    }, {
      "file" : {
        "relativePath" : "src/StructuredLogViewer/MainWindow.xaml.cs",
        "extension" : "cs",
        "linesOfCode" : 664,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 396,
      "startLine" : 99,
      "endLine" : 116,
      "cleanedStartLine" : 46,
      "cleanedEndLine" : 54
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/StructuredLogViewer.Avalonia/App.xaml",
        "extension" : "xaml",
        "linesOfCode" : 662,
        "components" : [ "primary::src" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 564,
      "startLine" : 77,
      "endLine" : 87,
      "cleanedStartLine" : 48,
      "cleanedEndLine" : 56
    }, {
      "file" : {
        "relativePath" : "src/StructuredLogViewer.Avalonia/App.xaml",
        "extension" : "xaml",
        "linesOfCode" : 662,
        "components" : [ "primary::src" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 564,
      "startLine" : 92,
      "endLine" : 102,
      "cleanedStartLine" : 58,
      "cleanedEndLine" : 66
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/StructuredLogViewer.Avalonia/Controls/TextViewerControl.xaml.cs",
        "extension" : "cs",
        "linesOfCode" : 187,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 115,
      "startLine" : 86,
      "endLine" : 95,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 51
    }, {
      "file" : {
        "relativePath" : "src/StructuredLogViewer/Controls/TextViewerControl.xaml.cs",
        "extension" : "cs",
        "linesOfCode" : 245,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 158,
      "startLine" : 95,
      "endLine" : 104,
      "cleanedStartLine" : 47,
      "cleanedEndLine" : 55
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/StructuredLogger/Analyzers/CppAnalyzer.cs",
        "extension" : "cs",
        "linesOfCode" : 338,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 226,
      "startLine" : 233,
      "endLine" : 242,
      "cleanedStartLine" : 144,
      "cleanedEndLine" : 151
    }, {
      "file" : {
        "relativePath" : "src/StructuredLogger/Analyzers/CppAnalyzer.cs",
        "extension" : "cs",
        "linesOfCode" : 338,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 226,
      "startLine" : 312,
      "endLine" : 321,
      "cleanedStartLine" : 189,
      "cleanedEndLine" : 196
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/StructuredLogViewer/Controls/TimelineControl.xaml",
        "extension" : "xaml",
        "linesOfCode" : 34,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 29,
      "startLine" : 2,
      "endLine" : 9,
      "cleanedStartLine" : 2,
      "cleanedEndLine" : 9
    }, {
      "file" : {
        "relativePath" : "src/StructuredLogViewer/Controls/TracingControl.xaml",
        "extension" : "xaml",
        "linesOfCode" : 54,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 46,
      "startLine" : 2,
      "endLine" : 9,
      "cleanedStartLine" : 2,
      "cleanedEndLine" : 9
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/StructuredLogViewer/Controls/DocumentWell.xaml",
        "extension" : "xaml",
        "linesOfCode" : 22,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 18,
      "startLine" : 2,
      "endLine" : 9,
      "cleanedStartLine" : 2,
      "cleanedEndLine" : 9
    }, {
      "file" : {
        "relativePath" : "src/StructuredLogViewer/Controls/TracingControl.xaml",
        "extension" : "xaml",
        "linesOfCode" : 54,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 46,
      "startLine" : 2,
      "endLine" : 9,
      "cleanedStartLine" : 2,
      "cleanedEndLine" : 9
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/StructuredLogger/Analyzers/CppAnalyzer.cs",
        "extension" : "cs",
        "linesOfCode" : 338,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 226,
      "startLine" : 233,
      "endLine" : 242,
      "cleanedStartLine" : 144,
      "cleanedEndLine" : 151
    }, {
      "file" : {
        "relativePath" : "src/StructuredLogger/Analyzers/CppAnalyzer.cs",
        "extension" : "cs",
        "linesOfCode" : 338,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 226,
      "startLine" : 359,
      "endLine" : 368,
      "cleanedStartLine" : 215,
      "cleanedEndLine" : 222
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/StructuredLogViewer.Avalonia/Controls/SearchAndResultsControl.xaml.cs",
        "extension" : "cs",
        "linesOfCode" : 99,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 100,
      "endLine" : 114,
      "cleanedStartLine" : 50,
      "cleanedEndLine" : 57
    }, {
      "file" : {
        "relativePath" : "src/StructuredLogViewer/Controls/SearchAndResultsControl.xaml.cs",
        "extension" : "cs",
        "linesOfCode" : 114,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 63,
      "startLine" : 126,
      "endLine" : 140,
      "cleanedStartLine" : 56,
      "cleanedEndLine" : 63
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/StructuredLogViewer.Avalonia/Controls/DocumentWell.xaml.cs",
        "extension" : "cs",
        "linesOfCode" : 103,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 62,
      "startLine" : 72,
      "endLine" : 88,
      "cleanedStartLine" : 36,
      "cleanedEndLine" : 43
    }, {
      "file" : {
        "relativePath" : "src/StructuredLogViewer/Controls/DocumentWell.xaml.cs",
        "extension" : "cs",
        "linesOfCode" : 108,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 66,
      "startLine" : 76,
      "endLine" : 92,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 45
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/StructuredLogViewer.Avalonia/App.xaml",
        "extension" : "xaml",
        "linesOfCode" : 662,
        "components" : [ "primary::src" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 564,
      "startLine" : 156,
      "endLine" : 163,
      "cleanedStartLine" : 108,
      "cleanedEndLine" : 115
    }, {
      "file" : {
        "relativePath" : "src/StructuredLogViewer.Avalonia/App.xaml",
        "extension" : "xaml",
        "linesOfCode" : 662,
        "components" : [ "primary::src" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 564,
      "startLine" : 172,
      "endLine" : 179,
      "cleanedStartLine" : 121,
      "cleanedEndLine" : 128
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/StructuredLogViewer/Controls/DocumentWell.xaml",
        "extension" : "xaml",
        "linesOfCode" : 22,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 18,
      "startLine" : 2,
      "endLine" : 9,
      "cleanedStartLine" : 2,
      "cleanedEndLine" : 9
    }, {
      "file" : {
        "relativePath" : "src/StructuredLogViewer/Controls/TimelineControl.xaml",
        "extension" : "xaml",
        "linesOfCode" : 34,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 29,
      "startLine" : 2,
      "endLine" : 9,
      "cleanedStartLine" : 2,
      "cleanedEndLine" : 9
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/StructuredLogViewer.Avalonia/MainWindow.xaml.cs",
        "extension" : "cs",
        "linesOfCode" : 542,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 340,
      "startLine" : 109,
      "endLine" : 118,
      "cleanedStartLine" : 63,
      "cleanedEndLine" : 70
    }, {
      "file" : {
        "relativePath" : "src/StructuredLogViewer/MainWindow.xaml.cs",
        "extension" : "cs",
        "linesOfCode" : 664,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 396,
      "startLine" : 133,
      "endLine" : 142,
      "cleanedStartLine" : 61,
      "cleanedEndLine" : 68
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/StructuredLogViewer.Avalonia/Controls/BuildControl.xaml.cs",
        "extension" : "cs",
        "linesOfCode" : 874,
        "components" : [ "primary::src" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 592,
      "startLine" : 75,
      "endLine" : 83,
      "cleanedStartLine" : 39,
      "cleanedEndLine" : 46
    }, {
      "file" : {
        "relativePath" : "src/StructuredLogViewer/Controls/BuildControl.xaml.cs",
        "extension" : "cs",
        "linesOfCode" : 1721,
        "components" : [ "primary::src" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 1125,
      "startLine" : 81,
      "endLine" : 89,
      "cleanedStartLine" : 45,
      "cleanedEndLine" : 52
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/StructuredLogViewer.Avalonia/Controls/BuildControl.xaml.cs",
        "extension" : "cs",
        "linesOfCode" : 874,
        "components" : [ "primary::src" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 592,
      "startLine" : 174,
      "endLine" : 182,
      "cleanedStartLine" : 113,
      "cleanedEndLine" : 120
    }, {
      "file" : {
        "relativePath" : "src/StructuredLogViewer/Controls/BuildControl.xaml.cs",
        "extension" : "cs",
        "linesOfCode" : 1721,
        "components" : [ "primary::src" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 1125,
      "startLine" : 274,
      "endLine" : 282,
      "cleanedStartLine" : 196,
      "cleanedEndLine" : 203
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/StructuredLogViewer.Avalonia/Controls/BuildControl.xaml.cs",
        "extension" : "cs",
        "linesOfCode" : 874,
        "components" : [ "primary::src" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 592,
      "startLine" : 849,
      "endLine" : 858,
      "cleanedStartLine" : 497,
      "cleanedEndLine" : 503
    }, {
      "file" : {
        "relativePath" : "src/StructuredLogViewer/Controls/BuildControl.xaml.cs",
        "extension" : "cs",
        "linesOfCode" : 1721,
        "components" : [ "primary::src" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 1125,
      "startLine" : 1618,
      "endLine" : 1627,
      "cleanedStartLine" : 918,
      "cleanedEndLine" : 924
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/StructuredLogViewer/Controls/ProjectGraphControl.xaml",
        "extension" : "xaml",
        "linesOfCode" : 11,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 9,
      "startLine" : 2,
      "endLine" : 8,
      "cleanedStartLine" : 2,
      "cleanedEndLine" : 8
    }, {
      "file" : {
        "relativePath" : "src/StructuredLogViewer/Controls/TracingControl.xaml",
        "extension" : "xaml",
        "linesOfCode" : 54,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 46,
      "startLine" : 2,
      "endLine" : 8,
      "cleanedStartLine" : 2,
      "cleanedEndLine" : 8
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/StructuredLogViewer.Avalonia/MainWindow.xaml.cs",
        "extension" : "cs",
        "linesOfCode" : 542,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 340,
      "startLine" : 387,
      "endLine" : 393,
      "cleanedStartLine" : 220,
      "cleanedEndLine" : 226
    }, {
      "file" : {
        "relativePath" : "src/StructuredLogViewer/MainWindow.xaml.cs",
        "extension" : "cs",
        "linesOfCode" : 664,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 396,
      "startLine" : 510,
      "endLine" : 516,
      "cleanedStartLine" : 268,
      "cleanedEndLine" : 274
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/StructuredLogViewer/Controls/ProjectGraphControl.xaml",
        "extension" : "xaml",
        "linesOfCode" : 11,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 9,
      "startLine" : 2,
      "endLine" : 8,
      "cleanedStartLine" : 2,
      "cleanedEndLine" : 8
    }, {
      "file" : {
        "relativePath" : "src/StructuredLogViewer/Controls/TimelineControl.xaml",
        "extension" : "xaml",
        "linesOfCode" : 34,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 29,
      "startLine" : 2,
      "endLine" : 8,
      "cleanedStartLine" : 2,
      "cleanedEndLine" : 8
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/StructuredLogViewer.Avalonia/Controls/BuildControl.xaml.cs",
        "extension" : "cs",
        "linesOfCode" : 874,
        "components" : [ "primary::src" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 592,
      "startLine" : 693,
      "endLine" : 704,
      "cleanedStartLine" : 414,
      "cleanedEndLine" : 420
    }, {
      "file" : {
        "relativePath" : "src/StructuredLogViewer/Controls/BuildControl.xaml.cs",
        "extension" : "cs",
        "linesOfCode" : 1721,
        "components" : [ "primary::src" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 1125,
      "startLine" : 1261,
      "endLine" : 1272,
      "cleanedStartLine" : 744,
      "cleanedEndLine" : 750
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/StructuredLogViewer.Avalonia/Controls/BuildControl.xaml.cs",
        "extension" : "cs",
        "linesOfCode" : 874,
        "components" : [ "primary::src" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 592,
      "startLine" : 492,
      "endLine" : 501,
      "cleanedStartLine" : 309,
      "cleanedEndLine" : 315
    }, {
      "file" : {
        "relativePath" : "src/StructuredLogViewer/Controls/BuildControl.xaml.cs",
        "extension" : "cs",
        "linesOfCode" : 1721,
        "components" : [ "primary::src" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 1125,
      "startLine" : 844,
      "endLine" : 853,
      "cleanedStartLine" : 527,
      "cleanedEndLine" : 533
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/StructuredLogViewer/Controls/DocumentWell.xaml",
        "extension" : "xaml",
        "linesOfCode" : 22,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 18,
      "startLine" : 2,
      "endLine" : 8,
      "cleanedStartLine" : 2,
      "cleanedEndLine" : 8
    }, {
      "file" : {
        "relativePath" : "src/StructuredLogViewer/Controls/ProjectGraphControl.xaml",
        "extension" : "xaml",
        "linesOfCode" : 11,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 9,
      "startLine" : 2,
      "endLine" : 8,
      "cleanedStartLine" : 2,
      "cleanedEndLine" : 8
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/StructuredLogger/Analyzers/CppAnalyzer.cs",
        "extension" : "cs",
        "linesOfCode" : 338,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 226,
      "startLine" : 194,
      "endLine" : 201,
      "cleanedStartLine" : 120,
      "cleanedEndLine" : 126
    }, {
      "file" : {
        "relativePath" : "src/StructuredLogger/Analyzers/CppAnalyzer.cs",
        "extension" : "cs",
        "linesOfCode" : 338,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 226,
      "startLine" : 314,
      "endLine" : 321,
      "cleanedStartLine" : 190,
      "cleanedEndLine" : 196
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/StructuredLogger/BinaryLogger/Utilities.cs",
        "extension" : "cs",
        "linesOfCode" : 288,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 316,
      "endLine" : 328,
      "cleanedStartLine" : 123,
      "cleanedEndLine" : 129
    }, {
      "file" : {
        "relativePath" : "src/StructuredLogger/Serialization/Serialization.cs",
        "extension" : "cs",
        "linesOfCode" : 240,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 128,
      "startLine" : 238,
      "endLine" : 250,
      "cleanedStartLine" : 112,
      "cleanedEndLine" : 118
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/StructuredLogViewer.Avalonia/Controls/TextViewerControl.xaml",
        "extension" : "xaml",
        "linesOfCode" : 66,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 60,
      "startLine" : 10,
      "endLine" : 16,
      "cleanedStartLine" : 10,
      "cleanedEndLine" : 16
    }, {
      "file" : {
        "relativePath" : "src/StructuredLogViewer/Controls/TextViewerControl.xaml",
        "extension" : "xaml",
        "linesOfCode" : 79,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 72,
      "startLine" : 19,
      "endLine" : 25,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 22
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/StructuredLogViewer.Avalonia/Controls/BuildControl.xaml.cs",
        "extension" : "cs",
        "linesOfCode" : 874,
        "components" : [ "primary::src" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 592,
      "startLine" : 29,
      "endLine" : 37,
      "cleanedStartLine" : 5,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "src/StructuredLogViewer/Controls/BuildControl.xaml.cs",
        "extension" : "cs",
        "linesOfCode" : 1721,
        "components" : [ "primary::src" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 1125,
      "startLine" : 32,
      "endLine" : 40,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/StructuredLogViewer.Avalonia/Controls/BuildControl.xaml.cs",
        "extension" : "cs",
        "linesOfCode" : 874,
        "components" : [ "primary::src" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 592,
      "startLine" : 597,
      "endLine" : 607,
      "cleanedStartLine" : 368,
      "cleanedEndLine" : 374
    }, {
      "file" : {
        "relativePath" : "src/StructuredLogViewer/Controls/BuildControl.xaml.cs",
        "extension" : "cs",
        "linesOfCode" : 1721,
        "components" : [ "primary::src" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 1125,
      "startLine" : 1080,
      "endLine" : 1090,
      "cleanedStartLine" : 655,
      "cleanedEndLine" : 661
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/StructuredLogger/Analyzers/CppAnalyzer.cs",
        "extension" : "cs",
        "linesOfCode" : 338,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 226,
      "startLine" : 194,
      "endLine" : 201,
      "cleanedStartLine" : 120,
      "cleanedEndLine" : 126
    }, {
      "file" : {
        "relativePath" : "src/StructuredLogger/Analyzers/CppAnalyzer.cs",
        "extension" : "cs",
        "linesOfCode" : 338,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 226,
      "startLine" : 361,
      "endLine" : 368,
      "cleanedStartLine" : 216,
      "cleanedEndLine" : 222
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/StructuredLogViewer.Avalonia/MainWindow.xaml.cs",
        "extension" : "cs",
        "linesOfCode" : 542,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 340,
      "startLine" : 398,
      "endLine" : 409,
      "cleanedStartLine" : 228,
      "cleanedEndLine" : 234
    }, {
      "file" : {
        "relativePath" : "src/StructuredLogViewer/MainWindow.xaml.cs",
        "extension" : "cs",
        "linesOfCode" : 664,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 396,
      "startLine" : 453,
      "endLine" : 464,
      "cleanedStartLine" : 231,
      "cleanedEndLine" : 237
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/StructuredLogger/Analyzers/CppAnalyzer.cs",
        "extension" : "cs",
        "linesOfCode" : 338,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 226,
      "startLine" : 194,
      "endLine" : 201,
      "cleanedStartLine" : 120,
      "cleanedEndLine" : 126
    }, {
      "file" : {
        "relativePath" : "src/StructuredLogger/Analyzers/CppAnalyzer.cs",
        "extension" : "cs",
        "linesOfCode" : 338,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 226,
      "startLine" : 235,
      "endLine" : 242,
      "cleanedStartLine" : 145,
      "cleanedEndLine" : 151
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/StructuredLogViewer.Avalonia/MainWindow.xaml.cs",
        "extension" : "cs",
        "linesOfCode" : 542,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 340,
      "startLine" : 325,
      "endLine" : 334,
      "cleanedStartLine" : 180,
      "cleanedEndLine" : 185
    }, {
      "file" : {
        "relativePath" : "src/StructuredLogViewer/MainWindow.xaml.cs",
        "extension" : "cs",
        "linesOfCode" : 664,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 396,
      "startLine" : 425,
      "endLine" : 434,
      "cleanedStartLine" : 216,
      "cleanedEndLine" : 221
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/StructuredLogViewer.Avalonia/App.xaml",
        "extension" : "xaml",
        "linesOfCode" : 662,
        "components" : [ "primary::src" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 564,
      "startLine" : 299,
      "endLine" : 304,
      "cleanedStartLine" : 227,
      "cleanedEndLine" : 232
    }, {
      "file" : {
        "relativePath" : "src/StructuredLogViewer.Avalonia/App.xaml",
        "extension" : "xaml",
        "linesOfCode" : 662,
        "components" : [ "primary::src" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 564,
      "startLine" : 320,
      "endLine" : 325,
      "cleanedStartLine" : 245,
      "cleanedEndLine" : 250
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/StructuredLogger/Analyzers/ImportTreeAnalyzer.cs",
        "extension" : "cs",
        "linesOfCode" : 158,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 108,
      "startLine" : 113,
      "endLine" : 119,
      "cleanedStartLine" : 74,
      "cleanedEndLine" : 79
    }, {
      "file" : {
        "relativePath" : "src/StructuredLogger/Analyzers/ImportTreeAnalyzer.cs",
        "extension" : "cs",
        "linesOfCode" : 158,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 108,
      "startLine" : 128,
      "endLine" : 134,
      "cleanedStartLine" : 84,
      "cleanedEndLine" : 89
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/StructuredLogViewer.Avalonia/Controls/TextViewerControl.xaml.cs",
        "extension" : "cs",
        "linesOfCode" : 187,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 115,
      "startLine" : 150,
      "endLine" : 161,
      "cleanedStartLine" : 78,
      "cleanedEndLine" : 83
    }, {
      "file" : {
        "relativePath" : "src/StructuredLogViewer/Controls/TextViewerControl.xaml.cs",
        "extension" : "cs",
        "linesOfCode" : 245,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 158,
      "startLine" : 204,
      "endLine" : 215,
      "cleanedStartLine" : 110,
      "cleanedEndLine" : 115
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/StructuredLogger/BinaryLogger/BuildEventArgsReader.cs",
        "extension" : "cs",
        "linesOfCode" : 1152,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 836,
      "startLine" : 757,
      "endLine" : 763,
      "cleanedStartLine" : 493,
      "cleanedEndLine" : 498
    }, {
      "file" : {
        "relativePath" : "src/StructuredLogger/BinaryLogger/BuildEventArgsReader.cs",
        "extension" : "cs",
        "linesOfCode" : 1152,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 836,
      "startLine" : 834,
      "endLine" : 840,
      "cleanedStartLine" : 547,
      "cleanedEndLine" : 552
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/StructuredLogger/BinaryLogger/BuildEventArgsReader.cs",
        "extension" : "cs",
        "linesOfCode" : 1152,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 836,
      "startLine" : 1108,
      "endLine" : 1120,
      "cleanedStartLine" : 687,
      "cleanedEndLine" : 692
    }, {
      "file" : {
        "relativePath" : "src/StructuredLogger/BinaryLogger/BuildEventArgsReader.cs",
        "extension" : "cs",
        "linesOfCode" : 1152,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 836,
      "startLine" : 1135,
      "endLine" : 1147,
      "cleanedStartLine" : 699,
      "cleanedEndLine" : 704
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/StructuredLogger/BinaryLogger/BuildEventArgsReader.cs",
        "extension" : "cs",
        "linesOfCode" : 1152,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 836,
      "startLine" : 757,
      "endLine" : 763,
      "cleanedStartLine" : 493,
      "cleanedEndLine" : 498
    }, {
      "file" : {
        "relativePath" : "src/StructuredLogger/BinaryLogger/BuildEventArgsReader.cs",
        "extension" : "cs",
        "linesOfCode" : 1152,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 836,
      "startLine" : 855,
      "endLine" : 861,
      "cleanedStartLine" : 562,
      "cleanedEndLine" : 567
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/StructuredLogViewer.Avalonia/Controls/BuildControl.xaml.cs",
        "extension" : "cs",
        "linesOfCode" : 874,
        "components" : [ "primary::src" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 592,
      "startLine" : 801,
      "endLine" : 810,
      "cleanedStartLine" : 467,
      "cleanedEndLine" : 472
    }, {
      "file" : {
        "relativePath" : "src/StructuredLogViewer/Controls/BuildControl.xaml.cs",
        "extension" : "cs",
        "linesOfCode" : 1721,
        "components" : [ "primary::src" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 1125,
      "startLine" : 1544,
      "endLine" : 1553,
      "cleanedStartLine" : 874,
      "cleanedEndLine" : 879
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/StructuredLogViewer.Avalonia/Controls/TextViewerControl.xaml.cs",
        "extension" : "cs",
        "linesOfCode" : 187,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 115,
      "startLine" : 193,
      "endLine" : 202,
      "cleanedStartLine" : 99,
      "cleanedEndLine" : 104
    }, {
      "file" : {
        "relativePath" : "src/StructuredLogViewer/Controls/TextViewerControl.xaml.cs",
        "extension" : "cs",
        "linesOfCode" : 245,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 158,
      "startLine" : 247,
      "endLine" : 256,
      "cleanedStartLine" : 134,
      "cleanedEndLine" : 139
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/StructuredLogViewer.Avalonia/App.xaml",
        "extension" : "xaml",
        "linesOfCode" : 662,
        "components" : [ "primary::src" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 564,
      "startLine" : 156,
      "endLine" : 161,
      "cleanedStartLine" : 108,
      "cleanedEndLine" : 113
    }, {
      "file" : {
        "relativePath" : "src/StructuredLogViewer.Avalonia/App.xaml",
        "extension" : "xaml",
        "linesOfCode" : 662,
        "components" : [ "primary::src" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 564,
      "startLine" : 188,
      "endLine" : 193,
      "cleanedStartLine" : 134,
      "cleanedEndLine" : 139
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/StructuredLogViewer/Controls/TimelineControl.xaml.cs",
        "extension" : "cs",
        "linesOfCode" : 349,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 220,
      "startLine" : 191,
      "endLine" : 200,
      "cleanedStartLine" : 97,
      "cleanedEndLine" : 102
    }, {
      "file" : {
        "relativePath" : "src/StructuredLogViewer/Controls/TracingControl.xaml.cs",
        "extension" : "cs",
        "linesOfCode" : 1006,
        "components" : [ "primary::src" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 656,
      "startLine" : 855,
      "endLine" : 864,
      "cleanedStartLine" : 450,
      "cleanedEndLine" : 455
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/StructuredLogViewer.Avalonia/App.xaml",
        "extension" : "xaml",
        "linesOfCode" : 662,
        "components" : [ "primary::src" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 564,
      "startLine" : 275,
      "endLine" : 280,
      "cleanedStartLine" : 206,
      "cleanedEndLine" : 211
    }, {
      "file" : {
        "relativePath" : "src/StructuredLogViewer.Avalonia/App.xaml",
        "extension" : "xaml",
        "linesOfCode" : 662,
        "components" : [ "primary::src" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 564,
      "startLine" : 396,
      "endLine" : 401,
      "cleanedStartLine" : 302,
      "cleanedEndLine" : 307
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/StructuredLogViewer.Avalonia/MainWindow.xaml.cs",
        "extension" : "cs",
        "linesOfCode" : 542,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 340,
      "startLine" : 260,
      "endLine" : 268,
      "cleanedStartLine" : 143,
      "cleanedEndLine" : 148
    }, {
      "file" : {
        "relativePath" : "src/StructuredLogViewer/MainWindow.xaml.cs",
        "extension" : "cs",
        "linesOfCode" : 664,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 396,
      "startLine" : 342,
      "endLine" : 351,
      "cleanedStartLine" : 169,
      "cleanedEndLine" : 174
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/StructuredLogViewer.Avalonia/MainWindow.xaml.cs",
        "extension" : "cs",
        "linesOfCode" : 542,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 340,
      "startLine" : 149,
      "endLine" : 157,
      "cleanedStartLine" : 86,
      "cleanedEndLine" : 91
    }, {
      "file" : {
        "relativePath" : "src/StructuredLogViewer/MainWindow.xaml.cs",
        "extension" : "cs",
        "linesOfCode" : 664,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 396,
      "startLine" : 171,
      "endLine" : 179,
      "cleanedStartLine" : 84,
      "cleanedEndLine" : 89
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/StructuredLogViewer.Avalonia/Controls/TextViewerControl.xaml.cs",
        "extension" : "cs",
        "linesOfCode" : 187,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 115,
      "startLine" : 36,
      "endLine" : 43,
      "cleanedStartLine" : 11,
      "cleanedEndLine" : 16
    }, {
      "file" : {
        "relativePath" : "src/StructuredLogViewer/Controls/TextViewerControl.xaml.cs",
        "extension" : "cs",
        "linesOfCode" : 245,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 158,
      "startLine" : 27,
      "endLine" : 34,
      "cleanedStartLine" : 5,
      "cleanedEndLine" : 10
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/StructuredLogViewer.Avalonia/App.xaml",
        "extension" : "xaml",
        "linesOfCode" : 662,
        "components" : [ "primary::src" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 564,
      "startLine" : 172,
      "endLine" : 177,
      "cleanedStartLine" : 121,
      "cleanedEndLine" : 126
    }, {
      "file" : {
        "relativePath" : "src/StructuredLogViewer.Avalonia/App.xaml",
        "extension" : "xaml",
        "linesOfCode" : 662,
        "components" : [ "primary::src" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 564,
      "startLine" : 188,
      "endLine" : 193,
      "cleanedStartLine" : 134,
      "cleanedEndLine" : 139
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/StructuredLogViewer.Avalonia/Controls/TextViewerControl.xaml",
        "extension" : "xaml",
        "linesOfCode" : 66,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 60,
      "startLine" : 55,
      "endLine" : 60,
      "cleanedStartLine" : 53,
      "cleanedEndLine" : 58
    }, {
      "file" : {
        "relativePath" : "src/StructuredLogViewer/Controls/TextViewerControl.xaml",
        "extension" : "xaml",
        "linesOfCode" : 79,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 72,
      "startLine" : 71,
      "endLine" : 76,
      "cleanedStartLine" : 66,
      "cleanedEndLine" : 71
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/StructuredLogViewer.Avalonia/Controls/BuildControl.xaml.cs",
        "extension" : "cs",
        "linesOfCode" : 874,
        "components" : [ "primary::src" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 592,
      "startLine" : 867,
      "endLine" : 872,
      "cleanedStartLine" : 509,
      "cleanedEndLine" : 514
    }, {
      "file" : {
        "relativePath" : "src/StructuredLogViewer/Controls/BuildControl.xaml.cs",
        "extension" : "cs",
        "linesOfCode" : 1721,
        "components" : [ "primary::src" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 1125,
      "startLine" : 1577,
      "endLine" : 1582,
      "cleanedStartLine" : 890,
      "cleanedEndLine" : 895
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/StructuredLogger/BinaryLogger/BuildEventArgsReader.cs",
        "extension" : "cs",
        "linesOfCode" : 1152,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 836,
      "startLine" : 834,
      "endLine" : 840,
      "cleanedStartLine" : 547,
      "cleanedEndLine" : 552
    }, {
      "file" : {
        "relativePath" : "src/StructuredLogger/BinaryLogger/BuildEventArgsReader.cs",
        "extension" : "cs",
        "linesOfCode" : 1152,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 836,
      "startLine" : 855,
      "endLine" : 861,
      "cleanedStartLine" : 562,
      "cleanedEndLine" : 567
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/StructuredLogViewer/Controls/TimelineControl.xaml.cs",
        "extension" : "cs",
        "linesOfCode" : 349,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 220,
      "startLine" : 129,
      "endLine" : 141,
      "cleanedStartLine" : 64,
      "cleanedEndLine" : 69
    }, {
      "file" : {
        "relativePath" : "src/StructuredLogViewer/Controls/TracingControl.xaml.cs",
        "extension" : "cs",
        "linesOfCode" : 1006,
        "components" : [ "primary::src" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 656,
      "startLine" : 741,
      "endLine" : 753,
      "cleanedStartLine" : 381,
      "cleanedEndLine" : 386
    } ]
  } ],
  "overallDuplication" : null
}