{
  "title" : "Duplication",
  "timestamp" : "2026-01-18 17:25:30",
  "duplicates" : [ {
    "blockSize" : 19,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/main/kotlin/com/jetbrains/notary/models/SubmissionListResponse.kt",
        "extension" : "kt",
        "linesOfCode" : 35,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 30,
      "startLine" : 36,
      "endLine" : 75,
      "cleanedStartLine" : 12,
      "cleanedEndLine" : 30
    }, {
      "file" : {
        "relativePath" : "src/main/kotlin/com/jetbrains/notary/models/SubmissionResponse.kt",
        "extension" : "kt",
        "linesOfCode" : 35,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 30,
      "startLine" : 41,
      "endLine" : 85,
      "cleanedStartLine" : 12,
      "cleanedEndLine" : 30
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/main/kotlin/com/jetbrains/notary/models/SubmissionLogURLResponse.kt",
        "extension" : "kt",
        "linesOfCode" : 59,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 18,
      "endLine" : 45,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 14
    }, {
      "file" : {
        "relativePath" : "src/main/kotlin/com/jetbrains/notary/models/SubmissionResponse.kt",
        "extension" : "kt",
        "linesOfCode" : 35,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 30,
      "startLine" : 16,
      "endLine" : 48,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 14
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/main/kotlin/com/jetbrains/notary/models/NewSubmissionResponse.kt",
        "extension" : "kt",
        "linesOfCode" : 25,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 22,
      "startLine" : 15,
      "endLine" : 33,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 10
    }, {
      "file" : {
        "relativePath" : "src/main/kotlin/com/jetbrains/notary/models/SubmissionLogURLResponse.kt",
        "extension" : "kt",
        "linesOfCode" : 59,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 18,
      "endLine" : 33,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 10
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/main/kotlin/com/jetbrains/notary/models/NewSubmissionResponse.kt",
        "extension" : "kt",
        "linesOfCode" : 25,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 22,
      "startLine" : 15,
      "endLine" : 33,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 10
    }, {
      "file" : {
        "relativePath" : "src/main/kotlin/com/jetbrains/notary/models/SubmissionResponse.kt",
        "extension" : "kt",
        "linesOfCode" : 35,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 30,
      "startLine" : 16,
      "endLine" : 36,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 10
    } ]
  } ],
  "overallDuplication" : null
}