[{"data":1,"prerenderedAt":760},["ShallowReactive",2],{"navigation_docs":3,"trending-repo-JiaFeiMiao-K-Cat\u002FDiscImageStudio":249,"page-views-\u002Ftrending\u002FJiaFeiMiao-K-Cat\u002FDiscImageStudio":758},[4,29,104,124,194],{"title":5,"icon":6,"path":7,"stem":8,"children":9},"Start",false,"\u002Fstart","1.start",[10,14,19,24],{"title":11,"path":7,"stem":12,"icon":13},"What jscpd finds","1.start\u002Findex","i-lucide-house",{"title":15,"path":16,"stem":17,"icon":18},"Installation","\u002Fstart\u002Finstallation","1.start\u002F2.installation","i-lucide-download",{"title":20,"path":21,"stem":22,"icon":23},"Quickstart","\u002Fstart\u002Fquickstart","1.start\u002F3.quickstart","i-lucide-rocket",{"title":25,"path":26,"stem":27,"icon":28},"Configuration basics","\u002Fstart\u002Fconfiguration","1.start\u002F4.configuration","i-lucide-settings-2",{"title":30,"icon":6,"path":31,"stem":32,"children":33,"page":6},"Guides","\u002Fguides","2.guides",[34,39,44,49,54,59,64,69,74,79,84,89,94,99],{"title":35,"path":36,"stem":37,"icon":38},"Use jscpd in CI","\u002Fguides\u002Fci","2.guides\u002F01.ci","i-lucide-github",{"title":40,"path":41,"stem":42,"icon":43},"Pre-commit hooks","\u002Fguides\u002Fpre-commit","2.guides\u002F02.pre-commit","i-lucide-git-commit",{"title":45,"path":46,"stem":47,"icon":48},"Fail only on new duplication","\u002Fguides\u002Fbaseline","2.guides\u002F03.baseline","i-lucide-git-compare",{"title":50,"path":51,"stem":52,"icon":53},"Monorepos","\u002Fguides\u002Fmonorepos","2.guides\u002F04.monorepos","i-lucide-folder-tree",{"title":55,"path":56,"stem":57,"icon":58},"Cross-format detection","\u002Fguides\u002Fcross-format","2.guides\u002F05.cross-format","i-lucide-layers",{"title":60,"path":61,"stem":62,"icon":63},"Agents","\u002Fguides\u002Fagents","2.guides\u002F06.agents","i-lucide-cpu",{"title":65,"path":66,"stem":67,"icon":68},"Editors","\u002Fguides\u002Feditors","2.guides\u002F07.editors","i-lucide-code",{"title":70,"path":71,"stem":72,"icon":73},"Duplication over git history","\u002Fguides\u002Fhistory","2.guides\u002F08.history","i-lucide-chart-no-axes-combined",{"title":75,"path":76,"stem":77,"icon":78},"Dashboard and health score","\u002Fguides\u002Fdashboard","2.guides\u002F09.dashboard","i-lucide-layout-dashboard",{"title":80,"path":81,"stem":82,"icon":83},"Dead code","\u002Fguides\u002Fdead-code","2.guides\u002F10.dead-code","i-lucide-ghost",{"title":85,"path":86,"stem":87,"icon":88},"Comparing two codebases","\u002Fguides\u002Fcompare","2.guides\u002F11.compare","i-lucide-git-compare-arrows",{"title":90,"path":91,"stem":92,"icon":93},"Semantic clones","\u002Fguides\u002Fsemantic-clones","2.guides\u002F12.semantic-clones","i-lucide-brain-circuit",{"title":95,"path":96,"stem":97,"icon":98},"Similar functions","\u002Fguides\u002Fsimilarity","2.guides\u002F13.similarity","i-lucide-list-tree",{"title":100,"path":101,"stem":102,"icon":103},"Boundaries","\u002Fguides\u002Fboundaries","2.guides\u002F14.boundaries","i-lucide-fence",{"title":105,"icon":6,"path":106,"stem":107,"children":108,"page":6},"Concepts","\u002Fconcepts","3.concepts",[109,114,119],{"title":110,"path":111,"stem":112,"icon":113},"Types of code clones","\u002Fconcepts\u002Fclone-types","3.concepts\u002F1.clone-types","i-lucide-copy",{"title":115,"path":116,"stem":117,"icon":118},"How detection works","\u002Fconcepts\u002Fhow-detection-works","3.concepts\u002F2.how-detection-works","i-lucide-scan-search",{"title":120,"path":121,"stem":122,"icon":123},"The health score","\u002Fconcepts\u002Fhealth-score","3.concepts\u002F3.health-score","i-lucide-heart-pulse",{"title":125,"icon":6,"path":126,"stem":127,"children":128,"page":6},"Reference","\u002Freference","4.reference",[129,134,139,144,181,186,190],{"title":130,"path":131,"stem":132,"icon":133},"CLI options","\u002Freference\u002Fcli","4.reference\u002F1.cli","i-lucide-terminal",{"title":135,"path":136,"stem":137,"icon":138},"The config file","\u002Freference\u002Fconfig-file","4.reference\u002F2.config-file","i-lucide-settings",{"title":140,"path":141,"stem":142,"icon":143},"Exit codes","\u002Freference\u002Fexit-codes","4.reference\u002F3.exit-codes","i-lucide-log-out",{"title":145,"icon":6,"path":146,"stem":147,"children":148},"Reporters","\u002Freference\u002Freporters","4.reference\u002F4.reporters\u002Findex",[149,151,156,161,166,171,176],{"title":145,"path":146,"stem":147,"icon":150},"i-lucide-file-chart-column",{"title":152,"path":153,"stem":154,"icon":155},"HTML reporter","\u002Freference\u002Freporters\u002Fhtml","4.reference\u002F4.reporters\u002F2.html","i-lucide-file-code",{"title":157,"path":158,"stem":159,"icon":160},"JSON reporter","\u002Freference\u002Freporters\u002Fjson","4.reference\u002F4.reporters\u002F3.json","i-lucide-braces",{"title":162,"path":163,"stem":164,"icon":165},"Badge reporter","\u002Freference\u002Freporters\u002Fbadge","4.reference\u002F4.reporters\u002F4.badge","i-lucide-award",{"title":167,"path":168,"stem":169,"icon":170},"SARIF reporter","\u002Freference\u002Freporters\u002Fsarif","4.reference\u002F4.reporters\u002F5.sarif","i-lucide-shield-check",{"title":172,"path":173,"stem":174,"icon":175},"CodeClimate reporter","\u002Freference\u002Freporters\u002Fcodeclimate","4.reference\u002F4.reporters\u002F6.codeclimate","i-lucide-flag-triangle-right",{"title":177,"path":178,"stem":179,"icon":180},"OpenMetrics reporter","\u002Freference\u002Freporters\u002Fopenmetrics","4.reference\u002F4.reporters\u002F7.openmetrics","i-lucide-activity",{"title":182,"path":183,"stem":184,"icon":185},"Supported formats","\u002Freference\u002Fsupported-formats","4.reference\u002F5.supported-formats","i-lucide-languages",{"title":187,"path":188,"stem":189,"icon":38},"GitHub Action","\u002Freference\u002Fgithub-action","4.reference\u002F6.github-action",{"title":191,"path":192,"stem":193,"icon":68},"Rust crates","\u002Freference\u002Frust-crates","4.reference\u002F7.rust-crates",{"title":195,"icon":6,"path":196,"stem":197,"children":198,"page":6},"Project","\u002Fproject","5.project",[199,204,209,214,239,244],{"title":200,"path":201,"stem":202,"icon":203},"Changelog","\u002Fproject\u002Fchangelog","5.project\u002F1.changelog","i-lucide-scroll-text",{"title":205,"path":206,"stem":207,"icon":208},"Migrating from v4 to v5","\u002Fproject\u002Fmigration","5.project\u002F2.migration","i-lucide-arrow-right-left",{"title":210,"path":211,"stem":212,"icon":213},"jscpd v4 (TypeScript)","\u002Fproject\u002Fv4","5.project\u002F3.v4","i-simple-icons-typescript",{"title":215,"icon":6,"path":216,"stem":217,"children":218},"Benchmarks","\u002Fproject\u002Fbenchmarks","5.project\u002F4.benchmarks\u002Findex",[219,221,226,230,235],{"title":215,"path":216,"stem":217,"icon":220},"i-lucide-gauge",{"title":222,"path":223,"stem":224,"icon":225},"Detection Speed","\u002Fproject\u002Fbenchmarks\u002Fdetection-speed","5.project\u002F4.benchmarks\u002F2.detection-speed","i-lucide-zap",{"title":227,"path":228,"stem":229,"icon":58},"Multi-Format Detection","\u002Fproject\u002Fbenchmarks\u002Fcross-format","5.project\u002F4.benchmarks\u002F3.cross-format",{"title":231,"path":232,"stem":233,"icon":234},"AI Token Efficiency","\u002Fproject\u002Fbenchmarks\u002Fai-token-efficiency","5.project\u002F4.benchmarks\u002F4.ai-token-efficiency","i-lucide-sparkles",{"title":236,"path":237,"stem":238,"icon":93},"Embedding Models","\u002Fproject\u002Fbenchmarks\u002Fembedding-models","5.project\u002F4.benchmarks\u002F5.embedding-models",{"title":240,"path":241,"stem":242,"icon":243},"Research","\u002Fproject\u002Fresearch","5.project\u002F5.research","i-lucide-graduation-cap",{"title":245,"path":246,"stem":247,"icon":248},"Articles","\u002Fproject\u002Farticles","5.project\u002F6.articles","i-lucide-newspaper",{"name":250,"url":251,"appearances":252,"latest":268},"JiaFeiMiao-K-Cat\u002FDiscImageStudio","https:\u002F\u002Fgithub.com\u002FJiaFeiMiao-K-Cat\u002FDiscImageStudio",[253],{"date":254,"rank":255,"stars":256,"starsToday":257,"headSha":258,"sources":259,"lines":260,"clones":261,"duplicatedLines":262,"percentage":263,"codePercentage":264,"codeSources":265,"healthScore":266,"healthGrade":267},"2026-11-05",8,6771,1778,"3a5cde635c182d6a7e01ff99c2cc1be2ac3ab668",440,95076,272,4245,4.46,1.73,246,63.5,"C",{"date":254,"generatedAt":269,"name":250,"url":251,"description":270,"language":271,"stars":256,"starsToday":257,"defaultBranch":272,"headSha":258,"durationMs":273,"total":274,"formats":278,"topClones":331,"code":520,"health":681,"complexity":708,"deadCode":755},"2026-11-05T05:21:19.579Z","","C#","main",1479,{"sources":259,"lines":260,"tokens":275,"clones":261,"duplicatedLines":262,"duplicatedTokens":276,"percentage":263,"percentageTokens":277},732958,39434,5.38,[279,286,293,299,305,312,318,323,328],{"format":280,"sources":281,"lines":282,"clones":283,"duplicatedLines":284,"percentage":285},"csharp",342,75924,160,1663,2.19,{"format":287,"sources":288,"lines":289,"clones":290,"duplicatedLines":291,"percentage":292},"txt",2,3267,93,2427,74.29,{"format":294,"sources":295,"lines":296,"clones":255,"duplicatedLines":297,"percentage":298},"markdown",28,4121,85,2.06,{"format":300,"sources":301,"lines":302,"clones":255,"duplicatedLines":303,"percentage":304},"powershell",24,1113,42,3.77,{"format":306,"sources":307,"lines":308,"clones":309,"duplicatedLines":310,"percentage":311},"json",23,9288,1,11,0.12,{"format":313,"sources":314,"lines":315,"clones":309,"duplicatedLines":316,"percentage":317},"python",7,755,6,0.79,{"format":319,"sources":320,"lines":321,"clones":309,"duplicatedLines":310,"percentage":322},"yaml",3,466,2.36,{"format":324,"sources":325,"lines":326,"clones":327,"duplicatedLines":327,"percentage":327},"text",10,128,0,{"format":329,"sources":309,"lines":330,"clones":327,"duplicatedLines":327,"percentage":327},"mermaid",14,[332,351,369,387,419,438,468,484,499,510],{"format":287,"lines":333,"tokens":334,"first":335,"others":339,"copies":288,"excerpt":343,"kind":350},506,5229,{"name":336,"start":337,"end":338},"THIRD-PARTY-NOTICES.txt",844,1349,[340],{"name":336,"start":341,"end":342},2184,2689,{"lines":344,"total":333},[345,270,346,270,347,270,348,270,349,270],"--------------------------------------------------------------------","Developed by:","    LLVM Team","    University of Illinois at Urbana-Champaign","    http:\u002F\u002Fllvm.org","docs",{"format":287,"lines":352,"tokens":353,"first":354,"others":357,"copies":288,"excerpt":361,"kind":350},383,3971,{"name":336,"start":355,"end":356},461,843,[358],{"name":336,"start":359,"end":360},1801,2183,{"lines":362,"total":352},[363,364,270,365,270,366,270,367,270,368],"License notice for Mono","-------------------------------","http:\u002F\u002Fwww.mono-project.com\u002Fdocs\u002Fabout-mono\u002F","Copyright (c) .NET Foundation Contributors","MIT License","Permission is hereby granted, free of charge, to any person obtaining a copy",{"format":287,"lines":370,"tokens":371,"first":372,"others":375,"copies":288,"excerpt":379,"kind":350},283,3701,{"name":336,"start":373,"end":374},1350,1632,[376],{"name":336,"start":377,"end":378},2690,2972,{"lines":380,"total":370},[381,270,382,270,383,384,385,270,386,270],"-----------------------------------","Copyright 2019 LLVM Project","Licensed under the Apache License, Version 2.0 (the \"License\") with LLVM Exceptions;","you may not use this file except in compliance with the License.","You may obtain a copy of the License at","https:\u002F\u002Fllvm.org\u002FLICENSE.txt",{"format":287,"lines":388,"tokens":389,"first":390,"others":393,"copies":418,"kind":350},17,191,{"name":336,"start":391,"end":392},126,142,[394,397,400,403,406,409,412,415],{"name":336,"start":395,"end":396},527,543,{"name":336,"start":398,"end":399},688,703,{"name":336,"start":401,"end":402},897,914,{"name":336,"start":404,"end":405},1146,1162,{"name":336,"start":407,"end":408},1188,1204,{"name":336,"start":410,"end":411},1232,1247,{"name":336,"start":413,"end":414},1256,1260,{"name":336,"start":416,"end":417},1269,1285,15,{"format":287,"lines":420,"tokens":421,"first":422,"others":424,"copies":437,"kind":350},19,234,{"name":336,"start":391,"end":423},144,[425,428,431,434],{"name":336,"start":426,"end":427},152,170,{"name":336,"start":429,"end":430},177,195,{"name":336,"start":432,"end":433},205,223,{"name":336,"start":435,"end":436},231,249,5,{"format":287,"lines":316,"tokens":439,"first":440,"others":443,"copies":467,"kind":350},52,{"name":336,"start":441,"end":442},483,488,[444,447,450,453,456,459,462,464],{"name":336,"start":445,"end":446},700,705,{"name":336,"start":448,"end":449},911,916,{"name":336,"start":451,"end":452},1131,1137,{"name":336,"start":454,"end":455},1158,1164,{"name":336,"start":457,"end":458},1200,1206,{"name":336,"start":460,"end":461},1244,1249,{"name":336,"start":414,"end":463},1262,{"name":336,"start":465,"end":466},1281,1287,16,{"format":287,"lines":469,"tokens":470,"first":471,"others":473,"copies":483,"kind":350},18,232,{"name":336,"start":391,"end":472},143,[474,477,480],{"name":336,"start":475,"end":476},261,280,{"name":336,"start":478,"end":479},307,326,{"name":336,"start":481,"end":482},337,356,4,{"format":287,"lines":420,"tokens":485,"first":486,"others":489,"copies":483,"kind":350},192,{"name":336,"start":487,"end":488},335,353,[490,493,496],{"name":336,"start":491,"end":492},600,618,{"name":336,"start":494,"end":495},1117,1135,{"name":336,"start":497,"end":498},1292,1311,{"format":287,"lines":420,"tokens":500,"first":501,"others":503,"copies":320,"kind":350},194,{"name":336,"start":502,"end":396},525,[504,507],{"name":336,"start":505,"end":506},545,563,{"name":336,"start":508,"end":509},1554,1572,{"format":287,"lines":511,"tokens":512,"first":513,"others":516,"copies":288,"kind":350},40,382,{"name":336,"start":514,"end":515},358,397,[517],{"name":336,"start":518,"end":519},1667,1706,{"sources":265,"lines":521,"tokens":522,"clones":523,"duplicatedLines":524,"duplicatedTokens":525,"percentage":264,"percentageTokens":264,"formats":526,"topClones":538,"generated":678},51494,349270,83,893,6051,[527,533,536],{"format":280,"sources":528,"lines":529,"clones":530,"duplicatedLines":531,"percentage":532},235,50152,82,887,1.77,{"format":313,"sources":316,"lines":534,"clones":309,"duplicatedLines":316,"percentage":535},715,0.84,{"format":300,"sources":437,"lines":537,"clones":327,"duplicatedLines":327,"percentage":327},627,[539,563,589,609,623,632,640,649,659,669],{"format":280,"lines":540,"tokens":541,"first":542,"others":546,"copies":288,"excerpt":551,"kind":562},33,273,{"name":543,"start":544,"end":545},"src\u002FDiscImageStudio.Iso\u002FIso9660ImageWriter.cs",779,811,[547],{"name":548,"start":549,"end":550},"src\u002FDvdImageSolver\u002FIsoImageWriter.cs",316,348,{"lines":552,"total":540},[553,554,555,556,557,558,559,560,270,561],"    destination[0] = checked((byte)(year - 1900));","    destination[1] = checked((byte)utc.Month);","    destination[2] = checked((byte)utc.Day);","    destination[3] = checked((byte)utc.Hour);","    destination[4] = checked((byte)utc.Minute);","    destination[5] = checked((byte)utc.Second);","    destination[6] = 0;","}","private static void WriteVolumeDate(Span\u003Cbyte> destination, DateTimeOffset timestamp)","code",{"format":280,"lines":388,"tokens":564,"first":565,"others":569,"copies":320,"excerpt":578,"kind":562},94,{"name":566,"start":567,"end":568},"src\u002FDiscImageStudio.App\u002FServices\u002FRecentJobStore.cs",102,118,[570,574],{"name":571,"start":572,"end":573},"src\u002FDiscImageStudio.App\u002FServices\u002FRecentProjectStore.cs",113,129,{"name":575,"start":576,"end":577},"src\u002FDiscImageStudio.App\u002FServices\u002FRecentTemplateStore.cs",81,97,{"lines":579,"total":388},[580,581,582,583,584,585,586,587,588,270],"private void Save(IReadOnlyList\u003CRecentJobEntry> entries)","{","    try","    {","        string? directory = Path.GetDirectoryName(_filePath);","        if (!string.IsNullOrEmpty(directory))","        {","            Directory.CreateDirectory(directory);","        }",{"format":280,"lines":330,"tokens":590,"first":591,"others":595,"copies":288,"excerpt":599,"kind":562},173,{"name":592,"start":593,"end":594},"src\u002FDiscImageStudio.App\u002FControls\u002FCalibrationPhotoCanvas.cs",646,659,[596],{"name":592,"start":597,"end":598},669,682,{"lines":600,"total":330},[601,560,602,581,603,604,605,606,607,608],"    DrawRingSegment(dc, ring.RadiusMm, start - pad, sweep + 2 * pad, new Pen(DiscTheme.Trace, 1.6));","for (int i = 0; i \u003C points.Count; i++)","    var position = WorldToView(new Point(points[i].X, points[i].Y));","    dc.DrawEllipse(DiscTheme.HubOutline, new Pen(DiscTheme.Outline, 1), position, 3.5, 3.5);","    var label = Text((i + 1).ToString(CultureInfo.CurrentCulture), 11, DiscTheme.Handle);","    Point at = position + new Vector(5, -label.Height);","    dc.DrawRoundedRectangle(DiscTheme.Caption, null, new Rect(at.X - 2, at.Y, label.Width + 4, label.Height), 2, 2);","    dc.DrawText(label, at);",{"format":280,"lines":610,"tokens":611,"first":612,"others":616,"copies":320,"kind":562},13,75,{"name":613,"start":614,"end":615},"src\u002FDiscImageStudio.Core\u002FDiscPresetJsonStore.cs",328,340,[617,620],{"name":613,"start":618,"end":619},361,373,{"name":613,"start":621,"end":622},396,402,{"format":280,"lines":469,"tokens":624,"first":625,"others":628,"copies":288,"kind":562},131,{"name":543,"start":626,"end":627},760,777,[629],{"name":548,"start":630,"end":631},298,315,{"format":280,"lines":330,"tokens":633,"first":634,"others":636,"copies":288,"kind":562},124,{"name":543,"start":537,"end":635},640,[637],{"name":548,"start":638,"end":639},271,284,{"format":280,"lines":420,"tokens":641,"first":642,"others":645,"copies":288,"kind":562},117,{"name":543,"start":643,"end":644},602,620,[646],{"name":548,"start":647,"end":648},200,218,{"format":280,"lines":467,"tokens":650,"first":651,"others":655,"copies":288,"kind":562},106,{"name":652,"start":653,"end":654},"src\u002FDiscImageStudio.App\u002FViewModels\u002FLivePreviewViewModel.cs",1301,1316,[656],{"name":652,"start":657,"end":658},1368,1383,{"format":280,"lines":255,"tokens":660,"first":661,"others":664,"copies":288,"kind":562},104,{"name":662,"start":283,"end":663},"src\u002FDiscImageStudio.Core\u002FCalibration\u002FCalibrationCrossFitter.cs",167,[665],{"name":666,"start":667,"end":668},"src\u002FDiscImageStudio.Core\u002FCalibration\u002FCalibrationCubicFitter.cs",84,91,{"format":280,"lines":316,"tokens":670,"first":671,"others":675,"copies":288,"kind":562},103,{"name":672,"start":673,"end":674},"src\u002FDiscImageStudio.App\u002FControls\u002FSideNavItem.xaml.cs",107,112,[676],{"name":672,"start":392,"end":677},147,{"files":309,"minified":327,"sample":679},[680],"src\u002FDvdImageSolver\u002FEncoding\u002FEfmPlusTables.Generated.cs",{"score":266,"grade":267,"size":682,"dimensions":686,"skipped":704},{"lines":683,"files":684,"class":685},77542,355,"M",[687,697],{"id":688,"source":689,"value":690,"adjusted":690,"lines":691,"halfLife":692,"formats":693,"excluded":694,"weight":309,"score":696},"duplication","jscpd",2.2,1669,8.5,[280,300,313],[324,695],"data",83.7,{"id":698,"source":689,"value":699,"adjusted":700,"lines":701,"halfLife":702,"weight":309,"score":703},"complexity",53.6,52.7,41528,50,48.1,[705],{"id":706,"reason":707},"dead-code","the languages dead code reads are under 5% of the code",{"total":709,"mean":710,"files":711},13593,38.3,[712,716,720,724,729,734,739,742,746,750],{"path":592,"complexity":713,"lines":714,"bytes":715},370,938,60941,{"path":717,"complexity":475,"lines":718,"bytes":719},"src\u002FDiscImageStudio.App\u002FViewModels\u002FCalibrationViewModel.cs",1111,57300,{"path":652,"complexity":721,"lines":722,"bytes":723},238,1710,72795,{"path":725,"complexity":726,"lines":727,"bytes":728},"tests\u002FDiscImageStudio.ArchitectureTests\u002FCalibrationPhotoViewModelTests.cs",210,732,52308,{"path":730,"complexity":731,"lines":732,"bytes":733},"src\u002FDiscImageStudio.Core\u002FCalibration\u002FCalibrationTarget.cs",209,761,41913,{"path":735,"complexity":736,"lines":737,"bytes":738},"src\u002FDvdImageSolver\u002FProgram.cs",204,1557,72244,{"path":740,"complexity":647,"lines":727,"bytes":741},"src\u002FDiscImageStudio.Core\u002FDvdTrackGeometry.cs",38662,{"path":743,"complexity":429,"lines":744,"bytes":745},"src\u002FDiscImageStudio.App\u002FViewModels\u002FShellViewModel.cs",1270,50206,{"path":747,"complexity":748,"lines":402,"bytes":749},"src\u002FDiscImageStudio.App\u002FMainWindow.xaml.cs",174,37440,{"path":751,"complexity":752,"lines":753,"bytes":754},"src\u002FDiscImageStudio.App\u002FViewModels\u002FCalibrationRingViewModel.cs",156,450,23795,{"percentage":327,"findings":327,"files":314,"byCategory":756,"largest":757},[],[],{"\u002Ftrending\u002FJiaFeiMiao-K-Cat\u002FDiscImageStudio":759},{"views":327,"visits":327},1793861474608]