[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"summary-c8044cb4a73d18a0-clusterfuzzlite-fuzz-prs-in-ci-to-catch-bugs-early-summary":3,"summaries-facets-categories":104,"summary-related-c8044cb4a73d18a0-clusterfuzzlite-fuzz-prs-in-ci-to-catch-bugs-early-summary":3673},{"id":4,"title":5,"ai":6,"body":13,"categories":55,"created_at":57,"date_modified":57,"description":49,"extension":58,"faq":57,"featured":59,"kicker_label":57,"meta":60,"navigation":87,"path":88,"published_at":57,"question":57,"scraped_at":89,"seo":90,"sitemap":91,"source_id":92,"source_name":93,"source_type":94,"source_url":95,"stem":96,"tags":97,"thumbnail_url":57,"tldr":101,"tweet":57,"unknown_tags":102,"__hash__":103},"summaries\u002Fsummaries\u002Fc8044cb4a73d18a0-clusterfuzzlite-fuzz-prs-in-ci-to-catch-bugs-early-summary.md","ClusterFuzzLite: Fuzz PRs in CI to Catch Bugs Early",{"provider":7,"model":8,"input_tokens":9,"output_tokens":10,"processing_time_ms":11,"cost_usd":12},"openrouter","x-ai\u002Fgrok-4.1-fast",4218,2216,10319,0.00192895,{"type":14,"value":15,"toc":48},"minimark",[16,21,25,28,32,35,38,42,45],[17,18,20],"h2",{"id":19},"embed-fuzzing-in-pr-workflows-to-block-bugs-pre-commit","Embed Fuzzing in PR Workflows to Block Bugs Pre-Commit",[22,23,24],"p",{},"ClusterFuzzLite integrates into CI pipelines like GitHub Actions via a few lines of code, triggering coverage-guided fuzzing on pull requests with libFuzzer. This catches regressions from code changes immediately, preventing vulnerable commits. Crashing testcases download directly for reproduction and fixing. For deeper issues missed in short PR runs, enable batch fuzzing to run asynchronously, building a corpus that improves future PR fuzzing efficiency. Coverage reports highlight unfuzzed code paths, guiding developers to expand targets and increase effectiveness.",[22,26,27],{},"Modular design lets you enable only needed features—skip batch fuzzing if PR checks suffice—keeping workflows lean. Based on Google's ClusterFuzz, it scales proven infrastructure for open-source and small teams without full ClusterFuzz overhead.",[17,29,31],{"id":30},"target-memory-and-behavior-bugs-with-libfuzzer-sanitizers","Target Memory and Behavior Bugs with libFuzzer + Sanitizers",[22,33,34],{},"Pair libFuzzer's coverage-guided mutation with sanitizers for precise vulnerability detection: AddressSanitizer uncovers memory errors like buffer overflows; MemorySanitizer flags uninitialized memory reads; UndefinedBehaviorSanitizer catches overflows, misaligned accesses, and other UB. Compile targets with these (e.g., -fsanitize=address,fuzzer) for drop-in integration.",[22,36,37],{},"This combo finds issues traditional tests miss, as fuzzers explore edge cases via random inputs guided by code coverage. PR fuzzing runs quickly (minutes), while batch mode sustains hours\u002Fdays for rare deep bugs.",[17,39,41],{"id":40},"minimize-setup-with-multi-language-and-ci-support","Minimize Setup with Multi-Language and CI Support",[22,43,44],{},"Supports C, C++, Java\u002FJVM, Go, Python, Rust, Swift—cover most projects without engine swaps. CI compatibility includes GitHub Actions, GitLab, Google Cloud Build, Prow; extend to others by implementing a simple platform interface.",[22,46,47],{},"Start with build integration: expose fuzzer binaries via your build script. Then add runner steps for PR\u002Fevent fuzzing. New to fuzzing? Review overview for libFuzzer\u002Fsanitizer basics; experienced users jump to build docs. Track issues on GitHub, join mailing list for updates, and report usage via form to influence roadmap.",{"title":49,"searchDepth":50,"depth":50,"links":51},"",2,[52,53,54],{"id":19,"depth":50,"text":20},{"id":30,"depth":50,"text":31},{"id":40,"depth":50,"text":41},[56],"Software Engineering",null,"md",false,{"content_references":61,"triage":82},[62,67,70,73,76,79],{"type":63,"title":64,"url":65,"context":66},"tool","ClusterFuzz","https:\u002F\u002Fgoogle.github.io\u002Fclusterfuzz\u002F","mentioned",{"type":63,"title":68,"url":69,"context":66},"libFuzzer","https:\u002F\u002Fllvm.org\u002Fdocs\u002FLibFuzzer.html",{"type":63,"title":71,"url":72,"context":66},"AddressSanitizer","https:\u002F\u002Fclang.llvm.org\u002Fdocs\u002FAddressSanitizer.html",{"type":63,"title":74,"url":75,"context":66},"MemorySanitizer","https:\u002F\u002Fclang.llvm.org\u002Fdocs\u002FMemorySanitizer.html",{"type":63,"title":77,"url":78,"context":66},"UndefinedBehaviorSanitizer","https:\u002F\u002Fclang.llvm.org\u002Fdocs\u002FUndefinedBehaviorSanitizer.html",{"type":63,"title":80,"url":81,"context":66},"Just the Docs","https:\u002F\u002Fgithub.com\u002Fjust-the-docs\u002Fjust-the-docs",{"relevance":83,"novelty":84,"quality":83,"actionability":83,"composite":85,"reasoning":86},4,3,3.8,"Category: AI Automation. The article provides a practical tool (ClusterFuzzLite) that integrates fuzz testing into CI workflows, addressing the pain point of catching bugs early in the development process. It offers specific guidance on implementation and highlights the benefits of using fuzzing with various programming languages.",true,"\u002Fsummaries\u002Fc8044cb4a73d18a0-clusterfuzzlite-fuzz-prs-in-ci-to-catch-bugs-early-summary","2026-04-16 03:00:36",{"title":5,"description":49},{"loc":88},"c8044cb4a73d18a0","__oneoff__","article","https:\u002F\u002Fgoogle.github.io\u002Fclusterfuzzlite\u002F","summaries\u002Fc8044cb4a73d18a0-clusterfuzzlite-fuzz-prs-in-ci-to-catch-bugs-early-summary",[98,99,100],"devops","open-source","coding","Add ClusterFuzzLite to GitHub Actions workflows with minimal code to fuzz pull requests for vulnerabilities in C\u002FC++\u002FJava\u002FGo\u002FPython\u002FRust\u002FSwift using libFuzzer and sanitizers, download crashes, view coverage, and run async batch fuzzing.",[],"wkzYeVjDAilJxaQhPrgHKCVciytuBwyRs3z43s195j0",[105,108,111,114,117,120,122,124,126,128,130,132,135,137,139,141,143,145,147,149,151,153,156,159,161,163,165,167,169,172,174,176,178,180,182,184,186,188,190,192,194,196,198,200,202,204,206,208,210,212,214,216,218,220,222,224,226,228,230,232,234,236,238,240,242,244,246,248,250,252,254,256,258,260,262,264,266,268,270,272,274,276,278,280,282,284,286,288,290,292,294,296,298,300,302,304,306,308,310,312,314,316,318,320,322,324,326,328,330,332,334,336,338,340,342,344,346,348,350,352,354,356,358,360,362,364,366,368,370,372,374,376,378,380,382,384,386,388,390,392,394,396,398,400,402,404,406,408,410,412,414,416,418,420,422,424,427,429,431,433,435,437,439,441,443,445,447,449,451,453,455,457,459,461,463,465,467,469,471,473,475,477,479,481,483,485,487,489,491,493,495,497,499,501,503,505,507,509,511,513,515,517,519,521,523,525,527,529,531,533,535,537,539,541,543,545,547,549,551,553,555,557,559,561,563,565,567,569,571,573,575,577,579,581,583,585,587,589,591,593,595,597,599,601,603,605,607,609,611,613,615,617,619,621,623,625,627,629,631,633,635,637,639,641,643,645,647,649,651,653,655,657,659,661,663,665,667,669,671,673,675,677,679,681,683,685,687,689,691,693,695,697,699,701,703,705,707,709,711,713,715,717,719,721,723,725,727,729,731,733,735,737,739,741,743,745,747,749,751,753,755,757,759,761,763,765,767,769,771,773,775,777,779,781,783,785,787,789,791,793,795,797,799,801,803,805,807,809,811,813,815,817,819,821,823,825,827,829,831,833,835,837,839,841,843,845,847,849,851,853,855,857,859,861,863,865,867,869,871,873,875,877,879,881,883,885,887,889,891,893,895,897,899,901,903,905,907,909,911,913,915,917,919,921,923,925,927,929,931,933,935,937,939,941,943,945,947,949,951,953,955,957,959,961,963,965,967,969,971,973,975,977,979,981,983,985,987,989,991,993,995,997,999,1001,1003,1005,1007,1009,1011,1013,1015,1017,1019,1021,1023,1025,1027,1029,1031,1033,1035,1037,1039,1041,1043,1045,1047,1049,1051,1053,1055,1057,1059,1061,1063,1065,1067,1069,1071,1073,1075,1077,1079,1081,1083,1085,1087,1089,1091,1093,1095,1097,1099,1101,1103,1105,1107,1109,1111,1113,1115,1117,1119,1121,1123,1125,1127,1129,1131,1133,1135,1137,1139,1141,1143,1145,1147,1149,1151,1153,1155,1157,1159,1161,1163,1165,1167,1169,1171,1173,1175,1177,1179,1181,1183,1185,1187,1189,1191,1193,1195,1197,1199,1201,1203,1205,1207,1209,1211,1213,1215,1217,1219,1221,1223,1225,1227,1229,1231,1233,1235,1237,1239,1241,1243,1245,1247,1249,1251,1253,1255,1257,1259,1261,1263,1265,1267,1269,1271,1273,1275,1277,1279,1281,1283,1285,1287,1289,1291,1293,1295,1297,1299,1301,1303,1305,1307,1309,1311,1313,1315,1317,1319,1321,1323,1325,1327,1329,1331,1333,1335,1337,1339,1341,1343,1345,1347,1349,1351,1353,1355,1357,1359,1361,1363,1365,1367,1369,1371,1373,1375,1377,1379,1381,1383,1385,1387,1389,1391,1393,1395,1397,1399,1401,1403,1405,1407,1409,1411,1413,1415,1417,1419,1421,1423,1425,1427,1429,1431,1433,1435,1437,1439,1441,1443,1445,1447,1449,1451,1453,1455,1457,1459,1461,1463,1465,1467,1469,1471,1473,1475,1477,1479,1481,1483,1485,1487,1489,1491,1493,1495,1497,1499,1501,1503,1505,1507,1509,1511,1513,1515,1517,1519,1521,1523,1525,1527,1529,1531,1533,1535,1537,1539,1541,1543,1545,1547,1549,1551,1553,1555,1557,1559,1561,1563,1565,1567,1569,1571,1573,1575,1577,1579,1581,1583,1585,1587,1589,1591,1593,1595,1597,1599,1601,1603,1605,1607,1609,1611,1613,1615,1617,1619,1621,1623,1625,1627,1629,1631,1633,1635,1637,1639,1641,1643,1645,1647,1649,1651,1653,1655,1657,1659,1661,1663,1665,1667,1669,1671,1673,1675,1677,1679,1681,1683,1685,1687,1689,1691,1693,1695,1697,1699,1701,1703,1705,1707,1709,1711,1713,1715,1717,1719,1721,1723,1725,1727,1729,1731,1733,1735,1737,1739,1741,1743,1745,1747,1749,1751,1753,1755,1757,1759,1761,1763,1765,1767,1769,1771,1773,1775,1777,1779,1781,1783,1785,1787,1789,1791,1793,1795,1797,1799,1801,1803,1805,1807,1809,1811,1813,1815,1817,1819,1821,1823,1825,1827,1829,1831,1833,1835,1837,1839,1841,1843,1845,1847,1849,1851,1853,1855,1857,1859,1861,1863,1865,1867,1869,1871,1873,1875,1877,1879,1881,1883,1885,1887,1889,1891,1893,1895,1897,1899,1901,1903,1905,1907,1909,1911,1913,1915,1917,1919,1921,1923,1925,1927,1929,1931,1933,1935,1937,1939,1941,1943,1945,1947,1949,1951,1953,1955,1957,1959,1961,1963,1965,1967,1969,1971,1973,1975,1977,1979,1981,1983,1985,1987,1989,1991,1993,1995,1997,1999,2001,2003,2005,2007,2009,2011,2013,2015,2017,2019,2021,2023,2025,2027,2029,2031,2033,2035,2037,2039,2041,2043,2045,2047,2049,2051,2053,2055,2057,2059,2061,2063,2065,2067,2069,2071,2073,2075,2077,2079,2081,2083,2085,2087,2089,2091,2093,2095,2097,2099,2101,2103,2105,2107,2109,2111,2113,2115,2117,2119,2121,2123,2125,2127,2129,2131,2133,2135,2137,2139,2141,2143,2145,2147,2149,2151,2153,2155,2157,2159,2161,2163,2165,2167,2169,2171,2173,2175,2177,2179,2181,2183,2185,2187,2189,2191,2193,2195,2197,2199,2201,2203,2205,2207,2209,2211,2213,2215,2217,2219,2221,2223,2225,2227,2229,2231,2233,2235,2237,2239,2241,2243,2245,2247,2249,2251,2253,2255,2257,2259,2261,2263,2265,2267,2269,2271,2273,2275,2277,2279,2281,2283,2285,2287,2289,2291,2293,2295,2297,2299,2301,2303,2305,2307,2309,2311,2313,2315,2317,2319,2321,2323,2325,2327,2329,2331,2333,2335,2337,2339,2341,2343,2345,2347,2349,2351,2353,2355,2357,2359,2361,2363,2365,2367,2369,2371,2373,2375,2377,2379,2381,2383,2385,2387,2389,2391,2393,2395,2397,2399,2401,2403,2405,2407,2409,2411,2413,2415,2417,2419,2421,2423,2425,2427,2429,2431,2433,2435,2437,2439,2441,2443,2445,2447,2449,2451,2453,2455,2457,2459,2461,2463,2465,2467,2469,2471,2473,2475,2477,2479,2481,2483,2485,2487,2489,2491,2493,2495,2497,2499,2501,2503,2505,2507,2509,2511,2513,2515,2517,2519,2521,2523,2525,2527,2529,2531,2533,2535,2537,2539,2541,2543,2545,2547,2549,2551,2553,2555,2557,2559,2561,2563,2565,2567,2569,2571,2573,2575,2577,2579,2581,2583,2585,2587,2589,2591,2593,2595,2597,2599,2601,2603,2605,2607,2609,2611,2613,2615,2617,2619,2621,2623,2625,2627,2629,2631,2633,2635,2637,2639,2641,2643,2645,2647,2649,2651,2653,2655,2657,2659,2661,2663,2665,2667,2669,2671,2673,2675,2677,2679,2681,2683,2685,2687,2689,2691,2693,2695,2697,2699,2701,2703,2705,2707,2709,2711,2713,2715,2717,2719,2721,2723,2725,2727,2729,2731,2733,2735,2737,2739,2741,2743,2745,2747,2749,2751,2753,2755,2757,2759,2761,2763,2765,2767,2769,2771,2773,2775,2777,2779,2781,2783,2785,2787,2789,2791,2793,2795,2797,2799,2801,2803,2805,2807,2809,2811,2813,2815,2817,2819,2821,2823,2825,2827,2829,2831,2833,2835,2837,2839,2841,2843,2845,2847,2849,2851,2853,2855,2857,2859,2861,2863,2865,2867,2869,2871,2873,2875,2877,2879,2881,2883,2885,2887,2889,2891,2893,2895,2897,2899,2901,2903,2905,2907,2909,2911,2913,2915,2917,2919,2921,2923,2925,2927,2929,2931,2933,2935,2937,2939,2941,2943,2945,2947,2949,2951,2953,2955,2957,2959,2961,2963,2965,2967,2969,2971,2973,2975,2977,2979,2981,2983,2985,2987,2989,2991,2993,2995,2997,2999,3001,3003,3005,3007,3009,3011,3013,3015,3017,3019,3021,3023,3025,3027,3029,3031,3033,3035,3037,3039,3041,3043,3045,3047,3049,3051,3053,3055,3057,3059,3061,3063,3065,3067,3069,3071,3073,3075,3077,3079,3081,3083,3085,3087,3089,3091,3093,3095,3097,3099,3101,3103,3105,3107,3109,3111,3113,3115,3117,3119,3121,3123,3125,3127,3129,3131,3133,3135,3137,3139,3141,3143,3145,3147,3149,3151,3153,3155,3157,3159,3161,3163,3165,3167,3169,3171,3173,3175,3177,3179,3181,3183,3185,3187,3189,3191,3193,3195,3197,3199,3201,3203,3205,3207,3209,3211,3213,3215,3217,3219,3221,3223,3225,3227,3229,3231,3233,3235,3237,3239,3241,3243,3245,3247,3249,3251,3253,3255,3257,3259,3261,3263,3265,3267,3269,3271,3273,3275,3277,3279,3281,3283,3285,3287,3289,3291,3293,3295,3297,3299,3301,3303,3305,3307,3309,3311,3313,3315,3317,3319,3321,3323,3325,3327,3329,3331,3333,3335,3337,3339,3341,3343,3345,3347,3349,3351,3353,3355,3357,3359,3361,3363,3365,3367,3369,3371,3373,3375,3377,3379,3381,3383,3385,3387,3389,3391,3393,3395,3397,3399,3401,3403,3405,3407,3409,3411,3413,3415,3417,3419,3421,3423,3425,3427,3429,3431,3433,3435,3437,3439,3441,3443,3445,3447,3449,3451,3453,3455,3457,3459,3461,3463,3465,3467,3469,3471,3473,3475,3477,3479,3481,3483,3485,3487,3489,3491,3493,3495,3497,3499,3501,3503,3505,3507,3509,3511,3513,3515,3517,3519,3521,3523,3525,3527,3529,3531,3533,3535,3537,3539,3541,3543,3545,3547,3549,3551,3553,3555,3557,3559,3561,3563,3565,3567,3569,3571,3573,3575,3577,3579,3581,3583,3585,3587,3589,3591,3593,3595,3597,3599,3601,3603,3605,3607,3609,3611,3613,3615,3617,3619,3621,3623,3625,3627,3629,3631,3633,3635,3637,3639,3641,3643,3645,3647,3649,3651,3653,3655,3657,3659,3661,3663,3665,3667,3669,3671],{"categories":106},[107],"Developer Productivity",{"categories":109},[110],"Business & SaaS",{"categories":112},[113],"AI & LLMs",{"categories":115},[116],"AI Automation",{"categories":118},[119],"Product Strategy",{"categories":121},[113],{"categories":123},[107],{"categories":125},[110],{"categories":127},[],{"categories":129},[113],{"categories":131},[],{"categories":133},[134],"AI News & Trends",{"categories":136},[116],{"categories":138},[134],{"categories":140},[116],{"categories":142},[116],{"categories":144},[113],{"categories":146},[113],{"categories":148},[134],{"categories":150},[113],{"categories":152},[],{"categories":154},[155],"Design & Frontend",{"categories":157},[158],"Data Science & Visualization",{"categories":160},[134],{"categories":162},[],{"categories":164},[56],{"categories":166},[113],{"categories":168},[116],{"categories":170},[171],"Marketing & Growth",{"categories":173},[113],{"categories":175},[116],{"categories":177},[],{"categories":179},[],{"categories":181},[155],{"categories":183},[116],{"categories":185},[107],{"categories":187},[155],{"categories":189},[113],{"categories":191},[116],{"categories":193},[134],{"categories":195},[],{"categories":197},[],{"categories":199},[116],{"categories":201},[56],{"categories":203},[],{"categories":205},[110],{"categories":207},[],{"categories":209},[],{"categories":211},[116],{"categories":213},[116],{"categories":215},[113],{"categories":217},[],{"categories":219},[56],{"categories":221},[],{"categories":223},[],{"categories":225},[],{"categories":227},[113],{"categories":229},[171],{"categories":231},[155],{"categories":233},[155],{"categories":235},[113],{"categories":237},[116],{"categories":239},[113],{"categories":241},[113],{"categories":243},[116],{"categories":245},[116],{"categories":247},[158],{"categories":249},[134],{"categories":251},[116],{"categories":253},[171],{"categories":255},[116],{"categories":257},[119],{"categories":259},[],{"categories":261},[116],{"categories":263},[],{"categories":265},[116],{"categories":267},[56],{"categories":269},[155],{"categories":271},[113],{"categories":273},[],{"categories":275},[],{"categories":277},[116],{"categories":279},[],{"categories":281},[113],{"categories":283},[],{"categories":285},[107],{"categories":287},[56],{"categories":289},[110],{"categories":291},[134],{"categories":293},[113],{"categories":295},[],{"categories":297},[113],{"categories":299},[],{"categories":301},[56],{"categories":303},[158],{"categories":305},[],{"categories":307},[113],{"categories":309},[155],{"categories":311},[],{"categories":313},[155],{"categories":315},[116],{"categories":317},[],{"categories":319},[116],{"categories":321},[134],{"categories":323},[113],{"categories":325},[],{"categories":327},[116],{"categories":329},[113],{"categories":331},[119],{"categories":333},[],{"categories":335},[113],{"categories":337},[116],{"categories":339},[116],{"categories":341},[],{"categories":343},[158],{"categories":345},[113],{"categories":347},[],{"categories":349},[107],{"categories":351},[110],{"categories":353},[113],{"categories":355},[116],{"categories":357},[56],{"categories":359},[113],{"categories":361},[],{"categories":363},[],{"categories":365},[113],{"categories":367},[],{"categories":369},[155],{"categories":371},[],{"categories":373},[113],{"categories":375},[],{"categories":377},[116],{"categories":379},[113],{"categories":381},[155],{"categories":383},[],{"categories":385},[113],{"categories":387},[113],{"categories":389},[110],{"categories":391},[116],{"categories":393},[113],{"categories":395},[155],{"categories":397},[116],{"categories":399},[],{"categories":401},[],{"categories":403},[134],{"categories":405},[],{"categories":407},[113],{"categories":409},[110,171],{"categories":411},[],{"categories":413},[113],{"categories":415},[],{"categories":417},[],{"categories":419},[113],{"categories":421},[],{"categories":423},[113],{"categories":425},[426],"DevOps & Cloud",{"categories":428},[],{"categories":430},[134],{"categories":432},[155],{"categories":434},[],{"categories":436},[134],{"categories":438},[134],{"categories":440},[113],{"categories":442},[171],{"categories":444},[],{"categories":446},[110],{"categories":448},[],{"categories":450},[113,426],{"categories":452},[113],{"categories":454},[113],{"categories":456},[116],{"categories":458},[113,56],{"categories":460},[158],{"categories":462},[113],{"categories":464},[171],{"categories":466},[116],{"categories":468},[116],{"categories":470},[],{"categories":472},[116],{"categories":474},[113,110],{"categories":476},[],{"categories":478},[155],{"categories":480},[155],{"categories":482},[],{"categories":484},[],{"categories":486},[134],{"categories":488},[],{"categories":490},[107],{"categories":492},[56],{"categories":494},[113],{"categories":496},[155],{"categories":498},[116],{"categories":500},[56],{"categories":502},[134],{"categories":504},[155],{"categories":506},[],{"categories":508},[113],{"categories":510},[113],{"categories":512},[113],{"categories":514},[134],{"categories":516},[107],{"categories":518},[113],{"categories":520},[116],{"categories":522},[426],{"categories":524},[155],{"categories":526},[116],{"categories":528},[],{"categories":530},[],{"categories":532},[155],{"categories":534},[134],{"categories":536},[158],{"categories":538},[],{"categories":540},[113],{"categories":542},[113],{"categories":544},[110],{"categories":546},[113],{"categories":548},[113],{"categories":550},[134],{"categories":552},[],{"categories":554},[116],{"categories":556},[56],{"categories":558},[],{"categories":560},[113],{"categories":562},[113],{"categories":564},[116],{"categories":566},[],{"categories":568},[],{"categories":570},[113],{"categories":572},[],{"categories":574},[110],{"categories":576},[116],{"categories":578},[],{"categories":580},[107],{"categories":582},[113],{"categories":584},[110],{"categories":586},[134],{"categories":588},[],{"categories":590},[],{"categories":592},[],{"categories":594},[134],{"categories":596},[134],{"categories":598},[],{"categories":600},[],{"categories":602},[110],{"categories":604},[],{"categories":606},[],{"categories":608},[107],{"categories":610},[],{"categories":612},[171],{"categories":614},[116],{"categories":616},[110],{"categories":618},[116],{"categories":620},[],{"categories":622},[119],{"categories":624},[155],{"categories":626},[56],{"categories":628},[113],{"categories":630},[116],{"categories":632},[110],{"categories":634},[113],{"categories":636},[],{"categories":638},[],{"categories":640},[56],{"categories":642},[158],{"categories":644},[119],{"categories":646},[116],{"categories":648},[113],{"categories":650},[],{"categories":652},[426],{"categories":654},[],{"categories":656},[116],{"categories":658},[],{"categories":660},[],{"categories":662},[113],{"categories":664},[155],{"categories":666},[171],{"categories":668},[116],{"categories":670},[],{"categories":672},[107],{"categories":674},[],{"categories":676},[134],{"categories":678},[113,426],{"categories":680},[134],{"categories":682},[113],{"categories":684},[110],{"categories":686},[113],{"categories":688},[],{"categories":690},[110],{"categories":692},[],{"categories":694},[56],{"categories":696},[155],{"categories":698},[134],{"categories":700},[158],{"categories":702},[107],{"categories":704},[113],{"categories":706},[56],{"categories":708},[],{"categories":710},[],{"categories":712},[119],{"categories":714},[],{"categories":716},[113],{"categories":718},[],{"categories":720},[155],{"categories":722},[155],{"categories":724},[155],{"categories":726},[],{"categories":728},[],{"categories":730},[134],{"categories":732},[116],{"categories":734},[113],{"categories":736},[113],{"categories":738},[113],{"categories":740},[110],{"categories":742},[113],{"categories":744},[],{"categories":746},[56],{"categories":748},[56],{"categories":750},[110],{"categories":752},[],{"categories":754},[113],{"categories":756},[113],{"categories":758},[110],{"categories":760},[134],{"categories":762},[171],{"categories":764},[116],{"categories":766},[],{"categories":768},[155],{"categories":770},[],{"categories":772},[113],{"categories":774},[],{"categories":776},[110],{"categories":778},[116],{"categories":780},[],{"categories":782},[426],{"categories":784},[158],{"categories":786},[56],{"categories":788},[171],{"categories":790},[56],{"categories":792},[116],{"categories":794},[],{"categories":796},[],{"categories":798},[116],{"categories":800},[107],{"categories":802},[116],{"categories":804},[119],{"categories":806},[110],{"categories":808},[],{"categories":810},[113],{"categories":812},[119],{"categories":814},[113],{"categories":816},[113],{"categories":818},[171],{"categories":820},[155],{"categories":822},[116],{"categories":824},[],{"categories":826},[],{"categories":828},[426],{"categories":830},[56],{"categories":832},[],{"categories":834},[116],{"categories":836},[113],{"categories":838},[155,113],{"categories":840},[107],{"categories":842},[],{"categories":844},[113],{"categories":846},[107],{"categories":848},[155],{"categories":850},[116],{"categories":852},[56],{"categories":854},[],{"categories":856},[113],{"categories":858},[],{"categories":860},[107],{"categories":862},[],{"categories":864},[116],{"categories":866},[119],{"categories":868},[113],{"categories":870},[113],{"categories":872},[155],{"categories":874},[116],{"categories":876},[426],{"categories":878},[155],{"categories":880},[116],{"categories":882},[113],{"categories":884},[113],{"categories":886},[113],{"categories":888},[134],{"categories":890},[],{"categories":892},[119],{"categories":894},[116],{"categories":896},[155],{"categories":898},[116],{"categories":900},[56],{"categories":902},[155],{"categories":904},[116],{"categories":906},[134],{"categories":908},[],{"categories":910},[113],{"categories":912},[155],{"categories":914},[113],{"categories":916},[107],{"categories":918},[134],{"categories":920},[113],{"categories":922},[171],{"categories":924},[113],{"categories":926},[113],{"categories":928},[116],{"categories":930},[116],{"categories":932},[113],{"categories":934},[116],{"categories":936},[155],{"categories":938},[113],{"categories":940},[],{"categories":942},[],{"categories":944},[56],{"categories":946},[],{"categories":948},[107],{"categories":950},[426],{"categories":952},[],{"categories":954},[107],{"categories":956},[110],{"categories":958},[171],{"categories":960},[],{"categories":962},[110],{"categories":964},[],{"categories":966},[],{"categories":968},[],{"categories":970},[],{"categories":972},[],{"categories":974},[113],{"categories":976},[116],{"categories":978},[426],{"categories":980},[107],{"categories":982},[113],{"categories":984},[56],{"categories":986},[119],{"categories":988},[113],{"categories":990},[171],{"categories":992},[113],{"categories":994},[113],{"categories":996},[113],{"categories":998},[113,107],{"categories":1000},[56],{"categories":1002},[56],{"categories":1004},[155],{"categories":1006},[113],{"categories":1008},[],{"categories":1010},[],{"categories":1012},[],{"categories":1014},[56],{"categories":1016},[158],{"categories":1018},[134],{"categories":1020},[155],{"categories":1022},[],{"categories":1024},[113],{"categories":1026},[113],{"categories":1028},[],{"categories":1030},[],{"categories":1032},[116],{"categories":1034},[113],{"categories":1036},[110],{"categories":1038},[],{"categories":1040},[107],{"categories":1042},[113],{"categories":1044},[107],{"categories":1046},[113],{"categories":1048},[56],{"categories":1050},[171],{"categories":1052},[113,155],{"categories":1054},[134],{"categories":1056},[155],{"categories":1058},[],{"categories":1060},[426],{"categories":1062},[155],{"categories":1064},[116],{"categories":1066},[],{"categories":1068},[],{"categories":1070},[],{"categories":1072},[],{"categories":1074},[56],{"categories":1076},[116],{"categories":1078},[116],{"categories":1080},[113],{"categories":1082},[113],{"categories":1084},[],{"categories":1086},[155],{"categories":1088},[],{"categories":1090},[],{"categories":1092},[116],{"categories":1094},[],{"categories":1096},[],{"categories":1098},[171],{"categories":1100},[171],{"categories":1102},[116],{"categories":1104},[],{"categories":1106},[113],{"categories":1108},[113],{"categories":1110},[56],{"categories":1112},[155],{"categories":1114},[155],{"categories":1116},[116],{"categories":1118},[107],{"categories":1120},[113],{"categories":1122},[155],{"categories":1124},[155],{"categories":1126},[116],{"categories":1128},[116],{"categories":1130},[113],{"categories":1132},[],{"categories":1134},[],{"categories":1136},[113],{"categories":1138},[116],{"categories":1140},[134],{"categories":1142},[56],{"categories":1144},[107],{"categories":1146},[113],{"categories":1148},[],{"categories":1150},[116],{"categories":1152},[116],{"categories":1154},[],{"categories":1156},[107],{"categories":1158},[113],{"categories":1160},[107],{"categories":1162},[107],{"categories":1164},[],{"categories":1166},[],{"categories":1168},[116],{"categories":1170},[116],{"categories":1172},[113],{"categories":1174},[113],{"categories":1176},[134],{"categories":1178},[158],{"categories":1180},[119],{"categories":1182},[134],{"categories":1184},[155],{"categories":1186},[],{"categories":1188},[134],{"categories":1190},[],{"categories":1192},[],{"categories":1194},[],{"categories":1196},[],{"categories":1198},[56],{"categories":1200},[158],{"categories":1202},[],{"categories":1204},[113],{"categories":1206},[113],{"categories":1208},[158],{"categories":1210},[56],{"categories":1212},[],{"categories":1214},[],{"categories":1216},[116],{"categories":1218},[134],{"categories":1220},[134],{"categories":1222},[116],{"categories":1224},[107],{"categories":1226},[113,426],{"categories":1228},[],{"categories":1230},[155],{"categories":1232},[107],{"categories":1234},[116],{"categories":1236},[155],{"categories":1238},[],{"categories":1240},[116],{"categories":1242},[116],{"categories":1244},[113],{"categories":1246},[171],{"categories":1248},[56],{"categories":1250},[155],{"categories":1252},[],{"categories":1254},[116],{"categories":1256},[113],{"categories":1258},[116],{"categories":1260},[116],{"categories":1262},[116],{"categories":1264},[171],{"categories":1266},[116],{"categories":1268},[113],{"categories":1270},[],{"categories":1272},[171],{"categories":1274},[134],{"categories":1276},[116],{"categories":1278},[],{"categories":1280},[],{"categories":1282},[113],{"categories":1284},[116],{"categories":1286},[134],{"categories":1288},[116],{"categories":1290},[],{"categories":1292},[],{"categories":1294},[],{"categories":1296},[116],{"categories":1298},[],{"categories":1300},[],{"categories":1302},[158],{"categories":1304},[113],{"categories":1306},[158],{"categories":1308},[134],{"categories":1310},[113],{"categories":1312},[113],{"categories":1314},[116],{"categories":1316},[113],{"categories":1318},[],{"categories":1320},[],{"categories":1322},[426],{"categories":1324},[],{"categories":1326},[],{"categories":1328},[107],{"categories":1330},[],{"categories":1332},[],{"categories":1334},[],{"categories":1336},[],{"categories":1338},[56],{"categories":1340},[134],{"categories":1342},[171],{"categories":1344},[110],{"categories":1346},[113],{"categories":1348},[113],{"categories":1350},[110],{"categories":1352},[],{"categories":1354},[155],{"categories":1356},[116],{"categories":1358},[110],{"categories":1360},[113],{"categories":1362},[113],{"categories":1364},[107],{"categories":1366},[],{"categories":1368},[107],{"categories":1370},[113],{"categories":1372},[171],{"categories":1374},[116],{"categories":1376},[134],{"categories":1378},[110],{"categories":1380},[113],{"categories":1382},[116],{"categories":1384},[],{"categories":1386},[113],{"categories":1388},[107],{"categories":1390},[113],{"categories":1392},[],{"categories":1394},[134],{"categories":1396},[113],{"categories":1398},[],{"categories":1400},[110],{"categories":1402},[113],{"categories":1404},[],{"categories":1406},[],{"categories":1408},[],{"categories":1410},[113],{"categories":1412},[],{"categories":1414},[426],{"categories":1416},[113],{"categories":1418},[],{"categories":1420},[113],{"categories":1422},[113],{"categories":1424},[113],{"categories":1426},[113,426],{"categories":1428},[113],{"categories":1430},[113],{"categories":1432},[155],{"categories":1434},[116],{"categories":1436},[],{"categories":1438},[116],{"categories":1440},[113],{"categories":1442},[113],{"categories":1444},[113],{"categories":1446},[107],{"categories":1448},[107],{"categories":1450},[56],{"categories":1452},[155],{"categories":1454},[116],{"categories":1456},[],{"categories":1458},[113],{"categories":1460},[134],{"categories":1462},[113],{"categories":1464},[110],{"categories":1466},[],{"categories":1468},[426],{"categories":1470},[155],{"categories":1472},[155],{"categories":1474},[116],{"categories":1476},[134],{"categories":1478},[116],{"categories":1480},[113],{"categories":1482},[],{"categories":1484},[113],{"categories":1486},[],{"categories":1488},[],{"categories":1490},[113],{"categories":1492},[113],{"categories":1494},[113],{"categories":1496},[116],{"categories":1498},[113],{"categories":1500},[],{"categories":1502},[158],{"categories":1504},[116],{"categories":1506},[],{"categories":1508},[113],{"categories":1510},[134],{"categories":1512},[],{"categories":1514},[155],{"categories":1516},[426],{"categories":1518},[134],{"categories":1520},[56],{"categories":1522},[56],{"categories":1524},[134],{"categories":1526},[134],{"categories":1528},[426],{"categories":1530},[],{"categories":1532},[134],{"categories":1534},[113],{"categories":1536},[107],{"categories":1538},[134],{"categories":1540},[],{"categories":1542},[158],{"categories":1544},[134],{"categories":1546},[56],{"categories":1548},[134],{"categories":1550},[426],{"categories":1552},[113],{"categories":1554},[113],{"categories":1556},[],{"categories":1558},[110],{"categories":1560},[],{"categories":1562},[],{"categories":1564},[113],{"categories":1566},[113],{"categories":1568},[113],{"categories":1570},[113],{"categories":1572},[],{"categories":1574},[158],{"categories":1576},[107],{"categories":1578},[],{"categories":1580},[113],{"categories":1582},[113],{"categories":1584},[426],{"categories":1586},[426],{"categories":1588},[],{"categories":1590},[116],{"categories":1592},[134],{"categories":1594},[134],{"categories":1596},[113],{"categories":1598},[116],{"categories":1600},[],{"categories":1602},[155],{"categories":1604},[113],{"categories":1606},[113],{"categories":1608},[],{"categories":1610},[],{"categories":1612},[426],{"categories":1614},[113],{"categories":1616},[56],{"categories":1618},[110],{"categories":1620},[113],{"categories":1622},[],{"categories":1624},[116],{"categories":1626},[107],{"categories":1628},[107],{"categories":1630},[],{"categories":1632},[113],{"categories":1634},[155],{"categories":1636},[116],{"categories":1638},[],{"categories":1640},[113],{"categories":1642},[113],{"categories":1644},[116],{"categories":1646},[],{"categories":1648},[116],{"categories":1650},[56],{"categories":1652},[],{"categories":1654},[113],{"categories":1656},[],{"categories":1658},[113],{"categories":1660},[],{"categories":1662},[113],{"categories":1664},[113],{"categories":1666},[],{"categories":1668},[113],{"categories":1670},[134],{"categories":1672},[113],{"categories":1674},[113],{"categories":1676},[107],{"categories":1678},[113],{"categories":1680},[134],{"categories":1682},[116],{"categories":1684},[],{"categories":1686},[113],{"categories":1688},[171],{"categories":1690},[],{"categories":1692},[],{"categories":1694},[],{"categories":1696},[107],{"categories":1698},[134],{"categories":1700},[116],{"categories":1702},[113],{"categories":1704},[155],{"categories":1706},[116],{"categories":1708},[],{"categories":1710},[116],{"categories":1712},[],{"categories":1714},[113],{"categories":1716},[116],{"categories":1718},[113],{"categories":1720},[],{"categories":1722},[113],{"categories":1724},[113],{"categories":1726},[134],{"categories":1728},[155],{"categories":1730},[116],{"categories":1732},[155],{"categories":1734},[110],{"categories":1736},[],{"categories":1738},[],{"categories":1740},[113],{"categories":1742},[107],{"categories":1744},[134],{"categories":1746},[],{"categories":1748},[],{"categories":1750},[56],{"categories":1752},[155],{"categories":1754},[],{"categories":1756},[113],{"categories":1758},[],{"categories":1760},[171],{"categories":1762},[113],{"categories":1764},[426],{"categories":1766},[56],{"categories":1768},[],{"categories":1770},[116],{"categories":1772},[113],{"categories":1774},[116],{"categories":1776},[116],{"categories":1778},[113],{"categories":1780},[],{"categories":1782},[107],{"categories":1784},[113],{"categories":1786},[110],{"categories":1788},[56],{"categories":1790},[155],{"categories":1792},[],{"categories":1794},[],{"categories":1796},[],{"categories":1798},[116],{"categories":1800},[155],{"categories":1802},[134],{"categories":1804},[113],{"categories":1806},[134],{"categories":1808},[155],{"categories":1810},[],{"categories":1812},[155],{"categories":1814},[134],{"categories":1816},[110],{"categories":1818},[113],{"categories":1820},[134],{"categories":1822},[171],{"categories":1824},[],{"categories":1826},[],{"categories":1828},[158],{"categories":1830},[113,56],{"categories":1832},[134],{"categories":1834},[113],{"categories":1836},[116],{"categories":1838},[116],{"categories":1840},[113],{"categories":1842},[],{"categories":1844},[56],{"categories":1846},[113],{"categories":1848},[158],{"categories":1850},[116],{"categories":1852},[171],{"categories":1854},[426],{"categories":1856},[],{"categories":1858},[107],{"categories":1860},[116],{"categories":1862},[116],{"categories":1864},[56],{"categories":1866},[113],{"categories":1868},[113],{"categories":1870},[],{"categories":1872},[],{"categories":1874},[],{"categories":1876},[426],{"categories":1878},[134],{"categories":1880},[113],{"categories":1882},[113],{"categories":1884},[113],{"categories":1886},[],{"categories":1888},[158],{"categories":1890},[110],{"categories":1892},[],{"categories":1894},[116],{"categories":1896},[426],{"categories":1898},[],{"categories":1900},[155],{"categories":1902},[155],{"categories":1904},[],{"categories":1906},[56],{"categories":1908},[155],{"categories":1910},[113],{"categories":1912},[],{"categories":1914},[134],{"categories":1916},[113],{"categories":1918},[155],{"categories":1920},[116],{"categories":1922},[134],{"categories":1924},[],{"categories":1926},[116],{"categories":1928},[155],{"categories":1930},[113],{"categories":1932},[],{"categories":1934},[113],{"categories":1936},[113],{"categories":1938},[426],{"categories":1940},[134],{"categories":1942},[158],{"categories":1944},[158],{"categories":1946},[],{"categories":1948},[],{"categories":1950},[],{"categories":1952},[116],{"categories":1954},[56],{"categories":1956},[56],{"categories":1958},[],{"categories":1960},[],{"categories":1962},[113],{"categories":1964},[],{"categories":1966},[116],{"categories":1968},[113],{"categories":1970},[],{"categories":1972},[113],{"categories":1974},[110],{"categories":1976},[113],{"categories":1978},[171],{"categories":1980},[116],{"categories":1982},[113],{"categories":1984},[56],{"categories":1986},[134],{"categories":1988},[116],{"categories":1990},[],{"categories":1992},[134],{"categories":1994},[116],{"categories":1996},[116],{"categories":1998},[],{"categories":2000},[110],{"categories":2002},[116],{"categories":2004},[],{"categories":2006},[113],{"categories":2008},[107],{"categories":2010},[134],{"categories":2012},[426],{"categories":2014},[116],{"categories":2016},[116],{"categories":2018},[107],{"categories":2020},[113],{"categories":2022},[],{"categories":2024},[],{"categories":2026},[155],{"categories":2028},[113,110],{"categories":2030},[],{"categories":2032},[107],{"categories":2034},[158],{"categories":2036},[113],{"categories":2038},[56],{"categories":2040},[113],{"categories":2042},[116],{"categories":2044},[113],{"categories":2046},[113],{"categories":2048},[134],{"categories":2050},[116],{"categories":2052},[],{"categories":2054},[],{"categories":2056},[116],{"categories":2058},[113],{"categories":2060},[426],{"categories":2062},[],{"categories":2064},[113],{"categories":2066},[116],{"categories":2068},[],{"categories":2070},[113],{"categories":2072},[171],{"categories":2074},[158],{"categories":2076},[116],{"categories":2078},[113],{"categories":2080},[426],{"categories":2082},[],{"categories":2084},[113],{"categories":2086},[171],{"categories":2088},[155],{"categories":2090},[113],{"categories":2092},[],{"categories":2094},[171],{"categories":2096},[134],{"categories":2098},[113],{"categories":2100},[113],{"categories":2102},[107],{"categories":2104},[],{"categories":2106},[],{"categories":2108},[155],{"categories":2110},[113],{"categories":2112},[158],{"categories":2114},[171],{"categories":2116},[171],{"categories":2118},[134],{"categories":2120},[],{"categories":2122},[],{"categories":2124},[113],{"categories":2126},[],{"categories":2128},[113,56],{"categories":2130},[134],{"categories":2132},[116],{"categories":2134},[56],{"categories":2136},[113],{"categories":2138},[107],{"categories":2140},[],{"categories":2142},[],{"categories":2144},[107],{"categories":2146},[171],{"categories":2148},[113],{"categories":2150},[],{"categories":2152},[155,113],{"categories":2154},[426],{"categories":2156},[107],{"categories":2158},[],{"categories":2160},[110],{"categories":2162},[110],{"categories":2164},[113],{"categories":2166},[56],{"categories":2168},[116],{"categories":2170},[134],{"categories":2172},[171],{"categories":2174},[155],{"categories":2176},[113],{"categories":2178},[113],{"categories":2180},[113],{"categories":2182},[107],{"categories":2184},[113],{"categories":2186},[116],{"categories":2188},[134],{"categories":2190},[],{"categories":2192},[],{"categories":2194},[158],{"categories":2196},[56],{"categories":2198},[113],{"categories":2200},[155],{"categories":2202},[158],{"categories":2204},[113],{"categories":2206},[113],{"categories":2208},[116],{"categories":2210},[116],{"categories":2212},[113,110],{"categories":2214},[],{"categories":2216},[155],{"categories":2218},[],{"categories":2220},[113],{"categories":2222},[134],{"categories":2224},[107],{"categories":2226},[107],{"categories":2228},[116],{"categories":2230},[113],{"categories":2232},[110],{"categories":2234},[56],{"categories":2236},[171],{"categories":2238},[],{"categories":2240},[134],{"categories":2242},[113],{"categories":2244},[113],{"categories":2246},[134],{"categories":2248},[56],{"categories":2250},[113],{"categories":2252},[116],{"categories":2254},[134],{"categories":2256},[113],{"categories":2258},[155],{"categories":2260},[113],{"categories":2262},[113],{"categories":2264},[426],{"categories":2266},[119],{"categories":2268},[116],{"categories":2270},[113],{"categories":2272},[134],{"categories":2274},[116],{"categories":2276},[171],{"categories":2278},[113],{"categories":2280},[],{"categories":2282},[113],{"categories":2284},[],{"categories":2286},[],{"categories":2288},[],{"categories":2290},[110],{"categories":2292},[113],{"categories":2294},[116],{"categories":2296},[134],{"categories":2298},[134],{"categories":2300},[134],{"categories":2302},[134],{"categories":2304},[],{"categories":2306},[107],{"categories":2308},[116],{"categories":2310},[134],{"categories":2312},[107],{"categories":2314},[116],{"categories":2316},[113],{"categories":2318},[113,116],{"categories":2320},[116],{"categories":2322},[426],{"categories":2324},[134],{"categories":2326},[134],{"categories":2328},[116],{"categories":2330},[113],{"categories":2332},[],{"categories":2334},[134],{"categories":2336},[171],{"categories":2338},[107],{"categories":2340},[113],{"categories":2342},[113],{"categories":2344},[],{"categories":2346},[56],{"categories":2348},[],{"categories":2350},[107],{"categories":2352},[116],{"categories":2354},[134],{"categories":2356},[113],{"categories":2358},[134],{"categories":2360},[107],{"categories":2362},[134],{"categories":2364},[134],{"categories":2366},[],{"categories":2368},[110],{"categories":2370},[116],{"categories":2372},[134],{"categories":2374},[134],{"categories":2376},[134],{"categories":2378},[134],{"categories":2380},[134],{"categories":2382},[134],{"categories":2384},[134],{"categories":2386},[134],{"categories":2388},[134],{"categories":2390},[134],{"categories":2392},[158],{"categories":2394},[107],{"categories":2396},[113],{"categories":2398},[113],{"categories":2400},[],{"categories":2402},[113,107],{"categories":2404},[],{"categories":2406},[116],{"categories":2408},[134],{"categories":2410},[116],{"categories":2412},[113],{"categories":2414},[113],{"categories":2416},[113],{"categories":2418},[113],{"categories":2420},[113],{"categories":2422},[116],{"categories":2424},[110],{"categories":2426},[155],{"categories":2428},[134],{"categories":2430},[113],{"categories":2432},[],{"categories":2434},[],{"categories":2436},[116],{"categories":2438},[155],{"categories":2440},[113],{"categories":2442},[],{"categories":2444},[],{"categories":2446},[171],{"categories":2448},[113],{"categories":2450},[],{"categories":2452},[],{"categories":2454},[107],{"categories":2456},[110],{"categories":2458},[113],{"categories":2460},[110],{"categories":2462},[155],{"categories":2464},[],{"categories":2466},[134],{"categories":2468},[],{"categories":2470},[155],{"categories":2472},[113],{"categories":2474},[171],{"categories":2476},[],{"categories":2478},[171],{"categories":2480},[],{"categories":2482},[],{"categories":2484},[116],{"categories":2486},[],{"categories":2488},[110],{"categories":2490},[107],{"categories":2492},[155],{"categories":2494},[56],{"categories":2496},[],{"categories":2498},[],{"categories":2500},[113],{"categories":2502},[107],{"categories":2504},[171],{"categories":2506},[],{"categories":2508},[116],{"categories":2510},[116],{"categories":2512},[134],{"categories":2514},[113],{"categories":2516},[116],{"categories":2518},[113],{"categories":2520},[116],{"categories":2522},[113],{"categories":2524},[119],{"categories":2526},[134],{"categories":2528},[],{"categories":2530},[171],{"categories":2532},[56],{"categories":2534},[116],{"categories":2536},[],{"categories":2538},[113],{"categories":2540},[116],{"categories":2542},[110],{"categories":2544},[107],{"categories":2546},[113],{"categories":2548},[155],{"categories":2550},[56],{"categories":2552},[56],{"categories":2554},[113],{"categories":2556},[158],{"categories":2558},[113],{"categories":2560},[116],{"categories":2562},[110],{"categories":2564},[116],{"categories":2566},[113],{"categories":2568},[113],{"categories":2570},[116],{"categories":2572},[134],{"categories":2574},[],{"categories":2576},[107],{"categories":2578},[113],{"categories":2580},[116],{"categories":2582},[113],{"categories":2584},[113],{"categories":2586},[],{"categories":2588},[155],{"categories":2590},[110],{"categories":2592},[134],{"categories":2594},[113],{"categories":2596},[113],{"categories":2598},[155],{"categories":2600},[171],{"categories":2602},[158],{"categories":2604},[113],{"categories":2606},[134],{"categories":2608},[113],{"categories":2610},[116],{"categories":2612},[426],{"categories":2614},[113],{"categories":2616},[116],{"categories":2618},[158],{"categories":2620},[],{"categories":2622},[116],{"categories":2624},[56],{"categories":2626},[155],{"categories":2628},[113],{"categories":2630},[107],{"categories":2632},[110],{"categories":2634},[56],{"categories":2636},[],{"categories":2638},[116],{"categories":2640},[113],{"categories":2642},[],{"categories":2644},[134],{"categories":2646},[],{"categories":2648},[134],{"categories":2650},[113],{"categories":2652},[116],{"categories":2654},[116],{"categories":2656},[116],{"categories":2658},[],{"categories":2660},[],{"categories":2662},[113],{"categories":2664},[113],{"categories":2666},[],{"categories":2668},[155],{"categories":2670},[116],{"categories":2672},[171],{"categories":2674},[107],{"categories":2676},[],{"categories":2678},[],{"categories":2680},[134],{"categories":2682},[56],{"categories":2684},[113],{"categories":2686},[113],{"categories":2688},[113],{"categories":2690},[56],{"categories":2692},[134],{"categories":2694},[155],{"categories":2696},[113],{"categories":2698},[113],{"categories":2700},[113],{"categories":2702},[134],{"categories":2704},[113],{"categories":2706},[134],{"categories":2708},[116],{"categories":2710},[116],{"categories":2712},[56],{"categories":2714},[116],{"categories":2716},[113],{"categories":2718},[56],{"categories":2720},[155],{"categories":2722},[],{"categories":2724},[116],{"categories":2726},[],{"categories":2728},[],{"categories":2730},[110],{"categories":2732},[113],{"categories":2734},[116],{"categories":2736},[107],{"categories":2738},[116],{"categories":2740},[171],{"categories":2742},[],{"categories":2744},[116],{"categories":2746},[],{"categories":2748},[107],{"categories":2750},[116],{"categories":2752},[],{"categories":2754},[116],{"categories":2756},[113],{"categories":2758},[134],{"categories":2760},[113],{"categories":2762},[116],{"categories":2764},[134],{"categories":2766},[116],{"categories":2768},[56],{"categories":2770},[155],{"categories":2772},[107],{"categories":2774},[],{"categories":2776},[116],{"categories":2778},[155],{"categories":2780},[134],{"categories":2782},[113],{"categories":2784},[155],{"categories":2786},[107],{"categories":2788},[],{"categories":2790},[116],{"categories":2792},[116],{"categories":2794},[113],{"categories":2796},[],{"categories":2798},[116],{"categories":2800},[119],{"categories":2802},[134],{"categories":2804},[116],{"categories":2806},[110],{"categories":2808},[],{"categories":2810},[113],{"categories":2812},[119],{"categories":2814},[113],{"categories":2816},[116],{"categories":2818},[134],{"categories":2820},[107],{"categories":2822},[426],{"categories":2824},[113],{"categories":2826},[113],{"categories":2828},[113],{"categories":2830},[134],{"categories":2832},[110],{"categories":2834},[113],{"categories":2836},[155],{"categories":2838},[134],{"categories":2840},[426],{"categories":2842},[113],{"categories":2844},[],{"categories":2846},[],{"categories":2848},[426],{"categories":2850},[158],{"categories":2852},[116],{"categories":2854},[116],{"categories":2856},[134],{"categories":2858},[113],{"categories":2860},[107],{"categories":2862},[155],{"categories":2864},[116],{"categories":2866},[113],{"categories":2868},[171],{"categories":2870},[113],{"categories":2872},[116],{"categories":2874},[],{"categories":2876},[113],{"categories":2878},[113],{"categories":2880},[134],{"categories":2882},[107],{"categories":2884},[],{"categories":2886},[113],{"categories":2888},[113],{"categories":2890},[56],{"categories":2892},[155],{"categories":2894},[113,116],{"categories":2896},[171,110],{"categories":2898},[113],{"categories":2900},[],{"categories":2902},[116],{"categories":2904},[],{"categories":2906},[56],{"categories":2908},[113],{"categories":2910},[134],{"categories":2912},[],{"categories":2914},[116],{"categories":2916},[],{"categories":2918},[116],{"categories":2920},[107],{"categories":2922},[116],{"categories":2924},[113],{"categories":2926},[426],{"categories":2928},[171],{"categories":2930},[110],{"categories":2932},[110],{"categories":2934},[107],{"categories":2936},[107],{"categories":2938},[113],{"categories":2940},[116],{"categories":2942},[113],{"categories":2944},[113],{"categories":2946},[107],{"categories":2948},[113],{"categories":2950},[171],{"categories":2952},[134],{"categories":2954},[113],{"categories":2956},[116],{"categories":2958},[113],{"categories":2960},[],{"categories":2962},[56],{"categories":2964},[],{"categories":2966},[116],{"categories":2968},[107],{"categories":2970},[],{"categories":2972},[426],{"categories":2974},[113],{"categories":2976},[],{"categories":2978},[134],{"categories":2980},[116],{"categories":2982},[56],{"categories":2984},[113],{"categories":2986},[116],{"categories":2988},[56],{"categories":2990},[116],{"categories":2992},[134],{"categories":2994},[107],{"categories":2996},[134],{"categories":2998},[56],{"categories":3000},[113],{"categories":3002},[155],{"categories":3004},[113],{"categories":3006},[113],{"categories":3008},[113],{"categories":3010},[113],{"categories":3012},[116],{"categories":3014},[113],{"categories":3016},[116],{"categories":3018},[113],{"categories":3020},[107],{"categories":3022},[113],{"categories":3024},[116],{"categories":3026},[155],{"categories":3028},[107],{"categories":3030},[116],{"categories":3032},[155],{"categories":3034},[],{"categories":3036},[113],{"categories":3038},[113],{"categories":3040},[56],{"categories":3042},[],{"categories":3044},[116],{"categories":3046},[171],{"categories":3048},[113],{"categories":3050},[134],{"categories":3052},[171],{"categories":3054},[116],{"categories":3056},[110],{"categories":3058},[110],{"categories":3060},[113],{"categories":3062},[107],{"categories":3064},[],{"categories":3066},[113],{"categories":3068},[],{"categories":3070},[107],{"categories":3072},[113],{"categories":3074},[116],{"categories":3076},[116],{"categories":3078},[],{"categories":3080},[56],{"categories":3082},[56],{"categories":3084},[171],{"categories":3086},[155],{"categories":3088},[],{"categories":3090},[113],{"categories":3092},[107],{"categories":3094},[113],{"categories":3096},[56],{"categories":3098},[107],{"categories":3100},[134],{"categories":3102},[134],{"categories":3104},[],{"categories":3106},[134],{"categories":3108},[116],{"categories":3110},[155],{"categories":3112},[158],{"categories":3114},[113],{"categories":3116},[],{"categories":3118},[134],{"categories":3120},[56],{"categories":3122},[110],{"categories":3124},[113],{"categories":3126},[107],{"categories":3128},[426],{"categories":3130},[107],{"categories":3132},[],{"categories":3134},[],{"categories":3136},[134],{"categories":3138},[],{"categories":3140},[116],{"categories":3142},[116],{"categories":3144},[116],{"categories":3146},[],{"categories":3148},[113],{"categories":3150},[],{"categories":3152},[134],{"categories":3154},[107],{"categories":3156},[155],{"categories":3158},[113],{"categories":3160},[134],{"categories":3162},[134],{"categories":3164},[],{"categories":3166},[134],{"categories":3168},[107],{"categories":3170},[113],{"categories":3172},[],{"categories":3174},[116],{"categories":3176},[116],{"categories":3178},[107],{"categories":3180},[],{"categories":3182},[],{"categories":3184},[],{"categories":3186},[155],{"categories":3188},[116],{"categories":3190},[113],{"categories":3192},[],{"categories":3194},[],{"categories":3196},[],{"categories":3198},[155],{"categories":3200},[],{"categories":3202},[107],{"categories":3204},[],{"categories":3206},[],{"categories":3208},[155],{"categories":3210},[113],{"categories":3212},[134],{"categories":3214},[],{"categories":3216},[171],{"categories":3218},[134],{"categories":3220},[171],{"categories":3222},[113],{"categories":3224},[],{"categories":3226},[],{"categories":3228},[116],{"categories":3230},[],{"categories":3232},[],{"categories":3234},[116],{"categories":3236},[113],{"categories":3238},[],{"categories":3240},[116],{"categories":3242},[134],{"categories":3244},[171],{"categories":3246},[158],{"categories":3248},[116],{"categories":3250},[116],{"categories":3252},[],{"categories":3254},[],{"categories":3256},[],{"categories":3258},[134],{"categories":3260},[],{"categories":3262},[],{"categories":3264},[155],{"categories":3266},[107],{"categories":3268},[],{"categories":3270},[110],{"categories":3272},[171],{"categories":3274},[113],{"categories":3276},[56],{"categories":3278},[107],{"categories":3280},[158],{"categories":3282},[110],{"categories":3284},[56],{"categories":3286},[],{"categories":3288},[],{"categories":3290},[116],{"categories":3292},[107],{"categories":3294},[155],{"categories":3296},[107],{"categories":3298},[116],{"categories":3300},[426],{"categories":3302},[116],{"categories":3304},[],{"categories":3306},[113],{"categories":3308},[134],{"categories":3310},[56],{"categories":3312},[],{"categories":3314},[155],{"categories":3316},[134],{"categories":3318},[107],{"categories":3320},[116],{"categories":3322},[113],{"categories":3324},[110],{"categories":3326},[116,426],{"categories":3328},[116],{"categories":3330},[56],{"categories":3332},[113],{"categories":3334},[158],{"categories":3336},[171],{"categories":3338},[116],{"categories":3340},[],{"categories":3342},[116],{"categories":3344},[113],{"categories":3346},[110],{"categories":3348},[],{"categories":3350},[],{"categories":3352},[113],{"categories":3354},[158],{"categories":3356},[113],{"categories":3358},[],{"categories":3360},[134],{"categories":3362},[],{"categories":3364},[134],{"categories":3366},[56],{"categories":3368},[116],{"categories":3370},[113],{"categories":3372},[171],{"categories":3374},[56],{"categories":3376},[],{"categories":3378},[134],{"categories":3380},[113],{"categories":3382},[],{"categories":3384},[113],{"categories":3386},[116],{"categories":3388},[113],{"categories":3390},[116],{"categories":3392},[113],{"categories":3394},[113],{"categories":3396},[113],{"categories":3398},[113],{"categories":3400},[110],{"categories":3402},[],{"categories":3404},[119],{"categories":3406},[134],{"categories":3408},[113],{"categories":3410},[],{"categories":3412},[56],{"categories":3414},[113],{"categories":3416},[113],{"categories":3418},[116],{"categories":3420},[134],{"categories":3422},[113],{"categories":3424},[113],{"categories":3426},[110],{"categories":3428},[116],{"categories":3430},[155],{"categories":3432},[],{"categories":3434},[158],{"categories":3436},[113],{"categories":3438},[],{"categories":3440},[134],{"categories":3442},[171],{"categories":3444},[],{"categories":3446},[],{"categories":3448},[134],{"categories":3450},[134],{"categories":3452},[171],{"categories":3454},[107],{"categories":3456},[116],{"categories":3458},[116],{"categories":3460},[113],{"categories":3462},[110],{"categories":3464},[],{"categories":3466},[],{"categories":3468},[134],{"categories":3470},[158],{"categories":3472},[56],{"categories":3474},[116],{"categories":3476},[155],{"categories":3478},[158],{"categories":3480},[158],{"categories":3482},[],{"categories":3484},[134],{"categories":3486},[113],{"categories":3488},[113],{"categories":3490},[56],{"categories":3492},[],{"categories":3494},[134],{"categories":3496},[134],{"categories":3498},[134],{"categories":3500},[],{"categories":3502},[116],{"categories":3504},[113],{"categories":3506},[],{"categories":3508},[107],{"categories":3510},[110],{"categories":3512},[],{"categories":3514},[113],{"categories":3516},[113],{"categories":3518},[],{"categories":3520},[56],{"categories":3522},[],{"categories":3524},[],{"categories":3526},[],{"categories":3528},[],{"categories":3530},[113],{"categories":3532},[134],{"categories":3534},[],{"categories":3536},[],{"categories":3538},[113],{"categories":3540},[113],{"categories":3542},[113],{"categories":3544},[158],{"categories":3546},[113],{"categories":3548},[158],{"categories":3550},[],{"categories":3552},[158],{"categories":3554},[158],{"categories":3556},[426],{"categories":3558},[116],{"categories":3560},[56],{"categories":3562},[],{"categories":3564},[],{"categories":3566},[158],{"categories":3568},[56],{"categories":3570},[56],{"categories":3572},[56],{"categories":3574},[],{"categories":3576},[107],{"categories":3578},[56],{"categories":3580},[56],{"categories":3582},[107],{"categories":3584},[56],{"categories":3586},[110],{"categories":3588},[56],{"categories":3590},[56],{"categories":3592},[56],{"categories":3594},[158],{"categories":3596},[134],{"categories":3598},[134],{"categories":3600},[113],{"categories":3602},[56],{"categories":3604},[158],{"categories":3606},[426],{"categories":3608},[158],{"categories":3610},[158],{"categories":3612},[158],{"categories":3614},[],{"categories":3616},[110],{"categories":3618},[],{"categories":3620},[426],{"categories":3622},[56],{"categories":3624},[56],{"categories":3626},[56],{"categories":3628},[116],{"categories":3630},[134,110],{"categories":3632},[158],{"categories":3634},[],{"categories":3636},[],{"categories":3638},[158],{"categories":3640},[],{"categories":3642},[158],{"categories":3644},[134],{"categories":3646},[116],{"categories":3648},[],{"categories":3650},[56],{"categories":3652},[113],{"categories":3654},[155],{"categories":3656},[],{"categories":3658},[113],{"categories":3660},[],{"categories":3662},[134],{"categories":3664},[107],{"categories":3666},[158],{"categories":3668},[],{"categories":3670},[56],{"categories":3672},[134],[3674,3757,3865,3923],{"id":3675,"title":3676,"ai":3677,"body":3682,"categories":3740,"created_at":57,"date_modified":57,"description":3741,"extension":58,"faq":57,"featured":59,"kicker_label":57,"meta":3742,"navigation":87,"path":3743,"published_at":3744,"question":57,"scraped_at":3745,"seo":3746,"sitemap":3747,"source_id":3748,"source_name":3749,"source_type":3750,"source_url":3751,"stem":3752,"tags":3753,"thumbnail_url":57,"tldr":3754,"tweet":57,"unknown_tags":3755,"__hash__":3756},"summaries\u002Fsummaries\u002F83e85cee6b0e5f98-axios-npm-hack-deploys-rats-on-101m-dev-installs-summary.md","Axios NPM Hack Deploys RATs on 101M Dev Installs",{"provider":7,"model":8,"input_tokens":3678,"output_tokens":3679,"processing_time_ms":3680,"cost_usd":3681},4214,1531,14142,0.00131745,{"type":14,"value":3683,"toc":3734},[3684,3688,3696,3699,3703,3706,3709,3713,3716,3720],[17,3685,3687],{"id":3686},"backdoor-mechanics-exploit-post-install-scripts","Backdoor Mechanics Exploit Post-Install Scripts",[22,3689,3690,3691,3695],{},"Attackers hijacked the Axios NPM lead maintainer's account—despite 2FA and GitHub auth—using a long-lived NPM CLI access token (possibly via recovery codes) to publish v1.14.1 (tagged latest) and v0.30.4 (tagged legacy) on March 31. These versions added a phantom 'plain crypto-js' dependency, a tweaked crypto-js with a malicious post-install 'setup.js' script. This script runs automatically on every ",[3692,3693,3694],"code",{},"npm install"," or CI execution, detects the OS (Windows, macOS Intel\u002FApple Silicon, Linux), and fetches a tailored second-stage RAT payload from a remote server.",[22,3697,3698],{},"The RAT self-cleans: original setup.js deletes itself, removes the malicious package.json post-install entry, and restores a clean version to evade detection. Packages like DataDog, OpenClaw, and WordPress inherited the compromise, affecting Axios's 174,000 dependents and 101 million weekly installs.",[17,3700,3702],{"id":3701},"rat-behaviors-steal-dev-credentials-and-enable-remote-control","RAT Behaviors Steal Dev Credentials and Enable Remote Control",[22,3704,3705],{},"Once deployed, the RAT scans sensitive directories—Documents, Desktop, config folders (plus OneDrive, AppData, all drive letters on Windows)—exfiltrates the file list to attackers for theft assessment, then beacons every 60 seconds with hostname, username, OS, timezone, hardware model, and all running processes. This reveals active software and user presence.",[22,3707,3708],{},"Attackers can remotely issue four commands: (1) browse any directory, (2) execute arbitrary shell commands\u002Fscripts, (3) drop\u002Fexecute more malware, (4) kill the process for cleanup. Treat any infected system as fully compromised: rotate all secrets like .env files, NPM tokens, SSH keys immediately.",[17,3710,3712],{"id":3711},"detect-infection-and-respond-swiftly","Detect Infection and Respond Swiftly",[22,3714,3715],{},"Search lockfiles (package-lock.json, yarn.lock) for axios@1.14.1, axios@0.30.4, or plain-crypto-js. Scan node_modules for these packages. Hunt RAT artifacts per platform-specific write-ups (linked in source). Axios versions were yanked after 3 hours, but prior installs persist—assume credential theft.",[17,3717,3719],{"id":3718},"prevent-future-supply-chain-attacks","Prevent Future Supply Chain Attacks",[22,3721,3722,3723,3726,3727,3729,3730,3733],{},"Commit lockfiles to pin versions and use ",[3692,3724,3725],{},"npm ci"," (not ",[3692,3728,3694],{},") in CI\u002FCD to enforce exact installs. Set minimum package age (e.g., 48 hours) to skip fresh malicious uploads. Run ",[3692,3731,3732],{},"npm install --ignore-scripts"," to block post-installs, or switch to Bun which disables them by default except on explicitly trusted deps. These steps caught this attack early but highlight rising NPM threats.",{"title":49,"searchDepth":50,"depth":50,"links":3735},[3736,3737,3738,3739],{"id":3686,"depth":50,"text":3687},{"id":3701,"depth":50,"text":3702},{"id":3711,"depth":50,"text":3712},{"id":3718,"depth":50,"text":3719},[56],"Attackers compromised the Axios npm package and published two backdoored releases. The malicious versions introduced a hidden post-install script that silently downloaded a Remote Access Trojan onto developer machines and CI\u002FCD runners, scanning for .env files, SSH keys, npm tokens and more. \n\n🔗 Relevant Links\nhttps:\u002F\u002Fwww.huntress.com\u002Fblog\u002Fsupply-chain-compromise-axios-npm-package\nhttps:\u002F\u002Fcloud.google.com\u002Fblog\u002Ftopics\u002Fthreat-intelligence\u002Fnorth-korea-threat-actor-targets-axios-npm-package\u002F\nhttps:\u002F\u002Fwww.youtube.com\u002Fredirect?event=video_description&redir_token=QUFFLUhqbHZlejk4T1JxOVdNWmhWQ05MTUxmdTRzb2dUUXxBQ3Jtc0ttbEQ5SkFtZWhBUWZsallOWDhaeXo5cTNKXzQ5Y0E2U09MQVFBT21kVGtJWjhybmdZTlFFMWZycy1NWnZVRlh5a0FLZ3hOVUluTUNLemlPYXdia2RWcGY5eUx4bFRMdnZxSzVUN1ZhelkzNnRBWWdjZw&q=https%3A%2F%2Fwww.stepsecurity.io%2Fblog%2Faxios-compromised-on-npm-malicious-versions-drop-remote-access-trojan&v=yiLIZLPNEm8\n\n❤️ More about us\nRadically better observability stack: https:\u002F\u002Fbetterstack.com\u002F\nWritten tutorials: https:\u002F\u002Fbetterstack.com\u002Fcommunity\u002F\nExample projects: https:\u002F\u002Fgithub.com\u002FBetterStackHQ\n\n📱 Socials\nTwitter: https:\u002F\u002Ftwitter.com\u002Fbetterstackhq\nInstagram: https:\u002F\u002Fwww.instagram.com\u002Fbetterstackhq\u002F\nTikTok: https:\u002F\u002Fwww.tiktok.com\u002F@betterstack\nLinkedIn: https:\u002F\u002Fwww.linkedin.com\u002Fcompany\u002Fbetterstack",{},"\u002Fsummaries\u002F83e85cee6b0e5f98-axios-npm-hack-deploys-rats-on-101m-dev-installs-summary","2026-04-01 03:45:00","2026-04-03 21:14:39",{"title":3676,"description":3741},{"loc":3743},"83e85cee6b0e5f98","Better Stack","video","https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=5xWSezMFweE","summaries\u002F83e85cee6b0e5f98-axios-npm-hack-deploys-rats-on-101m-dev-installs-summary",[98,99,100],"North Korean-linked hackers compromised Axios maintainer account, releasing backdoored v1.14.1 (latest) and v0.30.4 (legacy) that install cross-OS RATs via phantom crypto-js dependency, targeting dev workstations and CI for credential theft.",[],"tQP4gE11qGqaB98Xh8-KbM3w7rjCxOU7P2pRYhL6dP0",{"id":3758,"title":3759,"ai":3760,"body":3765,"categories":3840,"created_at":57,"date_modified":57,"description":49,"extension":58,"faq":57,"featured":59,"kicker_label":57,"meta":3841,"navigation":87,"path":3852,"published_at":3853,"question":57,"scraped_at":3854,"seo":3855,"sitemap":3856,"source_id":3857,"source_name":3858,"source_type":94,"source_url":3859,"stem":3860,"tags":3861,"thumbnail_url":57,"tldr":3862,"tweet":57,"unknown_tags":3863,"__hash__":3864},"summaries\u002Fsummaries\u002Fda5bfb294446c261-rust-cuda-kernels-via-direct-ptx-compilation-summary.md","Rust CUDA Kernels via Direct PTX Compilation",{"provider":7,"model":8,"input_tokens":3761,"output_tokens":3762,"processing_time_ms":3763,"cost_usd":3764},9427,1814,17557,0.00276975,{"type":14,"value":3766,"toc":3835},[3767,3771,3792,3799,3802,3806,3809,3812,3815,3819,3822,3832],[17,3768,3770],{"id":3769},"native-cuda-model-in-safe-rust-without-c-or-dsls","Native CUDA Model in Safe Rust Without C++ or DSLs",[22,3772,3773,3774,3778,3779,3783,3784],{},"cuda-oxide targets CUDA's SIMT execution model natively in Rust, closer to C++ ",[3775,3776,3777],"strong",{},"global"," functions than generic Rust async code. Mark kernels with #",[3780,3781,3782],"span",{},"kernel"," proc macro, which namespaces them as cuda_oxide_kernel_",[3785,3786,3787,3788],"hash",{},"_",[3789,3790,3791],"name",{},"; only these compile to PTX via custom rustc backend, while host code uses standard LLVM. This single-source approach in one .rs file produces host binary + target\u002Fdebug\u002Fvecadd.ptx from cargo oxide build. Device libs compile lazily from .rlib Stable MIR metadata, avoiding upfront compilation of unused code.",[22,3793,3794,3795],{},"Supports match\u002Fif let, generics like fn scale\u003CT: Copy>, intrinsics (shfl_sync, ballot_sync), and thread::index_1d() for unique hardware indices. DisjointSlice",[3796,3797,3798],"t",{}," ensures race-free mutable outputs—get_mut(idx) requires ThreadIndex (opaque usize from threadIdx\u002FblockIdx\u002FblockDim), preventing unsafe shared writes. Host launches use CudaContext, DeviceBuffer, and cuda_launch! macro with LaunchConfig::for_num_elems(1024) auto-sizing grids\u002Fblocks.",[22,3800,3801],{},"Disables rustc JumpThreading on device code to preserve bar.sync convergence—duplication breaks GPU barrier semantics. Marks syncs convergent in LLVM IR to block optimizer reordering.",[17,3803,3805],{"id":3804},"pure-rust-pipeline-except-one-external-tool","Pure-Rust Pipeline Except One External Tool",[22,3807,3808],{},"Intercepts rustc at CodegenBackend::codegen_crate() using rustc_public (Stable MIR) for version-proof internals. Pipeline: Rust → rustc frontend → Stable MIR → dialect-mir (Rust MIR semantics: places\u002Fprojections\u002Frvalues\u002Fterminators) → mem2reg → dialect-llvm → textual .ll → llc (LLVM 21+ NVPTX) → .ptx.",[22,3810,3811],{},"Uses Pliron (Rust-native MLIR-like IR) for dialects: dialect-mir, dialect-llvm (.ll export), dialect-nvvm (NVIDIA intrinsics like thread indexing\u002Fbarriers\u002FTMA). Entire stack builds with cargo—no C++\u002FCMake\u002Ftablegen. Observe full trace: cargo oxide pipeline vecadd prints MIR through PTX.",[22,3813,3814],{},"Complements rust-cuda (Rust ergonomics\u002Fasync on GPU) by focusing on CUDA-native model. vecadd example adds 1024 f32s on GPU, verifies on host: cargo oxide run vecadd outputs ✓ SUCCESS: All 1024 elements correct!",[17,3816,3818],{"id":3817},"linux-only-setup-with-pinned-nightly-and-llvm-21","Linux-Only Setup with Pinned Nightly and LLVM 21",[22,3820,3821],{},"Requires Ubuntu 24.04, Rust nightly-2026-04-03 (rustup toolchain install nightly-2026-04-03; add rust-src\u002Frustc-dev), LLVM 21+ NVPTX (sudo apt install llvm-21; llc-21 --version | grep nvptx), Clang 21 (sudo apt install clang-21 for bindgen\u002Fcuda.h). Pin llc: export CUDA_OXIDE_LLC=\u002Fusr\u002Fbin\u002Fllc-21.",[22,3823,3824,3825,3831],{},"Clone repo or cargo install --git ",[3826,3827,3828],"a",{"href":3828,"rel":3829},"https:\u002F\u002Fgithub.com\u002FNVlabs\u002Fcuda-oxide.git",[3830],"nofollow"," cargo-oxide. cargo oxide doctor checks deps. Debug: cargo oxide debug vecadd --tui with cuda-gdb on target\u002Fdebug\u002Fvecadd + .ptx.",[22,3833,3834],{},"Next: generics (cargo oxide run generic), host closures (cuda_launch_async! with .await\u002F.sync()), async_mlp, gemm_sol (cta_group::2, index_2d(stride), unsafe for &mut T). Docs: nvlabs.github.io\u002Fcuda-oxide.",{"title":49,"searchDepth":50,"depth":50,"links":3836},[3837,3838,3839],{"id":3769,"depth":50,"text":3770},{"id":3804,"depth":50,"text":3805},{"id":3817,"depth":50,"text":3818},[56],{"content_references":3842,"triage":3849},[3843,3846],{"type":63,"title":3844,"url":3845,"context":66},"cuda-oxide","https:\u002F\u002Fgithub.com\u002FNVlabs\u002Fcuda-oxide",{"type":63,"title":3847,"url":3848,"context":66},"Pliron","https:\u002F\u002Fgithub.com\u002Fvaivaswatha\u002Fpliron",{"relevance":84,"novelty":84,"quality":83,"actionability":50,"composite":3850,"reasoning":3851},3.05,"Category: Software Engineering. The article discusses a new Rust-to-CUDA compilation method, which is relevant to software engineering but lacks direct applicability for building AI-powered products. While it presents some novel insights into GPU kernel development, it does not provide actionable steps or frameworks that the target audience can implement immediately.","\u002Fsummaries\u002Fda5bfb294446c261-rust-cuda-kernels-via-direct-ptx-compilation-summary","2026-05-10 06:01:13","2026-05-10 15:26:51",{"title":3759,"description":49},{"loc":3852},"da5bfb294446c261","MarkTechPost","https:\u002F\u002Fwww.marktechpost.com\u002F2026\u002F05\u002F09\u002Fnvidia-ai-just-released-cuda-oxide-an-experimental-rust-to-cuda-compiler-backend-that-compiles-simt-gpu-kernels-directly-to-ptx\u002F","summaries\u002Fda5bfb294446c261-rust-cuda-kernels-via-direct-ptx-compilation-summary",[100,99],"cuda-oxide lets you write safe Rust SIMT GPU kernels that compile directly to PTX using a custom rustc backend, skipping C++ or DSLs—host\u002Fdevice in one .rs file, with cargo oxide build producing binary + .ptx.",[],"qMaVXANNhQRZRdddd8rExsSTPNNbNg4e1fVzT0fOhxE",{"id":3866,"title":3867,"ai":3868,"body":3873,"categories":3901,"created_at":57,"date_modified":57,"description":49,"extension":58,"faq":57,"featured":59,"kicker_label":57,"meta":3902,"navigation":87,"path":3910,"published_at":3911,"question":57,"scraped_at":3912,"seo":3913,"sitemap":3914,"source_id":3915,"source_name":3916,"source_type":94,"source_url":3917,"stem":3918,"tags":3919,"thumbnail_url":57,"tldr":3920,"tweet":57,"unknown_tags":3921,"__hash__":3922},"summaries\u002Fsummaries\u002Ff817b802265235ad-north-korea-hit-axios-npm-maintainer-exposing-100m-summary.md","North Korea Hit Axios NPM Maintainer, Exposing 100M Downloads",{"provider":7,"model":8,"input_tokens":3869,"output_tokens":3870,"processing_time_ms":3871,"cost_usd":3872},3899,1572,23422,0.00154315,{"type":14,"value":3874,"toc":3896},[3875,3879,3882,3886,3889,3893],[17,3876,3878],{"id":3877},"dependency-compromise-bypasses-target-defenses","Dependency Compromise Bypasses Target Defenses",[22,3880,3881],{},"North Korean actors (tracked as UNC1069) didn't infiltrate OpenAI systems. Instead, they targeted Jason Saayman, maintainer of the Axios npm package with over 100 million weekly downloads across most software build pipelines. A fake job offer via Microsoft Teams on March 31, 2026, led to compromise. Axios powers apps like ChatGPT Desktop, so updating the app pulled in malicious code. Lesson: Audit dependencies rigorously—treat open-source maintainers as your perimeter. Use tools like npm audit, lockfiles, and sigstore for signing to verify package integrity before installs.",[17,3883,3885],{"id":3884},"social-engineering-trumps-technical-exploits","Social Engineering Trumps Technical Exploits",[22,3887,3888],{},"Attack started with a seemingly legitimate Microsoft Teams outreach, buried in OpenAI coverage. Maintainers like Saayman face constant recruitment; hackers exploit this with tailored lures. Defend by: (1) Verify unsolicited contacts via official channels, (2) Use multi-factor auth and hardware keys for repos, (3) Rotate secrets post-contact. Impact: One compromised maintainer poisons millions of environments, amplifying reach far beyond single apps.",[17,3890,3892],{"id":3891},"media-hype-misses-supply-chain-reality","Media Hype Misses Supply Chain Reality",[22,3894,3895],{},"Outlets framed as 'OpenAI breach,' downplaying the dependency angle in paragraph four or less. True exposure: 100 million environments. Builders must prioritize supply chain security—scan pipelines with Dependabot or Snyk, prefer vendored critical deps, and monitor maintainer activity. Trade-off: Full isolation slows dev velocity, but partial (e.g., air-gapped builds for prod) prevents catastrophic updates like Sunday morning app notifications.",{"title":49,"searchDepth":50,"depth":50,"links":3897},[3898,3899,3900],{"id":3877,"depth":50,"text":3878},{"id":3884,"depth":50,"text":3885},{"id":3891,"depth":50,"text":3892},[56],{"content_references":3903,"triage":3906},[3904],{"type":63,"title":3905,"context":66},"Axios",{"relevance":3907,"novelty":83,"quality":83,"actionability":83,"composite":3908,"reasoning":3909},5,4.35,"Category: AI & LLMs. The article discusses a significant security breach related to an npm package that affects AI applications, emphasizing the importance of dependency management and supply chain security, which is crucial for product builders. It provides actionable advice on auditing dependencies and securing maintainers, making it highly relevant and practical for the target audience.","\u002Fsummaries\u002Ff817b802265235ad-north-korea-hit-axios-npm-maintainer-exposing-100m-summary","2026-05-04 14:47:50","2026-05-04 16:13:16",{"title":3867,"description":49},{"loc":3910},"f817b802265235ad","Level Up Coding","https:\u002F\u002Flevelup.gitconnected.com\u002Fi-clicked-an-app-update-on-sunday-morning-it-came-from-north-korea-8b1d97a10387?source=rss----5517fd7b58a6---4","summaries\u002Ff817b802265235ad-north-korea-hit-axios-npm-maintainer-exposing-100m-summary",[99,100],"OpenAI detected NK hackers, but they compromised Axios (100M weekly downloads) via fake job offer to maintainer Jason Saayman on Microsoft Teams—not OpenAI directly.",[],"Lsb2GRO9gS8keB1oz_oYt5jqvnSADQKkSgnlMpuuEIo",{"id":3924,"title":3925,"ai":3926,"body":3931,"categories":3972,"created_at":57,"date_modified":57,"description":49,"extension":58,"faq":57,"featured":59,"kicker_label":57,"meta":3973,"navigation":87,"path":3986,"published_at":3987,"question":57,"scraped_at":3988,"seo":3989,"sitemap":3990,"source_id":3991,"source_name":3992,"source_type":94,"source_url":3993,"stem":3994,"tags":3995,"thumbnail_url":57,"tldr":3996,"tweet":57,"unknown_tags":3997,"__hash__":3998},"summaries\u002Fsummaries\u002F3e8ba433c0dc3549-github-rce-via-single-git-push-x-stat-injection-summary.md","GitHub RCE via Single Git Push X-Stat Injection",{"provider":7,"model":8,"input_tokens":3927,"output_tokens":3928,"processing_time_ms":3929,"cost_usd":3930},3870,2355,26057,0.001929,{"type":14,"value":3932,"toc":3967},[3933,3937,3944,3947,3951,3954,3957,3961],[17,3934,3936],{"id":3935},"exploit-mechanism-x-stat-injection-in-internal-git-protocol","Exploit Mechanism: X-Stat Injection in Internal Git Protocol",[22,3938,3939,3940,3943],{},"GitHub's internal git protocol processes push requests with an X-Stat field that's vulnerable to injection attacks. An authenticated attacker crafts a malicious git push that injects payloads into this field, bypassing normal access controls. This triggers remote code execution (RCE) directly on GitHub.com infrastructure and GitHub Enterprise Server (GHES) instances. No special tools needed—just a standard ",[3692,3941,3942],{},"git push"," command developers run daily, highlighting risks in routine operations.",[22,3945,3946],{},"Key attack vector: The protocol doesn't properly sanitize or validate X-Stat headers during push handling, allowing arbitrary code injection. Builders should audit custom git hooks and protocol extensions for similar field injection flaws, as they mirror this path.",[17,3948,3950],{"id":3949},"impact-widespread-repo-access-and-high-severity","Impact: Widespread Repo Access and High Severity",[22,3952,3953],{},"RCE grants attackers control over GitHub servers, enabling access to millions of repositories beyond the attacker's permissions. This compromises private code, secrets, and deployment pipelines connected to repos. Tracked as CVE-2026-3854 with High severity, it underscores how a single push can escalate privileges across the platform.",[22,3955,3956],{},"Trade-offs in GitHub's design: Optimized for speed in high-volume pushes trades off stricter input validation, a common pitfall in distributed version control systems. Mitigate by enabling strict protocol enforcement and monitoring anomalous push patterns in your workflows.",[17,3958,3960],{"id":3959},"lessons-for-secure-git-workflows","Lessons for Secure Git Workflows",[22,3962,3963,3964,3966],{},"Everyday ",[3692,3965,3942],{}," isn't bulletproof—internal protocol flaws expose production systems. Scan for field injections in git server configs, use authenticated-only pushes where possible, and integrate vulnerability alerts like CVE feeds into CI\u002FCD. For GHES users, patch immediately and review audit logs for suspicious X-Stat activity. This vuln proves even battle-tested platforms like GitHub need ongoing protocol hardening.",{"title":49,"searchDepth":50,"depth":50,"links":3968},[3969,3970,3971],{"id":3935,"depth":50,"text":3936},{"id":3949,"depth":50,"text":3950},{"id":3959,"depth":50,"text":3960},[426],{"content_references":3974,"triage":3983},[3975,3978],{"type":63,"title":3976,"url":3977,"context":66},"GitHub","https:\u002F\u002Fgithub.com\u002F",{"type":3979,"title":3980,"url":3981,"context":3982},"other","CVE-2026-3854","https:\u002F\u002Fwww.cve.org\u002Fcverecord?id=CVE-2026-3854","cited",{"relevance":84,"novelty":84,"quality":83,"actionability":83,"composite":3984,"reasoning":3985},3.45,"Category: DevOps. The article discusses a specific vulnerability in GitHub's internal git protocol, which is relevant to DevOps practices. It provides actionable insights on securing git workflows, such as auditing custom git hooks and enabling strict protocol enforcement, which can help builders mitigate similar risks.","\u002Fsummaries\u002F3e8ba433c0dc3549-github-rce-via-single-git-push-x-stat-injection-summary","2026-04-29 01:55:02","2026-05-03 17:00:51",{"title":3925,"description":49},{"loc":3986},"3e8ba433c0dc3549","Generative AI","https:\u002F\u002Fgenerativeai.pub\u002Fit-only-took-one-git-push-to-access-millions-of-github-repos-21d055d9c774?source=rss----440100e76000---4","summaries\u002F3e8ba433c0dc3549-github-rce-via-single-git-push-x-stat-injection-summary",[98,99],"Authenticated users exploited X-Stat field injection in GitHub's internal git protocol for RCE on GitHub.com and GHES using a standard git push, enabling access to millions of repos (CVE-2026-3854, High severity).",[],"0g3xr7fsya2prYzwl05ASxRgi2MuqSo3PHEtp1y3sB8"]