[{"data":1,"prerenderedAt":3641},["ShallowReactive",2],{"kscript:cookbook/zone-tracker":3},{"slug":4,"filePath":5,"frontmatter":6,"rawMarkdown":9,"tree":10},"cookbook/zone-tracker","cookbook/zone-tracker.md",{"title":7,"description":8},"Zone Tracker","Supply and demand zones as typed structs in a persisted collection, drawn as boxes that delete themselves when price mitigates them, with a live dashboard.","---\ntitle: Zone Tracker\ndescription: >-\n  Supply and demand zones as typed structs in a persisted collection, drawn as\n  boxes that delete themselves when price mitigates them, with a live dashboard.\n---\n\n\u003Cdiv class=\"flex gap-3 mb-6\">\n  \u003Cspan class=\"inline-flex items-center gap-1.5 px-3 py-1 rounded-full bg-purple-50 text-purple-600 text-sm font-medium\">\n    Advanced\n  \u003C/span>\n  \u003Cspan class=\"inline-flex items-center gap-1.5 px-3 py-1 rounded-full bg-gray-100 text-gray-600 text-sm font-medium\">\n    9 min read\n  \u003C/span>\n\u003C/div>\n\nSupply and demand zones are price areas where a strong move began. They stay interesting until price trades back through them, at which point they are \"mitigated\" and no longer matter. Tracking them by hand means juggling a list of rectangles and remembering to remove each one when it gets invalidated. This recipe does it for you. Each zone is a typed struct in a persisted collection, drawn on the chart as a box, and the box deletes itself the moment price mitigates the zone. A live table reports how many are still active. It is a tour of the whole v3 stack working together: structs, collections that survive across bars, self-managing drawings, and a dashboard.\n\n```javascript title=\"scripts/probes/cookbook/zone_tracker.ks\" lines wrap\n//@version=2\n// ============================================================================\n//  SUPPLY/DEMAND ZONE TRACKER  (v3 only)\n//  Pure v3 stack in ~50 lines: typed structs + top-level funcs hold zone state\n//  across bars, timestamp-based drawing handles paint live boxes that DELETE THEMSELVES when\n//  price mitigates the zone, and a table reports the survivors. v2 had no\n//  types, no persistent collections, no drawings, no tables.\n// ============================================================================\ndefine(title=\"Zone Tracker (structs + drawings)\", position=\"onchart\", axis=false);\n\nvar lookback = input(name=\"lookback\", type=\"number\", defaultValue=20, label=\"Pivot Lookback\", constraints={min: 5, max: 100, step: 1});\nvar maxZones = input(name=\"maxZones\", type=\"number\", defaultValue=6, label=\"Max Active Zones\", constraints={min: 1, max: 12, step: 1});\nvar supCol   = input(name=\"supCol\", type=\"color\", defaultValue=\"#22d3a5\", label=\"Demand\");\nvar resCol   = input(name=\"resCol\", type=\"color\", defaultValue=\"#ff5b7f\", label=\"Supply\");\n\ntimeseries d = ohlcv(symbol=currentSymbol, exchange=currentExchange);\n\n// A data-only type: state shaped like the problem.\ntype Zone {\n  top: number,\n  bottom: number,\n  isDemand: boolean,\n  bornBar: number,\n  handle: any\n}\n\nfunc isZoneMitigated(z, price) {\n  if (z.isDemand) {\n    return price \u003C z.bottom;\n  }\n  return price > z.top;\n}\n\npersist zones = [];\n\n// New pivot -> new zone with its own live box drawing.\ntimeseries hi = highest(d.high, lookback);\ntimeseries lo = lowest(d.low, lookback);\nvar isPivotHigh = isnum(hi[1]) && d.high[1] >= hi[1] && d.high[0] \u003C d.high[1];\nvar isPivotLow  = isnum(lo[1]) && d.low[1] \u003C= lo[1] && d.low[0] > d.low[1];\n\nif (isPivotHigh && zones.length \u003C maxZones) {\n  var zTop = d.high[1];\n  var zBot = math.max(d.open[1], d.close[1]);\n  var b = box.new(d.time[1], zTop, d.time[0] + currentInterval * 40, zBot, { color: opacity(resCol, 18), borderColor: resCol });\n  zones.push(Zone.new(top=zTop, bottom=zBot, isDemand=false, bornBar=barIndex, handle=b));\n}\nif (isPivotLow && zones.length \u003C maxZones) {\n  var zTop2 = math.min(d.open[1], d.close[1]);\n  var zBot2 = d.low[1];\n  var b2 = box.new(d.time[1], zTop2, d.time[0] + currentInterval * 40, zBot2, { color: opacity(supCol, 18), borderColor: supCol });\n  zones.push(Zone.new(top=zTop2, bottom=zBot2, isDemand=true, bornBar=barIndex, handle=b2));\n}\n\n// Mitigated zones remove their own drawing and leave the collection.\nvar survivors = [];\nfor (var i = 0; i \u003C zones.length; i = i + 1) {\n  var z = zones[i];\n  if (isZoneMitigated(z, d.close[0])) {\n    z.handle.delete();\n  } else {\n    survivors.push(z);\n  }\n}\nzones = survivors;\n\n// Live dashboard on the last bar.\nif (isLastBar) {\n  var rows = [[\"Zone Tracker\", \"\"], [\"Active zones\", \"\".concat(zones.length)]];\n  plotTable(data=rows, position=\"top_right\", headerRow=true, backgroundColor=\"#0d1117\", textColor=\"#e6edf3\", fontSize=11);\n}\n```\n\n\n## How it works\n\n**State shaped like the problem.** The `Zone` type bundles everything a zone needs to know about itself: its `top` and `bottom` price, whether it is demand or supply, the bar it was `bornBar`, and a `handle` to its own box drawing. Instead of four parallel arrays you maintain one collection of self-describing objects. The `isZoneMitigated` function reads naturally because a zone carries its own orientation: a demand zone breaks when price falls below its bottom, a supply zone when price rises above its top.\n\n**A collection that survives.** `persist zones = []` is the heart of the script. A normal variable resets every bar, but a persisted array keeps its contents across the whole run, so zones born hundreds of bars ago are still in the list now. This is what lets the script accumulate and manage a living set of zones rather than recomputing from scratch each bar.\n\n**Birth.** A new zone is created at a confirmed pivot. `highest` and `lowest` over the lookback window find swing extremes, and the pivot conditions check the prior bar against them while requiring the current bar to turn back. When a pivot fires and the list has room (`zones.length \u003C maxZones`), the script measures the zone's bounds, draws a `box.new()` for it, and pushes a fresh `Zone` holding that box's handle. The box is drawn with a faint fill and a solid border and extends a fixed number of intervals into the future so it is visible ahead of price.\n\n**Death is self-managed.** Every bar, the script walks the zones and asks each one whether price has mitigated it. A mitigated zone calls `z.handle.delete()` to remove its own box from the chart and is dropped from the rebuilt `survivors` list. Survivors are kept. Then `zones = survivors` commits the pruned set. Because each zone owns its drawing handle, cleanup is local: the zone that dies is the one that erases its rectangle. No bookkeeping of which drawing belonged to which zone, no leaks.\n\n**The dashboard.** On the last bar a small `plotTable` reports the active count, so you get a live read on how many zones are currently in play without counting boxes by eye.\n\n> **Render note.** Zones are drawn with the `box` drawing channel. If your chart renders box drawings, you see the shaded supply and demand rectangles appear at pivots and vanish on mitigation. The active-zone table reports the same state in text, so the count is readable even where boxes are not.\n\n## Customize it\n\n- **Zone frequency.** `lookback` controls how significant a swing must be to spawn a zone. A small value (10) marks many minor pivots, a large one (50) keeps only major swing points. This is the main dial between \"lots of zones\" and \"only the big ones.\"\n- **Clutter control.** `maxZones` caps how many can be active at once. Once full, new pivots are ignored until older zones get mitigated and free up a slot. Raise it if you want a denser map, lower it for a cleaner chart.\n- **Mitigation rule.** Right now a single close beyond the zone mitigates it. For a stricter definition, change `isZoneMitigated` to require the close to pass fully through to the far edge, or to require two consecutive closes beyond it.\n- **Zone thickness.** The bounds come from the pivot bar's body (`open`/`close`) and wick (`high`/`low`). Use the full candle range for thicker zones, or the body only for tighter ones, by changing which prices `zTop` / `zBot` read.\n- **Box length.** Each box extends `currentInterval * 40` into the future. Increase the multiplier to project zones further ahead, decrease it to keep them compact.\n- **Colors.** `supCol` (demand) and `resCol` (supply) set both the box fill and border. The faint fill is derived with `opacity()`, so changing the base color restyles the whole zone.\n- **Alert on touch.** Add an [`alert()`](/kscript/functions/alerts) when `d.close` enters an active zone to be notified when price reaches one of your levels.\n\n## Concepts used\n\n- [User-defined types](/kscript/core-concepts/user-defined-types) for the `Zone` struct and its fields\n- [Collections](/kscript/core-concepts/collections) for the array of zones, `push`, and iteration\n- [Execution model](/kscript/core-concepts/execution-model) for the `persist` collection that survives across bars\n- [Drawing objects](/kscript/functions/drawing-objects) for `box.new()` and the self-managing `.delete()`\n- [User functions](/kscript/core-concepts/user-functions) for the `isZoneMitigated` helper\n- [Plotting](/kscript/functions/plotting) for the live `plotTable` dashboard\n",{"type":11,"children":12,"data":3635,"position":3637},"root",[13,100,101,116,117,2202,2203,2221,2222,2372,2373,2421,2422,2551,2552,2642,2643,2694,2695,2754,2755,2771,2772,3303,3304,3320,3321],{"type":14,"tagName":15,"properties":16,"children":21,"position":95},"element","div",{"className":17},[18,19,20],"flex","gap-3","mb-6",[22,34,63,69,88],{"type":23,"value":24,"position":25},"text","\n  ",{"start":26,"end":30},{"line":27,"column":28,"offset":29},1,30,29,{"line":31,"column":32,"offset":33},2,3,32,{"type":14,"tagName":35,"properties":36,"children":48,"position":58},"span",{"className":37},[38,39,40,41,42,43,44,45,46,47],"inline-flex","items-center","gap-1.5","px-3","py-1","rounded-full","bg-purple-50","text-purple-600","text-sm","font-medium",[49],{"type":23,"value":50,"position":51},"\n    Advanced\n  ",{"start":52,"end":55},{"line":31,"column":53,"offset":54},122,151,{"line":56,"column":32,"offset":57},4,167,{"start":59,"end":60},{"line":31,"column":32,"offset":33},{"line":56,"column":61,"offset":62},10,174,{"type":23,"value":24,"position":64},{"start":65,"end":66},{"line":56,"column":61,"offset":62},{"line":67,"column":32,"offset":68},5,177,{"type":14,"tagName":35,"properties":70,"children":74,"position":84},{"className":71},[38,39,40,41,42,43,72,73,46,47],"bg-gray-100","text-gray-600",[75],{"type":23,"value":76,"position":77},"\n    9 min read\n  ",{"start":78,"end":81},{"line":67,"column":79,"offset":80},119,293,{"line":82,"column":32,"offset":83},7,311,{"start":85,"end":86},{"line":67,"column":32,"offset":68},{"line":82,"column":61,"offset":87},318,{"type":23,"value":89,"position":90},"\n",{"start":91,"end":92},{"line":82,"column":61,"offset":87},{"line":93,"column":27,"offset":94},8,319,{"start":96,"end":98},{"line":27,"column":27,"offset":97},0,{"line":93,"column":82,"offset":99},325,{"type":23,"value":89},{"type":14,"tagName":102,"properties":103,"children":104,"position":113},"p",{},[105],{"type":23,"value":106,"position":107},"Supply and demand zones are price areas where a strong move began. They stay interesting until price trades back through them, at which point they are \"mitigated\" and no longer matter. Tracking them by hand means juggling a list of rectangles and remembering to remove each one when it gets invalidated. This recipe does it for you. Each zone is a typed struct in a persisted collection, drawn on the chart as a box, and the box deletes itself the moment price mitigates the zone. A live table reports how many are still active. It is a tour of the whole v3 stack working together: structs, collections that survive across bars, self-managing drawings, and a dashboard.",{"start":108,"end":110},{"line":61,"column":27,"offset":109},327,{"line":61,"column":111,"offset":112},670,996,{"start":114,"end":115},{"line":61,"column":27,"offset":109},{"line":61,"column":111,"offset":112},{"type":23,"value":89},{"type":11,"children":118},[119],{"type":14,"tagName":120,"properties":121,"children":126,"data":-1},"pre",{"class":122,"style":123,"tabindex":124,"title":125},"shiki shiki-themes github-dark github-light","--shiki-dark:#e1e4e8;--shiki-light:#24292e;--shiki-dark-bg:#24292e;--shiki-light-bg:#fff","0","scripts/probes/cookbook/zone_tracker.ks",[127],{"type":14,"tagName":128,"properties":129,"children":130},"code",{},[131,141,142,150,151,159,160,168,169,177,178,186,187,195,196,203,204,265,266,269,270,392,393,501,502,578,579,654,655,658,659,699,700,703,704,712,713,731,732,740,741,749,750,758,759,767,768,776,777,785,786,789,790,808,809,822,823,846,847,855,856,878,879,886,887,890,891,908,909,912,913,921,922,944,945,967,968,1073,1074,1174,1175,1178,1179,1216,1217,1246,1247,1296,1297,1390,1391,1467,1468,1475,1476,1508,1509,1554,1555,1583,1584,1668,1669,1740,1741,1748,1749,1752,1753,1761,1762,1782,1783,1857,1858,1879,1880,1909,1910,1928,1929,1946,1947,1964,1965,1972,1973,1980,1981,1998,1999,2002,2003,2011,2012,2024,2025,2103,2104,2194,2195],{"type":14,"tagName":35,"properties":132,"children":134},{"class":133},"line",[135],{"type":14,"tagName":35,"properties":136,"children":138},{"style":137},"--shiki-dark:#6A737D;--shiki-light:#6A737D",[139],{"type":23,"value":140},"//@version=2",{"type":23,"value":89},{"type":14,"tagName":35,"properties":143,"children":144},{"class":133},[145],{"type":14,"tagName":35,"properties":146,"children":147},{"style":137},[148],{"type":23,"value":149},"// ============================================================================",{"type":23,"value":89},{"type":14,"tagName":35,"properties":152,"children":153},{"class":133},[154],{"type":14,"tagName":35,"properties":155,"children":156},{"style":137},[157],{"type":23,"value":158},"//  SUPPLY/DEMAND ZONE TRACKER  (v3 only)",{"type":23,"value":89},{"type":14,"tagName":35,"properties":161,"children":162},{"class":133},[163],{"type":14,"tagName":35,"properties":164,"children":165},{"style":137},[166],{"type":23,"value":167},"//  Pure v3 stack in ~50 lines: typed structs + top-level funcs hold zone state",{"type":23,"value":89},{"type":14,"tagName":35,"properties":170,"children":171},{"class":133},[172],{"type":14,"tagName":35,"properties":173,"children":174},{"style":137},[175],{"type":23,"value":176},"//  across bars, timestamp-based drawing handles paint live boxes that DELETE THEMSELVES when",{"type":23,"value":89},{"type":14,"tagName":35,"properties":179,"children":180},{"class":133},[181],{"type":14,"tagName":35,"properties":182,"children":183},{"style":137},[184],{"type":23,"value":185},"//  price mitigates the zone, and a table reports the survivors. v2 had no",{"type":23,"value":89},{"type":14,"tagName":35,"properties":188,"children":189},{"class":133},[190],{"type":14,"tagName":35,"properties":191,"children":192},{"style":137},[193],{"type":23,"value":194},"//  types, no persistent collections, no drawings, no tables.",{"type":23,"value":89},{"type":14,"tagName":35,"properties":197,"children":198},{"class":133},[199],{"type":14,"tagName":35,"properties":200,"children":201},{"style":137},[202],{"type":23,"value":149},{"type":23,"value":89},{"type":14,"tagName":35,"properties":205,"children":206},{"class":133},[207,213,219,225,231,236,240,245,250,254,260],{"type":14,"tagName":35,"properties":208,"children":210},{"style":209},"--shiki-dark:#B392F0;--shiki-light:#6F42C1",[211],{"type":23,"value":212},"define",{"type":14,"tagName":35,"properties":214,"children":216},{"style":215},"--shiki-dark:#E1E4E8;--shiki-light:#24292E",[217],{"type":23,"value":218},"(title",{"type":14,"tagName":35,"properties":220,"children":222},{"style":221},"--shiki-dark:#F97583;--shiki-light:#D73A49",[223],{"type":23,"value":224},"=",{"type":14,"tagName":35,"properties":226,"children":228},{"style":227},"--shiki-dark:#9ECBFF;--shiki-light:#032F62",[229],{"type":23,"value":230},"\"Zone Tracker (structs + drawings)\"",{"type":14,"tagName":35,"properties":232,"children":233},{"style":215},[234],{"type":23,"value":235},", position",{"type":14,"tagName":35,"properties":237,"children":238},{"style":221},[239],{"type":23,"value":224},{"type":14,"tagName":35,"properties":241,"children":242},{"style":227},[243],{"type":23,"value":244},"\"onchart\"",{"type":14,"tagName":35,"properties":246,"children":247},{"style":215},[248],{"type":23,"value":249},", axis",{"type":14,"tagName":35,"properties":251,"children":252},{"style":221},[253],{"type":23,"value":224},{"type":14,"tagName":35,"properties":255,"children":257},{"style":256},"--shiki-dark:#79B8FF;--shiki-light:#005CC5",[258],{"type":23,"value":259},"false",{"type":14,"tagName":35,"properties":261,"children":262},{"style":215},[263],{"type":23,"value":264},");",{"type":23,"value":89},{"type":14,"tagName":35,"properties":267,"children":268},{"class":133},[],{"type":23,"value":89},{"type":14,"tagName":35,"properties":271,"children":272},{"class":133},[273,278,283,287,292,297,301,306,311,315,320,325,329,334,339,343,348,353,357,362,367,372,377,382,387],{"type":14,"tagName":35,"properties":274,"children":275},{"style":221},[276],{"type":23,"value":277},"var",{"type":14,"tagName":35,"properties":279,"children":280},{"style":215},[281],{"type":23,"value":282}," lookback ",{"type":14,"tagName":35,"properties":284,"children":285},{"style":221},[286],{"type":23,"value":224},{"type":14,"tagName":35,"properties":288,"children":289},{"style":209},[290],{"type":23,"value":291}," input",{"type":14,"tagName":35,"properties":293,"children":294},{"style":215},[295],{"type":23,"value":296},"(name",{"type":14,"tagName":35,"properties":298,"children":299},{"style":221},[300],{"type":23,"value":224},{"type":14,"tagName":35,"properties":302,"children":303},{"style":227},[304],{"type":23,"value":305},"\"lookback\"",{"type":14,"tagName":35,"properties":307,"children":308},{"style":215},[309],{"type":23,"value":310},", type",{"type":14,"tagName":35,"properties":312,"children":313},{"style":221},[314],{"type":23,"value":224},{"type":14,"tagName":35,"properties":316,"children":317},{"style":227},[318],{"type":23,"value":319},"\"number\"",{"type":14,"tagName":35,"properties":321,"children":322},{"style":215},[323],{"type":23,"value":324},", defaultValue",{"type":14,"tagName":35,"properties":326,"children":327},{"style":221},[328],{"type":23,"value":224},{"type":14,"tagName":35,"properties":330,"children":331},{"style":256},[332],{"type":23,"value":333},"20",{"type":14,"tagName":35,"properties":335,"children":336},{"style":215},[337],{"type":23,"value":338},", label",{"type":14,"tagName":35,"properties":340,"children":341},{"style":221},[342],{"type":23,"value":224},{"type":14,"tagName":35,"properties":344,"children":345},{"style":227},[346],{"type":23,"value":347},"\"Pivot Lookback\"",{"type":14,"tagName":35,"properties":349,"children":350},{"style":215},[351],{"type":23,"value":352},", constraints",{"type":14,"tagName":35,"properties":354,"children":355},{"style":221},[356],{"type":23,"value":224},{"type":14,"tagName":35,"properties":358,"children":359},{"style":215},[360],{"type":23,"value":361},"{min: ",{"type":14,"tagName":35,"properties":363,"children":364},{"style":256},[365],{"type":23,"value":366},"5",{"type":14,"tagName":35,"properties":368,"children":369},{"style":215},[370],{"type":23,"value":371},", max: ",{"type":14,"tagName":35,"properties":373,"children":374},{"style":256},[375],{"type":23,"value":376},"100",{"type":14,"tagName":35,"properties":378,"children":379},{"style":215},[380],{"type":23,"value":381},", step: ",{"type":14,"tagName":35,"properties":383,"children":384},{"style":256},[385],{"type":23,"value":386},"1",{"type":14,"tagName":35,"properties":388,"children":389},{"style":215},[390],{"type":23,"value":391},"});",{"type":23,"value":89},{"type":14,"tagName":35,"properties":394,"children":395},{"class":133},[396,400,405,409,413,417,421,426,430,434,438,442,446,451,455,459,464,468,472,476,480,484,489,493,497],{"type":14,"tagName":35,"properties":397,"children":398},{"style":221},[399],{"type":23,"value":277},{"type":14,"tagName":35,"properties":401,"children":402},{"style":215},[403],{"type":23,"value":404}," maxZones ",{"type":14,"tagName":35,"properties":406,"children":407},{"style":221},[408],{"type":23,"value":224},{"type":14,"tagName":35,"properties":410,"children":411},{"style":209},[412],{"type":23,"value":291},{"type":14,"tagName":35,"properties":414,"children":415},{"style":215},[416],{"type":23,"value":296},{"type":14,"tagName":35,"properties":418,"children":419},{"style":221},[420],{"type":23,"value":224},{"type":14,"tagName":35,"properties":422,"children":423},{"style":227},[424],{"type":23,"value":425},"\"maxZones\"",{"type":14,"tagName":35,"properties":427,"children":428},{"style":215},[429],{"type":23,"value":310},{"type":14,"tagName":35,"properties":431,"children":432},{"style":221},[433],{"type":23,"value":224},{"type":14,"tagName":35,"properties":435,"children":436},{"style":227},[437],{"type":23,"value":319},{"type":14,"tagName":35,"properties":439,"children":440},{"style":215},[441],{"type":23,"value":324},{"type":14,"tagName":35,"properties":443,"children":444},{"style":221},[445],{"type":23,"value":224},{"type":14,"tagName":35,"properties":447,"children":448},{"style":256},[449],{"type":23,"value":450},"6",{"type":14,"tagName":35,"properties":452,"children":453},{"style":215},[454],{"type":23,"value":338},{"type":14,"tagName":35,"properties":456,"children":457},{"style":221},[458],{"type":23,"value":224},{"type":14,"tagName":35,"properties":460,"children":461},{"style":227},[462],{"type":23,"value":463},"\"Max Active Zones\"",{"type":14,"tagName":35,"properties":465,"children":466},{"style":215},[467],{"type":23,"value":352},{"type":14,"tagName":35,"properties":469,"children":470},{"style":221},[471],{"type":23,"value":224},{"type":14,"tagName":35,"properties":473,"children":474},{"style":215},[475],{"type":23,"value":361},{"type":14,"tagName":35,"properties":477,"children":478},{"style":256},[479],{"type":23,"value":386},{"type":14,"tagName":35,"properties":481,"children":482},{"style":215},[483],{"type":23,"value":371},{"type":14,"tagName":35,"properties":485,"children":486},{"style":256},[487],{"type":23,"value":488},"12",{"type":14,"tagName":35,"properties":490,"children":491},{"style":215},[492],{"type":23,"value":381},{"type":14,"tagName":35,"properties":494,"children":495},{"style":256},[496],{"type":23,"value":386},{"type":14,"tagName":35,"properties":498,"children":499},{"style":215},[500],{"type":23,"value":391},{"type":23,"value":89},{"type":14,"tagName":35,"properties":503,"children":504},{"class":133},[505,509,514,518,522,526,530,535,539,543,548,552,556,561,565,569,574],{"type":14,"tagName":35,"properties":506,"children":507},{"style":221},[508],{"type":23,"value":277},{"type":14,"tagName":35,"properties":510,"children":511},{"style":215},[512],{"type":23,"value":513}," supCol   ",{"type":14,"tagName":35,"properties":515,"children":516},{"style":221},[517],{"type":23,"value":224},{"type":14,"tagName":35,"properties":519,"children":520},{"style":209},[521],{"type":23,"value":291},{"type":14,"tagName":35,"properties":523,"children":524},{"style":215},[525],{"type":23,"value":296},{"type":14,"tagName":35,"properties":527,"children":528},{"style":221},[529],{"type":23,"value":224},{"type":14,"tagName":35,"properties":531,"children":532},{"style":227},[533],{"type":23,"value":534},"\"supCol\"",{"type":14,"tagName":35,"properties":536,"children":537},{"style":215},[538],{"type":23,"value":310},{"type":14,"tagName":35,"properties":540,"children":541},{"style":221},[542],{"type":23,"value":224},{"type":14,"tagName":35,"properties":544,"children":545},{"style":227},[546],{"type":23,"value":547},"\"color\"",{"type":14,"tagName":35,"properties":549,"children":550},{"style":215},[551],{"type":23,"value":324},{"type":14,"tagName":35,"properties":553,"children":554},{"style":221},[555],{"type":23,"value":224},{"type":14,"tagName":35,"properties":557,"children":558},{"style":227},[559],{"type":23,"value":560},"\"#22d3a5\"",{"type":14,"tagName":35,"properties":562,"children":563},{"style":215},[564],{"type":23,"value":338},{"type":14,"tagName":35,"properties":566,"children":567},{"style":221},[568],{"type":23,"value":224},{"type":14,"tagName":35,"properties":570,"children":571},{"style":227},[572],{"type":23,"value":573},"\"Demand\"",{"type":14,"tagName":35,"properties":575,"children":576},{"style":215},[577],{"type":23,"value":264},{"type":23,"value":89},{"type":14,"tagName":35,"properties":580,"children":581},{"class":133},[582,586,591,595,599,603,607,612,616,620,624,628,632,637,641,645,650],{"type":14,"tagName":35,"properties":583,"children":584},{"style":221},[585],{"type":23,"value":277},{"type":14,"tagName":35,"properties":587,"children":588},{"style":215},[589],{"type":23,"value":590}," resCol   ",{"type":14,"tagName":35,"properties":592,"children":593},{"style":221},[594],{"type":23,"value":224},{"type":14,"tagName":35,"properties":596,"children":597},{"style":209},[598],{"type":23,"value":291},{"type":14,"tagName":35,"properties":600,"children":601},{"style":215},[602],{"type":23,"value":296},{"type":14,"tagName":35,"properties":604,"children":605},{"style":221},[606],{"type":23,"value":224},{"type":14,"tagName":35,"properties":608,"children":609},{"style":227},[610],{"type":23,"value":611},"\"resCol\"",{"type":14,"tagName":35,"properties":613,"children":614},{"style":215},[615],{"type":23,"value":310},{"type":14,"tagName":35,"properties":617,"children":618},{"style":221},[619],{"type":23,"value":224},{"type":14,"tagName":35,"properties":621,"children":622},{"style":227},[623],{"type":23,"value":547},{"type":14,"tagName":35,"properties":625,"children":626},{"style":215},[627],{"type":23,"value":324},{"type":14,"tagName":35,"properties":629,"children":630},{"style":221},[631],{"type":23,"value":224},{"type":14,"tagName":35,"properties":633,"children":634},{"style":227},[635],{"type":23,"value":636},"\"#ff5b7f\"",{"type":14,"tagName":35,"properties":638,"children":639},{"style":215},[640],{"type":23,"value":338},{"type":14,"tagName":35,"properties":642,"children":643},{"style":221},[644],{"type":23,"value":224},{"type":14,"tagName":35,"properties":646,"children":647},{"style":227},[648],{"type":23,"value":649},"\"Supply\"",{"type":14,"tagName":35,"properties":651,"children":652},{"style":215},[653],{"type":23,"value":264},{"type":23,"value":89},{"type":14,"tagName":35,"properties":656,"children":657},{"class":133},[],{"type":23,"value":89},{"type":14,"tagName":35,"properties":660,"children":661},{"class":133},[662,667,671,676,681,685,690,694],{"type":14,"tagName":35,"properties":663,"children":664},{"style":215},[665],{"type":23,"value":666},"timeseries d ",{"type":14,"tagName":35,"properties":668,"children":669},{"style":221},[670],{"type":23,"value":224},{"type":14,"tagName":35,"properties":672,"children":673},{"style":209},[674],{"type":23,"value":675}," ohlcv",{"type":14,"tagName":35,"properties":677,"children":678},{"style":215},[679],{"type":23,"value":680},"(symbol",{"type":14,"tagName":35,"properties":682,"children":683},{"style":221},[684],{"type":23,"value":224},{"type":14,"tagName":35,"properties":686,"children":687},{"style":215},[688],{"type":23,"value":689},"currentSymbol, exchange",{"type":14,"tagName":35,"properties":691,"children":692},{"style":221},[693],{"type":23,"value":224},{"type":14,"tagName":35,"properties":695,"children":696},{"style":215},[697],{"type":23,"value":698},"currentExchange);",{"type":23,"value":89},{"type":14,"tagName":35,"properties":701,"children":702},{"class":133},[],{"type":23,"value":89},{"type":14,"tagName":35,"properties":705,"children":706},{"class":133},[707],{"type":14,"tagName":35,"properties":708,"children":709},{"style":137},[710],{"type":23,"value":711},"// A data-only type: state shaped like the problem.",{"type":23,"value":89},{"type":14,"tagName":35,"properties":714,"children":715},{"class":133},[716,721,726],{"type":14,"tagName":35,"properties":717,"children":718},{"style":221},[719],{"type":23,"value":720},"type",{"type":14,"tagName":35,"properties":722,"children":723},{"style":209},[724],{"type":23,"value":725}," Zone",{"type":14,"tagName":35,"properties":727,"children":728},{"style":215},[729],{"type":23,"value":730}," {",{"type":23,"value":89},{"type":14,"tagName":35,"properties":733,"children":734},{"class":133},[735],{"type":14,"tagName":35,"properties":736,"children":737},{"style":215},[738],{"type":23,"value":739},"  top: number,",{"type":23,"value":89},{"type":14,"tagName":35,"properties":742,"children":743},{"class":133},[744],{"type":14,"tagName":35,"properties":745,"children":746},{"style":215},[747],{"type":23,"value":748},"  bottom: number,",{"type":23,"value":89},{"type":14,"tagName":35,"properties":751,"children":752},{"class":133},[753],{"type":14,"tagName":35,"properties":754,"children":755},{"style":215},[756],{"type":23,"value":757},"  isDemand: boolean,",{"type":23,"value":89},{"type":14,"tagName":35,"properties":760,"children":761},{"class":133},[762],{"type":14,"tagName":35,"properties":763,"children":764},{"style":215},[765],{"type":23,"value":766},"  bornBar: number,",{"type":23,"value":89},{"type":14,"tagName":35,"properties":769,"children":770},{"class":133},[771],{"type":14,"tagName":35,"properties":772,"children":773},{"style":215},[774],{"type":23,"value":775},"  handle: any",{"type":23,"value":89},{"type":14,"tagName":35,"properties":778,"children":779},{"class":133},[780],{"type":14,"tagName":35,"properties":781,"children":782},{"style":215},[783],{"type":23,"value":784},"}",{"type":23,"value":89},{"type":14,"tagName":35,"properties":787,"children":788},{"class":133},[],{"type":23,"value":89},{"type":14,"tagName":35,"properties":791,"children":792},{"class":133},[793,798,803],{"type":14,"tagName":35,"properties":794,"children":795},{"style":215},[796],{"type":23,"value":797},"func ",{"type":14,"tagName":35,"properties":799,"children":800},{"style":209},[801],{"type":23,"value":802},"isZoneMitigated",{"type":14,"tagName":35,"properties":804,"children":805},{"style":215},[806],{"type":23,"value":807},"(z, price) {",{"type":23,"value":89},{"type":14,"tagName":35,"properties":810,"children":811},{"class":133},[812,817],{"type":14,"tagName":35,"properties":813,"children":814},{"style":221},[815],{"type":23,"value":816},"  if",{"type":14,"tagName":35,"properties":818,"children":819},{"style":215},[820],{"type":23,"value":821}," (z.isDemand) {",{"type":23,"value":89},{"type":14,"tagName":35,"properties":824,"children":825},{"class":133},[826,831,836,841],{"type":14,"tagName":35,"properties":827,"children":828},{"style":221},[829],{"type":23,"value":830},"    return",{"type":14,"tagName":35,"properties":832,"children":833},{"style":215},[834],{"type":23,"value":835}," price ",{"type":14,"tagName":35,"properties":837,"children":838},{"style":221},[839],{"type":23,"value":840},"\u003C",{"type":14,"tagName":35,"properties":842,"children":843},{"style":215},[844],{"type":23,"value":845}," z.bottom;",{"type":23,"value":89},{"type":14,"tagName":35,"properties":848,"children":849},{"class":133},[850],{"type":14,"tagName":35,"properties":851,"children":852},{"style":215},[853],{"type":23,"value":854},"  }",{"type":23,"value":89},{"type":14,"tagName":35,"properties":857,"children":858},{"class":133},[859,864,868,873],{"type":14,"tagName":35,"properties":860,"children":861},{"style":221},[862],{"type":23,"value":863},"  return",{"type":14,"tagName":35,"properties":865,"children":866},{"style":215},[867],{"type":23,"value":835},{"type":14,"tagName":35,"properties":869,"children":870},{"style":221},[871],{"type":23,"value":872},">",{"type":14,"tagName":35,"properties":874,"children":875},{"style":215},[876],{"type":23,"value":877}," z.top;",{"type":23,"value":89},{"type":14,"tagName":35,"properties":880,"children":881},{"class":133},[882],{"type":14,"tagName":35,"properties":883,"children":884},{"style":215},[885],{"type":23,"value":784},{"type":23,"value":89},{"type":14,"tagName":35,"properties":888,"children":889},{"class":133},[],{"type":23,"value":89},{"type":14,"tagName":35,"properties":892,"children":893},{"class":133},[894,899,903],{"type":14,"tagName":35,"properties":895,"children":896},{"style":215},[897],{"type":23,"value":898},"persist zones ",{"type":14,"tagName":35,"properties":900,"children":901},{"style":221},[902],{"type":23,"value":224},{"type":14,"tagName":35,"properties":904,"children":905},{"style":215},[906],{"type":23,"value":907}," [];",{"type":23,"value":89},{"type":14,"tagName":35,"properties":910,"children":911},{"class":133},[],{"type":23,"value":89},{"type":14,"tagName":35,"properties":914,"children":915},{"class":133},[916],{"type":14,"tagName":35,"properties":917,"children":918},{"style":137},[919],{"type":23,"value":920},"// New pivot -> new zone with its own live box drawing.",{"type":23,"value":89},{"type":14,"tagName":35,"properties":923,"children":924},{"class":133},[925,930,934,939],{"type":14,"tagName":35,"properties":926,"children":927},{"style":215},[928],{"type":23,"value":929},"timeseries hi ",{"type":14,"tagName":35,"properties":931,"children":932},{"style":221},[933],{"type":23,"value":224},{"type":14,"tagName":35,"properties":935,"children":936},{"style":209},[937],{"type":23,"value":938}," highest",{"type":14,"tagName":35,"properties":940,"children":941},{"style":215},[942],{"type":23,"value":943},"(d.high, lookback);",{"type":23,"value":89},{"type":14,"tagName":35,"properties":946,"children":947},{"class":133},[948,953,957,962],{"type":14,"tagName":35,"properties":949,"children":950},{"style":215},[951],{"type":23,"value":952},"timeseries lo ",{"type":14,"tagName":35,"properties":954,"children":955},{"style":221},[956],{"type":23,"value":224},{"type":14,"tagName":35,"properties":958,"children":959},{"style":209},[960],{"type":23,"value":961}," lowest",{"type":14,"tagName":35,"properties":963,"children":964},{"style":215},[965],{"type":23,"value":966},"(d.low, lookback);",{"type":23,"value":89},{"type":14,"tagName":35,"properties":969,"children":970},{"class":133},[971,975,980,984,989,994,998,1003,1008,1013,1017,1022,1027,1032,1036,1040,1044,1048,1052,1056,1060,1064,1068],{"type":14,"tagName":35,"properties":972,"children":973},{"style":221},[974],{"type":23,"value":277},{"type":14,"tagName":35,"properties":976,"children":977},{"style":215},[978],{"type":23,"value":979}," isPivotHigh ",{"type":14,"tagName":35,"properties":981,"children":982},{"style":221},[983],{"type":23,"value":224},{"type":14,"tagName":35,"properties":985,"children":986},{"style":209},[987],{"type":23,"value":988}," isnum",{"type":14,"tagName":35,"properties":990,"children":991},{"style":215},[992],{"type":23,"value":993},"(hi[",{"type":14,"tagName":35,"properties":995,"children":996},{"style":256},[997],{"type":23,"value":386},{"type":14,"tagName":35,"properties":999,"children":1000},{"style":215},[1001],{"type":23,"value":1002},"]) ",{"type":14,"tagName":35,"properties":1004,"children":1005},{"style":221},[1006],{"type":23,"value":1007},"&&",{"type":14,"tagName":35,"properties":1009,"children":1010},{"style":215},[1011],{"type":23,"value":1012}," d.high[",{"type":14,"tagName":35,"properties":1014,"children":1015},{"style":256},[1016],{"type":23,"value":386},{"type":14,"tagName":35,"properties":1018,"children":1019},{"style":215},[1020],{"type":23,"value":1021},"] ",{"type":14,"tagName":35,"properties":1023,"children":1024},{"style":221},[1025],{"type":23,"value":1026},">=",{"type":14,"tagName":35,"properties":1028,"children":1029},{"style":215},[1030],{"type":23,"value":1031}," hi[",{"type":14,"tagName":35,"properties":1033,"children":1034},{"style":256},[1035],{"type":23,"value":386},{"type":14,"tagName":35,"properties":1037,"children":1038},{"style":215},[1039],{"type":23,"value":1021},{"type":14,"tagName":35,"properties":1041,"children":1042},{"style":221},[1043],{"type":23,"value":1007},{"type":14,"tagName":35,"properties":1045,"children":1046},{"style":215},[1047],{"type":23,"value":1012},{"type":14,"tagName":35,"properties":1049,"children":1050},{"style":256},[1051],{"type":23,"value":124},{"type":14,"tagName":35,"properties":1053,"children":1054},{"style":215},[1055],{"type":23,"value":1021},{"type":14,"tagName":35,"properties":1057,"children":1058},{"style":221},[1059],{"type":23,"value":840},{"type":14,"tagName":35,"properties":1061,"children":1062},{"style":215},[1063],{"type":23,"value":1012},{"type":14,"tagName":35,"properties":1065,"children":1066},{"style":256},[1067],{"type":23,"value":386},{"type":14,"tagName":35,"properties":1069,"children":1070},{"style":215},[1071],{"type":23,"value":1072},"];",{"type":23,"value":89},{"type":14,"tagName":35,"properties":1075,"children":1076},{"class":133},[1077,1081,1086,1090,1094,1099,1103,1107,1111,1116,1120,1124,1129,1134,1138,1142,1146,1150,1154,1158,1162,1166,1170],{"type":14,"tagName":35,"properties":1078,"children":1079},{"style":221},[1080],{"type":23,"value":277},{"type":14,"tagName":35,"properties":1082,"children":1083},{"style":215},[1084],{"type":23,"value":1085}," isPivotLow  ",{"type":14,"tagName":35,"properties":1087,"children":1088},{"style":221},[1089],{"type":23,"value":224},{"type":14,"tagName":35,"properties":1091,"children":1092},{"style":209},[1093],{"type":23,"value":988},{"type":14,"tagName":35,"properties":1095,"children":1096},{"style":215},[1097],{"type":23,"value":1098},"(lo[",{"type":14,"tagName":35,"properties":1100,"children":1101},{"style":256},[1102],{"type":23,"value":386},{"type":14,"tagName":35,"properties":1104,"children":1105},{"style":215},[1106],{"type":23,"value":1002},{"type":14,"tagName":35,"properties":1108,"children":1109},{"style":221},[1110],{"type":23,"value":1007},{"type":14,"tagName":35,"properties":1112,"children":1113},{"style":215},[1114],{"type":23,"value":1115}," d.low[",{"type":14,"tagName":35,"properties":1117,"children":1118},{"style":256},[1119],{"type":23,"value":386},{"type":14,"tagName":35,"properties":1121,"children":1122},{"style":215},[1123],{"type":23,"value":1021},{"type":14,"tagName":35,"properties":1125,"children":1126},{"style":221},[1127],{"type":23,"value":1128},"\u003C=",{"type":14,"tagName":35,"properties":1130,"children":1131},{"style":215},[1132],{"type":23,"value":1133}," lo[",{"type":14,"tagName":35,"properties":1135,"children":1136},{"style":256},[1137],{"type":23,"value":386},{"type":14,"tagName":35,"properties":1139,"children":1140},{"style":215},[1141],{"type":23,"value":1021},{"type":14,"tagName":35,"properties":1143,"children":1144},{"style":221},[1145],{"type":23,"value":1007},{"type":14,"tagName":35,"properties":1147,"children":1148},{"style":215},[1149],{"type":23,"value":1115},{"type":14,"tagName":35,"properties":1151,"children":1152},{"style":256},[1153],{"type":23,"value":124},{"type":14,"tagName":35,"properties":1155,"children":1156},{"style":215},[1157],{"type":23,"value":1021},{"type":14,"tagName":35,"properties":1159,"children":1160},{"style":221},[1161],{"type":23,"value":872},{"type":14,"tagName":35,"properties":1163,"children":1164},{"style":215},[1165],{"type":23,"value":1115},{"type":14,"tagName":35,"properties":1167,"children":1168},{"style":256},[1169],{"type":23,"value":386},{"type":14,"tagName":35,"properties":1171,"children":1172},{"style":215},[1173],{"type":23,"value":1072},{"type":23,"value":89},{"type":14,"tagName":35,"properties":1176,"children":1177},{"class":133},[],{"type":23,"value":89},{"type":14,"tagName":35,"properties":1180,"children":1181},{"class":133},[1182,1187,1192,1196,1201,1206,1211],{"type":14,"tagName":35,"properties":1183,"children":1184},{"style":221},[1185],{"type":23,"value":1186},"if",{"type":14,"tagName":35,"properties":1188,"children":1189},{"style":215},[1190],{"type":23,"value":1191}," (isPivotHigh ",{"type":14,"tagName":35,"properties":1193,"children":1194},{"style":221},[1195],{"type":23,"value":1007},{"type":14,"tagName":35,"properties":1197,"children":1198},{"style":215},[1199],{"type":23,"value":1200}," zones.",{"type":14,"tagName":35,"properties":1202,"children":1203},{"style":256},[1204],{"type":23,"value":1205},"length",{"type":14,"tagName":35,"properties":1207,"children":1208},{"style":221},[1209],{"type":23,"value":1210}," \u003C",{"type":14,"tagName":35,"properties":1212,"children":1213},{"style":215},[1214],{"type":23,"value":1215}," maxZones) {",{"type":23,"value":89},{"type":14,"tagName":35,"properties":1218,"children":1219},{"class":133},[1220,1225,1230,1234,1238,1242],{"type":14,"tagName":35,"properties":1221,"children":1222},{"style":221},[1223],{"type":23,"value":1224},"  var",{"type":14,"tagName":35,"properties":1226,"children":1227},{"style":215},[1228],{"type":23,"value":1229}," zTop ",{"type":14,"tagName":35,"properties":1231,"children":1232},{"style":221},[1233],{"type":23,"value":224},{"type":14,"tagName":35,"properties":1235,"children":1236},{"style":215},[1237],{"type":23,"value":1012},{"type":14,"tagName":35,"properties":1239,"children":1240},{"style":256},[1241],{"type":23,"value":386},{"type":14,"tagName":35,"properties":1243,"children":1244},{"style":215},[1245],{"type":23,"value":1072},{"type":23,"value":89},{"type":14,"tagName":35,"properties":1248,"children":1249},{"class":133},[1250,1254,1259,1263,1268,1273,1278,1282,1287,1291],{"type":14,"tagName":35,"properties":1251,"children":1252},{"style":221},[1253],{"type":23,"value":1224},{"type":14,"tagName":35,"properties":1255,"children":1256},{"style":215},[1257],{"type":23,"value":1258}," zBot ",{"type":14,"tagName":35,"properties":1260,"children":1261},{"style":221},[1262],{"type":23,"value":224},{"type":14,"tagName":35,"properties":1264,"children":1265},{"style":215},[1266],{"type":23,"value":1267}," math.",{"type":14,"tagName":35,"properties":1269,"children":1270},{"style":209},[1271],{"type":23,"value":1272},"max",{"type":14,"tagName":35,"properties":1274,"children":1275},{"style":215},[1276],{"type":23,"value":1277},"(d.open[",{"type":14,"tagName":35,"properties":1279,"children":1280},{"style":256},[1281],{"type":23,"value":386},{"type":14,"tagName":35,"properties":1283,"children":1284},{"style":215},[1285],{"type":23,"value":1286},"], d.close[",{"type":14,"tagName":35,"properties":1288,"children":1289},{"style":256},[1290],{"type":23,"value":386},{"type":14,"tagName":35,"properties":1292,"children":1293},{"style":215},[1294],{"type":23,"value":1295},"]);",{"type":23,"value":89},{"type":14,"tagName":35,"properties":1298,"children":1299},{"class":133},[1300,1304,1309,1313,1318,1323,1328,1332,1337,1341,1345,1350,1355,1360,1365,1370,1375,1380,1385],{"type":14,"tagName":35,"properties":1301,"children":1302},{"style":221},[1303],{"type":23,"value":1224},{"type":14,"tagName":35,"properties":1305,"children":1306},{"style":215},[1307],{"type":23,"value":1308}," b ",{"type":14,"tagName":35,"properties":1310,"children":1311},{"style":221},[1312],{"type":23,"value":224},{"type":14,"tagName":35,"properties":1314,"children":1315},{"style":215},[1316],{"type":23,"value":1317}," box.",{"type":14,"tagName":35,"properties":1319,"children":1320},{"style":209},[1321],{"type":23,"value":1322},"new",{"type":14,"tagName":35,"properties":1324,"children":1325},{"style":215},[1326],{"type":23,"value":1327},"(d.time[",{"type":14,"tagName":35,"properties":1329,"children":1330},{"style":256},[1331],{"type":23,"value":386},{"type":14,"tagName":35,"properties":1333,"children":1334},{"style":215},[1335],{"type":23,"value":1336},"], zTop, d.time[",{"type":14,"tagName":35,"properties":1338,"children":1339},{"style":256},[1340],{"type":23,"value":124},{"type":14,"tagName":35,"properties":1342,"children":1343},{"style":215},[1344],{"type":23,"value":1021},{"type":14,"tagName":35,"properties":1346,"children":1347},{"style":221},[1348],{"type":23,"value":1349},"+",{"type":14,"tagName":35,"properties":1351,"children":1352},{"style":215},[1353],{"type":23,"value":1354}," currentInterval ",{"type":14,"tagName":35,"properties":1356,"children":1357},{"style":221},[1358],{"type":23,"value":1359},"*",{"type":14,"tagName":35,"properties":1361,"children":1362},{"style":256},[1363],{"type":23,"value":1364}," 40",{"type":14,"tagName":35,"properties":1366,"children":1367},{"style":215},[1368],{"type":23,"value":1369},", zBot, { color: ",{"type":14,"tagName":35,"properties":1371,"children":1372},{"style":209},[1373],{"type":23,"value":1374},"opacity",{"type":14,"tagName":35,"properties":1376,"children":1377},{"style":215},[1378],{"type":23,"value":1379},"(resCol, ",{"type":14,"tagName":35,"properties":1381,"children":1382},{"style":256},[1383],{"type":23,"value":1384},"18",{"type":14,"tagName":35,"properties":1386,"children":1387},{"style":215},[1388],{"type":23,"value":1389},"), borderColor: resCol });",{"type":23,"value":89},{"type":14,"tagName":35,"properties":1392,"children":1393},{"class":133},[1394,1399,1404,1409,1413,1418,1422,1427,1431,1436,1440,1444,1449,1453,1458,1462],{"type":14,"tagName":35,"properties":1395,"children":1396},{"style":215},[1397],{"type":23,"value":1398},"  zones.",{"type":14,"tagName":35,"properties":1400,"children":1401},{"style":209},[1402],{"type":23,"value":1403},"push",{"type":14,"tagName":35,"properties":1405,"children":1406},{"style":215},[1407],{"type":23,"value":1408},"(Zone.",{"type":14,"tagName":35,"properties":1410,"children":1411},{"style":209},[1412],{"type":23,"value":1322},{"type":14,"tagName":35,"properties":1414,"children":1415},{"style":215},[1416],{"type":23,"value":1417},"(top",{"type":14,"tagName":35,"properties":1419,"children":1420},{"style":221},[1421],{"type":23,"value":224},{"type":14,"tagName":35,"properties":1423,"children":1424},{"style":215},[1425],{"type":23,"value":1426},"zTop, bottom",{"type":14,"tagName":35,"properties":1428,"children":1429},{"style":221},[1430],{"type":23,"value":224},{"type":14,"tagName":35,"properties":1432,"children":1433},{"style":215},[1434],{"type":23,"value":1435},"zBot, isDemand",{"type":14,"tagName":35,"properties":1437,"children":1438},{"style":221},[1439],{"type":23,"value":224},{"type":14,"tagName":35,"properties":1441,"children":1442},{"style":256},[1443],{"type":23,"value":259},{"type":14,"tagName":35,"properties":1445,"children":1446},{"style":215},[1447],{"type":23,"value":1448},", bornBar",{"type":14,"tagName":35,"properties":1450,"children":1451},{"style":221},[1452],{"type":23,"value":224},{"type":14,"tagName":35,"properties":1454,"children":1455},{"style":215},[1456],{"type":23,"value":1457},"barIndex, handle",{"type":14,"tagName":35,"properties":1459,"children":1460},{"style":221},[1461],{"type":23,"value":224},{"type":14,"tagName":35,"properties":1463,"children":1464},{"style":215},[1465],{"type":23,"value":1466},"b));",{"type":23,"value":89},{"type":14,"tagName":35,"properties":1469,"children":1470},{"class":133},[1471],{"type":14,"tagName":35,"properties":1472,"children":1473},{"style":215},[1474],{"type":23,"value":784},{"type":23,"value":89},{"type":14,"tagName":35,"properties":1477,"children":1478},{"class":133},[1479,1483,1488,1492,1496,1500,1504],{"type":14,"tagName":35,"properties":1480,"children":1481},{"style":221},[1482],{"type":23,"value":1186},{"type":14,"tagName":35,"properties":1484,"children":1485},{"style":215},[1486],{"type":23,"value":1487}," (isPivotLow ",{"type":14,"tagName":35,"properties":1489,"children":1490},{"style":221},[1491],{"type":23,"value":1007},{"type":14,"tagName":35,"properties":1493,"children":1494},{"style":215},[1495],{"type":23,"value":1200},{"type":14,"tagName":35,"properties":1497,"children":1498},{"style":256},[1499],{"type":23,"value":1205},{"type":14,"tagName":35,"properties":1501,"children":1502},{"style":221},[1503],{"type":23,"value":1210},{"type":14,"tagName":35,"properties":1505,"children":1506},{"style":215},[1507],{"type":23,"value":1215},{"type":23,"value":89},{"type":14,"tagName":35,"properties":1510,"children":1511},{"class":133},[1512,1516,1521,1525,1529,1534,1538,1542,1546,1550],{"type":14,"tagName":35,"properties":1513,"children":1514},{"style":221},[1515],{"type":23,"value":1224},{"type":14,"tagName":35,"properties":1517,"children":1518},{"style":215},[1519],{"type":23,"value":1520}," zTop2 ",{"type":14,"tagName":35,"properties":1522,"children":1523},{"style":221},[1524],{"type":23,"value":224},{"type":14,"tagName":35,"properties":1526,"children":1527},{"style":215},[1528],{"type":23,"value":1267},{"type":14,"tagName":35,"properties":1530,"children":1531},{"style":209},[1532],{"type":23,"value":1533},"min",{"type":14,"tagName":35,"properties":1535,"children":1536},{"style":215},[1537],{"type":23,"value":1277},{"type":14,"tagName":35,"properties":1539,"children":1540},{"style":256},[1541],{"type":23,"value":386},{"type":14,"tagName":35,"properties":1543,"children":1544},{"style":215},[1545],{"type":23,"value":1286},{"type":14,"tagName":35,"properties":1547,"children":1548},{"style":256},[1549],{"type":23,"value":386},{"type":14,"tagName":35,"properties":1551,"children":1552},{"style":215},[1553],{"type":23,"value":1295},{"type":23,"value":89},{"type":14,"tagName":35,"properties":1556,"children":1557},{"class":133},[1558,1562,1567,1571,1575,1579],{"type":14,"tagName":35,"properties":1559,"children":1560},{"style":221},[1561],{"type":23,"value":1224},{"type":14,"tagName":35,"properties":1563,"children":1564},{"style":215},[1565],{"type":23,"value":1566}," zBot2 ",{"type":14,"tagName":35,"properties":1568,"children":1569},{"style":221},[1570],{"type":23,"value":224},{"type":14,"tagName":35,"properties":1572,"children":1573},{"style":215},[1574],{"type":23,"value":1115},{"type":14,"tagName":35,"properties":1576,"children":1577},{"style":256},[1578],{"type":23,"value":386},{"type":14,"tagName":35,"properties":1580,"children":1581},{"style":215},[1582],{"type":23,"value":1072},{"type":23,"value":89},{"type":14,"tagName":35,"properties":1585,"children":1586},{"class":133},[1587,1591,1596,1600,1604,1608,1612,1616,1621,1625,1629,1633,1637,1641,1645,1650,1654,1659,1663],{"type":14,"tagName":35,"properties":1588,"children":1589},{"style":221},[1590],{"type":23,"value":1224},{"type":14,"tagName":35,"properties":1592,"children":1593},{"style":215},[1594],{"type":23,"value":1595}," b2 ",{"type":14,"tagName":35,"properties":1597,"children":1598},{"style":221},[1599],{"type":23,"value":224},{"type":14,"tagName":35,"properties":1601,"children":1602},{"style":215},[1603],{"type":23,"value":1317},{"type":14,"tagName":35,"properties":1605,"children":1606},{"style":209},[1607],{"type":23,"value":1322},{"type":14,"tagName":35,"properties":1609,"children":1610},{"style":215},[1611],{"type":23,"value":1327},{"type":14,"tagName":35,"properties":1613,"children":1614},{"style":256},[1615],{"type":23,"value":386},{"type":14,"tagName":35,"properties":1617,"children":1618},{"style":215},[1619],{"type":23,"value":1620},"], zTop2, d.time[",{"type":14,"tagName":35,"properties":1622,"children":1623},{"style":256},[1624],{"type":23,"value":124},{"type":14,"tagName":35,"properties":1626,"children":1627},{"style":215},[1628],{"type":23,"value":1021},{"type":14,"tagName":35,"properties":1630,"children":1631},{"style":221},[1632],{"type":23,"value":1349},{"type":14,"tagName":35,"properties":1634,"children":1635},{"style":215},[1636],{"type":23,"value":1354},{"type":14,"tagName":35,"properties":1638,"children":1639},{"style":221},[1640],{"type":23,"value":1359},{"type":14,"tagName":35,"properties":1642,"children":1643},{"style":256},[1644],{"type":23,"value":1364},{"type":14,"tagName":35,"properties":1646,"children":1647},{"style":215},[1648],{"type":23,"value":1649},", zBot2, { color: ",{"type":14,"tagName":35,"properties":1651,"children":1652},{"style":209},[1653],{"type":23,"value":1374},{"type":14,"tagName":35,"properties":1655,"children":1656},{"style":215},[1657],{"type":23,"value":1658},"(supCol, ",{"type":14,"tagName":35,"properties":1660,"children":1661},{"style":256},[1662],{"type":23,"value":1384},{"type":14,"tagName":35,"properties":1664,"children":1665},{"style":215},[1666],{"type":23,"value":1667},"), borderColor: supCol });",{"type":23,"value":89},{"type":14,"tagName":35,"properties":1670,"children":1671},{"class":133},[1672,1676,1680,1684,1688,1692,1696,1701,1705,1710,1714,1719,1723,1727,1731,1735],{"type":14,"tagName":35,"properties":1673,"children":1674},{"style":215},[1675],{"type":23,"value":1398},{"type":14,"tagName":35,"properties":1677,"children":1678},{"style":209},[1679],{"type":23,"value":1403},{"type":14,"tagName":35,"properties":1681,"children":1682},{"style":215},[1683],{"type":23,"value":1408},{"type":14,"tagName":35,"properties":1685,"children":1686},{"style":209},[1687],{"type":23,"value":1322},{"type":14,"tagName":35,"properties":1689,"children":1690},{"style":215},[1691],{"type":23,"value":1417},{"type":14,"tagName":35,"properties":1693,"children":1694},{"style":221},[1695],{"type":23,"value":224},{"type":14,"tagName":35,"properties":1697,"children":1698},{"style":215},[1699],{"type":23,"value":1700},"zTop2, bottom",{"type":14,"tagName":35,"properties":1702,"children":1703},{"style":221},[1704],{"type":23,"value":224},{"type":14,"tagName":35,"properties":1706,"children":1707},{"style":215},[1708],{"type":23,"value":1709},"zBot2, isDemand",{"type":14,"tagName":35,"properties":1711,"children":1712},{"style":221},[1713],{"type":23,"value":224},{"type":14,"tagName":35,"properties":1715,"children":1716},{"style":256},[1717],{"type":23,"value":1718},"true",{"type":14,"tagName":35,"properties":1720,"children":1721},{"style":215},[1722],{"type":23,"value":1448},{"type":14,"tagName":35,"properties":1724,"children":1725},{"style":221},[1726],{"type":23,"value":224},{"type":14,"tagName":35,"properties":1728,"children":1729},{"style":215},[1730],{"type":23,"value":1457},{"type":14,"tagName":35,"properties":1732,"children":1733},{"style":221},[1734],{"type":23,"value":224},{"type":14,"tagName":35,"properties":1736,"children":1737},{"style":215},[1738],{"type":23,"value":1739},"b2));",{"type":23,"value":89},{"type":14,"tagName":35,"properties":1742,"children":1743},{"class":133},[1744],{"type":14,"tagName":35,"properties":1745,"children":1746},{"style":215},[1747],{"type":23,"value":784},{"type":23,"value":89},{"type":14,"tagName":35,"properties":1750,"children":1751},{"class":133},[],{"type":23,"value":89},{"type":14,"tagName":35,"properties":1754,"children":1755},{"class":133},[1756],{"type":14,"tagName":35,"properties":1757,"children":1758},{"style":137},[1759],{"type":23,"value":1760},"// Mitigated zones remove their own drawing and leave the collection.",{"type":23,"value":89},{"type":14,"tagName":35,"properties":1763,"children":1764},{"class":133},[1765,1769,1774,1778],{"type":14,"tagName":35,"properties":1766,"children":1767},{"style":221},[1768],{"type":23,"value":277},{"type":14,"tagName":35,"properties":1770,"children":1771},{"style":215},[1772],{"type":23,"value":1773}," survivors ",{"type":14,"tagName":35,"properties":1775,"children":1776},{"style":221},[1777],{"type":23,"value":224},{"type":14,"tagName":35,"properties":1779,"children":1780},{"style":215},[1781],{"type":23,"value":907},{"type":23,"value":89},{"type":14,"tagName":35,"properties":1784,"children":1785},{"class":133},[1786,1791,1796,1800,1805,1809,1814,1819,1823,1827,1831,1835,1839,1843,1847,1852],{"type":14,"tagName":35,"properties":1787,"children":1788},{"style":221},[1789],{"type":23,"value":1790},"for",{"type":14,"tagName":35,"properties":1792,"children":1793},{"style":215},[1794],{"type":23,"value":1795}," (",{"type":14,"tagName":35,"properties":1797,"children":1798},{"style":221},[1799],{"type":23,"value":277},{"type":14,"tagName":35,"properties":1801,"children":1802},{"style":215},[1803],{"type":23,"value":1804}," i ",{"type":14,"tagName":35,"properties":1806,"children":1807},{"style":221},[1808],{"type":23,"value":224},{"type":14,"tagName":35,"properties":1810,"children":1811},{"style":256},[1812],{"type":23,"value":1813}," 0",{"type":14,"tagName":35,"properties":1815,"children":1816},{"style":215},[1817],{"type":23,"value":1818},"; i ",{"type":14,"tagName":35,"properties":1820,"children":1821},{"style":221},[1822],{"type":23,"value":840},{"type":14,"tagName":35,"properties":1824,"children":1825},{"style":215},[1826],{"type":23,"value":1200},{"type":14,"tagName":35,"properties":1828,"children":1829},{"style":256},[1830],{"type":23,"value":1205},{"type":14,"tagName":35,"properties":1832,"children":1833},{"style":215},[1834],{"type":23,"value":1818},{"type":14,"tagName":35,"properties":1836,"children":1837},{"style":221},[1838],{"type":23,"value":224},{"type":14,"tagName":35,"properties":1840,"children":1841},{"style":215},[1842],{"type":23,"value":1804},{"type":14,"tagName":35,"properties":1844,"children":1845},{"style":221},[1846],{"type":23,"value":1349},{"type":14,"tagName":35,"properties":1848,"children":1849},{"style":256},[1850],{"type":23,"value":1851}," 1",{"type":14,"tagName":35,"properties":1853,"children":1854},{"style":215},[1855],{"type":23,"value":1856},") {",{"type":23,"value":89},{"type":14,"tagName":35,"properties":1859,"children":1860},{"class":133},[1861,1865,1870,1874],{"type":14,"tagName":35,"properties":1862,"children":1863},{"style":221},[1864],{"type":23,"value":1224},{"type":14,"tagName":35,"properties":1866,"children":1867},{"style":215},[1868],{"type":23,"value":1869}," z ",{"type":14,"tagName":35,"properties":1871,"children":1872},{"style":221},[1873],{"type":23,"value":224},{"type":14,"tagName":35,"properties":1875,"children":1876},{"style":215},[1877],{"type":23,"value":1878}," zones[i];",{"type":23,"value":89},{"type":14,"tagName":35,"properties":1881,"children":1882},{"class":133},[1883,1887,1891,1895,1900,1904],{"type":14,"tagName":35,"properties":1884,"children":1885},{"style":221},[1886],{"type":23,"value":816},{"type":14,"tagName":35,"properties":1888,"children":1889},{"style":215},[1890],{"type":23,"value":1795},{"type":14,"tagName":35,"properties":1892,"children":1893},{"style":209},[1894],{"type":23,"value":802},{"type":14,"tagName":35,"properties":1896,"children":1897},{"style":215},[1898],{"type":23,"value":1899},"(z, d.close[",{"type":14,"tagName":35,"properties":1901,"children":1902},{"style":256},[1903],{"type":23,"value":124},{"type":14,"tagName":35,"properties":1905,"children":1906},{"style":215},[1907],{"type":23,"value":1908},"])) {",{"type":23,"value":89},{"type":14,"tagName":35,"properties":1911,"children":1912},{"class":133},[1913,1918,1923],{"type":14,"tagName":35,"properties":1914,"children":1915},{"style":215},[1916],{"type":23,"value":1917},"    z.handle.",{"type":14,"tagName":35,"properties":1919,"children":1920},{"style":209},[1921],{"type":23,"value":1922},"delete",{"type":14,"tagName":35,"properties":1924,"children":1925},{"style":215},[1926],{"type":23,"value":1927},"();",{"type":23,"value":89},{"type":14,"tagName":35,"properties":1930,"children":1931},{"class":133},[1932,1937,1942],{"type":14,"tagName":35,"properties":1933,"children":1934},{"style":215},[1935],{"type":23,"value":1936},"  } ",{"type":14,"tagName":35,"properties":1938,"children":1939},{"style":221},[1940],{"type":23,"value":1941},"else",{"type":14,"tagName":35,"properties":1943,"children":1944},{"style":215},[1945],{"type":23,"value":730},{"type":23,"value":89},{"type":14,"tagName":35,"properties":1948,"children":1949},{"class":133},[1950,1955,1959],{"type":14,"tagName":35,"properties":1951,"children":1952},{"style":215},[1953],{"type":23,"value":1954},"    survivors.",{"type":14,"tagName":35,"properties":1956,"children":1957},{"style":209},[1958],{"type":23,"value":1403},{"type":14,"tagName":35,"properties":1960,"children":1961},{"style":215},[1962],{"type":23,"value":1963},"(z);",{"type":23,"value":89},{"type":14,"tagName":35,"properties":1966,"children":1967},{"class":133},[1968],{"type":14,"tagName":35,"properties":1969,"children":1970},{"style":215},[1971],{"type":23,"value":854},{"type":23,"value":89},{"type":14,"tagName":35,"properties":1974,"children":1975},{"class":133},[1976],{"type":14,"tagName":35,"properties":1977,"children":1978},{"style":215},[1979],{"type":23,"value":784},{"type":23,"value":89},{"type":14,"tagName":35,"properties":1982,"children":1983},{"class":133},[1984,1989,1993],{"type":14,"tagName":35,"properties":1985,"children":1986},{"style":215},[1987],{"type":23,"value":1988},"zones ",{"type":14,"tagName":35,"properties":1990,"children":1991},{"style":221},[1992],{"type":23,"value":224},{"type":14,"tagName":35,"properties":1994,"children":1995},{"style":215},[1996],{"type":23,"value":1997}," survivors;",{"type":23,"value":89},{"type":14,"tagName":35,"properties":2000,"children":2001},{"class":133},[],{"type":23,"value":89},{"type":14,"tagName":35,"properties":2004,"children":2005},{"class":133},[2006],{"type":14,"tagName":35,"properties":2007,"children":2008},{"style":137},[2009],{"type":23,"value":2010},"// Live dashboard on the last bar.",{"type":23,"value":89},{"type":14,"tagName":35,"properties":2013,"children":2014},{"class":133},[2015,2019],{"type":14,"tagName":35,"properties":2016,"children":2017},{"style":221},[2018],{"type":23,"value":1186},{"type":14,"tagName":35,"properties":2020,"children":2021},{"style":215},[2022],{"type":23,"value":2023}," (isLastBar) {",{"type":23,"value":89},{"type":14,"tagName":35,"properties":2026,"children":2027},{"class":133},[2028,2032,2037,2041,2046,2051,2056,2061,2066,2071,2075,2079,2084,2089,2094,2098],{"type":14,"tagName":35,"properties":2029,"children":2030},{"style":221},[2031],{"type":23,"value":1224},{"type":14,"tagName":35,"properties":2033,"children":2034},{"style":215},[2035],{"type":23,"value":2036}," rows ",{"type":14,"tagName":35,"properties":2038,"children":2039},{"style":221},[2040],{"type":23,"value":224},{"type":14,"tagName":35,"properties":2042,"children":2043},{"style":215},[2044],{"type":23,"value":2045}," [[",{"type":14,"tagName":35,"properties":2047,"children":2048},{"style":227},[2049],{"type":23,"value":2050},"\"Zone Tracker\"",{"type":14,"tagName":35,"properties":2052,"children":2053},{"style":215},[2054],{"type":23,"value":2055},", ",{"type":14,"tagName":35,"properties":2057,"children":2058},{"style":227},[2059],{"type":23,"value":2060},"\"\"",{"type":14,"tagName":35,"properties":2062,"children":2063},{"style":215},[2064],{"type":23,"value":2065},"], [",{"type":14,"tagName":35,"properties":2067,"children":2068},{"style":227},[2069],{"type":23,"value":2070},"\"Active zones\"",{"type":14,"tagName":35,"properties":2072,"children":2073},{"style":215},[2074],{"type":23,"value":2055},{"type":14,"tagName":35,"properties":2076,"children":2077},{"style":227},[2078],{"type":23,"value":2060},{"type":14,"tagName":35,"properties":2080,"children":2081},{"style":215},[2082],{"type":23,"value":2083},".",{"type":14,"tagName":35,"properties":2085,"children":2086},{"style":209},[2087],{"type":23,"value":2088},"concat",{"type":14,"tagName":35,"properties":2090,"children":2091},{"style":215},[2092],{"type":23,"value":2093},"(zones.",{"type":14,"tagName":35,"properties":2095,"children":2096},{"style":256},[2097],{"type":23,"value":1205},{"type":14,"tagName":35,"properties":2099,"children":2100},{"style":215},[2101],{"type":23,"value":2102},")]];",{"type":23,"value":89},{"type":14,"tagName":35,"properties":2105,"children":2106},{"class":133},[2107,2112,2117,2121,2126,2130,2135,2140,2144,2148,2153,2157,2162,2167,2171,2176,2181,2185,2190],{"type":14,"tagName":35,"properties":2108,"children":2109},{"style":209},[2110],{"type":23,"value":2111},"  plotTable",{"type":14,"tagName":35,"properties":2113,"children":2114},{"style":215},[2115],{"type":23,"value":2116},"(data",{"type":14,"tagName":35,"properties":2118,"children":2119},{"style":221},[2120],{"type":23,"value":224},{"type":14,"tagName":35,"properties":2122,"children":2123},{"style":215},[2124],{"type":23,"value":2125},"rows, position",{"type":14,"tagName":35,"properties":2127,"children":2128},{"style":221},[2129],{"type":23,"value":224},{"type":14,"tagName":35,"properties":2131,"children":2132},{"style":227},[2133],{"type":23,"value":2134},"\"top_right\"",{"type":14,"tagName":35,"properties":2136,"children":2137},{"style":215},[2138],{"type":23,"value":2139},", headerRow",{"type":14,"tagName":35,"properties":2141,"children":2142},{"style":221},[2143],{"type":23,"value":224},{"type":14,"tagName":35,"properties":2145,"children":2146},{"style":256},[2147],{"type":23,"value":1718},{"type":14,"tagName":35,"properties":2149,"children":2150},{"style":215},[2151],{"type":23,"value":2152},", backgroundColor",{"type":14,"tagName":35,"properties":2154,"children":2155},{"style":221},[2156],{"type":23,"value":224},{"type":14,"tagName":35,"properties":2158,"children":2159},{"style":227},[2160],{"type":23,"value":2161},"\"#0d1117\"",{"type":14,"tagName":35,"properties":2163,"children":2164},{"style":215},[2165],{"type":23,"value":2166},", textColor",{"type":14,"tagName":35,"properties":2168,"children":2169},{"style":221},[2170],{"type":23,"value":224},{"type":14,"tagName":35,"properties":2172,"children":2173},{"style":227},[2174],{"type":23,"value":2175},"\"#e6edf3\"",{"type":14,"tagName":35,"properties":2177,"children":2178},{"style":215},[2179],{"type":23,"value":2180},", fontSize",{"type":14,"tagName":35,"properties":2182,"children":2183},{"style":221},[2184],{"type":23,"value":224},{"type":14,"tagName":35,"properties":2186,"children":2187},{"style":256},[2188],{"type":23,"value":2189},"11",{"type":14,"tagName":35,"properties":2191,"children":2192},{"style":215},[2193],{"type":23,"value":264},{"type":23,"value":89},{"type":14,"tagName":35,"properties":2196,"children":2197},{"class":133},[2198],{"type":14,"tagName":35,"properties":2199,"children":2200},{"style":215},[2201],{"type":23,"value":784},{"type":23,"value":89},{"type":14,"tagName":2204,"properties":2205,"children":2207,"position":2217},"h2",{"id":2206},"how-it-works",[2208],{"type":23,"value":2209,"position":2210},"How it works",{"start":2211,"end":2214},{"line":2212,"column":56,"offset":2213},87,4019,{"line":2212,"column":2215,"offset":2216},16,4031,{"start":2218,"end":2220},{"line":2212,"column":27,"offset":2219},4016,{"line":2212,"column":2215,"offset":2216},{"type":23,"value":89},{"type":14,"tagName":102,"properties":2223,"children":2224,"position":2369},{},[2225,2244,2251,2264,2271,2284,2291,2304,2311,2324,2331,2344,2350,2362],{"type":14,"tagName":2226,"properties":2227,"children":2228,"position":2238},"strong",{},[2229],{"type":23,"value":2230,"position":2231},"State shaped like the problem.",{"start":2232,"end":2235},{"line":2233,"column":32,"offset":2234},89,4035,{"line":2233,"column":2236,"offset":2237},33,4065,{"start":2239,"end":2241},{"line":2233,"column":27,"offset":2240},4033,{"line":2233,"column":2242,"offset":2243},35,4067,{"type":23,"value":2245,"position":2246}," The ",{"start":2247,"end":2248},{"line":2233,"column":2242,"offset":2243},{"line":2233,"column":2249,"offset":2250},40,4072,{"type":14,"tagName":128,"properties":2252,"children":2253,"position":2261},{},[2254],{"type":23,"value":2255,"position":2256},"Zone",{"start":2257,"end":2258},{"line":2233,"column":2249,"offset":2250},{"line":2233,"column":2259,"offset":2260},46,4078,{"start":2262,"end":2263},{"line":2233,"column":2249,"offset":2250},{"line":2233,"column":2259,"offset":2260},{"type":23,"value":2265,"position":2266}," type bundles everything a zone needs to know about itself: its ",{"start":2267,"end":2268},{"line":2233,"column":2259,"offset":2260},{"line":2233,"column":2269,"offset":2270},110,4142,{"type":14,"tagName":128,"properties":2272,"children":2273,"position":2281},{},[2274],{"type":23,"value":2275,"position":2276},"top",{"start":2277,"end":2278},{"line":2233,"column":2269,"offset":2270},{"line":2233,"column":2279,"offset":2280},115,4147,{"start":2282,"end":2283},{"line":2233,"column":2269,"offset":2270},{"line":2233,"column":2279,"offset":2280},{"type":23,"value":2285,"position":2286}," and ",{"start":2287,"end":2288},{"line":2233,"column":2279,"offset":2280},{"line":2233,"column":2289,"offset":2290},120,4152,{"type":14,"tagName":128,"properties":2292,"children":2293,"position":2301},{},[2294],{"type":23,"value":2295,"position":2296},"bottom",{"start":2297,"end":2298},{"line":2233,"column":2289,"offset":2290},{"line":2233,"column":2299,"offset":2300},128,4160,{"start":2302,"end":2303},{"line":2233,"column":2289,"offset":2290},{"line":2233,"column":2299,"offset":2300},{"type":23,"value":2305,"position":2306}," price, whether it is demand or supply, the bar it was ",{"start":2307,"end":2308},{"line":2233,"column":2299,"offset":2300},{"line":2233,"column":2309,"offset":2310},183,4215,{"type":14,"tagName":128,"properties":2312,"children":2313,"position":2321},{},[2314],{"type":23,"value":2315,"position":2316},"bornBar",{"start":2317,"end":2318},{"line":2233,"column":2309,"offset":2310},{"line":2233,"column":2319,"offset":2320},192,4224,{"start":2322,"end":2323},{"line":2233,"column":2309,"offset":2310},{"line":2233,"column":2319,"offset":2320},{"type":23,"value":2325,"position":2326},", and a ",{"start":2327,"end":2328},{"line":2233,"column":2319,"offset":2320},{"line":2233,"column":2329,"offset":2330},200,4232,{"type":14,"tagName":128,"properties":2332,"children":2333,"position":2341},{},[2334],{"type":23,"value":2335,"position":2336},"handle",{"start":2337,"end":2338},{"line":2233,"column":2329,"offset":2330},{"line":2233,"column":2339,"offset":2340},208,4240,{"start":2342,"end":2343},{"line":2233,"column":2329,"offset":2330},{"line":2233,"column":2339,"offset":2340},{"type":23,"value":2345,"position":2346}," to its own box drawing. Instead of four parallel arrays you maintain one collection of self-describing objects. The ",{"start":2347,"end":2348},{"line":2233,"column":2339,"offset":2340},{"line":2233,"column":99,"offset":2349},4357,{"type":14,"tagName":128,"properties":2351,"children":2352,"position":2359},{},[2353],{"type":23,"value":802,"position":2354},{"start":2355,"end":2356},{"line":2233,"column":99,"offset":2349},{"line":2233,"column":2357,"offset":2358},342,4374,{"start":2360,"end":2361},{"line":2233,"column":99,"offset":2349},{"line":2233,"column":2357,"offset":2358},{"type":23,"value":2363,"position":2364}," function reads naturally because a zone carries its own orientation: a demand zone breaks when price falls below its bottom, a supply zone when price rises above its top.",{"start":2365,"end":2366},{"line":2233,"column":2357,"offset":2358},{"line":2233,"column":2367,"offset":2368},513,4545,{"start":2370,"end":2371},{"line":2233,"column":27,"offset":2240},{"line":2233,"column":2367,"offset":2368},{"type":23,"value":89},{"type":14,"tagName":102,"properties":2374,"children":2375,"position":2418},{},[2376,2392,2398,2411],{"type":14,"tagName":2226,"properties":2377,"children":2378,"position":2387},{},[2379],{"type":23,"value":2380,"position":2381},"A collection that survives.",{"start":2382,"end":2385},{"line":2383,"column":32,"offset":2384},91,4549,{"line":2383,"column":28,"offset":2386},4576,{"start":2388,"end":2390},{"line":2383,"column":27,"offset":2389},4547,{"line":2383,"column":33,"offset":2391},4578,{"type":23,"value":2393,"position":2394}," ",{"start":2395,"end":2396},{"line":2383,"column":33,"offset":2391},{"line":2383,"column":2236,"offset":2397},4579,{"type":14,"tagName":128,"properties":2399,"children":2400,"position":2408},{},[2401],{"type":23,"value":2402,"position":2403},"persist zones = []",{"start":2404,"end":2405},{"line":2383,"column":2236,"offset":2397},{"line":2383,"column":2406,"offset":2407},53,4599,{"start":2409,"end":2410},{"line":2383,"column":2236,"offset":2397},{"line":2383,"column":2406,"offset":2407},{"type":23,"value":2412,"position":2413}," is the heart of the script. A normal variable resets every bar, but a persisted array keeps its contents across the whole run, so zones born hundreds of bars ago are still in the list now. This is what lets the script accumulate and manage a living set of zones rather than recomputing from scratch each bar.",{"start":2414,"end":2415},{"line":2383,"column":2406,"offset":2407},{"line":2383,"column":2416,"offset":2417},362,4908,{"start":2419,"end":2420},{"line":2383,"column":27,"offset":2389},{"line":2383,"column":2416,"offset":2417},{"type":23,"value":89},{"type":14,"tagName":102,"properties":2423,"children":2424,"position":2548},{},[2425,2443,2450,2463,2469,2482,2489,2502,2509,2522,2529,2541],{"type":14,"tagName":2226,"properties":2426,"children":2427,"position":2437},{},[2428],{"type":23,"value":2429,"position":2430},"Birth.",{"start":2431,"end":2434},{"line":2432,"column":32,"offset":2433},93,4912,{"line":2432,"column":2435,"offset":2436},9,4918,{"start":2438,"end":2440},{"line":2432,"column":27,"offset":2439},4910,{"line":2432,"column":2441,"offset":2442},11,4920,{"type":23,"value":2444,"position":2445}," A new zone is created at a confirmed pivot. ",{"start":2446,"end":2447},{"line":2432,"column":2441,"offset":2442},{"line":2432,"column":2448,"offset":2449},56,4965,{"type":14,"tagName":128,"properties":2451,"children":2452,"position":2460},{},[2453],{"type":23,"value":2454,"position":2455},"highest",{"start":2456,"end":2457},{"line":2432,"column":2448,"offset":2449},{"line":2432,"column":2458,"offset":2459},65,4974,{"start":2461,"end":2462},{"line":2432,"column":2448,"offset":2449},{"line":2432,"column":2458,"offset":2459},{"type":23,"value":2285,"position":2464},{"start":2465,"end":2466},{"line":2432,"column":2458,"offset":2459},{"line":2432,"column":2467,"offset":2468},70,4979,{"type":14,"tagName":128,"properties":2470,"children":2471,"position":2479},{},[2472],{"type":23,"value":2473,"position":2474},"lowest",{"start":2475,"end":2476},{"line":2432,"column":2467,"offset":2468},{"line":2432,"column":2477,"offset":2478},78,4987,{"start":2480,"end":2481},{"line":2432,"column":2467,"offset":2468},{"line":2432,"column":2477,"offset":2478},{"type":23,"value":2483,"position":2484}," over the lookback window find swing extremes, and the pivot conditions check the prior bar against them while requiring the current bar to turn back. When a pivot fires and the list has room (",{"start":2485,"end":2486},{"line":2432,"column":2477,"offset":2478},{"line":2432,"column":2487,"offset":2488},271,5180,{"type":14,"tagName":128,"properties":2490,"children":2491,"position":2499},{},[2492],{"type":23,"value":2493,"position":2494},"zones.length \u003C maxZones",{"start":2495,"end":2496},{"line":2432,"column":2487,"offset":2488},{"line":2432,"column":2497,"offset":2498},296,5205,{"start":2500,"end":2501},{"line":2432,"column":2487,"offset":2488},{"line":2432,"column":2497,"offset":2498},{"type":23,"value":2503,"position":2504},"), the script measures the zone's bounds, draws a ",{"start":2505,"end":2506},{"line":2432,"column":2497,"offset":2498},{"line":2432,"column":2507,"offset":2508},346,5255,{"type":14,"tagName":128,"properties":2510,"children":2511,"position":2519},{},[2512],{"type":23,"value":2513,"position":2514},"box.new()",{"start":2515,"end":2516},{"line":2432,"column":2507,"offset":2508},{"line":2432,"column":2517,"offset":2518},357,5266,{"start":2520,"end":2521},{"line":2432,"column":2507,"offset":2508},{"line":2432,"column":2517,"offset":2518},{"type":23,"value":2523,"position":2524}," for it, and pushes a fresh ",{"start":2525,"end":2526},{"line":2432,"column":2517,"offset":2518},{"line":2432,"column":2527,"offset":2528},385,5294,{"type":14,"tagName":128,"properties":2530,"children":2531,"position":2538},{},[2532],{"type":23,"value":2255,"position":2533},{"start":2534,"end":2535},{"line":2432,"column":2527,"offset":2528},{"line":2432,"column":2536,"offset":2537},391,5300,{"start":2539,"end":2540},{"line":2432,"column":2527,"offset":2528},{"line":2432,"column":2536,"offset":2537},{"type":23,"value":2542,"position":2543}," holding that box's handle. The box is drawn with a faint fill and a solid border and extends a fixed number of intervals into the future so it is visible ahead of price.",{"start":2544,"end":2545},{"line":2432,"column":2536,"offset":2537},{"line":2432,"column":2546,"offset":2547},561,5470,{"start":2549,"end":2550},{"line":2432,"column":27,"offset":2439},{"line":2432,"column":2546,"offset":2547},{"type":23,"value":89},{"type":14,"tagName":102,"properties":2553,"children":2554,"position":2639},{},[2555,2573,2580,2593,2600,2613,2619,2632],{"type":14,"tagName":2226,"properties":2556,"children":2557,"position":2567},{},[2558],{"type":23,"value":2559,"position":2560},"Death is self-managed.",{"start":2561,"end":2564},{"line":2562,"column":32,"offset":2563},95,5474,{"line":2562,"column":2565,"offset":2566},25,5496,{"start":2568,"end":2570},{"line":2562,"column":27,"offset":2569},5472,{"line":2562,"column":2571,"offset":2572},27,5498,{"type":23,"value":2574,"position":2575}," Every bar, the script walks the zones and asks each one whether price has mitigated it. A mitigated zone calls ",{"start":2576,"end":2577},{"line":2562,"column":2571,"offset":2572},{"line":2562,"column":2578,"offset":2579},139,5610,{"type":14,"tagName":128,"properties":2581,"children":2582,"position":2590},{},[2583],{"type":23,"value":2584,"position":2585},"z.handle.delete()",{"start":2586,"end":2587},{"line":2562,"column":2578,"offset":2579},{"line":2562,"column":2588,"offset":2589},158,5629,{"start":2591,"end":2592},{"line":2562,"column":2578,"offset":2579},{"line":2562,"column":2588,"offset":2589},{"type":23,"value":2594,"position":2595}," to remove its own box from the chart and is dropped from the rebuilt ",{"start":2596,"end":2597},{"line":2562,"column":2588,"offset":2589},{"line":2562,"column":2598,"offset":2599},228,5699,{"type":14,"tagName":128,"properties":2601,"children":2602,"position":2610},{},[2603],{"type":23,"value":2604,"position":2605},"survivors",{"start":2606,"end":2607},{"line":2562,"column":2598,"offset":2599},{"line":2562,"column":2608,"offset":2609},239,5710,{"start":2611,"end":2612},{"line":2562,"column":2598,"offset":2599},{"line":2562,"column":2608,"offset":2609},{"type":23,"value":2614,"position":2615}," list. Survivors are kept. Then ",{"start":2616,"end":2617},{"line":2562,"column":2608,"offset":2609},{"line":2562,"column":2487,"offset":2618},5742,{"type":14,"tagName":128,"properties":2620,"children":2621,"position":2629},{},[2622],{"type":23,"value":2623,"position":2624},"zones = survivors",{"start":2625,"end":2626},{"line":2562,"column":2487,"offset":2618},{"line":2562,"column":2627,"offset":2628},290,5761,{"start":2630,"end":2631},{"line":2562,"column":2487,"offset":2618},{"line":2562,"column":2627,"offset":2628},{"type":23,"value":2633,"position":2634}," commits the pruned set. Because each zone owns its drawing handle, cleanup is local: the zone that dies is the one that erases its rectangle. No bookkeeping of which drawing belonged to which zone, no leaks.",{"start":2635,"end":2636},{"line":2562,"column":2627,"offset":2628},{"line":2562,"column":2637,"offset":2638},498,5969,{"start":2640,"end":2641},{"line":2562,"column":27,"offset":2569},{"line":2562,"column":2637,"offset":2638},{"type":23,"value":89},{"type":14,"tagName":102,"properties":2644,"children":2645,"position":2691},{},[2646,2664,2671,2684],{"type":14,"tagName":2226,"properties":2647,"children":2648,"position":2658},{},[2649],{"type":23,"value":2650,"position":2651},"The dashboard.",{"start":2652,"end":2655},{"line":2653,"column":32,"offset":2654},97,5973,{"line":2653,"column":2656,"offset":2657},17,5987,{"start":2659,"end":2661},{"line":2653,"column":27,"offset":2660},5971,{"line":2653,"column":2662,"offset":2663},19,5989,{"type":23,"value":2665,"position":2666}," On the last bar a small ",{"start":2667,"end":2668},{"line":2653,"column":2662,"offset":2663},{"line":2653,"column":2669,"offset":2670},44,6014,{"type":14,"tagName":128,"properties":2672,"children":2673,"position":2681},{},[2674],{"type":23,"value":2675,"position":2676},"plotTable",{"start":2677,"end":2678},{"line":2653,"column":2669,"offset":2670},{"line":2653,"column":2679,"offset":2680},55,6025,{"start":2682,"end":2683},{"line":2653,"column":2669,"offset":2670},{"line":2653,"column":2679,"offset":2680},{"type":23,"value":2685,"position":2686}," reports the active count, so you get a live read on how many zones are currently in play without counting boxes by eye.",{"start":2687,"end":2688},{"line":2653,"column":2679,"offset":2680},{"line":2653,"column":2689,"offset":2690},175,6145,{"start":2692,"end":2693},{"line":2653,"column":27,"offset":2660},{"line":2653,"column":2689,"offset":2690},{"type":23,"value":89},{"type":14,"tagName":2696,"properties":2697,"children":2698,"position":2750},"blockquote",{},[2699,2700,2749],{"type":23,"value":89},{"type":14,"tagName":102,"properties":2701,"children":2702,"position":2746},{},[2703,2719,2726,2739],{"type":14,"tagName":2226,"properties":2704,"children":2705,"position":2714},{},[2706],{"type":23,"value":2707,"position":2708},"Render note.",{"start":2709,"end":2712},{"line":2710,"column":67,"offset":2711},99,6151,{"line":2710,"column":2656,"offset":2713},6163,{"start":2715,"end":2717},{"line":2710,"column":32,"offset":2716},6149,{"line":2710,"column":2662,"offset":2718},6165,{"type":23,"value":2720,"position":2721}," Zones are drawn with the ",{"start":2722,"end":2723},{"line":2710,"column":2662,"offset":2718},{"line":2710,"column":2724,"offset":2725},45,6191,{"type":14,"tagName":128,"properties":2727,"children":2728,"position":2736},{},[2729],{"type":23,"value":2730,"position":2731},"box",{"start":2732,"end":2733},{"line":2710,"column":2724,"offset":2725},{"line":2710,"column":2734,"offset":2735},50,6196,{"start":2737,"end":2738},{"line":2710,"column":2724,"offset":2725},{"line":2710,"column":2734,"offset":2735},{"type":23,"value":2740,"position":2741}," drawing channel. If your chart renders box drawings, you see the shaded supply and demand rectangles appear at pivots and vanish on mitigation. The active-zone table reports the same state in text, so the count is readable even where boxes are not.",{"start":2742,"end":2743},{"line":2710,"column":2734,"offset":2735},{"line":2710,"column":2744,"offset":2745},299,6445,{"start":2747,"end":2748},{"line":2710,"column":32,"offset":2716},{"line":2710,"column":2744,"offset":2745},{"type":23,"value":89},{"start":2751,"end":2753},{"line":2710,"column":27,"offset":2752},6147,{"line":2710,"column":2744,"offset":2745},{"type":23,"value":89},{"type":14,"tagName":2204,"properties":2756,"children":2758,"position":2767},{"id":2757},"customize-it",[2759],{"type":23,"value":2760,"position":2761},"Customize it",{"start":2762,"end":2765},{"line":2763,"column":56,"offset":2764},101,6450,{"line":2763,"column":2215,"offset":2766},6462,{"start":2768,"end":2770},{"line":2763,"column":27,"offset":2769},6447,{"line":2763,"column":2215,"offset":2766},{"type":23,"value":89},{"type":14,"tagName":2773,"properties":2774,"children":2775,"position":3300},"ul",{},[2776,2777,2828,2829,2879,2880,2929,2930,3077,3078,3129,3130,3218,3219,3299],{"type":23,"value":89},{"type":14,"tagName":2778,"properties":2779,"children":2780,"position":2824},"li",{},[2781,2799,2805,2817],{"type":14,"tagName":2226,"properties":2782,"children":2783,"position":2793},{},[2784],{"type":23,"value":2785,"position":2786},"Zone frequency.",{"start":2787,"end":2790},{"line":2788,"column":67,"offset":2789},103,6468,{"line":2788,"column":2791,"offset":2792},20,6483,{"start":2794,"end":2796},{"line":2788,"column":32,"offset":2795},6466,{"line":2788,"column":2797,"offset":2798},22,6485,{"type":23,"value":2393,"position":2800},{"start":2801,"end":2802},{"line":2788,"column":2797,"offset":2798},{"line":2788,"column":2803,"offset":2804},23,6486,{"type":14,"tagName":128,"properties":2806,"children":2807,"position":2814},{},[2808],{"type":23,"value":2809,"position":2810},"lookback",{"start":2811,"end":2812},{"line":2788,"column":2803,"offset":2804},{"line":2788,"column":2236,"offset":2813},6496,{"start":2815,"end":2816},{"line":2788,"column":2803,"offset":2804},{"line":2788,"column":2236,"offset":2813},{"type":23,"value":2818,"position":2819}," controls how significant a swing must be to spawn a zone. A small value (10) marks many minor pivots, a large one (50) keeps only major swing points. This is the main dial between \"lots of zones\" and \"only the big ones.\"",{"start":2820,"end":2821},{"line":2788,"column":2236,"offset":2813},{"line":2788,"column":2822,"offset":2823},254,6717,{"start":2825,"end":2827},{"line":2788,"column":27,"offset":2826},6464,{"line":2788,"column":2822,"offset":2823},{"type":23,"value":89},{"type":14,"tagName":2778,"properties":2830,"children":2831,"position":2875},{},[2832,2849,2855,2868],{"type":14,"tagName":2226,"properties":2833,"children":2834,"position":2844},{},[2835],{"type":23,"value":2836,"position":2837},"Clutter control.",{"start":2838,"end":2841},{"line":2839,"column":67,"offset":2840},104,6722,{"line":2839,"column":2842,"offset":2843},21,6738,{"start":2845,"end":2847},{"line":2839,"column":32,"offset":2846},6720,{"line":2839,"column":2803,"offset":2848},6740,{"type":23,"value":2393,"position":2850},{"start":2851,"end":2852},{"line":2839,"column":2803,"offset":2848},{"line":2839,"column":2853,"offset":2854},24,6741,{"type":14,"tagName":128,"properties":2856,"children":2857,"position":2865},{},[2858],{"type":23,"value":2859,"position":2860},"maxZones",{"start":2861,"end":2862},{"line":2839,"column":2853,"offset":2854},{"line":2839,"column":2863,"offset":2864},34,6751,{"start":2866,"end":2867},{"line":2839,"column":2853,"offset":2854},{"line":2839,"column":2863,"offset":2864},{"type":23,"value":2869,"position":2870}," caps how many can be active at once. Once full, new pivots are ignored until older zones get mitigated and free up a slot. Raise it if you want a denser map, lower it for a cleaner chart.",{"start":2871,"end":2872},{"line":2839,"column":2863,"offset":2864},{"line":2839,"column":2873,"offset":2874},222,6939,{"start":2876,"end":2878},{"line":2839,"column":27,"offset":2877},6718,{"line":2839,"column":2873,"offset":2874},{"type":23,"value":89},{"type":14,"tagName":2778,"properties":2881,"children":2882,"position":2925},{},[2883,2899,2906,2918],{"type":14,"tagName":2226,"properties":2884,"children":2885,"position":2894},{},[2886],{"type":23,"value":2887,"position":2888},"Mitigation rule.",{"start":2889,"end":2892},{"line":2890,"column":67,"offset":2891},105,6944,{"line":2890,"column":2842,"offset":2893},6960,{"start":2895,"end":2897},{"line":2890,"column":32,"offset":2896},6942,{"line":2890,"column":2803,"offset":2898},6962,{"type":23,"value":2900,"position":2901}," Right now a single close beyond the zone mitigates it. For a stricter definition, change ",{"start":2902,"end":2903},{"line":2890,"column":2803,"offset":2898},{"line":2890,"column":2904,"offset":2905},113,7052,{"type":14,"tagName":128,"properties":2907,"children":2908,"position":2915},{},[2909],{"type":23,"value":802,"position":2910},{"start":2911,"end":2912},{"line":2890,"column":2904,"offset":2905},{"line":2890,"column":2913,"offset":2914},130,7069,{"start":2916,"end":2917},{"line":2890,"column":2904,"offset":2905},{"line":2890,"column":2913,"offset":2914},{"type":23,"value":2919,"position":2920}," to require the close to pass fully through to the far edge, or to require two consecutive closes beyond it.",{"start":2921,"end":2922},{"line":2890,"column":2913,"offset":2914},{"line":2890,"column":2923,"offset":2924},238,7177,{"start":2926,"end":2928},{"line":2890,"column":27,"offset":2927},6940,{"line":2890,"column":2923,"offset":2924},{"type":23,"value":89},{"type":14,"tagName":2778,"properties":2931,"children":2932,"position":3073},{},[2933,2949,2956,2969,2976,2989,2996,3009,3014,3026,3033,3046,3053,3066],{"type":14,"tagName":2226,"properties":2934,"children":2935,"position":2944},{},[2936],{"type":23,"value":2937,"position":2938},"Zone thickness.",{"start":2939,"end":2942},{"line":2940,"column":67,"offset":2941},106,7182,{"line":2940,"column":2791,"offset":2943},7197,{"start":2945,"end":2947},{"line":2940,"column":32,"offset":2946},7180,{"line":2940,"column":2797,"offset":2948},7199,{"type":23,"value":2950,"position":2951}," The bounds come from the pivot bar's body (",{"start":2952,"end":2953},{"line":2940,"column":2797,"offset":2948},{"line":2940,"column":2954,"offset":2955},66,7243,{"type":14,"tagName":128,"properties":2957,"children":2958,"position":2966},{},[2959],{"type":23,"value":2960,"position":2961},"open",{"start":2962,"end":2963},{"line":2940,"column":2954,"offset":2955},{"line":2940,"column":2964,"offset":2965},72,7249,{"start":2967,"end":2968},{"line":2940,"column":2954,"offset":2955},{"line":2940,"column":2964,"offset":2965},{"type":23,"value":2970,"position":2971},"/",{"start":2972,"end":2973},{"line":2940,"column":2964,"offset":2965},{"line":2940,"column":2974,"offset":2975},73,7250,{"type":14,"tagName":128,"properties":2977,"children":2978,"position":2986},{},[2979],{"type":23,"value":2980,"position":2981},"close",{"start":2982,"end":2983},{"line":2940,"column":2974,"offset":2975},{"line":2940,"column":2984,"offset":2985},80,7257,{"start":2987,"end":2988},{"line":2940,"column":2974,"offset":2975},{"line":2940,"column":2984,"offset":2985},{"type":23,"value":2990,"position":2991},") and wick (",{"start":2992,"end":2993},{"line":2940,"column":2984,"offset":2985},{"line":2940,"column":2994,"offset":2995},92,7269,{"type":14,"tagName":128,"properties":2997,"children":2998,"position":3006},{},[2999],{"type":23,"value":3000,"position":3001},"high",{"start":3002,"end":3003},{"line":2940,"column":2994,"offset":2995},{"line":2940,"column":3004,"offset":3005},98,7275,{"start":3007,"end":3008},{"line":2940,"column":2994,"offset":2995},{"line":2940,"column":3004,"offset":3005},{"type":23,"value":2970,"position":3010},{"start":3011,"end":3012},{"line":2940,"column":3004,"offset":3005},{"line":2940,"column":2710,"offset":3013},7276,{"type":14,"tagName":128,"properties":3015,"children":3016,"position":3023},{},[3017],{"type":23,"value":3018,"position":3019},"low",{"start":3020,"end":3021},{"line":2940,"column":2710,"offset":3013},{"line":2940,"column":2839,"offset":3022},7281,{"start":3024,"end":3025},{"line":2940,"column":2710,"offset":3013},{"line":2940,"column":2839,"offset":3022},{"type":23,"value":3027,"position":3028},"). Use the full candle range for thicker zones, or the body only for tighter ones, by changing which prices ",{"start":3029,"end":3030},{"line":2940,"column":2839,"offset":3022},{"line":2940,"column":3031,"offset":3032},212,7389,{"type":14,"tagName":128,"properties":3034,"children":3035,"position":3043},{},[3036],{"type":23,"value":3037,"position":3038},"zTop",{"start":3039,"end":3040},{"line":2940,"column":3031,"offset":3032},{"line":2940,"column":3041,"offset":3042},218,7395,{"start":3044,"end":3045},{"line":2940,"column":3031,"offset":3032},{"line":2940,"column":3041,"offset":3042},{"type":23,"value":3047,"position":3048}," / ",{"start":3049,"end":3050},{"line":2940,"column":3041,"offset":3042},{"line":2940,"column":3051,"offset":3052},221,7398,{"type":14,"tagName":128,"properties":3054,"children":3055,"position":3063},{},[3056],{"type":23,"value":3057,"position":3058},"zBot",{"start":3059,"end":3060},{"line":2940,"column":3051,"offset":3052},{"line":2940,"column":3061,"offset":3062},227,7404,{"start":3064,"end":3065},{"line":2940,"column":3051,"offset":3052},{"line":2940,"column":3061,"offset":3062},{"type":23,"value":3067,"position":3068}," read.",{"start":3069,"end":3070},{"line":2940,"column":3061,"offset":3062},{"line":2940,"column":3071,"offset":3072},233,7410,{"start":3074,"end":3076},{"line":2940,"column":27,"offset":3075},7178,{"line":2940,"column":3071,"offset":3072},{"type":23,"value":89},{"type":14,"tagName":2778,"properties":3079,"children":3080,"position":3125},{},[3081,3098,3105,3118],{"type":14,"tagName":2226,"properties":3082,"children":3083,"position":3092},{},[3084],{"type":23,"value":3085,"position":3086},"Box length.",{"start":3087,"end":3090},{"line":3088,"column":67,"offset":3089},107,7415,{"line":3088,"column":2215,"offset":3091},7426,{"start":3093,"end":3095},{"line":3088,"column":32,"offset":3094},7413,{"line":3088,"column":3096,"offset":3097},18,7428,{"type":23,"value":3099,"position":3100}," Each box extends ",{"start":3101,"end":3102},{"line":3088,"column":3096,"offset":3097},{"line":3088,"column":3103,"offset":3104},36,7446,{"type":14,"tagName":128,"properties":3106,"children":3107,"position":3115},{},[3108],{"type":23,"value":3109,"position":3110},"currentInterval * 40",{"start":3111,"end":3112},{"line":3088,"column":3103,"offset":3104},{"line":3088,"column":3113,"offset":3114},58,7468,{"start":3116,"end":3117},{"line":3088,"column":3103,"offset":3104},{"line":3088,"column":3113,"offset":3114},{"type":23,"value":3119,"position":3120}," into the future. Increase the multiplier to project zones further ahead, decrease it to keep them compact.",{"start":3121,"end":3122},{"line":3088,"column":3113,"offset":3114},{"line":3088,"column":3123,"offset":3124},165,7575,{"start":3126,"end":3128},{"line":3088,"column":27,"offset":3127},7411,{"line":3088,"column":3123,"offset":3124},{"type":23,"value":89},{"type":14,"tagName":2778,"properties":3131,"children":3132,"position":3214},{},[3133,3151,3157,3169,3176,3188,3194,3207],{"type":14,"tagName":2226,"properties":3134,"children":3135,"position":3145},{},[3136],{"type":23,"value":3137,"position":3138},"Colors.",{"start":3139,"end":3142},{"line":3140,"column":67,"offset":3141},108,7580,{"line":3140,"column":3143,"offset":3144},12,7587,{"start":3146,"end":3148},{"line":3140,"column":32,"offset":3147},7578,{"line":3140,"column":3149,"offset":3150},14,7589,{"type":23,"value":2393,"position":3152},{"start":3153,"end":3154},{"line":3140,"column":3149,"offset":3150},{"line":3140,"column":3155,"offset":3156},15,7590,{"type":14,"tagName":128,"properties":3158,"children":3159,"position":3166},{},[3160],{"type":23,"value":3161,"position":3162},"supCol",{"start":3163,"end":3164},{"line":3140,"column":3155,"offset":3156},{"line":3140,"column":2803,"offset":3165},7598,{"start":3167,"end":3168},{"line":3140,"column":3155,"offset":3156},{"line":3140,"column":2803,"offset":3165},{"type":23,"value":3170,"position":3171}," (demand) and ",{"start":3172,"end":3173},{"line":3140,"column":2803,"offset":3165},{"line":3140,"column":3174,"offset":3175},37,7612,{"type":14,"tagName":128,"properties":3177,"children":3178,"position":3185},{},[3179],{"type":23,"value":3180,"position":3181},"resCol",{"start":3182,"end":3183},{"line":3140,"column":3174,"offset":3175},{"line":3140,"column":2724,"offset":3184},7620,{"start":3186,"end":3187},{"line":3140,"column":3174,"offset":3175},{"line":3140,"column":2724,"offset":3184},{"type":23,"value":3189,"position":3190}," (supply) set both the box fill and border. The faint fill is derived with ",{"start":3191,"end":3192},{"line":3140,"column":2724,"offset":3184},{"line":3140,"column":2289,"offset":3193},7695,{"type":14,"tagName":128,"properties":3195,"children":3196,"position":3204},{},[3197],{"type":23,"value":3198,"position":3199},"opacity()",{"start":3200,"end":3201},{"line":3140,"column":2289,"offset":3193},{"line":3140,"column":3202,"offset":3203},131,7706,{"start":3205,"end":3206},{"line":3140,"column":2289,"offset":3193},{"line":3140,"column":3202,"offset":3203},{"type":23,"value":3208,"position":3209},", so changing the base color restyles the whole zone.",{"start":3210,"end":3211},{"line":3140,"column":3202,"offset":3203},{"line":3140,"column":3212,"offset":3213},184,7759,{"start":3215,"end":3217},{"line":3140,"column":27,"offset":3216},7576,{"line":3140,"column":3212,"offset":3213},{"type":23,"value":89},{"type":14,"tagName":2778,"properties":3220,"children":3221,"position":3295},{},[3222,3238,3244,3268,3275,3288],{"type":14,"tagName":2226,"properties":3223,"children":3224,"position":3233},{},[3225],{"type":23,"value":3226,"position":3227},"Alert on touch.",{"start":3228,"end":3231},{"line":3229,"column":67,"offset":3230},109,7764,{"line":3229,"column":2791,"offset":3232},7779,{"start":3234,"end":3236},{"line":3229,"column":32,"offset":3235},7762,{"line":3229,"column":2797,"offset":3237},7781,{"type":23,"value":3239,"position":3240}," Add an ",{"start":3241,"end":3242},{"line":3229,"column":2797,"offset":3237},{"line":3229,"column":28,"offset":3243},7789,{"type":14,"tagName":3245,"properties":3246,"children":3248,"position":3263},"a",{"href":3247},"/kscript/functions/alerts",[3249],{"type":14,"tagName":128,"properties":3250,"children":3251,"position":3260},{},[3252],{"type":23,"value":3253,"position":3254},"alert()",{"start":3255,"end":3258},{"line":3229,"column":3256,"offset":3257},31,7790,{"line":3229,"column":2249,"offset":3259},7799,{"start":3261,"end":3262},{"line":3229,"column":3256,"offset":3257},{"line":3229,"column":2249,"offset":3259},{"start":3264,"end":3265},{"line":3229,"column":28,"offset":3243},{"line":3229,"column":3266,"offset":3267},68,7827,{"type":23,"value":3269,"position":3270}," when ",{"start":3271,"end":3272},{"line":3229,"column":3266,"offset":3267},{"line":3229,"column":3273,"offset":3274},74,7833,{"type":14,"tagName":128,"properties":3276,"children":3277,"position":3285},{},[3278],{"type":23,"value":3279,"position":3280},"d.close",{"start":3281,"end":3282},{"line":3229,"column":3273,"offset":3274},{"line":3229,"column":3283,"offset":3284},83,7842,{"start":3286,"end":3287},{"line":3229,"column":3273,"offset":3274},{"line":3229,"column":3283,"offset":3284},{"type":23,"value":3289,"position":3290}," enters an active zone to be notified when price reaches one of your levels.",{"start":3291,"end":3292},{"line":3229,"column":3283,"offset":3284},{"line":3229,"column":3293,"offset":3294},159,7918,{"start":3296,"end":3298},{"line":3229,"column":27,"offset":3297},7760,{"line":3229,"column":3293,"offset":3294},{"type":23,"value":89},{"start":3301,"end":3302},{"line":2788,"column":27,"offset":2826},{"line":3229,"column":3293,"offset":3294},{"type":23,"value":89},{"type":14,"tagName":2204,"properties":3305,"children":3307,"position":3316},{"id":3306},"concepts-used",[3308],{"type":23,"value":3309,"position":3310},"Concepts used",{"start":3311,"end":3314},{"line":3312,"column":56,"offset":3313},111,7923,{"line":3312,"column":2656,"offset":3315},7936,{"start":3317,"end":3319},{"line":3312,"column":27,"offset":3318},7920,{"line":3312,"column":2656,"offset":3315},{"type":23,"value":89},{"type":14,"tagName":2773,"properties":3322,"children":3323,"position":3632},{},[3324,3325,3373,3374,3423,3424,3472,3473,3533,3534,3582,3583,3631],{"type":23,"value":89},{"type":14,"tagName":2778,"properties":3326,"children":3327,"position":3369},{},[3328,3344,3351,3363],{"type":14,"tagName":3245,"properties":3329,"children":3331,"position":3339},{"href":3330},"/kscript/core-concepts/user-defined-types",[3332],{"type":23,"value":3333,"position":3334},"User-defined types",{"start":3335,"end":3337},{"line":2904,"column":56,"offset":3336},7941,{"line":2904,"column":2797,"offset":3338},7959,{"start":3340,"end":3342},{"line":2904,"column":32,"offset":3341},7940,{"line":2904,"column":2954,"offset":3343},8003,{"type":23,"value":3345,"position":3346}," for the ",{"start":3347,"end":3348},{"line":2904,"column":2954,"offset":3343},{"line":2904,"column":3349,"offset":3350},75,8012,{"type":14,"tagName":128,"properties":3352,"children":3353,"position":3360},{},[3354],{"type":23,"value":2255,"position":3355},{"start":3356,"end":3357},{"line":2904,"column":3349,"offset":3350},{"line":2904,"column":3358,"offset":3359},81,8018,{"start":3361,"end":3362},{"line":2904,"column":3349,"offset":3350},{"line":2904,"column":3358,"offset":3359},{"type":23,"value":3364,"position":3365}," struct and its fields",{"start":3366,"end":3367},{"line":2904,"column":3358,"offset":3359},{"line":2904,"column":2788,"offset":3368},8040,{"start":3370,"end":3372},{"line":2904,"column":27,"offset":3371},7938,{"line":2904,"column":2788,"offset":3368},{"type":23,"value":89},{"type":14,"tagName":2778,"properties":3375,"children":3376,"position":3419},{},[3377,3395,3402,3413],{"type":14,"tagName":3245,"properties":3378,"children":3380,"position":3389},{"href":3379},"/kscript/core-concepts/collections",[3381],{"type":23,"value":3382,"position":3383},"Collections",{"start":3384,"end":3387},{"line":3385,"column":56,"offset":3386},114,8044,{"line":3385,"column":3155,"offset":3388},8055,{"start":3390,"end":3392},{"line":3385,"column":32,"offset":3391},8043,{"line":3385,"column":3393,"offset":3394},52,8092,{"type":23,"value":3396,"position":3397}," for the array of zones, ",{"start":3398,"end":3399},{"line":3385,"column":3393,"offset":3394},{"line":3385,"column":3400,"offset":3401},77,8117,{"type":14,"tagName":128,"properties":3403,"children":3404,"position":3410},{},[3405],{"type":23,"value":1403,"position":3406},{"start":3407,"end":3408},{"line":3385,"column":3400,"offset":3401},{"line":3385,"column":3283,"offset":3409},8123,{"start":3411,"end":3412},{"line":3385,"column":3400,"offset":3401},{"line":3385,"column":3283,"offset":3409},{"type":23,"value":3414,"position":3415},", and iteration",{"start":3416,"end":3417},{"line":3385,"column":3283,"offset":3409},{"line":3385,"column":3004,"offset":3418},8138,{"start":3420,"end":3422},{"line":3385,"column":27,"offset":3421},8041,{"line":3385,"column":3004,"offset":3418},{"type":23,"value":89},{"type":14,"tagName":2778,"properties":3425,"children":3426,"position":3468},{},[3427,3444,3450,3462],{"type":14,"tagName":3245,"properties":3428,"children":3430,"position":3438},{"href":3429},"/kscript/core-concepts/execution-model",[3431],{"type":23,"value":3432,"position":3433},"Execution model",{"start":3434,"end":3436},{"line":2279,"column":56,"offset":3435},8142,{"line":2279,"column":2662,"offset":3437},8157,{"start":3439,"end":3441},{"line":2279,"column":32,"offset":3440},8141,{"line":2279,"column":3442,"offset":3443},60,8198,{"type":23,"value":3345,"position":3445},{"start":3446,"end":3447},{"line":2279,"column":3442,"offset":3443},{"line":2279,"column":3448,"offset":3449},69,8207,{"type":14,"tagName":128,"properties":3451,"children":3452,"position":3459},{},[3453],{"type":23,"value":3454,"position":3455},"persist",{"start":3456,"end":3457},{"line":2279,"column":3448,"offset":3449},{"line":2279,"column":2477,"offset":3458},8216,{"start":3460,"end":3461},{"line":2279,"column":3448,"offset":3449},{"line":2279,"column":2477,"offset":3458},{"type":23,"value":3463,"position":3464}," collection that survives across bars",{"start":3465,"end":3466},{"line":2279,"column":2477,"offset":3458},{"line":2279,"column":2279,"offset":3467},8253,{"start":3469,"end":3471},{"line":2279,"column":27,"offset":3470},8139,{"line":2279,"column":2279,"offset":3467},{"type":23,"value":89},{"type":14,"tagName":2778,"properties":3474,"children":3475,"position":3529},{},[3476,3493,3500,3511,3517],{"type":14,"tagName":3245,"properties":3477,"children":3479,"position":3488},{"href":3478},"/kscript/functions/drawing-objects",[3480],{"type":23,"value":3481,"position":3482},"Drawing objects",{"start":3483,"end":3486},{"line":3484,"column":56,"offset":3485},116,8257,{"line":3484,"column":2662,"offset":3487},8272,{"start":3489,"end":3491},{"line":3484,"column":32,"offset":3490},8256,{"line":3484,"column":2448,"offset":3492},8309,{"type":23,"value":3494,"position":3495}," for ",{"start":3496,"end":3497},{"line":3484,"column":2448,"offset":3492},{"line":3484,"column":3498,"offset":3499},61,8314,{"type":14,"tagName":128,"properties":3501,"children":3502,"position":3508},{},[3503],{"type":23,"value":2513,"position":3504},{"start":3505,"end":3506},{"line":3484,"column":3498,"offset":3499},{"line":3484,"column":2964,"offset":3507},8325,{"start":3509,"end":3510},{"line":3484,"column":3498,"offset":3499},{"line":3484,"column":2964,"offset":3507},{"type":23,"value":3512,"position":3513}," and the self-managing ",{"start":3514,"end":3515},{"line":3484,"column":2964,"offset":3507},{"line":3484,"column":2562,"offset":3516},8348,{"type":14,"tagName":128,"properties":3518,"children":3519,"position":3526},{},[3520],{"type":23,"value":3521,"position":3522},".delete()",{"start":3523,"end":3524},{"line":3484,"column":2562,"offset":3516},{"line":3484,"column":2940,"offset":3525},8359,{"start":3527,"end":3528},{"line":3484,"column":2562,"offset":3516},{"line":3484,"column":2940,"offset":3525},{"start":3530,"end":3532},{"line":3484,"column":27,"offset":3531},8254,{"line":3484,"column":2940,"offset":3525},{"type":23,"value":89},{"type":14,"tagName":2778,"properties":3535,"children":3536,"position":3578},{},[3537,3554,3560,3572],{"type":14,"tagName":3245,"properties":3538,"children":3540,"position":3549},{"href":3539},"/kscript/core-concepts/user-functions",[3541],{"type":23,"value":3542,"position":3543},"User functions",{"start":3544,"end":3547},{"line":3545,"column":56,"offset":3546},117,8363,{"line":3545,"column":3096,"offset":3548},8377,{"start":3550,"end":3552},{"line":3545,"column":32,"offset":3551},8362,{"line":3545,"column":3113,"offset":3553},8417,{"type":23,"value":3345,"position":3555},{"start":3556,"end":3557},{"line":3545,"column":3113,"offset":3553},{"line":3545,"column":3558,"offset":3559},67,8426,{"type":14,"tagName":128,"properties":3561,"children":3562,"position":3569},{},[3563],{"type":23,"value":802,"position":3564},{"start":3565,"end":3566},{"line":3545,"column":3558,"offset":3559},{"line":3545,"column":3567,"offset":3568},84,8443,{"start":3570,"end":3571},{"line":3545,"column":3558,"offset":3559},{"line":3545,"column":3567,"offset":3568},{"type":23,"value":3573,"position":3574}," helper",{"start":3575,"end":3576},{"line":3545,"column":3567,"offset":3568},{"line":3545,"column":2383,"offset":3577},8450,{"start":3579,"end":3581},{"line":3545,"column":27,"offset":3580},8360,{"line":3545,"column":2383,"offset":3577},{"type":23,"value":89},{"type":14,"tagName":2778,"properties":3584,"children":3585,"position":3627},{},[3586,3604,3610,3621],{"type":14,"tagName":3245,"properties":3587,"children":3589,"position":3598},{"href":3588},"/kscript/functions/plotting",[3590],{"type":23,"value":3591,"position":3592},"Plotting",{"start":3593,"end":3596},{"line":3594,"column":56,"offset":3595},118,8454,{"line":3594,"column":3143,"offset":3597},8462,{"start":3599,"end":3601},{"line":3594,"column":32,"offset":3600},8453,{"line":3594,"column":3602,"offset":3603},42,8492,{"type":23,"value":3605,"position":3606}," for the live ",{"start":3607,"end":3608},{"line":3594,"column":3602,"offset":3603},{"line":3594,"column":2448,"offset":3609},8506,{"type":14,"tagName":128,"properties":3611,"children":3612,"position":3618},{},[3613],{"type":23,"value":2675,"position":3614},{"start":3615,"end":3616},{"line":3594,"column":2448,"offset":3609},{"line":3594,"column":3558,"offset":3617},8517,{"start":3619,"end":3620},{"line":3594,"column":2448,"offset":3609},{"line":3594,"column":3558,"offset":3617},{"type":23,"value":3622,"position":3623}," dashboard",{"start":3624,"end":3625},{"line":3594,"column":3558,"offset":3617},{"line":3594,"column":3400,"offset":3626},8527,{"start":3628,"end":3630},{"line":3594,"column":27,"offset":3629},8451,{"line":3594,"column":3400,"offset":3626},{"type":23,"value":89},{"start":3633,"end":3634},{"line":2904,"column":27,"offset":3371},{"line":3594,"column":3400,"offset":3626},{"quirksMode":3636},false,{"start":3638,"end":3639},{"line":27,"column":27,"offset":97},{"line":79,"column":27,"offset":3640},8528,1782471839492]