[{"data":1,"prerenderedAt":784},["ShallowReactive",2],{"navigation_docs":3,"trending-repo-pollen-robotics\u002Fmicroduck":249,"page-views-\u002Ftrending\u002Fpollen-robotics\u002Fmicroduck":782},[4,29,104,124,194],{"title":5,"icon":6,"path":7,"stem":8,"children":9},"Start",false,"\u002Fstart","1.start",[10,14,19,24],{"title":11,"path":7,"stem":12,"icon":13},"What jscpd finds","1.start\u002Findex","i-lucide-house",{"title":15,"path":16,"stem":17,"icon":18},"Installation","\u002Fstart\u002Finstallation","1.start\u002F2.installation","i-lucide-download",{"title":20,"path":21,"stem":22,"icon":23},"Quickstart","\u002Fstart\u002Fquickstart","1.start\u002F3.quickstart","i-lucide-rocket",{"title":25,"path":26,"stem":27,"icon":28},"Configuration basics","\u002Fstart\u002Fconfiguration","1.start\u002F4.configuration","i-lucide-settings-2",{"title":30,"icon":6,"path":31,"stem":32,"children":33,"page":6},"Guides","\u002Fguides","2.guides",[34,39,44,49,54,59,64,69,74,79,84,89,94,99],{"title":35,"path":36,"stem":37,"icon":38},"Use jscpd in CI","\u002Fguides\u002Fci","2.guides\u002F01.ci","i-lucide-github",{"title":40,"path":41,"stem":42,"icon":43},"Pre-commit hooks","\u002Fguides\u002Fpre-commit","2.guides\u002F02.pre-commit","i-lucide-git-commit",{"title":45,"path":46,"stem":47,"icon":48},"Fail only on new duplication","\u002Fguides\u002Fbaseline","2.guides\u002F03.baseline","i-lucide-git-compare",{"title":50,"path":51,"stem":52,"icon":53},"Monorepos","\u002Fguides\u002Fmonorepos","2.guides\u002F04.monorepos","i-lucide-folder-tree",{"title":55,"path":56,"stem":57,"icon":58},"Cross-format detection","\u002Fguides\u002Fcross-format","2.guides\u002F05.cross-format","i-lucide-layers",{"title":60,"path":61,"stem":62,"icon":63},"Agents","\u002Fguides\u002Fagents","2.guides\u002F06.agents","i-lucide-cpu",{"title":65,"path":66,"stem":67,"icon":68},"Editors","\u002Fguides\u002Feditors","2.guides\u002F07.editors","i-lucide-code",{"title":70,"path":71,"stem":72,"icon":73},"Duplication over git history","\u002Fguides\u002Fhistory","2.guides\u002F08.history","i-lucide-chart-no-axes-combined",{"title":75,"path":76,"stem":77,"icon":78},"Dashboard and health score","\u002Fguides\u002Fdashboard","2.guides\u002F09.dashboard","i-lucide-layout-dashboard",{"title":80,"path":81,"stem":82,"icon":83},"Dead code","\u002Fguides\u002Fdead-code","2.guides\u002F10.dead-code","i-lucide-ghost",{"title":85,"path":86,"stem":87,"icon":88},"Comparing two codebases","\u002Fguides\u002Fcompare","2.guides\u002F11.compare","i-lucide-git-compare-arrows",{"title":90,"path":91,"stem":92,"icon":93},"Semantic clones","\u002Fguides\u002Fsemantic-clones","2.guides\u002F12.semantic-clones","i-lucide-brain-circuit",{"title":95,"path":96,"stem":97,"icon":98},"Similar functions","\u002Fguides\u002Fsimilarity","2.guides\u002F13.similarity","i-lucide-list-tree",{"title":100,"path":101,"stem":102,"icon":103},"Boundaries","\u002Fguides\u002Fboundaries","2.guides\u002F14.boundaries","i-lucide-fence",{"title":105,"icon":6,"path":106,"stem":107,"children":108,"page":6},"Concepts","\u002Fconcepts","3.concepts",[109,114,119],{"title":110,"path":111,"stem":112,"icon":113},"Types of code clones","\u002Fconcepts\u002Fclone-types","3.concepts\u002F1.clone-types","i-lucide-copy",{"title":115,"path":116,"stem":117,"icon":118},"How detection works","\u002Fconcepts\u002Fhow-detection-works","3.concepts\u002F2.how-detection-works","i-lucide-scan-search",{"title":120,"path":121,"stem":122,"icon":123},"The health score","\u002Fconcepts\u002Fhealth-score","3.concepts\u002F3.health-score","i-lucide-heart-pulse",{"title":125,"icon":6,"path":126,"stem":127,"children":128,"page":6},"Reference","\u002Freference","4.reference",[129,134,139,144,181,186,190],{"title":130,"path":131,"stem":132,"icon":133},"CLI options","\u002Freference\u002Fcli","4.reference\u002F1.cli","i-lucide-terminal",{"title":135,"path":136,"stem":137,"icon":138},"The config file","\u002Freference\u002Fconfig-file","4.reference\u002F2.config-file","i-lucide-settings",{"title":140,"path":141,"stem":142,"icon":143},"Exit codes","\u002Freference\u002Fexit-codes","4.reference\u002F3.exit-codes","i-lucide-log-out",{"title":145,"icon":6,"path":146,"stem":147,"children":148},"Reporters","\u002Freference\u002Freporters","4.reference\u002F4.reporters\u002Findex",[149,151,156,161,166,171,176],{"title":145,"path":146,"stem":147,"icon":150},"i-lucide-file-chart-column",{"title":152,"path":153,"stem":154,"icon":155},"HTML reporter","\u002Freference\u002Freporters\u002Fhtml","4.reference\u002F4.reporters\u002F2.html","i-lucide-file-code",{"title":157,"path":158,"stem":159,"icon":160},"JSON reporter","\u002Freference\u002Freporters\u002Fjson","4.reference\u002F4.reporters\u002F3.json","i-lucide-braces",{"title":162,"path":163,"stem":164,"icon":165},"Badge reporter","\u002Freference\u002Freporters\u002Fbadge","4.reference\u002F4.reporters\u002F4.badge","i-lucide-award",{"title":167,"path":168,"stem":169,"icon":170},"SARIF reporter","\u002Freference\u002Freporters\u002Fsarif","4.reference\u002F4.reporters\u002F5.sarif","i-lucide-shield-check",{"title":172,"path":173,"stem":174,"icon":175},"CodeClimate reporter","\u002Freference\u002Freporters\u002Fcodeclimate","4.reference\u002F4.reporters\u002F6.codeclimate","i-lucide-flag-triangle-right",{"title":177,"path":178,"stem":179,"icon":180},"OpenMetrics reporter","\u002Freference\u002Freporters\u002Fopenmetrics","4.reference\u002F4.reporters\u002F7.openmetrics","i-lucide-activity",{"title":182,"path":183,"stem":184,"icon":185},"Supported formats","\u002Freference\u002Fsupported-formats","4.reference\u002F5.supported-formats","i-lucide-languages",{"title":187,"path":188,"stem":189,"icon":38},"GitHub Action","\u002Freference\u002Fgithub-action","4.reference\u002F6.github-action",{"title":191,"path":192,"stem":193,"icon":68},"Rust crates","\u002Freference\u002Frust-crates","4.reference\u002F7.rust-crates",{"title":195,"icon":6,"path":196,"stem":197,"children":198,"page":6},"Project","\u002Fproject","5.project",[199,204,209,214,239,244],{"title":200,"path":201,"stem":202,"icon":203},"Changelog","\u002Fproject\u002Fchangelog","5.project\u002F1.changelog","i-lucide-scroll-text",{"title":205,"path":206,"stem":207,"icon":208},"Migrating from v4 to v5","\u002Fproject\u002Fmigration","5.project\u002F2.migration","i-lucide-arrow-right-left",{"title":210,"path":211,"stem":212,"icon":213},"jscpd v4 (TypeScript)","\u002Fproject\u002Fv4","5.project\u002F3.v4","i-simple-icons-typescript",{"title":215,"icon":6,"path":216,"stem":217,"children":218},"Benchmarks","\u002Fproject\u002Fbenchmarks","5.project\u002F4.benchmarks\u002Findex",[219,221,226,230,235],{"title":215,"path":216,"stem":217,"icon":220},"i-lucide-gauge",{"title":222,"path":223,"stem":224,"icon":225},"Detection Speed","\u002Fproject\u002Fbenchmarks\u002Fdetection-speed","5.project\u002F4.benchmarks\u002F2.detection-speed","i-lucide-zap",{"title":227,"path":228,"stem":229,"icon":58},"Multi-Format Detection","\u002Fproject\u002Fbenchmarks\u002Fcross-format","5.project\u002F4.benchmarks\u002F3.cross-format",{"title":231,"path":232,"stem":233,"icon":234},"AI Token Efficiency","\u002Fproject\u002Fbenchmarks\u002Fai-token-efficiency","5.project\u002F4.benchmarks\u002F4.ai-token-efficiency","i-lucide-sparkles",{"title":236,"path":237,"stem":238,"icon":93},"Embedding Models","\u002Fproject\u002Fbenchmarks\u002Fembedding-models","5.project\u002F4.benchmarks\u002F5.embedding-models",{"title":240,"path":241,"stem":242,"icon":243},"Research","\u002Fproject\u002Fresearch","5.project\u002F5.research","i-lucide-graduation-cap",{"title":245,"path":246,"stem":247,"icon":248},"Articles","\u002Fproject\u002Farticles","5.project\u002F6.articles","i-lucide-newspaper",{"name":250,"url":251,"appearances":252,"latest":268},"pollen-robotics\u002Fmicroduck","https:\u002F\u002Fgithub.com\u002Fpollen-robotics\u002Fmicroduck",[253],{"date":254,"rank":255,"stars":256,"starsToday":257,"headSha":258,"sources":259,"lines":260,"clones":261,"duplicatedLines":262,"percentage":263,"codePercentage":264,"codeSources":265,"healthScore":266,"healthGrade":267},"2026-10-25",5,11108,319,"942e58e3aa6dbb28e7037203fff11866122c7567",438,196774,477,5342,2.71,2.19,241,53.6,"D",{"date":254,"generatedAt":269,"name":250,"url":251,"description":270,"language":271,"stars":256,"starsToday":257,"defaultBranch":272,"headSha":258,"durationMs":273,"total":274,"formats":278,"topClones":333,"code":520,"health":679,"complexity":709,"deadCode":760},"2026-10-25T05:27:36.791Z","A Tiny biped duck robot 🦆","Rust","main",1741,{"sources":259,"lines":260,"tokens":275,"clones":261,"duplicatedLines":262,"duplicatedTokens":276,"percentage":263,"percentageTokens":277},1278575,40848,3.19,[279,286,293,300,307,313,318,321,325,329],{"format":280,"sources":281,"lines":282,"clones":283,"duplicatedLines":284,"percentage":285},"rust",218,142464,464,5064,3.55,{"format":287,"sources":288,"lines":289,"clones":290,"duplicatedLines":291,"percentage":292},"yaml",10,1928,7,183,9.49,{"format":294,"sources":295,"lines":296,"clones":297,"duplicatedLines":298,"percentage":299},"toml",30,2367,3,29,1.23,{"format":301,"sources":302,"lines":303,"clones":304,"duplicatedLines":305,"percentage":306},"bash",46,12643,2,60,0.47,{"format":308,"sources":297,"lines":309,"clones":310,"duplicatedLines":311,"percentage":312},"c",2039,1,6,0.29,{"format":314,"sources":315,"lines":316,"clones":317,"duplicatedLines":317,"percentage":317},"markdown",51,19985,0,{"format":319,"sources":311,"lines":320,"clones":317,"duplicatedLines":317,"percentage":317},"json",6373,{"format":322,"sources":323,"lines":324,"clones":317,"duplicatedLines":317,"percentage":317},"python",17,3326,{"format":326,"sources":327,"lines":328,"clones":317,"duplicatedLines":317,"percentage":317},"markup",15,2610,{"format":330,"sources":331,"lines":332,"clones":317,"duplicatedLines":317,"percentage":317},"typescript",4,1587,[334,359,378,414,425,458,479,490,500,510],{"format":280,"lines":335,"tokens":336,"first":337,"others":341,"copies":304,"excerpt":346,"kind":358},68,952,{"name":338,"start":339,"end":340},"docs\u002Fsuperpowers\u002Fplans\u002F2026-10-07-netpad-udp.md",1256,1323,[342],{"name":343,"start":344,"end":345},"netpadd\u002Fsrc\u002Freceiver.rs",422,505,{"lines":347,"total":335},[348,349,350,351,352,353,354,355,356,357],"    assert_eq!(r.on_datagram(t, addr(A), &pkt(u32::MAX, Buttons::NONE, 0.0)), Accept::Stale);","}","","\u002F\u002F\u002F A press and a release that both land between two sends still make a tap.","#[test]","fn a_press_and_release_inside_one_interval_are_both_seen() {","    let (mut r, t) = (rx(), Instant::now());","    r.on_datagram(t, addr(A), &pkt(1, Buttons::NONE, 0.0));","    tick(r.poll(t));","    r.on_datagram(ms(t, 5), addr(A), &pkt(2, Buttons::START, 0.0));","docs",{"format":280,"lines":305,"tokens":360,"first":361,"others":364,"copies":304,"excerpt":368,"kind":358},794,{"name":338,"start":362,"end":363},1198,1257,[365],{"name":343,"start":366,"end":367},324,401,{"lines":369,"total":305},[370,349,371,372,349,373,374,375,376,377],"    Packet::from_axes(seq, 0, [lx, 0.0, 0.0, 0.0], [0.0, 0.0], buttons).encode()","fn ms(t0: Instant, n: u64) -> Instant {","    t0 + Duration::from_millis(n)","fn tick(step: Step) -> PadFrame {","    match step {","        Step::Tick(f) => f,","        other => panic!(\"expected a tick, got {other:?}\"),","    }",{"format":280,"lines":327,"tokens":379,"first":380,"others":384,"copies":290,"excerpt":403,"kind":413},100,{"name":381,"start":382,"end":383},"robotd\u002Fsrc\u002Fmain.rs",8295,8309,[385,388,391,394,397,400],{"name":381,"start":386,"end":387},8365,8379,{"name":381,"start":389,"end":390},8394,8408,{"name":381,"start":392,"end":393},8467,8481,{"name":381,"start":395,"end":396},8525,8539,{"name":381,"start":398,"end":399},8586,8600,{"name":381,"start":401,"end":402},8624,8638,{"lines":404,"total":327},[405,406,407,408,409,409,410,411,350,412],"fn an_unknown_slot_is_refused_with_the_names() {","    let s = RobotState::new(","        &Params::default(),","        std::path::Path::new(\"\u002Ftest\u002Frobotd.toml\"),","        false,","    );","    let intents = Arc::new(Intents::new());","    let result: proto::IntentResult = dispatch(","code",{"format":280,"lines":415,"tokens":416,"first":417,"others":420,"copies":304,"kind":358},63,524,{"name":338,"start":418,"end":419},1746,1808,[421],{"name":422,"start":423,"end":424},"netpadd\u002Fsrc\u002Fmain.rs",71,136,{"format":280,"lines":426,"tokens":427,"first":428,"others":432,"copies":456,"kind":457},8,55,{"name":429,"start":430,"end":431},"updater\u002Ftests\u002Fapply.rs",443,450,[433,436,438,441,444,447,450,453],{"name":429,"start":434,"end":435},1120,1128,{"name":429,"start":362,"end":437},1205,{"name":429,"start":439,"end":440},1237,1244,{"name":429,"start":442,"end":443},1302,1309,{"name":429,"start":445,"end":446},1354,1361,{"name":429,"start":448,"end":449},1393,1400,{"name":429,"start":451,"end":452},1433,1440,{"name":429,"start":454,"end":455},2996,3003,9,"tests",{"format":280,"lines":426,"tokens":459,"first":460,"others":462,"copies":426,"kind":457},61,{"name":429,"start":461,"end":435},1121,[463,466,469,471,473,475,477],{"name":429,"start":464,"end":465},1199,1206,{"name":429,"start":467,"end":468},1238,1245,{"name":429,"start":470,"end":443},1303,{"name":429,"start":472,"end":446},1355,{"name":429,"start":474,"end":449},1394,{"name":429,"start":476,"end":452},1434,{"name":429,"start":478,"end":455},2997,{"format":280,"lines":480,"tokens":481,"first":482,"others":485,"copies":304,"kind":358},35,344,{"name":338,"start":483,"end":484},931,965,[486],{"name":487,"start":488,"end":489},"pad-map\u002Fsrc\u002Fwire.rs",467,507,{"format":280,"lines":491,"tokens":492,"first":493,"others":496,"copies":304,"kind":358},27,332,{"name":338,"start":494,"end":495},1036,1062,[497],{"name":487,"start":498,"end":499},69,99,{"format":280,"lines":501,"tokens":366,"first":502,"others":505,"copies":304,"kind":358},19,{"name":338,"start":503,"end":504},757,775,[506],{"name":507,"start":508,"end":509},"pad-map\u002Fsrc\u002Fmapper.rs",635,681,{"format":280,"lines":511,"tokens":512,"first":513,"others":516,"copies":304,"kind":358},31,317,{"name":338,"start":514,"end":515},1655,1685,[517],{"name":518,"start":427,"end":519},"netpadd\u002Fsrc\u002Frobotd.rs",85,{"sources":265,"lines":521,"tokens":522,"clones":523,"duplicatedLines":524,"duplicatedTokens":525,"percentage":264,"percentageTokens":526,"formats":527,"topClones":544,"generated":676},151166,856064,320,3318,24279,2.84,[528,533,536,537,540,541],{"format":280,"sources":529,"lines":530,"clones":512,"duplicatedLines":531,"percentage":532},189,131762,3252,2.47,{"format":301,"sources":295,"lines":534,"clones":304,"duplicatedLines":305,"percentage":535},12309,0.49,{"format":308,"sources":297,"lines":309,"clones":310,"duplicatedLines":311,"percentage":312},{"format":322,"sources":538,"lines":539,"clones":317,"duplicatedLines":317,"percentage":317},14,3168,{"format":330,"sources":331,"lines":332,"clones":317,"duplicatedLines":317,"percentage":317},{"format":542,"sources":310,"lines":543,"clones":317,"duplicatedLines":317,"percentage":317},"c-header",301,[545,556,578,600,615,625,635,646,656,667],{"format":280,"lines":327,"tokens":379,"first":546,"others":547,"copies":290,"excerpt":554,"kind":413},{"name":381,"start":382,"end":383},[548,549,550,551,552,553],{"name":381,"start":386,"end":387},{"name":381,"start":389,"end":390},{"name":381,"start":392,"end":393},{"name":381,"start":395,"end":396},{"name":381,"start":398,"end":399},{"name":381,"start":401,"end":402},{"lines":555,"total":327},[405,406,407,408,409,409,410,411,350,412],{"format":280,"lines":323,"tokens":557,"first":558,"others":561,"copies":297,"excerpt":568,"kind":413},147,{"name":381,"start":559,"end":560},9343,9359,[562,565],{"name":381,"start":563,"end":564},9391,9407,{"name":381,"start":566,"end":567},9437,9453,{"lines":569,"total":323},[570,571,572,573,573,574,575,576,350,577],"let s = Arc::new(RobotState::new(","    &params,","    std::path::Path::new(\"\u002Ftest\u002Frobotd.toml\"),","    false,","));","let intents = Arc::new(Intents::new());","intents.request_init();","let (tx, rx) = std::sync::mpsc::channel();",{"format":301,"lines":579,"tokens":580,"first":581,"others":585,"copies":304,"excerpt":590,"kind":413},43,231,{"name":582,"start":583,"end":584},"mediad\u002Fwebclient\u002Fspace\u002Fentrypoint.sh",25,67,[586],{"name":587,"start":588,"end":589},"spaces\u002Fpolicy-playground\u002Fentrypoint.sh",24,66,{"lines":591,"total":579},[592,593,350,594,350,595,596,597,598,599],"    echo \"no OAUTH_CLIENT_ID in the environment; the page will not be able to sign anybody in\" >&2","fi","mkdir -p \u002Fsrv","# Python rather than `sed`, because the value being substituted is now JSON: a provider URL is","# full of the characters a `sed` replacement treats as syntax, and one of them silently produces","# a page that parses and signs nobody in.","python3 - \u002Fapp\u002Findex.html \u002Fsrv\u002Findex.html \u003C\u003C'PY'","import json",{"format":280,"lines":327,"tokens":601,"first":602,"others":605,"copies":331,"kind":413},76,{"name":381,"start":603,"end":604},8337,8351,[606,609,612],{"name":381,"start":607,"end":608},8562,8576,{"name":381,"start":610,"end":611},8593,8608,{"name":381,"start":613,"end":614},8711,8725,{"format":280,"lines":616,"tokens":617,"first":618,"others":621,"copies":304,"kind":413},21,217,{"name":381,"start":619,"end":620},6999,7019,[622],{"name":381,"start":623,"end":624},9220,9240,{"format":280,"lines":588,"tokens":626,"first":627,"others":631,"copies":304,"kind":413},202,{"name":628,"start":629,"end":630},"configd\u002Fsrc\u002Fmain.rs",607,630,[632],{"name":381,"start":633,"end":634},5567,5589,{"format":280,"lines":426,"tokens":636,"first":637,"others":641,"copies":304,"kind":413},190,{"name":638,"start":639,"end":640},"pad-imu\u002Fsrc\u002Flib.rs",392,399,[642],{"name":643,"start":644,"end":645},"robotd\u002Fsrc\u002Fhead_imu.rs",130,137,{"format":308,"lines":311,"tokens":647,"first":648,"others":652,"copies":304,"kind":413},187,{"name":649,"start":650,"end":651},"deploy\u002Faudio\u002Faic3x-dkms\u002Ftlv320aic3x.c",325,330,[653],{"name":649,"start":654,"end":655},425,430,{"format":280,"lines":657,"tokens":658,"first":659,"others":663,"copies":304,"kind":413},22,186,{"name":660,"start":661,"end":662},"robotctl\u002Fsrc\u002Fmain.rs",4032,4053,[664],{"name":660,"start":665,"end":666},4305,4325,{"format":280,"lines":583,"tokens":668,"first":669,"others":672,"copies":304,"kind":413},185,{"name":381,"start":670,"end":671},9886,9910,[673],{"name":381,"start":674,"end":675},9942,9966,{"files":310,"minified":317,"sample":677},[678],"odometry\u002Fsrc\u002Fanchors.rs",{"score":266,"grade":267,"size":680,"dimensions":684,"skipped":705},{"lines":681,"files":682,"class":683},160756,275,"L",[685,698],{"id":686,"source":687,"value":688,"adjusted":688,"lines":689,"halfLife":690,"formats":691,"excluded":694,"weight":310,"score":697},"duplication","jscpd",2.6,4122,8.5,[280,301,322,308,330,542,692,693],"docker","makefile",[326,695,696],"text","data",81.1,{"id":699,"source":687,"value":700,"adjusted":701,"lines":702,"halfLife":703,"weight":310,"score":704},"complexity",75.7,75,121649,50,35.4,[706],{"id":707,"reason":708},"dead-code","the languages dead code reads are under 5% of the code",{"total":710,"mean":711,"files":712},17262,62.8,[713,717,721,726,730,735,740,745,750,755],{"path":381,"complexity":714,"lines":715,"bytes":716},988,10007,437765,{"path":660,"complexity":718,"lines":719,"bytes":720},954,8109,342130,{"path":722,"complexity":723,"lines":724,"bytes":725},"duck-ipc-proto\u002Fsrc\u002Flib.rs",497,6940,337229,{"path":727,"complexity":488,"lines":728,"bytes":729},"robotctl\u002Fsrc\u002Fmonitor.rs",4965,212445,{"path":731,"complexity":732,"lines":733,"bytes":734},"updater\u002Fsrc\u002Fengine.rs",441,4125,185925,{"path":736,"complexity":737,"lines":738,"bytes":739},"duckctl\u002Fsrc\u002Fmain.rs",388,3862,178239,{"path":741,"complexity":742,"lines":743,"bytes":744},"robotd-params\u002Fsrc\u002Flib.rs",375,4374,196503,{"path":746,"complexity":747,"lines":748,"bytes":749},"mediad\u002Fsrc\u002Fpipeline.rs",267,2799,131070,{"path":751,"complexity":752,"lines":753,"bytes":754},"mediad\u002Fsrc\u002Frelay.rs",262,2764,117796,{"path":756,"complexity":757,"lines":758,"bytes":759},"xtask\u002Fsrc\u002Fmain.rs",236,2387,104866,{"percentage":761,"findings":331,"files":616,"byCategory":762,"largest":767},0.35,[763,765],{"category":764,"count":304},"unused-export",{"category":766,"count":304},"unused-import",[768,772,776,780],{"category":764,"path":769,"name":770,"line":771,"lines":538},"spaces\u002Fvision-demo\u002Ffilters.py","upright",28,{"category":766,"path":773,"name":774,"line":775,"lines":310},"spaces\u002Fshared\u002Fcontrol.py","asyncio",23,{"category":766,"path":777,"name":778,"line":779,"lines":310},"spaces\u002Fvision-demo\u002Fapp.py","np",39,{"category":764,"path":769,"name":781,"line":501,"lines":310},"MOUNT_ROTATION_DEGREES",{"\u002Ftrending\u002Fpollen-robotics\u002Fmicroduck":783},{"views":317,"visits":317},1792911676221]