{"schema_version":"2","scorer_version":"0.1.0","scoring_version":"prov-4+qual-2+sec-2","generated_at":"2026-11-13T23:47:16.167771Z","repo":{"ref":{"host":"github.com","owner":"AdamLaurie","name":"raiden-pico"},"default_branch":"main","clone_url":"https://github.com/AdamLaurie/raiden-pico.git","html_url":"https://github.com/AdamLaurie/raiden-pico","description":"Raiden for the pico2 written by claude code","stars":65,"forks":12,"is_fork":false,"is_archived":false,"is_private":false,"size_kb":3264,"primary_language":"C","license_spdx":null,"created_at":"2025-10-27T15:48:56Z","pushed_at":"2026-11-10T20:23:37Z","security_policy_url":null,"distribution":{"owner_created_at":"2011-10-30T08:34:23Z","owner_type":"User","release_assets":[]}},"commit_sha":"101db56516a5f38113c83a11ff86c3aa38ef6475","profile":{"lines_by_language":{"C":20981,"Python":18462,"Shell":297},"files_by_category":{"source":84,"docs":40,"other":29,"test":27,"binary":15,"config":6,"oversized":1},"source_lines":33402,"test_lines":6338},"pillars":{"ai_provenance":{"score":93.0,"confidence":0.95,"coverage":1.0,"label":"explicit","breakdown":{"attributed_share":0.9298,"suspected_share":0.0,"estimated_share":0.9298,"ai_artifacts":10.0,"flagged_work_units":1.0,"flagged_releases":null},"summary":"Explicit AI attribution on 93% of first-party code added; an estimated 93% including velocity signals."},"quality":{"score":31.3,"confidence":0.9,"coverage":1.0,"label":"poor","breakdown":{"complexity":19.5,"duplication":42.0,"lint":0.4,"testing":39.5,"docs":60.0,"type_safety":40.0,"process":null},"summary":"Code quality is poor: test-to-source ratio 0.19, no CI test run detected; 54% of function code in complex or long functions; 14% duplicated lines. Weakest area: lint."},"security":{"score":74.1,"confidence":0.85,"coverage":1.0,"label":"adequate","breakdown":{"secrets":100.0,"sast":82.6,"dependencies":70.5,"ci_actions":null,"posture":0.0,"scorecard":null},"summary":"Security posture is adequate: 56 known vulnerabilities in 3 dependencies; 13 high-severity SAST findings. Weakest area: posture."}},"analyzer_results":[{"analyzer":"sec-scorecard","pillar":"security","status":"skipped","tool_version":null,"metrics":{},"findings":[],"evidence":[],"data":{},"error":"no published OpenSSF Scorecard result for this repo"},{"analyzer":"sec-registry","pillar":"security","status":"ok","tool_version":null,"metrics":{"declared":5.0,"checked":5.0,"missing":0.0,"recent":0.0,"lookup_errors":0.0},"findings":[],"evidence":[],"data":{"phantom":false},"error":null},{"analyzer":"ai-attribution","pillar":"ai_provenance","status":"ok","tool_version":"signatures-v1","metrics":{"commits":180.0,"attributed_commits":170.0,"attributed_commit_share":0.9444444444444444,"effective_loc":44199.0,"attributed_loc":41097.0,"attributed_loc_share":0.9298174166836354,"tools_detected":1.0},"findings":[],"evidence":[{"kind":"attribution-summary","description":"Claude Code: 170 attributed commits, 41,097 lines added","ref":null,"url":null,"weight":1.0},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-Authored-By: Claude'","ref":"101db56516a5f38113c83a11ff86c3aa38ef6475","url":"https://github.com/AdamLaurie/raiden-pico/commit/101db56516a5f38113c83a11ff86c3aa38ef6475","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-Authored-By: Claude'","ref":"f83e67ccc1e8bd633bf8258895291b747b1293fd","url":"https://github.com/AdamLaurie/raiden-pico/commit/f83e67ccc1e8bd633bf8258895291b747b1293fd","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-Authored-By: Claude'","ref":"9807f3ada818a076a53a18c1c2f4cfffd2ab8229","url":"https://github.com/AdamLaurie/raiden-pico/commit/9807f3ada818a076a53a18c1c2f4cfffd2ab8229","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-Authored-By: Claude'","ref":"e708a4756a870a972e21578c53ef013d419cd7a5","url":"https://github.com/AdamLaurie/raiden-pico/commit/e708a4756a870a972e21578c53ef013d419cd7a5","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-Authored-By: Claude'","ref":"15a3b9509a6f0fffd86af0b37cd22ed3b67a1af4","url":"https://github.com/AdamLaurie/raiden-pico/commit/15a3b9509a6f0fffd86af0b37cd22ed3b67a1af4","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-Authored-By: Claude'","ref":"ec009bf40a5f43fbdf7d89e9554077d832cf1a6f","url":"https://github.com/AdamLaurie/raiden-pico/commit/ec009bf40a5f43fbdf7d89e9554077d832cf1a6f","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-Authored-By: Claude'","ref":"7c012586e38c9284b04bb156a736dc9a02d44726","url":"https://github.com/AdamLaurie/raiden-pico/commit/7c012586e38c9284b04bb156a736dc9a02d44726","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-Authored-By: Claude'","ref":"a157c316788486faf2a3381d413f977c86bf3f91","url":"https://github.com/AdamLaurie/raiden-pico/commit/a157c316788486faf2a3381d413f977c86bf3f91","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-Authored-By: Claude'","ref":"b164bbc9ec6ad51a6643d46d7d1c982a5d56257d","url":"https://github.com/AdamLaurie/raiden-pico/commit/b164bbc9ec6ad51a6643d46d7d1c982a5d56257d","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-Authored-By: Claude'","ref":"405722450fcee29fbfd7ddf7d588139fa760b7b6","url":"https://github.com/AdamLaurie/raiden-pico/commit/405722450fcee29fbfd7ddf7d588139fa760b7b6","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-Authored-By: Claude'","ref":"a4f7f583f8f0dd58590721562e0a6bcda24d2bb2","url":"https://github.com/AdamLaurie/raiden-pico/commit/a4f7f583f8f0dd58590721562e0a6bcda24d2bb2","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-Authored-By: Claude'","ref":"74f8b70881aa396fee06c9a42fcf9876e6fb9ff4","url":"https://github.com/AdamLaurie/raiden-pico/commit/74f8b70881aa396fee06c9a42fcf9876e6fb9ff4","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-Authored-By: Claude'","ref":"eaffac70251d9e8eaa93e1fa8ff726272309bdac","url":"https://github.com/AdamLaurie/raiden-pico/commit/eaffac70251d9e8eaa93e1fa8ff726272309bdac","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-Authored-By: Claude'","ref":"1a00dd7cd36566e62898629eedd50ce0a2c190ae","url":"https://github.com/AdamLaurie/raiden-pico/commit/1a00dd7cd36566e62898629eedd50ce0a2c190ae","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-Authored-By: Claude'","ref":"60ff5157f36d6eaed9179a338f1472760ce24bdc","url":"https://github.com/AdamLaurie/raiden-pico/commit/60ff5157f36d6eaed9179a338f1472760ce24bdc","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-Authored-By: Claude'","ref":"cbfb8e5e7401152d2fb24ab43c4a5a6dc63cc935","url":"https://github.com/AdamLaurie/raiden-pico/commit/cbfb8e5e7401152d2fb24ab43c4a5a6dc63cc935","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-Authored-By: Claude'","ref":"7201cb060b960e8448e42be572ffeb07b20d5a8a","url":"https://github.com/AdamLaurie/raiden-pico/commit/7201cb060b960e8448e42be572ffeb07b20d5a8a","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-Authored-By: Claude'","ref":"72e90fbc2e085d45aa5a974cdbc4764a7666cdd0","url":"https://github.com/AdamLaurie/raiden-pico/commit/72e90fbc2e085d45aa5a974cdbc4764a7666cdd0","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-Authored-By: Claude'","ref":"09fb8991183cbab8f179c59de60a60e99b056a46","url":"https://github.com/AdamLaurie/raiden-pico/commit/09fb8991183cbab8f179c59de60a60e99b056a46","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-Authored-By: Claude'","ref":"f1e954f67dc208b7e1be0eef61a07d6821e0c882","url":"https://github.com/AdamLaurie/raiden-pico/commit/f1e954f67dc208b7e1be0eef61a07d6821e0c882","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-Authored-By: Claude'","ref":"3bfea4bfcea1389aabf9dc6e4ee822da8bde0c55","url":"https://github.com/AdamLaurie/raiden-pico/commit/3bfea4bfcea1389aabf9dc6e4ee822da8bde0c55","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-Authored-By: Claude'","ref":"f317f6685a5e274bda9ff43b2a1d84e926f83326","url":"https://github.com/AdamLaurie/raiden-pico/commit/f317f6685a5e274bda9ff43b2a1d84e926f83326","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-Authored-By: Claude'","ref":"00943a8474fed2657da60e0553de83397ed4428a","url":"https://github.com/AdamLaurie/raiden-pico/commit/00943a8474fed2657da60e0553de83397ed4428a","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-Authored-By: Claude'","ref":"bb70e7f063031c1bdf10a66944766515ca66c528","url":"https://github.com/AdamLaurie/raiden-pico/commit/bb70e7f063031c1bdf10a66944766515ca66c528","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-Authored-By: Claude'","ref":"fa281d3a84bf5770b87acdd4c5ec2f894278d080","url":"https://github.com/AdamLaurie/raiden-pico/commit/fa281d3a84bf5770b87acdd4c5ec2f894278d080","weight":0.9}],"data":{"attributed_loc_by_commit":{"3e4a0d2ab838dd8159c2c368ecd39a4f3288e157":0,"69812fb387d03b22e4061cb7e2033b3815d72ec6":43,"3dee3475c69ba9efed15253bfdbb0c6b61e57322":2,"78ff0c1b8920f9fb2fc33222a9830cb427e4ba29":79,"9eb7d3c7bb2ef527c01555f2faddd10f677384cf":12,"70d73c58000022ec1fe8f51e3b8327d0604c012e":269,"f9ca42428f8dcb2079482f6fa905b87642516fea":92,"b64abbc9c797910315a691de2570b1ab8531039d":100,"d9c87b7d70431dfe5b90ac771b8e06bd0bd61916":4,"9a7f6891b37708ec443472c2a4420ade3bb4e8ca":11,"5202f873eb2cbe5291528baab20c356b216b051a":116,"1b89b7c4ce7731cbab6c8bfe58306ff896f34748":18,"1a07921f3c3c882bb35b3f73f7b488f1b6d4ba2f":508,"a0ddd627bba7217c76f38cc2cc60963ccc7335a4":0,"f0603b5f666ece7fe16c42d39e6f0540458ba19c":501,"c5ec924d62058431ecc7be484aae7ed10c05a02c":0,"21a604b3e62c4c42ecc8ae4179d74ab4ec4b0931":100,"31f793e29e1220f4580553d4faec08caf8b29597":39,"eb385624e05bfaf985809e07d2e3942e617e0cb5":17,"679b12a4bf2e5a70d40f474c62032cc09b89d597":1,"763703674d8ec1ef5daa3ecab217106ef5aaf418":290,"510c1070f3ae60e295ca49663ab1ec37483ebf75":322,"37cbb2cef58ae91f05be2e8f0a3cec0b921867ac":563,"3a8065f37ee86ec8c72ebbe13b3541be0a2d1875":100,"cf5b283d40376af22d1691f5383549cb7b0d0370":1136,"a4a6f5f72f66692a627eff670ccc90cca4e9c4a5":142,"2e5d45a6229a33b4cd6d097cf99d2af2fe4764c7":0,"16e13f5e0526f364ca4890e1dd271a995609e432":0,"d60b852df80425318389a0ee29d3b70319cae3ec":24,"24bdd380e8a941bf05cdc778cb0abfb2fae65b77":517,"0ca10afb520382b8dca79f851bc12e231ef1c1e4":3,"694b56db351e173d09c2692120711c4a9d420fa7":6,"1b1aac628f7dee81f54909cfebdc80db03f03730":1015,"8b54c6182906825523776f47d908d708908f1796":132,"2e39737250471fcce33583637866b0a8f611fb66":331,"60bb6ce71fb4d5c7027ad023fc727a874b633db1":529,"12da61e3df56cf77f5175d5e3503e531494156fd":412,"d49d39350628fea8d6261907e8d2b750071dc14d":156,"eacc2f84e94d32187d09d51daafdf092947beb37":297,"63311f4210ce462f7f2ffbd6871e14bb9903c080":85,"8f73745439a9b2091b1b12d27aa321d47e0bbc89":250,"95fb243b4753925bd087ad8a29ca816b1674037e":47,"20ef1c128baf24cb043b04d4c4ca1ae7af46b624":83,"649e605354409cab4c9f75a418657901ad2ebd54":4,"ca4ccdaa19cf96eb7fd39d9a2d9500ace39131e4":0,"efc23d9f4394737e15ca045c431e48705539e906":316,"580a5c8ba8bd0cefdabc90b92feac180aba41607":6,"454910a4f5ee708e9b41b0873697ef1c1e251652":35,"7cdd5cdd317c605dd4485989f80abef80a1ca495":860,"3409262ba6582d22821ea108d6233f5cd782e325":84,"443589ce91b2ef3c89ae347251e98c7941e63389":25,"700455e18f31579f83a9ffa2930ca514210f4e45":30,"04779403c6f852c7e44fe23eba172d02d3b95fc6":1,"6d5ef50a55458416f83bed034b071afe198425bd":435,"208b0099921e03bf3675d58722d9365ec9485580":393,"8e67e81a7ab42f47cee14ec6f9d536a36ba2f437":235,"13c7c4fd4b0fcc8070ed20464a2e47486c290dad":886,"5d983ac76b81c45bd83c2366279f35688e616db3":1049,"2dda0af74fc0b3d0fc63da950a5dcf9fa6419a78":0,"af7bf51f84e2ecb59f8e767922b612602001f3d6":146,"7fbcc1df5f377b21b0fb8ccf51cfb9ef16e1c483":49,"bde7079f62f34d26211e9bc1adffc70aeb0b0433":70,"7f293aacd5edb6b40e2dd92e3f362e617308b540":292,"21d060e261e6e9b55ba3f315bb47a8794dca53b0":492,"1c0f5ff9f72edeb9e2aa73e2fe21777824c08691":0,"55789b486376487800f9c17dd774b7000394e717":2,"078a3d838e2ea0fa4361393c0b451c8af4c981b2":259,"2d0a464df6ffd210d970a02678433efd833d8ddc":0,"6be8b257170f097c28f9e6f2b1094ff6d01e0778":0,"9336634f2ab798459f0ade880c3419c8599e9010":10,"0e9b74403ee1b2e12e37bc6c3ab289897a7d530e":0,"f4f52e3ebb4a5c4b7c65da7be4beee3028f5692e":474,"4320b240c3e097460713ec1aa5505cf3a10e94b7":344,"1d37eb4b7440c1792b729c825992d9ab153205d5":445,"f2e9146404419f637bd883e9539dbe2483cf1e55":413,"6661df8205fb6db6eadee544e3731d43fcd308a4":115,"a2922fe82acea08289c3e93657f15826294e9cb3":1308,"c7557043a6d1b4276fd5cc264f2c8f37a8626ad5":0,"a1d6139fe91a43927ad67828066cedff189faef8":1038,"0245c56221526c25615ee233ec784320a897afe9":118,"fecc4f4d6742afb15dd13073b60677df441feffd":50,"8924b22e3304a490908f5c87f2c33295295d3b8d":9,"8ec8111947388b3264d7c683c60198997c7aa3b3":9,"bdc3ad0c8d2e430e8e7bd795f7fb4d5b459db503":8,"cf6d1262ccecb4b56514c444586ef14b9fe730d1":78,"48b00b47d30373b06816f70d7e4efb3ed9390bfc":88,"3964c04543abfaf2c75603a8a18b8f2bcc73b4f9":2012,"13470e25b0482e599c52474f563829f158d9654f":19,"3d9186f4a2adc4f2c6886217090295c9d84c7a0a":382,"4bddf58dfcf7126a409a5aa2741ff10658f74484":349,"d79df5f2511a01b476e3ef8fbf73cf4d1758ec7c":487,"e6b617689267754380b3332f06c90c71b8bcd4df":587,"05736ed39c9187cfbf0c6db14d2e0718c089d8ca":1919,"807406704197ceefa08ff26ca3ab02f0daf00379":1301,"c6ab9a2e9a49559d032506a182e147c719611146":88,"5420018655aba9ab66953335e92ba948f69b0315":1157,"d9216f6d03cd8b33ba1f10efa69813c0a007b9ad":11,"3fcff2cfc517a778c3121bc1e908e180095b1a59":53,"4ae997dd552c55b2d1d2a8ed85b58879dbce1403":58,"3c5cecccb8676ec83acf099d247d89482dcd247d":14,"cb5c4bd255e6e7796ae6639d33692bec1ab3376f":1207,"35f11ad093a77ac1f8464e7cfd1812f4a1d0d355":904,"5fc5ec6360f43ec5562b85abde8567372d7bbcfa":91,"0b30fc72d7378ef3ba2f8b5e7c3c249b5a7bc600":618,"9571d18e3cecc71382431dea47dfbfa0690f6011":4,"2d5ec009e0a76b34dc731d0b37b6ba93a4fa928a":100,"4ebacdc0ddec0c43f97770c72f4395a1a8789e95":0,"08495320ea0e88d5777c78185058863afe3b980d":256,"410901f291a8b5785d4267ca0c4adb38cd2065b4":1,"4d93990ff4983cca33c9dd5fa47f18ca5a52c5c5":6,"a09beda659da2657e410fcee765c2974aa66d306":10,"0e346143c5087d1dee7bc33b271abfd6305208f0":847,"50efa41d65009df94d038c5436f3de58559ee693":541,"51cdab41612be5da74a24f253e86807621a40b80":207,"3aca73a1bd4f14eb9a5b52059f166dc1cc6895c7":262,"600d4c0f2238bd4b165b1de125f46301ed52f6b1":48,"a2a98d033e53c096220193b4a4e6db8deafa25fc":812,"6add76757e8ef2dedc316024d3f7cb9f7cb90688":0,"a15ad844e6aac233774912fc94a2d0dd5e57bb18":0,"f5a6b48f19abd75bfa5f089968ff322701f7f5fa":11,"fdea9b6ac4c087e39d9fa00aa48acef72997684f":402,"21444d8ad2c88b3654335d236ead1c04e2b50daa":0,"9c163a229f73b4aa5d446c7eac70ab858fb62964":0,"dd204801a570b8eec4a43812382f75b13b946338":0,"9c9a5a8b009de633626b7b901ecb263a73cea27d":795,"92890721e164db63b849fa9ebdd447cd2733e512":336,"cf8322768729a82f15839f849f3a7b28ebd677d3":168,"b92c9cd163b0e39fb8405e3f88e22da632df53d1":18,"dcc9be60fc30e6b91b17b8df0d47b9e7928a1744":8,"0b0a1397bd2f67a41e9272a81c8345d7f4fc024d":374,"805692fcb3b61d4f3d18e703ad6bc8b21b7c7542":63,"2b40f7090a6fa786d40706c80ae33d81ea39aeed":32,"159f4065f21ecea45c815e1b45891e37f0fc6cfa":0,"99fb0145ab71e9cee88614b9b2d91ed90008d385":20,"dc19bbc7f04efbe4a0fa5a1dfe5d3ca939867830":0,"fc7e009c65965149435ae51f5b7953746048c759":0,"b23d647ad17b05b678537a3266c229cd20b687e5":301,"259b2619e9d97c1022928b45afc854439d1ca31b":0,"60be4299d6932faa2c935bb3ea11bcd8fc54c6a0":0,"54a3bbcec57b9271bf217f0dc8928ffd06558d23":0,"125751c3293cfc0b9744ffddd2a031cb7638c541":298,"16e39c6be75a3a8a573ae2528740a0716d95c436":358,"5f4aa1425d5fbee7a3571d8be5d32d93b4cafbed":86,"83eee2e1ad099c7647cf84bed58ca6384a193da5":0,"394f52d66f7689f54b8497e1a3db2bcb755bc4bd":13,"fa281d3a84bf5770b87acdd4c5ec2f894278d080":339,"bb70e7f063031c1bdf10a66944766515ca66c528":126,"00943a8474fed2657da60e0553de83397ed4428a":0,"f317f6685a5e274bda9ff43b2a1d84e926f83326":112,"3bfea4bfcea1389aabf9dc6e4ee822da8bde0c55":1,"f1e954f67dc208b7e1be0eef61a07d6821e0c882":69,"09fb8991183cbab8f179c59de60a60e99b056a46":227,"72e90fbc2e085d45aa5a974cdbc4764a7666cdd0":114,"7201cb060b960e8448e42be572ffeb07b20d5a8a":36,"cbfb8e5e7401152d2fb24ab43c4a5a6dc63cc935":1358,"60ff5157f36d6eaed9179a338f1472760ce24bdc":157,"1a00dd7cd36566e62898629eedd50ce0a2c190ae":34,"eaffac70251d9e8eaa93e1fa8ff726272309bdac":5,"74f8b70881aa396fee06c9a42fcf9876e6fb9ff4":0,"a4f7f583f8f0dd58590721562e0a6bcda24d2bb2":0,"405722450fcee29fbfd7ddf7d588139fa760b7b6":45,"b164bbc9ec6ad51a6643d46d7d1c982a5d56257d":592,"a157c316788486faf2a3381d413f977c86bf3f91":21,"7c012586e38c9284b04bb156a736dc9a02d44726":528,"ec009bf40a5f43fbdf7d89e9554077d832cf1a6f":435,"15a3b9509a6f0fffd86af0b37cd22ed3b67a1af4":265,"e708a4756a870a972e21578c53ef013d419cd7a5":0,"9807f3ada818a076a53a18c1c2f4cfffd2ab8229":233,"f83e67ccc1e8bd633bf8258895291b747b1293fd":237,"101db56516a5f38113c83a11ff86c3aa38ef6475":1},"tools":{"claude-code":{"name":"Claude Code","commits":170,"loc":41097,"first_seen":1761581677,"last_seen":1794060573}},"monthly":{"2025-10":{"loc":4871,"attributed_loc":1894},"2025-11":{"loc":7839,"attributed_loc":7819},"2025-12":{"loc":4413,"attributed_loc":4318},"2026-01":{"loc":1791,"attributed_loc":1791},"2026-02":{"loc":1308,"attributed_loc":1308},"2026-03":{"loc":8454,"attributed_loc":8454},"2026-04":{"loc":3492,"attributed_loc":3492},"2026-05":{"loc":1086,"attributed_loc":1086},"2026-06":{"loc":4455,"attributed_loc":4455},"2026-09":{"loc":2533,"attributed_loc":2533},"2026-10":{"loc":3221,"attributed_loc":3211},"2026-11":{"loc":736,"attributed_loc":736}}},"error":null},{"analyzer":"ai-artifacts","pillar":"ai_provenance","status":"ok","tool_version":"signatures-v1","metrics":{"artifacts":10.0,"workflow_agents":0.0,"tools_configured":1.0,"earliest_adoption":1761579495.0},"findings":[],"evidence":[{"kind":"ai-artifact","description":".claude/skills/check-issues/SKILL.md (claude-code configuration)","ref":".claude/skills/check-issues/SKILL.md","url":"https://github.com/AdamLaurie/raiden-pico/blob/101db56516a5f38113c83a11ff86c3aa38ef6475/.claude/skills/check-issues/SKILL.md","weight":0.5},{"kind":"ai-artifact","description":".claude/skills/cli-errors/SKILL.md (claude-code configuration)","ref":".claude/skills/cli-errors/SKILL.md","url":"https://github.com/AdamLaurie/raiden-pico/blob/101db56516a5f38113c83a11ff86c3aa38ef6475/.claude/skills/cli-errors/SKILL.md","weight":0.5},{"kind":"ai-artifact","description":".claude/skills/concise-results/SKILL.md (claude-code configuration)","ref":".claude/skills/concise-results/SKILL.md","url":"https://github.com/AdamLaurie/raiden-pico/blob/101db56516a5f38113c83a11ff86c3aa38ef6475/.claude/skills/concise-results/SKILL.md","weight":0.5},{"kind":"ai-artifact","description":".claude/skills/flash/SKILL.md (claude-code configuration)","ref":".claude/skills/flash/SKILL.md","url":"https://github.com/AdamLaurie/raiden-pico/blob/101db56516a5f38113c83a11ff86c3aa38ef6475/.claude/skills/flash/SKILL.md","weight":0.5},{"kind":"ai-artifact","description":".claude/skills/pins/SKILL.md (claude-code configuration)","ref":".claude/skills/pins/SKILL.md","url":"https://github.com/AdamLaurie/raiden-pico/blob/101db56516a5f38113c83a11ff86c3aa38ef6475/.claude/skills/pins/SKILL.md","weight":0.5},{"kind":"ai-artifact","description":".claude/skills/rdp-payload-check/SKILL.md (claude-code configuration)","ref":".claude/skills/rdp-payload-check/SKILL.md","url":"https://github.com/AdamLaurie/raiden-pico/blob/101db56516a5f38113c83a11ff86c3aa38ef6475/.claude/skills/rdp-payload-check/SKILL.md","weight":0.5},{"kind":"ai-artifact","description":".claude/skills/sync-requirements/SKILL.md (claude-code configuration)","ref":".claude/skills/sync-requirements/SKILL.md","url":"https://github.com/AdamLaurie/raiden-pico/blob/101db56516a5f38113c83a11ff86c3aa38ef6475/.claude/skills/sync-requirements/SKILL.md","weight":0.5},{"kind":"ai-artifact","description":".claude/skills/tty-contention-check/SKILL.md (claude-code configuration)","ref":".claude/skills/tty-contention-check/SKILL.md","url":"https://github.com/AdamLaurie/raiden-pico/blob/101db56516a5f38113c83a11ff86c3aa38ef6475/.claude/skills/tty-contention-check/SKILL.md","weight":0.5},{"kind":"ai-artifact","description":".claude/skills/version-bump/SKILL.md (claude-code configuration)","ref":".claude/skills/version-bump/SKILL.md","url":"https://github.com/AdamLaurie/raiden-pico/blob/101db56516a5f38113c83a11ff86c3aa38ef6475/.claude/skills/version-bump/SKILL.md","weight":0.5},{"kind":"ai-artifact","description":"CLAUDE.md (claude-code configuration)","ref":"CLAUDE.md","url":"https://github.com/AdamLaurie/raiden-pico/blob/101db56516a5f38113c83a11ff86c3aa38ef6475/CLAUDE.md","weight":0.5}],"data":{"artifacts":[{"tool":"claude-code","path":".claude/skills/check-issues/SKILL.md","added_at":1778861692},{"tool":"claude-code","path":".claude/skills/cli-errors/SKILL.md","added_at":1780762061},{"tool":"claude-code","path":".claude/skills/concise-results/SKILL.md","added_at":1790629152},{"tool":"claude-code","path":".claude/skills/flash/SKILL.md","added_at":1775591107},{"tool":"claude-code","path":".claude/skills/pins/SKILL.md","added_at":1780594417},{"tool":"claude-code","path":".claude/skills/rdp-payload-check/SKILL.md","added_at":1790522634},{"tool":"claude-code","path":".claude/skills/sync-requirements/SKILL.md","added_at":1780345258},{"tool":"claude-code","path":".claude/skills/tty-contention-check/SKILL.md","added_at":1790604534},{"tool":"claude-code","path":".claude/skills/version-bump/SKILL.md","added_at":1780830074},{"tool":"claude-code","path":"CLAUDE.md","added_at":1761579495}],"workflows":[],"tools":["claude-code"]},"error":null},{"analyzer":"ai-velocity","pillar":"ai_provenance","status":"ok","tool_version":"prov-4","metrics":{"work_units":103.0,"flagged_units":1.0,"pre_ai_era_bursts":0.0,"pre_ai_era_measured_loc":0.0,"pre_ai_era_burst_loc":0.0,"measured_loc":41222.0,"flagged_loc":1358.0,"flagged_loc_share":0.03294357381980496,"max_loc_per_hour":1054.757281553398,"median_loc_per_hour":119.63299606138801,"pr_timed_units":1.0,"excluded_import_loc":2977.0},"findings":[],"evidence":[{"kind":"velocity-burst","description":"1,358 lines of first-party code in ~1.3h (1,055 lines/hour, 1 commit session)","ref":"cbfb8e5e7401152d2fb24ab43c4a5a6dc63cc935","url":"https://github.com/AdamLaurie/raiden-pico/commit/cbfb8e5e7401152d2fb24ab43c4a5a6dc63cc935","weight":0.31642718446601936}],"data":{"flagged_loc_by_commit":{"cbfb8e5e7401152d2fb24ab43c4a5a6dc63cc935":1358},"excluded_import_commits":["7c2b1f1d48245604c0cd7afc2b92843a77e3c2e4"]},"error":null},{"analyzer":"ai-release-velocity","pillar":"ai_provenance","status":"skipped","tool_version":null,"metrics":{},"findings":[],"evidence":[],"data":{},"error":null},{"analyzer":"ai-stylometry","pillar":"ai_provenance","status":"ok","tool_version":null,"metrics":{"lines_scanned":33402.0,"index":0.928,"count:narrated_steps":26.0,"per_kloc:narrated_steps":0.778,"files:narrated_steps":6.0,"count:placeholder":0.0,"per_kloc:placeholder":0.0,"files:placeholder":0.0,"count:emoji_in_code":10.0,"per_kloc:emoji_in_code":0.299,"files:emoji_in_code":3.0,"count:assistant_voice":0.0,"per_kloc:assistant_voice":0.0,"files:assistant_voice":0.0},"findings":[],"evidence":[{"kind":"stylometry:narrated_steps","description":"step-by-step narration comment: # Step 2: Read UUE data following continuation protocol","ref":"scripts/crp3_to_crp2_glitch.py:439","url":"https://github.com/AdamLaurie/raiden-pico/blob/101db56516a5f38113c83a11ff86c3aa38ef6475/scripts/crp3_to_crp2_glitch.py#L439","weight":0.0},{"kind":"stylometry:narrated_steps","description":"step-by-step narration comment: # Step 1: Reset to address 0x0 and collect PC values","ref":"scripts/openocd_crp_trace_working.py:69","url":"https://github.com/AdamLaurie/raiden-pico/blob/101db56516a5f38113c83a11ff86c3aa38ef6475/scripts/openocd_crp_trace_working.py#L69","weight":0.0},{"kind":"stylometry:narrated_steps","description":"step-by-step narration comment: # Step 2: Disassemble unique addresses in batches","ref":"scripts/openocd_crp_trace_working.py:102","url":"https://github.com/AdamLaurie/raiden-pico/blob/101db56516a5f38113c83a11ff86c3aa38ef6475/scripts/openocd_crp_trace_working.py#L102","weight":0.0},{"kind":"stylometry:narrated_steps","description":"step-by-step narration comment: # Step 3: Build instructions list","ref":"scripts/openocd_crp_trace_working.py:129","url":"https://github.com/AdamLaurie/raiden-pico/blob/101db56516a5f38113c83a11ff86c3aa38ef6475/scripts/openocd_crp_trace_working.py#L129","weight":0.0},{"kind":"stylometry:narrated_steps","description":"step-by-step narration comment: # Step 1: Send Read Memory command (0x11 + 0xEE)","ref":"scripts/stm32_bootloader.py:138","url":"https://github.com/AdamLaurie/raiden-pico/blob/101db56516a5f38113c83a11ff86c3aa38ef6475/scripts/stm32_bootloader.py#L138","weight":0.0},{"kind":"stylometry:narrated_steps","description":"step-by-step narration comment: # Step 2: Send address (4 bytes) + XOR checksum","ref":"scripts/stm32_bootloader.py:143","url":"https://github.com/AdamLaurie/raiden-pico/blob/101db56516a5f38113c83a11ff86c3aa38ef6475/scripts/stm32_bootloader.py#L143","weight":0.0},{"kind":"stylometry:narrated_steps","description":"step-by-step narration comment: # Step 3: Send number of bytes - 1 + checksum (N ^ 0xFF = N ^ 0xFF)","ref":"scripts/stm32_bootloader.py:156","url":"https://github.com/AdamLaurie/raiden-pico/blob/101db56516a5f38113c83a11ff86c3aa38ef6475/scripts/stm32_bootloader.py#L156","weight":0.0},{"kind":"stylometry:narrated_steps","description":"step-by-step narration comment: # First, dump the current flash sector - try multiple halt methods","ref":"scripts/write_crp_protection.py:196","url":"https://github.com/AdamLaurie/raiden-pico/blob/101db56516a5f38113c83a11ff86c3aa38ef6475/scripts/write_crp_protection.py#L196","weight":0.0}],"data":{},"error":null},{"analyzer":"sec-secrets","pillar":"security","status":"ok","tool_version":"gitleaks 8.30.1","metrics":{"secrets_current":0.0,"secrets_history":0.0,"secrets_nonprod":0.0,"secrets_low_confidence":0.0},"findings":[],"evidence":[],"data":{},"error":null},{"analyzer":"sec-sast","pillar":"security","status":"ok","tool_version":"opengrep 1.33.1; rules f1d2b562b414","metrics":{"findings":47.0,"findings_high":13.0,"findings_medium":23.0,"findings_low":11.0,"weighted_findings":18.288,"scanned_lines":33402.0,"parse_errors":2.0},"findings":[{"rule_id":"opengrep/python.lang.security.audit.dangerous-subprocess-use-audit","severity":"high","message":"Detected subprocess function 'run' without a static string. If this data can be controlled by a malicious actor, it may be an instance of command injection. Audit the use of this call to ensure it is not controllable by an external resource. You may consider using 'shlex.escape()'. [confidence low]","path":"jtag_glitch_heatmap.py","line":592,"fingerprint":"python.lang.security.audit.dangerous-subprocess-use-audit:jtag_glitch_heatmap.py:592"},{"rule_id":"opengrep/python.lang.security.audit.dangerous-subprocess-use-audit","severity":"high","message":"Detected subprocess function 'Popen' without a static string. If this data can be controlled by a malicious actor, it may be an instance of command injection. Audit the use of this call to ensure it is not controllable by an external resource. You may consider using 'shlex.escape()'. [confidence low]","path":"scripts/auto_glitch_explorer.py","line":142,"fingerprint":"python.lang.security.audit.dangerous-subprocess-use-audit:scripts/auto_glitch_explorer.py:142"},{"rule_id":"opengrep/python.lang.security.audit.dangerous-subprocess-use-audit","severity":"high","message":"Detected subprocess function 'Popen' without a static string. If this data can be controlled by a malicious actor, it may be an instance of command injection. Audit the use of this call to ensure it is not controllable by an external resource. You may consider using 'shlex.escape()'. [confidence low]","path":"scripts/openocd_crp_trace.py","line":52,"fingerprint":"python.lang.security.audit.dangerous-subprocess-use-audit:scripts/openocd_crp_trace.py:52"},{"rule_id":"opengrep/python.lang.security.audit.subprocess-shell-true","severity":"high","message":"Found 'subprocess' function 'run' with 'shell=True'. This is dangerous because this call will spawn the command using a shell process. Doing so propagates current shell settings and variables, which makes it much easier for a malicious actor to execute commands. Use 'shell=False' instead. [confidence medium]","path":"scripts/openocd_crp_trace.py","line":84,"fingerprint":"python.lang.security.audit.subprocess-shell-true:scripts/openocd_crp_trace.py:84"},{"rule_id":"opengrep/python.lang.security.audit.dangerous-subprocess-use-audit","severity":"high","message":"Detected subprocess function 'run' without a static string. If this data can be controlled by a malicious actor, it may be an instance of command injection. Audit the use of this call to ensure it is not controllable by an external resource. You may consider using 'shlex.escape()'. [confidence low]","path":"scripts/openocd_crp_trace.py","line":112,"fingerprint":"python.lang.security.audit.dangerous-subprocess-use-audit:scripts/openocd_crp_trace.py:112"},{"rule_id":"opengrep/python.lang.security.audit.subprocess-shell-true","severity":"high","message":"Found 'subprocess' function 'run' with 'shell=True'. This is dangerous because this call will spawn the command using a shell process. Doing so propagates current shell settings and variables, which makes it much easier for a malicious actor to execute commands. Use 'shell=False' instead. [confidence medium]","path":"scripts/openocd_crp_trace.py","line":114,"fingerprint":"python.lang.security.audit.subprocess-shell-true:scripts/openocd_crp_trace.py:114"},{"rule_id":"opengrep/python.lang.security.audit.dangerous-subprocess-use-audit","severity":"high","message":"Detected subprocess function 'run' without a static string. If this data can be controlled by a malicious actor, it may be an instance of command injection. Audit the use of this call to ensure it is not controllable by an external resource. You may consider using 'shlex.escape()'. [confidence low]","path":"scripts/openocd_crp_trace_rom.py","line":26,"fingerprint":"python.lang.security.audit.dangerous-subprocess-use-audit:scripts/openocd_crp_trace_rom.py:26"},{"rule_id":"opengrep/python.lang.security.audit.dangerous-subprocess-use-audit","severity":"high","message":"Detected subprocess function 'run' without a static string. If this data can be controlled by a malicious actor, it may be an instance of command injection. Audit the use of this call to ensure it is not controllable by an external resource. You may consider using 'shlex.escape()'. [confidence low]","path":"scripts/openocd_crp_trace_simple.py","line":25,"fingerprint":"python.lang.security.audit.dangerous-subprocess-use-audit:scripts/openocd_crp_trace_simple.py:25"},{"rule_id":"opengrep/python.lang.security.audit.dangerous-subprocess-use-audit","severity":"high","message":"Detected subprocess function 'run' without a static string. If this data can be controlled by a malicious actor, it may be an instance of command injection. Audit the use of this call to ensure it is not controllable by an external resource. You may consider using 'shlex.escape()'. [confidence low]","path":"scripts/openocd_crp_trace_working.py","line":26,"fingerprint":"python.lang.security.audit.dangerous-subprocess-use-audit:scripts/openocd_crp_trace_working.py:26"},{"rule_id":"opengrep/python.lang.security.audit.dangerous-subprocess-use-audit","severity":"high","message":"Detected subprocess function 'run' without a static string. If this data can be controlled by a malicious actor, it may be an instance of command injection. Audit the use of this call to ensure it is not controllable by an external resource. You may consider using 'shlex.escape()'. [confidence low]","path":"scripts/optimize_params.py","line":41,"fingerprint":"python.lang.security.audit.dangerous-subprocess-use-audit:scripts/optimize_params.py:41"},{"rule_id":"opengrep/python.lang.security.audit.dangerous-subprocess-use-audit","severity":"high","message":"Detected subprocess function 'run' without a static string. If this data can be controlled by a malicious actor, it may be an instance of command injection. Audit the use of this call to ensure it is not controllable by an external resource. You may consider using 'shlex.escape()'. [confidence low]","path":"scripts/optimize_timing.py","line":46,"fingerprint":"python.lang.security.audit.dangerous-subprocess-use-audit:scripts/optimize_timing.py:46"},{"rule_id":"opengrep/python.lang.security.audit.dangerous-subprocess-use-audit","severity":"high","message":"Detected subprocess function 'run' without a static string. If this data can be controlled by a malicious actor, it may be an instance of command injection. Audit the use of this call to ensure it is not controllable by an external resource. You may consider using 'shlex.escape()'. [confidence low]","path":"scripts/optimize_timing_fine.py","line":40,"fingerprint":"python.lang.security.audit.dangerous-subprocess-use-audit:scripts/optimize_timing_fine.py:40"},{"rule_id":"opengrep/python.lang.security.audit.dangerous-subprocess-use-audit","severity":"high","message":"Detected subprocess function 'run' without a static string. If this data can be controlled by a malicious actor, it may be an instance of command injection. Audit the use of this call to ensure it is not controllable by an external resource. You may consider using 'shlex.escape()'. [confidence low]","path":"scripts/write_crp_protection.py","line":43,"fingerprint":"python.lang.security.audit.dangerous-subprocess-use-audit:scripts/write_crp_protection.py:43"},{"rule_id":"opengrep/c.lang.security.insecure-use-memset","severity":"medium","message":"When handling sensitive information in a buffer, it's important to ensure  that the data is securely erased before the buffer is deleted or reused.  While `memset()` is commonly used for this purpose, it can leave sensitive  information behind due to compiler optimizations or other factors.  To avoi [confidence low]","path":"src/chipshot_uart.c","line":47,"fingerprint":"c.lang.security.insecure-use-memset:src/chipshot_uart.c:47"},{"rule_id":"opengrep/c.lang.security.insecure-use-memset","severity":"medium","message":"When handling sensitive information in a buffer, it's important to ensure  that the data is securely erased before the buffer is deleted or reused.  While `memset()` is commonly used for this purpose, it can leave sensitive  information behind due to compiler optimizations or other factors.  To avoi [confidence low]","path":"src/chipshot_uart.c","line":124,"fingerprint":"c.lang.security.insecure-use-memset:src/chipshot_uart.c:124"},{"rule_id":"opengrep/c.lang.security.insecure-use-string-copy-fn","severity":"medium","message":"Finding triggers whenever there is a strcpy or strncpy used. This is an issue because strcpy does not affirm the size of the destination array and strncpy will not automatically NULL-terminate strings. This can lead to buffer overflows, which can cause program crashes and potentially let an attacker [confidence low]","path":"src/command_parser.c","line":84,"fingerprint":"c.lang.security.insecure-use-string-copy-fn:src/command_parser.c:84"},{"rule_id":"opengrep/c.lang.security.insecure-use-strtok-fn","severity":"medium","message":"Avoid using 'strtok()'. This function directly modifies the first argument buffer, permanently erasing the delimiter character. Use 'strtok_r()' instead. [confidence low]","path":"src/command_parser.c","line":91,"fingerprint":"c.lang.security.insecure-use-strtok-fn:src/command_parser.c:91"},{"rule_id":"opengrep/c.lang.security.insecure-use-string-copy-fn","severity":"medium","message":"Finding triggers whenever there is a strcpy or strncpy used. This is an issue because strcpy does not affirm the size of the destination array and strncpy will not automatically NULL-terminate strings. This can lead to buffer overflows, which can cause program crashes and potentially let an attacker [confidence low]","path":"src/command_parser.c","line":99,"fingerprint":"c.lang.security.insecure-use-string-copy-fn:src/command_parser.c:99"},{"rule_id":"opengrep/c.lang.security.insecure-use-strtok-fn","severity":"medium","message":"Avoid using 'strtok()'. This function directly modifies the first argument buffer, permanently erasing the delimiter character. Use 'strtok_r()' instead. [confidence low]","path":"src/command_parser.c","line":104,"fingerprint":"c.lang.security.insecure-use-strtok-fn:src/command_parser.c:104"},{"rule_id":"opengrep/c.lang.security.insecure-use-string-copy-fn","severity":"medium","message":"Finding triggers whenever there is a strcpy or strncpy used. This is an issue because strcpy does not affirm the size of the destination array and strncpy will not automatically NULL-terminate strings. This can lead to buffer overflows, which can cause program crashes and potentially let an attacker [confidence low]","path":"src/command_parser.c","line":147,"fingerprint":"c.lang.security.insecure-use-string-copy-fn:src/command_parser.c:147"},{"rule_id":"opengrep/c.lang.security.insecure-use-string-copy-fn","severity":"medium","message":"Finding triggers whenever there is a strcpy or strncpy used. This is an issue because strcpy does not affirm the size of the destination array and strncpy will not automatically NULL-terminate strings. This can lead to buffer overflows, which can cause program crashes and potentially let an attacker [confidence low]","path":"src/command_parser.c","line":1488,"fingerprint":"c.lang.security.insecure-use-string-copy-fn:src/command_parser.c:1488"},{"rule_id":"opengrep/c.lang.security.insecure-use-strcat-fn","severity":"medium","message":"Finding triggers whenever there is a strcat or strncat used. This is an issue because strcat or strncat can lead to buffer overflow vulns. Fix this by using strcat_s instead. [confidence low]","path":"src/command_parser.c","line":2717,"fingerprint":"c.lang.security.insecure-use-strcat-fn:src/command_parser.c:2717"},{"rule_id":"opengrep/c.lang.security.insecure-use-strcat-fn","severity":"medium","message":"Finding triggers whenever there is a strcat or strncat used. This is an issue because strcat or strncat can lead to buffer overflow vulns. Fix this by using strcat_s instead. [confidence low]","path":"src/command_parser.c","line":2718,"fingerprint":"c.lang.security.insecure-use-strcat-fn:src/command_parser.c:2718"},{"rule_id":"opengrep/c.lang.security.insecure-use-memset","severity":"medium","message":"When handling sensitive information in a buffer, it's important to ensure  that the data is securely erased before the buffer is deleted or reused.  While `memset()` is commonly used for this purpose, it can leave sensitive  information behind due to compiler optimizations or other factors.  To avoi [confidence low]","path":"src/glitch.c","line":212,"fingerprint":"c.lang.security.insecure-use-memset:src/glitch.c:212"},{"rule_id":"opengrep/c.lang.security.insecure-use-memset","severity":"medium","message":"When handling sensitive information in a buffer, it's important to ensure  that the data is securely erased before the buffer is deleted or reused.  While `memset()` is commonly used for this purpose, it can leave sensitive  information behind due to compiler optimizations or other factors.  To avoi [confidence low]","path":"src/glitch.c","line":226,"fingerprint":"c.lang.security.insecure-use-memset:src/glitch.c:226"},{"rule_id":"opengrep/c.lang.security.insecure-use-memset","severity":"medium","message":"When handling sensitive information in a buffer, it's important to ensure  that the data is securely erased before the buffer is deleted or reused.  While `memset()` is commonly used for this purpose, it can leave sensitive  information behind due to compiler optimizations or other factors.  To avoi [confidence low]","path":"src/glitch.c","line":229,"fingerprint":"c.lang.security.insecure-use-memset:src/glitch.c:229"},{"rule_id":"opengrep/c.lang.security.insecure-use-memset","severity":"medium","message":"When handling sensitive information in a buffer, it's important to ensure  that the data is securely erased before the buffer is deleted or reused.  While `memset()` is commonly used for this purpose, it can leave sensitive  information behind due to compiler optimizations or other factors.  To avoi [confidence low]","path":"src/glitch.c","line":914,"fingerprint":"c.lang.security.insecure-use-memset:src/glitch.c:914"},{"rule_id":"opengrep/c.lang.security.insecure-use-memset","severity":"medium","message":"When handling sensitive information in a buffer, it's important to ensure  that the data is securely erased before the buffer is deleted or reused.  While `memset()` is commonly used for this purpose, it can leave sensitive  information behind due to compiler optimizations or other factors.  To avoi [confidence low]","path":"src/target_uart.c","line":1043,"fingerprint":"c.lang.security.insecure-use-memset:src/target_uart.c:1043"},{"rule_id":"opengrep/c.lang.security.insecure-use-memset","severity":"medium","message":"When handling sensitive information in a buffer, it's important to ensure  that the data is securely erased before the buffer is deleted or reused.  While `memset()` is commonly used for this purpose, it can leave sensitive  information behind due to compiler optimizations or other factors.  To avoi [confidence low]","path":"src/target_uart.c","line":1354,"fingerprint":"c.lang.security.insecure-use-memset:src/target_uart.c:1354"},{"rule_id":"opengrep/c.lang.security.insecure-use-memset","severity":"medium","message":"When handling sensitive information in a buffer, it's important to ensure  that the data is securely erased before the buffer is deleted or reused.  While `memset()` is commonly used for this purpose, it can leave sensitive  information behind due to compiler optimizations or other factors.  To avoi [confidence low]","path":"src/uart_cli.c","line":32,"fingerprint":"c.lang.security.insecure-use-memset:src/uart_cli.c:32"},{"rule_id":"opengrep/c.lang.security.insecure-use-memset","severity":"medium","message":"When handling sensitive information in a buffer, it's important to ensure  that the data is securely erased before the buffer is deleted or reused.  While `memset()` is commonly used for this purpose, it can leave sensitive  information behind due to compiler optimizations or other factors.  To avoi [confidence low]","path":"src/uart_cli.c","line":37,"fingerprint":"c.lang.security.insecure-use-memset:src/uart_cli.c:37"},{"rule_id":"opengrep/c.lang.security.insecure-use-string-copy-fn","severity":"medium","message":"Finding triggers whenever there is a strcpy or strncpy used. This is an issue because strcpy does not affirm the size of the destination array and strncpy will not automatically NULL-terminate strings. This can lead to buffer overflows, which can cause program crashes and potentially let an attacker [confidence low]","path":"src/uart_cli.c","line":89,"fingerprint":"c.lang.security.insecure-use-string-copy-fn:src/uart_cli.c:89"},{"rule_id":"opengrep/c.lang.security.insecure-use-string-copy-fn","severity":"medium","message":"Finding triggers whenever there is a strcpy or strncpy used. This is an issue because strcpy does not affirm the size of the destination array and strncpy will not automatically NULL-terminate strings. This can lead to buffer overflows, which can cause program crashes and potentially let an attacker [confidence low]","path":"src/uart_cli.c","line":93,"fingerprint":"c.lang.security.insecure-use-string-copy-fn:src/uart_cli.c:93"},{"rule_id":"opengrep/c.lang.security.insecure-use-string-copy-fn","severity":"medium","message":"Finding triggers whenever there is a strcpy or strncpy used. This is an issue because strcpy does not affirm the size of the destination array and strncpy will not automatically NULL-terminate strings. This can lead to buffer overflows, which can cause program crashes and potentially let an attacker [confidence low]","path":"src/uart_cli.c","line":129,"fingerprint":"c.lang.security.insecure-use-string-copy-fn:src/uart_cli.c:129"},{"rule_id":"opengrep/c.lang.security.insecure-use-string-copy-fn","severity":"medium","message":"Finding triggers whenever there is a strcpy or strncpy used. This is an issue because strcpy does not affirm the size of the destination array and strncpy will not automatically NULL-terminate strings. This can lead to buffer overflows, which can cause program crashes and potentially let an attacker [confidence low]","path":"src/uart_cli.c","line":139,"fingerprint":"c.lang.security.insecure-use-string-copy-fn:src/uart_cli.c:139"},{"rule_id":"opengrep/c.lang.security.insecure-use-memset","severity":"medium","message":"When handling sensitive information in a buffer, it's important to ensure  that the data is securely erased before the buffer is deleted or reused.  While `memset()` is commonly used for this purpose, it can leave sensitive  information behind due to compiler optimizations or other factors.  To avoi [confidence low]","path":"src/uart_cli.c","line":211,"fingerprint":"c.lang.security.insecure-use-memset:src/uart_cli.c:211"},{"rule_id":"opengrep/python.lang.security.use-defusedcsv","severity":"low","message":"Detected the generation of a CSV file using the built-in `csv` module. If user data is used to generate the data in this file, it is possible that an attacker could inject a formula when the CSV is imported into a spreadsheet application that runs an attacker script, which could steal data from the  [confidence low]","path":"glitch_heatmap.py","line":150,"fingerprint":"python.lang.security.use-defusedcsv:glitch_heatmap.py:150"},{"rule_id":"opengrep/python.lang.security.use-defusedcsv","severity":"low","message":"Detected the generation of a CSV file using the built-in `csv` module. If user data is used to generate the data in this file, it is possible that an attacker could inject a formula when the CSV is imported into a spreadsheet application that runs an attacker script, which could steal data from the  [confidence low]","path":"glitch_heatmap.py","line":158,"fingerprint":"python.lang.security.use-defusedcsv:glitch_heatmap.py:158"},{"rule_id":"opengrep/python.lang.security.use-defusedcsv","severity":"low","message":"Detected the generation of a CSV file using the built-in `csv` module. If user data is used to generate the data in this file, it is possible that an attacker could inject a formula when the CSV is imported into a spreadsheet application that runs an attacker script, which could steal data from the  [confidence low]","path":"jtag_glitch_heatmap.py","line":102,"fingerprint":"python.lang.security.use-defusedcsv:jtag_glitch_heatmap.py:102"},{"rule_id":"opengrep/python.lang.security.use-defusedcsv","severity":"low","message":"Detected the generation of a CSV file using the built-in `csv` module. If user data is used to generate the data in this file, it is possible that an attacker could inject a formula when the CSV is imported into a spreadsheet application that runs an attacker script, which could steal data from the  [confidence low]","path":"jtag_glitch_heatmap.py","line":110,"fingerprint":"python.lang.security.use-defusedcsv:jtag_glitch_heatmap.py:110"},{"rule_id":"opengrep/python.lang.security.use-defusedcsv","severity":"low","message":"Detected the generation of a CSV file using the built-in `csv` module. If user data is used to generate the data in this file, it is possible that an attacker could inject a formula when the CSV is imported into a spreadsheet application that runs an attacker script, which could steal data from the  [confidence low]","path":"scripts/adaptive_glitch_explorer.py","line":229,"fingerprint":"python.lang.security.use-defusedcsv:scripts/adaptive_glitch_explorer.py:229"},{"rule_id":"opengrep/python.lang.security.use-defusedcsv","severity":"low","message":"Detected the generation of a CSV file using the built-in `csv` module. If user data is used to generate the data in this file, it is possible that an attacker could inject a formula when the CSV is imported into a spreadsheet application that runs an attacker script, which could steal data from the  [confidence low]","path":"scripts/crp3_fast_glitch.py","line":497,"fingerprint":"python.lang.security.use-defusedcsv:scripts/crp3_fast_glitch.py:497"},{"rule_id":"opengrep/python.lang.security.use-defusedcsv","severity":"low","message":"Detected the generation of a CSV file using the built-in `csv` module. If user data is used to generate the data in this file, it is possible that an attacker could inject a formula when the CSV is imported into a spreadsheet application that runs an attacker script, which could steal data from the  [confidence low]","path":"scripts/crp3_full_bypass.py","line":283,"fingerprint":"python.lang.security.use-defusedcsv:scripts/crp3_full_bypass.py:283"},{"rule_id":"opengrep/python.lang.security.use-defusedcsv","severity":"low","message":"Detected the generation of a CSV file using the built-in `csv` module. If user data is used to generate the data in this file, it is possible that an attacker could inject a formula when the CSV is imported into a spreadsheet application that runs an attacker script, which could steal data from the  [confidence low]","path":"scripts/crp3_to_crp2_glitch.py","line":846,"fingerprint":"python.lang.security.use-defusedcsv:scripts/crp3_to_crp2_glitch.py:846"},{"rule_id":"opengrep/python.lang.security.use-defusedcsv","severity":"low","message":"Detected the generation of a CSV file using the built-in `csv` module. If user data is used to generate the data in this file, it is possible that an attacker could inject a formula when the CSV is imported into a spreadsheet application that runs an attacker script, which could steal data from the  [confidence low]","path":"scripts/glitch_marathon.py","line":221,"fingerprint":"python.lang.security.use-defusedcsv:scripts/glitch_marathon.py:221"},{"rule_id":"opengrep/python.lang.security.use-defusedcsv","severity":"low","message":"Detected the generation of a CSV file using the built-in `csv` module. If user data is used to generate the data in this file, it is possible that an attacker could inject a formula when the CSV is imported into a spreadsheet application that runs an attacker script, which could steal data from the  [confidence low]","path":"scripts/lpc_voltage_glitch_sweep.py","line":97,"fingerprint":"python.lang.security.use-defusedcsv:scripts/lpc_voltage_glitch_sweep.py:97"},{"rule_id":"opengrep/python.lang.security.use-defusedcsv","severity":"low","message":"Detected the generation of a CSV file using the built-in `csv` module. If user data is used to generate the data in this file, it is possible that an attacker could inject a formula when the CSV is imported into a spreadsheet application that runs an attacker script, which could steal data from the  [confidence low]","path":"scripts/lpc_voltage_glitch_sweep.py","line":105,"fingerprint":"python.lang.security.use-defusedcsv:scripts/lpc_voltage_glitch_sweep.py:105"}],"evidence":[],"data":{"rulesets":["c","python","bash"]},"error":null},{"analyzer":"sec-deps","pillar":"security","status":"ok","tool_version":"osv-scanner version: 2.7.1","metrics":{"vulnerable_packages":3.0,"vulnerabilities":56.0,"vulns_critical":8.0,"vulns_high":33.0,"vulns_medium":13.0,"vulns_low":0.0,"vulns_unknown":2.0,"penalty":21.0},"findings":[{"rule_id":"osv/GHSA-9j59-75qj-795w","severity":"critical","message":"pillow@9.0 (PyPI) is affected by PYSEC-2022-168, GHSA-9j59-75qj-795w; also in requirements.txt","path":"requirements-dev.txt","line":null,"fingerprint":"pillow@9.0 (PyPI):GHSA-9j59-75qj-795w"},{"rule_id":"osv/GHSA-5x8w-8jj5-q52h","severity":"critical","message":"pillow@9.0 (PyPI) is affected by PYSEC-2026-4330, GHSA-5x8w-8jj5-q52h; also in requirements.txt","path":"requirements-dev.txt","line":null,"fingerprint":"pillow@9.0 (PyPI):GHSA-5x8w-8jj5-q52h"},{"rule_id":"osv/GHSA-8g5g-8vmr-9782","severity":"critical","message":"pillow@9.0 (PyPI) is affected by PYSEC-2026-4332, GHSA-8g5g-8vmr-9782; also in requirements.txt","path":"requirements-dev.txt","line":null,"fingerprint":"pillow@9.0 (PyPI):GHSA-8g5g-8vmr-9782"},{"rule_id":"osv/GHSA-xvh5-g6gv-559v","severity":"critical","message":"pillow@9.0 (PyPI) is affected by PYSEC-2026-4363, GHSA-xvh5-g6gv-559v; also in requirements.txt","path":"requirements-dev.txt","line":null,"fingerprint":"pillow@9.0 (PyPI):GHSA-xvh5-g6gv-559v"},{"rule_id":"osv/GHSA-3f63-hfp8-52jq","severity":"critical","message":"pillow@9.0 (PyPI) is affected by PYSEC-2026-457, GHSA-3f63-hfp8-52jq; also in requirements.txt","path":"requirements-dev.txt","line":null,"fingerprint":"pillow@9.0 (PyPI):GHSA-3f63-hfp8-52jq"},{"rule_id":"osv/GHSA-332p-7hrc-92wf","severity":"critical","message":"pillow@9.0 (PyPI) is affected by GHSA-332p-7hrc-92wf; also in requirements.txt","path":"requirements-dev.txt","line":null,"fingerprint":"pillow@9.0 (PyPI):GHSA-332p-7hrc-92wf"},{"rule_id":"osv/GHSA-8vj2-vxx3-667w","severity":"critical","message":"pillow@9.0 (PyPI) is affected by GHSA-8vj2-vxx3-667w; also in requirements.txt","path":"requirements-dev.txt","line":null,"fingerprint":"pillow@9.0 (PyPI):GHSA-8vj2-vxx3-667w"},{"rule_id":"osv/GHSA-w889-685w-c8fh","severity":"critical","message":"pillow@9.0 (PyPI) is affected by GHSA-w889-685w-c8fh; also in requirements.txt","path":"requirements-dev.txt","line":null,"fingerprint":"pillow@9.0 (PyPI):GHSA-w889-685w-c8fh"},{"rule_id":"osv/GHSA-44wm-f244-xhp3","severity":"high","message":"pillow@9.0 (PyPI) is affected by PYSEC-2026-1793, GHSA-44wm-f244-xhp3; also in requirements.txt","path":"requirements-dev.txt","line":null,"fingerprint":"pillow@9.0 (PyPI):GHSA-44wm-f244-xhp3"},{"rule_id":"osv/GHSA-j7hp-h8jx-5ppr","severity":"high","message":"pillow@9.0 (PyPI) is affected by PYSEC-2026-1794, GHSA-j7hp-h8jx-5ppr; also in requirements.txt","path":"requirements-dev.txt","line":null,"fingerprint":"pillow@9.0 (PyPI):GHSA-j7hp-h8jx-5ppr"},{"rule_id":"osv/GHSA-8v84-f9pq-wr9x","severity":"high","message":"pillow@9.0 (PyPI) is affected by PYSEC-2026-2253, GHSA-8v84-f9pq-wr9x; also in requirements.txt","path":"requirements-dev.txt","line":null,"fingerprint":"pillow@9.0 (PyPI):GHSA-8v84-f9pq-wr9x"},{"rule_id":"osv/GHSA-5x94-69rx-g8h2","severity":"high","message":"pillow@9.0 (PyPI) is affected by PYSEC-2026-2254, GHSA-5x94-69rx-g8h2; also in requirements.txt","path":"requirements-dev.txt","line":null,"fingerprint":"pillow@9.0 (PyPI):GHSA-5x94-69rx-g8h2"},{"rule_id":"osv/GHSA-45hq-cxwh-f6vc","severity":"high","message":"pillow@9.0 (PyPI) is affected by PYSEC-2026-2255, GHSA-45hq-cxwh-f6vc; also in requirements.txt","path":"requirements-dev.txt","line":null,"fingerprint":"pillow@9.0 (PyPI):GHSA-45hq-cxwh-f6vc"},{"rule_id":"osv/GHSA-phj9-mv4w-65pm","severity":"high","message":"pillow@9.0 (PyPI) is affected by PYSEC-2026-2256, GHSA-phj9-mv4w-65pm; also in requirements.txt","path":"requirements-dev.txt","line":null,"fingerprint":"pillow@9.0 (PyPI):GHSA-phj9-mv4w-65pm"},{"rule_id":"osv/GHSA-6r8x-57c9-28j4","severity":"high","message":"pillow@9.0 (PyPI) is affected by PYSEC-2026-3451, GHSA-6r8x-57c9-28j4; also in requirements.txt","path":"requirements-dev.txt","line":null,"fingerprint":"pillow@9.0 (PyPI):GHSA-6r8x-57c9-28j4"},{"rule_id":"osv/GHSA-9hw9-ch79-4vh6","severity":"high","message":"pillow@9.0 (PyPI) is affected by PYSEC-2026-3453, GHSA-9hw9-ch79-4vh6; also in requirements.txt","path":"requirements-dev.txt","line":null,"fingerprint":"pillow@9.0 (PyPI):GHSA-9hw9-ch79-4vh6"},{"rule_id":"osv/GHSA-xj96-63gp-2gmr","severity":"high","message":"pillow@9.0 (PyPI) is affected by PYSEC-2026-3454, GHSA-xj96-63gp-2gmr; also in requirements.txt","path":"requirements-dev.txt","line":null,"fingerprint":"pillow@9.0 (PyPI):GHSA-xj96-63gp-2gmr"},{"rule_id":"osv/GHSA-62p4-gmf7-7g93","severity":"high","message":"pillow@9.0 (PyPI) is affected by PYSEC-2026-3493, GHSA-62p4-gmf7-7g93; also in requirements.txt","path":"requirements-dev.txt","line":null,"fingerprint":"pillow@9.0 (PyPI):GHSA-62p4-gmf7-7g93"},{"rule_id":"osv/GHSA-jjj6-mw9f-p565","severity":"high","message":"pillow@9.0 (PyPI) is affected by PYSEC-2026-3495, GHSA-jjj6-mw9f-p565; also in requirements.txt","path":"requirements-dev.txt","line":null,"fingerprint":"pillow@9.0 (PyPI):GHSA-jjj6-mw9f-p565"},{"rule_id":"osv/GHSA-vjc4-5qp5-m44j","severity":"high","message":"pillow@9.0 (PyPI) is affected by PYSEC-2026-3496, GHSA-vjc4-5qp5-m44j; also in requirements.txt","path":"requirements-dev.txt","line":null,"fingerprint":"pillow@9.0 (PyPI):GHSA-vjc4-5qp5-m44j"},{"rule_id":"osv/GHSA-27h8-gf7j-v5hc","severity":"high","message":"pillow@9.0 (PyPI) is affected by PYSEC-2026-4326, GHSA-27h8-gf7j-v5hc; also in requirements.txt","path":"requirements-dev.txt","line":null,"fingerprint":"pillow@9.0 (PyPI):GHSA-27h8-gf7j-v5hc"},{"rule_id":"osv/GHSA-4558-3h8r-v8xp","severity":"high","message":"pillow@9.0 (PyPI) is affected by PYSEC-2026-4327, GHSA-4558-3h8r-v8xp; also in requirements.txt","path":"requirements-dev.txt","line":null,"fingerprint":"pillow@9.0 (PyPI):GHSA-4558-3h8r-v8xp"},{"rule_id":"osv/GHSA-58r4-6rv3-gfh8","severity":"high","message":"pillow@9.0 (PyPI) is affected by PYSEC-2026-4329, GHSA-58r4-6rv3-gfh8; also in requirements.txt","path":"requirements-dev.txt","line":null,"fingerprint":"pillow@9.0 (PyPI):GHSA-58r4-6rv3-gfh8"},{"rule_id":"osv/GHSA-7mwm-ghpf-9vrm","severity":"high","message":"pillow@9.0 (PyPI) is affected by PYSEC-2026-4331, GHSA-7mwm-ghpf-9vrm; also in requirements.txt","path":"requirements-dev.txt","line":null,"fingerprint":"pillow@9.0 (PyPI):GHSA-7mwm-ghpf-9vrm"},{"rule_id":"osv/GHSA-pchr-8j38-3x4p","severity":"high","message":"pillow@9.0 (PyPI) is affected by PYSEC-2026-4334, GHSA-pchr-8j38-3x4p; also in requirements.txt","path":"requirements-dev.txt","line":null,"fingerprint":"pillow@9.0 (PyPI):GHSA-pchr-8j38-3x4p"},{"rule_id":"osv/GHSA-xgh8-jp6q-p5x8","severity":"high","message":"pillow@9.0 (PyPI) is affected by PYSEC-2026-4335, GHSA-xgh8-jp6q-p5x8; also in requirements.txt","path":"requirements-dev.txt","line":null,"fingerprint":"pillow@9.0 (PyPI):GHSA-xgh8-jp6q-p5x8"},{"rule_id":"osv/GHSA-g842-9rc4-69pw","severity":"high","message":"pillow@9.0 (PyPI) is affected by PYSEC-2026-4338, GHSA-g842-9rc4-69pw; also in requirements.txt","path":"requirements-dev.txt","line":null,"fingerprint":"pillow@9.0 (PyPI):GHSA-g842-9rc4-69pw"},{"rule_id":"osv/GHSA-3j72-p6qg-6xp7","severity":"high","message":"pillow@9.0 (PyPI) is affected by PYSEC-2026-4341, GHSA-3j72-p6qg-6xp7; also in requirements.txt","path":"requirements-dev.txt","line":null,"fingerprint":"pillow@9.0 (PyPI):GHSA-3j72-p6qg-6xp7"},{"rule_id":"osv/GHSA-9v9v-9qvf-h2hj","severity":"high","message":"pillow@9.0 (PyPI) is affected by PYSEC-2026-4343, GHSA-9v9v-9qvf-h2hj; also in requirements.txt","path":"requirements-dev.txt","line":null,"fingerprint":"pillow@9.0 (PyPI):GHSA-9v9v-9qvf-h2hj"},{"rule_id":"osv/GHSA-22hg-r758-rrw9","severity":"high","message":"pillow@9.0 (PyPI) is affected by GHSA-22hg-r758-rrw9; also in requirements.txt","path":"requirements-dev.txt","line":null,"fingerprint":"pillow@9.0 (PyPI):GHSA-22hg-r758-rrw9"},{"rule_id":"osv/GHSA-5xm2-6676-qcp9","severity":"high","message":"pillow@9.0 (PyPI) is affected by GHSA-5xm2-6676-qcp9; also in requirements.txt","path":"requirements-dev.txt","line":null,"fingerprint":"pillow@9.0 (PyPI):GHSA-5xm2-6676-qcp9"},{"rule_id":"osv/GHSA-8ghj-p4vj-mr35","severity":"high","message":"pillow@9.0 (PyPI) is affected by GHSA-8ghj-p4vj-mr35; also in requirements.txt","path":"requirements-dev.txt","line":null,"fingerprint":"pillow@9.0 (PyPI):GHSA-8ghj-p4vj-mr35"},{"rule_id":"osv/GHSA-c6hw-5grf-ff96","severity":"high","message":"pillow@9.0 (PyPI) is affected by GHSA-c6hw-5grf-ff96; also in requirements.txt","path":"requirements-dev.txt","line":null,"fingerprint":"pillow@9.0 (PyPI):GHSA-c6hw-5grf-ff96"},{"rule_id":"osv/GHSA-f2g6-542v-9j58","severity":"high","message":"pillow@9.0 (PyPI) is affected by GHSA-f2g6-542v-9j58; also in requirements.txt","path":"requirements-dev.txt","line":null,"fingerprint":"pillow@9.0 (PyPI):GHSA-f2g6-542v-9j58"},{"rule_id":"osv/GHSA-gg2r-wvfm-q9rx","severity":"high","message":"pillow@9.0 (PyPI) is affected by GHSA-gg2r-wvfm-q9rx; also in requirements.txt","path":"requirements-dev.txt","line":null,"fingerprint":"pillow@9.0 (PyPI):GHSA-gg2r-wvfm-q9rx"},{"rule_id":"osv/GHSA-jg86-v3jv-hrpm","severity":"high","message":"pillow@9.0 (PyPI) is affected by GHSA-jg86-v3jv-hrpm; also in requirements.txt","path":"requirements-dev.txt","line":null,"fingerprint":"pillow@9.0 (PyPI):GHSA-jg86-v3jv-hrpm"},{"rule_id":"osv/GHSA-m2vv-5vj5-2hm7","severity":"high","message":"pillow@9.0 (PyPI) is affected by GHSA-m2vv-5vj5-2hm7; also in requirements.txt","path":"requirements-dev.txt","line":null,"fingerprint":"pillow@9.0 (PyPI):GHSA-m2vv-5vj5-2hm7"},{"rule_id":"osv/GHSA-mrfp-p49p-3hf2","severity":"high","message":"pillow@9.0 (PyPI) is affected by GHSA-mrfp-p49p-3hf2; also in requirements.txt","path":"requirements-dev.txt","line":null,"fingerprint":"pillow@9.0 (PyPI):GHSA-mrfp-p49p-3hf2"},{"rule_id":"osv/GHSA-p4wg-p73j-c528","severity":"high","message":"pillow@9.0 (PyPI) is affected by GHSA-p4wg-p73j-c528; also in requirements.txt","path":"requirements-dev.txt","line":null,"fingerprint":"pillow@9.0 (PyPI):GHSA-p4wg-p73j-c528"},{"rule_id":"osv/GHSA-q45j-58j2-45rg","severity":"high","message":"pillow@9.0 (PyPI) is affected by GHSA-q45j-58j2-45rg; also in requirements.txt","path":"requirements-dev.txt","line":null,"fingerprint":"pillow@9.0 (PyPI):GHSA-q45j-58j2-45rg"},{"rule_id":"osv/GHSA-xcvg-w56q-r89m","severity":"high","message":"pillow@9.0 (PyPI) is affected by GHSA-xcvg-w56q-r89m; also in requirements.txt","path":"requirements-dev.txt","line":null,"fingerprint":"pillow@9.0 (PyPI):GHSA-xcvg-w56q-r89m"},{"rule_id":"osv/PYSEC-2023-175","severity":"medium","message":"pillow@9.0 (PyPI) is affected by PYSEC-2023-175; also in requirements.txt","path":"requirements-dev.txt","line":null,"fingerprint":"pillow@9.0 (PyPI):PYSEC-2023-175"},{"rule_id":"osv/GHSA-wjx4-4jcj-g98j","severity":"medium","message":"pillow@9.0 (PyPI) is affected by PYSEC-2026-165, GHSA-wjx4-4jcj-g98j; also in requirements.txt","path":"requirements-dev.txt","line":null,"fingerprint":"pillow@9.0 (PyPI):GHSA-wjx4-4jcj-g98j"},{"rule_id":"osv/GHSA-4x4j-2g7c-83w6","severity":"medium","message":"pillow@9.0 (PyPI) is affected by PYSEC-2026-2257, GHSA-4x4j-2g7c-83w6; also in requirements.txt","path":"requirements-dev.txt","line":null,"fingerprint":"pillow@9.0 (PyPI):GHSA-4x4j-2g7c-83w6"},{"rule_id":"osv/GHSA-r73j-pqj5-w3x7","severity":"medium","message":"pillow@9.0 (PyPI) is affected by PYSEC-2026-2874, GHSA-r73j-pqj5-w3x7; also in requirements.txt","path":"requirements-dev.txt","line":null,"fingerprint":"pillow@9.0 (PyPI):GHSA-r73j-pqj5-w3x7"},{"rule_id":"osv/GHSA-fj7v-r99m-22gq","severity":"medium","message":"pillow@9.0 (PyPI) is affected by PYSEC-2026-3494, GHSA-fj7v-r99m-22gq; also in requirements.txt","path":"requirements-dev.txt","line":null,"fingerprint":"pillow@9.0 (PyPI):GHSA-fj7v-r99m-22gq"},{"rule_id":"osv/GHSA-p8hx-v2p6-rp84","severity":"medium","message":"pillow@9.0 (PyPI) is affected by PYSEC-2026-4337, GHSA-p8hx-v2p6-rp84; also in requirements.txt","path":"requirements-dev.txt","line":null,"fingerprint":"pillow@9.0 (PyPI):GHSA-p8hx-v2p6-rp84"},{"rule_id":"osv/GHSA-4rm8-3hmm-39fg","severity":"medium","message":"pillow@9.0 (PyPI) is affected by PYSEC-2026-4340, GHSA-4rm8-3hmm-39fg; also in requirements.txt","path":"requirements-dev.txt","line":null,"fingerprint":"pillow@9.0 (PyPI):GHSA-4rm8-3hmm-39fg"},{"rule_id":"osv/GHSA-254f-3936-288h","severity":"medium","message":"pillow@9.0 (PyPI) is affected by GHSA-254f-3936-288h; also in requirements.txt","path":"requirements-dev.txt","line":null,"fingerprint":"pillow@9.0 (PyPI):GHSA-254f-3936-288h"},{"rule_id":"osv/GHSA-462x-pgg6-55fp","severity":"medium","message":"pillow@9.0 (PyPI) is affected by GHSA-462x-pgg6-55fp; also in requirements.txt","path":"requirements-dev.txt","line":null,"fingerprint":"pillow@9.0 (PyPI):GHSA-462x-pgg6-55fp"},{"rule_id":"osv/GHSA-74r2-7ff9-mjj2","severity":"medium","message":"pillow@9.0 (PyPI) is affected by GHSA-74r2-7ff9-mjj2; also in requirements.txt","path":"requirements-dev.txt","line":null,"fingerprint":"pillow@9.0 (PyPI):GHSA-74r2-7ff9-mjj2"},{"rule_id":"osv/GHSA-vx6w-vv9f-6gvg","severity":"medium","message":"pillow@9.0 (PyPI) is affected by GHSA-vx6w-vv9f-6gvg; also in requirements.txt","path":"requirements-dev.txt","line":null,"fingerprint":"pillow@9.0 (PyPI):GHSA-vx6w-vv9f-6gvg"},{"rule_id":"osv/GHSA-wqgw-9xfh-qf2g","severity":"medium","message":"pillow@9.0 (PyPI) is affected by GHSA-wqgw-9xfh-qf2g; also in requirements.txt","path":"requirements-dev.txt","line":null,"fingerprint":"pillow@9.0 (PyPI):GHSA-wqgw-9xfh-qf2g"},{"rule_id":"osv/GHSA-6p56-wp2h-9hxr","severity":"medium","message":"numpy@1.20 (PyPI) is affected by GHSA-6p56-wp2h-9hxr; also in requirements.txt","path":"requirements-dev.txt","line":null,"fingerprint":"numpy@1.20 (PyPI):GHSA-6p56-wp2h-9hxr"},{"rule_id":"osv/GHSA-fpfv-jqm9-f5jm","severity":"medium","message":"numpy@1.20 (PyPI) is affected by GHSA-fpfv-jqm9-f5jm; also in requirements.txt","path":"requirements-dev.txt","line":null,"fingerprint":"numpy@1.20 (PyPI):GHSA-fpfv-jqm9-f5jm"},{"rule_id":"osv/GHSA-6w46-j5rx-g56g","severity":"medium","message":"pytest@7.0 (PyPI) is affected by PYSEC-2026-1845, GHSA-6w46-j5rx-g56g","path":"requirements-dev.txt","line":null,"fingerprint":"pytest@7.0 (PyPI):GHSA-6w46-j5rx-g56g"}],"evidence":[],"data":{"ecosystems":["PyPI"]},"error":null},{"analyzer":"sec-actions","pillar":"security","status":"skipped","tool_version":null,"metrics":{},"findings":[],"evidence":[],"data":{},"error":null},{"analyzer":"sec-posture","pillar":"security","status":"ok","tool_version":null,"metrics":{"check:security_policy":0.0,"check:dependency_updates":0.0,"check:signed_commits":0.0,"check:lockfiles":1.0,"signed_commit_share":0.0222,"unpinned_manifests":0.0},"findings":[],"evidence":[],"data":{},"error":null},{"analyzer":"sec-distribution","pillar":"security","status":"ok","tool_version":null,"metrics":{"signals":0.0,"binary_assets":0.0,"suspicious":0.0},"findings":[],"evidence":[],"data":{"signals":[],"suspicious":false,"unusual_traction":false,"metadata":true},"error":null},{"analyzer":"qual-complexity","pillar":"quality","status":"ok","tool_version":"lizard 1.25.1","metrics":{"functions":694.0,"function_nloc":19517.0,"mean_ccn":7.59,"p90_ccn":16.0,"complex_functions":71.0,"long_functions":26.0,"many_param_functions":3.0,"risky_nloc_share":0.5448},"findings":[],"evidence":[{"kind":"complex-function","description":"command_parser_execute in src/command_parser.c: complexity 1081, 3648 lines","ref":"src/command_parser.c","url":"https://github.com/AdamLaurie/raiden-pico/blob/101db56516a5f38113c83a11ff86c3aa38ef6475/src/command_parser.c#L454","weight":1.0},{"kind":"complex-function","description":"target_power_halt in src/target_uart.c: complexity 77, 312 lines","ref":"src/target_uart.c","url":"https://github.com/AdamLaurie/raiden-pico/blob/101db56516a5f38113c83a11ff86c3aa38ef6475/src/target_uart.c#L4504","weight":1.0},{"kind":"complex-function","description":"target_power_bypass in src/target_uart.c: complexity 59, 258 lines","ref":"src/target_uart.c","url":"https://github.com/AdamLaurie/raiden-pico/blob/101db56516a5f38113c83a11ff86c3aa38ef6475/src/target_uart.c#L2694","weight":0.9833333333333333},{"kind":"complex-function","description":"romgadget_run in src/target_uart.c: complexity 57, 207 lines","ref":"src/target_uart.c","url":"https://github.com/AdamLaurie/raiden-pico/blob/101db56516a5f38113c83a11ff86c3aa38ef6475/src/target_uart.c#L3472","weight":0.95},{"kind":"complex-function","description":"target_power_shadowbypass in src/target_uart.c: complexity 55, 163 lines","ref":"src/target_uart.c","url":"https://github.com/AdamLaurie/raiden-pico/blob/101db56516a5f38113c83a11ff86c3aa38ef6475/src/target_uart.c#L3039","weight":0.9166666666666666},{"kind":"complex-function","description":"target_power_shadowtrace in src/target_uart.c: complexity 49, 101 lines","ref":"src/target_uart.c","url":"https://github.com/AdamLaurie/raiden-pico/blob/101db56516a5f38113c83a11ff86c3aa38ef6475/src/target_uart.c#L5018","weight":0.8166666666666667},{"kind":"complex-function","description":"target_power_regdump in src/target_uart.c: complexity 46, 258 lines","ref":"src/target_uart.c","url":"https://github.com/AdamLaurie/raiden-pico/blob/101db56516a5f38113c83a11ff86c3aa38ef6475/src/target_uart.c#L5527","weight":0.7666666666666667},{"kind":"complex-function","description":"target_power_i2cprobe in src/target_uart.c: complexity 44, 107 lines","ref":"src/target_uart.c","url":"https://github.com/AdamLaurie/raiden-pico/blob/101db56516a5f38113c83a11ff86c3aa38ef6475/src/target_uart.c#L3924","weight":0.7333333333333333},{"kind":"complex-function","description":"target_power_sweep in src/target_uart.c: complexity 42, 194 lines","ref":"src/target_uart.c","url":"https://github.com/AdamLaurie/raiden-pico/blob/101db56516a5f38113c83a11ff86c3aa38ef6475/src/target_uart.c#L1914","weight":0.7},{"kind":"complex-function","description":"target_power_timing in src/target_uart.c: complexity 41, 228 lines","ref":"src/target_uart.c","url":"https://github.com/AdamLaurie/raiden-pico/blob/101db56516a5f38113c83a11ff86c3aa38ef6475/src/target_uart.c#L6595","weight":0.6833333333333333}],"data":{},"error":null},{"analyzer":"qual-duplication","pillar":"quality","status":"ok","tool_version":"repotrust-dup-w6","metrics":{"compared_lines":26460.0,"duplicated_lines":3824.0,"duplicated_share":0.1445,"files":84.0},"findings":[],"evidence":[{"kind":"duplicate-code","description":"6+ duplicated lines: csv_to_heatmap.py:19 and glitch_heatmap.py:173","ref":"csv_to_heatmap.py","url":"https://github.com/AdamLaurie/raiden-pico/blob/101db56516a5f38113c83a11ff86c3aa38ef6475/csv_to_heatmap.py#L19","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: glitch_heatmap.py:149 and jtag_glitch_heatmap.py:101","ref":"glitch_heatmap.py","url":"https://github.com/AdamLaurie/raiden-pico/blob/101db56516a5f38113c83a11ff86c3aa38ef6475/glitch_heatmap.py#L149","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: glitch_heatmap.py:548 and glitch_heatmap.py:775","ref":"glitch_heatmap.py","url":"https://github.com/AdamLaurie/raiden-pico/blob/101db56516a5f38113c83a11ff86c3aa38ef6475/glitch_heatmap.py#L548","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: grid_scan.py:35 and grid_scan_simple.py:27","ref":"grid_scan.py","url":"https://github.com/AdamLaurie/raiden-pico/blob/101db56516a5f38113c83a11ff86c3aa38ef6475/grid_scan.py#L35","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: jtag_glitch_heatmap.py:289 and jtag_glitch_heatmap.py:441","ref":"jtag_glitch_heatmap.py","url":"https://github.com/AdamLaurie/raiden-pico/blob/101db56516a5f38113c83a11ff86c3aa38ef6475/jtag_glitch_heatmap.py#L289","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: scripts/adaptive_glitch_explorer.py:32 and scripts/glitch_marathon.py:33","ref":"scripts/adaptive_glitch_explorer.py","url":"https://github.com/AdamLaurie/raiden-pico/blob/101db56516a5f38113c83a11ff86c3aa38ef6475/scripts/adaptive_glitch_explorer.py#L32","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: scripts/adaptive_glitch_explorer.py:33 and scripts/check_chipshouter_faults.py:20","ref":"scripts/adaptive_glitch_explorer.py","url":"https://github.com/AdamLaurie/raiden-pico/blob/101db56516a5f38113c83a11ff86c3aa38ef6475/scripts/adaptive_glitch_explorer.py#L33","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: scripts/adaptive_glitch_explorer.py:45 and scripts/crp3_full_bypass.py:91","ref":"scripts/adaptive_glitch_explorer.py","url":"https://github.com/AdamLaurie/raiden-pico/blob/101db56516a5f38113c83a11ff86c3aa38ef6475/scripts/adaptive_glitch_explorer.py#L45","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: scripts/adaptive_glitch_explorer.py:46 and scripts/voltage_sweep.py:20","ref":"scripts/adaptive_glitch_explorer.py","url":"https://github.com/AdamLaurie/raiden-pico/blob/101db56516a5f38113c83a11ff86c3aa38ef6475/scripts/adaptive_glitch_explorer.py#L46","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: scripts/adaptive_glitch_explorer.py:168 and scripts/adaptive_glitch_explorer.py:195","ref":"scripts/adaptive_glitch_explorer.py","url":"https://github.com/AdamLaurie/raiden-pico/blob/101db56516a5f38113c83a11ff86c3aa38ef6475/scripts/adaptive_glitch_explorer.py#L168","weight":0.3}],"data":{},"error":null},{"analyzer":"qual-lint","pillar":"quality","status":"ok","tool_version":"opengrep 1.33.1; rules f1d2b562b414","metrics":{"findings":283.0,"weighted_findings":730.0,"scanned_lines":33402.0,"category:best-practice":250.0,"category:correctness":27.0,"category:maintainability":6.0},"findings":[{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"debug_flash_read.py","line":14,"fingerprint":"python.lang.best-practice.arbitrary-sleep:debug_flash_read.py:14"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"debug_flash_read.py","line":18,"fingerprint":"python.lang.best-practice.arbitrary-sleep:debug_flash_read.py:18"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"debug_flash_read.py","line":33,"fingerprint":"python.lang.best-practice.arbitrary-sleep:debug_flash_read.py:33"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"debug_flash_read.py","line":37,"fingerprint":"python.lang.best-practice.arbitrary-sleep:debug_flash_read.py:37"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"debug_flash_read.py","line":89,"fingerprint":"python.lang.best-practice.arbitrary-sleep:debug_flash_read.py:89"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"glitch_heatmap.py","line":882,"fingerprint":"python.lang.best-practice.arbitrary-sleep:glitch_heatmap.py:882"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"glitch_heatmap.py","line":887,"fingerprint":"python.lang.best-practice.arbitrary-sleep:glitch_heatmap.py:887"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"glitch_heatmap.py","line":895,"fingerprint":"python.lang.best-practice.arbitrary-sleep:glitch_heatmap.py:895"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"glitch_heatmap.py","line":901,"fingerprint":"python.lang.best-practice.arbitrary-sleep:glitch_heatmap.py:901"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"glitch_heatmap.py","line":913,"fingerprint":"python.lang.best-practice.arbitrary-sleep:glitch_heatmap.py:913"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"glitch_heatmap.py","line":929,"fingerprint":"python.lang.best-practice.arbitrary-sleep:glitch_heatmap.py:929"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"glitch_heatmap.py","line":936,"fingerprint":"python.lang.best-practice.arbitrary-sleep:glitch_heatmap.py:936"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"glitch_heatmap.py","line":948,"fingerprint":"python.lang.best-practice.arbitrary-sleep:glitch_heatmap.py:948"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"glitch_heatmap.py","line":954,"fingerprint":"python.lang.best-practice.arbitrary-sleep:glitch_heatmap.py:954"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"glitch_heatmap.py","line":957,"fingerprint":"python.lang.best-practice.arbitrary-sleep:glitch_heatmap.py:957"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"glitch_heatmap.py","line":965,"fingerprint":"python.lang.best-practice.arbitrary-sleep:glitch_heatmap.py:965"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"glitch_heatmap.py","line":971,"fingerprint":"python.lang.best-practice.arbitrary-sleep:glitch_heatmap.py:971"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"glitch_heatmap.py","line":1064,"fingerprint":"python.lang.best-practice.arbitrary-sleep:glitch_heatmap.py:1064"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"glitch_heatmap.py","line":1071,"fingerprint":"python.lang.best-practice.arbitrary-sleep:glitch_heatmap.py:1071"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"glitch_heatmap.py","line":1113,"fingerprint":"python.lang.best-practice.arbitrary-sleep:glitch_heatmap.py:1113"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"glitch_heatmap.py","line":1158,"fingerprint":"python.lang.best-practice.arbitrary-sleep:glitch_heatmap.py:1158"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"glitch_heatmap.py","line":1183,"fingerprint":"python.lang.best-practice.arbitrary-sleep:glitch_heatmap.py:1183"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"glitch_heatmap.py","line":1254,"fingerprint":"python.lang.best-practice.arbitrary-sleep:glitch_heatmap.py:1254"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"glitch_heatmap.py","line":1281,"fingerprint":"python.lang.best-practice.arbitrary-sleep:glitch_heatmap.py:1281"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"glitch_heatmap.py","line":1402,"fingerprint":"python.lang.best-practice.arbitrary-sleep:glitch_heatmap.py:1402"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"glitch_heatmap.py","line":1405,"fingerprint":"python.lang.best-practice.arbitrary-sleep:glitch_heatmap.py:1405"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"glitch_heatmap.py","line":1411,"fingerprint":"python.lang.best-practice.arbitrary-sleep:glitch_heatmap.py:1411"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"glitch_heatmap.py","line":1420,"fingerprint":"python.lang.best-practice.arbitrary-sleep:glitch_heatmap.py:1420"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"glitch_heatmap.py","line":1432,"fingerprint":"python.lang.best-practice.arbitrary-sleep:glitch_heatmap.py:1432"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"glitch_heatmap.py","line":1452,"fingerprint":"python.lang.best-practice.arbitrary-sleep:glitch_heatmap.py:1452"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"glitch_heatmap.py","line":1584,"fingerprint":"python.lang.best-practice.arbitrary-sleep:glitch_heatmap.py:1584"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"glitch_heatmap.py","line":1634,"fingerprint":"python.lang.best-practice.arbitrary-sleep:glitch_heatmap.py:1634"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"grid_scan.py","line":14,"fingerprint":"python.lang.best-practice.arbitrary-sleep:grid_scan.py:14"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"grid_scan.py","line":26,"fingerprint":"python.lang.best-practice.arbitrary-sleep:grid_scan.py:26"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"grid_scan.py","line":54,"fingerprint":"python.lang.best-practice.arbitrary-sleep:grid_scan.py:54"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"grid_scan.py","line":61,"fingerprint":"python.lang.best-practice.arbitrary-sleep:grid_scan.py:61"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"grid_scan.py","line":69,"fingerprint":"python.lang.best-practice.arbitrary-sleep:grid_scan.py:69"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"grid_scan_simple.py","line":18,"fingerprint":"python.lang.best-practice.arbitrary-sleep:grid_scan_simple.py:18"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"grid_scan_simple.py","line":48,"fingerprint":"python.lang.best-practice.arbitrary-sleep:grid_scan_simple.py:48"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"grid_scan_simple.py","line":55,"fingerprint":"python.lang.best-practice.arbitrary-sleep:grid_scan_simple.py:55"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"grid_scan_simple.py","line":63,"fingerprint":"python.lang.best-practice.arbitrary-sleep:grid_scan_simple.py:63"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"jtag_glitch_heatmap.py","line":512,"fingerprint":"python.lang.best-practice.arbitrary-sleep:jtag_glitch_heatmap.py:512"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"jtag_glitch_heatmap.py","line":517,"fingerprint":"python.lang.best-practice.arbitrary-sleep:jtag_glitch_heatmap.py:517"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"jtag_glitch_heatmap.py","line":525,"fingerprint":"python.lang.best-practice.arbitrary-sleep:jtag_glitch_heatmap.py:525"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"jtag_glitch_heatmap.py","line":531,"fingerprint":"python.lang.best-practice.arbitrary-sleep:jtag_glitch_heatmap.py:531"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"jtag_glitch_heatmap.py","line":543,"fingerprint":"python.lang.best-practice.arbitrary-sleep:jtag_glitch_heatmap.py:543"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"jtag_glitch_heatmap.py","line":559,"fingerprint":"python.lang.best-practice.arbitrary-sleep:jtag_glitch_heatmap.py:559"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"jtag_glitch_heatmap.py","line":564,"fingerprint":"python.lang.best-practice.arbitrary-sleep:jtag_glitch_heatmap.py:564"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"jtag_glitch_heatmap.py","line":572,"fingerprint":"python.lang.best-practice.arbitrary-sleep:jtag_glitch_heatmap.py:572"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"jtag_glitch_heatmap.py","line":577,"fingerprint":"python.lang.best-practice.arbitrary-sleep:jtag_glitch_heatmap.py:577"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"jtag_glitch_heatmap.py","line":582,"fingerprint":"python.lang.best-practice.arbitrary-sleep:jtag_glitch_heatmap.py:582"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"jtag_glitch_heatmap.py","line":636,"fingerprint":"python.lang.best-practice.arbitrary-sleep:jtag_glitch_heatmap.py:636"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"jtag_glitch_heatmap.py","line":687,"fingerprint":"python.lang.best-practice.arbitrary-sleep:jtag_glitch_heatmap.py:687"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"jtag_glitch_heatmap.py","line":691,"fingerprint":"python.lang.best-practice.arbitrary-sleep:jtag_glitch_heatmap.py:691"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"jtag_glitch_heatmap.py","line":718,"fingerprint":"python.lang.best-practice.arbitrary-sleep:jtag_glitch_heatmap.py:718"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"jtag_glitch_heatmap.py","line":722,"fingerprint":"python.lang.best-practice.arbitrary-sleep:jtag_glitch_heatmap.py:722"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"jtag_glitch_heatmap.py","line":748,"fingerprint":"python.lang.best-practice.arbitrary-sleep:jtag_glitch_heatmap.py:748"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"jtag_glitch_heatmap.py","line":751,"fingerprint":"python.lang.best-practice.arbitrary-sleep:jtag_glitch_heatmap.py:751"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"jtag_glitch_heatmap.py","line":756,"fingerprint":"python.lang.best-practice.arbitrary-sleep:jtag_glitch_heatmap.py:756"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"jtag_glitch_heatmap.py","line":765,"fingerprint":"python.lang.best-practice.arbitrary-sleep:jtag_glitch_heatmap.py:765"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"jtag_glitch_heatmap.py","line":775,"fingerprint":"python.lang.best-practice.arbitrary-sleep:jtag_glitch_heatmap.py:775"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"jtag_glitch_heatmap.py","line":790,"fingerprint":"python.lang.best-practice.arbitrary-sleep:jtag_glitch_heatmap.py:790"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"jtag_glitch_heatmap.py","line":965,"fingerprint":"python.lang.best-practice.arbitrary-sleep:jtag_glitch_heatmap.py:965"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"scripts/adaptive_glitch_explorer.py","line":37,"fingerprint":"python.lang.best-practice.arbitrary-sleep:scripts/adaptive_glitch_explorer.py:37"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"scripts/adaptive_glitch_explorer.py","line":61,"fingerprint":"python.lang.best-practice.arbitrary-sleep:scripts/adaptive_glitch_explorer.py:61"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"scripts/adaptive_glitch_explorer.py","line":91,"fingerprint":"python.lang.best-practice.arbitrary-sleep:scripts/adaptive_glitch_explorer.py:91"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"scripts/adaptive_glitch_explorer.py","line":279,"fingerprint":"python.lang.best-practice.arbitrary-sleep:scripts/adaptive_glitch_explorer.py:279"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"scripts/auto_glitch_explorer.py","line":206,"fingerprint":"python.lang.best-practice.arbitrary-sleep:scripts/auto_glitch_explorer.py:206"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"scripts/check_chipshouter_faults.py","line":25,"fingerprint":"python.lang.best-practice.arbitrary-sleep:scripts/check_chipshouter_faults.py:25"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"scripts/check_chipshouter_faults.py","line":37,"fingerprint":"python.lang.best-practice.arbitrary-sleep:scripts/check_chipshouter_faults.py:37"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"scripts/check_chipshouter_faults.py","line":47,"fingerprint":"python.lang.best-practice.arbitrary-sleep:scripts/check_chipshouter_faults.py:47"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"scripts/check_chipshouter_voltage.py","line":25,"fingerprint":"python.lang.best-practice.arbitrary-sleep:scripts/check_chipshouter_voltage.py:25"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"scripts/check_chipshouter_voltage.py","line":37,"fingerprint":"python.lang.best-practice.arbitrary-sleep:scripts/check_chipshouter_voltage.py:37"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"scripts/check_chipshouter_voltage.py","line":42,"fingerprint":"python.lang.best-practice.arbitrary-sleep:scripts/check_chipshouter_voltage.py:42"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"scripts/crp3_fast_glitch.py","line":22,"fingerprint":"python.lang.best-practice.arbitrary-sleep:scripts/crp3_fast_glitch.py:22"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"scripts/crp3_fast_glitch.py","line":32,"fingerprint":"python.lang.best-practice.arbitrary-sleep:scripts/crp3_fast_glitch.py:32"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"scripts/crp3_fast_glitch.py","line":36,"fingerprint":"python.lang.best-practice.arbitrary-sleep:scripts/crp3_fast_glitch.py:36"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"scripts/crp3_fast_glitch.py","line":56,"fingerprint":"python.lang.best-practice.arbitrary-sleep:scripts/crp3_fast_glitch.py:56"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"scripts/crp3_fast_glitch.py","line":60,"fingerprint":"python.lang.best-practice.arbitrary-sleep:scripts/crp3_fast_glitch.py:60"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"scripts/crp3_fast_glitch.py","line":64,"fingerprint":"python.lang.best-practice.arbitrary-sleep:scripts/crp3_fast_glitch.py:64"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"scripts/crp3_fast_glitch.py","line":76,"fingerprint":"python.lang.best-practice.arbitrary-sleep:scripts/crp3_fast_glitch.py:76"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"scripts/crp3_fast_glitch.py","line":81,"fingerprint":"python.lang.best-practice.arbitrary-sleep:scripts/crp3_fast_glitch.py:81"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"scripts/crp3_fast_glitch.py","line":85,"fingerprint":"python.lang.best-practice.arbitrary-sleep:scripts/crp3_fast_glitch.py:85"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"scripts/crp3_fast_glitch.py","line":94,"fingerprint":"python.lang.best-practice.arbitrary-sleep:scripts/crp3_fast_glitch.py:94"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"scripts/crp3_fast_glitch.py","line":105,"fingerprint":"python.lang.best-practice.arbitrary-sleep:scripts/crp3_fast_glitch.py:105"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"scripts/crp3_fast_glitch.py","line":111,"fingerprint":"python.lang.best-practice.arbitrary-sleep:scripts/crp3_fast_glitch.py:111"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"scripts/crp3_fast_glitch.py","line":114,"fingerprint":"python.lang.best-practice.arbitrary-sleep:scripts/crp3_fast_glitch.py:114"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"scripts/crp3_fast_glitch.py","line":121,"fingerprint":"python.lang.best-practice.arbitrary-sleep:scripts/crp3_fast_glitch.py:121"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"scripts/crp3_fast_glitch.py","line":127,"fingerprint":"python.lang.best-practice.arbitrary-sleep:scripts/crp3_fast_glitch.py:127"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"scripts/crp3_fast_glitch.py","line":140,"fingerprint":"python.lang.best-practice.arbitrary-sleep:scripts/crp3_fast_glitch.py:140"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"scripts/crp3_fast_glitch.py","line":145,"fingerprint":"python.lang.best-practice.arbitrary-sleep:scripts/crp3_fast_glitch.py:145"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"scripts/crp3_fast_glitch.py","line":163,"fingerprint":"python.lang.best-practice.arbitrary-sleep:scripts/crp3_fast_glitch.py:163"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"scripts/crp3_fast_glitch.py","line":170,"fingerprint":"python.lang.best-practice.arbitrary-sleep:scripts/crp3_fast_glitch.py:170"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"scripts/crp3_fast_glitch.py","line":176,"fingerprint":"python.lang.best-practice.arbitrary-sleep:scripts/crp3_fast_glitch.py:176"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"scripts/crp3_fast_glitch.py","line":181,"fingerprint":"python.lang.best-practice.arbitrary-sleep:scripts/crp3_fast_glitch.py:181"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"scripts/crp3_fast_glitch.py","line":197,"fingerprint":"python.lang.best-practice.arbitrary-sleep:scripts/crp3_fast_glitch.py:197"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"scripts/crp3_fast_glitch.py","line":202,"fingerprint":"python.lang.best-practice.arbitrary-sleep:scripts/crp3_fast_glitch.py:202"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"scripts/crp3_fast_glitch.py","line":220,"fingerprint":"python.lang.best-practice.arbitrary-sleep:scripts/crp3_fast_glitch.py:220"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"scripts/crp3_fast_glitch.py","line":229,"fingerprint":"python.lang.best-practice.arbitrary-sleep:scripts/crp3_fast_glitch.py:229"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"scripts/crp3_fast_glitch.py","line":270,"fingerprint":"python.lang.best-practice.arbitrary-sleep:scripts/crp3_fast_glitch.py:270"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"scripts/crp3_fast_glitch.py","line":288,"fingerprint":"python.lang.best-practice.arbitrary-sleep:scripts/crp3_fast_glitch.py:288"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"scripts/crp3_fast_glitch.py","line":294,"fingerprint":"python.lang.best-practice.arbitrary-sleep:scripts/crp3_fast_glitch.py:294"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"scripts/crp3_fast_glitch.py","line":306,"fingerprint":"python.lang.best-practice.arbitrary-sleep:scripts/crp3_fast_glitch.py:306"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"scripts/crp3_fast_glitch.py","line":311,"fingerprint":"python.lang.best-practice.arbitrary-sleep:scripts/crp3_fast_glitch.py:311"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"scripts/crp3_fast_glitch.py","line":337,"fingerprint":"python.lang.best-practice.arbitrary-sleep:scripts/crp3_fast_glitch.py:337"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"scripts/crp3_fast_glitch.py","line":380,"fingerprint":"python.lang.best-practice.arbitrary-sleep:scripts/crp3_fast_glitch.py:380"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"scripts/crp3_fast_glitch.py","line":417,"fingerprint":"python.lang.best-practice.arbitrary-sleep:scripts/crp3_fast_glitch.py:417"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"scripts/crp3_fast_glitch.py","line":422,"fingerprint":"python.lang.best-practice.arbitrary-sleep:scripts/crp3_fast_glitch.py:422"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"scripts/crp3_fast_glitch.py","line":426,"fingerprint":"python.lang.best-practice.arbitrary-sleep:scripts/crp3_fast_glitch.py:426"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"scripts/crp3_fast_glitch.py","line":428,"fingerprint":"python.lang.best-practice.arbitrary-sleep:scripts/crp3_fast_glitch.py:428"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"scripts/crp3_fast_glitch.py","line":437,"fingerprint":"python.lang.best-practice.arbitrary-sleep:scripts/crp3_fast_glitch.py:437"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"scripts/crp3_fast_glitch.py","line":443,"fingerprint":"python.lang.best-practice.arbitrary-sleep:scripts/crp3_fast_glitch.py:443"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"scripts/crp3_fast_glitch.py","line":449,"fingerprint":"python.lang.best-practice.arbitrary-sleep:scripts/crp3_fast_glitch.py:449"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"scripts/crp3_fast_glitch.py","line":455,"fingerprint":"python.lang.best-practice.arbitrary-sleep:scripts/crp3_fast_glitch.py:455"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"scripts/crp3_fast_glitch.py","line":461,"fingerprint":"python.lang.best-practice.arbitrary-sleep:scripts/crp3_fast_glitch.py:461"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"scripts/crp3_fast_glitch.py","line":467,"fingerprint":"python.lang.best-practice.arbitrary-sleep:scripts/crp3_fast_glitch.py:467"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"scripts/crp3_fast_glitch.py","line":507,"fingerprint":"python.lang.best-practice.arbitrary-sleep:scripts/crp3_fast_glitch.py:507"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"scripts/crp3_full_bypass.py","line":107,"fingerprint":"python.lang.best-practice.arbitrary-sleep:scripts/crp3_full_bypass.py:107"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"scripts/crp3_full_bypass.py","line":168,"fingerprint":"python.lang.best-practice.arbitrary-sleep:scripts/crp3_full_bypass.py:168"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"scripts/crp3_full_bypass.py","line":270,"fingerprint":"python.lang.best-practice.arbitrary-sleep:scripts/crp3_full_bypass.py:270"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"scripts/crp3_to_crp2_glitch.py","line":49,"fingerprint":"python.lang.best-practice.arbitrary-sleep:scripts/crp3_to_crp2_glitch.py:49"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"scripts/crp3_to_crp2_glitch.py","line":56,"fingerprint":"python.lang.best-practice.arbitrary-sleep:scripts/crp3_to_crp2_glitch.py:56"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"scripts/crp3_to_crp2_glitch.py","line":86,"fingerprint":"python.lang.best-practice.arbitrary-sleep:scripts/crp3_to_crp2_glitch.py:86"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"scripts/crp3_to_crp2_glitch.py","line":95,"fingerprint":"python.lang.best-practice.arbitrary-sleep:scripts/crp3_to_crp2_glitch.py:95"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"scripts/crp3_to_crp2_glitch.py","line":101,"fingerprint":"python.lang.best-practice.arbitrary-sleep:scripts/crp3_to_crp2_glitch.py:101"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"scripts/crp3_to_crp2_glitch.py","line":132,"fingerprint":"python.lang.best-practice.arbitrary-sleep:scripts/crp3_to_crp2_glitch.py:132"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"scripts/crp3_to_crp2_glitch.py","line":166,"fingerprint":"python.lang.best-practice.arbitrary-sleep:scripts/crp3_to_crp2_glitch.py:166"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"scripts/crp3_to_crp2_glitch.py","line":187,"fingerprint":"python.lang.best-practice.arbitrary-sleep:scripts/crp3_to_crp2_glitch.py:187"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"scripts/crp3_to_crp2_glitch.py","line":209,"fingerprint":"python.lang.best-practice.arbitrary-sleep:scripts/crp3_to_crp2_glitch.py:209"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"scripts/crp3_to_crp2_glitch.py","line":223,"fingerprint":"python.lang.best-practice.arbitrary-sleep:scripts/crp3_to_crp2_glitch.py:223"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"scripts/crp3_to_crp2_glitch.py","line":284,"fingerprint":"python.lang.best-practice.arbitrary-sleep:scripts/crp3_to_crp2_glitch.py:284"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"scripts/crp3_to_crp2_glitch.py","line":293,"fingerprint":"python.lang.best-practice.arbitrary-sleep:scripts/crp3_to_crp2_glitch.py:293"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"scripts/crp3_to_crp2_glitch.py","line":324,"fingerprint":"python.lang.best-practice.arbitrary-sleep:scripts/crp3_to_crp2_glitch.py:324"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"scripts/crp3_to_crp2_glitch.py","line":329,"fingerprint":"python.lang.best-practice.arbitrary-sleep:scripts/crp3_to_crp2_glitch.py:329"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"scripts/crp3_to_crp2_glitch.py","line":348,"fingerprint":"python.lang.best-practice.arbitrary-sleep:scripts/crp3_to_crp2_glitch.py:348"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"scripts/crp3_to_crp2_glitch.py","line":355,"fingerprint":"python.lang.best-practice.arbitrary-sleep:scripts/crp3_to_crp2_glitch.py:355"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"scripts/crp3_to_crp2_glitch.py","line":365,"fingerprint":"python.lang.best-practice.arbitrary-sleep:scripts/crp3_to_crp2_glitch.py:365"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"scripts/crp3_to_crp2_glitch.py","line":418,"fingerprint":"python.lang.best-practice.arbitrary-sleep:scripts/crp3_to_crp2_glitch.py:418"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"scripts/crp3_to_crp2_glitch.py","line":427,"fingerprint":"python.lang.best-practice.arbitrary-sleep:scripts/crp3_to_crp2_glitch.py:427"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"scripts/crp3_to_crp2_glitch.py","line":434,"fingerprint":"python.lang.best-practice.arbitrary-sleep:scripts/crp3_to_crp2_glitch.py:434"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"scripts/crp3_to_crp2_glitch.py","line":466,"fingerprint":"python.lang.best-practice.arbitrary-sleep:scripts/crp3_to_crp2_glitch.py:466"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"scripts/crp3_to_crp2_glitch.py","line":474,"fingerprint":"python.lang.best-practice.arbitrary-sleep:scripts/crp3_to_crp2_glitch.py:474"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"scripts/crp3_to_crp2_glitch.py","line":486,"fingerprint":"python.lang.best-practice.arbitrary-sleep:scripts/crp3_to_crp2_glitch.py:486"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"scripts/crp3_to_crp2_glitch.py","line":503,"fingerprint":"python.lang.best-practice.arbitrary-sleep:scripts/crp3_to_crp2_glitch.py:503"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"scripts/crp3_to_crp2_glitch.py","line":534,"fingerprint":"python.lang.best-practice.arbitrary-sleep:scripts/crp3_to_crp2_glitch.py:534"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"scripts/crp3_to_crp2_glitch.py","line":746,"fingerprint":"python.lang.best-practice.arbitrary-sleep:scripts/crp3_to_crp2_glitch.py:746"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"scripts/crp3_to_crp2_glitch.py","line":752,"fingerprint":"python.lang.best-practice.arbitrary-sleep:scripts/crp3_to_crp2_glitch.py:752"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"scripts/crp3_to_crp2_glitch.py","line":762,"fingerprint":"python.lang.best-practice.arbitrary-sleep:scripts/crp3_to_crp2_glitch.py:762"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"scripts/crp3_to_crp2_glitch.py","line":766,"fingerprint":"python.lang.best-practice.arbitrary-sleep:scripts/crp3_to_crp2_glitch.py:766"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"scripts/crp3_to_crp2_glitch.py","line":965,"fingerprint":"python.lang.best-practice.arbitrary-sleep:scripts/crp3_to_crp2_glitch.py:965"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"scripts/debug_crp3_sync.py","line":8,"fingerprint":"python.lang.best-practice.arbitrary-sleep:scripts/debug_crp3_sync.py:8"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"scripts/debug_crp3_sync.py","line":16,"fingerprint":"python.lang.best-practice.arbitrary-sleep:scripts/debug_crp3_sync.py:16"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"scripts/debug_crp3_sync.py","line":20,"fingerprint":"python.lang.best-practice.arbitrary-sleep:scripts/debug_crp3_sync.py:20"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"scripts/debug_crp3_sync.py","line":24,"fingerprint":"python.lang.best-practice.arbitrary-sleep:scripts/debug_crp3_sync.py:24"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"scripts/debug_crp3_sync.py","line":28,"fingerprint":"python.lang.best-practice.arbitrary-sleep:scripts/debug_crp3_sync.py:28"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"scripts/debug_crp3_sync.py","line":34,"fingerprint":"python.lang.best-practice.arbitrary-sleep:scripts/debug_crp3_sync.py:34"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"scripts/debug_crp3_sync.py","line":39,"fingerprint":"python.lang.best-practice.arbitrary-sleep:scripts/debug_crp3_sync.py:39"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"scripts/debug_crp3_sync.py","line":51,"fingerprint":"python.lang.best-practice.arbitrary-sleep:scripts/debug_crp3_sync.py:51"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"scripts/glitch_marathon.py","line":39,"fingerprint":"python.lang.best-practice.arbitrary-sleep:scripts/glitch_marathon.py:39"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"scripts/glitch_marathon.py","line":66,"fingerprint":"python.lang.best-practice.arbitrary-sleep:scripts/glitch_marathon.py:66"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"scripts/glitch_marathon.py","line":85,"fingerprint":"python.lang.best-practice.arbitrary-sleep:scripts/glitch_marathon.py:85"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"scripts/glitch_marathon.py","line":96,"fingerprint":"python.lang.best-practice.arbitrary-sleep:scripts/glitch_marathon.py:96"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"scripts/glitch_marathon.py","line":102,"fingerprint":"python.lang.best-practice.arbitrary-sleep:scripts/glitch_marathon.py:102"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"scripts/glitch_marathon.py","line":126,"fingerprint":"python.lang.best-practice.arbitrary-sleep:scripts/glitch_marathon.py:126"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"scripts/glitch_marathon.py","line":133,"fingerprint":"python.lang.best-practice.arbitrary-sleep:scripts/glitch_marathon.py:133"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"scripts/glitch_marathon.py","line":137,"fingerprint":"python.lang.best-practice.arbitrary-sleep:scripts/glitch_marathon.py:137"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"scripts/glitch_marathon.py","line":150,"fingerprint":"python.lang.best-practice.arbitrary-sleep:scripts/glitch_marathon.py:150"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"scripts/glitch_marathon.py","line":166,"fingerprint":"python.lang.best-practice.arbitrary-sleep:scripts/glitch_marathon.py:166"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"scripts/glitch_marathon.py","line":199,"fingerprint":"python.lang.best-practice.arbitrary-sleep:scripts/glitch_marathon.py:199"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"scripts/glitch_marathon.py","line":266,"fingerprint":"python.lang.best-practice.arbitrary-sleep:scripts/glitch_marathon.py:266"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"scripts/glitch_parameter_sweep.py","line":37,"fingerprint":"python.lang.best-practice.arbitrary-sleep:scripts/glitch_parameter_sweep.py:37"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"scripts/glitch_parameter_sweep.py","line":74,"fingerprint":"python.lang.best-practice.arbitrary-sleep:scripts/glitch_parameter_sweep.py:74"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"scripts/glitch_parameter_sweep.py","line":94,"fingerprint":"python.lang.best-practice.arbitrary-sleep:scripts/glitch_parameter_sweep.py:94"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"scripts/glitch_parameter_sweep.py","line":101,"fingerprint":"python.lang.best-practice.arbitrary-sleep:scripts/glitch_parameter_sweep.py:101"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"scripts/glitch_parameter_sweep.py","line":107,"fingerprint":"python.lang.best-practice.arbitrary-sleep:scripts/glitch_parameter_sweep.py:107"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"scripts/glitch_parameter_sweep.py","line":117,"fingerprint":"python.lang.best-practice.arbitrary-sleep:scripts/glitch_parameter_sweep.py:117"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"scripts/glitch_parameter_sweep.py","line":141,"fingerprint":"python.lang.best-practice.arbitrary-sleep:scripts/glitch_parameter_sweep.py:141"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"scripts/glitch_parameter_sweep.py","line":197,"fingerprint":"python.lang.best-practice.arbitrary-sleep:scripts/glitch_parameter_sweep.py:197"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"scripts/glitch_parameter_sweep.py","line":223,"fingerprint":"python.lang.best-practice.arbitrary-sleep:scripts/glitch_parameter_sweep.py:223"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"scripts/glitch_parameter_sweep.py","line":271,"fingerprint":"python.lang.best-practice.arbitrary-sleep:scripts/glitch_parameter_sweep.py:271"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"scripts/lpc_voltage_glitch_sweep.py","line":270,"fingerprint":"python.lang.best-practice.arbitrary-sleep:scripts/lpc_voltage_glitch_sweep.py:270"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"scripts/lpc_voltage_glitch_sweep.py","line":277,"fingerprint":"python.lang.best-practice.arbitrary-sleep:scripts/lpc_voltage_glitch_sweep.py:277"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"scripts/lpc_voltage_glitch_sweep.py","line":305,"fingerprint":"python.lang.best-practice.arbitrary-sleep:scripts/lpc_voltage_glitch_sweep.py:305"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"scripts/lpc_voltage_glitch_sweep.py","line":374,"fingerprint":"python.lang.best-practice.arbitrary-sleep:scripts/lpc_voltage_glitch_sweep.py:374"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"scripts/lpc_voltage_glitch_sweep.py","line":395,"fingerprint":"python.lang.best-practice.arbitrary-sleep:scripts/lpc_voltage_glitch_sweep.py:395"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"scripts/lpc_voltage_glitch_sweep.py","line":400,"fingerprint":"python.lang.best-practice.arbitrary-sleep:scripts/lpc_voltage_glitch_sweep.py:400"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"scripts/lpc_voltage_glitch_sweep.py","line":492,"fingerprint":"python.lang.best-practice.arbitrary-sleep:scripts/lpc_voltage_glitch_sweep.py:492"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"scripts/openocd_crp_trace.py","line":60,"fingerprint":"python.lang.best-practice.arbitrary-sleep:scripts/openocd_crp_trace.py:60"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"scripts/openocd_crp_trace.py","line":145,"fingerprint":"python.lang.best-practice.arbitrary-sleep:scripts/openocd_crp_trace.py:145"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"scripts/openocd_crp_trace.py","line":151,"fingerprint":"python.lang.best-practice.arbitrary-sleep:scripts/openocd_crp_trace.py:151"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"scripts/pio_trigger_torture.py","line":43,"fingerprint":"python.lang.best-practice.arbitrary-sleep:scripts/pio_trigger_torture.py:43"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"scripts/pio_trigger_torture.py","line":47,"fingerprint":"python.lang.best-practice.arbitrary-sleep:scripts/pio_trigger_torture.py:47"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"scripts/pio_trigger_torture.py","line":72,"fingerprint":"python.lang.best-practice.arbitrary-sleep:scripts/pio_trigger_torture.py:72"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"scripts/pio_trigger_torture.py","line":193,"fingerprint":"python.lang.best-practice.arbitrary-sleep:scripts/pio_trigger_torture.py:193"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"scripts/reset_pico.py","line":39,"fingerprint":"python.lang.best-practice.arbitrary-sleep:scripts/reset_pico.py:39"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"scripts/reset_pico.py","line":42,"fingerprint":"python.lang.best-practice.arbitrary-sleep:scripts/reset_pico.py:42"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"scripts/reset_pico.py","line":45,"fingerprint":"python.lang.best-practice.arbitrary-sleep:scripts/reset_pico.py:45"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"scripts/reset_pico.py","line":52,"fingerprint":"python.lang.best-practice.arbitrary-sleep:scripts/reset_pico.py:52"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"scripts/stm32_bootloader.py","line":19,"fingerprint":"python.lang.best-practice.arbitrary-sleep:scripts/stm32_bootloader.py:19"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"scripts/stm32_bootloader.py","line":46,"fingerprint":"python.lang.best-practice.arbitrary-sleep:scripts/stm32_bootloader.py:46"}],"evidence":[],"data":{},"error":null},{"analyzer":"qual-testing","pillar":"quality","status":"ok","tool_version":null,"metrics":{"check:has_tests":1.0,"check:test_ratio":0.3795,"check:ci_present":0.0,"check:ci_runs_tests":0.0,"check:ci_runs_lint":0.0,"check:tests_cochange":1.0,"test_lines":6338.0,"source_lines":33402.0,"test_ratio":0.1897,"ci_files":0.0,"cochange_share":0.2574,"cochange_commits":136.0},"findings":[],"evidence":[],"data":{"test_commands":[],"lint_commands":[]},"error":null},{"analyzer":"qual-docs","pillar":"quality","status":"ok","tool_version":null,"metrics":{"check:readme":1.0,"check:license":0.0,"check:contributing":0.0,"check:changelog":1.0,"readme_lines":1089.0},"findings":[],"evidence":[{"kind":"docs","description":"README.md","ref":"README.md","url":null,"weight":0.0},{"kind":"docs","description":"CHANGELOG.md","ref":"CHANGELOG.md","url":null,"weight":0.0}],"data":{},"error":null},{"analyzer":"qual-type-safety","pillar":"quality","status":"ok","tool_version":null,"metrics":{"check:strict_config":0.0,"check:low_escape_density":1.0,"escapes":0.0,"escapes_per_kloc":0.0},"findings":[],"evidence":[],"data":{},"error":null},{"analyzer":"x-blame","pillar":"ai_provenance","status":"ok","tool_version":"git-blame","metrics":{"ai_lines":31235.0,"other_lines":2167.0,"files_blamed":84.0,"blame_failures":0.0,"quality:ai_findings":200.0,"quality:ai_per_kloc":6.403,"quality:other_findings":0.0,"quality:other_per_kloc":0.0,"security:ai_findings":29.0,"security:ai_per_kloc":0.928,"security:other_findings":18.0,"security:other_per_kloc":8.306,"security:ratio":0.11},"findings":[],"evidence":[],"data":{"sampled":false,"comparable":true},"error":null}],"flags":["unreviewed-ai-risk"]}