[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"all-docs-sidebar":3,"docs-\u002Fdocs\u002Fdrift-scanner\u002Falerts":3269,"docs-siblings-\u002Fdocs\u002Fdrift-scanner\u002Falerts":3622},[4,281,367,693,1062,1549],{"id":5,"title":6,"body":7,"description":270,"extension":271,"meta":272,"navigation":273,"order":274,"path":275,"section":276,"seo":277,"stem":278,"updatedAt":279,"__hash__":280},"docs\u002Fdocs\u002Fdrift-scanner\u002Fquickstart.md","Quickstart",{"type":8,"value":9,"toc":261},"minimark",[10,14,19,30,34,37,90,93,97,105,116,138,155,158,162,165,168,187,191,198,218,225,229,236,239],[11,12,13],"p",{},"This guide takes you from zero to a monitored PostgreSQL environment in about five minutes.",[15,16,18],"h2",{"id":17},"_1-create-an-account","1. Create an account",[11,20,21,22,29],{},"Sign up at ",[23,24,28],"a",{"href":25,"rel":26},"https:\u002F\u002Farcnull.com\u002Fregister",[27],"nofollow","arcnull.com\u002Fregister",". You only need an email address and a password. Once you are in, head to your dashboard.",[15,31,33],{"id":32},"_2-subscribe-to-drift-scanner","2. Subscribe to Drift Scanner",[11,35,36],{},"Drift Scanner has two tiers:",[38,39,40,59],"table",{},[41,42,43],"thead",{},[44,45,46,50,53,56],"tr",{},[47,48,49],"th",{},"Tier",[47,51,52],{},"Environments",[47,54,55],{},"Scan cadence",[47,57,58],{},"Manual scan rate limit",[60,61,62,77],"tbody",{},[44,63,64,68,71,74],{},[65,66,67],"td",{},"Free",[65,69,70],{},"2",[65,72,73],{},"Hourly cron (configurable)",[65,75,76],{},"3 per minute",[44,78,79,82,85,87],{},[65,80,81],{},"Pro",[65,83,84],{},"10",[65,86,73],{},[65,88,89],{},"10 per minute",[11,91,92],{},"Free is enough to try the product against a single staging database. You can upgrade from the dashboard at any time.",[15,94,96],{"id":95},"_3-add-your-first-environment","3. Add your first environment",[11,98,99,100,104],{},"An environment is a single PostgreSQL database you want to monitor. From the dashboard, open ",[101,102,103],"strong",{},"Drift → Environments → New environment"," and paste a JDBC URL.",[106,107,113],"pre",{"className":108,"code":110,"language":111,"meta":112},[109],"language-text","jdbc:postgresql:\u002F\u002Fprod-db.example.com:5432\u002Fmyapp\n","text","",[114,115,110],"code",{"__ignoreMap":112},[11,117,118,119,122,123,126,127,130,131,134,135,137],{},"Provide a PostgreSQL username and password. We strongly recommend a ",[101,120,121],{},"read-only user"," — Drift Scanner only reads from ",[114,124,125],{},"pg_catalog"," and never issues DDL. A role with ",[114,128,129],{},"CONNECT"," on the database and ",[114,132,133],{},"USAGE"," on ",[114,136,125],{}," is enough.",[139,140,141],"blockquote",{},[11,142,143,146,147,150,151,154],{},[101,144,145],{},"SSRF restrictions."," Your JDBC host cannot resolve to loopback, private network ranges, link-local addresses, IPv6 unique-local addresses, or cloud-provider metadata endpoints (",[114,148,149],{},"169.254.0.0\u002F16",", ",[114,152,153],{},"100.64.0.0\u002F10","). These checks run at registration and again on every scan as defense-in-depth.",[11,156,157],{},"Credentials are encrypted at rest with AES-256-GCM before being persisted.",[15,159,161],{"id":160},"_4-wait-for-the-first-snapshot","4. Wait for the first snapshot",[11,163,164],{},"After you create the environment, Drift Scanner captures its first snapshot and stores it as the baseline. This typically takes under thirty seconds on a small database.",[11,166,167],{},"The snapshot includes:",[169,170,171,175,178,181,184],"ul",{},[172,173,174],"li",{},"Tables and columns (including types, defaults, nullability)",[172,176,177],{},"Indexes and constraints",[172,179,180],{},"Sequences",[172,182,183],{},"Views",[172,185,186],{},"Functions",[15,188,190],{"id":189},"_5-configure-alerts","5. Configure alerts",[11,192,193,194,197],{},"Open the environment's ",[101,195,196],{},"Alerts"," tab and wire up at least one channel:",[169,199,200,206,212],{},[172,201,202,205],{},[101,203,204],{},"Slack"," — paste an incoming webhook URL",[172,207,208,211],{},[101,209,210],{},"Custom webhook"," — we POST JSON to your endpoint",[172,213,214,217],{},[101,215,216],{},"Email"," — goes to the address on your account",[11,219,220,221,224],{},"See ",[23,222,196],{"href":223},"\u002Fdocs\u002Fdrift-scanner\u002Falerts"," for the webhook payload shape and delivery guarantees.",[15,226,228],{"id":227},"_6-youre-done","6. You're done",[11,230,231,232,235],{},"Scans now run automatically on the cron schedule you configured (defaults to hourly: ",[114,233,234],{},"0 0 * * * *","). Each scan takes a new snapshot, diffs it against the baseline, and — if the diff has any changes — raises a drift event and fires your alerts.",[11,237,238],{},"From here:",[169,240,241,247,254],{},[172,242,243,244],{},"Understand what an environment is in ",[23,245,52],{"href":246},"\u002Fdocs\u002Fdrift-scanner\u002Fenvironments",[172,248,249,250],{},"Learn how snapshots, diffs, and severity work in ",[23,251,253],{"href":252},"\u002Fdocs\u002Fdrift-scanner\u002Fscanning","Scanning & drift detection",[172,255,256,257],{},"Read the ",[23,258,260],{"href":259},"\u002Fdocs\u002Fdrift-scanner\u002Fapi-reference","full API reference",{"title":112,"searchDepth":262,"depth":262,"links":263},2,[264,265,266,267,268,269],{"id":17,"depth":262,"text":18},{"id":32,"depth":262,"text":33},{"id":95,"depth":262,"text":96},{"id":160,"depth":262,"text":161},{"id":189,"depth":262,"text":190},{"id":227,"depth":262,"text":228},"Go from zero to a monitored PostgreSQL environment in five minutes. Register an account, add your first environment, configure alerts, and let scans run automatically.","md",{},true,1,"\u002Fdocs\u002Fdrift-scanner\u002Fquickstart","drift-scanner",{"title":6,"description":270},"docs\u002Fdrift-scanner\u002Fquickstart","2026-04-20","Sy-Hsr7uloPd_go3bSdQG8K9XqwL6d5Bxs4Mkk7_flM",{"id":282,"title":283,"body":284,"description":360,"extension":271,"meta":361,"navigation":273,"order":274,"path":362,"section":363,"seo":364,"stem":365,"updatedAt":279,"__hash__":366},"docs\u002Fdocs\u002Fintroduction.md","Introduction",{"type":8,"value":285,"toc":352},[286,289,298,302,306,309,316,320,323,329,333],[11,287,288],{},"Arcnull is developer infrastructure for teams that ship to PostgreSQL and build with AI agents. Pick the product you want to get started with.",[11,290,291,292,297],{},"This is the documentation hub. The marketing site lives at ",[23,293,296],{"href":294,"rel":295},"https:\u002F\u002Farcnull.com",[27],"arcnull.com",". If you are looking for pricing, product pages, or the blog, start there instead.",[15,299,301],{"id":300},"products","Products",[303,304,305],"h3",{"id":276},"Drift Scanner",[11,307,308],{},"A PostgreSQL schema drift detector. Point it at one or more environments, it takes a baseline snapshot, and every scheduled scan compares the current schema against that baseline. You get alerts with severity, recommended actions, and a full diff you can audit or acknowledge.",[11,310,311,312,315],{},"Start with the ",[23,313,314],{"href":275},"Drift Scanner quickstart",".",[303,317,319],{"id":318},"mcp-vault","MCP Vault",[11,321,322],{},"A governance proxy for AI agents calling Model Context Protocol (MCP) servers. Enforces policies, redacts PII, and records every tool call for EU AI Act auditability. Currently in early access.",[11,324,256,325,315],{},[23,326,328],{"href":327},"\u002Fdocs\u002Fmcp-vault\u002Fintroduction","MCP Vault introduction",[15,330,332],{"id":331},"getting-help","Getting help",[11,334,335,336,340,341,346,347,315],{},"If you are stuck, ",[23,337,339],{"href":338},"mailto:hello@arcnull.com","email us"," or reach out on ",[23,342,345],{"href":343,"rel":344},"https:\u002F\u002Fx.com\u002Farcnullhq",[27],"X",". Bug reports and feature requests are welcome on GitHub at ",[23,348,351],{"href":349,"rel":350},"https:\u002F\u002Fgithub.com\u002Farcnull-hq",[27],"arcnull-hq",{"title":112,"searchDepth":262,"depth":262,"links":353},[354,359],{"id":300,"depth":262,"text":301,"children":355},[356,358],{"id":276,"depth":357,"text":305},3,{"id":318,"depth":357,"text":319},{"id":331,"depth":262,"text":332},"Welcome to the Arcnull documentation. Guides, API references, and concepts for every Arcnull product.",{},"\u002Fdocs\u002Fintroduction","getting-started",{"title":283,"description":360},"docs\u002Fintroduction","YUFCWHL-TUqXAbhqh7LLLaINh6Jie-HgQoPa6PtyVGw",{"id":368,"title":52,"body":369,"description":688,"extension":271,"meta":689,"navigation":273,"order":262,"path":246,"section":276,"seo":690,"stem":691,"updatedAt":279,"__hash__":692},"docs\u002Fdocs\u002Fdrift-scanner\u002Fenvironments.md",{"type":8,"value":370,"toc":677},[371,374,378,385,391,394,400,403,407,410,485,488,492,498,522,529,533,536,577,580,584,587,608,612,645,652,656,666,670,673],[11,372,373],{},"An environment represents one PostgreSQL database that Drift Scanner watches on your behalf. You can register many environments — one per database you want to track drift on, typically one per deploy target (production, staging, analytics replica, and so on).",[15,375,377],{"id":376},"jdbc-url-format","JDBC URL format",[11,379,380,381,384],{},"The URL must begin with ",[114,382,383],{},"jdbc:postgresql:\u002F\u002F"," and include a host, port, and database name:",[106,386,389],{"className":387,"code":388,"language":111,"meta":112},[109],"jdbc:postgresql:\u002F\u002F\u003Chost>:\u003Cport>\u002F\u003Cdatabase>[?param=value&...]\n",[114,390,388],{"__ignoreMap":112},[11,392,393],{},"Examples:",[106,395,398],{"className":396,"code":397,"language":111,"meta":112},[109],"jdbc:postgresql:\u002F\u002Fprod-db.example.com:5432\u002Fmyapp\njdbc:postgresql:\u002F\u002Fdb.internal.example.net:5432\u002Fapp?sslmode=require\n",[114,399,397],{"__ignoreMap":112},[11,401,402],{},"The URL is validated at registration and again on every scan.",[303,404,406],{"id":405},"allowed-hosts","Allowed hosts",[11,408,409],{},"For security, the host portion cannot resolve to any of the following:",[169,411,412,425,439,447,454,469],{},[172,413,414,417,418,150,421,424],{},[101,415,416],{},"Loopback"," (",[114,419,420],{},"127.0.0.0\u002F8",[114,422,423],{},"::1",")",[172,426,427,417,430,150,433,150,436,424],{},[101,428,429],{},"Private IPv4",[114,431,432],{},"10.0.0.0\u002F8",[114,434,435],{},"172.16.0.0\u002F12",[114,437,438],{},"192.168.0.0\u002F16",[172,440,441,417,444,446],{},[101,442,443],{},"Link-local",[114,445,149],{}," — also includes AWS, GCP, and Azure metadata endpoints)",[172,448,449,417,452,424],{},[101,450,451],{},"Carrier-grade NAT",[114,453,153],{},[172,455,456,417,459,462,463,417,466,424],{},[101,457,458],{},"IPv6 link-local",[114,460,461],{},"fe80::\u002F10",") and ",[101,464,465],{},"unique-local",[114,467,468],{},"fc00::\u002F7",[172,470,471,474,475,478,479,150,482,424],{},[101,472,473],{},"Multicast"," and ",[101,476,477],{},"unspecified"," addresses (",[114,480,481],{},"0.0.0.0",[114,483,484],{},"::",[11,486,487],{},"If your database is on a private network, expose it to Drift Scanner through a public endpoint (with TLS and IP allowlisting) or wait for the bring-your-own-agent mode on the roadmap.",[15,489,491],{"id":490},"database-user-permissions","Database user permissions",[11,493,494,495,497],{},"Drift Scanner only reads from ",[114,496,125],{},". A read-only role with the minimum permissions below is enough:",[106,499,503],{"className":500,"code":501,"language":502,"meta":112,"style":112},"language-sql shiki shiki-themes github-light github-dark","CREATE USER arcnull_scanner WITH PASSWORD '\u003Cstrong-password>';\nGRANT CONNECT ON DATABASE myapp TO arcnull_scanner;\nGRANT USAGE ON SCHEMA pg_catalog TO arcnull_scanner;\n","sql",[114,504,505,512,517],{"__ignoreMap":112},[506,507,509],"span",{"class":508,"line":274},"line",[506,510,511],{},"CREATE USER arcnull_scanner WITH PASSWORD '\u003Cstrong-password>';\n",[506,513,514],{"class":508,"line":262},[506,515,516],{},"GRANT CONNECT ON DATABASE myapp TO arcnull_scanner;\n",[506,518,519],{"class":508,"line":357},[506,520,521],{},"GRANT USAGE ON SCHEMA pg_catalog TO arcnull_scanner;\n",[11,523,524,525,528],{},"We do ",[101,526,527],{},"not"," need DDL rights and never issue schema modifications. Your credentials are encrypted at rest using AES-256-GCM before persistence.",[15,530,532],{"id":531},"what-gets-captured","What gets captured",[11,534,535],{},"Each snapshot includes:",[169,537,538,544,550,556,562,567,572],{},[172,539,540,543],{},[101,541,542],{},"Tables"," — name, schema, kind",[172,545,546,549],{},[101,547,548],{},"Columns"," — name, type, default, nullability, ordinal position",[172,551,552,555],{},[101,553,554],{},"Indexes"," — name, columns, unique flag, method",[172,557,558,561],{},[101,559,560],{},"Constraints"," — primary keys, foreign keys, unique, check",[172,563,564,566],{},[101,565,180],{}," — name, start, increment",[172,568,569,571],{},[101,570,183],{}," — name, definition",[172,573,574,576],{},[101,575,186],{}," — name, argument types, return type, language",[11,578,579],{},"Snapshots include counts of tables, columns, and indexes at the top level for quick at-a-glance reporting.",[15,581,583],{"id":582},"what-is-not-captured","What is not captured",[11,585,586],{},"We intentionally ignore:",[169,588,589,597,603],{},[172,590,591,594,595,315],{},[101,592,593],{},"Table data."," We only read metadata from ",[114,596,125],{},[172,598,599,602],{},[101,600,601],{},"User and role grants."," On the roadmap.",[172,604,605,602],{},[101,606,607],{},"Extensions.",[15,609,611],{"id":610},"tier-caps","Tier caps",[38,613,614,623],{},[41,615,616],{},[44,617,618,620],{},[47,619,49],{},[47,621,622],{},"Max environments",[60,624,625,631,637],{},[44,626,627,629],{},[65,628,67],{},[65,630,70],{},[44,632,633,635],{},[65,634,81],{},[65,636,84],{},[44,638,639,642],{},[65,640,641],{},"Growth \u002F Scale",[65,643,644],{},"Unlimited",[11,646,647,648,651],{},"If you hit the cap, the API returns a ",[114,649,650],{},"400"," with a plan-limit message. Upgrade from the dashboard or deactivate an environment you no longer need.",[15,653,655],{"id":654},"cron-schedule","Cron schedule",[11,657,658,659,661,662,665],{},"Each environment has its own cron expression. The default is hourly (",[114,660,234],{},"). You can set anything that matches Spring's cron format — for example, ",[114,663,664],{},"0 *\u002F15 * * * *"," for every fifteen minutes. Tier-based rate limits still apply.",[15,667,669],{"id":668},"deactivating-an-environment","Deactivating an environment",[11,671,672],{},"Deactivating keeps history intact but stops future scans. It does not delete the environment. You can reactivate later from the dashboard.",[674,675,676],"style",{},"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":112,"searchDepth":262,"depth":262,"links":678},[679,682,683,684,685,686,687],{"id":376,"depth":262,"text":377,"children":680},[681],{"id":405,"depth":357,"text":406},{"id":490,"depth":262,"text":491},{"id":531,"depth":262,"text":532},{"id":582,"depth":262,"text":583},{"id":610,"depth":262,"text":611},{"id":654,"depth":262,"text":655},{"id":668,"depth":262,"text":669},"An environment is one PostgreSQL database Drift Scanner monitors. This page covers JDBC URL rules, the minimum permissions we need, and what we capture in each snapshot.",{},{"title":52,"description":688},"docs\u002Fdrift-scanner\u002Fenvironments","_0CGQkQNaSPBlPlM6X3rVpsVHpAvY3RLxu4g_oeg7oY",{"id":694,"title":253,"body":695,"description":1057,"extension":271,"meta":1058,"navigation":273,"order":357,"path":252,"section":276,"seo":1059,"stem":1060,"updatedAt":279,"__hash__":1061},"docs\u002Fdocs\u002Fdrift-scanner\u002Fscanning.md",{"type":8,"value":696,"toc":1043},[697,707,711,718,721,725,728,748,751,755,762,804,808,811,815,818,832,836,839,854,858,861,881,906,910,917,989,995,999,1010,1014,1017,1025,1028,1032],[11,698,699,700,474,703,706],{},"Drift Scanner works off two primitives: ",[101,701,702],{},"snapshots",[101,704,705],{},"diffs",". Everything downstream — alerts, the event history, the dashboard summaries — is derived from these two things.",[15,708,710],{"id":709},"baselines","Baselines",[11,712,713,714,717],{},"The first snapshot captured for an environment becomes its ",[101,715,716],{},"baseline",". The baseline is the \"what the schema should look like\" reference. Drift Scanner compares every subsequent snapshot against it.",[11,719,720],{},"You can re-baseline at any time. Accepting drift (see below) tells Drift Scanner \"yes, the current state is the new truth\" and promotes the latest snapshot to the baseline.",[15,722,724],{"id":723},"scheduled-scans","Scheduled scans",[11,726,727],{},"On every tick of the environment's cron schedule, Drift Scanner:",[729,730,731,734,739,742,745],"ol",{},[172,732,733],{},"Connects to the database using the credentials you registered",[172,735,736,737],{},"Pulls metadata from ",[114,738,125],{},[172,740,741],{},"Builds a fresh snapshot and stores it",[172,743,744],{},"Diffs the new snapshot against the baseline",[172,746,747],{},"If the diff is non-empty, creates a drift event and fires alerts",[11,749,750],{},"A single scan on a modest database takes a few seconds. The service runs up to 100 concurrent environment scans platform-wide, with a 5-second connection timeout and a bulkhead of 20 concurrent drift scans.",[15,752,754],{"id":753},"manual-scans","Manual scans",[11,756,757,758,761],{},"You can trigger an ad-hoc scan from the dashboard or the API (",[114,759,760],{},"POST \u002Fapi\u002Fv1\u002Fdrift\u002Fenvironments\u002F{id}\u002Fscan","). Manual scans are rate-limited per tier:",[38,763,764,773],{},[41,765,766],{},[44,767,768,770],{},[47,769,49],{},[47,771,772],{},"Manual scans \u002F minute",[60,774,775,782,788,796],{},[44,776,777,779],{},[65,778,67],{},[65,780,781],{},"3",[44,783,784,786],{},[65,785,81],{},[65,787,84],{},[44,789,790,793],{},[65,791,792],{},"Growth",[65,794,795],{},"30",[44,797,798,801],{},[65,799,800],{},"Scale",[65,802,803],{},"60",[15,805,807],{"id":806},"diff-severity","Diff severity",[11,809,810],{},"Every change in a diff is assigned a severity. The event's overall severity is the highest severity of any single change.",[303,812,814],{"id":813},"info-safe-additions","INFO — safe additions",[11,816,817],{},"Changes that cannot break existing workloads. Examples:",[169,819,820,823,826,829],{},[172,821,822],{},"Adding a new index (non-unique)",[172,824,825],{},"Adding a new nullable column with a default",[172,827,828],{},"Adding a new table",[172,830,831],{},"Adding a new function",[303,833,835],{"id":834},"warning-risky-additions","WARNING — risky additions",[11,837,838],{},"Changes that are additive but can cause runtime pain in the wrong shape. Examples:",[169,840,841,848,851],{},[172,842,843,844,847],{},"Adding a ",[114,845,846],{},"NOT NULL"," column without a default (blocks inserts from older code paths)",[172,849,850],{},"Adding a unique index on a column that may already contain duplicates",[172,852,853],{},"Widening a primary key",[303,855,857],{"id":856},"breaking-destructive-changes","BREAKING — destructive changes",[11,859,860],{},"Changes that remove or rewrite committed schema. Examples:",[169,862,863,866,869,878],{},[172,864,865],{},"Dropping a column, table, index, or constraint",[172,867,868],{},"Changing a column type",[172,870,871,872,875,876,424],{},"Tightening a nullability constraint (",[114,873,874],{},"NULL"," → ",[114,877,846],{},[172,879,880],{},"Removing a foreign key",[11,882,883,884,150,887,150,889,150,892,150,895,150,898,901,902,905],{},"Each diff item carries ",[114,885,886],{},"severity",[114,888,38],{},[114,890,891],{},"column",[114,893,894],{},"changeType",[114,896,897],{},"description",[114,899,900],{},"recommendation",", and ",[114,903,904],{},"estimatedImpact"," — so you can surface actionable context in your alerts.",[15,907,909],{"id":908},"drift-events","Drift events",[11,911,912,913,916],{},"When a scan produces a non-empty diff, Drift Scanner writes a ",[114,914,915],{},"DriftEvent"," with:",[169,918,919,925,931,941,956,967,973,979],{},[172,920,921,924],{},[114,922,923],{},"id"," — event UUID",[172,926,927,930],{},[114,928,929],{},"envId"," — environment UUID",[172,932,933,936,937,940],{},[114,934,935],{},"baselineId"," \u002F ",[114,938,939],{},"currentId"," — the two snapshot IDs being compared",[172,942,943,945,946,150,949,952,953],{},[114,944,886],{}," — ",[114,947,948],{},"INFO",[114,950,951],{},"WARNING",", or ",[114,954,955],{},"BREAKING",[172,957,958,150,961,150,964],{},[114,959,960],{},"breakingCount",[114,962,963],{},"warningCount",[114,965,966],{},"infoCount",[172,968,969,972],{},[114,970,971],{},"acknowledged"," — did someone mark this as reviewed?",[172,974,975,978],{},[114,976,977],{},"detectedAt"," — when the scan that produced the event ran",[172,980,981,984,985,988],{},[114,982,983],{},"items"," — the full list of ",[114,986,987],{},"DiffItem","s",[11,990,991,992,315],{},"Events are paginated through ",[114,993,994],{},"GET \u002Fapi\u002Fv1\u002Fdrift\u002Fevents",[15,996,998],{"id":997},"acknowledging-an-event","Acknowledging an event",[11,1000,1001,1002,1005,1006,1009],{},"Call ",[114,1003,1004],{},"POST \u002Fapi\u002Fv1\u002Fdrift\u002Fevents\u002F{id}\u002Facknowledge"," (or click ",[101,1007,1008],{},"Acknowledge"," in the dashboard) to mark an event as reviewed. This does not change the baseline — it just signals that a human has seen it.",[15,1011,1013],{"id":1012},"accepting-drift-re-baselining","Accepting drift (re-baselining)",[11,1015,1016],{},"Acknowledgement and re-baselining are different. Re-baselining promotes the latest snapshot to become the new baseline, so future diffs are measured against it. Use this when:",[169,1018,1019,1022],{},[172,1020,1021],{},"You shipped an intentional migration and want to stop getting alerts about it",[172,1023,1024],{},"You manually hot-fixed the schema in production and have since committed it upstream",[11,1026,1027],{},"Re-baselining is available in the dashboard. It is not yet exposed as its own endpoint — use acknowledge + the next scheduled scan for now if you only care about silencing future alerts on already-seen drift.",[15,1029,1031],{"id":1030},"comparing-two-environments","Comparing two environments",[11,1033,1034,1035,1038,1039,1042],{},"You can also diff two environments directly (e.g. staging vs. production) via ",[114,1036,1037],{},"POST \u002Fapi\u002Fv1\u002Fdrift\u002Fcompare"," — useful for \"did my staging soak miss something?\" audits. See the ",[23,1040,1041],{"href":259},"API reference"," for the request shape.",{"title":112,"searchDepth":262,"depth":262,"links":1044},[1045,1046,1047,1048,1053,1054,1055,1056],{"id":709,"depth":262,"text":710},{"id":723,"depth":262,"text":724},{"id":753,"depth":262,"text":754},{"id":806,"depth":262,"text":807,"children":1049},[1050,1051,1052],{"id":813,"depth":357,"text":814},{"id":834,"depth":357,"text":835},{"id":856,"depth":357,"text":857},{"id":908,"depth":262,"text":909},{"id":997,"depth":262,"text":998},{"id":1012,"depth":262,"text":1013},{"id":1030,"depth":262,"text":1031},"How snapshots, diffs, and severity work. Understand the difference between INFO, WARNING, and BREAKING changes, and how to accept drift as a new baseline.",{},{"title":253,"description":1057},"docs\u002Fdrift-scanner\u002Fscanning","aix0DhcpPCMTeX5z9uQq-yKWrO6ohclRhoeJVScQTQI",{"id":1063,"title":196,"body":1064,"description":1544,"extension":271,"meta":1545,"navigation":273,"order":1168,"path":223,"section":276,"seo":1546,"stem":1547,"updatedAt":279,"__hash__":1548},"docs\u002Fdocs\u002Fdrift-scanner\u002Falerts.md",{"type":8,"value":1065,"toc":1533},[1066,1069,1073,1076,1085,1102,1105,1111,1114,1118,1125,1403,1414,1417,1420,1424,1433,1478,1481,1487,1491,1498,1502,1512,1516,1530],[11,1067,1068],{},"Drift Scanner can push alerts to three channels per environment. All three are optional — you can enable any combination, and each event is delivered once per enabled channel.",[15,1070,1072],{"id":1071},"channels","Channels",[303,1074,204],{"id":1075},"slack",[11,1077,1078,1079,1084],{},"Paste an ",[23,1080,1083],{"href":1081,"rel":1082},"https:\u002F\u002Fapi.slack.com\u002Fmessaging\u002Fwebhooks",[27],"incoming webhook URL"," into the environment's alert configuration. Messages are posted as plain markdown with a coloured attachment bar matching severity:",[169,1086,1087,1092,1097],{},[172,1088,1089,1091],{},[114,1090,955],{}," → red",[172,1093,1094,1096],{},[114,1095,951],{}," → orange",[172,1098,1099,1101],{},[114,1100,948],{}," → green",[11,1103,1104],{},"Example payload (the message body we render into the Slack webhook):",[106,1106,1109],{"className":1107,"code":1108,"language":111,"meta":112},[109],"*Schema Drift Detected*\nEnvironment: `production`\nSeverity: *BREAKING*\nChanges: 1 breaking, 0 warning, 2 info\n\n*Top Changes:*\n* [BREAKING] COLUMN_DROPPED — users.email column dropped\n* [INFO] INDEX_ADDED — orders.created_at_idx added\n* [INFO] INDEX_ADDED — sessions.user_id_idx added\n",[114,1110,1108],{"__ignoreMap":112},[11,1112,1113],{},"Only the first five changes are included in the message body to keep Slack digestible — the full diff is always available via the API or dashboard.",[303,1115,1117],{"id":1116},"webhook","Webhook",[11,1119,1120,1121,1124],{},"A generic JSON webhook we POST to on every drift event. The payload matches the shape returned by ",[114,1122,1123],{},"GET \u002Fapi\u002Fv1\u002Fdrift\u002Fevents\u002F{id}",":",[106,1126,1130],{"className":1127,"code":1128,"language":1129,"meta":112,"style":112},"language-json shiki shiki-themes github-light github-dark","{\n  \"id\": \"f6c3a3f0-7c5e-4a8c-b4b2-9f3b1f0c4a55\",\n  \"envId\": \"18a2d7be-4f52-4a86-92b0-52df7d39c7a1\",\n  \"baselineId\": \"0ce3b9a2-3a8b-4f40-a6a2-4a1b92b8d2c6\",\n  \"currentId\": \"b7d1a3c4-2a3e-4b7e-9a4f-1c2e9b0d3a77\",\n  \"severity\": \"BREAKING\",\n  \"breakingCount\": 1,\n  \"warningCount\": 0,\n  \"infoCount\": 2,\n  \"environmentName\": \"production\",\n  \"acknowledged\": false,\n  \"detectedAt\": \"2026-04-20T15:10:22.187Z\",\n  \"items\": [\n    {\n      \"severity\": \"BREAKING\",\n      \"table\": \"users\",\n      \"column\": \"email\",\n      \"changeType\": \"COLUMN_DROPPED\",\n      \"description\": \"users.email column dropped\",\n      \"recommendation\": \"Restore the column or update callers before rolling forward.\",\n      \"estimatedImpact\": \"High — authentication flows depend on this column.\"\n    }\n  ]\n}\n","json",[114,1131,1132,1138,1154,1166,1179,1192,1205,1218,1231,1243,1256,1269,1282,1291,1297,1309,1322,1335,1348,1361,1374,1385,1391,1397],{"__ignoreMap":112},[506,1133,1134],{"class":508,"line":274},[506,1135,1137],{"class":1136},"sVt8B","{\n",[506,1139,1140,1144,1147,1151],{"class":508,"line":262},[506,1141,1143],{"class":1142},"sj4cs","  \"id\"",[506,1145,1146],{"class":1136},": ",[506,1148,1150],{"class":1149},"sZZnC","\"f6c3a3f0-7c5e-4a8c-b4b2-9f3b1f0c4a55\"",[506,1152,1153],{"class":1136},",\n",[506,1155,1156,1159,1161,1164],{"class":508,"line":357},[506,1157,1158],{"class":1142},"  \"envId\"",[506,1160,1146],{"class":1136},[506,1162,1163],{"class":1149},"\"18a2d7be-4f52-4a86-92b0-52df7d39c7a1\"",[506,1165,1153],{"class":1136},[506,1167,1169,1172,1174,1177],{"class":508,"line":1168},4,[506,1170,1171],{"class":1142},"  \"baselineId\"",[506,1173,1146],{"class":1136},[506,1175,1176],{"class":1149},"\"0ce3b9a2-3a8b-4f40-a6a2-4a1b92b8d2c6\"",[506,1178,1153],{"class":1136},[506,1180,1182,1185,1187,1190],{"class":508,"line":1181},5,[506,1183,1184],{"class":1142},"  \"currentId\"",[506,1186,1146],{"class":1136},[506,1188,1189],{"class":1149},"\"b7d1a3c4-2a3e-4b7e-9a4f-1c2e9b0d3a77\"",[506,1191,1153],{"class":1136},[506,1193,1195,1198,1200,1203],{"class":508,"line":1194},6,[506,1196,1197],{"class":1142},"  \"severity\"",[506,1199,1146],{"class":1136},[506,1201,1202],{"class":1149},"\"BREAKING\"",[506,1204,1153],{"class":1136},[506,1206,1208,1211,1213,1216],{"class":508,"line":1207},7,[506,1209,1210],{"class":1142},"  \"breakingCount\"",[506,1212,1146],{"class":1136},[506,1214,1215],{"class":1142},"1",[506,1217,1153],{"class":1136},[506,1219,1221,1224,1226,1229],{"class":508,"line":1220},8,[506,1222,1223],{"class":1142},"  \"warningCount\"",[506,1225,1146],{"class":1136},[506,1227,1228],{"class":1142},"0",[506,1230,1153],{"class":1136},[506,1232,1234,1237,1239,1241],{"class":508,"line":1233},9,[506,1235,1236],{"class":1142},"  \"infoCount\"",[506,1238,1146],{"class":1136},[506,1240,70],{"class":1142},[506,1242,1153],{"class":1136},[506,1244,1246,1249,1251,1254],{"class":508,"line":1245},10,[506,1247,1248],{"class":1142},"  \"environmentName\"",[506,1250,1146],{"class":1136},[506,1252,1253],{"class":1149},"\"production\"",[506,1255,1153],{"class":1136},[506,1257,1259,1262,1264,1267],{"class":508,"line":1258},11,[506,1260,1261],{"class":1142},"  \"acknowledged\"",[506,1263,1146],{"class":1136},[506,1265,1266],{"class":1142},"false",[506,1268,1153],{"class":1136},[506,1270,1272,1275,1277,1280],{"class":508,"line":1271},12,[506,1273,1274],{"class":1142},"  \"detectedAt\"",[506,1276,1146],{"class":1136},[506,1278,1279],{"class":1149},"\"2026-04-20T15:10:22.187Z\"",[506,1281,1153],{"class":1136},[506,1283,1285,1288],{"class":508,"line":1284},13,[506,1286,1287],{"class":1142},"  \"items\"",[506,1289,1290],{"class":1136},": [\n",[506,1292,1294],{"class":508,"line":1293},14,[506,1295,1296],{"class":1136},"    {\n",[506,1298,1300,1303,1305,1307],{"class":508,"line":1299},15,[506,1301,1302],{"class":1142},"      \"severity\"",[506,1304,1146],{"class":1136},[506,1306,1202],{"class":1149},[506,1308,1153],{"class":1136},[506,1310,1312,1315,1317,1320],{"class":508,"line":1311},16,[506,1313,1314],{"class":1142},"      \"table\"",[506,1316,1146],{"class":1136},[506,1318,1319],{"class":1149},"\"users\"",[506,1321,1153],{"class":1136},[506,1323,1325,1328,1330,1333],{"class":508,"line":1324},17,[506,1326,1327],{"class":1142},"      \"column\"",[506,1329,1146],{"class":1136},[506,1331,1332],{"class":1149},"\"email\"",[506,1334,1153],{"class":1136},[506,1336,1338,1341,1343,1346],{"class":508,"line":1337},18,[506,1339,1340],{"class":1142},"      \"changeType\"",[506,1342,1146],{"class":1136},[506,1344,1345],{"class":1149},"\"COLUMN_DROPPED\"",[506,1347,1153],{"class":1136},[506,1349,1351,1354,1356,1359],{"class":508,"line":1350},19,[506,1352,1353],{"class":1142},"      \"description\"",[506,1355,1146],{"class":1136},[506,1357,1358],{"class":1149},"\"users.email column dropped\"",[506,1360,1153],{"class":1136},[506,1362,1364,1367,1369,1372],{"class":508,"line":1363},20,[506,1365,1366],{"class":1142},"      \"recommendation\"",[506,1368,1146],{"class":1136},[506,1370,1371],{"class":1149},"\"Restore the column or update callers before rolling forward.\"",[506,1373,1153],{"class":1136},[506,1375,1377,1380,1382],{"class":508,"line":1376},21,[506,1378,1379],{"class":1142},"      \"estimatedImpact\"",[506,1381,1146],{"class":1136},[506,1383,1384],{"class":1149},"\"High — authentication flows depend on this column.\"\n",[506,1386,1388],{"class":508,"line":1387},22,[506,1389,1390],{"class":1136},"    }\n",[506,1392,1394],{"class":508,"line":1393},23,[506,1395,1396],{"class":1136},"  ]\n",[506,1398,1400],{"class":508,"line":1399},24,[506,1401,1402],{"class":1136},"}\n",[11,1404,1405,1406,1409,1410,1413],{},"The request is a standard ",[114,1407,1408],{},"POST"," with ",[114,1411,1412],{},"Content-Type: application\u002Fjson",". HTTP 2xx from your endpoint is treated as success; anything else triggers the retry policy below.",[303,1415,216],{"id":1416},"email",[11,1418,1419],{},"Email alerts are delivered via Resend to the email on file for your tenant. There is no per-environment override today — it lives on your tenant record. On the roadmap: per-environment recipients and digest mode.",[15,1421,1423],{"id":1422},"delivery-guarantees","Delivery guarantees",[11,1425,1426,1427,1432],{},"Each sender is isolated as its own Spring bean with ",[23,1428,1431],{"href":1429,"rel":1430},"https:\u002F\u002Fresilience4j.readme.io\u002F",[27],"Resilience4j"," wrapped around it, so a flaky Slack webhook can't degrade email or the generic webhook.",[38,1434,1435,1448],{},[41,1436,1437],{},[44,1438,1439,1442,1445],{},[47,1440,1441],{},"Channel",[47,1443,1444],{},"Retry policy",[47,1446,1447],{},"Circuit breaker",[60,1449,1450,1460,1468],{},[44,1451,1452,1454,1457],{},[65,1453,1117],{},[65,1455,1456],{},"3 attempts, 2s base with exponential backoff (x2)",[65,1458,1459],{},"Opens at 70% failure rate across a 10-call window; stays open 30s",[44,1461,1462,1464,1466],{},[65,1463,204],{},[65,1465,1456],{},[65,1467,1459],{},[44,1469,1470,1472,1475],{},[65,1471,216],{},[65,1473,1474],{},"3 attempts, 5s base",[65,1476,1477],{},"Opens at 50% failure rate across a 5-call window; stays open 120s",[11,1479,1480],{},"All three share a bulkhead of 5 concurrent calls per channel to keep one slow endpoint from blocking others.",[11,1482,1483,1484,1486],{},"Circuit-broken alerts are logged but not queued — if your webhook is down long enough to trip the breaker, backfill from ",[114,1485,994],{}," once it recovers.",[15,1488,1490],{"id":1489},"idempotency","Idempotency",[11,1492,1493,1494,1497],{},"Each dispatch uses a SHA-256 key derived from ",[114,1495,1496],{},"envId + baselineId + currentId",", so duplicate events (e.g. a retried scan) are detectable in logs.",[15,1499,1501],{"id":1500},"testing-alerts","Testing alerts",[11,1503,1504,1505,1508,1509,1511],{},"From the dashboard, each channel has a ",[101,1506,1507],{},"Send test event"," action that fires a synthetic ",[114,1510,948],{}," diff through the configured sender. Use this to verify your Slack channel or webhook endpoint is reachable before relying on it in production.",[15,1513,1515],{"id":1514},"roadmap","Roadmap",[169,1517,1518,1521,1524,1527],{},[172,1519,1520],{},"Per-environment email recipients",[172,1522,1523],{},"Digest mode (batched alerts every N minutes)",[172,1525,1526],{},"PagerDuty, Opsgenie, and Microsoft Teams channels",[172,1528,1529],{},"Signed webhook payloads (HMAC-SHA256 header)",[674,1531,1532],{},"html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}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":112,"searchDepth":262,"depth":262,"links":1534},[1535,1540,1541,1542,1543],{"id":1071,"depth":262,"text":1072,"children":1536},[1537,1538,1539],{"id":1075,"depth":357,"text":204},{"id":1116,"depth":357,"text":1117},{"id":1416,"depth":357,"text":216},{"id":1422,"depth":262,"text":1423},{"id":1489,"depth":262,"text":1490},{"id":1500,"depth":262,"text":1501},{"id":1514,"depth":262,"text":1515},"Configure Slack, webhook, and email alerts for drift events. Includes the exact webhook payload shape, Slack message format, and resilience behaviour.",{},{"title":196,"description":1544},"docs\u002Fdrift-scanner\u002Falerts","Ry_PLC5LfwEC7Burk2wPsBkAHT_YCJASRRp8QIRKs4E",{"id":1550,"title":1041,"body":1551,"description":3264,"extension":271,"meta":3265,"navigation":273,"order":1181,"path":259,"section":276,"seo":3266,"stem":3267,"updatedAt":279,"__hash__":3268},"docs\u002Fdocs\u002Fdrift-scanner\u002Fapi-reference.md",{"type":8,"value":1552,"toc":3242},[1553,1560,1634,1638,1644,1648,1651,1662,1668,1676,1680,1693,1756,1759,1784,1787,1790,1794,1803,1806,1876,1915,1922,2010,2014,2023,2026,2146,2150,2159,2163,2172,2182,2184,2188,2192,2201,2204,2316,2351,2353,2357,2366,2369,2371,2405,2408,2590,2592,2596,2609,2618,2620,2655,2657,2858,2860,2862,2866,2875,2882,3104,3108,3117,3121,3130,3133,3135,3139,3239],[11,1554,1555,1556,1559],{},"The Drift Scanner API lives at ",[114,1557,1558],{},"https:\u002F\u002Fdrift.arcnull.com",". All responses are wrapped in a standard envelope:",[106,1561,1563],{"className":1127,"code":1562,"language":1129,"meta":112,"style":112},"{\n  \"success\": true,\n  \"data\": { \u002F* typed payload *\u002F },\n  \"message\": \"Human-readable message (optional)\",\n  \"errorCode\": null,\n  \"timestamp\": \"2026-04-20T15:10:22.187Z\"\n}\n",[114,1564,1565,1569,1581,1596,1608,1620,1630],{"__ignoreMap":112},[506,1566,1567],{"class":508,"line":274},[506,1568,1137],{"class":1136},[506,1570,1571,1574,1576,1579],{"class":508,"line":262},[506,1572,1573],{"class":1142},"  \"success\"",[506,1575,1146],{"class":1136},[506,1577,1578],{"class":1142},"true",[506,1580,1153],{"class":1136},[506,1582,1583,1586,1589,1593],{"class":508,"line":357},[506,1584,1585],{"class":1142},"  \"data\"",[506,1587,1588],{"class":1136},": { ",[506,1590,1592],{"class":1591},"sJ8bj","\u002F* typed payload *\u002F",[506,1594,1595],{"class":1136}," },\n",[506,1597,1598,1601,1603,1606],{"class":508,"line":1168},[506,1599,1600],{"class":1142},"  \"message\"",[506,1602,1146],{"class":1136},[506,1604,1605],{"class":1149},"\"Human-readable message (optional)\"",[506,1607,1153],{"class":1136},[506,1609,1610,1613,1615,1618],{"class":508,"line":1181},[506,1611,1612],{"class":1142},"  \"errorCode\"",[506,1614,1146],{"class":1136},[506,1616,1617],{"class":1142},"null",[506,1619,1153],{"class":1136},[506,1621,1622,1625,1627],{"class":508,"line":1194},[506,1623,1624],{"class":1142},"  \"timestamp\"",[506,1626,1146],{"class":1136},[506,1628,1629],{"class":1149},"\"2026-04-20T15:10:22.187Z\"\n",[506,1631,1632],{"class":508,"line":1207},[506,1633,1402],{"class":1136},[15,1635,1637],{"id":1636},"base-url","Base URL",[106,1639,1642],{"className":1640,"code":1641,"language":111,"meta":112},[109],"https:\u002F\u002Fdrift.arcnull.com\n",[114,1643,1641],{"__ignoreMap":112},[15,1645,1647],{"id":1646},"authentication","Authentication",[11,1649,1650],{},"Every endpoint requires a JWT issued by the platform auth service. Pass it as a bearer token:",[106,1652,1656],{"className":1653,"code":1654,"language":1655,"meta":112,"style":112},"language-http shiki shiki-themes github-light github-dark","Authorization: Bearer \u003Cjwt>\n","http",[114,1657,1658],{"__ignoreMap":112},[506,1659,1660],{"class":508,"line":274},[506,1661,1654],{},[11,1663,1664,1665,1667],{},"You can mint a JWT by logging in through ",[114,1666,294],{}," and pulling the token from your dashboard, or by calling the auth API directly (see platform docs — coming soon).",[139,1669,1670],{},[11,1671,1672,1675],{},[101,1673,1674],{},"Customer API keys are coming soon."," A long-lived API key flow for server-to-server usage is on the roadmap. For now, use a JWT from a logged-in session. When API keys ship, you will be able to mint up to 1 (free) \u002F 5 (pro) \u002F 10+ (growth+) per tenant.",[15,1677,1679],{"id":1678},"errors","Errors",[11,1681,1682,1683,1686,1687,474,1690,1124],{},"Errors return ",[114,1684,1685],{},"success: false"," with an ",[114,1688,1689],{},"errorCode",[114,1691,1692],{},"message",[106,1694,1696],{"className":1127,"code":1695,"language":1129,"meta":112,"style":112},"{\n  \"success\": false,\n  \"data\": null,\n  \"message\": \"Plan limit reached: your current plan allows up to 2 drift environments. Upgrade your plan to add more.\",\n  \"errorCode\": \"BAD_REQUEST\",\n  \"timestamp\": \"2026-04-20T15:10:22.187Z\"\n}\n",[114,1697,1698,1702,1712,1722,1733,1744,1752],{"__ignoreMap":112},[506,1699,1700],{"class":508,"line":274},[506,1701,1137],{"class":1136},[506,1703,1704,1706,1708,1710],{"class":508,"line":262},[506,1705,1573],{"class":1142},[506,1707,1146],{"class":1136},[506,1709,1266],{"class":1142},[506,1711,1153],{"class":1136},[506,1713,1714,1716,1718,1720],{"class":508,"line":357},[506,1715,1585],{"class":1142},[506,1717,1146],{"class":1136},[506,1719,1617],{"class":1142},[506,1721,1153],{"class":1136},[506,1723,1724,1726,1728,1731],{"class":508,"line":1168},[506,1725,1600],{"class":1142},[506,1727,1146],{"class":1136},[506,1729,1730],{"class":1149},"\"Plan limit reached: your current plan allows up to 2 drift environments. Upgrade your plan to add more.\"",[506,1732,1153],{"class":1136},[506,1734,1735,1737,1739,1742],{"class":508,"line":1181},[506,1736,1612],{"class":1142},[506,1738,1146],{"class":1136},[506,1740,1741],{"class":1149},"\"BAD_REQUEST\"",[506,1743,1153],{"class":1136},[506,1745,1746,1748,1750],{"class":508,"line":1194},[506,1747,1624],{"class":1142},[506,1749,1146],{"class":1136},[506,1751,1629],{"class":1149},[506,1753,1754],{"class":508,"line":1207},[506,1755,1402],{"class":1136},[11,1757,1758],{},"Common HTTP statuses:",[169,1760,1761,1766,1772,1778],{},[172,1762,1763,1765],{},[114,1764,650],{}," — validation \u002F plan-limit \u002F SSRF rejection",[172,1767,1768,1771],{},[114,1769,1770],{},"401"," — missing or invalid JWT",[172,1773,1774,1777],{},[114,1775,1776],{},"404"," — resource not found for this tenant",[172,1779,1780,1783],{},[114,1781,1782],{},"429"," — manual scan rate limit exceeded",[1785,1786],"hr",{},[15,1788,52],{"id":1789},"environments",[303,1791,1793],{"id":1792},"register-an-environment","Register an environment",[106,1795,1797],{"className":1653,"code":1796,"language":1655,"meta":112,"style":112},"POST \u002Fapi\u002Fv1\u002Fdrift\u002Fenvironments\n",[114,1798,1799],{"__ignoreMap":112},[506,1800,1801],{"class":508,"line":274},[506,1802,1796],{},[11,1804,1805],{},"Request:",[106,1807,1809],{"className":1127,"code":1808,"language":1129,"meta":112,"style":112},"{\n  \"name\": \"production\",\n  \"jdbcUrl\": \"jdbc:postgresql:\u002F\u002Fprod-db.example.com:5432\u002Fmyapp\",\n  \"username\": \"arcnull_scanner\",\n  \"password\": \"\u003Cstrong-password>\",\n  \"scanCron\": \"0 0 * * * *\"\n}\n",[114,1810,1811,1815,1826,1838,1850,1862,1872],{"__ignoreMap":112},[506,1812,1813],{"class":508,"line":274},[506,1814,1137],{"class":1136},[506,1816,1817,1820,1822,1824],{"class":508,"line":262},[506,1818,1819],{"class":1142},"  \"name\"",[506,1821,1146],{"class":1136},[506,1823,1253],{"class":1149},[506,1825,1153],{"class":1136},[506,1827,1828,1831,1833,1836],{"class":508,"line":357},[506,1829,1830],{"class":1142},"  \"jdbcUrl\"",[506,1832,1146],{"class":1136},[506,1834,1835],{"class":1149},"\"jdbc:postgresql:\u002F\u002Fprod-db.example.com:5432\u002Fmyapp\"",[506,1837,1153],{"class":1136},[506,1839,1840,1843,1845,1848],{"class":508,"line":1168},[506,1841,1842],{"class":1142},"  \"username\"",[506,1844,1146],{"class":1136},[506,1846,1847],{"class":1149},"\"arcnull_scanner\"",[506,1849,1153],{"class":1136},[506,1851,1852,1855,1857,1860],{"class":508,"line":1181},[506,1853,1854],{"class":1142},"  \"password\"",[506,1856,1146],{"class":1136},[506,1858,1859],{"class":1149},"\"\u003Cstrong-password>\"",[506,1861,1153],{"class":1136},[506,1863,1864,1867,1869],{"class":508,"line":1194},[506,1865,1866],{"class":1142},"  \"scanCron\"",[506,1868,1146],{"class":1136},[506,1870,1871],{"class":1149},"\"0 0 * * * *\"\n",[506,1873,1874],{"class":508,"line":1207},[506,1875,1402],{"class":1136},[169,1877,1878,1884,1894,1900,1906],{},[172,1879,1880,1883],{},[114,1881,1882],{},"name"," — 1-100 chars, must start with a letter or digit, letters\u002Fdigits\u002Fspaces\u002Fhyphens\u002Funderscores",[172,1885,1886,1889,1890,1893],{},[114,1887,1888],{},"jdbcUrl"," — must match ",[114,1891,1892],{},"jdbc:postgresql:\u002F\u002Fhost\u002Fdb(?params)?",", must not resolve to loopback, private, link-local, metadata, or CGNAT ranges",[172,1895,1896,1899],{},[114,1897,1898],{},"username"," — valid PostgreSQL identifier (up to 63 chars)",[172,1901,1902,1905],{},[114,1903,1904],{},"password"," — up to 512 chars",[172,1907,1908,1911,1912,1914],{},[114,1909,1910],{},"scanCron"," — optional Spring cron expression (6 fields); defaults to ",[114,1913,234],{}," (top of every hour)",[11,1916,1917,1918,1921],{},"Response: ",[114,1919,1920],{},"201 Created"," with the new environment.",[106,1923,1927],{"className":1924,"code":1925,"language":1926,"meta":112,"style":112},"language-bash shiki shiki-themes github-light github-dark","curl -X POST https:\u002F\u002Fdrift.arcnull.com\u002Fapi\u002Fv1\u002Fdrift\u002Fenvironments \\\n  -H \"Authorization: Bearer $JWT\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\n    \"name\": \"production\",\n    \"jdbcUrl\": \"jdbc:postgresql:\u002F\u002Fprod-db.example.com:5432\u002Fmyapp\",\n    \"username\": \"arcnull_scanner\",\n    \"password\": \"secret\",\n    \"scanCron\": \"0 0 * * * *\"\n  }'\n","bash",[114,1928,1929,1947,1963,1972,1980,1985,1990,1995,2000,2005],{"__ignoreMap":112},[506,1930,1931,1935,1938,1941,1944],{"class":508,"line":274},[506,1932,1934],{"class":1933},"sScJk","curl",[506,1936,1937],{"class":1142}," -X",[506,1939,1940],{"class":1149}," POST",[506,1942,1943],{"class":1149}," https:\u002F\u002Fdrift.arcnull.com\u002Fapi\u002Fv1\u002Fdrift\u002Fenvironments",[506,1945,1946],{"class":1142}," \\\n",[506,1948,1949,1952,1955,1958,1961],{"class":508,"line":262},[506,1950,1951],{"class":1142},"  -H",[506,1953,1954],{"class":1149}," \"Authorization: Bearer ",[506,1956,1957],{"class":1136},"$JWT",[506,1959,1960],{"class":1149},"\"",[506,1962,1946],{"class":1142},[506,1964,1965,1967,1970],{"class":508,"line":357},[506,1966,1951],{"class":1142},[506,1968,1969],{"class":1149}," \"Content-Type: application\u002Fjson\"",[506,1971,1946],{"class":1142},[506,1973,1974,1977],{"class":508,"line":1168},[506,1975,1976],{"class":1142},"  -d",[506,1978,1979],{"class":1149}," '{\n",[506,1981,1982],{"class":508,"line":1181},[506,1983,1984],{"class":1149},"    \"name\": \"production\",\n",[506,1986,1987],{"class":508,"line":1194},[506,1988,1989],{"class":1149},"    \"jdbcUrl\": \"jdbc:postgresql:\u002F\u002Fprod-db.example.com:5432\u002Fmyapp\",\n",[506,1991,1992],{"class":508,"line":1207},[506,1993,1994],{"class":1149},"    \"username\": \"arcnull_scanner\",\n",[506,1996,1997],{"class":508,"line":1220},[506,1998,1999],{"class":1149},"    \"password\": \"secret\",\n",[506,2001,2002],{"class":508,"line":1233},[506,2003,2004],{"class":1149},"    \"scanCron\": \"0 0 * * * *\"\n",[506,2006,2007],{"class":508,"line":1245},[506,2008,2009],{"class":1149},"  }'\n",[303,2011,2013],{"id":2012},"list-environments","List environments",[106,2015,2017],{"className":1653,"code":2016,"language":1655,"meta":112,"style":112},"GET \u002Fapi\u002Fv1\u002Fdrift\u002Fenvironments\n",[114,2018,2019],{"__ignoreMap":112},[506,2020,2021],{"class":508,"line":274},[506,2022,2016],{},[11,2024,2025],{},"Returns all active environments for the authenticated tenant.",[106,2027,2029],{"className":1127,"code":2028,"language":1129,"meta":112,"style":112},"{\n  \"success\": true,\n  \"data\": [\n    {\n      \"id\": \"18a2d7be-4f52-4a86-92b0-52df7d39c7a1\",\n      \"name\": \"production\",\n      \"status\": \"READY\",\n      \"scanCron\": \"0 0 * * * *\",\n      \"active\": true,\n      \"lastScanned\": \"2026-04-20T15:00:00Z\",\n      \"createdAt\": \"2026-04-19T09:14:23Z\"\n    }\n  ]\n}\n",[114,2030,2031,2035,2045,2051,2055,2066,2077,2089,2101,2112,2124,2134,2138,2142],{"__ignoreMap":112},[506,2032,2033],{"class":508,"line":274},[506,2034,1137],{"class":1136},[506,2036,2037,2039,2041,2043],{"class":508,"line":262},[506,2038,1573],{"class":1142},[506,2040,1146],{"class":1136},[506,2042,1578],{"class":1142},[506,2044,1153],{"class":1136},[506,2046,2047,2049],{"class":508,"line":357},[506,2048,1585],{"class":1142},[506,2050,1290],{"class":1136},[506,2052,2053],{"class":508,"line":1168},[506,2054,1296],{"class":1136},[506,2056,2057,2060,2062,2064],{"class":508,"line":1181},[506,2058,2059],{"class":1142},"      \"id\"",[506,2061,1146],{"class":1136},[506,2063,1163],{"class":1149},[506,2065,1153],{"class":1136},[506,2067,2068,2071,2073,2075],{"class":508,"line":1194},[506,2069,2070],{"class":1142},"      \"name\"",[506,2072,1146],{"class":1136},[506,2074,1253],{"class":1149},[506,2076,1153],{"class":1136},[506,2078,2079,2082,2084,2087],{"class":508,"line":1207},[506,2080,2081],{"class":1142},"      \"status\"",[506,2083,1146],{"class":1136},[506,2085,2086],{"class":1149},"\"READY\"",[506,2088,1153],{"class":1136},[506,2090,2091,2094,2096,2099],{"class":508,"line":1220},[506,2092,2093],{"class":1142},"      \"scanCron\"",[506,2095,1146],{"class":1136},[506,2097,2098],{"class":1149},"\"0 0 * * * *\"",[506,2100,1153],{"class":1136},[506,2102,2103,2106,2108,2110],{"class":508,"line":1233},[506,2104,2105],{"class":1142},"      \"active\"",[506,2107,1146],{"class":1136},[506,2109,1578],{"class":1142},[506,2111,1153],{"class":1136},[506,2113,2114,2117,2119,2122],{"class":508,"line":1245},[506,2115,2116],{"class":1142},"      \"lastScanned\"",[506,2118,1146],{"class":1136},[506,2120,2121],{"class":1149},"\"2026-04-20T15:00:00Z\"",[506,2123,1153],{"class":1136},[506,2125,2126,2129,2131],{"class":508,"line":1258},[506,2127,2128],{"class":1142},"      \"createdAt\"",[506,2130,1146],{"class":1136},[506,2132,2133],{"class":1149},"\"2026-04-19T09:14:23Z\"\n",[506,2135,2136],{"class":508,"line":1271},[506,2137,1390],{"class":1136},[506,2139,2140],{"class":508,"line":1284},[506,2141,1396],{"class":1136},[506,2143,2144],{"class":508,"line":1293},[506,2145,1402],{"class":1136},[303,2147,2149],{"id":2148},"get-an-environment","Get an environment",[106,2151,2153],{"className":1653,"code":2152,"language":1655,"meta":112,"style":112},"GET \u002Fapi\u002Fv1\u002Fdrift\u002Fenvironments\u002F{id}\n",[114,2154,2155],{"__ignoreMap":112},[506,2156,2157],{"class":508,"line":274},[506,2158,2152],{},[303,2160,2162],{"id":2161},"deactivate-an-environment","Deactivate an environment",[106,2164,2166],{"className":1653,"code":2165,"language":1655,"meta":112,"style":112},"DELETE \u002Fapi\u002Fv1\u002Fdrift\u002Fenvironments\u002F{id}\n",[114,2167,2168],{"__ignoreMap":112},[506,2169,2170],{"class":508,"line":274},[506,2171,2165],{},[11,2173,2174,2175,2178,2179,315],{},"Sets the environment's ",[114,2176,2177],{},"active"," flag to false. History is retained. Returns ",[114,2180,2181],{},"200 OK",[1785,2183],{},[15,2185,2187],{"id":2186},"scanning","Scanning",[303,2189,2191],{"id":2190},"trigger-a-manual-scan","Trigger a manual scan",[106,2193,2195],{"className":1653,"code":2194,"language":1655,"meta":112,"style":112},"POST \u002Fapi\u002Fv1\u002Fdrift\u002Fenvironments\u002F{id}\u002Fscan\n",[114,2196,2197],{"__ignoreMap":112},[506,2198,2199],{"class":508,"line":274},[506,2200,2194],{},[11,2202,2203],{},"Rate-limited per tier (free: 3\u002Fmin, pro: 10\u002Fmin). Returns the snapshot that was produced:",[106,2205,2207],{"className":1127,"code":2206,"language":1129,"meta":112,"style":112},"{\n  \"success\": true,\n  \"data\": {\n    \"id\": \"b7d1a3c4-2a3e-4b7e-9a4f-1c2e9b0d3a77\",\n    \"checksum\": \"sha256:9c3a...\",\n    \"tablesCount\": 42,\n    \"columnsCount\": 317,\n    \"indexesCount\": 88,\n    \"capturedAt\": \"2026-04-20T15:10:22.187Z\"\n  },\n  \"message\": \"Scan completed\"\n}\n",[114,2208,2209,2213,2223,2230,2241,2253,2265,2277,2289,2298,2303,2312],{"__ignoreMap":112},[506,2210,2211],{"class":508,"line":274},[506,2212,1137],{"class":1136},[506,2214,2215,2217,2219,2221],{"class":508,"line":262},[506,2216,1573],{"class":1142},[506,2218,1146],{"class":1136},[506,2220,1578],{"class":1142},[506,2222,1153],{"class":1136},[506,2224,2225,2227],{"class":508,"line":357},[506,2226,1585],{"class":1142},[506,2228,2229],{"class":1136},": {\n",[506,2231,2232,2235,2237,2239],{"class":508,"line":1168},[506,2233,2234],{"class":1142},"    \"id\"",[506,2236,1146],{"class":1136},[506,2238,1189],{"class":1149},[506,2240,1153],{"class":1136},[506,2242,2243,2246,2248,2251],{"class":508,"line":1181},[506,2244,2245],{"class":1142},"    \"checksum\"",[506,2247,1146],{"class":1136},[506,2249,2250],{"class":1149},"\"sha256:9c3a...\"",[506,2252,1153],{"class":1136},[506,2254,2255,2258,2260,2263],{"class":508,"line":1194},[506,2256,2257],{"class":1142},"    \"tablesCount\"",[506,2259,1146],{"class":1136},[506,2261,2262],{"class":1142},"42",[506,2264,1153],{"class":1136},[506,2266,2267,2270,2272,2275],{"class":508,"line":1207},[506,2268,2269],{"class":1142},"    \"columnsCount\"",[506,2271,1146],{"class":1136},[506,2273,2274],{"class":1142},"317",[506,2276,1153],{"class":1136},[506,2278,2279,2282,2284,2287],{"class":508,"line":1220},[506,2280,2281],{"class":1142},"    \"indexesCount\"",[506,2283,1146],{"class":1136},[506,2285,2286],{"class":1142},"88",[506,2288,1153],{"class":1136},[506,2290,2291,2294,2296],{"class":508,"line":1233},[506,2292,2293],{"class":1142},"    \"capturedAt\"",[506,2295,1146],{"class":1136},[506,2297,1629],{"class":1149},[506,2299,2300],{"class":508,"line":1245},[506,2301,2302],{"class":1136},"  },\n",[506,2304,2305,2307,2309],{"class":508,"line":1258},[506,2306,1600],{"class":1142},[506,2308,1146],{"class":1136},[506,2310,2311],{"class":1149},"\"Scan completed\"\n",[506,2313,2314],{"class":508,"line":1271},[506,2315,1402],{"class":1136},[106,2317,2319],{"className":1924,"code":2318,"language":1926,"meta":112,"style":112},"curl -X POST https:\u002F\u002Fdrift.arcnull.com\u002Fapi\u002Fv1\u002Fdrift\u002Fenvironments\u002F$ENV_ID\u002Fscan \\\n  -H \"Authorization: Bearer $JWT\"\n",[114,2320,2321,2340],{"__ignoreMap":112},[506,2322,2323,2325,2327,2329,2332,2335,2338],{"class":508,"line":274},[506,2324,1934],{"class":1933},[506,2326,1937],{"class":1142},[506,2328,1940],{"class":1149},[506,2330,2331],{"class":1149}," https:\u002F\u002Fdrift.arcnull.com\u002Fapi\u002Fv1\u002Fdrift\u002Fenvironments\u002F",[506,2333,2334],{"class":1136},"$ENV_ID",[506,2336,2337],{"class":1149},"\u002Fscan",[506,2339,1946],{"class":1142},[506,2341,2342,2344,2346,2348],{"class":508,"line":262},[506,2343,1951],{"class":1142},[506,2345,1954],{"class":1149},[506,2347,1957],{"class":1136},[506,2349,2350],{"class":1149},"\"\n",[1785,2352],{},[15,2354,2356],{"id":2355},"compare-two-environments","Compare two environments",[106,2358,2360],{"className":1653,"code":2359,"language":1655,"meta":112,"style":112},"POST \u002Fapi\u002Fv1\u002Fdrift\u002Fcompare\n",[114,2361,2362],{"__ignoreMap":112},[506,2363,2364],{"class":508,"line":274},[506,2365,2359],{},[11,2367,2368],{},"Diffs the latest snapshot of one environment against another — useful for \"did staging catch everything production ships?\"",[11,2370,1805],{},[106,2372,2374],{"className":1127,"code":2373,"language":1129,"meta":112,"style":112},"{\n  \"baseEnvId\": \"18a2d7be-4f52-4a86-92b0-52df7d39c7a1\",\n  \"headEnvId\": \"7c1d4e2a-9b3f-4a1c-8d02-3e47f9b8c211\"\n}\n",[114,2375,2376,2380,2391,2401],{"__ignoreMap":112},[506,2377,2378],{"class":508,"line":274},[506,2379,1137],{"class":1136},[506,2381,2382,2385,2387,2389],{"class":508,"line":262},[506,2383,2384],{"class":1142},"  \"baseEnvId\"",[506,2386,1146],{"class":1136},[506,2388,1163],{"class":1149},[506,2390,1153],{"class":1136},[506,2392,2393,2396,2398],{"class":508,"line":357},[506,2394,2395],{"class":1142},"  \"headEnvId\"",[506,2397,1146],{"class":1136},[506,2399,2400],{"class":1149},"\"7c1d4e2a-9b3f-4a1c-8d02-3e47f9b8c211\"\n",[506,2402,2403],{"class":508,"line":1168},[506,2404,1402],{"class":1136},[11,2406,2407],{},"Response:",[106,2409,2411],{"className":1127,"code":2410,"language":1129,"meta":112,"style":112},"{\n  \"success\": true,\n  \"data\": {\n    \"severity\": \"WARNING\",\n    \"breakingCount\": 0,\n    \"warningCount\": 1,\n    \"infoCount\": 3,\n    \"items\": [\n      {\n        \"severity\": \"WARNING\",\n        \"table\": \"orders\",\n        \"column\": \"shipping_country\",\n        \"changeType\": \"COLUMN_ADDED_NOT_NULL_NO_DEFAULT\",\n        \"description\": \"orders.shipping_country added as NOT NULL without default\",\n        \"recommendation\": \"Backfill and add a default before rolling forward.\",\n        \"estimatedImpact\": \"Inserts from older code paths will fail.\"\n      }\n    ]\n  }\n}\n",[114,2412,2413,2417,2427,2433,2445,2456,2467,2478,2485,2490,2501,2513,2525,2537,2549,2561,2571,2576,2581,2586],{"__ignoreMap":112},[506,2414,2415],{"class":508,"line":274},[506,2416,1137],{"class":1136},[506,2418,2419,2421,2423,2425],{"class":508,"line":262},[506,2420,1573],{"class":1142},[506,2422,1146],{"class":1136},[506,2424,1578],{"class":1142},[506,2426,1153],{"class":1136},[506,2428,2429,2431],{"class":508,"line":357},[506,2430,1585],{"class":1142},[506,2432,2229],{"class":1136},[506,2434,2435,2438,2440,2443],{"class":508,"line":1168},[506,2436,2437],{"class":1142},"    \"severity\"",[506,2439,1146],{"class":1136},[506,2441,2442],{"class":1149},"\"WARNING\"",[506,2444,1153],{"class":1136},[506,2446,2447,2450,2452,2454],{"class":508,"line":1181},[506,2448,2449],{"class":1142},"    \"breakingCount\"",[506,2451,1146],{"class":1136},[506,2453,1228],{"class":1142},[506,2455,1153],{"class":1136},[506,2457,2458,2461,2463,2465],{"class":508,"line":1194},[506,2459,2460],{"class":1142},"    \"warningCount\"",[506,2462,1146],{"class":1136},[506,2464,1215],{"class":1142},[506,2466,1153],{"class":1136},[506,2468,2469,2472,2474,2476],{"class":508,"line":1207},[506,2470,2471],{"class":1142},"    \"infoCount\"",[506,2473,1146],{"class":1136},[506,2475,781],{"class":1142},[506,2477,1153],{"class":1136},[506,2479,2480,2483],{"class":508,"line":1220},[506,2481,2482],{"class":1142},"    \"items\"",[506,2484,1290],{"class":1136},[506,2486,2487],{"class":508,"line":1233},[506,2488,2489],{"class":1136},"      {\n",[506,2491,2492,2495,2497,2499],{"class":508,"line":1245},[506,2493,2494],{"class":1142},"        \"severity\"",[506,2496,1146],{"class":1136},[506,2498,2442],{"class":1149},[506,2500,1153],{"class":1136},[506,2502,2503,2506,2508,2511],{"class":508,"line":1258},[506,2504,2505],{"class":1142},"        \"table\"",[506,2507,1146],{"class":1136},[506,2509,2510],{"class":1149},"\"orders\"",[506,2512,1153],{"class":1136},[506,2514,2515,2518,2520,2523],{"class":508,"line":1271},[506,2516,2517],{"class":1142},"        \"column\"",[506,2519,1146],{"class":1136},[506,2521,2522],{"class":1149},"\"shipping_country\"",[506,2524,1153],{"class":1136},[506,2526,2527,2530,2532,2535],{"class":508,"line":1284},[506,2528,2529],{"class":1142},"        \"changeType\"",[506,2531,1146],{"class":1136},[506,2533,2534],{"class":1149},"\"COLUMN_ADDED_NOT_NULL_NO_DEFAULT\"",[506,2536,1153],{"class":1136},[506,2538,2539,2542,2544,2547],{"class":508,"line":1293},[506,2540,2541],{"class":1142},"        \"description\"",[506,2543,1146],{"class":1136},[506,2545,2546],{"class":1149},"\"orders.shipping_country added as NOT NULL without default\"",[506,2548,1153],{"class":1136},[506,2550,2551,2554,2556,2559],{"class":508,"line":1299},[506,2552,2553],{"class":1142},"        \"recommendation\"",[506,2555,1146],{"class":1136},[506,2557,2558],{"class":1149},"\"Backfill and add a default before rolling forward.\"",[506,2560,1153],{"class":1136},[506,2562,2563,2566,2568],{"class":508,"line":1311},[506,2564,2565],{"class":1142},"        \"estimatedImpact\"",[506,2567,1146],{"class":1136},[506,2569,2570],{"class":1149},"\"Inserts from older code paths will fail.\"\n",[506,2572,2573],{"class":508,"line":1324},[506,2574,2575],{"class":1136},"      }\n",[506,2577,2578],{"class":508,"line":1337},[506,2579,2580],{"class":1136},"    ]\n",[506,2582,2583],{"class":508,"line":1350},[506,2584,2585],{"class":1136},"  }\n",[506,2587,2588],{"class":508,"line":1363},[506,2589,1402],{"class":1136},[1785,2591],{},[15,2593,2595],{"id":2594},"migration-analysis","Migration analysis",[11,2597,2598,2599,936,2602,936,2605,2608],{},"Run a proposed ",[114,2600,2601],{},"CREATE TABLE",[114,2603,2604],{},"ALTER TABLE",[114,2606,2607],{},"DROP"," statement through the analyzer to get a pre-flight safety report.",[106,2610,2612],{"className":1653,"code":2611,"language":1655,"meta":112,"style":112},"POST \u002Fapi\u002Fv1\u002Fdrift\u002Fmigrations\u002Fanalyze\n",[114,2613,2614],{"__ignoreMap":112},[506,2615,2616],{"class":508,"line":274},[506,2617,2611],{},[11,2619,1805],{},[106,2621,2623],{"className":1127,"code":2622,"language":1129,"meta":112,"style":112},"{\n  \"sql\": \"ALTER TABLE users ADD COLUMN email_verified BOOLEAN NOT NULL;\",\n  \"environmentId\": \"18a2d7be-4f52-4a86-92b0-52df7d39c7a1\"\n}\n",[114,2624,2625,2629,2641,2651],{"__ignoreMap":112},[506,2626,2627],{"class":508,"line":274},[506,2628,1137],{"class":1136},[506,2630,2631,2634,2636,2639],{"class":508,"line":262},[506,2632,2633],{"class":1142},"  \"sql\"",[506,2635,1146],{"class":1136},[506,2637,2638],{"class":1149},"\"ALTER TABLE users ADD COLUMN email_verified BOOLEAN NOT NULL;\"",[506,2640,1153],{"class":1136},[506,2642,2643,2646,2648],{"class":508,"line":357},[506,2644,2645],{"class":1142},"  \"environmentId\"",[506,2647,1146],{"class":1136},[506,2649,2650],{"class":1149},"\"18a2d7be-4f52-4a86-92b0-52df7d39c7a1\"\n",[506,2652,2653],{"class":508,"line":1168},[506,2654,1402],{"class":1136},[11,2656,2407],{},[106,2658,2660],{"className":1127,"code":2659,"language":1129,"meta":112,"style":112},"{\n  \"success\": true,\n  \"data\": {\n    \"safe\": false,\n    \"overallRisk\": \"HIGH\",\n    \"recommendation\": \"Add as NULL, backfill, then tighten to NOT NULL.\",\n    \"operations\": [\n      {\n        \"sql\": \"ALTER TABLE users ADD COLUMN email_verified BOOLEAN NOT NULL;\",\n        \"operationType\": \"ADD_COLUMN\",\n        \"tableName\": \"users\",\n        \"lockType\": \"ACCESS EXCLUSIVE\",\n        \"estimatedDuration\": \"~45s\",\n        \"tableSize\": 2147483648,\n        \"rowCount\": 1200000,\n        \"safe\": false,\n        \"recommendation\": \"Adding a NOT NULL column without a default rewrites the table.\",\n        \"safeAlternative\": \"ALTER TABLE users ADD COLUMN email_verified BOOLEAN; \u002F* backfill *\u002F; ALTER TABLE users ALTER COLUMN email_verified SET NOT NULL;\"\n      }\n    ]\n  }\n}\n",[114,2661,2662,2666,2676,2682,2693,2705,2717,2724,2728,2739,2751,2762,2774,2786,2798,2810,2821,2832,2842,2846,2850,2854],{"__ignoreMap":112},[506,2663,2664],{"class":508,"line":274},[506,2665,1137],{"class":1136},[506,2667,2668,2670,2672,2674],{"class":508,"line":262},[506,2669,1573],{"class":1142},[506,2671,1146],{"class":1136},[506,2673,1578],{"class":1142},[506,2675,1153],{"class":1136},[506,2677,2678,2680],{"class":508,"line":357},[506,2679,1585],{"class":1142},[506,2681,2229],{"class":1136},[506,2683,2684,2687,2689,2691],{"class":508,"line":1168},[506,2685,2686],{"class":1142},"    \"safe\"",[506,2688,1146],{"class":1136},[506,2690,1266],{"class":1142},[506,2692,1153],{"class":1136},[506,2694,2695,2698,2700,2703],{"class":508,"line":1181},[506,2696,2697],{"class":1142},"    \"overallRisk\"",[506,2699,1146],{"class":1136},[506,2701,2702],{"class":1149},"\"HIGH\"",[506,2704,1153],{"class":1136},[506,2706,2707,2710,2712,2715],{"class":508,"line":1194},[506,2708,2709],{"class":1142},"    \"recommendation\"",[506,2711,1146],{"class":1136},[506,2713,2714],{"class":1149},"\"Add as NULL, backfill, then tighten to NOT NULL.\"",[506,2716,1153],{"class":1136},[506,2718,2719,2722],{"class":508,"line":1207},[506,2720,2721],{"class":1142},"    \"operations\"",[506,2723,1290],{"class":1136},[506,2725,2726],{"class":508,"line":1220},[506,2727,2489],{"class":1136},[506,2729,2730,2733,2735,2737],{"class":508,"line":1233},[506,2731,2732],{"class":1142},"        \"sql\"",[506,2734,1146],{"class":1136},[506,2736,2638],{"class":1149},[506,2738,1153],{"class":1136},[506,2740,2741,2744,2746,2749],{"class":508,"line":1245},[506,2742,2743],{"class":1142},"        \"operationType\"",[506,2745,1146],{"class":1136},[506,2747,2748],{"class":1149},"\"ADD_COLUMN\"",[506,2750,1153],{"class":1136},[506,2752,2753,2756,2758,2760],{"class":508,"line":1258},[506,2754,2755],{"class":1142},"        \"tableName\"",[506,2757,1146],{"class":1136},[506,2759,1319],{"class":1149},[506,2761,1153],{"class":1136},[506,2763,2764,2767,2769,2772],{"class":508,"line":1271},[506,2765,2766],{"class":1142},"        \"lockType\"",[506,2768,1146],{"class":1136},[506,2770,2771],{"class":1149},"\"ACCESS EXCLUSIVE\"",[506,2773,1153],{"class":1136},[506,2775,2776,2779,2781,2784],{"class":508,"line":1284},[506,2777,2778],{"class":1142},"        \"estimatedDuration\"",[506,2780,1146],{"class":1136},[506,2782,2783],{"class":1149},"\"~45s\"",[506,2785,1153],{"class":1136},[506,2787,2788,2791,2793,2796],{"class":508,"line":1293},[506,2789,2790],{"class":1142},"        \"tableSize\"",[506,2792,1146],{"class":1136},[506,2794,2795],{"class":1142},"2147483648",[506,2797,1153],{"class":1136},[506,2799,2800,2803,2805,2808],{"class":508,"line":1299},[506,2801,2802],{"class":1142},"        \"rowCount\"",[506,2804,1146],{"class":1136},[506,2806,2807],{"class":1142},"1200000",[506,2809,1153],{"class":1136},[506,2811,2812,2815,2817,2819],{"class":508,"line":1311},[506,2813,2814],{"class":1142},"        \"safe\"",[506,2816,1146],{"class":1136},[506,2818,1266],{"class":1142},[506,2820,1153],{"class":1136},[506,2822,2823,2825,2827,2830],{"class":508,"line":1324},[506,2824,2553],{"class":1142},[506,2826,1146],{"class":1136},[506,2828,2829],{"class":1149},"\"Adding a NOT NULL column without a default rewrites the table.\"",[506,2831,1153],{"class":1136},[506,2833,2834,2837,2839],{"class":508,"line":1337},[506,2835,2836],{"class":1142},"        \"safeAlternative\"",[506,2838,1146],{"class":1136},[506,2840,2841],{"class":1149},"\"ALTER TABLE users ADD COLUMN email_verified BOOLEAN; \u002F* backfill *\u002F; ALTER TABLE users ALTER COLUMN email_verified SET NOT NULL;\"\n",[506,2843,2844],{"class":508,"line":1350},[506,2845,2575],{"class":1136},[506,2847,2848],{"class":508,"line":1363},[506,2849,2580],{"class":1136},[506,2851,2852],{"class":508,"line":1376},[506,2853,2585],{"class":1136},[506,2855,2856],{"class":508,"line":1387},[506,2857,1402],{"class":1136},[1785,2859],{},[15,2861,909],{"id":908},[303,2863,2865],{"id":2864},"list-events","List events",[106,2867,2869],{"className":1653,"code":2868,"language":1655,"meta":112,"style":112},"GET \u002Fapi\u002Fv1\u002Fdrift\u002Fevents?page=0&size=20\n",[114,2870,2871],{"__ignoreMap":112},[506,2872,2873],{"class":508,"line":274},[506,2874,2868],{},[11,2876,2877,2878,2881],{},"Paginated. Default ",[114,2879,2880],{},"size"," is 20, max 100.",[106,2883,2885],{"className":1127,"code":2884,"language":1129,"meta":112,"style":112},"{\n  \"success\": true,\n  \"data\": {\n    \"content\": [\n      {\n        \"id\": \"f6c3a3f0-7c5e-4a8c-b4b2-9f3b1f0c4a55\",\n        \"envId\": \"18a2d7be-4f52-4a86-92b0-52df7d39c7a1\",\n        \"baselineId\": \"0ce3b9a2-...\",\n        \"currentId\": \"b7d1a3c4-...\",\n        \"severity\": \"BREAKING\",\n        \"breakingCount\": 1,\n        \"warningCount\": 0,\n        \"infoCount\": 2,\n        \"acknowledged\": false,\n        \"detectedAt\": \"2026-04-20T15:10:22.187Z\",\n        \"items\": [ \u002F* ... *\u002F ]\n      }\n    ],\n    \"totalElements\": 34,\n    \"totalPages\": 2,\n    \"number\": 0,\n    \"size\": 20\n  }\n}\n",[114,2886,2887,2891,2901,2907,2914,2918,2929,2940,2952,2964,2974,2985,2996,3007,3018,3029,3043,3047,3052,3064,3075,3086,3096,3100],{"__ignoreMap":112},[506,2888,2889],{"class":508,"line":274},[506,2890,1137],{"class":1136},[506,2892,2893,2895,2897,2899],{"class":508,"line":262},[506,2894,1573],{"class":1142},[506,2896,1146],{"class":1136},[506,2898,1578],{"class":1142},[506,2900,1153],{"class":1136},[506,2902,2903,2905],{"class":508,"line":357},[506,2904,1585],{"class":1142},[506,2906,2229],{"class":1136},[506,2908,2909,2912],{"class":508,"line":1168},[506,2910,2911],{"class":1142},"    \"content\"",[506,2913,1290],{"class":1136},[506,2915,2916],{"class":508,"line":1181},[506,2917,2489],{"class":1136},[506,2919,2920,2923,2925,2927],{"class":508,"line":1194},[506,2921,2922],{"class":1142},"        \"id\"",[506,2924,1146],{"class":1136},[506,2926,1150],{"class":1149},[506,2928,1153],{"class":1136},[506,2930,2931,2934,2936,2938],{"class":508,"line":1207},[506,2932,2933],{"class":1142},"        \"envId\"",[506,2935,1146],{"class":1136},[506,2937,1163],{"class":1149},[506,2939,1153],{"class":1136},[506,2941,2942,2945,2947,2950],{"class":508,"line":1220},[506,2943,2944],{"class":1142},"        \"baselineId\"",[506,2946,1146],{"class":1136},[506,2948,2949],{"class":1149},"\"0ce3b9a2-...\"",[506,2951,1153],{"class":1136},[506,2953,2954,2957,2959,2962],{"class":508,"line":1233},[506,2955,2956],{"class":1142},"        \"currentId\"",[506,2958,1146],{"class":1136},[506,2960,2961],{"class":1149},"\"b7d1a3c4-...\"",[506,2963,1153],{"class":1136},[506,2965,2966,2968,2970,2972],{"class":508,"line":1245},[506,2967,2494],{"class":1142},[506,2969,1146],{"class":1136},[506,2971,1202],{"class":1149},[506,2973,1153],{"class":1136},[506,2975,2976,2979,2981,2983],{"class":508,"line":1258},[506,2977,2978],{"class":1142},"        \"breakingCount\"",[506,2980,1146],{"class":1136},[506,2982,1215],{"class":1142},[506,2984,1153],{"class":1136},[506,2986,2987,2990,2992,2994],{"class":508,"line":1271},[506,2988,2989],{"class":1142},"        \"warningCount\"",[506,2991,1146],{"class":1136},[506,2993,1228],{"class":1142},[506,2995,1153],{"class":1136},[506,2997,2998,3001,3003,3005],{"class":508,"line":1284},[506,2999,3000],{"class":1142},"        \"infoCount\"",[506,3002,1146],{"class":1136},[506,3004,70],{"class":1142},[506,3006,1153],{"class":1136},[506,3008,3009,3012,3014,3016],{"class":508,"line":1293},[506,3010,3011],{"class":1142},"        \"acknowledged\"",[506,3013,1146],{"class":1136},[506,3015,1266],{"class":1142},[506,3017,1153],{"class":1136},[506,3019,3020,3023,3025,3027],{"class":508,"line":1299},[506,3021,3022],{"class":1142},"        \"detectedAt\"",[506,3024,1146],{"class":1136},[506,3026,1279],{"class":1149},[506,3028,1153],{"class":1136},[506,3030,3031,3034,3037,3040],{"class":508,"line":1311},[506,3032,3033],{"class":1142},"        \"items\"",[506,3035,3036],{"class":1136},": [ ",[506,3038,3039],{"class":1591},"\u002F* ... *\u002F",[506,3041,3042],{"class":1136}," ]\n",[506,3044,3045],{"class":508,"line":1324},[506,3046,2575],{"class":1136},[506,3048,3049],{"class":508,"line":1337},[506,3050,3051],{"class":1136},"    ],\n",[506,3053,3054,3057,3059,3062],{"class":508,"line":1350},[506,3055,3056],{"class":1142},"    \"totalElements\"",[506,3058,1146],{"class":1136},[506,3060,3061],{"class":1142},"34",[506,3063,1153],{"class":1136},[506,3065,3066,3069,3071,3073],{"class":508,"line":1363},[506,3067,3068],{"class":1142},"    \"totalPages\"",[506,3070,1146],{"class":1136},[506,3072,70],{"class":1142},[506,3074,1153],{"class":1136},[506,3076,3077,3080,3082,3084],{"class":508,"line":1376},[506,3078,3079],{"class":1142},"    \"number\"",[506,3081,1146],{"class":1136},[506,3083,1228],{"class":1142},[506,3085,1153],{"class":1136},[506,3087,3088,3091,3093],{"class":508,"line":1387},[506,3089,3090],{"class":1142},"    \"size\"",[506,3092,1146],{"class":1136},[506,3094,3095],{"class":1142},"20\n",[506,3097,3098],{"class":508,"line":1393},[506,3099,2585],{"class":1136},[506,3101,3102],{"class":508,"line":1399},[506,3103,1402],{"class":1136},[303,3105,3107],{"id":3106},"get-a-single-event","Get a single event",[106,3109,3111],{"className":1653,"code":3110,"language":1655,"meta":112,"style":112},"GET \u002Fapi\u002Fv1\u002Fdrift\u002Fevents\u002F{id}\n",[114,3112,3113],{"__ignoreMap":112},[506,3114,3115],{"class":508,"line":274},[506,3116,3110],{},[303,3118,3120],{"id":3119},"acknowledge-an-event","Acknowledge an event",[106,3122,3124],{"className":1653,"code":3123,"language":1655,"meta":112,"style":112},"POST \u002Fapi\u002Fv1\u002Fdrift\u002Fevents\u002F{id}\u002Facknowledge\n",[114,3125,3126],{"__ignoreMap":112},[506,3127,3128],{"class":508,"line":274},[506,3129,3123],{},[11,3131,3132],{},"Marks the event as reviewed. Does not affect the baseline.",[1785,3134],{},[15,3136,3138],{"id":3137},"response-envelope-reference","Response envelope reference",[38,3140,3141,3154],{},[41,3142,3143],{},[44,3144,3145,3148,3151],{},[47,3146,3147],{},"Field",[47,3149,3150],{},"Type",[47,3152,3153],{},"Notes",[60,3155,3156,3176,3194,3208,3224],{},[44,3157,3158,3163,3168],{},[65,3159,3160],{},[114,3161,3162],{},"success",[65,3164,3165],{},[114,3166,3167],{},"boolean",[65,3169,3170,3172,3173,3175],{},[114,3171,1578],{}," for 2xx, ",[114,3174,1266],{}," otherwise",[44,3177,3178,3183,3188],{},[65,3179,3180],{},[114,3181,3182],{},"data",[65,3184,3185],{},[114,3186,3187],{},"T | null",[65,3189,3190,3191,3193],{},"Typed payload, ",[114,3192,1617],{}," on error",[44,3195,3196,3200,3205],{},[65,3197,3198],{},[114,3199,1692],{},[65,3201,3202],{},[114,3203,3204],{},"string?",[65,3206,3207],{},"Human-readable hint, useful for surfacing in UIs",[44,3209,3210,3214,3218],{},[65,3211,3212],{},[114,3213,1689],{},[65,3215,3216],{},[114,3217,3204],{},[65,3219,3220,3221,424],{},"Machine-readable code on error (e.g. ",[114,3222,3223],{},"BAD_REQUEST",[44,3225,3226,3231,3236],{},[65,3227,3228],{},[114,3229,3230],{},"timestamp",[65,3232,3233],{},[114,3234,3235],{},"string",[65,3237,3238],{},"ISO-8601 response time, useful for correlating with logs",[674,3240,3241],{},"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 .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}",{"title":112,"searchDepth":262,"depth":262,"links":3243},[3244,3245,3246,3247,3253,3256,3257,3258,3263],{"id":1636,"depth":262,"text":1637},{"id":1646,"depth":262,"text":1647},{"id":1678,"depth":262,"text":1679},{"id":1789,"depth":262,"text":52,"children":3248},[3249,3250,3251,3252],{"id":1792,"depth":357,"text":1793},{"id":2012,"depth":357,"text":2013},{"id":2148,"depth":357,"text":2149},{"id":2161,"depth":357,"text":2162},{"id":2186,"depth":262,"text":2187,"children":3254},[3255],{"id":2190,"depth":357,"text":2191},{"id":2355,"depth":262,"text":2356},{"id":2594,"depth":262,"text":2595},{"id":908,"depth":262,"text":909,"children":3259},[3260,3261,3262],{"id":2864,"depth":357,"text":2865},{"id":3106,"depth":357,"text":3107},{"id":3119,"depth":357,"text":3120},{"id":3137,"depth":262,"text":3138},"HTTP API for Drift Scanner. Register and list environments, trigger scans, diff environments, analyze migrations, and paginate through drift events.",{},{"title":1041,"description":3264},"docs\u002Fdrift-scanner\u002Fapi-reference","W4mKaRYV04G01wZEZupk-fh7Yw9IasIFf39Upwq5F6I",{"id":1063,"title":196,"body":3270,"description":1544,"extension":271,"meta":3620,"navigation":273,"order":1168,"path":223,"section":276,"seo":3621,"stem":1547,"updatedAt":279,"__hash__":1548},{"type":8,"value":3271,"toc":3609},[3272,3274,3276,3278,3283,3297,3299,3304,3306,3308,3312,3520,3526,3528,3530,3532,3537,3575,3577,3581,3583,3587,3589,3595,3597,3607],[11,3273,1068],{},[15,3275,1072],{"id":1071},[303,3277,204],{"id":1075},[11,3279,1078,3280,1084],{},[23,3281,1083],{"href":1081,"rel":3282},[27],[169,3284,3285,3289,3293],{},[172,3286,3287,1091],{},[114,3288,955],{},[172,3290,3291,1096],{},[114,3292,951],{},[172,3294,3295,1101],{},[114,3296,948],{},[11,3298,1104],{},[106,3300,3302],{"className":3301,"code":1108,"language":111,"meta":112},[109],[114,3303,1108],{"__ignoreMap":112},[11,3305,1113],{},[303,3307,1117],{"id":1116},[11,3309,1120,3310,1124],{},[114,3311,1123],{},[106,3313,3314],{"className":1127,"code":1128,"language":1129,"meta":112,"style":112},[114,3315,3316,3320,3330,3340,3350,3360,3370,3380,3390,3400,3410,3420,3430,3436,3440,3450,3460,3470,3480,3490,3500,3508,3512,3516],{"__ignoreMap":112},[506,3317,3318],{"class":508,"line":274},[506,3319,1137],{"class":1136},[506,3321,3322,3324,3326,3328],{"class":508,"line":262},[506,3323,1143],{"class":1142},[506,3325,1146],{"class":1136},[506,3327,1150],{"class":1149},[506,3329,1153],{"class":1136},[506,3331,3332,3334,3336,3338],{"class":508,"line":357},[506,3333,1158],{"class":1142},[506,3335,1146],{"class":1136},[506,3337,1163],{"class":1149},[506,3339,1153],{"class":1136},[506,3341,3342,3344,3346,3348],{"class":508,"line":1168},[506,3343,1171],{"class":1142},[506,3345,1146],{"class":1136},[506,3347,1176],{"class":1149},[506,3349,1153],{"class":1136},[506,3351,3352,3354,3356,3358],{"class":508,"line":1181},[506,3353,1184],{"class":1142},[506,3355,1146],{"class":1136},[506,3357,1189],{"class":1149},[506,3359,1153],{"class":1136},[506,3361,3362,3364,3366,3368],{"class":508,"line":1194},[506,3363,1197],{"class":1142},[506,3365,1146],{"class":1136},[506,3367,1202],{"class":1149},[506,3369,1153],{"class":1136},[506,3371,3372,3374,3376,3378],{"class":508,"line":1207},[506,3373,1210],{"class":1142},[506,3375,1146],{"class":1136},[506,3377,1215],{"class":1142},[506,3379,1153],{"class":1136},[506,3381,3382,3384,3386,3388],{"class":508,"line":1220},[506,3383,1223],{"class":1142},[506,3385,1146],{"class":1136},[506,3387,1228],{"class":1142},[506,3389,1153],{"class":1136},[506,3391,3392,3394,3396,3398],{"class":508,"line":1233},[506,3393,1236],{"class":1142},[506,3395,1146],{"class":1136},[506,3397,70],{"class":1142},[506,3399,1153],{"class":1136},[506,3401,3402,3404,3406,3408],{"class":508,"line":1245},[506,3403,1248],{"class":1142},[506,3405,1146],{"class":1136},[506,3407,1253],{"class":1149},[506,3409,1153],{"class":1136},[506,3411,3412,3414,3416,3418],{"class":508,"line":1258},[506,3413,1261],{"class":1142},[506,3415,1146],{"class":1136},[506,3417,1266],{"class":1142},[506,3419,1153],{"class":1136},[506,3421,3422,3424,3426,3428],{"class":508,"line":1271},[506,3423,1274],{"class":1142},[506,3425,1146],{"class":1136},[506,3427,1279],{"class":1149},[506,3429,1153],{"class":1136},[506,3431,3432,3434],{"class":508,"line":1284},[506,3433,1287],{"class":1142},[506,3435,1290],{"class":1136},[506,3437,3438],{"class":508,"line":1293},[506,3439,1296],{"class":1136},[506,3441,3442,3444,3446,3448],{"class":508,"line":1299},[506,3443,1302],{"class":1142},[506,3445,1146],{"class":1136},[506,3447,1202],{"class":1149},[506,3449,1153],{"class":1136},[506,3451,3452,3454,3456,3458],{"class":508,"line":1311},[506,3453,1314],{"class":1142},[506,3455,1146],{"class":1136},[506,3457,1319],{"class":1149},[506,3459,1153],{"class":1136},[506,3461,3462,3464,3466,3468],{"class":508,"line":1324},[506,3463,1327],{"class":1142},[506,3465,1146],{"class":1136},[506,3467,1332],{"class":1149},[506,3469,1153],{"class":1136},[506,3471,3472,3474,3476,3478],{"class":508,"line":1337},[506,3473,1340],{"class":1142},[506,3475,1146],{"class":1136},[506,3477,1345],{"class":1149},[506,3479,1153],{"class":1136},[506,3481,3482,3484,3486,3488],{"class":508,"line":1350},[506,3483,1353],{"class":1142},[506,3485,1146],{"class":1136},[506,3487,1358],{"class":1149},[506,3489,1153],{"class":1136},[506,3491,3492,3494,3496,3498],{"class":508,"line":1363},[506,3493,1366],{"class":1142},[506,3495,1146],{"class":1136},[506,3497,1371],{"class":1149},[506,3499,1153],{"class":1136},[506,3501,3502,3504,3506],{"class":508,"line":1376},[506,3503,1379],{"class":1142},[506,3505,1146],{"class":1136},[506,3507,1384],{"class":1149},[506,3509,3510],{"class":508,"line":1387},[506,3511,1390],{"class":1136},[506,3513,3514],{"class":508,"line":1393},[506,3515,1396],{"class":1136},[506,3517,3518],{"class":508,"line":1399},[506,3519,1402],{"class":1136},[11,3521,1405,3522,1409,3524,1413],{},[114,3523,1408],{},[114,3525,1412],{},[303,3527,216],{"id":1416},[11,3529,1419],{},[15,3531,1423],{"id":1422},[11,3533,1426,3534,1432],{},[23,3535,1431],{"href":1429,"rel":3536},[27],[38,3538,3539,3549],{},[41,3540,3541],{},[44,3542,3543,3545,3547],{},[47,3544,1441],{},[47,3546,1444],{},[47,3548,1447],{},[60,3550,3551,3559,3567],{},[44,3552,3553,3555,3557],{},[65,3554,1117],{},[65,3556,1456],{},[65,3558,1459],{},[44,3560,3561,3563,3565],{},[65,3562,204],{},[65,3564,1456],{},[65,3566,1459],{},[44,3568,3569,3571,3573],{},[65,3570,216],{},[65,3572,1474],{},[65,3574,1477],{},[11,3576,1480],{},[11,3578,1483,3579,1486],{},[114,3580,994],{},[15,3582,1490],{"id":1489},[11,3584,1493,3585,1497],{},[114,3586,1496],{},[15,3588,1501],{"id":1500},[11,3590,1504,3591,1508,3593,1511],{},[101,3592,1507],{},[114,3594,948],{},[15,3596,1515],{"id":1514},[169,3598,3599,3601,3603,3605],{},[172,3600,1520],{},[172,3602,1523],{},[172,3604,1526],{},[172,3606,1529],{},[674,3608,1532],{},{"title":112,"searchDepth":262,"depth":262,"links":3610},[3611,3616,3617,3618,3619],{"id":1071,"depth":262,"text":1072,"children":3612},[3613,3614,3615],{"id":1075,"depth":357,"text":204},{"id":1116,"depth":357,"text":1117},{"id":1416,"depth":357,"text":216},{"id":1422,"depth":262,"text":1423},{"id":1489,"depth":262,"text":1490},{"id":1500,"depth":262,"text":1501},{"id":1514,"depth":262,"text":1515},{},{"title":196,"description":1544},[3623,3786,3835,4063,4310,4663],{"id":5,"title":6,"body":3624,"description":270,"extension":271,"meta":3784,"navigation":273,"order":274,"path":275,"section":276,"seo":3785,"stem":278,"updatedAt":279,"__hash__":280},{"type":8,"value":3625,"toc":3776},[3626,3628,3630,3635,3637,3639,3675,3677,3679,3683,3688,3700,3710,3712,3714,3716,3718,3730,3732,3736,3750,3754,3756,3760,3762],[11,3627,13],{},[15,3629,18],{"id":17},[11,3631,21,3632,29],{},[23,3633,28],{"href":25,"rel":3634},[27],[15,3636,33],{"id":32},[11,3638,36],{},[38,3640,3641,3653],{},[41,3642,3643],{},[44,3644,3645,3647,3649,3651],{},[47,3646,49],{},[47,3648,52],{},[47,3650,55],{},[47,3652,58],{},[60,3654,3655,3665],{},[44,3656,3657,3659,3661,3663],{},[65,3658,67],{},[65,3660,70],{},[65,3662,73],{},[65,3664,76],{},[44,3666,3667,3669,3671,3673],{},[65,3668,81],{},[65,3670,84],{},[65,3672,73],{},[65,3674,89],{},[11,3676,92],{},[15,3678,96],{"id":95},[11,3680,99,3681,104],{},[101,3682,103],{},[106,3684,3686],{"className":3685,"code":110,"language":111,"meta":112},[109],[114,3687,110],{"__ignoreMap":112},[11,3689,118,3690,122,3692,126,3694,130,3696,134,3698,137],{},[101,3691,121],{},[114,3693,125],{},[114,3695,129],{},[114,3697,133],{},[114,3699,125],{},[139,3701,3702],{},[11,3703,3704,146,3706,150,3708,154],{},[101,3705,145],{},[114,3707,149],{},[114,3709,153],{},[11,3711,157],{},[15,3713,161],{"id":160},[11,3715,164],{},[11,3717,167],{},[169,3719,3720,3722,3724,3726,3728],{},[172,3721,174],{},[172,3723,177],{},[172,3725,180],{},[172,3727,183],{},[172,3729,186],{},[15,3731,190],{"id":189},[11,3733,193,3734,197],{},[101,3735,196],{},[169,3737,3738,3742,3746],{},[172,3739,3740,205],{},[101,3741,204],{},[172,3743,3744,211],{},[101,3745,210],{},[172,3747,3748,217],{},[101,3749,216],{},[11,3751,220,3752,224],{},[23,3753,196],{"href":223},[15,3755,228],{"id":227},[11,3757,231,3758,235],{},[114,3759,234],{},[11,3761,238],{},[169,3763,3764,3768,3772],{},[172,3765,243,3766],{},[23,3767,52],{"href":246},[172,3769,249,3770],{},[23,3771,253],{"href":252},[172,3773,256,3774],{},[23,3775,260],{"href":259},{"title":112,"searchDepth":262,"depth":262,"links":3777},[3778,3779,3780,3781,3782,3783],{"id":17,"depth":262,"text":18},{"id":32,"depth":262,"text":33},{"id":95,"depth":262,"text":96},{"id":160,"depth":262,"text":161},{"id":189,"depth":262,"text":190},{"id":227,"depth":262,"text":228},{},{"title":6,"description":270},{"id":282,"title":283,"body":3787,"description":360,"extension":271,"meta":3833,"navigation":273,"order":274,"path":362,"section":363,"seo":3834,"stem":365,"updatedAt":279,"__hash__":366},{"type":8,"value":3788,"toc":3826},[3789,3791,3796,3798,3800,3802,3806,3808,3810,3814,3816],[11,3790,288],{},[11,3792,291,3793,297],{},[23,3794,296],{"href":294,"rel":3795},[27],[15,3797,301],{"id":300},[303,3799,305],{"id":276},[11,3801,308],{},[11,3803,311,3804,315],{},[23,3805,314],{"href":275},[303,3807,319],{"id":318},[11,3809,322],{},[11,3811,256,3812,315],{},[23,3813,328],{"href":327},[15,3815,332],{"id":331},[11,3817,335,3818,340,3820,346,3823,315],{},[23,3819,339],{"href":338},[23,3821,345],{"href":343,"rel":3822},[27],[23,3824,351],{"href":349,"rel":3825},[27],{"title":112,"searchDepth":262,"depth":262,"links":3827},[3828,3832],{"id":300,"depth":262,"text":301,"children":3829},[3830,3831],{"id":276,"depth":357,"text":305},{"id":318,"depth":357,"text":319},{"id":331,"depth":262,"text":332},{},{"title":283,"description":360},{"id":368,"title":52,"body":3836,"description":688,"extension":271,"meta":4061,"navigation":273,"order":262,"path":246,"section":276,"seo":4062,"stem":691,"updatedAt":279,"__hash__":692},{"type":8,"value":3837,"toc":4050},[3838,3840,3842,3846,3851,3853,3858,3860,3862,3864,3916,3918,3920,3924,3940,3944,3946,3948,3978,3980,3982,3984,4000,4002,4032,4036,4038,4044,4046,4048],[11,3839,373],{},[15,3841,377],{"id":376},[11,3843,380,3844,384],{},[114,3845,383],{},[106,3847,3849],{"className":3848,"code":388,"language":111,"meta":112},[109],[114,3850,388],{"__ignoreMap":112},[11,3852,393],{},[106,3854,3856],{"className":3855,"code":397,"language":111,"meta":112},[109],[114,3857,397],{"__ignoreMap":112},[11,3859,402],{},[303,3861,406],{"id":405},[11,3863,409],{},[169,3865,3866,3874,3884,3890,3896,3906],{},[172,3867,3868,417,3870,150,3872,424],{},[101,3869,416],{},[114,3871,420],{},[114,3873,423],{},[172,3875,3876,417,3878,150,3880,150,3882,424],{},[101,3877,429],{},[114,3879,432],{},[114,3881,435],{},[114,3883,438],{},[172,3885,3886,417,3888,446],{},[101,3887,443],{},[114,3889,149],{},[172,3891,3892,417,3894,424],{},[101,3893,451],{},[114,3895,153],{},[172,3897,3898,417,3900,462,3902,417,3904,424],{},[101,3899,458],{},[114,3901,461],{},[101,3903,465],{},[114,3905,468],{},[172,3907,3908,474,3910,478,3912,150,3914,424],{},[101,3909,473],{},[101,3911,477],{},[114,3913,481],{},[114,3915,484],{},[11,3917,487],{},[15,3919,491],{"id":490},[11,3921,494,3922,497],{},[114,3923,125],{},[106,3925,3926],{"className":500,"code":501,"language":502,"meta":112,"style":112},[114,3927,3928,3932,3936],{"__ignoreMap":112},[506,3929,3930],{"class":508,"line":274},[506,3931,511],{},[506,3933,3934],{"class":508,"line":262},[506,3935,516],{},[506,3937,3938],{"class":508,"line":357},[506,3939,521],{},[11,3941,524,3942,528],{},[101,3943,527],{},[15,3945,532],{"id":531},[11,3947,535],{},[169,3949,3950,3954,3958,3962,3966,3970,3974],{},[172,3951,3952,543],{},[101,3953,542],{},[172,3955,3956,549],{},[101,3957,548],{},[172,3959,3960,555],{},[101,3961,554],{},[172,3963,3964,561],{},[101,3965,560],{},[172,3967,3968,566],{},[101,3969,180],{},[172,3971,3972,571],{},[101,3973,183],{},[172,3975,3976,576],{},[101,3977,186],{},[11,3979,579],{},[15,3981,583],{"id":582},[11,3983,586],{},[169,3985,3986,3992,3996],{},[172,3987,3988,594,3990,315],{},[101,3989,593],{},[114,3991,125],{},[172,3993,3994,602],{},[101,3995,601],{},[172,3997,3998,602],{},[101,3999,607],{},[15,4001,611],{"id":610},[38,4003,4004,4012],{},[41,4005,4006],{},[44,4007,4008,4010],{},[47,4009,49],{},[47,4011,622],{},[60,4013,4014,4020,4026],{},[44,4015,4016,4018],{},[65,4017,67],{},[65,4019,70],{},[44,4021,4022,4024],{},[65,4023,81],{},[65,4025,84],{},[44,4027,4028,4030],{},[65,4029,641],{},[65,4031,644],{},[11,4033,647,4034,651],{},[114,4035,650],{},[15,4037,655],{"id":654},[11,4039,658,4040,661,4042,665],{},[114,4041,234],{},[114,4043,664],{},[15,4045,669],{"id":668},[11,4047,672],{},[674,4049,676],{},{"title":112,"searchDepth":262,"depth":262,"links":4051},[4052,4055,4056,4057,4058,4059,4060],{"id":376,"depth":262,"text":377,"children":4053},[4054],{"id":405,"depth":357,"text":406},{"id":490,"depth":262,"text":491},{"id":531,"depth":262,"text":532},{"id":582,"depth":262,"text":583},{"id":610,"depth":262,"text":611},{"id":654,"depth":262,"text":655},{"id":668,"depth":262,"text":669},{},{"title":52,"description":688},{"id":694,"title":253,"body":4064,"description":1057,"extension":271,"meta":4308,"navigation":273,"order":357,"path":252,"section":276,"seo":4309,"stem":1060,"updatedAt":279,"__hash__":1061},{"type":8,"value":4065,"toc":4294},[4066,4072,4074,4078,4080,4082,4084,4098,4100,4102,4106,4142,4144,4146,4148,4150,4160,4162,4164,4174,4176,4178,4192,4208,4210,4214,4262,4266,4268,4274,4276,4278,4284,4286,4288],[11,4067,699,4068,474,4070,706],{},[101,4069,702],{},[101,4071,705],{},[15,4073,710],{"id":709},[11,4075,713,4076,717],{},[101,4077,716],{},[11,4079,720],{},[15,4081,724],{"id":723},[11,4083,727],{},[729,4085,4086,4088,4092,4094,4096],{},[172,4087,733],{},[172,4089,736,4090],{},[114,4091,125],{},[172,4093,741],{},[172,4095,744],{},[172,4097,747],{},[11,4099,750],{},[15,4101,754],{"id":753},[11,4103,757,4104,761],{},[114,4105,760],{},[38,4107,4108,4116],{},[41,4109,4110],{},[44,4111,4112,4114],{},[47,4113,49],{},[47,4115,772],{},[60,4117,4118,4124,4130,4136],{},[44,4119,4120,4122],{},[65,4121,67],{},[65,4123,781],{},[44,4125,4126,4128],{},[65,4127,81],{},[65,4129,84],{},[44,4131,4132,4134],{},[65,4133,792],{},[65,4135,795],{},[44,4137,4138,4140],{},[65,4139,800],{},[65,4141,803],{},[15,4143,807],{"id":806},[11,4145,810],{},[303,4147,814],{"id":813},[11,4149,817],{},[169,4151,4152,4154,4156,4158],{},[172,4153,822],{},[172,4155,825],{},[172,4157,828],{},[172,4159,831],{},[303,4161,835],{"id":834},[11,4163,838],{},[169,4165,4166,4170,4172],{},[172,4167,843,4168,847],{},[114,4169,846],{},[172,4171,850],{},[172,4173,853],{},[303,4175,857],{"id":856},[11,4177,860],{},[169,4179,4180,4182,4184,4190],{},[172,4181,865],{},[172,4183,868],{},[172,4185,871,4186,875,4188,424],{},[114,4187,874],{},[114,4189,846],{},[172,4191,880],{},[11,4193,883,4194,150,4196,150,4198,150,4200,150,4202,150,4204,901,4206,905],{},[114,4195,886],{},[114,4197,38],{},[114,4199,891],{},[114,4201,894],{},[114,4203,897],{},[114,4205,900],{},[114,4207,904],{},[15,4209,909],{"id":908},[11,4211,912,4212,916],{},[114,4213,915],{},[169,4215,4216,4220,4224,4230,4240,4248,4252,4256],{},[172,4217,4218,924],{},[114,4219,923],{},[172,4221,4222,930],{},[114,4223,929],{},[172,4225,4226,936,4228,940],{},[114,4227,935],{},[114,4229,939],{},[172,4231,4232,945,4234,150,4236,952,4238],{},[114,4233,886],{},[114,4235,948],{},[114,4237,951],{},[114,4239,955],{},[172,4241,4242,150,4244,150,4246],{},[114,4243,960],{},[114,4245,963],{},[114,4247,966],{},[172,4249,4250,972],{},[114,4251,971],{},[172,4253,4254,978],{},[114,4255,977],{},[172,4257,4258,984,4260,988],{},[114,4259,983],{},[114,4261,987],{},[11,4263,991,4264,315],{},[114,4265,994],{},[15,4267,998],{"id":997},[11,4269,1001,4270,1005,4272,1009],{},[114,4271,1004],{},[101,4273,1008],{},[15,4275,1013],{"id":1012},[11,4277,1016],{},[169,4279,4280,4282],{},[172,4281,1021],{},[172,4283,1024],{},[11,4285,1027],{},[15,4287,1031],{"id":1030},[11,4289,1034,4290,1038,4292,1042],{},[114,4291,1037],{},[23,4293,1041],{"href":259},{"title":112,"searchDepth":262,"depth":262,"links":4295},[4296,4297,4298,4299,4304,4305,4306,4307],{"id":709,"depth":262,"text":710},{"id":723,"depth":262,"text":724},{"id":753,"depth":262,"text":754},{"id":806,"depth":262,"text":807,"children":4300},[4301,4302,4303],{"id":813,"depth":357,"text":814},{"id":834,"depth":357,"text":835},{"id":856,"depth":357,"text":857},{"id":908,"depth":262,"text":909},{"id":997,"depth":262,"text":998},{"id":1012,"depth":262,"text":1013},{"id":1030,"depth":262,"text":1031},{},{"title":253,"description":1057},{"id":1063,"title":196,"body":4311,"description":1544,"extension":271,"meta":4661,"navigation":273,"order":1168,"path":223,"section":276,"seo":4662,"stem":1547,"updatedAt":279,"__hash__":1548},{"type":8,"value":4312,"toc":4650},[4313,4315,4317,4319,4324,4338,4340,4345,4347,4349,4353,4561,4567,4569,4571,4573,4578,4616,4618,4622,4624,4628,4630,4636,4638,4648],[11,4314,1068],{},[15,4316,1072],{"id":1071},[303,4318,204],{"id":1075},[11,4320,1078,4321,1084],{},[23,4322,1083],{"href":1081,"rel":4323},[27],[169,4325,4326,4330,4334],{},[172,4327,4328,1091],{},[114,4329,955],{},[172,4331,4332,1096],{},[114,4333,951],{},[172,4335,4336,1101],{},[114,4337,948],{},[11,4339,1104],{},[106,4341,4343],{"className":4342,"code":1108,"language":111,"meta":112},[109],[114,4344,1108],{"__ignoreMap":112},[11,4346,1113],{},[303,4348,1117],{"id":1116},[11,4350,1120,4351,1124],{},[114,4352,1123],{},[106,4354,4355],{"className":1127,"code":1128,"language":1129,"meta":112,"style":112},[114,4356,4357,4361,4371,4381,4391,4401,4411,4421,4431,4441,4451,4461,4471,4477,4481,4491,4501,4511,4521,4531,4541,4549,4553,4557],{"__ignoreMap":112},[506,4358,4359],{"class":508,"line":274},[506,4360,1137],{"class":1136},[506,4362,4363,4365,4367,4369],{"class":508,"line":262},[506,4364,1143],{"class":1142},[506,4366,1146],{"class":1136},[506,4368,1150],{"class":1149},[506,4370,1153],{"class":1136},[506,4372,4373,4375,4377,4379],{"class":508,"line":357},[506,4374,1158],{"class":1142},[506,4376,1146],{"class":1136},[506,4378,1163],{"class":1149},[506,4380,1153],{"class":1136},[506,4382,4383,4385,4387,4389],{"class":508,"line":1168},[506,4384,1171],{"class":1142},[506,4386,1146],{"class":1136},[506,4388,1176],{"class":1149},[506,4390,1153],{"class":1136},[506,4392,4393,4395,4397,4399],{"class":508,"line":1181},[506,4394,1184],{"class":1142},[506,4396,1146],{"class":1136},[506,4398,1189],{"class":1149},[506,4400,1153],{"class":1136},[506,4402,4403,4405,4407,4409],{"class":508,"line":1194},[506,4404,1197],{"class":1142},[506,4406,1146],{"class":1136},[506,4408,1202],{"class":1149},[506,4410,1153],{"class":1136},[506,4412,4413,4415,4417,4419],{"class":508,"line":1207},[506,4414,1210],{"class":1142},[506,4416,1146],{"class":1136},[506,4418,1215],{"class":1142},[506,4420,1153],{"class":1136},[506,4422,4423,4425,4427,4429],{"class":508,"line":1220},[506,4424,1223],{"class":1142},[506,4426,1146],{"class":1136},[506,4428,1228],{"class":1142},[506,4430,1153],{"class":1136},[506,4432,4433,4435,4437,4439],{"class":508,"line":1233},[506,4434,1236],{"class":1142},[506,4436,1146],{"class":1136},[506,4438,70],{"class":1142},[506,4440,1153],{"class":1136},[506,4442,4443,4445,4447,4449],{"class":508,"line":1245},[506,4444,1248],{"class":1142},[506,4446,1146],{"class":1136},[506,4448,1253],{"class":1149},[506,4450,1153],{"class":1136},[506,4452,4453,4455,4457,4459],{"class":508,"line":1258},[506,4454,1261],{"class":1142},[506,4456,1146],{"class":1136},[506,4458,1266],{"class":1142},[506,4460,1153],{"class":1136},[506,4462,4463,4465,4467,4469],{"class":508,"line":1271},[506,4464,1274],{"class":1142},[506,4466,1146],{"class":1136},[506,4468,1279],{"class":1149},[506,4470,1153],{"class":1136},[506,4472,4473,4475],{"class":508,"line":1284},[506,4474,1287],{"class":1142},[506,4476,1290],{"class":1136},[506,4478,4479],{"class":508,"line":1293},[506,4480,1296],{"class":1136},[506,4482,4483,4485,4487,4489],{"class":508,"line":1299},[506,4484,1302],{"class":1142},[506,4486,1146],{"class":1136},[506,4488,1202],{"class":1149},[506,4490,1153],{"class":1136},[506,4492,4493,4495,4497,4499],{"class":508,"line":1311},[506,4494,1314],{"class":1142},[506,4496,1146],{"class":1136},[506,4498,1319],{"class":1149},[506,4500,1153],{"class":1136},[506,4502,4503,4505,4507,4509],{"class":508,"line":1324},[506,4504,1327],{"class":1142},[506,4506,1146],{"class":1136},[506,4508,1332],{"class":1149},[506,4510,1153],{"class":1136},[506,4512,4513,4515,4517,4519],{"class":508,"line":1337},[506,4514,1340],{"class":1142},[506,4516,1146],{"class":1136},[506,4518,1345],{"class":1149},[506,4520,1153],{"class":1136},[506,4522,4523,4525,4527,4529],{"class":508,"line":1350},[506,4524,1353],{"class":1142},[506,4526,1146],{"class":1136},[506,4528,1358],{"class":1149},[506,4530,1153],{"class":1136},[506,4532,4533,4535,4537,4539],{"class":508,"line":1363},[506,4534,1366],{"class":1142},[506,4536,1146],{"class":1136},[506,4538,1371],{"class":1149},[506,4540,1153],{"class":1136},[506,4542,4543,4545,4547],{"class":508,"line":1376},[506,4544,1379],{"class":1142},[506,4546,1146],{"class":1136},[506,4548,1384],{"class":1149},[506,4550,4551],{"class":508,"line":1387},[506,4552,1390],{"class":1136},[506,4554,4555],{"class":508,"line":1393},[506,4556,1396],{"class":1136},[506,4558,4559],{"class":508,"line":1399},[506,4560,1402],{"class":1136},[11,4562,1405,4563,1409,4565,1413],{},[114,4564,1408],{},[114,4566,1412],{},[303,4568,216],{"id":1416},[11,4570,1419],{},[15,4572,1423],{"id":1422},[11,4574,1426,4575,1432],{},[23,4576,1431],{"href":1429,"rel":4577},[27],[38,4579,4580,4590],{},[41,4581,4582],{},[44,4583,4584,4586,4588],{},[47,4585,1441],{},[47,4587,1444],{},[47,4589,1447],{},[60,4591,4592,4600,4608],{},[44,4593,4594,4596,4598],{},[65,4595,1117],{},[65,4597,1456],{},[65,4599,1459],{},[44,4601,4602,4604,4606],{},[65,4603,204],{},[65,4605,1456],{},[65,4607,1459],{},[44,4609,4610,4612,4614],{},[65,4611,216],{},[65,4613,1474],{},[65,4615,1477],{},[11,4617,1480],{},[11,4619,1483,4620,1486],{},[114,4621,994],{},[15,4623,1490],{"id":1489},[11,4625,1493,4626,1497],{},[114,4627,1496],{},[15,4629,1501],{"id":1500},[11,4631,1504,4632,1508,4634,1511],{},[101,4633,1507],{},[114,4635,948],{},[15,4637,1515],{"id":1514},[169,4639,4640,4642,4644,4646],{},[172,4641,1520],{},[172,4643,1523],{},[172,4645,1526],{},[172,4647,1529],{},[674,4649,1532],{},{"title":112,"searchDepth":262,"depth":262,"links":4651},[4652,4657,4658,4659,4660],{"id":1071,"depth":262,"text":1072,"children":4653},[4654,4655,4656],{"id":1075,"depth":357,"text":204},{"id":1116,"depth":357,"text":1117},{"id":1416,"depth":357,"text":216},{"id":1422,"depth":262,"text":1423},{"id":1489,"depth":262,"text":1490},{"id":1500,"depth":262,"text":1501},{"id":1514,"depth":262,"text":1515},{},{"title":196,"description":1544},{"id":1550,"title":1041,"body":4664,"description":3264,"extension":271,"meta":6097,"navigation":273,"order":1181,"path":259,"section":276,"seo":6098,"stem":3267,"updatedAt":279,"__hash__":3268},{"type":8,"value":4665,"toc":6075},[4666,4670,4730,4732,4737,4739,4741,4749,4753,4759,4761,4769,4829,4831,4849,4851,4853,4855,4863,4865,4925,4951,4955,5021,5023,5031,5033,5141,5143,5151,5153,5161,5167,5169,5171,5173,5181,5183,5281,5311,5313,5315,5323,5325,5327,5357,5359,5517,5519,5521,5529,5537,5539,5569,5571,5749,5751,5753,5755,5763,5767,5965,5967,5975,5977,5985,5987,5989,5991,6073],[11,4667,1555,4668,1559],{},[114,4669,1558],{},[106,4671,4672],{"className":1127,"code":1562,"language":1129,"meta":112,"style":112},[114,4673,4674,4678,4688,4698,4708,4718,4726],{"__ignoreMap":112},[506,4675,4676],{"class":508,"line":274},[506,4677,1137],{"class":1136},[506,4679,4680,4682,4684,4686],{"class":508,"line":262},[506,4681,1573],{"class":1142},[506,4683,1146],{"class":1136},[506,4685,1578],{"class":1142},[506,4687,1153],{"class":1136},[506,4689,4690,4692,4694,4696],{"class":508,"line":357},[506,4691,1585],{"class":1142},[506,4693,1588],{"class":1136},[506,4695,1592],{"class":1591},[506,4697,1595],{"class":1136},[506,4699,4700,4702,4704,4706],{"class":508,"line":1168},[506,4701,1600],{"class":1142},[506,4703,1146],{"class":1136},[506,4705,1605],{"class":1149},[506,4707,1153],{"class":1136},[506,4709,4710,4712,4714,4716],{"class":508,"line":1181},[506,4711,1612],{"class":1142},[506,4713,1146],{"class":1136},[506,4715,1617],{"class":1142},[506,4717,1153],{"class":1136},[506,4719,4720,4722,4724],{"class":508,"line":1194},[506,4721,1624],{"class":1142},[506,4723,1146],{"class":1136},[506,4725,1629],{"class":1149},[506,4727,4728],{"class":508,"line":1207},[506,4729,1402],{"class":1136},[15,4731,1637],{"id":1636},[106,4733,4735],{"className":4734,"code":1641,"language":111,"meta":112},[109],[114,4736,1641],{"__ignoreMap":112},[15,4738,1647],{"id":1646},[11,4740,1650],{},[106,4742,4743],{"className":1653,"code":1654,"language":1655,"meta":112,"style":112},[114,4744,4745],{"__ignoreMap":112},[506,4746,4747],{"class":508,"line":274},[506,4748,1654],{},[11,4750,1664,4751,1667],{},[114,4752,294],{},[139,4754,4755],{},[11,4756,4757,1675],{},[101,4758,1674],{},[15,4760,1679],{"id":1678},[11,4762,1682,4763,1686,4765,474,4767,1124],{},[114,4764,1685],{},[114,4766,1689],{},[114,4768,1692],{},[106,4770,4771],{"className":1127,"code":1695,"language":1129,"meta":112,"style":112},[114,4772,4773,4777,4787,4797,4807,4817,4825],{"__ignoreMap":112},[506,4774,4775],{"class":508,"line":274},[506,4776,1137],{"class":1136},[506,4778,4779,4781,4783,4785],{"class":508,"line":262},[506,4780,1573],{"class":1142},[506,4782,1146],{"class":1136},[506,4784,1266],{"class":1142},[506,4786,1153],{"class":1136},[506,4788,4789,4791,4793,4795],{"class":508,"line":357},[506,4790,1585],{"class":1142},[506,4792,1146],{"class":1136},[506,4794,1617],{"class":1142},[506,4796,1153],{"class":1136},[506,4798,4799,4801,4803,4805],{"class":508,"line":1168},[506,4800,1600],{"class":1142},[506,4802,1146],{"class":1136},[506,4804,1730],{"class":1149},[506,4806,1153],{"class":1136},[506,4808,4809,4811,4813,4815],{"class":508,"line":1181},[506,4810,1612],{"class":1142},[506,4812,1146],{"class":1136},[506,4814,1741],{"class":1149},[506,4816,1153],{"class":1136},[506,4818,4819,4821,4823],{"class":508,"line":1194},[506,4820,1624],{"class":1142},[506,4822,1146],{"class":1136},[506,4824,1629],{"class":1149},[506,4826,4827],{"class":508,"line":1207},[506,4828,1402],{"class":1136},[11,4830,1758],{},[169,4832,4833,4837,4841,4845],{},[172,4834,4835,1765],{},[114,4836,650],{},[172,4838,4839,1771],{},[114,4840,1770],{},[172,4842,4843,1777],{},[114,4844,1776],{},[172,4846,4847,1783],{},[114,4848,1782],{},[1785,4850],{},[15,4852,52],{"id":1789},[303,4854,1793],{"id":1792},[106,4856,4857],{"className":1653,"code":1796,"language":1655,"meta":112,"style":112},[114,4858,4859],{"__ignoreMap":112},[506,4860,4861],{"class":508,"line":274},[506,4862,1796],{},[11,4864,1805],{},[106,4866,4867],{"className":1127,"code":1808,"language":1129,"meta":112,"style":112},[114,4868,4869,4873,4883,4893,4903,4913,4921],{"__ignoreMap":112},[506,4870,4871],{"class":508,"line":274},[506,4872,1137],{"class":1136},[506,4874,4875,4877,4879,4881],{"class":508,"line":262},[506,4876,1819],{"class":1142},[506,4878,1146],{"class":1136},[506,4880,1253],{"class":1149},[506,4882,1153],{"class":1136},[506,4884,4885,4887,4889,4891],{"class":508,"line":357},[506,4886,1830],{"class":1142},[506,4888,1146],{"class":1136},[506,4890,1835],{"class":1149},[506,4892,1153],{"class":1136},[506,4894,4895,4897,4899,4901],{"class":508,"line":1168},[506,4896,1842],{"class":1142},[506,4898,1146],{"class":1136},[506,4900,1847],{"class":1149},[506,4902,1153],{"class":1136},[506,4904,4905,4907,4909,4911],{"class":508,"line":1181},[506,4906,1854],{"class":1142},[506,4908,1146],{"class":1136},[506,4910,1859],{"class":1149},[506,4912,1153],{"class":1136},[506,4914,4915,4917,4919],{"class":508,"line":1194},[506,4916,1866],{"class":1142},[506,4918,1146],{"class":1136},[506,4920,1871],{"class":1149},[506,4922,4923],{"class":508,"line":1207},[506,4924,1402],{"class":1136},[169,4926,4927,4931,4937,4941,4945],{},[172,4928,4929,1883],{},[114,4930,1882],{},[172,4932,4933,1889,4935,1893],{},[114,4934,1888],{},[114,4936,1892],{},[172,4938,4939,1899],{},[114,4940,1898],{},[172,4942,4943,1905],{},[114,4944,1904],{},[172,4946,4947,1911,4949,1914],{},[114,4948,1910],{},[114,4950,234],{},[11,4952,1917,4953,1921],{},[114,4954,1920],{},[106,4956,4957],{"className":1924,"code":1925,"language":1926,"meta":112,"style":112},[114,4958,4959,4971,4983,4991,4997,5001,5005,5009,5013,5017],{"__ignoreMap":112},[506,4960,4961,4963,4965,4967,4969],{"class":508,"line":274},[506,4962,1934],{"class":1933},[506,4964,1937],{"class":1142},[506,4966,1940],{"class":1149},[506,4968,1943],{"class":1149},[506,4970,1946],{"class":1142},[506,4972,4973,4975,4977,4979,4981],{"class":508,"line":262},[506,4974,1951],{"class":1142},[506,4976,1954],{"class":1149},[506,4978,1957],{"class":1136},[506,4980,1960],{"class":1149},[506,4982,1946],{"class":1142},[506,4984,4985,4987,4989],{"class":508,"line":357},[506,4986,1951],{"class":1142},[506,4988,1969],{"class":1149},[506,4990,1946],{"class":1142},[506,4992,4993,4995],{"class":508,"line":1168},[506,4994,1976],{"class":1142},[506,4996,1979],{"class":1149},[506,4998,4999],{"class":508,"line":1181},[506,5000,1984],{"class":1149},[506,5002,5003],{"class":508,"line":1194},[506,5004,1989],{"class":1149},[506,5006,5007],{"class":508,"line":1207},[506,5008,1994],{"class":1149},[506,5010,5011],{"class":508,"line":1220},[506,5012,1999],{"class":1149},[506,5014,5015],{"class":508,"line":1233},[506,5016,2004],{"class":1149},[506,5018,5019],{"class":508,"line":1245},[506,5020,2009],{"class":1149},[303,5022,2013],{"id":2012},[106,5024,5025],{"className":1653,"code":2016,"language":1655,"meta":112,"style":112},[114,5026,5027],{"__ignoreMap":112},[506,5028,5029],{"class":508,"line":274},[506,5030,2016],{},[11,5032,2025],{},[106,5034,5035],{"className":1127,"code":2028,"language":1129,"meta":112,"style":112},[114,5036,5037,5041,5051,5057,5061,5071,5081,5091,5101,5111,5121,5129,5133,5137],{"__ignoreMap":112},[506,5038,5039],{"class":508,"line":274},[506,5040,1137],{"class":1136},[506,5042,5043,5045,5047,5049],{"class":508,"line":262},[506,5044,1573],{"class":1142},[506,5046,1146],{"class":1136},[506,5048,1578],{"class":1142},[506,5050,1153],{"class":1136},[506,5052,5053,5055],{"class":508,"line":357},[506,5054,1585],{"class":1142},[506,5056,1290],{"class":1136},[506,5058,5059],{"class":508,"line":1168},[506,5060,1296],{"class":1136},[506,5062,5063,5065,5067,5069],{"class":508,"line":1181},[506,5064,2059],{"class":1142},[506,5066,1146],{"class":1136},[506,5068,1163],{"class":1149},[506,5070,1153],{"class":1136},[506,5072,5073,5075,5077,5079],{"class":508,"line":1194},[506,5074,2070],{"class":1142},[506,5076,1146],{"class":1136},[506,5078,1253],{"class":1149},[506,5080,1153],{"class":1136},[506,5082,5083,5085,5087,5089],{"class":508,"line":1207},[506,5084,2081],{"class":1142},[506,5086,1146],{"class":1136},[506,5088,2086],{"class":1149},[506,5090,1153],{"class":1136},[506,5092,5093,5095,5097,5099],{"class":508,"line":1220},[506,5094,2093],{"class":1142},[506,5096,1146],{"class":1136},[506,5098,2098],{"class":1149},[506,5100,1153],{"class":1136},[506,5102,5103,5105,5107,5109],{"class":508,"line":1233},[506,5104,2105],{"class":1142},[506,5106,1146],{"class":1136},[506,5108,1578],{"class":1142},[506,5110,1153],{"class":1136},[506,5112,5113,5115,5117,5119],{"class":508,"line":1245},[506,5114,2116],{"class":1142},[506,5116,1146],{"class":1136},[506,5118,2121],{"class":1149},[506,5120,1153],{"class":1136},[506,5122,5123,5125,5127],{"class":508,"line":1258},[506,5124,2128],{"class":1142},[506,5126,1146],{"class":1136},[506,5128,2133],{"class":1149},[506,5130,5131],{"class":508,"line":1271},[506,5132,1390],{"class":1136},[506,5134,5135],{"class":508,"line":1284},[506,5136,1396],{"class":1136},[506,5138,5139],{"class":508,"line":1293},[506,5140,1402],{"class":1136},[303,5142,2149],{"id":2148},[106,5144,5145],{"className":1653,"code":2152,"language":1655,"meta":112,"style":112},[114,5146,5147],{"__ignoreMap":112},[506,5148,5149],{"class":508,"line":274},[506,5150,2152],{},[303,5152,2162],{"id":2161},[106,5154,5155],{"className":1653,"code":2165,"language":1655,"meta":112,"style":112},[114,5156,5157],{"__ignoreMap":112},[506,5158,5159],{"class":508,"line":274},[506,5160,2165],{},[11,5162,2174,5163,2178,5165,315],{},[114,5164,2177],{},[114,5166,2181],{},[1785,5168],{},[15,5170,2187],{"id":2186},[303,5172,2191],{"id":2190},[106,5174,5175],{"className":1653,"code":2194,"language":1655,"meta":112,"style":112},[114,5176,5177],{"__ignoreMap":112},[506,5178,5179],{"class":508,"line":274},[506,5180,2194],{},[11,5182,2203],{},[106,5184,5185],{"className":1127,"code":2206,"language":1129,"meta":112,"style":112},[114,5186,5187,5191,5201,5207,5217,5227,5237,5247,5257,5265,5269,5277],{"__ignoreMap":112},[506,5188,5189],{"class":508,"line":274},[506,5190,1137],{"class":1136},[506,5192,5193,5195,5197,5199],{"class":508,"line":262},[506,5194,1573],{"class":1142},[506,5196,1146],{"class":1136},[506,5198,1578],{"class":1142},[506,5200,1153],{"class":1136},[506,5202,5203,5205],{"class":508,"line":357},[506,5204,1585],{"class":1142},[506,5206,2229],{"class":1136},[506,5208,5209,5211,5213,5215],{"class":508,"line":1168},[506,5210,2234],{"class":1142},[506,5212,1146],{"class":1136},[506,5214,1189],{"class":1149},[506,5216,1153],{"class":1136},[506,5218,5219,5221,5223,5225],{"class":508,"line":1181},[506,5220,2245],{"class":1142},[506,5222,1146],{"class":1136},[506,5224,2250],{"class":1149},[506,5226,1153],{"class":1136},[506,5228,5229,5231,5233,5235],{"class":508,"line":1194},[506,5230,2257],{"class":1142},[506,5232,1146],{"class":1136},[506,5234,2262],{"class":1142},[506,5236,1153],{"class":1136},[506,5238,5239,5241,5243,5245],{"class":508,"line":1207},[506,5240,2269],{"class":1142},[506,5242,1146],{"class":1136},[506,5244,2274],{"class":1142},[506,5246,1153],{"class":1136},[506,5248,5249,5251,5253,5255],{"class":508,"line":1220},[506,5250,2281],{"class":1142},[506,5252,1146],{"class":1136},[506,5254,2286],{"class":1142},[506,5256,1153],{"class":1136},[506,5258,5259,5261,5263],{"class":508,"line":1233},[506,5260,2293],{"class":1142},[506,5262,1146],{"class":1136},[506,5264,1629],{"class":1149},[506,5266,5267],{"class":508,"line":1245},[506,5268,2302],{"class":1136},[506,5270,5271,5273,5275],{"class":508,"line":1258},[506,5272,1600],{"class":1142},[506,5274,1146],{"class":1136},[506,5276,2311],{"class":1149},[506,5278,5279],{"class":508,"line":1271},[506,5280,1402],{"class":1136},[106,5282,5283],{"className":1924,"code":2318,"language":1926,"meta":112,"style":112},[114,5284,5285,5301],{"__ignoreMap":112},[506,5286,5287,5289,5291,5293,5295,5297,5299],{"class":508,"line":274},[506,5288,1934],{"class":1933},[506,5290,1937],{"class":1142},[506,5292,1940],{"class":1149},[506,5294,2331],{"class":1149},[506,5296,2334],{"class":1136},[506,5298,2337],{"class":1149},[506,5300,1946],{"class":1142},[506,5302,5303,5305,5307,5309],{"class":508,"line":262},[506,5304,1951],{"class":1142},[506,5306,1954],{"class":1149},[506,5308,1957],{"class":1136},[506,5310,2350],{"class":1149},[1785,5312],{},[15,5314,2356],{"id":2355},[106,5316,5317],{"className":1653,"code":2359,"language":1655,"meta":112,"style":112},[114,5318,5319],{"__ignoreMap":112},[506,5320,5321],{"class":508,"line":274},[506,5322,2359],{},[11,5324,2368],{},[11,5326,1805],{},[106,5328,5329],{"className":1127,"code":2373,"language":1129,"meta":112,"style":112},[114,5330,5331,5335,5345,5353],{"__ignoreMap":112},[506,5332,5333],{"class":508,"line":274},[506,5334,1137],{"class":1136},[506,5336,5337,5339,5341,5343],{"class":508,"line":262},[506,5338,2384],{"class":1142},[506,5340,1146],{"class":1136},[506,5342,1163],{"class":1149},[506,5344,1153],{"class":1136},[506,5346,5347,5349,5351],{"class":508,"line":357},[506,5348,2395],{"class":1142},[506,5350,1146],{"class":1136},[506,5352,2400],{"class":1149},[506,5354,5355],{"class":508,"line":1168},[506,5356,1402],{"class":1136},[11,5358,2407],{},[106,5360,5361],{"className":1127,"code":2410,"language":1129,"meta":112,"style":112},[114,5362,5363,5367,5377,5383,5393,5403,5413,5423,5429,5433,5443,5453,5463,5473,5483,5493,5501,5505,5509,5513],{"__ignoreMap":112},[506,5364,5365],{"class":508,"line":274},[506,5366,1137],{"class":1136},[506,5368,5369,5371,5373,5375],{"class":508,"line":262},[506,5370,1573],{"class":1142},[506,5372,1146],{"class":1136},[506,5374,1578],{"class":1142},[506,5376,1153],{"class":1136},[506,5378,5379,5381],{"class":508,"line":357},[506,5380,1585],{"class":1142},[506,5382,2229],{"class":1136},[506,5384,5385,5387,5389,5391],{"class":508,"line":1168},[506,5386,2437],{"class":1142},[506,5388,1146],{"class":1136},[506,5390,2442],{"class":1149},[506,5392,1153],{"class":1136},[506,5394,5395,5397,5399,5401],{"class":508,"line":1181},[506,5396,2449],{"class":1142},[506,5398,1146],{"class":1136},[506,5400,1228],{"class":1142},[506,5402,1153],{"class":1136},[506,5404,5405,5407,5409,5411],{"class":508,"line":1194},[506,5406,2460],{"class":1142},[506,5408,1146],{"class":1136},[506,5410,1215],{"class":1142},[506,5412,1153],{"class":1136},[506,5414,5415,5417,5419,5421],{"class":508,"line":1207},[506,5416,2471],{"class":1142},[506,5418,1146],{"class":1136},[506,5420,781],{"class":1142},[506,5422,1153],{"class":1136},[506,5424,5425,5427],{"class":508,"line":1220},[506,5426,2482],{"class":1142},[506,5428,1290],{"class":1136},[506,5430,5431],{"class":508,"line":1233},[506,5432,2489],{"class":1136},[506,5434,5435,5437,5439,5441],{"class":508,"line":1245},[506,5436,2494],{"class":1142},[506,5438,1146],{"class":1136},[506,5440,2442],{"class":1149},[506,5442,1153],{"class":1136},[506,5444,5445,5447,5449,5451],{"class":508,"line":1258},[506,5446,2505],{"class":1142},[506,5448,1146],{"class":1136},[506,5450,2510],{"class":1149},[506,5452,1153],{"class":1136},[506,5454,5455,5457,5459,5461],{"class":508,"line":1271},[506,5456,2517],{"class":1142},[506,5458,1146],{"class":1136},[506,5460,2522],{"class":1149},[506,5462,1153],{"class":1136},[506,5464,5465,5467,5469,5471],{"class":508,"line":1284},[506,5466,2529],{"class":1142},[506,5468,1146],{"class":1136},[506,5470,2534],{"class":1149},[506,5472,1153],{"class":1136},[506,5474,5475,5477,5479,5481],{"class":508,"line":1293},[506,5476,2541],{"class":1142},[506,5478,1146],{"class":1136},[506,5480,2546],{"class":1149},[506,5482,1153],{"class":1136},[506,5484,5485,5487,5489,5491],{"class":508,"line":1299},[506,5486,2553],{"class":1142},[506,5488,1146],{"class":1136},[506,5490,2558],{"class":1149},[506,5492,1153],{"class":1136},[506,5494,5495,5497,5499],{"class":508,"line":1311},[506,5496,2565],{"class":1142},[506,5498,1146],{"class":1136},[506,5500,2570],{"class":1149},[506,5502,5503],{"class":508,"line":1324},[506,5504,2575],{"class":1136},[506,5506,5507],{"class":508,"line":1337},[506,5508,2580],{"class":1136},[506,5510,5511],{"class":508,"line":1350},[506,5512,2585],{"class":1136},[506,5514,5515],{"class":508,"line":1363},[506,5516,1402],{"class":1136},[1785,5518],{},[15,5520,2595],{"id":2594},[11,5522,2598,5523,936,5525,936,5527,2608],{},[114,5524,2601],{},[114,5526,2604],{},[114,5528,2607],{},[106,5530,5531],{"className":1653,"code":2611,"language":1655,"meta":112,"style":112},[114,5532,5533],{"__ignoreMap":112},[506,5534,5535],{"class":508,"line":274},[506,5536,2611],{},[11,5538,1805],{},[106,5540,5541],{"className":1127,"code":2622,"language":1129,"meta":112,"style":112},[114,5542,5543,5547,5557,5565],{"__ignoreMap":112},[506,5544,5545],{"class":508,"line":274},[506,5546,1137],{"class":1136},[506,5548,5549,5551,5553,5555],{"class":508,"line":262},[506,5550,2633],{"class":1142},[506,5552,1146],{"class":1136},[506,5554,2638],{"class":1149},[506,5556,1153],{"class":1136},[506,5558,5559,5561,5563],{"class":508,"line":357},[506,5560,2645],{"class":1142},[506,5562,1146],{"class":1136},[506,5564,2650],{"class":1149},[506,5566,5567],{"class":508,"line":1168},[506,5568,1402],{"class":1136},[11,5570,2407],{},[106,5572,5573],{"className":1127,"code":2659,"language":1129,"meta":112,"style":112},[114,5574,5575,5579,5589,5595,5605,5615,5625,5631,5635,5645,5655,5665,5675,5685,5695,5705,5715,5725,5733,5737,5741,5745],{"__ignoreMap":112},[506,5576,5577],{"class":508,"line":274},[506,5578,1137],{"class":1136},[506,5580,5581,5583,5585,5587],{"class":508,"line":262},[506,5582,1573],{"class":1142},[506,5584,1146],{"class":1136},[506,5586,1578],{"class":1142},[506,5588,1153],{"class":1136},[506,5590,5591,5593],{"class":508,"line":357},[506,5592,1585],{"class":1142},[506,5594,2229],{"class":1136},[506,5596,5597,5599,5601,5603],{"class":508,"line":1168},[506,5598,2686],{"class":1142},[506,5600,1146],{"class":1136},[506,5602,1266],{"class":1142},[506,5604,1153],{"class":1136},[506,5606,5607,5609,5611,5613],{"class":508,"line":1181},[506,5608,2697],{"class":1142},[506,5610,1146],{"class":1136},[506,5612,2702],{"class":1149},[506,5614,1153],{"class":1136},[506,5616,5617,5619,5621,5623],{"class":508,"line":1194},[506,5618,2709],{"class":1142},[506,5620,1146],{"class":1136},[506,5622,2714],{"class":1149},[506,5624,1153],{"class":1136},[506,5626,5627,5629],{"class":508,"line":1207},[506,5628,2721],{"class":1142},[506,5630,1290],{"class":1136},[506,5632,5633],{"class":508,"line":1220},[506,5634,2489],{"class":1136},[506,5636,5637,5639,5641,5643],{"class":508,"line":1233},[506,5638,2732],{"class":1142},[506,5640,1146],{"class":1136},[506,5642,2638],{"class":1149},[506,5644,1153],{"class":1136},[506,5646,5647,5649,5651,5653],{"class":508,"line":1245},[506,5648,2743],{"class":1142},[506,5650,1146],{"class":1136},[506,5652,2748],{"class":1149},[506,5654,1153],{"class":1136},[506,5656,5657,5659,5661,5663],{"class":508,"line":1258},[506,5658,2755],{"class":1142},[506,5660,1146],{"class":1136},[506,5662,1319],{"class":1149},[506,5664,1153],{"class":1136},[506,5666,5667,5669,5671,5673],{"class":508,"line":1271},[506,5668,2766],{"class":1142},[506,5670,1146],{"class":1136},[506,5672,2771],{"class":1149},[506,5674,1153],{"class":1136},[506,5676,5677,5679,5681,5683],{"class":508,"line":1284},[506,5678,2778],{"class":1142},[506,5680,1146],{"class":1136},[506,5682,2783],{"class":1149},[506,5684,1153],{"class":1136},[506,5686,5687,5689,5691,5693],{"class":508,"line":1293},[506,5688,2790],{"class":1142},[506,5690,1146],{"class":1136},[506,5692,2795],{"class":1142},[506,5694,1153],{"class":1136},[506,5696,5697,5699,5701,5703],{"class":508,"line":1299},[506,5698,2802],{"class":1142},[506,5700,1146],{"class":1136},[506,5702,2807],{"class":1142},[506,5704,1153],{"class":1136},[506,5706,5707,5709,5711,5713],{"class":508,"line":1311},[506,5708,2814],{"class":1142},[506,5710,1146],{"class":1136},[506,5712,1266],{"class":1142},[506,5714,1153],{"class":1136},[506,5716,5717,5719,5721,5723],{"class":508,"line":1324},[506,5718,2553],{"class":1142},[506,5720,1146],{"class":1136},[506,5722,2829],{"class":1149},[506,5724,1153],{"class":1136},[506,5726,5727,5729,5731],{"class":508,"line":1337},[506,5728,2836],{"class":1142},[506,5730,1146],{"class":1136},[506,5732,2841],{"class":1149},[506,5734,5735],{"class":508,"line":1350},[506,5736,2575],{"class":1136},[506,5738,5739],{"class":508,"line":1363},[506,5740,2580],{"class":1136},[506,5742,5743],{"class":508,"line":1376},[506,5744,2585],{"class":1136},[506,5746,5747],{"class":508,"line":1387},[506,5748,1402],{"class":1136},[1785,5750],{},[15,5752,909],{"id":908},[303,5754,2865],{"id":2864},[106,5756,5757],{"className":1653,"code":2868,"language":1655,"meta":112,"style":112},[114,5758,5759],{"__ignoreMap":112},[506,5760,5761],{"class":508,"line":274},[506,5762,2868],{},[11,5764,2877,5765,2881],{},[114,5766,2880],{},[106,5768,5769],{"className":1127,"code":2884,"language":1129,"meta":112,"style":112},[114,5770,5771,5775,5785,5791,5797,5801,5811,5821,5831,5841,5851,5861,5871,5881,5891,5901,5911,5915,5919,5929,5939,5949,5957,5961],{"__ignoreMap":112},[506,5772,5773],{"class":508,"line":274},[506,5774,1137],{"class":1136},[506,5776,5777,5779,5781,5783],{"class":508,"line":262},[506,5778,1573],{"class":1142},[506,5780,1146],{"class":1136},[506,5782,1578],{"class":1142},[506,5784,1153],{"class":1136},[506,5786,5787,5789],{"class":508,"line":357},[506,5788,1585],{"class":1142},[506,5790,2229],{"class":1136},[506,5792,5793,5795],{"class":508,"line":1168},[506,5794,2911],{"class":1142},[506,5796,1290],{"class":1136},[506,5798,5799],{"class":508,"line":1181},[506,5800,2489],{"class":1136},[506,5802,5803,5805,5807,5809],{"class":508,"line":1194},[506,5804,2922],{"class":1142},[506,5806,1146],{"class":1136},[506,5808,1150],{"class":1149},[506,5810,1153],{"class":1136},[506,5812,5813,5815,5817,5819],{"class":508,"line":1207},[506,5814,2933],{"class":1142},[506,5816,1146],{"class":1136},[506,5818,1163],{"class":1149},[506,5820,1153],{"class":1136},[506,5822,5823,5825,5827,5829],{"class":508,"line":1220},[506,5824,2944],{"class":1142},[506,5826,1146],{"class":1136},[506,5828,2949],{"class":1149},[506,5830,1153],{"class":1136},[506,5832,5833,5835,5837,5839],{"class":508,"line":1233},[506,5834,2956],{"class":1142},[506,5836,1146],{"class":1136},[506,5838,2961],{"class":1149},[506,5840,1153],{"class":1136},[506,5842,5843,5845,5847,5849],{"class":508,"line":1245},[506,5844,2494],{"class":1142},[506,5846,1146],{"class":1136},[506,5848,1202],{"class":1149},[506,5850,1153],{"class":1136},[506,5852,5853,5855,5857,5859],{"class":508,"line":1258},[506,5854,2978],{"class":1142},[506,5856,1146],{"class":1136},[506,5858,1215],{"class":1142},[506,5860,1153],{"class":1136},[506,5862,5863,5865,5867,5869],{"class":508,"line":1271},[506,5864,2989],{"class":1142},[506,5866,1146],{"class":1136},[506,5868,1228],{"class":1142},[506,5870,1153],{"class":1136},[506,5872,5873,5875,5877,5879],{"class":508,"line":1284},[506,5874,3000],{"class":1142},[506,5876,1146],{"class":1136},[506,5878,70],{"class":1142},[506,5880,1153],{"class":1136},[506,5882,5883,5885,5887,5889],{"class":508,"line":1293},[506,5884,3011],{"class":1142},[506,5886,1146],{"class":1136},[506,5888,1266],{"class":1142},[506,5890,1153],{"class":1136},[506,5892,5893,5895,5897,5899],{"class":508,"line":1299},[506,5894,3022],{"class":1142},[506,5896,1146],{"class":1136},[506,5898,1279],{"class":1149},[506,5900,1153],{"class":1136},[506,5902,5903,5905,5907,5909],{"class":508,"line":1311},[506,5904,3033],{"class":1142},[506,5906,3036],{"class":1136},[506,5908,3039],{"class":1591},[506,5910,3042],{"class":1136},[506,5912,5913],{"class":508,"line":1324},[506,5914,2575],{"class":1136},[506,5916,5917],{"class":508,"line":1337},[506,5918,3051],{"class":1136},[506,5920,5921,5923,5925,5927],{"class":508,"line":1350},[506,5922,3056],{"class":1142},[506,5924,1146],{"class":1136},[506,5926,3061],{"class":1142},[506,5928,1153],{"class":1136},[506,5930,5931,5933,5935,5937],{"class":508,"line":1363},[506,5932,3068],{"class":1142},[506,5934,1146],{"class":1136},[506,5936,70],{"class":1142},[506,5938,1153],{"class":1136},[506,5940,5941,5943,5945,5947],{"class":508,"line":1376},[506,5942,3079],{"class":1142},[506,5944,1146],{"class":1136},[506,5946,1228],{"class":1142},[506,5948,1153],{"class":1136},[506,5950,5951,5953,5955],{"class":508,"line":1387},[506,5952,3090],{"class":1142},[506,5954,1146],{"class":1136},[506,5956,3095],{"class":1142},[506,5958,5959],{"class":508,"line":1393},[506,5960,2585],{"class":1136},[506,5962,5963],{"class":508,"line":1399},[506,5964,1402],{"class":1136},[303,5966,3107],{"id":3106},[106,5968,5969],{"className":1653,"code":3110,"language":1655,"meta":112,"style":112},[114,5970,5971],{"__ignoreMap":112},[506,5972,5973],{"class":508,"line":274},[506,5974,3110],{},[303,5976,3120],{"id":3119},[106,5978,5979],{"className":1653,"code":3123,"language":1655,"meta":112,"style":112},[114,5980,5981],{"__ignoreMap":112},[506,5982,5983],{"class":508,"line":274},[506,5984,3123],{},[11,5986,3132],{},[1785,5988],{},[15,5990,3138],{"id":3137},[38,5992,5993,6003],{},[41,5994,5995],{},[44,5996,5997,5999,6001],{},[47,5998,3147],{},[47,6000,3150],{},[47,6002,3153],{},[60,6004,6005,6021,6035,6047,6061],{},[44,6006,6007,6011,6015],{},[65,6008,6009],{},[114,6010,3162],{},[65,6012,6013],{},[114,6014,3167],{},[65,6016,6017,3172,6019,3175],{},[114,6018,1578],{},[114,6020,1266],{},[44,6022,6023,6027,6031],{},[65,6024,6025],{},[114,6026,3182],{},[65,6028,6029],{},[114,6030,3187],{},[65,6032,3190,6033,3193],{},[114,6034,1617],{},[44,6036,6037,6041,6045],{},[65,6038,6039],{},[114,6040,1692],{},[65,6042,6043],{},[114,6044,3204],{},[65,6046,3207],{},[44,6048,6049,6053,6057],{},[65,6050,6051],{},[114,6052,1689],{},[65,6054,6055],{},[114,6056,3204],{},[65,6058,3220,6059,424],{},[114,6060,3223],{},[44,6062,6063,6067,6071],{},[65,6064,6065],{},[114,6066,3230],{},[65,6068,6069],{},[114,6070,3235],{},[65,6072,3238],{},[674,6074,3241],{},{"title":112,"searchDepth":262,"depth":262,"links":6076},[6077,6078,6079,6080,6086,6089,6090,6091,6096],{"id":1636,"depth":262,"text":1637},{"id":1646,"depth":262,"text":1647},{"id":1678,"depth":262,"text":1679},{"id":1789,"depth":262,"text":52,"children":6081},[6082,6083,6084,6085],{"id":1792,"depth":357,"text":1793},{"id":2012,"depth":357,"text":2013},{"id":2148,"depth":357,"text":2149},{"id":2161,"depth":357,"text":2162},{"id":2186,"depth":262,"text":2187,"children":6087},[6088],{"id":2190,"depth":357,"text":2191},{"id":2355,"depth":262,"text":2356},{"id":2594,"depth":262,"text":2595},{"id":908,"depth":262,"text":909,"children":6092},[6093,6094,6095],{"id":2864,"depth":357,"text":2865},{"id":3106,"depth":357,"text":3107},{"id":3119,"depth":357,"text":3120},{"id":3137,"depth":262,"text":3138},{},{"title":1041,"description":3264}]