[{"data":1,"prerenderedAt":8671},["ShallowReactive",2],{"nav:algorithms":3,"lesson:\u002Falgorithms\u002Fdata-structures\u002Ffenwick-and-segment-trees":374,"course-wordcounts":8539,"ref-card-index":8595},[4,28,50,71,120,152,205,230,286,306,331,352],{"module":5,"moduleNumber":6,"slug":7,"lessons":8},"Foundations",1,"foundations",[9,15,21],{"title":10,"path":11,"lessonNumber":6,"topics":12,"summary":14},"What Is an Algorithm?","\u002Falgorithms\u002Ffoundations\u002Fwhat-is-an-algorithm",[5,13],"Correctness & Induction","An algorithm is a finite, mechanical recipe that transforms inputs into outputs. We pin down what counts as an algorithm, how we write one down, and the three things we always ask of it: is it correct, is it fast, and can we prove it.\n",{"title":16,"path":17,"lessonNumber":18,"topics":19,"summary":20},"Asymptotic Analysis","\u002Falgorithms\u002Ffoundations\u002Fasymptotic-analysis",2,[16],"We measure an algorithm's running time as a function of its input size, then strip away machine-specific constants and lower-order terms to compare algorithms cleanly. This lesson defines the RAM model and the $O$, $\\Omega$, $\\Theta$, $o$, and $\\omega$ notations, and shows how to read the cost of loops off the page.\n",{"title":22,"path":23,"lessonNumber":24,"topics":25,"summary":27},"Recurrences and the Master Theorem","\u002Falgorithms\u002Ffoundations\u002Frecurrences",3,[26],"Recurrences","Recursive and divide-and-conquer algorithms describe their own running time with a recurrence: $T(n)$ in terms of $T$ on smaller inputs. We solve recurrences three ways — drawing the recursion tree, guessing-and-verifying by induction, and applying the Master Theorem — using merge sort as the running example.\n",{"module":29,"moduleNumber":18,"slug":30,"lessons":31},"Divide & Conquer","divide-and-conquer",[32,38,44],{"title":33,"path":34,"lessonNumber":6,"topics":35,"summary":37},"Divide and Conquer & Mergesort","\u002Falgorithms\u002Fdivide-and-conquer\u002Fmergesort",[29,36],"Comparison Sorting","Divide and conquer breaks a problem into smaller copies of itself, solves them recursively, and stitches the answers together. We meet the paradigm through mergesort — its merge step, its loop-invariant proof, and the recursion tree that pins its cost at $\\Theta(n\\log n)$ — then glimpse Karatsuba multiplication as a second example of the same idea.",{"title":39,"path":40,"lessonNumber":18,"topics":41,"summary":43},"Quicksort","\u002Falgorithms\u002Fdivide-and-conquer\u002Fquicksort",[36,42],"Probabilistic Analysis","Quicksort sorts in place by partitioning around a pivot and recursing on each side. We give Lomuto and Hoare partitioning with a correctness invariant, see why a bad pivot costs $\\Theta(n^2)$ while a balanced one gives $\\Theta(n\\log n)$, and prove that randomizing the pivot makes the expected cost $\\Theta(n\\log n)$ on every input.",{"title":45,"path":46,"lessonNumber":24,"topics":47,"summary":49},"Linear-Time Selection","\u002Falgorithms\u002Fdivide-and-conquer\u002Fselection",[48,29],"Order Statistics","Finding the $k$-th smallest element looks like it should require sorting, but it does not. Quickselect adapts quicksort's partition to recurse on just one side, achieving expected $O(n)$. The median-of-medians algorithm guarantees a good pivot with the groups-of-five trick, pushing the worst case down to a provable $O(n)$.",{"module":51,"moduleNumber":24,"slug":52,"lessons":53},"Sorting & Order Statistics","sorting",[54,60,65],{"title":55,"path":56,"lessonNumber":6,"topics":57,"summary":59},"Heaps and Heapsort","\u002Falgorithms\u002Fsorting\u002Fheaps-and-heapsort",[58,36],"Heaps","A binary heap is a tree we store flat in an array, with index arithmetic standing in for pointers. We build the max-heap property bottom-up in $O(n)$ time, sort in place in $\\Theta(n\\log n)$ by repeatedly extracting the maximum, and reuse the same structure to implement a priority queue.",{"title":61,"path":62,"lessonNumber":18,"topics":63,"summary":64},"Lower Bounds for Comparison Sorting","\u002Falgorithms\u002Fsorting\u002Fsorting-lower-bounds",[36],"Every sort we have seen runs in $\\Omega(n\\log n)$, and that is no accident. Modeling a sort as a decision tree of comparisons, we show any such tree must have $n!$ leaves, forcing height $\\ge \\log_2(n!) = \\Omega(n\\log n)$ — a worst-case bound no comparison sort can ever beat.",{"title":66,"path":67,"lessonNumber":24,"topics":68,"summary":70},"Sorting in Linear Time","\u002Falgorithms\u002Fsorting\u002Flinear-time-sorting",[69],"Linear-Time Sorting","The $\\Omega(n\\log n)$ barrier only binds algorithms that compare. By instead using keys as array indices we slip past it: counting sort runs in $\\Theta(n+k)$ and is stable, radix sort layers it digit by digit, and bucket sort averages $\\Theta(n)$ on uniform data. We see exactly when each applies.",{"module":72,"moduleNumber":73,"slug":74,"lessons":75},"Data Structures",4,"data-structures",[76,82,88,93,99,105,113],{"title":77,"path":78,"lessonNumber":6,"topics":79,"summary":81},"Elementary Data Structures","\u002Falgorithms\u002Fdata-structures\u002Felementary-structures",[80],"Linear Structures","Every container is built one of two ways: **contiguous** in an array, or **linked** through pointers. We trade cache-friendly random access against $O(1)$ splicing, derive the **amortized $O(1)$** append of a doubling dynamic array, and assemble the two ordered access disciplines — the LIFO **stack** and the FIFO **queue** (with its generalization, the **deque**) — on top of both.",{"title":83,"path":84,"lessonNumber":18,"topics":85,"summary":87},"Hash Tables","\u002Falgorithms\u002Fdata-structures\u002Fhash-tables",[86],"Hashing","A hash table implements the dictionary — insert, search, delete — in expected $O(1)$ time by scattering keys across an array with a hash function. We build up from direct addressing, handle collisions by chaining and by open addressing, analyze the load factor $\\alpha$, and see how universal hashing earns its expected-time guarantee against every input.",{"title":89,"path":90,"lessonNumber":24,"topics":91,"summary":92},"Binary Search Trees","\u002Falgorithms\u002Fdata-structures\u002Fbinary-search-trees",[89],"A binary search tree keeps keys ordered so that every operation follows a single root-to-leaf path. We state the BST property, give search and insert, find minimum, maximum, and successor, see that an inorder walk emits the keys in sorted order, and confront the catch — every operation costs $O(h)$, and a carelessly built tree degrades to height $h = \\Theta(n)$, motivating balance.",{"title":94,"path":95,"lessonNumber":73,"topics":96,"summary":98},"AVL Trees","\u002Falgorithms\u002Fdata-structures\u002Favl-trees",[97],"Balanced Trees","An AVL tree is the first balanced BST: at every node the two subtrees' heights differ by at most $1$. A Fibonacci-style minimal-node argument forces height $h \\le 1.44\\log_2 n = O(\\log n)$, so search, insert, and delete are all $O(\\log n)$. Insertion rebalances with at most one of four rotation cases (LL, RR, LR, RL); deletion may rotate all the way to the root.",{"title":100,"path":101,"lessonNumber":102,"topics":103,"summary":104},"Balanced Search Trees","\u002Falgorithms\u002Fdata-structures\u002Fbalanced-trees",5,[97],"An ordinary BST can degrade to height $\\Theta(n)$; balanced search trees guarantee $h = O(\\log n)$ by maintaining invariants and repairing them after every update. We meet rotations, the local restructuring primitive, then red-black trees, whose color invariants force logarithmic height, and finally B-trees, which trade tall-and-thin for short-and-wide to win on disk.",{"title":106,"path":107,"lessonNumber":108,"topics":109,"summary":112},"Disjoint Sets (Union-Find)","\u002Falgorithms\u002Fdata-structures\u002Funion-find",6,[110,111],"Disjoint Sets","Amortized Analysis","The disjoint-set data structure tracks a partition of elements into groups, answering \"are these two in the same group?\" and merging groups on demand. A forest of parent pointers, sped up by union by rank and path compression, drives every operation to near-constant $O(\\alpha(n))$ amortized time — the engine behind connectivity queries and Kruskal's minimum spanning tree.",{"title":114,"path":115,"lessonNumber":116,"topics":117,"summary":119},"Fenwick & Segment Trees","\u002Falgorithms\u002Fdata-structures\u002Ffenwick-and-segment-trees",7,[118],"Range Queries","A prefix-sum array answers a range sum in $O(1)$ but pays $O(n)$ per update; a plain array updates in $O(1)$ but pays $O(n)$ per range sum. Fenwick and segment trees give us _both_ in $O(\\log n)$. The Fenwick (binary indexed) tree is a tiny array keyed by the low bit; the segment tree is a general balanced tree over canonical ranges that handles any associative aggregate and, with lazy propagation, range updates too.",{"module":121,"moduleNumber":102,"slug":122,"lessons":123},"Sequences & Strings","sequences",[124,130,135,141,147],{"title":125,"path":126,"lessonNumber":6,"topics":127,"summary":129},"Two Pointers, Sliding Windows & Prefix Sums","\u002Falgorithms\u002Fsequences\u002Ftwo-pointers-and-windows",[128],"Array Techniques","A family of array idioms that collapse an obvious $O(n^2)$ scan into a single $O(n)$ pass by maintaining an invariant as indices move. We meet two pointers (converging on a sorted array, and a fast\u002Fslow pair for in-place rewriting), the sliding window (fixed and variable size, amortized $O(n)$), and prefix sums, which answer any range-sum in $O(1)$ and count subarrays summing to $k$.",{"title":131,"path":132,"lessonNumber":18,"topics":133,"summary":134},"Monotonic Stacks & Queues","\u002Falgorithms\u002Fsequences\u002Fmonotonic-stacks",[128],"A **monotonic stack** keeps its contents sorted by popping every element that would break the order before each push — turning a family of \"previous\u002Fnext greater (or smaller) element\" questions into a single $O(n)$ scan. We derive the next-greater-element routine and its amortized analysis, fuse two such scans to measure the **largest rectangle in a histogram** in linear time, and extend the idea to a **monotonic deque** that streams the **sliding-window maximum** in $O(n)$.",{"title":136,"path":137,"lessonNumber":24,"topics":138,"summary":140},"Binary Search on the Answer","\u002Falgorithms\u002Fsequences\u002Fbinary-search-on-the-answer",[139],"Searching","Binary search is not really about arrays — it is about locating the boundary of a **monotone predicate** $p(x)$ in $O(\\log(\\text{range}))$ probes. We first pin down the half-open `while (lo \u003C hi)` template for $\\textsc{lower\\_bound}$ and $\\textsc{upper\\_bound}$, then generalize to \"binary search on the answer\": whenever feasibility is monotone in a numeric parameter, we binary search the parameter itself, calling a feasibility check at each step.",{"title":142,"path":143,"lessonNumber":73,"topics":144,"summary":146},"String Matching: Rabin–Karp, KMP & Z","\u002Falgorithms\u002Fsequences\u002Fstring-matching",[145],"Strings","Given a text $T$ of length $n$ and a pattern $P$ of length $m$, find every occurrence of $P$ in $T$. The naive scan costs $O(nm)$; we beat it three ways. Rabin–Karp uses a **rolling hash** to test alignments in $O(1)$ amortised each, with expected $O(n+m)$. KMP precomputes a **failure function** so the scan never re-reads a text character, for worst-case $O(n+m)$. The **Z-function** gives the same bound from a different angle and converts freely to KMP's table.",{"title":148,"path":149,"lessonNumber":102,"topics":150,"summary":151},"Tries & Prefix Trees","\u002Falgorithms\u002Fsequences\u002Ftries",[145],"A **trie** stores a set of strings in a tree keyed by _characters_, so that insert, search, and prefix-test all run in $O(L)$ time — the length of the key, _independent of how many keys are stored_. Shared prefixes are stored once, which makes tries the natural structure for autocomplete, wildcard dictionaries, board word-search, and — over the alphabet $\\{0,1\\}$ — the maximum-XOR-pair problem.",{"module":153,"moduleNumber":108,"slug":154,"lessons":155},"Graphs","graphs",[156,163,168,173,178,183,188,193,199],{"title":157,"path":158,"lessonNumber":6,"topics":159,"summary":162},"Graph Representations and Traversal","\u002Falgorithms\u002Fgraphs\u002Frepresentations-and-traversal",[160,161],"Graph Representations","Graph Traversal","A graph captures _relationships_ — who connects to whom. We fix the vocabulary, weigh the two standard representations (adjacency list versus matrix), then meet the two explorations you'll use constantly: breadth-first search, which finds shortest paths by number of edges, and depth-first search, whose discovery and finish times reveal a graph's hidden structure. Both run in $O(V + E)$.",{"title":164,"path":165,"lessonNumber":18,"topics":166,"summary":167},"Topological Sort and Strong Connectivity","\u002Falgorithms\u002Fgraphs\u002Ftopological-sort-and-scc",[161],"Directed acyclic graphs model dependencies: tasks that must precede other tasks. A _topological order_ lays such a graph out in a line so every edge points forward, and depth-first finish times hand it to us almost for free. We then ask the harder question for graphs _with_ cycles: which vertices can reach each other? The answer is the strongly connected components, found by a two-pass DFS.",{"title":169,"path":170,"lessonNumber":24,"topics":171,"summary":172},"Minimum Spanning Trees","\u002Falgorithms\u002Fgraphs\u002Fminimum-spanning-trees",[169],"Given a weighted network, how do we connect everything as cheaply as possible? The answer is a minimum spanning tree. One lemma, the cut property, justifies _every_ correct MST algorithm, and from it two famous greedy methods fall out: Kruskal's, which grows a forest edge by edge with a union-find structure, and Prim's, which grows a single tree using a priority queue.",{"title":174,"path":175,"lessonNumber":73,"topics":176,"summary":177},"Shortest Paths","\u002Falgorithms\u002Fgraphs\u002Fshortest-paths",[174],"Finding the cheapest route through a weighted network is one of the most-used algorithms in computing. A single operation — _relaxation_ — underlies them all. Dijkstra's algorithm solves the non-negative case greedily; Bellman-Ford handles negative edges and detects negative cycles; and Floyd-Warshall finds the shortest path between _every_ pair of vertices.",{"title":179,"path":180,"lessonNumber":102,"topics":181,"summary":182},"Network Flow","\u002Falgorithms\u002Fgraphs\u002Fnetwork-flow",[179],"How much can flow through a network from source to sink? Max-flow is a surprisingly general model — once you see a problem as flow, a whole toolbox opens up. We build flow networks, find maximum flows by repeatedly pushing along augmenting paths in the residual graph, prove the max-flow min-cut theorem, and watch bipartite matching fall out as a special case.",{"title":184,"path":185,"lessonNumber":108,"topics":186,"summary":187},"Bridges & Articulation Points","\u002Falgorithms\u002Fgraphs\u002Fbridges-and-articulation-points",[153],"A **bridge** is an edge whose removal disconnects the graph; an **articulation point** is a vertex whose removal does. Both are single points of failure in a network. A single depth-first search computes discovery times and **low-links**, and two local criteria — $low[v] > disc[u]$ for bridges, $low[v] \\ge disc[u]$ for cut vertices — find them all in $O(V+E)$.",{"title":189,"path":190,"lessonNumber":116,"topics":191,"summary":192},"Lowest Common Ancestor & Binary Lifting","\u002Falgorithms\u002Fgraphs\u002Flowest-common-ancestor",[153],"Given a rooted tree, the lowest common ancestor of $u$ and $v$ is the deepest node that is an ancestor of both. A naive walk answers one query in $O(h)$; **binary lifting** precomputes the $2^k$-th ancestor of every node in $O(n\\log n)$, then answers $k$-th-ancestor and LCA queries in $O(\\log n)$ each. We derive both jumps, apply them to tree distance, and compare against the Euler-tour + RMQ and Tarjan offline alternatives.",{"title":194,"path":195,"lessonNumber":196,"topics":197,"summary":198},"2-SAT via Implication Graphs","\u002Falgorithms\u002Fgraphs\u002Ftwo-sat",8,[153],"A boolean formula whose every clause has exactly two literals can be solved in _linear_ time — even though its three-literal cousin is NP-complete. The trick is to read each clause as a pair of implications, build a directed graph on the $2n$ literals, and ask a question we already know how to answer: which literals share a strongly connected component? The formula is satisfiable iff no variable lands in the same SCC as its own negation, and the SCCs' topological order hands us a satisfying assignment for free.",{"title":200,"path":201,"lessonNumber":202,"topics":203,"summary":204},"Eulerian Tours","\u002Falgorithms\u002Fgraphs\u002Feulerian-tours",9,[153],"An **Eulerian tour** uses every _edge_ of a graph exactly once. We give the exact parity and balance conditions under which one exists (even degree for undirected graphs, in-degree equal to out-degree for directed) and Hierholzer's $O(E)$ algorithm that constructs one by splicing closed sub-tours. We contrast this sharply with the **Hamiltonian** problem (visit every _vertex_ once), which is NP-complete: visiting edges is easy, visiting vertices is hard.",{"module":206,"moduleNumber":116,"slug":207,"lessons":208},"Greedy Algorithms","greedy",[209,214,220,225],{"title":210,"path":211,"lessonNumber":6,"topics":212,"summary":213},"The Greedy Method","\u002Falgorithms\u002Fgreedy\u002Fthe-greedy-method",[206],"A greedy algorithm builds a solution one locally-best choice at a time and never looks back. We pin down the two properties that make this work — the greedy-choice property and optimal substructure — prove the canonical activity-selection algorithm correct with an exchange argument, watch greedy fail spectacularly on the 0\u002F1 knapsack, and glimpse matroids as the theory that says exactly when greed is good.",{"title":215,"path":216,"lessonNumber":18,"topics":217,"summary":219},"Scheduling & Interval Partitioning","\u002Falgorithms\u002Fgreedy\u002Fscheduling-and-intervals",[218],"Greedy","Three classic scheduling problems all yield to greedy algorithms — and all three turn on a single design decision: which key to sort by. Interval scheduling sorts by **finish** time to pack the most compatible jobs; interval partitioning sorts by **start** time and proves the rooms needed equal the maximum overlap **depth**; minimizing maximum lateness sorts by **deadline** and is justified by an adjacent-swap exchange argument.",{"title":221,"path":222,"lessonNumber":24,"topics":223,"summary":224},"Huffman Codes","\u002Falgorithms\u002Fgreedy\u002Fhuffman-codes",[206],"Huffman coding is the greedy method's most beautiful application: it builds a provably optimal prefix-free binary code by repeatedly merging the two least frequent symbols. We develop prefix-free codes as binary trees, give the algorithm with a priority queue, build a Huffman tree from example frequencies, prove optimality with the same greedy-choice-plus-substructure argument, and pin the running time at $O(n\\log n)$.",{"title":226,"path":227,"lessonNumber":73,"topics":228,"summary":229},"Matroids & Exchange Arguments","\u002Falgorithms\u002Fgreedy\u002Fmatroids",[218],"The capstone of the greedy module: _why_ and _when_ a greedy algorithm is provably optimal. We recap the two correctness templates — **greedy-stays-ahead** and the **exchange argument** — then meet the **matroid** $M=(S,\\mathcal{I})$, an abstraction whose **exchange property** is exactly the structure greedy needs. The matroid–greedy theorem says sorting by weight and taking what stays independent yields a maximum-weight basis _if and only if_ the structure is a matroid. Kruskal's MST is the canonical instance; 0\u002F1 knapsack and TSP are the canonical failures.",{"module":231,"moduleNumber":196,"slug":232,"lessons":233},"Dynamic Programming","dynamic-programming",[234,239,245,250,255,260,265,270,275,280],{"title":235,"path":236,"lessonNumber":6,"topics":237,"summary":238},"Principles of Dynamic Programming","\u002Falgorithms\u002Fdynamic-programming\u002Fprinciples",[231,26],"Dynamic programming is recursion with memory: when a recursive solution re-solves the same subproblems again and again, we solve each one once and store the answer. We pin down the two structural conditions that make this work — overlapping subproblems and optimal substructure — contrast top-down memoization with bottom-up tabulation, and distil the whole method into a five-step recipe.",{"title":240,"path":241,"lessonNumber":18,"topics":242,"summary":244},"Sequence Alignment & LCS","\u002Falgorithms\u002Fdynamic-programming\u002Fsequence-dp",[231,243],"String Structures","Two strings can be compared by asking how much of one survives inside the other. The longest common subsequence (LCS) and edit distance are the two classic answers, and they are the _same_ dynamic program wearing different costs. We derive the LCS recurrence by examining the last characters, fill a worked DP table, reconstruct the subsequence, and then show edit distance as the identical $\\Theta(mn)$ pattern.",{"title":246,"path":247,"lessonNumber":24,"topics":248,"summary":249},"Longest Increasing Subsequence","\u002Falgorithms\u002Fdynamic-programming\u002Flongest-increasing-subsequence",[231],"Given a sequence of numbers, how long is its longest strictly increasing subsequence? A first dynamic program indexes subproblems by the element each subsequence _ends at_, giving an $O(n^2)$ solution with parent-pointer reconstruction. A sharper idea, the patience-sorting _tails_ array searched by binary search, drops the time to $O(n\\log n)$. We then fold in the variants: non-decreasing, counting, Russian-doll envelopes, and bitonic.",{"title":251,"path":252,"lessonNumber":73,"topics":253,"summary":254},"Knapsack & Subset Problems","\u002Falgorithms\u002Fdynamic-programming\u002Fknapsack",[231],"We start from $\\textsc{Subset-sum}$ — does some sublist hit a target $t$? — and its include\u002Fexclude recurrence over a boolean table $A(i, u)$, then bolt on values to get 0\u002F1 knapsack as the same machine with $\\lor$ promoted to $\\max$. We fill both tables, recover the chosen items, and confront the surprise that the $\\Theta(nt)$ running time is only _pseudo-polynomial_ — exponential in the bit length $b$, and unimprovable unless $\\mathrm{P}=\\mathrm{NP}$ since subset-sum is $\\textsc{NP-complete}$. The fractional variant reveals the sharp line between greedy and dynamic programming.",{"title":256,"path":257,"lessonNumber":102,"topics":258,"summary":259},"Coin Change & Unbounded Knapsack","\u002Falgorithms\u002Fdynamic-programming\u002Fcoin-change-and-unbounded",[231],"The previous lesson let each item be taken at most once. Drop that cap — items may be reused _any number of times_ — and the 0\u002F1 knapsack collapses from a two-dimensional table to a one-dimensional one, because there is no longer a prefix of \"already-used\" items to track. We meet **unbounded knapsack**, then its most famous instance, **coin change**: the minimum-coins recurrence $C[a] = 1 + \\min_c C[a-c]$, and the counting variant where the _order of the loops_ decides whether you count unordered combinations or ordered sequences — the classic bug. Greed fails in general but works for canonical coin systems.",{"title":261,"path":262,"lessonNumber":108,"topics":263,"summary":264},"Interval DP","\u002Falgorithms\u002Fdynamic-programming\u002Finterval-dp",[231],"Many problems ask for the best way to combine a contiguous range of items, and the answer is a dynamic program over subintervals $[i,j]$ that chooses a split point $k$. We derive the pattern from matrix-chain multiplication — parenthesising a product to minimize scalar multiplications in $O(n^3)$ — distil it into a reusable template filled by increasing interval length, and then meet its sharpest variant: the \"last operation\" trick behind Burst Balloons and cutting a stick, where fixing the _last_ move (not the first) makes the two sides independent.",{"title":266,"path":267,"lessonNumber":116,"topics":268,"summary":269},"Dynamic Programming on Trees","\u002Falgorithms\u002Fdynamic-programming\u002Ftree-dp",[231],"When the subproblems of a dynamic program are _rooted subtrees_, a single post-order DFS solves the whole thing in $O(n)$: each node combines the already-computed answers of its children. We meet the archetype — maximum-weight independent set on a tree — then the \"path through a node\" pattern behind tree diameter and maximum path sum, and finally **rerooting**, which computes a per-node answer for _every_ node as root in $O(n)$ with two passes.",{"title":271,"path":272,"lessonNumber":196,"topics":273,"summary":274},"Bitmask DP","\u002Falgorithms\u002Fdynamic-programming\u002Fbitmask-dp",[231],"When a subproblem depends not on an index or a prefix but on _which subset_ of a small ground set has been used, we can encode that subset as the bits of an integer and index a DP table by it. With $n \\le \\sim 20$ the $2^n$ subsets fit in a table, turning $\\Theta(n!)$ brute force into $O(2^n \\cdot \\text{poly}(n))$. We meet the bit tricks, the Held–Karp TSP archetype, assignment by mask, subset-sum partitioning, and submask enumeration with its $3^n$ bound.",{"title":276,"path":277,"lessonNumber":202,"topics":278,"summary":279},"DP Optimizations","\u002Falgorithms\u002Fdynamic-programming\u002Fdp-optimizations",[231],"A correct DP recurrence is only half the battle; its naive evaluation is often a factor of $n$ slower than necessary. This capstone surveys five techniques, monotonic-queue, the convex hull trick, divide-and-conquer optimization, Knuth's optimization, and SOS DP, that each exploit _structure in the transition_ (a sliding window, linear costs, monotone optimal splits, the quadrangle inequality, or subset lattices) to shave an $O(n)$, $O(\\log n)$, or worse factor off the running time.",{"title":281,"path":282,"lessonNumber":283,"topics":284,"summary":285},"Dynamic Programming on Graphs","\u002Falgorithms\u002Fdynamic-programming\u002Fdp-on-graphs",10,[231],"Many graph algorithms are dynamic programs in disguise: the subproblem is the _best value reachable under a restricted resource_ — intermediate vertices allowed, edges allowed, or a topological prefix — and edge _relaxation_ is the DP transition. We frame Floyd–Warshall as the archetype ($O(V^3)$ all-pairs shortest paths), Bellman–Ford as a DP over path length (the at-most-$K$-stops variant), DAG-DP in topological order ($O(V+E)$), and Warshall's transitive closure as the boolean analog.",{"module":287,"moduleNumber":202,"slug":288,"lessons":289},"Backtracking & Search","backtracking",[290,296,301],{"title":291,"path":292,"lessonNumber":6,"topics":293,"summary":295},"Backtracking: Subsets, Permutations & Combinations","\u002Falgorithms\u002Fbacktracking\u002Fbacktracking-fundamentals",[294],"Backtracking","Backtracking builds a solution one choice at a time and abandons a partial solution the moment it cannot be completed, exploring a state-space tree by depth-first search. We meet the universal choose\u002Fexplore\u002Fun-choose template, derive the canonical enumerations — subsets ($2^n$), permutations ($n!$), and combinations ($\\binom{n}{k}$) — handle duplicate elements by skipping equal siblings, and see how pruning turns an exponential search into a tractable one.",{"title":297,"path":298,"lessonNumber":18,"topics":299,"summary":300},"Constraint Search: N-Queens & Sudoku","\u002Falgorithms\u002Fbacktracking\u002Fconstraint-search",[294],"Many hard puzzles are **constraint satisfaction problems**: assign each variable a value from its domain so that every constraint holds. Backtracking solves them by assigning variables one at a time and rejecting a partial assignment the instant a constraint breaks. We make the rejection cheap — $O(1)$ conflict checks for N-Queens via column and diagonal sets — and prune harder with **forward checking**, **MRV** ordering, and **constraint propagation**, which is what lets an exponential search actually finish.",{"title":302,"path":303,"lessonNumber":24,"topics":304,"summary":305},"Branch & Bound and Meet in the Middle","\u002Falgorithms\u002Fbacktracking\u002Fbranch-and-bound",[294],"Plain backtracking prunes a search tree by _feasibility_; for _optimization_ problems we can prune far more aggressively by _value_. **Branch and bound** keeps the best complete solution found so far and discards any partial solution whose optimistic bound cannot beat it. **Meet in the middle** splits the instance in two, enumerates each half, and recombines by binary search — turning $2^n$ into $O(2^{n\u002F2}\\,n)$ and pushing exact search out to $n \\approx 40$.",{"module":307,"moduleNumber":283,"slug":308,"lessons":309},"Mathematical Algorithms","mathematical-algorithms",[310,316,321,326],{"title":311,"path":312,"lessonNumber":6,"topics":313,"summary":315},"Number Theory: GCD & Modular Arithmetic","\u002Falgorithms\u002Fmathematical-algorithms\u002Fnumber-theory-basics",[314],"Number Theory","This lesson opens the mathematical-algorithms module with the bedrock of computational number theory. We prove Euclid's recurrence $\\gcd(a,b)=\\gcd(b,\\,a\\bmod b)$ and its $O(\\log\\min(a,b))$ running time, extend it to recover Bézout coefficients $x,y$ with $ax+by=\\gcd(a,b)$, and build modular arithmetic on residue classes — including when a modular inverse $a^{-1}\\bmod m$ exists and how to compute it.",{"title":317,"path":318,"lessonNumber":18,"topics":319,"summary":320},"Modular Exponentiation & Primality","\u002Falgorithms\u002Fmathematical-algorithms\u002Fmodular-exponentiation-and-primality",[314],"Computing $a^n \\bmod m$ naively costs $n$ multiplications; **repeated squaring** does it in $O(\\log n)$ by reading the bits of the exponent. We use this routine to state **Fermat's little theorem** (and the modular inverse it gives), then to test primality — trial division, the probabilistic **Fermat** and **Miller–Rabin** tests, and the deterministic witness set that settles primality for every 64-bit number.",{"title":322,"path":323,"lessonNumber":24,"topics":324,"summary":325},"Sieves & Factorization","\u002Falgorithms\u002Fmathematical-algorithms\u002Fsieve-and-factorization",[314],"The previous lesson tested one number for primality; here we ask for _all_ primes up to $n$ at once. The **sieve of Eratosthenes** cross-cuts composites in $O(n\\log\\log n)$, and a **linear sieve** does it in $O(n)$ while recording each number's **smallest prime factor**, which then factors any $x \\le n$ in $O(\\log x)$. From a factorization $x = \\prod p_i^{e_i}$ the multiplicative functions $\\tau$, $\\sigma$, and Euler's totient $\\varphi$ fall out immediately.",{"title":327,"path":328,"lessonNumber":73,"topics":329,"summary":330},"Combinatorics & Counting","\u002Falgorithms\u002Fmathematical-algorithms\u002Fcombinatorics",[314],"Counting is the arithmetic of finite sets. We build up from permutations $n!$ and combinations $\\binom{n}{k}$, prove Pascal's rule by a bijection, and count multisets with stars and bars. The practical core is computing $\\binom{n}{k}\\bmod p$ in $O(1)$ from precomputed factorials and inverse factorials. We close with inclusion–exclusion and the Chinese Remainder Theorem, both of which lean on the modular inverse from the previous lesson.",{"module":332,"moduleNumber":333,"slug":334,"lessons":335},"Computational Geometry",11,"computational-geometry",[336,342,347],{"title":337,"path":338,"lessonNumber":6,"topics":339,"summary":341},"Geometric Primitives & Orientation","\u002Falgorithms\u002Fcomputational-geometry\u002Fgeometric-primitives",[340],"Geometry","Computational geometry is built on a single reliable primitive — the **orientation test**, a sign of a cross product that tells whether three points turn left, right, or lie collinear. From points-as-vectors and the dot and cross products we derive orientation, segment intersection, the shoelace area formula, and point-in-polygon tests, keeping all arithmetic **exact and integer** so that no floating-point rounding can corrupt a sign.",{"title":343,"path":344,"lessonNumber":18,"topics":345,"summary":346},"Convex Hull","\u002Falgorithms\u002Fcomputational-geometry\u002Fconvex-hull",[340],"The convex hull is the smallest convex polygon enclosing a point set — the rubber band snapped around the nails. We build it with Andrew's monotone chain, sorting by $(x,y)$ and sweeping a lower and upper hull while popping any non-left turn via the orientation primitive, in $O(n\\log n)$. A reduction from sorting shows that bound is optimal, and the hull unlocks diameter, smallest enclosing rectangle, and more through rotating calipers.",{"title":348,"path":349,"lessonNumber":24,"topics":350,"summary":351},"Sweep-Line Algorithms","\u002Falgorithms\u002Fcomputational-geometry\u002Fsweep-line",[340],"The plane-sweep paradigm turns a static $2$-D geometry problem into a dynamic $1$-D ordered-set problem: a vertical line sweeps left to right, stopping at an $x$-sorted **event queue** while a balanced-BST **status structure** tracks the objects it currently crosses, ordered by $y$. We derive Bentley–Ottmann segment intersection in $O((n+k)\\log n)$, recover closest-pair in $O(n\\log n)$, and reduce skyline, rectangle-area, and overlap problems to $\\pm1$ event sweeps.",{"module":353,"moduleNumber":354,"slug":355,"lessons":356},"Intractability",12,"intractability",[357,363,367],{"title":358,"path":359,"lessonNumber":6,"topics":360,"summary":362},"P, NP, and Reductions","\u002Falgorithms\u002Fintractability\u002Fp-np-reductions",[361],"NP-Completeness","Most problems we have met so far have fast algorithms. A vast and important family seemingly does not. This lesson builds the vocabulary for that divide: decision problems, the class $\\mathsf{P}$ of problems we can solve quickly, the class $\\mathsf{NP}$ of problems whose solutions we can _check_ quickly, and polynomial-time reductions, the tool that lets us compare the difficulty of two problems without solving either.",{"title":361,"path":364,"lessonNumber":18,"topics":365,"summary":366},"\u002Falgorithms\u002Fintractability\u002Fnp-completeness",[361],"Some problems in $\\mathsf{NP}$ are universally hardest: every other problem in $\\mathsf{NP}$ reduces to them. This lesson defines $\\mathsf{NP}$-hard and $\\mathsf{NP}$-complete, states the Cook–Levin theorem that anchors the whole edifice on **SAT**, walks the web of reductions that grows from it, and gives the four-step recipe for proving a brand-new problem $\\mathsf{NP}$-complete.",{"title":368,"path":369,"lessonNumber":24,"topics":370,"summary":373},"Coping with NP-Hardness","\u002Falgorithms\u002Fintractability\u002Fcoping-with-hardness",[371,372],"Approximation","Heuristics","Proving a problem $\\mathsf{NP}$-hard is the beginning, not the end. The world still needs answers. This lesson surveys the four honest responses to hardness: approximation algorithms with a provable ratio (worked through a 2-approximation for vertex cover), heuristics and local search, exact exponential methods like branch and bound, and exploiting special structure in the instances you actually face.",{"id":375,"title":114,"blurb":376,"body":377,"description":8500,"extension":8501,"meta":8502,"module":72,"navigation":8504,"path":115,"practice":8505,"rawbody":8519,"readingTime":8520,"seo":8525,"sources":8526,"status":8535,"stem":8536,"summary":119,"topics":8537,"__hash__":8538},"course\u002F01.algorithms\u002F04.data-structures\u002F07.fenwick-and-segment-trees.md","",{"type":378,"value":379,"toc":8490},"minimark",[380,928,1515,1540,1545,1699,1958,2545,2901,3107,3147,3373,3398,3507,3834,3907,4342,4345,4475,4687,4748,4906,4910,5326,5756,6214,6302,6512,6700,6738,6797,6868,7234,7326,7330,7401,7607,7637,7641,8423,8486],[381,382,383,384,440,441,445,446,449,450,490,491,507,508,535,536,561,562,449,568,675,676,746,747,771,772,798,799,823,824,860,861,885,886,746,890,927],"p",{},"We have an array ",[385,386,389],"span",{"className":387},[388],"katex",[385,390,394],{"className":391,"ariaHidden":393},[392],"katex-html","true",[385,395,398,403,409,414,418,423,428,431,435],{"className":396},[397],"base",[385,399],{"className":400,"style":402},[401],"strut","height:1em;vertical-align:-0.25em;",[385,404,408],{"className":405},[406,407],"mord","mathnormal","A",[385,410,413],{"className":411},[412],"mopen","[",[385,415,417],{"className":416},[406],"1",[385,419],{"className":420,"style":422},[421],"mspace","margin-right:0.1667em;",[385,424,427],{"className":425},[426],"minner","…",[385,429],{"className":430,"style":422},[421],[385,432,434],{"className":433},[406,407],"n",[385,436,439],{"className":437},[438],"mclose","]"," and two operations we want to interleave freely:\n",[442,443,444],"strong",{},"update"," a single entry, and ask for the ",[442,447,448],{},"sum of a contiguous range"," ",[385,451,453],{"className":452},[388],[385,454,456],{"className":455,"ariaHidden":393},[392],[385,457,459,462,465,468,473,476,479,482,487],{"className":458},[397],[385,460],{"className":461,"style":402},[401],[385,463,408],{"className":464},[406,407],[385,466,413],{"className":467},[412],[385,469,472],{"className":470,"style":471},[406,407],"margin-right:0.0197em;","l",[385,474],{"className":475,"style":422},[421],[385,477,427],{"className":478},[426],[385,480],{"className":481,"style":422},[421],[385,483,486],{"className":484,"style":485},[406,407],"margin-right:0.0278em;","r",[385,488,439],{"className":489},[438],".\nThe two obvious data structures each ace one operation and fail the other. Keep\n",[385,492,494],{"className":493},[388],[385,495,497],{"className":496,"ariaHidden":393},[392],[385,498,500,504],{"className":499},[397],[385,501],{"className":502,"style":503},[401],"height:0.6833em;",[385,505,408],{"className":506},[406,407]," as is and an update is a single write in ",[385,509,511],{"className":510},[388],[385,512,514],{"className":513,"ariaHidden":393},[392],[385,515,517,520,524,528,531],{"className":516},[397],[385,518],{"className":519,"style":402},[401],[385,521,523],{"className":522,"style":485},[406,407],"O",[385,525,527],{"className":526},[412],"(",[385,529,417],{"className":530},[406],[385,532,534],{"className":533},[438],")",", but a range sum scans the\nrange in ",[385,537,539],{"className":538},[388],[385,540,542],{"className":541,"ariaHidden":393},[392],[385,543,545,548,552,555,558],{"className":544},[397],[385,546],{"className":547,"style":402},[401],[385,549,551],{"className":550},[406],"Θ",[385,553,527],{"className":554},[412],[385,556,434],{"className":557},[406,407],[385,559,534],{"className":560},[438],". Precompute a ",[563,564,565],"a",{"href":126},[442,566,567],{},"prefix-sum array",[385,569,571],{"className":570},[388],[385,572,574,607,637,657],{"className":573,"ariaHidden":393},[392],[385,575,577,580,585,588,592,595,599,604],{"className":576},[397],[385,578],{"className":579,"style":402},[401],[385,581,584],{"className":582,"style":583},[406,407],"margin-right:0.1389em;","P",[385,586,413],{"className":587},[412],[385,589,591],{"className":590},[406,407],"i",[385,593,439],{"className":594},[438],[385,596],{"className":597,"style":598},[421],"margin-right:0.2778em;",[385,600,603],{"className":601},[602],"mrel","=",[385,605],{"className":606,"style":598},[421],[385,608,610,613,616,619,622,625,629,634],{"className":609},[397],[385,611],{"className":612,"style":402},[401],[385,614,408],{"className":615},[406,407],[385,617,413],{"className":618},[412],[385,620,417],{"className":621},[406],[385,623,439],{"className":624},[438],[385,626],{"className":627,"style":628},[421],"margin-right:0.2222em;",[385,630,633],{"className":631},[632],"mbin","+",[385,635],{"className":636,"style":628},[421],[385,638,640,644,648,651,654],{"className":639},[397],[385,641],{"className":642,"style":643},[401],"height:0.6667em;vertical-align:-0.0833em;",[385,645,647],{"className":646},[426],"⋯",[385,649],{"className":650,"style":628},[421],[385,652,633],{"className":653},[632],[385,655],{"className":656,"style":628},[421],[385,658,660,663,666,669,672],{"className":659},[397],[385,661],{"className":662,"style":402},[401],[385,664,408],{"className":665},[406,407],[385,667,413],{"className":668},[412],[385,670,591],{"className":671},[406,407],[385,673,439],{"className":674},[438],"\nand a range sum collapses to ",[385,677,679],{"className":678},[388],[385,680,682,710,734],{"className":681,"ariaHidden":393},[392],[385,683,685,688,691,694,697,700,703,707],{"className":684},[397],[385,686],{"className":687,"style":402},[401],[385,689,584],{"className":690,"style":583},[406,407],[385,692,413],{"className":693},[412],[385,695,486],{"className":696,"style":485},[406,407],[385,698,439],{"className":699},[438],[385,701],{"className":702,"style":628},[421],[385,704,706],{"className":705},[632],"−",[385,708],{"className":709,"style":628},[421],[385,711,713,716,719,722,725,728,731],{"className":712},[397],[385,714],{"className":715,"style":402},[401],[385,717,584],{"className":718,"style":583},[406,407],[385,720,413],{"className":721},[412],[385,723,472],{"className":724,"style":471},[406,407],[385,726],{"className":727,"style":628},[421],[385,729,706],{"className":730},[632],[385,732],{"className":733,"style":628},[421],[385,735,737,740,743],{"className":736},[397],[385,738],{"className":739,"style":402},[401],[385,741,417],{"className":742},[406],[385,744,439],{"className":745},[438]," in ",[385,748,750],{"className":749},[388],[385,751,753],{"className":752,"ariaHidden":393},[392],[385,754,756,759,762,765,768],{"className":755},[397],[385,757],{"className":758,"style":402},[401],[385,760,523],{"className":761,"style":485},[406,407],[385,763,527],{"className":764},[412],[385,766,417],{"className":767},[406],[385,769,534],{"className":770},[438],", but now a single update\nto ",[385,773,775],{"className":774},[388],[385,776,778],{"className":777,"ariaHidden":393},[392],[385,779,781,784,787,790,795],{"className":780},[397],[385,782],{"className":783,"style":402},[401],[385,785,408],{"className":786},[406,407],[385,788,413],{"className":789},[412],[385,791,794],{"className":792,"style":793},[406,407],"margin-right:0.0315em;","k",[385,796,439],{"className":797},[438]," disturbs every ",[385,800,802],{"className":801},[388],[385,803,805],{"className":804,"ariaHidden":393},[392],[385,806,808,811,814,817,820],{"className":807},[397],[385,809],{"className":810,"style":402},[401],[385,812,584],{"className":813,"style":583},[406,407],[385,815,413],{"className":816},[412],[385,818,591],{"className":819},[406,407],[385,821,439],{"className":822},[438]," with ",[385,825,827],{"className":826},[388],[385,828,830,850],{"className":829,"ariaHidden":393},[392],[385,831,833,837,840,843,847],{"className":832},[397],[385,834],{"className":835,"style":836},[401],"height:0.7955em;vertical-align:-0.136em;",[385,838,591],{"className":839},[406,407],[385,841],{"className":842,"style":598},[421],[385,844,846],{"className":845},[602],"≥",[385,848],{"className":849,"style":598},[421],[385,851,853,857],{"className":852},[397],[385,854],{"className":855,"style":856},[401],"height:0.6944em;",[385,858,794],{"className":859,"style":793},[406,407],", an ",[385,862,864],{"className":863},[388],[385,865,867],{"className":866,"ariaHidden":393},[392],[385,868,870,873,876,879,882],{"className":869},[397],[385,871],{"className":872,"style":402},[401],[385,874,551],{"className":875},[406],[385,877,527],{"className":878},[412],[385,880,434],{"className":881},[406,407],[385,883,534],{"className":884},[438]," repair. We want a\nstructure that splits the difference and does ",[887,888,889],"em",{},"both",[385,891,893],{"className":892},[388],[385,894,896],{"className":895,"ariaHidden":393},[392],[385,897,899,902,905,908,918,921,924],{"className":898},[397],[385,900],{"className":901,"style":402},[401],[385,903,523],{"className":904,"style":485},[406,407],[385,906,527],{"className":907},[412],[385,909,912],{"className":910},[911],"mop",[385,913,917],{"className":914,"style":916},[406,915],"mathrm","margin-right:0.0139em;","log",[385,919],{"className":920,"style":422},[421],[385,922,434],{"className":923},[406,407],[385,925,534],{"className":926},[438],".",[929,930,934,1282],"figure",{"className":931},[932,933],"tikz-figure","tikz-diagram-rendered",[935,936,941],"svg",{"xmlns":937,"width":938,"height":939,"viewBox":940},"http:\u002F\u002Fwww.w3.org\u002F2000\u002Fsvg","276.524","133.085","-75 -75 207.393 99.814",[942,943,946,956,960,968,971,978,981,988,991,997,1000,1007,1010,1017,1020,1027,1030,1037,1042,1085,1092,1095,1101,1104,1110,1113,1120,1132,1144,1156,1168,1180,1186,1215,1223],"g",{"stroke":944,"style":945},"currentColor","stroke-miterlimit:10;stroke-width:.4",[942,947,949],{"transform":948},"translate(-18.436 2.733)",[950,951],"path",{"d":952,"fill":944,"stroke":944,"className":953,"style":955},"M-41.663-62.112L-43.226-62.112Q-43.265-62.112-43.292-62.153Q-43.319-62.194-43.319-62.241L-43.296-62.342Q-43.253-62.401-43.198-62.409Q-42.874-62.409-42.632-62.553Q-42.487-62.639-42.370-62.792Q-42.253-62.944-42.206-62.983L-39.257-67.714Q-39.191-67.823-39.066-67.823L-38.984-67.823Q-38.870-67.823-38.847-67.714L-38.206-62.569Q-38.152-62.409-37.609-62.409Q-37.511-62.378-37.511-62.288L-37.534-62.182Q-37.569-62.124-37.632-62.112L-39.632-62.112Q-39.667-62.112-39.698-62.153Q-39.730-62.194-39.730-62.241L-39.702-62.342Q-39.671-62.397-39.609-62.409Q-39.015-62.409-38.984-62.616L-39.144-63.921L-41.304-63.921L-41.960-62.882Q-41.968-62.835-41.999-62.762Q-42.030-62.690-42.030-62.647Q-42.030-62.514-41.911-62.462Q-41.792-62.409-41.648-62.409Q-41.554-62.378-41.554-62.288L-41.577-62.182Q-41.609-62.124-41.663-62.112M-39.503-66.799L-41.120-64.217L-39.183-64.217",[954],"tikz-text","stroke-width:0.240",[950,957],{"fill":958,"d":959},"none","M-53.59-52.153h19.916V-72.07H-53.59Z",[942,961,963],{"transform":962},"translate(-2.312 2.9)",[950,964],{"d":965,"fill":944,"stroke":944,"className":966,"style":967},"M-42.731-62.833L-42.775-62.833Q-42.573-62.516-42.186-62.358Q-41.799-62.200-41.373-62.200Q-40.837-62.200-40.598-62.635Q-40.358-63.070-40.358-63.650Q-40.358-64.230-40.604-64.670Q-40.850-65.109-41.382-65.109L-42.002-65.109Q-42.028-65.109-42.061-65.138Q-42.094-65.166-42.094-65.188L-42.094-65.289Q-42.094-65.320-42.065-65.344Q-42.037-65.368-42.002-65.368L-41.483-65.408Q-41.017-65.408-40.771-65.880Q-40.525-66.353-40.525-66.871Q-40.525-67.298-40.738-67.572Q-40.951-67.847-41.373-67.847Q-41.716-67.847-42.041-67.717Q-42.366-67.588-42.551-67.333L-42.525-67.333Q-42.322-67.333-42.186-67.192Q-42.050-67.051-42.050-66.854Q-42.050-66.656-42.184-66.522Q-42.318-66.388-42.516-66.388Q-42.718-66.388-42.856-66.522Q-42.995-66.656-42.995-66.854Q-42.995-67.443-42.492-67.774Q-41.988-68.106-41.373-68.106Q-40.995-68.106-40.593-67.966Q-40.191-67.825-39.923-67.546Q-39.655-67.267-39.655-66.871Q-39.655-66.322-40.009-65.885Q-40.362-65.447-40.903-65.263Q-40.512-65.184-40.167-64.960Q-39.822-64.736-39.611-64.395Q-39.400-64.054-39.400-63.659Q-39.400-63.277-39.563-62.954Q-39.725-62.631-40.017-62.395Q-40.310-62.160-40.657-62.037Q-41.004-61.914-41.373-61.914Q-41.821-61.914-42.252-62.075Q-42.683-62.235-42.964-62.562Q-43.245-62.890-43.245-63.347Q-43.245-63.562-43.098-63.705Q-42.951-63.848-42.731-63.848Q-42.520-63.848-42.375-63.703Q-42.230-63.558-42.230-63.347Q-42.230-63.136-42.377-62.984Q-42.525-62.833-42.731-62.833",[954],"stroke-width:0.270",[950,969],{"fill":958,"d":970},"M-31.397-52.153h19.917V-72.07h-19.917Z",[942,972,974],{"transform":973},"translate(19.88 2.9)",[950,975],{"d":976,"fill":944,"stroke":944,"className":977,"style":967},"M-39.725-62.112L-42.757-62.112L-42.757-62.428Q-41.606-62.428-41.606-62.723L-41.606-67.447Q-42.094-67.214-42.815-67.214L-42.815-67.530Q-41.685-67.530-41.123-68.106L-40.978-68.106Q-40.943-68.106-40.910-68.073Q-40.877-68.040-40.877-68.005L-40.877-62.723Q-40.877-62.428-39.725-62.428",[954],[950,979],{"fill":958,"d":980},"M-9.204-52.153h19.917V-72.07H-9.204Z",[942,982,984],{"transform":983},"translate(42.074 2.9)",[950,985],{"d":986,"fill":944,"stroke":944,"className":987,"style":967},"M-40.934-63.589L-43.373-63.589L-43.373-63.905L-40.547-68.053Q-40.503-68.106-40.437-68.106L-40.283-68.106Q-40.244-68.106-40.211-68.073Q-40.178-68.040-40.178-67.996L-40.178-63.905L-39.277-63.905L-39.277-63.589L-40.178-63.589L-40.178-62.723Q-40.178-62.428-39.277-62.428L-39.277-62.112L-41.830-62.112L-41.830-62.428Q-41.470-62.428-41.202-62.483Q-40.934-62.538-40.934-62.723L-40.934-63.589M-40.877-67.078L-43.039-63.905L-40.877-63.905",[954],[950,989],{"fill":958,"d":990},"M12.989-52.153h19.917V-72.07H12.989Z",[942,992,994],{"transform":993},"translate(64.267 2.9)",[950,995],{"d":976,"fill":944,"stroke":944,"className":996,"style":967},[954],[950,998],{"fill":958,"d":999},"M35.182-52.153h19.917V-72.07H35.182Z",[942,1001,1003],{"transform":1002},"translate(86.46 2.9)",[950,1004],{"d":1005,"fill":944,"stroke":944,"className":1006,"style":967},"M-42.806-63.118Q-42.665-62.705-42.305-62.453Q-41.944-62.200-41.509-62.200Q-41.057-62.200-40.791-62.453Q-40.525-62.705-40.422-63.090Q-40.319-63.474-40.319-63.931Q-40.319-65.632-41.228-65.632Q-41.549-65.632-41.778-65.538Q-42.006-65.443-42.136-65.324Q-42.265-65.206-42.377-65.067Q-42.489-64.929-42.525-64.920L-42.608-64.920Q-42.652-64.920-42.683-64.951Q-42.714-64.982-42.714-65.030L-42.714-68.027Q-42.714-68.058-42.678-68.082Q-42.643-68.106-42.617-68.106L-42.577-68.106Q-41.944-67.816-41.272-67.816Q-40.600-67.816-39.958-68.106L-39.932-68.106Q-39.901-68.106-39.868-68.084Q-39.835-68.062-39.835-68.027L-39.835-67.926Q-39.835-67.922-39.844-67.904Q-39.853-67.886-39.853-67.882Q-40.169-67.487-40.639-67.265Q-41.110-67.043-41.606-67.043Q-42.015-67.043-42.397-67.153L-42.397-65.434Q-41.940-65.891-41.228-65.891Q-40.718-65.891-40.319-65.610Q-39.919-65.329-39.697-64.874Q-39.475-64.419-39.475-63.914Q-39.475-63.364-39.754-62.905Q-40.033-62.446-40.499-62.180Q-40.965-61.914-41.509-61.914Q-41.949-61.914-42.333-62.141Q-42.718-62.367-42.946-62.747Q-43.175-63.127-43.175-63.571Q-43.175-63.764-43.043-63.896Q-42.911-64.028-42.714-64.028Q-42.582-64.028-42.478-63.969Q-42.375-63.909-42.316-63.806Q-42.257-63.703-42.257-63.571Q-42.257-63.373-42.384-63.241Q-42.511-63.110-42.714-63.110Q-42.775-63.110-42.806-63.118",[954],[950,1008],{"fill":958,"d":1009},"M57.375-52.153h19.917V-72.07H57.375Z",[942,1011,1013],{"transform":1012},"translate(108.653 2.9)",[950,1014],{"d":1015,"fill":944,"stroke":944,"className":1016,"style":967},"M-42.569-62.499Q-42.322-62.200-41.716-62.200Q-41.435-62.200-41.195-62.338Q-40.956-62.477-40.778-62.699Q-40.600-62.921-40.490-63.184Q-40.257-63.760-40.257-64.876Q-40.424-64.511-40.729-64.287Q-41.035-64.063-41.417-64.063Q-41.953-64.063-42.369-64.342Q-42.784-64.621-43.015-65.087Q-43.245-65.553-43.245-66.080Q-43.245-66.493-43.098-66.862Q-42.951-67.232-42.687-67.508Q-42.424-67.785-42.054-67.946Q-41.685-68.106-41.272-68.106Q-40.714-68.106-40.340-67.814Q-39.967-67.522-39.763-67.058Q-39.558-66.594-39.479-66.078Q-39.400-65.562-39.400-65.030Q-39.400-64.314-39.668-63.591Q-39.936-62.868-40.459-62.391Q-40.982-61.914-41.707-61.914Q-42.257-61.914-42.634-62.163Q-43.012-62.411-43.012-62.929Q-43.012-63.048-42.955-63.151Q-42.898-63.255-42.797-63.314Q-42.696-63.373-42.569-63.373Q-42.384-63.373-42.261-63.241Q-42.138-63.110-42.138-62.929Q-42.138-62.754-42.265-62.626Q-42.393-62.499-42.569-62.499M-41.373-64.327Q-41.004-64.327-40.756-64.569Q-40.507-64.810-40.391-65.168Q-40.275-65.527-40.275-65.900Q-40.275-66.010-40.283-66.063Q-40.279-66.076-40.277-66.087Q-40.275-66.098-40.275-66.115Q-40.275-66.770-40.490-67.309Q-40.705-67.847-41.272-67.847Q-41.632-67.847-41.861-67.697Q-42.090-67.548-42.206-67.291Q-42.322-67.034-42.355-66.753Q-42.388-66.471-42.388-66.098L-42.388-66.063Q-42.388-65.737-42.362-65.450Q-42.336-65.162-42.237-64.903Q-42.138-64.643-41.927-64.485Q-41.716-64.327-41.373-64.327",[954],[950,1018],{"fill":958,"d":1019},"M79.568-52.153h19.917V-72.07H79.568Z",[942,1021,1023],{"transform":1022},"translate(130.846 2.9)",[950,1024],{"d":1025,"fill":944,"stroke":944,"className":1026,"style":967},"M-39.725-62.112L-43.175-62.112L-43.175-62.345Q-43.175-62.358-43.144-62.389L-41.690-63.966Q-41.224-64.463-40.971-64.768Q-40.718-65.074-40.527-65.485Q-40.336-65.896-40.336-66.335Q-40.336-66.924-40.659-67.357Q-40.982-67.790-41.562-67.790Q-41.826-67.790-42.072-67.680Q-42.318-67.570-42.494-67.383Q-42.670-67.196-42.766-66.946L-42.687-66.946Q-42.485-66.946-42.342-66.810Q-42.199-66.674-42.199-66.458Q-42.199-66.252-42.342-66.113Q-42.485-65.975-42.687-65.975Q-42.889-65.975-43.032-66.118Q-43.175-66.260-43.175-66.458Q-43.175-66.920-42.938-67.293Q-42.700-67.667-42.300-67.886Q-41.901-68.106-41.452-68.106Q-40.929-68.106-40.475-67.891Q-40.020-67.675-39.747-67.276Q-39.475-66.876-39.475-66.335Q-39.475-65.940-39.646-65.586Q-39.818-65.232-40.083-64.953Q-40.349-64.674-40.800-64.289Q-41.250-63.905-41.329-63.830L-42.353-62.868L-41.536-62.868Q-40.885-62.868-40.448-62.879Q-40.011-62.890-39.980-62.912Q-39.910-62.995-39.855-63.235Q-39.800-63.474-39.760-63.742L-39.475-63.742",[954],[950,1028],{"fill":958,"d":1029},"M101.761-52.153h19.917V-72.07h-19.917Z",[942,1031,1033],{"transform":1032},"translate(153.04 2.9)",[950,1034],{"d":1035,"fill":944,"stroke":944,"className":1036,"style":967},"M-41.320-61.914Q-42.054-61.914-42.485-62.395Q-42.916-62.877-43.080-63.569Q-43.245-64.261-43.245-65.008Q-43.245-65.737-42.953-66.460Q-42.661-67.183-42.107-67.645Q-41.553-68.106-40.806-68.106Q-40.310-68.106-39.974-67.840Q-39.637-67.574-39.637-67.091Q-39.637-66.911-39.765-66.783Q-39.892-66.656-40.068-66.656Q-40.248-66.656-40.378-66.781Q-40.507-66.906-40.507-67.091Q-40.507-67.205-40.450-67.309Q-40.393-67.412-40.292-67.471Q-40.191-67.530-40.068-67.530Q-40.064-67.530-40.059-67.528Q-40.055-67.526-40.050-67.522Q-40.165-67.689-40.373-67.768Q-40.582-67.847-40.806-67.847Q-41.250-67.847-41.608-67.546Q-41.966-67.245-42.155-66.792Q-42.388-66.186-42.388-65.153Q-42.217-65.518-41.916-65.746Q-41.615-65.975-41.228-65.975Q-40.824-65.975-40.479-65.808Q-40.134-65.641-39.897-65.360Q-39.659-65.078-39.530-64.716Q-39.400-64.353-39.400-63.949Q-39.400-63.404-39.644-62.938Q-39.888-62.472-40.327-62.193Q-40.767-61.914-41.320-61.914M-41.320-62.200Q-40.859-62.200-40.624-62.457Q-40.389-62.714-40.323-63.088Q-40.257-63.461-40.257-63.931L-40.257-63.966Q-40.257-64.454-40.314-64.819Q-40.371-65.184-40.600-65.447Q-40.828-65.711-41.272-65.711Q-41.641-65.711-41.892-65.467Q-42.142-65.223-42.257-64.859Q-42.371-64.494-42.371-64.147Q-42.371-64.028-42.362-63.966Q-42.362-63.949-42.364-63.938Q-42.366-63.927-42.371-63.914Q-42.371-63.263-42.133-62.732Q-41.896-62.200-41.320-62.200",[954],[950,1038],{"fill":958,"stroke":1039,"d":1040,"style":1041},"var(--tk-warn)","M-9.404-48.539v6.26h66.58v-6.26","stroke-width:.8",[942,1043,1044],{"fill":1039,"stroke":1039},[942,1045,1047,1055,1061,1067,1073,1079],{"fill":1039,"stroke":958,"fontSize":1046},"7",[942,1048,1050],{"transform":1049},"translate(34.792 28.78)",[950,1051],{"d":1052,"fill":1039,"stroke":1039,"className":1053,"style":1054},"M-41.568-62.112L-43.304-62.112L-43.304-62.392Q-43.075-62.392-42.926-62.426Q-42.778-62.461-42.778-62.601L-42.778-64.450Q-42.778-64.720-42.885-64.781Q-42.993-64.843-43.304-64.843L-43.304-65.123L-42.275-65.198L-42.275-64.491Q-42.145-64.799-41.903-64.998Q-41.660-65.198-41.342-65.198Q-41.123-65.198-40.952-65.074Q-40.781-64.949-40.781-64.737Q-40.781-64.600-40.881-64.501Q-40.980-64.402-41.113-64.402Q-41.250-64.402-41.349-64.501Q-41.448-64.600-41.448-64.737Q-41.448-64.877-41.349-64.976Q-41.639-64.976-41.839-64.780Q-42.039-64.583-42.132-64.289Q-42.224-63.995-42.224-63.715L-42.224-62.601Q-42.224-62.392-41.568-62.392L-41.568-62.112M-40.139-62.840Q-40.139-63.172-39.915-63.399Q-39.691-63.626-39.348-63.754Q-39.004-63.883-38.632-63.935Q-38.259-63.988-37.955-63.988L-37.955-64.241Q-37.955-64.446-38.062-64.626Q-38.170-64.805-38.351-64.908Q-38.532-65.010-38.741-65.010Q-39.148-65.010-39.383-64.918Q-39.295-64.881-39.248-64.797Q-39.202-64.713-39.202-64.611Q-39.202-64.515-39.248-64.436Q-39.295-64.358-39.375-64.313Q-39.455-64.269-39.544-64.269Q-39.694-64.269-39.795-64.366Q-39.896-64.464-39.896-64.611Q-39.896-65.233-38.741-65.233Q-38.529-65.233-38.279-65.169Q-38.030-65.106-37.828-64.987Q-37.627-64.867-37.500-64.682Q-37.374-64.498-37.374-64.255L-37.374-62.679Q-37.374-62.563-37.312-62.467Q-37.251-62.372-37.138-62.372Q-37.028-62.372-36.964-62.466Q-36.899-62.560-36.899-62.679L-36.899-63.127L-36.632-63.127L-36.632-62.679Q-36.632-62.409-36.859-62.244Q-37.087-62.078-37.367-62.078Q-37.575-62.078-37.712-62.232Q-37.849-62.385-37.873-62.601Q-38.020-62.334-38.302-62.189Q-38.584-62.044-38.908-62.044Q-39.185-62.044-39.469-62.119Q-39.753-62.194-39.946-62.373Q-40.139-62.553-40.139-62.840M-39.524-62.840Q-39.524-62.666-39.423-62.536Q-39.322-62.406-39.166-62.336Q-39.011-62.266-38.847-62.266Q-38.628-62.266-38.420-62.363Q-38.211-62.461-38.083-62.642Q-37.955-62.823-37.955-63.049L-37.955-63.777Q-38.279-63.777-38.645-63.686Q-39.011-63.595-39.267-63.383Q-39.524-63.172-39.524-62.840M-34.533-62.112L-36.167-62.112L-36.167-62.392Q-35.938-62.392-35.789-62.426Q-35.641-62.461-35.641-62.601L-35.641-64.450Q-35.641-64.720-35.748-64.781Q-35.856-64.843-36.167-64.843L-36.167-65.123L-35.108-65.198L-35.108-64.549Q-34.937-64.857-34.632-65.028Q-34.328-65.198-33.983-65.198Q-33.477-65.198-33.194-64.975Q-32.910-64.751-32.910-64.255L-32.910-62.601Q-32.910-62.464-32.761-62.428Q-32.612-62.392-32.387-62.392L-32.387-62.112L-34.017-62.112L-34.017-62.392Q-33.788-62.392-33.640-62.426Q-33.491-62.461-33.491-62.601L-33.491-64.241Q-33.491-64.576-33.611-64.776Q-33.730-64.976-34.045-64.976Q-34.315-64.976-34.549-64.840Q-34.783-64.703-34.921-64.469Q-35.060-64.235-35.060-63.961L-35.060-62.601Q-35.060-62.464-34.909-62.428Q-34.759-62.392-34.533-62.392L-34.533-62.112M-31.840-61.579Q-31.840-61.825-31.643-62.009Q-31.447-62.194-31.191-62.273Q-31.327-62.385-31.399-62.546Q-31.471-62.707-31.471-62.888Q-31.471-63.209-31.259-63.455Q-31.594-63.753-31.594-64.163Q-31.594-64.624-31.204-64.911Q-30.815-65.198-30.336-65.198Q-29.864-65.198-29.529-64.952Q-29.355-65.106-29.145-65.188Q-28.935-65.270-28.706-65.270Q-28.542-65.270-28.420-65.163Q-28.299-65.055-28.299-64.891Q-28.299-64.795-28.371-64.723Q-28.443-64.652-28.535-64.652Q-28.634-64.652-28.704-64.725Q-28.774-64.799-28.774-64.898Q-28.774-64.952-28.760-64.983L-28.754-64.997Q-28.747-65.017-28.738-65.028Q-28.730-65.038-28.726-65.045Q-29.082-65.045-29.369-64.822Q-29.082-64.529-29.082-64.163Q-29.082-63.848-29.266-63.616Q-29.451-63.383-29.740-63.255Q-30.028-63.127-30.336-63.127Q-30.538-63.127-30.729-63.177Q-30.921-63.226-31.098-63.336Q-31.191-63.209-31.191-63.066Q-31.191-62.884-31.062-62.749Q-30.934-62.614-30.750-62.614L-30.117-62.614Q-29.670-62.614-29.300-62.543Q-28.931-62.471-28.672-62.242Q-28.412-62.013-28.412-61.579Q-28.412-61.258-28.707-61.056Q-29.003-60.854-29.406-60.765Q-29.810-60.676-30.124-60.676Q-30.442-60.676-30.845-60.765Q-31.249-60.854-31.544-61.056Q-31.840-61.258-31.840-61.579M-31.385-61.579Q-31.385-61.350-31.167-61.201Q-30.948-61.052-30.656-60.984Q-30.363-60.916-30.124-60.916Q-29.960-60.916-29.752-60.952Q-29.543-60.987-29.336-61.068Q-29.130-61.148-28.998-61.276Q-28.866-61.404-28.866-61.579Q-28.866-61.931-29.247-62.025Q-29.629-62.119-30.131-62.119L-30.750-62.119Q-30.989-62.119-31.187-61.968Q-31.385-61.818-31.385-61.579M-30.336-63.366Q-29.670-63.366-29.670-64.163Q-29.670-64.963-30.336-64.963Q-31.006-64.963-31.006-64.163Q-31.006-63.366-30.336-63.366M-27.858-63.647Q-27.858-63.968-27.733-64.257Q-27.609-64.546-27.383-64.769Q-27.157-64.993-26.862-65.113Q-26.566-65.233-26.248-65.233Q-25.920-65.233-25.659-65.133Q-25.397-65.034-25.221-64.852Q-25.045-64.669-24.951-64.411Q-24.857-64.153-24.857-63.821Q-24.857-63.729-24.939-63.708L-27.195-63.708L-27.195-63.647Q-27.195-63.059-26.911-62.676Q-26.628-62.293-26.060-62.293Q-25.739-62.293-25.471-62.486Q-25.202-62.679-25.113-62.994Q-25.107-63.035-25.031-63.049L-24.939-63.049Q-24.857-63.025-24.857-62.953Q-24.857-62.946-24.864-62.919Q-24.977-62.522-25.348-62.283Q-25.718-62.044-26.142-62.044Q-26.580-62.044-26.980-62.252Q-27.380-62.461-27.619-62.828Q-27.858-63.195-27.858-63.647M-27.188-63.917L-25.373-63.917Q-25.373-64.194-25.471-64.446Q-25.568-64.699-25.766-64.855Q-25.965-65.010-26.248-65.010Q-26.525-65.010-26.739-64.852Q-26.952-64.693-27.070-64.438Q-27.188-64.183-27.188-63.917",[954],"stroke-width:0.210",[942,1056,1057],{"transform":1049},[950,1058],{"d":1059,"fill":1039,"stroke":1039,"className":1060,"style":1054},"M-21.554-62.119L-21.554-63.182Q-21.554-63.206-21.526-63.233Q-21.499-63.260-21.475-63.260L-21.366-63.260Q-21.301-63.260-21.287-63.202Q-21.191-62.768-20.945-62.517Q-20.699-62.266-20.285-62.266Q-19.944-62.266-19.691-62.399Q-19.438-62.532-19.438-62.840Q-19.438-62.997-19.532-63.112Q-19.626-63.226-19.764-63.295Q-19.903-63.363-20.070-63.401L-20.651-63.500Q-21.007-63.568-21.280-63.789Q-21.554-64.009-21.554-64.351Q-21.554-64.600-21.442-64.775Q-21.331-64.949-21.145-65.048Q-20.959-65.147-20.743-65.190Q-20.528-65.233-20.285-65.233Q-19.872-65.233-19.592-65.051L-19.376-65.226Q-19.366-65.229-19.359-65.231Q-19.352-65.233-19.342-65.233L-19.291-65.233Q-19.264-65.233-19.240-65.209Q-19.216-65.185-19.216-65.157L-19.216-64.310Q-19.216-64.289-19.240-64.262Q-19.264-64.235-19.291-64.235L-19.404-64.235Q-19.431-64.235-19.457-64.260Q-19.482-64.286-19.482-64.310Q-19.482-64.546-19.588-64.710Q-19.694-64.874-19.877-64.956Q-20.060-65.038-20.292-65.038Q-20.620-65.038-20.877-64.935Q-21.133-64.833-21.133-64.556Q-21.133-64.361-20.950-64.252Q-20.767-64.142-20.538-64.101L-19.964-63.995Q-19.718-63.947-19.504-63.819Q-19.291-63.691-19.154-63.488Q-19.017-63.284-19.017-63.035Q-19.017-62.522-19.383-62.283Q-19.749-62.044-20.285-62.044Q-20.781-62.044-21.113-62.338L-21.379-62.064Q-21.400-62.044-21.427-62.044L-21.475-62.044Q-21.499-62.044-21.526-62.071Q-21.554-62.098-21.554-62.119M-17.814-62.946L-17.814-64.450Q-17.814-64.720-17.922-64.781Q-18.030-64.843-18.341-64.843L-18.341-65.123L-17.233-65.198L-17.233-62.966L-17.233-62.946Q-17.233-62.666-17.182-62.522Q-17.131-62.379-16.989-62.322Q-16.847-62.266-16.560-62.266Q-16.307-62.266-16.102-62.406Q-15.897-62.546-15.781-62.772Q-15.664-62.997-15.664-63.247L-15.664-64.450Q-15.664-64.720-15.772-64.781Q-15.880-64.843-16.191-64.843L-16.191-65.123L-15.083-65.198L-15.083-62.785Q-15.083-62.594-15.030-62.512Q-14.977-62.430-14.877-62.411Q-14.776-62.392-14.560-62.392L-14.560-62.112L-15.637-62.044L-15.637-62.608Q-15.746-62.426-15.892-62.303Q-16.037-62.180-16.223-62.112Q-16.410-62.044-16.611-62.044Q-17.814-62.044-17.814-62.946M-12.291-62.112L-13.925-62.112L-13.925-62.392Q-13.696-62.392-13.547-62.426Q-13.398-62.461-13.398-62.601L-13.398-64.450Q-13.398-64.720-13.506-64.781Q-13.614-64.843-13.925-64.843L-13.925-65.123L-12.865-65.198L-12.865-64.549Q-12.694-64.857-12.390-65.028Q-12.086-65.198-11.741-65.198Q-11.341-65.198-11.064-65.058Q-10.787-64.918-10.701-64.570Q-10.534-64.863-10.235-65.031Q-9.936-65.198-9.591-65.198Q-9.085-65.198-8.801-64.975Q-8.517-64.751-8.517-64.255L-8.517-62.601Q-8.517-62.464-8.369-62.428Q-8.220-62.392-7.994-62.392L-7.994-62.112L-9.625-62.112L-9.625-62.392Q-9.399-62.392-9.249-62.428Q-9.098-62.464-9.098-62.601L-9.098-64.241Q-9.098-64.576-9.218-64.776Q-9.338-64.976-9.652-64.976Q-9.922-64.976-10.156-64.840Q-10.390-64.703-10.529-64.469Q-10.667-64.235-10.667-63.961L-10.667-62.601Q-10.667-62.464-10.519-62.428Q-10.370-62.392-10.144-62.392L-10.144-62.112L-11.775-62.112L-11.775-62.392Q-11.546-62.392-11.397-62.426Q-11.248-62.461-11.248-62.601L-11.248-64.241Q-11.248-64.576-11.368-64.776Q-11.488-64.976-11.802-64.976Q-12.072-64.976-12.306-64.840Q-12.540-64.703-12.679-64.469Q-12.817-64.235-12.817-63.961L-12.817-62.601Q-12.817-62.464-12.667-62.428Q-12.516-62.392-12.291-62.392L-12.291-62.112M-7.007-62.532Q-7.007-62.700-6.884-62.823Q-6.761-62.946-6.586-62.946Q-6.419-62.946-6.296-62.823Q-6.173-62.700-6.173-62.532Q-6.173-62.358-6.296-62.235Q-6.419-62.112-6.586-62.112Q-6.761-62.112-6.884-62.235Q-7.007-62.358-7.007-62.532M-7.007-64.716Q-7.007-64.884-6.884-65.007Q-6.761-65.130-6.586-65.130Q-6.419-65.130-6.296-65.007Q-6.173-64.884-6.173-64.716Q-6.173-64.542-6.296-64.419Q-6.419-64.296-6.586-64.296Q-6.761-64.296-6.884-64.419Q-7.007-64.542-7.007-64.716",[954],[942,1062,1063],{"transform":1049},[950,1064],{"d":1065,"fill":1039,"stroke":1039,"className":1066,"style":1054},"M-1.580-62.119L-1.580-63.182Q-1.580-63.206-1.552-63.233Q-1.525-63.260-1.501-63.260L-1.392-63.260Q-1.327-63.260-1.313-63.202Q-1.217-62.768-0.971-62.517Q-0.725-62.266-0.311-62.266Q0.030-62.266 0.283-62.399Q0.536-62.532 0.536-62.840Q0.536-62.997 0.442-63.112Q0.348-63.226 0.210-63.295Q0.071-63.363-0.096-63.401L-0.677-63.500Q-1.033-63.568-1.306-63.789Q-1.580-64.009-1.580-64.351Q-1.580-64.600-1.468-64.775Q-1.357-64.949-1.171-65.048Q-0.985-65.147-0.769-65.190Q-0.554-65.233-0.311-65.233Q0.102-65.233 0.382-65.051L0.598-65.226Q0.608-65.229 0.615-65.231Q0.622-65.233 0.632-65.233L0.683-65.233Q0.710-65.233 0.734-65.209Q0.758-65.185 0.758-65.157L0.758-64.310Q0.758-64.289 0.734-64.262Q0.710-64.235 0.683-64.235L0.570-64.235Q0.543-64.235 0.517-64.260Q0.492-64.286 0.492-64.310Q0.492-64.546 0.386-64.710Q0.280-64.874 0.097-64.956Q-0.086-65.038-0.318-65.038Q-0.646-65.038-0.903-64.935Q-1.159-64.833-1.159-64.556Q-1.159-64.361-0.976-64.252Q-0.793-64.142-0.564-64.101L0.010-63.995Q0.256-63.947 0.470-63.819Q0.683-63.691 0.820-63.488Q0.957-63.284 0.957-63.035Q0.957-62.522 0.591-62.283Q0.225-62.044-0.311-62.044Q-0.807-62.044-1.139-62.338L-1.405-62.064Q-1.426-62.044-1.453-62.044L-1.501-62.044Q-1.525-62.044-1.552-62.071Q-1.580-62.098-1.580-62.119M1.585-63.623Q1.585-63.951 1.721-64.252Q1.856-64.552 2.091-64.773Q2.327-64.993 2.631-65.113Q2.936-65.233 3.260-65.233Q3.766-65.233 4.115-65.130Q4.463-65.028 4.463-64.652Q4.463-64.505 4.366-64.404Q4.269-64.303 4.122-64.303Q3.968-64.303 3.869-64.402Q3.770-64.501 3.770-64.652Q3.770-64.840 3.910-64.932Q3.708-64.983 3.267-64.983Q2.912-64.983 2.683-64.787Q2.454-64.590 2.353-64.281Q2.252-63.971 2.252-63.623Q2.252-63.274 2.378-62.968Q2.505-62.662 2.760-62.478Q3.014-62.293 3.370-62.293Q3.592-62.293 3.776-62.377Q3.961-62.461 4.096-62.616Q4.231-62.772 4.289-62.980Q4.303-63.035 4.357-63.035L4.470-63.035Q4.501-63.035 4.523-63.011Q4.545-62.987 4.545-62.953L4.545-62.932Q4.460-62.645 4.272-62.447Q4.084-62.249 3.819-62.146Q3.554-62.044 3.260-62.044Q2.830-62.044 2.442-62.250Q2.054-62.457 1.820-62.820Q1.585-63.182 1.585-63.623M5.191-62.840Q5.191-63.172 5.415-63.399Q5.639-63.626 5.983-63.754Q6.326-63.883 6.699-63.935Q7.071-63.988 7.376-63.988L7.376-64.241Q7.376-64.446 7.268-64.626Q7.160-64.805 6.979-64.908Q6.798-65.010 6.589-65.010Q6.183-65.010 5.947-64.918Q6.036-64.881 6.082-64.797Q6.128-64.713 6.128-64.611Q6.128-64.515 6.082-64.436Q6.036-64.358 5.955-64.313Q5.875-64.269 5.786-64.269Q5.636-64.269 5.535-64.366Q5.434-64.464 5.434-64.611Q5.434-65.233 6.589-65.233Q6.801-65.233 7.051-65.169Q7.300-65.106 7.502-64.987Q7.704-64.867 7.830-64.682Q7.957-64.498 7.957-64.255L7.957-62.679Q7.957-62.563 8.018-62.467Q8.080-62.372 8.192-62.372Q8.302-62.372 8.367-62.466Q8.432-62.560 8.432-62.679L8.432-63.127L8.698-63.127L8.698-62.679Q8.698-62.409 8.471-62.244Q8.244-62.078 7.963-62.078Q7.755-62.078 7.618-62.232Q7.481-62.385 7.458-62.601Q7.311-62.334 7.029-62.189Q6.747-62.044 6.422-62.044Q6.145-62.044 5.861-62.119Q5.578-62.194 5.385-62.373Q5.191-62.553 5.191-62.840M5.807-62.840Q5.807-62.666 5.908-62.536Q6.008-62.406 6.164-62.336Q6.319-62.266 6.483-62.266Q6.702-62.266 6.911-62.363Q7.119-62.461 7.247-62.642Q7.376-62.823 7.376-63.049L7.376-63.777Q7.051-63.777 6.685-63.686Q6.319-63.595 6.063-63.383Q5.807-63.172 5.807-62.840M10.797-62.112L9.163-62.112L9.163-62.392Q9.392-62.392 9.541-62.426Q9.689-62.461 9.689-62.601L9.689-64.450Q9.689-64.720 9.582-64.781Q9.474-64.843 9.163-64.843L9.163-65.123L10.223-65.198L10.223-64.549Q10.394-64.857 10.698-65.028Q11.002-65.198 11.347-65.198Q11.853-65.198 12.137-64.975Q12.420-64.751 12.420-64.255L12.420-62.601Q12.420-62.464 12.569-62.428Q12.718-62.392 12.943-62.392L12.943-62.112L11.313-62.112L11.313-62.392Q11.542-62.392 11.691-62.426Q11.839-62.461 11.839-62.601L11.839-64.241Q11.839-64.576 11.720-64.776Q11.600-64.976 11.286-64.976Q11.016-64.976 10.782-64.840Q10.547-64.703 10.409-64.469Q10.271-64.235 10.271-63.961L10.271-62.601Q10.271-62.464 10.421-62.428Q10.571-62.392 10.797-62.392",[954],[942,1068,1069],{"transform":1049},[950,1070],{"d":1071,"fill":1039,"stroke":1039,"className":1072,"style":1054},"M16.416-64.477Q16.416-65.164 16.764-65.754Q17.113-66.343 17.708-66.689Q18.302-67.034 18.993-67.034Q19.683-67.034 20.278-66.689Q20.873-66.343 21.221-65.754Q21.570-65.164 21.570-64.477Q21.570-63.790 21.218-63.216Q20.866-62.642 20.273-62.307Q19.680-61.972 18.993-61.972Q18.480-61.972 18.012-62.165Q17.544-62.358 17.185-62.700Q16.826-63.042 16.621-63.503Q16.416-63.965 16.416-64.477M18.993-62.211Q19.451-62.211 19.800-62.399Q20.148-62.587 20.384-62.917Q20.620-63.247 20.731-63.647Q20.842-64.047 20.842-64.477Q20.842-65.062 20.639-65.600Q20.435-66.138 20.015-66.473Q19.594-66.808 18.993-66.808Q18.391-66.808 17.971-66.473Q17.551-66.138 17.347-65.600Q17.144-65.062 17.144-64.477Q17.144-63.896 17.351-63.375Q17.557-62.854 17.978-62.532Q18.398-62.211 18.993-62.211M17.851-63.975L17.585-63.975L17.585-65.051L17.851-65.051L17.851-64.816L20.135-64.816L20.135-65.051L20.401-65.051L20.401-63.975L20.135-63.975L20.135-64.211L17.851-64.211L17.851-63.975M24.510-60.362Q23.959-60.762 23.588-61.317Q23.218-61.873 23.036-62.519Q22.855-63.165 22.855-63.862Q22.855-64.375 22.956-64.870Q23.057-65.366 23.262-65.817Q23.467-66.268 23.780-66.660Q24.093-67.051 24.510-67.355Q24.520-67.359 24.527-67.360Q24.533-67.362 24.544-67.362L24.612-67.362Q24.646-67.362 24.668-67.338Q24.691-67.314 24.691-67.277Q24.691-67.232 24.663-67.215Q24.315-66.914 24.062-66.530Q23.809-66.145 23.657-65.704Q23.505-65.263 23.433-64.807Q23.361-64.351 23.361-63.862Q23.361-62.861 23.670-61.974Q23.980-61.087 24.663-60.502Q24.691-60.485 24.691-60.441Q24.691-60.403 24.668-60.379Q24.646-60.355 24.612-60.355L24.544-60.355Q24.537-60.359 24.528-60.360Q24.520-60.362 24.510-60.362",[954],[942,1074,1075],{"transform":1049},[950,1076],{"d":1077,"fill":1039,"stroke":1039,"className":1078,"style":1054},"M25.974-62.266Q25.974-62.314 25.981-62.338L26.493-64.402Q26.527-64.529 26.527-64.645Q26.527-64.785 26.474-64.881Q26.421-64.976 26.298-64.976Q26.076-64.976 25.975-64.749Q25.875-64.522 25.765-64.101Q25.755-64.036 25.693-64.036L25.584-64.036Q25.553-64.036 25.529-64.067Q25.505-64.098 25.505-64.122L25.505-64.149Q25.618-64.583 25.799-64.891Q25.981-65.198 26.312-65.198Q26.497-65.198 26.676-65.123Q26.856-65.048 26.968-64.908Q27.081-64.768 27.081-64.576Q27.228-64.761 27.409-64.901Q27.590-65.041 27.804-65.120Q28.018-65.198 28.250-65.198Q28.660-65.198 28.917-65.002Q29.173-64.805 29.173-64.409Q29.173-64.125 29.045-63.727Q28.917-63.329 28.718-62.840Q28.643-62.645 28.643-62.498Q28.643-62.266 28.811-62.266Q29.087-62.266 29.281-62.543Q29.474-62.820 29.552-63.141Q29.576-63.202 29.628-63.202L29.740-63.202Q29.774-63.202 29.797-63.173Q29.819-63.144 29.819-63.120Q29.819-63.107 29.812-63.093Q29.751-62.843 29.609-62.601Q29.467-62.358 29.258-62.201Q29.050-62.044 28.797-62.044Q28.513-62.044 28.312-62.206Q28.110-62.368 28.110-62.638Q28.110-62.755 28.158-62.888Q28.629-64.067 28.629-64.505Q28.629-64.713 28.534-64.845Q28.438-64.976 28.236-64.976Q27.481-64.976 26.955-63.961L26.541-62.300Q26.517-62.194 26.423-62.119Q26.329-62.044 26.213-62.044Q26.114-62.044 26.044-62.105Q25.974-62.167 25.974-62.266",[954],[942,1080,1081],{"transform":1049},[950,1082],{"d":1083,"fill":1039,"stroke":1039,"className":1084,"style":1054},"M30.770-60.355L30.701-60.355Q30.667-60.355 30.645-60.381Q30.623-60.406 30.623-60.441Q30.623-60.485 30.654-60.502Q31.009-60.806 31.259-61.196Q31.508-61.586 31.660-62.018Q31.812-62.450 31.882-62.919Q31.952-63.387 31.952-63.862Q31.952-64.341 31.882-64.807Q31.812-65.274 31.658-65.709Q31.505-66.145 31.253-66.533Q31.002-66.921 30.654-67.215Q30.623-67.232 30.623-67.277Q30.623-67.311 30.645-67.336Q30.667-67.362 30.701-67.362L30.770-67.362Q30.780-67.362 30.789-67.360Q30.797-67.359 30.807-67.355Q31.351-66.955 31.723-66.402Q32.096-65.848 32.277-65.202Q32.458-64.556 32.458-63.862Q32.458-63.161 32.277-62.514Q32.096-61.866 31.722-61.312Q31.347-60.758 30.807-60.362Q30.797-60.362 30.789-60.360Q30.780-60.359 30.770-60.355",[954],[942,1086,1088],{"transform":1087},"translate(-18.638 59.639)",[950,1089],{"d":1090,"fill":944,"stroke":944,"className":1091,"style":955},"M-40.984-62.112L-43.144-62.112Q-43.179-62.112-43.210-62.153Q-43.241-62.194-43.241-62.241L-43.218-62.342Q-43.206-62.393-43.120-62.409Q-42.679-62.409-42.521-62.448Q-42.362-62.487-42.319-62.714L-41.241-67.034Q-41.218-67.104-41.218-67.167Q-41.218-67.229-41.280-67.249Q-41.425-67.280-41.847-67.280Q-41.952-67.307-41.952-67.409L-41.921-67.510Q-41.913-67.557-41.831-67.577L-38.968-67.577Q-38.573-67.577-38.191-67.442Q-37.808-67.307-37.556-67.028Q-37.304-66.749-37.304-66.342Q-37.304-65.944-37.532-65.616Q-37.761-65.288-38.134-65.055Q-38.507-64.823-38.931-64.700Q-39.355-64.577-39.722-64.577L-41.105-64.577L-41.585-62.655Q-41.601-62.561-41.601-62.518Q-41.601-62.460-41.534-62.440Q-41.394-62.409-40.968-62.409Q-40.870-62.382-40.870-62.288L-40.898-62.182Q-40.905-62.132-40.984-62.112M-40.527-66.975L-41.058-64.846L-39.855-64.846Q-38.999-64.846-38.577-65.280Q-38.441-65.417-38.333-65.632Q-38.226-65.846-38.169-66.089Q-38.112-66.331-38.112-66.526Q-38.112-66.952-38.444-67.116Q-38.777-67.280-39.249-67.280L-40.120-67.280Q-40.292-67.280-40.355-67.266Q-40.417-67.253-40.450-67.194Q-40.484-67.135-40.527-66.975",[954],[950,1093],{"fill":958,"d":1094},"M-53.59 4.752h19.916v-19.917H-53.59Z",[942,1096,1098],{"transform":1097},"translate(-2.312 59.806)",[950,1099],{"d":965,"fill":944,"stroke":944,"className":1100,"style":967},[954],[950,1102],{"fill":958,"d":1103},"M-31.397 4.752h19.917v-19.917h-19.917Z",[942,1105,1107],{"transform":1106},"translate(19.88 59.806)",[950,1108],{"d":986,"fill":944,"stroke":944,"className":1109,"style":967},[954],[950,1111],{"fill":958,"d":1112},"M-9.204 4.752h19.917v-19.917H-9.204Z",[942,1114,1116],{"transform":1115},"translate(42.074 59.806)",[950,1117],{"d":1118,"fill":944,"stroke":944,"className":1119,"style":967},"M-43.245-63.479Q-43.245-64.037-42.885-64.450Q-42.525-64.863-41.949-65.135L-42.318-65.368Q-42.621-65.570-42.808-65.900Q-42.995-66.230-42.995-66.586Q-42.995-67.240-42.489-67.673Q-41.984-68.106-41.320-68.106Q-40.921-68.106-40.536-67.946Q-40.152-67.785-39.903-67.480Q-39.655-67.174-39.655-66.757Q-39.655-65.926-40.723-65.368L-40.169-65.021Q-39.822-64.793-39.611-64.424Q-39.400-64.054-39.400-63.641Q-39.400-63.263-39.558-62.945Q-39.716-62.626-39.993-62.393Q-40.270-62.160-40.613-62.037Q-40.956-61.914-41.320-61.914Q-41.786-61.914-42.232-62.101Q-42.678-62.288-42.962-62.642Q-43.245-62.995-43.245-63.479M-42.722-63.479Q-42.722-62.934-42.303-62.567Q-41.883-62.200-41.320-62.200Q-40.991-62.200-40.666-62.332Q-40.340-62.464-40.132-62.718Q-39.923-62.973-39.923-63.316Q-39.923-63.580-40.059-63.804Q-40.195-64.028-40.428-64.182L-41.672-64.964Q-42.133-64.727-42.428-64.340Q-42.722-63.953-42.722-63.479M-42.111-66.234L-40.995-65.531Q-40.771-65.654-40.567-65.843Q-40.362-66.032-40.242-66.265Q-40.121-66.498-40.121-66.757Q-40.121-67.065-40.292-67.315Q-40.464-67.566-40.740-67.706Q-41.017-67.847-41.329-67.847Q-41.778-67.847-42.151-67.601Q-42.525-67.355-42.525-66.928Q-42.525-66.524-42.111-66.234",[954],[942,1121,1123,1126],{"fill":1122},"var(--tk-soft-warn)",[950,1124],{"d":1125},"M12.989 4.752h19.917v-19.917H12.989Z",[942,1127,1129],{"transform":1128},"translate(64.267 59.806)",[950,1130],{"d":1015,"fill":944,"stroke":944,"className":1131,"style":967},[954],[942,1133,1134,1137],{"fill":1122},[950,1135],{"d":1136},"M35.182 4.752h19.917v-19.917H35.182Z",[942,1138,1140],{"transform":1139},"translate(84.147 59.806)",[950,1141],{"d":1142,"fill":944,"stroke":944,"className":1143,"style":967},"M-39.725-62.112L-42.757-62.112L-42.757-62.428Q-41.606-62.428-41.606-62.723L-41.606-67.447Q-42.094-67.214-42.815-67.214L-42.815-67.530Q-41.685-67.530-41.123-68.106L-40.978-68.106Q-40.943-68.106-40.910-68.073Q-40.877-68.040-40.877-68.005L-40.877-62.723Q-40.877-62.428-39.725-62.428L-39.725-62.112M-36.315-63.589L-38.754-63.589L-38.754-63.905L-35.928-68.053Q-35.884-68.106-35.819-68.106L-35.665-68.106Q-35.625-68.106-35.592-68.073Q-35.559-68.040-35.559-67.996L-35.559-63.905L-34.658-63.905L-34.658-63.589L-35.559-63.589L-35.559-62.723Q-35.559-62.428-34.658-62.428L-34.658-62.112L-37.212-62.112L-37.212-62.428Q-36.851-62.428-36.583-62.483Q-36.315-62.538-36.315-62.723L-36.315-63.589M-36.258-67.078L-38.420-63.905L-36.258-63.905",[954],[942,1145,1146,1149],{"fill":1122},[950,1147],{"d":1148},"M57.375 4.752h19.917v-19.917H57.375Z",[942,1150,1152],{"transform":1151},"translate(106.34 59.806)",[950,1153],{"d":1154,"fill":944,"stroke":944,"className":1155,"style":967},"M-39.725-62.112L-43.175-62.112L-43.175-62.345Q-43.175-62.358-43.144-62.389L-41.690-63.966Q-41.224-64.463-40.971-64.768Q-40.718-65.074-40.527-65.485Q-40.336-65.896-40.336-66.335Q-40.336-66.924-40.659-67.357Q-40.982-67.790-41.562-67.790Q-41.826-67.790-42.072-67.680Q-42.318-67.570-42.494-67.383Q-42.670-67.196-42.766-66.946L-42.687-66.946Q-42.485-66.946-42.342-66.810Q-42.199-66.674-42.199-66.458Q-42.199-66.252-42.342-66.113Q-42.485-65.975-42.687-65.975Q-42.889-65.975-43.032-66.118Q-43.175-66.260-43.175-66.458Q-43.175-66.920-42.938-67.293Q-42.700-67.667-42.300-67.886Q-41.901-68.106-41.452-68.106Q-40.929-68.106-40.475-67.891Q-40.020-67.675-39.747-67.276Q-39.475-66.876-39.475-66.335Q-39.475-65.940-39.646-65.586Q-39.818-65.232-40.083-64.953Q-40.349-64.674-40.800-64.289Q-41.250-63.905-41.329-63.830L-42.353-62.868L-41.536-62.868Q-40.885-62.868-40.448-62.879Q-40.011-62.890-39.980-62.912Q-39.910-62.995-39.855-63.235Q-39.800-63.474-39.760-63.742L-39.475-63.742L-39.725-62.112M-38.112-62.833L-38.156-62.833Q-37.954-62.516-37.568-62.358Q-37.181-62.200-36.755-62.200Q-36.218-62.200-35.979-62.635Q-35.739-63.070-35.739-63.650Q-35.739-64.230-35.986-64.670Q-36.232-65.109-36.763-65.109L-37.383-65.109Q-37.409-65.109-37.442-65.138Q-37.475-65.166-37.475-65.188L-37.475-65.289Q-37.475-65.320-37.447-65.344Q-37.418-65.368-37.383-65.368L-36.864-65.408Q-36.399-65.408-36.153-65.880Q-35.906-66.353-35.906-66.871Q-35.906-67.298-36.120-67.572Q-36.333-67.847-36.755-67.847Q-37.097-67.847-37.423-67.717Q-37.748-67.588-37.932-67.333L-37.906-67.333Q-37.704-67.333-37.568-67.192Q-37.431-67.051-37.431-66.854Q-37.431-66.656-37.565-66.522Q-37.699-66.388-37.897-66.388Q-38.099-66.388-38.238-66.522Q-38.376-66.656-38.376-66.854Q-38.376-67.443-37.873-67.774Q-37.370-68.106-36.755-68.106Q-36.377-68.106-35.975-67.966Q-35.572-67.825-35.304-67.546Q-35.036-67.267-35.036-66.871Q-35.036-66.322-35.390-65.885Q-35.744-65.447-36.284-65.263Q-35.893-65.184-35.548-64.960Q-35.203-64.736-34.992-64.395Q-34.781-64.054-34.781-63.659Q-34.781-63.277-34.944-62.954Q-35.107-62.631-35.399-62.395Q-35.691-62.160-36.038-62.037Q-36.385-61.914-36.755-61.914Q-37.203-61.914-37.633-62.075Q-38.064-62.235-38.345-62.562Q-38.627-62.890-38.627-63.347Q-38.627-63.562-38.479-63.705Q-38.332-63.848-38.112-63.848Q-37.902-63.848-37.757-63.703Q-37.611-63.558-37.611-63.347Q-37.611-63.136-37.759-62.984Q-37.906-62.833-38.112-62.833",[954],[942,1157,1158,1161],{"fill":1122},[950,1159],{"d":1160},"M79.568 4.752h19.917v-19.917H79.568Z",[942,1162,1164],{"transform":1163},"translate(128.534 59.806)",[950,1165],{"d":1166,"fill":944,"stroke":944,"className":1167,"style":967},"M-39.725-62.112L-43.175-62.112L-43.175-62.345Q-43.175-62.358-43.144-62.389L-41.690-63.966Q-41.224-64.463-40.971-64.768Q-40.718-65.074-40.527-65.485Q-40.336-65.896-40.336-66.335Q-40.336-66.924-40.659-67.357Q-40.982-67.790-41.562-67.790Q-41.826-67.790-42.072-67.680Q-42.318-67.570-42.494-67.383Q-42.670-67.196-42.766-66.946L-42.687-66.946Q-42.485-66.946-42.342-66.810Q-42.199-66.674-42.199-66.458Q-42.199-66.252-42.342-66.113Q-42.485-65.975-42.687-65.975Q-42.889-65.975-43.032-66.118Q-43.175-66.260-43.175-66.458Q-43.175-66.920-42.938-67.293Q-42.700-67.667-42.300-67.886Q-41.901-68.106-41.452-68.106Q-40.929-68.106-40.475-67.891Q-40.020-67.675-39.747-67.276Q-39.475-66.876-39.475-66.335Q-39.475-65.940-39.646-65.586Q-39.818-65.232-40.083-64.953Q-40.349-64.674-40.800-64.289Q-41.250-63.905-41.329-63.830L-42.353-62.868L-41.536-62.868Q-40.885-62.868-40.448-62.879Q-40.011-62.890-39.980-62.912Q-39.910-62.995-39.855-63.235Q-39.800-63.474-39.760-63.742L-39.475-63.742L-39.725-62.112M-38.187-63.118Q-38.047-62.705-37.686-62.453Q-37.326-62.200-36.891-62.200Q-36.438-62.200-36.172-62.453Q-35.906-62.705-35.803-63.090Q-35.700-63.474-35.700-63.931Q-35.700-65.632-36.610-65.632Q-36.930-65.632-37.159-65.538Q-37.387-65.443-37.517-65.324Q-37.647-65.206-37.759-65.067Q-37.871-64.929-37.906-64.920L-37.989-64.920Q-38.033-64.920-38.064-64.951Q-38.095-64.982-38.095-65.030L-38.095-68.027Q-38.095-68.058-38.060-68.082Q-38.025-68.106-37.998-68.106L-37.959-68.106Q-37.326-67.816-36.653-67.816Q-35.981-67.816-35.340-68.106L-35.313-68.106Q-35.282-68.106-35.249-68.084Q-35.216-68.062-35.216-68.027L-35.216-67.926Q-35.216-67.922-35.225-67.904Q-35.234-67.886-35.234-67.882Q-35.550-67.487-36.021-67.265Q-36.491-67.043-36.987-67.043Q-37.396-67.043-37.778-67.153L-37.778-65.434Q-37.321-65.891-36.610-65.891Q-36.100-65.891-35.700-65.610Q-35.300-65.329-35.078-64.874Q-34.856-64.419-34.856-63.914Q-34.856-63.364-35.135-62.905Q-35.414-62.446-35.880-62.180Q-36.346-61.914-36.891-61.914Q-37.330-61.914-37.715-62.141Q-38.099-62.367-38.328-62.747Q-38.556-63.127-38.556-63.571Q-38.556-63.764-38.424-63.896Q-38.293-64.028-38.095-64.028Q-37.963-64.028-37.860-63.969Q-37.757-63.909-37.697-63.806Q-37.638-63.703-37.638-63.571Q-37.638-63.373-37.765-63.241Q-37.893-63.110-38.095-63.110Q-38.156-63.110-38.187-63.118",[954],[942,1169,1170,1173],{"fill":1122},[950,1171],{"d":1172},"M101.761 4.752h19.917v-19.917h-19.917Z",[942,1174,1176],{"transform":1175},"translate(150.727 59.806)",[950,1177],{"d":1178,"fill":944,"stroke":944,"className":1179,"style":967},"M-42.731-62.833L-42.775-62.833Q-42.573-62.516-42.186-62.358Q-41.799-62.200-41.373-62.200Q-40.837-62.200-40.598-62.635Q-40.358-63.070-40.358-63.650Q-40.358-64.230-40.604-64.670Q-40.850-65.109-41.382-65.109L-42.002-65.109Q-42.028-65.109-42.061-65.138Q-42.094-65.166-42.094-65.188L-42.094-65.289Q-42.094-65.320-42.065-65.344Q-42.037-65.368-42.002-65.368L-41.483-65.408Q-41.017-65.408-40.771-65.880Q-40.525-66.353-40.525-66.871Q-40.525-67.298-40.738-67.572Q-40.951-67.847-41.373-67.847Q-41.716-67.847-42.041-67.717Q-42.366-67.588-42.551-67.333L-42.525-67.333Q-42.322-67.333-42.186-67.192Q-42.050-67.051-42.050-66.854Q-42.050-66.656-42.184-66.522Q-42.318-66.388-42.516-66.388Q-42.718-66.388-42.856-66.522Q-42.995-66.656-42.995-66.854Q-42.995-67.443-42.492-67.774Q-41.988-68.106-41.373-68.106Q-40.995-68.106-40.593-67.966Q-40.191-67.825-39.923-67.546Q-39.655-67.267-39.655-66.871Q-39.655-66.322-40.009-65.885Q-40.362-65.447-40.903-65.263Q-40.512-65.184-40.167-64.960Q-39.822-64.736-39.611-64.395Q-39.400-64.054-39.400-63.659Q-39.400-63.277-39.563-62.954Q-39.725-62.631-40.017-62.395Q-40.310-62.160-40.657-62.037Q-41.004-61.914-41.373-61.914Q-41.821-61.914-42.252-62.075Q-42.683-62.235-42.964-62.562Q-43.245-62.890-43.245-63.347Q-43.245-63.562-43.098-63.705Q-42.951-63.848-42.731-63.848Q-42.520-63.848-42.375-63.703Q-42.230-63.558-42.230-63.347Q-42.230-63.136-42.377-62.984Q-42.525-62.833-42.731-62.833M-35.107-62.112L-38.139-62.112L-38.139-62.428Q-36.987-62.428-36.987-62.723L-36.987-67.447Q-37.475-67.214-38.196-67.214L-38.196-67.530Q-37.067-67.530-36.504-68.106L-36.359-68.106Q-36.324-68.106-36.291-68.073Q-36.258-68.040-36.258-68.005L-36.258-62.723Q-36.258-62.428-35.107-62.428",[954],[942,1181,1184],{"stroke":1182,"style":1183},"var(--tk-accent)","stroke-width:1.2",[950,1185],{"fill":958,"d":1125},[942,1187,1188],{"fill":1182,"stroke":1182},[942,1189,1190,1197,1203,1209],{"fill":1182,"stroke":958,"fontSize":1046},[942,1191,1193],{"transform":1192},"translate(45.902 37.316)",[950,1194],{"d":1195,"fill":1182,"stroke":1182,"className":1196,"style":1054},"M-42.743-62.946L-42.743-64.450Q-42.743-64.720-42.851-64.781Q-42.959-64.843-43.270-64.843L-43.270-65.123L-42.162-65.198L-42.162-62.966L-42.162-62.946Q-42.162-62.666-42.111-62.522Q-42.060-62.379-41.918-62.322Q-41.776-62.266-41.489-62.266Q-41.236-62.266-41.031-62.406Q-40.826-62.546-40.710-62.772Q-40.593-62.997-40.593-63.247L-40.593-64.450Q-40.593-64.720-40.701-64.781Q-40.809-64.843-41.120-64.843L-41.120-65.123L-40.012-65.198L-40.012-62.785Q-40.012-62.594-39.959-62.512Q-39.906-62.430-39.806-62.411Q-39.705-62.392-39.489-62.392L-39.489-62.112L-40.566-62.044L-40.566-62.608Q-40.675-62.426-40.821-62.303Q-40.966-62.180-41.152-62.112Q-41.339-62.044-41.540-62.044Q-42.743-62.044-42.743-62.946M-37.257-60.755L-38.888-60.755L-38.888-61.035Q-38.659-61.035-38.510-61.070Q-38.361-61.104-38.361-61.244L-38.361-64.590Q-38.361-64.761-38.498-64.802Q-38.635-64.843-38.888-64.843L-38.888-65.123L-37.808-65.198L-37.808-64.792Q-37.586-64.993-37.299-65.096Q-37.011-65.198-36.704-65.198Q-36.277-65.198-35.913-64.985Q-35.549-64.771-35.335-64.407Q-35.121-64.043-35.121-63.623Q-35.121-63.178-35.361-62.814Q-35.600-62.450-35.993-62.247Q-36.386-62.044-36.830-62.044Q-37.097-62.044-37.345-62.144Q-37.592-62.245-37.780-62.426L-37.780-61.244Q-37.780-61.107-37.632-61.071Q-37.483-61.035-37.257-61.035L-37.257-60.755M-37.780-64.443L-37.780-62.833Q-37.647-62.580-37.404-62.423Q-37.162-62.266-36.885-62.266Q-36.557-62.266-36.304-62.467Q-36.051-62.669-35.918-62.987Q-35.784-63.305-35.784-63.623Q-35.784-63.852-35.849-64.081Q-35.914-64.310-36.042-64.508Q-36.171-64.706-36.365-64.826Q-36.560-64.945-36.793-64.945Q-37.087-64.945-37.355-64.816Q-37.623-64.686-37.780-64.443",[954],[942,1198,1199],{"transform":1192},[950,1200],{"d":1201,"fill":1182,"stroke":1182,"className":1202,"style":1054},"M-34.269-63.623Q-34.269-63.961-34.128-64.252Q-33.988-64.542-33.744-64.756Q-33.500-64.969-33.195-65.084Q-32.891-65.198-32.566-65.198Q-32.296-65.198-32.033-65.099Q-31.770-65-31.579-64.822L-31.579-66.220Q-31.579-66.490-31.686-66.552Q-31.794-66.613-32.105-66.613L-32.105-66.894L-31.028-66.969L-31.028-62.785Q-31.028-62.597-30.974-62.514Q-30.919-62.430-30.818-62.411Q-30.717-62.392-30.502-62.392L-30.502-62.112L-31.609-62.044L-31.609-62.461Q-32.026-62.044-32.652-62.044Q-33.083-62.044-33.455-62.256Q-33.828-62.467-34.048-62.828Q-34.269-63.189-34.269-63.623M-32.594-62.266Q-32.385-62.266-32.199-62.338Q-32.013-62.409-31.859-62.546Q-31.705-62.683-31.609-62.861L-31.609-64.470Q-31.695-64.617-31.840-64.737Q-31.985-64.857-32.155-64.916Q-32.324-64.976-32.505-64.976Q-33.065-64.976-33.334-64.587Q-33.602-64.197-33.602-63.616Q-33.602-63.045-33.368-62.655Q-33.134-62.266-32.594-62.266M-29.794-62.840Q-29.794-63.172-29.571-63.399Q-29.347-63.626-29.003-63.754Q-28.660-63.883-28.287-63.935Q-27.915-63.988-27.610-63.988L-27.610-64.241Q-27.610-64.446-27.718-64.626Q-27.826-64.805-28.007-64.908Q-28.188-65.010-28.396-65.010Q-28.803-65.010-29.039-64.918Q-28.950-64.881-28.904-64.797Q-28.858-64.713-28.858-64.611Q-28.858-64.515-28.904-64.436Q-28.950-64.358-29.031-64.313Q-29.111-64.269-29.200-64.269Q-29.350-64.269-29.451-64.366Q-29.552-64.464-29.552-64.611Q-29.552-65.233-28.396-65.233Q-28.185-65.233-27.935-65.169Q-27.686-65.106-27.484-64.987Q-27.282-64.867-27.156-64.682Q-27.029-64.498-27.029-64.255L-27.029-62.679Q-27.029-62.563-26.968-62.467Q-26.906-62.372-26.793-62.372Q-26.684-62.372-26.619-62.466Q-26.554-62.560-26.554-62.679L-26.554-63.127L-26.288-63.127L-26.288-62.679Q-26.288-62.409-26.515-62.244Q-26.742-62.078-27.022-62.078Q-27.231-62.078-27.368-62.232Q-27.504-62.385-27.528-62.601Q-27.675-62.334-27.957-62.189Q-28.239-62.044-28.564-62.044Q-28.841-62.044-29.125-62.119Q-29.408-62.194-29.601-62.373Q-29.794-62.553-29.794-62.840M-29.179-62.840Q-29.179-62.666-29.078-62.536Q-28.978-62.406-28.822-62.336Q-28.666-62.266-28.502-62.266Q-28.284-62.266-28.075-62.363Q-27.867-62.461-27.739-62.642Q-27.610-62.823-27.610-63.049L-27.610-63.777Q-27.935-63.777-28.301-63.686Q-28.666-63.595-28.923-63.383Q-29.179-63.172-29.179-62.840M-25.344-62.953L-25.344-64.850L-25.983-64.850L-25.983-65.072Q-25.666-65.072-25.448-65.282Q-25.231-65.492-25.131-65.802Q-25.030-66.111-25.030-66.419L-24.763-66.419L-24.763-65.130L-23.687-65.130L-23.687-64.850L-24.763-64.850L-24.763-62.966Q-24.763-62.690-24.659-62.491Q-24.555-62.293-24.295-62.293Q-24.138-62.293-24.032-62.397Q-23.926-62.502-23.876-62.655Q-23.827-62.809-23.827-62.966L-23.827-63.380L-23.560-63.380L-23.560-62.953Q-23.560-62.727-23.659-62.517Q-23.758-62.307-23.943-62.175Q-24.127-62.044-24.356-62.044Q-24.794-62.044-25.069-62.281Q-25.344-62.519-25.344-62.953M-22.791-63.647Q-22.791-63.968-22.666-64.257Q-22.541-64.546-22.316-64.769Q-22.090-64.993-21.795-65.113Q-21.499-65.233-21.181-65.233Q-20.853-65.233-20.592-65.133Q-20.330-65.034-20.154-64.852Q-19.978-64.669-19.884-64.411Q-19.790-64.153-19.790-63.821Q-19.790-63.729-19.872-63.708L-22.128-63.708L-22.128-63.647Q-22.128-63.059-21.844-62.676Q-21.561-62.293-20.993-62.293Q-20.672-62.293-20.404-62.486Q-20.135-62.679-20.046-62.994Q-20.040-63.035-19.964-63.049L-19.872-63.049Q-19.790-63.025-19.790-62.953Q-19.790-62.946-19.797-62.919Q-19.910-62.522-20.281-62.283Q-20.651-62.044-21.075-62.044Q-21.513-62.044-21.913-62.252Q-22.312-62.461-22.552-62.828Q-22.791-63.195-22.791-63.647M-22.121-63.917L-20.306-63.917Q-20.306-64.194-20.404-64.446Q-20.501-64.699-20.699-64.855Q-20.897-65.010-21.181-65.010Q-21.458-65.010-21.672-64.852Q-21.885-64.693-22.003-64.438Q-22.121-64.183-22.121-63.917",[954],[942,1204,1205],{"transform":1192},[950,1206],{"d":1207,"fill":1182,"stroke":1182,"className":1208,"style":1054},"M-14.908-62.112L-16.323-62.112Q-16.357-62.112-16.381-62.148Q-16.405-62.184-16.405-62.225L-16.378-62.338Q-16.350-62.385-16.303-62.392Q-15.742-62.392-15.448-62.833Q-15.445-62.840-15.431-62.852Q-15.417-62.864-15.410-62.874L-12.765-67.007Q-12.707-67.102-12.597-67.102L-12.509-67.102Q-12.409-67.102-12.389-67.007L-11.763-62.526Q-11.709-62.392-11.213-62.392Q-11.128-62.365-11.128-62.286L-11.155-62.174Q-11.182-62.122-11.234-62.112L-13.052-62.112Q-13.086-62.112-13.112-62.148Q-13.138-62.184-13.138-62.225L-13.110-62.338Q-13.066-62.385-13.025-62.392Q-12.529-62.392-12.464-62.553L-12.625-63.681L-14.600-63.681L-15.175-62.785Q-15.229-62.666-15.229-62.594Q-15.229-62.392-14.888-62.392Q-14.802-62.365-14.802-62.286L-14.829-62.174Q-14.860-62.119-14.908-62.112M-12.984-66.207L-14.419-63.961L-12.669-63.961",[954],[942,1210,1211],{"transform":1192},[950,1212],{"d":1213,"fill":1182,"stroke":1182,"className":1214,"style":1054},"M-8.762-60.362L-9.838-60.362L-9.838-67.362L-8.762-67.362L-8.762-67.020L-9.497-67.020L-9.497-60.704L-8.762-60.704L-8.762-60.362M-7.733-62.659Q-7.613-62.502-7.422-62.403Q-7.230-62.303-7.015-62.264Q-6.800-62.225-6.578-62.225Q-6.280-62.225-6.085-62.380Q-5.891-62.536-5.800-62.790Q-5.709-63.045-5.709-63.329Q-5.709-63.623-5.802-63.874Q-5.894-64.125-6.092-64.281Q-6.291-64.436-6.584-64.436L-7.101-64.436Q-7.128-64.436-7.154-64.462Q-7.179-64.487-7.179-64.511L-7.179-64.583Q-7.179-64.614-7.154-64.636Q-7.128-64.658-7.101-64.658L-6.660-64.689Q-6.297-64.689-6.077-65.046Q-5.856-65.404-5.856-65.793Q-5.856-66.121-6.051-66.325Q-6.246-66.528-6.578-66.528Q-6.865-66.528-7.118-66.444Q-7.371-66.361-7.535-66.173Q-7.388-66.173-7.287-66.058Q-7.186-65.944-7.186-65.793Q-7.186-65.643-7.292-65.533Q-7.398-65.424-7.555-65.424Q-7.716-65.424-7.825-65.533Q-7.935-65.643-7.935-65.793Q-7.935-66.118-7.726-66.337Q-7.518-66.555-7.201-66.658Q-6.885-66.760-6.578-66.760Q-6.260-66.760-5.932-66.656Q-5.604-66.552-5.376-66.330Q-5.149-66.108-5.149-65.793Q-5.149-65.359-5.436-65.034Q-5.723-64.710-6.157-64.563Q-5.846-64.498-5.566-64.332Q-5.286-64.166-5.108-63.908Q-4.930-63.650-4.930-63.329Q-4.930-62.919-5.175-62.609Q-5.419-62.300-5.800-62.136Q-6.181-61.972-6.578-61.972Q-6.947-61.972-7.304-62.085Q-7.661-62.197-7.906-62.447Q-8.150-62.696-8.150-63.066Q-8.150-63.237-8.034-63.349Q-7.917-63.462-7.747-63.462Q-7.637-63.462-7.547-63.411Q-7.456-63.360-7.401-63.267Q-7.347-63.175-7.347-63.066Q-7.347-62.898-7.459-62.779Q-7.572-62.659-7.733-62.659M-3.245-60.362L-4.322-60.362L-4.322-60.704L-3.587-60.704L-3.587-67.020L-4.322-67.020L-4.322-67.362L-3.245-67.362",[954],[942,1216,1217,1220],{"fill":1182,"stroke":1182},[950,1218],{"fill":958,"d":1219},"M22.947-19.432v2.068",[950,1221],{"stroke":958,"d":1222},"m22.947-15.364 1.6-3.2-1.6 1.2-1.6-1.2",[942,1224,1225],{"fill":1039,"stroke":1039},[942,1226,1227,1234,1240,1246,1252,1258,1264,1270,1276],{"fill":1039,"stroke":958,"fontSize":1046},[942,1228,1230],{"transform":1229},"translate(65.824 78.572)",[950,1231],{"d":1232,"fill":1039,"stroke":1039,"className":1233,"style":1054},"M-41.568-62.112L-43.304-62.112L-43.304-62.392Q-43.075-62.392-42.926-62.426Q-42.778-62.461-42.778-62.601L-42.778-64.450Q-42.778-64.720-42.885-64.781Q-42.993-64.843-43.304-64.843L-43.304-65.123L-42.275-65.198L-42.275-64.491Q-42.145-64.799-41.903-64.998Q-41.660-65.198-41.342-65.198Q-41.123-65.198-40.952-65.074Q-40.781-64.949-40.781-64.737Q-40.781-64.600-40.881-64.501Q-40.980-64.402-41.113-64.402Q-41.250-64.402-41.349-64.501Q-41.448-64.600-41.448-64.737Q-41.448-64.877-41.349-64.976Q-41.639-64.976-41.839-64.780Q-42.039-64.583-42.132-64.289Q-42.224-63.995-42.224-63.715L-42.224-62.601Q-42.224-62.392-41.568-62.392L-41.568-62.112M-38.580-62.112L-40.132-62.112L-40.132-62.392Q-39.906-62.392-39.758-62.426Q-39.609-62.461-39.609-62.601L-39.609-64.450Q-39.609-64.638-39.657-64.722Q-39.705-64.805-39.802-64.824Q-39.900-64.843-40.111-64.843L-40.111-65.123L-39.055-65.198L-39.055-62.601Q-39.055-62.461-38.924-62.426Q-38.792-62.392-38.580-62.392L-38.580-62.112M-39.852-66.419Q-39.852-66.590-39.729-66.709Q-39.606-66.829-39.435-66.829Q-39.267-66.829-39.144-66.709Q-39.021-66.590-39.021-66.419Q-39.021-66.244-39.144-66.121Q-39.267-65.998-39.435-65.998Q-39.606-65.998-39.729-66.121Q-39.852-66.244-39.852-66.419M-36.290-60.755L-37.921-60.755L-37.921-61.035Q-37.692-61.035-37.543-61.070Q-37.394-61.104-37.394-61.244L-37.394-64.590Q-37.394-64.761-37.531-64.802Q-37.668-64.843-37.921-64.843L-37.921-65.123L-36.840-65.198L-36.840-64.792Q-36.618-64.993-36.331-65.096Q-36.044-65.198-35.736-65.198Q-35.309-65.198-34.945-64.985Q-34.581-64.771-34.368-64.407Q-34.154-64.043-34.154-63.623Q-34.154-63.178-34.393-62.814Q-34.632-62.450-35.026-62.247Q-35.419-62.044-35.863-62.044Q-36.130-62.044-36.377-62.144Q-36.625-62.245-36.813-62.426L-36.813-61.244Q-36.813-61.107-36.664-61.071Q-36.516-61.035-36.290-61.035L-36.290-60.755M-36.813-64.443L-36.813-62.833Q-36.680-62.580-36.437-62.423Q-36.194-62.266-35.918-62.266Q-35.590-62.266-35.337-62.467Q-35.084-62.669-34.950-62.987Q-34.817-63.305-34.817-63.623Q-34.817-63.852-34.882-64.081Q-34.947-64.310-35.075-64.508Q-35.203-64.706-35.398-64.826Q-35.593-64.945-35.825-64.945Q-36.119-64.945-36.388-64.816Q-36.656-64.686-36.813-64.443M-31.874-60.755L-33.505-60.755L-33.505-61.035Q-33.276-61.035-33.127-61.070Q-32.978-61.104-32.978-61.244L-32.978-64.590Q-32.978-64.761-33.115-64.802Q-33.252-64.843-33.505-64.843L-33.505-65.123L-32.424-65.198L-32.424-64.792Q-32.202-64.993-31.915-65.096Q-31.628-65.198-31.320-65.198Q-30.893-65.198-30.529-64.985Q-30.165-64.771-29.952-64.407Q-29.738-64.043-29.738-63.623Q-29.738-63.178-29.977-62.814Q-30.216-62.450-30.610-62.247Q-31.003-62.044-31.447-62.044Q-31.714-62.044-31.961-62.144Q-32.209-62.245-32.397-62.426L-32.397-61.244Q-32.397-61.107-32.248-61.071Q-32.100-61.035-31.874-61.035L-31.874-60.755M-32.397-64.443L-32.397-62.833Q-32.264-62.580-32.021-62.423Q-31.778-62.266-31.502-62.266Q-31.174-62.266-30.921-62.467Q-30.668-62.669-30.534-62.987Q-30.401-63.305-30.401-63.623Q-30.401-63.852-30.466-64.081Q-30.531-64.310-30.659-64.508Q-30.787-64.706-30.982-64.826Q-31.177-64.945-31.409-64.945Q-31.703-64.945-31.972-64.816Q-32.240-64.686-32.397-64.443M-27.434-62.112L-29.037-62.112L-29.037-62.392Q-28.812-62.392-28.663-62.426Q-28.514-62.461-28.514-62.601L-28.514-66.220Q-28.514-66.490-28.622-66.552Q-28.730-66.613-29.037-66.613L-29.037-66.894L-27.961-66.969L-27.961-62.601Q-27.961-62.464-27.810-62.428Q-27.660-62.392-27.434-62.392L-27.434-62.112M-26.881-63.647Q-26.881-63.968-26.756-64.257Q-26.631-64.546-26.405-64.769Q-26.180-64.993-25.884-65.113Q-25.589-65.233-25.271-65.233Q-24.943-65.233-24.681-65.133Q-24.420-65.034-24.244-64.852Q-24.068-64.669-23.974-64.411Q-23.880-64.153-23.880-63.821Q-23.880-63.729-23.962-63.708L-26.217-63.708L-26.217-63.647Q-26.217-63.059-25.934-62.676Q-25.650-62.293-25.083-62.293Q-24.761-62.293-24.493-62.486Q-24.225-62.679-24.136-62.994Q-24.129-63.035-24.054-63.049L-23.962-63.049Q-23.880-63.025-23.880-62.953Q-23.880-62.946-23.886-62.919Q-23.999-62.522-24.370-62.283Q-24.741-62.044-25.165-62.044Q-25.602-62.044-26.002-62.252Q-26.402-62.461-26.641-62.828Q-26.881-63.195-26.881-63.647M-26.211-63.917L-24.396-63.917Q-24.396-64.194-24.493-64.446Q-24.590-64.699-24.789-64.855Q-24.987-65.010-25.271-65.010Q-25.548-65.010-25.761-64.852Q-25.975-64.693-26.093-64.438Q-26.211-64.183-26.211-63.917M-23.292-62.119L-23.292-63.182Q-23.292-63.206-23.264-63.233Q-23.237-63.260-23.213-63.260L-23.104-63.260Q-23.039-63.260-23.025-63.202Q-22.929-62.768-22.683-62.517Q-22.437-62.266-22.024-62.266Q-21.682-62.266-21.429-62.399Q-21.176-62.532-21.176-62.840Q-21.176-62.997-21.270-63.112Q-21.364-63.226-21.502-63.295Q-21.641-63.363-21.808-63.401L-22.389-63.500Q-22.745-63.568-23.018-63.789Q-23.292-64.009-23.292-64.351Q-23.292-64.600-23.181-64.775Q-23.069-64.949-22.883-65.048Q-22.697-65.147-22.482-65.190Q-22.266-65.233-22.024-65.233Q-21.610-65.233-21.330-65.051L-21.114-65.226Q-21.104-65.229-21.097-65.231Q-21.090-65.233-21.080-65.233L-21.029-65.233Q-21.002-65.233-20.978-65.209Q-20.954-65.185-20.954-65.157L-20.954-64.310Q-20.954-64.289-20.978-64.262Q-21.002-64.235-21.029-64.235L-21.142-64.235Q-21.169-64.235-21.195-64.260Q-21.220-64.286-21.220-64.310Q-21.220-64.546-21.326-64.710Q-21.432-64.874-21.615-64.956Q-21.798-65.038-22.030-65.038Q-22.359-65.038-22.615-64.935Q-22.871-64.833-22.871-64.556Q-22.871-64.361-22.688-64.252Q-22.506-64.142-22.277-64.101L-21.702-63.995Q-21.456-63.947-21.243-63.819Q-21.029-63.691-20.892-63.488Q-20.756-63.284-20.756-63.035Q-20.756-62.522-21.121-62.283Q-21.487-62.044-22.024-62.044Q-22.519-62.044-22.851-62.338L-23.117-62.064Q-23.138-62.044-23.165-62.044L-23.213-62.044Q-23.237-62.044-23.264-62.071Q-23.292-62.098-23.292-62.119",[954],[942,1235,1236],{"transform":1229},[950,1237],{"d":1238,"fill":1039,"stroke":1039,"className":1239,"style":1054},"M-16.887-62.953L-16.887-64.850L-17.526-64.850L-17.526-65.072Q-17.208-65.072-16.991-65.282Q-16.774-65.492-16.674-65.802Q-16.573-66.111-16.573-66.419L-16.306-66.419L-16.306-65.130L-15.229-65.130L-15.229-64.850L-16.306-64.850L-16.306-62.966Q-16.306-62.690-16.202-62.491Q-16.098-62.293-15.838-62.293Q-15.681-62.293-15.575-62.397Q-15.469-62.502-15.419-62.655Q-15.370-62.809-15.370-62.966L-15.370-63.380L-15.103-63.380L-15.103-62.953Q-15.103-62.727-15.202-62.517Q-15.301-62.307-15.486-62.175Q-15.670-62.044-15.899-62.044Q-16.337-62.044-16.612-62.281Q-16.887-62.519-16.887-62.953M-12.611-62.112L-14.245-62.112L-14.245-62.392Q-14.016-62.392-13.867-62.426Q-13.719-62.461-13.719-62.601L-13.719-66.220Q-13.719-66.490-13.826-66.552Q-13.934-66.613-14.245-66.613L-14.245-66.894L-13.165-66.969L-13.165-64.583Q-13.059-64.768-12.881-64.910Q-12.704-65.051-12.495-65.125Q-12.287-65.198-12.061-65.198Q-11.555-65.198-11.271-64.975Q-10.988-64.751-10.988-64.255L-10.988-62.601Q-10.988-62.464-10.839-62.428Q-10.690-62.392-10.465-62.392L-10.465-62.112L-12.095-62.112L-12.095-62.392Q-11.866-62.392-11.718-62.426Q-11.569-62.461-11.569-62.601L-11.569-64.241Q-11.569-64.576-11.688-64.776Q-11.808-64.976-12.123-64.976Q-12.393-64.976-12.627-64.840Q-12.861-64.703-12.999-64.469Q-13.138-64.235-13.138-63.961L-13.138-62.601Q-13.138-62.464-12.987-62.428Q-12.837-62.392-12.611-62.392L-12.611-62.112M-8.127-62.112L-9.863-62.112L-9.863-62.392Q-9.634-62.392-9.486-62.426Q-9.337-62.461-9.337-62.601L-9.337-64.450Q-9.337-64.720-9.445-64.781Q-9.552-64.843-9.863-64.843L-9.863-65.123L-8.834-65.198L-8.834-64.491Q-8.705-64.799-8.462-64.998Q-8.219-65.198-7.901-65.198Q-7.683-65.198-7.512-65.074Q-7.341-64.949-7.341-64.737Q-7.341-64.600-7.440-64.501Q-7.539-64.402-7.672-64.402Q-7.809-64.402-7.908-64.501Q-8.007-64.600-8.007-64.737Q-8.007-64.877-7.908-64.976Q-8.199-64.976-8.399-64.780Q-8.599-64.583-8.691-64.289Q-8.783-63.995-8.783-63.715L-8.783-62.601Q-8.783-62.392-8.127-62.392L-8.127-62.112M-6.797-63.595Q-6.797-63.937-6.662-64.236Q-6.527-64.535-6.288-64.759Q-6.049-64.983-5.731-65.108Q-5.413-65.233-5.082-65.233Q-4.637-65.233-4.237-65.017Q-3.837-64.802-3.603-64.424Q-3.369-64.047-3.369-63.595Q-3.369-63.254-3.511-62.970Q-3.653-62.686-3.897-62.479Q-4.142-62.273-4.451-62.158Q-4.760-62.044-5.082-62.044Q-5.512-62.044-5.914-62.245Q-6.315-62.447-6.556-62.799Q-6.797-63.151-6.797-63.595M-5.082-62.293Q-4.480-62.293-4.256-62.671Q-4.032-63.049-4.032-63.681Q-4.032-64.293-4.266-64.652Q-4.500-65.010-5.082-65.010Q-6.134-65.010-6.134-63.681Q-6.134-63.049-5.909-62.671Q-5.683-62.293-5.082-62.293M-2.200-62.946L-2.200-64.450Q-2.200-64.720-2.308-64.781Q-2.416-64.843-2.727-64.843L-2.727-65.123L-1.619-65.198L-1.619-62.966L-1.619-62.946Q-1.619-62.666-1.568-62.522Q-1.517-62.379-1.375-62.322Q-1.233-62.266-0.946-62.266Q-0.693-62.266-0.488-62.406Q-0.283-62.546-0.166-62.772Q-0.050-62.997-0.050-63.247L-0.050-64.450Q-0.050-64.720-0.158-64.781Q-0.266-64.843-0.577-64.843L-0.577-65.123L0.531-65.198L0.531-62.785Q0.531-62.594 0.584-62.512Q0.637-62.430 0.738-62.411Q0.838-62.392 1.054-62.392L1.054-62.112L-0.023-62.044L-0.023-62.608Q-0.132-62.426-0.278-62.303Q-0.423-62.180-0.609-62.112Q-0.795-62.044-0.997-62.044Q-2.200-62.044-2.200-62.946M1.601-61.579Q1.601-61.825 1.797-62.009Q1.994-62.194 2.250-62.273Q2.113-62.385 2.042-62.546Q1.970-62.707 1.970-62.888Q1.970-63.209 2.182-63.455Q1.847-63.753 1.847-64.163Q1.847-64.624 2.236-64.911Q2.626-65.198 3.105-65.198Q3.576-65.198 3.911-64.952Q4.085-65.106 4.296-65.188Q4.506-65.270 4.735-65.270Q4.899-65.270 5.020-65.163Q5.142-65.055 5.142-64.891Q5.142-64.795 5.070-64.723Q4.998-64.652 4.906-64.652Q4.807-64.652 4.737-64.725Q4.667-64.799 4.667-64.898Q4.667-64.952 4.680-64.983L4.687-64.997Q4.694-65.017 4.702-65.028Q4.711-65.038 4.714-65.045Q4.359-65.045 4.072-64.822Q4.359-64.529 4.359-64.163Q4.359-63.848 4.174-63.616Q3.990-63.383 3.701-63.255Q3.412-63.127 3.105-63.127Q2.903-63.127 2.711-63.177Q2.520-63.226 2.342-63.336Q2.250-63.209 2.250-63.066Q2.250-62.884 2.378-62.749Q2.506-62.614 2.691-62.614L3.323-62.614Q3.771-62.614 4.140-62.543Q4.509-62.471 4.769-62.242Q5.029-62.013 5.029-61.579Q5.029-61.258 4.733-61.056Q4.438-60.854 4.034-60.765Q3.631-60.676 3.316-60.676Q2.999-60.676 2.595-60.765Q2.192-60.854 1.896-61.056Q1.601-61.258 1.601-61.579M2.055-61.579Q2.055-61.350 2.274-61.201Q2.493-61.052 2.785-60.984Q3.077-60.916 3.316-60.916Q3.480-60.916 3.689-60.952Q3.897-60.987 4.104-61.068Q4.311-61.148 4.443-61.276Q4.574-61.404 4.574-61.579Q4.574-61.931 4.193-62.025Q3.812-62.119 3.310-62.119L2.691-62.119Q2.452-62.119 2.253-61.968Q2.055-61.818 2.055-61.579M3.105-63.366Q3.771-63.366 3.771-64.163Q3.771-64.963 3.105-64.963Q2.435-64.963 2.435-64.163Q2.435-63.366 3.105-63.366M7.305-62.112L5.671-62.112L5.671-62.392Q5.900-62.392 6.049-62.426Q6.198-62.461 6.198-62.601L6.198-66.220Q6.198-66.490 6.090-66.552Q5.982-66.613 5.671-66.613L5.671-66.894L6.751-66.969L6.751-64.583Q6.857-64.768 7.035-64.910Q7.213-65.051 7.421-65.125Q7.630-65.198 7.855-65.198Q8.361-65.198 8.645-64.975Q8.929-64.751 8.929-64.255L8.929-62.601Q8.929-62.464 9.077-62.428Q9.226-62.392 9.452-62.392L9.452-62.112L7.821-62.112L7.821-62.392Q8.050-62.392 8.199-62.426Q8.348-62.461 8.348-62.601L8.348-64.241Q8.348-64.576 8.228-64.776Q8.108-64.976 7.794-64.976Q7.524-64.976 7.290-64.840Q7.056-64.703 6.917-64.469Q6.779-64.235 6.779-63.961L6.779-62.601Q6.779-62.464 6.929-62.428Q7.080-62.392 7.305-62.392",[954],[942,1241,1242],{"transform":1229},[950,1243],{"d":1244,"fill":1039,"stroke":1039,"className":1245,"style":1054},"M14.951-62.112L13-62.112Q12.972-62.112 12.943-62.148Q12.914-62.184 12.914-62.225L12.941-62.338Q12.962-62.379 13.027-62.392Q13.434-62.392 13.581-62.426Q13.704-62.461 13.741-62.638L14.685-66.419Q14.688-66.425 14.693-66.446Q14.698-66.466 14.702-66.484Q14.705-66.501 14.709-66.514Q14.709-66.566 14.650-66.586Q14.517-66.613 14.134-66.613Q14.042-66.637 14.042-66.726L14.069-66.836Q14.076-66.877 14.155-66.894L16.746-66.894Q17.101-66.894 17.450-66.778Q17.798-66.661 18.031-66.412Q18.263-66.162 18.263-65.793Q18.263-65.441 18.055-65.152Q17.846-64.863 17.504-64.660Q17.163-64.457 16.793-64.356Q16.424-64.255 16.086-64.255L14.832-64.255L14.421-62.594Q14.397-62.546 14.397-62.491Q14.397-62.440 14.456-62.420Q14.582-62.392 14.972-62.392Q15.064-62.368 15.064-62.286L15.037-62.174Q15.020-62.126 14.951-62.112M15.331-66.367L14.869-64.505L15.960-64.505Q16.756-64.505 17.135-64.884Q17.320-65.069 17.424-65.368Q17.528-65.667 17.528-65.947Q17.528-66.613 16.486-66.613L15.686-66.613Q15.546-66.613 15.488-66.602Q15.430-66.590 15.396-66.538Q15.361-66.487 15.331-66.367",[954],[942,1247,1248],{"transform":1229},[950,1249],{"d":1250,"fill":1039,"stroke":1039,"className":1251,"style":1054},"M20.637-60.362L19.561-60.362L19.561-67.362L20.637-67.362L20.637-67.020L19.902-67.020L19.902-60.704L20.637-60.704L20.637-60.362M21.666-62.659Q21.786-62.502 21.977-62.403Q22.169-62.303 22.384-62.264Q22.599-62.225 22.821-62.225Q23.119-62.225 23.314-62.380Q23.508-62.536 23.599-62.790Q23.690-63.045 23.690-63.329Q23.690-63.623 23.597-63.874Q23.505-64.125 23.307-64.281Q23.108-64.436 22.815-64.436L22.298-64.436Q22.271-64.436 22.245-64.462Q22.220-64.487 22.220-64.511L22.220-64.583Q22.220-64.614 22.245-64.636Q22.271-64.658 22.298-64.658L22.739-64.689Q23.102-64.689 23.322-65.046Q23.543-65.404 23.543-65.793Q23.543-66.121 23.348-66.325Q23.153-66.528 22.821-66.528Q22.534-66.528 22.281-66.444Q22.028-66.361 21.864-66.173Q22.011-66.173 22.112-66.058Q22.213-65.944 22.213-65.793Q22.213-65.643 22.107-65.533Q22.001-65.424 21.844-65.424Q21.683-65.424 21.574-65.533Q21.464-65.643 21.464-65.793Q21.464-66.118 21.673-66.337Q21.881-66.555 22.198-66.658Q22.514-66.760 22.821-66.760Q23.139-66.760 23.467-66.656Q23.795-66.552 24.023-66.330Q24.250-66.108 24.250-65.793Q24.250-65.359 23.963-65.034Q23.676-64.710 23.242-64.563Q23.553-64.498 23.833-64.332Q24.113-64.166 24.291-63.908Q24.469-63.650 24.469-63.329Q24.469-62.919 24.224-62.609Q23.980-62.300 23.599-62.136Q23.218-61.972 22.821-61.972Q22.452-61.972 22.095-62.085Q21.738-62.197 21.493-62.447Q21.249-62.696 21.249-63.066Q21.249-63.237 21.365-63.349Q21.482-63.462 21.652-63.462Q21.762-63.462 21.852-63.411Q21.943-63.360 21.998-63.267Q22.052-63.175 22.052-63.066Q22.052-62.898 21.940-62.779Q21.827-62.659 21.666-62.659",[954],[942,1253,1254],{"transform":1229},[950,1255],{"d":1256,"fill":1039,"stroke":1039,"className":1257,"style":1054},"M25.626-62.532Q25.626-62.700 25.753-62.823Q25.879-62.946 26.046-62.946Q26.214-62.946 26.337-62.823Q26.460-62.700 26.460-62.532Q26.460-62.358 26.337-62.235Q26.214-62.112 26.046-62.112Q25.879-62.112 25.753-62.235Q25.626-62.358 25.626-62.532M27.998-62.532Q27.998-62.700 28.125-62.823Q28.251-62.946 28.419-62.946Q28.586-62.946 28.709-62.823Q28.832-62.700 28.832-62.532Q28.832-62.358 28.709-62.235Q28.586-62.112 28.419-62.112Q28.251-62.112 28.125-62.235Q27.998-62.358 27.998-62.532M30.384-62.266Q30.384-62.314 30.391-62.338L30.903-64.402Q30.938-64.529 30.938-64.645Q30.938-64.785 30.885-64.881Q30.832-64.976 30.709-64.976Q30.486-64.976 30.386-64.749Q30.285-64.522 30.175-64.101Q30.165-64.036 30.104-64.036L29.994-64.036Q29.963-64.036 29.940-64.067Q29.916-64.098 29.916-64.122L29.916-64.149Q30.028-64.583 30.210-64.891Q30.391-65.198 30.722-65.198Q30.907-65.198 31.086-65.123Q31.266-65.048 31.378-64.908Q31.491-64.768 31.491-64.576Q31.638-64.761 31.819-64.901Q32.001-65.041 32.214-65.120Q32.428-65.198 32.660-65.198Q33.070-65.198 33.327-65.002Q33.583-64.805 33.583-64.409Q33.583-64.125 33.455-63.727Q33.327-63.329 33.128-62.840Q33.053-62.645 33.053-62.498Q33.053-62.266 33.221-62.266Q33.498-62.266 33.691-62.543Q33.884-62.820 33.962-63.141Q33.986-63.202 34.038-63.202L34.150-63.202Q34.185-63.202 34.207-63.173Q34.229-63.144 34.229-63.120Q34.229-63.107 34.222-63.093Q34.161-62.843 34.019-62.601Q33.877-62.358 33.669-62.201Q33.460-62.044 33.207-62.044Q32.923-62.044 32.722-62.206Q32.520-62.368 32.520-62.638Q32.520-62.755 32.568-62.888Q33.040-64.067 33.040-64.505Q33.040-64.713 32.944-64.845Q32.848-64.976 32.647-64.976Q31.891-64.976 31.365-63.961L30.951-62.300Q30.927-62.194 30.833-62.119Q30.739-62.044 30.623-62.044Q30.524-62.044 30.454-62.105Q30.384-62.167 30.384-62.266",[954],[942,1259,1260],{"transform":1229},[950,1261],{"d":1262,"fill":1039,"stroke":1039,"className":1263,"style":1054},"M35.852-60.362L34.776-60.362L34.776-60.704L35.510-60.704L35.510-67.020L34.776-67.020L34.776-67.362L35.852-67.362L35.852-60.362M37.527-62.532Q37.527-62.700 37.650-62.823Q37.773-62.946 37.947-62.946Q38.115-62.946 38.238-62.823Q38.361-62.700 38.361-62.532Q38.361-62.358 38.238-62.235Q38.115-62.112 37.947-62.112Q37.773-62.112 37.650-62.235Q37.527-62.358 37.527-62.532M37.527-64.716Q37.527-64.884 37.650-65.007Q37.773-65.130 37.947-65.130Q38.115-65.130 38.238-65.007Q38.361-64.884 38.361-64.716Q38.361-64.542 38.238-64.419Q38.115-64.296 37.947-64.296Q37.773-64.296 37.650-64.419Q37.527-64.542 37.527-64.716",[954],[942,1265,1266],{"transform":1229},[950,1267],{"d":1268,"fill":1039,"stroke":1039,"className":1269,"style":1054},"M43.123-64.477Q43.123-65.164 43.471-65.754Q43.820-66.343 44.415-66.689Q45.009-67.034 45.700-67.034Q46.390-67.034 46.985-66.689Q47.580-66.343 47.928-65.754Q48.277-65.164 48.277-64.477Q48.277-63.790 47.925-63.216Q47.573-62.642 46.980-62.307Q46.387-61.972 45.700-61.972Q45.187-61.972 44.719-62.165Q44.251-62.358 43.892-62.700Q43.533-63.042 43.328-63.503Q43.123-63.965 43.123-64.477M45.700-62.211Q46.158-62.211 46.507-62.399Q46.855-62.587 47.091-62.917Q47.327-63.247 47.438-63.647Q47.549-64.047 47.549-64.477Q47.549-65.062 47.346-65.600Q47.142-66.138 46.722-66.473Q46.301-66.808 45.700-66.808Q45.098-66.808 44.678-66.473Q44.258-66.138 44.054-65.600Q43.851-65.062 43.851-64.477Q43.851-63.896 44.058-63.375Q44.264-62.854 44.685-62.532Q45.105-62.211 45.700-62.211M44.558-63.975L44.292-63.975L44.292-65.051L44.558-65.051L44.558-64.816L46.842-64.816L46.842-65.051L47.108-65.051L47.108-63.975L46.842-63.975L46.842-64.211L44.558-64.211L44.558-63.975M51.217-60.362Q50.666-60.762 50.295-61.317Q49.925-61.873 49.743-62.519Q49.562-63.165 49.562-63.862Q49.562-64.375 49.663-64.870Q49.764-65.366 49.969-65.817Q50.174-66.268 50.487-66.660Q50.800-67.051 51.217-67.355Q51.227-67.359 51.234-67.360Q51.240-67.362 51.251-67.362L51.319-67.362Q51.353-67.362 51.375-67.338Q51.398-67.314 51.398-67.277Q51.398-67.232 51.370-67.215Q51.022-66.914 50.769-66.530Q50.516-66.145 50.364-65.704Q50.212-65.263 50.140-64.807Q50.068-64.351 50.068-63.862Q50.068-62.861 50.377-61.974Q50.687-61.087 51.370-60.502Q51.398-60.485 51.398-60.441Q51.398-60.403 51.375-60.379Q51.353-60.355 51.319-60.355L51.251-60.355Q51.244-60.359 51.235-60.360Q51.227-60.362 51.217-60.362",[954],[942,1271,1272],{"transform":1229},[950,1273],{"d":1274,"fill":1039,"stroke":1039,"className":1275,"style":1054},"M52.681-62.266Q52.681-62.314 52.688-62.338L53.200-64.402Q53.234-64.529 53.234-64.645Q53.234-64.785 53.181-64.881Q53.128-64.976 53.005-64.976Q52.783-64.976 52.682-64.749Q52.582-64.522 52.472-64.101Q52.462-64.036 52.400-64.036L52.291-64.036Q52.260-64.036 52.236-64.067Q52.212-64.098 52.212-64.122L52.212-64.149Q52.325-64.583 52.506-64.891Q52.688-65.198 53.019-65.198Q53.204-65.198 53.383-65.123Q53.563-65.048 53.675-64.908Q53.788-64.768 53.788-64.576Q53.935-64.761 54.116-64.901Q54.297-65.041 54.511-65.120Q54.725-65.198 54.957-65.198Q55.367-65.198 55.624-65.002Q55.880-64.805 55.880-64.409Q55.880-64.125 55.752-63.727Q55.624-63.329 55.425-62.840Q55.350-62.645 55.350-62.498Q55.350-62.266 55.518-62.266Q55.794-62.266 55.988-62.543Q56.181-62.820 56.259-63.141Q56.283-63.202 56.335-63.202L56.447-63.202Q56.481-63.202 56.504-63.173Q56.526-63.144 56.526-63.120Q56.526-63.107 56.519-63.093Q56.458-62.843 56.316-62.601Q56.174-62.358 55.965-62.201Q55.757-62.044 55.504-62.044Q55.220-62.044 55.019-62.206Q54.817-62.368 54.817-62.638Q54.817-62.755 54.865-62.888Q55.336-64.067 55.336-64.505Q55.336-64.713 55.241-64.845Q55.145-64.976 54.943-64.976Q54.188-64.976 53.662-63.961L53.248-62.300Q53.224-62.194 53.130-62.119Q53.036-62.044 52.920-62.044Q52.821-62.044 52.751-62.105Q52.681-62.167 52.681-62.266",[954],[942,1277,1278],{"transform":1229},[950,1279],{"d":1280,"fill":1039,"stroke":1039,"className":1281,"style":1054},"M57.477-60.355L57.408-60.355Q57.374-60.355 57.352-60.381Q57.330-60.406 57.330-60.441Q57.330-60.485 57.361-60.502Q57.716-60.806 57.966-61.196Q58.215-61.586 58.367-62.018Q58.519-62.450 58.589-62.919Q58.659-63.387 58.659-63.862Q58.659-64.341 58.589-64.807Q58.519-65.274 58.365-65.709Q58.212-66.145 57.960-66.533Q57.709-66.921 57.361-67.215Q57.330-67.232 57.330-67.277Q57.330-67.311 57.352-67.336Q57.374-67.362 57.408-67.362L57.477-67.362Q57.487-67.362 57.496-67.360Q57.504-67.359 57.514-67.355Q58.058-66.955 58.430-66.402Q58.803-65.848 58.984-65.202Q59.165-64.556 59.165-63.862Q59.165-63.161 58.984-62.514Q58.803-61.866 58.429-61.312Q58.054-60.758 57.514-60.362Q57.504-60.362 57.496-60.360Q57.487-60.359 57.477-60.355",[954],[1283,1284,1287,1288,1312,1313,1382,1383,1407,1408,1439,1440,1464,1465,1489,1490,1514],"figcaption",{"className":1285},[1286],"tikz-cap","The tradeoff that motivates these structures. A range sum on a plain array must scan the whole range, ",[385,1289,1291],{"className":1290},[388],[385,1292,1294],{"className":1293,"ariaHidden":393},[392],[385,1295,1297,1300,1303,1306,1309],{"className":1296},[397],[385,1298],{"className":1299,"style":402},[401],[385,1301,551],{"className":1302},[406],[385,1304,527],{"className":1305},[412],[385,1307,434],{"className":1308},[406,407],[385,1310,534],{"className":1311},[438]," (top). A prefix-sum array answers that sum as one subtraction ",[385,1314,1316],{"className":1315},[388],[385,1317,1319,1346,1370],{"className":1318,"ariaHidden":393},[392],[385,1320,1322,1325,1328,1331,1334,1337,1340,1343],{"className":1321},[397],[385,1323],{"className":1324,"style":402},[401],[385,1326,584],{"className":1327,"style":583},[406,407],[385,1329,413],{"className":1330},[412],[385,1332,486],{"className":1333,"style":485},[406,407],[385,1335,439],{"className":1336},[438],[385,1338],{"className":1339,"style":628},[421],[385,1341,706],{"className":1342},[632],[385,1344],{"className":1345,"style":628},[421],[385,1347,1349,1352,1355,1358,1361,1364,1367],{"className":1348},[397],[385,1350],{"className":1351,"style":402},[401],[385,1353,584],{"className":1354,"style":583},[406,407],[385,1356,413],{"className":1357},[412],[385,1359,472],{"className":1360,"style":471},[406,407],[385,1362],{"className":1363,"style":628},[421],[385,1365,706],{"className":1366},[632],[385,1368],{"className":1369,"style":628},[421],[385,1371,1373,1376,1379],{"className":1372},[397],[385,1374],{"className":1375,"style":402},[401],[385,1377,417],{"className":1378},[406],[385,1380,439],{"className":1381},[438],", but a single update to ",[385,1384,1386],{"className":1385},[388],[385,1387,1389],{"className":1388,"ariaHidden":393},[392],[385,1390,1392,1395,1398,1401,1404],{"className":1391},[397],[385,1393],{"className":1394,"style":402},[401],[385,1396,408],{"className":1397},[406,407],[385,1399,413],{"className":1400},[412],[385,1402,794],{"className":1403,"style":793},[406,407],[385,1405,439],{"className":1406},[438]," then dirties every later prefix ",[385,1409,1411],{"className":1410},[388],[385,1412,1414],{"className":1413,"ariaHidden":393},[392],[385,1415,1417,1420,1423,1426,1429,1433,1436],{"className":1416},[397],[385,1418],{"className":1419,"style":402},[401],[385,1421,584],{"className":1422,"style":583},[406,407],[385,1424,413],{"className":1425},[412],[385,1427,794],{"className":1428,"style":793},[406,407],[385,1430,1432],{"className":1431},[406],"..",[385,1434,434],{"className":1435},[406,407],[385,1437,439],{"className":1438},[438],", ",[385,1441,1443],{"className":1442},[388],[385,1444,1446],{"className":1445,"ariaHidden":393},[392],[385,1447,1449,1452,1455,1458,1461],{"className":1448},[397],[385,1450],{"className":1451,"style":402},[401],[385,1453,551],{"className":1454},[406],[385,1456,527],{"className":1457},[412],[385,1459,434],{"className":1460},[406,407],[385,1462,534],{"className":1463},[438]," to repair (bottom). Each structure is ",[385,1466,1468],{"className":1467},[388],[385,1469,1471],{"className":1470,"ariaHidden":393},[392],[385,1472,1474,1477,1480,1483,1486],{"className":1473},[397],[385,1475],{"className":1476,"style":402},[401],[385,1478,523],{"className":1479,"style":485},[406,407],[385,1481,527],{"className":1482},[412],[385,1484,417],{"className":1485},[406],[385,1487,534],{"className":1488},[438]," on one operation and ",[385,1491,1493],{"className":1492},[388],[385,1494,1496],{"className":1495,"ariaHidden":393},[392],[385,1497,1499,1502,1505,1508,1511],{"className":1498},[397],[385,1500],{"className":1501,"style":402},[401],[385,1503,551],{"className":1504},[406],[385,1506,527],{"className":1507},[412],[385,1509,434],{"className":1510},[406,407],[385,1512,534],{"className":1513},[438]," on the other.",[381,1516,1517,1518,1527,1528,1531,1532,1535,1536,1539],{},"The idea, in the spirit of the previous lessons on augmenting trees with\nsubtree summaries,",[1519,1520,1521],"sup",{},[563,1522,417],{"href":1523,"ariaDescribedBy":1524,"dataFootnoteRef":376,"id":1526},"#user-content-fn-clrs-augment",[1525],"footnote-label","user-content-fnref-clrs-augment"," is to store ",[442,1529,1530],{},"partial sums over blocks"," so that any prefix is\nthe sum of a few blocks and any single element lives in only a few blocks. Two\nclassic structures realize this: the ",[442,1533,1534],{},"Fenwick tree",", which is remarkably\ncompact and exploits the binary representation of the index, and the ",[442,1537,1538],{},"segment\ntree",", which is more general and handles any associative aggregate plus range\nupdates.",[1541,1542,1544],"h2",{"id":1543},"fenwick-trees-indexing-by-the-low-bit","Fenwick trees: indexing by the low bit",[381,1546,1547,1548,1550,1551,1554,1555,1592,1593,1617,1618,449,1633,1636,1637,1653,1654,1682,1683,1698],{},"A ",[442,1549,1534],{}," (or ",[442,1552,1553],{},"binary indexed tree",") is a 1-indexed array ",[385,1556,1558],{"className":1557},[388],[385,1559,1561],{"className":1560,"ariaHidden":393},[392],[385,1562,1564,1567,1571,1574,1577,1580,1583,1586,1589],{"className":1563},[397],[385,1565],{"className":1566,"style":402},[401],[385,1568,1570],{"className":1569,"style":583},[406,407],"F",[385,1572,413],{"className":1573},[412],[385,1575,417],{"className":1576},[406],[385,1578],{"className":1579,"style":422},[421],[385,1581,427],{"className":1582},[426],[385,1584],{"className":1585,"style":422},[421],[385,1587,434],{"className":1588},[406,407],[385,1590,439],{"className":1591},[438],"\nwhere ",[385,1594,1596],{"className":1595},[388],[385,1597,1599],{"className":1598,"ariaHidden":393},[392],[385,1600,1602,1605,1608,1611,1614],{"className":1601},[397],[385,1603],{"className":1604,"style":402},[401],[385,1606,1570],{"className":1607,"style":583},[406,407],[385,1609,413],{"className":1610},[412],[385,1612,591],{"className":1613},[406,407],[385,1615,439],{"className":1616},[438]," stores the sum of a contiguous block of ",[385,1619,1621],{"className":1620},[388],[385,1622,1624],{"className":1623,"ariaHidden":393},[392],[385,1625,1627,1630],{"className":1626},[397],[385,1628],{"className":1629,"style":503},[401],[385,1631,408],{"className":1632},[406,407],[887,1634,1635],{},"ending at"," index ",[385,1638,1640],{"className":1639},[388],[385,1641,1643],{"className":1642,"ariaHidden":393},[392],[385,1644,1646,1650],{"className":1645},[397],[385,1647],{"className":1648,"style":1649},[401],"height:0.6595em;",[385,1651,591],{"className":1652},[406,407],".\nThe length of that block is ",[385,1655,1657],{"className":1656},[388],[385,1658,1660],{"className":1659,"ariaHidden":393},[392],[385,1661,1663,1666,1673,1676,1679],{"className":1662},[397],[385,1664],{"className":1665,"style":402},[401],[385,1667,1669],{"className":1668},[911],[385,1670,1672],{"className":1671},[406,915],"lowbit",[385,1674,527],{"className":1675},[412],[385,1677,591],{"className":1678},[406,407],[385,1680,534],{"className":1681},[438],", the value of the lowest\nset bit of ",[385,1684,1686],{"className":1685},[388],[385,1687,1689],{"className":1688,"ariaHidden":393},[392],[385,1690,1692,1695],{"className":1691},[397],[385,1693],{"className":1694,"style":1649},[401],[385,1696,591],{"className":1697},[406,407],":",[385,1700,1703],{"className":1701},[1702],"katex-display",[385,1704,1706],{"className":1705},[388],[385,1707,1709,1739,1761,1812],{"className":1708,"ariaHidden":393},[392],[385,1710,1712,1715,1721,1724,1727,1730,1733,1736],{"className":1711},[397],[385,1713],{"className":1714,"style":402},[401],[385,1716,1718],{"className":1717},[911],[385,1719,1672],{"className":1720},[406,915],[385,1722,527],{"className":1723},[412],[385,1725,591],{"className":1726},[406,407],[385,1728,534],{"className":1729},[438],[385,1731],{"className":1732,"style":598},[421],[385,1734,603],{"className":1735},[602],[385,1737],{"className":1738,"style":598},[421],[385,1740,1742,1745,1748,1751,1758],{"className":1741},[397],[385,1743],{"className":1744,"style":856},[401],[385,1746,591],{"className":1747},[406,407],[385,1749],{"className":1750,"style":628},[421],[385,1752,1754],{"className":1753},[632],[385,1755,1757],{"className":1756},[406],"&",[385,1759],{"className":1760,"style":628},[421],[385,1762,1764,1767,1770,1773,1776,1779,1784,1788,1791,1794,1797,1800,1803,1806,1809],{"className":1763},[397],[385,1765],{"className":1766,"style":402},[401],[385,1768,527],{"className":1769},[412],[385,1771,706],{"className":1772},[406],[385,1774,591],{"className":1775},[406,407],[385,1777,534],{"className":1778},[438],[385,1780,1783],{"className":1781},[1782],"mpunct",",",[385,1785],{"className":1786,"style":1787},[421],"margin-right:2em;",[385,1789],{"className":1790,"style":422},[421],[385,1792,1570],{"className":1793,"style":583},[406,407],[385,1795,413],{"className":1796},[412],[385,1798,591],{"className":1799},[406,407],[385,1801,439],{"className":1802},[438],[385,1804],{"className":1805,"style":598},[421],[385,1807,603],{"className":1808},[602],[385,1810],{"className":1811,"style":598},[421],[385,1813,1815,1819,1940,1943,1946,1949,1952,1955],{"className":1814},[397],[385,1816],{"className":1817,"style":1818},[401],"height:3.3277em;vertical-align:-1.516em;",[385,1820,1823],{"className":1821},[911,1822],"op-limits",[385,1824,1828,1931],{"className":1825},[1826,1827],"vlist-t","vlist-t2",[385,1829,1832,1926],{"className":1830},[1831],"vlist-r",[385,1833,1837,1897,1911],{"className":1834,"style":1836},[1835],"vlist","height:1.8117em;",[385,1838,1840,1845],{"style":1839},"top:-1.809em;margin-left:0em;",[385,1841],{"className":1842,"style":1844},[1843],"pstrut","height:3.05em;",[385,1846,1852],{"className":1847},[1848,1849,1850,1851],"sizing","reset-size6","size3","mtight",[385,1853,1855,1860,1864,1867,1870,1873,1876,1882,1885,1888,1891,1894],{"className":1854},[406,1851],[385,1856,1859],{"className":1857,"style":1858},[406,407,1851],"margin-right:0.0572em;","j",[385,1861],{"className":1862,"style":1863},[421,1851],"margin-right:0.1952em;",[385,1865,603],{"className":1866},[602,1851],[385,1868],{"className":1869,"style":1863},[421,1851],[385,1871,591],{"className":1872},[406,407,1851],[385,1874,706],{"className":1875},[632,1851],[385,1877,1879],{"className":1878},[911,1851],[385,1880,1672],{"className":1881},[406,915,1851],[385,1883,527],{"className":1884},[412,1851],[385,1886,591],{"className":1887},[406,407,1851],[385,1889,534],{"className":1890},[438,1851],[385,1892,633],{"className":1893},[632,1851],[385,1895,417],{"className":1896},[406,1851],[385,1898,1900,1903],{"style":1899},"top:-3.05em;",[385,1901],{"className":1902,"style":1844},[1843],[385,1904,1905],{},[385,1906,1910],{"className":1907},[911,1908,1909],"op-symbol","large-op","∑",[385,1912,1914,1917],{"style":1913},"top:-4.3em;margin-left:0em;",[385,1915],{"className":1916,"style":1844},[1843],[385,1918,1920],{"className":1919},[1848,1849,1850,1851],[385,1921,1923],{"className":1922},[406,1851],[385,1924,591],{"className":1925},[406,407,1851],[385,1927,1930],{"className":1928},[1929],"vlist-s","​",[385,1932,1934],{"className":1933},[1831],[385,1935,1938],{"className":1936,"style":1937},[1835],"height:1.516em;",[385,1939],{},[385,1941],{"className":1942,"style":422},[421],[385,1944,408],{"className":1945},[406,407],[385,1947,413],{"className":1948},[412],[385,1950,1859],{"className":1951,"style":1858},[406,407],[385,1953,439],{"className":1954},[438],[385,1956,927],{"className":1957},[406],[381,1959,1960,1961,1985,1986,2065,2066,2085,2086,2101,2102,2147,2148,2251,2252,2297,2298,2322,2323,2351,2352,2251,2448,2297,2493,2517,2518,927],{},"That is, ",[385,1962,1964],{"className":1963},[388],[385,1965,1967],{"className":1966,"ariaHidden":393},[392],[385,1968,1970,1973,1976,1979,1982],{"className":1969},[397],[385,1971],{"className":1972,"style":402},[401],[385,1974,1570],{"className":1975,"style":583},[406,407],[385,1977,413],{"className":1978},[412],[385,1980,591],{"className":1981},[406,407],[385,1983,439],{"className":1984},[438]," covers the half-open range ",[385,1987,1989],{"className":1988},[388],[385,1990,1992,2022],{"className":1991,"ariaHidden":393},[392],[385,1993,1995,1999,2007,2010,2013,2016,2019],{"className":1994},[397],[385,1996],{"className":1997,"style":1998},[401],"height:1.2em;vertical-align:-0.35em;",[385,2000,2002],{"className":2001},[412],[385,2003,527],{"className":2004},[2005,2006],"delimsizing","size1",[385,2008],{"className":2009,"style":422},[421],[385,2011,591],{"className":2012},[406,407],[385,2014],{"className":2015,"style":628},[421],[385,2017,706],{"className":2018},[632],[385,2020],{"className":2021,"style":628},[421],[385,2023,2025,2028,2034,2037,2040,2043,2046,2050,2053,2056,2059],{"className":2024},[397],[385,2026],{"className":2027,"style":1998},[401],[385,2029,2031],{"className":2030},[911],[385,2032,1672],{"className":2033},[406,915],[385,2035,527],{"className":2036},[412],[385,2038,591],{"className":2039},[406,407],[385,2041,534],{"className":2042},[438],[385,2044,1783],{"className":2045},[1782],[385,2047,2049],{"className":2048},[421]," ",[385,2051],{"className":2052,"style":422},[421],[385,2054,591],{"className":2055},[406,407],[385,2057],{"className":2058,"style":422},[421],[385,2060,2062],{"className":2061},[438],[385,2063,439],{"className":2064},[2005,2006],".\nThe trick rides on two's-complement arithmetic: ",[385,2067,2069],{"className":2068},[388],[385,2070,2072],{"className":2071,"ariaHidden":393},[392],[385,2073,2075,2079,2082],{"className":2074},[397],[385,2076],{"className":2077,"style":2078},[401],"height:0.7429em;vertical-align:-0.0833em;",[385,2080,706],{"className":2081},[406],[385,2083,591],{"className":2084},[406,407]," flips every bit of ",[385,2087,2089],{"className":2088},[388],[385,2090,2092],{"className":2091,"ariaHidden":393},[392],[385,2093,2095,2098],{"className":2094},[397],[385,2096],{"className":2097,"style":1649},[401],[385,2099,591],{"className":2100},[406,407]," and\nadds one, so ",[385,2103,2105],{"className":2104},[388],[385,2106,2108,2129],{"className":2107,"ariaHidden":393},[392],[385,2109,2111,2114,2117,2120,2126],{"className":2110},[397],[385,2112],{"className":2113,"style":856},[401],[385,2115,591],{"className":2116},[406,407],[385,2118],{"className":2119,"style":628},[421],[385,2121,2123],{"className":2122},[632],[385,2124,1757],{"className":2125},[406],[385,2127],{"className":2128,"style":628},[421],[385,2130,2132,2135,2138,2141,2144],{"className":2131},[397],[385,2133],{"className":2134,"style":402},[401],[385,2136,527],{"className":2137},[412],[385,2139,706],{"className":2140},[406],[385,2142,591],{"className":2143},[406,407],[385,2145,534],{"className":2146},[438]," isolates exactly the lowest set bit. If\n",[385,2149,2151],{"className":2150},[388],[385,2152,2154,2172,2192],{"className":2153,"ariaHidden":393},[392],[385,2155,2157,2160,2163,2166,2169],{"className":2156},[397],[385,2158],{"className":2159,"style":1649},[401],[385,2161,591],{"className":2162},[406,407],[385,2164],{"className":2165,"style":598},[421],[385,2167,603],{"className":2168},[602],[385,2170],{"className":2171,"style":598},[421],[385,2173,2175,2179,2183,2186,2189],{"className":2174},[397],[385,2176],{"className":2177,"style":2178},[401],"height:0.6444em;",[385,2180,2182],{"className":2181},[406],"6",[385,2184],{"className":2185,"style":598},[421],[385,2187,603],{"className":2188},[602],[385,2190],{"className":2191,"style":598},[421],[385,2193,2195,2198,2201,2205],{"className":2194},[397],[385,2196],{"className":2197,"style":402},[401],[385,2199,527],{"className":2200},[412],[385,2202,2204],{"className":2203},[406],"110",[385,2206,2208,2211],{"className":2207},[438],[385,2209,534],{"className":2210},[438],[385,2212,2215],{"className":2213},[2214],"msupsub",[385,2216,2218,2242],{"className":2217},[1826,1827],[385,2219,2221,2239],{"className":2220},[1831],[385,2222,2225],{"className":2223,"style":2224},[1835],"height:0.3011em;",[385,2226,2228,2232],{"style":2227},"top:-2.55em;margin-left:0em;margin-right:0.05em;",[385,2229],{"className":2230,"style":2231},[1843],"height:2.7em;",[385,2233,2235],{"className":2234},[1848,1849,1850,1851],[385,2236,2238],{"className":2237},[406,1851],"2",[385,2240,1930],{"className":2241},[1929],[385,2243,2245],{"className":2244},[1831],[385,2246,2249],{"className":2247,"style":2248},[1835],"height:0.15em;",[385,2250],{}," then ",[385,2253,2255],{"className":2254},[388],[385,2256,2258,2288],{"className":2257,"ariaHidden":393},[392],[385,2259,2261,2264,2270,2273,2276,2279,2282,2285],{"className":2260},[397],[385,2262],{"className":2263,"style":402},[401],[385,2265,2267],{"className":2266},[911],[385,2268,1672],{"className":2269},[406,915],[385,2271,527],{"className":2272},[412],[385,2274,2182],{"className":2275},[406],[385,2277,534],{"className":2278},[438],[385,2280],{"className":2281,"style":598},[421],[385,2283,603],{"className":2284},[602],[385,2286],{"className":2287,"style":598},[421],[385,2289,2291,2294],{"className":2290},[397],[385,2292],{"className":2293,"style":2178},[401],[385,2295,2238],{"className":2296},[406],", so ",[385,2299,2301],{"className":2300},[388],[385,2302,2304],{"className":2303,"ariaHidden":393},[392],[385,2305,2307,2310,2313,2316,2319],{"className":2306},[397],[385,2308],{"className":2309,"style":402},[401],[385,2311,1570],{"className":2312,"style":583},[406,407],[385,2314,413],{"className":2315},[412],[385,2317,2182],{"className":2318},[406],[385,2320,439],{"className":2321},[438]," covers indices\n",[385,2324,2326],{"className":2325},[388],[385,2327,2329],{"className":2328,"ariaHidden":393},[392],[385,2330,2332,2335,2339,2342,2345,2348],{"className":2331},[397],[385,2333],{"className":2334,"style":2178},[401],[385,2336,2338],{"className":2337},[406],"5",[385,2340],{"className":2341,"style":422},[421],[385,2343,427],{"className":2344},[426],[385,2346],{"className":2347,"style":422},[421],[385,2349,2182],{"className":2350},[406],"; if ",[385,2353,2355],{"className":2354},[388],[385,2356,2358,2376,2395],{"className":2357,"ariaHidden":393},[392],[385,2359,2361,2364,2367,2370,2373],{"className":2360},[397],[385,2362],{"className":2363,"style":1649},[401],[385,2365,591],{"className":2366},[406,407],[385,2368],{"className":2369,"style":598},[421],[385,2371,603],{"className":2372},[602],[385,2374],{"className":2375,"style":598},[421],[385,2377,2379,2382,2386,2389,2392],{"className":2378},[397],[385,2380],{"className":2381,"style":2178},[401],[385,2383,2385],{"className":2384},[406],"8",[385,2387],{"className":2388,"style":598},[421],[385,2390,603],{"className":2391},[602],[385,2393],{"className":2394,"style":598},[421],[385,2396,2398,2401,2404,2408],{"className":2397},[397],[385,2399],{"className":2400,"style":402},[401],[385,2402,527],{"className":2403},[412],[385,2405,2407],{"className":2406},[406],"1000",[385,2409,2411,2414],{"className":2410},[438],[385,2412,534],{"className":2413},[438],[385,2415,2417],{"className":2416},[2214],[385,2418,2420,2440],{"className":2419},[1826,1827],[385,2421,2423,2437],{"className":2422},[1831],[385,2424,2426],{"className":2425,"style":2224},[1835],[385,2427,2428,2431],{"style":2227},[385,2429],{"className":2430,"style":2231},[1843],[385,2432,2434],{"className":2433},[1848,1849,1850,1851],[385,2435,2238],{"className":2436},[406,1851],[385,2438,1930],{"className":2439},[1929],[385,2441,2443],{"className":2442},[1831],[385,2444,2446],{"className":2445,"style":2248},[1835],[385,2447],{},[385,2449,2451],{"className":2450},[388],[385,2452,2454,2484],{"className":2453,"ariaHidden":393},[392],[385,2455,2457,2460,2466,2469,2472,2475,2478,2481],{"className":2456},[397],[385,2458],{"className":2459,"style":402},[401],[385,2461,2463],{"className":2462},[911],[385,2464,1672],{"className":2465},[406,915],[385,2467,527],{"className":2468},[412],[385,2470,2385],{"className":2471},[406],[385,2473,534],{"className":2474},[438],[385,2476],{"className":2477,"style":598},[421],[385,2479,603],{"className":2480},[602],[385,2482],{"className":2483,"style":598},[421],[385,2485,2487,2490],{"className":2486},[397],[385,2488],{"className":2489,"style":2178},[401],[385,2491,2385],{"className":2492},[406],[385,2494,2496],{"className":2495},[388],[385,2497,2499],{"className":2498,"ariaHidden":393},[392],[385,2500,2502,2505,2508,2511,2514],{"className":2501},[397],[385,2503],{"className":2504,"style":402},[401],[385,2506,1570],{"className":2507,"style":583},[406,407],[385,2509,413],{"className":2510},[412],[385,2512,2385],{"className":2513},[406],[385,2515,439],{"className":2516},[438],"\ncovers the whole prefix ",[385,2519,2521],{"className":2520},[388],[385,2522,2524],{"className":2523,"ariaHidden":393},[392],[385,2525,2527,2530,2533,2536,2539,2542],{"className":2526},[397],[385,2528],{"className":2529,"style":2178},[401],[385,2531,417],{"className":2532},[406],[385,2534],{"className":2535,"style":422},[421],[385,2537,427],{"className":2538},[426],[385,2540],{"className":2541,"style":422},[421],[385,2543,2385],{"className":2544},[406],[929,2546,2548,2829],{"className":2547},[932,933],[935,2549,2553],{"xmlns":937,"width":2550,"height":2551,"viewBox":2552},"346.410","172.827","-75 -75 259.808 129.620",[942,2554,2555,2558,2565,2568,2575,2578,2585,2588,2595,2598,2605,2608,2615,2618,2625,2628,2635,2642,2645,2660,2663,2677,2680,2694,2697,2711,2714,2728,2731,2745,2748,2762,2765],{"stroke":944,"style":945},[950,2556],{"fill":958,"d":2557},"M-33.48-49.308h25.608V-72.07H-33.48Z",[942,2559,2561],{"transform":2560},"translate(24.718 2.9)",[950,2562],{"d":2563,"fill":944,"stroke":944,"className":2564,"style":967},"M-43.799-60.689L-46.831-60.689L-46.831-61.005Q-45.680-61.005-45.680-61.300L-45.680-66.024Q-46.168-65.791-46.889-65.791L-46.889-66.107Q-45.759-66.107-45.197-66.683L-45.052-66.683Q-45.017-66.683-44.984-66.650Q-44.951-66.617-44.951-66.582L-44.951-61.300Q-44.951-61.005-43.799-61.005",[954],[950,2566],{"fill":958,"d":2567},"M-6.45-49.308h25.608V-72.07H-6.45Z",[942,2569,2571],{"transform":2570},"translate(51.748 2.9)",[950,2572],{"d":2573,"fill":944,"stroke":944,"className":2574,"style":967},"M-43.799-60.689L-47.249-60.689L-47.249-60.922Q-47.249-60.935-47.218-60.966L-45.764-62.543Q-45.298-63.040-45.045-63.345Q-44.792-63.651-44.601-64.062Q-44.410-64.473-44.410-64.912Q-44.410-65.501-44.733-65.934Q-45.056-66.367-45.636-66.367Q-45.900-66.367-46.146-66.257Q-46.392-66.147-46.568-65.960Q-46.744-65.773-46.840-65.523L-46.761-65.523Q-46.559-65.523-46.416-65.387Q-46.273-65.251-46.273-65.035Q-46.273-64.829-46.416-64.690Q-46.559-64.552-46.761-64.552Q-46.963-64.552-47.106-64.695Q-47.249-64.837-47.249-65.035Q-47.249-65.497-47.012-65.870Q-46.774-66.244-46.374-66.463Q-45.975-66.683-45.526-66.683Q-45.003-66.683-44.549-66.468Q-44.094-66.252-43.821-65.853Q-43.549-65.453-43.549-64.912Q-43.549-64.517-43.720-64.163Q-43.892-63.809-44.157-63.530Q-44.423-63.251-44.874-62.866Q-45.324-62.482-45.403-62.407L-46.427-61.445L-45.610-61.445Q-44.959-61.445-44.522-61.456Q-44.085-61.467-44.054-61.489Q-43.984-61.572-43.929-61.812Q-43.874-62.051-43.834-62.319L-43.549-62.319",[954],[950,2576],{"fill":958,"d":2577},"M20.58-49.308h25.608V-72.07H20.58Z",[942,2579,2581],{"transform":2580},"translate(78.778 2.9)",[950,2582],{"d":2583,"fill":944,"stroke":944,"className":2584,"style":967},"M-46.805-61.410L-46.849-61.410Q-46.647-61.093-46.260-60.935Q-45.873-60.777-45.447-60.777Q-44.911-60.777-44.672-61.212Q-44.432-61.647-44.432-62.227Q-44.432-62.807-44.678-63.247Q-44.924-63.686-45.456-63.686L-46.076-63.686Q-46.102-63.686-46.135-63.715Q-46.168-63.743-46.168-63.765L-46.168-63.866Q-46.168-63.897-46.139-63.921Q-46.111-63.945-46.076-63.945L-45.557-63.985Q-45.091-63.985-44.845-64.457Q-44.599-64.930-44.599-65.448Q-44.599-65.875-44.812-66.149Q-45.025-66.424-45.447-66.424Q-45.790-66.424-46.115-66.294Q-46.440-66.165-46.625-65.910L-46.599-65.910Q-46.396-65.910-46.260-65.769Q-46.124-65.628-46.124-65.431Q-46.124-65.233-46.258-65.099Q-46.392-64.965-46.590-64.965Q-46.792-64.965-46.930-65.099Q-47.069-65.233-47.069-65.431Q-47.069-66.020-46.566-66.351Q-46.062-66.683-45.447-66.683Q-45.069-66.683-44.667-66.543Q-44.265-66.402-43.997-66.123Q-43.729-65.844-43.729-65.448Q-43.729-64.899-44.083-64.462Q-44.436-64.024-44.977-63.840Q-44.586-63.761-44.241-63.537Q-43.896-63.313-43.685-62.972Q-43.474-62.631-43.474-62.236Q-43.474-61.854-43.637-61.531Q-43.799-61.208-44.091-60.972Q-44.384-60.737-44.731-60.614Q-45.078-60.491-45.447-60.491Q-45.895-60.491-46.326-60.652Q-46.757-60.812-47.038-61.139Q-47.319-61.467-47.319-61.924Q-47.319-62.139-47.172-62.282Q-47.025-62.425-46.805-62.425Q-46.594-62.425-46.449-62.280Q-46.304-62.135-46.304-61.924Q-46.304-61.713-46.451-61.561Q-46.599-61.410-46.805-61.410",[954],[950,2586],{"fill":958,"d":2587},"M47.61-49.308h25.608V-72.07H47.61Z",[942,2589,2591],{"transform":2590},"translate(105.808 2.9)",[950,2592],{"d":2593,"fill":944,"stroke":944,"className":2594,"style":967},"M-45.008-62.166L-47.447-62.166L-47.447-62.482L-44.621-66.630Q-44.577-66.683-44.511-66.683L-44.357-66.683Q-44.318-66.683-44.285-66.650Q-44.252-66.617-44.252-66.573L-44.252-62.482L-43.351-62.482L-43.351-62.166L-44.252-62.166L-44.252-61.300Q-44.252-61.005-43.351-61.005L-43.351-60.689L-45.904-60.689L-45.904-61.005Q-45.544-61.005-45.276-61.060Q-45.008-61.115-45.008-61.300L-45.008-62.166M-44.951-65.655L-47.113-62.482L-44.951-62.482",[954],[950,2596],{"fill":958,"d":2597},"M74.64-49.308h25.608V-72.07H74.64Z",[942,2599,2601],{"transform":2600},"translate(132.838 2.9)",[950,2602],{"d":2603,"fill":944,"stroke":944,"className":2604,"style":967},"M-46.880-61.695Q-46.739-61.282-46.379-61.030Q-46.019-60.777-45.583-60.777Q-45.131-60.777-44.865-61.030Q-44.599-61.282-44.496-61.667Q-44.393-62.051-44.393-62.508Q-44.393-64.209-45.302-64.209Q-45.623-64.209-45.852-64.115Q-46.080-64.020-46.210-63.901Q-46.339-63.783-46.451-63.644Q-46.563-63.506-46.599-63.497L-46.682-63.497Q-46.726-63.497-46.757-63.528Q-46.788-63.559-46.788-63.607L-46.788-66.604Q-46.788-66.635-46.752-66.659Q-46.717-66.683-46.691-66.683L-46.651-66.683Q-46.019-66.393-45.346-66.393Q-44.674-66.393-44.032-66.683L-44.006-66.683Q-43.975-66.683-43.942-66.661Q-43.909-66.639-43.909-66.604L-43.909-66.503Q-43.909-66.499-43.918-66.481Q-43.927-66.463-43.927-66.459Q-44.243-66.064-44.713-65.842Q-45.184-65.620-45.680-65.620Q-46.089-65.620-46.471-65.730L-46.471-64.011Q-46.014-64.468-45.302-64.468Q-44.792-64.468-44.393-64.187Q-43.993-63.906-43.771-63.451Q-43.549-62.996-43.549-62.491Q-43.549-61.941-43.828-61.482Q-44.107-61.023-44.573-60.757Q-45.039-60.491-45.583-60.491Q-46.023-60.491-46.407-60.718Q-46.792-60.944-47.020-61.324Q-47.249-61.704-47.249-62.148Q-47.249-62.341-47.117-62.473Q-46.985-62.605-46.788-62.605Q-46.656-62.605-46.552-62.546Q-46.449-62.486-46.390-62.383Q-46.331-62.280-46.331-62.148Q-46.331-61.950-46.458-61.818Q-46.585-61.687-46.788-61.687Q-46.849-61.687-46.880-61.695",[954],[950,2606],{"fill":958,"d":2607},"M101.67-49.308h25.608V-72.07H101.67Z",[942,2609,2611],{"transform":2610},"translate(159.868 2.9)",[950,2612],{"d":2613,"fill":944,"stroke":944,"className":2614,"style":967},"M-45.394-60.491Q-46.128-60.491-46.559-60.972Q-46.990-61.454-47.154-62.146Q-47.319-62.838-47.319-63.585Q-47.319-64.314-47.027-65.037Q-46.735-65.760-46.181-66.222Q-45.627-66.683-44.880-66.683Q-44.384-66.683-44.048-66.417Q-43.711-66.151-43.711-65.668Q-43.711-65.488-43.839-65.360Q-43.966-65.233-44.142-65.233Q-44.322-65.233-44.452-65.358Q-44.581-65.483-44.581-65.668Q-44.581-65.782-44.524-65.886Q-44.467-65.989-44.366-66.048Q-44.265-66.107-44.142-66.107Q-44.138-66.107-44.133-66.105Q-44.129-66.103-44.124-66.099Q-44.239-66.266-44.447-66.345Q-44.656-66.424-44.880-66.424Q-45.324-66.424-45.682-66.123Q-46.040-65.822-46.229-65.369Q-46.462-64.763-46.462-63.730Q-46.291-64.095-45.990-64.323Q-45.689-64.552-45.302-64.552Q-44.898-64.552-44.553-64.385Q-44.208-64.218-43.971-63.937Q-43.733-63.655-43.604-63.293Q-43.474-62.930-43.474-62.526Q-43.474-61.981-43.718-61.515Q-43.962-61.049-44.401-60.770Q-44.841-60.491-45.394-60.491M-45.394-60.777Q-44.933-60.777-44.698-61.034Q-44.463-61.291-44.397-61.665Q-44.331-62.038-44.331-62.508L-44.331-62.543Q-44.331-63.031-44.388-63.396Q-44.445-63.761-44.674-64.024Q-44.902-64.288-45.346-64.288Q-45.715-64.288-45.966-64.044Q-46.216-63.800-46.331-63.436Q-46.445-63.071-46.445-62.724Q-46.445-62.605-46.436-62.543Q-46.436-62.526-46.438-62.515Q-46.440-62.504-46.445-62.491Q-46.445-61.840-46.207-61.309Q-45.970-60.777-45.394-60.777",[954],[950,2616],{"fill":958,"d":2617},"M128.7-49.308h25.608V-72.07H128.7Z",[942,2619,2621],{"transform":2620},"translate(186.898 2.9)",[950,2622],{"d":2623,"fill":944,"stroke":944,"className":2624,"style":967},"M-46.084-60.931Q-46.084-61.568-45.928-62.214Q-45.772-62.860-45.480-63.466Q-45.188-64.073-44.779-64.622L-43.962-65.730L-44.990-65.730Q-46.634-65.730-46.682-65.686Q-46.788-65.558-46.906-64.855L-47.192-64.855L-46.897-66.771L-46.607-66.771L-46.607-66.745Q-46.607-66.582-46.043-66.534Q-45.478-66.485-44.933-66.485L-43.215-66.485L-43.215-66.279Q-43.215-66.261-43.217-66.252Q-43.219-66.244-43.224-66.235L-44.511-64.486Q-44.762-64.134-44.909-63.708Q-45.056-63.282-45.122-62.818Q-45.188-62.355-45.201-61.944Q-45.214-61.533-45.214-60.931Q-45.214-60.751-45.340-60.621Q-45.465-60.491-45.645-60.491Q-45.764-60.491-45.867-60.548Q-45.970-60.606-46.027-60.709Q-46.084-60.812-46.084-60.931",[954],[950,2626],{"fill":958,"d":2627},"M155.73-49.308h25.608V-72.07H155.73Z",[942,2629,2631],{"transform":2630},"translate(213.928 2.9)",[950,2632],{"d":2633,"fill":944,"stroke":944,"className":2634,"style":967},"M-47.319-62.056Q-47.319-62.614-46.959-63.027Q-46.599-63.440-46.023-63.712L-46.392-63.945Q-46.695-64.147-46.882-64.477Q-47.069-64.807-47.069-65.163Q-47.069-65.817-46.563-66.250Q-46.058-66.683-45.394-66.683Q-44.995-66.683-44.610-66.523Q-44.226-66.362-43.977-66.057Q-43.729-65.751-43.729-65.334Q-43.729-64.503-44.797-63.945L-44.243-63.598Q-43.896-63.370-43.685-63.001Q-43.474-62.631-43.474-62.218Q-43.474-61.840-43.632-61.522Q-43.790-61.203-44.067-60.970Q-44.344-60.737-44.687-60.614Q-45.030-60.491-45.394-60.491Q-45.860-60.491-46.306-60.678Q-46.752-60.865-47.036-61.219Q-47.319-61.572-47.319-62.056M-46.796-62.056Q-46.796-61.511-46.377-61.144Q-45.957-60.777-45.394-60.777Q-45.065-60.777-44.740-60.909Q-44.414-61.041-44.206-61.295Q-43.997-61.550-43.997-61.893Q-43.997-62.157-44.133-62.381Q-44.269-62.605-44.502-62.759L-45.746-63.541Q-46.207-63.304-46.502-62.917Q-46.796-62.530-46.796-62.056M-46.185-64.811L-45.069-64.108Q-44.845-64.231-44.641-64.420Q-44.436-64.609-44.316-64.842Q-44.195-65.075-44.195-65.334Q-44.195-65.642-44.366-65.892Q-44.538-66.143-44.814-66.283Q-45.091-66.424-45.403-66.424Q-45.852-66.424-46.225-66.178Q-46.599-65.932-46.599-65.505Q-46.599-65.101-46.185-64.811",[954],[942,2636,2638],{"transform":2637},"translate(-14.564 2.733)",[950,2639],{"d":2640,"fill":944,"stroke":944,"className":2641,"style":955},"M-45.737-60.689L-47.300-60.689Q-47.339-60.689-47.366-60.730Q-47.394-60.771-47.394-60.818L-47.370-60.919Q-47.327-60.978-47.272-60.986Q-46.948-60.986-46.706-61.130Q-46.561-61.216-46.444-61.369Q-46.327-61.521-46.280-61.560L-43.331-66.291Q-43.265-66.400-43.140-66.400L-43.058-66.400Q-42.944-66.400-42.921-66.291L-42.280-61.146Q-42.226-60.986-41.683-60.986Q-41.585-60.955-41.585-60.865L-41.608-60.759Q-41.644-60.701-41.706-60.689L-43.706-60.689Q-43.741-60.689-43.772-60.730Q-43.804-60.771-43.804-60.818L-43.776-60.919Q-43.745-60.974-43.683-60.986Q-43.089-60.986-43.058-61.193L-43.218-62.498L-45.378-62.498L-46.034-61.459Q-46.042-61.412-46.073-61.339Q-46.104-61.267-46.104-61.224Q-46.104-61.091-45.985-61.039Q-45.866-60.986-45.722-60.986Q-45.628-60.955-45.628-60.865L-45.651-60.759Q-45.683-60.701-45.737-60.689M-43.577-65.376L-45.194-62.794L-43.257-62.794",[954],[950,2643],{"fill":958,"d":2644},"M-30.834-44.84v5.121h21.34v-5.121",[942,2646,2647,2654],{"stroke":958,"fontSize":2385},[942,2648,2650],{"transform":2649},"translate(19.264 29.884)",[950,2651],{"d":2652,"fill":944,"stroke":944,"className":2653,"style":955},"M-44.866-60.689L-47.226-60.689Q-47.261-60.689-47.292-60.730Q-47.323-60.771-47.323-60.818L-47.300-60.919Q-47.265-60.974-47.202-60.986Q-46.761-60.986-46.602-61.025Q-46.444-61.064-46.401-61.291L-45.323-65.611Q-45.300-65.681-45.300-65.744Q-45.300-65.806-45.362-65.826Q-45.507-65.857-45.929-65.857Q-46.034-65.884-46.034-65.986L-46.003-66.087Q-45.972-66.146-45.913-66.154L-41.515-66.154Q-41.417-66.126-41.417-66.033L-41.585-64.408Q-41.604-64.330-41.690-64.306L-41.769-64.306Q-41.866-64.334-41.866-64.431Q-41.827-64.900-41.827-64.986Q-41.827-65.392-42.009-65.582Q-42.190-65.771-42.466-65.814Q-42.741-65.857-43.210-65.857L-44.179-65.857Q-44.351-65.857-44.413-65.843Q-44.476-65.830-44.509-65.771Q-44.542-65.712-44.585-65.552L-45.081-63.568L-44.448-63.568Q-44.022-63.568-43.815-63.625Q-43.608-63.681-43.487-63.857Q-43.366-64.033-43.265-64.431Q-43.233-64.498-43.179-64.505L-43.097-64.505Q-42.995-64.478-42.995-64.384L-43.491-62.408Q-43.522-62.349-43.577-62.337L-43.659-62.337Q-43.761-62.365-43.761-62.466Q-43.683-62.771-43.683-62.927Q-43.683-63.084-43.804-63.162Q-43.925-63.240-44.079-63.257Q-44.233-63.275-44.440-63.275L-45.155-63.275L-45.667-61.232Q-45.671-61.220-45.673-61.201Q-45.675-61.181-45.677-61.162Q-45.679-61.142-45.683-61.130Q-45.683-61.048-45.601-61.025Q-45.503-61.005-45.310-60.996Q-45.116-60.986-44.851-60.986Q-44.745-60.955-44.745-60.865L-44.776-60.759Q-44.811-60.697-44.866-60.689",[954],[942,2655,2656],{"transform":2649},[950,2657],{"d":2658,"fill":944,"stroke":944,"className":2659,"style":955},"M-38.978-58.689L-40.154-58.689L-40.154-66.689L-38.978-66.689L-38.978-66.322L-39.787-66.322L-39.787-59.056L-38.978-59.056L-38.978-58.689M-35.193-60.689L-37.986-60.689L-37.986-60.986Q-36.923-60.986-36.923-61.248L-36.923-65.416Q-37.353-65.201-38.033-65.201L-38.033-65.498Q-37.013-65.498-36.498-66.009L-36.353-66.009Q-36.279-65.990-36.259-65.912L-36.259-61.248Q-36.259-60.986-35.193-60.986L-35.193-60.689M-33.181-58.689L-34.357-58.689L-34.357-59.056L-33.548-59.056L-33.548-66.322L-34.357-66.322L-34.357-66.689L-33.181-66.689",[954],[950,2661],{"fill":958,"d":2662},"M23.226-44.84v5.121h21.34v-5.121",[942,2664,2665,2671],{"stroke":958,"fontSize":2385},[942,2666,2668],{"transform":2667},"translate(73.324 29.884)",[950,2669],{"d":2652,"fill":944,"stroke":944,"className":2670,"style":955},[954],[942,2672,2673],{"transform":2667},[950,2674],{"d":2675,"fill":944,"stroke":944,"className":2676,"style":955},"M-38.978-58.689L-40.154-58.689L-40.154-66.689L-38.978-66.689L-38.978-66.322L-39.787-66.322L-39.787-59.056L-38.978-59.056L-38.978-58.689M-37.994-61.322Q-37.802-61.048-37.447-60.921Q-37.091-60.794-36.709-60.794Q-36.373-60.794-36.164-60.980Q-35.955-61.166-35.859-61.459Q-35.763-61.752-35.763-62.064Q-35.763-62.388-35.861-62.683Q-35.959-62.978-36.171-63.162Q-36.384-63.345-36.716-63.345L-37.283-63.345Q-37.314-63.345-37.343-63.375Q-37.373-63.404-37.373-63.431L-37.373-63.513Q-37.373-63.548-37.343-63.574Q-37.314-63.599-37.283-63.599L-36.802-63.634Q-36.517-63.634-36.320-63.839Q-36.123-64.044-36.027-64.339Q-35.931-64.634-35.931-64.912Q-35.931-65.291-36.130-65.529Q-36.330-65.767-36.709-65.767Q-37.029-65.767-37.318-65.660Q-37.607-65.552-37.771-65.330Q-37.591-65.330-37.468-65.203Q-37.345-65.076-37.345-64.904Q-37.345-64.732-37.470-64.607Q-37.595-64.482-37.771-64.482Q-37.943-64.482-38.068-64.607Q-38.193-64.732-38.193-64.904Q-38.193-65.271-37.968-65.519Q-37.744-65.767-37.404-65.888Q-37.064-66.009-36.709-66.009Q-36.361-66.009-35.998-65.888Q-35.634-65.767-35.386-65.517Q-35.138-65.267-35.138-64.912Q-35.138-64.427-35.457-64.044Q-35.775-63.662-36.251-63.490Q-35.701-63.380-35.300-62.994Q-34.900-62.607-34.900-62.072Q-34.900-61.615-35.164-61.259Q-35.427-60.904-35.849-60.712Q-36.271-60.521-36.709-60.521Q-37.119-60.521-37.511-60.656Q-37.904-60.791-38.169-61.076Q-38.435-61.361-38.435-61.779Q-38.435-61.974-38.302-62.103Q-38.169-62.232-37.978-62.232Q-37.853-62.232-37.750-62.173Q-37.646-62.115-37.584-62.009Q-37.521-61.904-37.521-61.779Q-37.521-61.584-37.656-61.453Q-37.791-61.322-37.994-61.322M-33.181-58.689L-34.357-58.689L-34.357-59.056L-33.548-59.056L-33.548-66.322L-34.357-66.322L-34.357-66.689L-33.181-66.689",[954],[950,2678],{"fill":958,"d":2679},"M77.286-44.84v5.121h21.34v-5.121",[942,2681,2682,2688],{"stroke":958,"fontSize":2385},[942,2683,2685],{"transform":2684},"translate(127.384 29.884)",[950,2686],{"d":2652,"fill":944,"stroke":944,"className":2687,"style":955},[954],[942,2689,2690],{"transform":2684},[950,2691],{"d":2692,"fill":944,"stroke":944,"className":2693,"style":955},"M-38.978-58.689L-40.154-58.689L-40.154-66.689L-38.978-66.689L-38.978-66.322L-39.787-66.322L-39.787-59.056L-38.978-59.056L-38.978-58.689M-37.947-61.568L-38.009-61.568Q-37.869-61.216-37.544-61.005Q-37.220-60.794-36.834-60.794Q-36.240-60.794-35.990-61.228Q-35.740-61.662-35.740-62.298Q-35.740-62.892-35.910-63.339Q-36.080-63.787-36.580-63.787Q-36.876-63.787-37.082-63.707Q-37.287-63.627-37.388-63.535Q-37.490-63.443-37.605-63.310Q-37.720-63.177-37.771-63.162L-37.841-63.162Q-37.927-63.185-37.947-63.263L-37.947-65.912Q-37.916-66.009-37.841-66.009Q-37.826-66.009-37.818-66.007Q-37.810-66.005-37.802-66.001Q-37.216-65.751-36.619-65.751Q-36.037-65.751-35.419-66.009L-35.396-66.009Q-35.353-66.009-35.326-65.984Q-35.298-65.959-35.298-65.919L-35.298-65.841Q-35.298-65.810-35.322-65.787Q-35.619-65.435-36.041-65.238Q-36.462-65.041-36.923-65.041Q-37.271-65.041-37.650-65.146L-37.650-63.650Q-37.431-63.845-37.156-63.943Q-36.880-64.041-36.580-64.041Q-36.123-64.041-35.753-63.793Q-35.384-63.544-35.177-63.140Q-34.970-62.736-34.970-62.291Q-34.970-61.802-35.226-61.394Q-35.482-60.986-35.914-60.753Q-36.345-60.521-36.834-60.521Q-37.228-60.521-37.584-60.712Q-37.939-60.904-38.150-61.238Q-38.361-61.572-38.361-61.986Q-38.361-62.166-38.244-62.279Q-38.126-62.392-37.947-62.392Q-37.830-62.392-37.738-62.339Q-37.646-62.287-37.593-62.195Q-37.541-62.103-37.541-61.986Q-37.541-61.802-37.654-61.685Q-37.767-61.568-37.947-61.568M-33.181-58.689L-34.357-58.689L-34.357-59.056L-33.548-59.056L-33.548-66.322L-34.357-66.322L-34.357-66.689L-33.181-66.689",[954],[950,2695],{"fill":958,"d":2696},"M131.346-44.84v5.121h21.34v-5.121",[942,2698,2699,2705],{"stroke":958,"fontSize":2385},[942,2700,2702],{"transform":2701},"translate(181.444 29.884)",[950,2703],{"d":2652,"fill":944,"stroke":944,"className":2704,"style":955},[954],[942,2706,2707],{"transform":2701},[950,2708],{"d":2709,"fill":944,"stroke":944,"className":2710,"style":955},"M-38.978-58.689L-40.154-58.689L-40.154-66.689L-38.978-66.689L-38.978-66.322L-39.787-66.322L-39.787-59.056L-38.978-59.056L-38.978-58.689M-37.291-60.912Q-37.291-61.337-37.207-61.787Q-37.123-62.236-36.966-62.654Q-36.810-63.072-36.595-63.459Q-36.380-63.845-36.107-64.201L-35.380-65.154L-36.291-65.154Q-37.787-65.154-37.826-65.115Q-37.896-65.033-37.943-64.843Q-37.990-64.654-38.033-64.376L-38.314-64.376L-38.044-66.095L-37.763-66.095L-37.763-66.072Q-37.763-65.927-37.246-65.884Q-36.728-65.841-36.236-65.841L-34.666-65.841L-34.666-65.650Q-34.673-65.611-34.689-65.584L-35.865-64.048Q-36.166-63.630-36.304-63.123Q-36.443-62.615-36.474-62.121Q-36.505-61.627-36.505-60.912Q-36.505-60.806-36.556-60.714Q-36.607-60.623-36.699-60.572Q-36.791-60.521-36.900-60.521Q-37.005-60.521-37.097-60.572Q-37.189-60.623-37.240-60.714Q-37.291-60.806-37.291-60.912M-33.181-58.689L-34.357-58.689L-34.357-59.056L-33.548-59.056L-33.548-66.322L-34.357-66.322L-34.357-66.689L-33.181-66.689",[954],[950,2712],{"fill":958,"d":2713},"M-30.834-19.232v5.12h48.37v-5.12",[942,2715,2716,2722],{"stroke":958,"fontSize":2385},[942,2717,2719],{"transform":2718},"translate(32.637 55.491)",[950,2720],{"d":2652,"fill":944,"stroke":944,"className":2721,"style":955},[954],[942,2723,2724],{"transform":2718},[950,2725],{"d":2726,"fill":944,"stroke":944,"className":2727,"style":955},"M-38.978-58.689L-40.154-58.689L-40.154-66.689L-38.978-66.689L-38.978-66.322L-39.787-66.322L-39.787-59.056L-38.978-59.056L-38.978-58.689M-35.201-60.689L-38.361-60.689L-38.361-60.896Q-38.361-60.923-38.337-60.955L-36.986-62.353Q-36.607-62.740-36.359-63.029Q-36.111-63.318-35.937-63.675Q-35.763-64.033-35.763-64.423Q-35.763-64.771-35.896-65.064Q-36.029-65.357-36.283-65.535Q-36.537-65.712-36.892-65.712Q-37.251-65.712-37.542-65.517Q-37.834-65.322-37.978-64.994L-37.923-64.994Q-37.740-64.994-37.615-64.873Q-37.490-64.751-37.490-64.560Q-37.490-64.380-37.615-64.251Q-37.740-64.123-37.923-64.123Q-38.103-64.123-38.232-64.251Q-38.361-64.380-38.361-64.560Q-38.361-64.962-38.140-65.298Q-37.919-65.634-37.554-65.822Q-37.189-66.009-36.787-66.009Q-36.306-66.009-35.890-65.822Q-35.474-65.634-35.222-65.273Q-34.970-64.912-34.970-64.423Q-34.970-64.064-35.125-63.761Q-35.279-63.459-35.531-63.199Q-35.783-62.939-36.132-62.654Q-36.482-62.369-36.650-62.216L-37.580-61.377L-36.865-61.377Q-35.490-61.377-35.451-61.416Q-35.380-61.494-35.337-61.679Q-35.294-61.865-35.251-62.154L-34.970-62.154L-35.201-60.689M-33.181-58.689L-34.357-58.689L-34.357-59.056L-33.548-59.056L-33.548-66.322L-34.357-66.322L-34.357-66.689L-33.181-66.689",[954],[950,2729],{"fill":958,"d":2730},"M77.286-19.232v5.12h48.37v-5.12",[942,2732,2733,2739],{"stroke":958,"fontSize":2385},[942,2734,2736],{"transform":2735},"translate(140.757 55.491)",[950,2737],{"d":2652,"fill":944,"stroke":944,"className":2738,"style":955},[954],[942,2740,2741],{"transform":2735},[950,2742],{"d":2743,"fill":944,"stroke":944,"className":2744,"style":955},"M-38.978-58.689L-40.154-58.689L-40.154-66.689L-38.978-66.689L-38.978-66.322L-39.787-66.322L-39.787-59.056L-38.978-59.056L-38.978-58.689M-36.666-60.521Q-37.337-60.521-37.734-60.945Q-38.130-61.369-38.283-61.988Q-38.435-62.607-38.435-63.275Q-38.435-63.935-38.164-64.568Q-37.892-65.201-37.378-65.605Q-36.865-66.009-36.193-66.009Q-35.904-66.009-35.656-65.910Q-35.408-65.810-35.261-65.609Q-35.115-65.408-35.115-65.103Q-35.115-64.998-35.166-64.906Q-35.216-64.814-35.308-64.763Q-35.400-64.712-35.505-64.712Q-35.673-64.712-35.787-64.826Q-35.900-64.939-35.900-65.103Q-35.900-65.263-35.791-65.380Q-35.681-65.498-35.513-65.498Q-35.712-65.767-36.193-65.767Q-36.611-65.767-36.943-65.490Q-37.275-65.212-37.451-64.794Q-37.650-64.294-37.650-63.392Q-37.486-63.716-37.207-63.916Q-36.927-64.115-36.580-64.115Q-36.095-64.115-35.710-63.869Q-35.326-63.623-35.113-63.214Q-34.900-62.806-34.900-62.322Q-34.900-61.830-35.130-61.418Q-35.361-61.005-35.771-60.763Q-36.181-60.521-36.666-60.521M-36.666-60.794Q-36.240-60.794-36.023-61.015Q-35.806-61.236-35.744-61.562Q-35.681-61.888-35.681-62.322Q-35.681-62.634-35.707-62.884Q-35.732-63.134-35.822-63.359Q-35.912-63.584-36.107-63.720Q-36.302-63.857-36.619-63.857Q-36.947-63.857-37.179-63.648Q-37.412-63.439-37.523-63.121Q-37.634-62.802-37.634-62.490Q-37.630-62.451-37.628-62.418Q-37.626-62.384-37.626-62.330Q-37.626-62.314-37.628-62.306Q-37.630-62.298-37.634-62.291Q-37.634-61.716-37.408-61.255Q-37.181-60.794-36.666-60.794M-33.181-58.689L-34.357-58.689L-34.357-59.056L-33.548-59.056L-33.548-66.322L-34.357-66.322L-34.357-66.689L-33.181-66.689",[954],[950,2746],{"fill":958,"d":2747},"M-30.834 6.375v5.121h102.43V6.375",[942,2749,2750,2756],{"stroke":958,"fontSize":2385},[942,2751,2753],{"transform":2752},"translate(59.667 81.099)",[950,2754],{"d":2652,"fill":944,"stroke":944,"className":2755,"style":955},[954],[942,2757,2758],{"transform":2752},[950,2759],{"d":2760,"fill":944,"stroke":944,"className":2761,"style":955},"M-38.978-58.689L-40.154-58.689L-40.154-66.689L-38.978-66.689L-38.978-66.322L-39.787-66.322L-39.787-59.056L-38.978-59.056L-38.978-58.689M-36.306-62.002L-38.548-62.002L-38.548-62.298L-35.978-65.955Q-35.939-66.009-35.876-66.009L-35.732-66.009Q-35.681-66.009-35.650-65.978Q-35.619-65.947-35.619-65.896L-35.619-62.298L-34.787-62.298L-34.787-62.002L-35.619-62.002L-35.619-61.248Q-35.619-60.986-34.794-60.986L-34.794-60.689L-37.130-60.689L-37.130-60.986Q-36.306-60.986-36.306-61.248L-36.306-62.002M-36.251-65.103L-38.220-62.298L-36.251-62.298L-36.251-65.103M-33.181-58.689L-34.357-58.689L-34.357-59.056L-33.548-59.056L-33.548-66.322L-34.357-66.322L-34.357-66.689L-33.181-66.689",[954],[950,2763],{"fill":958,"stroke":1182,"d":2764,"style":1041},"M-30.834 31.982v5.122h210.55v-5.121",[942,2766,2767],{"fill":1182,"stroke":1182},[942,2768,2769,2775,2781,2787,2793,2799,2805,2811,2817,2823],{"fill":1182,"stroke":958,"fontSize":2385},[942,2770,2772],{"transform":2771},"translate(89.026 106.706)",[950,2773],{"d":2652,"fill":1182,"stroke":1182,"className":2774,"style":955},[954],[942,2776,2777],{"transform":2771},[950,2778],{"d":2779,"fill":1182,"stroke":1182,"className":2780,"style":955},"M-38.978-58.689L-40.154-58.689L-40.154-66.689L-38.978-66.689L-38.978-66.322L-39.787-66.322L-39.787-59.056L-38.978-59.056L-38.978-58.689M-38.435-61.912Q-38.435-62.408-38.109-62.773Q-37.783-63.138-37.259-63.384L-37.529-63.544Q-37.826-63.728-38.009-64.023Q-38.193-64.318-38.193-64.658Q-38.193-65.052-37.974-65.363Q-37.755-65.673-37.402-65.841Q-37.048-66.009-36.666-66.009Q-36.392-66.009-36.119-65.931Q-35.845-65.853-35.628-65.705Q-35.412-65.556-35.275-65.330Q-35.138-65.103-35.138-64.810Q-35.138-64.404-35.408-64.097Q-35.677-63.791-36.099-63.576L-35.650-63.306Q-35.431-63.169-35.263-62.976Q-35.095-62.783-34.998-62.544Q-34.900-62.306-34.900-62.048Q-34.900-61.709-35.050-61.421Q-35.201-61.134-35.447-60.937Q-35.693-60.740-36.017-60.630Q-36.341-60.521-36.666-60.521Q-37.095-60.521-37.501-60.683Q-37.908-60.845-38.171-61.164Q-38.435-61.482-38.435-61.912M-37.947-61.912Q-37.947-61.427-37.556-61.111Q-37.166-60.794-36.666-60.794Q-36.373-60.794-36.074-60.906Q-35.775-61.017-35.582-61.236Q-35.388-61.455-35.388-61.767Q-35.388-61.998-35.529-62.209Q-35.669-62.419-35.876-62.537L-36.986-63.216Q-37.404-63.013-37.675-62.677Q-37.947-62.341-37.947-61.912M-37.361-64.345L-36.373-63.744Q-36.025-63.927-35.798-64.197Q-35.572-64.466-35.572-64.810Q-35.572-65.029-35.664-65.205Q-35.755-65.380-35.910-65.503Q-36.064-65.626-36.265-65.697Q-36.466-65.767-36.666-65.767Q-37.072-65.767-37.417-65.556Q-37.763-65.345-37.763-64.962Q-37.763-64.779-37.652-64.617Q-37.541-64.455-37.361-64.345M-33.181-58.689L-34.357-58.689L-34.357-59.056L-33.548-59.056L-33.548-66.322L-34.357-66.322L-34.357-66.689L-33.181-66.689",[954],[942,2782,2783],{"transform":2771},[950,2784],{"d":2785,"fill":1182,"stroke":1182,"className":2786,"style":955},"M-29.060-62.416Q-29.060-62.912-28.810-63.337Q-28.560-63.763-28.140-64.009Q-27.720-64.255-27.220-64.255Q-26.681-64.255-26.290-64.130Q-25.900-64.005-25.900-63.591Q-25.900-63.486-25.950-63.394Q-26.001-63.302-26.093-63.252Q-26.185-63.201-26.294-63.201Q-26.400-63.201-26.491-63.252Q-26.583-63.302-26.634-63.394Q-26.685-63.486-26.685-63.591Q-26.685-63.814-26.517-63.919Q-26.739-63.978-27.212-63.978Q-27.509-63.978-27.724-63.839Q-27.939-63.701-28.070-63.470Q-28.200-63.240-28.259-62.970Q-28.318-62.701-28.318-62.416Q-28.318-62.021-28.185-61.671Q-28.052-61.322-27.780-61.105Q-27.509-60.888-27.111-60.888Q-26.736-60.888-26.460-61.105Q-26.185-61.322-26.083-61.681Q-26.068-61.744-26.005-61.744L-25.900-61.744Q-25.864-61.744-25.839-61.716Q-25.814-61.689-25.814-61.650L-25.814-61.627Q-25.946-61.146-26.331-60.878Q-26.716-60.611-27.220-60.611Q-27.583-60.611-27.917-60.748Q-28.251-60.884-28.511-61.134Q-28.771-61.384-28.915-61.720Q-29.060-62.056-29.060-62.416M-25.325-62.384Q-25.325-62.888-25.070-63.320Q-24.814-63.752-24.378-64.003Q-23.943-64.255-23.443-64.255Q-23.056-64.255-22.714-64.111Q-22.372-63.966-22.111-63.705Q-21.849-63.443-21.706-63.107Q-21.564-62.771-21.564-62.384Q-21.564-61.892-21.827-61.482Q-22.091-61.072-22.521-60.841Q-22.950-60.611-23.443-60.611Q-23.935-60.611-24.368-60.843Q-24.802-61.076-25.064-61.484Q-25.325-61.892-25.325-62.384M-23.443-60.888Q-22.986-60.888-22.734-61.111Q-22.482-61.334-22.394-61.685Q-22.306-62.037-22.306-62.482Q-22.306-62.912-22.400-63.250Q-22.493-63.587-22.747-63.794Q-23.001-64.001-23.443-64.001Q-24.091-64.001-24.335-63.585Q-24.579-63.169-24.579-62.482Q-24.579-62.037-24.491-61.685Q-24.404-61.334-24.152-61.111Q-23.900-60.888-23.443-60.888",[954],[942,2788,2789],{"transform":2771},[950,2790],{"d":2791,"fill":1182,"stroke":1182,"className":2792,"style":955},"M-19.510-60.720L-20.733-63.576Q-20.815-63.752-20.959-63.796Q-21.104-63.841-21.373-63.841L-21.373-64.138L-19.662-64.138L-19.662-63.841Q-20.084-63.841-20.084-63.658Q-20.084-63.623-20.069-63.576L-19.123-61.384L-18.283-63.361Q-18.244-63.439-18.244-63.529Q-18.244-63.669-18.350-63.755Q-18.455-63.841-18.596-63.841L-18.596-64.138L-17.244-64.138L-17.244-63.841Q-17.768-63.841-17.983-63.361L-19.108-60.720Q-19.170-60.611-19.276-60.611L-19.342-60.611Q-19.455-60.611-19.510-60.720",[954],[942,2794,2795],{"transform":2771},[950,2796],{"d":2797,"fill":1182,"stroke":1182,"className":2798,"style":955},"M-17.061-62.443Q-17.061-62.923-16.828-63.339Q-16.596-63.755-16.186-64.005Q-15.776-64.255-15.299-64.255Q-14.569-64.255-14.170-63.814Q-13.772-63.373-13.772-62.642Q-13.772-62.537-13.865-62.513L-16.315-62.513L-16.315-62.443Q-16.315-62.033-16.194-61.677Q-16.072-61.322-15.801-61.105Q-15.529-60.888-15.100-60.888Q-14.736-60.888-14.440-61.117Q-14.143-61.345-14.041-61.697Q-14.033-61.744-13.947-61.759L-13.865-61.759Q-13.772-61.732-13.772-61.650Q-13.772-61.642-13.779-61.611Q-13.842-61.384-13.981-61.201Q-14.119-61.017-14.311-60.884Q-14.502-60.752-14.721-60.681Q-14.940-60.611-15.178-60.611Q-15.549-60.611-15.887-60.748Q-16.225-60.884-16.492-61.136Q-16.760-61.388-16.910-61.728Q-17.061-62.068-17.061-62.443M-16.307-62.752L-14.346-62.752Q-14.346-63.056-14.447-63.347Q-14.549-63.638-14.766-63.820Q-14.983-64.001-15.299-64.001Q-15.600-64.001-15.830-63.814Q-16.061-63.627-16.184-63.335Q-16.307-63.044-16.307-62.752M-11.276-60.689L-13.256-60.689L-13.256-60.986Q-12.986-60.986-12.819-61.031Q-12.651-61.076-12.651-61.248L-12.651-63.384Q-12.651-63.599-12.713-63.695Q-12.776-63.791-12.893-63.812Q-13.010-63.834-13.256-63.834L-13.256-64.130L-12.088-64.216L-12.088-63.431Q-12.010-63.642-11.858-63.828Q-11.705-64.013-11.506-64.115Q-11.307-64.216-11.080-64.216Q-10.834-64.216-10.643-64.072Q-10.451-63.927-10.451-63.697Q-10.451-63.541-10.557-63.431Q-10.662-63.322-10.819-63.322Q-10.975-63.322-11.084-63.431Q-11.194-63.541-11.194-63.697Q-11.194-63.857-11.088-63.962Q-11.412-63.962-11.627-63.734Q-11.842-63.505-11.938-63.166Q-12.033-62.826-12.033-62.521L-12.033-61.248Q-12.033-61.080-11.807-61.033Q-11.580-60.986-11.276-60.986L-11.276-60.689M-9.928-60.697L-9.928-61.919Q-9.928-61.947-9.897-61.978Q-9.865-62.009-9.842-62.009L-9.736-62.009Q-9.666-62.009-9.651-61.947Q-9.588-61.627-9.449-61.386Q-9.311-61.146-9.078-61.005Q-8.846-60.865-8.537-60.865Q-8.299-60.865-8.090-60.925Q-7.881-60.986-7.744-61.134Q-7.608-61.283-7.608-61.529Q-7.608-61.783-7.819-61.949Q-8.029-62.115-8.299-62.169L-8.920-62.283Q-9.326-62.361-9.627-62.617Q-9.928-62.873-9.928-63.248Q-9.928-63.615-9.727-63.837Q-9.526-64.060-9.201-64.158Q-8.877-64.255-8.537-64.255Q-8.072-64.255-7.776-64.048L-7.553-64.232Q-7.529-64.255-7.498-64.255L-7.447-64.255Q-7.416-64.255-7.389-64.228Q-7.361-64.201-7.361-64.169L-7.361-63.185Q-7.361-63.154-7.387-63.125Q-7.412-63.095-7.447-63.095L-7.553-63.095Q-7.588-63.095-7.615-63.123Q-7.643-63.150-7.643-63.185Q-7.643-63.584-7.895-63.804Q-8.147-64.025-8.545-64.025Q-8.901-64.025-9.184-63.902Q-9.467-63.779-9.467-63.474Q-9.467-63.255-9.266-63.123Q-9.065-62.990-8.819-62.947L-8.194-62.834Q-7.764-62.744-7.455-62.447Q-7.147-62.150-7.147-61.736Q-7.147-61.166-7.545-60.888Q-7.944-60.611-8.537-60.611Q-9.088-60.611-9.440-60.947L-9.736-60.634Q-9.760-60.611-9.795-60.611L-9.842-60.611Q-9.865-60.611-9.897-60.642Q-9.928-60.673-9.928-60.697",[954],[942,2800,2801],{"transform":2771},[950,2802],{"d":2803,"fill":1182,"stroke":1182,"className":2804,"style":955},"M-0.428-60.689L-3.221-60.689L-3.221-60.986Q-2.159-60.986-2.159-61.248L-2.159-65.416Q-2.588-65.201-3.268-65.201L-3.268-65.498Q-2.249-65.498-1.733-66.009L-1.588-66.009Q-1.514-65.990-1.495-65.912L-1.495-61.248Q-1.495-60.986-0.428-60.986",[954],[942,2806,2807],{"transform":2771},[950,2808],{"d":2809,"fill":1182,"stroke":1182,"className":2810,"style":955},"M2.364-61.154Q2.364-61.337 2.500-61.474Q2.637-61.611 2.829-61.611Q3.020-61.611 3.153-61.478Q3.286-61.345 3.286-61.154Q3.286-60.955 3.153-60.822Q3.020-60.689 2.829-60.689Q2.637-60.689 2.500-60.826Q2.364-60.962 2.364-61.154",[954],[942,2812,2813],{"transform":2771},[950,2814],{"d":2815,"fill":1182,"stroke":1182,"className":2816,"style":955},"M6.141-61.154Q6.141-61.337 6.277-61.474Q6.414-61.611 6.606-61.611Q6.797-61.611 6.930-61.478Q7.063-61.345 7.063-61.154Q7.063-60.955 6.930-60.822Q6.797-60.689 6.606-60.689Q6.414-60.689 6.277-60.826Q6.141-60.962 6.141-61.154",[954],[942,2818,2819],{"transform":2771},[950,2820],{"d":2821,"fill":1182,"stroke":1182,"className":2822,"style":955},"M9.919-61.154Q9.919-61.337 10.055-61.474Q10.192-61.611 10.384-61.611Q10.575-61.611 10.708-61.478Q10.841-61.345 10.841-61.154Q10.841-60.955 10.708-60.822Q10.575-60.689 10.384-60.689Q10.192-60.689 10.055-60.826Q9.919-60.962 9.919-61.154",[954],[942,2824,2825],{"transform":2771},[950,2826],{"d":2827,"fill":1182,"stroke":1182,"className":2828,"style":955},"M13.330-61.912Q13.330-62.408 13.656-62.773Q13.982-63.138 14.505-63.384L14.236-63.544Q13.939-63.728 13.755-64.023Q13.572-64.318 13.572-64.658Q13.572-65.052 13.790-65.363Q14.009-65.673 14.363-65.841Q14.716-66.009 15.099-66.009Q15.373-66.009 15.646-65.931Q15.919-65.853 16.136-65.705Q16.353-65.556 16.490-65.330Q16.626-65.103 16.626-64.810Q16.626-64.404 16.357-64.097Q16.087-63.791 15.665-63.576L16.115-63.306Q16.333-63.169 16.501-62.976Q16.669-62.783 16.767-62.544Q16.865-62.306 16.865-62.048Q16.865-61.709 16.714-61.421Q16.564-61.134 16.318-60.937Q16.072-60.740 15.748-60.630Q15.423-60.521 15.099-60.521Q14.669-60.521 14.263-60.683Q13.857-60.845 13.593-61.164Q13.330-61.482 13.330-61.912M13.818-61.912Q13.818-61.427 14.208-61.111Q14.599-60.794 15.099-60.794Q15.392-60.794 15.691-60.906Q15.990-61.017 16.183-61.236Q16.376-61.455 16.376-61.767Q16.376-61.998 16.236-62.209Q16.095-62.419 15.888-62.537L14.779-63.216Q14.361-63.013 14.089-62.677Q13.818-62.341 13.818-61.912M14.404-64.345L15.392-63.744Q15.740-63.927 15.966-64.197Q16.193-64.466 16.193-64.810Q16.193-65.029 16.101-65.205Q16.009-65.380 15.855-65.503Q15.701-65.626 15.499-65.697Q15.298-65.767 15.099-65.767Q14.693-65.767 14.347-65.556Q14.001-65.345 14.001-64.962Q14.001-64.779 14.113-64.617Q14.224-64.455 14.404-64.345",[954],[1283,2830,2832,2833,2857,2858,2885,2886],{"className":2831},[1286],"Each ",[385,2834,2836],{"className":2835},[388],[385,2837,2839],{"className":2838,"ariaHidden":393},[392],[385,2840,2842,2845,2848,2851,2854],{"className":2841},[397],[385,2843],{"className":2844,"style":402},[401],[385,2846,1570],{"className":2847,"style":583},[406,407],[385,2849,413],{"className":2850},[412],[385,2852,591],{"className":2853},[406,407],[385,2855,439],{"className":2856},[438]," covers the block of length ",[385,2859,2861],{"className":2860},[388],[385,2862,2864],{"className":2863,"ariaHidden":393},[392],[385,2865,2867,2870,2876,2879,2882],{"className":2866},[397],[385,2868],{"className":2869,"style":402},[401],[385,2871,2873],{"className":2872},[911],[385,2874,1672],{"className":2875},[406,915],[385,2877,527],{"className":2878},[412],[385,2880,591],{"className":2881},[406,407],[385,2883,534],{"className":2884},[438]," ending at ",[385,2887,2889],{"className":2888},[388],[385,2890,2892],{"className":2891,"ariaHidden":393},[392],[385,2893,2895,2898],{"className":2894},[397],[385,2896],{"className":2897,"style":1649},[401],[385,2899,591],{"className":2900},[406,407],[381,2902,2903,2906,2907,3003,3004,3028,3029,3044,3045,3090,3091,927],{},[442,2904,2905],{},"Prefix sum."," To compute ",[385,2908,2910],{"className":2909},[388],[385,2911,2913,2940,2967,2985],{"className":2912,"ariaHidden":393},[392],[385,2914,2916,2919,2922,2925,2928,2931,2934,2937],{"className":2915},[397],[385,2917],{"className":2918,"style":402},[401],[385,2920,584],{"className":2921,"style":583},[406,407],[385,2923,413],{"className":2924},[412],[385,2926,591],{"className":2927},[406,407],[385,2929,439],{"className":2930},[438],[385,2932],{"className":2933,"style":598},[421],[385,2935,603],{"className":2936},[602],[385,2938],{"className":2939,"style":598},[421],[385,2941,2943,2946,2949,2952,2955,2958,2961,2964],{"className":2942},[397],[385,2944],{"className":2945,"style":402},[401],[385,2947,408],{"className":2948},[406,407],[385,2950,413],{"className":2951},[412],[385,2953,417],{"className":2954},[406],[385,2956,439],{"className":2957},[438],[385,2959],{"className":2960,"style":628},[421],[385,2962,633],{"className":2963},[632],[385,2965],{"className":2966,"style":628},[421],[385,2968,2970,2973,2976,2979,2982],{"className":2969},[397],[385,2971],{"className":2972,"style":643},[401],[385,2974,647],{"className":2975},[426],[385,2977],{"className":2978,"style":628},[421],[385,2980,633],{"className":2981},[632],[385,2983],{"className":2984,"style":628},[421],[385,2986,2988,2991,2994,2997,3000],{"className":2987},[397],[385,2989],{"className":2990,"style":402},[401],[385,2992,408],{"className":2993},[406,407],[385,2995,413],{"className":2996},[412],[385,2998,591],{"className":2999},[406,407],[385,3001,439],{"className":3002},[438]," we peel off blocks from\nthe right. ",[385,3005,3007],{"className":3006},[388],[385,3008,3010],{"className":3009,"ariaHidden":393},[392],[385,3011,3013,3016,3019,3022,3025],{"className":3012},[397],[385,3014],{"className":3015,"style":402},[401],[385,3017,1570],{"className":3018,"style":583},[406,407],[385,3020,413],{"className":3021},[412],[385,3023,591],{"className":3024},[406,407],[385,3026,439],{"className":3027},[438]," accounts for the topmost block ending at ",[385,3030,3032],{"className":3031},[388],[385,3033,3035],{"className":3034,"ariaHidden":393},[392],[385,3036,3038,3041],{"className":3037},[397],[385,3039],{"className":3040,"style":1649},[401],[385,3042,591],{"className":3043},[406,407],"; the rest of the\nprefix ends at ",[385,3046,3048],{"className":3047},[388],[385,3049,3051,3069],{"className":3050,"ariaHidden":393},[392],[385,3052,3054,3057,3060,3063,3066],{"className":3053},[397],[385,3055],{"className":3056,"style":2078},[401],[385,3058,591],{"className":3059},[406,407],[385,3061],{"className":3062,"style":628},[421],[385,3064,706],{"className":3065},[632],[385,3067],{"className":3068,"style":628},[421],[385,3070,3072,3075,3081,3084,3087],{"className":3071},[397],[385,3073],{"className":3074,"style":402},[401],[385,3076,3078],{"className":3077},[911],[385,3079,1672],{"className":3080},[406,915],[385,3082,527],{"className":3083},[412],[385,3085,591],{"className":3086},[406,407],[385,3088,534],{"className":3089},[438],", so we jump there and repeat,\nclearing one set bit each step until we reach ",[385,3092,3094],{"className":3093},[388],[385,3095,3097],{"className":3096,"ariaHidden":393},[392],[385,3098,3100,3103],{"className":3099},[397],[385,3101],{"className":3102,"style":2178},[401],[385,3104,3106],{"className":3105},[406],"0",[3108,3109,3113],"pre",{"className":3110,"code":3111,"language":3112,"meta":376,"style":376},"language-algorithm shiki shiki-themes Vesper Light - Orange Boost (Quick Open Adjusted) vesper","caption: $\\textsc{PrefixSum}(F, i)$ — return $A[1] + \\dots + A[i]$\n$s \\gets 0$\nwhile $i > 0$ do\n  $s \\gets s + F[i]$\n  $i \\gets i - \\operatorname{lowbit}(i)$ \u002F\u002F clear the lowest set bit\nreturn $s$\n","algorithm",[3114,3115,3116,3122,3127,3132,3137,3142],"code",{"__ignoreMap":376},[385,3117,3119],{"class":3118,"line":6},"line",[385,3120,3121],{},"caption: $\\textsc{PrefixSum}(F, i)$ — return $A[1] + \\dots + A[i]$\n",[385,3123,3124],{"class":3118,"line":18},[385,3125,3126],{},"$s \\gets 0$\n",[385,3128,3129],{"class":3118,"line":24},[385,3130,3131],{},"while $i > 0$ do\n",[385,3133,3134],{"class":3118,"line":73},[385,3135,3136],{},"  $s \\gets s + F[i]$\n",[385,3138,3139],{"class":3118,"line":102},[385,3140,3141],{},"  $i \\gets i - \\operatorname{lowbit}(i)$ \u002F\u002F clear the lowest set bit\n",[385,3143,3144],{"class":3118,"line":108},[385,3145,3146],{},"return $s$\n",[381,3148,3149,3152,3153,3177,3178,3195,3196,3220,3221,449,3224,3239,3240,3255,3256,3259,3260,3275,3276,3340,3341,3356,3357,927],{},[442,3150,3151],{},"Point update."," When ",[385,3154,3156],{"className":3155},[388],[385,3157,3159],{"className":3158,"ariaHidden":393},[392],[385,3160,3162,3165,3168,3171,3174],{"className":3161},[397],[385,3163],{"className":3164,"style":402},[401],[385,3166,408],{"className":3167},[406,407],[385,3169,413],{"className":3170},[412],[385,3172,794],{"className":3173,"style":793},[406,407],[385,3175,439],{"className":3176},[438]," changes by ",[385,3179,3181],{"className":3180},[388],[385,3182,3184],{"className":3183,"ariaHidden":393},[392],[385,3185,3187,3190],{"className":3186},[397],[385,3188],{"className":3189,"style":856},[401],[385,3191,3194],{"className":3192,"style":3193},[406,407],"margin-right:0.0379em;","δ",", every ",[385,3197,3199],{"className":3198},[388],[385,3200,3202],{"className":3201,"ariaHidden":393},[392],[385,3203,3205,3208,3211,3214,3217],{"className":3204},[397],[385,3206],{"className":3207,"style":402},[401],[385,3209,1570],{"className":3210,"style":583},[406,407],[385,3212,413],{"className":3213},[412],[385,3215,591],{"className":3216},[406,407],[385,3218,439],{"className":3219},[438]," whose block\n",[887,3222,3223],{},"contains",[385,3225,3227],{"className":3226},[388],[385,3228,3230],{"className":3229,"ariaHidden":393},[392],[385,3231,3233,3236],{"className":3232},[397],[385,3234],{"className":3235,"style":856},[401],[385,3237,794],{"className":3238,"style":793},[406,407]," must change by ",[385,3241,3243],{"className":3242},[388],[385,3244,3246],{"className":3245,"ariaHidden":393},[392],[385,3247,3249,3252],{"className":3248},[397],[385,3250],{"className":3251,"style":856},[401],[385,3253,3194],{"className":3254,"style":3193},[406,407],". Those are exactly the indices reached by\nrepeatedly ",[887,3257,3258],{},"adding"," the low bit: starting at ",[385,3261,3263],{"className":3262},[388],[385,3264,3266],{"className":3265,"ariaHidden":393},[392],[385,3267,3269,3272],{"className":3268},[397],[385,3270],{"className":3271,"style":856},[401],[385,3273,794],{"className":3274,"style":793},[406,407],", each step ",[385,3277,3279],{"className":3278},[388],[385,3280,3282,3301,3319],{"className":3281,"ariaHidden":393},[392],[385,3283,3285,3288,3291,3294,3298],{"className":3284},[397],[385,3286],{"className":3287,"style":1649},[401],[385,3289,591],{"className":3290},[406,407],[385,3292],{"className":3293,"style":598},[421],[385,3295,3297],{"className":3296},[602],"←",[385,3299],{"className":3300,"style":598},[421],[385,3302,3304,3307,3310,3313,3316],{"className":3303},[397],[385,3305],{"className":3306,"style":2078},[401],[385,3308,591],{"className":3309},[406,407],[385,3311],{"className":3312,"style":628},[421],[385,3314,633],{"className":3315},[632],[385,3317],{"className":3318,"style":628},[421],[385,3320,3322,3325,3331,3334,3337],{"className":3321},[397],[385,3323],{"className":3324,"style":402},[401],[385,3326,3328],{"className":3327},[911],[385,3329,1672],{"className":3330},[406,915],[385,3332,527],{"className":3333},[412],[385,3335,591],{"className":3336},[406,407],[385,3338,534],{"className":3339},[438]," moves to the next larger block that covers ",[385,3342,3344],{"className":3343},[388],[385,3345,3347],{"className":3346,"ariaHidden":393},[392],[385,3348,3350,3353],{"className":3349},[397],[385,3351],{"className":3352,"style":856},[401],[385,3354,794],{"className":3355,"style":793},[406,407],", until we\nrun past ",[385,3358,3360],{"className":3359},[388],[385,3361,3363],{"className":3362,"ariaHidden":393},[392],[385,3364,3366,3370],{"className":3365},[397],[385,3367],{"className":3368,"style":3369},[401],"height:0.4306em;",[385,3371,434],{"className":3372},[406,407],[3108,3374,3376],{"className":3110,"code":3375,"language":3112,"meta":376,"style":376},"caption: $\\textsc{Update}(F, k, \\delta)$ — add $\\delta$ to $A[k]$\nwhile $k \\le n$ do\n  $F[k] \\gets F[k] + \\delta$\n  $k \\gets k + \\operatorname{lowbit}(k)$ \u002F\u002F move to the next covering block\n",[3114,3377,3378,3383,3388,3393],{"__ignoreMap":376},[385,3379,3380],{"class":3118,"line":6},[385,3381,3382],{},"caption: $\\textsc{Update}(F, k, \\delta)$ — add $\\delta$ to $A[k]$\n",[385,3384,3385],{"class":3118,"line":18},[385,3386,3387],{},"while $k \\le n$ do\n",[385,3389,3390],{"class":3118,"line":24},[385,3391,3392],{},"  $F[k] \\gets F[k] + \\delta$\n",[385,3394,3395],{"class":3118,"line":73},[385,3396,3397],{},"  $k \\gets k + \\operatorname{lowbit}(k)$ \u002F\u002F move to the next covering block\n",[3399,3400,3402],"callout",{"type":3401},"lemma",[381,3403,3404,3407,3408,3433,3434,3457,3458,3491,3492,927],{},[442,3405,3406],{},"Lemma."," Both ",[385,3409,3411],{"className":3410},[388],[385,3412,3414],{"className":3413,"ariaHidden":393},[392],[385,3415,3417,3420],{"className":3416},[397],[385,3418],{"className":3419,"style":856},[401],[385,3421,3425],{"className":3422},[3423,3424],"enclosing","textsc",[385,3426,3429],{"className":3427},[406,3428],"text",[385,3430,3432],{"className":3431},[406],"PrefixSum"," and ",[385,3435,3437],{"className":3436},[388],[385,3438,3440],{"className":3439,"ariaHidden":393},[392],[385,3441,3443,3447],{"className":3442},[397],[385,3444],{"className":3445,"style":3446},[401],"height:0.8889em;vertical-align:-0.1944em;",[385,3448,3450],{"className":3449},[3423,3424],[385,3451,3453],{"className":3452},[406,3428],[385,3454,3456],{"className":3455},[406],"Update"," touch ",[385,3459,3461],{"className":3460},[388],[385,3462,3464],{"className":3463,"ariaHidden":393},[392],[385,3465,3467,3470,3473,3476,3482,3485,3488],{"className":3466},[397],[385,3468],{"className":3469,"style":402},[401],[385,3471,523],{"className":3472,"style":485},[406,407],[385,3474,527],{"className":3475},[412],[385,3477,3479],{"className":3478},[911],[385,3480,917],{"className":3481,"style":916},[406,915],[385,3483],{"className":3484,"style":422},[421],[385,3486,434],{"className":3487},[406,407],[385,3489,534],{"className":3490},[438],"\nentries of ",[385,3493,3495],{"className":3494},[388],[385,3496,3498],{"className":3497,"ariaHidden":393},[392],[385,3499,3501,3504],{"className":3500},[397],[385,3502],{"className":3503,"style":503},[401],[385,3505,1570],{"className":3506,"style":583},[406,407],[3399,3508,3510],{"type":3509},"proof",[381,3511,3512,449,3515,3536,3537,3552,3553,3568,3569,3659,3660,3681,3682,3709,3710,3725,3726,3729,3730,3745,3746,3761,3762,3795,3796,3811,3812],{},[442,3513,3514],{},"Proof.",[385,3516,3518],{"className":3517},[388],[385,3519,3521],{"className":3520,"ariaHidden":393},[392],[385,3522,3524,3527],{"className":3523},[397],[385,3525],{"className":3526,"style":856},[401],[385,3528,3530],{"className":3529},[3423,3424],[385,3531,3533],{"className":3532},[406,3428],[385,3534,3432],{"className":3535},[406]," clears one set bit of ",[385,3538,3540],{"className":3539},[388],[385,3541,3543],{"className":3542,"ariaHidden":393},[392],[385,3544,3546,3549],{"className":3545},[397],[385,3547],{"className":3548,"style":1649},[401],[385,3550,591],{"className":3551},[406,407]," per iteration, so it\nruns at most as many times as ",[385,3554,3556],{"className":3555},[388],[385,3557,3559],{"className":3558,"ariaHidden":393},[392],[385,3560,3562,3565],{"className":3561},[397],[385,3563],{"className":3564,"style":1649},[401],[385,3566,591],{"className":3567},[406,407]," has set bits, at most ",[385,3570,3572],{"className":3571},[388],[385,3573,3575,3650],{"className":3574,"ariaHidden":393},[392],[385,3576,3578,3581,3585,3631,3634,3637,3641,3644,3647],{"className":3577},[397],[385,3579],{"className":3580,"style":402},[401],[385,3582,3584],{"className":3583},[412],"⌊",[385,3586,3588,3594],{"className":3587},[911],[385,3589,3591],{"className":3590},[911],[385,3592,917],{"className":3593,"style":916},[406,915],[385,3595,3597],{"className":3596},[2214],[385,3598,3600,3622],{"className":3599},[1826,1827],[385,3601,3603,3619],{"className":3602},[1831],[385,3604,3607],{"className":3605,"style":3606},[1835],"height:0.207em;",[385,3608,3610,3613],{"style":3609},"top:-2.4559em;margin-right:0.05em;",[385,3611],{"className":3612,"style":2231},[1843],[385,3614,3616],{"className":3615},[1848,1849,1850,1851],[385,3617,2238],{"className":3618},[406,1851],[385,3620,1930],{"className":3621},[1929],[385,3623,3625],{"className":3624},[1831],[385,3626,3629],{"className":3627,"style":3628},[1835],"height:0.2441em;",[385,3630],{},[385,3632],{"className":3633,"style":422},[421],[385,3635,434],{"className":3636},[406,407],[385,3638,3640],{"className":3639},[438],"⌋",[385,3642],{"className":3643,"style":628},[421],[385,3645,633],{"className":3646},[632],[385,3648],{"className":3649,"style":628},[421],[385,3651,3653,3656],{"className":3652},[397],[385,3654],{"className":3655,"style":2178},[401],[385,3657,417],{"className":3658},[406],". For ",[385,3661,3663],{"className":3662},[388],[385,3664,3666],{"className":3665,"ariaHidden":393},[392],[385,3667,3669,3672],{"className":3668},[397],[385,3670],{"className":3671,"style":3446},[401],[385,3673,3675],{"className":3674},[3423,3424],[385,3676,3678],{"className":3677},[406,3428],[385,3679,3456],{"className":3680},[406],", adding ",[385,3683,3685],{"className":3684},[388],[385,3686,3688],{"className":3687,"ariaHidden":393},[392],[385,3689,3691,3694,3700,3703,3706],{"className":3690},[397],[385,3692],{"className":3693,"style":402},[401],[385,3695,3697],{"className":3696},[911],[385,3698,1672],{"className":3699},[406,915],[385,3701,527],{"className":3702},[412],[385,3704,794],{"className":3705,"style":793},[406,407],[385,3707,534],{"className":3708},[438]," to ",[385,3711,3713],{"className":3712},[388],[385,3714,3716],{"className":3715,"ariaHidden":393},[392],[385,3717,3719,3722],{"className":3718},[397],[385,3720],{"className":3721,"style":856},[401],[385,3723,794],{"className":3724,"style":793},[406,407],"\ncarries the lowest set bit upward and strictly increases the ",[887,3727,3728],{},"value"," of the low\nbit each step (a ",[385,3731,3733],{"className":3732},[388],[385,3734,3736],{"className":3735,"ariaHidden":393},[392],[385,3737,3739,3742],{"className":3738},[397],[385,3740],{"className":3741,"style":2178},[401],[385,3743,417],{"className":3744},[406],"-run is replaced by a higher single ",[385,3747,3749],{"className":3748},[388],[385,3750,3752],{"className":3751,"ariaHidden":393},[392],[385,3753,3755,3758],{"className":3754},[397],[385,3756],{"className":3757,"style":2178},[401],[385,3759,417],{"className":3760},[406],"), so it too runs\n",[385,3763,3765],{"className":3764},[388],[385,3766,3768],{"className":3767,"ariaHidden":393},[392],[385,3769,3771,3774,3777,3780,3786,3789,3792],{"className":3770},[397],[385,3772],{"className":3773,"style":402},[401],[385,3775,523],{"className":3776,"style":485},[406,407],[385,3778,527],{"className":3779},[412],[385,3781,3783],{"className":3782},[911],[385,3784,917],{"className":3785,"style":916},[406,915],[385,3787],{"className":3788,"style":422},[421],[385,3790,434],{"className":3791},[406,407],[385,3793,534],{"className":3794},[438]," times before exceeding ",[385,3797,3799],{"className":3798},[388],[385,3800,3802],{"className":3801,"ariaHidden":393},[392],[385,3803,3805,3808],{"className":3804},[397],[385,3806],{"className":3807,"style":3369},[401],[385,3809,434],{"className":3810},[406,407],". ",[385,3813,3815],{"className":3814},[388],[385,3816,3818],{"className":3817,"ariaHidden":393},[392],[385,3819,3821,3825],{"className":3820},[397],[385,3822],{"className":3823,"style":3824},[401],"height:0.675em;",[385,3826,3829],{"className":3827},[3423,3828],"qed",[385,3830,3833],{"className":3831},[406,3832],"amsrm","□",[381,3835,3836,3837,3858,3859,3861,3862,3883,3884,3887,3888,3906],{},"The two walks are mirror images on the same number line. ",[385,3838,3840],{"className":3839},[388],[385,3841,3843],{"className":3842,"ariaHidden":393},[392],[385,3844,3846,3849],{"className":3845},[397],[385,3847],{"className":3848,"style":3446},[401],[385,3850,3852],{"className":3851},[3423,3424],[385,3853,3855],{"className":3854},[406,3428],[385,3856,3456],{"className":3857},[406]," climbs\nto larger indices by ",[887,3860,3258],{}," the low bit, visiting every block that owns the\nchanged element; ",[385,3863,3865],{"className":3864},[388],[385,3866,3868],{"className":3867,"ariaHidden":393},[392],[385,3869,3871,3874],{"className":3870},[397],[385,3872],{"className":3873,"style":856},[401],[385,3875,3877],{"className":3876},[3423,3424],[385,3878,3880],{"className":3879},[406,3428],[385,3881,3432],{"className":3882},[406]," descends to smaller indices by ",[887,3885,3886],{},"subtracting","\nit, peeling off the blocks that tile the prefix. The same ",[385,3889,3891],{"className":3890},[388],[385,3892,3894],{"className":3893,"ariaHidden":393},[392],[385,3895,3897,3900],{"className":3896},[397],[385,3898],{"className":3899,"style":856},[401],[385,3901,3903],{"className":3902},[911],[385,3904,1672],{"className":3905},[406,915],"\nhop drives both, in opposite directions.",[929,3908,3910,4152],{"className":3909},[932,933],[935,3911,3915],{"xmlns":937,"width":3912,"height":3913,"viewBox":3914},"337.055","133.778","-75 -75 252.791 100.334",[942,3916,3917,3920,3926,3929,3935,3938,3944,3947,3953,3956,3962,3965,3971,3974,3980,3983,3989,3996,4004,4012,4071,4080,4088,4096,4104,4143],{"stroke":944,"style":945},[950,3918],{"fill":958,"d":3919},"M-37.651-15.145h22.762v-22.762H-37.65Z",[942,3921,3922],{"transform":2560},[950,3923],{"d":3924,"fill":944,"stroke":944,"className":3925,"style":967},"M-49.393-26.526L-52.425-26.526L-52.425-26.842Q-51.274-26.842-51.274-27.137L-51.274-31.861Q-51.762-31.628-52.483-31.628L-52.483-31.944Q-51.353-31.944-50.791-32.520L-50.646-32.520Q-50.611-32.520-50.578-32.487Q-50.545-32.454-50.545-32.419L-50.545-27.137Q-50.545-26.842-49.393-26.842",[954],[950,3927],{"fill":958,"d":3928},"M-10.621-15.145H12.14v-22.762H-10.62Z",[942,3930,3931],{"transform":2570},[950,3932],{"d":3933,"fill":944,"stroke":944,"className":3934,"style":967},"M-49.393-26.526L-52.843-26.526L-52.843-26.759Q-52.843-26.772-52.812-26.803L-51.358-28.380Q-50.892-28.877-50.639-29.182Q-50.386-29.488-50.195-29.899Q-50.004-30.310-50.004-30.749Q-50.004-31.338-50.327-31.771Q-50.650-32.204-51.230-32.204Q-51.494-32.204-51.740-32.094Q-51.986-31.984-52.162-31.797Q-52.338-31.610-52.434-31.360L-52.355-31.360Q-52.153-31.360-52.010-31.224Q-51.867-31.088-51.867-30.872Q-51.867-30.666-52.010-30.527Q-52.153-30.389-52.355-30.389Q-52.557-30.389-52.700-30.532Q-52.843-30.674-52.843-30.872Q-52.843-31.334-52.606-31.707Q-52.368-32.081-51.968-32.300Q-51.569-32.520-51.120-32.520Q-50.597-32.520-50.143-32.305Q-49.688-32.089-49.415-31.690Q-49.143-31.290-49.143-30.749Q-49.143-30.354-49.314-30Q-49.486-29.646-49.751-29.367Q-50.017-29.088-50.468-28.703Q-50.918-28.319-50.997-28.244L-52.021-27.282L-51.204-27.282Q-50.553-27.282-50.116-27.293Q-49.679-27.304-49.648-27.326Q-49.578-27.409-49.523-27.649Q-49.468-27.888-49.428-28.156L-49.143-28.156",[954],[950,3936],{"fill":958,"d":3937},"M16.409-15.145h22.762v-22.762H16.41Z",[942,3939,3940],{"transform":2580},[950,3941],{"d":3942,"fill":944,"stroke":944,"className":3943,"style":967},"M-52.399-27.247L-52.443-27.247Q-52.241-26.930-51.854-26.772Q-51.467-26.614-51.041-26.614Q-50.505-26.614-50.266-27.049Q-50.026-27.484-50.026-28.064Q-50.026-28.644-50.272-29.084Q-50.518-29.523-51.050-29.523L-51.670-29.523Q-51.696-29.523-51.729-29.552Q-51.762-29.580-51.762-29.602L-51.762-29.703Q-51.762-29.734-51.733-29.758Q-51.705-29.782-51.670-29.782L-51.151-29.822Q-50.685-29.822-50.439-30.294Q-50.193-30.767-50.193-31.285Q-50.193-31.712-50.406-31.986Q-50.619-32.261-51.041-32.261Q-51.384-32.261-51.709-32.131Q-52.034-32.002-52.219-31.747L-52.193-31.747Q-51.990-31.747-51.854-31.606Q-51.718-31.465-51.718-31.268Q-51.718-31.070-51.852-30.936Q-51.986-30.802-52.184-30.802Q-52.386-30.802-52.524-30.936Q-52.663-31.070-52.663-31.268Q-52.663-31.857-52.160-32.188Q-51.656-32.520-51.041-32.520Q-50.663-32.520-50.261-32.380Q-49.859-32.239-49.591-31.960Q-49.323-31.681-49.323-31.285Q-49.323-30.736-49.677-30.299Q-50.030-29.861-50.571-29.677Q-50.180-29.598-49.835-29.374Q-49.490-29.150-49.279-28.809Q-49.068-28.468-49.068-28.073Q-49.068-27.691-49.231-27.368Q-49.393-27.045-49.685-26.809Q-49.978-26.574-50.325-26.451Q-50.672-26.328-51.041-26.328Q-51.489-26.328-51.920-26.489Q-52.351-26.649-52.632-26.976Q-52.913-27.304-52.913-27.761Q-52.913-27.976-52.766-28.119Q-52.619-28.262-52.399-28.262Q-52.188-28.262-52.043-28.117Q-51.898-27.972-51.898-27.761Q-51.898-27.550-52.045-27.398Q-52.193-27.247-52.399-27.247",[954],[950,3945],{"fill":958,"d":3946},"M43.439-15.145h22.762v-22.762H43.44Z",[942,3948,3949],{"transform":2590},[950,3950],{"d":3951,"fill":944,"stroke":944,"className":3952,"style":967},"M-50.602-28.003L-53.041-28.003L-53.041-28.319L-50.215-32.467Q-50.171-32.520-50.105-32.520L-49.951-32.520Q-49.912-32.520-49.879-32.487Q-49.846-32.454-49.846-32.410L-49.846-28.319L-48.945-28.319L-48.945-28.003L-49.846-28.003L-49.846-27.137Q-49.846-26.842-48.945-26.842L-48.945-26.526L-51.498-26.526L-51.498-26.842Q-51.138-26.842-50.870-26.897Q-50.602-26.952-50.602-27.137L-50.602-28.003M-50.545-31.492L-52.707-28.319L-50.545-28.319",[954],[950,3954],{"fill":958,"d":3955},"M70.469-15.145h22.762v-22.762H70.47Z",[942,3957,3958],{"transform":2600},[950,3959],{"d":3960,"fill":944,"stroke":944,"className":3961,"style":967},"M-52.474-27.532Q-52.333-27.119-51.973-26.867Q-51.612-26.614-51.177-26.614Q-50.725-26.614-50.459-26.867Q-50.193-27.119-50.090-27.504Q-49.987-27.888-49.987-28.345Q-49.987-30.046-50.896-30.046Q-51.217-30.046-51.446-29.952Q-51.674-29.857-51.804-29.738Q-51.933-29.620-52.045-29.481Q-52.157-29.343-52.193-29.334L-52.276-29.334Q-52.320-29.334-52.351-29.365Q-52.382-29.396-52.382-29.444L-52.382-32.441Q-52.382-32.472-52.346-32.496Q-52.311-32.520-52.285-32.520L-52.245-32.520Q-51.612-32.230-50.940-32.230Q-50.268-32.230-49.626-32.520L-49.600-32.520Q-49.569-32.520-49.536-32.498Q-49.503-32.476-49.503-32.441L-49.503-32.340Q-49.503-32.336-49.512-32.318Q-49.521-32.300-49.521-32.296Q-49.837-31.901-50.307-31.679Q-50.778-31.457-51.274-31.457Q-51.683-31.457-52.065-31.567L-52.065-29.848Q-51.608-30.305-50.896-30.305Q-50.386-30.305-49.987-30.024Q-49.587-29.743-49.365-29.288Q-49.143-28.833-49.143-28.328Q-49.143-27.778-49.422-27.319Q-49.701-26.860-50.167-26.594Q-50.633-26.328-51.177-26.328Q-51.617-26.328-52.001-26.555Q-52.386-26.781-52.614-27.161Q-52.843-27.541-52.843-27.985Q-52.843-28.178-52.711-28.310Q-52.579-28.442-52.382-28.442Q-52.250-28.442-52.146-28.383Q-52.043-28.323-51.984-28.220Q-51.925-28.117-51.925-27.985Q-51.925-27.787-52.052-27.655Q-52.179-27.524-52.382-27.524Q-52.443-27.524-52.474-27.532",[954],[950,3963],{"fill":958,"d":3964},"M97.499-15.145h22.762v-22.762H97.5Z",[942,3966,3967],{"transform":2610},[950,3968],{"d":3969,"fill":944,"stroke":944,"className":3970,"style":967},"M-50.988-26.328Q-51.722-26.328-52.153-26.809Q-52.584-27.291-52.748-27.983Q-52.913-28.675-52.913-29.422Q-52.913-30.151-52.621-30.874Q-52.329-31.597-51.775-32.059Q-51.221-32.520-50.474-32.520Q-49.978-32.520-49.642-32.254Q-49.305-31.988-49.305-31.505Q-49.305-31.325-49.433-31.197Q-49.560-31.070-49.736-31.070Q-49.916-31.070-50.046-31.195Q-50.175-31.320-50.175-31.505Q-50.175-31.619-50.118-31.723Q-50.061-31.826-49.960-31.885Q-49.859-31.944-49.736-31.944Q-49.732-31.944-49.727-31.942Q-49.723-31.940-49.718-31.936Q-49.833-32.103-50.041-32.182Q-50.250-32.261-50.474-32.261Q-50.918-32.261-51.276-31.960Q-51.634-31.659-51.823-31.206Q-52.056-30.600-52.056-29.567Q-51.885-29.932-51.584-30.160Q-51.283-30.389-50.896-30.389Q-50.492-30.389-50.147-30.222Q-49.802-30.055-49.565-29.774Q-49.327-29.492-49.198-29.130Q-49.068-28.767-49.068-28.363Q-49.068-27.818-49.312-27.352Q-49.556-26.886-49.995-26.607Q-50.435-26.328-50.988-26.328M-50.988-26.614Q-50.527-26.614-50.292-26.871Q-50.057-27.128-49.991-27.502Q-49.925-27.875-49.925-28.345L-49.925-28.380Q-49.925-28.868-49.982-29.233Q-50.039-29.598-50.268-29.861Q-50.496-30.125-50.940-30.125Q-51.309-30.125-51.560-29.881Q-51.810-29.637-51.925-29.273Q-52.039-28.908-52.039-28.561Q-52.039-28.442-52.030-28.380Q-52.030-28.363-52.032-28.352Q-52.034-28.341-52.039-28.328Q-52.039-27.677-51.801-27.146Q-51.564-26.614-50.988-26.614",[954],[950,3972],{"fill":958,"d":3973},"M124.529-15.145h22.762v-22.762H124.53Z",[942,3975,3976],{"transform":2620},[950,3977],{"d":3978,"fill":944,"stroke":944,"className":3979,"style":967},"M-51.678-26.768Q-51.678-27.405-51.522-28.051Q-51.366-28.697-51.074-29.303Q-50.782-29.910-50.373-30.459L-49.556-31.567L-50.584-31.567Q-52.228-31.567-52.276-31.523Q-52.382-31.395-52.500-30.692L-52.786-30.692L-52.491-32.608L-52.201-32.608L-52.201-32.582Q-52.201-32.419-51.637-32.371Q-51.072-32.322-50.527-32.322L-48.809-32.322L-48.809-32.116Q-48.809-32.098-48.811-32.089Q-48.813-32.081-48.818-32.072L-50.105-30.323Q-50.356-29.971-50.503-29.545Q-50.650-29.119-50.716-28.655Q-50.782-28.192-50.795-27.781Q-50.808-27.370-50.808-26.768Q-50.808-26.588-50.934-26.458Q-51.059-26.328-51.239-26.328Q-51.358-26.328-51.461-26.385Q-51.564-26.443-51.621-26.546Q-51.678-26.649-51.678-26.768",[954],[950,3981],{"fill":958,"d":3982},"M151.559-15.145h22.762v-22.762H151.56Z",[942,3984,3985],{"transform":2630},[950,3986],{"d":3987,"fill":944,"stroke":944,"className":3988,"style":967},"M-52.913-27.893Q-52.913-28.451-52.553-28.864Q-52.193-29.277-51.617-29.549L-51.986-29.782Q-52.289-29.984-52.476-30.314Q-52.663-30.644-52.663-31Q-52.663-31.654-52.157-32.087Q-51.652-32.520-50.988-32.520Q-50.589-32.520-50.204-32.360Q-49.820-32.199-49.571-31.894Q-49.323-31.588-49.323-31.171Q-49.323-30.340-50.391-29.782L-49.837-29.435Q-49.490-29.207-49.279-28.838Q-49.068-28.468-49.068-28.055Q-49.068-27.677-49.226-27.359Q-49.384-27.040-49.661-26.807Q-49.938-26.574-50.281-26.451Q-50.624-26.328-50.988-26.328Q-51.454-26.328-51.900-26.515Q-52.346-26.702-52.630-27.056Q-52.913-27.409-52.913-27.893M-52.390-27.893Q-52.390-27.348-51.971-26.981Q-51.551-26.614-50.988-26.614Q-50.659-26.614-50.334-26.746Q-50.008-26.878-49.800-27.132Q-49.591-27.387-49.591-27.730Q-49.591-27.994-49.727-28.218Q-49.863-28.442-50.096-28.596L-51.340-29.378Q-51.801-29.141-52.096-28.754Q-52.390-28.367-52.390-27.893M-51.779-30.648L-50.663-29.945Q-50.439-30.068-50.235-30.257Q-50.030-30.446-49.910-30.679Q-49.789-30.912-49.789-31.171Q-49.789-31.479-49.960-31.729Q-50.132-31.980-50.408-32.120Q-50.685-32.261-50.997-32.261Q-51.446-32.261-51.819-32.015Q-52.193-31.769-52.193-31.342Q-52.193-30.938-51.779-30.648",[954],[942,3990,3992],{"transform":3991},"translate(-8.97 2.733)",[950,3993],{"d":3994,"fill":944,"stroke":944,"className":3995,"style":955},"M-50.460-26.526L-52.820-26.526Q-52.855-26.526-52.886-26.567Q-52.917-26.608-52.917-26.655L-52.894-26.756Q-52.859-26.811-52.796-26.823Q-52.355-26.823-52.196-26.862Q-52.038-26.901-51.995-27.128L-50.917-31.448Q-50.894-31.518-50.894-31.581Q-50.894-31.643-50.956-31.663Q-51.101-31.694-51.523-31.694Q-51.628-31.721-51.628-31.823L-51.597-31.924Q-51.566-31.983-51.507-31.991L-47.109-31.991Q-47.011-31.963-47.011-31.870L-47.179-30.245Q-47.198-30.167-47.284-30.143L-47.362-30.143Q-47.460-30.171-47.460-30.268Q-47.421-30.737-47.421-30.823Q-47.421-31.229-47.603-31.419Q-47.784-31.608-48.060-31.651Q-48.335-31.694-48.804-31.694L-49.773-31.694Q-49.945-31.694-50.007-31.680Q-50.070-31.667-50.103-31.608Q-50.136-31.549-50.179-31.389L-50.675-29.405L-50.042-29.405Q-49.616-29.405-49.409-29.462Q-49.202-29.518-49.081-29.694Q-48.960-29.870-48.859-30.268Q-48.827-30.335-48.773-30.342L-48.691-30.342Q-48.589-30.315-48.589-30.221L-49.085-28.245Q-49.116-28.186-49.171-28.174L-49.253-28.174Q-49.355-28.202-49.355-28.303Q-49.277-28.608-49.277-28.764Q-49.277-28.921-49.398-28.999Q-49.519-29.077-49.673-29.094Q-49.827-29.112-50.034-29.112L-50.749-29.112L-51.261-27.069Q-51.265-27.057-51.267-27.038Q-51.269-27.018-51.271-26.999Q-51.273-26.979-51.277-26.967Q-51.277-26.885-51.195-26.862Q-51.097-26.842-50.904-26.833Q-50.710-26.823-50.445-26.823Q-50.339-26.792-50.339-26.702L-50.370-26.596Q-50.405-26.534-50.460-26.526",[954],[942,3997,3998,4001],{"fill":1039,"stroke":1039,"style":1041},[950,3999],{"fill":958,"d":4000},"M81.85-39.529c7.454-7.454 19.577-7.454 25.192-1.839",[950,4002],{"stroke":958,"d":4003},"m108.88-39.53-1.47-4.412-.368 2.574-2.574.368",[942,4005,4006,4009],{"fill":1039,"stroke":1039,"style":1041},[950,4007],{"fill":958,"d":4008},"M108.88-39.529c17.27-12.093 36.79-12.093 51.93-1.492",[950,4010],{"stroke":958,"d":4011},"m162.94-39.53-2.214-4.09.084 2.6-2.47.808",[942,4013,4014],{"fill":1039,"stroke":1039},[942,4015,4016,4023,4029,4035,4041,4047,4053,4059,4065],{"fill":1039,"stroke":958,"fontSize":2385},[942,4017,4019],{"transform":4018},"translate(77.942 -36.411)",[950,4020],{"d":4021,"fill":1039,"stroke":1039,"className":4022,"style":955},"M-52.054-28.335L-52.054-31.456Q-52.054-31.710-52.874-31.710L-52.874-31.991L-50.484-31.991L-50.484-31.710Q-51.308-31.710-51.308-31.456L-51.308-28.366Q-51.308-27.624-50.976-27.128Q-50.644-26.631-49.933-26.631Q-49.468-26.631-49.097-26.868Q-48.726-27.104-48.525-27.501Q-48.323-27.897-48.323-28.366L-48.323-31.237Q-48.323-31.710-49.148-31.710L-49.148-31.991L-47.222-31.991L-47.222-31.710Q-48.042-31.710-48.042-31.237L-48.042-28.335Q-48.042-27.815-48.292-27.356Q-48.542-26.897-48.976-26.624Q-49.409-26.350-49.933-26.350Q-50.472-26.350-50.964-26.608Q-51.456-26.866-51.755-27.323Q-52.054-27.780-52.054-28.335M-44.691-26.526L-46.452-26.526L-46.452-26.756Q-46.265-26.756-46.148-26.772Q-46.030-26.788-45.952-26.854Q-45.874-26.921-45.874-27.061L-45.874-30.100Q-45.874-30.307-46.021-30.356Q-46.167-30.405-46.452-30.405L-46.452-30.639L-44.253-30.639Q-43.913-30.639-43.560-30.505Q-43.206-30.370-42.974-30.110Q-42.741-29.850-42.741-29.495Q-42.741-29.135-42.974-28.881Q-43.206-28.628-43.556-28.497Q-43.905-28.366-44.253-28.366L-45.269-28.366L-45.269-27.061Q-45.269-26.921-45.191-26.854Q-45.112-26.788-44.995-26.772Q-44.878-26.756-44.691-26.756L-44.691-26.526M-45.292-30.100L-45.292-28.581L-44.437-28.581Q-44.097-28.581-43.882-28.669Q-43.667-28.756-43.564-28.962Q-43.460-29.167-43.460-29.495Q-43.460-29.842-43.562-30.038Q-43.663-30.233-43.874-30.319Q-44.085-30.405-44.437-30.405L-45.003-30.405Q-45.187-30.405-45.239-30.348Q-45.292-30.292-45.292-30.100M-39.706-26.526L-41.995-26.526L-41.995-26.756Q-41.808-26.756-41.691-26.772Q-41.573-26.788-41.495-26.854Q-41.417-26.921-41.417-27.061L-41.417-30.100Q-41.417-30.307-41.564-30.356Q-41.710-30.405-41.995-30.405L-41.995-30.639L-39.706-30.639Q-39.292-30.639-38.933-30.469Q-38.573-30.299-38.312-30.008Q-38.050-29.717-37.902-29.337Q-37.753-28.956-37.753-28.542Q-37.753-28.010-38.015-27.544Q-38.277-27.077-38.724-26.801Q-39.171-26.526-39.706-26.526M-40.546-26.756L-39.890-26.756Q-39.120-26.756-38.786-27.247Q-38.452-27.737-38.452-28.542Q-38.452-28.928-38.523-29.258Q-38.593-29.588-38.759-29.850Q-38.925-30.112-39.202-30.258Q-39.480-30.405-39.890-30.405L-40.546-30.405Q-40.730-30.405-40.782-30.348Q-40.835-30.292-40.835-30.100L-40.835-27.061Q-40.835-26.878-40.780-26.817Q-40.726-26.756-40.546-26.756",[954],[942,4024,4025],{"transform":4018},[950,4026],{"d":4027,"fill":1039,"stroke":1039,"className":4028,"style":955},"M-35.958-26.526L-37.236-26.526L-37.236-26.756Q-36.993-26.756-36.808-26.893Q-36.622-27.030-36.525-27.268L-35.212-30.686Q-35.189-30.772-35.083-30.772L-35.029-30.772Q-34.986-30.772-34.948-30.751Q-34.911-30.729-34.900-30.686L-33.501-27.038Q-33.411-26.846-33.279-26.801Q-33.146-26.756-32.876-26.756L-32.876-26.526L-34.532-26.526L-34.532-26.756Q-34.357-26.756-34.238-26.794Q-34.118-26.831-34.118-26.967Q-34.118-27.022-34.134-27.053L-34.439-27.838L-36.060-27.838L-36.279-27.268Q-36.310-27.194-36.310-27.100Q-36.310-26.956-36.210-26.856Q-36.111-26.756-35.958-26.756L-35.958-26.526M-35.243-29.960L-35.974-28.069L-34.525-28.069",[954],[942,4030,4031],{"transform":4018},[950,4032],{"d":4033,"fill":1039,"stroke":1039,"className":4034,"style":955},"M-29.648-26.526L-31.890-26.526L-31.890-26.756Q-31.550-26.756-31.312-26.811Q-31.074-26.866-31.074-27.061L-31.074-30.100Q-31.074-30.296-31.122-30.350Q-31.171-30.405-31.359-30.405L-31.648-30.405Q-31.898-30.405-32.074-30.364Q-32.249-30.323-32.374-30.198Q-32.488-30.085-32.540-29.840Q-32.593-29.596-32.616-29.253L-32.847-29.253L-32.738-30.639L-28.808-30.639L-28.695-29.253L-28.929-29.253Q-28.952-29.596-28.999-29.840Q-29.046-30.085-29.159-30.198Q-29.374-30.405-29.898-30.405L-30.175-30.405Q-30.359-30.405-30.411-30.348Q-30.464-30.292-30.464-30.100L-30.464-27.061Q-30.464-26.866-30.226-26.811Q-29.988-26.756-29.648-26.756L-29.648-26.526M-24.409-26.526L-28.081-26.526L-28.081-26.756Q-27.894-26.756-27.777-26.772Q-27.659-26.788-27.583-26.854Q-27.507-26.921-27.507-27.061L-27.507-30.100Q-27.507-30.307-27.652-30.356Q-27.796-30.405-28.081-30.405L-28.081-30.639L-24.507-30.639L-24.355-29.253L-24.585-29.253Q-24.644-29.768-24.773-30.008Q-24.902-30.249-25.167-30.327Q-25.433-30.405-25.952-30.405L-26.609-30.405Q-26.792-30.405-26.845-30.348Q-26.898-30.292-26.898-30.100L-26.898-28.772L-26.441-28.772Q-26.120-28.772-25.966-28.819Q-25.812-28.866-25.747-29.012Q-25.683-29.159-25.683-29.471L-25.449-29.471L-25.449-27.846L-25.683-27.846Q-25.683-28.159-25.747-28.303Q-25.812-28.448-25.968-28.495Q-26.124-28.542-26.441-28.542L-26.898-28.542L-26.898-27.061Q-26.898-26.878-26.843-26.817Q-26.788-26.756-26.609-26.756L-25.906-26.756Q-25.460-26.756-25.204-26.817Q-24.949-26.878-24.794-27.020Q-24.640-27.163-24.556-27.421Q-24.472-27.678-24.409-28.112L-24.179-28.112",[954],[942,4036,4037],{"transform":4018},[950,4038],{"d":4039,"fill":1039,"stroke":1039,"className":4040,"style":955},"M-21.328-24.534Q-21.941-24.991-22.343-25.626Q-22.746-26.260-22.941-27.006Q-23.136-27.753-23.136-28.526Q-23.136-29.299-22.941-30.046Q-22.746-30.792-22.343-31.426Q-21.941-32.061-21.328-32.518Q-21.316-32.522-21.308-32.524Q-21.300-32.526-21.289-32.526L-21.211-32.526Q-21.172-32.526-21.146-32.499Q-21.121-32.471-21.121-32.428Q-21.121-32.378-21.152-32.358Q-21.660-31.905-21.982-31.282Q-22.304-30.659-22.445-29.963Q-22.586-29.268-22.586-28.526Q-22.586-27.792-22.447-27.092Q-22.308-26.393-21.984-25.768Q-21.660-25.143-21.152-24.694Q-21.121-24.674-21.121-24.624Q-21.121-24.581-21.146-24.553Q-21.172-24.526-21.211-24.526L-21.289-24.526Q-21.297-24.530-21.306-24.532Q-21.316-24.534-21.328-24.534M-19.800-27.405L-19.863-27.405Q-19.722-27.053-19.398-26.842Q-19.074-26.631-18.687-26.631Q-18.093-26.631-17.843-27.065Q-17.593-27.499-17.593-28.135Q-17.593-28.729-17.763-29.176Q-17.933-29.624-18.433-29.624Q-18.730-29.624-18.935-29.544Q-19.140-29.463-19.242-29.372Q-19.343-29.280-19.459-29.147Q-19.574-29.014-19.625-28.999L-19.695-28.999Q-19.781-29.022-19.800-29.100L-19.800-31.749Q-19.769-31.846-19.695-31.846Q-19.679-31.846-19.672-31.844Q-19.664-31.842-19.656-31.838Q-19.070-31.588-18.472-31.588Q-17.890-31.588-17.273-31.846L-17.250-31.846Q-17.207-31.846-17.179-31.821Q-17.152-31.796-17.152-31.756L-17.152-31.678Q-17.152-31.647-17.175-31.624Q-17.472-31.272-17.894-31.075Q-18.316-30.878-18.777-30.878Q-19.125-30.878-19.504-30.983L-19.504-29.487Q-19.285-29.682-19.009-29.780Q-18.734-29.878-18.433-29.878Q-17.976-29.878-17.607-29.630Q-17.238-29.381-17.031-28.977Q-16.824-28.573-16.824-28.128Q-16.824-27.639-17.080-27.231Q-17.336-26.823-17.767-26.590Q-18.199-26.358-18.687-26.358Q-19.082-26.358-19.437-26.549Q-19.793-26.741-20.004-27.075Q-20.215-27.409-20.215-27.823Q-20.215-28.003-20.097-28.116Q-19.980-28.229-19.800-28.229Q-19.683-28.229-19.591-28.176Q-19.500-28.124-19.447-28.032Q-19.394-27.940-19.394-27.823Q-19.394-27.639-19.508-27.522Q-19.621-27.405-19.800-27.405M-15.754-24.526L-15.836-24.526Q-15.871-24.526-15.896-24.555Q-15.922-24.585-15.922-24.624Q-15.922-24.674-15.890-24.694Q-15.504-25.030-15.220-25.479Q-14.937-25.928-14.771-26.428Q-14.605-26.928-14.531-27.446Q-14.457-27.963-14.457-28.526Q-14.457-29.096-14.531-29.612Q-14.605-30.128-14.771-30.624Q-14.937-31.120-15.216-31.567Q-15.496-32.014-15.890-32.358Q-15.922-32.378-15.922-32.428Q-15.922-32.467-15.896-32.497Q-15.871-32.526-15.836-32.526L-15.754-32.526Q-15.742-32.526-15.732-32.524Q-15.722-32.522-15.715-32.518Q-15.101-32.061-14.699-31.426Q-14.297-30.792-14.101-30.046Q-13.906-29.299-13.906-28.526Q-13.906-27.753-14.101-27.006Q-14.297-26.260-14.699-25.626Q-15.101-24.991-15.715-24.534Q-15.726-24.534-15.734-24.532Q-15.742-24.530-15.754-24.526M-12.371-26.991Q-12.371-27.174-12.234-27.311Q-12.097-27.448-11.906-27.448Q-11.715-27.448-11.582-27.315Q-11.449-27.182-11.449-26.991Q-11.449-26.792-11.582-26.659Q-11.715-26.526-11.906-26.526Q-12.097-26.526-12.234-26.663Q-12.371-26.799-12.371-26.991M-12.371-29.518Q-12.371-29.702-12.234-29.838Q-12.097-29.975-11.906-29.975Q-11.715-29.975-11.582-29.842Q-11.449-29.710-11.449-29.518Q-11.449-29.319-11.582-29.186Q-11.715-29.053-11.906-29.053Q-12.097-29.053-12.234-29.190Q-12.371-29.327-12.371-29.518",[954],[942,4042,4043],{"transform":4018},[950,4044],{"d":4045,"fill":1039,"stroke":1039,"className":4046,"style":955},"M-6.663-28.253Q-6.663-28.749-6.413-29.174Q-6.163-29.600-5.743-29.846Q-5.323-30.092-4.823-30.092Q-4.284-30.092-3.893-29.967Q-3.503-29.842-3.503-29.428Q-3.503-29.323-3.553-29.231Q-3.604-29.139-3.696-29.088Q-3.788-29.038-3.897-29.038Q-4.003-29.038-4.094-29.088Q-4.186-29.139-4.237-29.231Q-4.288-29.323-4.288-29.428Q-4.288-29.651-4.120-29.756Q-4.342-29.815-4.815-29.815Q-5.112-29.815-5.327-29.676Q-5.542-29.538-5.673-29.307Q-5.803-29.077-5.862-28.807Q-5.921-28.538-5.921-28.253Q-5.921-27.858-5.788-27.508Q-5.655-27.159-5.383-26.942Q-5.112-26.725-4.714-26.725Q-4.339-26.725-4.063-26.942Q-3.788-27.159-3.686-27.518Q-3.671-27.581-3.608-27.581L-3.503-27.581Q-3.467-27.581-3.442-27.553Q-3.417-27.526-3.417-27.487L-3.417-27.463Q-3.549-26.983-3.934-26.715Q-4.319-26.448-4.823-26.448Q-5.186-26.448-5.520-26.585Q-5.854-26.721-6.114-26.971Q-6.374-27.221-6.518-27.557Q-6.663-27.893-6.663-28.253M-1.014-26.526L-2.846-26.526L-2.846-26.823Q-2.573-26.823-2.405-26.870Q-2.237-26.917-2.237-27.085L-2.237-31.245Q-2.237-31.460-2.299-31.555Q-2.362-31.651-2.481-31.672Q-2.600-31.694-2.846-31.694L-2.846-31.991L-1.624-32.077L-1.624-27.085Q-1.624-26.917-1.456-26.870Q-1.288-26.823-1.014-26.823L-1.014-26.526M1.290-26.526L-0.487-26.526L-0.487-26.823Q-0.214-26.823-0.046-26.870Q0.122-26.917 0.122-27.085L0.122-29.221Q0.122-29.436 0.066-29.532Q0.009-29.628-0.104-29.649Q-0.217-29.671-0.464-29.671L-0.464-29.967L0.736-30.053L0.736-27.085Q0.736-26.917 0.882-26.870Q1.029-26.823 1.290-26.823L1.290-26.526M-0.151-31.448Q-0.151-31.639-0.016-31.770Q0.119-31.901 0.314-31.901Q0.435-31.901 0.538-31.838Q0.642-31.776 0.704-31.672Q0.767-31.569 0.767-31.448Q0.767-31.253 0.636-31.118Q0.505-30.983 0.314-30.983Q0.115-30.983-0.018-31.116Q-0.151-31.249-0.151-31.448M3.720-26.526L1.865-26.526L1.865-26.823Q2.138-26.823 2.306-26.870Q2.474-26.917 2.474-27.085L2.474-29.221Q2.474-29.436 2.411-29.532Q2.349-29.628 2.230-29.649Q2.111-29.671 1.865-29.671L1.865-29.967L3.056-30.053L3.056-29.319Q3.169-29.534 3.363-29.702Q3.556-29.870 3.794-29.962Q4.033-30.053 4.286-30.053Q5.247-30.053 5.423-29.342Q5.607-29.671 5.935-29.862Q6.263-30.053 6.642-30.053Q7.818-30.053 7.818-28.975L7.818-27.085Q7.818-26.917 7.986-26.870Q8.154-26.823 8.423-26.823L8.423-26.526L6.568-26.526L6.568-26.823Q6.841-26.823 7.009-26.868Q7.177-26.913 7.177-27.085L7.177-28.960Q7.177-29.346 7.052-29.573Q6.927-29.799 6.576-29.799Q6.271-29.799 6.015-29.637Q5.759-29.475 5.611-29.206Q5.462-28.936 5.462-28.639L5.462-27.085Q5.462-26.917 5.632-26.870Q5.802-26.823 6.072-26.823L6.072-26.526L4.216-26.526L4.216-26.823Q4.490-26.823 4.658-26.870Q4.826-26.917 4.826-27.085L4.826-28.960Q4.826-29.346 4.701-29.573Q4.576-29.799 4.224-29.799Q3.919-29.799 3.663-29.637Q3.408-29.475 3.259-29.206Q3.111-28.936 3.111-28.639L3.111-27.085Q3.111-26.917 3.281-26.870Q3.451-26.823 3.720-26.823",[954],[942,4048,4049],{"transform":4018},[950,4050],{"d":4051,"fill":1039,"stroke":1039,"className":4052,"style":955},"M9.555-26.526L9.274-26.526L9.274-31.245Q9.274-31.460 9.212-31.555Q9.149-31.651 9.032-31.672Q8.915-31.694 8.669-31.694L8.669-31.991L9.891-32.077L9.891-29.588Q10.368-30.053 11.067-30.053Q11.548-30.053 11.956-29.809Q12.364-29.565 12.600-29.151Q12.837-28.737 12.837-28.253Q12.837-27.878 12.688-27.549Q12.540-27.221 12.270-26.969Q12.001-26.717 11.657-26.583Q11.313-26.448 10.954-26.448Q10.633-26.448 10.335-26.596Q10.036-26.745 9.829-27.006L9.555-26.526M9.915-29.198L9.915-27.358Q10.067-27.061 10.327-26.881Q10.587-26.702 10.899-26.702Q11.325-26.702 11.592-26.921Q11.860-27.139 11.975-27.485Q12.091-27.831 12.091-28.253Q12.091-28.901 11.842-29.350Q11.594-29.799 10.997-29.799Q10.661-29.799 10.372-29.641Q10.083-29.483 9.915-29.198",[954],[942,4054,4055],{"transform":4018},[950,4056],{"d":4057,"fill":1039,"stroke":1039,"className":4058,"style":955},"M19.080-28.342L16.607-28.342Q16.529-28.354 16.480-28.403Q16.432-28.452 16.432-28.526Q16.432-28.600 16.480-28.649Q16.529-28.698 16.607-28.710L19.080-28.710L19.080-31.190Q19.107-31.358 19.264-31.358Q19.338-31.358 19.387-31.309Q19.436-31.260 19.447-31.190L19.447-28.710L21.920-28.710Q22.088-28.678 22.088-28.526Q22.088-28.374 21.920-28.342L19.447-28.342L19.447-25.862Q19.436-25.792 19.387-25.743Q19.338-25.694 19.264-25.694Q19.107-25.694 19.080-25.862",[954],[942,4060,4061],{"transform":4018},[950,4062],{"d":4063,"fill":1039,"stroke":1039,"className":4064,"style":955},"M26.139-26.526L24.307-26.526L24.307-26.823Q24.581-26.823 24.749-26.870Q24.917-26.917 24.917-27.085L24.917-31.245Q24.917-31.460 24.854-31.555Q24.792-31.651 24.673-31.672Q24.553-31.694 24.307-31.694L24.307-31.991L25.530-32.077L25.530-27.085Q25.530-26.917 25.698-26.870Q25.866-26.823 26.139-26.823L26.139-26.526M26.585-28.221Q26.585-28.725 26.841-29.157Q27.096-29.588 27.532-29.840Q27.967-30.092 28.467-30.092Q28.854-30.092 29.196-29.948Q29.538-29.803 29.799-29.542Q30.061-29.280 30.204-28.944Q30.346-28.608 30.346-28.221Q30.346-27.729 30.083-27.319Q29.819-26.909 29.389-26.678Q28.960-26.448 28.467-26.448Q27.975-26.448 27.542-26.680Q27.108-26.913 26.846-27.321Q26.585-27.729 26.585-28.221M28.467-26.725Q28.924-26.725 29.176-26.948Q29.428-27.171 29.516-27.522Q29.604-27.874 29.604-28.319Q29.604-28.749 29.510-29.087Q29.417-29.424 29.163-29.631Q28.909-29.838 28.467-29.838Q27.819-29.838 27.575-29.422Q27.331-29.006 27.331-28.319Q27.331-27.874 27.419-27.522Q27.507-27.171 27.758-26.948Q28.010-26.725 28.467-26.725",[954],[942,4066,4067],{"transform":4018},[950,4068],{"d":4069,"fill":1039,"stroke":1039,"className":4070,"style":955},"M32.186-26.557L31.116-29.413Q31.049-29.592 30.919-29.635Q30.788-29.678 30.530-29.678L30.530-29.975L32.210-29.975L32.210-29.678Q31.760-29.678 31.760-29.479Q31.764-29.463 31.766-29.446Q31.768-29.428 31.768-29.413L32.561-27.319L33.272-29.229Q33.237-29.323 33.237-29.368Q33.237-29.413 33.202-29.413Q33.135-29.592 33.005-29.635Q32.874-29.678 32.620-29.678L32.620-29.975L34.210-29.975L34.210-29.678Q33.760-29.678 33.760-29.479Q33.764-29.460 33.766-29.442Q33.768-29.424 33.768-29.413L34.600-27.198L35.354-29.198Q35.378-29.256 35.378-29.327Q35.378-29.487 35.241-29.583Q35.104-29.678 34.936-29.678L34.936-29.975L36.323-29.975L36.323-29.678Q36.089-29.678 35.911-29.551Q35.733-29.424 35.651-29.198L34.667-26.557Q34.612-26.448 34.499-26.448L34.440-26.448Q34.327-26.448 34.284-26.557L33.424-28.831L32.569-26.557Q32.530-26.448 32.409-26.448L32.354-26.448Q32.241-26.448 32.186-26.557M37.651-26.526L37.370-26.526L37.370-31.245Q37.370-31.460 37.307-31.555Q37.245-31.651 37.128-31.672Q37.010-31.694 36.764-31.694L36.764-31.991L37.987-32.077L37.987-29.588Q38.464-30.053 39.163-30.053Q39.643-30.053 40.051-29.809Q40.460-29.565 40.696-29.151Q40.932-28.737 40.932-28.253Q40.932-27.878 40.784-27.549Q40.635-27.221 40.366-26.969Q40.096-26.717 39.753-26.583Q39.409-26.448 39.049-26.448Q38.729-26.448 38.430-26.596Q38.132-26.745 37.924-27.006L37.651-26.526M38.010-29.198L38.010-27.358Q38.163-27.061 38.423-26.881Q38.682-26.702 38.995-26.702Q39.421-26.702 39.688-26.921Q39.956-27.139 40.071-27.485Q40.186-27.831 40.186-28.253Q40.186-28.901 39.938-29.350Q39.690-29.799 39.092-29.799Q38.757-29.799 38.467-29.641Q38.178-29.483 38.010-29.198M43.315-26.526L41.538-26.526L41.538-26.823Q41.811-26.823 41.979-26.870Q42.147-26.917 42.147-27.085L42.147-29.221Q42.147-29.436 42.091-29.532Q42.034-29.628 41.921-29.649Q41.807-29.671 41.561-29.671L41.561-29.967L42.760-30.053L42.760-27.085Q42.760-26.917 42.907-26.870Q43.053-26.823 43.315-26.823L43.315-26.526M41.874-31.448Q41.874-31.639 42.008-31.770Q42.143-31.901 42.339-31.901Q42.460-31.901 42.563-31.838Q42.667-31.776 42.729-31.672Q42.792-31.569 42.792-31.448Q42.792-31.253 42.661-31.118Q42.530-30.983 42.339-30.983Q42.139-30.983 42.007-31.116Q41.874-31.249 41.874-31.448M44.440-27.487L44.440-29.678L43.737-29.678L43.737-29.932Q44.092-29.932 44.335-30.165Q44.577-30.397 44.688-30.745Q44.799-31.092 44.799-31.448L45.081-31.448L45.081-29.975L46.257-29.975L46.257-29.678L45.081-29.678L45.081-27.503Q45.081-27.182 45.200-26.954Q45.319-26.725 45.600-26.725Q45.780-26.725 45.897-26.848Q46.014-26.971 46.067-27.151Q46.120-27.331 46.120-27.503L46.120-27.975L46.401-27.975L46.401-27.487Q46.401-27.233 46.296-26.993Q46.190-26.753 45.993-26.600Q45.796-26.448 45.538-26.448Q45.221-26.448 44.969-26.571Q44.717-26.694 44.579-26.928Q44.440-27.163 44.440-27.487",[954],[942,4072,4073],{"fill":1039,"stroke":1039},[942,4074,4076],{"transform":4075},"translate(26.328 -25.875)",[950,4077],{"d":4078,"fill":1039,"stroke":1039,"className":4079,"style":955},"M-52.460-27.405L-52.523-27.405Q-52.382-27.053-52.058-26.842Q-51.734-26.631-51.347-26.631Q-50.753-26.631-50.503-27.065Q-50.253-27.499-50.253-28.135Q-50.253-28.729-50.423-29.176Q-50.593-29.624-51.093-29.624Q-51.390-29.624-51.595-29.544Q-51.800-29.463-51.902-29.372Q-52.003-29.280-52.118-29.147Q-52.234-29.014-52.284-28.999L-52.355-28.999Q-52.441-29.022-52.460-29.100L-52.460-31.749Q-52.429-31.846-52.355-31.846Q-52.339-31.846-52.331-31.844Q-52.323-31.842-52.316-31.838Q-51.730-31.588-51.132-31.588Q-50.550-31.588-49.933-31.846L-49.909-31.846Q-49.866-31.846-49.839-31.821Q-49.812-31.796-49.812-31.756L-49.812-31.678Q-49.812-31.647-49.835-31.624Q-50.132-31.272-50.554-31.075Q-50.976-30.878-51.437-30.878Q-51.784-30.878-52.163-30.983L-52.163-29.487Q-51.945-29.682-51.669-29.780Q-51.394-29.878-51.093-29.878Q-50.636-29.878-50.267-29.630Q-49.898-29.381-49.691-28.977Q-49.484-28.573-49.484-28.128Q-49.484-27.639-49.739-27.231Q-49.995-26.823-50.427-26.590Q-50.859-26.358-51.347-26.358Q-51.741-26.358-52.097-26.549Q-52.452-26.741-52.663-27.075Q-52.874-27.409-52.874-27.823Q-52.874-28.003-52.757-28.116Q-52.640-28.229-52.460-28.229Q-52.343-28.229-52.251-28.176Q-52.159-28.124-52.107-28.032Q-52.054-27.940-52.054-27.823Q-52.054-27.639-52.167-27.522Q-52.280-27.405-52.460-27.405",[954],[942,4081,4082,4085],{"fill":1039,"stroke":1039,"style":1041},[950,4083],{"fill":958,"d":4084},"M135.91-13.522c-7.453 7.454-19.576 7.454-25.191 1.839",[950,4086],{"stroke":958,"d":4087},"m108.88-13.522 1.47 4.412.369-2.573 2.573-.368",[942,4089,4090,4093],{"fill":1039,"stroke":1039,"style":1041},[950,4091],{"fill":958,"d":4092},"M108.88-13.522C91.61-1.43 72.09-1.43 56.95-12.03",[950,4094],{"stroke":958,"d":4095},"m54.82-13.522 2.215 4.09-.085-2.599 2.47-.809",[942,4097,4098,4101],{"fill":1039,"stroke":1039,"style":1041},[950,4099],{"fill":958,"d":4100},"M54.82-13.522c-33.632 19.418-65.952 19.418-97.333 1.3",[950,4102],{"stroke":958,"d":4103},"m-44.765-13.522 2.563 3.881-.311-2.58 2.39-1.022",[942,4105,4106,4113,4119,4125,4131,4137],{"stroke":958,"fontSize":2385},[942,4107,4109],{"transform":4108},"translate(66.933 43.256)",[950,4110],{"d":4111,"fill":944,"stroke":944,"className":4112,"style":955},"M-50.468-26.526L-52.859-26.526L-52.859-26.807Q-52.034-26.807-52.034-27.061L-52.034-31.456Q-52.034-31.710-52.859-31.710L-52.859-31.991L-49.933-31.991Q-49.472-31.991-49.011-31.813Q-48.550-31.635-48.249-31.294Q-47.948-30.952-47.948-30.487Q-47.948-30.131-48.132-29.854Q-48.316-29.577-48.605-29.395Q-48.894-29.213-49.249-29.118Q-49.605-29.022-49.933-29.022L-51.292-29.022L-51.292-27.061Q-51.292-26.807-50.468-26.807L-50.468-26.526M-51.316-31.456L-51.316-29.260L-50.140-29.260Q-49.472-29.260-49.138-29.546Q-48.804-29.831-48.804-30.487Q-48.804-31.147-49.134-31.428Q-49.464-31.710-50.140-31.710L-50.909-31.710Q-51.054-31.710-51.134-31.698Q-51.214-31.686-51.265-31.630Q-51.316-31.573-51.316-31.456M-45.292-26.526L-47.027-26.526L-47.027-26.756Q-46.839-26.756-46.722-26.772Q-46.605-26.788-46.527-26.854Q-46.448-26.921-46.448-27.061L-46.448-30.100Q-46.448-30.307-46.595-30.356Q-46.741-30.405-47.027-30.405L-47.027-30.639L-45.097-30.639Q-44.749-30.639-44.357-30.520Q-43.964-30.401-43.687-30.153Q-43.409-29.905-43.409-29.549Q-43.409-29.182-43.714-28.930Q-44.019-28.678-44.433-28.557Q-44.179-28.456-43.995-28.264Q-43.812-28.073-43.761-27.815L-43.652-27.288Q-43.620-27.120-43.581-26.977Q-43.542-26.835-43.456-26.729Q-43.370-26.624-43.226-26.624Q-43.050-26.624-42.954-26.778Q-42.859-26.932-42.859-27.128Q-42.859-27.155-42.833-27.176Q-42.808-27.198-42.777-27.198L-42.706-27.198Q-42.628-27.198-42.628-27.092Q-42.628-26.835-42.800-26.624Q-42.972-26.413-43.226-26.413Q-43.691-26.413-44.030-26.616Q-44.370-26.819-44.370-27.253L-44.370-27.784Q-44.370-28.081-44.589-28.280Q-44.808-28.479-45.105-28.479L-45.866-28.479L-45.866-27.061Q-45.866-26.921-45.788-26.854Q-45.710-26.788-45.595-26.772Q-45.480-26.756-45.292-26.756L-45.292-26.526M-45.866-30.100L-45.866-28.686L-45.187-28.686Q-44.851-28.686-44.620-28.760Q-44.390-28.835-44.261-29.026Q-44.132-29.217-44.132-29.549Q-44.132-29.881-44.261-30.071Q-44.390-30.260-44.624-30.333Q-44.859-30.405-45.187-30.405L-45.577-30.405Q-45.761-30.405-45.814-30.348Q-45.866-30.292-45.866-30.100M-38.554-26.526L-42.226-26.526L-42.226-26.756Q-42.038-26.756-41.921-26.772Q-41.804-26.788-41.728-26.854Q-41.652-26.921-41.652-27.061L-41.652-30.100Q-41.652-30.307-41.796-30.356Q-41.941-30.405-42.226-30.405L-42.226-30.639L-38.652-30.639L-38.499-29.253L-38.730-29.253Q-38.788-29.768-38.917-30.008Q-39.046-30.249-39.312-30.327Q-39.577-30.405-40.097-30.405L-40.753-30.405Q-40.937-30.405-40.989-30.348Q-41.042-30.292-41.042-30.100L-41.042-28.772L-40.585-28.772Q-40.265-28.772-40.111-28.819Q-39.956-28.866-39.892-29.012Q-39.827-29.159-39.827-29.471L-39.593-29.471L-39.593-27.846L-39.827-27.846Q-39.827-28.159-39.892-28.303Q-39.956-28.448-40.112-28.495Q-40.269-28.542-40.585-28.542L-41.042-28.542L-41.042-27.061Q-41.042-26.878-40.987-26.817Q-40.933-26.756-40.753-26.756L-40.050-26.756Q-39.605-26.756-39.349-26.817Q-39.093-26.878-38.939-27.020Q-38.784-27.163-38.700-27.421Q-38.616-27.678-38.554-28.112L-38.323-28.112L-38.554-26.526M-35.866-26.526L-37.769-26.526L-37.769-26.756Q-37.581-26.756-37.464-26.772Q-37.347-26.788-37.271-26.854Q-37.195-26.921-37.195-27.061L-37.195-30.100Q-37.195-30.307-37.339-30.356Q-37.484-30.405-37.769-30.405L-37.769-30.639L-34.280-30.639L-34.128-29.253L-34.362-29.253Q-34.417-29.756-34.540-29.997Q-34.663-30.237-34.925-30.321Q-35.187-30.405-35.691-30.405L-36.296-30.405Q-36.480-30.405-36.532-30.348Q-36.585-30.292-36.585-30.100L-36.585-28.702L-36.144-28.702Q-35.823-28.702-35.675-28.749Q-35.527-28.796-35.464-28.940Q-35.402-29.085-35.402-29.397L-35.167-29.397L-35.167-27.772L-35.402-27.772Q-35.402-28.088-35.464-28.233Q-35.527-28.378-35.675-28.424Q-35.823-28.471-36.144-28.471L-36.585-28.471L-36.585-27.061Q-36.585-26.924-36.474-26.856Q-36.362-26.788-36.214-26.772Q-36.066-26.756-35.866-26.756L-35.866-26.526M-31.695-26.526L-33.519-26.526L-33.519-26.756Q-33.327-26.756-33.204-26.772Q-33.081-26.788-32.997-26.854Q-32.913-26.921-32.913-27.061L-32.913-30.100Q-32.913-30.307-33.071-30.356Q-33.230-30.405-33.519-30.405L-33.519-30.639L-31.695-30.639L-31.695-30.405Q-31.987-30.405-32.146-30.356Q-32.304-30.307-32.304-30.100L-32.304-27.061Q-32.304-26.921-32.220-26.854Q-32.136-26.788-32.011-26.772Q-31.886-26.756-31.695-26.756L-31.695-26.526M-29.745-26.526L-31.171-26.526L-31.171-26.756Q-30.874-26.756-30.614-26.901Q-30.355-27.046-30.187-27.280L-29.241-28.565L-30.370-30.128Q-30.503-30.315-30.648-30.360Q-30.792-30.405-31.081-30.405L-31.081-30.639L-29.417-30.639L-29.417-30.405Q-29.523-30.405-29.607-30.348Q-29.691-30.292-29.691-30.198Q-29.691-30.171-29.659-30.100L-28.890-29.038L-28.265-29.885Q-28.179-30.003-28.179-30.143Q-28.179-30.249-28.245-30.327Q-28.312-30.405-28.417-30.405L-28.417-30.639L-26.995-30.639L-26.995-30.405Q-27.292-30.405-27.542-30.270Q-27.792-30.135-27.976-29.885L-28.745-28.846L-27.441-27.038Q-27.296-26.842-27.157-26.799Q-27.019-26.756-26.730-26.756L-26.730-26.526L-28.394-26.526L-28.394-26.756Q-28.296-26.756-28.208-26.815Q-28.120-26.874-28.120-26.967Q-28.120-27.006-28.155-27.061L-29.097-28.366L-29.898-27.280Q-29.987-27.159-29.987-27.022Q-29.987-26.921-29.921-26.838Q-29.855-26.756-29.745-26.756L-29.745-26.526M-25.925-26.413L-25.925-28.280Q-25.925-28.342-25.851-28.342L-25.757-28.342Q-25.730-28.342-25.710-28.323Q-25.691-28.303-25.691-28.280Q-25.691-27.733-25.445-27.364Q-25.198-26.995-24.777-26.813Q-24.355-26.631-23.827-26.631Q-23.534-26.631-23.279-26.788Q-23.023-26.944-22.880-27.204Q-22.737-27.463-22.737-27.749Q-22.737-27.999-22.845-28.227Q-22.952-28.456-23.142-28.618Q-23.331-28.780-23.577-28.838L-24.706-29.100Q-24.960-29.163-25.189-29.309Q-25.417-29.456-25.577-29.653Q-25.737-29.850-25.831-30.102Q-25.925-30.354-25.925-30.604Q-25.925-31.034-25.698-31.395Q-25.472-31.756-25.095-31.962Q-24.718-32.167-24.292-32.167Q-23.894-32.167-23.544-32.024Q-23.195-31.881-22.948-31.596L-22.605-32.143Q-22.581-32.167-22.546-32.167L-22.491-32.167Q-22.468-32.167-22.448-32.147Q-22.429-32.128-22.429-32.100L-22.429-30.245Q-22.429-30.174-22.491-30.174L-22.589-30.174Q-22.659-30.174-22.659-30.245Q-22.659-30.546-22.814-30.913Q-22.968-31.280-23.179-31.487Q-23.601-31.909-24.292-31.909Q-24.573-31.909-24.821-31.776Q-25.070-31.643-25.224-31.407Q-25.378-31.171-25.378-30.893Q-25.378-30.538-25.150-30.266Q-24.921-29.995-24.562-29.901L-23.437-29.639Q-23.073-29.546-22.790-29.303Q-22.507-29.061-22.351-28.727Q-22.195-28.393-22.195-28.022Q-22.195-27.573-22.413-27.190Q-22.632-26.807-23.009-26.579Q-23.386-26.350-23.827-26.350Q-24.277-26.350-24.695-26.485Q-25.112-26.620-25.402-26.909L-25.745-26.374Q-25.780-26.350-25.804-26.350L-25.851-26.350Q-25.925-26.350-25.925-26.413M-20.710-27.878L-20.710-30.100Q-20.710-30.307-20.855-30.356Q-20.999-30.405-21.284-30.405L-21.284-30.639L-19.523-30.639L-19.523-30.405Q-19.808-30.405-19.954-30.356Q-20.101-30.307-20.101-30.100L-20.101-27.909Q-20.101-27.557-19.995-27.272Q-19.890-26.987-19.657-26.817Q-19.425-26.647-19.070-26.647Q-18.718-26.647-18.439-26.815Q-18.159-26.983-18.001-27.270Q-17.843-27.557-17.843-27.909L-17.843-29.885Q-17.843-30.405-18.421-30.405L-18.421-30.639L-17.038-30.639L-17.038-30.405Q-17.612-30.405-17.612-29.885L-17.612-27.878Q-17.612-27.499-17.812-27.157Q-18.011-26.815-18.347-26.614Q-18.683-26.413-19.070-26.413Q-19.480-26.413-19.861-26.602Q-20.241-26.792-20.476-27.128Q-20.710-27.463-20.710-27.878M-14.941-26.526L-16.351-26.526L-16.351-26.756Q-15.773-26.756-15.773-27.280L-15.773-30.100Q-15.773-30.307-15.919-30.356Q-16.066-30.405-16.351-30.405L-16.351-30.639L-15.222-30.639Q-15.120-30.639-15.093-30.549L-13.718-27.167L-12.351-30.549Q-12.323-30.639-12.222-30.639L-11.093-30.639L-11.093-30.405Q-11.378-30.405-11.525-30.356Q-11.671-30.307-11.671-30.100L-11.671-27.061Q-11.671-26.921-11.593-26.854Q-11.515-26.788-11.398-26.772Q-11.280-26.756-11.093-26.756L-11.093-26.526L-12.788-26.526L-12.788-26.756Q-12.601-26.756-12.486-26.772Q-12.370-26.788-12.292-26.854Q-12.214-26.921-12.214-27.061L-12.214-30.381L-13.741-26.616Q-13.765-26.526-13.878-26.526Q-13.991-26.526-14.015-26.616L-15.519-30.319L-15.519-27.280Q-15.519-26.756-14.941-26.756",[954],[942,4114,4115],{"transform":4108},[950,4116],{"d":4117,"fill":944,"stroke":944,"className":4118,"style":955},"M-8.092-24.534Q-8.705-24.991-9.107-25.626Q-9.510-26.260-9.705-27.006Q-9.900-27.753-9.900-28.526Q-9.900-29.299-9.705-30.046Q-9.510-30.792-9.107-31.426Q-8.705-32.061-8.092-32.518Q-8.080-32.522-8.072-32.524Q-8.064-32.526-8.053-32.526L-7.975-32.526Q-7.936-32.526-7.910-32.499Q-7.885-32.471-7.885-32.428Q-7.885-32.378-7.916-32.358Q-8.424-31.905-8.746-31.282Q-9.068-30.659-9.209-29.963Q-9.350-29.268-9.350-28.526Q-9.350-27.792-9.211-27.092Q-9.072-26.393-8.748-25.768Q-8.424-25.143-7.916-24.694Q-7.885-24.674-7.885-24.624Q-7.885-24.581-7.910-24.553Q-7.936-24.526-7.975-24.526L-8.053-24.526Q-8.061-24.530-8.070-24.532Q-8.080-24.534-8.092-24.534M-5.908-26.749Q-5.908-27.174-5.824-27.624Q-5.740-28.073-5.584-28.491Q-5.428-28.909-5.213-29.296Q-4.998-29.682-4.725-30.038L-3.998-30.991L-4.908-30.991Q-6.404-30.991-6.443-30.952Q-6.514-30.870-6.561-30.680Q-6.607-30.491-6.650-30.213L-6.932-30.213L-6.662-31.932L-6.381-31.932L-6.381-31.909Q-6.381-31.764-5.863-31.721Q-5.346-31.678-4.854-31.678L-3.283-31.678L-3.283-31.487Q-3.291-31.448-3.307-31.421L-4.482-29.885Q-4.783-29.467-4.922-28.960Q-5.061-28.452-5.092-27.958Q-5.123-27.463-5.123-26.749Q-5.123-26.643-5.174-26.551Q-5.225-26.460-5.316-26.409Q-5.408-26.358-5.518-26.358Q-5.623-26.358-5.715-26.409Q-5.807-26.460-5.857-26.551Q-5.908-26.643-5.908-26.749M-2.518-24.526L-2.600-24.526Q-2.635-24.526-2.660-24.555Q-2.686-24.585-2.686-24.624Q-2.686-24.674-2.654-24.694Q-2.268-25.030-1.984-25.479Q-1.701-25.928-1.535-26.428Q-1.369-26.928-1.295-27.446Q-1.221-27.963-1.221-28.526Q-1.221-29.096-1.295-29.612Q-1.369-30.128-1.535-30.624Q-1.701-31.120-1.980-31.567Q-2.260-32.014-2.654-32.358Q-2.686-32.378-2.686-32.428Q-2.686-32.467-2.660-32.497Q-2.635-32.526-2.600-32.526L-2.518-32.526Q-2.506-32.526-2.496-32.524Q-2.486-32.522-2.479-32.518Q-1.865-32.061-1.463-31.426Q-1.061-30.792-0.865-30.046Q-0.670-29.299-0.670-28.526Q-0.670-27.753-0.865-27.006Q-1.061-26.260-1.463-25.626Q-1.865-24.991-2.479-24.534Q-2.490-24.534-2.498-24.532Q-2.506-24.530-2.518-24.526M0.865-26.991Q0.865-27.174 1.002-27.311Q1.139-27.448 1.330-27.448Q1.521-27.448 1.654-27.315Q1.787-27.182 1.787-26.991Q1.787-26.792 1.654-26.659Q1.521-26.526 1.330-26.526Q1.139-26.526 1.002-26.663Q0.865-26.799 0.865-26.991M0.865-29.518Q0.865-29.702 1.002-29.838Q1.139-29.975 1.330-29.975Q1.521-29.975 1.654-29.842Q1.787-29.710 1.787-29.518Q1.787-29.319 1.654-29.186Q1.521-29.053 1.330-29.053Q1.139-29.053 1.002-29.190Q0.865-29.327 0.865-29.518",[954],[942,4120,4121],{"transform":4108},[950,4122],{"d":4123,"fill":944,"stroke":944,"className":4124,"style":955},"M8.346-26.448Q7.865-26.448 7.457-26.692Q7.049-26.936 6.811-27.350Q6.572-27.764 6.572-28.253Q6.572-28.745 6.830-29.161Q7.088-29.577 7.520-29.815Q7.951-30.053 8.443-30.053Q9.064-30.053 9.514-29.616L9.514-31.245Q9.514-31.460 9.451-31.555Q9.389-31.651 9.271-31.672Q9.154-31.694 8.908-31.694L8.908-31.991L10.131-32.077L10.131-27.268Q10.131-27.057 10.193-26.962Q10.256-26.866 10.373-26.844Q10.490-26.823 10.740-26.823L10.740-26.526L9.490-26.448L9.490-26.932Q9.025-26.448 8.346-26.448M8.412-26.702Q8.752-26.702 9.045-26.893Q9.338-27.085 9.490-27.381L9.490-29.213Q9.342-29.487 9.080-29.643Q8.818-29.799 8.506-29.799Q7.881-29.799 7.598-29.352Q7.314-28.905 7.314-28.245Q7.314-27.600 7.566-27.151Q7.818-26.702 8.412-26.702M11.248-28.280Q11.248-28.760 11.480-29.176Q11.713-29.592 12.123-29.842Q12.533-30.092 13.010-30.092Q13.740-30.092 14.139-29.651Q14.537-29.210 14.537-28.479Q14.537-28.374 14.443-28.350L11.994-28.350L11.994-28.280Q11.994-27.870 12.115-27.514Q12.236-27.159 12.508-26.942Q12.779-26.725 13.209-26.725Q13.572-26.725 13.869-26.954Q14.166-27.182 14.268-27.534Q14.275-27.581 14.361-27.596L14.443-27.596Q14.537-27.569 14.537-27.487Q14.537-27.479 14.529-27.448Q14.467-27.221 14.328-27.038Q14.189-26.854 13.998-26.721Q13.807-26.588 13.588-26.518Q13.369-26.448 13.131-26.448Q12.760-26.448 12.422-26.585Q12.084-26.721 11.816-26.973Q11.549-27.225 11.398-27.565Q11.248-27.905 11.248-28.280M12.002-28.588L13.963-28.588Q13.963-28.893 13.861-29.184Q13.760-29.475 13.543-29.657Q13.326-29.838 13.010-29.838Q12.709-29.838 12.479-29.651Q12.248-29.463 12.125-29.172Q12.002-28.881 12.002-28.588M15.068-26.534L15.068-27.756Q15.068-27.784 15.100-27.815Q15.131-27.846 15.154-27.846L15.260-27.846Q15.330-27.846 15.346-27.784Q15.408-27.463 15.547-27.223Q15.686-26.983 15.918-26.842Q16.150-26.702 16.459-26.702Q16.697-26.702 16.906-26.762Q17.115-26.823 17.252-26.971Q17.389-27.120 17.389-27.366Q17.389-27.620 17.178-27.786Q16.967-27.952 16.697-28.006L16.076-28.120Q15.670-28.198 15.369-28.454Q15.068-28.710 15.068-29.085Q15.068-29.452 15.270-29.674Q15.471-29.897 15.795-29.995Q16.119-30.092 16.459-30.092Q16.924-30.092 17.221-29.885L17.443-30.069Q17.467-30.092 17.498-30.092L17.549-30.092Q17.580-30.092 17.607-30.065Q17.635-30.038 17.635-30.006L17.635-29.022Q17.635-28.991 17.609-28.962Q17.584-28.932 17.549-28.932L17.443-28.932Q17.408-28.932 17.381-28.960Q17.354-28.987 17.354-29.022Q17.354-29.421 17.102-29.641Q16.850-29.862 16.451-29.862Q16.096-29.862 15.812-29.739Q15.529-29.616 15.529-29.311Q15.529-29.092 15.730-28.960Q15.932-28.827 16.178-28.784L16.803-28.671Q17.232-28.581 17.541-28.284Q17.850-27.987 17.850-27.573Q17.850-27.003 17.451-26.725Q17.053-26.448 16.459-26.448Q15.908-26.448 15.557-26.784L15.260-26.471Q15.236-26.448 15.201-26.448L15.154-26.448Q15.131-26.448 15.100-26.479Q15.068-26.510 15.068-26.534M18.420-28.253Q18.420-28.749 18.670-29.174Q18.920-29.600 19.340-29.846Q19.760-30.092 20.260-30.092Q20.799-30.092 21.189-29.967Q21.580-29.842 21.580-29.428Q21.580-29.323 21.529-29.231Q21.479-29.139 21.387-29.088Q21.295-29.038 21.186-29.038Q21.080-29.038 20.988-29.088Q20.896-29.139 20.846-29.231Q20.795-29.323 20.795-29.428Q20.795-29.651 20.963-29.756Q20.740-29.815 20.268-29.815Q19.971-29.815 19.756-29.676Q19.541-29.538 19.410-29.307Q19.279-29.077 19.221-28.807Q19.162-28.538 19.162-28.253Q19.162-27.858 19.295-27.508Q19.428-27.159 19.699-26.942Q19.971-26.725 20.369-26.725Q20.744-26.725 21.020-26.942Q21.295-27.159 21.396-27.518Q21.412-27.581 21.475-27.581L21.580-27.581Q21.615-27.581 21.641-27.553Q21.666-27.526 21.666-27.487L21.666-27.463Q21.533-26.983 21.148-26.715Q20.764-26.448 20.260-26.448Q19.896-26.448 19.562-26.585Q19.229-26.721 18.969-26.971Q18.709-27.221 18.564-27.557Q18.420-27.893 18.420-28.253M22.154-28.280Q22.154-28.760 22.387-29.176Q22.619-29.592 23.029-29.842Q23.439-30.092 23.916-30.092Q24.646-30.092 25.045-29.651Q25.443-29.210 25.443-28.479Q25.443-28.374 25.350-28.350L22.900-28.350L22.900-28.280Q22.900-27.870 23.021-27.514Q23.143-27.159 23.414-26.942Q23.686-26.725 24.115-26.725Q24.479-26.725 24.775-26.954Q25.072-27.182 25.174-27.534Q25.182-27.581 25.268-27.596L25.350-27.596Q25.443-27.569 25.443-27.487Q25.443-27.479 25.436-27.448Q25.373-27.221 25.234-27.038Q25.096-26.854 24.904-26.721Q24.713-26.588 24.494-26.518Q24.275-26.448 24.037-26.448Q23.666-26.448 23.328-26.585Q22.990-26.721 22.723-26.973Q22.455-27.225 22.305-27.565Q22.154-27.905 22.154-28.280M22.908-28.588L24.869-28.588Q24.869-28.893 24.768-29.184Q24.666-29.475 24.449-29.657Q24.232-29.838 23.916-29.838Q23.615-29.838 23.385-29.651Q23.154-29.463 23.031-29.172Q22.908-28.881 22.908-28.588M27.861-26.526L26.006-26.526L26.006-26.823Q26.279-26.823 26.447-26.870Q26.615-26.917 26.615-27.085L26.615-29.221Q26.615-29.436 26.553-29.532Q26.490-29.628 26.371-29.649Q26.252-29.671 26.006-29.671L26.006-29.967L27.197-30.053L27.197-29.319Q27.311-29.534 27.504-29.702Q27.697-29.870 27.936-29.962Q28.174-30.053 28.428-30.053Q29.596-30.053 29.596-28.975L29.596-27.085Q29.596-26.917 29.766-26.870Q29.936-26.823 30.205-26.823L30.205-26.526L28.350-26.526L28.350-26.823Q28.623-26.823 28.791-26.870Q28.959-26.917 28.959-27.085L28.959-28.960Q28.959-29.342 28.838-29.571Q28.717-29.799 28.365-29.799Q28.053-29.799 27.799-29.637Q27.545-29.475 27.398-29.206Q27.252-28.936 27.252-28.639L27.252-27.085Q27.252-26.917 27.422-26.870Q27.592-26.823 27.861-26.823L27.861-26.526M32.467-26.448Q31.986-26.448 31.578-26.692Q31.170-26.936 30.932-27.350Q30.693-27.764 30.693-28.253Q30.693-28.745 30.951-29.161Q31.209-29.577 31.641-29.815Q32.072-30.053 32.564-30.053Q33.186-30.053 33.635-29.616L33.635-31.245Q33.635-31.460 33.572-31.555Q33.510-31.651 33.393-31.672Q33.275-31.694 33.029-31.694L33.029-31.991L34.252-32.077L34.252-27.268Q34.252-27.057 34.314-26.962Q34.377-26.866 34.494-26.844Q34.611-26.823 34.861-26.823L34.861-26.526L33.611-26.448L33.611-26.932Q33.146-26.448 32.467-26.448M32.533-26.702Q32.873-26.702 33.166-26.893Q33.459-27.085 33.611-27.381L33.611-29.213Q33.463-29.487 33.201-29.643Q32.939-29.799 32.627-29.799Q32.002-29.799 31.719-29.352Q31.436-28.905 31.436-28.245Q31.436-27.600 31.687-27.151Q31.939-26.702 32.533-26.702",[954],[942,4126,4127],{"transform":4108},[950,4128],{"d":4129,"fill":944,"stroke":944,"className":4130,"style":955},"M43.697-28.342L38.865-28.342Q38.791-28.354 38.740-28.403Q38.689-28.452 38.689-28.526Q38.689-28.678 38.865-28.710L43.697-28.710Q43.865-28.682 43.865-28.526Q43.865-28.370 43.697-28.342",[954],[942,4132,4133],{"transform":4108},[950,4134],{"d":4135,"fill":944,"stroke":944,"className":4136,"style":955},"M48.158-26.526L46.326-26.526L46.326-26.823Q46.600-26.823 46.768-26.870Q46.936-26.917 46.936-27.085L46.936-31.245Q46.936-31.460 46.873-31.555Q46.811-31.651 46.692-31.672Q46.572-31.694 46.326-31.694L46.326-31.991L47.549-32.077L47.549-27.085Q47.549-26.917 47.717-26.870Q47.885-26.823 48.158-26.823L48.158-26.526M48.604-28.221Q48.604-28.725 48.860-29.157Q49.115-29.588 49.551-29.840Q49.986-30.092 50.486-30.092Q50.873-30.092 51.215-29.948Q51.557-29.803 51.819-29.542Q52.080-29.280 52.223-28.944Q52.365-28.608 52.365-28.221Q52.365-27.729 52.102-27.319Q51.838-26.909 51.408-26.678Q50.979-26.448 50.486-26.448Q49.994-26.448 49.561-26.680Q49.127-26.913 48.865-27.321Q48.604-27.729 48.604-28.221M50.486-26.725Q50.944-26.725 51.195-26.948Q51.447-27.171 51.535-27.522Q51.623-27.874 51.623-28.319Q51.623-28.749 51.529-29.087Q51.436-29.424 51.182-29.631Q50.928-29.838 50.486-29.838Q49.838-29.838 49.594-29.422Q49.350-29.006 49.350-28.319Q49.350-27.874 49.438-27.522Q49.526-27.171 49.777-26.948Q50.029-26.725 50.486-26.725",[954],[942,4138,4139],{"transform":4108},[950,4140],{"d":4141,"fill":944,"stroke":944,"className":4142,"style":955},"M54.205-26.557L53.135-29.413Q53.069-29.592 52.938-29.635Q52.807-29.678 52.549-29.678L52.549-29.975L54.229-29.975L54.229-29.678Q53.779-29.678 53.779-29.479Q53.783-29.463 53.785-29.446Q53.787-29.428 53.787-29.413L54.580-27.319L55.291-29.229Q55.256-29.323 55.256-29.368Q55.256-29.413 55.221-29.413Q55.154-29.592 55.024-29.635Q54.893-29.678 54.639-29.678L54.639-29.975L56.229-29.975L56.229-29.678Q55.779-29.678 55.779-29.479Q55.783-29.460 55.785-29.442Q55.787-29.424 55.787-29.413L56.619-27.198L57.373-29.198Q57.397-29.256 57.397-29.327Q57.397-29.487 57.260-29.583Q57.123-29.678 56.955-29.678L56.955-29.975L58.342-29.975L58.342-29.678Q58.108-29.678 57.930-29.551Q57.752-29.424 57.670-29.198L56.686-26.557Q56.631-26.448 56.518-26.448L56.459-26.448Q56.346-26.448 56.303-26.557L55.444-28.831L54.588-26.557Q54.549-26.448 54.428-26.448L54.373-26.448Q54.260-26.448 54.205-26.557M59.670-26.526L59.389-26.526L59.389-31.245Q59.389-31.460 59.326-31.555Q59.264-31.651 59.147-31.672Q59.029-31.694 58.783-31.694L58.783-31.991L60.006-32.077L60.006-29.588Q60.483-30.053 61.182-30.053Q61.662-30.053 62.070-29.809Q62.479-29.565 62.715-29.151Q62.951-28.737 62.951-28.253Q62.951-27.878 62.803-27.549Q62.654-27.221 62.385-26.969Q62.115-26.717 61.772-26.583Q61.428-26.448 61.069-26.448Q60.748-26.448 60.449-26.596Q60.151-26.745 59.944-27.006L59.670-26.526M60.029-29.198L60.029-27.358Q60.182-27.061 60.442-26.881Q60.701-26.702 61.014-26.702Q61.440-26.702 61.707-26.921Q61.975-27.139 62.090-27.485Q62.205-27.831 62.205-28.253Q62.205-28.901 61.957-29.350Q61.709-29.799 61.111-29.799Q60.776-29.799 60.486-29.641Q60.197-29.483 60.029-29.198M65.334-26.526L63.557-26.526L63.557-26.823Q63.830-26.823 63.998-26.870Q64.166-26.917 64.166-27.085L64.166-29.221Q64.166-29.436 64.110-29.532Q64.053-29.628 63.940-29.649Q63.826-29.671 63.580-29.671L63.580-29.967L64.779-30.053L64.779-27.085Q64.779-26.917 64.926-26.870Q65.072-26.823 65.334-26.823L65.334-26.526M63.893-31.448Q63.893-31.639 64.027-31.770Q64.162-31.901 64.358-31.901Q64.479-31.901 64.582-31.838Q64.686-31.776 64.748-31.672Q64.811-31.569 64.811-31.448Q64.811-31.253 64.680-31.118Q64.549-30.983 64.358-30.983Q64.158-30.983 64.026-31.116Q63.893-31.249 63.893-31.448M66.459-27.487L66.459-29.678L65.756-29.678L65.756-29.932Q66.111-29.932 66.354-30.165Q66.596-30.397 66.707-30.745Q66.819-31.092 66.819-31.448L67.100-31.448L67.100-29.975L68.276-29.975L68.276-29.678L67.100-29.678L67.100-27.503Q67.100-27.182 67.219-26.954Q67.338-26.725 67.619-26.725Q67.799-26.725 67.916-26.848Q68.033-26.971 68.086-27.151Q68.139-27.331 68.139-27.503L68.139-27.975L68.420-27.975L68.420-27.487Q68.420-27.233 68.315-26.993Q68.209-26.753 68.012-26.600Q67.815-26.448 67.557-26.448Q67.240-26.448 66.988-26.571Q66.736-26.694 66.598-26.928Q66.459-27.163 66.459-27.487",[954],[942,4144,4145],{"fill":1039,"stroke":1039},[942,4146,4148],{"transform":4147},"translate(10.679 29.608)",[950,4149],{"d":4150,"fill":1039,"stroke":1039,"className":4151,"style":955},"M-51.179-26.358Q-51.882-26.358-52.282-26.758Q-52.683-27.159-52.827-27.768Q-52.972-28.378-52.972-29.077Q-52.972-29.600-52.902-30.063Q-52.831-30.526-52.638-30.938Q-52.445-31.350-52.087-31.598Q-51.730-31.846-51.179-31.846Q-50.628-31.846-50.271-31.598Q-49.913-31.350-49.722-30.940Q-49.530-30.530-49.460-30.061Q-49.390-29.592-49.390-29.077Q-49.390-28.378-49.532-27.770Q-49.675-27.163-50.075-26.760Q-50.476-26.358-51.179-26.358M-51.179-26.616Q-50.706-26.616-50.474-27.051Q-50.241-27.487-50.187-28.026Q-50.132-28.565-50.132-29.206Q-50.132-30.202-50.316-30.895Q-50.499-31.588-51.179-31.588Q-51.546-31.588-51.767-31.350Q-51.987-31.112-52.083-30.755Q-52.179-30.397-52.204-30.026Q-52.230-29.655-52.230-29.206Q-52.230-28.565-52.175-28.026Q-52.120-27.487-51.888-27.051Q-51.655-26.616-51.179-26.616",[954],[1283,4153,4155,4156,4186,4187,4239,4240,4270,4271,4341],{"className":4154},[1286],"The lowbit duality. ",[385,4157,4159],{"className":4158},[388],[385,4160,4162],{"className":4161,"ariaHidden":393},[392],[385,4163,4165,4168,4177,4180,4183],{"className":4164},[397],[385,4166],{"className":4167,"style":402},[401],[385,4169,4171],{"className":4170},[3423,3424],[385,4172,4174],{"className":4173},[406,3428],[385,4175,3456],{"className":4176},[406],[385,4178,527],{"className":4179},[412],[385,4181,2338],{"className":4182},[406],[385,4184,534],{"className":4185},[438]," climbs ",[385,4188,4190],{"className":4189},[388],[385,4191,4193,4212,4230],{"className":4192,"ariaHidden":393},[392],[385,4194,4196,4199,4202,4205,4209],{"className":4195},[397],[385,4197],{"className":4198,"style":2178},[401],[385,4200,2338],{"className":4201},[406],[385,4203],{"className":4204,"style":598},[421],[385,4206,4208],{"className":4207},[602],"→",[385,4210],{"className":4211,"style":598},[421],[385,4213,4215,4218,4221,4224,4227],{"className":4214},[397],[385,4216],{"className":4217,"style":2178},[401],[385,4219,2182],{"className":4220},[406],[385,4222],{"className":4223,"style":598},[421],[385,4225,4208],{"className":4226},[602],[385,4228],{"className":4229,"style":598},[421],[385,4231,4233,4236],{"className":4232},[397],[385,4234],{"className":4235,"style":2178},[401],[385,4237,2385],{"className":4238},[406]," adding the low bit; ",[385,4241,4243],{"className":4242},[388],[385,4244,4246],{"className":4245,"ariaHidden":393},[392],[385,4247,4249,4252,4261,4264,4267],{"className":4248},[397],[385,4250],{"className":4251,"style":402},[401],[385,4253,4255],{"className":4254},[3423,3424],[385,4256,4258],{"className":4257},[406,3428],[385,4259,3432],{"className":4260},[406],[385,4262,527],{"className":4263},[412],[385,4265,1046],{"className":4266},[406],[385,4268,534],{"className":4269},[438]," descends ",[385,4272,4274],{"className":4273},[388],[385,4275,4277,4295,4313,4332],{"className":4276,"ariaHidden":393},[392],[385,4278,4280,4283,4286,4289,4292],{"className":4279},[397],[385,4281],{"className":4282,"style":2178},[401],[385,4284,1046],{"className":4285},[406],[385,4287],{"className":4288,"style":598},[421],[385,4290,4208],{"className":4291},[602],[385,4293],{"className":4294,"style":598},[421],[385,4296,4298,4301,4304,4307,4310],{"className":4297},[397],[385,4299],{"className":4300,"style":2178},[401],[385,4302,2182],{"className":4303},[406],[385,4305],{"className":4306,"style":598},[421],[385,4308,4208],{"className":4309},[602],[385,4311],{"className":4312,"style":598},[421],[385,4314,4316,4319,4323,4326,4329],{"className":4315},[397],[385,4317],{"className":4318,"style":2178},[401],[385,4320,4322],{"className":4321},[406],"4",[385,4324],{"className":4325,"style":598},[421],[385,4327,4208],{"className":4328},[602],[385,4330],{"className":4331,"style":598},[421],[385,4333,4335,4338],{"className":4334},[397],[385,4336],{"className":4337,"style":2178},[401],[385,4339,3106],{"className":4340},[406]," clearing it",[381,4343,4344],{},"A range sum is then two prefix queries:",[385,4346,4348],{"className":4347},[1702],[385,4349,4351],{"className":4350},[388],[385,4352,4354,4397,4430,4460],{"className":4353,"ariaHidden":393},[392],[385,4355,4357,4360,4370,4373,4376,4379,4382,4385,4388,4391,4394],{"className":4356},[397],[385,4358],{"className":4359,"style":402},[401],[385,4361,4363],{"className":4362},[3423,3424],[385,4364,4366],{"className":4365},[406,3428],[385,4367,4369],{"className":4368},[406],"RangeSum",[385,4371,527],{"className":4372},[412],[385,4374,472],{"className":4375,"style":471},[406,407],[385,4377,1783],{"className":4378},[1782],[385,4380],{"className":4381,"style":422},[421],[385,4383,486],{"className":4384,"style":485},[406,407],[385,4386,534],{"className":4387},[438],[385,4389],{"className":4390,"style":598},[421],[385,4392,603],{"className":4393},[602],[385,4395],{"className":4396,"style":598},[421],[385,4398,4400,4403,4412,4415,4418,4421,4424,4427],{"className":4399},[397],[385,4401],{"className":4402,"style":402},[401],[385,4404,4406],{"className":4405},[3423,3424],[385,4407,4409],{"className":4408},[406,3428],[385,4410,3432],{"className":4411},[406],[385,4413,527],{"className":4414},[412],[385,4416,486],{"className":4417,"style":485},[406,407],[385,4419,534],{"className":4420},[438],[385,4422],{"className":4423,"style":628},[421],[385,4425,706],{"className":4426},[632],[385,4428],{"className":4429,"style":628},[421],[385,4431,4433,4436,4445,4448,4451,4454,4457],{"className":4432},[397],[385,4434],{"className":4435,"style":402},[401],[385,4437,4439],{"className":4438},[3423,3424],[385,4440,4442],{"className":4441},[406,3428],[385,4443,3432],{"className":4444},[406],[385,4446,527],{"className":4447},[412],[385,4449,472],{"className":4450,"style":471},[406,407],[385,4452],{"className":4453,"style":628},[421],[385,4455,706],{"className":4456},[632],[385,4458],{"className":4459,"style":628},[421],[385,4461,4463,4466,4469,4472],{"className":4462},[397],[385,4464],{"className":4465,"style":402},[401],[385,4467,417],{"className":4468},[406],[385,4470,534],{"className":4471},[438],[385,4473,1783],{"className":4474},[1782],[381,4476,4477,4478,4511,4512,4527,4528,4543,4544,4551,4552,4567,4568,4592,4593,4617,4618,4670,4671,4686],{},"so both update and range sum cost ",[385,4479,4481],{"className":4480},[388],[385,4482,4484],{"className":4483,"ariaHidden":393},[392],[385,4485,4487,4490,4493,4496,4502,4505,4508],{"className":4486},[397],[385,4488],{"className":4489,"style":402},[401],[385,4491,523],{"className":4492,"style":485},[406,407],[385,4494,527],{"className":4495},[412],[385,4497,4499],{"className":4498},[911],[385,4500,917],{"className":4501,"style":916},[406,915],[385,4503],{"className":4504,"style":422},[421],[385,4506,434],{"className":4507},[406,407],[385,4509,534],{"className":4510},[438],", with ",[385,4513,4515],{"className":4514},[388],[385,4516,4518],{"className":4517,"ariaHidden":393},[392],[385,4519,4521,4524],{"className":4520},[397],[385,4522],{"className":4523,"style":503},[401],[385,4525,1570],{"className":4526,"style":583},[406,407]," occupying a single array\nof ",[385,4529,4531],{"className":4530},[388],[385,4532,4534],{"className":4533,"ariaHidden":393},[392],[385,4535,4537,4540],{"className":4536},[397],[385,4538],{"className":4539,"style":3369},[401],[385,4541,434],{"className":4542},[406,407]," words and no pointers.",[1519,4545,4546],{},[563,4547,2238],{"href":4548,"ariaDescribedBy":4549,"dataFootnoteRef":376,"id":4550},"#user-content-fn-skiena-fenwick",[1525],"user-content-fnref-skiena-fenwick"," Building ",[385,4553,4555],{"className":4554},[388],[385,4556,4558],{"className":4557,"ariaHidden":393},[392],[385,4559,4561,4564],{"className":4560},[397],[385,4562],{"className":4563,"style":503},[401],[385,4565,1570],{"className":4566,"style":583},[406,407]," takes ",[385,4569,4571],{"className":4570},[388],[385,4572,4574],{"className":4573,"ariaHidden":393},[392],[385,4575,4577,4580,4583,4586,4589],{"className":4576},[397],[385,4578],{"className":4579,"style":402},[401],[385,4581,523],{"className":4582,"style":485},[406,407],[385,4584,527],{"className":4585},[412],[385,4587,434],{"className":4588},[406,407],[385,4590,534],{"className":4591},[438]," by a linear in-place pass\n(add each ",[385,4594,4596],{"className":4595},[388],[385,4597,4599],{"className":4598,"ariaHidden":393},[392],[385,4600,4602,4605,4608,4611,4614],{"className":4601},[397],[385,4603],{"className":4604,"style":402},[401],[385,4606,1570],{"className":4607,"style":583},[406,407],[385,4609,413],{"className":4610},[412],[385,4612,591],{"className":4613},[406,407],[385,4615,439],{"className":4616},[438]," into its parent ",[385,4619,4621],{"className":4620},[388],[385,4622,4624,4648],{"className":4623,"ariaHidden":393},[392],[385,4625,4627,4630,4633,4636,4639,4642,4645],{"className":4626},[397],[385,4628],{"className":4629,"style":402},[401],[385,4631,1570],{"className":4632,"style":583},[406,407],[385,4634,413],{"className":4635},[412],[385,4637,591],{"className":4638},[406,407],[385,4640],{"className":4641,"style":628},[421],[385,4643,633],{"className":4644},[632],[385,4646],{"className":4647,"style":628},[421],[385,4649,4651,4654,4660,4663,4666],{"className":4650},[397],[385,4652],{"className":4653,"style":402},[401],[385,4655,4657],{"className":4656},[911],[385,4658,1672],{"className":4659},[406,915],[385,4661,527],{"className":4662},[412],[385,4664,591],{"className":4665},[406,407],[385,4667,4669],{"className":4668},[438],")]",") rather than\n",[385,4672,4674],{"className":4673},[388],[385,4675,4677],{"className":4676,"ariaHidden":393},[392],[385,4678,4680,4683],{"className":4679},[397],[385,4681],{"className":4682,"style":3369},[401],[385,4684,434],{"className":4685},[406,407]," separate updates.",[3399,4688,4690],{"type":4689},"note",[381,4691,4692,4695,4696,4711,4712,4739,4740,4743,4744,4747],{},[442,4693,4694],{},"Intuition."," Read the binary expansion of ",[385,4697,4699],{"className":4698},[388],[385,4700,4702],{"className":4701,"ariaHidden":393},[392],[385,4703,4705,4708],{"className":4704},[397],[385,4706],{"className":4707,"style":1649},[401],[385,4709,591],{"className":4710},[406,407]," as a sum of powers of two; each\nset bit names one Fenwick block, and the blocks tile the prefix ",[385,4713,4715],{"className":4714},[388],[385,4716,4718],{"className":4717,"ariaHidden":393},[392],[385,4719,4721,4724,4727,4730,4733,4736],{"className":4720},[397],[385,4722],{"className":4723,"style":1649},[401],[385,4725,417],{"className":4726},[406],[385,4728],{"className":4729,"style":422},[421],[385,4731,427],{"className":4732},[426],[385,4734],{"className":4735,"style":422},[421],[385,4737,591],{"className":4738},[406,407],"\nexactly. Walking down clears bits to ",[887,4741,4742],{},"read"," a prefix; walking up sets the carry\nto ",[887,4745,4746],{},"patch"," every block that owns a given element.",[381,4749,4750,4751,4754,4755,4791,4792,4812,4813,1439,4832,4901,4902,4905],{},"The one catch: this works because sums are ",[442,4752,4753],{},"invertible"," — we recover ",[385,4756,4758],{"className":4757},[388],[385,4759,4761],{"className":4760,"ariaHidden":393},[392],[385,4762,4764,4767,4770,4773,4776,4779,4782,4785,4788],{"className":4763},[397],[385,4765],{"className":4766,"style":402},[401],[385,4768,408],{"className":4769},[406,407],[385,4771,413],{"className":4772},[412],[385,4774,472],{"className":4775,"style":471},[406,407],[385,4777],{"className":4778,"style":422},[421],[385,4780,427],{"className":4781},[426],[385,4783],{"className":4784,"style":422},[421],[385,4786,486],{"className":4787,"style":485},[406,407],[385,4789,439],{"className":4790},[438],"\nby subtracting two prefixes. For non-invertible aggregates like ",[385,4793,4795],{"className":4794},[388],[385,4796,4798],{"className":4797,"ariaHidden":393},[392],[385,4799,4801,4805],{"className":4800},[397],[385,4802],{"className":4803,"style":4804},[401],"height:0.6679em;",[385,4806,4808],{"className":4807},[911],[385,4809,4811],{"className":4810},[406,915],"min"," or\n",[385,4814,4816],{"className":4815},[388],[385,4817,4819],{"className":4818,"ariaHidden":393},[392],[385,4820,4822,4825],{"className":4821},[397],[385,4823],{"className":4824,"style":3369},[401],[385,4826,4828],{"className":4827},[911],[385,4829,4831],{"className":4830},[406,915],"max",[385,4833,4835],{"className":4834},[388],[385,4836,4838,4865,4889],{"className":4837,"ariaHidden":393},[392],[385,4839,4841,4844,4847,4850,4853,4856,4859,4862],{"className":4840},[397],[385,4842],{"className":4843,"style":402},[401],[385,4845,584],{"className":4846,"style":583},[406,407],[385,4848,413],{"className":4849},[412],[385,4851,486],{"className":4852,"style":485},[406,407],[385,4854,439],{"className":4855},[438],[385,4857],{"className":4858,"style":628},[421],[385,4860,706],{"className":4861},[632],[385,4863],{"className":4864,"style":628},[421],[385,4866,4868,4871,4874,4877,4880,4883,4886],{"className":4867},[397],[385,4869],{"className":4870,"style":402},[401],[385,4872,584],{"className":4873,"style":583},[406,407],[385,4875,413],{"className":4876},[412],[385,4878,472],{"className":4879,"style":471},[406,407],[385,4881],{"className":4882,"style":628},[421],[385,4884,706],{"className":4885},[632],[385,4887],{"className":4888,"style":628},[421],[385,4890,4892,4895,4898],{"className":4891},[397],[385,4893],{"className":4894,"style":402},[401],[385,4896,417],{"className":4897},[406],[385,4899,439],{"className":4900},[438]," is meaningless, and we need a structure that queries an\n",[887,4903,4904],{},"arbitrary"," range directly. That is the segment tree.",[1541,4907,4909],{"id":4908},"segment-trees-a-balanced-tree-of-canonical-ranges","Segment trees: a balanced tree of canonical ranges",[381,4911,1547,4912,4915,4916,4970,4971,4974,4975,4978,4979,5027,5028,823,5063,5101,5102,5175,5176,3433,5212,5263,5264,5282,5283,5301,5302,5321,5322,5325],{},[442,4913,4914],{},"segment tree"," over ",[385,4917,4919],{"className":4918},[388],[385,4920,4922,4958],{"className":4921,"ariaHidden":393},[392],[385,4923,4925,4928,4931,4934,4937,4940,4943,4946,4949,4952,4955],{"className":4924},[397],[385,4926],{"className":4927,"style":402},[401],[385,4929,408],{"className":4930},[406,407],[385,4932,413],{"className":4933},[412],[385,4935,3106],{"className":4936},[406],[385,4938],{"className":4939,"style":422},[421],[385,4941,427],{"className":4942},[426],[385,4944],{"className":4945,"style":422},[421],[385,4947,434],{"className":4948},[406,407],[385,4950],{"className":4951,"style":628},[421],[385,4953,706],{"className":4954},[632],[385,4956],{"className":4957,"style":628},[421],[385,4959,4961,4964,4967],{"className":4960},[397],[385,4962],{"className":4963,"style":402},[401],[385,4965,417],{"className":4966},[406],[385,4968,439],{"className":4969},[438]," is a balanced binary tree whose ",[442,4972,4973],{},"leaves","\nare the array entries and whose every ",[442,4976,4977],{},"internal node stores the aggregate of the\ncontiguous range its subtree spans",". The root covers ",[385,4980,4982],{"className":4981},[388],[385,4983,4985,5015],{"className":4984,"ariaHidden":393},[392],[385,4986,4988,4991,4994,4997,5000,5003,5006,5009,5012],{"className":4987},[397],[385,4989],{"className":4990,"style":402},[401],[385,4992,413],{"className":4993},[412],[385,4995,3106],{"className":4996},[406],[385,4998,1783],{"className":4999},[1782],[385,5001],{"className":5002,"style":422},[421],[385,5004,434],{"className":5005},[406,407],[385,5007],{"className":5008,"style":628},[421],[385,5010,706],{"className":5011},[632],[385,5013],{"className":5014,"style":628},[421],[385,5016,5018,5021,5024],{"className":5017},[397],[385,5019],{"className":5020,"style":402},[401],[385,5022,417],{"className":5023},[406],[385,5025,439],{"className":5026},[438],"; a node covering\n",[385,5029,5031],{"className":5030},[388],[385,5032,5034],{"className":5033,"ariaHidden":393},[392],[385,5035,5037,5040,5043,5046,5050,5053,5056,5060],{"className":5036},[397],[385,5038],{"className":5039,"style":402},[401],[385,5041,413],{"className":5042},[412],[385,5044,472],{"className":5045,"style":471},[406,407],[385,5047,5049],{"className":5048},[406,407],"o",[385,5051,1783],{"className":5052},[1782],[385,5054],{"className":5055,"style":422},[421],[385,5057,5059],{"className":5058},[406,407],"hi",[385,5061,439],{"className":5062},[438],[385,5064,5066],{"className":5065},[388],[385,5067,5069,5092],{"className":5068,"ariaHidden":393},[392],[385,5070,5072,5076,5079,5082,5085,5089],{"className":5071},[397],[385,5073],{"className":5074,"style":5075},[401],"height:0.7335em;vertical-align:-0.0391em;",[385,5077,472],{"className":5078,"style":471},[406,407],[385,5080,5049],{"className":5081},[406,407],[385,5083],{"className":5084,"style":598},[421],[385,5086,5088],{"className":5087},[602],"\u003C",[385,5090],{"className":5091,"style":598},[421],[385,5093,5095,5098],{"className":5094},[397],[385,5096],{"className":5097,"style":856},[401],[385,5099,5059],{"className":5100},[406,407]," splits at ",[385,5103,5105],{"className":5104},[388],[385,5106,5108,5131,5156],{"className":5107,"ariaHidden":393},[392],[385,5109,5111,5114,5118,5122,5125,5128],{"className":5110},[397],[385,5112],{"className":5113,"style":856},[401],[385,5115,5117],{"className":5116},[406,407],"mi",[385,5119,5121],{"className":5120},[406,407],"d",[385,5123],{"className":5124,"style":598},[421],[385,5126,603],{"className":5127},[602],[385,5129],{"className":5130,"style":598},[421],[385,5132,5134,5137,5141,5144,5147,5150,5153],{"className":5133},[397],[385,5135],{"className":5136,"style":402},[401],[385,5138,5140],{"className":5139},[412],"⌊(",[385,5142,472],{"className":5143,"style":471},[406,407],[385,5145,5049],{"className":5146},[406,407],[385,5148],{"className":5149,"style":628},[421],[385,5151,633],{"className":5152},[632],[385,5154],{"className":5155,"style":628},[421],[385,5157,5159,5162,5165,5168,5172],{"className":5158},[397],[385,5160],{"className":5161,"style":402},[401],[385,5163,5059],{"className":5164},[406,407],[385,5166,534],{"className":5167},[438],[385,5169,5171],{"className":5170},[406],"\u002F2",[385,5173,3640],{"className":5174},[438]," into children\ncovering ",[385,5177,5179],{"className":5178},[388],[385,5180,5182],{"className":5181,"ariaHidden":393},[392],[385,5183,5185,5188,5191,5194,5197,5200,5203,5206,5209],{"className":5184},[397],[385,5186],{"className":5187,"style":402},[401],[385,5189,413],{"className":5190},[412],[385,5192,472],{"className":5193,"style":471},[406,407],[385,5195,5049],{"className":5196},[406,407],[385,5198,1783],{"className":5199},[1782],[385,5201],{"className":5202,"style":422},[421],[385,5204,5117],{"className":5205},[406,407],[385,5207,5121],{"className":5208},[406,407],[385,5210,439],{"className":5211},[438],[385,5213,5215],{"className":5214},[388],[385,5216,5218,5242],{"className":5217,"ariaHidden":393},[392],[385,5219,5221,5224,5227,5230,5233,5236,5239],{"className":5220},[397],[385,5222],{"className":5223,"style":402},[401],[385,5225,413],{"className":5226},[412],[385,5228,5117],{"className":5229},[406,407],[385,5231,5121],{"className":5232},[406,407],[385,5234],{"className":5235,"style":628},[421],[385,5237,633],{"className":5238},[632],[385,5240],{"className":5241,"style":628},[421],[385,5243,5245,5248,5251,5254,5257,5260],{"className":5244},[397],[385,5246],{"className":5247,"style":402},[401],[385,5249,417],{"className":5250},[406],[385,5252,1783],{"className":5253},[1782],[385,5255],{"className":5256,"style":422},[421],[385,5258,5059],{"className":5259},[406,407],[385,5261,439],{"className":5262},[438],". The stored aggregate can be sum, ",[385,5265,5267],{"className":5266},[388],[385,5268,5270],{"className":5269,"ariaHidden":393},[392],[385,5271,5273,5276],{"className":5272},[397],[385,5274],{"className":5275,"style":4804},[401],[385,5277,5279],{"className":5278},[911],[385,5280,4811],{"className":5281},[406,915],",\n",[385,5284,5286],{"className":5285},[388],[385,5287,5289],{"className":5288,"ariaHidden":393},[392],[385,5290,5292,5295],{"className":5291},[397],[385,5293],{"className":5294,"style":3369},[401],[385,5296,5298],{"className":5297},[911],[385,5299,4831],{"className":5300},[406,915],", or ",[385,5303,5305],{"className":5304},[388],[385,5306,5308],{"className":5307,"ariaHidden":393},[392],[385,5309,5311,5314],{"className":5310},[397],[385,5312],{"className":5313,"style":3446},[401],[385,5315,5317],{"className":5316},[911],[385,5318,5320],{"className":5319},[406,915],"gcd",": ",[442,5323,5324],{},"any associative operation"," (formally, any monoid), since a\nnode's value is its two children's values combined.",[929,5327,5329,5687],{"className":5328},[932,933],[935,5330,5334],{"xmlns":937,"width":5331,"height":5332,"viewBox":5333},"337.990","168.402","-75 -75 253.492 126.302",[942,5335,5336,5339,5360,5363,5382,5385,5404,5407,5426,5429,5454,5457,5481,5484,5503,5506,5525,5528,5547,5550,5574,5577,5596,5599,5618,5621,5640,5643,5662,5665,5684],{"stroke":944,"style":945},[950,5337],{"fill":958,"d":5338},"M69.458-72.07H40.16a1 1 0 0 0-1 1v15.072a1 1 0 0 0 1 1h29.298a1 1 0 0 0 1-1V-71.07a1 1 0 0 0-1-1ZM39.16-54.998",[942,5340,5341,5348,5354],{"stroke":958,"fontSize":2385},[942,5342,5344],{"transform":5343},"translate(-8.5 2)",[950,5345],{"d":5346,"fill":944,"stroke":944,"className":5347,"style":955},"M56.977-61.534L55.801-61.534L55.801-69.534L56.977-69.534L56.977-69.167L56.168-69.167L56.168-61.901L56.977-61.901L56.977-61.534M59.289-63.366Q58.586-63.366 58.186-63.766Q57.786-64.167 57.641-64.776Q57.496-65.386 57.496-66.085Q57.496-66.608 57.567-67.071Q57.637-67.534 57.830-67.946Q58.024-68.358 58.381-68.606Q58.739-68.854 59.289-68.854Q59.840-68.854 60.198-68.606Q60.555-68.358 60.746-67.948Q60.938-67.538 61.008-67.069Q61.079-66.600 61.079-66.085Q61.079-65.386 60.936-64.778Q60.793-64.171 60.393-63.768Q59.993-63.366 59.289-63.366M59.289-63.624Q59.762-63.624 59.995-64.059Q60.227-64.495 60.282-65.034Q60.336-65.573 60.336-66.214Q60.336-67.210 60.153-67.903Q59.969-68.596 59.289-68.596Q58.922-68.596 58.702-68.358Q58.481-68.120 58.385-67.763Q58.289-67.405 58.264-67.034Q58.239-66.663 58.239-66.214Q58.239-65.573 58.293-65.034Q58.348-64.495 58.580-64.059Q58.813-63.624 59.289-63.624",[954],[942,5349,5350],{"transform":5343},[950,5351],{"d":5352,"fill":944,"stroke":944,"className":5353,"style":955},"M62.245-62.128Q62.245-62.151 62.276-62.198Q62.569-62.460 62.735-62.827Q62.901-63.194 62.901-63.581L62.901-63.639Q62.773-63.534 62.605-63.534Q62.413-63.534 62.276-63.667Q62.140-63.800 62.140-63.999Q62.140-64.190 62.276-64.323Q62.413-64.456 62.605-64.456Q62.905-64.456 63.030-64.186Q63.155-63.917 63.155-63.581Q63.155-63.132 62.974-62.718Q62.792-62.304 62.452-62.007Q62.429-61.983 62.390-61.983Q62.343-61.983 62.294-62.028Q62.245-62.073 62.245-62.128",[954],[942,5355,5356],{"transform":5343},[950,5357],{"d":5358,"fill":944,"stroke":944,"className":5359,"style":955},"M66.694-63.757Q66.694-64.182 66.778-64.632Q66.862-65.081 67.018-65.499Q67.175-65.917 67.389-66.304Q67.604-66.690 67.878-67.046L68.604-67.999L67.694-67.999Q66.198-67.999 66.159-67.960Q66.089-67.878 66.042-67.688Q65.995-67.499 65.952-67.221L65.671-67.221L65.940-68.940L66.221-68.940L66.221-68.917Q66.221-68.772 66.739-68.729Q67.257-68.686 67.749-68.686L69.319-68.686L69.319-68.495Q69.311-68.456 69.296-68.429L68.120-66.893Q67.819-66.475 67.680-65.968Q67.542-65.460 67.510-64.966Q67.479-64.471 67.479-63.757Q67.479-63.651 67.428-63.559Q67.378-63.468 67.286-63.417Q67.194-63.366 67.085-63.366Q66.979-63.366 66.887-63.417Q66.796-63.468 66.745-63.559Q66.694-63.651 66.694-63.757M70.803-61.534L69.628-61.534L69.628-61.901L70.436-61.901L70.436-69.167L69.628-69.167L69.628-69.534L70.803-69.534",[954],[950,5361],{"fill":958,"d":5362},"M9.708-37.927H-19.59a1 1 0 0 0-1 1v15.072a1 1 0 0 0 1 1H9.708a1 1 0 0 0 1-1v-15.072a1 1 0 0 0-1-1ZM-20.59-20.855",[942,5364,5365,5371,5376],{"stroke":958,"fontSize":2385},[942,5366,5368],{"transform":5367},"translate(-68.25 36.143)",[950,5369],{"d":5346,"fill":944,"stroke":944,"className":5370,"style":955},[954],[942,5372,5373],{"transform":5367},[950,5374],{"d":5352,"fill":944,"stroke":944,"className":5375,"style":955},[954],[942,5377,5378],{"transform":5367},[950,5379],{"d":5380,"fill":944,"stroke":944,"className":5381,"style":955},"M65.991-64.167Q66.182-63.893 66.538-63.766Q66.893-63.639 67.276-63.639Q67.612-63.639 67.821-63.825Q68.030-64.011 68.126-64.304Q68.221-64.596 68.221-64.909Q68.221-65.233 68.124-65.528Q68.026-65.823 67.813-66.007Q67.600-66.190 67.268-66.190L66.702-66.190Q66.671-66.190 66.641-66.220Q66.612-66.249 66.612-66.276L66.612-66.358Q66.612-66.393 66.641-66.419Q66.671-66.444 66.702-66.444L67.182-66.479Q67.468-66.479 67.665-66.684Q67.862-66.889 67.958-67.184Q68.053-67.479 68.053-67.757Q68.053-68.136 67.854-68.374Q67.655-68.612 67.276-68.612Q66.956-68.612 66.667-68.505Q66.378-68.397 66.214-68.175Q66.393-68.175 66.516-68.048Q66.639-67.921 66.639-67.749Q66.639-67.577 66.514-67.452Q66.389-67.327 66.214-67.327Q66.042-67.327 65.917-67.452Q65.792-67.577 65.792-67.749Q65.792-68.116 66.016-68.364Q66.241-68.612 66.581-68.733Q66.921-68.854 67.276-68.854Q67.624-68.854 67.987-68.733Q68.350-68.612 68.598-68.362Q68.846-68.112 68.846-67.757Q68.846-67.272 68.528-66.889Q68.210-66.507 67.733-66.335Q68.284-66.225 68.684-65.839Q69.085-65.452 69.085-64.917Q69.085-64.460 68.821-64.104Q68.557-63.749 68.135-63.557Q67.714-63.366 67.276-63.366Q66.866-63.366 66.473-63.501Q66.081-63.636 65.815-63.921Q65.550-64.206 65.550-64.624Q65.550-64.819 65.682-64.948Q65.815-65.077 66.007-65.077Q66.132-65.077 66.235-65.018Q66.339-64.960 66.401-64.854Q66.464-64.749 66.464-64.624Q66.464-64.429 66.329-64.298Q66.194-64.167 65.991-64.167M70.803-61.534L69.628-61.534L69.628-61.901L70.436-61.901L70.436-69.167L69.628-69.167L69.628-69.534L70.803-69.534",[954],[950,5383],{"fill":958,"d":5384},"m39.523-54.798-29.18 16.671M-20.168-3.783h-29.298a1 1 0 0 0-1 1v15.071a1 1 0 0 0 1 1h29.298a1 1 0 0 0 1-1V-2.783a1 1 0 0 0-1-1Zm-30.298 17.071",[942,5386,5387,5393,5398],{"stroke":958,"fontSize":2385},[942,5388,5390],{"transform":5389},"translate(-98.126 70.287)",[950,5391],{"d":5346,"fill":944,"stroke":944,"className":5392,"style":955},[954],[942,5394,5395],{"transform":5389},[950,5396],{"d":5352,"fill":944,"stroke":944,"className":5397,"style":955},[954],[942,5399,5400],{"transform":5389},[950,5401],{"d":5402,"fill":944,"stroke":944,"className":5403,"style":955},"M68.792-63.534L65.999-63.534L65.999-63.831Q67.061-63.831 67.061-64.093L67.061-68.261Q66.632-68.046 65.952-68.046L65.952-68.343Q66.971-68.343 67.487-68.854L67.632-68.854Q67.706-68.835 67.725-68.757L67.725-64.093Q67.725-63.831 68.792-63.831L68.792-63.534M70.803-61.534L69.628-61.534L69.628-61.901L70.436-61.901L70.436-69.167L69.628-69.167L69.628-69.534L70.803-69.534",[954],[950,5405],{"fill":958,"d":5406},"m-12.584-20.655-14.59 16.672M-35.105 30.36h-29.298a1 1 0 0 0-1 1v15.072a1 1 0 0 0 1 1h29.298a1 1 0 0 0 1-1V31.36a1 1 0 0 0-1-1Zm-30.298 17.072",[942,5408,5409,5415,5420],{"stroke":958,"fontSize":2385},[942,5410,5412],{"transform":5411},"translate(-113.064 104.43)",[950,5413],{"d":5346,"fill":944,"stroke":944,"className":5414,"style":955},[954],[942,5416,5417],{"transform":5411},[950,5418],{"d":5352,"fill":944,"stroke":944,"className":5419,"style":955},[954],[942,5421,5422],{"transform":5411},[950,5423],{"d":5424,"fill":944,"stroke":944,"className":5425,"style":955},"M67.319-63.366Q66.616-63.366 66.216-63.766Q65.815-64.167 65.671-64.776Q65.526-65.386 65.526-66.085Q65.526-66.608 65.596-67.071Q65.667-67.534 65.860-67.946Q66.053-68.358 66.411-68.606Q66.768-68.854 67.319-68.854Q67.870-68.854 68.227-68.606Q68.585-68.358 68.776-67.948Q68.968-67.538 69.038-67.069Q69.108-66.600 69.108-66.085Q69.108-65.386 68.966-64.778Q68.823-64.171 68.423-63.768Q68.022-63.366 67.319-63.366M67.319-63.624Q67.792-63.624 68.024-64.059Q68.257-64.495 68.311-65.034Q68.366-65.573 68.366-66.214Q68.366-67.210 68.182-67.903Q67.999-68.596 67.319-68.596Q66.952-68.596 66.731-68.358Q66.510-68.120 66.415-67.763Q66.319-67.405 66.294-67.034Q66.268-66.663 66.268-66.214Q66.268-65.573 66.323-65.034Q66.378-64.495 66.610-64.059Q66.843-63.624 67.319-63.624M70.803-61.534L69.628-61.534L69.628-61.901L70.436-61.901L70.436-69.167L69.628-69.167L69.628-69.534L70.803-69.534",[954],[950,5427],{"fill":958,"d":5428},"m-38.638 13.488-7.295 16.672",[942,5430,5432,5435],{"fill":5431,"stroke":1182,"style":1183},"var(--tk-soft-accent)",[950,5433],{"d":5434},"M-5.23 30.36h-29.298a1 1 0 0 0-1 1v15.072a1 1 0 0 0 1 1H-5.23a1 1 0 0 0 1-1V31.36a1 1 0 0 0-1-1Zm-30.298 17.072",[942,5436,5437,5444,5449],{"fill":944,"stroke":958,"fontSize":2385},[942,5438,5440],{"transform":5439},"translate(-83.189 104.43)",[950,5441],{"d":5442,"fill":944,"stroke":944,"className":5443,"style":955},"M56.977-61.534L55.801-61.534L55.801-69.534L56.977-69.534L56.977-69.167L56.168-69.167L56.168-61.901L56.977-61.901L56.977-61.534M60.762-63.534L57.969-63.534L57.969-63.831Q59.032-63.831 59.032-64.093L59.032-68.261Q58.602-68.046 57.922-68.046L57.922-68.343Q58.942-68.343 59.457-68.854L59.602-68.854Q59.676-68.835 59.696-68.757L59.696-64.093Q59.696-63.831 60.762-63.831",[954],[942,5445,5446],{"transform":5439},[950,5447],{"d":5352,"fill":944,"stroke":944,"className":5448,"style":955},[954],[942,5450,5451],{"transform":5439},[950,5452],{"d":5402,"fill":944,"stroke":944,"className":5453,"style":955},[954],[950,5455],{"fill":958,"d":5456},"m-30.995 13.488 7.12 16.272",[942,5458,5459,5462],{"fill":5431,"stroke":1182,"style":1183},[950,5460],{"d":5461},"M39.583-3.783H10.285a1 1 0 0 0-1 1v15.071a1 1 0 0 0 1 1h29.298a1 1 0 0 0 1-1V-2.783a1 1 0 0 0-1-1ZM9.285 13.288",[942,5463,5464,5471,5476],{"fill":944,"stroke":958,"fontSize":2385},[942,5465,5467],{"transform":5466},"translate(-38.375 70.287)",[950,5468],{"d":5469,"fill":944,"stroke":944,"className":5470,"style":955},"M56.977-61.534L55.801-61.534L55.801-69.534L56.977-69.534L56.977-69.167L56.168-69.167L56.168-61.901L56.977-61.901L56.977-61.534M60.754-63.534L57.594-63.534L57.594-63.741Q57.594-63.768 57.618-63.800L58.969-65.198Q59.348-65.585 59.596-65.874Q59.844-66.163 60.018-66.520Q60.192-66.878 60.192-67.268Q60.192-67.616 60.059-67.909Q59.926-68.202 59.672-68.380Q59.418-68.557 59.063-68.557Q58.704-68.557 58.413-68.362Q58.121-68.167 57.977-67.839L58.032-67.839Q58.215-67.839 58.340-67.718Q58.465-67.596 58.465-67.405Q58.465-67.225 58.340-67.096Q58.215-66.968 58.032-66.968Q57.852-66.968 57.723-67.096Q57.594-67.225 57.594-67.405Q57.594-67.807 57.815-68.143Q58.036-68.479 58.401-68.667Q58.766-68.854 59.168-68.854Q59.649-68.854 60.065-68.667Q60.481-68.479 60.733-68.118Q60.985-67.757 60.985-67.268Q60.985-66.909 60.830-66.606Q60.676-66.304 60.424-66.044Q60.172-65.784 59.823-65.499Q59.473-65.214 59.305-65.061L58.375-64.221L59.090-64.221Q60.465-64.221 60.504-64.261Q60.575-64.339 60.618-64.524Q60.661-64.710 60.704-64.999L60.985-64.999",[954],[942,5472,5473],{"transform":5466},[950,5474],{"d":5352,"fill":944,"stroke":944,"className":5475,"style":955},[954],[942,5477,5478],{"transform":5466},[950,5479],{"d":5380,"fill":944,"stroke":944,"className":5480,"style":955},[954],[950,5482],{"fill":958,"d":5483},"M2.701-20.655 16.942-4.383M24.645 30.36H-4.653a1 1 0 0 0-1 1v15.072a1 1 0 0 0 1 1h29.298a1 1 0 0 0 1-1V31.36a1 1 0 0 0-1-1ZM-5.653 47.432",[942,5485,5486,5492,5497],{"stroke":958,"fontSize":2385},[942,5487,5489],{"transform":5488},"translate(-53.313 104.43)",[950,5490],{"d":5469,"fill":944,"stroke":944,"className":5491,"style":955},[954],[942,5493,5494],{"transform":5488},[950,5495],{"d":5352,"fill":944,"stroke":944,"className":5496,"style":955},[954],[942,5498,5499],{"transform":5488},[950,5500],{"d":5501,"fill":944,"stroke":944,"className":5502,"style":955},"M68.784-63.534L65.624-63.534L65.624-63.741Q65.624-63.768 65.647-63.800L66.999-65.198Q67.378-65.585 67.626-65.874Q67.874-66.163 68.048-66.520Q68.221-66.878 68.221-67.268Q68.221-67.616 68.089-67.909Q67.956-68.202 67.702-68.380Q67.448-68.557 67.093-68.557Q66.733-68.557 66.442-68.362Q66.151-68.167 66.007-67.839L66.061-67.839Q66.245-67.839 66.370-67.718Q66.495-67.596 66.495-67.405Q66.495-67.225 66.370-67.096Q66.245-66.968 66.061-66.968Q65.882-66.968 65.753-67.096Q65.624-67.225 65.624-67.405Q65.624-67.807 65.844-68.143Q66.065-68.479 66.430-68.667Q66.796-68.854 67.198-68.854Q67.678-68.854 68.094-68.667Q68.510-68.479 68.762-68.118Q69.014-67.757 69.014-67.268Q69.014-66.909 68.860-66.606Q68.706-66.304 68.454-66.044Q68.202-65.784 67.852-65.499Q67.503-65.214 67.335-65.061L66.405-64.221L67.120-64.221Q68.495-64.221 68.534-64.261Q68.604-64.339 68.647-64.524Q68.690-64.710 68.733-64.999L69.014-64.999L68.784-63.534M70.803-61.534L69.628-61.534L69.628-61.901L70.436-61.901L70.436-69.167L69.628-69.167L69.628-69.534L70.803-69.534",[954],[950,5504],{"fill":958,"d":5505},"m20.938 13.888-7.12 16.272M54.52 30.36H25.224a1 1 0 0 0-1 1v15.072a1 1 0 0 0 1 1H54.52a1 1 0 0 0 1-1V31.36a1 1 0 0 0-1-1ZM24.224 47.432",[942,5507,5508,5515,5520],{"stroke":958,"fontSize":2385},[942,5509,5511],{"transform":5510},"translate(-23.438 104.43)",[950,5512],{"d":5513,"fill":944,"stroke":944,"className":5514,"style":955},"M56.977-61.534L55.801-61.534L55.801-69.534L56.977-69.534L56.977-69.167L56.168-69.167L56.168-61.901L56.977-61.901L56.977-61.534M57.961-64.167Q58.153-63.893 58.508-63.766Q58.864-63.639 59.246-63.639Q59.582-63.639 59.791-63.825Q60-64.011 60.096-64.304Q60.192-64.596 60.192-64.909Q60.192-65.233 60.094-65.528Q59.996-65.823 59.784-66.007Q59.571-66.190 59.239-66.190L58.672-66.190Q58.641-66.190 58.612-66.220Q58.582-66.249 58.582-66.276L58.582-66.358Q58.582-66.393 58.612-66.419Q58.641-66.444 58.672-66.444L59.153-66.479Q59.438-66.479 59.635-66.684Q59.832-66.889 59.928-67.184Q60.024-67.479 60.024-67.757Q60.024-68.136 59.825-68.374Q59.625-68.612 59.246-68.612Q58.926-68.612 58.637-68.505Q58.348-68.397 58.184-68.175Q58.364-68.175 58.487-68.048Q58.610-67.921 58.610-67.749Q58.610-67.577 58.485-67.452Q58.360-67.327 58.184-67.327Q58.012-67.327 57.887-67.452Q57.762-67.577 57.762-67.749Q57.762-68.116 57.987-68.364Q58.211-68.612 58.551-68.733Q58.891-68.854 59.246-68.854Q59.594-68.854 59.957-68.733Q60.321-68.612 60.569-68.362Q60.817-68.112 60.817-67.757Q60.817-67.272 60.498-66.889Q60.180-66.507 59.704-66.335Q60.254-66.225 60.655-65.839Q61.055-65.452 61.055-64.917Q61.055-64.460 60.791-64.104Q60.528-63.749 60.106-63.557Q59.684-63.366 59.246-63.366Q58.836-63.366 58.444-63.501Q58.051-63.636 57.786-63.921Q57.520-64.206 57.520-64.624Q57.520-64.819 57.653-64.948Q57.786-65.077 57.977-65.077Q58.102-65.077 58.205-65.018Q58.309-64.960 58.371-64.854Q58.434-64.749 58.434-64.624Q58.434-64.429 58.299-64.298Q58.164-64.167 57.961-64.167",[954],[942,5516,5517],{"transform":5510},[950,5518],{"d":5352,"fill":944,"stroke":944,"className":5519,"style":955},[954],[942,5521,5522],{"transform":5510},[950,5523],{"d":5380,"fill":944,"stroke":944,"className":5524,"style":955},[954],[950,5526],{"fill":958,"d":5527},"m28.93 13.888 7.12 16.272M129.21-37.927H99.91a1 1 0 0 0-1 1v15.072a1 1 0 0 0 1 1h29.298a1 1 0 0 0 1-1v-15.072a1 1 0 0 0-1-1ZM98.91-20.855",[942,5529,5530,5537,5542],{"stroke":958,"fontSize":2385},[942,5531,5533],{"transform":5532},"translate(51.25 36.143)",[950,5534],{"d":5535,"fill":944,"stroke":944,"className":5536,"style":955},"M56.977-61.534L55.801-61.534L55.801-69.534L56.977-69.534L56.977-69.167L56.168-69.167L56.168-61.901L56.977-61.901L56.977-61.534M59.649-64.846L57.407-64.846L57.407-65.143L59.977-68.800Q60.016-68.854 60.079-68.854L60.223-68.854Q60.274-68.854 60.305-68.823Q60.336-68.792 60.336-68.741L60.336-65.143L61.168-65.143L61.168-64.846L60.336-64.846L60.336-64.093Q60.336-63.831 61.161-63.831L61.161-63.534L58.825-63.534L58.825-63.831Q59.649-63.831 59.649-64.093L59.649-64.846M59.704-67.948L57.735-65.143L59.704-65.143",[954],[942,5538,5539],{"transform":5532},[950,5540],{"d":5352,"fill":944,"stroke":944,"className":5541,"style":955},[954],[942,5543,5544],{"transform":5532},[950,5545],{"d":5358,"fill":944,"stroke":944,"className":5546,"style":955},[954],[950,5548],{"fill":958,"d":5549},"m70.096-54.798 29.18 16.671",[942,5551,5552,5555],{"fill":5431,"stroke":1182,"style":1183},[950,5553],{"d":5554},"M99.334-3.783H70.036a1 1 0 0 0-1 1v15.071a1 1 0 0 0 1 1h29.298a1 1 0 0 0 1-1V-2.783a1 1 0 0 0-1-1ZM69.036 13.288",[942,5556,5557,5563,5568],{"fill":944,"stroke":958,"fontSize":2385},[942,5558,5560],{"transform":5559},"translate(21.375 70.287)",[950,5561],{"d":5535,"fill":944,"stroke":944,"className":5562,"style":955},[954],[942,5564,5565],{"transform":5559},[950,5566],{"d":5352,"fill":944,"stroke":944,"className":5567,"style":955},[954],[942,5569,5570],{"transform":5559},[950,5571],{"d":5572,"fill":944,"stroke":944,"className":5573,"style":955},"M66.038-64.413L65.975-64.413Q66.116-64.061 66.440-63.850Q66.764-63.639 67.151-63.639Q67.745-63.639 67.995-64.073Q68.245-64.507 68.245-65.143Q68.245-65.737 68.075-66.184Q67.905-66.632 67.405-66.632Q67.108-66.632 66.903-66.552Q66.698-66.471 66.596-66.380Q66.495-66.288 66.380-66.155Q66.264-66.022 66.214-66.007L66.143-66.007Q66.057-66.030 66.038-66.108L66.038-68.757Q66.069-68.854 66.143-68.854Q66.159-68.854 66.167-68.852Q66.175-68.850 66.182-68.846Q66.768-68.596 67.366-68.596Q67.948-68.596 68.565-68.854L68.589-68.854Q68.632-68.854 68.659-68.829Q68.686-68.804 68.686-68.764L68.686-68.686Q68.686-68.655 68.663-68.632Q68.366-68.280 67.944-68.083Q67.522-67.886 67.061-67.886Q66.714-67.886 66.335-67.991L66.335-66.495Q66.553-66.690 66.829-66.788Q67.104-66.886 67.405-66.886Q67.862-66.886 68.231-66.638Q68.600-66.389 68.807-65.985Q69.014-65.581 69.014-65.136Q69.014-64.647 68.759-64.239Q68.503-63.831 68.071-63.598Q67.639-63.366 67.151-63.366Q66.757-63.366 66.401-63.557Q66.046-63.749 65.835-64.083Q65.624-64.417 65.624-64.831Q65.624-65.011 65.741-65.124Q65.858-65.237 66.038-65.237Q66.155-65.237 66.247-65.184Q66.339-65.132 66.391-65.040Q66.444-64.948 66.444-64.831Q66.444-64.647 66.331-64.530Q66.218-64.413 66.038-64.413M70.803-61.534L69.628-61.534L69.628-61.901L70.436-61.901L70.436-69.167L69.628-69.167L69.628-69.534L70.803-69.534",[954],[950,5575],{"fill":958,"d":5576},"M106.918-20.655 92.677-4.383M84.396 30.36H55.098a1 1 0 0 0-1 1v15.072a1 1 0 0 0 1 1h29.298a1 1 0 0 0 1-1V31.36a1 1 0 0 0-1-1ZM54.098 47.432",[942,5578,5579,5585,5590],{"stroke":958,"fontSize":2385},[942,5580,5582],{"transform":5581},"translate(6.438 104.43)",[950,5583],{"d":5535,"fill":944,"stroke":944,"className":5584,"style":955},[954],[942,5586,5587],{"transform":5581},[950,5588],{"d":5352,"fill":944,"stroke":944,"className":5589,"style":955},[954],[942,5591,5592],{"transform":5581},[950,5593],{"d":5594,"fill":944,"stroke":944,"className":5595,"style":955},"M67.678-64.846L65.436-64.846L65.436-65.143L68.007-68.800Q68.046-68.854 68.108-68.854L68.253-68.854Q68.303-68.854 68.335-68.823Q68.366-68.792 68.366-68.741L68.366-65.143L69.198-65.143L69.198-64.846L68.366-64.846L68.366-64.093Q68.366-63.831 69.190-63.831L69.190-63.534L66.854-63.534L66.854-63.831Q67.678-63.831 67.678-64.093L67.678-64.846M67.733-67.948L65.764-65.143L67.733-65.143L67.733-67.948M70.803-61.534L69.628-61.534L69.628-61.901L70.436-61.901L70.436-69.167L69.628-69.167L69.628-69.534L70.803-69.534",[954],[950,5597],{"fill":958,"d":5598},"m80.688 13.888-7.12 16.272M114.272 30.36H84.974a1 1 0 0 0-1 1v15.072a1 1 0 0 0 1 1h29.298a1 1 0 0 0 1-1V31.36a1 1 0 0 0-1-1ZM83.974 47.432",[942,5600,5601,5608,5613],{"stroke":958,"fontSize":2385},[942,5602,5604],{"transform":5603},"translate(36.313 104.43)",[950,5605],{"d":5606,"fill":944,"stroke":944,"className":5607,"style":955},"M56.977-61.534L55.801-61.534L55.801-69.534L56.977-69.534L56.977-69.167L56.168-69.167L56.168-61.901L56.977-61.901L56.977-61.534M58.008-64.413L57.946-64.413Q58.086-64.061 58.411-63.850Q58.735-63.639 59.121-63.639Q59.715-63.639 59.965-64.073Q60.215-64.507 60.215-65.143Q60.215-65.737 60.045-66.184Q59.875-66.632 59.375-66.632Q59.079-66.632 58.873-66.552Q58.668-66.471 58.567-66.380Q58.465-66.288 58.350-66.155Q58.235-66.022 58.184-66.007L58.114-66.007Q58.028-66.030 58.008-66.108L58.008-68.757Q58.039-68.854 58.114-68.854Q58.129-68.854 58.137-68.852Q58.145-68.850 58.153-68.846Q58.739-68.596 59.336-68.596Q59.918-68.596 60.536-68.854L60.559-68.854Q60.602-68.854 60.629-68.829Q60.657-68.804 60.657-68.764L60.657-68.686Q60.657-68.655 60.633-68.632Q60.336-68.280 59.914-68.083Q59.493-67.886 59.032-67.886Q58.684-67.886 58.305-67.991L58.305-66.495Q58.524-66.690 58.799-66.788Q59.075-66.886 59.375-66.886Q59.832-66.886 60.202-66.638Q60.571-66.389 60.778-65.985Q60.985-65.581 60.985-65.136Q60.985-64.647 60.729-64.239Q60.473-63.831 60.041-63.598Q59.610-63.366 59.121-63.366Q58.727-63.366 58.371-63.557Q58.016-63.749 57.805-64.083Q57.594-64.417 57.594-64.831Q57.594-65.011 57.711-65.124Q57.829-65.237 58.008-65.237Q58.125-65.237 58.217-65.184Q58.309-65.132 58.362-65.040Q58.414-64.948 58.414-64.831Q58.414-64.647 58.301-64.530Q58.188-64.413 58.008-64.413",[954],[942,5609,5610],{"transform":5603},[950,5611],{"d":5352,"fill":944,"stroke":944,"className":5612,"style":955},[954],[942,5614,5615],{"transform":5603},[950,5616],{"d":5572,"fill":944,"stroke":944,"className":5617,"style":955},[954],[950,5619],{"fill":958,"d":5620},"m88.682 13.888 7.12 16.272M159.085-3.783h-29.298a1 1 0 0 0-1 1v15.071a1 1 0 0 0 1 1h29.298a1 1 0 0 0 1-1V-2.783a1 1 0 0 0-1-1Zm-30.298 17.071",[942,5622,5623,5630,5635],{"stroke":958,"fontSize":2385},[942,5624,5626],{"transform":5625},"translate(81.126 70.287)",[950,5627],{"d":5628,"fill":944,"stroke":944,"className":5629,"style":955},"M56.977-61.534L55.801-61.534L55.801-69.534L56.977-69.534L56.977-69.167L56.168-69.167L56.168-61.901L56.977-61.901L56.977-61.534M59.289-63.366Q58.618-63.366 58.221-63.790Q57.825-64.214 57.672-64.833Q57.520-65.452 57.520-66.120Q57.520-66.780 57.791-67.413Q58.063-68.046 58.577-68.450Q59.090-68.854 59.762-68.854Q60.051-68.854 60.299-68.755Q60.547-68.655 60.694-68.454Q60.840-68.253 60.840-67.948Q60.840-67.843 60.789-67.751Q60.739-67.659 60.647-67.608Q60.555-67.557 60.450-67.557Q60.282-67.557 60.168-67.671Q60.055-67.784 60.055-67.948Q60.055-68.108 60.164-68.225Q60.274-68.343 60.442-68.343Q60.243-68.612 59.762-68.612Q59.344-68.612 59.012-68.335Q58.680-68.057 58.504-67.639Q58.305-67.139 58.305-66.237Q58.469-66.561 58.748-66.761Q59.028-66.960 59.375-66.960Q59.860-66.960 60.245-66.714Q60.629-66.468 60.842-66.059Q61.055-65.651 61.055-65.167Q61.055-64.675 60.825-64.263Q60.594-63.850 60.184-63.608Q59.774-63.366 59.289-63.366M59.289-63.639Q59.715-63.639 59.932-63.860Q60.149-64.081 60.211-64.407Q60.274-64.733 60.274-65.167Q60.274-65.479 60.248-65.729Q60.223-65.979 60.133-66.204Q60.043-66.429 59.848-66.565Q59.653-66.702 59.336-66.702Q59.008-66.702 58.776-66.493Q58.543-66.284 58.432-65.966Q58.321-65.647 58.321-65.335Q58.325-65.296 58.327-65.263Q58.329-65.229 58.329-65.175Q58.329-65.159 58.327-65.151Q58.325-65.143 58.321-65.136Q58.321-64.561 58.547-64.100Q58.774-63.639 59.289-63.639",[954],[942,5631,5632],{"transform":5625},[950,5633],{"d":5352,"fill":944,"stroke":944,"className":5634,"style":955},[954],[942,5636,5637],{"transform":5625},[950,5638],{"d":5358,"fill":944,"stroke":944,"className":5639,"style":955},[954],[950,5641],{"fill":958,"d":5642},"m122.204-20.655 14.59 16.672M144.147 30.36h-29.298a1 1 0 0 0-1 1v15.072a1 1 0 0 0 1 1h29.298a1 1 0 0 0 1-1V31.36a1 1 0 0 0-1-1Zm-30.298 17.072",[942,5644,5645,5651,5656],{"stroke":958,"fontSize":2385},[942,5646,5648],{"transform":5647},"translate(66.188 104.43)",[950,5649],{"d":5628,"fill":944,"stroke":944,"className":5650,"style":955},[954],[942,5652,5653],{"transform":5647},[950,5654],{"d":5352,"fill":944,"stroke":944,"className":5655,"style":955},[954],[942,5657,5658],{"transform":5647},[950,5659],{"d":5660,"fill":944,"stroke":944,"className":5661,"style":955},"M67.319-63.366Q66.647-63.366 66.251-63.790Q65.854-64.214 65.702-64.833Q65.550-65.452 65.550-66.120Q65.550-66.780 65.821-67.413Q66.093-68.046 66.606-68.450Q67.120-68.854 67.792-68.854Q68.081-68.854 68.329-68.755Q68.577-68.655 68.723-68.454Q68.870-68.253 68.870-67.948Q68.870-67.843 68.819-67.751Q68.768-67.659 68.677-67.608Q68.585-67.557 68.479-67.557Q68.311-67.557 68.198-67.671Q68.085-67.784 68.085-67.948Q68.085-68.108 68.194-68.225Q68.303-68.343 68.471-68.343Q68.272-68.612 67.792-68.612Q67.374-68.612 67.042-68.335Q66.710-68.057 66.534-67.639Q66.335-67.139 66.335-66.237Q66.499-66.561 66.778-66.761Q67.057-66.960 67.405-66.960Q67.889-66.960 68.274-66.714Q68.659-66.468 68.872-66.059Q69.085-65.651 69.085-65.167Q69.085-64.675 68.854-64.263Q68.624-63.850 68.214-63.608Q67.803-63.366 67.319-63.366M67.319-63.639Q67.745-63.639 67.962-63.860Q68.178-64.081 68.241-64.407Q68.303-64.733 68.303-65.167Q68.303-65.479 68.278-65.729Q68.253-65.979 68.163-66.204Q68.073-66.429 67.878-66.565Q67.682-66.702 67.366-66.702Q67.038-66.702 66.805-66.493Q66.573-66.284 66.462-65.966Q66.350-65.647 66.350-65.335Q66.354-65.296 66.356-65.263Q66.358-65.229 66.358-65.175Q66.358-65.159 66.356-65.151Q66.354-65.143 66.350-65.136Q66.350-64.561 66.577-64.100Q66.803-63.639 67.319-63.639M70.803-61.534L69.628-61.534L69.628-61.901L70.436-61.901L70.436-69.167L69.628-69.167L69.628-69.534L70.803-69.534",[954],[950,5663],{"fill":958,"d":5664},"M140.614 13.488 133.32 30.16M174.022 30.36h-29.298a1 1 0 0 0-1 1v15.072a1 1 0 0 0 1 1h29.298a1 1 0 0 0 1-1V31.36a1 1 0 0 0-1-1Zm-30.298 17.072",[942,5666,5667,5674,5679],{"stroke":958,"fontSize":2385},[942,5668,5670],{"transform":5669},"translate(96.064 104.43)",[950,5671],{"d":5672,"fill":944,"stroke":944,"className":5673,"style":955},"M56.977-61.534L55.801-61.534L55.801-69.534L56.977-69.534L56.977-69.167L56.168-69.167L56.168-61.901L56.977-61.901L56.977-61.534M58.664-63.757Q58.664-64.182 58.748-64.632Q58.832-65.081 58.989-65.499Q59.145-65.917 59.360-66.304Q59.575-66.690 59.848-67.046L60.575-67.999L59.664-67.999Q58.168-67.999 58.129-67.960Q58.059-67.878 58.012-67.688Q57.965-67.499 57.922-67.221L57.641-67.221L57.911-68.940L58.192-68.940L58.192-68.917Q58.192-68.772 58.709-68.729Q59.227-68.686 59.719-68.686L61.289-68.686L61.289-68.495Q61.282-68.456 61.266-68.429L60.090-66.893Q59.789-66.475 59.651-65.968Q59.512-65.460 59.481-64.966Q59.450-64.471 59.450-63.757Q59.450-63.651 59.399-63.559Q59.348-63.468 59.256-63.417Q59.164-63.366 59.055-63.366Q58.950-63.366 58.858-63.417Q58.766-63.468 58.715-63.559Q58.664-63.651 58.664-63.757",[954],[942,5675,5676],{"transform":5669},[950,5677],{"d":5352,"fill":944,"stroke":944,"className":5678,"style":955},[954],[942,5680,5681],{"transform":5669},[950,5682],{"d":5358,"fill":944,"stroke":944,"className":5683,"style":955},[954],[950,5685],{"fill":958,"d":5686},"m148.257 13.488 7.295 16.672",[1283,5688,5690,5691,5724,5725,5755],{"className":5689},[1286],"A segment tree over 8 elements; the ",[385,5692,5694],{"className":5693},[388],[385,5695,5697],{"className":5696,"ariaHidden":393},[392],[385,5698,5700,5703,5706,5709,5715,5718,5721],{"className":5699},[397],[385,5701],{"className":5702,"style":402},[401],[385,5704,523],{"className":5705,"style":485},[406,407],[385,5707,527],{"className":5708},[412],[385,5710,5712],{"className":5711},[911],[385,5713,917],{"className":5714,"style":916},[406,915],[385,5716],{"className":5717,"style":422},[421],[385,5719,434],{"className":5720},[406,407],[385,5722,534],{"className":5723},[438]," canonical nodes covering ",[385,5726,5728],{"className":5727},[388],[385,5729,5731],{"className":5730,"ariaHidden":393},[392],[385,5732,5734,5737,5740,5743,5746,5749,5752],{"className":5733},[397],[385,5735],{"className":5736,"style":402},[401],[385,5738,413],{"className":5739},[412],[385,5741,417],{"className":5742},[406],[385,5744,1783],{"className":5745},[1782],[385,5747],{"className":5748,"style":422},[421],[385,5750,2338],{"className":5751},[406],[385,5753,439],{"className":5754},[438]," are highlighted",[381,5757,5758,5761,5762,5798,5799,5832,5833,5866,5867,5897,5898,5901,5902,5932,5933,5963,5964,5997,5998,6031,6032,6062,6063,1439,6093,1439,6124,6154,6155,927],{},[442,5759,5760],{},"Query."," To aggregate ",[385,5763,5765],{"className":5764},[388],[385,5766,5768],{"className":5767,"ariaHidden":393},[392],[385,5769,5771,5774,5777,5780,5783,5786,5789,5792,5795],{"className":5770},[397],[385,5772],{"className":5773,"style":402},[401],[385,5775,408],{"className":5776},[406,407],[385,5778,413],{"className":5779},[412],[385,5781,472],{"className":5782,"style":471},[406,407],[385,5784],{"className":5785,"style":422},[421],[385,5787,427],{"className":5788},[426],[385,5790],{"className":5791,"style":422},[421],[385,5793,486],{"className":5794,"style":485},[406,407],[385,5796,439],{"className":5797},[438]," we descend from the root. At a node covering\n",[385,5800,5802],{"className":5801},[388],[385,5803,5805],{"className":5804,"ariaHidden":393},[392],[385,5806,5808,5811,5814,5817,5820,5823,5826,5829],{"className":5807},[397],[385,5809],{"className":5810,"style":402},[401],[385,5812,413],{"className":5813},[412],[385,5815,472],{"className":5816,"style":471},[406,407],[385,5818,5049],{"className":5819},[406,407],[385,5821,1783],{"className":5822},[1782],[385,5824],{"className":5825,"style":422},[421],[385,5827,5059],{"className":5828},[406,407],[385,5830,439],{"className":5831},[438],": if ",[385,5834,5836],{"className":5835},[388],[385,5837,5839],{"className":5838,"ariaHidden":393},[392],[385,5840,5842,5845,5848,5851,5854,5857,5860,5863],{"className":5841},[397],[385,5843],{"className":5844,"style":402},[401],[385,5846,413],{"className":5847},[412],[385,5849,472],{"className":5850,"style":471},[406,407],[385,5852,5049],{"className":5853},[406,407],[385,5855,1783],{"className":5856},[1782],[385,5858],{"className":5859,"style":422},[421],[385,5861,5059],{"className":5862},[406,407],[385,5864,439],{"className":5865},[438]," lies entirely inside ",[385,5868,5870],{"className":5869},[388],[385,5871,5873],{"className":5872,"ariaHidden":393},[392],[385,5874,5876,5879,5882,5885,5888,5891,5894],{"className":5875},[397],[385,5877],{"className":5878,"style":402},[401],[385,5880,413],{"className":5881},[412],[385,5883,472],{"className":5884,"style":471},[406,407],[385,5886,1783],{"className":5887},[1782],[385,5889],{"className":5890,"style":422},[421],[385,5892,486],{"className":5893,"style":485},[406,407],[385,5895,439],{"className":5896},[438]," we return its stored value\nwithout recursing (a ",[442,5899,5900],{},"canonical"," node); if it is disjoint from ",[385,5903,5905],{"className":5904},[388],[385,5906,5908],{"className":5907,"ariaHidden":393},[392],[385,5909,5911,5914,5917,5920,5923,5926,5929],{"className":5910},[397],[385,5912],{"className":5913,"style":402},[401],[385,5915,413],{"className":5916},[412],[385,5918,472],{"className":5919,"style":471},[406,407],[385,5921,1783],{"className":5922},[1782],[385,5924],{"className":5925,"style":422},[421],[385,5927,486],{"className":5928,"style":485},[406,407],[385,5930,439],{"className":5931},[438]," we return\nthe monoid identity; otherwise we recurse into both children and combine. The\nquery range ",[385,5934,5936],{"className":5935},[388],[385,5937,5939],{"className":5938,"ariaHidden":393},[392],[385,5940,5942,5945,5948,5951,5954,5957,5960],{"className":5941},[397],[385,5943],{"className":5944,"style":402},[401],[385,5946,413],{"className":5947},[412],[385,5949,472],{"className":5950,"style":471},[406,407],[385,5952,1783],{"className":5953},[1782],[385,5955],{"className":5956,"style":422},[421],[385,5958,486],{"className":5959,"style":485},[406,407],[385,5961,439],{"className":5962},[438]," decomposes into ",[385,5965,5967],{"className":5966},[388],[385,5968,5970],{"className":5969,"ariaHidden":393},[392],[385,5971,5973,5976,5979,5982,5988,5991,5994],{"className":5972},[397],[385,5974],{"className":5975,"style":402},[401],[385,5977,523],{"className":5978,"style":485},[406,407],[385,5980,527],{"className":5981},[412],[385,5983,5985],{"className":5984},[911],[385,5986,917],{"className":5987,"style":916},[406,915],[385,5989],{"className":5990,"style":422},[421],[385,5992,434],{"className":5993},[406,407],[385,5995,534],{"className":5996},[438]," canonical nodes, at most two per\nlevel of the tree, so a range query costs ",[385,5999,6001],{"className":6000},[388],[385,6002,6004],{"className":6003,"ariaHidden":393},[392],[385,6005,6007,6010,6013,6016,6022,6025,6028],{"className":6006},[397],[385,6008],{"className":6009,"style":402},[401],[385,6011,523],{"className":6012,"style":485},[406,407],[385,6014,527],{"className":6015},[412],[385,6017,6019],{"className":6018},[911],[385,6020,917],{"className":6021,"style":916},[406,915],[385,6023],{"className":6024,"style":422},[421],[385,6026,434],{"className":6027},[406,407],[385,6029,534],{"className":6030},[438],". In the figure, ",[385,6033,6035],{"className":6034},[388],[385,6036,6038],{"className":6037,"ariaHidden":393},[392],[385,6039,6041,6044,6047,6050,6053,6056,6059],{"className":6040},[397],[385,6042],{"className":6043,"style":402},[401],[385,6045,413],{"className":6046},[412],[385,6048,417],{"className":6049},[406],[385,6051,1783],{"className":6052},[1782],[385,6054],{"className":6055,"style":422},[421],[385,6057,2338],{"className":6058},[406],[385,6060,439],{"className":6061},[438]," is\ncovered by the four shaded nodes ",[385,6064,6066],{"className":6065},[388],[385,6067,6069],{"className":6068,"ariaHidden":393},[392],[385,6070,6072,6075,6078,6081,6084,6087,6090],{"className":6071},[397],[385,6073],{"className":6074,"style":402},[401],[385,6076,413],{"className":6077},[412],[385,6079,417],{"className":6080},[406],[385,6082,1783],{"className":6083},[1782],[385,6085],{"className":6086,"style":422},[421],[385,6088,417],{"className":6089},[406],[385,6091,439],{"className":6092},[438],[385,6094,6096],{"className":6095},[388],[385,6097,6099],{"className":6098,"ariaHidden":393},[392],[385,6100,6102,6105,6108,6111,6114,6117,6121],{"className":6101},[397],[385,6103],{"className":6104,"style":402},[401],[385,6106,413],{"className":6107},[412],[385,6109,2238],{"className":6110},[406],[385,6112,1783],{"className":6113},[1782],[385,6115],{"className":6116,"style":422},[421],[385,6118,6120],{"className":6119},[406],"3",[385,6122,439],{"className":6123},[438],[385,6125,6127],{"className":6126},[388],[385,6128,6130],{"className":6129,"ariaHidden":393},[392],[385,6131,6133,6136,6139,6142,6145,6148,6151],{"className":6132},[397],[385,6134],{"className":6135,"style":402},[401],[385,6137,413],{"className":6138},[412],[385,6140,4322],{"className":6141},[406],[385,6143,1783],{"className":6144},[1782],[385,6146],{"className":6147,"style":422},[421],[385,6149,2338],{"className":6150},[406],[385,6152,439],{"className":6153},[438],", and their union is\nexactly ",[385,6156,6158],{"className":6157},[388],[385,6159,6161],{"className":6160,"ariaHidden":393},[392],[385,6162,6164,6167,6171,6174,6177,6180,6183,6186,6189,6192,6195,6198,6201,6204,6207,6210],{"className":6163},[397],[385,6165],{"className":6166,"style":402},[401],[385,6168,6170],{"className":6169},[412],"{",[385,6172,417],{"className":6173},[406],[385,6175,1783],{"className":6176},[1782],[385,6178],{"className":6179,"style":422},[421],[385,6181,2238],{"className":6182},[406],[385,6184,1783],{"className":6185},[1782],[385,6187],{"className":6188,"style":422},[421],[385,6190,6120],{"className":6191},[406],[385,6193,1783],{"className":6194},[1782],[385,6196],{"className":6197,"style":422},[421],[385,6199,4322],{"className":6200},[406],[385,6202,1783],{"className":6203},[1782],[385,6205],{"className":6206,"style":422},[421],[385,6208,2338],{"className":6209},[406],[385,6211,6213],{"className":6212},[438],"}",[3399,6215,6216],{"type":3401},[381,6217,6218,6220,6221,6251,6252,6267,6268,6301],{},[442,6219,3406],{}," Any range ",[385,6222,6224],{"className":6223},[388],[385,6225,6227],{"className":6226,"ariaHidden":393},[392],[385,6228,6230,6233,6236,6239,6242,6245,6248],{"className":6229},[397],[385,6231],{"className":6232,"style":402},[401],[385,6234,413],{"className":6235},[412],[385,6237,472],{"className":6238,"style":471},[406,407],[385,6240,1783],{"className":6241},[1782],[385,6243],{"className":6244,"style":422},[421],[385,6246,486],{"className":6247,"style":485},[406,407],[385,6249,439],{"className":6250},[438]," is covered by at most ",[385,6253,6255],{"className":6254},[388],[385,6256,6258],{"className":6257,"ariaHidden":393},[392],[385,6259,6261,6264],{"className":6260},[397],[385,6262],{"className":6263,"style":2178},[401],[385,6265,2238],{"className":6266},[406]," canonical nodes per level,\nhence ",[385,6269,6271],{"className":6270},[388],[385,6272,6274],{"className":6273,"ariaHidden":393},[392],[385,6275,6277,6280,6283,6286,6292,6295,6298],{"className":6276},[397],[385,6278],{"className":6279,"style":402},[401],[385,6281,523],{"className":6282,"style":485},[406,407],[385,6284,527],{"className":6285},[412],[385,6287,6289],{"className":6288},[911],[385,6290,917],{"className":6291,"style":916},[406,915],[385,6293],{"className":6294,"style":422},[421],[385,6296,434],{"className":6297},[406,407],[385,6299,534],{"className":6300},[438]," in total.",[3399,6303,6304],{"type":3509},[381,6305,6306,6309,6310,6358,6359,6362,6363,6393,6394,6409,6410,6425,6426,6459,6460,6493,6494],{},[442,6307,6308],{},"Proof sketch."," On each level the nodes partition ",[385,6311,6313],{"className":6312},[388],[385,6314,6316,6346],{"className":6315,"ariaHidden":393},[392],[385,6317,6319,6322,6325,6328,6331,6334,6337,6340,6343],{"className":6318},[397],[385,6320],{"className":6321,"style":402},[401],[385,6323,413],{"className":6324},[412],[385,6326,3106],{"className":6327},[406],[385,6329,1783],{"className":6330},[1782],[385,6332],{"className":6333,"style":422},[421],[385,6335,434],{"className":6336},[406,407],[385,6338],{"className":6339,"style":628},[421],[385,6341,706],{"className":6342},[632],[385,6344],{"className":6345,"style":628},[421],[385,6347,6349,6352,6355],{"className":6348},[397],[385,6350],{"className":6351,"style":402},[401],[385,6353,417],{"className":6354},[406],[385,6356,439],{"className":6357},[438]," into equal blocks.\nThe recursion only branches at nodes that ",[887,6360,6361],{},"straddle"," an endpoint of ",[385,6364,6366],{"className":6365},[388],[385,6367,6369],{"className":6368,"ariaHidden":393},[392],[385,6370,6372,6375,6378,6381,6384,6387,6390],{"className":6371},[397],[385,6373],{"className":6374,"style":402},[401],[385,6376,413],{"className":6377},[412],[385,6379,472],{"className":6380,"style":471},[406,407],[385,6382,1783],{"className":6383},[1782],[385,6385],{"className":6386,"style":422},[421],[385,6388,486],{"className":6389,"style":485},[406,407],[385,6391,439],{"className":6392},[438],";\nat most one node per level straddles ",[385,6395,6397],{"className":6396},[388],[385,6398,6400],{"className":6399,"ariaHidden":393},[392],[385,6401,6403,6406],{"className":6402},[397],[385,6404],{"className":6405,"style":856},[401],[385,6407,472],{"className":6408,"style":471},[406,407]," and at most one straddles ",[385,6411,6413],{"className":6412},[388],[385,6414,6416],{"className":6415,"ariaHidden":393},[392],[385,6417,6419,6422],{"className":6418},[397],[385,6420],{"className":6421,"style":3369},[401],[385,6423,486],{"className":6424,"style":485},[406,407],", and\nevery node strictly between them is returned whole without descending. With\n",[385,6427,6429],{"className":6428},[388],[385,6430,6432],{"className":6431,"ariaHidden":393},[392],[385,6433,6435,6438,6441,6444,6450,6453,6456],{"className":6434},[397],[385,6436],{"className":6437,"style":402},[401],[385,6439,523],{"className":6440,"style":485},[406,407],[385,6442,527],{"className":6443},[412],[385,6445,6447],{"className":6446},[911],[385,6448,917],{"className":6449,"style":916},[406,915],[385,6451],{"className":6452,"style":422},[421],[385,6454,434],{"className":6455},[406,407],[385,6457,534],{"className":6458},[438]," levels that is ",[385,6461,6463],{"className":6462},[388],[385,6464,6466],{"className":6465,"ariaHidden":393},[392],[385,6467,6469,6472,6475,6478,6484,6487,6490],{"className":6468},[397],[385,6470],{"className":6471,"style":402},[401],[385,6473,523],{"className":6474,"style":485},[406,407],[385,6476,527],{"className":6477},[412],[385,6479,6481],{"className":6480},[911],[385,6482,917],{"className":6483,"style":916},[406,915],[385,6485],{"className":6486,"style":422},[421],[385,6488,434],{"className":6489},[406,407],[385,6491,534],{"className":6492},[438]," canonical pieces. ",[385,6495,6497],{"className":6496},[388],[385,6498,6500],{"className":6499,"ariaHidden":393},[392],[385,6501,6503,6506],{"className":6502},[397],[385,6504],{"className":6505,"style":3824},[401],[385,6507,6509],{"className":6508},[3423,3828],[385,6510,3833],{"className":6511},[406,3832],[381,6513,6514,6516,6517,6541,6542,6575,6576,6600,6601,6625,6626,6644,6645,6663,6664,3709,6679,6699],{},[442,6515,3151],{}," To change ",[385,6518,6520],{"className":6519},[388],[385,6521,6523],{"className":6522,"ariaHidden":393},[392],[385,6524,6526,6529,6532,6535,6538],{"className":6525},[397],[385,6527],{"className":6528,"style":402},[401],[385,6530,408],{"className":6531},[406,407],[385,6533,413],{"className":6534},[412],[385,6536,794],{"className":6537,"style":793},[406,407],[385,6539,439],{"className":6540},[438],", update the corresponding leaf and walk back up\nto the root, recomputing each ancestor as the combination of its (now-updated)\nchildren — one node per level, ",[385,6543,6545],{"className":6544},[388],[385,6546,6548],{"className":6547,"ariaHidden":393},[392],[385,6549,6551,6554,6557,6560,6566,6569,6572],{"className":6550},[397],[385,6552],{"className":6553,"style":402},[401],[385,6555,523],{"className":6556,"style":485},[406,407],[385,6558,527],{"className":6559},[412],[385,6561,6563],{"className":6562},[911],[385,6564,917],{"className":6565,"style":916},[406,915],[385,6567],{"className":6568,"style":422},[421],[385,6570,434],{"className":6571},[406,407],[385,6573,534],{"className":6574},[438]," work. Building the tree bottom-up\nvisits each of the ",[385,6577,6579],{"className":6578},[388],[385,6580,6582],{"className":6581,"ariaHidden":393},[392],[385,6583,6585,6588,6591,6594,6597],{"className":6584},[397],[385,6586],{"className":6587,"style":402},[401],[385,6589,551],{"className":6590},[406],[385,6592,527],{"className":6593},[412],[385,6595,434],{"className":6596},[406,407],[385,6598,534],{"className":6599},[438]," nodes once, so construction is ",[385,6602,6604],{"className":6603},[388],[385,6605,6607],{"className":6606,"ariaHidden":393},[392],[385,6608,6610,6613,6616,6619,6622],{"className":6609},[397],[385,6611],{"className":6612,"style":402},[401],[385,6614,523],{"className":6615,"style":485},[406,407],[385,6617,527],{"className":6618},[412],[385,6620,434],{"className":6621},[406,407],[385,6623,534],{"className":6624},[438],", and the tree\nneeds at most ",[385,6627,6629],{"className":6628},[388],[385,6630,6632],{"className":6631,"ariaHidden":393},[392],[385,6633,6635,6638,6641],{"className":6634},[397],[385,6636],{"className":6637,"style":2178},[401],[385,6639,2238],{"className":6640},[406],[385,6642,434],{"className":6643},[406,407]," (commonly allocated as ",[385,6646,6648],{"className":6647},[388],[385,6649,6651],{"className":6650,"ariaHidden":393},[392],[385,6652,6654,6657,6660],{"className":6653},[397],[385,6655],{"className":6656,"style":2178},[401],[385,6658,4322],{"className":6659},[406],[385,6661,434],{"className":6662},[406,407],") nodes, roughly ",[385,6665,6667],{"className":6666},[388],[385,6668,6670],{"className":6669,"ariaHidden":393},[392],[385,6671,6673,6676],{"className":6672},[397],[385,6674],{"className":6675,"style":2178},[401],[385,6677,2238],{"className":6678},[406],[385,6680,6682],{"className":6681},[388],[385,6683,6685],{"className":6684,"ariaHidden":393},[392],[385,6686,6688,6692,6695],{"className":6687},[397],[385,6689],{"className":6690,"style":6691},[401],"height:0.7278em;vertical-align:-0.0833em;",[385,6693,4322],{"className":6694},[406],[385,6696,6698],{"className":6697},[406],"×"," a\nFenwick tree's memory.",[6701,6702,6704,6705],"h3",{"id":6703},"lazy-propagation-range-updates-in-ologn","Lazy propagation: range updates in ",[385,6706,6708],{"className":6707},[388],[385,6709,6711],{"className":6710,"ariaHidden":393},[392],[385,6712,6714,6717,6720,6723,6729,6732,6735],{"className":6713},[397],[385,6715],{"className":6716,"style":402},[401],[385,6718,523],{"className":6719,"style":485},[406,407],[385,6721,527],{"className":6722},[412],[385,6724,6726],{"className":6725},[911],[385,6727,917],{"className":6728,"style":916},[406,915],[385,6730],{"className":6731,"style":422},[421],[385,6733,434],{"className":6734},[406,407],[385,6736,534],{"className":6737},[438],[381,6739,6740,6741,6780,6781,6784,6785,6788,6789,6792,6793,6796],{},"A point-update segment tree still pays ",[385,6742,6744],{"className":6743},[388],[385,6745,6747],{"className":6746,"ariaHidden":393},[392],[385,6748,6750,6753,6756,6759,6762,6765,6771,6774,6777],{"className":6749},[397],[385,6751],{"className":6752,"style":402},[401],[385,6754,551],{"className":6755},[406],[385,6757,527],{"className":6758},[412],[385,6760,434],{"className":6761},[406,407],[385,6763],{"className":6764,"style":422},[421],[385,6766,6768],{"className":6767},[911],[385,6769,917],{"className":6770,"style":916},[406,915],[385,6772],{"className":6773,"style":422},[421],[385,6775,434],{"className":6776},[406,407],[385,6778,534],{"className":6779},[438]," to add a value to a\n",[887,6782,6783],{},"whole range"," element by element. ",[442,6786,6787],{},"Lazy propagation"," fixes this. When an update\napplies to a range that exactly covers a node's interval, we apply it to that\nnode's aggregate and stash a ",[442,6790,6791],{},"pending tag"," on the node instead of recursing into\nits children. The tag is ",[442,6794,6795],{},"pushed down"," to the children only later, lazily, when\na subsequent query or update actually needs to enter that subtree.",[3399,6798,6799],{"type":4689},[381,6800,6801,6803,6804,6808,6809,6842,6843,6867],{},[442,6802,4694],{}," A node's tag is a promise: ",[6805,6806,6807],"q",{},"everything below me still owes this update."," We honor the promise just-in-time, the moment someone descends past\nthe node — never sooner. Each range update touches the same ",[385,6810,6812],{"className":6811},[388],[385,6813,6815],{"className":6814,"ariaHidden":393},[392],[385,6816,6818,6821,6824,6827,6833,6836,6839],{"className":6817},[397],[385,6819],{"className":6820,"style":402},[401],[385,6822,523],{"className":6823,"style":485},[406,407],[385,6825,527],{"className":6826},[412],[385,6828,6830],{"className":6829},[911],[385,6831,917],{"className":6832,"style":916},[406,915],[385,6834],{"className":6835,"style":422},[421],[385,6837,434],{"className":6838},[406,407],[385,6840,534],{"className":6841},[438],"\ncanonical nodes a query does, tagging them in ",[385,6844,6846],{"className":6845},[388],[385,6847,6849],{"className":6848,"ariaHidden":393},[392],[385,6850,6852,6855,6858,6861,6864],{"className":6851},[397],[385,6853],{"className":6854,"style":402},[401],[385,6856,523],{"className":6857,"style":485},[406,407],[385,6859,527],{"className":6860},[412],[385,6862,417],{"className":6863},[406],[385,6865,534],{"className":6866},[438]," each.",[929,6869,6871,7120],{"className":6870},[932,933],[935,6872,6876],{"xmlns":937,"width":6873,"height":6874,"viewBox":6875},"393.532","136.986","-75 -75 295.149 102.740",[942,6877,6878,6916,6919,6938,6941,6960,6963,6979,6995,6998,7016,7049,7052,7085,7088],{"stroke":944,"style":945},[942,6879,6880,6883],{"fill":5431,"stroke":1182,"style":1183},[950,6881],{"d":6882},"M4.728-69.425H-30.26a1 1 0 0 0-1 1v17.917a1 1 0 0 0 1 1H4.728a1 1 0 0 0 1-1v-17.917a1 1 0 0 0-1-1ZM-31.26-49.508",[942,6884,6885,6892,6898,6904,6910],{"fill":944,"stroke":958,"fontSize":2385},[942,6886,6888],{"transform":6887},"translate(-16.056 2)",[950,6889],{"d":6890,"fill":944,"stroke":944,"className":6891,"style":955},"M-10.598-57.466L-11.774-57.466L-11.774-65.466L-10.598-65.466L-10.598-65.099L-11.407-65.099L-11.407-57.833L-10.598-57.833L-10.598-57.466M-8.286-59.298Q-8.989-59.298-9.389-59.698Q-9.789-60.099-9.934-60.708Q-10.078-61.318-10.078-62.017Q-10.078-62.540-10.008-63.003Q-9.938-63.466-9.745-63.878Q-9.551-64.290-9.194-64.538Q-8.836-64.786-8.286-64.786Q-7.735-64.786-7.377-64.538Q-7.020-64.290-6.828-63.880Q-6.637-63.470-6.567-63.001Q-6.496-62.532-6.496-62.017Q-6.496-61.318-6.639-60.710Q-6.782-60.103-7.182-59.700Q-7.582-59.298-8.286-59.298M-8.286-59.556Q-7.813-59.556-7.580-59.991Q-7.348-60.427-7.293-60.966Q-7.239-61.505-7.239-62.146Q-7.239-63.142-7.422-63.835Q-7.606-64.529-8.286-64.529Q-8.653-64.529-8.873-64.290Q-9.094-64.052-9.190-63.695Q-9.286-63.337-9.311-62.966Q-9.336-62.595-9.336-62.146Q-9.336-61.505-9.282-60.966Q-9.227-60.427-8.995-59.991Q-8.762-59.556-8.286-59.556",[954],[942,6893,6894],{"transform":6887},[950,6895],{"d":6896,"fill":944,"stroke":944,"className":6897,"style":955},"M-5.331-58.060Q-5.331-58.083-5.300-58.130Q-5.007-58.392-4.841-58.759Q-4.675-59.126-4.675-59.513L-4.675-59.571Q-4.803-59.466-4.971-59.466Q-5.163-59.466-5.300-59.599Q-5.436-59.732-5.436-59.931Q-5.436-60.122-5.300-60.255Q-5.163-60.388-4.971-60.388Q-4.671-60.388-4.546-60.118Q-4.421-59.849-4.421-59.513Q-4.421-59.064-4.602-58.650Q-4.784-58.236-5.124-57.939Q-5.147-57.915-5.186-57.915Q-5.233-57.915-5.282-57.960Q-5.331-58.005-5.331-58.060",[954],[942,6899,6900],{"transform":6887},[950,6901],{"d":6902,"fill":944,"stroke":944,"className":6903,"style":955},"M-1.584-60.099Q-1.393-59.825-1.037-59.698Q-0.682-59.571-0.299-59.571Q0.037-59.571 0.246-59.757Q0.455-59.943 0.551-60.236Q0.646-60.529 0.646-60.841Q0.646-61.165 0.549-61.460Q0.451-61.755 0.238-61.939Q0.025-62.122-0.307-62.122L-0.873-62.122Q-0.904-62.122-0.934-62.152Q-0.963-62.181-0.963-62.208L-0.963-62.290Q-0.963-62.325-0.934-62.351Q-0.904-62.376-0.873-62.376L-0.393-62.411Q-0.107-62.411 0.090-62.616Q0.287-62.821 0.383-63.116Q0.478-63.411 0.478-63.689Q0.478-64.068 0.279-64.306Q0.080-64.544-0.299-64.544Q-0.619-64.544-0.908-64.437Q-1.197-64.329-1.361-64.107Q-1.182-64.107-1.059-63.980Q-0.936-63.853-0.936-63.681Q-0.936-63.509-1.061-63.384Q-1.186-63.259-1.361-63.259Q-1.533-63.259-1.658-63.384Q-1.783-63.509-1.783-63.681Q-1.783-64.048-1.559-64.296Q-1.334-64.544-0.994-64.665Q-0.654-64.786-0.299-64.786Q0.049-64.786 0.412-64.665Q0.775-64.544 1.023-64.294Q1.271-64.044 1.271-63.689Q1.271-63.204 0.953-62.821Q0.635-62.439 0.158-62.267Q0.709-62.157 1.109-61.771Q1.510-61.384 1.510-60.849Q1.510-60.392 1.246-60.036Q0.982-59.681 0.561-59.489Q0.139-59.298-0.299-59.298Q-0.709-59.298-1.102-59.433Q-1.494-59.568-1.760-59.853Q-2.025-60.138-2.025-60.556Q-2.025-60.751-1.893-60.880Q-1.760-61.009-1.568-61.009Q-1.443-61.009-1.340-60.950Q-1.236-60.892-1.174-60.786Q-1.111-60.681-1.111-60.556Q-1.111-60.361-1.246-60.230Q-1.381-60.099-1.584-60.099M3.228-57.466L2.053-57.466L2.053-57.833L2.861-57.833L2.861-65.099L2.053-65.099L2.053-65.466L3.228-65.466",[954],[942,6905,6906],{"transform":6887},[950,6907],{"d":6908,"fill":944,"stroke":944,"className":6909,"style":955},"M5.898-59.931Q5.898-60.114 6.034-60.251Q6.171-60.388 6.363-60.388Q6.554-60.388 6.687-60.255Q6.820-60.122 6.820-59.931Q6.820-59.732 6.687-59.599Q6.554-59.466 6.363-59.466Q6.171-59.466 6.034-59.603Q5.898-59.739 5.898-59.931M5.898-62.458Q5.898-62.642 6.034-62.779Q6.171-62.915 6.363-62.915Q6.554-62.915 6.687-62.782Q6.820-62.650 6.820-62.458Q6.820-62.259 6.687-62.126Q6.554-61.993 6.363-61.993Q6.171-61.993 6.034-62.130Q5.898-62.267 5.898-62.458",[954],[942,6911,6912],{"transform":6887},[950,6913],{"d":6914,"fill":944,"stroke":944,"className":6915,"style":955},"M11.606-61.282L9.133-61.282Q9.055-61.294 9.006-61.343Q8.958-61.392 8.958-61.466Q8.958-61.540 9.006-61.589Q9.055-61.638 9.133-61.650L11.606-61.650L11.606-64.130Q11.633-64.298 11.790-64.298Q11.864-64.298 11.913-64.249Q11.962-64.200 11.973-64.130L11.973-61.650L14.446-61.650Q14.614-61.618 14.614-61.466Q14.614-61.314 14.446-61.282L11.973-61.282L11.973-58.802Q11.962-58.732 11.913-58.683Q11.864-58.634 11.790-58.634Q11.633-58.634 11.606-58.802L11.606-61.282M15.934-60.345L15.872-60.345Q16.012-59.993 16.337-59.782Q16.661-59.571 17.047-59.571Q17.641-59.571 17.891-60.005Q18.141-60.439 18.141-61.075Q18.141-61.669 17.971-62.116Q17.801-62.564 17.301-62.564Q17.005-62.564 16.799-62.484Q16.594-62.404 16.493-62.312Q16.391-62.220 16.276-62.087Q16.161-61.954 16.110-61.939L16.040-61.939Q15.954-61.962 15.934-62.040L15.934-64.689Q15.965-64.786 16.040-64.786Q16.055-64.786 16.063-64.784Q16.071-64.782 16.079-64.779Q16.665-64.529 17.262-64.529Q17.844-64.529 18.462-64.786L18.485-64.786Q18.528-64.786 18.555-64.761Q18.583-64.736 18.583-64.696L18.583-64.618Q18.583-64.587 18.559-64.564Q18.262-64.212 17.840-64.015Q17.419-63.818 16.958-63.818Q16.610-63.818 16.231-63.923L16.231-62.427Q16.450-62.622 16.725-62.720Q17.001-62.818 17.301-62.818Q17.758-62.818 18.128-62.570Q18.497-62.321 18.704-61.917Q18.911-61.513 18.911-61.068Q18.911-60.579 18.655-60.171Q18.399-59.763 17.967-59.530Q17.536-59.298 17.047-59.298Q16.653-59.298 16.297-59.489Q15.942-59.681 15.731-60.015Q15.520-60.349 15.520-60.763Q15.520-60.943 15.637-61.056Q15.755-61.169 15.934-61.169Q16.051-61.169 16.143-61.116Q16.235-61.064 16.288-60.972Q16.340-60.880 16.340-60.763Q16.340-60.579 16.227-60.462Q16.114-60.345 15.934-60.345",[954],[950,6917],{"fill":958,"d":6918},"M-29.415-32.436h-34.988a1 1 0 0 0-1 1v17.917a1 1 0 0 0 1 1h34.988a1 1 0 0 0 1-1v-17.917a1 1 0 0 0-1-1Zm-35.988 19.917",[942,6920,6921,6927,6932],{"stroke":958,"fontSize":2385},[942,6922,6924],{"transform":6923},"translate(-42.643 38.989)",[950,6925],{"d":6890,"fill":944,"stroke":944,"className":6926,"style":955},[954],[942,6928,6929],{"transform":6923},[950,6930],{"d":6896,"fill":944,"stroke":944,"className":6931,"style":955},[954],[942,6933,6934],{"transform":6923},[950,6935],{"d":6936,"fill":944,"stroke":944,"className":6937,"style":955},"M1.217-59.466L-1.576-59.466L-1.576-59.763Q-0.514-59.763-0.514-60.025L-0.514-64.193Q-0.943-63.978-1.623-63.978L-1.623-64.275Q-0.604-64.275-0.088-64.786L0.057-64.786Q0.131-64.767 0.150-64.689L0.150-60.025Q0.150-59.763 1.217-59.763L1.217-59.466M3.228-57.466L2.053-57.466L2.053-57.833L2.861-57.833L2.861-65.099L2.053-65.099L2.053-65.466L3.228-65.466",[954],[950,6939],{"fill":958,"d":6940},"m-22.511-48.908-15.025 16.272M38.872-32.436H3.883a1 1 0 0 0-1 1v17.917a1 1 0 0 0 1 1h34.989a1 1 0 0 0 1-1v-17.917a1 1 0 0 0-1-1ZM2.883-12.519",[942,6942,6943,6950,6955],{"stroke":958,"fontSize":2385},[942,6944,6946],{"transform":6945},"translate(25.643 38.989)",[950,6947],{"d":6948,"fill":944,"stroke":944,"className":6949,"style":955},"M-10.598-57.466L-11.774-57.466L-11.774-65.466L-10.598-65.466L-10.598-65.099L-11.407-65.099L-11.407-57.833L-10.598-57.833L-10.598-57.466M-6.821-59.466L-9.981-59.466L-9.981-59.673Q-9.981-59.700-9.957-59.732L-8.606-61.130Q-8.227-61.517-7.979-61.806Q-7.731-62.095-7.557-62.452Q-7.383-62.810-7.383-63.200Q-7.383-63.548-7.516-63.841Q-7.649-64.134-7.903-64.312Q-8.157-64.489-8.512-64.489Q-8.871-64.489-9.162-64.294Q-9.453-64.099-9.598-63.771L-9.543-63.771Q-9.360-63.771-9.235-63.650Q-9.110-63.529-9.110-63.337Q-9.110-63.157-9.235-63.029Q-9.360-62.900-9.543-62.900Q-9.723-62.900-9.852-63.029Q-9.981-63.157-9.981-63.337Q-9.981-63.739-9.760-64.075Q-9.539-64.411-9.174-64.599Q-8.809-64.786-8.407-64.786Q-7.926-64.786-7.510-64.599Q-7.094-64.411-6.842-64.050Q-6.590-63.689-6.590-63.200Q-6.590-62.841-6.745-62.538Q-6.899-62.236-7.151-61.976Q-7.403-61.716-7.752-61.431Q-8.102-61.146-8.270-60.993L-9.200-60.154L-8.485-60.154Q-7.110-60.154-7.071-60.193Q-7-60.271-6.957-60.456Q-6.914-60.642-6.871-60.931L-6.590-60.931",[954],[942,6951,6952],{"transform":6945},[950,6953],{"d":6896,"fill":944,"stroke":944,"className":6954,"style":955},[954],[942,6956,6957],{"transform":6945},[950,6958],{"d":6902,"fill":944,"stroke":944,"className":6959,"style":955},[954],[950,6961],{"fill":958,"d":6962},"m-3.02-48.908 15.025 16.272",[942,6964,6966,6973],{"fill":1182,"stroke":958,"fontFamily":6965,"fontSize":2385},"cmr8",[942,6967,6969],{"transform":6968},"translate(38.949 -.845)",[950,6970],{"d":6971,"fill":1182,"stroke":1182,"className":6972,"style":955},"M-11.903-60.427L-11.903-62.618L-12.606-62.618L-12.606-62.872Q-12.250-62.872-12.008-63.105Q-11.766-63.337-11.655-63.685Q-11.543-64.032-11.543-64.388L-11.262-64.388L-11.262-62.915L-10.086-62.915L-10.086-62.618L-11.262-62.618L-11.262-60.443Q-11.262-60.122-11.143-59.894Q-11.024-59.665-10.743-59.665Q-10.563-59.665-10.446-59.788Q-10.328-59.911-10.276-60.091Q-10.223-60.271-10.223-60.443L-10.223-60.915L-9.942-60.915L-9.942-60.427Q-9.942-60.173-10.047-59.933Q-10.153-59.693-10.350-59.540Q-10.547-59.388-10.805-59.388Q-11.121-59.388-11.373-59.511Q-11.625-59.634-11.764-59.868Q-11.903-60.103-11.903-60.427M-9.125-60.298Q-9.125-60.782-8.723-61.077Q-8.321-61.372-7.770-61.491Q-7.219-61.611-6.727-61.611L-6.727-61.900Q-6.727-62.126-6.842-62.333Q-6.957-62.540-7.155-62.659Q-7.352-62.779-7.582-62.779Q-8.008-62.779-8.293-62.673Q-8.223-62.646-8.176-62.591Q-8.129-62.536-8.104-62.466Q-8.078-62.396-8.078-62.321Q-8.078-62.216-8.129-62.124Q-8.180-62.032-8.272-61.982Q-8.364-61.931-8.469-61.931Q-8.575-61.931-8.666-61.982Q-8.758-62.032-8.809-62.124Q-8.860-62.216-8.860-62.321Q-8.860-62.739-8.471-62.886Q-8.082-63.032-7.582-63.032Q-7.250-63.032-6.897-62.902Q-6.543-62.771-6.315-62.517Q-6.086-62.263-6.086-61.915L-6.086-60.114Q-6.086-59.982-6.014-59.872Q-5.942-59.763-5.813-59.763Q-5.688-59.763-5.620-59.868Q-5.551-59.974-5.551-60.114L-5.551-60.626L-5.270-60.626L-5.270-60.114Q-5.270-59.911-5.387-59.753Q-5.504-59.595-5.686-59.511Q-5.868-59.427-6.071-59.427Q-6.301-59.427-6.453-59.599Q-6.606-59.771-6.637-60.001Q-6.797-59.720-7.106-59.554Q-7.414-59.388-7.766-59.388Q-8.278-59.388-8.702-59.611Q-9.125-59.833-9.125-60.298M-8.438-60.298Q-8.438-60.013-8.211-59.827Q-7.985-59.642-7.692-59.642Q-7.446-59.642-7.221-59.759Q-6.996-59.876-6.862-60.079Q-6.727-60.282-6.727-60.536L-6.727-61.368Q-6.993-61.368-7.278-61.314Q-7.563-61.259-7.834-61.130Q-8.106-61.001-8.272-60.794Q-8.438-60.587-8.438-60.298M-4.977-58.857Q-4.977-59.138-4.766-59.349Q-4.555-59.560-4.270-59.650Q-4.426-59.775-4.504-59.964Q-4.582-60.154-4.582-60.353Q-4.582-60.708-4.352-61.001Q-4.719-61.341-4.719-61.810Q-4.719-62.161-4.516-62.431Q-4.313-62.700-3.993-62.847Q-3.672-62.993-3.328-62.993Q-2.809-62.993-2.438-62.712Q-2.075-63.083-1.528-63.083Q-1.348-63.083-1.221-62.956Q-1.094-62.829-1.094-62.650Q-1.094-62.544-1.172-62.466Q-1.250-62.388-1.360-62.388Q-1.469-62.388-1.545-62.464Q-1.621-62.540-1.621-62.650Q-1.621-62.751-1.582-62.802Q-1.575-62.810-1.571-62.816Q-1.567-62.821-1.567-62.825Q-1.942-62.825-2.262-62.571Q-1.942-62.232-1.942-61.810Q-1.942-61.540-2.059-61.323Q-2.176-61.107-2.381-60.948Q-2.586-60.790-2.828-60.708Q-3.071-60.626-3.328-60.626Q-3.547-60.626-3.760-60.685Q-3.973-60.743-4.168-60.864Q-4.262-60.724-4.262-60.544Q-4.262-60.337-4.125-60.185Q-3.989-60.032-3.782-60.032L-3.086-60.032Q-2.598-60.032-2.186-59.948Q-1.774-59.864-1.495-59.607Q-1.215-59.349-1.215-58.857Q-1.215-58.493-1.536-58.261Q-1.856-58.029-2.297-57.927Q-2.739-57.825-3.094-57.825Q-3.450-57.825-3.893-57.927Q-4.336-58.029-4.657-58.261Q-4.977-58.493-4.977-58.857M-4.473-58.857Q-4.473-58.661-4.328-58.513Q-4.184-58.364-3.971-58.275Q-3.758-58.185-3.518-58.138Q-3.278-58.091-3.094-58.091Q-2.852-58.091-2.522-58.169Q-2.192-58.247-1.955-58.421Q-1.719-58.595-1.719-58.857Q-1.719-59.263-2.129-59.372Q-2.539-59.482-3.102-59.482L-3.782-59.482Q-4.051-59.482-4.262-59.304Q-4.473-59.126-4.473-58.857M-3.328-60.892Q-2.606-60.892-2.606-61.810Q-2.606-62.732-3.328-62.732Q-4.055-62.732-4.055-61.810Q-4.055-60.892-3.328-60.892",[954],[942,6974,6975],{"transform":6968},[950,6976],{"d":6977,"fill":1182,"stroke":1182,"className":6978,"style":955},"M4.041-59.466L2.186-59.466L2.186-59.763Q2.459-59.763 2.627-59.810Q2.795-59.857 2.795-60.025L2.795-64.185Q2.795-64.400 2.732-64.495Q2.670-64.591 2.551-64.612Q2.432-64.634 2.186-64.634L2.186-64.931L3.408-65.017L3.408-62.314Q3.533-62.525 3.721-62.675Q3.908-62.825 4.135-62.909Q4.361-62.993 4.607-62.993Q5.775-62.993 5.775-61.915L5.775-60.025Q5.775-59.857 5.945-59.810Q6.115-59.763 6.385-59.763L6.385-59.466L4.529-59.466L4.529-59.763Q4.803-59.763 4.971-59.810Q5.139-59.857 5.139-60.025L5.139-61.900Q5.139-62.282 5.018-62.511Q4.896-62.739 4.545-62.739Q4.232-62.739 3.978-62.577Q3.725-62.415 3.578-62.146Q3.432-61.876 3.432-61.579L3.432-60.025Q3.432-59.857 3.602-59.810Q3.771-59.763 4.041-59.763L4.041-59.466M6.830-61.220Q6.830-61.700 7.062-62.116Q7.295-62.532 7.705-62.782Q8.115-63.032 8.592-63.032Q9.322-63.032 9.721-62.591Q10.119-62.150 10.119-61.419Q10.119-61.314 10.025-61.290L7.576-61.290L7.576-61.220Q7.576-60.810 7.697-60.454Q7.818-60.099 8.090-59.882Q8.361-59.665 8.791-59.665Q9.154-59.665 9.451-59.894Q9.748-60.122 9.850-60.474Q9.857-60.521 9.943-60.536L10.025-60.536Q10.119-60.509 10.119-60.427Q10.119-60.419 10.111-60.388Q10.049-60.161 9.910-59.978Q9.771-59.794 9.580-59.661Q9.389-59.529 9.170-59.458Q8.951-59.388 8.713-59.388Q8.342-59.388 8.004-59.525Q7.666-59.661 7.398-59.913Q7.131-60.165 6.980-60.505Q6.830-60.845 6.830-61.220M7.584-61.529L9.545-61.529Q9.545-61.833 9.443-62.124Q9.342-62.415 9.125-62.597Q8.908-62.779 8.592-62.779Q8.291-62.779 8.061-62.591Q7.830-62.404 7.707-62.112Q7.584-61.821 7.584-61.529M12.521-59.466L10.689-59.466L10.689-59.763Q10.963-59.763 11.131-59.810Q11.299-59.857 11.299-60.025L11.299-64.185Q11.299-64.400 11.236-64.495Q11.174-64.591 11.055-64.612Q10.936-64.634 10.689-64.634L10.689-64.931L11.912-65.017L11.912-60.025Q11.912-59.857 12.080-59.810Q12.248-59.763 12.521-59.763L12.521-59.466M14.783-59.388Q14.303-59.388 13.894-59.632Q13.486-59.876 13.248-60.290Q13.010-60.704 13.010-61.193Q13.010-61.685 13.268-62.101Q13.525-62.517 13.957-62.755Q14.389-62.993 14.881-62.993Q15.502-62.993 15.951-62.556L15.951-64.185Q15.951-64.400 15.889-64.495Q15.826-64.591 15.709-64.612Q15.592-64.634 15.346-64.634L15.346-64.931L16.568-65.017L16.568-60.208Q16.568-59.997 16.631-59.902Q16.693-59.806 16.811-59.784Q16.928-59.763 17.178-59.763L17.178-59.466L15.928-59.388L15.928-59.872Q15.463-59.388 14.783-59.388M14.850-59.642Q15.189-59.642 15.482-59.833Q15.775-60.025 15.928-60.321L15.928-62.154Q15.779-62.427 15.518-62.583Q15.256-62.739 14.943-62.739Q14.318-62.739 14.035-62.292Q13.752-61.845 13.752-61.185Q13.752-60.540 14.004-60.091Q14.256-59.642 14.850-59.642",[954],[942,6980,6981,6984,6988],{"style":1183},[950,6982],{"fill":958,"d":6983},"M78.283-36.704h38.634",[950,6985],{"fill":958,"d":6986,"style":6987},"M114.477-40.549c.555 2.307 1.793 3.397 3.04 3.845-1.247.449-2.485 1.538-3.04 3.845","stroke-linecap:round;stroke-linejoin:round",[942,6989,6991],{"transform":6990},"translate(96.54 14.982)",[950,6992],{"d":6993,"fill":944,"stroke":944,"className":6994,"style":955},"M-10.711-59.388Q-11.192-59.388-11.600-59.632Q-12.008-59.876-12.246-60.290Q-12.485-60.704-12.485-61.193Q-12.485-61.685-12.227-62.101Q-11.969-62.517-11.537-62.755Q-11.106-62.993-10.614-62.993Q-9.993-62.993-9.543-62.556L-9.543-64.185Q-9.543-64.400-9.606-64.495Q-9.668-64.591-9.786-64.612Q-9.903-64.634-10.149-64.634L-10.149-64.931L-8.926-65.017L-8.926-60.208Q-8.926-59.997-8.864-59.902Q-8.801-59.806-8.684-59.784Q-8.567-59.763-8.317-59.763L-8.317-59.466L-9.567-59.388L-9.567-59.872Q-10.032-59.388-10.711-59.388M-10.645-59.642Q-10.305-59.642-10.012-59.833Q-9.719-60.025-9.567-60.321L-9.567-62.154Q-9.715-62.427-9.977-62.583Q-10.239-62.739-10.551-62.739Q-11.176-62.739-11.459-62.292Q-11.743-61.845-11.743-61.185Q-11.743-60.540-11.491-60.091Q-11.239-59.642-10.645-59.642M-7.809-61.220Q-7.809-61.700-7.577-62.116Q-7.344-62.532-6.934-62.782Q-6.524-63.032-6.047-63.032Q-5.317-63.032-4.918-62.591Q-4.520-62.150-4.520-61.419Q-4.520-61.314-4.614-61.290L-7.063-61.290L-7.063-61.220Q-7.063-60.810-6.942-60.454Q-6.821-60.099-6.549-59.882Q-6.278-59.665-5.848-59.665Q-5.485-59.665-5.188-59.894Q-4.891-60.122-4.789-60.474Q-4.782-60.521-4.696-60.536L-4.614-60.536Q-4.520-60.509-4.520-60.427Q-4.520-60.419-4.528-60.388Q-4.590-60.161-4.729-59.978Q-4.868-59.794-5.059-59.661Q-5.250-59.529-5.469-59.458Q-5.688-59.388-5.926-59.388Q-6.297-59.388-6.635-59.525Q-6.973-59.661-7.241-59.913Q-7.508-60.165-7.659-60.505Q-7.809-60.845-7.809-61.220M-7.055-61.529L-5.094-61.529Q-5.094-61.833-5.196-62.124Q-5.297-62.415-5.514-62.597Q-5.731-62.779-6.047-62.779Q-6.348-62.779-6.578-62.591Q-6.809-62.404-6.932-62.112Q-7.055-61.821-7.055-61.529M-3.989-59.474L-3.989-60.696Q-3.989-60.724-3.957-60.755Q-3.926-60.786-3.903-60.786L-3.797-60.786Q-3.727-60.786-3.711-60.724Q-3.649-60.404-3.510-60.163Q-3.371-59.923-3.139-59.782Q-2.907-59.642-2.598-59.642Q-2.360-59.642-2.151-59.702Q-1.942-59.763-1.805-59.911Q-1.668-60.060-1.668-60.306Q-1.668-60.560-1.879-60.726Q-2.090-60.892-2.360-60.946L-2.981-61.060Q-3.387-61.138-3.688-61.394Q-3.989-61.650-3.989-62.025Q-3.989-62.392-3.787-62.614Q-3.586-62.837-3.262-62.935Q-2.938-63.032-2.598-63.032Q-2.133-63.032-1.836-62.825L-1.614-63.009Q-1.590-63.032-1.559-63.032L-1.508-63.032Q-1.477-63.032-1.450-63.005Q-1.422-62.978-1.422-62.946L-1.422-61.962Q-1.422-61.931-1.448-61.902Q-1.473-61.872-1.508-61.872L-1.614-61.872Q-1.649-61.872-1.676-61.900Q-1.703-61.927-1.703-61.962Q-1.703-62.361-1.955-62.581Q-2.207-62.802-2.606-62.802Q-2.961-62.802-3.245-62.679Q-3.528-62.556-3.528-62.251Q-3.528-62.032-3.327-61.900Q-3.125-61.767-2.879-61.724L-2.254-61.611Q-1.825-61.521-1.516-61.224Q-1.207-60.927-1.207-60.513Q-1.207-59.943-1.606-59.665Q-2.004-59.388-2.598-59.388Q-3.149-59.388-3.500-59.724L-3.797-59.411Q-3.821-59.388-3.856-59.388L-3.903-59.388Q-3.926-59.388-3.957-59.419Q-3.989-59.450-3.989-59.474M-0.637-61.193Q-0.637-61.689-0.387-62.114Q-0.137-62.540 0.283-62.786Q0.703-63.032 1.203-63.032Q1.742-63.032 2.132-62.907Q2.523-62.782 2.523-62.368Q2.523-62.263 2.472-62.171Q2.422-62.079 2.330-62.029Q2.238-61.978 2.129-61.978Q2.023-61.978 1.931-62.029Q1.839-62.079 1.789-62.171Q1.738-62.263 1.738-62.368Q1.738-62.591 1.906-62.696Q1.683-62.755 1.211-62.755Q0.914-62.755 0.699-62.616Q0.484-62.478 0.353-62.247Q0.222-62.017 0.164-61.747Q0.105-61.478 0.105-61.193Q0.105-60.798 0.238-60.448Q0.371-60.099 0.642-59.882Q0.914-59.665 1.312-59.665Q1.687-59.665 1.963-59.882Q2.238-60.099 2.339-60.458Q2.355-60.521 2.418-60.521L2.523-60.521Q2.558-60.521 2.584-60.493Q2.609-60.466 2.609-60.427L2.609-60.404Q2.476-59.923 2.091-59.655Q1.707-59.388 1.203-59.388Q0.839-59.388 0.505-59.525Q0.172-59.661-0.088-59.911Q-0.348-60.161-0.493-60.497Q-0.637-60.833-0.637-61.193M3.097-61.220Q3.097-61.700 3.330-62.116Q3.562-62.532 3.972-62.782Q4.382-63.032 4.859-63.032Q5.589-63.032 5.988-62.591Q6.386-62.150 6.386-61.419Q6.386-61.314 6.293-61.290L3.843-61.290L3.843-61.220Q3.843-60.810 3.964-60.454Q4.086-60.099 4.357-59.882Q4.629-59.665 5.058-59.665Q5.422-59.665 5.718-59.894Q6.015-60.122 6.117-60.474Q6.125-60.521 6.211-60.536L6.293-60.536Q6.386-60.509 6.386-60.427Q6.386-60.419 6.379-60.388Q6.316-60.161 6.177-59.978Q6.039-59.794 5.847-59.661Q5.656-59.529 5.437-59.458Q5.218-59.388 4.980-59.388Q4.609-59.388 4.271-59.525Q3.933-59.661 3.666-59.913Q3.398-60.165 3.248-60.505Q3.097-60.845 3.097-61.220M3.851-61.529L5.812-61.529Q5.812-61.833 5.711-62.124Q5.609-62.415 5.392-62.597Q5.175-62.779 4.859-62.779Q4.558-62.779 4.328-62.591Q4.097-62.404 3.974-62.112Q3.851-61.821 3.851-61.529M8.804-59.466L6.949-59.466L6.949-59.763Q7.222-59.763 7.390-59.810Q7.558-59.857 7.558-60.025L7.558-62.161Q7.558-62.376 7.496-62.472Q7.433-62.568 7.314-62.589Q7.195-62.611 6.949-62.611L6.949-62.907L8.140-62.993L8.140-62.259Q8.254-62.474 8.447-62.642Q8.640-62.810 8.879-62.902Q9.117-62.993 9.371-62.993Q10.539-62.993 10.539-61.915L10.539-60.025Q10.539-59.857 10.709-59.810Q10.879-59.763 11.148-59.763L11.148-59.466L9.293-59.466L9.293-59.763Q9.566-59.763 9.734-59.810Q9.902-59.857 9.902-60.025L9.902-61.900Q9.902-62.282 9.781-62.511Q9.660-62.739 9.308-62.739Q8.996-62.739 8.742-62.577Q8.488-62.415 8.341-62.146Q8.195-61.876 8.195-61.579L8.195-60.025Q8.195-59.857 8.365-59.810Q8.535-59.763 8.804-59.763L8.804-59.466M13.410-59.388Q12.929-59.388 12.521-59.632Q12.113-59.876 11.875-60.290Q11.636-60.704 11.636-61.193Q11.636-61.685 11.894-62.101Q12.152-62.517 12.584-62.755Q13.015-62.993 13.507-62.993Q14.129-62.993 14.578-62.556L14.578-64.185Q14.578-64.400 14.515-64.495Q14.453-64.591 14.336-64.612Q14.218-64.634 13.972-64.634L13.972-64.931L15.195-65.017L15.195-60.208Q15.195-59.997 15.257-59.902Q15.320-59.806 15.437-59.784Q15.554-59.763 15.804-59.763L15.804-59.466L14.554-59.388L14.554-59.872Q14.089-59.388 13.410-59.388M13.476-59.642Q13.816-59.642 14.109-59.833Q14.402-60.025 14.554-60.321L14.554-62.154Q14.406-62.427 14.144-62.583Q13.882-62.739 13.570-62.739Q12.945-62.739 12.662-62.292Q12.379-61.845 12.379-61.185Q12.379-60.540 12.630-60.091Q12.882-59.642 13.476-59.642",[954],[950,6996],{"fill":958,"d":6997},"M181.136-69.425h-34.989a1 1 0 0 0-1 1v17.917a1 1 0 0 0 1 1h34.989a1 1 0 0 0 1-1v-17.917a1 1 0 0 0-1-1Zm-35.989 19.917",[942,6999,7000,7006,7011],{"stroke":958,"fontSize":2385},[942,7001,7003],{"transform":7002},"translate(167.907 2)",[950,7004],{"d":6890,"fill":944,"stroke":944,"className":7005,"style":955},[954],[942,7007,7008],{"transform":7002},[950,7009],{"d":6896,"fill":944,"stroke":944,"className":7010,"style":955},[954],[942,7012,7013],{"transform":7002},[950,7014],{"d":6902,"fill":944,"stroke":944,"className":7015,"style":955},[954],[942,7017,7018,7021],{"fill":5431,"stroke":1182,"style":1183},[950,7019],{"d":7020},"M146.992-32.436h-34.988a1 1 0 0 0-1 1v17.917a1 1 0 0 0 1 1h34.988a1 1 0 0 0 1-1v-17.917a1 1 0 0 0-1-1Zm-35.988 19.917",[942,7022,7023,7029,7034,7039,7044],{"fill":944,"stroke":958,"fontSize":2385},[942,7024,7026],{"transform":7025},"translate(126.208 38.989)",[950,7027],{"d":6890,"fill":944,"stroke":944,"className":7028,"style":955},[954],[942,7030,7031],{"transform":7025},[950,7032],{"d":6896,"fill":944,"stroke":944,"className":7033,"style":955},[954],[942,7035,7036],{"transform":7025},[950,7037],{"d":6936,"fill":944,"stroke":944,"className":7038,"style":955},[954],[942,7040,7041],{"transform":7025},[950,7042],{"d":6908,"fill":944,"stroke":944,"className":7043,"style":955},[954],[942,7045,7046],{"transform":7025},[950,7047],{"d":6914,"fill":944,"stroke":944,"className":7048,"style":955},[954],[950,7050],{"fill":958,"d":7051},"M154.265-49.308 139.24-33.036",[942,7053,7054,7057],{"fill":5431,"stroke":1182,"style":1183},[950,7055],{"d":7056},"M215.279-32.436H180.29a1 1 0 0 0-1 1v17.917a1 1 0 0 0 1 1h34.989a1 1 0 0 0 1-1v-17.917a1 1 0 0 0-1-1ZM179.29-12.519",[942,7058,7059,7065,7070,7075,7080],{"fill":944,"stroke":958,"fontSize":2385},[942,7060,7062],{"transform":7061},"translate(194.495 38.989)",[950,7063],{"d":6948,"fill":944,"stroke":944,"className":7064,"style":955},[954],[942,7066,7067],{"transform":7061},[950,7068],{"d":6896,"fill":944,"stroke":944,"className":7069,"style":955},[954],[942,7071,7072],{"transform":7061},[950,7073],{"d":6902,"fill":944,"stroke":944,"className":7074,"style":955},[954],[942,7076,7077],{"transform":7061},[950,7078],{"d":6908,"fill":944,"stroke":944,"className":7079,"style":955},[954],[942,7081,7082],{"transform":7061},[950,7083],{"d":6914,"fill":944,"stroke":944,"className":7084,"style":955},[954],[950,7086],{"fill":958,"d":7087},"m173.018-49.308 15.025 16.272",[942,7089,7090,7096,7102,7108,7114],{"fill":1182,"stroke":958,"fontFamily":6965,"fontSize":2385},[942,7091,7093],{"transform":7092},"translate(134.706 75.977)",[950,7094],{"d":6971,"fill":1182,"stroke":1182,"className":7095,"style":955},[954],[942,7097,7098],{"transform":7092},[950,7099],{"d":7100,"fill":1182,"stroke":1182,"className":7101,"style":955},"M3.994-57.915L2.139-57.915L2.139-58.208Q2.408-58.208 2.576-58.253Q2.744-58.298 2.744-58.474L2.744-62.298Q2.744-62.505 2.588-62.558Q2.432-62.611 2.139-62.611L2.139-62.907L3.361-62.993L3.361-62.529Q3.592-62.751 3.906-62.872Q4.221-62.993 4.561-62.993Q5.033-62.993 5.437-62.747Q5.842-62.501 6.074-62.085Q6.307-61.669 6.307-61.193Q6.307-60.818 6.158-60.489Q6.010-60.161 5.740-59.909Q5.471-59.657 5.127-59.523Q4.783-59.388 4.424-59.388Q4.135-59.388 3.863-59.509Q3.592-59.630 3.385-59.841L3.385-58.474Q3.385-58.298 3.553-58.253Q3.721-58.208 3.994-58.208L3.994-57.915M3.385-62.130L3.385-60.290Q3.537-60.001 3.799-59.821Q4.061-59.642 4.369-59.642Q4.654-59.642 4.877-59.780Q5.100-59.919 5.252-60.150Q5.404-60.380 5.482-60.652Q5.561-60.923 5.561-61.193Q5.561-61.525 5.436-61.882Q5.311-62.239 5.062-62.476Q4.814-62.712 4.467-62.712Q4.143-62.712 3.848-62.556Q3.553-62.400 3.385-62.130M7.514-60.419L7.514-62.161Q7.514-62.376 7.451-62.472Q7.389-62.568 7.269-62.589Q7.150-62.611 6.904-62.611L6.904-62.907L8.150-62.993L8.150-60.443L8.150-60.419Q8.150-60.107 8.205-59.945Q8.260-59.782 8.410-59.712Q8.561-59.642 8.881-59.642Q9.311-59.642 9.584-59.980Q9.857-60.318 9.857-60.763L9.857-62.161Q9.857-62.376 9.795-62.472Q9.732-62.568 9.613-62.589Q9.494-62.611 9.248-62.611L9.248-62.907L10.494-62.993L10.494-60.208Q10.494-59.997 10.557-59.902Q10.619-59.806 10.738-59.784Q10.857-59.763 11.103-59.763L11.103-59.466L9.881-59.388L9.881-60.009Q9.713-59.720 9.432-59.554Q9.150-59.388 8.830-59.388Q7.514-59.388 7.514-60.419M11.592-59.474L11.592-60.696Q11.592-60.724 11.623-60.755Q11.654-60.786 11.678-60.786L11.783-60.786Q11.853-60.786 11.869-60.724Q11.932-60.404 12.070-60.163Q12.209-59.923 12.441-59.782Q12.674-59.642 12.982-59.642Q13.221-59.642 13.430-59.702Q13.639-59.763 13.775-59.911Q13.912-60.060 13.912-60.306Q13.912-60.560 13.701-60.726Q13.490-60.892 13.221-60.946L12.600-61.060Q12.193-61.138 11.893-61.394Q11.592-61.650 11.592-62.025Q11.592-62.392 11.793-62.614Q11.994-62.837 12.318-62.935Q12.643-63.032 12.982-63.032Q13.447-63.032 13.744-62.825L13.967-63.009Q13.990-63.032 14.021-63.032L14.072-63.032Q14.103-63.032 14.131-63.005Q14.158-62.978 14.158-62.946L14.158-61.962Q14.158-61.931 14.133-61.902Q14.107-61.872 14.072-61.872L13.967-61.872Q13.932-61.872 13.904-61.900Q13.877-61.927 13.877-61.962Q13.877-62.361 13.625-62.581Q13.373-62.802 12.975-62.802Q12.619-62.802 12.336-62.679Q12.053-62.556 12.053-62.251Q12.053-62.032 12.254-61.900Q12.455-61.767 12.701-61.724L13.326-61.611Q13.756-61.521 14.064-61.224Q14.373-60.927 14.373-60.513Q14.373-59.943 13.975-59.665Q13.576-59.388 12.982-59.388Q12.432-59.388 12.080-59.724L11.783-59.411Q11.760-59.388 11.725-59.388L11.678-59.388Q11.654-59.388 11.623-59.419Q11.592-59.450 11.592-59.474M16.830-59.466L14.975-59.466L14.975-59.763Q15.248-59.763 15.416-59.810Q15.584-59.857 15.584-60.025L15.584-64.185Q15.584-64.400 15.521-64.495Q15.459-64.591 15.340-64.612Q15.221-64.634 14.975-64.634L14.975-64.931L16.197-65.017L16.197-62.314Q16.322-62.525 16.510-62.675Q16.697-62.825 16.924-62.909Q17.150-62.993 17.396-62.993Q18.564-62.993 18.564-61.915L18.564-60.025Q18.564-59.857 18.734-59.810Q18.904-59.763 19.174-59.763L19.174-59.466L17.318-59.466L17.318-59.763Q17.592-59.763 17.760-59.810Q17.928-59.857 17.928-60.025L17.928-61.900Q17.928-62.282 17.807-62.511Q17.686-62.739 17.334-62.739Q17.021-62.739 16.768-62.577Q16.514-62.415 16.367-62.146Q16.221-61.876 16.221-61.579L16.221-60.025Q16.221-59.857 16.391-59.810Q16.561-59.763 16.830-59.763L16.830-59.466M19.619-61.220Q19.619-61.700 19.852-62.116Q20.084-62.532 20.494-62.782Q20.904-63.032 21.381-63.032Q22.111-63.032 22.510-62.591Q22.908-62.150 22.908-61.419Q22.908-61.314 22.814-61.290L20.365-61.290L20.365-61.220Q20.365-60.810 20.486-60.454Q20.607-60.099 20.879-59.882Q21.150-59.665 21.580-59.665Q21.943-59.665 22.240-59.894Q22.537-60.122 22.639-60.474Q22.646-60.521 22.732-60.536L22.814-60.536Q22.908-60.509 22.908-60.427Q22.908-60.419 22.900-60.388Q22.838-60.161 22.699-59.978Q22.561-59.794 22.369-59.661Q22.178-59.529 21.959-59.458Q21.740-59.388 21.502-59.388Q21.131-59.388 20.793-59.525Q20.455-59.661 20.187-59.913Q19.920-60.165 19.769-60.505Q19.619-60.845 19.619-61.220M20.373-61.529L22.334-61.529Q22.334-61.833 22.232-62.124Q22.131-62.415 21.914-62.597Q21.697-62.779 21.381-62.779Q21.080-62.779 20.850-62.591Q20.619-62.404 20.496-62.112Q20.373-61.821 20.373-61.529M25.213-59.388Q24.732-59.388 24.324-59.632Q23.916-59.876 23.678-60.290Q23.439-60.704 23.439-61.193Q23.439-61.685 23.697-62.101Q23.955-62.517 24.387-62.755Q24.818-62.993 25.311-62.993Q25.932-62.993 26.381-62.556L26.381-64.185Q26.381-64.400 26.318-64.495Q26.256-64.591 26.139-64.612Q26.021-64.634 25.775-64.634L25.775-64.931L26.998-65.017L26.998-60.208Q26.998-59.997 27.061-59.902Q27.123-59.806 27.240-59.784Q27.357-59.763 27.607-59.763L27.607-59.466L26.357-59.388L26.357-59.872Q25.893-59.388 25.213-59.388M25.279-59.642Q25.619-59.642 25.912-59.833Q26.205-60.025 26.357-60.321L26.357-62.154Q26.209-62.427 25.947-62.583Q25.686-62.739 25.373-62.739Q24.748-62.739 24.465-62.292Q24.182-61.845 24.182-61.185Q24.182-60.540 24.434-60.091Q24.686-59.642 25.279-59.642",[954],[942,7103,7104],{"transform":7092},[950,7105],{"d":7106,"fill":1182,"stroke":1182,"className":7107,"style":955},"M31.590-60.427L31.590-62.618L30.887-62.618L30.887-62.872Q31.243-62.872 31.485-63.105Q31.727-63.337 31.838-63.685Q31.950-64.032 31.950-64.388L32.231-64.388L32.231-62.915L33.407-62.915L33.407-62.618L32.231-62.618L32.231-60.443Q32.231-60.122 32.350-59.894Q32.469-59.665 32.750-59.665Q32.930-59.665 33.047-59.788Q33.165-59.911 33.217-60.091Q33.270-60.271 33.270-60.443L33.270-60.915L33.551-60.915L33.551-60.427Q33.551-60.173 33.446-59.933Q33.340-59.693 33.143-59.540Q32.946-59.388 32.688-59.388Q32.372-59.388 32.120-59.511Q31.868-59.634 31.729-59.868Q31.590-60.103 31.590-60.427M34.270-61.161Q34.270-61.665 34.526-62.097Q34.782-62.529 35.217-62.780Q35.653-63.032 36.153-63.032Q36.540-63.032 36.881-62.888Q37.223-62.743 37.485-62.482Q37.747-62.220 37.889-61.884Q38.032-61.548 38.032-61.161Q38.032-60.669 37.768-60.259Q37.504-59.849 37.075-59.618Q36.645-59.388 36.153-59.388Q35.661-59.388 35.227-59.620Q34.793-59.853 34.532-60.261Q34.270-60.669 34.270-61.161M36.153-59.665Q36.610-59.665 36.862-59.888Q37.114-60.111 37.202-60.462Q37.290-60.814 37.290-61.259Q37.290-61.689 37.196-62.027Q37.102-62.364 36.848-62.571Q36.594-62.779 36.153-62.779Q35.504-62.779 35.260-62.362Q35.016-61.946 35.016-61.259Q35.016-60.814 35.104-60.462Q35.192-60.111 35.444-59.888Q35.696-59.665 36.153-59.665",[954],[942,7109,7110],{"transform":7092},[950,7111],{"d":7112,"fill":1182,"stroke":1182,"className":7113,"style":955},"M41.397-61.193Q41.397-61.689 41.647-62.114Q41.897-62.540 42.317-62.786Q42.737-63.032 43.237-63.032Q43.776-63.032 44.167-62.907Q44.557-62.782 44.557-62.368Q44.557-62.263 44.507-62.171Q44.456-62.079 44.364-62.029Q44.272-61.978 44.163-61.978Q44.057-61.978 43.966-62.029Q43.874-62.079 43.823-62.171Q43.772-62.263 43.772-62.368Q43.772-62.591 43.940-62.696Q43.718-62.755 43.245-62.755Q42.948-62.755 42.733-62.616Q42.518-62.478 42.387-62.247Q42.257-62.017 42.198-61.747Q42.139-61.478 42.139-61.193Q42.139-60.798 42.272-60.448Q42.405-60.099 42.677-59.882Q42.948-59.665 43.346-59.665Q43.721-59.665 43.997-59.882Q44.272-60.099 44.374-60.458Q44.389-60.521 44.452-60.521L44.557-60.521Q44.593-60.521 44.618-60.493Q44.643-60.466 44.643-60.427L44.643-60.404Q44.511-59.923 44.126-59.655Q43.741-59.388 43.237-59.388Q42.874-59.388 42.540-59.525Q42.206-59.661 41.946-59.911Q41.686-60.161 41.542-60.497Q41.397-60.833 41.397-61.193",[954],[942,7115,7116],{"transform":7092},[950,7117],{"d":7118,"fill":1182,"stroke":1182,"className":7119,"style":955},"M46.825-59.466L44.969-59.466L44.969-59.763Q45.243-59.763 45.411-59.810Q45.579-59.857 45.579-60.025L45.579-64.185Q45.579-64.400 45.516-64.495Q45.454-64.591 45.335-64.612Q45.216-64.634 44.969-64.634L44.969-64.931L46.192-65.017L46.192-62.314Q46.317-62.525 46.505-62.675Q46.692-62.825 46.919-62.909Q47.145-62.993 47.391-62.993Q48.559-62.993 48.559-61.915L48.559-60.025Q48.559-59.857 48.729-59.810Q48.899-59.763 49.169-59.763L49.169-59.466L47.313-59.466L47.313-59.763Q47.587-59.763 47.755-59.810Q47.923-59.857 47.923-60.025L47.923-61.900Q47.923-62.282 47.802-62.511Q47.680-62.739 47.329-62.739Q47.016-62.739 46.762-62.577Q46.509-62.415 46.362-62.146Q46.216-61.876 46.216-61.579L46.216-60.025Q46.216-59.857 46.386-59.810Q46.555-59.763 46.825-59.763L46.825-59.466M51.473-59.466L49.696-59.466L49.696-59.763Q49.969-59.763 50.137-59.810Q50.305-59.857 50.305-60.025L50.305-62.161Q50.305-62.376 50.249-62.472Q50.192-62.568 50.079-62.589Q49.966-62.611 49.719-62.611L49.719-62.907L50.919-62.993L50.919-60.025Q50.919-59.857 51.065-59.810Q51.212-59.763 51.473-59.763L51.473-59.466M50.032-64.388Q50.032-64.579 50.167-64.710Q50.302-64.841 50.497-64.841Q50.618-64.841 50.721-64.779Q50.825-64.716 50.887-64.612Q50.950-64.509 50.950-64.388Q50.950-64.193 50.819-64.058Q50.688-63.923 50.497-63.923Q50.298-63.923 50.165-64.056Q50.032-64.189 50.032-64.388M53.887-59.466L52.055-59.466L52.055-59.763Q52.329-59.763 52.497-59.810Q52.665-59.857 52.665-60.025L52.665-64.185Q52.665-64.400 52.602-64.495Q52.540-64.591 52.421-64.612Q52.302-64.634 52.055-64.634L52.055-64.931L53.278-65.017L53.278-60.025Q53.278-59.857 53.446-59.810Q53.614-59.763 53.887-59.763L53.887-59.466M56.149-59.388Q55.669-59.388 55.261-59.632Q54.852-59.876 54.614-60.290Q54.376-60.704 54.376-61.193Q54.376-61.685 54.634-62.101Q54.891-62.517 55.323-62.755Q55.755-62.993 56.247-62.993Q56.868-62.993 57.317-62.556L57.317-64.185Q57.317-64.400 57.255-64.495Q57.192-64.591 57.075-64.612Q56.958-64.634 56.712-64.634L56.712-64.931L57.934-65.017L57.934-60.208Q57.934-59.997 57.997-59.902Q58.059-59.806 58.177-59.784Q58.294-59.763 58.544-59.763L58.544-59.466L57.294-59.388L57.294-59.872Q56.829-59.388 56.149-59.388M56.216-59.642Q56.555-59.642 56.848-59.833Q57.141-60.025 57.294-60.321L57.294-62.154Q57.145-62.427 56.884-62.583Q56.622-62.739 56.309-62.739Q55.684-62.739 55.401-62.292Q55.118-61.845 55.118-61.185Q55.118-60.540 55.370-60.091Q55.622-59.642 56.216-59.642M61.059-59.466L59.079-59.466L59.079-59.763Q59.348-59.763 59.516-59.808Q59.684-59.853 59.684-60.025L59.684-62.161Q59.684-62.376 59.622-62.472Q59.559-62.568 59.442-62.589Q59.325-62.611 59.079-62.611L59.079-62.907L60.247-62.993L60.247-62.208Q60.325-62.419 60.477-62.605Q60.630-62.790 60.829-62.892Q61.028-62.993 61.255-62.993Q61.501-62.993 61.692-62.849Q61.884-62.704 61.884-62.474Q61.884-62.318 61.778-62.208Q61.673-62.099 61.516-62.099Q61.360-62.099 61.251-62.208Q61.141-62.318 61.141-62.474Q61.141-62.634 61.247-62.739Q60.923-62.739 60.708-62.511Q60.493-62.282 60.397-61.943Q60.302-61.603 60.302-61.298L60.302-60.025Q60.302-59.857 60.528-59.810Q60.755-59.763 61.059-59.763L61.059-59.466M62.364-61.220Q62.364-61.700 62.596-62.116Q62.829-62.532 63.239-62.782Q63.649-63.032 64.126-63.032Q64.856-63.032 65.255-62.591Q65.653-62.150 65.653-61.419Q65.653-61.314 65.559-61.290L63.110-61.290L63.110-61.220Q63.110-60.810 63.231-60.454Q63.352-60.099 63.624-59.882Q63.895-59.665 64.325-59.665Q64.688-59.665 64.985-59.894Q65.282-60.122 65.384-60.474Q65.391-60.521 65.477-60.536L65.559-60.536Q65.653-60.509 65.653-60.427Q65.653-60.419 65.645-60.388Q65.583-60.161 65.444-59.978Q65.305-59.794 65.114-59.661Q64.923-59.529 64.704-59.458Q64.485-59.388 64.247-59.388Q63.876-59.388 63.538-59.525Q63.200-59.661 62.932-59.913Q62.665-60.165 62.514-60.505Q62.364-60.845 62.364-61.220M63.118-61.529L65.079-61.529Q65.079-61.833 64.977-62.124Q64.876-62.415 64.659-62.597Q64.442-62.779 64.126-62.779Q63.825-62.779 63.594-62.591Q63.364-62.404 63.241-62.112Q63.118-61.821 63.118-61.529M68.071-59.466L66.216-59.466L66.216-59.763Q66.489-59.763 66.657-59.810Q66.825-59.857 66.825-60.025L66.825-62.161Q66.825-62.376 66.762-62.472Q66.700-62.568 66.581-62.589Q66.462-62.611 66.216-62.611L66.216-62.907L67.407-62.993L67.407-62.259Q67.520-62.474 67.714-62.642Q67.907-62.810 68.145-62.902Q68.384-62.993 68.637-62.993Q69.805-62.993 69.805-61.915L69.805-60.025Q69.805-59.857 69.975-59.810Q70.145-59.763 70.415-59.763L70.415-59.466L68.559-59.466L68.559-59.763Q68.833-59.763 69.001-59.810Q69.169-59.857 69.169-60.025L69.169-61.900Q69.169-62.282 69.048-62.511Q68.927-62.739 68.575-62.739Q68.262-62.739 68.009-62.577Q67.755-62.415 67.608-62.146Q67.462-61.876 67.462-61.579L67.462-60.025Q67.462-59.857 67.632-59.810Q67.802-59.763 68.071-59.763",[954],[1283,7121,7123,7124,7142,7143,7173,7174,3433,7204],{"className":7122},[1286],"Lazy push-down. A pending ",[385,7125,7127],{"className":7126},[388],[385,7128,7130],{"className":7129,"ariaHidden":393},[392],[385,7131,7133,7136,7139],{"className":7132},[397],[385,7134],{"className":7135,"style":6691},[401],[385,7137,633],{"className":7138},[406],[385,7140,2338],{"className":7141},[406]," tag on ",[385,7144,7146],{"className":7145},[388],[385,7147,7149],{"className":7148,"ariaHidden":393},[392],[385,7150,7152,7155,7158,7161,7164,7167,7170],{"className":7151},[397],[385,7153],{"className":7154,"style":402},[401],[385,7156,413],{"className":7157},[412],[385,7159,3106],{"className":7160},[406],[385,7162,1783],{"className":7163},[1782],[385,7165],{"className":7166,"style":422},[421],[385,7168,6120],{"className":7169},[406],[385,7171,439],{"className":7172},[438]," is applied to that node's aggregate; only when a query descends does the tag flow to the children ",[385,7175,7177],{"className":7176},[388],[385,7178,7180],{"className":7179,"ariaHidden":393},[392],[385,7181,7183,7186,7189,7192,7195,7198,7201],{"className":7182},[397],[385,7184],{"className":7185,"style":402},[401],[385,7187,413],{"className":7188},[412],[385,7190,3106],{"className":7191},[406],[385,7193,1783],{"className":7194},[1782],[385,7196],{"className":7197,"style":422},[421],[385,7199,417],{"className":7200},[406],[385,7202,439],{"className":7203},[438],[385,7205,7207],{"className":7206},[388],[385,7208,7210],{"className":7209,"ariaHidden":393},[392],[385,7211,7213,7216,7219,7222,7225,7228,7231],{"className":7212},[397],[385,7214],{"className":7215,"style":402},[401],[385,7217,413],{"className":7218},[412],[385,7220,2238],{"className":7221},[406],[385,7223,1783],{"className":7224},[1782],[385,7226],{"className":7227,"style":422},[421],[385,7229,6120],{"className":7230},[406],[385,7232,439],{"className":7233},[438],[381,7235,7236,7237,3433,7240,7243,7244,7277,7278,1439,7296,7314,7315,7318,7319],{},"With lazy tags both ",[442,7238,7239],{},"range update",[442,7241,7242],{},"range query"," run in ",[385,7245,7247],{"className":7246},[388],[385,7248,7250],{"className":7249,"ariaHidden":393},[392],[385,7251,7253,7256,7259,7262,7268,7271,7274],{"className":7252},[397],[385,7254],{"className":7255,"style":402},[401],[385,7257,523],{"className":7258,"style":485},[406,407],[385,7260,527],{"className":7261},[412],[385,7263,7265],{"className":7264},[911],[385,7266,917],{"className":7267,"style":916},[406,915],[385,7269],{"className":7270,"style":422},[421],[385,7272,434],{"className":7273},[406,407],[385,7275,534],{"className":7276},[438],". This\nis the segment tree's decisive advantage over the Fenwick tree: it supports\nnon-invertible aggregates (",[385,7279,7281],{"className":7280},[388],[385,7282,7284],{"className":7283,"ariaHidden":393},[392],[385,7285,7287,7290],{"className":7286},[397],[385,7288],{"className":7289,"style":4804},[401],[385,7291,7293],{"className":7292},[911],[385,7294,4811],{"className":7295},[406,915],[385,7297,7299],{"className":7298},[388],[385,7300,7302],{"className":7301,"ariaHidden":393},[392],[385,7303,7305,7308],{"className":7304},[397],[385,7306],{"className":7307,"style":3369},[401],[385,7309,7311],{"className":7310},[911],[385,7312,4831],{"className":7313},[406,915],") ",[887,7316,7317],{},"and"," whole-range modifications, at the\ncost of more memory and a more involved implementation.",[1519,7320,7321],{},[563,7322,6120],{"href":7323,"ariaDescribedBy":7324,"dataFootnoteRef":376,"id":7325},"#user-content-fn-erickson-segment",[1525],"user-content-fnref-erickson-segment",[1541,7327,7329],{"id":7328},"choosing-between-them","Choosing between them",[381,7331,7332,7333,7366,7367,7400],{},"Both give ",[385,7334,7336],{"className":7335},[388],[385,7337,7339],{"className":7338,"ariaHidden":393},[392],[385,7340,7342,7345,7348,7351,7357,7360,7363],{"className":7341},[397],[385,7343],{"className":7344,"style":402},[401],[385,7346,523],{"className":7347,"style":485},[406,407],[385,7349,527],{"className":7350},[412],[385,7352,7354],{"className":7353},[911],[385,7355,917],{"className":7356,"style":916},[406,915],[385,7358],{"className":7359,"style":422},[421],[385,7361,434],{"className":7362},[406,407],[385,7364,534],{"className":7365},[438]," point-update and ",[385,7368,7370],{"className":7369},[388],[385,7371,7373],{"className":7372,"ariaHidden":393},[392],[385,7374,7376,7379,7382,7385,7391,7394,7397],{"className":7375},[397],[385,7377],{"className":7378,"style":402},[401],[385,7380,523],{"className":7381,"style":485},[406,407],[385,7383,527],{"className":7384},[412],[385,7386,7388],{"className":7387},[911],[385,7389,917],{"className":7390,"style":916},[406,915],[385,7392],{"className":7393,"style":422},[421],[385,7395,434],{"className":7396},[406,407],[385,7398,534],{"className":7399},[438]," range-query; the choice is\nabout generality versus footprint.",[7402,7403,7404,7490],"ul",{},[7405,7406,7407,7410,7411,7413,7414,927],"li",{},[442,7408,7409],{},"Fenwick tree."," Pick it when the aggregate is an ",[442,7412,4753],{}," group\noperation (sum, xor) and you only need point updates. It is a single array,\ncache-friendly, a dozen lines of code, and the constant factors are tiny. Range\nsum is ",[385,7415,7417],{"className":7416},[388],[385,7418,7420,7451,7478],{"className":7419,"ariaHidden":393},[392],[385,7421,7423,7426,7433,7436,7439,7442,7445,7448],{"className":7422},[397],[385,7424],{"className":7425,"style":402},[401],[385,7427,7429],{"className":7428},[406,3428],[385,7430,7432],{"className":7431},[406],"prefix",[385,7434,527],{"className":7435},[412],[385,7437,486],{"className":7438,"style":485},[406,407],[385,7440,534],{"className":7441},[438],[385,7443],{"className":7444,"style":628},[421],[385,7446,706],{"className":7447},[632],[385,7449],{"className":7450,"style":628},[421],[385,7452,7454,7457,7463,7466,7469,7472,7475],{"className":7453},[397],[385,7455],{"className":7456,"style":402},[401],[385,7458,7460],{"className":7459},[406,3428],[385,7461,7432],{"className":7462},[406],[385,7464,527],{"className":7465},[412],[385,7467,472],{"className":7468,"style":471},[406,407],[385,7470],{"className":7471,"style":628},[421],[385,7473,706],{"className":7474},[632],[385,7476],{"className":7477,"style":628},[421],[385,7479,7481,7484,7487],{"className":7480},[397],[385,7482],{"className":7483,"style":402},[401],[385,7485,417],{"className":7486},[406],[385,7488,534],{"className":7489},[438],[7405,7491,7492,7495,7496,7547,7548,7551,7552,3709,7581,7599,7600],{},[442,7493,7494],{},"Segment tree."," Pick it when you need ",[442,7497,7498],{},[385,7499,7501],{"className":7500},[388],[385,7502,7504],{"className":7503,"ariaHidden":393},[392],[385,7505,7507,7510,7516,7519,7523,7526,7532,7535,7538,7541],{"className":7506},[397],[385,7508],{"className":7509,"style":402},[401],[385,7511,7513],{"className":7512},[911],[385,7514,4811],{"className":7515},[406,915],[385,7517],{"className":7518,"style":422},[421],[385,7520,7522],{"className":7521},[406],"\u002F",[385,7524],{"className":7525,"style":422},[421],[385,7527,7529],{"className":7528},[911],[385,7530,4831],{"className":7531},[406,915],[385,7533],{"className":7534,"style":422},[421],[385,7536,7522],{"className":7537},[406],[385,7539],{"className":7540,"style":422},[421],[385,7542,7544],{"className":7543},[911],[385,7545,5320],{"className":7546},[406,915]," or any\nnon-invertible aggregate, or ",[442,7549,7550],{},"range updates"," via lazy propagation. It is\nstrictly more general, and you pay for it with ",[385,7553,7555],{"className":7554},[388],[385,7556,7558,7572],{"className":7557,"ariaHidden":393},[392],[385,7559,7561,7565,7569],{"className":7560},[397],[385,7562],{"className":7563,"style":7564},[401],"height:0.3669em;",[385,7566,7568],{"className":7567},[602],"∼",[385,7570],{"className":7571,"style":598},[421],[385,7573,7575,7578],{"className":7574},[397],[385,7576],{"className":7577,"style":2178},[401],[385,7579,2238],{"className":7580},[406],[385,7582,7584],{"className":7583},[388],[385,7585,7587],{"className":7586,"ariaHidden":393},[392],[385,7588,7590,7593,7596],{"className":7589},[397],[385,7591],{"className":7592,"style":6691},[401],[385,7594,4322],{"className":7595},[406],[385,7597,6698],{"className":7598},[406]," the memory and\na more involved implementation.",[1519,7601,7602],{},[563,7603,4322],{"href":7604,"ariaDescribedBy":7605,"dataFootnoteRef":376,"id":7606},"#user-content-fn-sedgewick-bit",[1525],"user-content-fnref-sedgewick-bit",[381,7608,7609,7610,7613,7614,7617,7618,7636],{},"A useful slogan: ",[887,7611,7612],{},"Fenwick is the specialist, the segment tree is the\ngeneralist."," When you reach for ",[3114,7615,7616],{},"range-sum-query-mutable",", a Fenwick tree is the\ncrisp answer; when the skyline or a range-assign problem demands ",[385,7619,7621],{"className":7620},[388],[385,7622,7624],{"className":7623,"ariaHidden":393},[392],[385,7625,7627,7630],{"className":7626},[397],[385,7628],{"className":7629,"style":3369},[401],[385,7631,7633],{"className":7632},[911],[385,7634,4831],{"className":7635},[406,915]," over a\nmutable range, the segment tree with lazy propagation is the tool.",[1541,7638,7640],{"id":7639},"takeaways","Takeaways",[7402,7642,7643,7792,8008,8123,8294,8335],{},[7405,7644,7645,7646,7648,7649,7673,7674,7698,7699,7723,7724,3811,7748,7751,7752,7755,7756,927],{},"A static ",[442,7647,567],{}," answers range sums in ",[385,7650,7652],{"className":7651},[388],[385,7653,7655],{"className":7654,"ariaHidden":393},[392],[385,7656,7658,7661,7664,7667,7670],{"className":7657},[397],[385,7659],{"className":7660,"style":402},[401],[385,7662,523],{"className":7663,"style":485},[406,407],[385,7665,527],{"className":7666},[412],[385,7668,417],{"className":7669},[406],[385,7671,534],{"className":7672},[438]," but updates in\n",[385,7675,7677],{"className":7676},[388],[385,7678,7680],{"className":7679,"ariaHidden":393},[392],[385,7681,7683,7686,7689,7692,7695],{"className":7682},[397],[385,7684],{"className":7685,"style":402},[401],[385,7687,523],{"className":7688,"style":485},[406,407],[385,7690,527],{"className":7691},[412],[385,7693,434],{"className":7694},[406,407],[385,7696,534],{"className":7697},[438],"; a plain array updates in ",[385,7700,7702],{"className":7701},[388],[385,7703,7705],{"className":7704,"ariaHidden":393},[392],[385,7706,7708,7711,7714,7717,7720],{"className":7707},[397],[385,7709],{"className":7710,"style":402},[401],[385,7712,523],{"className":7713,"style":485},[406,407],[385,7715,527],{"className":7716},[412],[385,7718,417],{"className":7719},[406],[385,7721,534],{"className":7722},[438]," but sums in ",[385,7725,7727],{"className":7726},[388],[385,7728,7730],{"className":7729,"ariaHidden":393},[392],[385,7731,7733,7736,7739,7742,7745],{"className":7732},[397],[385,7734],{"className":7735,"style":402},[401],[385,7737,523],{"className":7738,"style":485},[406,407],[385,7740,527],{"className":7741},[412],[385,7743,434],{"className":7744},[406,407],[385,7746,534],{"className":7747},[438],[442,7749,7750],{},"Fenwick"," and\n",[442,7753,7754],{},"segment"," trees achieve ",[442,7757,7758,7759],{},"both in ",[385,7760,7762],{"className":7761},[388],[385,7763,7765],{"className":7764,"ariaHidden":393},[392],[385,7766,7768,7771,7774,7777,7783,7786,7789],{"className":7767},[397],[385,7769],{"className":7770,"style":402},[401],[385,7772,523],{"className":7773,"style":485},[406,407],[385,7775,527],{"className":7776},[412],[385,7778,7780],{"className":7779},[911],[385,7781,917],{"className":7782,"style":916},[406,915],[385,7784],{"className":7785,"style":422},[421],[385,7787,434],{"className":7788},[406,407],[385,7790,534],{"className":7791},[438],[7405,7793,1547,7794,7796,7797,7821,7822,4511,7891,7966,7967,7970,7971,7974,7975,927],{},[442,7795,1534],{}," is a 1-indexed array where ",[385,7798,7800],{"className":7799},[388],[385,7801,7803],{"className":7802,"ariaHidden":393},[392],[385,7804,7806,7809,7812,7815,7818],{"className":7805},[397],[385,7807],{"className":7808,"style":402},[401],[385,7810,1570],{"className":7811,"style":583},[406,407],[385,7813,413],{"className":7814},[412],[385,7816,591],{"className":7817},[406,407],[385,7819,439],{"className":7820},[438]," holds the sum of the block\n",[385,7823,7825],{"className":7824},[388],[385,7826,7828,7852],{"className":7827,"ariaHidden":393},[392],[385,7829,7831,7834,7837,7840,7843,7846,7849],{"className":7830},[397],[385,7832],{"className":7833,"style":402},[401],[385,7835,527],{"className":7836},[412],[385,7838],{"className":7839,"style":422},[421],[385,7841,591],{"className":7842},[406,407],[385,7844],{"className":7845,"style":628},[421],[385,7847,706],{"className":7848},[632],[385,7850],{"className":7851,"style":628},[421],[385,7853,7855,7858,7864,7867,7870,7873,7876,7879,7882,7885,7888],{"className":7854},[397],[385,7856],{"className":7857,"style":402},[401],[385,7859,7861],{"className":7860},[911],[385,7862,1672],{"className":7863},[406,915],[385,7865,527],{"className":7866},[412],[385,7868,591],{"className":7869},[406,407],[385,7871,534],{"className":7872},[438],[385,7874,1783],{"className":7875},[1782],[385,7877,2049],{"className":7878},[421],[385,7880],{"className":7881,"style":422},[421],[385,7883,591],{"className":7884},[406,407],[385,7886],{"className":7887,"style":422},[421],[385,7889,439],{"className":7890},[438],[385,7892,7894],{"className":7893},[388],[385,7895,7897,7927,7948],{"className":7896,"ariaHidden":393},[392],[385,7898,7900,7903,7909,7912,7915,7918,7921,7924],{"className":7899},[397],[385,7901],{"className":7902,"style":402},[401],[385,7904,7906],{"className":7905},[911],[385,7907,1672],{"className":7908},[406,915],[385,7910,527],{"className":7911},[412],[385,7913,591],{"className":7914},[406,407],[385,7916,534],{"className":7917},[438],[385,7919],{"className":7920,"style":598},[421],[385,7922,603],{"className":7923},[602],[385,7925],{"className":7926,"style":598},[421],[385,7928,7930,7933,7936,7939,7945],{"className":7929},[397],[385,7931],{"className":7932,"style":856},[401],[385,7934,591],{"className":7935},[406,407],[385,7937],{"className":7938,"style":628},[421],[385,7940,7942],{"className":7941},[632],[385,7943,1757],{"className":7944},[406],[385,7946],{"className":7947,"style":628},[421],[385,7949,7951,7954,7957,7960,7963],{"className":7950},[397],[385,7952],{"className":7953,"style":402},[401],[385,7955,527],{"className":7956},[412],[385,7958,706],{"className":7959},[406],[385,7961,591],{"className":7962},[406,407],[385,7964,534],{"className":7965},[438],". Prefix sum walks ",[442,7968,7969],{},"down"," clearing low bits; update walks\n",[442,7972,7973],{},"up"," adding low bits, each ",[385,7976,7978],{"className":7977},[388],[385,7979,7981],{"className":7980,"ariaHidden":393},[392],[385,7982,7984,7987,7990,7993,7999,8002,8005],{"className":7983},[397],[385,7985],{"className":7986,"style":402},[401],[385,7988,523],{"className":7989,"style":485},[406,407],[385,7991,527],{"className":7992},[412],[385,7994,7996],{"className":7995},[911],[385,7997,917],{"className":7998,"style":916},[406,915],[385,8000],{"className":8001,"style":422},[421],[385,8003,434],{"className":8004},[406,407],[385,8006,534],{"className":8007},[438],[7405,8009,8010,8011,5321,8014,8089,8090,927],{},"Fenwick range sum relies on ",[442,8012,8013],{},"invertibility",[385,8015,8017],{"className":8016},[388],[385,8018,8020,8050,8077],{"className":8019,"ariaHidden":393},[392],[385,8021,8023,8026,8032,8035,8038,8041,8044,8047],{"className":8022},[397],[385,8024],{"className":8025,"style":402},[401],[385,8027,8029],{"className":8028},[406,3428],[385,8030,7432],{"className":8031},[406],[385,8033,527],{"className":8034},[412],[385,8036,486],{"className":8037,"style":485},[406,407],[385,8039,534],{"className":8040},[438],[385,8042],{"className":8043,"style":628},[421],[385,8045,706],{"className":8046},[632],[385,8048],{"className":8049,"style":628},[421],[385,8051,8053,8056,8062,8065,8068,8071,8074],{"className":8052},[397],[385,8054],{"className":8055,"style":402},[401],[385,8057,8059],{"className":8058},[406,3428],[385,8060,7432],{"className":8061},[406],[385,8063,527],{"className":8064},[412],[385,8066,472],{"className":8067,"style":471},[406,407],[385,8069],{"className":8070,"style":628},[421],[385,8072,706],{"className":8073},[632],[385,8075],{"className":8076,"style":628},[421],[385,8078,8080,8083,8086],{"className":8079},[397],[385,8081],{"className":8082,"style":402},[401],[385,8084,417],{"className":8085},[406],[385,8087,534],{"className":8088},[438],". It fails for ",[385,8091,8093],{"className":8092},[388],[385,8094,8096],{"className":8095,"ariaHidden":393},[392],[385,8097,8099,8102,8108,8111,8114,8117],{"className":8098},[397],[385,8100],{"className":8101,"style":402},[401],[385,8103,8105],{"className":8104},[911],[385,8106,4811],{"className":8107},[406,915],[385,8109],{"className":8110,"style":422},[421],[385,8112,7522],{"className":8113},[406],[385,8115],{"className":8116,"style":422},[421],[385,8118,8120],{"className":8119},[911],[385,8121,4831],{"className":8122},[406,915],[7405,8124,1547,8125,8127,8128,8131,8132,8156,8157,8190,8191,449,8193,8226,8227,8257,8258,449,8291,927],{},[442,8126,4914],{}," stores each node's range aggregate (any ",[442,8129,8130],{},"associative","\nop). Build ",[385,8133,8135],{"className":8134},[388],[385,8136,8138],{"className":8137,"ariaHidden":393},[392],[385,8139,8141,8144,8147,8150,8153],{"className":8140},[397],[385,8142],{"className":8143,"style":402},[401],[385,8145,523],{"className":8146,"style":485},[406,407],[385,8148,527],{"className":8149},[412],[385,8151,434],{"className":8152},[406,407],[385,8154,534],{"className":8155},[438],", point update ",[385,8158,8160],{"className":8159},[388],[385,8161,8163],{"className":8162,"ariaHidden":393},[392],[385,8164,8166,8169,8172,8175,8181,8184,8187],{"className":8165},[397],[385,8167],{"className":8168,"style":402},[401],[385,8170,523],{"className":8171,"style":485},[406,407],[385,8173,527],{"className":8174},[412],[385,8176,8178],{"className":8177},[911],[385,8179,917],{"className":8180,"style":916},[406,915],[385,8182],{"className":8183,"style":422},[421],[385,8185,434],{"className":8186},[406,407],[385,8188,534],{"className":8189},[438],", and ",[442,8192,7242],{},[385,8194,8196],{"className":8195},[388],[385,8197,8199],{"className":8198,"ariaHidden":393},[392],[385,8200,8202,8205,8208,8211,8217,8220,8223],{"className":8201},[397],[385,8203],{"className":8204,"style":402},[401],[385,8206,523],{"className":8207,"style":485},[406,407],[385,8209,527],{"className":8210},[412],[385,8212,8214],{"className":8213},[911],[385,8215,917],{"className":8216,"style":916},[406,915],[385,8218],{"className":8219,"style":422},[421],[385,8221,434],{"className":8222},[406,407],[385,8224,534],{"className":8225},[438]," by\ndecomposing ",[385,8228,8230],{"className":8229},[388],[385,8231,8233],{"className":8232,"ariaHidden":393},[392],[385,8234,8236,8239,8242,8245,8248,8251,8254],{"className":8235},[397],[385,8237],{"className":8238,"style":402},[401],[385,8240,413],{"className":8241},[412],[385,8243,472],{"className":8244,"style":471},[406,407],[385,8246,1783],{"className":8247},[1782],[385,8249],{"className":8250,"style":422},[421],[385,8252,486],{"className":8253,"style":485},[406,407],[385,8255,439],{"className":8256},[438]," into ",[385,8259,8261],{"className":8260},[388],[385,8262,8264],{"className":8263,"ariaHidden":393},[392],[385,8265,8267,8270,8273,8276,8282,8285,8288],{"className":8266},[397],[385,8268],{"className":8269,"style":402},[401],[385,8271,523],{"className":8272,"style":485},[406,407],[385,8274,527],{"className":8275},[412],[385,8277,8279],{"className":8278},[911],[385,8280,917],{"className":8281,"style":916},[406,915],[385,8283],{"className":8284,"style":422},[421],[385,8286,434],{"className":8287},[406,407],[385,8289,534],{"className":8290},[438],[442,8292,8293],{},"canonical nodes",[7405,8295,8296,8298,8299,449,8332,927],{},[442,8297,6787],{}," defers a range update by tagging canonical nodes and\npushing tags down only when needed, giving ",[385,8300,8302],{"className":8301},[388],[385,8303,8305],{"className":8304,"ariaHidden":393},[392],[385,8306,8308,8311,8314,8317,8323,8326,8329],{"className":8307},[397],[385,8309],{"className":8310,"style":402},[401],[385,8312,523],{"className":8313,"style":485},[406,407],[385,8315,527],{"className":8316},[412],[385,8318,8320],{"className":8319},[911],[385,8321,917],{"className":8322,"style":916},[406,915],[385,8324],{"className":8325,"style":422},[421],[385,8327,434],{"className":8328},[406,407],[385,8330,534],{"className":8331},[438],[442,8333,8334],{},"range update + range\nquery",[7405,8336,8337,8339,8340,8342,8343,8376,8377,3709,8404,8422],{},[442,8338,7750],{}," = tiny, fast, sum-like invertible aggregates; ",[442,8341,4914],{}," =\ngeneral ",[385,8344,8346],{"className":8345},[388],[385,8347,8349],{"className":8348,"ariaHidden":393},[392],[385,8350,8352,8355,8361,8364,8367,8370],{"className":8351},[397],[385,8353],{"className":8354,"style":402},[401],[385,8356,8358],{"className":8357},[911],[385,8359,4811],{"className":8360},[406,915],[385,8362],{"className":8363,"style":422},[421],[385,8365,7522],{"className":8366},[406],[385,8368],{"className":8369,"style":422},[421],[385,8371,8373],{"className":8372},[911],[385,8374,4831],{"className":8375},[406,915]," and lazy range ops, at ",[385,8378,8380],{"className":8379},[388],[385,8381,8383,8395],{"className":8382,"ariaHidden":393},[392],[385,8384,8386,8389,8392],{"className":8385},[397],[385,8387],{"className":8388,"style":7564},[401],[385,8390,7568],{"className":8391},[602],[385,8393],{"className":8394,"style":598},[421],[385,8396,8398,8401],{"className":8397},[397],[385,8399],{"className":8400,"style":2178},[401],[385,8402,2238],{"className":8403},[406],[385,8405,8407],{"className":8406},[388],[385,8408,8410],{"className":8409,"ariaHidden":393},[392],[385,8411,8413,8416,8419],{"className":8412},[397],[385,8414],{"className":8415,"style":6691},[401],[385,8417,4322],{"className":8418},[406],[385,8420,6698],{"className":8421},[406]," the memory.",[8424,8425,8428,8433],"section",{"className":8426,"dataFootnotes":376},[8427],"footnotes",[1541,8429,8432],{"className":8430,"id":1525},[8431],"sr-only","Footnotes",[8434,8435,8436,8450,8462,8474],"ol",{},[7405,8437,8439,8442,8443],{"id":8438},"user-content-fn-clrs-augment",[442,8440,8441],{},"CLRS",", Ch. 14, Augmenting Data Structures (§14.2): attach summary fields to nodes and maintain them through updates, the general recipe both structures specialize. ",[563,8444,8449],{"href":8445,"ariaLabel":8446,"className":8447,"dataFootnoteBackref":376},"#user-content-fnref-clrs-augment","Back to reference 1",[8448],"data-footnote-backref","↩",[7405,8451,8453,8456,8457],{"id":8452},"user-content-fn-skiena-fenwick",[442,8454,8455],{},"Skiena",", §3.x, Range Queries \u002F Augmented Structures: the binary indexed tree as a minimal-overhead structure for dynamic prefix sums. ",[563,8458,8449],{"href":8459,"ariaLabel":8460,"className":8461,"dataFootnoteBackref":376},"#user-content-fnref-skiena-fenwick","Back to reference 2",[8448],[7405,8463,8465,8468,8469],{"id":8464},"user-content-fn-erickson-segment",[442,8466,8467],{},"Erickson",", Ch., Data Structures: segment trees over canonical ranges, range decomposition, and lazy propagation for range updates. ",[563,8470,8449],{"href":8471,"ariaLabel":8472,"className":8473,"dataFootnoteBackref":376},"#user-content-fnref-erickson-segment","Back to reference 3",[8448],[7405,8475,8477,8480,8481],{"id":8476},"user-content-fn-sedgewick-bit",[442,8478,8479],{},"Sedgewick",", §, Binary Indexed & Segment Trees: practical comparison of the binary indexed tree against the more general segment tree. ",[563,8482,8449],{"href":8483,"ariaLabel":8484,"className":8485,"dataFootnoteBackref":376},"#user-content-fnref-sedgewick-bit","Back to reference 4",[8448],[8487,8488,8489],"style",{},"html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark-mode .shiki span {color: var(--shiki-dark-mode);background: var(--shiki-dark-mode-bg);font-style: var(--shiki-dark-mode-font-style);font-weight: var(--shiki-dark-mode-font-weight);text-decoration: var(--shiki-dark-mode-text-decoration);}html.dark-mode .shiki span {color: var(--shiki-dark-mode);background: var(--shiki-dark-mode-bg);font-style: var(--shiki-dark-mode-font-style);font-weight: var(--shiki-dark-mode-font-weight);text-decoration: var(--shiki-dark-mode-text-decoration);}",{"title":376,"searchDepth":18,"depth":18,"links":8491},[8492,8493,8497,8498,8499],{"id":1543,"depth":18,"text":1544},{"id":4908,"depth":18,"text":4909,"children":8494},[8495],{"id":6703,"depth":24,"text":8496},"Lazy propagation: range updates in O(logn)",{"id":7328,"depth":18,"text":7329},{"id":7639,"depth":18,"text":7640},{"id":1525,"depth":18,"text":8432},"We have an array A[1…n] and two operations we want to interleave freely:\nupdate a single entry, and ask for the sum of a contiguous range A[l…r].\nThe two obvious data structures each ace one operation and fail the other. Keep\nA as is and an update is a single write in O(1), but a range sum scans the\nrange in Θ(n). Precompute a prefix-sum array P[i]=A[1]+⋯+A[i]\nand a range sum collapses to P[r]−P[l−1] in O(1), but now a single update\nto A[k] disturbs every P[i] with i≥k, an Θ(n) repair. We want a\nstructure that splits the difference and does both in O(logn).","md",{"moduleNumber":73,"lessonNumber":116,"order":8503},407,true,[8506,8509,8513,8516],{"title":8507,"slug":7616,"difficulty":8508},"Range Sum Query - Mutable","Medium",{"title":8510,"slug":8511,"difficulty":8512},"Count of Smaller Numbers After Self","count-of-smaller-numbers-after-self","Hard",{"title":8514,"slug":8515,"difficulty":8512},"Range Sum Query 2D - Mutable","range-sum-query-2d-mutable",{"title":8517,"slug":8518,"difficulty":8512},"The Skyline Problem","the-skyline-problem","---\ntitle: Fenwick & Segment Trees\nmodule: Data Structures\nmoduleNumber: 4\nlessonNumber: 7\norder: 407\nsummary: >-\n  A prefix-sum array answers a range sum in $O(1)$ but pays $O(n)$ per update;\n  a plain array updates in $O(1)$ but pays $O(n)$ per range sum. Fenwick and\n  segment trees give us _both_ in $O(\\log n)$. The Fenwick (binary indexed) tree\n  is a tiny array keyed by the low bit; the segment tree is a general balanced\n  tree over canonical ranges that handles any associative aggregate and, with\n  lazy propagation, range updates too.\ntopics: [Range Queries]\nsources:\n  - book: CLRS\n    ref: \"Ch. 14 — Augmenting Data Structures\"\n  - book: Skiena\n    ref: \"§3.x — Range Queries \u002F Augmented Structures\"\n  - book: Erickson\n    ref: \"Ch. — Data Structures\"\n  - book: Sedgewick\n    ref: \"§ — Binary Indexed & Segment Trees\"\npractice:\n  - title: 'Range Sum Query - Mutable'\n    slug: range-sum-query-mutable\n    difficulty: Medium\n  - title: 'Count of Smaller Numbers After Self'\n    slug: count-of-smaller-numbers-after-self\n    difficulty: Hard\n  - title: 'Range Sum Query 2D - Mutable'\n    slug: range-sum-query-2d-mutable\n    difficulty: Hard\n  - title: 'The Skyline Problem'\n    slug: the-skyline-problem\n    difficulty: Hard\n---\n\nWe have an array $A[1\\dots n]$ and two operations we want to interleave freely:\n**update** a single entry, and ask for the **sum of a contiguous range** $A[l\\dots r]$.\nThe two obvious data structures each ace one operation and fail the other. Keep\n$A$ as is and an update is a single write in $O(1)$, but a range sum scans the\nrange in $\\Theta(n)$. Precompute a [**prefix-sum array**](\u002Falgorithms\u002Fsequences\u002Ftwo-pointers-and-windows) $P[i] = A[1] + \\dots + A[i]$\nand a range sum collapses to $P[r] - P[l-1]$ in $O(1)$, but now a single update\nto $A[k]$ disturbs every $P[i]$ with $i \\ge k$, an $\\Theta(n)$ repair. We want a\nstructure that splits the difference and does _both_ in $O(\\log n)$.\n\n$$\n% caption: The tradeoff that motivates these structures. A range sum on a plain array must\n%          scan the whole range, $\\Theta(n)$ (top). A prefix-sum array answers that sum as\n%          one subtraction $P[r]-P[l-1]$, but a single update to $A[k]$ then dirties every\n%          later prefix $P[k..n]$, $\\Theta(n)$ to repair (bottom). Each structure is\n%          $O(1)$ on one operation and $\\Theta(n)$ on the other.\n\\begin{tikzpicture}[\n  cell\u002F.style={draw, minimum width=7mm, minimum height=7mm, inner sep=0, font=\\small},\n  >=stealth]\n  \\definecolor{acc}{HTML}{2348F2}\n  % --- plain array: range sum scans ---\n  \\node[font=\\footnotesize, anchor=east] at (-0.3,0) {$A$};\n  \\foreach \\i [count=\\c from 0] in {3,1,4,1,5,9,2,6} {\n    \\node[cell] (a\\c) at (\\c*0.78,0) {$\\i$};\n  }\n  \\draw[red!75!black, thick] (a2.south west) ++(0,-0.12) -- ++(0,-0.22) -- ++(3*0.78,0) -- ++(0,0.22);\n  \\node[draw=none, font=\\scriptsize, red!75!black] at (3.3*0.78,-0.95) {range sum: scan $\\Theta(n)$};\n  % --- prefix array: update ripples ---\n  \\begin{scope}[yshift=-2.0cm]\n    \\node[font=\\footnotesize, anchor=east] at (-0.3,0) {$P$};\n    \\foreach \\i [count=\\c from 0] in {3,4,8,9,14,23,25,31} {\n      \\ifnum\\c>2 \\node[cell, fill=red!18] (p\\c) at (\\c*0.78,0) {$\\i$};\n      \\else \\node[cell] (p\\c) at (\\c*0.78,0) {$\\i$}; \\fi\n    }\n    \\node[draw=acc, very thick, minimum width=7mm, minimum height=7mm, inner sep=0] at (3*0.78,0) {};\n    \\node[draw=none, font=\\scriptsize, acc] at (3*0.78,0.75) {update $A[3]$};\n    \\draw[->, acc] (3*0.78,0.5) -- (p3.north);\n    \\node[draw=none, font=\\scriptsize, red!75!black] at (5.3*0.78,-0.7) {ripples through $P[3..n]$: $\\Theta(n)$};\n  \\end{scope}\n\\end{tikzpicture}\n$$\n\nThe idea, in the spirit of the previous lessons on augmenting trees with\nsubtree summaries,[^clrs-augment] is to store **partial sums over blocks** so that any prefix is\nthe sum of a few blocks and any single element lives in only a few blocks. Two\nclassic structures realize this: the **Fenwick tree**, which is remarkably\ncompact and exploits the binary representation of the index, and the **segment\ntree**, which is more general and handles any associative aggregate plus range\nupdates.\n\n## Fenwick trees: indexing by the low bit\n\nA **Fenwick tree** (or **binary indexed tree**) is a 1-indexed array $F[1\\dots n]$\nwhere $F[i]$ stores the sum of a contiguous block of $A$ _ending at_ index $i$.\nThe length of that block is $\\operatorname{lowbit}(i)$, the value of the lowest\nset bit of $i$:\n\n$$\n\\operatorname{lowbit}(i) = i \\mathbin{\\&} (-i), \\qquad\nF[i] = \\sum_{j \\,=\\, i - \\operatorname{lowbit}(i) + 1}^{i} A[j].\n$$\n\nThat is, $F[i]$ covers the half-open range $\\bigl(\\,i - \\operatorname{lowbit}(i),\\ i\\,\\bigr]$.\nThe trick rides on two's-complement arithmetic: $-i$ flips every bit of $i$ and\nadds one, so $i \\mathbin{\\&} (-i)$ isolates exactly the lowest set bit. If\n$i = 6 = (110)_2$ then $\\operatorname{lowbit}(6) = 2$, so $F[6]$ covers indices\n$5\\dots 6$; if $i = 8 = (1000)_2$ then $\\operatorname{lowbit}(8) = 8$, so $F[8]$\ncovers the whole prefix $1\\dots 8$.\n\n$$\n% caption: Each $F[i]$ covers the block of length $\\operatorname{lowbit}(i)$ ending at $i$\n\\begin{tikzpicture}[\n  cell\u002F.style={draw, minimum width=9mm, minimum height=8mm, inner sep=0, font=\\small},\n  rng\u002F.style={font=\\footnotesize},\n  >=stealth]\n  \\definecolor{acc}{HTML}{2348F2}\n  % the array A[1..8]\n  \\foreach \\i in {1,...,8} {\n    \\node[cell] (a\\i) at (\\i*0.95, 0) {$\\i$};\n  }\n  \\node[rng] at (-0.4, 0) {$A$};\n  % F[i] coverage brackets below, one row per \"level\" of lowbit\n  % length-1 blocks: F[1],F[3],F[5],F[7]\n  \\foreach \\i in {1,3,5,7} {\n    \\draw (a\\i.south west) ++(0.1,-0.15) -- ++(0,-0.18) -- ++(0.75,0) -- ++(0,0.18);\n    \\node[rng] at (\\i*0.95, -0.98) {$F[\\i]$};\n  }\n  % length-2 blocks: F[2] covers 1..2, F[6] covers 5..6\n  \\draw (a1.south west) ++(0.1,-1.05) -- ++(0,-0.18) -- ++(1.7,0) -- ++(0,0.18);\n  \\node[rng] at (1.42, -1.88) {$F[2]$};\n  \\draw (a5.south west) ++(0.1,-1.05) -- ++(0,-0.18) -- ++(1.7,0) -- ++(0,0.18);\n  \\node[rng] at (5.22, -1.88) {$F[6]$};\n  % length-4 block: F[4] covers 1..4\n  \\draw (a1.south west) ++(0.1,-1.95) -- ++(0,-0.18) -- ++(3.6,0) -- ++(0,0.18);\n  \\node[rng] at (2.37, -2.78) {$F[4]$};\n  % length-8 block: F[8] covers 1..8  (accent)\n  \\draw[acc, thick] (a1.south west) ++(0.1,-2.85) -- ++(0,-0.18) -- ++(7.4,0) -- ++(0,0.18);\n  \\node[rng, acc] at (4.27, -3.68) {$F[8]$ covers $1\\dots 8$};\n\\end{tikzpicture}\n$$\n\n**Prefix sum.** To compute $P[i] = A[1] + \\dots + A[i]$ we peel off blocks from\nthe right. $F[i]$ accounts for the topmost block ending at $i$; the rest of the\nprefix ends at $i - \\operatorname{lowbit}(i)$, so we jump there and repeat,\nclearing one set bit each step until we reach $0$.\n\n```algorithm\ncaption: $\\textsc{PrefixSum}(F, i)$ — return $A[1] + \\dots + A[i]$\n$s \\gets 0$\nwhile $i > 0$ do\n  $s \\gets s + F[i]$\n  $i \\gets i - \\operatorname{lowbit}(i)$ \u002F\u002F clear the lowest set bit\nreturn $s$\n```\n\n**Point update.** When $A[k]$ changes by $\\delta$, every $F[i]$ whose block\n_contains_ $k$ must change by $\\delta$. Those are exactly the indices reached by\nrepeatedly _adding_ the low bit: starting at $k$, each step $i \\gets i +\n\\operatorname{lowbit}(i)$ moves to the next larger block that covers $k$, until we\nrun past $n$.\n\n```algorithm\ncaption: $\\textsc{Update}(F, k, \\delta)$ — add $\\delta$ to $A[k]$\nwhile $k \\le n$ do\n  $F[k] \\gets F[k] + \\delta$\n  $k \\gets k + \\operatorname{lowbit}(k)$ \u002F\u002F move to the next covering block\n```\n\n> **Lemma.** Both $\\textsc{PrefixSum}$ and $\\textsc{Update}$ touch $O(\\log n)$\n> entries of $F$.\n>\n\n> **Proof.** $\\textsc{PrefixSum}$ clears one set bit of $i$ per iteration, so it\n> runs at most as many times as $i$ has set bits, at most $\\lfloor \\log_2 n\n> \\rfloor + 1$. For $\\textsc{Update}$, adding $\\operatorname{lowbit}(k)$ to $k$\n> carries the lowest set bit upward and strictly increases the _value_ of the low\n> bit each step (a $1$-run is replaced by a higher single $1$), so it too runs\n> $O(\\log n)$ times before exceeding $n$. $\\qed$\n\nThe two walks are mirror images on the same number line. $\\textsc{Update}$ climbs\nto larger indices by _adding_ the low bit, visiting every block that owns the\nchanged element; $\\textsc{PrefixSum}$ descends to smaller indices by _subtracting_\nit, peeling off the blocks that tile the prefix. The same $\\operatorname{lowbit}$\nhop drives both, in opposite directions.\n\n$$\n% caption: The lowbit duality. $\\textsc{Update}(5)$ climbs $5\\to 6\\to 8$ adding the low\n%          bit; $\\textsc{PrefixSum}(7)$ descends $7\\to 6\\to 4\\to 0$ clearing it\n\\begin{tikzpicture}[\n  cell\u002F.style={draw, minimum width=8mm, minimum height=8mm, inner sep=0, font=\\small},\n  >=stealth]\n  \\definecolor{acc}{HTML}{2348F2}\n  % index cells 1..8\n  \\foreach \\i in {1,...,8} {\n    \\node[cell] (f\\i) at (\\i*0.95, 0) {$\\i$};\n  }\n  \\node[font=\\footnotesize] at (-0.2,0) {$F$};\n  % --- Update(5): 5 -> 6 -> 8  (above, +lowbit, process => red) ---\n  \\draw[red!75!black, thick, ->] (f5.north) ++(0,0.05) to[bend left=45] ($(f6.north)+(0,0.05)$);\n  \\draw[red!75!black, thick, ->] (f6.north) ++(0,0.05) to[bend left=35] ($(f8.north)+(0,0.05)$);\n  \\node[red!75!black, font=\\footnotesize] at (4.5,1.35) {$\\textsc{Update}(5)$: climb $+\\operatorname{lowbit}$};\n  \\node[red!75!black, font=\\footnotesize] at (1.0,1.0) {$5$};\n  % --- PrefixSum(7): 7 -> 6 -> 4 -> 0 (below, clearing, process => red) ---\n  \\draw[red!75!black, thick, ->] (f7.south) ++(0,-0.05) to[bend left=45] ($(f6.south)+(0,-0.05)$);\n  \\draw[red!75!black, thick, ->] (f6.south) ++(0,-0.05) to[bend left=35] ($(f4.south)+(0,-0.05)$);\n  \\draw[red!75!black, thick, ->] (f4.south) ++(0,-0.05) to[bend left=30] ($(f4.south)+(-3.5,-0.05)$);\n  \\node[font=\\footnotesize] at (4.5,-1.45) {$\\textsc{PrefixSum}(7)$: descend $-\\operatorname{lowbit}$};\n  \\node[red!75!black, font=\\footnotesize] at (0.45,-0.95) {$0$};\n\\end{tikzpicture}\n$$\n\nA range sum is then two prefix queries:\n\n$$\n\\textsc{RangeSum}(l, r) = \\textsc{PrefixSum}(r) - \\textsc{PrefixSum}(l - 1),\n$$\n\nso both update and range sum cost $O(\\log n)$, with $F$ occupying a single array\nof $n$ words and no pointers.[^skiena-fenwick] Building $F$ takes $O(n)$ by a linear in-place pass\n(add each $F[i]$ into its parent $F[i + \\operatorname{lowbit}(i)]$) rather than\n$n$ separate updates.\n\n> **Intuition.** Read the binary expansion of $i$ as a sum of powers of two; each\n> set bit names one Fenwick block, and the blocks tile the prefix $1\\dots i$\n> exactly. Walking down clears bits to _read_ a prefix; walking up sets the carry\n> to _patch_ every block that owns a given element.\n\nThe one catch: this works because sums are **invertible** — we recover $A[l\\dots r]$\nby subtracting two prefixes. For non-invertible aggregates like $\\min$ or\n$\\max$, $P[r] - P[l-1]$ is meaningless, and we need a structure that queries an\n_arbitrary_ range directly. That is the segment tree.\n\n## Segment trees: a balanced tree of canonical ranges\n\nA **segment tree** over $A[0\\dots n-1]$ is a balanced binary tree whose **leaves**\nare the array entries and whose every **internal node stores the aggregate of the\ncontiguous range its subtree spans**. The root covers $[0, n-1]$; a node covering\n$[lo, hi]$ with $lo \u003C hi$ splits at $mid = \\lfloor (lo+hi)\u002F2 \\rfloor$ into children\ncovering $[lo, mid]$ and $[mid+1, hi]$. The stored aggregate can be sum, $\\min$,\n$\\max$, or $\\gcd$: **any associative operation** (formally, any monoid), since a\nnode's value is its two children's values combined.\n\n$$\n% caption: A segment tree over 8 elements; the $O(\\log n)$ canonical nodes covering\n%          $[1,5]$ are highlighted\n\\begin{tikzpicture}[\n  every node\u002F.style={draw, rounded corners=1pt, minimum width=11mm, minimum height=6mm, inner sep=1pt, font=\\footnotesize},\n  level 1\u002F.style={sibling distance=42mm},\n  level 2\u002F.style={sibling distance=21mm},\n  level 3\u002F.style={sibling distance=10.5mm},\n  level distance=12mm,\n  edge from parent\u002F.style={draw, -}]\n  \\definecolor{acc}{HTML}{2348F2}\n  \\node {$[0,7]$}\n    child {node {$[0,3]$}\n      child {node {$[0,1]$}\n        child {node {$[0,0]$}}\n        child {node[draw=acc, very thick, fill=acc!15] {$[1,1]$}}\n      }\n      child {node[draw=acc, very thick, fill=acc!15] {$[2,3]$}\n        child {node {$[2,2]$}}\n        child {node {$[3,3]$}}\n      }\n    }\n    child {node {$[4,7]$}\n      child {node[draw=acc, very thick, fill=acc!15] {$[4,5]$}\n        child {node {$[4,4]$}}\n        child {node {$[5,5]$}}\n      }\n      child {node {$[6,7]$}\n        child {node {$[6,6]$}}\n        child {node {$[7,7]$}}\n      }\n    };\n\\end{tikzpicture}\n$$\n\n**Query.** To aggregate $A[l\\dots r]$ we descend from the root. At a node covering\n$[lo, hi]$: if $[lo,hi]$ lies entirely inside $[l,r]$ we return its stored value\nwithout recursing (a **canonical** node); if it is disjoint from $[l,r]$ we return\nthe monoid identity; otherwise we recurse into both children and combine. The\nquery range $[l, r]$ decomposes into $O(\\log n)$ canonical nodes, at most two per\nlevel of the tree, so a range query costs $O(\\log n)$. In the figure, $[1,5]$ is\ncovered by the four shaded nodes $[1,1]$, $[2,3]$, $[4,5]$, and their union is\nexactly $\\{1,2,3,4,5\\}$.\n\n> **Lemma.** Any range $[l,r]$ is covered by at most $2$ canonical nodes per level,\n> hence $O(\\log n)$ in total.\n>\n\n> **Proof sketch.** On each level the nodes partition $[0,n-1]$ into equal blocks.\n> The recursion only branches at nodes that _straddle_ an endpoint of $[l,r]$;\n> at most one node per level straddles $l$ and at most one straddles $r$, and\n> every node strictly between them is returned whole without descending. With\n> $O(\\log n)$ levels that is $O(\\log n)$ canonical pieces. $\\qed$\n\n**Point update.** To change $A[k]$, update the corresponding leaf and walk back up\nto the root, recomputing each ancestor as the combination of its (now-updated)\nchildren — one node per level, $O(\\log n)$ work. Building the tree bottom-up\nvisits each of the $\\Theta(n)$ nodes once, so construction is $O(n)$, and the tree\nneeds at most $2n$ (commonly allocated as $4n$) nodes, roughly $2$ to $4\\times$ a\nFenwick tree's memory.\n\n### Lazy propagation: range updates in $O(\\log n)$\n\nA point-update segment tree still pays $\\Theta(n \\log n)$ to add a value to a\n_whole range_ element by element. **Lazy propagation** fixes this. When an update\napplies to a range that exactly covers a node's interval, we apply it to that\nnode's aggregate and stash a **pending tag** on the node instead of recursing into\nits children. The tag is **pushed down** to the children only later, lazily, when\na subsequent query or update actually needs to enter that subtree.\n\n> **Intuition.** A node's tag is a promise: \"everything below me still owes this\n> update.\" We honor the promise just-in-time, the moment someone descends past\n> the node — never sooner. Each range update touches the same $O(\\log n)$\n> canonical nodes a query does, tagging them in $O(1)$ each.\n\n$$\n% caption: Lazy push-down. A pending $+5$ tag on $[0,3]$ is applied to that node's\n%          aggregate; only when a query descends does the tag flow to the children $[0,1]$\n%          and $[2,3]$\n\\begin{tikzpicture}[\n  every node\u002F.style={draw, rounded corners=1pt, minimum width=13mm, minimum height=7mm, inner sep=1pt, font=\\footnotesize},\n  level 1\u002F.style={sibling distance=24mm},\n  level 2\u002F.style={sibling distance=12mm},\n  level distance=13mm,\n  edge from parent\u002F.style={draw, -}]\n  \\definecolor{acc}{HTML}{2348F2}\n  % --- before push-down ---\n  \\begin{scope}\n    \\node[fill=acc!15, draw=acc, very thick] (n) {$[0,3]\\!:\\!+5$}\n      child {node {$[0,1]$}}\n      child {node {$[2,3]$}};\n    \\node[draw=none, font=\\footnotesize, text=acc] at (1.9,0.1) {tag held};\n  \\end{scope}\n  % transition arrow\n  \\draw[->, very thick] (3.2,-0.8) -- node[draw=none, above, font=\\footnotesize] {descend} (4.6,-0.8);\n  % --- after push-down ---\n  \\begin{scope}[xshift=62mm]\n    \\node (m) {$[0,3]$}\n      child {node[fill=acc!15, draw=acc, very thick] {$[0,1]\\!:\\!+5$}}\n      child {node[fill=acc!15, draw=acc, very thick] {$[2,3]\\!:\\!+5$}};\n    \\node[draw=none, font=\\footnotesize, text=acc] at (0,-2.6) {tag pushed to children};\n  \\end{scope}\n\\end{tikzpicture}\n$$\n\nWith lazy tags both **range update** and **range query** run in $O(\\log n)$. This\nis the segment tree's decisive advantage over the Fenwick tree: it supports\nnon-invertible aggregates ($\\min$, $\\max$) _and_ whole-range modifications, at the\ncost of more memory and a more involved implementation.[^erickson-segment]\n\n## Choosing between them\n\nBoth give $O(\\log n)$ point-update and $O(\\log n)$ range-query; the choice is\nabout generality versus footprint.\n\n- **Fenwick tree.** Pick it when the aggregate is an **invertible** group\n  operation (sum, xor) and you only need point updates. It is a single array,\n  cache-friendly, a dozen lines of code, and the constant factors are tiny. Range\n  sum is $\\text{prefix}(r) - \\text{prefix}(l-1)$.\n- **Segment tree.** Pick it when you need **$\\min\u002F\\max\u002F\\gcd$** or any\n  non-invertible aggregate, or **range updates** via lazy propagation. It is\n  strictly more general, and you pay for it with $\\sim 2$ to $4\\times$ the memory and\n  a more involved implementation.[^sedgewick-bit]\n\nA useful slogan: _Fenwick is the specialist, the segment tree is the\ngeneralist._ When you reach for `range-sum-query-mutable`, a Fenwick tree is the\ncrisp answer; when the skyline or a range-assign problem demands $\\max$ over a\nmutable range, the segment tree with lazy propagation is the tool.\n\n## Takeaways\n\n- A static **prefix-sum array** answers range sums in $O(1)$ but updates in\n  $O(n)$; a plain array updates in $O(1)$ but sums in $O(n)$. **Fenwick** and\n  **segment** trees achieve **both in $O(\\log n)$**.\n- A **Fenwick tree** is a 1-indexed array where $F[i]$ holds the sum of the block\n  $(\\,i - \\operatorname{lowbit}(i),\\ i\\,]$, with $\\operatorname{lowbit}(i) = i\n  \\mathbin{\\&} (-i)$. Prefix sum walks **down** clearing low bits; update walks\n  **up** adding low bits, each $O(\\log n)$.\n- Fenwick range sum relies on **invertibility**: $\\text{prefix}(r) -\n  \\text{prefix}(l-1)$. It fails for $\\min\u002F\\max$.\n- A **segment tree** stores each node's range aggregate (any **associative**\n  op). Build $O(n)$, point update $O(\\log n)$, and **range query** $O(\\log n)$ by\n  decomposing $[l,r]$ into $O(\\log n)$ **canonical nodes**.\n- **Lazy propagation** defers a range update by tagging canonical nodes and\n  pushing tags down only when needed, giving $O(\\log n)$ **range update + range\n  query**.\n- **Fenwick** = tiny, fast, sum-like invertible aggregates; **segment tree** =\n  general $\\min\u002F\\max$ and lazy range ops, at $\\sim 2$ to $4\\times$ the memory.\n\n[^clrs-augment]: **CLRS**, Ch. 14, Augmenting Data Structures (§14.2): attach summary fields to nodes and maintain them through updates, the general recipe both structures specialize.\n[^skiena-fenwick]: **Skiena**, §3.x, Range Queries \u002F Augmented Structures: the binary indexed tree as a minimal-overhead structure for dynamic prefix sums.\n[^erickson-segment]: **Erickson**, Ch., Data Structures: segment trees over canonical ranges, range decomposition, and lazy propagation for range updates.\n[^sedgewick-bit]: **Sedgewick**, §, Binary Indexed & Segment Trees: practical comparison of the binary indexed tree against the more general segment tree.\n",{"text":8521,"minutes":8522,"time":8523,"words":8524},"8 min read",7.275,436500,1455,{"title":114,"description":8500},[8527,8529,8531,8533],{"book":8441,"ref":8528},"Ch. 14 — Augmenting Data Structures",{"book":8455,"ref":8530},"§3.x — Range Queries \u002F Augmented Structures",{"book":8467,"ref":8532},"Ch. — Data Structures",{"book":8479,"ref":8534},"§ — Binary Indexed & Segment Trees","available","01.algorithms\u002F04.data-structures\u002F07.fenwick-and-segment-trees",[118],"HkkcH0hIoCrIIJXJxtEmDEuGfWplAvkJXnGHE1JegN8",{"\u002Falgorithms\u002Ffoundations\u002Fwhat-is-an-algorithm":8540,"\u002Falgorithms\u002Ffoundations\u002Fasymptotic-analysis":8541,"\u002Falgorithms\u002Ffoundations\u002Frecurrences":8542,"\u002Falgorithms\u002Fdivide-and-conquer\u002Fmergesort":8543,"\u002Falgorithms\u002Fdivide-and-conquer\u002Fquicksort":8544,"\u002Falgorithms\u002Fdivide-and-conquer\u002Fselection":8545,"\u002Falgorithms\u002Fsorting\u002Fheaps-and-heapsort":8546,"\u002Falgorithms\u002Fsorting\u002Fsorting-lower-bounds":8547,"\u002Falgorithms\u002Fsorting\u002Flinear-time-sorting":8548,"\u002Falgorithms\u002Fdata-structures\u002Felementary-structures":8549,"\u002Falgorithms\u002Fdata-structures\u002Fhash-tables":8550,"\u002Falgorithms\u002Fdata-structures\u002Fbinary-search-trees":8551,"\u002Falgorithms\u002Fdata-structures\u002Favl-trees":8552,"\u002Falgorithms\u002Fdata-structures\u002Fbalanced-trees":8553,"\u002Falgorithms\u002Fdata-structures\u002Funion-find":8554,"\u002Falgorithms\u002Fdata-structures\u002Ffenwick-and-segment-trees":8524,"\u002Falgorithms\u002Fsequences\u002Ftwo-pointers-and-windows":8555,"\u002Falgorithms\u002Fsequences\u002Fmonotonic-stacks":8556,"\u002Falgorithms\u002Fsequences\u002Fbinary-search-on-the-answer":8557,"\u002Falgorithms\u002Fsequences\u002Fstring-matching":8558,"\u002Falgorithms\u002Fsequences\u002Ftries":8559,"\u002Falgorithms\u002Fgraphs\u002Frepresentations-and-traversal":8560,"\u002Falgorithms\u002Fgraphs\u002Ftopological-sort-and-scc":8561,"\u002Falgorithms\u002Fgraphs\u002Fminimum-spanning-trees":8562,"\u002Falgorithms\u002Fgraphs\u002Fshortest-paths":8563,"\u002Falgorithms\u002Fgraphs\u002Fnetwork-flow":8564,"\u002Falgorithms\u002Fgraphs\u002Fbridges-and-articulation-points":8565,"\u002Falgorithms\u002Fgraphs\u002Flowest-common-ancestor":8566,"\u002Falgorithms\u002Fgraphs\u002Ftwo-sat":8567,"\u002Falgorithms\u002Fgraphs\u002Feulerian-tours":8568,"\u002Falgorithms\u002Fgreedy\u002Fthe-greedy-method":8569,"\u002Falgorithms\u002Fgreedy\u002Fscheduling-and-intervals":8570,"\u002Falgorithms\u002Fgreedy\u002Fhuffman-codes":8571,"\u002Falgorithms\u002Fgreedy\u002Fmatroids":8572,"\u002Falgorithms\u002Fdynamic-programming\u002Fprinciples":8573,"\u002Falgorithms\u002Fdynamic-programming\u002Fsequence-dp":8574,"\u002Falgorithms\u002Fdynamic-programming\u002Flongest-increasing-subsequence":8575,"\u002Falgorithms\u002Fdynamic-programming\u002Fknapsack":8576,"\u002Falgorithms\u002Fdynamic-programming\u002Fcoin-change-and-unbounded":8577,"\u002Falgorithms\u002Fdynamic-programming\u002Finterval-dp":8578,"\u002Falgorithms\u002Fdynamic-programming\u002Ftree-dp":8579,"\u002Falgorithms\u002Fdynamic-programming\u002Fbitmask-dp":8580,"\u002Falgorithms\u002Fdynamic-programming\u002Fdp-optimizations":8581,"\u002Falgorithms\u002Fdynamic-programming\u002Fdp-on-graphs":8582,"\u002Falgorithms\u002Fbacktracking\u002Fbacktracking-fundamentals":8583,"\u002Falgorithms\u002Fbacktracking\u002Fconstraint-search":8584,"\u002Falgorithms\u002Fbacktracking\u002Fbranch-and-bound":8585,"\u002Falgorithms\u002Fmathematical-algorithms\u002Fnumber-theory-basics":8555,"\u002Falgorithms\u002Fmathematical-algorithms\u002Fmodular-exponentiation-and-primality":8586,"\u002Falgorithms\u002Fmathematical-algorithms\u002Fsieve-and-factorization":8587,"\u002Falgorithms\u002Fmathematical-algorithms\u002Fcombinatorics":8588,"\u002Falgorithms\u002Fcomputational-geometry\u002Fgeometric-primitives":8589,"\u002Falgorithms\u002Fcomputational-geometry\u002Fconvex-hull":8571,"\u002Falgorithms\u002Fcomputational-geometry\u002Fsweep-line":8590,"\u002Falgorithms\u002Fintractability\u002Fp-np-reductions":8591,"\u002Falgorithms\u002Fintractability\u002Fnp-completeness":8552,"\u002Falgorithms\u002Fintractability\u002Fcoping-with-hardness":8592,"\u002Falgorithms":8593,"\u002Ftheory-of-computation":8594,"\u002Fcomputer-architecture":8594,"\u002Fphysical-computing":8594,"\u002Fdatabases":8594,"\u002Fdeep-learning":8594},1763,2107,1738,2628,1723,2048,1697,1044,1542,1565,1679,1586,1388,1465,1971,1533,1483,1578,1791,1481,2704,1658,2070,1978,2080,1568,1451,1291,1543,1883,1443,1599,2038,2241,1744,1678,2288,1929,1657,1412,1554,1418,1713,1798,1694,1762,1534,1595,1262,1495,1630,2306,2142,107,0,{"\u002Falgorithms\u002Ffoundations\u002Fwhat-is-an-algorithm":8596,"\u002Falgorithms\u002Ffoundations\u002Fasymptotic-analysis":8597,"\u002Falgorithms\u002Ffoundations\u002Frecurrences":8598,"\u002Falgorithms\u002Fdivide-and-conquer\u002Fmergesort":8599,"\u002Falgorithms\u002Fdivide-and-conquer\u002Fquicksort":8600,"\u002Falgorithms\u002Fdivide-and-conquer\u002Fselection":8601,"\u002Falgorithms\u002Fsorting\u002Fheaps-and-heapsort":8602,"\u002Falgorithms\u002Fsorting\u002Fsorting-lower-bounds":8603,"\u002Falgorithms\u002Fsorting\u002Flinear-time-sorting":8604,"\u002Falgorithms\u002Fdata-structures\u002Felementary-structures":8605,"\u002Falgorithms\u002Fdata-structures\u002Fhash-tables":8606,"\u002Falgorithms\u002Fdata-structures\u002Fbinary-search-trees":8607,"\u002Falgorithms\u002Fdata-structures\u002Favl-trees":8608,"\u002Falgorithms\u002Fdata-structures\u002Fbalanced-trees":8609,"\u002Falgorithms\u002Fdata-structures\u002Funion-find":8610,"\u002Falgorithms\u002Fdata-structures\u002Ffenwick-and-segment-trees":8611,"\u002Falgorithms\u002Fsequences\u002Ftwo-pointers-and-windows":8612,"\u002Falgorithms\u002Fsequences\u002Fmonotonic-stacks":8613,"\u002Falgorithms\u002Fsequences\u002Fbinary-search-on-the-answer":8614,"\u002Falgorithms\u002Fsequences\u002Fstring-matching":8615,"\u002Falgorithms\u002Fsequences\u002Ftries":8616,"\u002Falgorithms\u002Fgraphs\u002Frepresentations-and-traversal":8617,"\u002Falgorithms\u002Fgraphs\u002Ftopological-sort-and-scc":8618,"\u002Falgorithms\u002Fgraphs\u002Fminimum-spanning-trees":8619,"\u002Falgorithms\u002Fgraphs\u002Fshortest-paths":8620,"\u002Falgorithms\u002Fgraphs\u002Fnetwork-flow":8621,"\u002Falgorithms\u002Fgraphs\u002Fbridges-and-articulation-points":8622,"\u002Falgorithms\u002Fgraphs\u002Flowest-common-ancestor":8623,"\u002Falgorithms\u002Fgraphs\u002Ftwo-sat":8624,"\u002Falgorithms\u002Fgraphs\u002Feulerian-tours":8625,"\u002Falgorithms\u002Fgreedy\u002Fthe-greedy-method":8626,"\u002Falgorithms\u002Fgreedy\u002Fscheduling-and-intervals":8627,"\u002Falgorithms\u002Fgreedy\u002Fhuffman-codes":8628,"\u002Falgorithms\u002Fgreedy\u002Fmatroids":8629,"\u002Falgorithms\u002Fdynamic-programming\u002Fprinciples":8630,"\u002Falgorithms\u002Fdynamic-programming\u002Fsequence-dp":8631,"\u002Falgorithms\u002Fdynamic-programming\u002Flongest-increasing-subsequence":8632,"\u002Falgorithms\u002Fdynamic-programming\u002Fknapsack":8633,"\u002Falgorithms\u002Fdynamic-programming\u002Fcoin-change-and-unbounded":8634,"\u002Falgorithms\u002Fdynamic-programming\u002Finterval-dp":8635,"\u002Falgorithms\u002Fdynamic-programming\u002Ftree-dp":8636,"\u002Falgorithms\u002Fdynamic-programming\u002Fbitmask-dp":8637,"\u002Falgorithms\u002Fdynamic-programming\u002Fdp-optimizations":8638,"\u002Falgorithms\u002Fdynamic-programming\u002Fdp-on-graphs":8639,"\u002Falgorithms\u002Fbacktracking\u002Fbacktracking-fundamentals":8640,"\u002Falgorithms\u002Fbacktracking\u002Fconstraint-search":8641,"\u002Falgorithms\u002Fbacktracking\u002Fbranch-and-bound":8642,"\u002Falgorithms\u002Fmathematical-algorithms\u002Fnumber-theory-basics":8643,"\u002Falgorithms\u002Fmathematical-algorithms\u002Fmodular-exponentiation-and-primality":8644,"\u002Falgorithms\u002Fmathematical-algorithms\u002Fsieve-and-factorization":8645,"\u002Falgorithms\u002Fmathematical-algorithms\u002Fcombinatorics":8646,"\u002Falgorithms\u002Fcomputational-geometry\u002Fgeometric-primitives":8647,"\u002Falgorithms\u002Fcomputational-geometry\u002Fconvex-hull":8648,"\u002Falgorithms\u002Fcomputational-geometry\u002Fsweep-line":8649,"\u002Falgorithms\u002Fintractability\u002Fp-np-reductions":8650,"\u002Falgorithms\u002Fintractability\u002Fnp-completeness":8651,"\u002Falgorithms\u002Fintractability\u002Fcoping-with-hardness":8652,"\u002Falgorithms":8653,"\u002Ftheory-of-computation":8656,"\u002Fcomputer-architecture":8659,"\u002Fphysical-computing":8662,"\u002Fdatabases":8665,"\u002Fdeep-learning":8668},{"path":11,"title":10,"module":5,"summary":14},{"path":17,"title":16,"module":5,"summary":20},{"path":23,"title":22,"module":5,"summary":27},{"path":34,"title":33,"module":29,"summary":37},{"path":40,"title":39,"module":29,"summary":43},{"path":46,"title":45,"module":29,"summary":49},{"path":56,"title":55,"module":51,"summary":59},{"path":62,"title":61,"module":51,"summary":64},{"path":67,"title":66,"module":51,"summary":70},{"path":78,"title":77,"module":72,"summary":81},{"path":84,"title":83,"module":72,"summary":87},{"path":90,"title":89,"module":72,"summary":92},{"path":95,"title":94,"module":72,"summary":98},{"path":101,"title":100,"module":72,"summary":104},{"path":107,"title":106,"module":72,"summary":112},{"path":115,"title":114,"module":72,"summary":119},{"path":126,"title":125,"module":121,"summary":129},{"path":132,"title":131,"module":121,"summary":134},{"path":137,"title":136,"module":121,"summary":140},{"path":143,"title":142,"module":121,"summary":146},{"path":149,"title":148,"module":121,"summary":151},{"path":158,"title":157,"module":153,"summary":162},{"path":165,"title":164,"module":153,"summary":167},{"path":170,"title":169,"module":153,"summary":172},{"path":175,"title":174,"module":153,"summary":177},{"path":180,"title":179,"module":153,"summary":182},{"path":185,"title":184,"module":153,"summary":187},{"path":190,"title":189,"module":153,"summary":192},{"path":195,"title":194,"module":153,"summary":198},{"path":201,"title":200,"module":153,"summary":204},{"path":211,"title":210,"module":206,"summary":213},{"path":216,"title":215,"module":206,"summary":219},{"path":222,"title":221,"module":206,"summary":224},{"path":227,"title":226,"module":206,"summary":229},{"path":236,"title":235,"module":231,"summary":238},{"path":241,"title":240,"module":231,"summary":244},{"path":247,"title":246,"module":231,"summary":249},{"path":252,"title":251,"module":231,"summary":254},{"path":257,"title":256,"module":231,"summary":259},{"path":262,"title":261,"module":231,"summary":264},{"path":267,"title":266,"module":231,"summary":269},{"path":272,"title":271,"module":231,"summary":274},{"path":277,"title":276,"module":231,"summary":279},{"path":282,"title":281,"module":231,"summary":285},{"path":292,"title":291,"module":287,"summary":295},{"path":298,"title":297,"module":287,"summary":300},{"path":303,"title":302,"module":287,"summary":305},{"path":312,"title":311,"module":307,"summary":315},{"path":318,"title":317,"module":307,"summary":320},{"path":323,"title":322,"module":307,"summary":325},{"path":328,"title":327,"module":307,"summary":330},{"path":338,"title":337,"module":332,"summary":341},{"path":344,"title":343,"module":332,"summary":346},{"path":349,"title":348,"module":332,"summary":351},{"path":359,"title":358,"module":353,"summary":362},{"path":364,"title":361,"module":353,"summary":366},{"path":369,"title":368,"module":353,"summary":373},{"path":8654,"title":8655,"module":376,"summary":376},"\u002Falgorithms","Algorithms",{"path":8657,"title":8658,"module":376,"summary":376},"\u002Ftheory-of-computation","Theory of Computation",{"path":8660,"title":8661,"module":376,"summary":376},"\u002Fcomputer-architecture","Computer Architecture",{"path":8663,"title":8664,"module":376,"summary":376},"\u002Fphysical-computing","Physical Computing",{"path":8666,"title":8667,"module":376,"summary":376},"\u002Fdatabases","Databases",{"path":8669,"title":8670,"module":376,"summary":376},"\u002Fdeep-learning","Deep Learning",1781560522918]