[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"summary-zrok-open-source-ngrok-fix-for-secure-localhost-sh-summary":3,"summaries-facets-categories":118,"summary-related-zrok-open-source-ngrok-fix-for-secure-localhost-sh-summary":4523},{"id":4,"title":5,"ai":6,"body":13,"categories":76,"created_at":78,"date_modified":78,"description":70,"extension":79,"faq":78,"featured":80,"kicker_label":78,"meta":81,"navigation":100,"path":101,"published_at":102,"question":78,"scraped_at":103,"seo":104,"sitemap":105,"source_id":106,"source_name":107,"source_type":108,"source_url":109,"stem":110,"tags":111,"thumbnail_url":78,"tldr":115,"tweet":78,"unknown_tags":116,"__hash__":117},"summaries\u002Fsummaries\u002Fzrok-open-source-ngrok-fix-for-secure-localhost-sh-summary.md","Zrok: Open-Source ngrok Fix for Secure Localhost Sharing",{"provider":7,"model":8,"input_tokens":9,"output_tokens":10,"processing_time_ms":11,"cost_usd":12},"openrouter","x-ai\u002Fgrok-4.1-fast",5189,1449,10240,0.001255,{"type":14,"value":15,"toc":69},"minimark",[16,21,34,41,45,56,60,63,66],[17,18,20],"h2",{"id":19},"share-localhost-apps-and-services-in-seconds-without-setup-pain","Share Localhost Apps and Services in Seconds Without Setup Pain",[22,23,24,25,29,30,33],"p",{},"Run ",[26,27,28],"code",{},"zrok enable"," once to set up your environment, then ",[26,31,32],{},"zrok share public \u003Cport>"," exposes any localhost app—like a Next.js default page on port 3000—to a stable public HTTPS URL instantly. No port forwarding, firewall changes, NAT traversal, or public IP needed; traffic routes end-to-end encrypted via OpenZiti's zero-trust mesh, keeping it off the public internet unless desired. This works for HTTP\u002FTCP apps, UDP (game servers, VoIP, IoT), files\u002Ffolders (browsable drive mode), and webhook testing—daily dev tasks that ngrok complicates with limits and random URLs.",[22,35,36,37,40],{},"For files, ",[26,38,39],{},"zrok share public backend\u002Fdrive \u003Cpath>"," turns directories into secure, shareable drives. Custom domains and a new UI improve usability over ngrok's free tier constraints, delivering smoother performance for quick demos.",[17,42,44],{"id":43},"private-token-access-eliminates-unwanted-traffic","Private Token Access Eliminates Unwanted Traffic",[22,46,47,48,51,52,55],{},"Use ",[26,49,50],{},"zrok share private \u003Cport>"," to generate a share token instead of a public URL. Recipients run ",[26,53,54],{},"zrok access private \u003Ctoken>"," to connect securely—only granted users access your app, blocking bots, scanners, and random hits. This zero-trust model grants selective permission rather than broad exposure, ideal for sharing with one trusted person without making it public. Tokens enable controlled access for apps, files, or services, solving ngrok's add-on private sharing limitations.",[17,57,59],{"id":58},"zrok-outshines-ngrok-on-ownership-and-protocols-with-clear-trade-offs","Zrok Outshines ngrok on Ownership and Protocols, With Clear Trade-offs",[22,61,62],{},"Zrok wins over ngrok (proprietary, HTTP\u002FTCP-focused, tight free tier) by being open-source, self-hostable for full control\u002Fprivacy, and natively integrating private sharing as core. It adds UDP support ngrok lacks, plus built-in file sharing—ngrok feels polished but owned; Zrok feels owned. Vs. Cloudflare (setup-heavy), Tailscale (VPN overkill), Zrok prioritizes quick, private tunnels without trade-offs in speed\u002Fprivacy\u002Fcontrol.",[22,64,65],{},"Downsides: steeper learning curve for self-hosting, no ngrok-style request replay\u002Finspection (hurts debugging), potential latency depending on setup. Still, for devs prioritizing privacy-first simplicity and avoiding ngrok's headaches, Zrok delivers—public for demos, private for secure collab—making it worth switching unless inspection is critical.",[22,67,68],{},"Final verdict: Adopt Zrok if quick, controlled sharing without exposure pains you; self-hosting unlocks unlimited use.",{"title":70,"searchDepth":71,"depth":71,"links":72},"",2,[73,74,75],{"id":19,"depth":71,"text":20},{"id":43,"depth":71,"text":44},{"id":58,"depth":71,"text":59},[77],"DevOps & Cloud",null,"md",false,{"content_references":82,"triage":95},[83,88,92],{"type":84,"title":85,"url":86,"context":87},"tool","Zrok","https:\u002F\u002Fzrok.io\u002F","recommended",{"type":84,"title":89,"url":90,"context":91},"Zrok Repo","https:\u002F\u002Fgithub.com\u002Fopenziti\u002Fzrok","mentioned",{"type":93,"title":94,"context":91},"other","OpenZiti",{"relevance":96,"novelty":97,"quality":96,"actionability":96,"composite":98,"reasoning":99},4,3,3.8,"Category: DevOps & Cloud. The article discusses Zrok, an open-source tool that enhances localhost sharing, addressing specific pain points like setup complexity and security, which are relevant to developers looking for efficient solutions. It provides actionable commands and comparisons to existing tools, making it practical for the audience.",true,"\u002Fsummaries\u002Fzrok-open-source-ngrok-fix-for-secure-localhost-sh-summary","2026-04-14 17:00:52","2026-04-19 03:29:55",{"title":5,"description":70},{"loc":101},"bf9ecd4dfe672d2e","Better Stack","article","https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=dLW0cT-iTjs","summaries\u002Fzrok-open-source-ngrok-fix-for-secure-localhost-sh-summary",[112,113,114],"open-source","dev-productivity","devops-cloud","Zrok enables one-command sharing of localhost apps, files, TCP\u002FUDP services publicly or privately via tokens—zero-trust on OpenZiti beats ngrok's limits, random URLs, and public exposure without port forwarding.",[113,114],"X4ol8dkc0V2GvYxxMfwCZtfZFu3BLBCKnbEA8jAfC94",[119,122,124,127,129,132,135,138,141,143,145,147,149,151,153,155,158,160,162,164,166,168,170,173,175,177,179,181,183,185,187,189,191,193,195,197,199,201,203,205,207,209,211,213,215,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,426,428,430,432,434,436,438,440,442,444,446,448,450,452,454,456,458,460,462,464,466,468,470,472,474,476,478,480,482,484,486,488,490,492,494,496,498,500,502,504,506,508,510,512,514,516,518,520,522,524,526,528,530,532,534,536,538,540,542,544,546,548,550,552,554,556,558,560,562,564,566,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,3673,3675,3677,3679,3681,3683,3685,3687,3689,3691,3693,3695,3697,3699,3701,3703,3705,3707,3709,3711,3713,3715,3717,3719,3721,3723,3725,3727,3729,3731,3733,3735,3737,3739,3741,3743,3745,3747,3749,3751,3753,3755,3757,3759,3761,3763,3765,3767,3769,3771,3773,3775,3777,3779,3781,3783,3785,3787,3789,3791,3793,3795,3797,3799,3801,3803,3805,3807,3809,3811,3813,3815,3817,3819,3821,3823,3825,3827,3829,3831,3833,3835,3837,3839,3841,3843,3845,3847,3849,3851,3853,3855,3857,3859,3861,3863,3865,3867,3869,3871,3873,3875,3877,3879,3881,3883,3885,3887,3889,3891,3893,3895,3897,3899,3901,3903,3905,3907,3909,3911,3913,3915,3917,3919,3921,3923,3925,3927,3929,3931,3933,3935,3937,3939,3941,3943,3945,3947,3949,3951,3953,3955,3957,3959,3961,3963,3965,3967,3969,3971,3973,3975,3977,3979,3981,3983,3985,3987,3989,3991,3993,3995,3997,3999,4001,4003,4005,4007,4009,4011,4013,4015,4017,4019,4021,4023,4025,4027,4029,4031,4033,4035,4037,4039,4041,4043,4045,4047,4049,4051,4053,4055,4057,4059,4061,4063,4065,4067,4069,4071,4073,4075,4077,4079,4081,4083,4085,4087,4089,4091,4093,4095,4097,4099,4101,4103,4105,4107,4109,4111,4113,4115,4117,4119,4121,4123,4125,4127,4129,4131,4133,4135,4137,4139,4141,4143,4145,4147,4149,4151,4153,4155,4157,4159,4161,4163,4165,4167,4169,4171,4173,4175,4177,4179,4181,4183,4185,4187,4189,4191,4193,4195,4197,4199,4201,4203,4205,4207,4209,4211,4213,4215,4217,4219,4221,4223,4225,4227,4229,4231,4233,4235,4237,4239,4241,4243,4245,4247,4249,4251,4253,4255,4257,4259,4261,4263,4265,4267,4269,4271,4273,4275,4277,4279,4281,4283,4285,4287,4289,4291,4293,4295,4297,4299,4301,4303,4305,4307,4309,4311,4313,4315,4317,4319,4321,4323,4325,4327,4329,4331,4333,4335,4337,4339,4341,4343,4345,4347,4349,4351,4353,4355,4357,4359,4361,4363,4365,4367,4369,4371,4373,4375,4377,4379,4381,4383,4385,4387,4389,4391,4393,4395,4397,4399,4401,4403,4405,4407,4409,4411,4413,4415,4417,4419,4421,4423,4425,4427,4429,4431,4433,4435,4437,4439,4441,4443,4445,4447,4449,4451,4453,4455,4457,4459,4461,4463,4465,4467,4469,4471,4473,4475,4477,4479,4481,4483,4485,4487,4489,4491,4493,4495,4497,4499,4501,4503,4505,4507,4509,4511,4513,4515,4517,4519,4521],{"categories":120},[121],"Business & SaaS",{"categories":123},[121],{"categories":125},[126],"AI News & Trends",{"categories":128},[],{"categories":130},[131],"AI Automation",{"categories":133},[134],"Marketing & Growth",{"categories":136},[137],"Design & Frontend",{"categories":139},[140],"Software Engineering",{"categories":142},[131],{"categories":144},[],{"categories":146},[137],{"categories":148},[137],{"categories":150},[131],{"categories":152},[137],{"categories":154},[137],{"categories":156},[157],"AI & LLMs",{"categories":159},[137],{"categories":161},[137],{"categories":163},[],{"categories":165},[137],{"categories":167},[137],{"categories":169},[157],{"categories":171},[172],"Developer Productivity",{"categories":174},[157],{"categories":176},[157],{"categories":178},[157],{"categories":180},[126],{"categories":182},[157],{"categories":184},[131],{"categories":186},[121],{"categories":188},[126],{"categories":190},[134],{"categories":192},[],{"categories":194},[],{"categories":196},[131],{"categories":198},[131],{"categories":200},[131],{"categories":202},[134],{"categories":204},[157],{"categories":206},[172],{"categories":208},[126],{"categories":210},[],{"categories":212},[],{"categories":214},[],{"categories":216},[217],"Data Science & Visualization",{"categories":219},[],{"categories":221},[131],{"categories":223},[140],{"categories":225},[131],{"categories":227},[131],{"categories":229},[157],{"categories":231},[134],{"categories":233},[131],{"categories":235},[],{"categories":237},[],{"categories":239},[],{"categories":241},[137],{"categories":243},[137],{"categories":245},[131],{"categories":247},[134],{"categories":249},[172],{"categories":251},[137],{"categories":253},[157],{"categories":255},[140],{"categories":257},[157],{"categories":259},[],{"categories":261},[131],{"categories":263},[157],{"categories":265},[172],{"categories":267},[172],{"categories":269},[],{"categories":271},[134],{"categories":273},[121],{"categories":275},[157],{"categories":277},[121],{"categories":279},[121],{"categories":281},[131],{"categories":283},[134],{"categories":285},[131],{"categories":287},[121],{"categories":289},[131],{"categories":291},[137],{"categories":293},[157],{"categories":295},[137],{"categories":297},[157],{"categories":299},[121],{"categories":301},[157],{"categories":303},[134],{"categories":305},[],{"categories":307},[157],{"categories":309},[121],{"categories":311},[],{"categories":313},[126],{"categories":315},[140],{"categories":317},[],{"categories":319},[157],{"categories":321},[137],{"categories":323},[157],{"categories":325},[137],{"categories":327},[],{"categories":329},[131],{"categories":331},[],{"categories":333},[],{"categories":335},[],{"categories":337},[157],{"categories":339},[],{"categories":341},[157],{"categories":343},[157],{"categories":345},[137],{"categories":347},[157],{"categories":349},[172],{"categories":351},[131],{"categories":353},[134],{"categories":355},[172],{"categories":357},[172],{"categories":359},[172],{"categories":361},[134],{"categories":363},[134],{"categories":365},[157],{"categories":367},[157],{"categories":369},[137],{"categories":371},[121],{"categories":373},[137],{"categories":375},[140],{"categories":377},[121],{"categories":379},[121],{"categories":381},[121],{"categories":383},[137],{"categories":385},[],{"categories":387},[],{"categories":389},[157],{"categories":391},[157],{"categories":393},[140],{"categories":395},[157],{"categories":397},[157],{"categories":399},[],{"categories":401},[157],{"categories":403},[157],{"categories":405},[],{"categories":407},[157],{"categories":409},[126],{"categories":411},[126],{"categories":413},[],{"categories":415},[],{"categories":417},[134],{"categories":419},[134],{"categories":421},[140],{"categories":423},[157],{"categories":425},[],{"categories":427},[],{"categories":429},[131],{"categories":431},[157],{"categories":433},[157],{"categories":435},[],{"categories":437},[157,121],{"categories":439},[157],{"categories":441},[],{"categories":443},[157],{"categories":445},[157],{"categories":447},[],{"categories":449},[],{"categories":451},[131],{"categories":453},[157],{"categories":455},[157],{"categories":457},[131],{"categories":459},[157],{"categories":461},[],{"categories":463},[],{"categories":465},[157],{"categories":467},[],{"categories":469},[157],{"categories":471},[157],{"categories":473},[],{"categories":475},[131],{"categories":477},[137],{"categories":479},[],{"categories":481},[131,77],{"categories":483},[157],{"categories":485},[131],{"categories":487},[157],{"categories":489},[],{"categories":491},[],{"categories":493},[],{"categories":495},[],{"categories":497},[157],{"categories":499},[131],{"categories":501},[],{"categories":503},[131],{"categories":505},[],{"categories":507},[157],{"categories":509},[],{"categories":511},[],{"categories":513},[],{"categories":515},[],{"categories":517},[131],{"categories":519},[137],{"categories":521},[157],{"categories":523},[134],{"categories":525},[126],{"categories":527},[121],{"categories":529},[172],{"categories":531},[],{"categories":533},[131],{"categories":535},[131],{"categories":537},[157],{"categories":539},[],{"categories":541},[],{"categories":543},[],{"categories":545},[131],{"categories":547},[],{"categories":549},[131],{"categories":551},[131],{"categories":553},[126],{"categories":555},[131],{"categories":557},[157],{"categories":559},[],{"categories":561},[157],{"categories":563},[],{"categories":565},[126],{"categories":567},[131,568],"Product Strategy",{"categories":570},[140],{"categories":572},[77],{"categories":574},[568],{"categories":576},[157],{"categories":578},[131],{"categories":580},[],{"categories":582},[126],{"categories":584},[126],{"categories":586},[131],{"categories":588},[],{"categories":590},[131],{"categories":592},[157],{"categories":594},[157],{"categories":596},[172],{"categories":598},[157],{"categories":600},[],{"categories":602},[157,140],{"categories":604},[126],{"categories":606},[157],{"categories":608},[126],{"categories":610},[131],{"categories":612},[126],{"categories":614},[],{"categories":616},[140],{"categories":618},[121],{"categories":620},[],{"categories":622},[131],{"categories":624},[131],{"categories":626},[131],{"categories":628},[131],{"categories":630},[121],{"categories":632},[137],{"categories":634},[134],{"categories":636},[],{"categories":638},[131],{"categories":640},[],{"categories":642},[126],{"categories":644},[126],{"categories":646},[126],{"categories":648},[131],{"categories":650},[126],{"categories":652},[157],{"categories":654},[172],{"categories":656},[157],{"categories":658},[140],{"categories":660},[157,172],{"categories":662},[172],{"categories":664},[172],{"categories":666},[172],{"categories":668},[172],{"categories":670},[157],{"categories":672},[],{"categories":674},[],{"categories":676},[134],{"categories":678},[],{"categories":680},[157],{"categories":682},[172],{"categories":684},[157],{"categories":686},[137],{"categories":688},[140],{"categories":690},[],{"categories":692},[157],{"categories":694},[172],{"categories":696},[134],{"categories":698},[126],{"categories":700},[140],{"categories":702},[157],{"categories":704},[],{"categories":706},[140],{"categories":708},[137],{"categories":710},[121],{"categories":712},[121],{"categories":714},[],{"categories":716},[137],{"categories":718},[121],{"categories":720},[126],{"categories":722},[172],{"categories":724},[131],{"categories":726},[131],{"categories":728},[157],{"categories":730},[157],{"categories":732},[126],{"categories":734},[126],{"categories":736},[172],{"categories":738},[126],{"categories":740},[],{"categories":742},[568],{"categories":744},[131],{"categories":746},[126],{"categories":748},[126],{"categories":750},[126],{"categories":752},[157],{"categories":754},[131],{"categories":756},[131],{"categories":758},[121],{"categories":760},[121],{"categories":762},[157],{"categories":764},[126],{"categories":766},[],{"categories":768},[157],{"categories":770},[121],{"categories":772},[131],{"categories":774},[131],{"categories":776},[131],{"categories":778},[137],{"categories":780},[131],{"categories":782},[172],{"categories":784},[126],{"categories":786},[126],{"categories":788},[126],{"categories":790},[126],{"categories":792},[126],{"categories":794},[],{"categories":796},[],{"categories":798},[172],{"categories":800},[126],{"categories":802},[126],{"categories":804},[126],{"categories":806},[],{"categories":808},[157],{"categories":810},[],{"categories":812},[],{"categories":814},[137],{"categories":816},[121],{"categories":818},[],{"categories":820},[126],{"categories":822},[131],{"categories":824},[131],{"categories":826},[131],{"categories":828},[134],{"categories":830},[131],{"categories":832},[],{"categories":834},[126],{"categories":836},[126],{"categories":838},[157],{"categories":840},[],{"categories":842},[134],{"categories":844},[134],{"categories":846},[157],{"categories":848},[126],{"categories":850},[121],{"categories":852},[140],{"categories":854},[157],{"categories":856},[],{"categories":858},[157],{"categories":860},[157],{"categories":862},[140],{"categories":864},[157],{"categories":866},[157],{"categories":868},[157],{"categories":870},[134],{"categories":872},[126],{"categories":874},[157],{"categories":876},[157],{"categories":878},[126],{"categories":880},[131],{"categories":882},[172],{"categories":884},[121],{"categories":886},[157],{"categories":888},[172],{"categories":890},[172],{"categories":892},[],{"categories":894},[134],{"categories":896},[126],{"categories":898},[126],{"categories":900},[172],{"categories":902},[131],{"categories":904},[131],{"categories":906},[131],{"categories":908},[131],{"categories":910},[137],{"categories":912},[157],{"categories":914},[157],{"categories":916},[568],{"categories":918},[157],{"categories":920},[157],{"categories":922},[131],{"categories":924},[121],{"categories":926},[134],{"categories":928},[],{"categories":930},[121],{"categories":932},[121],{"categories":934},[],{"categories":936},[137],{"categories":938},[157],{"categories":940},[],{"categories":942},[],{"categories":944},[126],{"categories":946},[126],{"categories":948},[126],{"categories":950},[126],{"categories":952},[],{"categories":954},[126],{"categories":956},[157],{"categories":958},[157],{"categories":960},[],{"categories":962},[126],{"categories":964},[126],{"categories":966},[121],{"categories":968},[157],{"categories":970},[],{"categories":972},[],{"categories":974},[126],{"categories":976},[126],{"categories":978},[126],{"categories":980},[157],{"categories":982},[126],{"categories":984},[126],{"categories":986},[126],{"categories":988},[126],{"categories":990},[126],{"categories":992},[],{"categories":994},[131],{"categories":996},[157],{"categories":998},[134],{"categories":1000},[121],{"categories":1002},[131],{"categories":1004},[157],{"categories":1006},[],{"categories":1008},[134],{"categories":1010},[126],{"categories":1012},[126],{"categories":1014},[126],{"categories":1016},[126],{"categories":1018},[172],{"categories":1020},[140],{"categories":1022},[],{"categories":1024},[157],{"categories":1026},[131],{"categories":1028},[131],{"categories":1030},[131],{"categories":1032},[77],{"categories":1034},[131],{"categories":1036},[157],{"categories":1038},[157],{"categories":1040},[140],{"categories":1042},[77],{"categories":1044},[217],{"categories":1046},[157],{"categories":1048},[217],{"categories":1050},[],{"categories":1052},[134],{"categories":1054},[134],{"categories":1056},[137],{"categories":1058},[77],{"categories":1060},[131],{"categories":1062},[157],{"categories":1064},[157],{"categories":1066},[131],{"categories":1068},[131],{"categories":1070},[131],{"categories":1072},[172],{"categories":1074},[172],{"categories":1076},[131],{"categories":1078},[131],{"categories":1080},[],{"categories":1082},[131],{"categories":1084},[131],{"categories":1086},[157],{"categories":1088},[217],{"categories":1090},[131],{"categories":1092},[131],{"categories":1094},[131],{"categories":1096},[131],{"categories":1098},[121],{"categories":1100},[137],{"categories":1102},[126],{"categories":1104},[140],{"categories":1106},[77],{"categories":1108},[140],{"categories":1110},[217],{"categories":1112},[],{"categories":1114},[140],{"categories":1116},[],{"categories":1118},[],{"categories":1120},[140],{"categories":1122},[157],{"categories":1124},[],{"categories":1126},[],{"categories":1128},[],{"categories":1130},[121],{"categories":1132},[],{"categories":1134},[],{"categories":1136},[217],{"categories":1138},[157],{"categories":1140},[77],{"categories":1142},[157],{"categories":1144},[],{"categories":1146},[131],{"categories":1148},[172],{"categories":1150},[172],{"categories":1152},[134],{"categories":1154},[134],{"categories":1156},[134],{"categories":1158},[77],{"categories":1160},[140],{"categories":1162},[131],{"categories":1164},[121],{"categories":1166},[121],{"categories":1168},[140],{"categories":1170},[137],{"categories":1172},[217],{"categories":1174},[137],{"categories":1176},[],{"categories":1178},[157],{"categories":1180},[131],{"categories":1182},[131],{"categories":1184},[172],{"categories":1186},[131],{"categories":1188},[131],{"categories":1190},[137],{"categories":1192},[137],{"categories":1194},[131],{"categories":1196},[77],{"categories":1198},[157],{"categories":1200},[],{"categories":1202},[134],{"categories":1204},[131],{"categories":1206},[121],{"categories":1208},[131],{"categories":1210},[131],{"categories":1212},[],{"categories":1214},[157],{"categories":1216},[131],{"categories":1218},[131],{"categories":1220},[172],{"categories":1222},[131],{"categories":1224},[157],{"categories":1226},[],{"categories":1228},[131],{"categories":1230},[],{"categories":1232},[137],{"categories":1234},[172],{"categories":1236},[157],{"categories":1238},[140],{"categories":1240},[137],{"categories":1242},[172],{"categories":1244},[217],{"categories":1246},[172],{"categories":1248},[],{"categories":1250},[157],{"categories":1252},[157],{"categories":1254},[568],{"categories":1256},[140],{"categories":1258},[157,131],{"categories":1260},[131],{"categories":1262},[157],{"categories":1264},[131],{"categories":1266},[131,140],{"categories":1268},[131],{"categories":1270},[157],{"categories":1272},[],{"categories":1274},[172],{"categories":1276},[157],{"categories":1278},[131],{"categories":1280},[157],{"categories":1282},[],{"categories":1284},[140],{"categories":1286},[121],{"categories":1288},[131],{"categories":1290},[],{"categories":1292},[217],{"categories":1294},[140],{"categories":1296},[131],{"categories":1298},[140],{"categories":1300},[],{"categories":1302},[131],{"categories":1304},[],{"categories":1306},[131],{"categories":1308},[],{"categories":1310},[],{"categories":1312},[137],{"categories":1314},[172],{"categories":1316},[157],{"categories":1318},[131],{"categories":1320},[],{"categories":1322},[131],{"categories":1324},[140],{"categories":1326},[157],{"categories":1328},[157],{"categories":1330},[140],{"categories":1332},[140],{"categories":1334},[172],{"categories":1336},[121],{"categories":1338},[],{"categories":1340},[157],{"categories":1342},[157],{"categories":1344},[157],{"categories":1346},[131],{"categories":1348},[157],{"categories":1350},[],{"categories":1352},[137],{"categories":1354},[157],{"categories":1356},[131],{"categories":1358},[],{"categories":1360},[157],{"categories":1362},[],{"categories":1364},[157],{"categories":1366},[],{"categories":1368},[],{"categories":1370},[],{"categories":1372},[157],{"categories":1374},[157],{"categories":1376},[157],{"categories":1378},[157],{"categories":1380},[],{"categories":1382},[157],{"categories":1384},[157],{"categories":1386},[157],{"categories":1388},[],{"categories":1390},[157],{"categories":1392},[],{"categories":1394},[134],{"categories":1396},[157],{"categories":1398},[],{"categories":1400},[],{"categories":1402},[],{"categories":1404},[157],{"categories":1406},[126],{"categories":1408},[126],{"categories":1410},[],{"categories":1412},[131],{"categories":1414},[157],{"categories":1416},[],{"categories":1418},[157],{"categories":1420},[157],{"categories":1422},[126],{"categories":1424},[],{"categories":1426},[157],{"categories":1428},[126],{"categories":1430},[131],{"categories":1432},[157],{"categories":1434},[],{"categories":1436},[],{"categories":1438},[],{"categories":1440},[131],{"categories":1442},[131],{"categories":1444},[131],{"categories":1446},[131],{"categories":1448},[157],{"categories":1450},[137],{"categories":1452},[137],{"categories":1454},[131],{"categories":1456},[131],{"categories":1458},[172],{"categories":1460},[568],{"categories":1462},[172],{"categories":1464},[172],{"categories":1466},[157],{"categories":1468},[131],{"categories":1470},[157],{"categories":1472},[172],{"categories":1474},[157],{"categories":1476},[131],{"categories":1478},[131],{"categories":1480},[131],{"categories":1482},[131],{"categories":1484},[131],{"categories":1486},[157],{"categories":1488},[172],{"categories":1490},[172],{"categories":1492},[134],{"categories":1494},[131],{"categories":1496},[],{"categories":1498},[131],{"categories":1500},[],{"categories":1502},[126],{"categories":1504},[157],{"categories":1506},[],{"categories":1508},[121],{"categories":1510},[137],{"categories":1512},[137],{"categories":1514},[131],{"categories":1516},[131],{"categories":1518},[157],{"categories":1520},[157],{"categories":1522},[126],{"categories":1524},[126],{"categories":1526},[77],{"categories":1528},[131],{"categories":1530},[126],{"categories":1532},[],{"categories":1534},[157],{"categories":1536},[131],{"categories":1538},[131],{"categories":1540},[131],{"categories":1542},[131],{"categories":1544},[157],{"categories":1546},[157],{"categories":1548},[157],{"categories":1550},[157],{"categories":1552},[131],{"categories":1554},[131],{"categories":1556},[131],{"categories":1558},[131],{"categories":1560},[],{"categories":1562},[137],{"categories":1564},[157],{"categories":1566},[157],{"categories":1568},[157],{"categories":1570},[],{"categories":1572},[134],{"categories":1574},[],{"categories":1576},[172],{"categories":1578},[],{"categories":1580},[131],{"categories":1582},[172],{"categories":1584},[137],{"categories":1586},[172],{"categories":1588},[],{"categories":1590},[172],{"categories":1592},[172],{"categories":1594},[],{"categories":1596},[137],{"categories":1598},[131],{"categories":1600},[131],{"categories":1602},[172],{"categories":1604},[157],{"categories":1606},[157],{"categories":1608},[],{"categories":1610},[126],{"categories":1612},[],{"categories":1614},[134],{"categories":1616},[],{"categories":1618},[137],{"categories":1620},[126],{"categories":1622},[137],{"categories":1624},[137],{"categories":1626},[137],{"categories":1628},[137],{"categories":1630},[137],{"categories":1632},[137],{"categories":1634},[137],{"categories":1636},[137],{"categories":1638},[137],{"categories":1640},[137],{"categories":1642},[],{"categories":1644},[131],{"categories":1646},[137],{"categories":1648},[157],{"categories":1650},[157],{"categories":1652},[137],{"categories":1654},[137],{"categories":1656},[137],{"categories":1658},[137],{"categories":1660},[137],{"categories":1662},[137],{"categories":1664},[137],{"categories":1666},[157,137],{"categories":1668},[137],{"categories":1670},[137],{"categories":1672},[137],{"categories":1674},[137],{"categories":1676},[],{"categories":1678},[137],{"categories":1680},[137],{"categories":1682},[137],{"categories":1684},[137],{"categories":1686},[137],{"categories":1688},[137],{"categories":1690},[137],{"categories":1692},[137],{"categories":1694},[137],{"categories":1696},[137,157],{"categories":1698},[137],{"categories":1700},[137],{"categories":1702},[],{"categories":1704},[126],{"categories":1706},[],{"categories":1708},[157],{"categories":1710},[],{"categories":1712},[131],{"categories":1714},[77],{"categories":1716},[568],{"categories":1718},[131],{"categories":1720},[131],{"categories":1722},[],{"categories":1724},[131],{"categories":1726},[],{"categories":1728},[131],{"categories":1730},[],{"categories":1732},[],{"categories":1734},[157],{"categories":1736},[157],{"categories":1738},[157],{"categories":1740},[126],{"categories":1742},[126],{"categories":1744},[126],{"categories":1746},[126],{"categories":1748},[],{"categories":1750},[126],{"categories":1752},[],{"categories":1754},[126],{"categories":1756},[157],{"categories":1758},[126],{"categories":1760},[126],{"categories":1762},[126],{"categories":1764},[126],{"categories":1766},[157],{"categories":1768},[126],{"categories":1770},[131],{"categories":1772},[],{"categories":1774},[131],{"categories":1776},[126],{"categories":1778},[157],{"categories":1780},[126],{"categories":1782},[126],{"categories":1784},[126],{"categories":1786},[157],{"categories":1788},[157],{"categories":1790},[157],{"categories":1792},[],{"categories":1794},[],{"categories":1796},[157],{"categories":1798},[126],{"categories":1800},[],{"categories":1802},[157],{"categories":1804},[131],{"categories":1806},[157],{"categories":1808},[131],{"categories":1810},[131],{"categories":1812},[157],{"categories":1814},[],{"categories":1816},[],{"categories":1818},[131],{"categories":1820},[131],{"categories":1822},[131],{"categories":1824},[131],{"categories":1826},[131],{"categories":1828},[131],{"categories":1830},[131],{"categories":1832},[131],{"categories":1834},[],{"categories":1836},[131],{"categories":1838},[131],{"categories":1840},[131],{"categories":1842},[157],{"categories":1844},[157],{"categories":1846},[157],{"categories":1848},[126],{"categories":1850},[157],{"categories":1852},[157],{"categories":1854},[157],{"categories":1856},[131],{"categories":1858},[134],{"categories":1860},[134],{"categories":1862},[134],{"categories":1864},[131],{"categories":1866},[],{"categories":1868},[157],{"categories":1870},[],{"categories":1872},[],{"categories":1874},[157],{"categories":1876},[],{"categories":1878},[131],{"categories":1880},[137],{"categories":1882},[172],{"categories":1884},[217],{"categories":1886},[157],{"categories":1888},[131],{"categories":1890},[137],{"categories":1892},[],{"categories":1894},[131],{"categories":1896},[134,121],{"categories":1898},[131],{"categories":1900},[131],{"categories":1902},[77],{"categories":1904},[140],{"categories":1906},[134],{"categories":1908},[172],{"categories":1910},[157],{"categories":1912},[],{"categories":1914},[157],{"categories":1916},[],{"categories":1918},[157],{"categories":1920},[157],{"categories":1922},[131],{"categories":1924},[],{"categories":1926},[157],{"categories":1928},[131],{"categories":1930},[157],{"categories":1932},[172],{"categories":1934},[131],{"categories":1936},[157],{"categories":1938},[157,172],{"categories":1940},[172],{"categories":1942},[],{"categories":1944},[157],{"categories":1946},[157],{"categories":1948},[157],{"categories":1950},[],{"categories":1952},[],{"categories":1954},[131],{"categories":1956},[134],{"categories":1958},[126],{"categories":1960},[131],{"categories":1962},[157],{"categories":1964},[126],{"categories":1966},[],{"categories":1968},[172],{"categories":1970},[126],{"categories":1972},[],{"categories":1974},[217],{"categories":1976},[134],{"categories":1978},[121],{"categories":1980},[126],{"categories":1982},[157],{"categories":1984},[131],{"categories":1986},[157],{"categories":1988},[131],{"categories":1990},[131],{"categories":1992},[126],{"categories":1994},[172],{"categories":1996},[137],{"categories":1998},[121],{"categories":2000},[157],{"categories":2002},[157],{"categories":2004},[],{"categories":2006},[],{"categories":2008},[157],{"categories":2010},[],{"categories":2012},[157],{"categories":2014},[126],{"categories":2016},[],{"categories":2018},[131],{"categories":2020},[172],{"categories":2022},[126],{"categories":2024},[172],{"categories":2026},[131],{"categories":2028},[157],{"categories":2030},[],{"categories":2032},[131],{"categories":2034},[131],{"categories":2036},[137],{"categories":2038},[131],{"categories":2040},[137],{"categories":2042},[131],{"categories":2044},[131],{"categories":2046},[137],{"categories":2048},[],{"categories":2050},[],{"categories":2052},[137],{"categories":2054},[137],{"categories":2056},[137],{"categories":2058},[140],{"categories":2060},[172],{"categories":2062},[172],{"categories":2064},[131],{"categories":2066},[126],{"categories":2068},[172],{"categories":2070},[172],{"categories":2072},[134],{"categories":2074},[137],{"categories":2076},[131],{"categories":2078},[131],{"categories":2080},[157],{"categories":2082},[172],{"categories":2084},[157],{"categories":2086},[],{"categories":2088},[77],{"categories":2090},[568],{"categories":2092},[],{"categories":2094},[],{"categories":2096},[131],{"categories":2098},[126],{"categories":2100},[134],{"categories":2102},[134],{"categories":2104},[217],{"categories":2106},[137],{"categories":2108},[217],{"categories":2110},[217],{"categories":2112},[131],{"categories":2114},[],{"categories":2116},[],{"categories":2118},[217],{"categories":2120},[140],{"categories":2122},[157],{"categories":2124},[140],{"categories":2126},[217],{"categories":2128},[140],{"categories":2130},[217],{"categories":2132},[121],{"categories":2134},[140],{"categories":2136},[172],{"categories":2138},[157],{"categories":2140},[],{"categories":2142},[217],{"categories":2144},[77],{"categories":2146},[],{"categories":2148},[157],{"categories":2150},[157],{"categories":2152},[],{"categories":2154},[],{"categories":2156},[157],{"categories":2158},[157],{"categories":2160},[126],{"categories":2162},[157],{"categories":2164},[],{"categories":2166},[126],{"categories":2168},[],{"categories":2170},[],{"categories":2172},[126],{"categories":2174},[126],{"categories":2176},[157],{"categories":2178},[157],{"categories":2180},[157],{"categories":2182},[157],{"categories":2184},[157],{"categories":2186},[157],{"categories":2188},[134],{"categories":2190},[],{"categories":2192},[157],{"categories":2194},[],{"categories":2196},[],{"categories":2198},[131],{"categories":2200},[172],{"categories":2202},[],{"categories":2204},[77],{"categories":2206},[157,77],{"categories":2208},[157],{"categories":2210},[],{"categories":2212},[137],{"categories":2214},[137],{"categories":2216},[137],{"categories":2218},[137],{"categories":2220},[137],{"categories":2222},[],{"categories":2224},[],{"categories":2226},[],{"categories":2228},[140],{"categories":2230},[131],{"categories":2232},[121],{"categories":2234},[140],{"categories":2236},[172],{"categories":2238},[137],{"categories":2240},[],{"categories":2242},[134],{"categories":2244},[568],{"categories":2246},[217],{"categories":2248},[217],{"categories":2250},[217],{"categories":2252},[172],{"categories":2254},[568],{"categories":2256},[172],{"categories":2258},[],{"categories":2260},[121],{"categories":2262},[140],{"categories":2264},[157],{"categories":2266},[137],{"categories":2268},[134],{"categories":2270},[140],{"categories":2272},[134],{"categories":2274},[157],{"categories":2276},[137],{"categories":2278},[140],{"categories":2280},[77],{"categories":2282},[157],{"categories":2284},[126],{"categories":2286},[140],{"categories":2288},[],{"categories":2290},[157],{"categories":2292},[140],{"categories":2294},[140],{"categories":2296},[131],{"categories":2298},[],{"categories":2300},[134],{"categories":2302},[134],{"categories":2304},[134],{"categories":2306},[131],{"categories":2308},[157],{"categories":2310},[],{"categories":2312},[121],{"categories":2314},[172],{"categories":2316},[172],{"categories":2318},[217],{"categories":2320},[121],{"categories":2322},[126],{"categories":2324},[217],{"categories":2326},[],{"categories":2328},[126],{"categories":2330},[126],{"categories":2332},[126],{"categories":2334},[157],{"categories":2336},[121],{"categories":2338},[157],{"categories":2340},[],{"categories":2342},[],{"categories":2344},[],{"categories":2346},[140],{"categories":2348},[131],{"categories":2350},[],{"categories":2352},[172],{"categories":2354},[137],{"categories":2356},[],{"categories":2358},[134],{"categories":2360},[],{"categories":2362},[137],{"categories":2364},[157],{"categories":2366},[172],{"categories":2368},[121],{"categories":2370},[],{"categories":2372},[137],{"categories":2374},[137],{"categories":2376},[157],{"categories":2378},[],{"categories":2380},[],{"categories":2382},[140],{"categories":2384},[157],{"categories":2386},[],{"categories":2388},[131],{"categories":2390},[157],{"categories":2392},[],{"categories":2394},[140],{"categories":2396},[131],{"categories":2398},[157],{"categories":2400},[217],{"categories":2402},[157],{"categories":2404},[],{"categories":2406},[217],{"categories":2408},[157],{"categories":2410},[140],{"categories":2412},[157],{"categories":2414},[217],{"categories":2416},[131],{"categories":2418},[157],{"categories":2420},[157],{"categories":2422},[157,131],{"categories":2424},[131],{"categories":2426},[131],{"categories":2428},[131],{"categories":2430},[137],{"categories":2432},[172],{"categories":2434},[157],{"categories":2436},[172],{"categories":2438},[137],{"categories":2440},[157],{"categories":2442},[],{"categories":2444},[],{"categories":2446},[157],{"categories":2448},[157],{"categories":2450},[157],{"categories":2452},[131],{"categories":2454},[157],{"categories":2456},[],{"categories":2458},[157],{"categories":2460},[157],{"categories":2462},[131],{"categories":2464},[131],{"categories":2466},[157],{"categories":2468},[157],{"categories":2470},[],{"categories":2472},[157],{"categories":2474},[],{"categories":2476},[157],{"categories":2478},[157],{"categories":2480},[157],{"categories":2482},[157],{"categories":2484},[157],{"categories":2486},[157],{"categories":2488},[157],{"categories":2490},[],{"categories":2492},[157],{"categories":2494},[126],{"categories":2496},[126],{"categories":2498},[],{"categories":2500},[],{"categories":2502},[157],{"categories":2504},[],{"categories":2506},[157],{"categories":2508},[157,77],{"categories":2510},[],{"categories":2512},[126],{"categories":2514},[],{"categories":2516},[157],{"categories":2518},[],{"categories":2520},[],{"categories":2522},[],{"categories":2524},[157],{"categories":2526},[],{"categories":2528},[157],{"categories":2530},[],{"categories":2532},[157],{"categories":2534},[157],{"categories":2536},[],{"categories":2538},[],{"categories":2540},[157,77],{"categories":2542},[77,157],{"categories":2544},[126],{"categories":2546},[],{"categories":2548},[157],{"categories":2550},[],{"categories":2552},[157],{"categories":2554},[157],{"categories":2556},[],{"categories":2558},[126],{"categories":2560},[157,121],{"categories":2562},[126],{"categories":2564},[140],{"categories":2566},[],{"categories":2568},[131],{"categories":2570},[157],{"categories":2572},[134],{"categories":2574},[157],{"categories":2576},[172],{"categories":2578},[172],{"categories":2580},[77],{"categories":2582},[126],{"categories":2584},[157],{"categories":2586},[77],{"categories":2588},[140],{"categories":2590},[157],{"categories":2592},[172],{"categories":2594},[],{"categories":2596},[157],{"categories":2598},[],{"categories":2600},[],{"categories":2602},[157],{"categories":2604},[],{"categories":2606},[157],{"categories":2608},[140],{"categories":2610},[121],{"categories":2612},[172],{"categories":2614},[134],{"categories":2616},[131],{"categories":2618},[172],{"categories":2620},[],{"categories":2622},[134],{"categories":2624},[],{"categories":2626},[],{"categories":2628},[157],{"categories":2630},[126],{"categories":2632},[134],{"categories":2634},[],{"categories":2636},[157],{"categories":2638},[126],{"categories":2640},[126],{"categories":2642},[134],{"categories":2644},[126],{"categories":2646},[157],{"categories":2648},[126],{"categories":2650},[157],{"categories":2652},[],{"categories":2654},[157],{"categories":2656},[157],{"categories":2658},[157],{"categories":2660},[126],{"categories":2662},[],{"categories":2664},[],{"categories":2666},[137],{"categories":2668},[126],{"categories":2670},[],{"categories":2672},[157],{"categories":2674},[157],{"categories":2676},[157],{"categories":2678},[157],{"categories":2680},[157],{"categories":2682},[157],{"categories":2684},[157],{"categories":2686},[157],{"categories":2688},[157],{"categories":2690},[134],{"categories":2692},[157,137],{"categories":2694},[126],{"categories":2696},[126],{"categories":2698},[157],{"categories":2700},[140],{"categories":2702},[217],{"categories":2704},[157],{"categories":2706},[157],{"categories":2708},[],{"categories":2710},[],{"categories":2712},[157],{"categories":2714},[157],{"categories":2716},[],{"categories":2718},[137],{"categories":2720},[137],{"categories":2722},[172],{"categories":2724},[157],{"categories":2726},[172],{"categories":2728},[157],{"categories":2730},[157],{"categories":2732},[],{"categories":2734},[157],{"categories":2736},[],{"categories":2738},[],{"categories":2740},[157],{"categories":2742},[],{"categories":2744},[],{"categories":2746},[126],{"categories":2748},[],{"categories":2750},[157],{"categories":2752},[157],{"categories":2754},[157],{"categories":2756},[],{"categories":2758},[157],{"categories":2760},[126],{"categories":2762},[568],{"categories":2764},[131],{"categories":2766},[157],{"categories":2768},[],{"categories":2770},[131],{"categories":2772},[157],{"categories":2774},[],{"categories":2776},[157],{"categories":2778},[],{"categories":2780},[131],{"categories":2782},[],{"categories":2784},[],{"categories":2786},[131],{"categories":2788},[131],{"categories":2790},[131],{"categories":2792},[157],{"categories":2794},[],{"categories":2796},[131],{"categories":2798},[131],{"categories":2800},[],{"categories":2802},[],{"categories":2804},[131],{"categories":2806},[157],{"categories":2808},[126],{"categories":2810},[568],{"categories":2812},[134],{"categories":2814},[],{"categories":2816},[137],{"categories":2818},[157],{"categories":2820},[157],{"categories":2822},[121],{"categories":2824},[126],{"categories":2826},[126],{"categories":2828},[126],{"categories":2830},[126],{"categories":2832},[],{"categories":2834},[131],{"categories":2836},[131],{"categories":2838},[131],{"categories":2840},[131],{"categories":2842},[172],{"categories":2844},[157],{"categories":2846},[121],{"categories":2848},[],{"categories":2850},[172],{"categories":2852},[131],{"categories":2854},[137],{"categories":2856},[137],{"categories":2858},[137],{"categories":2860},[137],{"categories":2862},[137],{"categories":2864},[137],{"categories":2866},[157,121],{"categories":2868},[131],{"categories":2870},[121],{"categories":2872},[126],{"categories":2874},[126],{"categories":2876},[172],{"categories":2878},[],{"categories":2880},[],{"categories":2882},[134],{"categories":2884},[],{"categories":2886},[157],{"categories":2888},[134],{"categories":2890},[157],{"categories":2892},[140],{"categories":2894},[131],{"categories":2896},[121],{"categories":2898},[131],{"categories":2900},[140],{"categories":2902},[172],{"categories":2904},[131],{"categories":2906},[],{"categories":2908},[172],{"categories":2910},[],{"categories":2912},[],{"categories":2914},[131],{"categories":2916},[131],{"categories":2918},[131],{"categories":2920},[157],{"categories":2922},[157],{"categories":2924},[157],{"categories":2926},[157],{"categories":2928},[157],{"categories":2930},[],{"categories":2932},[77],{"categories":2934},[157],{"categories":2936},[],{"categories":2938},[],{"categories":2940},[],{"categories":2942},[172],{"categories":2944},[],{"categories":2946},[157],{"categories":2948},[],{"categories":2950},[126],{"categories":2952},[157],{"categories":2954},[126],{"categories":2956},[157],{"categories":2958},[131],{"categories":2960},[],{"categories":2962},[157],{"categories":2964},[157],{"categories":2966},[],{"categories":2968},[217],{"categories":2970},[217],{"categories":2972},[140],{"categories":2974},[137],{"categories":2976},[],{"categories":2978},[157],{"categories":2980},[131],{"categories":2982},[],{"categories":2984},[],{"categories":2986},[157],{"categories":2988},[140],{"categories":2990},[131],{"categories":2992},[121],{"categories":2994},[172,140],{"categories":2996},[140],{"categories":2998},[157],{"categories":3000},[131],{"categories":3002},[],{"categories":3004},[],{"categories":3006},[],{"categories":3008},[],{"categories":3010},[],{"categories":3012},[],{"categories":3014},[157],{"categories":3016},[],{"categories":3018},[],{"categories":3020},[157],{"categories":3022},[],{"categories":3024},[],{"categories":3026},[],{"categories":3028},[157],{"categories":3030},[126],{"categories":3032},[],{"categories":3034},[],{"categories":3036},[],{"categories":3038},[157],{"categories":3040},[],{"categories":3042},[157],{"categories":3044},[157],{"categories":3046},[],{"categories":3048},[157],{"categories":3050},[140],{"categories":3052},[],{"categories":3054},[172],{"categories":3056},[172],{"categories":3058},[],{"categories":3060},[134],{"categories":3062},[],{"categories":3064},[],{"categories":3066},[],{"categories":3068},[137],{"categories":3070},[126],{"categories":3072},[131],{"categories":3074},[157],{"categories":3076},[121],{"categories":3078},[157],{"categories":3080},[],{"categories":3082},[],{"categories":3084},[121],{"categories":3086},[134],{"categories":3088},[131],{"categories":3090},[],{"categories":3092},[77],{"categories":3094},[],{"categories":3096},[134],{"categories":3098},[157],{"categories":3100},[157],{"categories":3102},[134],{"categories":3104},[157],{"categories":3106},[137],{"categories":3108},[131],{"categories":3110},[157],{"categories":3112},[131],{"categories":3114},[157],{"categories":3116},[131],{"categories":3118},[172],{"categories":3120},[172],{"categories":3122},[137],{"categories":3124},[],{"categories":3126},[157],{"categories":3128},[157],{"categories":3130},[134],{"categories":3132},[568],{"categories":3134},[172],{"categories":3136},[126],{"categories":3138},[157],{"categories":3140},[126],{"categories":3142},[157],{"categories":3144},[157],{"categories":3146},[],{"categories":3148},[157],{"categories":3150},[],{"categories":3152},[157],{"categories":3154},[134],{"categories":3156},[157],{"categories":3158},[157],{"categories":3160},[157],{"categories":3162},[],{"categories":3164},[157],{"categories":3166},[157],{"categories":3168},[568],{"categories":3170},[],{"categories":3172},[126],{"categories":3174},[77],{"categories":3176},[140],{"categories":3178},[],{"categories":3180},[217],{"categories":3182},[],{"categories":3184},[],{"categories":3186},[126],{"categories":3188},[157],{"categories":3190},[],{"categories":3192},[157],{"categories":3194},[157],{"categories":3196},[131],{"categories":3198},[157],{"categories":3200},[126],{"categories":3202},[126],{"categories":3204},[137],{"categories":3206},[137],{"categories":3208},[137],{"categories":3210},[157],{"categories":3212},[217],{"categories":3214},[126],{"categories":3216},[172],{"categories":3218},[],{"categories":3220},[137],{"categories":3222},[137],{"categories":3224},[77],{"categories":3226},[137],{"categories":3228},[137],{"categories":3230},[131],{"categories":3232},[126],{"categories":3234},[77],{"categories":3236},[157],{"categories":3238},[157],{"categories":3240},[157],{"categories":3242},[157],{"categories":3244},[],{"categories":3246},[131],{"categories":3248},[157],{"categories":3250},[137],{"categories":3252},[],{"categories":3254},[],{"categories":3256},[126],{"categories":3258},[],{"categories":3260},[131],{"categories":3262},[131],{"categories":3264},[131],{"categories":3266},[131],{"categories":3268},[131],{"categories":3270},[131],{"categories":3272},[131],{"categories":3274},[131],{"categories":3276},[],{"categories":3278},[],{"categories":3280},[157],{"categories":3282},[],{"categories":3284},[131],{"categories":3286},[172],{"categories":3288},[172],{"categories":3290},[217],{"categories":3292},[121],{"categories":3294},[],{"categories":3296},[],{"categories":3298},[],{"categories":3300},[137],{"categories":3302},[157],{"categories":3304},[],{"categories":3306},[121],{"categories":3308},[121],{"categories":3310},[137],{"categories":3312},[172],{"categories":3314},[217],{"categories":3316},[137],{"categories":3318},[137],{"categories":3320},[],{"categories":3322},[131],{"categories":3324},[121],{"categories":3326},[121],{"categories":3328},[157],{"categories":3330},[131],{"categories":3332},[140],{"categories":3334},[137],{"categories":3336},[],{"categories":3338},[134],{"categories":3340},[217],{"categories":3342},[126],{"categories":3344},[126],{"categories":3346},[126],{"categories":3348},[77],{"categories":3350},[],{"categories":3352},[131],{"categories":3354},[],{"categories":3356},[131],{"categories":3358},[131],{"categories":3360},[157],{"categories":3362},[157],{"categories":3364},[140],{"categories":3366},[131],{"categories":3368},[140],{"categories":3370},[],{"categories":3372},[131],{"categories":3374},[137],{"categories":3376},[137],{"categories":3378},[137],{"categories":3380},[157],{"categories":3382},[131],{"categories":3384},[157],{"categories":3386},[121],{"categories":3388},[126],{"categories":3390},[137],{"categories":3392},[126],{"categories":3394},[157],{"categories":3396},[],{"categories":3398},[126],{"categories":3400},[131],{"categories":3402},[126],{"categories":3404},[126],{"categories":3406},[126],{"categories":3408},[126],{"categories":3410},[],{"categories":3412},[],{"categories":3414},[126],{"categories":3416},[126],{"categories":3418},[],{"categories":3420},[126],{"categories":3422},[126],{"categories":3424},[157],{"categories":3426},[157],{"categories":3428},[126],{"categories":3430},[126],{"categories":3432},[157],{"categories":3434},[],{"categories":3436},[157],{"categories":3438},[131],{"categories":3440},[157],{"categories":3442},[157],{"categories":3444},[],{"categories":3446},[157],{"categories":3448},[157],{"categories":3450},[157],{"categories":3452},[126],{"categories":3454},[],{"categories":3456},[],{"categories":3458},[],{"categories":3460},[],{"categories":3462},[157],{"categories":3464},[157],{"categories":3466},[],{"categories":3468},[134],{"categories":3470},[126],{"categories":3472},[],{"categories":3474},[],{"categories":3476},[],{"categories":3478},[],{"categories":3480},[],{"categories":3482},[157],{"categories":3484},[],{"categories":3486},[],{"categories":3488},[157],{"categories":3490},[],{"categories":3492},[131],{"categories":3494},[131],{"categories":3496},[131],{"categories":3498},[121],{"categories":3500},[],{"categories":3502},[134],{"categories":3504},[140],{"categories":3506},[140],{"categories":3508},[77],{"categories":3510},[126],{"categories":3512},[],{"categories":3514},[157],{"categories":3516},[157],{"categories":3518},[121],{"categories":3520},[],{"categories":3522},[121],{"categories":3524},[],{"categories":3526},[],{"categories":3528},[],{"categories":3530},[140],{"categories":3532},[131],{"categories":3534},[131],{"categories":3536},[131],{"categories":3538},[131],{"categories":3540},[131],{"categories":3542},[],{"categories":3544},[126],{"categories":3546},[157],{"categories":3548},[157],{"categories":3550},[157],{"categories":3552},[],{"categories":3554},[121],{"categories":3556},[],{"categories":3558},[137],{"categories":3560},[217],{"categories":3562},[137],{"categories":3564},[],{"categories":3566},[],{"categories":3568},[157],{"categories":3570},[131],{"categories":3572},[],{"categories":3574},[157],{"categories":3576},[157],{"categories":3578},[157],{"categories":3580},[131],{"categories":3582},[131],{"categories":3584},[157],{"categories":3586},[217],{"categories":3588},[131],{"categories":3590},[],{"categories":3592},[157],{"categories":3594},[],{"categories":3596},[568],{"categories":3598},[140],{"categories":3600},[217],{"categories":3602},[140],{"categories":3604},[77],{"categories":3606},[157],{"categories":3608},[140],{"categories":3610},[126],{"categories":3612},[77],{"categories":3614},[140],{"categories":3616},[137],{"categories":3618},[137],{"categories":3620},[],{"categories":3622},[140],{"categories":3624},[],{"categories":3626},[172],{"categories":3628},[140],{"categories":3630},[],{"categories":3632},[217],{"categories":3634},[217],{"categories":3636},[568],{"categories":3638},[],{"categories":3640},[157],{"categories":3642},[140],{"categories":3644},[77],{"categories":3646},[131],{"categories":3648},[131],{"categories":3650},[217],{"categories":3652},[157],{"categories":3654},[172],{"categories":3656},[157],{"categories":3658},[],{"categories":3660},[],{"categories":3662},[],{"categories":3664},[134],{"categories":3666},[157],{"categories":3668},[137],{"categories":3670},[140],{"categories":3672},[140],{"categories":3674},[157],{"categories":3676},[134],{"categories":3678},[172],{"categories":3680},[157],{"categories":3682},[140],{"categories":3684},[157],{"categories":3686},[140],{"categories":3688},[172],{"categories":3690},[172],{"categories":3692},[131],{"categories":3694},[172],{"categories":3696},[140],{"categories":3698},[121],{"categories":3700},[140],{"categories":3702},[140],{"categories":3704},[140],{"categories":3706},[140],{"categories":3708},[],{"categories":3710},[126],{"categories":3712},[],{"categories":3714},[217],{"categories":3716},[157],{"categories":3718},[157],{"categories":3720},[],{"categories":3722},[],{"categories":3724},[],{"categories":3726},[157],{"categories":3728},[126],{"categories":3730},[157],{"categories":3732},[157],{"categories":3734},[],{"categories":3736},[157],{"categories":3738},[137],{"categories":3740},[157],{"categories":3742},[157],{"categories":3744},[157],{"categories":3746},[],{"categories":3748},[],{"categories":3750},[],{"categories":3752},[77],{"categories":3754},[77],{"categories":3756},[121],{"categories":3758},[131],{"categories":3760},[121,134],{"categories":3762},[157],{"categories":3764},[126],{"categories":3766},[],{"categories":3768},[137],{"categories":3770},[217],{"categories":3772},[157],{"categories":3774},[140],{"categories":3776},[157],{"categories":3778},[],{"categories":3780},[217],{"categories":3782},[77],{"categories":3784},[131],{"categories":3786},[121],{"categories":3788},[77],{"categories":3790},[131],{"categories":3792},[172],{"categories":3794},[131],{"categories":3796},[172],{"categories":3798},[157],{"categories":3800},[172],{"categories":3802},[172],{"categories":3804},[140],{"categories":3806},[217],{"categories":3808},[157],{"categories":3810},[134],{"categories":3812},[],{"categories":3814},[157],{"categories":3816},[137],{"categories":3818},[217],{"categories":3820},[121],{"categories":3822},[157],{"categories":3824},[217],{"categories":3826},[172],{"categories":3828},[157],{"categories":3830},[157],{"categories":3832},[217],{"categories":3834},[157],{"categories":3836},[172],{"categories":3838},[157],{"categories":3840},[],{"categories":3842},[157],{"categories":3844},[157],{"categories":3846},[157],{"categories":3848},[157],{"categories":3850},[],{"categories":3852},[131],{"categories":3854},[77],{"categories":3856},[],{"categories":3858},[],{"categories":3860},[157],{"categories":3862},[121],{"categories":3864},[134],{"categories":3866},[121],{"categories":3868},[121],{"categories":3870},[131],{"categories":3872},[],{"categories":3874},[157],{"categories":3876},[126],{"categories":3878},[157],{"categories":3880},[157],{"categories":3882},[],{"categories":3884},[131],{"categories":3886},[126],{"categories":3888},[157,77],{"categories":3890},[131,77],{"categories":3892},[77],{"categories":3894},[157],{"categories":3896},[131],{"categories":3898},[131],{"categories":3900},[140],{"categories":3902},[140],{"categories":3904},[140],{"categories":3906},[157],{"categories":3908},[137],{"categories":3910},[131],{"categories":3912},[],{"categories":3914},[77],{"categories":3916},[],{"categories":3918},[77],{"categories":3920},[77],{"categories":3922},[121],{"categories":3924},[131],{"categories":3926},[],{"categories":3928},[77],{"categories":3930},[157],{"categories":3932},[126],{"categories":3934},[157],{"categories":3936},[137],{"categories":3938},[140],{"categories":3940},[140],{"categories":3942},[140],{"categories":3944},[77],{"categories":3946},[],{"categories":3948},[],{"categories":3950},[],{"categories":3952},[157],{"categories":3954},[140],{"categories":3956},[157],{"categories":3958},[140],{"categories":3960},[77],{"categories":3962},[77],{"categories":3964},[157],{"categories":3966},[131],{"categories":3968},[],{"categories":3970},[157],{"categories":3972},[157],{"categories":3974},[157],{"categories":3976},[],{"categories":3978},[],{"categories":3980},[77],{"categories":3982},[77],{"categories":3984},[157,77],{"categories":3986},[131],{"categories":3988},[131],{"categories":3990},[131],{"categories":3992},[131],{"categories":3994},[131],{"categories":3996},[131],{"categories":3998},[],{"categories":4000},[140],{"categories":4002},[157],{"categories":4004},[140],{"categories":4006},[134],{"categories":4008},[157],{"categories":4010},[568],{"categories":4012},[568],{"categories":4014},[131],{"categories":4016},[140],{"categories":4018},[],{"categories":4020},[131],{"categories":4022},[157],{"categories":4024},[],{"categories":4026},[137],{"categories":4028},[],{"categories":4030},[157],{"categories":4032},[131],{"categories":4034},[126],{"categories":4036},[157],{"categories":4038},[],{"categories":4040},[],{"categories":4042},[137],{"categories":4044},[137],{"categories":4046},[172],{"categories":4048},[137],{"categories":4050},[131],{"categories":4052},[],{"categories":4054},[131],{"categories":4056},[126],{"categories":4058},[157],{"categories":4060},[157],{"categories":4062},[],{"categories":4064},[157],{"categories":4066},[172],{"categories":4068},[157],{"categories":4070},[],{"categories":4072},[217],{"categories":4074},[140],{"categories":4076},[140],{"categories":4078},[121],{"categories":4080},[121],{"categories":4082},[121],{"categories":4084},[131],{"categories":4086},[121],{"categories":4088},[131],{"categories":4090},[77],{"categories":4092},[568],{"categories":4094},[126],{"categories":4096},[126],{"categories":4098},[126],{"categories":4100},[77],{"categories":4102},[126,121],{"categories":4104},[217],{"categories":4106},[131],{"categories":4108},[],{"categories":4110},[157],{"categories":4112},[],{"categories":4114},[140],{"categories":4116},[217],{"categories":4118},[137],{"categories":4120},[140],{"categories":4122},[172],{"categories":4124},[],{"categories":4126},[131],{"categories":4128},[],{"categories":4130},[568],{"categories":4132},[],{"categories":4134},[137],{"categories":4136},[137],{"categories":4138},[217],{"categories":4140},[],{"categories":4142},[157],{"categories":4144},[217],{"categories":4146},[],{"categories":4148},[157],{"categories":4150},[157],{"categories":4152},[],{"categories":4154},[172],{"categories":4156},[157],{"categories":4158},[],{"categories":4160},[157],{"categories":4162},[],{"categories":4164},[],{"categories":4166},[131],{"categories":4168},[131],{"categories":4170},[],{"categories":4172},[140],{"categories":4174},[140],{"categories":4176},[140],{"categories":4178},[157,131],{"categories":4180},[131],{"categories":4182},[131],{"categories":4184},[131],{"categories":4186},[217],{"categories":4188},[217],{"categories":4190},[],{"categories":4192},[126],{"categories":4194},[157],{"categories":4196},[217],{"categories":4198},[217],{"categories":4200},[126],{"categories":4202},[121],{"categories":4204},[131],{"categories":4206},[140],{"categories":4208},[157],{"categories":4210},[157],{"categories":4212},[131],{"categories":4214},[140],{"categories":4216},[131],{"categories":4218},[157],{"categories":4220},[134],{"categories":4222},[],{"categories":4224},[157],{"categories":4226},[],{"categories":4228},[157],{"categories":4230},[157],{"categories":4232},[140],{"categories":4234},[],{"categories":4236},[217],{"categories":4238},[157],{"categories":4240},[131],{"categories":4242},[131],{"categories":4244},[140],{"categories":4246},[172],{"categories":4248},[172],{"categories":4250},[126],{"categories":4252},[157],{"categories":4254},[131],{"categories":4256},[],{"categories":4258},[131],{"categories":4260},[157],{"categories":4262},[126],{"categories":4264},[157],{"categories":4266},[157],{"categories":4268},[157],{"categories":4270},[131],{"categories":4272},[217],{"categories":4274},[157],{"categories":4276},[137],{"categories":4278},[157],{"categories":4280},[157],{"categories":4282},[157],{"categories":4284},[157],{"categories":4286},[],{"categories":4288},[157],{"categories":4290},[217],{"categories":4292},[137],{"categories":4294},[157],{"categories":4296},[137],{"categories":4298},[],{"categories":4300},[],{"categories":4302},[],{"categories":4304},[157],{"categories":4306},[],{"categories":4308},[],{"categories":4310},[],{"categories":4312},[],{"categories":4314},[131],{"categories":4316},[172],{"categories":4318},[131],{"categories":4320},[131],{"categories":4322},[140],{"categories":4324},[121],{"categories":4326},[157],{"categories":4328},[157],{"categories":4330},[157],{"categories":4332},[121],{"categories":4334},[172],{"categories":4336},[],{"categories":4338},[217],{"categories":4340},[134],{"categories":4342},[157],{"categories":4344},[137],{"categories":4346},[172],{"categories":4348},[172],{"categories":4350},[568],{"categories":4352},[131],{"categories":4354},[157],{"categories":4356},[157],{"categories":4358},[172],{"categories":4360},[157],{"categories":4362},[],{"categories":4364},[],{"categories":4366},[77],{"categories":4368},[137],{"categories":4370},[172],{"categories":4372},[157],{"categories":4374},[126],{"categories":4376},[172],{"categories":4378},[121],{"categories":4380},[131],{"categories":4382},[131],{"categories":4384},[126],{"categories":4386},[157],{"categories":4388},[],{"categories":4390},[],{"categories":4392},[],{"categories":4394},[157],{"categories":4396},[],{"categories":4398},[126],{"categories":4400},[],{"categories":4402},[157],{"categories":4404},[],{"categories":4406},[126],{"categories":4408},[131],{"categories":4410},[157],{"categories":4412},[77],{"categories":4414},[157],{"categories":4416},[172],{"categories":4418},[157],{"categories":4420},[172],{"categories":4422},[172],{"categories":4424},[],{"categories":4426},[],{"categories":4428},[172],{"categories":4430},[172],{"categories":4432},[172],{"categories":4434},[],{"categories":4436},[172],{"categories":4438},[131],{"categories":4440},[131],{"categories":4442},[],{"categories":4444},[157],{"categories":4446},[134],{"categories":4448},[217],{"categories":4450},[157],{"categories":4452},[],{"categories":4454},[172],{"categories":4456},[157],{"categories":4458},[568],{"categories":4460},[172],{"categories":4462},[172],{"categories":4464},[134],{"categories":4466},[140],{"categories":4468},[140],{"categories":4470},[],{"categories":4472},[140],{"categories":4474},[157],{"categories":4476},[],{"categories":4478},[],{"categories":4480},[131],{"categories":4482},[],{"categories":4484},[131],{"categories":4486},[131],{"categories":4488},[126],{"categories":4490},[157],{"categories":4492},[126],{"categories":4494},[172],{"categories":4496},[126],{"categories":4498},[140],{"categories":4500},[140],{"categories":4502},[140],{"categories":4504},[126],{"categories":4506},[157],{"categories":4508},[131],{"categories":4510},[77],{"categories":4512},[121],{"categories":4514},[77],{"categories":4516},[77],{"categories":4518},[140],{"categories":4520},[77],{"categories":4522},[77],[4524,4706,5126,5207],{"id":4525,"title":4526,"ai":4527,"body":4532,"categories":4690,"created_at":78,"date_modified":78,"description":4691,"extension":79,"faq":78,"featured":80,"kicker_label":78,"meta":4692,"navigation":100,"path":4693,"published_at":4694,"question":78,"scraped_at":4695,"seo":4696,"sitemap":4697,"source_id":4698,"source_name":107,"source_type":4699,"source_url":4700,"stem":4701,"tags":4702,"thumbnail_url":78,"tldr":4703,"tweet":78,"unknown_tags":4704,"__hash__":4705},"summaries\u002Fsummaries\u002Fvault-warden-outperforms-1password-for-devs-summary.md","Vault Warden Outperforms 1Password for Devs",{"provider":7,"model":8,"input_tokens":4528,"output_tokens":4529,"processing_time_ms":4530,"cost_usd":4531},4533,1273,7675,0.0015206,{"type":14,"value":4533,"toc":4685},[4534,4538,4541,4544,4638,4651,4655,4674,4678,4681],[17,4535,4537],{"id":4536},"lightweight-self-hosting-delivers-speed-and-privacy","Lightweight Self-Hosting Delivers Speed and Privacy",[22,4539,4540],{},"Vault Warden provides full Bitwarden compatibility with end-to-end encryption, CLI\u002FAPI access, 2FA, U2F key support, attachments, folders, and organizations—all in a Rust-based server using under 100MB RAM. It outperforms 1Password's closed ecosystem and Bitwarden Cloud's subscriptions by keeping data local, eliminating paywalls, and running fastest on Apple Silicon like M4 Pro. Developers gain control over logins, tokens, SSH keys, and 2FA codes without relying on external infrastructure, reducing lock-in risks.",[22,4542,4543],{},"Setup requires one Docker Compose file with a single container, one volume, and an admin token:",[4545,4546,4550],"pre",{"className":4547,"code":4548,"language":4549,"meta":70,"style":70},"language-yaml shiki shiki-themes github-light github-dark","docker-compose.yml\nservices:\n  vaultwarden:\n    image: vaultwarden\u002Fserver:latest\n    volumes:\n      - .\u002Fvw-data:\u002Fdata\n    environment:\n      - ADMIN_TOKEN=your-admin-token\n    ports:\n      - \"8080:80\"\n","yaml",[26,4551,4552,4561,4571,4578,4589,4597,4606,4614,4622,4630],{"__ignoreMap":70},[4553,4554,4557],"span",{"class":4555,"line":4556},"line",1,[4553,4558,4560],{"class":4559},"sZZnC","docker-compose.yml\n",[4553,4562,4563,4567],{"class":4555,"line":71},[4553,4564,4566],{"class":4565},"s9eBZ","services",[4553,4568,4570],{"class":4569},"sVt8B",":\n",[4553,4572,4573,4576],{"class":4555,"line":97},[4553,4574,4575],{"class":4565},"  vaultwarden",[4553,4577,4570],{"class":4569},[4553,4579,4580,4583,4586],{"class":4555,"line":96},[4553,4581,4582],{"class":4565},"    image",[4553,4584,4585],{"class":4569},": ",[4553,4587,4588],{"class":4559},"vaultwarden\u002Fserver:latest\n",[4553,4590,4592,4595],{"class":4555,"line":4591},5,[4553,4593,4594],{"class":4565},"    volumes",[4553,4596,4570],{"class":4569},[4553,4598,4600,4603],{"class":4555,"line":4599},6,[4553,4601,4602],{"class":4569},"      - ",[4553,4604,4605],{"class":4559},".\u002Fvw-data:\u002Fdata\n",[4553,4607,4609,4612],{"class":4555,"line":4608},7,[4553,4610,4611],{"class":4565},"    environment",[4553,4613,4570],{"class":4569},[4553,4615,4617,4619],{"class":4555,"line":4616},8,[4553,4618,4602],{"class":4569},[4553,4620,4621],{"class":4559},"ADMIN_TOKEN=your-admin-token\n",[4553,4623,4625,4628],{"class":4555,"line":4624},9,[4553,4626,4627],{"class":4565},"    ports",[4553,4629,4570],{"class":4569},[4553,4631,4633,4635],{"class":4555,"line":4632},10,[4553,4634,4602],{"class":4569},[4553,4636,4637],{"class":4559},"\"8080:80\"\n",[22,4639,24,4640,4643,4644,4650],{},[26,4641,4642],{},"docker compose up -d",", access ",[4645,4646,4647],"a",{"href":4647,"rel":4648},"http:\u002F\u002Flocalhost:8080",[4649],"nofollow",", create an account, and add entries like a GitHub login with auto-generated passwords. Point the Bitwarden browser extension to your self-hosted server URL for instant autofill—no new apps needed.",[17,4652,4654],{"id":4653},"cli-unlocks-scriptable-secrets-in-workflows","CLI Unlocks Scriptable Secrets in Workflows",[22,4656,4657,4658,4661,4662,4665,4666,4669,4670,4673],{},"Install Bitwarden CLI via ",[26,4659,4660],{},"brew install bitwarden-cli"," on macOS, then ",[26,4663,4664],{},"bw login \u003Cemail>"," and ",[26,4667,4668],{},"bw unlock \u003Cpassword>",". Retrieve credentials instantly: ",[26,4671,4672],{},"bw get password GitHub"," outputs the password for scripting in CI\u002FCD or terminals. This turns the vault into a dev tool for automating secrets, far beyond basic autofill.",[17,4675,4677],{"id":4676},"trade-offs-favor-control-for-docker-users","Trade-offs Favor Control for Docker Users",[22,4679,4680],{},"You handle updates and backups (Docker simplifies this), and there's no dedicated mobile app—use Bitwarden's instead, which works seamlessly. Skip if you need zero-maintenance or enterprise features like SIEM. Ideal for Docker-savvy devs prioritizing privacy, cost savings, and workflow speed on local hardware; stick with subscriptions only for hands-off convenience.",[4682,4683,4684],"style",{},"html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .s9eBZ, html code.shiki .s9eBZ{--shiki-default:#22863A;--shiki-dark:#85E89D}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":70,"searchDepth":71,"depth":71,"links":4686},[4687,4688,4689],{"id":4536,"depth":71,"text":4537},{"id":4653,"depth":71,"text":4654},{"id":4676,"depth":71,"text":4677},[172],"If you’re a developer tired of paying for password managers like 1Password or Bitwarden, this video shows you a better option. \n\nI walk through how I replaced paid password managers with Vaultwarden, a lightweight, self-hosted alternative that runs locally using Docker and works seamlessly with all Bitwarden clients. You’ll see a full setup demo in under a minute, including docker-compose, browser extension integration, autofill, and CLI usage for scripting secrets into your workflow.\n\n🔗 Relevant Links\nVaultwarden Repo - https:\u002F\u002Fgithub.com\u002Fdani-garcia\u002Fvaultwarden\nDocker Image - http:\u002F\u002Fhub.docker.com\u002Fr\u002Fvaultwarden\u002Fserver\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\n\n📌 Chapters:\n0:00 Stop Paying for Password Managers (Vaultwarden Intro)\n0:33 What Is Vaultwarden? (Lightweight Rust Password Manager)\n1:07 Why Self-Hosting Your Password Manager Matters\n1:36 Vaultwarden Setup (Docker Compose Tutorial)\n2:00 Running Vaultwarden Locally (localhost Setup)\n2:25 Connecting Bitwarden Extension to Vaultwarden\n2:53 Vaultwarden CLI Demo (bw Command + Secrets Access)\n3:32 Vaultwarden vs 1Password vs Bitwarden (Comparison)\n3:58 Why Developers Choose Vaultwarden (Control + Privacy)\n4:14 Vaultwarden Pros (Speed, Features, CLI, Privacy)\n4:40 Vaultwarden Cons (Backups, Docker, Mobile Apps)\n5:11 Is Vaultwarden Worth It for Developers?\n5:44 Final Verdict (Who Should Use Vaultwarden)",{},"\u002Fsummaries\u002Fvault-warden-outperforms-1password-for-devs-summary","2026-03-31 12:00:00","2026-04-03 21:14:43",{"title":4526,"description":4691},{"loc":4693},"b78f5181ec1e71f4","video","https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=NLmYjFe_Gg4","summaries\u002Fvault-warden-outperforms-1password-for-devs-summary",[112,113,114],"Vault Warden, a lightweight Rust-based Bitwarden reimplementation, runs self-hosted on your M4 Pro under 100MB RAM, integrates with Bitwarden apps and CLI for free, private password management that speeds dev workflows without subscriptions.",[113,114],"R_R22wYtLOLCauVv0HJhZ-nUeVvpmdvOFpa2_LqdQaQ",{"id":4707,"title":4708,"ai":4709,"body":4714,"categories":5086,"created_at":78,"date_modified":78,"description":70,"extension":79,"faq":78,"featured":80,"kicker_label":78,"meta":5087,"navigation":100,"path":5113,"published_at":5114,"question":78,"scraped_at":5115,"seo":5116,"sitemap":5117,"source_id":5118,"source_name":5119,"source_type":108,"source_url":5120,"stem":5121,"tags":5122,"thumbnail_url":78,"tldr":5123,"tweet":78,"unknown_tags":5124,"__hash__":5125},"summaries\u002Fsummaries\u002Fvercel-sandbox-firewall-enables-postgres-connectio-summary.md","Vercel Sandbox Firewall Enables Postgres Connections",{"provider":7,"model":8,"input_tokens":4710,"output_tokens":4711,"processing_time_ms":4712,"cost_usd":4713},4184,1643,12278,0.0016358,{"type":14,"value":4715,"toc":5081},[4716,4720,4723,4727,4746,5052,5055,5059,5078],[17,4717,4719],{"id":4718},"adapting-firewall-for-postgres-tls-negotiation","Adapting Firewall for Postgres TLS Negotiation",[22,4721,4722],{},"Standard SNI-based filtering in Vercel Sandbox blocks Postgres because clients open plain TCP first, then upgrade to TLS—hiding the domain name initially. The updated firewall detects Postgres startup sequence, waits for TLS handshake to reveal the hostname, then applies domain policy to forward connections securely. This enables connections to managed providers like Neon, Supabase, AWS RDS, Nile, and Prisma Postgres without altering code or DB configs.",[17,4724,4726],{"id":4725},"secure-connection-workflow","Secure Connection Workflow",[22,4728,4729,4730,4733,4734,4737,4738,4741,4742,4745],{},"Start Sandbox with open access to install deps (e.g., ",[26,4731,4732],{},"sudo dnf install -y postgresql15","), then lock to DB host via ",[26,4735,4736],{},"sandbox.updateNetworkPolicy({ allowDomains: [PGHOST] })",". Query with ",[26,4739,4740],{},"psql"," using connection string ",[26,4743,4744],{},"postgres:\u002F\u002F${PGUSER}:${PGPASSWORD}@${PGHOST}:5432\u002F${PGDATABASE}?sslmode=require",":",[4545,4747,4751],{"className":4748,"code":4749,"language":4750,"meta":70,"style":70},"language-typescript shiki shiki-themes github-light github-dark","import { Sandbox } from '@vercel\u002Fsandbox';\n\nconst { PGHOST, PGUSER, PGPASSWORD, PGDATABASE } = process.env;\nconst connectionString = `postgres:\u002F\u002F${PGUSER}:${PGPASSWORD}@${PGHOST}:5432\u002F${PGDATABASE}?sslmode=require`;\n\nconst sandbox = await Sandbox.create();\n\nawait sandbox.runCommand({\n  cmd: 'sudo',\n  args: ['dnf', 'install', '-y', 'postgresql15'],\n});\n\nawait sandbox.updateNetworkPolicy({\n  allowDomains: [PGHOST!],\n});\n\nconst result = await sandbox.runCommand({\n  cmd: 'psql',\n  args: [connectionString, '-c', 'SELECT now();'],\n});\n\nconsole.log(await result.stdout());\n","typescript",[26,4752,4753,4771,4776,4813,4848,4852,4874,4878,4892,4903,4929,4935,4940,4952,4965,4970,4975,4993,5003,5019,5024,5029],{"__ignoreMap":70},[4553,4754,4755,4759,4762,4765,4768],{"class":4555,"line":4556},[4553,4756,4758],{"class":4757},"szBVR","import",[4553,4760,4761],{"class":4569}," { Sandbox } ",[4553,4763,4764],{"class":4757},"from",[4553,4766,4767],{"class":4559}," '@vercel\u002Fsandbox'",[4553,4769,4770],{"class":4569},";\n",[4553,4772,4773],{"class":4555,"line":71},[4553,4774,4775],{"emptyLinePlaceholder":100},"\n",[4553,4777,4778,4781,4784,4788,4791,4794,4796,4799,4801,4804,4807,4810],{"class":4555,"line":97},[4553,4779,4780],{"class":4757},"const",[4553,4782,4783],{"class":4569}," { ",[4553,4785,4787],{"class":4786},"sj4cs","PGHOST",[4553,4789,4790],{"class":4569},", ",[4553,4792,4793],{"class":4786},"PGUSER",[4553,4795,4790],{"class":4569},[4553,4797,4798],{"class":4786},"PGPASSWORD",[4553,4800,4790],{"class":4569},[4553,4802,4803],{"class":4786},"PGDATABASE",[4553,4805,4806],{"class":4569}," } ",[4553,4808,4809],{"class":4757},"=",[4553,4811,4812],{"class":4569}," process.env;\n",[4553,4814,4815,4817,4820,4823,4826,4828,4831,4833,4836,4838,4841,4843,4846],{"class":4555,"line":96},[4553,4816,4780],{"class":4757},[4553,4818,4819],{"class":4786}," connectionString",[4553,4821,4822],{"class":4757}," =",[4553,4824,4825],{"class":4559}," `postgres:\u002F\u002F${",[4553,4827,4793],{"class":4786},[4553,4829,4830],{"class":4559},"}:${",[4553,4832,4798],{"class":4786},[4553,4834,4835],{"class":4559},"}@${",[4553,4837,4787],{"class":4786},[4553,4839,4840],{"class":4559},"}:5432\u002F${",[4553,4842,4803],{"class":4786},[4553,4844,4845],{"class":4559},"}?sslmode=require`",[4553,4847,4770],{"class":4569},[4553,4849,4850],{"class":4555,"line":4591},[4553,4851,4775],{"emptyLinePlaceholder":100},[4553,4853,4854,4856,4859,4861,4864,4867,4871],{"class":4555,"line":4599},[4553,4855,4780],{"class":4757},[4553,4857,4858],{"class":4786}," sandbox",[4553,4860,4822],{"class":4757},[4553,4862,4863],{"class":4757}," await",[4553,4865,4866],{"class":4569}," Sandbox.",[4553,4868,4870],{"class":4869},"sScJk","create",[4553,4872,4873],{"class":4569},"();\n",[4553,4875,4876],{"class":4555,"line":4608},[4553,4877,4775],{"emptyLinePlaceholder":100},[4553,4879,4880,4883,4886,4889],{"class":4555,"line":4616},[4553,4881,4882],{"class":4757},"await",[4553,4884,4885],{"class":4569}," sandbox.",[4553,4887,4888],{"class":4869},"runCommand",[4553,4890,4891],{"class":4569},"({\n",[4553,4893,4894,4897,4900],{"class":4555,"line":4624},[4553,4895,4896],{"class":4569},"  cmd: ",[4553,4898,4899],{"class":4559},"'sudo'",[4553,4901,4902],{"class":4569},",\n",[4553,4904,4905,4908,4911,4913,4916,4918,4921,4923,4926],{"class":4555,"line":4632},[4553,4906,4907],{"class":4569},"  args: [",[4553,4909,4910],{"class":4559},"'dnf'",[4553,4912,4790],{"class":4569},[4553,4914,4915],{"class":4559},"'install'",[4553,4917,4790],{"class":4569},[4553,4919,4920],{"class":4559},"'-y'",[4553,4922,4790],{"class":4569},[4553,4924,4925],{"class":4559},"'postgresql15'",[4553,4927,4928],{"class":4569},"],\n",[4553,4930,4932],{"class":4555,"line":4931},11,[4553,4933,4934],{"class":4569},"});\n",[4553,4936,4938],{"class":4555,"line":4937},12,[4553,4939,4775],{"emptyLinePlaceholder":100},[4553,4941,4943,4945,4947,4950],{"class":4555,"line":4942},13,[4553,4944,4882],{"class":4757},[4553,4946,4885],{"class":4569},[4553,4948,4949],{"class":4869},"updateNetworkPolicy",[4553,4951,4891],{"class":4569},[4553,4953,4955,4958,4960,4963],{"class":4555,"line":4954},14,[4553,4956,4957],{"class":4569},"  allowDomains: [",[4553,4959,4787],{"class":4786},[4553,4961,4962],{"class":4757},"!",[4553,4964,4928],{"class":4569},[4553,4966,4968],{"class":4555,"line":4967},15,[4553,4969,4934],{"class":4569},[4553,4971,4973],{"class":4555,"line":4972},16,[4553,4974,4775],{"emptyLinePlaceholder":100},[4553,4976,4978,4980,4983,4985,4987,4989,4991],{"class":4555,"line":4977},17,[4553,4979,4780],{"class":4757},[4553,4981,4982],{"class":4786}," result",[4553,4984,4822],{"class":4757},[4553,4986,4863],{"class":4757},[4553,4988,4885],{"class":4569},[4553,4990,4888],{"class":4869},[4553,4992,4891],{"class":4569},[4553,4994,4996,4998,5001],{"class":4555,"line":4995},18,[4553,4997,4896],{"class":4569},[4553,4999,5000],{"class":4559},"'psql'",[4553,5002,4902],{"class":4569},[4553,5004,5006,5009,5012,5014,5017],{"class":4555,"line":5005},19,[4553,5007,5008],{"class":4569},"  args: [connectionString, ",[4553,5010,5011],{"class":4559},"'-c'",[4553,5013,4790],{"class":4569},[4553,5015,5016],{"class":4559},"'SELECT now();'",[4553,5018,4928],{"class":4569},[4553,5020,5022],{"class":4555,"line":5021},20,[4553,5023,4934],{"class":4569},[4553,5025,5027],{"class":4555,"line":5026},21,[4553,5028,4775],{"emptyLinePlaceholder":100},[4553,5030,5032,5035,5038,5041,5043,5046,5049],{"class":4555,"line":5031},22,[4553,5033,5034],{"class":4569},"console.",[4553,5036,5037],{"class":4869},"log",[4553,5039,5040],{"class":4569},"(",[4553,5042,4882],{"class":4757},[4553,5044,5045],{"class":4569}," result.",[4553,5047,5048],{"class":4869},"stdout",[4553,5050,5051],{"class":4569},"());\n",[22,5053,5054],{},"This isolates untrusted code while allowing DB access.",[17,5056,5058],{"id":5057},"tls-mandates-and-limitations","TLS Mandates and Limitations",[22,5060,5061,5062,5065,5066,5069,5070,5073,5074,5077],{},"Require ",[26,5063,5064],{},"sslmode=require"," or higher for hostname visibility; non-TLS DBs need IP-range allowances. GSSAPI ",[26,5067,5068],{},"gssencmode=prefer"," falls back to TLS, but ",[26,5071,5072],{},"gssencmode=require"," fails. ",[26,5075,5076],{},"sslmode=prefer"," rejects non-TLS servers outright, preventing plaintext downgrades. Use IP rules for unsupported TLS setups.",[4682,5079,5080],{},"html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":70,"searchDepth":71,"depth":71,"links":5082},[5083,5084,5085],{"id":4718,"depth":71,"text":4719},{"id":4725,"depth":71,"text":4726},{"id":5057,"depth":71,"text":5058},[77],{"content_references":5088,"triage":5111},[5089,5092,5095,5098,5101,5104,5106,5109],{"type":84,"title":5090,"url":5091,"context":91},"Vercel Sandbox","https:\u002F\u002Fvercel.com\u002Fdocs\u002Fvercel-sandbox",{"type":84,"title":5093,"url":5094,"context":91},"Neon","https:\u002F\u002Fwww.vercel.com\u002Fmarketplace\u002Fneon",{"type":84,"title":5096,"url":5097,"context":91},"Supabase","https:\u002F\u002Fwww.vercel.com\u002Fmarketplace\u002Fsupabase",{"type":84,"title":5099,"url":5100,"context":91},"AWS RDS","https:\u002F\u002Fwww.vercel.com\u002Fmarketplace\u002Faws",{"type":84,"title":5102,"url":5103,"context":91},"Nile","https:\u002F\u002Fwww.vercel.com\u002Fmarketplace\u002Fnile",{"type":84,"title":5105,"url":5103,"context":91},"Prisma Postgres",{"type":93,"title":5107,"url":5108,"context":91},"SNI based filtering","https:\u002F\u002Fvercel.com\u002Fdocs\u002Fvercel-sandbox\u002Fconcepts\u002Ffirewall",{"type":93,"title":5110,"url":5108,"context":87},"Sandbox firewall",{"relevance":96,"novelty":97,"quality":96,"actionability":96,"composite":98,"reasoning":5112},"Category: DevOps & Cloud. The article provides a practical update on Vercel Sandbox's new feature that allows outbound Postgres connections, addressing a specific pain point for developers needing secure database access without code changes. It includes a concrete workflow for implementing the feature, making it actionable for the audience.","\u002Fsummaries\u002Fvercel-sandbox-firewall-enables-postgres-connectio-summary","2026-05-01 02:00:00","2026-05-03 17:02:10",{"title":4708,"description":70},{"loc":5113},"89a9f5d1a5c19903","Vercel Blog","https:\u002F\u002Fvercel.com\u002Fchangelog\u002Fvercel-sandbox-firewall-now-supports-postgres-connections","summaries\u002Fvercel-sandbox-firewall-enables-postgres-connectio-summary",[114,113],"Vercel Sandbox now supports outbound Postgres connections to hosted DBs like Neon and Supabase by detecting TLS upgrades during negotiation—no code changes required, just add DB host to allowed domains.",[114,113],"xPKjhDtzO3hoeS5kcflWYn8MVhm2OBbqpIMxSGvJQ_g",{"id":5127,"title":5128,"ai":5129,"body":5134,"categories":5185,"created_at":78,"date_modified":78,"description":70,"extension":79,"faq":78,"featured":80,"kicker_label":78,"meta":5186,"navigation":100,"path":5195,"published_at":5196,"question":78,"scraped_at":5197,"seo":5198,"sitemap":5199,"source_id":5200,"source_name":107,"source_type":108,"source_url":5201,"stem":5202,"tags":5203,"thumbnail_url":78,"tldr":5204,"tweet":78,"unknown_tags":5205,"__hash__":5206},"summaries\u002Fsummaries\u002Fsiyuan-refactor-notes-like-code-without-broken-lin-summary.md","SiYuan: Refactor Notes Like Code Without Broken Links",{"provider":7,"model":8,"input_tokens":5130,"output_tokens":5131,"processing_time_ms":5132,"cost_usd":5133},5162,1290,14980,0.00117055,{"type":14,"value":5135,"toc":5179},[5136,5140,5143,5146,5150,5153,5156,5160,5163,5166,5170,5173,5176],[17,5137,5139],{"id":5138},"permanent-block-ids-enable-refactoring-without-breaks","Permanent Block IDs Enable Refactoring Without Breaks",[22,5141,5142],{},"Link to specific blocks (paragraphs, lists, code snippets) using unique, permanent IDs instead of file paths. Move or reorganize content freely—the embedded references stay intact, eliminating broken links common in Markdown folders or Obsidian vaults. For example, embed a Python code block in multiple notes; relocate the original, and all embeds update automatically. This shifts focus from file locations to utility, ideal for docs, bug tracking, or architecture diagrams where knowledge evolves.",[22,5144,5145],{},"Add interactive graph views to visualize block connections, revealing how bugs link to tasks or decisions tie to code snippets. Self-host via Docker Compose in 1-2 minutes for full local control and offline access.",[17,5147,5149],{"id":5148},"built-in-sql-databases-structure-dev-knowledge","Built-in SQL Databases Structure Dev Knowledge",[22,5151,5152],{},"Create task databases with fields like status and priority directly in notes. Query them inline with SQL—no plugins needed—for filtering high-priority bugs or overdue tasks. This turns scattered notes into a structured system design document or personal wiki, supporting project docs, code snippets, and knowledge bases.",[22,5154,5155],{},"Unlike plugin-dependent tools, databases are native, with export to Markdown available. Graph views integrate seamlessly, showing relational pins across your workspace.",[17,5157,5159],{"id":5158},"outperforms-obsidian-and-notion-for-local-power","Outperforms Obsidian and Notion for Local Power",[22,5161,5162],{},"Obsidian's file-based linking breaks on refactors; SiYuan's block-level granularity feels like a structured system. Notion offers similar blocks and databases but requires cloud subscription and lacks ownership—SiYuan delivers both locally and open-source, free of vendor lock-in.",[22,5164,5165],{},"Devs switch for stable large workspaces, fast updates, and performance on huge note sets (run occasional optimizations). Use SiYuan if notes grow into long-term systems; stick with Obsidian for Markdown\u002Fplugin-heavy setups or Notion if deeply invested despite switching pain.",[17,5167,5169],{"id":5168},"key-trade-offs-ownership-vs-familiarity","Key Trade-offs: Ownership vs Familiarity",[22,5171,5172],{},"Pros: Unbreakable links stabilize big notes; Docker self-hosting; native SQL outperforms plugin hunts; Notion-like UI with graph interactivity.",[22,5174,5175],{},"Cons: Stores in proprietary .psi format (not plain Markdown); smaller English plugin ecosystem (Chinese-origin); UI feels dated to some; large workspaces need optimization.",[22,5177,5178],{},"Try if current tools fail on structure—import existing notes and test block embeds on a project doc to validate fit.",{"title":70,"searchDepth":71,"depth":71,"links":5180},[5181,5182,5183,5184],{"id":5138,"depth":71,"text":5139},{"id":5148,"depth":71,"text":5149},{"id":5158,"depth":71,"text":5159},{"id":5168,"depth":71,"text":5169},[172],{"content_references":5187,"triage":5193},[5188,5191],{"type":84,"title":5189,"url":5190,"context":91},"SiYuan","https:\u002F\u002Fgithub.com\u002Fsiyuan-note\u002Fsiyuan",{"type":84,"title":5189,"url":5192,"context":91},"https:\u002F\u002Fb3log.org\u002Fsiyuan\u002F",{"relevance":96,"novelty":97,"quality":96,"actionability":96,"composite":98,"reasoning":5194},"Category: Developer Productivity. The article discusses a tool that enhances note-taking for developers by using permanent block IDs, addressing a common pain point of broken links in documentation. It provides actionable insights on how to implement the tool and its benefits over existing solutions, making it relevant for developers looking to improve their productivity.","\u002Fsummaries\u002Fsiyuan-refactor-notes-like-code-without-broken-lin-summary","2026-04-30 12:00:04","2026-05-03 16:47:32",{"title":5128,"description":70},{"loc":5195},"0a5e7223009396a5","https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=2L3txd8_Psk","summaries\u002Fsiyuan-refactor-notes-like-code-without-broken-lin-summary",[112,113],"SiYuan uses permanent block IDs for unbreakable references and built-in SQL databases, letting developers organize technical notes like structured codebases locally, outperforming Obsidian's file links and Notion's cloud lock-in.",[113],"NhIIC3zkoscVR3cu0y_uOmT2a0dThbGCfpocn0oNqCA",{"id":5208,"title":5209,"ai":5210,"body":5215,"categories":5250,"created_at":78,"date_modified":78,"description":70,"extension":79,"faq":78,"featured":80,"kicker_label":78,"meta":5251,"navigation":100,"path":5263,"published_at":5264,"question":78,"scraped_at":5265,"seo":5266,"sitemap":5267,"source_id":5268,"source_name":107,"source_type":108,"source_url":5269,"stem":5270,"tags":5271,"thumbnail_url":78,"tldr":5273,"tweet":78,"unknown_tags":5274,"__hash__":5275},"summaries\u002Fsummaries\u002Fself-host-authentic-for-centralized-sso-and-mfa-summary.md","Self-Host Authentic for Centralized SSO and MFA",{"provider":7,"model":8,"input_tokens":5211,"output_tokens":5212,"processing_time_ms":5213,"cost_usd":5214},4647,1514,14898,0.00139555,{"type":14,"value":5216,"toc":5245},[5217,5221,5228,5231,5235,5238,5242],[17,5218,5220],{"id":5219},"deploy-production-auth-in-under-2-minutes","Deploy Production Auth in Under 2 Minutes",[22,5222,5223,5224,5227],{},"Fragmented logins across services—local auth in one, no MFA in another, mismatched users—break self-hosted stacks on Docker or Kubernetes. Authentic fixes this as an open-source identity provider, centralizing SSO, MFA, passkeys, and access control. Run ",[26,5225,5226],{},"docker compose up"," on a fresh server to launch it instantly. Access the admin UI, create an app, and add OAuth (or other providers) in under 30 seconds. For a test app, set the redirect URL to localhost, paste the client ID and secret from Authentic, and login works. Add users via the UI for seamless access without custom login pages or password maintenance. Total setup: 90 seconds for production-grade auth linking your entire system.",[22,5229,5230],{},"This eliminates patchwork OIDC across services, giving one controlled login for all apps. Visual flow builder lets you assemble login logic without XML configs, while Python policies handle custom logic like a developer—far more flexible than SAS rules or legacy tools.",[17,5232,5234],{"id":5233},"outshines-keycloak-and-cloud-providers-on-flexibility","Outshines Keycloak and Cloud Providers on Flexibility",[22,5236,5237],{},"Authentic bridges lightweight tools and enterprise heavies: Keycloak feels legacy and enterprise-bloated; Auth0 is light but scales poorly without costs; Okta\u002FAuth0 demand payments as users grow. Authentic delivers full identity management, modern UI, API-driven ops, Docker-first (Kubernetes-ready), centralized MFA, user management, and a service portal—without initial lock-in. Python policies extend beyond visual flows for precise custom auth, making it ideal for devs building logic over configs.",[17,5239,5241],{"id":5240},"trade-offs-heavier-but-worth-it-for-control","Trade-offs: Heavier but Worth It for Control",[22,5243,5244],{},"At 2GB RAM, it's not ultra-lightweight, has a learning curve (install was confusing initially), and risks single-point failure without high availability. Open-source core is free, but enterprise scaling requires paid tiers—like any service. Skip if you need zero-setup minimalism or massive scale (paid providers win there). Perfect for self-hosted stacks, home labs, internal tools, SaaS\u002Fon-prem apps needing real SSO\u002FMFA everywhere, or custom auth logic. Once running, scattered auth becomes one controlled system—hard to revert.",{"title":70,"searchDepth":71,"depth":71,"links":5246},[5247,5248,5249],{"id":5219,"depth":71,"text":5220},{"id":5233,"depth":71,"text":5234},{"id":5240,"depth":71,"text":5241},[77],{"content_references":5252,"triage":5261},[5253,5255,5257,5259],{"type":84,"title":5254,"context":91},"Keycloak",{"type":84,"title":5256,"context":91},"Auth0",{"type":84,"title":5258,"context":91},"Okta",{"type":84,"title":5260,"context":87},"Authentic",{"relevance":96,"novelty":97,"quality":96,"actionability":96,"composite":98,"reasoning":5262},"Category: DevOps & Cloud. The article provides a practical guide for deploying an open-source identity provider, addressing the pain point of fragmented authentication in self-hosted applications. It includes specific steps for setup and highlights the benefits of using Authentic over other solutions, making it actionable for developers looking to implement centralized authentication.","\u002Fsummaries\u002Fself-host-authentic-for-centralized-sso-and-mfa-summary","2026-04-24 12:00:41","2026-04-26 17:08:07",{"title":5209,"description":70},{"loc":5263},"28b7ccdd0b94eac4","https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=LVuspKy4P2w","summaries\u002Fself-host-authentic-for-centralized-sso-and-mfa-summary",[112,114,5272],"docker","Deploy Authentic via Docker Compose for SSO, MFA, passkeys, and user management across self-hosted apps in 90 seconds, avoiding fragmented auth in multi-service stacks.",[114,5272],"DIlOHLtsf1n6ABm1h4_DFl_ZBO1vG_Ad08qaaKXGzfA"]