{
  "schemaVersion": 1,
  "generatedAtUtc": "2026-08-20T14:10:42.9983148+00:00",
  "product": "UtiliVera Scan",
  "version": "0.5.1",
  "frozenExecutable": {
    "fileName": "UtiliVeraScan.exe",
    "bytes": 347136,
    "sha256": "EA12A7B0D89091907255E3FFC36F2638066EC4BCA33FAC7508E8EA8DAB7B1011",
    "fileVersion": "0.5.1.0",
    "signatureStatus": "NotSigned"
  },
  "run": {
    "total": 51,
    "passed": 51,
    "failed": 0,
    "sourceManifest": [
      {
        "relativePath": "src\\AppSettings.cs",
        "bytes": 3638,
        "sha256": "832F03D51E748AA4DD6D7C65D60933A5E01150EF2FE7445D6BCD6A7F2D50EF19"
      },
      {
        "relativePath": "src\\AssemblyInfo.cs",
        "bytes": 446,
        "sha256": "4730C5CA22FF0EA74F809B84C4ED5E7496B3FD1F758599F26510B6355868FC97"
      },
      {
        "relativePath": "src\\AtomicFile.cs",
        "bytes": 12328,
        "sha256": "3B3EA4DC8609B4D8DA88C1BB2BA00B5EA8911E88889D6DDE42BEE17A2026B261"
      },
      {
        "relativePath": "src\\CommandLine.cs",
        "bytes": 21022,
        "sha256": "3CE8C335C5E4D0B1E10FDB33868C3230A0383E4105A7FC69AC057C59B9C2F1F4"
      },
      {
        "relativePath": "src\\EnhancementPreviewDialog.cs",
        "bytes": 4893,
        "sha256": "DD2361A7E1872A46B7FEEB7B162FE6EE411FD3E13EDC44471B146AA244C1DE12"
      },
      {
        "relativePath": "src\\ImageProcessor.cs",
        "bytes": 20035,
        "sha256": "CFDE682E5D779E4E52166041F954B4A86456E7D3C46681F96603C486E85CACAB"
      },
      {
        "relativePath": "src\\ManualCropDialog.cs",
        "bytes": 7214,
        "sha256": "D7D579F8A9514D3B099654182673A6B87352B533637B15ADDAB02931CEA98EFD"
      },
      {
        "relativePath": "src\\OcrBridge.cs",
        "bytes": 1810,
        "sha256": "44624912895AE4C9A2BC2F0C7C234AA1F1DBC0C716284705EBC01471F3062846"
      },
      {
        "relativePath": "src\\OcrTextCorrector.cs",
        "bytes": 11564,
        "sha256": "F95C800EB7B08A1E3C3A1F7120BBCF6F2D9758844F146B18B966F85626F924A5"
      },
      {
        "relativePath": "src\\PageDocument.cs",
        "bytes": 5063,
        "sha256": "311DDF23B381A669FBD91B4B621FFB66BC83B2AF114E47DC35446FF345003FDB"
      },
      {
        "relativePath": "src\\PageOrder.cs",
        "bytes": 1940,
        "sha256": "39DAF945591626A8992F5DC914CE37E65696880F61213AE3443ED0EF827B0DF4"
      },
      {
        "relativePath": "src\\PdfArchiveDecorator.cs",
        "bytes": 13557,
        "sha256": "A84998D643F34D611B6F2FED81EE93C9DBA2DBF8689AA94580DC90B9A661DA1F"
      },
      {
        "relativePath": "src\\PdfImportBroker.cs",
        "bytes": 2523,
        "sha256": "BA22B8FCF66960FE8FB89B6F09C9032D35DC83C86B035AC017C593EE48336504"
      },
      {
        "relativePath": "src\\PdfWriter.cs",
        "bytes": 15321,
        "sha256": "92C88BF02F58240FF30EF6F63E85D3665779F6B17234BB795FF38209F3A474B7"
      },
      {
        "relativePath": "src\\ProfileEditorDialog.cs",
        "bytes": 12059,
        "sha256": "AD0FAA4901901141EAF5B4349B43CFB149E7E0E2C34FA7A348B87ECF5B458359"
      },
      {
        "relativePath": "src\\Program.cs",
        "bytes": 947,
        "sha256": "BBA5E442BFF9AB6B8BC2AECE7903E959191B83A96481D3097D8ACF801FCD4235"
      },
      {
        "relativePath": "src\\QpdfSecurity.cs",
        "bytes": 4460,
        "sha256": "3342E2251A50221A5163F05FDB5A3DC18EC4AD3F3455671E72C107EA8B082DFE"
      },
      {
        "relativePath": "src\\ScanProfile.cs",
        "bytes": 7607,
        "sha256": "DD5BEB4F3895837954CFC68CC22080C10F921BF721AA5F98CC646EDE0BD87857"
      },
      {
        "relativePath": "src\\ScanProject.cs",
        "bytes": 9782,
        "sha256": "20F4E9B6F8E2C23DFA831A9BF5B4D42B9514CA9E20611BC5D761A53A6D8F0ACC"
      },
      {
        "relativePath": "src\\ScanSetupDialog.cs",
        "bytes": 6207,
        "sha256": "8B07B5439AA01060E5016D3DA048CAAAB2B6DEC65E8FCEB0957E17D68300BD93"
      },
      {
        "relativePath": "src\\ScanWindow.cs",
        "bytes": 64672,
        "sha256": "F718AA012D8483508475EC2706957A5A86F555A4FA549C8257B33A38BCDC8D39"
      },
      {
        "relativePath": "src\\Strings.cs",
        "bytes": 39305,
        "sha256": "D841F17A3627702C7FF50CD6E24D42D94C05549A0EF171AF5E99080B2509374A"
      },
      {
        "relativePath": "src\\TesseractBridge.cs",
        "bytes": 7464,
        "sha256": "8B36E0A5BCB6DB8EF8B67F9B93706FA196E09309A4C19BAA104718DB92163715"
      },
      {
        "relativePath": "src\\WiaScanner.cs",
        "bytes": 5891,
        "sha256": "0DCA06080BA07C6BE17FFF656614F71DB3AE9BCA1E23D723F52635DDCDA9DAB2"
      },
      {
        "relativePath": "src\\WorkspaceHistory.cs",
        "bytes": 2670,
        "sha256": "BAE569F41A84A3F823FA0D884F8A1C70A2D3F468127C18B3A30220E031940BA9"
      },
      {
        "relativePath": "tests\\ScanTests.cs",
        "bytes": 37370,
        "sha256": "DCAD41EA52E16E8CE9EE3CDE2C800029A45A46D59FEF0A2CE9E118B9BFC7D156"
      }
    ],
    "results": [
      {
        "name": "page document preserves original pixels",
        "status": "PASS"
      },
      {
        "name": "page edits are undoable",
        "status": "PASS"
      },
      {
        "name": "page supports 30-step undo and redo",
        "status": "PASS"
      },
      {
        "name": "page reset returns to immutable original",
        "status": "PASS"
      },
      {
        "name": "page clone is independent",
        "status": "PASS"
      },
      {
        "name": "rotate clockwise swaps dimensions",
        "status": "PASS"
      },
      {
        "name": "crop trims white margins with padding",
        "status": "PASS"
      },
      {
        "name": "crop leaves blank page valid",
        "status": "PASS"
      },
      {
        "name": "manual crop honors bounded pixel region",
        "status": "PASS"
      },
      {
        "name": "blank detector accepts clean white page",
        "status": "PASS"
      },
      {
        "name": "blank detector rejects text page",
        "status": "PASS"
      },
      {
        "name": "grayscale emits equal color channels",
        "status": "PASS"
      },
      {
        "name": "black and white emits two tones",
        "status": "PASS"
      },
      {
        "name": "brightness changes luminance",
        "status": "PASS"
      },
      {
        "name": "contrast keeps channel values bounded",
        "status": "PASS"
      },
      {
        "name": "background cleanup preserves dark text",
        "status": "PASS"
      },
      {
        "name": "punch holes, borders, and halftone cleanup are effective",
        "status": "PASS"
      },
      {
        "name": "deskew estimator detects rotated lines",
        "status": "PASS"
      },
      {
        "name": "image processor honors cancellation",
        "status": "PASS"
      },
      {
        "name": "PDF starts with valid signature",
        "status": "PASS"
      },
      {
        "name": "PDF includes one page per input",
        "status": "PASS"
      },
      {
        "name": "PDF embeds title and author",
        "status": "PASS"
      },
      {
        "name": "PDF preserves Unicode metadata",
        "status": "PASS"
      },
      {
        "name": "PDF supports encryption and annotations",
        "status": "PASS"
      },
      {
        "name": "searchable PDF decoration preserves Unicode archive options",
        "status": "PASS"
      },
      {
        "name": "PDF supports A4 and Letter pages",
        "status": "PASS"
      },
      {
        "name": "PDF estimate responds to quality",
        "status": "PASS"
      },
      {
        "name": "atomic output replaces existing file",
        "status": "PASS"
      },
      {
        "name": "atomic failure preserves previous file",
        "status": "PASS"
      },
      {
        "name": "batch export failure rolls back every destination",
        "status": "PASS"
      },
      {
        "name": "batch rollback waits for a locked recovery backup",
        "status": "PASS"
      },
      {
        "name": "500-file batch fault restores every original",
        "status": "PASS"
      },
      {
        "name": "50 concurrent batch rounds never expose a mixed generation",
        "status": "PASS"
      },
      {
        "name": "100-page PDF stress corpus completes",
        "status": "PASS"
      },
      {
        "name": "PNG file loader keeps source unchanged",
        "status": "PASS"
      },
      {
        "name": "scan project roundtrip preserves page order and pixels",
        "status": "PASS"
      },
      {
        "name": "workspace structural undo redo is transactional",
        "status": "PASS"
      },
      {
        "name": "continuous page selection moves as one stable group",
        "status": "PASS"
      },
      {
        "name": "discontinuous page selection moves and drags as one stable group",
        "status": "PASS"
      },
      {
        "name": "cancel rollback discards redo pollution",
        "status": "PASS"
      },
      {
        "name": "project roundtrip preserves bidirectional history",
        "status": "PASS"
      },
      {
        "name": "named scan profile preserves device, OCR, archive and security options",
        "status": "PASS"
      },
      {
        "name": "profile rejects PDF/A and encryption conflict before writing",
        "status": "PASS"
      },
      {
        "name": "profile rename commits new content and removes old path",
        "status": "PASS"
      },
      {
        "name": "locked profile rename leaves source and destination unchanged",
        "status": "PASS"
      },
      {
        "name": "all ten interface languages have complete nonempty dictionaries",
        "status": "PASS"
      },
      {
        "name": "corrupt scan project is rejected",
        "status": "PASS"
      },
      {
        "name": "failed scan project save preserves previous project",
        "status": "PASS"
      },
      {
        "name": "bundled OCR executes all ten language models",
        "status": "PASS"
      },
      {
        "name": "300-DPI A4 combined filters complete within target",
        "status": "PASS"
      },
      {
        "name": "600-DPI A4 combined filters complete within target",
        "status": "PASS"
      }
    ]
  }
}
