[{"data":1,"prerenderedAt":1820},["ShallowReactive",2],{"navLinks":3,"sidebar_docs_navigation_\u002Fdocs\u002Fshield-base":64,"navigation":138,"navLinks_footer":802,"\u002Fdocs\u002Fshield-base\u002Fdata-sources\u002Fbgp_page":815,"\u002Fdocs\u002Fshield-base\u002Fdata-sources\u002Fbgp_surround":1396,"\u002Fdocs\u002Fshield-base\u002Fdata-sources\u002Fbgp":1399},{"id":4,"extension":5,"links":6,"meta":61,"stem":62,"__hash__":63},"navigationMenu\u002Fnavigation.json","json",[7,52,57],{"nested":8,"label":9,"icon":10,"to":11,"children":12},true,"Docs","i-lucide-book-open","\u002Fdocs\u002Fgetting-started",[13,19,26,32,39,45],{"label":14,"icon":15,"to":11,"description":16,"github":17,"badge":18},"Getting Started","i-lucide-rocket","An introduction to help you understand the core components.","https:\u002F\u002Fgithub.com\u002FSergo706\u002Fdocshub","Start Here",{"label":20,"icon":21,"to":22,"description":23,"github":24,"badge":25},"Auth H3 Client","i-lucide-key-round","\u002Fdocs\u002Fauth-h3client","Seamlessly enforce OAuth 2.0 authentication and session management integrated directly as the client of the IAM module.","https:\u002F\u002Fgithub.com\u002FSergo706\u002Fauth-h3client","Core",{"label":27,"icon":28,"to":29,"description":30,"github":31,"badge":25},"IAM","i-lucide-shield-check","\u002Fdocs\u002Fiam","Identity and Access Management featuring granular roles, permissions, and security policies.","https:\u002F\u002Fgithub.com\u002FSergo706\u002Fauth",{"label":33,"icon":34,"to":35,"description":36,"github":37,"badge":38},"Bot Detection","i-lucide-cpu","\u002Fdocs\u002Fbot-detection","Advanced behavioral analysis and request fingerprinting to stop malicious automated traffic.","https:\u002F\u002Fgithub.com\u002FSergo706\u002Fbot-detector","Security",{"label":40,"icon":41,"to":42,"description":43,"github":44,"badge":38},"Shield Base","i-lucide-database-zap","\u002Fdocs\u002Fshield-base","CLI and programmatic toolkit for compiling offline-ready IP intelligence databases from BGP, GeoIP, Tor, FireHOL, and other public threat feeds.","https:\u002F\u002Fgithub.com\u002FSergo706\u002Fshield-base-cli",{"label":46,"icon":47,"to":48,"description":49,"github":50,"badge":51},"Utils","i-lucide-wrench","\u002Fdocs\u002Futils","A standard library of highly optimized helpers for formatting, validation, and core logic.","https:\u002F\u002Fgithub.com\u002FSergo706\u002Futils","Library",{"nested":53,"label":54,"icon":55,"to":56},false,"Blog","i-lucide-pen-line","\u002Fblog",{"nested":53,"label":58,"icon":59,"to":60},"Website","lucide:app-window-mac","https:\u002F\u002Friavzon.com",{},"navigation","gkaQ0xRGxSLrLyM3kttLe0oBwkrR1EBjlepF8LSbwF8",[65],{"title":9,"path":66,"stem":67,"children":68,"page":53},"\u002Fdocs","docs",[69],{"title":40,"path":42,"stem":70,"children":71},"docs\u002Fshield-base\u002Findex",[72,73,76,80,122,126,130,134],{"title":40,"path":42,"stem":70},{"title":14,"path":74,"stem":75},"\u002Fdocs\u002Fshield-base\u002Fgetting-started","docs\u002Fshield-base\u002F00.getting-started",{"title":77,"path":78,"stem":79},"CLI Reference","\u002Fdocs\u002Fshield-base\u002Fcli","docs\u002Fshield-base\u002F01.cli",{"title":81,"path":82,"stem":83,"children":84},"Data Sources","\u002Fdocs\u002Fshield-base\u002Fdata-sources","docs\u002Fshield-base\u002F02.data-sources\u002Findex",[85,86,90,94,98,102,106,110,114,118],{"title":81,"path":82,"stem":83},{"title":87,"path":88,"stem":89},"BGP \u002F ASN","\u002Fdocs\u002Fshield-base\u002Fdata-sources\u002Fbgp","docs\u002Fshield-base\u002F02.data-sources\u002Fbgp",{"title":91,"path":92,"stem":93},"City Geolocation","\u002Fdocs\u002Fshield-base\u002Fdata-sources\u002Fcity","docs\u002Fshield-base\u002F02.data-sources\u002Fcity",{"title":95,"path":96,"stem":97},"Country Geolocation","\u002Fdocs\u002Fshield-base\u002Fdata-sources\u002Fcountry","docs\u002Fshield-base\u002F02.data-sources\u002Fcountry",{"title":99,"path":100,"stem":101},"Verified Crawlers","\u002Fdocs\u002Fshield-base\u002Fdata-sources\u002Fcrawlers","docs\u002Fshield-base\u002F02.data-sources\u002Fcrawlers",{"title":103,"path":104,"stem":105},"Disposable Emails","\u002Fdocs\u002Fshield-base\u002Fdata-sources\u002Femail","docs\u002Fshield-base\u002F02.data-sources\u002Femail",{"title":107,"path":108,"stem":109},"FireHOL Threat Intelligence","\u002Fdocs\u002Fshield-base\u002Fdata-sources\u002Ffirehol","docs\u002Fshield-base\u002F02.data-sources\u002Ffirehol",{"title":111,"path":112,"stem":113},"Proxy Detection","\u002Fdocs\u002Fshield-base\u002Fdata-sources\u002Fproxy","docs\u002Fshield-base\u002F02.data-sources\u002Fproxy",{"title":115,"path":116,"stem":117},"Tor Nodes","\u002Fdocs\u002Fshield-base\u002Fdata-sources\u002Ftor","docs\u002Fshield-base\u002F02.data-sources\u002Ftor",{"title":119,"path":120,"stem":121},"Suspicious User-Agents","\u002Fdocs\u002Fshield-base\u002Fdata-sources\u002Fuseragent","docs\u002Fshield-base\u002F02.data-sources\u002Fuseragent",{"title":123,"path":124,"stem":125},"Programmatic Usage","\u002Fdocs\u002Fshield-base\u002Fusage","docs\u002Fshield-base\u002F03.usage",{"title":127,"path":128,"stem":129},"Custom Data Sources","\u002Fdocs\u002Fshield-base\u002Fcustom-data-sources","docs\u002Fshield-base\u002F04.custom-data-sources",{"title":131,"path":132,"stem":133},"TypeScript Types","\u002Fdocs\u002Fshield-base\u002Ftypes","docs\u002Fshield-base\u002F05.types",{"title":135,"path":136,"stem":137},"API Reference","\u002Fdocs\u002Fshield-base\u002Fapi","docs\u002Fshield-base\u002F06.api",[139],{"title":9,"path":66,"stem":67,"children":140,"page":53},[141,288,405,410,588,609],{"title":20,"path":22,"stem":142,"children":143},"docs\u002Fauth-h3client\u002Findex",[144,145,154,191,217,239,242,263,267],{"title":20,"path":22,"stem":142},{"title":14,"path":146,"stem":147,"children":148},"\u002Fdocs\u002Fauth-h3client\u002Fgetting-started","docs\u002Fauth-h3client\u002F00.getting-started\u002Findex",[149,150],{"title":14,"path":146,"stem":147},{"title":151,"path":152,"stem":153},"Nuxt Module","\u002Fdocs\u002Fauth-h3client\u002Fgetting-started\u002Fnuxt","docs\u002Fauth-h3client\u002F00.getting-started\u002F00.nuxt",{"title":155,"path":156,"stem":157,"children":158},"Essentials","\u002Fdocs\u002Fauth-h3client\u002Fessentials","docs\u002Fauth-h3client\u002F01.essentials\u002Findex",[159,160,164,168,172,176,180,183,187],{"title":155,"path":156,"stem":157},{"title":161,"path":162,"stem":163},"Session Management","\u002Fdocs\u002Fauth-h3client\u002Fessentials\u002Fsession","docs\u002Fauth-h3client\u002F01.essentials\u002F00.session",{"title":165,"path":166,"stem":167},"Route Protection","\u002Fdocs\u002Fauth-h3client\u002Fessentials\u002Froute-protection","docs\u002Fauth-h3client\u002F01.essentials\u002F01.route-protection",{"title":169,"path":170,"stem":171},"CSRF Protection","\u002Fdocs\u002Fauth-h3client\u002Fessentials\u002Fcsrf","docs\u002Fauth-h3client\u002F01.essentials\u002F02.csrf",{"title":173,"path":174,"stem":175},"Auth Flows","\u002Fdocs\u002Fauth-h3client\u002Fessentials\u002Fauth-flows","docs\u002Fauth-h3client\u002F01.essentials\u002F03.auth-flows",{"title":177,"path":178,"stem":179},"OAuth and OIDC","\u002Fdocs\u002Fauth-h3client\u002Fessentials\u002Foauth","docs\u002Fauth-h3client\u002F01.essentials\u002F04.oauth",{"title":33,"path":181,"stem":182},"\u002Fdocs\u002Fauth-h3client\u002Fessentials\u002Fbot-detection","docs\u002Fauth-h3client\u002F01.essentials\u002F05.bot-detection",{"title":184,"path":185,"stem":186},"Cookies","\u002Fdocs\u002Fauth-h3client\u002Fessentials\u002Fcookies","docs\u002Fauth-h3client\u002F01.essentials\u002F06.cookies",{"title":188,"path":189,"stem":190},"Logging","\u002Fdocs\u002Fauth-h3client\u002Fessentials\u002Flogging","docs\u002Fauth-h3client\u002F01.essentials\u002F07.logging",{"title":192,"path":193,"stem":194,"children":195},"MFA","\u002Fdocs\u002Fauth-h3client\u002Fmfa","docs\u002Fauth-h3client\u002F02.mfa\u002Findex",[196,197,201,205,209,213],{"title":192,"path":193,"stem":194},{"title":198,"path":199,"stem":200},"Built-in MFA","\u002Fdocs\u002Fauth-h3client\u002Fmfa\u002Fbuilt-in-flow","docs\u002Fauth-h3client\u002F02.mfa\u002F01.built-in-flow",{"title":202,"path":203,"stem":204},"Password Reset","\u002Fdocs\u002Fauth-h3client\u002Fmfa\u002Fpassword-reset","docs\u002Fauth-h3client\u002F02.mfa\u002F02.password-reset",{"title":206,"path":207,"stem":208},"Email Change","\u002Fdocs\u002Fauth-h3client\u002Fmfa\u002Femail-change","docs\u002Fauth-h3client\u002F02.mfa\u002F03.email-change",{"title":210,"path":211,"stem":212},"Custom MFA Flow","\u002Fdocs\u002Fauth-h3client\u002Fmfa\u002Fcustom-flow","docs\u002Fauth-h3client\u002F02.mfa\u002F04.custom-flow",{"title":214,"path":215,"stem":216},"Client-Side MFA","\u002Fdocs\u002Fauth-h3client\u002Fmfa\u002Fclient-side","docs\u002Fauth-h3client\u002F02.mfa\u002F05.client-side",{"title":218,"path":219,"stem":220,"children":221},"Client-side","\u002Fdocs\u002Fauth-h3client\u002Fclient","docs\u002Fauth-h3client\u002F03.client\u002Findex",[222,223,227,231,235],{"title":218,"path":219,"stem":220},{"title":224,"path":225,"stem":226},"useAuthData","\u002Fdocs\u002Fauth-h3client\u002Fclient\u002Fuse-auth-data","docs\u002Fauth-h3client\u002F03.client\u002F00.use-auth-data",{"title":228,"path":229,"stem":230},"useMagicLink","\u002Fdocs\u002Fauth-h3client\u002Fclient\u002Fuse-magic-link","docs\u002Fauth-h3client\u002F03.client\u002F01.use-magic-link",{"title":232,"path":233,"stem":234},"executeRequest","\u002Fdocs\u002Fauth-h3client\u002Fclient\u002Fexecute-request","docs\u002Fauth-h3client\u002F03.client\u002F02.execute-request",{"title":236,"path":237,"stem":238},"getCsrfToken","\u002Fdocs\u002Fauth-h3client\u002Fclient\u002Fget-csrf-token","docs\u002Fauth-h3client\u002F03.client\u002F03.get-csrf-token",{"title":38,"path":240,"stem":241},"\u002Fdocs\u002Fauth-h3client\u002Fsecurity","docs\u002Fauth-h3client\u002F04.security",{"title":243,"path":244,"stem":245,"children":246,"page":53},"Guides","\u002Fdocs\u002Fauth-h3client\u002Fguides","docs\u002Fauth-h3client\u002F05.guides",[247,251,255,259],{"title":248,"path":249,"stem":250},"H3 and Nitro Setup","\u002Fdocs\u002Fauth-h3client\u002Fguides\u002Fh3-nitro","docs\u002Fauth-h3client\u002F05.guides\u002F00.h3-nitro",{"title":252,"path":253,"stem":254},"HMAC Inter-service Auth","\u002Fdocs\u002Fauth-h3client\u002Fguides\u002Fhmac","docs\u002Fauth-h3client\u002F05.guides\u002Fhmac",{"title":256,"path":257,"stem":258},"Image Upload","\u002Fdocs\u002Fauth-h3client\u002Fguides\u002Fimage-upload","docs\u002Fauth-h3client\u002F05.guides\u002Fimage-upload",{"title":260,"path":261,"stem":262},"mTLS Configuration","\u002Fdocs\u002Fauth-h3client\u002Fguides\u002Fmtls","docs\u002Fauth-h3client\u002F05.guides\u002Fmtls",{"title":264,"path":265,"stem":266},"Configuration","\u002Fdocs\u002Fauth-h3client\u002Fconfiguration","docs\u002Fauth-h3client\u002F06.configuration",{"title":135,"path":268,"stem":269,"children":270},"\u002Fdocs\u002Fauth-h3client\u002Fapi","docs\u002Fauth-h3client\u002F07.api\u002Findex",[271,272,276,280,284],{"title":135,"path":268,"stem":269},{"title":273,"path":274,"stem":275},"Routes Reference","\u002Fdocs\u002Fauth-h3client\u002Fapi\u002Fcontrollers","docs\u002Fauth-h3client\u002F07.api\u002F00.controllers",{"title":277,"path":278,"stem":279},"Middleware Reference","\u002Fdocs\u002Fauth-h3client\u002Fapi\u002Fmiddleware","docs\u002Fauth-h3client\u002F07.api\u002F01.middleware",{"title":281,"path":282,"stem":283},"Client-side Reference","\u002Fdocs\u002Fauth-h3client\u002Fapi\u002Fcomposables","docs\u002Fauth-h3client\u002F07.api\u002F02.composables",{"title":285,"path":286,"stem":287},"Utilities","\u002Fdocs\u002Fauth-h3client\u002Fapi\u002Futilities","docs\u002Fauth-h3client\u002F07.api\u002F03.utilities",{"title":289,"path":35,"stem":290,"children":291},"Bot Detector","docs\u002Fbot-detection\u002Findex",[292,293,296,300,303,322,396,399,402],{"title":289,"path":35,"stem":290},{"title":14,"path":294,"stem":295},"\u002Fdocs\u002Fbot-detection\u002Fgetting-started","docs\u002Fbot-detection\u002F00.getting-started",{"title":297,"path":298,"stem":299},"CLI","\u002Fdocs\u002Fbot-detection\u002Fcli","docs\u002Fbot-detection\u002F01.cli",{"title":81,"path":301,"stem":302},"\u002Fdocs\u002Fbot-detection\u002Fdata-sources","docs\u002Fbot-detection\u002F02.data-sources",{"title":243,"path":304,"stem":305,"children":306,"page":53},"\u002Fdocs\u002Fbot-detection\u002Fguides","docs\u002Fbot-detection\u002F03.guides",[307,311,315,318],{"title":308,"path":309,"stem":310},"Custom Checkers","\u002Fdocs\u002Fbot-detection\u002Fguides\u002Fcustom","docs\u002Fbot-detection\u002F03.guides\u002FCUSTOM",{"title":312,"path":313,"stem":314},"Scheduling Database Generation","\u002Fdocs\u002Fbot-detection\u002Fguides\u002Fgenerate","docs\u002Fbot-detection\u002F03.guides\u002FGENERATE",{"title":188,"path":316,"stem":317},"\u002Fdocs\u002Fbot-detection\u002Fguides\u002Flogging","docs\u002Fbot-detection\u002F03.guides\u002FLOGGING",{"title":319,"path":320,"stem":321},"Score Modes and Reputation Healing","\u002Fdocs\u002Fbot-detection\u002Fguides\u002Fscore","docs\u002Fbot-detection\u002F03.guides\u002FSCORE",{"title":323,"path":324,"stem":325,"children":326},"Checkers","\u002Fdocs\u002Fbot-detection\u002Fcheckers","docs\u002Fbot-detection\u002F04.checkers\u002Findex",[327,328,332,336,340,344,348,352,356,360,364,368,372,376,380,384,388,392],{"title":323,"path":324,"stem":325},{"title":329,"path":330,"stem":331},"IP Validation","\u002Fdocs\u002Fbot-detection\u002Fcheckers\u002Fip-validation","docs\u002Fbot-detection\u002F04.checkers\u002F01.ip-validation",{"title":333,"path":334,"stem":335},"Good \u002F Bad Bot Verification","\u002Fdocs\u002Fbot-detection\u002Fcheckers\u002Fgood-bots","docs\u002Fbot-detection\u002F04.checkers\u002F02.good-bots",{"title":337,"path":338,"stem":339},"Browser & Device Fingerprint","\u002Fdocs\u002Fbot-detection\u002Fcheckers\u002Fbrowser-device","docs\u002Fbot-detection\u002F04.checkers\u002F03.browser-device",{"title":341,"path":342,"stem":343},"Locale Map","\u002Fdocs\u002Fbot-detection\u002Fcheckers\u002Flocale-map","docs\u002Fbot-detection\u002F04.checkers\u002F04.locale-map",{"title":345,"path":346,"stem":347},"Known Threats","\u002Fdocs\u002Fbot-detection\u002Fcheckers\u002Fknown-threats","docs\u002Fbot-detection\u002F04.checkers\u002F05.known-threats",{"title":349,"path":350,"stem":351},"ASN Classification","\u002Fdocs\u002Fbot-detection\u002Fcheckers\u002Fasn-classification","docs\u002Fbot-detection\u002F04.checkers\u002F06.asn-classification",{"title":353,"path":354,"stem":355},"Tor Analysis","\u002Fdocs\u002Fbot-detection\u002Fcheckers\u002Ftor-analysis","docs\u002Fbot-detection\u002F04.checkers\u002F07.tor-analysis",{"title":357,"path":358,"stem":359},"Timezone Consistency","\u002Fdocs\u002Fbot-detection\u002Fcheckers\u002Ftimezone-consistency","docs\u002Fbot-detection\u002F04.checkers\u002F08.timezone-consistency",{"title":361,"path":362,"stem":363},"Honeypot","\u002Fdocs\u002Fbot-detection\u002Fcheckers\u002Fhoneypot","docs\u002Fbot-detection\u002F04.checkers\u002F09.honeypot",{"title":365,"path":366,"stem":367},"Known Bad IPs","\u002Fdocs\u002Fbot-detection\u002Fcheckers\u002Fknown-bad-ips","docs\u002Fbot-detection\u002F04.checkers\u002F10.known-bad-ips",{"title":369,"path":370,"stem":371},"Behavior Rate","\u002Fdocs\u002Fbot-detection\u002Fcheckers\u002Fbehavior-rate","docs\u002Fbot-detection\u002F04.checkers\u002F11.behavior-rate",{"title":373,"path":374,"stem":375},"Proxy \u002F ISP \u002F Cookie","\u002Fdocs\u002Fbot-detection\u002Fcheckers\u002Fproxy-isp-cookies","docs\u002Fbot-detection\u002F04.checkers\u002F12.proxy-isp-cookies",{"title":377,"path":378,"stem":379},"Session Coherence","\u002Fdocs\u002Fbot-detection\u002Fcheckers\u002Fsession-coherence","docs\u002Fbot-detection\u002F04.checkers\u002F13.session-coherence",{"title":381,"path":382,"stem":383},"Velocity Fingerprint","\u002Fdocs\u002Fbot-detection\u002Fcheckers\u002Fvelocity-fingerprint","docs\u002Fbot-detection\u002F04.checkers\u002F14.velocity-fingerprint",{"title":385,"path":386,"stem":387},"UA & Header Analysis","\u002Fdocs\u002Fbot-detection\u002Fcheckers\u002Fua-header","docs\u002Fbot-detection\u002F04.checkers\u002F15.ua-header",{"title":389,"path":390,"stem":391},"Geolocation","\u002Fdocs\u002Fbot-detection\u002Fcheckers\u002Fgeolocation","docs\u002Fbot-detection\u002F04.checkers\u002F16.geolocation",{"title":393,"path":394,"stem":395},"Known Bad User-Agents","\u002Fdocs\u002Fbot-detection\u002Fcheckers\u002Fknown-bad-ua","docs\u002Fbot-detection\u002F04.checkers\u002F17.known-bad-ua",{"title":38,"path":397,"stem":398},"\u002Fdocs\u002Fbot-detection\u002Fsecurity","docs\u002Fbot-detection\u002F04.security",{"title":135,"path":400,"stem":401},"\u002Fdocs\u002Fbot-detection\u002Fapi","docs\u002Fbot-detection\u002F05.api",{"title":264,"path":403,"stem":404},"\u002Fdocs\u002Fbot-detection\u002Fconfiguration","docs\u002Fbot-detection\u002F06.configuration",{"title":406,"path":11,"stem":407,"children":408},"Introduction","docs\u002Fgetting-started\u002Findex",[409],{"title":406,"path":11,"stem":407},{"title":27,"path":29,"stem":411,"children":412},"docs\u002Fiam\u002Findex",[413,414,417,552,555,571,574],{"title":27,"path":29,"stem":411},{"title":14,"path":415,"stem":416},"\u002Fdocs\u002Fiam\u002Fgetting-started","docs\u002Fiam\u002F00.getting-started",{"title":155,"path":418,"stem":419,"children":420},"\u002Fdocs\u002Fiam\u002Fessentials","docs\u002Fiam\u002F01.essentials\u002Findex",[421,422,426,430,434,438,442,446,450,454,458,462,465,469,473,477,481,484,488,492,495,499,502],{"title":155,"path":418,"stem":419},{"title":423,"path":424,"stem":425},"Tokens","\u002Fdocs\u002Fiam\u002Fessentials\u002Ftokens","docs\u002Fiam\u002F01.essentials\u002F00.tokens",{"title":427,"path":428,"stem":429},"Access Tokens","\u002Fdocs\u002Fiam\u002Fessentials\u002Faccess-tokens","docs\u002Fiam\u002F01.essentials\u002F01.access-tokens",{"title":431,"path":432,"stem":433},"Refresh Tokens","\u002Fdocs\u002Fiam\u002Fessentials\u002Frefresh-tokens","docs\u002Fiam\u002F01.essentials\u002F02.refresh-tokens",{"title":435,"path":436,"stem":437},"Anomaly Detection","\u002Fdocs\u002Fiam\u002Fessentials\u002Fanomalies","docs\u002Fiam\u002F01.essentials\u002F03.anomalies",{"title":439,"path":440,"stem":441},"Signup","\u002Fdocs\u002Fiam\u002Fessentials\u002Fsignup","docs\u002Fiam\u002F01.essentials\u002F04.signup",{"title":443,"path":444,"stem":445},"Login","\u002Fdocs\u002Fiam\u002Fessentials\u002Flogin","docs\u002Fiam\u002F01.essentials\u002F05.login",{"title":447,"path":448,"stem":449},"Logout","\u002Fdocs\u002Fiam\u002Fessentials\u002Flogout","docs\u002Fiam\u002F01.essentials\u002F06.logout",{"title":451,"path":452,"stem":453},"OAuth","\u002Fdocs\u002Fiam\u002Fessentials\u002Foauth","docs\u002Fiam\u002F01.essentials\u002F07.oauth",{"title":455,"path":456,"stem":457},"Magic Links","\u002Fdocs\u002Fiam\u002Fessentials\u002Fmagic-links","docs\u002Fiam\u002F01.essentials\u002F08.magic-links",{"title":459,"path":460,"stem":461},"Emails","\u002Fdocs\u002Fiam\u002Fessentials\u002Femails","docs\u002Fiam\u002F01.essentials\u002F09.emails",{"title":192,"path":463,"stem":464},"\u002Fdocs\u002Fiam\u002Fessentials\u002Fmfa","docs\u002Fiam\u002F01.essentials\u002F10.mfa",{"title":466,"path":467,"stem":468},"Fingerprinting","\u002Fdocs\u002Fiam\u002Fessentials\u002Ffingerprinting","docs\u002Fiam\u002F01.essentials\u002F11.fingerprinting",{"title":470,"path":471,"stem":472},"Backend for Frontend","\u002Fdocs\u002Fiam\u002Fessentials\u002Fbff","docs\u002Fiam\u002F01.essentials\u002F12.bff",{"title":474,"path":475,"stem":476},"HMAC Authentication","\u002Fdocs\u002Fiam\u002Fessentials\u002Fhmac","docs\u002Fiam\u002F01.essentials\u002F13.hmac",{"title":478,"path":479,"stem":480},"XSS Protection","\u002Fdocs\u002Fiam\u002Fessentials\u002Fxss","docs\u002Fiam\u002F01.essentials\u002F14.xss",{"title":188,"path":482,"stem":483},"\u002Fdocs\u002Fiam\u002Fessentials\u002Flogging","docs\u002Fiam\u002F01.essentials\u002F15.logging",{"title":485,"path":486,"stem":487},"Rate Limiting","\u002Fdocs\u002Fiam\u002Fessentials\u002Frate-limiting","docs\u002Fiam\u002F01.essentials\u002F16.rate-limiting",{"title":489,"path":490,"stem":491},"Database","\u002Fdocs\u002Fiam\u002Fessentials\u002Fdatabase","docs\u002Fiam\u002F01.essentials\u002F17.database",{"title":184,"path":493,"stem":494},"\u002Fdocs\u002Fiam\u002Fessentials\u002Fcookies","docs\u002Fiam\u002F01.essentials\u002F18.cookies",{"title":496,"path":497,"stem":498},"Service Startup","\u002Fdocs\u002Fiam\u002Fessentials\u002Fservice","docs\u002Fiam\u002F01.essentials\u002F19.service",{"title":202,"path":500,"stem":501},"\u002Fdocs\u002Fiam\u002Fessentials\u002Fpassword-reset","docs\u002Fiam\u002F01.essentials\u002F20.password-reset",{"title":503,"path":504,"stem":505,"children":506},"API Tokens","\u002Fdocs\u002Fiam\u002Fessentials\u002Fapi","docs\u002Fiam\u002F01.essentials\u002F21.api\u002Findex",[507,508,512,516,546,549],{"title":503,"path":504,"stem":505},{"title":509,"path":510,"stem":511},"Creating Tokens","\u002Fdocs\u002Fiam\u002Fessentials\u002Fapi\u002Fcreation","docs\u002Fiam\u002F01.essentials\u002F21.api\u002F00.creation",{"title":513,"path":514,"stem":515},"Verifying Tokens","\u002Fdocs\u002Fiam\u002Fessentials\u002Fapi\u002Fverification","docs\u002Fiam\u002F01.essentials\u002F21.api\u002F01.verification",{"title":517,"path":518,"stem":519,"children":520},"Manage Tokens","\u002Fdocs\u002Fiam\u002Fessentials\u002Fapi\u002Fmanagement","docs\u002Fiam\u002F01.essentials\u002F21.api\u002F02.management\u002Findex",[521,522,526,530,534,538,542],{"title":517,"path":518,"stem":519},{"title":523,"path":524,"stem":525},"Privileges","\u002Fdocs\u002Fiam\u002Fessentials\u002Fapi\u002Fmanagement\u002Fprivilege","docs\u002Fiam\u002F01.essentials\u002F21.api\u002F02.management\u002F00.privilege",{"title":527,"path":528,"stem":529},"Revocation","\u002Fdocs\u002Fiam\u002Fessentials\u002Fapi\u002Fmanagement\u002Frevocation","docs\u002Fiam\u002F01.essentials\u002F21.api\u002F02.management\u002F01.revocation",{"title":531,"path":532,"stem":533},"Rotation","\u002Fdocs\u002Fiam\u002Fessentials\u002Fapi\u002Fmanagement\u002Frotation","docs\u002Fiam\u002F01.essentials\u002F21.api\u002F02.management\u002F02.rotation",{"title":535,"path":536,"stem":537},"IP Restriction","\u002Fdocs\u002Fiam\u002Fessentials\u002Fapi\u002Fmanagement\u002Fip-updates","docs\u002Fiam\u002F01.essentials\u002F21.api\u002F02.management\u002F03.ip-updates",{"title":539,"path":540,"stem":541},"Metadata","\u002Fdocs\u002Fiam\u002Fessentials\u002Fapi\u002Fmanagement\u002Fmetadata","docs\u002Fiam\u002F01.essentials\u002F21.api\u002F02.management\u002F04.metadata",{"title":543,"path":544,"stem":545},"Token Listing","\u002Fdocs\u002Fiam\u002Fessentials\u002Fapi\u002Fmanagement\u002Flist","docs\u002Fiam\u002F01.essentials\u002F21.api\u002F02.management\u002F05.list",{"title":485,"path":547,"stem":548},"\u002Fdocs\u002Fiam\u002Fessentials\u002Fapi\u002Frate-limiting","docs\u002Fiam\u002F01.essentials\u002F21.api\u002F03.rate-limiting",{"title":38,"path":550,"stem":551},"\u002Fdocs\u002Fiam\u002Fessentials\u002Fapi\u002Fsecurity","docs\u002Fiam\u002F01.essentials\u002F21.api\u002F04.security",{"title":38,"path":553,"stem":554},"\u002Fdocs\u002Fiam\u002Fsecurity","docs\u002Fiam\u002F02.security",{"title":243,"path":556,"stem":557,"children":558,"page":53},"\u002Fdocs\u002Fiam\u002Fguides","docs\u002Fiam\u002F03.guides",[559,563,567],{"title":560,"path":561,"stem":562},"Deployment","\u002Fdocs\u002Fiam\u002Fguides\u002Fdeployment","docs\u002Fiam\u002F03.guides\u002Fdeployment",{"title":564,"path":565,"stem":566},"Operation Scripts","\u002Fdocs\u002Fiam\u002Fguides\u002Foperation-scripts","docs\u002Fiam\u002F03.guides\u002Foperation-scripts",{"title":568,"path":569,"stem":570},"Role-Based Access Control","\u002Fdocs\u002Fiam\u002Fguides\u002Frbac","docs\u002Fiam\u002F03.guides\u002Frbac",{"title":264,"path":572,"stem":573},"\u002Fdocs\u002Fiam\u002Fconfiguration","docs\u002Fiam\u002F04.configuration",{"title":575,"path":576,"stem":577,"children":578,"page":53},"Api","\u002Fdocs\u002Fiam\u002Fapi","docs\u002Fiam\u002F05.API",[579,582,585],{"title":135,"path":580,"stem":581},"\u002Fdocs\u002Fiam\u002Fapi\u002Fapi","docs\u002Fiam\u002F05.API\u002F00.api",{"title":277,"path":583,"stem":584},"\u002Fdocs\u002Fiam\u002Fapi\u002Fmiddlewares","docs\u002Fiam\u002F05.API\u002F02.middlewares",{"title":273,"path":586,"stem":587},"\u002Fdocs\u002Fiam\u002Fapi\u002Froutes","docs\u002Fiam\u002F05.API\u002F03.routes",{"title":40,"path":42,"stem":70,"children":589},[590,591,592,593,605,606,607,608],{"title":40,"path":42,"stem":70},{"title":14,"path":74,"stem":75},{"title":77,"path":78,"stem":79},{"title":81,"path":82,"stem":83,"children":594},[595,596,597,598,599,600,601,602,603,604],{"title":81,"path":82,"stem":83},{"title":87,"path":88,"stem":89},{"title":91,"path":92,"stem":93},{"title":95,"path":96,"stem":97},{"title":99,"path":100,"stem":101},{"title":103,"path":104,"stem":105},{"title":107,"path":108,"stem":109},{"title":111,"path":112,"stem":113},{"title":115,"path":116,"stem":117},{"title":119,"path":120,"stem":121},{"title":123,"path":124,"stem":125},{"title":127,"path":128,"stem":129},{"title":131,"path":132,"stem":133},{"title":135,"path":136,"stem":137},{"title":285,"path":48,"stem":610,"children":611},"docs\u002Futils\u002Findex",[612,613,630,663,760],{"title":285,"path":48,"stem":610},{"title":614,"path":615,"stem":616,"children":617,"page":53},"Eslint","\u002Fdocs\u002Futils\u002Feslint","docs\u002Futils\u002Feslint",[618,622,626],{"title":619,"path":620,"stem":621},"React Config","\u002Fdocs\u002Futils\u002Feslint\u002Freact","docs\u002Futils\u002Feslint\u002Freact",{"title":623,"path":624,"stem":625},"TypeScript Config","\u002Fdocs\u002Futils\u002Feslint\u002Ftypescript","docs\u002Futils\u002Feslint\u002Ftypescript",{"title":627,"path":628,"stem":629},"Vue Config","\u002Fdocs\u002Futils\u002Feslint\u002Fvue","docs\u002Futils\u002Feslint\u002Fvue",{"title":631,"path":632,"stem":633,"children":634,"page":53},"Server","\u002Fdocs\u002Futils\u002Fserver","docs\u002Futils\u002Fserver",[635,639,643,647,651,655,659],{"title":636,"path":637,"stem":638},"Encryption","\u002Fdocs\u002Futils\u002Fserver\u002Fencryption","docs\u002Futils\u002Fserver\u002Fencryption",{"title":640,"path":641,"stem":642},"Path Resolver","\u002Fdocs\u002Futils\u002Fserver\u002Fpathresolver","docs\u002Futils\u002Fserver\u002FpathResolver",{"title":644,"path":645,"stem":646},"File Replacements","\u002Fdocs\u002Futils\u002Fserver\u002Freplace","docs\u002Futils\u002Fserver\u002Freplace",{"title":648,"path":649,"stem":650},"run","\u002Fdocs\u002Futils\u002Fserver\u002Frun","docs\u002Futils\u002Fserver\u002Frun",{"title":652,"path":653,"stem":654},"scheduleTask","\u002Fdocs\u002Futils\u002Fserver\u002Fscheduletask","docs\u002Futils\u002Fserver\u002FscheduleTask",{"title":656,"path":657,"stem":658},"spawnRun","\u002Fdocs\u002Futils\u002Fserver\u002Fspawnrun","docs\u002Futils\u002Fserver\u002FspawnRun",{"title":660,"path":661,"stem":662},"uploadCsv","\u002Fdocs\u002Futils\u002Fserver\u002Fuploadcsv","docs\u002Futils\u002Fserver\u002FuploadCsv",{"title":664,"path":665,"stem":666,"children":667,"page":53},"Shared","\u002Fdocs\u002Futils\u002Fshared","docs\u002Futils\u002Fshared",[668,672,676,680,684,688,692,696,700,704,708,712,716,720,724,728,732,736,740,744,748,752,756],{"title":669,"path":670,"stem":671},"BatchQueue","\u002Fdocs\u002Futils\u002Fshared\u002Fbatchqueue","docs\u002Futils\u002Fshared\u002FbatchQueue",{"title":673,"path":674,"stem":675},"capitalize","\u002Fdocs\u002Futils\u002Fshared\u002Fcapitalize","docs\u002Futils\u002Fshared\u002Fcapitalize",{"title":677,"path":678,"stem":679},"chunkProcess","\u002Fdocs\u002Futils\u002Fshared\u002Fchunkprocess","docs\u002Futils\u002Fshared\u002FchunkProcess",{"title":681,"path":682,"stem":683},"cleanObject","\u002Fdocs\u002Futils\u002Fshared\u002Fcleanobject","docs\u002Futils\u002Fshared\u002FcleanObject",{"title":685,"path":686,"stem":687},"createConfigManager","\u002Fdocs\u002Futils\u002Fshared\u002Fconfigurationdefiner","docs\u002Futils\u002Fshared\u002FconfigurationDefiner",{"title":689,"path":690,"stem":691},"debounce","\u002Fdocs\u002Futils\u002Fshared\u002Fdebounce","docs\u002Futils\u002Fshared\u002Fdebounce",{"title":693,"path":694,"stem":695},"ensureArray","\u002Fdocs\u002Futils\u002Fshared\u002Fensurearray","docs\u002Futils\u002Fshared\u002FensureArray",{"title":697,"path":698,"stem":699},"fetchWithRetry","\u002Fdocs\u002Futils\u002Fshared\u002Ffetchwithretry","docs\u002Futils\u002Fshared\u002FfetchWithRetry",{"title":701,"path":702,"stem":703},"filterEmptyValues","\u002Fdocs\u002Futils\u002Fshared\u002Ffilteremptyvalues","docs\u002Futils\u002Fshared\u002FfilterEmptyValues",{"title":705,"path":706,"stem":707},"findStringsInObject","\u002Fdocs\u002Futils\u002Fshared\u002Ffindobjectvalues","docs\u002Futils\u002Fshared\u002FfindObjectValues",{"title":709,"path":710,"stem":711},"fisherYatesShuffle","\u002Fdocs\u002Futils\u002Fshared\u002Ffisheryatesshuffle","docs\u002Futils\u002Fshared\u002FfisherYatesShuffle",{"title":713,"path":714,"stem":715},"getRandomImage","\u002Fdocs\u002Futils\u002Fshared\u002Fgetrandomimage","docs\u002Futils\u002Fshared\u002FgetRandomImage",{"title":717,"path":718,"stem":719},"isObjectHasValues","\u002Fdocs\u002Futils\u002Fshared\u002Fisobjecthasvalues","docs\u002Futils\u002Fshared\u002FisObjectHasValues",{"title":721,"path":722,"stem":723},"isAsyncOrPromise","\u002Fdocs\u002Futils\u002Fshared\u002Fispromise","docs\u002Futils\u002Fshared\u002FisPromise",{"title":725,"path":726,"stem":727},"MiniCache","\u002Fdocs\u002Futils\u002Fshared\u002Fminicache","docs\u002Futils\u002Fshared\u002FminiCache",{"title":729,"path":730,"stem":731},"parseCookies","\u002Fdocs\u002Futils\u002Fshared\u002Fparserawcookies","docs\u002Futils\u002Fshared\u002FparseRawCookies",{"title":733,"path":734,"stem":735},"safeAction","\u002Fdocs\u002Futils\u002Fshared\u002Fpromiselocker","docs\u002Futils\u002Fshared\u002FpromiseLocker",{"title":737,"path":738,"stem":739},"Random","\u002Fdocs\u002Futils\u002Fshared\u002Frandom","docs\u002Futils\u002Fshared\u002Frandom",{"title":741,"path":742,"stem":743},"range","\u002Fdocs\u002Futils\u002Fshared\u002Frange","docs\u002Futils\u002Fshared\u002Frange",{"title":745,"path":746,"stem":747},"rateLimiters","\u002Fdocs\u002Futils\u002Fshared\u002Fratelimiters","docs\u002Futils\u002Fshared\u002FrateLimiters",{"title":749,"path":750,"stem":751},"safeObjectMerge","\u002Fdocs\u002Futils\u002Fshared\u002Fsafemerge","docs\u002Futils\u002Fshared\u002FsafeMerge",{"title":753,"path":754,"stem":755},"textTruncation","\u002Fdocs\u002Futils\u002Fshared\u002Ftexttruncation","docs\u002Futils\u002Fshared\u002FtextTruncation",{"title":757,"path":758,"stem":759},"validateZodSchema","\u002Fdocs\u002Futils\u002Fshared\u002Fvalidatezodschema","docs\u002Futils\u002Fshared\u002FvalidateZodSchema",{"title":761,"path":762,"stem":763,"children":764},"Utility Types","\u002Fdocs\u002Futils\u002Ftypes","docs\u002Futils\u002Ftypes\u002Findex",[765,766,770,774,778,782,786,790,794,798],{"title":761,"path":762,"stem":763},{"title":767,"path":768,"stem":769},"Brand","\u002Fdocs\u002Futils\u002Ftypes\u002Fbrand","docs\u002Futils\u002Ftypes\u002FBrand",{"title":771,"path":772,"stem":773},"DeepPartial","\u002Fdocs\u002Futils\u002Ftypes\u002Fdeeppartial","docs\u002Futils\u002Ftypes\u002FDeepPartial",{"title":775,"path":776,"stem":777},"Merge","\u002Fdocs\u002Futils\u002Ftypes\u002Fmerge","docs\u002Futils\u002Ftypes\u002FMerge",{"title":779,"path":780,"stem":781},"NonNullable","\u002Fdocs\u002Futils\u002Ftypes\u002Fnonnullable","docs\u002Futils\u002Ftypes\u002FNonNullable",{"title":783,"path":784,"stem":785},"Prettify","\u002Fdocs\u002Futils\u002Ftypes\u002Fprettify","docs\u002Futils\u002Ftypes\u002FPrettify",{"title":787,"path":788,"stem":789},"PromiseType","\u002Fdocs\u002Futils\u002Ftypes\u002Fpromisetype","docs\u002Futils\u002Ftypes\u002FPromiseType",{"title":791,"path":792,"stem":793},"RequireKeys","\u002Fdocs\u002Futils\u002Ftypes\u002Frequirekeys","docs\u002Futils\u002Ftypes\u002FRequireKeys",{"title":795,"path":796,"stem":797},"StandardResponse","\u002Fdocs\u002Futils\u002Ftypes\u002Fstandardresponse","docs\u002Futils\u002Ftypes\u002FStandardResponse",{"title":799,"path":800,"stem":801},"ValueOf","\u002Fdocs\u002Futils\u002Ftypes\u002Fvalueof","docs\u002Futils\u002Ftypes\u002FValueOf",{"id":4,"extension":5,"links":803,"meta":814,"stem":62,"__hash__":63},[804,812,813],{"nested":8,"label":9,"icon":10,"to":11,"children":805},[806,807,808,809,810,811],{"label":14,"icon":15,"to":11,"description":16,"github":17,"badge":18},{"label":20,"icon":21,"to":22,"description":23,"github":24,"badge":25},{"label":27,"icon":28,"to":29,"description":30,"github":31,"badge":25},{"label":33,"icon":34,"to":35,"description":36,"github":37,"badge":38},{"label":40,"icon":41,"to":42,"description":43,"github":44,"badge":38},{"label":46,"icon":47,"to":48,"description":49,"github":50,"badge":51},{"nested":53,"label":54,"icon":55,"to":56},{"nested":53,"label":58,"icon":59,"to":60},{},{"id":816,"title":87,"body":817,"description":1388,"extension":1389,"icon":1390,"meta":1391,"module":1392,"navigation":8,"path":88,"rawbody":1393,"seo":1394,"stem":89,"__hash__":1395},"docs\u002Fdocs\u002Fshield-base\u002F02.data-sources\u002Fbgp.md",{"type":818,"value":819,"toc":1382},"minimark",[820,832,843,846,850,870,888,890,894,1095,1097,1101,1207,1209,1213,1239,1378],[821,822,823,824,831],"p",{},"The BGP source fetches ASN definitions and routing table data from ",[825,826,830],"a",{"href":827,"rel":828},"https:\u002F\u002Fbgp.tools",[829],"nofollow","BGP.tools"," and compiles them into a single MMDB database. Each record maps a CIDR prefix to its Autonomous System, including the AS name, classification, and route visibility (hit count). Routes with fewer than 10 hits are filtered out.",[821,833,834,838,839],{},[835,836,837],"strong",{},"Output file:"," ",[840,841,842],"code",{},"asn.mmdb",[844,845],"hr",{},[847,848,81],"h2",{"id":849},"data-sources",[851,852,853,862],"ul",{},[854,855,856,857],"li",{},"ASN definitions CSV: ",[825,858,861],{"href":859,"rel":860},"https:\u002F\u002Fbgp.tools\u002Fasns.csv",[829],"bgp.tools\u002Fasns.csv",[854,863,864,865],{},"BGP routing table JSONL: ",[825,866,869],{"href":867,"rel":868},"https:\u002F\u002Fbgp.tools\u002Ftable.jsonl",[829],"bgp.tools\u002Ftable.jsonl",[871,872,873],"warning",{},[821,874,875,879,880,883,884,887],{},[825,876,830],{"href":877,"rel":878},"https:\u002F\u002Fbgp.tools\u002Fkb\u002Fapi",[829]," requires a valid contact User-Agent in the format ",[840,881,882],{},"\u003Cname> [url] - \u003Cemail>",". You must provide this via the interactive wizard or the ",[840,885,886],{},"--contact"," flag to avoid API blocking.",[844,889],{},[847,891,893],{"id":892},"usage","Usage",[895,896,897,939,963,986,1009],"code-group",{},[898,899,905],"pre",{"className":900,"code":901,"filename":902,"language":903,"meta":904,"style":904},"language-bash shiki shiki-themes light-plus light-plus dracula","pnpm dlx @riavzon\u002Fshield-base --bgp --contact \"Your Name https:\u002F\u002Fexample.com - you@example.com\"\n","pnpm","bash","",[840,906,907],{"__ignoreMap":904},[908,909,912,915,919,922,926,929,933,936],"span",{"class":910,"line":911},"line",1,[908,913,902],{"class":914},"sHOzp",[908,916,918],{"class":917},"sFB1V"," dlx",[908,920,921],{"class":917}," @riavzon\u002Fshield-base",[908,923,925],{"class":924},"sjR7W"," --bgp",[908,927,928],{"class":924}," --contact",[908,930,932],{"class":931},"sFkSl"," \"",[908,934,935],{"class":917},"Your Name https:\u002F\u002Fexample.com - you@example.com",[908,937,938],{"class":931},"\"\n",[898,940,943],{"className":900,"code":941,"filename":942,"language":903,"meta":904,"style":904},"yarn dlx @riavzon\u002Fshield-base --bgp --contact \"Your Name https:\u002F\u002Fexample.com - you@example.com\"\n","yarn",[840,944,945],{"__ignoreMap":904},[908,946,947,949,951,953,955,957,959,961],{"class":910,"line":911},[908,948,942],{"class":914},[908,950,918],{"class":917},[908,952,921],{"class":917},[908,954,925],{"class":924},[908,956,928],{"class":924},[908,958,932],{"class":931},[908,960,935],{"class":917},[908,962,938],{"class":931},[898,964,967],{"className":900,"code":965,"filename":966,"language":903,"meta":904,"style":904},"npx @riavzon\u002Fshield-base --bgp --contact \"Your Name https:\u002F\u002Fexample.com - you@example.com\"\n","npm",[840,968,969],{"__ignoreMap":904},[908,970,971,974,976,978,980,982,984],{"class":910,"line":911},[908,972,973],{"class":914},"npx",[908,975,921],{"class":917},[908,977,925],{"class":924},[908,979,928],{"class":924},[908,981,932],{"class":931},[908,983,935],{"class":917},[908,985,938],{"class":931},[898,987,990],{"className":900,"code":988,"filename":989,"language":903,"meta":904,"style":904},"bunx @riavzon\u002Fshield-base --bgp --contact \"Your Name https:\u002F\u002Fexample.com - you@example.com\"\n","bun",[840,991,992],{"__ignoreMap":904},[908,993,994,997,999,1001,1003,1005,1007],{"class":910,"line":911},[908,995,996],{"class":914},"bunx",[908,998,921],{"class":917},[908,1000,925],{"class":924},[908,1002,928],{"class":924},[908,1004,932],{"class":931},[908,1006,935],{"class":917},[908,1008,938],{"class":931},[898,1010,1015],{"className":1011,"code":1012,"filename":1013,"language":1014,"meta":904,"style":904},"language-ts shiki shiki-themes light-plus light-plus dracula","import { getBGPAndASN } from '@riavzon\u002Fshield-base';\n\nawait getBGPAndASN('Your Name https:\u002F\u002Fexample.com - you@example.com', '.\u002Fout', 'mmdbctl');\n","Programmatic","ts",[840,1016,1017,1049,1055],{"__ignoreMap":904},[908,1018,1019,1023,1027,1031,1034,1037,1040,1043,1046],{"class":910,"line":911},[908,1020,1022],{"class":1021},"sZ328","import",[908,1024,1026],{"class":1025},"sDd4n"," { ",[908,1028,1030],{"class":1029},"sjsA6","getBGPAndASN",[908,1032,1033],{"class":1025}," } ",[908,1035,1036],{"class":1021},"from",[908,1038,1039],{"class":931}," '",[908,1041,1042],{"class":917},"@riavzon\u002Fshield-base",[908,1044,1045],{"class":931},"'",[908,1047,1048],{"class":1025},";\n",[908,1050,1052],{"class":910,"line":1051},2,[908,1053,1054],{"emptyLinePlaceholder":8},"\n",[908,1056,1058,1061,1064,1067,1069,1071,1073,1076,1078,1081,1083,1085,1087,1090,1092],{"class":910,"line":1057},3,[908,1059,1060],{"class":1021},"await",[908,1062,1063],{"class":914}," getBGPAndASN",[908,1065,1066],{"class":1025},"(",[908,1068,1045],{"class":931},[908,1070,935],{"class":917},[908,1072,1045],{"class":931},[908,1074,1075],{"class":1025},", ",[908,1077,1045],{"class":931},[908,1079,1080],{"class":917},".\u002Fout",[908,1082,1045],{"class":931},[908,1084,1075],{"class":1025},[908,1086,1045],{"class":931},[908,1088,1089],{"class":917},"mmdbctl",[908,1091,1045],{"class":931},[908,1093,1094],{"class":1025},");\n",[844,1096],{},[847,1098,1100],{"id":1099},"record-structure","Record Structure",[898,1102,1104],{"className":1011,"code":1103,"language":1014,"meta":904,"style":904},"interface BgpRecord {\n  range: string;          \u002F\u002F CIDR prefix, e.g. \"8.8.8.0\u002F24\"\n  asn_id: string;         \u002F\u002F AS number, e.g. \"15169\"\n  asn_name: string;       \u002F\u002F AS name, e.g. \"Google LLC\"\n  classification: string; \u002F\u002F \"Content\" | \"Eyeballs\" | \"Unknown\"\n  hits: string;           \u002F\u002F Route visibility count\n}\n",[840,1105,1106,1119,1138,1153,1169,1185,1201],{"__ignoreMap":904},[908,1107,1108,1112,1116],{"class":910,"line":911},[908,1109,1111],{"class":1110},"sl46w","interface",[908,1113,1115],{"class":1114},"sFs1U"," BgpRecord",[908,1117,1118],{"class":1025}," {\n",[908,1120,1121,1124,1128,1131,1134],{"class":910,"line":1051},[908,1122,1123],{"class":1029},"  range",[908,1125,1127],{"class":1126},"saOXh",":",[908,1129,1130],{"class":1114}," string",[908,1132,1133],{"class":1025},";          ",[908,1135,1137],{"class":1136},"sghk6","\u002F\u002F CIDR prefix, e.g. \"8.8.8.0\u002F24\"\n",[908,1139,1140,1143,1145,1147,1150],{"class":910,"line":1057},[908,1141,1142],{"class":1029},"  asn_id",[908,1144,1127],{"class":1126},[908,1146,1130],{"class":1114},[908,1148,1149],{"class":1025},";         ",[908,1151,1152],{"class":1136},"\u002F\u002F AS number, e.g. \"15169\"\n",[908,1154,1156,1159,1161,1163,1166],{"class":910,"line":1155},4,[908,1157,1158],{"class":1029},"  asn_name",[908,1160,1127],{"class":1126},[908,1162,1130],{"class":1114},[908,1164,1165],{"class":1025},";       ",[908,1167,1168],{"class":1136},"\u002F\u002F AS name, e.g. \"Google LLC\"\n",[908,1170,1172,1175,1177,1179,1182],{"class":910,"line":1171},5,[908,1173,1174],{"class":1029},"  classification",[908,1176,1127],{"class":1126},[908,1178,1130],{"class":1114},[908,1180,1181],{"class":1025},"; ",[908,1183,1184],{"class":1136},"\u002F\u002F \"Content\" | \"Eyeballs\" | \"Unknown\"\n",[908,1186,1188,1191,1193,1195,1198],{"class":910,"line":1187},6,[908,1189,1190],{"class":1029},"  hits",[908,1192,1127],{"class":1126},[908,1194,1130],{"class":1114},[908,1196,1197],{"class":1025},";           ",[908,1199,1200],{"class":1136},"\u002F\u002F Route visibility count\n",[908,1202,1204],{"class":910,"line":1203},7,[908,1205,1206],{"class":1025},"}\n",[844,1208],{},[847,1210,1212],{"id":1211},"example-lookup","Example Lookup",[898,1214,1217],{"className":900,"code":1215,"filename":1216,"language":903,"meta":904,"style":904},"mmdbctl read -f json-pretty 8.8.8.8 outputDirectory\u002Fasn.mmdb\n","Terminal",[840,1218,1219],{"__ignoreMap":904},[908,1220,1221,1223,1226,1229,1232,1236],{"class":910,"line":911},[908,1222,1089],{"class":914},[908,1224,1225],{"class":917}," read",[908,1227,1228],{"class":924}," -f",[908,1230,1231],{"class":917}," json-pretty",[908,1233,1235],{"class":1234},"spgvN"," 8.8.8.8",[908,1237,1238],{"class":917}," outputDirectory\u002Fasn.mmdb\n",[898,1240,1243],{"className":1241,"code":1242,"language":5,"meta":904,"style":904},"language-json shiki shiki-themes light-plus light-plus dracula","{\n  \"asn_id\": \"15169\",\n  \"asn_name\": \"Google LLC\",\n  \"classification\": \"Content\",\n  \"hits\": \"2679\",\n  \"ip\": \"8.8.8.8\",\n  \"network\": \"8.8.8.0\u002F24\"\n}\n",[840,1244,1245,1250,1275,1295,1315,1335,1355,1373],{"__ignoreMap":904},[908,1246,1247],{"class":910,"line":911},[908,1248,1249],{"class":1025},"{\n",[908,1251,1252,1256,1260,1263,1265,1267,1270,1272],{"class":910,"line":1051},[908,1253,1255],{"class":1254},"saJyd","  \"",[908,1257,1259],{"class":1258},"s_W10","asn_id",[908,1261,1262],{"class":1254},"\"",[908,1264,1127],{"class":1126},[908,1266,932],{"class":931},[908,1268,1269],{"class":917},"15169",[908,1271,1262],{"class":931},[908,1273,1274],{"class":1025},",\n",[908,1276,1277,1279,1282,1284,1286,1288,1291,1293],{"class":910,"line":1057},[908,1278,1255],{"class":1254},[908,1280,1281],{"class":1258},"asn_name",[908,1283,1262],{"class":1254},[908,1285,1127],{"class":1126},[908,1287,932],{"class":931},[908,1289,1290],{"class":917},"Google LLC",[908,1292,1262],{"class":931},[908,1294,1274],{"class":1025},[908,1296,1297,1299,1302,1304,1306,1308,1311,1313],{"class":910,"line":1155},[908,1298,1255],{"class":1254},[908,1300,1301],{"class":1258},"classification",[908,1303,1262],{"class":1254},[908,1305,1127],{"class":1126},[908,1307,932],{"class":931},[908,1309,1310],{"class":917},"Content",[908,1312,1262],{"class":931},[908,1314,1274],{"class":1025},[908,1316,1317,1319,1322,1324,1326,1328,1331,1333],{"class":910,"line":1171},[908,1318,1255],{"class":1254},[908,1320,1321],{"class":1258},"hits",[908,1323,1262],{"class":1254},[908,1325,1127],{"class":1126},[908,1327,932],{"class":931},[908,1329,1330],{"class":917},"2679",[908,1332,1262],{"class":931},[908,1334,1274],{"class":1025},[908,1336,1337,1339,1342,1344,1346,1348,1351,1353],{"class":910,"line":1187},[908,1338,1255],{"class":1254},[908,1340,1341],{"class":1258},"ip",[908,1343,1262],{"class":1254},[908,1345,1127],{"class":1126},[908,1347,932],{"class":931},[908,1349,1350],{"class":917},"8.8.8.8",[908,1352,1262],{"class":931},[908,1354,1274],{"class":1025},[908,1356,1357,1359,1362,1364,1366,1368,1371],{"class":910,"line":1203},[908,1358,1255],{"class":1254},[908,1360,1361],{"class":1258},"network",[908,1363,1262],{"class":1254},[908,1365,1127],{"class":1126},[908,1367,932],{"class":931},[908,1369,1370],{"class":917},"8.8.8.0\u002F24",[908,1372,938],{"class":931},[908,1374,1376],{"class":910,"line":1375},8,[908,1377,1206],{"class":1025},[1379,1380,1381],"style",{},"html pre.shiki code .sHOzp, html code.shiki .sHOzp{--shiki-light:#795E26;--shiki-default:#795E26;--shiki-dark:#50FA7B}html pre.shiki code .sFB1V, html code.shiki .sFB1V{--shiki-light:#A31515;--shiki-default:#A31515;--shiki-dark:#F1FA8C}html pre.shiki code .sjR7W, html code.shiki .sjR7W{--shiki-light:#0000FF;--shiki-default:#0000FF;--shiki-dark:#BD93F9}html pre.shiki code .sFkSl, html code.shiki .sFkSl{--shiki-light:#A31515;--shiki-default:#A31515;--shiki-dark:#E9F284}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}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);}html pre.shiki code .sZ328, html code.shiki .sZ328{--shiki-light:#AF00DB;--shiki-default:#AF00DB;--shiki-dark:#FF79C6}html pre.shiki code .sDd4n, html code.shiki .sDd4n{--shiki-light:#000000;--shiki-default:#000000;--shiki-dark:#F8F8F2}html pre.shiki code .sjsA6, html code.shiki .sjsA6{--shiki-light:#001080;--shiki-default:#001080;--shiki-dark:#F8F8F2}html pre.shiki code .sl46w, html code.shiki .sl46w{--shiki-light:#0000FF;--shiki-default:#0000FF;--shiki-dark:#FF79C6}html pre.shiki code .sFs1U, html code.shiki .sFs1U{--shiki-light:#267F99;--shiki-light-font-style:inherit;--shiki-default:#267F99;--shiki-default-font-style:inherit;--shiki-dark:#8BE9FD;--shiki-dark-font-style:italic}html pre.shiki code .saOXh, html code.shiki .saOXh{--shiki-light:#000000;--shiki-default:#000000;--shiki-dark:#FF79C6}html pre.shiki code .sghk6, html code.shiki .sghk6{--shiki-light:#008000;--shiki-default:#008000;--shiki-dark:#6272A4}html pre.shiki code .spgvN, html code.shiki .spgvN{--shiki-light:#098658;--shiki-default:#098658;--shiki-dark:#BD93F9}html pre.shiki code .saJyd, html code.shiki .saJyd{--shiki-light:#0451A5;--shiki-default:#0451A5;--shiki-dark:#8BE9FE}html pre.shiki code .s_W10, html code.shiki .s_W10{--shiki-light:#0451A5;--shiki-default:#0451A5;--shiki-dark:#8BE9FD}",{"title":904,"searchDepth":1051,"depth":1051,"links":1383},[1384,1385,1386,1387],{"id":849,"depth":1051,"text":81},{"id":892,"depth":1051,"text":893},{"id":1099,"depth":1051,"text":1100},{"id":1211,"depth":1051,"text":1212},"Autonomous System Numbers and prefix routing data from BGP.tools, compiled into asn.mmdb with classification and hit count metadata.","md","i-lucide-network",{},null,"---\ntitle: BGP \u002F ASN\ndescription: Autonomous System Numbers and prefix routing data from BGP.tools, compiled into asn.mmdb with classification and hit count metadata.\nicon: i-lucide-network\n---\n\nThe BGP source fetches ASN definitions and routing table data from [BGP.tools](https:\u002F\u002Fbgp.tools) and compiles them into a single MMDB database. Each record maps a CIDR prefix to its Autonomous System, including the AS name, classification, and route visibility (hit count). Routes with fewer than 10 hits are filtered out.\n\n**Output file:** `asn.mmdb`\n\n---\n\n## Data Sources\n\n- ASN definitions CSV: [bgp.tools\u002Fasns.csv](https:\u002F\u002Fbgp.tools\u002Fasns.csv)\n- BGP routing table JSONL: [bgp.tools\u002Ftable.jsonl](https:\u002F\u002Fbgp.tools\u002Ftable.jsonl)\n\n::warning\n[BGP.tools](https:\u002F\u002Fbgp.tools\u002Fkb\u002Fapi) requires a valid contact User-Agent in the format `\u003Cname> [url] - \u003Cemail>`. You must provide this via the interactive wizard or the `--contact` flag to avoid API blocking.\n::\n\n---\n\n## Usage\n\n::code-group\n```bash [pnpm]\npnpm dlx @riavzon\u002Fshield-base --bgp --contact \"Your Name https:\u002F\u002Fexample.com - you@example.com\"\n```\n\n```bash [yarn]\nyarn dlx @riavzon\u002Fshield-base --bgp --contact \"Your Name https:\u002F\u002Fexample.com - you@example.com\"\n```\n\n```bash [npm]\nnpx @riavzon\u002Fshield-base --bgp --contact \"Your Name https:\u002F\u002Fexample.com - you@example.com\"\n```\n\n```bash [bun]\nbunx @riavzon\u002Fshield-base --bgp --contact \"Your Name https:\u002F\u002Fexample.com - you@example.com\"\n```\n```ts [Programmatic]\nimport { getBGPAndASN } from '@riavzon\u002Fshield-base';\n\nawait getBGPAndASN('Your Name https:\u002F\u002Fexample.com - you@example.com', '.\u002Fout', 'mmdbctl');\n```\n::\n\n---\n\n## Record Structure\n\n```ts\ninterface BgpRecord {\n  range: string;          \u002F\u002F CIDR prefix, e.g. \"8.8.8.0\u002F24\"\n  asn_id: string;         \u002F\u002F AS number, e.g. \"15169\"\n  asn_name: string;       \u002F\u002F AS name, e.g. \"Google LLC\"\n  classification: string; \u002F\u002F \"Content\" | \"Eyeballs\" | \"Unknown\"\n  hits: string;           \u002F\u002F Route visibility count\n}\n```\n\n---\n\n## Example Lookup\n\n```bash [Terminal]\nmmdbctl read -f json-pretty 8.8.8.8 outputDirectory\u002Fasn.mmdb\n```\n\n```json\n{\n  \"asn_id\": \"15169\",\n  \"asn_name\": \"Google LLC\",\n  \"classification\": \"Content\",\n  \"hits\": \"2679\",\n  \"ip\": \"8.8.8.8\",\n  \"network\": \"8.8.8.0\u002F24\"\n}\n```\n",{"title":87,"description":1388},"UhcuyUmmFfh5TDXRCendnspOm0aI41-6u8mEOKB6Vw4",[1397,1398],{"title":81,"path":82,"stem":83,"children":-1},{"title":91,"path":92,"stem":93,"children":-1},{"id":816,"title":87,"body":1400,"description":1388,"extension":1389,"icon":1390,"meta":1818,"module":1392,"navigation":8,"path":88,"rawbody":1393,"seo":1819,"stem":89,"__hash__":1395},{"type":818,"value":1401,"toc":1812},[1402,1407,1413,1415,1417,1429,1440,1442,1444,1590,1592,1594,1670,1672,1674,1692,1810],[821,1403,823,1404,831],{},[825,1405,830],{"href":827,"rel":1406},[829],[821,1408,1409,838,1411],{},[835,1410,837],{},[840,1412,842],{},[844,1414],{},[847,1416,81],{"id":849},[851,1418,1419,1424],{},[854,1420,856,1421],{},[825,1422,861],{"href":859,"rel":1423},[829],[854,1425,864,1426],{},[825,1427,869],{"href":867,"rel":1428},[829],[871,1430,1431],{},[821,1432,1433,879,1436,883,1438,887],{},[825,1434,830],{"href":877,"rel":1435},[829],[840,1437,882],{},[840,1439,886],{},[844,1441],{},[847,1443,893],{"id":892},[895,1445,1446,1468,1490,1510,1530],{},[898,1447,1448],{"className":900,"code":901,"filename":902,"language":903,"meta":904,"style":904},[840,1449,1450],{"__ignoreMap":904},[908,1451,1452,1454,1456,1458,1460,1462,1464,1466],{"class":910,"line":911},[908,1453,902],{"class":914},[908,1455,918],{"class":917},[908,1457,921],{"class":917},[908,1459,925],{"class":924},[908,1461,928],{"class":924},[908,1463,932],{"class":931},[908,1465,935],{"class":917},[908,1467,938],{"class":931},[898,1469,1470],{"className":900,"code":941,"filename":942,"language":903,"meta":904,"style":904},[840,1471,1472],{"__ignoreMap":904},[908,1473,1474,1476,1478,1480,1482,1484,1486,1488],{"class":910,"line":911},[908,1475,942],{"class":914},[908,1477,918],{"class":917},[908,1479,921],{"class":917},[908,1481,925],{"class":924},[908,1483,928],{"class":924},[908,1485,932],{"class":931},[908,1487,935],{"class":917},[908,1489,938],{"class":931},[898,1491,1492],{"className":900,"code":965,"filename":966,"language":903,"meta":904,"style":904},[840,1493,1494],{"__ignoreMap":904},[908,1495,1496,1498,1500,1502,1504,1506,1508],{"class":910,"line":911},[908,1497,973],{"class":914},[908,1499,921],{"class":917},[908,1501,925],{"class":924},[908,1503,928],{"class":924},[908,1505,932],{"class":931},[908,1507,935],{"class":917},[908,1509,938],{"class":931},[898,1511,1512],{"className":900,"code":988,"filename":989,"language":903,"meta":904,"style":904},[840,1513,1514],{"__ignoreMap":904},[908,1515,1516,1518,1520,1522,1524,1526,1528],{"class":910,"line":911},[908,1517,996],{"class":914},[908,1519,921],{"class":917},[908,1521,925],{"class":924},[908,1523,928],{"class":924},[908,1525,932],{"class":931},[908,1527,935],{"class":917},[908,1529,938],{"class":931},[898,1531,1532],{"className":1011,"code":1012,"filename":1013,"language":1014,"meta":904,"style":904},[840,1533,1534,1554,1558],{"__ignoreMap":904},[908,1535,1536,1538,1540,1542,1544,1546,1548,1550,1552],{"class":910,"line":911},[908,1537,1022],{"class":1021},[908,1539,1026],{"class":1025},[908,1541,1030],{"class":1029},[908,1543,1033],{"class":1025},[908,1545,1036],{"class":1021},[908,1547,1039],{"class":931},[908,1549,1042],{"class":917},[908,1551,1045],{"class":931},[908,1553,1048],{"class":1025},[908,1555,1556],{"class":910,"line":1051},[908,1557,1054],{"emptyLinePlaceholder":8},[908,1559,1560,1562,1564,1566,1568,1570,1572,1574,1576,1578,1580,1582,1584,1586,1588],{"class":910,"line":1057},[908,1561,1060],{"class":1021},[908,1563,1063],{"class":914},[908,1565,1066],{"class":1025},[908,1567,1045],{"class":931},[908,1569,935],{"class":917},[908,1571,1045],{"class":931},[908,1573,1075],{"class":1025},[908,1575,1045],{"class":931},[908,1577,1080],{"class":917},[908,1579,1045],{"class":931},[908,1581,1075],{"class":1025},[908,1583,1045],{"class":931},[908,1585,1089],{"class":917},[908,1587,1045],{"class":931},[908,1589,1094],{"class":1025},[844,1591],{},[847,1593,1100],{"id":1099},[898,1595,1596],{"className":1011,"code":1103,"language":1014,"meta":904,"style":904},[840,1597,1598,1606,1618,1630,1642,1654,1666],{"__ignoreMap":904},[908,1599,1600,1602,1604],{"class":910,"line":911},[908,1601,1111],{"class":1110},[908,1603,1115],{"class":1114},[908,1605,1118],{"class":1025},[908,1607,1608,1610,1612,1614,1616],{"class":910,"line":1051},[908,1609,1123],{"class":1029},[908,1611,1127],{"class":1126},[908,1613,1130],{"class":1114},[908,1615,1133],{"class":1025},[908,1617,1137],{"class":1136},[908,1619,1620,1622,1624,1626,1628],{"class":910,"line":1057},[908,1621,1142],{"class":1029},[908,1623,1127],{"class":1126},[908,1625,1130],{"class":1114},[908,1627,1149],{"class":1025},[908,1629,1152],{"class":1136},[908,1631,1632,1634,1636,1638,1640],{"class":910,"line":1155},[908,1633,1158],{"class":1029},[908,1635,1127],{"class":1126},[908,1637,1130],{"class":1114},[908,1639,1165],{"class":1025},[908,1641,1168],{"class":1136},[908,1643,1644,1646,1648,1650,1652],{"class":910,"line":1171},[908,1645,1174],{"class":1029},[908,1647,1127],{"class":1126},[908,1649,1130],{"class":1114},[908,1651,1181],{"class":1025},[908,1653,1184],{"class":1136},[908,1655,1656,1658,1660,1662,1664],{"class":910,"line":1187},[908,1657,1190],{"class":1029},[908,1659,1127],{"class":1126},[908,1661,1130],{"class":1114},[908,1663,1197],{"class":1025},[908,1665,1200],{"class":1136},[908,1667,1668],{"class":910,"line":1203},[908,1669,1206],{"class":1025},[844,1671],{},[847,1673,1212],{"id":1211},[898,1675,1676],{"className":900,"code":1215,"filename":1216,"language":903,"meta":904,"style":904},[840,1677,1678],{"__ignoreMap":904},[908,1679,1680,1682,1684,1686,1688,1690],{"class":910,"line":911},[908,1681,1089],{"class":914},[908,1683,1225],{"class":917},[908,1685,1228],{"class":924},[908,1687,1231],{"class":917},[908,1689,1235],{"class":1234},[908,1691,1238],{"class":917},[898,1693,1694],{"className":1241,"code":1242,"language":5,"meta":904,"style":904},[840,1695,1696,1700,1718,1736,1754,1772,1790,1806],{"__ignoreMap":904},[908,1697,1698],{"class":910,"line":911},[908,1699,1249],{"class":1025},[908,1701,1702,1704,1706,1708,1710,1712,1714,1716],{"class":910,"line":1051},[908,1703,1255],{"class":1254},[908,1705,1259],{"class":1258},[908,1707,1262],{"class":1254},[908,1709,1127],{"class":1126},[908,1711,932],{"class":931},[908,1713,1269],{"class":917},[908,1715,1262],{"class":931},[908,1717,1274],{"class":1025},[908,1719,1720,1722,1724,1726,1728,1730,1732,1734],{"class":910,"line":1057},[908,1721,1255],{"class":1254},[908,1723,1281],{"class":1258},[908,1725,1262],{"class":1254},[908,1727,1127],{"class":1126},[908,1729,932],{"class":931},[908,1731,1290],{"class":917},[908,1733,1262],{"class":931},[908,1735,1274],{"class":1025},[908,1737,1738,1740,1742,1744,1746,1748,1750,1752],{"class":910,"line":1155},[908,1739,1255],{"class":1254},[908,1741,1301],{"class":1258},[908,1743,1262],{"class":1254},[908,1745,1127],{"class":1126},[908,1747,932],{"class":931},[908,1749,1310],{"class":917},[908,1751,1262],{"class":931},[908,1753,1274],{"class":1025},[908,1755,1756,1758,1760,1762,1764,1766,1768,1770],{"class":910,"line":1171},[908,1757,1255],{"class":1254},[908,1759,1321],{"class":1258},[908,1761,1262],{"class":1254},[908,1763,1127],{"class":1126},[908,1765,932],{"class":931},[908,1767,1330],{"class":917},[908,1769,1262],{"class":931},[908,1771,1274],{"class":1025},[908,1773,1774,1776,1778,1780,1782,1784,1786,1788],{"class":910,"line":1187},[908,1775,1255],{"class":1254},[908,1777,1341],{"class":1258},[908,1779,1262],{"class":1254},[908,1781,1127],{"class":1126},[908,1783,932],{"class":931},[908,1785,1350],{"class":917},[908,1787,1262],{"class":931},[908,1789,1274],{"class":1025},[908,1791,1792,1794,1796,1798,1800,1802,1804],{"class":910,"line":1203},[908,1793,1255],{"class":1254},[908,1795,1361],{"class":1258},[908,1797,1262],{"class":1254},[908,1799,1127],{"class":1126},[908,1801,932],{"class":931},[908,1803,1370],{"class":917},[908,1805,938],{"class":931},[908,1807,1808],{"class":910,"line":1375},[908,1809,1206],{"class":1025},[1379,1811,1381],{},{"title":904,"searchDepth":1051,"depth":1051,"links":1813},[1814,1815,1816,1817],{"id":849,"depth":1051,"text":81},{"id":892,"depth":1051,"text":893},{"id":1099,"depth":1051,"text":1100},{"id":1211,"depth":1051,"text":1212},{},{"title":87,"description":1388},1780436288347]