[{"data":1,"prerenderedAt":3642},["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=\"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## 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,3302,3303,3318,3319],{"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","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},86,3994,{"line":2212,"column":2215,"offset":2216},16,4006,{"start":2218,"end":2220},{"line":2212,"column":27,"offset":2219},3991,{"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},88,4010,{"line":2233,"column":2236,"offset":2237},33,4040,{"start":2239,"end":2241},{"line":2233,"column":27,"offset":2240},4008,{"line":2233,"column":2242,"offset":2243},35,4042,{"type":23,"value":2245,"position":2246}," The ",{"start":2247,"end":2248},{"line":2233,"column":2242,"offset":2243},{"line":2233,"column":2249,"offset":2250},40,4047,{"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,4053,{"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,4117,{"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,4122,{"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,4127,{"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,4135,{"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,4190,{"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,4199,{"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,4207,{"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,4215,{"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},4332,{"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,4349,{"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,4520,{"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},90,4524,{"line":2383,"column":28,"offset":2386},4551,{"start":2388,"end":2390},{"line":2383,"column":27,"offset":2389},4522,{"line":2383,"column":33,"offset":2391},4553,{"type":23,"value":2393,"position":2394}," ",{"start":2395,"end":2396},{"line":2383,"column":33,"offset":2391},{"line":2383,"column":2236,"offset":2397},4554,{"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,4574,{"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,4883,{"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},92,4887,{"line":2432,"column":2435,"offset":2436},9,4893,{"start":2438,"end":2440},{"line":2432,"column":27,"offset":2439},4885,{"line":2432,"column":2441,"offset":2442},11,4895,{"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,4940,{"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,4949,{"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,4954,{"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,4962,{"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,5155,{"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,5180,{"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,5230,{"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,5241,{"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,5269,{"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,5275,{"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,5445,{"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},94,5449,{"line":2562,"column":2565,"offset":2566},25,5471,{"start":2568,"end":2570},{"line":2562,"column":27,"offset":2569},5447,{"line":2562,"column":2571,"offset":2572},27,5473,{"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,5585,{"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,5604,{"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,5674,{"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,5685,{"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},5717,{"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,5736,{"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,5944,{"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},96,5948,{"line":2653,"column":2656,"offset":2657},17,5962,{"start":2659,"end":2661},{"line":2653,"column":27,"offset":2660},5946,{"line":2653,"column":2662,"offset":2663},19,5964,{"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,5989,{"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,6000,{"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,6120,{"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},98,6126,{"line":2710,"column":2656,"offset":2713},6138,{"start":2715,"end":2717},{"line":2710,"column":32,"offset":2716},6124,{"line":2710,"column":2662,"offset":2718},6140,{"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,6166,{"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,6171,{"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,6420,{"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},6122,{"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},100,6425,{"line":2763,"column":2215,"offset":2766},6437,{"start":2768,"end":2770},{"line":2763,"column":27,"offset":2769},6422,{"line":2763,"column":2215,"offset":2766},{"type":23,"value":89},{"type":14,"tagName":2773,"properties":2774,"children":2775,"position":3299},"ul",{},[2776,2777,2828,2829,2879,2880,2929,2930,3076,3077,3128,3129,3217,3218,3298],{"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},102,6443,{"line":2788,"column":2791,"offset":2792},20,6458,{"start":2794,"end":2796},{"line":2788,"column":32,"offset":2795},6441,{"line":2788,"column":2797,"offset":2798},22,6460,{"type":23,"value":2393,"position":2800},{"start":2801,"end":2802},{"line":2788,"column":2797,"offset":2798},{"line":2788,"column":2803,"offset":2804},23,6461,{"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},6471,{"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,6692,{"start":2825,"end":2827},{"line":2788,"column":27,"offset":2826},6439,{"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},103,6697,{"line":2839,"column":2842,"offset":2843},21,6713,{"start":2845,"end":2847},{"line":2839,"column":32,"offset":2846},6695,{"line":2839,"column":2803,"offset":2848},6715,{"type":23,"value":2393,"position":2850},{"start":2851,"end":2852},{"line":2839,"column":2803,"offset":2848},{"line":2839,"column":2853,"offset":2854},24,6716,{"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,6726,{"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,6914,{"start":2876,"end":2878},{"line":2839,"column":27,"offset":2877},6693,{"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},104,6919,{"line":2890,"column":2842,"offset":2893},6935,{"start":2895,"end":2897},{"line":2890,"column":32,"offset":2896},6917,{"line":2890,"column":2803,"offset":2898},6937,{"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,7027,{"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,7044,{"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,7152,{"start":2926,"end":2928},{"line":2890,"column":27,"offset":2927},6915,{"line":2890,"column":2923,"offset":2924},{"type":23,"value":89},{"type":14,"tagName":2778,"properties":2931,"children":2932,"position":3072},{},[2933,2949,2956,2969,2976,2989,2995,3007,3013,3025,3032,3045,3052,3065],{"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},105,7157,{"line":2940,"column":2791,"offset":2943},7172,{"start":2945,"end":2947},{"line":2940,"column":32,"offset":2946},7155,{"line":2940,"column":2797,"offset":2948},7174,{"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,7218,{"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,7224,{"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,7225,{"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,7232,{"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":2432,"offset":2994},7244,{"type":14,"tagName":128,"properties":2996,"children":2997,"position":3004},{},[2998],{"type":23,"value":2999,"position":3000},"high",{"start":3001,"end":3002},{"line":2940,"column":2432,"offset":2994},{"line":2940,"column":2710,"offset":3003},7250,{"start":3005,"end":3006},{"line":2940,"column":2432,"offset":2994},{"line":2940,"column":2710,"offset":3003},{"type":23,"value":2970,"position":3008},{"start":3009,"end":3010},{"line":2940,"column":2710,"offset":3003},{"line":2940,"column":3011,"offset":3012},99,7251,{"type":14,"tagName":128,"properties":3014,"children":3015,"position":3022},{},[3016],{"type":23,"value":3017,"position":3018},"low",{"start":3019,"end":3020},{"line":2940,"column":3011,"offset":3012},{"line":2940,"column":2890,"offset":3021},7256,{"start":3023,"end":3024},{"line":2940,"column":3011,"offset":3012},{"line":2940,"column":2890,"offset":3021},{"type":23,"value":3026,"position":3027},"). Use the full candle range for thicker zones, or the body only for tighter ones, by changing which prices ",{"start":3028,"end":3029},{"line":2940,"column":2890,"offset":3021},{"line":2940,"column":3030,"offset":3031},212,7364,{"type":14,"tagName":128,"properties":3033,"children":3034,"position":3042},{},[3035],{"type":23,"value":3036,"position":3037},"zTop",{"start":3038,"end":3039},{"line":2940,"column":3030,"offset":3031},{"line":2940,"column":3040,"offset":3041},218,7370,{"start":3043,"end":3044},{"line":2940,"column":3030,"offset":3031},{"line":2940,"column":3040,"offset":3041},{"type":23,"value":3046,"position":3047}," / ",{"start":3048,"end":3049},{"line":2940,"column":3040,"offset":3041},{"line":2940,"column":3050,"offset":3051},221,7373,{"type":14,"tagName":128,"properties":3053,"children":3054,"position":3062},{},[3055],{"type":23,"value":3056,"position":3057},"zBot",{"start":3058,"end":3059},{"line":2940,"column":3050,"offset":3051},{"line":2940,"column":3060,"offset":3061},227,7379,{"start":3063,"end":3064},{"line":2940,"column":3050,"offset":3051},{"line":2940,"column":3060,"offset":3061},{"type":23,"value":3066,"position":3067}," read.",{"start":3068,"end":3069},{"line":2940,"column":3060,"offset":3061},{"line":2940,"column":3070,"offset":3071},233,7385,{"start":3073,"end":3075},{"line":2940,"column":27,"offset":3074},7153,{"line":2940,"column":3070,"offset":3071},{"type":23,"value":89},{"type":14,"tagName":2778,"properties":3078,"children":3079,"position":3124},{},[3080,3097,3104,3117],{"type":14,"tagName":2226,"properties":3081,"children":3082,"position":3091},{},[3083],{"type":23,"value":3084,"position":3085},"Box length.",{"start":3086,"end":3089},{"line":3087,"column":67,"offset":3088},106,7390,{"line":3087,"column":2215,"offset":3090},7401,{"start":3092,"end":3094},{"line":3087,"column":32,"offset":3093},7388,{"line":3087,"column":3095,"offset":3096},18,7403,{"type":23,"value":3098,"position":3099}," Each box extends ",{"start":3100,"end":3101},{"line":3087,"column":3095,"offset":3096},{"line":3087,"column":3102,"offset":3103},36,7421,{"type":14,"tagName":128,"properties":3105,"children":3106,"position":3114},{},[3107],{"type":23,"value":3108,"position":3109},"currentInterval * 40",{"start":3110,"end":3111},{"line":3087,"column":3102,"offset":3103},{"line":3087,"column":3112,"offset":3113},58,7443,{"start":3115,"end":3116},{"line":3087,"column":3102,"offset":3103},{"line":3087,"column":3112,"offset":3113},{"type":23,"value":3118,"position":3119}," into the future. Increase the multiplier to project zones further ahead, decrease it to keep them compact.",{"start":3120,"end":3121},{"line":3087,"column":3112,"offset":3113},{"line":3087,"column":3122,"offset":3123},165,7550,{"start":3125,"end":3127},{"line":3087,"column":27,"offset":3126},7386,{"line":3087,"column":3122,"offset":3123},{"type":23,"value":89},{"type":14,"tagName":2778,"properties":3130,"children":3131,"position":3213},{},[3132,3150,3156,3168,3175,3187,3193,3206],{"type":14,"tagName":2226,"properties":3133,"children":3134,"position":3144},{},[3135],{"type":23,"value":3136,"position":3137},"Colors.",{"start":3138,"end":3141},{"line":3139,"column":67,"offset":3140},107,7555,{"line":3139,"column":3142,"offset":3143},12,7562,{"start":3145,"end":3147},{"line":3139,"column":32,"offset":3146},7553,{"line":3139,"column":3148,"offset":3149},14,7564,{"type":23,"value":2393,"position":3151},{"start":3152,"end":3153},{"line":3139,"column":3148,"offset":3149},{"line":3139,"column":3154,"offset":3155},15,7565,{"type":14,"tagName":128,"properties":3157,"children":3158,"position":3165},{},[3159],{"type":23,"value":3160,"position":3161},"supCol",{"start":3162,"end":3163},{"line":3139,"column":3154,"offset":3155},{"line":3139,"column":2803,"offset":3164},7573,{"start":3166,"end":3167},{"line":3139,"column":3154,"offset":3155},{"line":3139,"column":2803,"offset":3164},{"type":23,"value":3169,"position":3170}," (demand) and ",{"start":3171,"end":3172},{"line":3139,"column":2803,"offset":3164},{"line":3139,"column":3173,"offset":3174},37,7587,{"type":14,"tagName":128,"properties":3176,"children":3177,"position":3184},{},[3178],{"type":23,"value":3179,"position":3180},"resCol",{"start":3181,"end":3182},{"line":3139,"column":3173,"offset":3174},{"line":3139,"column":2724,"offset":3183},7595,{"start":3185,"end":3186},{"line":3139,"column":3173,"offset":3174},{"line":3139,"column":2724,"offset":3183},{"type":23,"value":3188,"position":3189}," (supply) set both the box fill and border. The faint fill is derived with ",{"start":3190,"end":3191},{"line":3139,"column":2724,"offset":3183},{"line":3139,"column":2289,"offset":3192},7670,{"type":14,"tagName":128,"properties":3194,"children":3195,"position":3203},{},[3196],{"type":23,"value":3197,"position":3198},"opacity()",{"start":3199,"end":3200},{"line":3139,"column":2289,"offset":3192},{"line":3139,"column":3201,"offset":3202},131,7681,{"start":3204,"end":3205},{"line":3139,"column":2289,"offset":3192},{"line":3139,"column":3201,"offset":3202},{"type":23,"value":3207,"position":3208},", so changing the base color restyles the whole zone.",{"start":3209,"end":3210},{"line":3139,"column":3201,"offset":3202},{"line":3139,"column":3211,"offset":3212},184,7734,{"start":3214,"end":3216},{"line":3139,"column":27,"offset":3215},7551,{"line":3139,"column":3211,"offset":3212},{"type":23,"value":89},{"type":14,"tagName":2778,"properties":3219,"children":3220,"position":3294},{},[3221,3237,3243,3267,3274,3287],{"type":14,"tagName":2226,"properties":3222,"children":3223,"position":3232},{},[3224],{"type":23,"value":3225,"position":3226},"Alert on touch.",{"start":3227,"end":3230},{"line":3228,"column":67,"offset":3229},108,7739,{"line":3228,"column":2791,"offset":3231},7754,{"start":3233,"end":3235},{"line":3228,"column":32,"offset":3234},7737,{"line":3228,"column":2797,"offset":3236},7756,{"type":23,"value":3238,"position":3239}," Add an ",{"start":3240,"end":3241},{"line":3228,"column":2797,"offset":3236},{"line":3228,"column":28,"offset":3242},7764,{"type":14,"tagName":3244,"properties":3245,"children":3247,"position":3262},"a",{"href":3246},"/kscript/functions/alerts",[3248],{"type":14,"tagName":128,"properties":3249,"children":3250,"position":3259},{},[3251],{"type":23,"value":3252,"position":3253},"alert()",{"start":3254,"end":3257},{"line":3228,"column":3255,"offset":3256},31,7765,{"line":3228,"column":2249,"offset":3258},7774,{"start":3260,"end":3261},{"line":3228,"column":3255,"offset":3256},{"line":3228,"column":2249,"offset":3258},{"start":3263,"end":3264},{"line":3228,"column":28,"offset":3242},{"line":3228,"column":3265,"offset":3266},68,7802,{"type":23,"value":3268,"position":3269}," when ",{"start":3270,"end":3271},{"line":3228,"column":3265,"offset":3266},{"line":3228,"column":3272,"offset":3273},74,7808,{"type":14,"tagName":128,"properties":3275,"children":3276,"position":3284},{},[3277],{"type":23,"value":3278,"position":3279},"d.close",{"start":3280,"end":3281},{"line":3228,"column":3272,"offset":3273},{"line":3228,"column":3282,"offset":3283},83,7817,{"start":3285,"end":3286},{"line":3228,"column":3272,"offset":3273},{"line":3228,"column":3282,"offset":3283},{"type":23,"value":3288,"position":3289}," enters an active zone to be notified when price reaches one of your levels.",{"start":3290,"end":3291},{"line":3228,"column":3282,"offset":3283},{"line":3228,"column":3292,"offset":3293},159,7893,{"start":3295,"end":3297},{"line":3228,"column":27,"offset":3296},7735,{"line":3228,"column":3292,"offset":3293},{"type":23,"value":89},{"start":3300,"end":3301},{"line":2788,"column":27,"offset":2826},{"line":3228,"column":3292,"offset":3293},{"type":23,"value":89},{"type":14,"tagName":2204,"properties":3304,"children":3306,"position":3314},{"id":3305},"concepts-used",[3307],{"type":23,"value":3308,"position":3309},"Concepts used",{"start":3310,"end":3312},{"line":2269,"column":56,"offset":3311},7898,{"line":2269,"column":2656,"offset":3313},7911,{"start":3315,"end":3317},{"line":2269,"column":27,"offset":3316},7895,{"line":2269,"column":2656,"offset":3313},{"type":23,"value":89},{"type":14,"tagName":2773,"properties":3320,"children":3321,"position":3632},{},[3322,3323,3372,3373,3421,3422,3471,3472,3532,3533,3582,3583,3631],{"type":23,"value":89},{"type":14,"tagName":2778,"properties":3324,"children":3325,"position":3368},{},[3326,3343,3350,3362],{"type":14,"tagName":3244,"properties":3327,"children":3329,"position":3338},{"href":3328},"/kscript/core-concepts/user-defined-types",[3330],{"type":23,"value":3331,"position":3332},"User-defined types",{"start":3333,"end":3336},{"line":3334,"column":56,"offset":3335},112,7916,{"line":3334,"column":2797,"offset":3337},7934,{"start":3339,"end":3341},{"line":3334,"column":32,"offset":3340},7915,{"line":3334,"column":2954,"offset":3342},7978,{"type":23,"value":3344,"position":3345}," for the ",{"start":3346,"end":3347},{"line":3334,"column":2954,"offset":3342},{"line":3334,"column":3348,"offset":3349},75,7987,{"type":14,"tagName":128,"properties":3351,"children":3352,"position":3359},{},[3353],{"type":23,"value":2255,"position":3354},{"start":3355,"end":3356},{"line":3334,"column":3348,"offset":3349},{"line":3334,"column":3357,"offset":3358},81,7993,{"start":3360,"end":3361},{"line":3334,"column":3348,"offset":3349},{"line":3334,"column":3357,"offset":3358},{"type":23,"value":3363,"position":3364}," struct and its fields",{"start":3365,"end":3366},{"line":3334,"column":3357,"offset":3358},{"line":3334,"column":2839,"offset":3367},8015,{"start":3369,"end":3371},{"line":3334,"column":27,"offset":3370},7913,{"line":3334,"column":2839,"offset":3367},{"type":23,"value":89},{"type":14,"tagName":2778,"properties":3374,"children":3375,"position":3417},{},[3376,3393,3400,3411],{"type":14,"tagName":3244,"properties":3377,"children":3379,"position":3387},{"href":3378},"/kscript/core-concepts/collections",[3380],{"type":23,"value":3381,"position":3382},"Collections",{"start":3383,"end":3385},{"line":2904,"column":56,"offset":3384},8019,{"line":2904,"column":3154,"offset":3386},8030,{"start":3388,"end":3390},{"line":2904,"column":32,"offset":3389},8018,{"line":2904,"column":3391,"offset":3392},52,8067,{"type":23,"value":3394,"position":3395}," for the array of zones, ",{"start":3396,"end":3397},{"line":2904,"column":3391,"offset":3392},{"line":2904,"column":3398,"offset":3399},77,8092,{"type":14,"tagName":128,"properties":3401,"children":3402,"position":3408},{},[3403],{"type":23,"value":1403,"position":3404},{"start":3405,"end":3406},{"line":2904,"column":3398,"offset":3399},{"line":2904,"column":3282,"offset":3407},8098,{"start":3409,"end":3410},{"line":2904,"column":3398,"offset":3399},{"line":2904,"column":3282,"offset":3407},{"type":23,"value":3412,"position":3413},", and iteration",{"start":3414,"end":3415},{"line":2904,"column":3282,"offset":3407},{"line":2904,"column":2710,"offset":3416},8113,{"start":3418,"end":3420},{"line":2904,"column":27,"offset":3419},8016,{"line":2904,"column":2710,"offset":3416},{"type":23,"value":89},{"type":14,"tagName":2778,"properties":3423,"children":3424,"position":3467},{},[3425,3443,3449,3461],{"type":14,"tagName":3244,"properties":3426,"children":3428,"position":3437},{"href":3427},"/kscript/core-concepts/execution-model",[3429],{"type":23,"value":3430,"position":3431},"Execution model",{"start":3432,"end":3435},{"line":3433,"column":56,"offset":3434},114,8117,{"line":3433,"column":2662,"offset":3436},8132,{"start":3438,"end":3440},{"line":3433,"column":32,"offset":3439},8116,{"line":3433,"column":3441,"offset":3442},60,8173,{"type":23,"value":3344,"position":3444},{"start":3445,"end":3446},{"line":3433,"column":3441,"offset":3442},{"line":3433,"column":3447,"offset":3448},69,8182,{"type":14,"tagName":128,"properties":3450,"children":3451,"position":3458},{},[3452],{"type":23,"value":3453,"position":3454},"persist",{"start":3455,"end":3456},{"line":3433,"column":3447,"offset":3448},{"line":3433,"column":2477,"offset":3457},8191,{"start":3459,"end":3460},{"line":3433,"column":3447,"offset":3448},{"line":3433,"column":2477,"offset":3457},{"type":23,"value":3462,"position":3463}," collection that survives across bars",{"start":3464,"end":3465},{"line":3433,"column":2477,"offset":3457},{"line":3433,"column":2279,"offset":3466},8228,{"start":3468,"end":3470},{"line":3433,"column":27,"offset":3469},8114,{"line":3433,"column":2279,"offset":3466},{"type":23,"value":89},{"type":14,"tagName":2778,"properties":3473,"children":3474,"position":3528},{},[3475,3491,3498,3509,3516],{"type":14,"tagName":3244,"properties":3476,"children":3478,"position":3486},{"href":3477},"/kscript/functions/drawing-objects",[3479],{"type":23,"value":3480,"position":3481},"Drawing objects",{"start":3482,"end":3484},{"line":2279,"column":56,"offset":3483},8232,{"line":2279,"column":2662,"offset":3485},8247,{"start":3487,"end":3489},{"line":2279,"column":32,"offset":3488},8231,{"line":2279,"column":2448,"offset":3490},8284,{"type":23,"value":3492,"position":3493}," for ",{"start":3494,"end":3495},{"line":2279,"column":2448,"offset":3490},{"line":2279,"column":3496,"offset":3497},61,8289,{"type":14,"tagName":128,"properties":3499,"children":3500,"position":3506},{},[3501],{"type":23,"value":2513,"position":3502},{"start":3503,"end":3504},{"line":2279,"column":3496,"offset":3497},{"line":2279,"column":2964,"offset":3505},8300,{"start":3507,"end":3508},{"line":2279,"column":3496,"offset":3497},{"line":2279,"column":2964,"offset":3505},{"type":23,"value":3510,"position":3511}," and the self-managing ",{"start":3512,"end":3513},{"line":2279,"column":2964,"offset":3505},{"line":2279,"column":3514,"offset":3515},95,8323,{"type":14,"tagName":128,"properties":3517,"children":3518,"position":3525},{},[3519],{"type":23,"value":3520,"position":3521},".delete()",{"start":3522,"end":3523},{"line":2279,"column":3514,"offset":3515},{"line":2279,"column":3087,"offset":3524},8334,{"start":3526,"end":3527},{"line":2279,"column":3514,"offset":3515},{"line":2279,"column":3087,"offset":3524},{"start":3529,"end":3531},{"line":2279,"column":27,"offset":3530},8229,{"line":2279,"column":3087,"offset":3524},{"type":23,"value":89},{"type":14,"tagName":2778,"properties":3534,"children":3535,"position":3578},{},[3536,3553,3559,3571],{"type":14,"tagName":3244,"properties":3537,"children":3539,"position":3548},{"href":3538},"/kscript/core-concepts/user-functions",[3540],{"type":23,"value":3541,"position":3542},"User functions",{"start":3543,"end":3546},{"line":3544,"column":56,"offset":3545},116,8338,{"line":3544,"column":3095,"offset":3547},8352,{"start":3549,"end":3551},{"line":3544,"column":32,"offset":3550},8337,{"line":3544,"column":3112,"offset":3552},8392,{"type":23,"value":3344,"position":3554},{"start":3555,"end":3556},{"line":3544,"column":3112,"offset":3552},{"line":3544,"column":3557,"offset":3558},67,8401,{"type":14,"tagName":128,"properties":3560,"children":3561,"position":3568},{},[3562],{"type":23,"value":802,"position":3563},{"start":3564,"end":3565},{"line":3544,"column":3557,"offset":3558},{"line":3544,"column":3566,"offset":3567},84,8418,{"start":3569,"end":3570},{"line":3544,"column":3557,"offset":3558},{"line":3544,"column":3566,"offset":3567},{"type":23,"value":3572,"position":3573}," helper",{"start":3574,"end":3575},{"line":3544,"column":3566,"offset":3567},{"line":3544,"column":3576,"offset":3577},91,8425,{"start":3579,"end":3581},{"line":3544,"column":27,"offset":3580},8335,{"line":3544,"column":3576,"offset":3577},{"type":23,"value":89},{"type":14,"tagName":2778,"properties":3584,"children":3585,"position":3627},{},[3586,3604,3610,3621],{"type":14,"tagName":3244,"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},117,8429,{"line":3594,"column":3142,"offset":3597},8437,{"start":3599,"end":3601},{"line":3594,"column":32,"offset":3600},8428,{"line":3594,"column":3602,"offset":3603},42,8467,{"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},8481,{"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":3557,"offset":3617},8492,{"start":3619,"end":3620},{"line":3594,"column":2448,"offset":3609},{"line":3594,"column":3557,"offset":3617},{"type":23,"value":3622,"position":3623}," dashboard",{"start":3624,"end":3625},{"line":3594,"column":3557,"offset":3617},{"line":3594,"column":3398,"offset":3626},8502,{"start":3628,"end":3630},{"line":3594,"column":27,"offset":3629},8426,{"line":3594,"column":3398,"offset":3626},{"type":23,"value":89},{"start":3633,"end":3634},{"line":3334,"column":27,"offset":3370},{"line":3594,"column":3398,"offset":3626},{"quirksMode":3636},false,{"start":3638,"end":3639},{"line":27,"column":27,"offset":97},{"line":3640,"column":27,"offset":3641},118,8503,1784888037511]